Browse Source

Merge branch 'master' of http://192.168.2.236:10080/louhr/qc

Conflicts:
	public/src/main/java/com/lantone/qc/pub/model/label/PresentLabel.java
louhr 5 years ago
parent
commit
e28cc95225

+ 71 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0173.java

@@ -0,0 +1,71 @@
+package com.lantone.qc.kernel.catalogue.firstpagerecord;
+
+import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.pub.Content;
+import com.lantone.qc.pub.model.InputInfo;
+import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.model.entity.Diag;
+import com.lantone.qc.pub.util.ListUtil;
+import com.lantone.qc.pub.util.StringUtil;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @ClassName : FIRP0173
+ * @Description :门(急)诊诊断与现病史里的内容不一致
+ * @Author : 胡敬
+ * @Date: 2020-03-18 16:30
+ */
+@Component
+public class FIRP0173 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status = "0";
+        if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null
+                && inputInfo.getBeHospitalizedDoc() != null && inputInfo.getBeHospitalizedDoc().getPresentLabel() != null) {
+            Map<String, Object> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureExtMap();
+            //病案首页门急诊诊断
+            List<Map<String, String>> outpatientEmergencyDiag = (List) firstpageStructureMap.get(Content.outpatientEmergencyDiag);
+            if (ListUtil.isEmpty(outpatientEmergencyDiag)
+                    || ListUtil.isEmpty(inputInfo.getBeHospitalizedDoc().getPresentLabel().getDiags())) {
+                return;
+            }
+            //现病史所有诊断
+            List<Diag> presentDiags = inputInfo.getBeHospitalizedDoc().getPresentLabel().getDiags();
+
+            //病案首页门急诊诊断
+            List<String> firstpageDiag = new ArrayList<>();
+            //现病史拟诊诊断
+            List<String> presentPossibleDiag = new ArrayList<>();
+            //存放病案首页门急诊诊断
+            putFirstpageDiagToList(outpatientEmergencyDiag, firstpageDiag);
+            //存放现病史拟诊诊断
+            putPossibleDiagToList(presentDiags, presentPossibleDiag);
+
+            if (!ListUtil.equals(firstpageDiag, presentPossibleDiag)) {
+                status = "-1";
+            }
+        }
+
+    }
+
+    private void putFirstpageDiagToList(List<Map<String, String>> outpatientEmergencyDiag, List<String> firstpageDiag) {
+        String outpatientEmergencyDiagStr = "";
+        for (Map<String, String> outpatientEmergencyDiagMap : outpatientEmergencyDiag) {
+            outpatientEmergencyDiagStr = outpatientEmergencyDiagMap.get(Content.diagnoseName);
+            if (StringUtil.isNotBlank(outpatientEmergencyDiagStr)) {
+                firstpageDiag.add(outpatientEmergencyDiagStr);
+            }
+        }
+    }
+
+    private void putPossibleDiagToList(List<Diag> diagList, List<String> presentPossibleDiag) {
+        for (Diag diag : diagList) {
+            if (diag.getPossible() != null) {
+                presentPossibleDiag.add(diag.getName());
+            }
+        }
+    }
+}

+ 42 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0175.java

@@ -0,0 +1,42 @@
+package com.lantone.qc.kernel.catalogue.firstpagerecord;
+
+import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.kernel.util.CatalogueUtil;
+import com.lantone.qc.pub.Content;
+import com.lantone.qc.pub.model.InputInfo;
+import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.model.entity.Diag;
+import com.lantone.qc.pub.util.ListUtil;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @ClassName : FIRP0175
+ * @Description :主要诊断与出院小结不一致
+ * @Author : 胡敬
+ * @Date: 2020-03-18 16:17
+ */
+@Component
+public class FIRP0175 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status = "0";
+        if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null
+                && inputInfo.getLeaveHospitalDoc() != null && inputInfo.getLeaveHospitalDoc().getLeaveDiagLabel() != null) {
+            Map<String, Object> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureExtMap();
+            //病案首页出院诊断
+            List<Map<String, String>> dischargeDiag = (List) firstpageStructureMap.get(Content.dischargeDiag);
+            //出院小结诊断
+            List<Diag> leaveDiags = inputInfo.getLeaveHospitalDoc().getLeaveDiagLabel().getDiags();
+            if (ListUtil.isEmpty(dischargeDiag) || ListUtil.isEmpty(leaveDiags)) {
+                return;
+            }
+            String firstpageleaveDiag = dischargeDiag.get(0).get(Content.diagnoseName);
+            String leaveDiag = leaveDiags.get(0).getName();
+            if (!CatalogueUtil.compareToken(firstpageleaveDiag, leaveDiag)) {
+                status = "-1";
+            }
+        }
+    }
+}

