Browse Source

修改bug

hujing 5 years ago
parent
commit
a69194d4fe

+ 4 - 4
kernel/src/main/java/com/lantone/qc/kernel/catalogue/dutyshiftsystem/DUT0296.java

@@ -3,13 +3,10 @@ package com.lantone.qc.kernel.catalogue.dutyshiftsystem;
 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.BeHospitalizedDoc;
 import com.lantone.qc.pub.model.doc.LeaveHospitalDoc;
 import com.lantone.qc.pub.util.StringUtil;
 import org.springframework.stereotype.Component;
 
-import java.text.ParseException;
-import java.text.SimpleDateFormat;
 import java.util.Calendar;
 import java.util.Date;
 import java.util.Map;
@@ -25,6 +22,7 @@ import java.util.Map;
 public class DUT0296 extends QCCatalogue {
     public static final String DATE_TIME_FORMAT_chanx = "yyyy-MM-dd HH:mm";
     public static final String DATE_TIME_FORMAT_tz = "yyyy/MM/dd HH:mm:ss";
+
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         status.set("0");
 
@@ -33,7 +31,9 @@ public class DUT0296 extends QCCatalogue {
             Map<String, String> structureMap_leave = leaveHospitalDoc.getStructureMap();
             String be_date = structureMap_leave.get("入院时间"); //2019-12-07 08:48
             String leave_date = structureMap_leave.get("出院时间");//2019-12-10 10:49
-            ffr(be_date, leave_date);
+            if (StringUtil.isNotBlank(be_date) && StringUtil.isNotBlank(leave_date)) {
+                ffr(be_date, leave_date);
+            }
         }
     }
 

+ 6 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/operationdiscussion/OPE0323.java

