|
@@ -19,6 +19,7 @@ import thyyxxk.webserver.entity.ResultVo;
|
|
|
import thyyxxk.webserver.entity.datamodify.GetDropdownBox;
|
|
|
import thyyxxk.webserver.entity.login.UserInfo;
|
|
|
import thyyxxk.webserver.entity.zhuyuanyisheng.jianyanjiancha.*;
|
|
|
+import thyyxxk.webserver.entity.zhuyuanyisheng.jianyanjiancha.dto.JyJcCheckItemDto;
|
|
|
import thyyxxk.webserver.entity.zhuyuanyisheng.jianyanjiancha.vo.ViewInspectionItemDetailsVo;
|
|
|
import thyyxxk.webserver.entity.zhuyuanyisheng.query.ChaXunJianChaHeJianYan;
|
|
|
import thyyxxk.webserver.entity.zhuyuanyisheng.yizhuluru.PatientTemp;
|
|
@@ -367,11 +368,13 @@ public class JianYanJianChaShenQingService {
|
|
|
}
|
|
|
XinZhenYiZhu huanZheXinXi = yiZhuLuRuDao.queryPatientInfo(param.getInpatientNo(), param.getAdmissTimes());
|
|
|
publicServer.huanZheJieSuan(param.getInpatientNo(), param.getAdmissTimes());
|
|
|
- List<String> xm = new ArrayList<>();
|
|
|
int index = 1;
|
|
|
List<String> content = new ArrayList<>();
|
|
|
StringBuilder cuoWuXinXi = new StringBuilder();
|
|
|
|
|
|
+ Set<String> jcCodes = new HashSet<>();
|
|
|
+ Set<String> jyCodes = new HashSet<>();
|
|
|
+
|
|
|
for (YshYjReq item : param.getList()) {
|
|
|
if (item.getQuantity() == null) {
|
|
|
item.setQuantity(BigDecimal.ONE);
|
|
@@ -397,6 +400,7 @@ public class JianYanJianChaShenQingService {
|
|
|
cuoWuXinXi.append(baoCunCuoWuXinXi(index, "执行科室不能为空。"));
|
|
|
}
|
|
|
if ("3".equals(param.getReqType())) {
|
|
|
+ jcCodes.add(item.getOrderCode());
|
|
|
if (StringUtil.isBlank(item.getReqComment())) {
|
|
|
cuoWuXinXi.append(baoCunCuoWuXinXi(index, "病室摘要不能为空。"));
|
|
|
}
|
|
@@ -410,6 +414,7 @@ public class JianYanJianChaShenQingService {
|
|
|
cuoWuXinXi.append(baoCunCuoWuXinXi(index, "临床诊断不能为空。"));
|
|
|
}
|
|
|
} else {
|
|
|
+ jyCodes.add(item.getOrderCode());
|
|
|
if (StringUtil.isBlank(item.getInspectStuff())) {
|
|
|
cuoWuXinXi.append(baoCunCuoWuXinXi(index, "标本不能为空。"));
|
|
|
}
|
|
@@ -417,7 +422,6 @@ public class JianYanJianChaShenQingService {
|
|
|
if (cuoWuXinXi.length() > 0) {
|
|
|
cuoWuXinXi.append("<br>");
|
|
|
}
|
|
|
- xm.add(item.getOrderCode().trim());
|
|
|
content.add(String.format("%s:<span style='color:#409eff'>【%s】</span><br>" +
|
|
|
"患者姓名:<span style='color:#409eff'>【%s】</span><br>" +
|
|
|
"床位:<span style='color:#409eff'>【%s】</span>",
|
|
@@ -426,11 +430,54 @@ public class JianYanJianChaShenQingService {
|
|
|
index++;
|
|
|
}
|
|
|
|
|
|
- // 先判断是不是停用了
|
|
|
- String tingYong = publicServer.xiangMuXianZhi(xm, true);
|
|
|
- if (StringUtil.notBlank(tingYong)) {
|
|
|
- throw new BizException(ExceptionEnum.LOGICAL_HTML_ERROR, tingYong);
|
|
|
+ Map<String, List<JyJcCheckItemDto>> jc = getItemInfo(jcCodes, true);
|
|
|
+ Map<String, List<JyJcCheckItemDto>> jy = getItemInfo(jyCodes, false);
|
|
|
+
|
|
|
+
|
|
|
+ for (int i = 0; i < param.getList().size(); i++) {
|
|
|
+ int finalI = i + 1;
|
|
|
+ YshYjReq item = param.getList().get(i);
|
|
|
+ List<JyJcCheckItemDto> itemInfo;
|
|
|
+ // 检查
|
|
|
+ if ("3".equals(param.getReqType())) {
|
|
|
+ itemInfo = jc.get(item.getOrderCode());
|
|
|
+ } else {
|
|
|
+ // 检验
|
|
|
+ itemInfo = jy.get(item.getOrderCode());
|
|
|
+ }
|
|
|
+
|
|
|
+ if (itemInfo == null || itemInfo.isEmpty()) {
|
|
|
+ cuoWuXinXi.append(baoCunCuoWuXinXi(i, "项目明细为空请刷新页面。"));
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ JyJcCheckItemDto one = itemInfo.get(0);
|
|
|
+
|
|
|
+ if (one.getGenderRestriction() != null && !one.getGenderRestriction().equals(huanZheXinXi.getSex())) {
|
|
|
+ cuoWuXinXi.append(baoCunCuoWuXinXi(finalI, "患者的性别不能开这个项目。"));
|
|
|
+ }
|
|
|
+
|
|
|
+ Integer age = huanZheXinXi.patientAge();
|
|
|
+
|
|
|
+ if (one.getMaxAgeRestriction() != null && one.getMaxAgeRestriction() <= age) {
|
|
|
+ cuoWuXinXi.append(baoCunCuoWuXinXi(finalI, "项目最大年龄限制" + one.getMaxAgeRestriction() + "岁,患者年龄不符合。"));
|
|
|
+ }
|
|
|
+
|
|
|
+ if (one.getMinAgeRestriction() != null && one.getMinAgeRestriction() >= age) {
|
|
|
+ cuoWuXinXi.append(baoCunCuoWuXinXi(finalI, "项目最小年龄限制" + one.getMinAgeRestriction() + "岁,患者年龄不符合。"));
|
|
|
+ }
|
|
|
+
|
|
|
+ if (one.getOrderDelFlag()) {
|
|
|
+ cuoWuXinXi.append(baoCunCuoWuXinXi(finalI, "医嘱已停用"));
|
|
|
+ }
|
|
|
+
|
|
|
+ itemInfo.forEach(value -> {
|
|
|
+ if (value.getItemDelFlag()) {
|
|
|
+ cuoWuXinXi.append(baoCunCuoWuXinXi(finalI, "项目已停用:【" + value.getName() + "】"));
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
+
|
|
|
if (StringUtil.notBlank(cuoWuXinXi.toString())) {
|
|
|
throw new BizException(ExceptionEnum.LOGICAL_HTML_ERROR, String.valueOf(cuoWuXinXi));
|
|
|
}
|
|
@@ -445,6 +492,21 @@ public class JianYanJianChaShenQingService {
|
|
|
return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_EL_MESSAGE);
|
|
|
}
|
|
|
|
|
|
+ private Map<String, List<JyJcCheckItemDto>> getItemInfo(Set<String> itemCodes, Boolean isCheck) {
|
|
|
+ Map<String, List<JyJcCheckItemDto>> collect = new HashMap<>();
|
|
|
+ if (!itemCodes.isEmpty()) {
|
|
|
+ QueryWrapper<?> qw = new QueryWrapper<>();
|
|
|
+ qw.in("a.order_code", itemCodes);
|
|
|
+ Map<String, List<JyJcCheckItemDto>> info = dao.selectJyJcCheckItemDto(qw, isCheck ? "jc_zd_item" : "jy_zd_item")
|
|
|
+ .stream()
|
|
|
+ .collect(
|
|
|
+ Collectors.groupingBy(JyJcCheckItemDto::getCode)
|
|
|
+ );
|
|
|
+ collect.putAll(info);
|
|
|
+ }
|
|
|
+ return collect;
|
|
|
+ }
|
|
|
+
|
|
|
public void insertData(TianJiaJianChaJianYan param, XinZhenYiZhu patInfo, List<String> content) {
|
|
|
String userCode = TokenUtil.getInstance().getTokenUserId();
|
|
|
|