Bladeren bron

厦门五院:查房问题逻辑统一

wangsy 3 jaren geleden
bovenliggende
commit
692840c1e6

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

@@ -19,7 +19,7 @@ import java.util.List;
 import java.util.Map;
 
 /**
- * @Description: 手术患者缺术前主刀医师查房记录
+ * @Description: 主刀医师术前查房未在术前24小时内完成
  * @author: WANGSY
  * @time: 2020/11/11 11:22
  */
@@ -110,11 +110,10 @@ public class OPE0369 extends QCCatalogue {
                     for (Date date : operDateList) {
                         if (StringUtil.isNotBlank(recordDateStr) && date != null
                                 && StringUtil.parseDateTime(recordDateStr).before(date)) {
-                            if (!CatalogueUtil.compareTime(StringUtil.parseDateTime(recordDateStr), date, Long.valueOf(24 * 60))
-                                    && ((makeTitle.contains("主刀") || (StringUtil.isNotBlank(writTitle) && writTitle.contains("主刀")))
-                                    || (makeTitle.contains("术前") || (StringUtil.isNotBlank(writTitle) && writTitle.contains("术前")))
+                            if (((StringUtil.isNotBlank(makeTitle) && makeTitle.contains("主刀")) || (StringUtil.isNotBlank(writTitle) && writTitle.contains("主刀")))
+                                    || ((StringUtil.isNotBlank(makeTitle) && makeTitle.contains("术前")) || (StringUtil.isNotBlank(writTitle) && writTitle.contains("术前")))
                                     || (StringUtil.isNotBlank(operatorPhysician) && makeTitle.contains(operatorPhysician))
-                            )) {
+                            ) {
                                 operateCount++;
                             }
                         }

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

@@ -134,10 +134,12 @@ public class THR0128 extends QCCatalogue {
                     int indicationsNum = CatalogueUtil.appearNumber(roundRecordEveryWeek.get(j).split(","), Content.attend);
                     //多学科联合,三级医师查房算一次主治查房
                     int threeDoctorNum = CatalogueUtil.appearNumber(roundRecordEveryWeek.get(j).split(","), "多学科联合");
+                    //厦门(科主任+主任)
+                    int endocrinologyTitleNum = endocrinologyTitleNum(roundRecordEveryWeek.get(j).split(","));
                     if (j == 0 && firstRecordAttendExist) { //如果首程中医师签名为主治医师,第一周查房记录也要加上
                         indicationsNum += 1;
                     }
-                    if (indicationsNum + threeDoctorNum < 2) {
+                    if (indicationsNum + threeDoctorNum + endocrinologyTitleNum < 2) {
                         //每周无3次主治医师查房记录
                         status.set("-1");
                         resultInfos.add(lastWardDateRangeList.get(j));
@@ -151,6 +153,23 @@ public class THR0128 extends QCCatalogue {
         }
     }
 
+    /**
+     * 厦门特殊需求
+     *
+     * @param srcText
+     * @return
+     */
+    private int endocrinologyTitleNum(String[] srcText) {
+        int count = 0;
+        for (String title : srcText) {
+            String regex = ".*科主任.*主任.*";
+            if (title.matches(regex)) {
+                count++;
+            }
+        }
+        return count;
+    }
+
     private Date getLastRecordDate(List<ThreeLevelWardDoc> allDoctorWradDocs) {
         ThreeLevelWardDoc threeLevelWardDoc = allDoctorWradDocs.get(allDoctorWradDocs.size() - 1);
         Map<String, String> lastWardDocStructureMap = threeLevelWardDoc.getStructureMap();

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

@@ -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) || xiamenTitle(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) || xiamenTitle(title)) {
                 attendingDoctorWardDoc = new AttendingDoctorWardDoc();
                 attendingDoctorWardDoc.setStructureMap(structureMap);
                 attendingDoctorWardDoc.setPageData((Map) structureMap);
@@ -224,6 +224,17 @@ public class XiamenThreeLevelWardDocTrans extends ModelDocTrans {
         return title.matches(regex);
     }
 
+    /**
+     * 厦门科主任+主任查房处理
+     *
+     * @param title
+     * @return
+     */
+    private boolean xiamenTitle(String title) {
+        String regex = ".*科主任.*主任.*";
+        return title.matches(regex);
+    }
+
     /**
      * 共同照护讨论记录中找主任查房
      *