Explorar o código

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

rengb %!s(int64=4) %!d(string=hai) anos
pai
achega
82d1e7033b

+ 6 - 10
kernel/src/main/java/com/lantone/qc/kernel/catalogue/xiamen/behospitalized/BEH0372.java

@@ -18,8 +18,8 @@ public class BEH0372 extends QCCatalogue {
 
     @Override
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status.set("0");
         if (inputInfo.getBeHospitalizedDoc() == null) {
-            status.set("0");
             return;
         }
 
@@ -29,38 +29,35 @@ public class BEH0372 extends QCCatalogue {
             bhbasicInfoStatus = inputInfo.getBeHospitalizedDoc().getStructureMap().get("婚姻");
         }
         if (StringUtil.isBlank(basicInfoStatus) || StringUtil.isBlank(bhbasicInfoStatus)) {
-            status.set("0");
             return;
         }
-
+        if (basicInfoStatus.contains(bhbasicInfoStatus)) {
+            return;
+        }
         if (bhbasicInfoStatus.equals("未婚") && basicInfoStatus.contains("结婚")) {
+            status.set("-1");
             return;
         }
 
         if (bhbasicInfoStatus.equals("未婚") && basicInfoStatus.contains("未婚")) {
-            status.set("0");
             return;
         }
 
         if (StringUtil.isNotBlank(bhbasicInfoStatus) && basicInfoStatus.equals("其他")) {
-            status.set("0");
             return;
         }
 
         if (bhbasicInfoStatus.equals("丧偶") &&
                 (basicInfoStatus.contains("已故") || basicInfoStatus.contains("丧偶") || basicInfoStatus.contains("亡故") || basicInfoStatus.contains("已逝"))) {
-            status.set("0");
             return;
         }
 
         if ((bhbasicInfoStatus.equals("离婚") || bhbasicInfoStatus.equals("离异")) &&
                 (basicInfoStatus.contains("离异") || bhbasicInfoStatus.equals("离婚"))) {
-            status.set("0");
             return;
         }
 
         if (bhbasicInfoStatus.equals("已婚") && (basicInfoStatus.contains("结婚") || basicInfoStatus.contains("再婚"))) {
-            status.set("0");
             return;
         }
 
@@ -68,7 +65,6 @@ public class BEH0372 extends QCCatalogue {
         if (mts != null && StringUtil.isNotBlank(mts.getName())) {
             String maritalStatus = mts.getName();
             if (basicInfoStatus.equals(maritalStatus)) {
-                status.set("0");
                 return;
             }
         }
@@ -76,7 +72,7 @@ public class BEH0372 extends QCCatalogue {
         //无婚育史
         MaritalLabel maritalLabel = inputInfo.getBeHospitalizedDoc().getMaritalLabel();
         if (maritalLabel == null || maritalLabel.getText() == null) {
-            status.set("0");
+            return;
         }
     }
 

+ 1 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/xiamen/firstcourserecord/FIRC0082.java

@@ -30,7 +30,7 @@ public class FIRC0082 extends QCCatalogue {
             return;
         }
 
-        String doctorName = inputInfo.getFirstCourseRecordDoc().getStructureMap().get("医师签名");
+        String doctorName = inputInfo.getFirstCourseRecordDoc().getStructureMap().get("记录医生");
         if (StringUtil.isBlank(doctorName)) {
             status.set("0");
             return;

+ 28 - 4
kernel/src/main/java/com/lantone/qc/kernel/catalogue/xiamen/operationdiscussion/OPE0369.java

@@ -4,6 +4,7 @@ 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.FirstCourseRecordDoc;
 import com.lantone.qc.pub.model.doc.MedicalRecordInfoDoc;
 import com.lantone.qc.pub.model.doc.ThreeLevelWardDoc;
 import com.lantone.qc.pub.model.doc.operation.OperationDoc;
@@ -57,9 +58,13 @@ public class OPE0369 extends QCCatalogue {
             for (OperationDoc operationDoc : operationDocs) {
                 if (operationDoc.getOperationRecordDoc() != null) {
                     Map<String, String> operationDocStructureMap = operationDoc.getOperationRecordDoc().getStructureMap();
-                    operationStartDate = operationDocStructureMap.get("手术开始时间");
-                    if (operationStartDate.contains("年月日")) {
-                        continue;
+                    String opeStartDate = operationDocStructureMap.get("手术日期");
+                    String opeStartTime = operationDocStructureMap.get("开始时间");
+                    if (StringUtil.isNotBlank(opeStartDate)) {
+                        operationStartDate = opeStartDate;
+                        if (StringUtil.isNotBlank(opeStartTime)) {
+                            operationStartDate = opeStartDate + " " + opeStartTime;
+                        }
                     }
                     if (StringUtil.isNotBlank(operationStartDate)) {
                         if (!CatalogueUtil.compareTime(
@@ -86,6 +91,12 @@ public class OPE0369 extends QCCatalogue {
                 }
             }
 
+            //判断是否为急诊手术
+            if (findEmergencyOperation(inputInfo)) {
+                return;
+//                operationCount--;
+            }
+
             ThreeLevelWardDoc threeLevelWardDoc = threeLevelWardDocs.get(0);
             List<ThreeLevelWardDoc> allDoctorWradDocs = threeLevelWardDoc.getAllDoctorWradDocs();
             for (ThreeLevelWardDoc threeLevelWard : allDoctorWradDocs) {
@@ -110,9 +121,22 @@ public class OPE0369 extends QCCatalogue {
             }
         }
 
-        if (operationCount > operateCount) {
+        if (operationCount > 0 && operationCount > operateCount) {
             status.set("-1");
             return;
         }
     }
+
+    private boolean findEmergencyOperation(InputInfo inputInfo) {
+        FirstCourseRecordDoc firstCourseRecordDoc = inputInfo.getFirstCourseRecordDoc();
+        if (firstCourseRecordDoc != null) {
+            String treatPlan = firstCourseRecordDoc.getStructureMap().get("诊疗计划");
+            treatPlan = treatPlan.replace("\r\n", "");
+            if (StringUtil.isNotBlank(treatPlan)) {
+                String regex = ".*急诊.*术.*";
+                return treatPlan.matches(regex);
+            }
+        }
+        return false;
+    }
 }

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

@@ -81,7 +81,7 @@ public class THR0126 extends QCCatalogue {
             /* 首次病程录如果是主治或者主任写的,也算主治查房 */
             FirstCourseRecordDoc firstCourseRecordDoc = inputInfo.getFirstCourseRecordDoc();
             if (firstCourseRecordDoc != null) {
-                String doctorSign = firstCourseRecordDoc.getStructureMap().get("医生签名");
+                String doctorSign = firstCourseRecordDoc.getStructureMap().get("记录医生");
                 String firstCourseProfessor = getFirstCourseProfessor(doctorSign);
                 if (StringUtil.isNotBlank(firstCourseProfessor) && firstCourseProfessor.contains("主治")) {
                     String recordDateStr = firstCourseRecordDoc.getStructureMap().get("记录时间");

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

@@ -112,7 +112,7 @@ public class THR0127 extends QCCatalogue {
                     int directorNum = CatalogueUtil.appearNumber(roundRecordEveryWeek.get(j).split(","), Content.director);
                     int dept_doctorNum = CatalogueUtil.appearNumber(roundRecordEveryWeek.get(j).split(","), Content.dept_doctor);
                     //三级医师查房算一次主任查房
-                    int threeDoctorNum = CatalogueUtil.appearNumber(roundRecordEveryWeek.get(j).split(","), "三级");
+                    int threeDoctorNum = CatalogueUtil.appearNumber(roundRecordEveryWeek.get(j).split(","), "多学科联合");
                     //北仑内分泌科(主任携主任代主治)
                     int endocrinologyTitleNum = endocrinologyTitleNum(roundRecordEveryWeek.get(j).split(","));
                     if (directorNum + dept_doctorNum + threeDoctorNum + endocrinologyTitleNum < 2) {

+ 2 - 2
kernel/src/main/java/com/lantone/qc/kernel/catalogue/xiamen/threelevelward/THR0128.java

@@ -133,7 +133,7 @@ public class THR0128 extends QCCatalogue {
                 for (int j = 0; j < roundRecordEveryWeek.size(); j++) {
                     int indicationsNum = CatalogueUtil.appearNumber(roundRecordEveryWeek.get(j).split(","), Content.attend);
                     //三级医师查房算一次主治查房
-                    int threeDoctorNum = CatalogueUtil.appearNumber(roundRecordEveryWeek.get(j).split(","), "三级");
+                    int threeDoctorNum = CatalogueUtil.appearNumber(roundRecordEveryWeek.get(j).split(","), "多学科联合");
                     if (j == 0 && firstRecordAttendExist) { //如果首程中医师签名为主治医师,第一周查房记录也要加上
                         indicationsNum += 1;
                     }
@@ -214,7 +214,7 @@ public class THR0128 extends QCCatalogue {
             return false;
         }
         Map<String, Map<String, Object>> hospitalDoctorMap = specialStorageUtil.getJsonStringValue(KernelConstants.HOSPITAL_DOCTOR_MAP);
-        String doctorSign = firstCourseRecordDoc.getStructureMap().get("医师签名");
+        String doctorSign = firstCourseRecordDoc.getStructureMap().get("记录医生");
         if (hospitalDoctorMap == null || StringUtil.isBlank(doctorSign)) {
             return false;
         }

+ 12 - 5
kernel/src/main/java/com/lantone/qc/kernel/catalogue/xiamen/threelevelward/THR02900.java

@@ -58,13 +58,20 @@ public class THR02900 extends QCCatalogue {
             } else {
                 firstAssistant = structureMap.get("一助");
                 //取得手术时间截取结束时间(格式 2020-07-24 10:30-2020-07-24 11:45)
-                opeEndTime = structureMap.get("手术时间");
-                opeEndTime = opeEndTime.substring(17);
+                opeEndTime = structureMap.get("手术日期");
+                if (StringUtil.isBlank(opeEndTime)) {
+                    continue;
+                }
+                String endTime = structureMap.get("结束时间");
+                if (StringUtil.isNotBlank(endTime)) {
+                    if (endTime.length() > 5) {
+                        opeEndTime = opeEndTime.substring(0, Math.min(5, opeEndTime.length())) + endTime;
+                    } else {
+                        opeEndTime = opeEndTime + " " + endTime;
+                    }
+                }
             }
             String chiefSurgeon = structureMap.get("主刀医师");
-            if (opeEndTime.contains("年月日")) {
-                continue;
-            }
             Date opeEndDate = CatalogueUtil.parseStringDate(opeEndTime);
             if (opeEndDate == null) {
                 continue;

+ 6 - 9
kernel/src/main/java/com/lantone/qc/kernel/catalogue/xiamen/threelevelward/THR0601.java

@@ -10,6 +10,7 @@ import com.lantone.qc.pub.model.OutputInfo;
 import com.lantone.qc.pub.model.doc.MedicalRecordInfoDoc;
 import com.lantone.qc.pub.model.doc.ThreeLevelWardDoc;
 import com.lantone.qc.pub.model.doc.operation.OperationDoc;
+import com.lantone.qc.pub.model.doc.ward.AttendingDoctorWardDoc;
 import com.lantone.qc.pub.util.DateUtil;
 import com.lantone.qc.pub.util.SpringContextUtil;
 import com.lantone.qc.pub.util.StringUtil;
@@ -28,7 +29,6 @@ import java.util.Map;
 public class THR0601 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         status.set("0");
-
         MedicalRecordInfoDoc medicalRecordInfoDoc = inputInfo.getMedicalRecordInfoDoc();
         if (medicalRecordInfoDoc != null && medicalRecordInfoDoc.getStructureMap() != null) {
             //入院日期
@@ -76,17 +76,16 @@ public class THR0601 extends QCCatalogue {
                     Map<String, String> operationDocStructureMap = operationDoc.getOperationRecordDoc().getStructureMap();
                     if (StringUtil.isBlank(operatorName)) {
                         operatorName = operationDocStructureMap.get("主刀医师");
-                        if (StringUtil.isBlank(operatorName) && StringUtil.isNotBlank(operationDocStructureMap.get("手术者及助手名称"))) {
-                            operatorName = operationDocStructureMap.get("手术者及助手名称").split("、")[0];
-                            if (operatorName.contains("主刀:") && operatorName.split(":").length > 1) {
-                                operatorName = operatorName.split(":")[1];
-                            }
-                        }
                     }
                 }
             }
         }
 
+        List<AttendingDoctorWardDoc> attendingDoctorWardDocs = inputInfo.getThreeLevelWardDocs().get(0).getAttendingDoctorWardDocs();//主治查房记录
+        if (attendingDoctorWardDocs != null && attendingDoctorWardDocs.size() > 0) {
+            return;
+        }
+
         List<ThreeLevelWardDoc> allDoctorWradDocs = inputInfo.getThreeLevelWardDocs().get(0).getAllDoctorWradDocs();//查房记录
         String title, record;
         boolean findIndications = false;
@@ -102,7 +101,6 @@ public class THR0601 extends QCCatalogue {
                 findIndications = true;
                 break;
             }
-
             if (StringUtil.isNotBlank(operatorName) && (title.contains("主刀") || record.contains("主刀"))) {
                 String operationProfessor = getCourseProfessor(operatorName);
                 if (operationProfessor.contains("主治")) {
@@ -110,7 +108,6 @@ public class THR0601 extends QCCatalogue {
                     break;
                 }
             }
-
         }
         if (!findIndications) {
             status.set("-1");

+ 4 - 4
trans/src/main/java/com/lantone/qc/trans/xiamen/XiamenThreeLevelWardDocTrans.java

@@ -140,7 +140,7 @@ public class XiamenThreeLevelWardDocTrans extends ModelDocTrans {
                 title = title.replace("一助", doctorTitle);
             }
             if ((StringUtils.isNotEmpty(subTitle(title)) && subTitle(title).contains("主任")) || findDirector(content)
-                    || title.contains("三级") || endocrinologyTitle(title)) {
+                    || title.contains("多学科联合") || endocrinologyTitle(title)) {
                 directorDoctorWardDoc = new DirectorDoctorWardDoc();
                 directorDoctorWardDoc.setStructureMap(structureMap);
                 directorDoctorWardDoc.setPageData((Map) structureMap);
@@ -156,7 +156,7 @@ public class XiamenThreeLevelWardDocTrans extends ModelDocTrans {
                 writTitle = writTitle.replace("一助", doctorTitle);
             }
             if ((StringUtils.isNotEmpty(subTitle(writTitle)) && subTitle(writTitle).contains("主任")) || findDirector(content)
-                    || writTitle.contains("三级") || endocrinologyTitle(writTitle)) {
+                    || writTitle.contains("多学科联合") || endocrinologyTitle(writTitle)) {
                 directorDoctorWardDoc = new DirectorDoctorWardDoc();
                 directorDoctorWardDoc.setStructureMap(structureMap);
                 directorDoctorWardDoc.setPageData((Map) structureMap);
@@ -187,7 +187,7 @@ public class XiamenThreeLevelWardDocTrans extends ModelDocTrans {
                 title = title.replace("一助", doctorTitle);
             }
             if ((StringUtils.isNotEmpty(subTitle(title)) && subTitle(title).contains("主治"))
-                    || findAttend(content) || title.contains("三级") || endocrinologyTitle(title)) {
+                    || findAttend(content) || title.contains("多学科联合") || endocrinologyTitle(title)) {
                 attendingDoctorWardDoc = new AttendingDoctorWardDoc();
                 attendingDoctorWardDoc.setStructureMap(structureMap);
                 attendingDoctorWardDoc.setPageData((Map) structureMap);
@@ -204,7 +204,7 @@ public class XiamenThreeLevelWardDocTrans extends ModelDocTrans {
                 writTitle = writTitle.replace("一助", doctorTitle);
             }
             if ((StringUtils.isNotEmpty(subTitle(writTitle)) && subTitle(writTitle).contains("主治"))
-                    || findAttend(content) || writTitle.contains("三级") || endocrinologyTitle(writTitle)) {
+                    || findAttend(content) || writTitle.contains("多学科联合") || endocrinologyTitle(writTitle)) {
                 attendingDoctorWardDoc = new AttendingDoctorWardDoc();
                 attendingDoctorWardDoc.setStructureMap(structureMap);
                 attendingDoctorWardDoc.setPageData((Map) structureMap);