+ 69 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0178.java

@@ -0,0 +1,69 @@
+package com.lantone.qc.kernel.catalogue.firstpagerecord;
+
+import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.pub.Content;
+import com.lantone.qc.pub.model.InputInfo;
+import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.model.doc.BeHospitalizedDoc;
+import com.lantone.qc.pub.model.entity.Diag;
+import com.lantone.qc.pub.util.ListUtil;
+import com.lantone.qc.pub.util.StringUtil;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @ClassName : FIRP0178
+ * @Description :出院其他诊断不完全
+ * @Author : 胡敬
+ * @Date: 2020-03-16 14:01
+ */
+@Component
+public class FIRP0178 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status = "0";
+        if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null
+                && inputInfo.getBeHospitalizedDoc() != null) {
+            Map<String, Object> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureExtMap();
+            List<Map<String, String>> dischargeDiag = (List) firstpageStructureMap.get(Content.dischargeDiag);
+
+            BeHospitalizedDoc beHospitalizedDoc = inputInfo.getBeHospitalizedDoc();
+            List<String> beHospitalDiag = new ArrayList<>();//收集入院记录中初步诊断、修正诊断、其他诊断所有诊断
+            if (beHospitalizedDoc.getInitialDiagLabel() != null) {
+                putDiagToList(beHospitalizedDoc.getInitialDiagLabel().getDiags(),beHospitalDiag); //初步诊断
+            }
+            if (beHospitalizedDoc.getRevisedDiagLabel() != null){
+                putDiagToList(beHospitalizedDoc.getRevisedDiagLabel().getDiags(),beHospitalDiag); //修正诊断
+            }
+            if (beHospitalizedDoc.getSuppleDiagLabel() != null){
+                putDiagToList(beHospitalizedDoc.getSuppleDiagLabel().getDiags(), beHospitalDiag); //其他诊断
+            }
+
+            if (beHospitalDiag.size() > 0 && dischargeDiag.size() < 2) {
+                status = "-1";
+                return;
+            }
+
+            List<String> firstpageDiag = new ArrayList<>();
+            for (int i = 1; i < dischargeDiag.size(); i++) {
+                String diagnoseName = dischargeDiag.get(i).get(Content.diagnoseName);
+                if (StringUtil.isBlank(diagnoseName)) {
+                    continue;
+                }
+                firstpageDiag.add(diagnoseName);
+            }
+
+            if (!ListUtil.equals(firstpageDiag,beHospitalDiag)){
+                status = "-1";
+            }
+        }
+    }
+
+    private void putDiagToList(List<Diag> diagList, List<String> beHospitalDiag){
+        for (Diag diag:diagList) {
+            beHospitalDiag.add(diag.getName());
+        }
+    }
+}

+ 52 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0185.java

