Преглед на файлове

长兴时效性相关规则

wangyu преди 4 години
родител
ревизия
daf2ca1104

+ 9 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/clinicalblood/CLI0305.java

@@ -36,6 +36,15 @@ public class CLI0305 extends QCCatalogue {
                 Map<String, String> cliBStructureMap = cliB.getStructureMap();
                 String infusionEnd = cliBStructureMap.get("输注结束");
                 String recordDateStr = cliBStructureMap.get("记录时间");
+                if(StringUtil.isNotEmpty(infusionEnd)){
+                    if (!CatalogueUtil.compareTime(
+                            StringUtil.parseDateTime(infusionEnd),
+                            StringUtil.parseDateTime(DateUtil.nowString()),
+                            Long.valueOf(24 * 60))) {//如果输注结束未超过24小时,规则不判断
+                        status.set("0");
+                        return;
+                    }
+                }
                 if (StringUtils.isNotEmpty(infusionEnd) && StringUtils.isNotEmpty(recordDateStr)) {
                     Date infusionEndDate = StringUtil.parseDateTime(infusionEnd);
                     Date recordDate = StringUtil.parseDateTime(recordDateStr);

+ 7 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/consultation/CON0382.java

@@ -5,6 +5,7 @@ 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.CrisisValueReportDoc;
+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.StringUtils;
@@ -31,6 +32,12 @@ public class CON0382 extends QCCatalogue {
                 if (StringUtil.isBlank(crisisValueReportDoc.getStructureMap().get("危急值记录内容"))) {
                     String record_time = crisisValueReportDoc.getStructureMap().get("记录时间");
                     String receive_time = crisisValueReportDoc.getStructureMap().get("接收时间");
+                    if (!CatalogueUtil.compareTime(
+                            StringUtil.parseDateTime(receive_time),
+                            StringUtil.parseDateTime(DateUtil.nowString()),
+                            Long.valueOf(6 * 60))) {//如果接收未超过6小时,规则不判断
+                        return;
+                    }
                     String crisisVal =null;
                     if(crisisValueReportDoc.getStructureMap().get("危急值记录内容") != null){
                         crisisVal = crisisValueReportDoc.getStructureMap().get("危急值记录内容").trim();
@@ -42,7 +49,6 @@ public class CON0382 extends QCCatalogue {
                             status.set("-1");
                         }
                     }
-
                 }
             });
         }

+ 16 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/leavehospital/LEA0148.java

