Browse Source

排除查房记录的单项否决,出院时间从病例表中获取

huj 4 years ago
parent
commit
dfcc341625

+ 15 - 13
kernel/src/main/java/com/lantone/qc/kernel/catalogue/beilun/threelevelward/THR02985.java

@@ -55,13 +55,10 @@ public class THR02985 extends QCCatalogue {
         List<OperationDoc> operationDocs = inputInfo.getOperationDocs();
         List<OperationDoc> operationDocs = inputInfo.getOperationDocs();
         LeaveHospitalDoc leaveHospitalDoc = inputInfo.getLeaveHospitalDoc();
         LeaveHospitalDoc leaveHospitalDoc = inputInfo.getLeaveHospitalDoc();
         List<ConsultationDoc> consultationDocs = inputInfo.getConsultationDocs();
         List<ConsultationDoc> consultationDocs = inputInfo.getConsultationDocs();
-        if (doctorAdviceDocs.size() == 0 || threeLevelWardDocs.size() == 0) {
-            return;
-        }
-        List<ThreeLevelWardDoc> allDoctorWradDocs = threeLevelWardDocs.get(0).getAllDoctorWradDocs();
-        if (allDoctorWradDocs.size() == 0) {
+        if (doctorAdviceDocs.size() == 0) {
             return;
             return;
         }
         }
+
         List<Map<String, String>> docAdvStruct = doctorAdviceDocs
         List<Map<String, String>> docAdvStruct = doctorAdviceDocs
                 .stream()
                 .stream()
                 .filter(Objects::nonNull)
                 .filter(Objects::nonNull)
@@ -118,13 +115,15 @@ public class THR02985 extends QCCatalogue {
         }
         }
 
 
         //从查房记录中获取信息
         //从查房记录中获取信息
