Преглед на файлове

宁海第一人民医院代码入合并分支

wangsy преди 3 години
родител
ревизия
7f1699a777

+ 7 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0163.java

@@ -5,6 +5,7 @@ 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.util.StringUtil;
 import org.springframework.stereotype.Component;
 
 import java.util.Map;
@@ -18,12 +19,17 @@ import java.util.Map;
 @Component
 public class FIRP0163 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        if (inputInfo.getFirstPageRecordDoc() == null){
+        if (inputInfo.getFirstPageRecordDoc() == null) {
             status.set("0");
             return;
         }
         if (inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
             Map<String, String> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
+            String nationality = firstpageStructureMap.get(Content.nationality);
+            if (StringUtil.isNotBlank(nationality) && !"中国".equals(nationality)) {
+                status.set("0");
+                return;
+            }
             String idNumber = firstpageStructureMap.get(Content.idNumber);
             if (!CatalogueUtil.isEmpty(idNumber)) {
                 status.set("0");

+ 3 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0166.java

@@ -31,6 +31,9 @@ public class FIRP0166 extends QCCatalogue {
             }
             firstAdmissionMarry = firstAdmissionMarry.replace("离异","离婚");
             admissionMarry = admissionMarry.replace("离异","离婚");
+            if (firstAdmissionMarry.equals("丧偶") && admissionMarry.contains("已故")) {
+                return;
+            }
             if (!CatalogueUtil.compareToken(firstAdmissionMarry, admissionMarry)) {
                 status.set("-1");
             }

+ 31 - 7
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0184.java

@@ -5,8 +5,13 @@ 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.BeHospitalizedDoc;
+import com.lantone.qc.pub.model.entity.AllergyMedicine;
+import com.lantone.qc.pub.model.label.PastLabel;
+import com.lantone.qc.pub.util.StringUtil;
 import org.springframework.stereotype.Component;
 
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -18,16 +23,35 @@ import java.util.Map;
 @Component
 public class FIRP0184 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        if (inputInfo.getFirstPageRecordDoc() == null){
-            status.set("0");
+        status.set("0");
+        BeHospitalizedDoc beHospitalizedDoc = inputInfo.getBeHospitalizedDoc();
+        if (inputInfo.getFirstPageRecordDoc() == null || beHospitalizedDoc == null) {
             return;
         }
-        if (inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
-            Map<String, String> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
+        Map<String, String> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
+        PastLabel pastLabel = beHospitalizedDoc.getPastLabel();
+        if (pastLabel == null) {
+            return;
+        }
+        List<AllergyMedicine> allergyMedicines = pastLabel.getAllergyMedicines();
+        if (allergyMedicines == null) {
+            return;
+        }
+
+        long count = allergyMedicines.stream().filter(allergyMedicine -> {
+            boolean flag = false;
+            if (allergyMedicine.getNegative() == null
+                    && StringUtil.isNotBlank(allergyMedicine.getName())) {
+                flag = true;
+            }
+            return flag;
+        }).count();
+
+        if (count > 0 && firstpageStructureMap != null) {
             String drugAllergy = firstpageStructureMap.get(Content.drugAllergy);
-//            String allergyDrug = firstpageStructureMap.get(Content.allergyDrug);
-            if (!CatalogueUtil.isEmpty(drugAllergy)) {
-                status.set("0");
+            if (CatalogueUtil.isEmpty(drugAllergy)) {
+                status.set("-1");
+                return;
             }
         }
     }

+ 11 - 12
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0193.java

@@ -33,19 +33,18 @@ public class FIRP0193 extends QCCatalogue {
         List<OperationDoc> operationDocs = inputInfo.getOperationDocs();
         List<String> operations = new ArrayList<>();
         List<String> operations_first = new ArrayList<>();
-        if (operationDocs == null) {
-            return;
-        }
-        for (OperationDoc opd : operationDocs) {
-            OperationDiscussionDoc operationDiscussionDoc = opd.getOperationDiscussionDoc();
-            if (operationDiscussionDoc == null) {
-                continue;
-            }
-            String operativeMethod = operationDiscussionDoc.getStructureMap().get("手术方式");
-            if (StringUtil.isBlank(operativeMethod)) {
-                continue;
+        if (ListUtil.isNotEmpty(operationDocs)) {
+            for (OperationDoc opd : operationDocs) {
+                OperationDiscussionDoc operationDiscussionDoc = opd.getOperationDiscussionDoc();
+                if (operationDiscussionDoc == null) {
+                    continue;
+                }
+                String operativeMethod = operationDiscussionDoc.getStructureMap().get("手术方式");
+                if (StringUtil.isBlank(operativeMethod)) {
+                    continue;
+                }
+                operations.add(operativeMethod);
             }
-            operations.add(operativeMethod);
         }
         Map<String, Object> firstPageRecordDocStructureMap = firstPageRecordDoc.getStructureExtMap();
         List<Map<String, String>> mapList = (List<Map<String, String>>) firstPageRecordDocStructureMap.get(Content.operative_information);

+ 1 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0196.java

@@ -19,6 +19,7 @@ import java.util.Map;
 public class FIRP0196 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         /**
+         * 入院记录中现病史未描述昏迷,不提示规则
          * 如果入院前天数和入院后天数不为空,且不是数字,例如是“-”,就不报错
          * 如果天数是数字,那么小时和分都不能为空
          */

+ 6 - 2
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0255.java

@@ -5,6 +5,8 @@ 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.LeaveHospitalDoc;
+import com.lantone.qc.pub.util.StringUtil;
 import org.springframework.stereotype.Component;
 
 import java.util.Map;
@@ -19,10 +21,12 @@ import java.util.Map;
 public class FIRP0255 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         status.set("0");
-        if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
+        LeaveHospitalDoc leaveHospitalDoc = inputInfo.getLeaveHospitalDoc();
+        if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null && leaveHospitalDoc != null) {
+            Map<String, String> leaveHospitalStructureMap = leaveHospitalDoc.getStructureMap();
             Map<String, String> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
             String name = firstpageStructureMap.get(Content.outcome);
-            if (CatalogueUtil.isEmpty(name)){
+            if (CatalogueUtil.isEmpty(name) && StringUtil.isNotBlank(leaveHospitalStructureMap.get("治疗结果"))) {
                 status.set("-1");
             }
         }

+ 10 - 9
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP03038.java

@@ -23,27 +23,28 @@ import java.util.Map;
 public class FIRP03038 extends QCCatalogue {
     @Autowired
     private SpecialStorageUtil specialStorageUtil;
+
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         status.set("0");
         if (inputInfo.getFirstPageRecordDoc() == null) {
             return;
         }
-        Map<String, Map<String,String>> hostpital_standDiag = specialStorageUtil.getJsonStringValue(KernelConstants.HOSPITAL_DIAG_MAP);
+        Map<String, Map<String, String>> hostpital_standDiag = specialStorageUtil.getJsonStringValue(KernelConstants.HOSPITAL_DIAG_MAP);
         if (inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
             Map<String, Object> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureExtMap();
-            JSONArray out_diag = (JSONArray)firstpageStructureMap.get("出院诊断");
+            JSONArray out_diag = (JSONArray) firstpageStructureMap.get("出院诊断");
             if (out_diag.size() > 0) {
-                for (int i=0;i<out_diag.size();i++) {
+                for (int i = 0; i < out_diag.size(); i++) {
                     JSONObject jsonObject = out_diag.getJSONObject(i);
-                    String diag_code = (String)jsonObject.get("诊断编码");
+                    String diag_code = (String) jsonObject.get("诊断编码");
                     String diag_name = (String) jsonObject.get("诊断名称");
-                    if(StringUtils.isNotBlank(diag_code) && hostpital_standDiag.containsKey(diag_name)){
-                        Map<String,String> s = hostpital_standDiag.get(diag_name);
-                        if(s != null){
+                    if (StringUtils.isNotBlank(diag_code) && hostpital_standDiag.containsKey(diag_name)) {
+                        Map<String, String> s = hostpital_standDiag.get(diag_name);
+                        if (s != null) {
                             String icd10 = s.get("icd10");
-                            if(StringUtils.isNotBlank(icd10) && icd10.equals(diag_code)){
+                            if (StringUtils.isNotBlank(icd10) && icd10.equals(diag_code)) {
                                 status.set("0");
-                            }else {
+                            } else {
                                 status.set("-1");
                                 return;
                             }