@@ -0,0 +1,52 @@
+package com.lantone.qc.kernel.catalogue.firstpagerecord;
+
+import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.kernel.util.CatalogueUtil;
+import com.lantone.qc.pub.Content;
+import com.lantone.qc.pub.model.InputInfo;
+import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.model.entity.AllergyMedicine;
+import com.lantone.qc.pub.model.label.PastLabel;
+import com.lantone.qc.pub.util.ListUtil;
+import org.springframework.stereotype.Component;
+
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @ClassName : FIRP0185
+ * @Description :药物过敏与既往史不一致
+ * @Author : 胡敬
+ * @Date: 2020-03-18 14:07
+ */
+@Component
+public class FIRP0185 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status = "0";
+        if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null
+                && inputInfo.getBeHospitalizedDoc() != null && inputInfo.getBeHospitalizedDoc().getStructureMap() != null) {
+            Map<String, String> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
+            String drugAllergy = firstpageStructureMap.get(Content.drugAllergy);
+
+            PastLabel pastLabel = inputInfo.getBeHospitalizedDoc().getPastLabel();
+            List<AllergyMedicine> allergyMedicines = pastLabel.getAllergyMedicines();
+            if (allergyMedicines.size() == 0 || CatalogueUtil.isEmpty(drugAllergy)) {
+                return;
+            }
+            String[] drugAllergyArr = drugAllergy.split(",|,|、| ");
+            List<String> drugAllergyPastList = new ArrayList<String>(drugAllergyArr.length);
+            Collections.addAll(drugAllergyPastList, drugAllergyArr);
+            List<String> drugAllergyFirstPageList = new ArrayList<>();
+            for (AllergyMedicine allergyMedicine : allergyMedicines) {
+                if (allergyMedicine.getNegative() == null) {
+                    drugAllergyFirstPageList.add(allergyMedicine.getName());
+                }
+            }
+            if (!ListUtil.equals(drugAllergyPastList, drugAllergyFirstPageList)) {
+                status = "-1";
+            }
+        }
+    }
+}

+ 3 - 2
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0189.java

@@ -18,11 +18,12 @@ import java.util.Map;
 @Component
 public class FIRP0189 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status = "0";
         if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
             Map<String, Object> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureExtMap();
             String rhFactor = firstpageStructureMap.get(Content.rhFactor).toString();
-            if (!CatalogueUtil.isEmpty(rhFactor)){
-                status = "0";
+            if (CatalogueUtil.isEmpty(rhFactor)){
+                status = "-1";
             }
         }
     }

+ 44 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0190.java

@@ -0,0 +1,44 @@
+package com.lantone.qc.kernel.catalogue.firstpagerecord;
+
+import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.kernel.util.CatalogueUtil;
+import com.lantone.qc.pub.Content;
+import com.lantone.qc.pub.model.InputInfo;
+import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.model.doc.ClinicalBloodDoc;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @ClassName : FIRP0190
+ * @Description :Rh填写错误
+ * @Author : 胡敬
+ * @Date: 2020-03-18 13:35
+ */
+@Component
+public class FIRP0190 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status = "0";
+        if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null
+                && inputInfo.getClinicalBloodDoc().size() > 0) {
+            Map<String, Object> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureExtMap();
+            List<ClinicalBloodDoc> clinicalBloodDocList = inputInfo.getClinicalBloodDoc();
+            String rhFactor = firstpageStructureMap.get(Content.rhFactor).toString();
+            if (CatalogueUtil.isEmpty(rhFactor)) {
+                return;
+            }
+            status = "-1";
+            for (ClinicalBloodDoc clinicalBloodDoc : clinicalBloodDocList) {
+                String bloodType = clinicalBloodDoc.getStructureMap().get("输注种类、血型、数量");
+                if (bloodType.contains(Content.rhFactor) &&
+                        bloodType.substring(bloodType.indexOf(Content.rhFactor))
+                                .contains(CatalogueUtil.removeSpecialChar(rhFactor))) {
+                    status = "0";
+                    return;
+                }
+            }
+        }
+    }
+}

+ 44 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0192.java