@@ -21,6 +21,12 @@ public class OPE0323 extends QCCatalogue {
     @Override
     protected void start(InputInfo inputInfo, OutputInfo outputInfo) throws ParseException {
         status.set("0");
+        //医嘱
+        //        List<DoctorAdviceDoc> doctorAdviceDocs = inputInfo.getDoctorAdviceDocs();
+        //        if (ListUtil.isEmpty(doctorAdviceDocs)) {
+        //            return;
+        //        }
+        //        boolean isOperativePatient = CatalogueUtil.isOperativePatients(doctorAdviceDocs);
         boolean isOperativePatient = true;//是手术患者(暂时默认是)
         if (isOperativePatient) {
             List<OperationDoc> operationDocs = inputInfo.getOperationDocs();

+ 6 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/operationdiscussion/OPE0350.java

@@ -8,7 +8,6 @@ import com.lantone.qc.pub.util.ListUtil;
 import com.lantone.qc.pub.util.StringUtil;
 import org.springframework.stereotype.Component;
 
-import java.text.ParseException;
 import java.util.List;
 
 /**
@@ -21,6 +20,12 @@ public class OPE0350 extends QCCatalogue {
     @Override
     protected void start(InputInfo inputInfo, OutputInfo outputInfo) {
         status.set("0");
+        //医嘱
+        //        List<DoctorAdviceDoc> doctorAdviceDocs = inputInfo.getDoctorAdviceDocs();
+        //        if (ListUtil.isEmpty(doctorAdviceDocs)) {
+        //            return;
+        //        }
+        //        boolean isOperativePatient = CatalogueUtil.isOperativePatients(doctorAdviceDocs);
         boolean isOperativePatient = true;//是手术患者(暂时默认是)
         if (isOperativePatient) {
             List<OperationDoc> operationDocs = inputInfo.getOperationDocs();

+ 6 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/operationdiscussion/OPE0351.java

@@ -5,7 +5,6 @@ import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
 import com.lantone.qc.pub.model.doc.operation.OperationDoc;
 import com.lantone.qc.pub.util.ListUtil;
-import com.lantone.qc.pub.util.StringUtil;
 import org.springframework.stereotype.Component;
 
 import java.util.List;
@@ -20,6 +19,12 @@ public class OPE0351 extends QCCatalogue {
     @Override
     protected void start(InputInfo inputInfo, OutputInfo outputInfo) {
         status.set("0");
+        //医嘱
+        //        List<DoctorAdviceDoc> doctorAdviceDocs = inputInfo.getDoctorAdviceDocs();
+        //        if (ListUtil.isEmpty(doctorAdviceDocs)) {
+        //            return;
+        //        }
+        //        boolean isOperativePatient = CatalogueUtil.isOperativePatients(doctorAdviceDocs);
         boolean isOperativePatient = true;//是手术患者(暂时默认是)
         if (isOperativePatient) {
             List<OperationDoc> operationDocs = inputInfo.getOperationDocs();

+ 6 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/operationdiscussion/OPE0352.java

@@ -20,6 +20,12 @@ public class OPE0352 extends QCCatalogue {
     @Override
     protected void start(InputInfo inputInfo, OutputInfo outputInfo) {
         status.set("0");
+        //医嘱
+        //        List<DoctorAdviceDoc> doctorAdviceDocs = inputInfo.getDoctorAdviceDocs();
+        //        if (ListUtil.isEmpty(doctorAdviceDocs)) {
+        //            return;
+        //        }
+        //        boolean isOperativePatient = CatalogueUtil.isOperativePatients(doctorAdviceDocs);
         boolean isOperativePatient = true;//是手术患者(暂时默认是)
         if (isOperativePatient) {
             List<OperationDoc> operationDocs = inputInfo.getOperationDocs();

+ 6 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/operationdiscussion/OPE0353.java

@@ -20,6 +20,12 @@ public class OPE0353 extends QCCatalogue {
     @Override
     protected void start(InputInfo inputInfo, OutputInfo outputInfo) {
         status.set("0");
+        //医嘱
+        //        List<DoctorAdviceDoc> doctorAdviceDocs = inputInfo.getDoctorAdviceDocs();
+        //        if (ListUtil.isEmpty(doctorAdviceDocs)) {
+        //            return;
+        //        }
+        //        boolean isOperativePatient = CatalogueUtil.isOperativePatients(doctorAdviceDocs);
         boolean isOperativePatient = true;//是手术患者(暂时默认是)
         if (isOperativePatient) {
             List<OperationDoc> operationDocs = inputInfo.getOperationDocs();

+ 6 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/operationdiscussion/OPE0355.java

@@ -22,6 +22,12 @@ public class OPE0355 extends QCCatalogue {
     @Override
     protected void start(InputInfo inputInfo, OutputInfo outputInfo) throws ParseException {
         status.set("0");
+        //医嘱
+        //        List<DoctorAdviceDoc> doctorAdviceDocs = inputInfo.getDoctorAdviceDocs();
+        //        if (ListUtil.isEmpty(doctorAdviceDocs)) {
+        //            return;
+        //        }
+        //        boolean isOperativePatient = CatalogueUtil.isOperativePatients(doctorAdviceDocs);
         boolean isOperativePatient = true;//是手术患者(暂时默认是)
         if (isOperativePatient) {
             List<OperationDoc> operationDocs = inputInfo.getOperationDocs();

+ 6 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/operationdiscussion/OPE0356.java

@@ -22,6 +22,12 @@ public class OPE0356 extends QCCatalogue {
     @Override
     protected void start(InputInfo inputInfo, OutputInfo outputInfo) throws ParseException {
         status.set("0");
+        //医嘱
+        //        List<DoctorAdviceDoc> doctorAdviceDocs = inputInfo.getDoctorAdviceDocs();
+        //        if (ListUtil.isEmpty(doctorAdviceDocs)) {
+        //            return;
+        //        }
+        //        boolean isOperativePatient = CatalogueUtil.isOperativePatients(doctorAdviceDocs);
         boolean isOperativePatient = true;//是手术患者(暂时默认是)
         if (isOperativePatient) {
             List<OperationDoc> operationDocs = inputInfo.getOperationDocs();

+ 6 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/operationdiscussion/OPE0357.java

@@ -22,6 +22,12 @@ public class OPE0357 extends QCCatalogue {
     @Override
     protected void start(InputInfo inputInfo, OutputInfo outputInfo) throws ParseException {
         status.set("0");
+        //医嘱
+        //        List<DoctorAdviceDoc> doctorAdviceDocs = inputInfo.getDoctorAdviceDocs();
+        //        if (ListUtil.isEmpty(doctorAdviceDocs)) {
+        //            return;
+        //        }
+        //        boolean isOperativePatient = CatalogueUtil.isOperativePatients(doctorAdviceDocs);
         boolean isOperativePatient = true;//是手术患者(暂时默认是)
         if (isOperativePatient) {
             List<OperationDoc> operationDocs = inputInfo.getOperationDocs();

+ 6 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/operationdiscussion/OPE0358.java

@@ -22,6 +22,12 @@ public class OPE0358 extends QCCatalogue {
     @Override
     protected void start(InputInfo inputInfo, OutputInfo outputInfo) throws ParseException {
         status.set("0");
+        //医嘱
+        //        List<DoctorAdviceDoc> doctorAdviceDocs = inputInfo.getDoctorAdviceDocs();
+        //        if (ListUtil.isEmpty(doctorAdviceDocs)) {
+        //            return;
+        //        }
+        //        boolean isOperativePatient = CatalogueUtil.isOperativePatients(doctorAdviceDocs);
         boolean isOperativePatient = true;//是手术患者(暂时默认是)
         if (isOperativePatient) {
             List<OperationDoc> operationDocs = inputInfo.getOperationDocs();

+ 6 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/operationdiscussion/OPE0359.java

@@ -22,6 +22,12 @@ public class OPE0359 extends QCCatalogue {
     @Override
     protected void start(InputInfo inputInfo, OutputInfo outputInfo) throws ParseException {
         status.set("0");
+        //医嘱
+        //        List<DoctorAdviceDoc> doctorAdviceDocs = inputInfo.getDoctorAdviceDocs();
+        //        if (ListUtil.isEmpty(doctorAdviceDocs)){
+        //            return;
+        //        }
+        //        boolean isOperativePatient = CatalogueUtil.isOperativePatients(doctorAdviceDocs);
         boolean isOperativePatient = true;//是手术患者(暂时默认是)
         if (isOperativePatient) {
             List<OperationDoc> operationDocs = inputInfo.getOperationDocs();

+ 23 - 7
kernel/src/main/java/com/lantone/qc/kernel/catalogue/operationdiscussion/OPE0370.java

@@ -1,14 +1,17 @@
 package com.lantone.qc.kernel.catalogue.operationdiscussion;
 
 import com.lantone.qc.kernel.catalogue.QCCatalogue;
+import com.lantone.qc.kernel.util.CatalogueUtil;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
 import com.lantone.qc.pub.model.doc.operation.OperationDoc;
+import com.lantone.qc.pub.model.doc.operation.OperationRecordDoc;
 import com.lantone.qc.pub.util.ListUtil;
 import org.springframework.stereotype.Component;
 
 import java.text.ParseException;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @Description: 手术患者缺术前讨论或术前小结
@@ -20,19 +23,32 @@ public class OPE0370 extends QCCatalogue {
     @Override
     protected void start(InputInfo inputInfo, OutputInfo outputInfo) throws ParseException {
         status.set("0");
+        //医嘱
+        //        List<DoctorAdviceDoc> doctorAdviceDocs = inputInfo.getDoctorAdviceDocs();
+        //        if (ListUtil.isEmpty(doctorAdviceDocs)) {
+        //            return;
+        //        }
+        //        boolean isOperativePatient = CatalogueUtil.isOperativePatients(doctorAdviceDocs);
         boolean isOperativePatient = true;//是手术患者(暂时默认是)
         if (isOperativePatient) {
             List<OperationDoc> operationDocs = inputInfo.getOperationDocs();
             if (ListUtil.isEmpty(operationDocs)) {
-                status.set("-1");
-            } else {
-                for (OperationDoc operationDoc : operationDocs) {
-                    if (operationDoc.getPreoperativeDiscussionDoc() == null) {
-                        status.set("-1");
-                        return;
-                    }
+                return;
+            }
+            for (OperationDoc operationDoc : operationDocs) {
+                OperationRecordDoc operationRecordDoc = operationDoc.getOperationRecordDoc();
+                if (operationRecordDoc == null) {
+                    continue;
+                }
+                Map<String, String> operationRecordStructureMap = operationRecordDoc.getStructureMap();
+                String preoperativeDiscussion = operationRecordStructureMap.get("术前讨论");
+                if (CatalogueUtil.isEmpty(preoperativeDiscussion)) {
+                    status.set("-1");
+                    return;
                 }
             }
+
+
         }
     }
 

+ 6 - 16
kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR0131.java

@@ -26,23 +26,8 @@ import java.util.Map;
 public class THR0131 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         status.set("0");
-        if (inputInfo.getBeHospitalizedDoc() != null && inputInfo.getBeHospitalizedDoc().getStructureMap() != null
-                && inputInfo.getThreeLevelWardDocs().size() > 0) {
-            Map<String, String> beHospitalStructureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
-            String admisTime = beHospitalStructureMap.get(Content.admisDate);
-            if (CatalogueUtil.isEmpty(admisTime)) {
-                return;
-            }
+        if (inputInfo.getThreeLevelWardDocs().size() > 0) {
             List<ThreeLevelWardDoc> threeLevelWardDocs = inputInfo.getThreeLevelWardDocs();
-            Map<String, Map<String, String>> doctorRecord = extractWardRecord(
-                    threeLevelWardDocs,
-                    admisTime,
-                    48 * 60);
-            if (doctorRecord.containsKey(Content.indications)) {
-                if (doctorRecord.get(Content.indications).get("病情记录").contains("鉴别诊断")) {
-                    return;
-                }
-            }
             for (ThreeLevelWardDoc threeLevelWardDoc : threeLevelWardDocs) {
                 List<ThreeLevelWardLabel> threeLevelWardLabels = threeLevelWardDoc.getThreeLevelWardLabel();
                 for (ThreeLevelWardLabel threeLevelWardLabel : threeLevelWardLabels) {
@@ -50,6 +35,11 @@ public class THR0131 extends QCCatalogue {
                             || !Content.indications.equals(threeLevelWardLabel.getTitle())) {
                         continue;
                     }
+                    if (threeLevelWardDoc.getText().contains("鉴别")
+                            || threeLevelWardDoc.getText().contains("诊断明确")
+                            || threeLevelWardDoc.getText().contains("无需鉴别")) {
+                        return;
+                    }
                     if (threeLevelWardLabel.getDiffDiag().size() == 0 && StringUtil.isBlank(threeLevelWardLabel.getDiffDiagText())) {
                         status.set("-1");
                         return;

+ 4 - 17
kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR0136.java

@@ -26,23 +26,8 @@ import java.util.Map;
 public class THR0136 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         status.set("0");
-        if (inputInfo.getBeHospitalizedDoc() != null && inputInfo.getBeHospitalizedDoc().getStructureMap() != null
-                && inputInfo.getThreeLevelWardDocs().size() > 0) {
-            Map<String, String> beHospitalStructureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
-            String admisTime = beHospitalStructureMap.get(Content.admisDate);
-            if (CatalogueUtil.isEmpty(admisTime)) {
-                return;
-            }
+        if (inputInfo.getThreeLevelWardDocs().size() > 0) {
             List<ThreeLevelWardDoc> threeLevelWardDocs = inputInfo.getThreeLevelWardDocs();
-            Map<String, Map<String, String>> doctorRecord = extractWardRecord(
-                    threeLevelWardDocs,
-                    admisTime,
-                    72 * 60);
-            if (doctorRecord.containsKey(Content.director)) {
-                if (doctorRecord.get(Content.director).get("病情记录").contains("鉴别诊断")) {
-                    return;
-                }
-            }
             for (ThreeLevelWardDoc threeLevelWardDoc : threeLevelWardDocs) {
                 List<ThreeLevelWardLabel> threeLevelWardLabels = threeLevelWardDoc.getThreeLevelWardLabel();
                 for (ThreeLevelWardLabel threeLevelWardLabel : threeLevelWardLabels) {
@@ -50,7 +35,9 @@ public class THR0136 extends QCCatalogue {
                             || !Content.director.equals(threeLevelWardLabel.getTitle())) {
                         continue;
                     }
-                    if (threeLevelWardDoc.getText().contains("鉴别诊断")) {
+                    if (threeLevelWardDoc.getText().contains("鉴别")
+                            || threeLevelWardDoc.getText().contains("诊断明确")
+                            || threeLevelWardDoc.getText().contains("无需鉴别")) {
                         return;
                     }
                     if (threeLevelWardLabel.getDiffDiag().size() == 0 && StringUtil.isBlank(threeLevelWardLabel.getDiffDiagText())) {

+ 27 - 1
kernel/src/main/java/com/lantone/qc/kernel/structure/ai/process/EntityProcessThreeLevelWard.java

@@ -72,7 +72,7 @@ public class EntityProcessThreeLevelWard extends EntityProcess {
                     continue;
                 }
                 Diag diag = new Diag();
-                diag.setName(dieaseLemma.getText());
+                diag.setHospitalDiagName(dieaseLemma.getText());
                 diags.add(diag);
             }
             threeLevelWardLabel.setDiffDiag(diags);
@@ -85,6 +85,13 @@ public class EntityProcessThreeLevelWard extends EntityProcess {
             }
         }
 
+        //没有诊断依据和鉴别诊断情况下,添加诊断
+        if (titleText.get(EntityEnum.TITLE_FOR_DIAG_BASIS.toString()) == null
+                && titleText.get(EntityEnum.TITLE_FOR_DIFF.toString()) == null){
+            //补充诊断/初步诊断/修正诊断
+            addDiag(threeLevelWardLabel, diagLemmas);
+        }
+
         //查体
         List<Lemma> signLemmas = createEntityTree(aiOut, EntityEnum.PHYSICAL_EXAMINATION.toString());
         List<Sign> signs = new ArrayList<>();
@@ -258,4 +265,23 @@ public class EntityProcessThreeLevelWard extends EntityProcess {
         }
     }
 
+    /**
+     * 没有诊断依据和鉴别诊断情况下,添加诊断
+     * @param threeLevelWardLabel
+     * @param diagLemmas
+     */
+    private void addDiag(ThreeLevelWardLabel threeLevelWardLabel, List<Lemma> diagLemmas) {
+        List<Diag> diags = new ArrayList<>();
+        for (Lemma lemma : diagLemmas) {
+            Diag diag = new Diag();
+            diag.setHospitalDiagName(lemma.getText());
+            diags.add(diag);
+        }
+        if (threeLevelWardLabel.getDiags().size() == 0) {
+            threeLevelWardLabel.setDiags(diags);
+        } else {
+            threeLevelWardLabel.getDiags().addAll(diags);
+        }
+    }
+
 }