Просмотр исходного кода

Merge branch 'hb/beilun_20210816' into hb/debug

zhanghang 3 лет назад
Родитель
Сommit
1255481e08

+ 5 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/clinicalblood/CLI0301.java

@@ -75,7 +75,11 @@ public class CLI0301 extends QCCatalogue {
             if (ListUtil.isNotEmpty(informedConsentDocList)) {
                 for (InformedConsentDoc informedConsentDoc : informedConsentDocList) {
                     String str = informedConsentDoc.getStructureMap().get("标题");
-                    if(Content.BLOODRECORDLIST.contains(str)){
+                    if(StringUtil.isBlank(str)){
+                        continue;
+                    }
+                    String rex="[\\s\\S]*(?=输血)[^,;,;。]{0,10}(?=知情同意书)[\\s\\S]*";
+                    if(Content.BLOODRECORDLIST.contains(str)||str.matches(rex)){
                         status.set("0");
                         return;
                     }

+ 14 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/operationdiscussion/OPE0358.java

@@ -1,6 +1,7 @@
 package com.lantone.qc.kernel.catalogue.operationdiscussion;
 
 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.operation.OperationDoc;
@@ -38,8 +39,10 @@ public class OPE0358 extends QCCatalogue {
             if (ListUtil.isNotEmpty(operationDocs)) {
                 long count = operationDocs.stream().filter(operationDoc -> {
                     boolean flag = false;
+                    String key = getKeyByHospitalId();
+                    String str = operationDoc.getOperationRecordDoc().getStructureMap().get(key);
                     if (operationDoc.getOperationRecordDoc() != null
-                            && StringUtil.isBlank(operationDoc.getOperationRecordDoc().getStructureMap().get("术中后诊断"))) {
+                            && StringUtil.isBlank(str)) {
                         flag = true;
                     }
                     return flag;
@@ -51,4 +54,14 @@ public class OPE0358 extends QCCatalogue {
 //        }
     }
 
+    private String getKeyByHospitalId() {
+        switch (Content.hospital_Id)
+        {
+            case "3":
+                return "术后诊断";
+            default:
+                return "术中后诊断";
+        }
+    }
+
 }

+ 1 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR03112.java

@@ -42,7 +42,7 @@ public class THR03112 extends QCCatalogue {
                             String daItemName = doctorAdviceDocStructureMap.get(Content.medicalOrderName);
                             String nameSs = doctorAdviceDocStructureMap.get("医嘱处方类型");
                             if (StringUtil.isNotEmpty(daItemName) && StringUtil.isNotEmpty(nameSs)) {
-                                if (dateStr(daItemName) && nameSs.equals("检查")|| nameSs.equals("放射医嘱")) {
+                                if (dateStr(daItemName) && (nameSs.equals("检查")||nameSs.equals("RAD")|| nameSs.equals("放射医嘱"))) {
                                     flag = true;
                                     status.set("-1");
                                 }

+ 1 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR03114.java

@@ -43,7 +43,7 @@ public class THR03114 extends QCCatalogue {
                             String daItemName = doctorAdviceDocStructureMap.get(Content.medicalOrderName);
                             String nameSs = doctorAdviceDocStructureMap.get("医嘱处方类型");
                             if (StringUtil.isNotEmpty(daItemName)&&StringUtil.isNotEmpty(nameSs)) {
-                                if (dateStr(daItemName)&&(nameSs.equals("检查")||nameSs.equals("LAB")|| nameSs.equals("放射医嘱"))) {
+                                if (dateStr(daItemName)&&(nameSs.equals("检查")||nameSs.equals("RAD")|| nameSs.equals("放射医嘱"))) {
                                     flag = true;
                                     status.set("-1");
                                 }

+ 1 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR03115.java

@@ -44,7 +44,7 @@ public class THR03115 extends QCCatalogue {
                             String daItemName = doctorAdviceDocStructureMap.get(Content.medicalOrderName);
                             String nameSs = doctorAdviceDocStructureMap.get("医嘱处方类型");
                             if (StringUtil.isNotEmpty(daItemName) && StringUtil.isNotEmpty(nameSs)) {
-                                if (dateStr(daItemName) && (nameSs.equals("检查") || nameSs.equals("LAB")|| nameSs.equals("放射医嘱"))) {
+                                if (dateStr(daItemName) && (nameSs.equals("检查") || nameSs.equals("RAD")|| nameSs.equals("放射医嘱"))) {
                                     flag = true;
                                     status.set("-1");
                                 }

+ 5 - 2
kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR03137.java

@@ -120,13 +120,16 @@ public class THR03137 extends QCCatalogue {
 
         //2.1不存在【转入记录】或【转出记录】与【转入记录】数量不一致则报
         TransferRecordDoc transferRecordDocs = inputInfo.getTransferRecordDocs();
-        status.set("0");
         if(transferRecordDocs==null){
             return;
         }
         List<TransferIntoDoc> transferIntoDocs = transferRecordDocs.getTransferIntoDocs();
         List<TransferOutDoc> transferOutDocs = transferRecordDocs.getTransferOutDocs();
-        if(ListUtil.isEmpty(transferIntoDocs) || (transferIntoDocs.size()>0 && transferIntoDocs.size() != transferOutDocs.size())){
+        status.set("0");
+        if(ListUtil.isEmpty(transferOutDocs)){
+            return;
+        }
+        if(ListUtil.isEmpty(transferIntoDocs) || (transferIntoDocs.size()>0 && transferIntoDocs.size() < transferOutDocs.size())){
             status.set("-1");
             return;
         }

+ 5 - 2
kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR03138.java

@@ -120,13 +120,16 @@ public class THR03138 extends QCCatalogue {
 
         //2.1不存在【转出记录】或【转出记录】与【转入记录】数量不一致则报
         TransferRecordDoc transferRecordDocs = inputInfo.getTransferRecordDocs();
-        status.set("0");
         if(transferRecordDocs==null){
             return;
         }
         List<TransferIntoDoc> transferIntoDocs = transferRecordDocs.getTransferIntoDocs();
         List<TransferOutDoc> transferOutDocs = transferRecordDocs.getTransferOutDocs();
-        if(ListUtil.isEmpty(transferOutDocs) || (transferOutDocs.size()>0 && transferIntoDocs.size()!= transferOutDocs.size())){
+        status.set("0");
+        if(ListUtil.isEmpty(transferIntoDocs)){
+            return;
+        }
+        if(ListUtil.isEmpty(transferOutDocs) || (transferOutDocs.size()>0 && transferIntoDocs.size() > transferOutDocs.size())){
             status.set("-1");
             return;
         }

+ 12 - 2
kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR03150.java

@@ -115,10 +115,20 @@ public class THR03150 extends QCCatalogue {
             falg=true;
             if(StringUtil.isBlank(doctorStartTime)){
                 if(ListUtil.isNotEmpty(criticallyIllNoticeDocs)){
-                    doctorStartTime = criticallyIllNoticeDocs.get(0).getStructureMap().get("审核日期");
+                    String medicalRecordTime = criticallyIllNoticeDocs.get(0).getStructureMap().get("病历日期");
+                    if(StringUtil.isNotBlank(medicalRecordTime)){
+                        doctorStartTime=medicalRecordTime;
+                    }else {
+                        doctorStartTime = criticallyIllNoticeDocs.get(0).getStructureMap().get("审核日期");
+                    }
                 }
                 if(ListUtil.isNotEmpty(seriouslyIllNoticeDocs)){
-                    doctorStartTime = seriouslyIllNoticeDocs.get(0).getStructureMap().get("审核日期");
+                    String medicalRecordTime = seriouslyIllNoticeDocs.get(0).getStructureMap().get("病历日期");
+                    if(StringUtil.isNotBlank(medicalRecordTime)){
+                        doctorStartTime=medicalRecordTime;
+                    }else {
+                        doctorStartTime = seriouslyIllNoticeDocs.get(0).getStructureMap().get("审核日期");
+                    }
                 }
             }
         }

+ 1 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR3113.java

@@ -43,7 +43,7 @@ public class THR3113 extends QCCatalogue {
                             String daItemName = doctorAdviceDocStructureMap.get(Content.medicalOrderName);
                             String nameSs = doctorAdviceDocStructureMap.get("医嘱处方类型");
                             if (StringUtil.isNotEmpty(daItemName) && StringUtil.isNotEmpty(nameSs)) {
-                                if (dateStr(daItemName) && nameSs.equals("检查")|| nameSs.equals("放射医嘱")) {
+                                if (dateStr(daItemName) && (nameSs.equals("检查")||nameSs.equals("RAD")|| nameSs.equals("放射医嘱"))) {
                                     flag = true;
                                     status.set("-1");
                                 }

+ 42 - 4
trans/src/main/java/com/lantone/qc/trans/taizhou/TaizhouInformedConsentDocTrans.java

@@ -1,23 +1,61 @@
 package com.lantone.qc.trans.taizhou;
 
+import com.google.common.collect.Lists;
 import com.lantone.qc.pub.model.doc.InformedConsentDoc;
 import com.lantone.qc.pub.model.vo.MedrecVo;
+import com.lantone.qc.pub.util.ListUtil;
 import com.lantone.qc.trans.ModelDocTrans;
+import com.lantone.qc.trans.comsis.ModelDocGenerate;
+import lombok.extern.slf4j.Slf4j;
+import org.apache.commons.collections.MapUtils;
 
-import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @Description: 知情同意书
  * @author: wangyu
  * @time: 2020/4/20 17:48
  */
+@Slf4j
 public class TaizhouInformedConsentDocTrans extends ModelDocTrans {
     @Override
     public List<InformedConsentDoc> extract(MedrecVo medrecVo) {
-        List<InformedConsentDoc> retList = new ArrayList<>();
-        InformedConsentDoc informedConsentDoc = new InformedConsentDoc();
-        retList.add(informedConsentDoc);
+        List<InformedConsentDoc> retList = Lists.newArrayList();
+        Map<String, List<String>> contentMap = (Map) medrecVo.getContent().get("content");
+        if (contentMap == null) {
+            return retList;
+        }
+        for (Map.Entry<String, List<String>> entry : contentMap.entrySet()) {
+            InformedConsentDoc informedConsentDoc = getInformedConsentDoc((List) entry.getValue());
+            retList.add(informedConsentDoc);
+        }
         return retList;
     }
+
+    private InformedConsentDoc getInformedConsentDoc(List<Map<String, Object>> contentMaps) {
+        InformedConsentDoc informedConsentDoc = new InformedConsentDoc();
+        if (ListUtil.isEmpty(contentMaps)) {
+            return informedConsentDoc;
+        }
+        for (Map<String, Object> contentMap : contentMaps) {
+            try {
+                Map<String, String> structureMap = new HashMap<>();
+                Object recTitle1 = contentMap.get("recTitle");
+                if (recTitle1 == null) {
+                    continue;
+                }
+                String recTitle = contentMap.get("recTitle").toString();
+                structureMap.put("标题", recTitle);
+                if (MapUtils.isNotEmpty(structureMap)) {
+                    informedConsentDoc = ModelDocGenerate.informedConsentDocGen(structureMap);
+                    informedConsentDoc.setPageData((Map) structureMap);
+                }
+            } catch (Exception e) {
+                log.error(e.getMessage(), e);
+            }
+        }
+        return informedConsentDoc;
+    }
 }