Browse Source

术前主刀查房记录无主刀医师查房意见/危重患者上级医师(副高及以上)查房记录不及时/

chengyao 3 năm trước cách đây
mục cha
commit
cd1ddd2cf2

+ 3 - 3
kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR03139.java

@@ -71,8 +71,8 @@ public class THR03139 extends QCCatalogue {
                     continue;
                 }
                 List<String> cfButcherOpinionList = Content.cfButcherOpinionList;
-                String rex1 = "[\\s\\S]*(?=拟)[^,;,;。]*(?=行)[^,;,;。]*(?=术)[\\s\\S]*";
-                String rex2 = "[\\s\\S]*[(?=考虑)|(?=行)][^,;,;。]*(?=术)[\\s\\S]*";
+                String rex1 = "[\\s\\S]*(?=拟)[^,;,;。]*(?=术)[\\s\\S]*";
+                String rex2 = "[\\s\\S]*(?=行)[^,;,;。]*(?=术)[\\s\\S]*";
                 String rex3 = "[\\s\\S]*(?=拟)[^,;,;。]*(?=行)[\\s\\S]*";
                 for (String cfButcherOpinion : cfButcherOpinionList) {
                     if (illnessRecords.contains(cfButcherOpinion)) {
@@ -81,7 +81,7 @@ public class THR03139 extends QCCatalogue {
                     }
                 }
                 String str = Str(illnessRecords);
-                if(str.matches(rex1) || str.matches(rex2) || str.matches(rex3)){
+                if(str.matches(rex1) || str.matches(rex2) || str.matches(rex3)  || str.contains("考虑")){
                     opinionNum++;
                     continue ac;
                 }

+ 24 - 6
kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR03150.java

@@ -8,12 +8,16 @@ 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.*;
+import com.lantone.qc.pub.util.DateUtil;
 import com.lantone.qc.pub.util.ListUtil;
 import com.lantone.qc.pub.util.StringUtil;
 import org.apache.commons.lang3.time.DateUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
@@ -44,6 +48,7 @@ public class THR03150 extends QCCatalogue {
         }
         MedicalRecordInfoDoc medicalRecordInfoDoc = inputInfo.getMedicalRecordInfoDoc();
         List<String> noDeathList = Content.noDeathList;
+        List<Date> dateList = new ArrayList<>();
         if(ListUtil.isNotEmpty(doctorAdviceDocs)){
             sw: for (DoctorAdviceDoc doctorAdviceDoc : doctorAdviceDocs) {
                 //取长期临时医嘱,不为作废医嘱
@@ -86,6 +91,9 @@ public class THR03150 extends QCCatalogue {
                                 continue;
                             }
                             Date doctorStartDate = StringUtil.parseDateTime(doctorStartTime);
+                            if(null != doctorStartDate){
+                                dateList.add(doctorStartDate);
+                            }
                             //判断与出院时间是否为同一天
                             if(medicalRecordInfoDoc!=null){
                                 //获取出院时间
@@ -131,14 +139,20 @@ public class THR03150 extends QCCatalogue {
                     //去【抢救记录】内找是否有包含【上级医师姓名】/【主任】字段,若无报出
                     List<RescueDoc> rescueDocs = inputInfo.getRescueDocs();
                     if(ListUtil.isNotEmpty(rescueDocs)) {
+                        int rescueCount = 0;
                         for (RescueDoc rescueDoc : rescueDocs) {
-                            String text = rescueDoc.getText();
-                            if (StringUtil.isNotBlank(text)) {
-                                if (text.contains("主任") || judgeContainsDoctor(text)) {
-                                    status.set("0");
-                                    return;
+                            String rescueDateStr= rescueDoc.getStructureMap().get("抢救开始时间")+":00";
+                            Date rescueDate = DateUtil.parseDateTimeSpecical(rescueDateStr);
+                            if(ListUtil.isNotEmpty(dateList) && null != dateList.get(rescueCount) && CatalogueUtil.compareTime(rescueDate, dateList.get(rescueCount), 6 * 60L)){
+                                String text = rescueDoc.getText();
+                                if (StringUtil.isNotBlank(text)) {
+                                    if (text.contains("主任") || judgeContainsDoctor(text)) {
+                                        status.set("0");
+                                        return;
+                                    }
                                 }
                             }
+                            rescueCount++;
                         }
                     }
                     //首次病程录
@@ -146,7 +160,8 @@ public class THR03150 extends QCCatalogue {
                     if(firstCourseRecordDoc!=null){
                         String text = firstCourseRecordDoc.getText();
                         if (StringUtil.isNotBlank(text)) {
-                            if (text.contains("主任") || judgeContainsDoctor(text)) {
+                            String signName = firstCourseRecordDoc.getStructureMap().get("医师签名");
+                            if (text.contains("主任") || judgeContainsDoctor(signName) || judgeContainsDoctor(text)) {
                                 status.set("0");
                                 return;
                             }
@@ -200,6 +215,9 @@ public class THR03150 extends QCCatalogue {
         if (hospitalDoctorMap == null) {
             return false;
         }
+        if (StringUtil.isBlank(string)) {
+            return false;
+        }
         for (String keyStr : hospitalDoctorMap.keySet()) {
             if (string.contains(keyStr)) {
                 Object professor = hospitalDoctorMap.get(keyStr).get("professor");

+ 10 - 0
public/src/main/java/com/lantone/qc/pub/util/DateUtil.java

@@ -272,6 +272,16 @@ public class DateUtil {
     public static Date parseDateTime(String dateString) {
         return parseDate(dateString, DATE_TIME_FORMAT);
     }
+
+    /**
+     * 将字符(yyyy-MM-dd HH:mm:ss)转换为日期
+     *
+     * @param dateString
+     * @return 将字符(yyyy/MM/dd HH:mm:ss)转换为日期
+     */
+    public static Date parseDateTimeSpecical(String dateString) {
+        return parseDate(dateString, DATE_TIME_SG_FORMAT);
+    }
     /**
      * 将字符(yyyy-MM-dd HH:mm:ss)转换为日期
      *

+ 1 - 0
trans/src/main/java/com/lantone/qc/trans/taizhou/TaiZhouFirstCourseRecordDocTrans.java

@@ -80,6 +80,7 @@ public class TaiZhouFirstCourseRecordDocTrans extends ModelDocTrans {
         List<String> keys = Lists.newArrayList("检查计划", "治疗计划");
         String treatPlanJoin = structureMapJoin(structureMap, keys);
         firstCourseRecordDoc.getTreatPlanLabel().setAiText(treatPlanJoin);
+        firstCourseRecordDoc.setText(contentMap.get("contentText").toString());
         return firstCourseRecordDoc;
     }