Browse Source

Merge remote-tracking branch 'origin/beilun/dev' into beilun/dev

fangqw 4 years atrás
parent
commit
dc75d501fc

+ 46 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/yiwu/doctorsadvice/ADVI03084.java

@@ -0,0 +1,46 @@
+package com.lantone.qc.kernel.catalogue.yiwu.doctorsadvice;
+
+import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.pub.model.InputInfo;
+import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.model.doc.DoctorAdviceDoc;
+import com.lantone.qc.pub.model.doc.LisDoc;
+import com.lantone.qc.pub.util.StringUtil;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Objects;
+
+/**
+ * @ClassName : ADVI03084
+ * @Description : 医嘱中无免疫球蛋白
+ *
+ * @Author : 胡敬
+ * @Date: 2020-03-28 17:35
+ */
+@Component
+public class ADVI03084 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status.set("0");
+        List<DoctorAdviceDoc> doctorAdviceDocs = inputInfo.getDoctorAdviceDocs();
+        List<LisDoc> lisDocs = inputInfo.getLisDocs();
+//        if (doctorAdviceDocs.size() == 0 || lisDocs.size() == 0) {
+//            return;
+//        }
+        long itemCount = doctorAdviceDocs
+                .stream()
+                .map(DoctorAdviceDoc::getStructureMap)
+                .map(i -> i.get("医嘱项目名称"))
+                .filter(Objects::nonNull)
+                .filter(i -> i.contains("免疫球蛋白"))
+                .count();
+        long lisItemCount = lisDocs
+                .stream()
+                .map(LisDoc::getStructureMap)
+                .filter(i -> StringUtil.isNotBlank(i.get("报告名称")) && "乙肝表面抗原".equals(i.get("报告名称")) && StringUtil.isNotBlank(i.get("检验结果")) && "阳性".equals(i.get("检验结果")))
+                .count();
+        if (lisItemCount > 0 && itemCount == 0) {
+            status.set("-1");
+        }
+    }
+}

+ 85 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/yiwu/operationdiscussion/OPE03085.java

@@ -0,0 +1,85 @@
+package com.lantone.qc.kernel.catalogue.yiwu.operationdiscussion;
+
+import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.pub.model.InputInfo;
+import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.model.doc.LeaveHospitalDoc;
+import com.lantone.qc.pub.model.doc.operation.OperationDiscussionDoc;
+import com.lantone.qc.pub.model.doc.operation.OperationDoc;
+import com.lantone.qc.pub.model.doc.operation.OperationRecordDoc;
+import com.lantone.qc.pub.util.StringUtil;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @ClassName : OPE03085
+ * @Description : 胎儿性别不一致
+ * @Author : 胡敬
+ * @Date: 2020-12-02 11:32
+ */
+@Component
+public class OPE03085 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status.set("0");
+        List<OperationDoc> operationDocs = inputInfo.getOperationDocs();
+        if (operationDocs.size() == 0) {
+            return;
+        }
+        String operSex = "", dicussSex = "", leaveSex = "";
+        for (OperationDoc operationDoc : operationDocs) {
+            OperationRecordDoc operationRecordDoc = operationDoc.getOperationRecordDoc();
+            OperationDiscussionDoc operationDiscussionDoc = operationDoc.getOperationDiscussionDoc();
+            if (operationRecordDoc == null) {
+                continue;
+            }
+            Map<String, String> operationRecordStructureMap = operationRecordDoc.getStructureMap();
+            String content = operationRecordStructureMap.get("手术经过及处理");
+            if (StringUtil.isBlank(content)) {
+                continue;
+            }
+            content = content.replace(":", ":");
+            if (content.contains("胎儿:性别女")) {
+                operSex = "女";
+            } else if (content.contains("胎儿:性别男")) {
+                operSex = "男";
+            }
+            if (operationDiscussionDoc == null) {
+                continue;
+            }
+            String discussContent = operationDiscussionDoc.getStructureMap().get("手术简要经过");
+            if (StringUtil.isBlank(discussContent) && !discussContent.contains("婴")) {
+                continue;
+            }
+            dicussSex = getSex(discussContent);
+        }
+        LeaveHospitalDoc leaveHospitalDoc = inputInfo.getLeaveHospitalDoc();
+        if (leaveHospitalDoc != null) {
+            String leaveContent = leaveHospitalDoc.getStructureMap().get("诊治经过");
+            leaveSex = getSex(leaveContent);
+        }
+
+        if (StringUtil.isBlank(operSex)) {
+            return;
+        }
+        if ((StringUtil.isNotBlank(dicussSex) && !operSex.equals(dicussSex)) || (StringUtil.isNotBlank(leaveSex) && !operSex.equals(leaveSex))) {
+            status.set("-1");
+        }
+    }
+
+    private String getSex(String discussContent) {
+        String dicussSex = "";
+        int index = discussContent.indexOf("婴");
+        int startIndex = Math.max(0, index - 5);
+        if (index > 0) {
+            String sexContent = discussContent.substring(startIndex, index);
+            if (sexContent.contains("男")) {
+                dicussSex = "男";
+            } else if (sexContent.contains("女")) {
+                dicussSex = "女";
+            }
+        }
+        return dicussSex;
+    }
+}