-        List<ThreeLevelWardDoc> wardDocs = allDoctorWradDocs
-                .stream()
-                .filter(x -> StringUtil.isNotBlank(x.getStructureMap().get("查房日期")) && x.getThreeLevelWardLabel().size() > 0)
-                .collect(Collectors.toList());
-        wardDocs.forEach(x -> getInfo(info, x.getStructureMap(), "查房记录", "查房日期", "病情记录", "治疗计划和措施"));
-        wardDocs.forEach(x -> getInfo(infoModel, x.getStructureMap().get("查房日期"), x.getThreeLevelWardLabel().get(x.getThreeLevelWardLabel().size() - 1).getDrugs()));
-
+        if (threeLevelWardDocs.size() > 0) {
+            List<ThreeLevelWardDoc> allDoctorWradDocs = threeLevelWardDocs.get(0).getAllDoctorWradDocs();
+            List<ThreeLevelWardDoc> wardDocs = allDoctorWradDocs
+                    .stream()
+                    .filter(x -> StringUtil.isNotBlank(x.getStructureMap().get("查房日期")) && x.getThreeLevelWardLabel().size() > 0)
+                    .collect(Collectors.toList());
+            wardDocs.forEach(x -> getInfo(info, x.getStructureMap(), "查房记录", "查房日期", "病情记录", "治疗计划和措施"));
+            wardDocs.forEach(x -> getInfo(infoModel, x.getStructureMap().get("查房日期"), x.getThreeLevelWardLabel().get(x.getThreeLevelWardLabel().size() - 1).getDrugs()));
+        }
         //从手术记录中获取信息
         //从手术记录中获取信息
         if (operationDocs.size() > 0) {
         if (operationDocs.size() > 0) {
             //手术记录
             //手术记录
@@ -164,7 +163,10 @@ public class THR02985 extends QCCatalogue {
             getInfo(info, leaveHospitalDoc.getStructureMap(), "出院小结", "出院日期", "诊治经过");
             getInfo(info, leaveHospitalDoc.getStructureMap(), "出院小结", "出院日期", "诊治经过");
             if (leaveHospitalDoc.getLeaveHospitalLabel() != null) {
             if (leaveHospitalDoc.getLeaveHospitalLabel() != null) {
                 List<Drug> drugs = leaveHospitalDoc.getLeaveHospitalLabel().getDrugs();
                 List<Drug> drugs = leaveHospitalDoc.getLeaveHospitalLabel().getDrugs();
-                dateStr = leaveHospitalDoc.getStructureMap().get("出院日期");
+                if (inputInfo.getMedicalRecordInfoDoc() != null) {
+                    Map<String, String> medicalRecordInfoStructureMap = inputInfo.getMedicalRecordInfoDoc().getStructureMap();
+                    dateStr = medicalRecordInfoStructureMap.get("leaveHospitalDate");
+                }
                 if (StringUtil.isNotBlank(dateStr)) {
                 if (StringUtil.isNotBlank(dateStr)) {
                     getInfo(info, leaveHospitalDoc.getStructureMap(), "出院小结", "出院日期", "诊治经过");
                     getInfo(info, leaveHospitalDoc.getStructureMap(), "出院小结", "出院日期", "诊治经过");
                     getInfo(infoModel, dateStr, drugs);
                     getInfo(infoModel, dateStr, drugs);

+ 14 - 11
kernel/src/main/java/com/lantone/qc/kernel/catalogue/beilun/threelevelward/THR03076.java

@@ -50,7 +50,7 @@ public class THR03076 extends QCCatalogue {
         List<ConsultationDoc> consultationDocs = inputInfo.getConsultationDocs();
         List<ConsultationDoc> consultationDocs = inputInfo.getConsultationDocs();
         List<OperationDoc> operationDocs = inputInfo.getOperationDocs();
         List<OperationDoc> operationDocs = inputInfo.getOperationDocs();
         LeaveHospitalDoc leaveHospitalDoc = inputInfo.getLeaveHospitalDoc();
         LeaveHospitalDoc leaveHospitalDoc = inputInfo.getLeaveHospitalDoc();
-        if (doctorAdviceDocs.size() == 0 || threeLevelWardDocs.size() == 0) {
+        if (doctorAdviceDocs.size() == 0) {
             return;
             return;
         }
         }
 
 
@@ -63,8 +63,8 @@ public class THR03076 extends QCCatalogue {
                 .stream()
                 .stream()
                 .filter(Objects::nonNull)
                 .filter(Objects::nonNull)
                 .map(DoctorAdviceDoc::getStructureMap)
                 .map(DoctorAdviceDoc::getStructureMap)
-                .filter(x -> StringUtil.isNotBlank(x.get("药品类型")) && x.get("药品类型").contains("抗生素") && StringUtil.isNotBlank(x.get("一次使用数量")))
-                .filter(x -> StringUtil.isNotBlank(x.get("医嘱状态判别")) && !x.get("医嘱状态判别").contains("已停止"))
+                .filter(x -> StringUtil.isNotBlank(x.get("药品类型")) && x.get("药品类型").contains("抗生素") && StringUtil.isNotBlank(x.get("医嘱单次剂量")))
+//                .filter(x -> StringUtil.isNotBlank(x.get("医嘱状态判别")) && !x.get("医嘱状态判别").contains("已停止"))
                 .collect(Collectors.toList());
                 .collect(Collectors.toList());
         docAdvStruct.removeIf(x -> StringUtil.isNotBlank(x.get("给药方式")) && !filterKey.contains(x.get("给药方式")));
         docAdvStruct.removeIf(x -> StringUtil.isNotBlank(x.get("给药方式")) && !filterKey.contains(x.get("给药方式")));
 
 
@@ -77,7 +77,7 @@ public class THR03076 extends QCCatalogue {
         Date startDate = null;
         Date startDate = null;
         for (Map<String, String> structMap : docAdvStruct) {
         for (Map<String, String> structMap : docAdvStruct) {
             drugName = structMap.get("医嘱项目名称");
             drugName = structMap.get("医嘱项目名称");
-            value = structMap.get("一次使用数量");
+            value = structMap.get("医嘱单次剂量");
             startDateStr = structMap.get("医嘱开始时间");
             startDateStr = structMap.get("医嘱开始时间");
 //            startDate = DateUtil.dateZeroClear(StringUtil.parseDateTime(startDateStr));
 //            startDate = DateUtil.dateZeroClear(StringUtil.parseDateTime(startDateStr));
             startDate = StringUtil.parseDateTime(startDateStr);
             startDate = StringUtil.parseDateTime(startDateStr);
@@ -96,7 +96,7 @@ public class THR03076 extends QCCatalogue {
         /*********************************************首程治疗计划********************************************************/
         /*********************************************首程治疗计划********************************************************/
         if (firstCourseRecordDoc != null) {
         if (firstCourseRecordDoc != null) {
             DrugLabel drugLabel = firstCourseRecordDoc.getDrugLabel();
             DrugLabel drugLabel = firstCourseRecordDoc.getDrugLabel();
-            dateStr = firstCourseRecordDoc.getStructureMap().get("记录时间");
+            dateStr = firstCourseRecordDoc.getStructureMap().get("病历日期");
             if (drugLabel != null && StringUtil.isNotBlank(dateStr)) {
             if (drugLabel != null && StringUtil.isNotBlank(dateStr)) {
                 List<Drug> drugs = drugLabel.getDrugs();
                 List<Drug> drugs = drugLabel.getDrugs();
                 getCourseDrugInfo(antibioticWardInfo, drugs, dateStr);
                 getCourseDrugInfo(antibioticWardInfo, drugs, dateStr);
@@ -122,16 +122,16 @@ public class THR03076 extends QCCatalogue {
                     .stream()
                     .stream()
                     .map(OperationDoc::getOperationRecordDoc)
                     .map(OperationDoc::getOperationRecordDoc)
                     .filter(Objects::nonNull)
                     .filter(Objects::nonNull)
-                    .filter(x -> x.getOperationRecordLabel() != null && StringUtil.isNotBlank(x.getStructureMap().get("病历日期")))
+                    .filter(x -> x.getOperationRecordLabel() != null && StringUtil.isNotBlank(x.getStructureMap().get("手术时间")))
                     .collect(Collectors.toList());
                     .collect(Collectors.toList());
-            operationRecordDocs.forEach(x -> getCourseDrugInfo(antibioticWardInfo, x.getOperationRecordLabel().getDrugs(), x.getStructureMap().get("病历日期")));
+            operationRecordDocs.forEach(x -> getCourseDrugInfo(antibioticWardInfo, x.getOperationRecordLabel().getDrugs(), x.getStructureMap().get("手术时间")));
             List<OperationDiscussionDoc> operationDiscussionDocs = operationDocs
             List<OperationDiscussionDoc> operationDiscussionDocs = operationDocs
                     .stream()
                     .stream()
                     .map(OperationDoc::getOperationDiscussionDoc)
                     .map(OperationDoc::getOperationDiscussionDoc)
                     .filter(Objects::nonNull)
                     .filter(Objects::nonNull)
-                    .filter(x -> x.getOperationDiscussionLabel() != null && StringUtil.isNotBlank(x.getStructureMap().get("记录日期")))
+                    .filter(x -> x.getOperationDiscussionLabel() != null && StringUtil.isNotBlank(x.getStructureMap().get("病历日期")))
                     .collect(Collectors.toList());
                     .collect(Collectors.toList());
-            operationDiscussionDocs.forEach(x -> getCourseDrugInfo(antibioticWardInfo, x.getOperationDiscussionLabel().getDrugs(), x.getStructureMap().get("记录日期")));
+            operationDiscussionDocs.forEach(x -> getCourseDrugInfo(antibioticWardInfo, x.getOperationDiscussionLabel().getDrugs(), x.getStructureMap().get("病历日期")));
         }
         }
         /*********************************************会诊结果单********************************************************/
         /*********************************************会诊结果单********************************************************/
         /*if (consultationDocs.size() > 0) {
         /*if (consultationDocs.size() > 0) {
@@ -146,7 +146,10 @@ public class THR03076 extends QCCatalogue {
         /*********************************************出院小结********************************************************/
         /*********************************************出院小结********************************************************/
         if (leaveHospitalDoc != null) {
         if (leaveHospitalDoc != null) {
             LeaveHospitalLabel leaveHospitalLabel = leaveHospitalDoc.getLeaveHospitalLabel();
             LeaveHospitalLabel leaveHospitalLabel = leaveHospitalDoc.getLeaveHospitalLabel();
-            dateStr = leaveHospitalDoc.getStructureMap().get("出院时间");
+            if (inputInfo.getMedicalRecordInfoDoc() != null) {
+                Map<String, String> medicalRecordInfoStructureMap = inputInfo.getMedicalRecordInfoDoc().getStructureMap();
+                dateStr = medicalRecordInfoStructureMap.get("leaveHospitalDate");
+            }
             if (leaveHospitalLabel != null && StringUtil.isNotBlank(dateStr)) {
             if (leaveHospitalLabel != null && StringUtil.isNotBlank(dateStr)) {
                 List<Drug> drugs = leaveHospitalLabel.getDrugs();
                 List<Drug> drugs = leaveHospitalLabel.getDrugs();
                 getCourseDrugInfo(antibioticWardInfo, drugs, dateStr);
                 getCourseDrugInfo(antibioticWardInfo, drugs, dateStr);
@@ -323,6 +326,6 @@ public class THR03076 extends QCCatalogue {
             "关节腔注射", "宫颈注射", "皮下注射", "皮下注射(儿童)", "皮下注射(免费)", "皮下注射(成人)", "皮内", "皮内注射",
             "关节腔注射", "宫颈注射", "皮下注射", "皮下注射(儿童)", "皮下注射(免费)", "皮下注射(成人)", "皮内", "皮内注射",
             "结膜下注射", "肌注", "肌肉注射(儿童)", "肌肉注射(公卫专用)", "肌肉注射(成人)", "胸腔注射", "腹腔内注射", "腹腔注射",
             "结膜下注射", "肌注", "肌肉注射(儿童)", "肌肉注射(公卫专用)", "肌肉注射(成人)", "胸腔注射", "腹腔内注射", "腹腔注射",
             "静滴(儿童)", "静滴(成人)", "静脉注射", "静脉注射(儿童)", "静脉注射(免费)", "静脉注射(成人)", "静脉注射(泵)",
             "静滴(儿童)", "静滴(成人)", "静脉注射", "静脉注射(儿童)", "静脉注射(免费)", "静脉注射(成人)", "静脉注射(泵)",
-            "静脉滴注", "静脉滴注(泵)", "鞘内注射");
+            "静脉滴注", "静脉滴注(泵)", "鞘内注射", "微泵");
 
 
 }
 }

+ 22 - 18
kernel/src/main/java/com/lantone/qc/kernel/catalogue/beilun/threelevelward/THR03077.java

@@ -65,7 +65,7 @@ public class THR03077 extends QCCatalogue {
                 .filter(Objects::nonNull)
                 .filter(Objects::nonNull)
                 .map(DoctorAdviceDoc::getStructureMap)
                 .map(DoctorAdviceDoc::getStructureMap)
                 .filter(x -> StringUtil.isNotBlank(x.get("药品类型")) && x.get("药品类型").contains("抗生素") && StringUtil.isNotBlank(x.get("医嘱单次剂量")))
                 .filter(x -> StringUtil.isNotBlank(x.get("药品类型")) && x.get("药品类型").contains("抗生素") && StringUtil.isNotBlank(x.get("医嘱单次剂量")))
-                .filter(x -> StringUtil.isNotBlank(x.get("医嘱状态判别")) && !x.get("医嘱状态判别").contains("已停止"))
+//                .filter(x -> StringUtil.isNotBlank(x.get("医嘱状态判别")) && !x.get("医嘱状态判别").contains("已停止"))
                 .collect(Collectors.toList());
                 .collect(Collectors.toList());
         docAdvStruct.removeIf(x -> StringUtil.isNotBlank(x.get("给药方式")) && !filterKey.contains(x.get("给药方式")));
         docAdvStruct.removeIf(x -> StringUtil.isNotBlank(x.get("给药方式")) && !filterKey.contains(x.get("给药方式")));
 
 
@@ -106,12 +106,12 @@ public class THR03077 extends QCCatalogue {
         }
         }
 
 
         //把抗生素使用剂量没变化过的抗生素删除
         //把抗生素使用剂量没变化过的抗生素删除
-        antibioticStatus.forEach((x, y) -> {
-            if (y == 0) {
-                antibioticDate.remove(x);
-                antibioticValue.remove(x);
-            }
-        });
+//        antibioticStatus.forEach((x, y) -> {
+//            if (y == 0) {
+//                antibioticDate.remove(x);
+//                antibioticValue.remove(x);
+//            }
+//        });
         //把同一天内同一个抗生素开过多次的抗生素删除
         //把同一天内同一个抗生素开过多次的抗生素删除
 //        antibioticDateTimes.forEach((x, y) -> {
 //        antibioticDateTimes.forEach((x, y) -> {
 //            if (y > 0) {
 //            if (y > 0) {
@@ -130,11 +130,11 @@ public class THR03077 extends QCCatalogue {
         /*********************************************首程治疗计划********************************************************/
         /*********************************************首程治疗计划********************************************************/
         if (firstCourseRecordDoc != null) {
         if (firstCourseRecordDoc != null) {
             DrugLabel drugLabel = firstCourseRecordDoc.getDrugLabel();
             DrugLabel drugLabel = firstCourseRecordDoc.getDrugLabel();
-            dateStr = firstCourseRecordDoc.getStructureMap().get("记录时间");
+            dateStr = firstCourseRecordDoc.getStructureMap().get("病历日期");
             if (drugLabel != null && StringUtil.isNotBlank(dateStr)) {
             if (drugLabel != null && StringUtil.isNotBlank(dateStr)) {
                 List<Drug> drugs = drugLabel.getDrugs();
                 List<Drug> drugs = drugLabel.getDrugs();
                 getCourseDrugInfo(antibioticDateCourse, dateStr, drugs,
                 getCourseDrugInfo(antibioticDateCourse, dateStr, drugs,
-                        CatalogueUtil.structureMapJoin(firstCourseRecordDoc.getStructureMap(), Lists.newArrayList("疗计划")));
+                        CatalogueUtil.structureMapJoin(firstCourseRecordDoc.getStructureMap(), Lists.newArrayList("疗计划")));
             }
             }
         }
         }
         /*********************************************查房记录********************************************************/
         /*********************************************查房记录********************************************************/
@@ -158,18 +158,19 @@ public class THR03077 extends QCCatalogue {
                     .stream()
                     .stream()
                     .map(OperationDoc::getOperationRecordDoc)
                     .map(OperationDoc::getOperationRecordDoc)
                     .filter(Objects::nonNull)
                     .filter(Objects::nonNull)
-                    .filter(x -> x.getOperationRecordLabel() != null && StringUtil.isNotBlank(x.getStructureMap().get("病历日期")))
+                    .filter(x -> x.getOperationRecordLabel() != null && StringUtil.isNotBlank(x.getStructureMap().get("手术时间")))
                     .collect(Collectors.toList());
                     .collect(Collectors.toList());
-            operationRecordDocs.forEach(x -> getCourseDrugInfo(antibioticDateCourse, x.getStructureMap().get("病历日期"), x.getOperationRecordLabel().getDrugs()
-                    , CatalogueUtil.structureMapJoin(x.getStructureMap(), Lists.newArrayList("手术经过"))));
+            operationRecordDocs.forEach(x -> getCourseDrugInfo(antibioticDateCourse, x.getStructureMap().get("手术时间"), x.getOperationRecordLabel().getDrugs()
+                    , CatalogueUtil.structureMapJoin(x.getStructureMap(), Lists.newArrayList("手术经过及处理"))));
+            //术后首程
             List<OperationDiscussionDoc> operationDiscussionDocs = operationDocs
             List<OperationDiscussionDoc> operationDiscussionDocs = operationDocs
                     .stream()
                     .stream()
                     .map(OperationDoc::getOperationDiscussionDoc)
                     .map(OperationDoc::getOperationDiscussionDoc)
                     .filter(Objects::nonNull)
                     .filter(Objects::nonNull)
-                    .filter(x -> x.getOperationDiscussionLabel() != null && StringUtil.isNotBlank(x.getStructureMap().get("记录日期")))
+                    .filter(x -> x.getOperationDiscussionLabel().getOperativeFindings() != null && StringUtil.isNotBlank(x.getStructureMap().get("病历日期")))
                     .collect(Collectors.toList());
                     .collect(Collectors.toList());
-            operationDiscussionDocs.forEach(x -> getCourseDrugInfo(antibioticDateCourse, x.getStructureMap().get("记录日期"), x.getOperationDiscussionLabel().getDrugs()
-                    , CatalogueUtil.structureMapJoin(x.getStructureMap(), Lists.newArrayList("手术经过", "治疗计划和措施"))));
+            operationDiscussionDocs.forEach(x -> getCourseDrugInfo(antibioticDateCourse, x.getStructureMap().get("病历日期"), x.getOperationDiscussionLabel().getDrugs()
+                    , CatalogueUtil.structureMapJoin(x.getStructureMap(), Lists.newArrayList("手术简要经过", "术后处理措施"))));
         }
         }
         /*********************************************会诊结果单********************************************************/
         /*********************************************会诊结果单********************************************************/
         /*if (consultationDocs.size() > 0) {
         /*if (consultationDocs.size() > 0) {
@@ -185,11 +186,14 @@ public class THR03077 extends QCCatalogue {
         /*********************************************出院小结********************************************************/
         /*********************************************出院小结********************************************************/
         if (leaveHospitalDoc != null) {
         if (leaveHospitalDoc != null) {
             LeaveHospitalLabel leaveHospitalLabel = leaveHospitalDoc.getLeaveHospitalLabel();
             LeaveHospitalLabel leaveHospitalLabel = leaveHospitalDoc.getLeaveHospitalLabel();
-            dateStr = leaveHospitalDoc.getStructureMap().get("出院时间");
+            if (inputInfo.getMedicalRecordInfoDoc() != null) {
+                Map<String, String> medicalRecordInfoStructureMap = inputInfo.getMedicalRecordInfoDoc().getStructureMap();
+                dateStr = medicalRecordInfoStructureMap.get("leaveHospitalDate");
+            }
             if (leaveHospitalLabel != null && StringUtil.isNotBlank(dateStr)) {
             if (leaveHospitalLabel != null && StringUtil.isNotBlank(dateStr)) {
                 List<Drug> drugs = leaveHospitalLabel.getDrugs();
                 List<Drug> drugs = leaveHospitalLabel.getDrugs();
                 getCourseDrugInfo(antibioticDateCourse, dateStr, drugs
                 getCourseDrugInfo(antibioticDateCourse, dateStr, drugs
-                        , CatalogueUtil.structureMapJoin(leaveHospitalDoc.getStructureMap(), Lists.newArrayList("诊治经过", "出院带药")));
+                        , CatalogueUtil.structureMapJoin(leaveHospitalDoc.getStructureMap(), Lists.newArrayList("诊治经过")));
             }
             }
         }
         }
         //将病程日期排序
         //将病程日期排序
@@ -502,6 +506,6 @@ public class THR03077 extends QCCatalogue {
             "关节腔注射", "宫颈注射", "皮下注射", "皮下注射(儿童)", "皮下注射(免费)", "皮下注射(成人)", "皮内", "皮内注射",
             "关节腔注射", "宫颈注射", "皮下注射", "皮下注射(儿童)", "皮下注射(免费)", "皮下注射(成人)", "皮内", "皮内注射",
             "结膜下注射", "肌注", "肌肉注射(儿童)", "肌肉注射(公卫专用)", "肌肉注射(成人)", "胸腔注射", "腹腔内注射", "腹腔注射",
             "结膜下注射", "肌注", "肌肉注射(儿童)", "肌肉注射(公卫专用)", "肌肉注射(成人)", "胸腔注射", "腹腔内注射", "腹腔注射",
             "静滴(儿童)", "静滴(成人)", "静脉注射", "静脉注射(儿童)", "静脉注射(免费)", "静脉注射(成人)", "静脉注射(泵)",
             "静滴(儿童)", "静滴(成人)", "静脉注射", "静脉注射(儿童)", "静脉注射(免费)", "静脉注射(成人)", "静脉注射(泵)",
-            "静脉滴注", "静脉滴注(泵)", "鞘内注射");
+            "静脉滴注", "静脉滴注(泵)", "鞘内注射", "微泵");
 
 
 }
 }