@@ -0,0 +1,44 @@
+package com.lantone.qc.kernel.catalogue.firstpagerecord;
+
+import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.pub.Content;
+import com.lantone.qc.pub.model.InputInfo;
+import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.model.doc.FirstPageRecordDoc;
+import com.lantone.qc.pub.model.doc.OperationDiscussionDoc;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @ClassName : FIRP0192
+ * @Description : 主要手术及操作名称与病程记录不一致
+ * @Author : 胡敬
+ * @Date: 2020-03-16 20:28
+ */
+@Component
+public class FIRP0192 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status = "0";
+        FirstPageRecordDoc firstPageRecordDoc = inputInfo.getFirstPageRecordDoc();
+        List<OperationDiscussionDoc> operationDiscussionDocs = inputInfo.getOperationDiscussionDocs();
+        if(firstPageRecordDoc != null && operationDiscussionDocs.size()>0 ){
+            Map<String, Object> firstPageRecordDocStructureMap = firstPageRecordDoc.getStructureExtMap();
+            OperationDiscussionDoc operationDiscussionDoc = operationDiscussionDocs.get(0);
+            Map<String, String> structureMap = operationDiscussionDoc.getStructureMap();
+            String opertaion = structureMap.get("手术方式");
+            List<Map<String, String>> mapList = (List<Map<String, String>>) firstPageRecordDocStructureMap.get(Content.operative_information);
+            if(mapList != null && mapList.size()>0){
+                Map<String, String> op = mapList.get(0);
+                String oName = op.get(Content.operative_name);
+                    if(StringUtils.isNotEmpty(opertaion) && !opertaion.equals(oName)){
+                        status = "-1";
+                }
+            }
+
+        }
+
+    }
+}

+ 47 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0193.java

@@ -0,0 +1,47 @@
+package com.lantone.qc.kernel.catalogue.firstpagerecord;
+
+import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.kernel.util.CatalogueUtil;
+import com.lantone.qc.pub.Content;
+import com.lantone.qc.pub.model.InputInfo;
+import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.model.doc.FirstPageRecordDoc;
+import com.lantone.qc.pub.model.doc.OperationDiscussionDoc;
+import org.apache.commons.lang3.StringUtils;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @ClassName : FIRP0193
+ * @Description :手术及操作名称填写不全
+ * @Author : 胡敬
+ * @Date: 2020-03-16 20:28
+ */
+@Component
+public class FIRP0193 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status = "0";
+        FirstPageRecordDoc firstPageRecordDoc = inputInfo.getFirstPageRecordDoc();
+        List<OperationDiscussionDoc> operationDiscussionDocs = inputInfo.getOperationDiscussionDocs();
+        if(firstPageRecordDoc != null && operationDiscussionDocs.size()>0 ){
+            Map<String, Object> firstPageRecordDocStructureMap = firstPageRecordDoc.getStructureExtMap();
+            OperationDiscussionDoc operationDiscussionDoc = operationDiscussionDocs.get(0);
+            Map<String, String> structureMap = operationDiscussionDoc.getStructureMap();
+            String opertaion = structureMap.get("手术方式");
+            List<Map<String, String>> mapList = (List<Map<String, String>>) firstPageRecordDocStructureMap.get(Content.operative_information);
+            if(mapList != null && mapList.size()>0){
+                for (Map<String, String> op :mapList) {
+                    String oName = op.get(Content.operative_name);
+                    if(StringUtils.isNotEmpty(opertaion) && !opertaion.contains(oName)){
+                        status = "-1";
+                        break;
+                    }
+                }
+            }
+
+        }
+
+    }
+}

+ 58 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0248.java

