Browse Source

新增七院规则,云平台管理暂未添加,类名需要在增加之后更改

zhanghang 4 years atrás
parent
commit
10349c4338

+ 54 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hangzhoudiqi/behospitalized/BHE0988.java

@@ -0,0 +1,54 @@
+package com.lantone.qc.kernel.catalogue.hangzhoudiqi.behospitalized;
+
+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.MedicalRecordInfoDoc;
+import com.lantone.qc.pub.model.entity.Clinical;
+import com.lantone.qc.pub.model.entity.PD;
+import com.lantone.qc.pub.model.label.PresentLabel;
+import com.lantone.qc.pub.util.ListUtil;
+import com.lantone.qc.pub.util.StringUtil;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @ClassName : BHE0988
+ * @Description :  现病史症状缺少持续时间
+ * @Author : 楼辉荣
+ * @Date: 2020-03-06 17:28
+ */
+@Component
+public class BHE0988 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        if (inputInfo.getBeHospitalizedDoc() == null) {
+            status.set("0");
+            return;
+        }
+        //修改该规则只适用于神经内科
+        MedicalRecordInfoDoc medicalRecordInfoDoc = inputInfo.getMedicalRecordInfoDoc();
+        Map<String, String> structureMap = medicalRecordInfoDoc.getStructureMap();
+        if(!Content.neurology.equals(structureMap.get("behDeptName"))){
+            return;
+        }
+        PresentLabel presentLabel = inputInfo.getBeHospitalizedDoc().getPresentLabel();
+        if (presentLabel == null) {
+            status.set("0");
+            return;
+        }
+        //暂取主述中时间
+        List<Clinical> clinicals = presentLabel.getClinicals();
+        if (clinicals.size() > 0) {
+            for (Clinical clinical : clinicals) {
+                List<PD> timestamp = clinical.getTimestamp();
+                if (ListUtil.isNotEmpty(timestamp)) {
+                    status.set("0");
+                    return;
+                }
+            }
+        }
+    }
+}

+ 45 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hangzhoudiqi/behospitalized/BHE0989.java

@@ -0,0 +1,45 @@
+package com.lantone.qc.kernel.catalogue.hangzhoudiqi.behospitalized;
+
+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.doc.MedicalRecordInfoDoc;
+import com.lantone.qc.pub.util.StringUtil;
+import org.springframework.stereotype.Component;
+
+import java.util.Map;
+
+/**
+ * @ClassName : BHE0989
+ * @Description :  入院记录身份号填写与病案首页不一致
+ * @Author : 楼辉荣
+ * @Date: 2020-03-06 17:28
+ */
+@Component
+public class BHE0989 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        if (inputInfo.getBeHospitalizedDoc() == null) {
+            status.set("0");
+            return;
+        }
+        String idNumber = inputInfo.getBeHospitalizedDoc().getStructureMap().get(Content.idNumber);
+        //入院记录存在身份证号
+        if(StringUtil.isEmpty(idNumber)){
+            status.set("0");
+            return;
+        }
+        //病案首页不存在
+        if(inputInfo.getFirstPageRecordDoc()==null){
+            status.set("-1");
+            return;
+        }
+        //首页身份证号
+        String FirIdNumber = inputInfo.getFirstPageRecordDoc().getStructureMap().get(Content.idNumber);
+        if(idNumber.equals(FirIdNumber)){
+            status.set("0");
+            return;
+        }
+    }
+}

+ 10 - 4
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hangzhoudiqi/firstpagerecord/FIRP0195.java

@@ -40,15 +40,21 @@ public class FIRP0195 extends QCCatalogue {
             wardOutWay = "死亡";
             if (!match(outWay, wardOutWay)) {
                 status.set("-1");
+                return;
             }
             //增加判断,如有死亡记录,开医嘱离院需扣分
             List<DoctorAdviceDoc> doctorAdviceDocs = inputInfo.getDoctorAdviceDocs();
             if(doctorAdviceDocs!=null) {
-                Map<String, String> structureMap = deathCaseDiscussDoc.getStructureMap();
-                String name = structureMap.get(Content.medicalName);
-                if(name.contains("出院")){
-                    status.set("-1");
+                for (DoctorAdviceDoc doctorAdviceDoc : doctorAdviceDocs) {
+                    String name = doctorAdviceDoc.getStructureMap().get(Content.medicalName);
+                    if(StringUtil.isNotEmpty(name)) {
+                        if (name.contains("出院")) {
+                            status.set("-1");
+                            return;
+                        }
+                    }
                 }
+
             }
         }
 

+ 49 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hangzhoudiqi/medicalwriting/MEDI0998.java

@@ -0,0 +1,49 @@
+package com.lantone.qc.kernel.catalogue.hangzhoudiqi.medicalwriting;
+
+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.DoctorAdviceDoc;
+import com.lantone.qc.pub.util.StringUtil;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+
+/**
+ * @ClassName : MEDI0999
+ * @Description :病重患者无病重通知单
+ * @Author : 楼辉荣
+ * @Date: 2020-03-28 17:32
+ */
+@Component
+public class MEDI0998 extends QCCatalogue {
+    @Override
+    protected void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        boolean flag =false;
+        //无医嘱
+        if(inputInfo.getDoctorAdviceDocs()==null){
+            status.set("0");
+            return;
+        }
+        //医嘱为病危患者
+        List<DoctorAdviceDoc> doctorAdviceDocs = inputInfo.getDoctorAdviceDocs();
+        for (DoctorAdviceDoc doctorAdviceDoc : doctorAdviceDocs) {
+            String medicalName = doctorAdviceDoc.getStructureMap().get(Content.medicalName);
+            if(StringUtil.isNotEmpty(medicalName)){
+                if(medicalName.contains("病重")){
+                    status.set("-1");
+                    flag=true;
+                }
+            }
+        }
+        //看是否含有病重通知书
+        if(flag){
+            if(inputInfo.getSeriouslyIllNoticeDocs()!=null){
+                status.set("0");
+                return;
+            }
+
+        }
+    }
+}

+ 50 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hangzhoudiqi/medicalwriting/MEDI0999.java

@@ -0,0 +1,50 @@
+package com.lantone.qc.kernel.catalogue.hangzhoudiqi.medicalwriting;
+
+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.DoctorAdviceDoc;
+import com.lantone.qc.pub.util.StringUtil;
+import org.springframework.stereotype.Component;
+
+import java.text.ParseException;
+import java.util.List;
+
+/**
+ * @ClassName : MEDI0999
+ * @Description :病危患者无病重通知单
+ * @Author : 楼辉荣
+ * @Date: 2020-03-28 17:32
+ */
+@Component
+public class MEDI0999 extends QCCatalogue {
+    @Override
+    protected void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        boolean flag =false;
+        //无医嘱
+        if(inputInfo.getDoctorAdviceDocs()==null){
+            status.set("0");
+            return;
+        }
+        //医嘱为病危患者
+        List<DoctorAdviceDoc> doctorAdviceDocs = inputInfo.getDoctorAdviceDocs();
+        for (DoctorAdviceDoc doctorAdviceDoc : doctorAdviceDocs) {
+            String medicalName = doctorAdviceDoc.getStructureMap().get(Content.medicalName);
+            if(StringUtil.isNotEmpty(medicalName)){
+                if(medicalName.contains("病危")){
+                    status.set("-1");
+                    flag=true;
+                }
+            }
+        }
+        //看是否含有病危通知书
+        if(flag){
+            if(inputInfo.getCriticallyIllNoticeDocs()!=null){
+                status.set("0");
+                return;
+            }
+
+        }
+    }
+}