Browse Source

Merge remote-tracking branch 'origin/hb/beilun' into hb/beilun

wangsy 3 years ago
parent
commit
1322e35e8b

+ 43 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/operationdiscussion/OPE03234.java

@@ -0,0 +1,43 @@
+package com.lantone.qc.kernel.catalogue.operationdiscussion;
+
+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.operation.OperationDoc;
+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;
+
+/**
+ * @Description: 手术记录中手术日期未填写
+ * @author 贺聪聪
+ * @data 2022/5/23  17:25
+ */
+@Component
+public class OPE03234 extends QCCatalogue {
+    @Override
+    protected void start(InputInfo inputInfo, OutputInfo outputInfo) throws ParseException {
+        status.set("0");
+        List<OperationDoc> operationDocs = inputInfo.getOperationDocs();
+        if(operationDocs == null || operationDocs.size() == 0){
+            status.set("0");
+            return;
+        }
+        if (ListUtil.isNotEmpty(operationDocs)) {
+            long count = operationDocs.stream().filter(operationDoc -> {
+                boolean flag = false;
+                if (operationDoc.getOperationRecordDoc() != null
+                        && StringUtil.isBlank(operationDoc.getOperationRecordDoc().getStructureMap().get("手术日期"))) {
+                    flag = true;
+                }
+                return flag;
+            }).count();
+            if (count > 0) {
+                status.set("-1");
+            }
+        }
+    }
+}

+ 32 - 4
trans/src/main/java/com/lantone/qc/trans/xszyy/util/BeiLunFirstCourseRecordHtmlAnalysis.java

@@ -35,15 +35,43 @@ public class BeiLunFirstCourseRecordHtmlAnalysis implements BeiLunHtmlAnalysis {
             );
             String htmlContent = XszyyCommonAnalysisUtil.html2String(doc.toString());
             if (StringUtil.isNotBlank(htmlContent)) {
+                //有冒号
+                //XszyyCommonAnalysisUtil.html2StructureMap(titles,htmlContent,structureMap);
                 //无冒号版本
                 XszyyCommonAnalysisUtil.html2StructureMapNoColon(titles,htmlContent,structureMap);
+                if(XszyyCommonAnalysisUtil.extractDate(htmlContent)!=null){
+                    structureMap.put("病历日期",XszyyCommonAnalysisUtil.extractDate(htmlContent.replace(":",":")));
+                }
                 if(htmlContent.contains("病历特点")){
-                    structureMap.put("病历内容",htmlContent.substring(0,htmlContent.indexOf("病历特点")));
+                    structureMap.put("病历内容",htmlContent.substring(0,htmlContent.indexOf("病历特点")).replace(recTitle,""));
                 }else if(htmlContent.contains("病例特点")){
-                    structureMap.put("病历内容",htmlContent.substring(0,htmlContent.indexOf("出院记录内容缺诊疗经过")));
+                    structureMap.put("病历内容",htmlContent.substring(0,htmlContent.indexOf("病例特点")).replace(recTitle,""));
                 }
-                if(XszyyCommonAnalysisUtil.extractDate(htmlContent)!=null){
-                    structureMap.put("病历日期",XszyyCommonAnalysisUtil.extractDate(htmlContent));
+                structureMap.put("病历内容",structureMap.get("病历内容").replace(":",":").replace(structureMap.get("病历日期"),""));
+
+                List<String> specialString = Lists.newArrayList(
+                        "无需其他特殊鉴别诊断","无需鉴别","无须鉴别"
+                );
+                if(StringUtil.isNotEmpty(structureMap.get("西医诊断依据及鉴别诊断"))){
+                    String diag=structureMap.get("西医诊断依据及鉴别诊断");
+                    if(diag.contains("入院诊断")){
+                        int index=diag.indexOf("入院诊断");
+                        structureMap.put("初步诊断",diag.substring(index));
+                        diag=diag.replace(structureMap.get("初步诊断"),"");
+                    }
+                    if(StringUtil.isEmpty(structureMap.get("西医诊断依据")) && StringUtil.isEmpty(structureMap.get("西医鉴别诊断"))){
+                        structureMap.put("西医诊断依据",diag);
+                        structureMap.put("西医诊断依据及鉴别诊断","");
+                        /*for (String specialC:specialString){
+                            if(structureMap.get("西医诊断依据").contains(specialC)){
+                                structureMap.put("西医鉴别诊断","无需鉴别");
+                            }
+                        }*/
+                    }
+                }
+                if(StringUtil.isNotEmpty(structureMap.get("拟诊讨论")) && StringUtil.isEmpty(structureMap.get("中医辨病辩证依据及鉴别诊断"))){
+                    structureMap.put("中医辨病辩证依据及鉴别诊断",structureMap.get("拟诊讨论"));
+                    structureMap.put("拟诊讨论","");
                 }
             }
             structureMap.put("标题",recTitle);