+ 3 - 3
trans/src/main/java/com/lantone/qc/trans/yiwu/YiWuBeHospitalizedDocTrans.java

@@ -59,8 +59,8 @@ public class YiWuBeHospitalizedDocTrans extends ModelDocTrans {
             if ("51923".equals(behDeptId) || "52883".equals(behDeptId) || "52903".equals(behDeptId) || "52923".equals(behDeptId) || "53523".equals(behDeptId)) {
                 dailyTrans(sourceMap, text, behDeptId);
             } else {
-                List<String> titles = Lists.newArrayList("婚    姻", "婚姻状况", "住      址", "供 史 者", "性      别", "婚  姻", "民  族", "民    族", "个人史", "妇科检查", "产科检查",
-                        "实验室", "诊断和诊断修正", "婚 育 史", "家 族 史", "体格检查(一)", "体 格 检 查(一)", "现 病 史", "既 往 史", "系统回顾","职        业","联系人及电话");
+                List<String> titles = Lists.newArrayList("婚    姻", "婚姻状况", "住      址", "供 史 者", "性      别", "婚  姻", "民  族", "民    族", "个人史", "个 人 史", "妇科检查", "产科检查",
+                        "实验室", "诊断和诊断修正", "婚 育 史", "家 族 史", "体格检查(一)", "体 格 检 查(一)", "现 病 史", "既往史", "既 往 史", "系统回顾", "职        业", "联系人及电话");
                 List<String> sortTitles = CommonAnalysisUtil.sortTitlesNoColon(titles, text);
                 CommonAnalysisUtil.cutByTitlesNoColon(text, sortTitles, 0, sourceMap);
                 List<String> modifyKey = Lists.newArrayList("初步诊断", "修正诊断", "补充诊断");
@@ -103,7 +103,7 @@ public class YiWuBeHospitalizedDocTrans extends ModelDocTrans {
                 //入院记录标题部分解析不出的  婚姻和民族处理
                 //注意中间的空格是什么字符
                 List<String> titletitles = Lists.newArrayList("住      址",
-                        "婚  姻", "民  族", "民    族", "供 史 者", "性      别", "婚    姻", "婚姻状况", "病史提供者","职业","联系人及电话");
+                        "婚  姻", "民  族", "民    族", "供 史 者", "性      别", "婚    姻", "婚姻状况", "病史提供者", "职业", "联系人及电话");
                 for (String str : titletitles) {
                     String str1 = str.replaceAll("[  ]", "");
                     if (sourceMap.containsKey(str)) {