@@ -0,0 +1,58 @@
+package com.lantone.qc.kernel.catalogue.firstpagerecord;
+
+import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.kernel.util.CatalogueUtil;
+import com.lantone.qc.pub.Content;
+import com.lantone.qc.pub.model.InputInfo;
+import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.model.doc.RescueDoc;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * @ClassName : FIRP0248
+ * @Description : 抢救次数填写错误
+ * @Author : 楼辉荣
+ * @Date: 2020-03-06 17:28ss
+ */
+@Component
+public class FIRP0248 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status = "0";
+        if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
+            Map<String, String> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
+            String name = firstpageStructureMap.get(Content.rescue_condition);
+            if (!CatalogueUtil.isEmpty(name)){
+                String[] split = name.split("\\s+");
+                Pattern compile = Pattern.compile("(?<=抢救).*(?=次)");
+                Matcher matcher = compile.matcher(split[0]);
+                while (matcher.find()){
+                    try{
+                        String number = matcher.group(0);
+                        List<RescueDoc> rescueDocs = inputInfo.getRescueDocs();
+                        if(rescueDocs != null && rescueDocs.size()>0){
+                            int size = rescueDocs.size();
+                            try{
+                                int num = Integer.parseInt(number);
+                                if(num != size){
+                                    status = "-1";
+                                }
+                            }catch (Exception e){
+                                e.printStackTrace();
+                            }
+
+                        }
+                    }catch (Exception e){
+                        e.printStackTrace();
+                    }
+                }
+
+
+            }
+        }
+    }
+}

+ 67 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0250.java

@@ -0,0 +1,67 @@
+package com.lantone.qc.kernel.catalogue.firstpagerecord;
+
+import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.kernel.util.CatalogueUtil;
+import com.lantone.qc.pub.Content;
+import com.lantone.qc.pub.model.InputInfo;
+import com.lantone.qc.pub.model.OutputInfo;
+import com.lantone.qc.pub.model.doc.RescueDoc;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * @ClassName : FIRP0250
+ * @Description : 抢救成功次数填写错误
+ * @Author : 楼辉荣
+ * @Date: 2020-03-06 17:28ss
+ */
+@Component
+public class FIRP0250 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status = "0";
+        if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
+            Map<String, String> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
+            String name = firstpageStructureMap.get(Content.rescue_condition);
+            if (!CatalogueUtil.isEmpty(name)){
+                String[] split = name.split("\\s+");
+                Pattern compile = Pattern.compile("(?<=成功).*(?=次)");
+                Matcher matcher = compile.matcher(split[0]);
+                while (matcher.find()){
+                    try{
+                        String number = matcher.group(0);
+                        int i = 0;
+                        List<RescueDoc> rescueDocs = inputInfo.getRescueDocs();
+                        if(rescueDocs != null && rescueDocs.size()>0){
+                            for (RescueDoc re:rescueDocs
+                                 ) {
+                                Map<String, String> structureMap = re.getStructureMap();
+                                String qjgc = structureMap.get("抢救过程");
+                                if(!qjgc.contains("死亡")){
+                                    i++;
+                                }
+                            }
+
+                            try{
+                                int num = Integer.parseInt(number);
+                                if(num != i){
+                                    status = "-1";
+                                }
+                            }catch (Exception e){
+                                e.printStackTrace();
+                            }
+
+                        }
+                    }catch (Exception e){
+                        e.printStackTrace();
+                    }
+                }
+
+
+            }
+        }
+    }
+}

+ 12 - 8
kernel/src/main/java/com/lantone/qc/kernel/structure/ai/BeHospitalizedAI.java

@@ -8,7 +8,6 @@ import com.lantone.qc.kernel.structure.ai.model.EntityEnum;
 import com.lantone.qc.kernel.structure.ai.model.Lemma;
 import com.lantone.qc.kernel.structure.ai.process.*;
 import com.lantone.qc.kernel.util.CatalogueUtil;
-import com.lantone.qc.kernel.util.DiagEnhancer;
 import com.lantone.qc.pub.Content;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.doc.BeHospitalizedDoc;
