Quellcode durchsuchen

住院期间连续3天无病程记录,出院时间以后的查房不记录

huj vor 4 Jahren
Ursprung
Commit
9457c02eba

+ 11 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/beilun/threelevelward/THR0588.java

@@ -12,6 +12,7 @@ import org.springframework.stereotype.Component;
 import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
+import java.util.Map;
 
 /**
  * @ClassName : THR0588
@@ -23,11 +24,19 @@ import java.util.List;
 public class THR0588 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         status.set("0");
+
+        Date leaveDate = null;
+        if (inputInfo.getMedicalRecordInfoDoc() != null) {
+            Map<String, String> medicalRecordInfoStructureMap = inputInfo.getMedicalRecordInfoDoc().getStructureMap();
+            String leaveHospitalTime = medicalRecordInfoStructureMap.get("leaveHospitalDate");
+            leaveDate = StringUtil.parseDateTime(leaveHospitalTime);
+        }
         //查房记录
         List<ThreeLevelWardDoc> threeLevelWardDocs = inputInfo.getThreeLevelWardDocs();
         if (threeLevelWardDocs.size() == 0) {
             return;
         }
+
         //所有查房记录的日期天
         List<Date> dateThreeLevelDay = new ArrayList<>();
         StringBuffer sb = new StringBuffer();
@@ -43,7 +52,8 @@ public class THR0588 extends QCCatalogue {
         //获取连续3天无查房记录的时间
         for (int i = 0; i < dateThreeLevelDay.size(); i++) {
             if (i + 1 < dateThreeLevelDay.size()) {
-                if (CatalogueUtil.compareTime(dateThreeLevelDay.get(i), dateThreeLevelDay.get(i + 1), 72 * 60L)) {
+                if (CatalogueUtil.compareTime(dateThreeLevelDay.get(i), dateThreeLevelDay.get(i + 1), 72 * 60L) &&
+                        dateThreeLevelDay.get(i + 1).before(leaveDate)) {
                     infoAppend(sb, dateThreeLevelDay.get(i), dateThreeLevelDay.get(i + 1));
                 }
             }