@@ -33,12 +33,28 @@ public class LEA0148 extends QCCatalogue {
         String timeQm = leaveHospitalDoc.getStructureMap().get("签名时间");
         String timeCy = leaveHospitalDoc.getStructureMap().get("出院时间");
         if (StringUtil.isNotBlank(timeQm) && StringUtil.isNotBlank(timeCy)) {
+            if (!CatalogueUtil.compareTime(
+                    StringUtil.parseDateTime(timeCy),
+                    StringUtil.parseDateTime(DateUtil.nowString()),
+                    Long.valueOf(24 * 60))) {//如果出院未超过24小时,规则不判断
+                status.set("0");
+                return;
+            }
             Date timeQmDate = StringUtil.parseDateTime(timeQm);
             Date timeCyDate = StringUtil.parseDateTime(timeCy);
             if (!CatalogueUtil.compareTime(timeCyDate, timeQmDate, 24 * 60L)) {
                 status.set("0");
             }
         }else {
+            if(StringUtil.isNotEmpty(timeCy)){
+                if (!CatalogueUtil.compareTime(
+                        StringUtil.parseDateTime(timeCy),
+                        StringUtil.parseDateTime(DateUtil.nowString()),
+                        Long.valueOf(24 * 60))) {//如果出院未超过24小时,规则不判断
+                    status.set("0");
+                    return;
+                }
+            }
             status.set("0");
             return;
         }

+ 7 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR0122.java

@@ -5,6 +5,7 @@ import com.lantone.qc.kernel.util.CatalogueUtil;
 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.util.DateUtil;
 import com.lantone.qc.pub.util.StringUtil;
 import org.springframework.stereotype.Component;
 
@@ -29,6 +30,12 @@ public class THR0122 extends QCCatalogue {
             if (CatalogueUtil.isEmpty(admisDate) || CatalogueUtil.isEmpty(recordTime)) {
                 return;
             }
+            if (!CatalogueUtil.compareTime(
+                    StringUtil.parseDateTime(admisDate),
+                    StringUtil.parseDateTime(DateUtil.nowString()),
+                    Long.valueOf(8 * 60))) {//如果入院未超过8小时,规则不判断
+                return;
+            }
             if (CatalogueUtil.compareTime(
                     StringUtil.parseDateTime(admisDate),
                     StringUtil.parseDateTime(recordTime),

+ 9 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR0123.java

@@ -5,6 +5,7 @@ import com.lantone.qc.kernel.util.CatalogueUtil;
 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.util.DateUtil;
 import com.lantone.qc.pub.util.StringUtil;
 import org.springframework.stereotype.Component;
 
@@ -27,13 +28,20 @@ public class THR0123 extends QCCatalogue {
             if (CatalogueUtil.isEmpty(admisDate) || CatalogueUtil.isEmpty(recordTime)) {
                 return;
             }
+            if(!CatalogueUtil.compareTime(
+                    StringUtil.parseDateTime(admisDate),
+                    StringUtil.parseDateTime(DateUtil.nowString()),
+                    Long.valueOf(24 * 60))){//如果入院还未过24小时规则不判断
+                return;
+            }
+
             if (CatalogueUtil.compareTime(
                     StringUtil.parseDateTime(admisDate),
                     StringUtil.parseDateTime(recordTime),
                     Long.valueOf(24 * 60))) {
                 status.set("-1");
             }
-
         }
     }
+
 }

+ 12 - 2
kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR0125.java

@@ -7,6 +7,7 @@ import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
 import com.lantone.qc.pub.model.doc.ThreeLevelWardDoc;
 import com.lantone.qc.pub.model.doc.ward.DirectorDoctorWardDoc;
+import com.lantone.qc.pub.util.DateUtil;
 import com.lantone.qc.pub.util.StringUtil;
 import org.springframework.stereotype.Component;
 
@@ -31,12 +32,12 @@ public class THR0125 extends QCCatalogue {
             Map<String, String> leaveHospitalStructureMap = inputInfo.getLeaveHospitalDoc().getStructureMap();
             String admisTime = leaveHospitalStructureMap.get(Content.admisTime);
             String dischargeTime = leaveHospitalStructureMap.get(Content.dischargeTime);
-            if (CatalogueUtil.isEmpty(admisTime) || CatalogueUtil.isEmpty(dischargeTime)) {
+            if (CatalogueUtil.isEmpty(admisTime)) {
                 status.set("0");
                 return;
             }
             //如果住院天数小于3天则不判断该条规则
-            if (!CatalogueUtil.compareTime(StringUtil.parseDateTime(admisTime), StringUtil.parseDateTime(dischargeTime), (long) (72 * 60))) {
+            if (StringUtil.isNotEmpty(dischargeTime) &&!CatalogueUtil.compareTime(StringUtil.parseDateTime(admisTime), StringUtil.parseDateTime(dischargeTime), (long) (72 * 60))) {
                 status.set("0");
                 return;
             }
@@ -45,11 +46,20 @@ public class THR0125 extends QCCatalogue {
             Map<String, String> beHospitalStructureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
             String admisTime = beHospitalStructureMap.get("入院日期");
             if (CatalogueUtil.isEmpty(admisTime)) {
+                status.set("0");
+                return;
+            }
+            if (!CatalogueUtil.compareTime(
+                    StringUtil.parseDateTime(admisTime),
+                    StringUtil.parseDateTime(DateUtil.nowString()),
+                    Long.valueOf(72 * 60))) {//如果入院未超过72小时,规则不判断
+                status.set("0");
                 return;
             }
             //开始时间(入院时间)
             Date beginDate = StringUtil.parseDateTime(admisTime);
             if (beginDate == null) {
+                status.set("0");
                 return;
             }
             ThreeLevelWardDoc threeLevelWardDoc = inputInfo.getThreeLevelWardDocs().get(0);

+ 18 - 2
kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR0126.java

@@ -11,6 +11,7 @@ import com.lantone.qc.pub.model.OutputInfo;
 import com.lantone.qc.pub.model.doc.FirstCourseRecordDoc;
 import com.lantone.qc.pub.model.doc.ThreeLevelWardDoc;
 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;
 import org.springframework.stereotype.Component;
@@ -37,12 +38,19 @@ public class THR0126 extends QCCatalogue {
             Map<String, String> getLeaveHospitalStructureMap = inputInfo.getLeaveHospitalDoc().getStructureMap();
             String admisTime = getLeaveHospitalStructureMap.get(Content.admisTime);
             String dischargeTime = getLeaveHospitalStructureMap.get(Content.dischargeTime);
-            if (CatalogueUtil.isEmpty(admisTime) || CatalogueUtil.isEmpty(dischargeTime)) {
+            if (CatalogueUtil.isEmpty(admisTime)) {
+                status.set("0");
+                return;
+            }
+            if (!CatalogueUtil.compareTime(
+                    StringUtil.parseDateTime(admisTime),
+                    StringUtil.parseDateTime(DateUtil.nowString()),
+                    Long.valueOf(48 * 60))) {//如果入院未超过48小时,规则不判断
                 status.set("0");
                 return;
             }
             //如果住院天数小于2天则不判断该条规则
-            if (!CatalogueUtil.compareTime(StringUtil.parseDateTime(admisTime), StringUtil.parseDateTime(dischargeTime), (long) (48 * 60))) {
+            if (StringUtil.isNotEmpty(dischargeTime) && !CatalogueUtil.compareTime(StringUtil.parseDateTime(admisTime), StringUtil.parseDateTime(dischargeTime), (long) (48 * 60))) {
                 status.set("0");
                 return;
             }
@@ -53,9 +61,17 @@ public class THR0126 extends QCCatalogue {
             if (CatalogueUtil.isEmpty(admisTime)) {
                 return;
             }
+            if (!CatalogueUtil.compareTime(
+                    StringUtil.parseDateTime(admisTime),
+                    StringUtil.parseDateTime(DateUtil.nowString()),
+                    Long.valueOf(48 * 60))) {//如果入院未超过48小时,规则不判断
+                status.set("0");
+                return;
+            }
             //开始时间(入院时间)
             Date beginDate = StringUtil.parseDateTime(admisTime);
             if (beginDate == null) {
+                status.set("0");
                 return;
             }
             /* 首次病程录如果是主治或者主任写的,也算主治查房 */

+ 32 - 13
kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR02900.java

@@ -7,9 +7,12 @@ import com.lantone.qc.pub.model.OutputInfo;
 import com.lantone.qc.pub.model.doc.ThreeLevelWardDoc;
 import com.lantone.qc.pub.model.doc.operation.OperationDoc;
 import com.lantone.qc.pub.model.doc.operation.OperationRecordDoc;
+import com.lantone.qc.pub.util.DateUtil;
+import com.lantone.qc.pub.util.ListUtil;
 import com.lantone.qc.pub.util.StringUtil;
 import org.springframework.stereotype.Component;
 
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 import java.util.Map;
@@ -24,13 +27,16 @@ import java.util.Map;
 public class THR02900 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         status.set("0");
-        if (inputInfo.getThreeLevelWardDocs().size() == 0 || inputInfo.getOperationDocs().size() == 0) {
+        if (inputInfo.getOperationDocs().size() == 0) {
             return;
         }
-        ThreeLevelWardDoc threeLevelWardDoc = inputInfo.getThreeLevelWardDocs().get(0);
-        List<ThreeLevelWardDoc> allDoctorWradDocs = threeLevelWardDoc.getAllDoctorWradDocs();
         List<OperationDoc> operationDocs = inputInfo.getOperationDocs();
-
+        ThreeLevelWardDoc threeLevelWardDoc = new ThreeLevelWardDoc();
+        List<ThreeLevelWardDoc> allDoctorWradDocs = new ArrayList<>();
+        if(inputInfo.getThreeLevelWardDocs() != null){
+            threeLevelWardDoc = inputInfo.getThreeLevelWardDocs().get(0);
+            threeLevelWardDoc.getAllDoctorWradDocs();
+        }
         String allTitle = "";
         for (OperationDoc operationDoc : operationDocs) {
             OperationRecordDoc operationRecordDoc = operationDoc.getOperationRecordDoc();
@@ -45,16 +51,29 @@ public class THR02900 extends QCCatalogue {
             if (opeEndDate == null) {
                 continue;
             }
-            for (ThreeLevelWardDoc wardDoc : allDoctorWradDocs) {
-                Map<String, String> wardStructureMap = wardDoc.getStructureMap();
-                String recordDateStr = wardStructureMap.get("查房日期");
-                String recordTitle = wardStructureMap.get("查房标题");
-                Date recordDate = CatalogueUtil.parseStringDate(recordDateStr);
-                if (StringUtil.isBlank(recordTitle) || recordDate == null) {
-                    continue;
+            if (!CatalogueUtil.compareTime(
+                    StringUtil.parseDateTime(opeEndTime),
+                    StringUtil.parseDateTime(DateUtil.nowString()),
+                    Long.valueOf(24 * 60))) {//如果接收未超过6小时,规则不判断
+                return;
+            }else {
+                if((StringUtil.isNotEmpty(chiefSurgeon) || StringUtil.isNotEmpty(firstAssistant)) && ListUtil.isEmpty(allDoctorWradDocs)) {
+                    status.set("-1");
+                    return;
                 }
-                if (opeEndDate.before(recordDate) && !CatalogueUtil.compareTime(opeEndDate, recordDate, 24 * 60L)) {
-                    allTitle += recordTitle;
+            }
+            if(ListUtil.isNotEmpty(allDoctorWradDocs)){
+                for (ThreeLevelWardDoc wardDoc : allDoctorWradDocs) {
+                    Map<String, String> wardStructureMap = wardDoc.getStructureMap();
+                    String recordDateStr = wardStructureMap.get("查房日期");
+                    String recordTitle = wardStructureMap.get("查房标题");
+                    Date recordDate = CatalogueUtil.parseStringDate(recordDateStr);
+                    if (StringUtil.isBlank(recordTitle) || recordDate == null) {
+                        continue;
+                    }
+                    if (opeEndDate.before(recordDate) && !CatalogueUtil.compareTime(opeEndDate, recordDate, 24 * 60L)) {
+                        allTitle += recordTitle;
+                    }
                 }
             }