@@ -82,11 +81,14 @@ public class BeHospitalizedAI {
             putContent(crfContent, medicalTextType.get(2), personal_text, Content.personal);
             //月经史
             String concatMenstrual = "";
-            if (personal_text.length() > 30) {
-                concatMenstrual = personal_text.substring(personal_text.length() - 30);
-            } else {
-                concatMenstrual = personal_text;
+            if(personal_text != null){
+                if (personal_text.length() > 30) {
+                    concatMenstrual = personal_text.substring(personal_text.length() - 30);
+                } else {
+                    concatMenstrual = personal_text;
+                }
             }
+
             putContent(crfContent, medicalTextType.get(2), concatMenstrual, menstrual_text, Content.menses);
             //婚育史
             putContent(crfContent, medicalTextType.get(2), marital_text, Content.marriage);
@@ -157,7 +159,8 @@ public class BeHospitalizedAI {
         PresentLabel presentLabel = inputInfo.getBeHospitalizedDoc().getPresentLabel();
         presentLabel.setClinicals(loadClinicals(aiOut));
         presentLabel.setGenerals(loadGeneralDes(aiOut));
-        presentLabel.setPacses(loadpacses(aiOut));
+        presentLabel.setPacses(loadPacses(aiOut));
+        presentLabel.setDiags(loadDiags(aiOut));
 
         EntityProcess entityProcess = new EntityProcess();
         List<Lemma> entityTree = entityProcess.createEntityTree(aiOut, EntityEnum.CURE.toString());
@@ -169,6 +172,7 @@ public class BeHospitalizedAI {
         }
         presentLabel.setTreats(treats);
 
+
     }
 
     /**
@@ -352,7 +356,7 @@ public class BeHospitalizedAI {
         JSONObject aiOut = jsonObject.getJSONObject(entityRelationObject).getJSONObject(BeHospitalizedAI.outputs);
         //放置入inputinfo
         PacsLabel pacsLabel = inputInfo.getBeHospitalizedDoc().getPacsLabel();
-        pacsLabel.setPacses(loadpacses(aiOut));
+        pacsLabel.setPacses(loadPacses(aiOut));
     }
 
     /**
@@ -400,7 +404,7 @@ public class BeHospitalizedAI {
      * @param aiOut
      * @return
      */
-    public List<Pacs> loadpacses(JSONObject aiOut) {
+    public List<Pacs> loadPacses(JSONObject aiOut) {
         //辅检信息
         EntityProcessPacs entityProcessLis = new EntityProcessPacs();
         List<Pacs> pacses = entityProcessLis.extractEntity(aiOut);

+ 3 - 2
public/src/main/java/com/lantone/qc/pub/Content.java

@@ -154,10 +154,11 @@ public class Content {
     public static final String radiation_pathology = "放射与病理";
 
     public static final String medical_classification = "病历分型";
+//    public static final String inStatus = "入院病情";
 
     public static final String outpatientEmergencyDiag = "门(急)诊诊断";
     public static final String diagCode = "诊断编码";
-    public static final String diagnose_name = "诊断名称";
+    public static final String diagnoseName = "诊断名称";
     public static final String inStatus = "入院情况";
     public static final String out_status = "出院情况";
     public static final String dischargeDiag = "出院诊断";
@@ -177,7 +178,7 @@ public class Content {
     public static final String allergy_drug = "过敏药物";
     public static final String deadAutopsy = "死亡患者尸检";
     public static final String bloodType="血型";
-    public static final String rhFactor="RH";
+    public static final String rhFactor="Rh";
     public static final String qc_quality="病案质量";
     public static final String qc_date="质控日期";
     public static final String qc_nurse="质控护士";

+ 18 - 3
public/src/main/java/com/lantone/qc/pub/util/ListUtil.java

@@ -79,11 +79,26 @@ public class ListUtil {
         return arrayList;
     }
 
+    /**
+     * 判断两个List是否相同,不考虑元素顺序
+     * @param firstList
+     * @param secondList
+     * @return
+     */
+    public static boolean equals(List firstList, List secondList) {
+        if(null != firstList && null != secondList){
+            if(firstList.containsAll(secondList) && secondList.containsAll(firstList)){
+                return true;
+            }
+        }
+        return false;
+    }
+
     public static void main(String[] args) throws Exception {
-        String[] i ={"A","B"};
+        String[] i = { "A", "B" };
         List<String> o = arrayToList(i);
-        System.out.println("输入参数:"+ i);
-        System.out.println("输出参数:"+ o);
+        System.out.println("输入参数:" + i);
+        System.out.println("输出参数:" + o);
     }
 }