Browse Source

病案首页添加规则

kongwz 5 năm trước cách đây
mục cha
commit
eef198ac72

+ 31 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0240.java

@@ -0,0 +1,31 @@
+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 org.springframework.stereotype.Component;
+
+import java.util.Map;
+
+/**
+ * @ClassName : FIRP0240
+ * @Description : 病历分型未填写
+ * @Author : 楼辉荣
+ * @Date: 2020-03-06 17:28ss
+ */
+@Component
+public class FIRP0240 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 outDept = firstpageStructureMap.get(Content.medical_classification);
+            if(CatalogueUtil.isEmpty(outDept)){
+                status = "-1";
+            }
+
+        }
+    }
+}

+ 36 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0244.java

@@ -0,0 +1,36 @@
+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 org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @ClassName : FIRP0244
+ * @Description :  手术切口等级填写的与手术记录不一致
+ * @Author : 楼辉荣
+ * @Date: 2020-03-06 17:28ss
+ */
+@Component
+public class FIRP0244 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();
+            List<Map<String, String>> operative_information = (List<Map<String, String>>) firstpageStructureMap.get(Content.operative_information);
+            if(operative_information != null && operative_information.size()>0){
+                for (Map<String,String> opInfo:operative_information) {
+                    if(!CatalogueUtil.isEmpty(opInfo.get(Content.operative_name)) && CatalogueUtil.isEmpty(opInfo.get(Content.notch_grade))){
+                        status = "-1";
+                        break;
+                    }
+                }
+            }
+        }
+    }
+}

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

@@ -20,7 +20,7 @@ import java.util.Map;
 public class FIRP0245 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         status = "0";
-        if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
+        if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureExtMap() != null) {
             Map<String, Object> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureExtMap();
             List<Map<String, String>> operative_information = (List<Map<String, String>>) firstpageStructureMap.get(Content.operative_information);
             if(operative_information != null && operative_information.size()>0){

+ 13 - 2
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0246.java

@@ -7,6 +7,7 @@ import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
 import org.springframework.stereotype.Component;
 
+import java.util.List;
 import java.util.Map;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
@@ -20,8 +21,18 @@ import java.util.regex.Pattern;
 @Component
 public class FIRP0246 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
-        if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureMap() != null) {
-            Map<String, String> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
+        status = "0";
+        if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureExtMap() != null) {
+            Map<String, Object> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureExtMap();
+            List<Map<String, String>> operative_information = (List<Map<String, String>>) firstpageStructureMap.get(Content.operative_information);
+            if (operative_information != null && operative_information.size() > 0) {
+                for (Map<String, String> opInfo : operative_information) {
+                    if (!CatalogueUtil.isEmpty(opInfo.get(Content.operative_name)) && CatalogueUtil.isEmpty(opInfo.get(Content.healing_level))) {
+                        status = "-1";
+                        break;
+                    }
+                }
+            }
 
         }
     }

+ 30 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0257.java

@@ -0,0 +1,30 @@
+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 org.springframework.stereotype.Component;
+
+import java.util.Map;
+
+/**
+ * @ClassName : FIRP0257
+ * @Description : 门诊诊断与住院诊断符合情况填写错误
+ * @Author : 楼辉荣
+ * @Date: 2020-03-06 17:28
+ */
+@Component
+public class FIRP0257 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status = "0";
+        if (inputInfo.getFirstPageRecordDoc() != null && inputInfo.getFirstPageRecordDoc().getStructureExtMap() != null) {
+            Map<String, Object> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureExtMap();
+            Map<String,String> map = (Map) firstpageStructureMap.get(Content.diagnose_cts);
+            if (CatalogueUtil.isEmpty(map.get(Content.o_i))){
+                status = "-1";
+            }
+        }
+    }
+}

+ 42 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0272.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 org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @ClassName : FIRP0272
+ * @Description : 出院诊断顺序不规范
+    与出院小结里的出院诊断顺序做比较
+ * @Date: 2020-03-14 16:24
+ */
+@Component
+public class FIRP0272 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        if(inputInfo.getLeaveHospitalDoc() != null && inputInfo.getFirstPageRecordDoc() != null){
+            //出院诊断
+            List<Diag> diags = inputInfo.getLeaveHospitalDoc().getLeaveDiagLabel().getDiags();
+            Map<String, Object> firstPageMap = inputInfo.getFirstPageRecordDoc().getStructureExtMap();
+            if(firstPageMap != null){
+                List<String> outDiags = (List<String>) firstPageMap.get(Content.dischargeDiag);
+                if(outDiags != null && diags != null){
+                    if(outDiags.size() == diags.size()){
+                        if(outDiags.containsAll(diags)){
+                            status = "0";
+                        }
+                    }
+                }else {
+                    status = "0";
+                }
+            }
+        }
+
+    }
+}

+ 5 - 7
public/src/main/java/com/lantone/qc/pub/Content.java

@@ -151,12 +151,11 @@ public class Content {
     public static final String clinical_pathology = "临床与病理";
     public static final String radiation_pathology = "放射与病理";
 
-    public static final String outpatientEmergencyDiag = "门(急)诊诊断";
+    public static final String medical_classification = "病历分型";
+
+    public static final String outpatientEmergencyDiag = "门急诊诊断";
     public static final String diagCode = "诊断编码";
     public static final String diagnose_name = "诊断名称";
-    public static final String inStatus = "入院情况";
-    public static final String outStatus = "出院情况";
-
     public static final String in_status = "入院情况";
     public static final String out_status = "出院情况";
     public static final String dischargeDiag = "出院诊断";
@@ -174,7 +173,7 @@ public class Content {
     public static final String actualStay = "实际住院天数";//病案首页用
     public static final String drugAllergy = "药物过敏";
     public static final String allergy_drug = "过敏药物";
-    public static final String deadAutopsy = "死亡患者尸检";
+    public static final String dead_autopsy = "死亡患者尸检";
     public static final String bloodType="血型";
     public static final String rhFactor="RH";
     public static final String qc_quality="病案质量";
@@ -203,9 +202,8 @@ public class Content {
     public static final String anesthesia_mode="麻醉方式";
     public static final String anesthesia_doctor="麻醉医师";
     public static final String outWay="离院方式";
-    public static final String brainInjuryComaTime="颅脑损伤患者昏迷时间";
     public static final String daCode="医嘱转院机构名称";
-    public static final String reHospitalization="是否有出院31天内再住院计划";
+    public static final String re_hospitalization="31天内再住院计划";