Browse Source

北仑:抗生素相关规则除去时分秒

huj 4 năm trước cách đây
mục cha
commit
7d4838d9ba

+ 7 - 5
kernel/src/main/java/com/lantone/qc/kernel/catalogue/beilun/threelevelward/THR02985.java

@@ -20,6 +20,7 @@ import com.lantone.qc.pub.model.doc.operation.OperationRecordDoc;
 import com.lantone.qc.pub.model.entity.Drug;
 import com.lantone.qc.pub.util.DateUtil;
 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;
 
@@ -78,8 +79,8 @@ public class THR02985 extends QCCatalogue {
             String drugName = adviceDoc.get("医嘱项目名称");
             String startDateStr = adviceDoc.get("医嘱开始时间");
             if (StringUtil.isNotBlank(drugName)) {
-//                startDate = DateUtil.dateZeroClear(StringUtil.parseDateTime(startDateStr));
-                startDate = StringUtil.parseDateTime(startDateStr);
+                startDate = DateUtil.dateZeroClear(StringUtil.parseDateTime(startDateStr));
+//                startDate = StringUtil.parseDateTime(startDateStr);
                 if (antibioticDateTimes.get(drugName).get(startDate) > 0) {
                     continue;   //一天内同一抗生素开过多次的抗生素直接过滤
                 }
@@ -251,8 +252,8 @@ public class THR02985 extends QCCatalogue {
         for (Map<String, String> structMap : docAdvStruct) {
             drugName = structMap.get("医嘱项目名称");
             startDateStr = structMap.get("医嘱开始时间");
-//            startDate = DateUtil.dateZeroClear(StringUtil.parseDateTime(startDateStr));
-            startDate = StringUtil.parseDateTime(startDateStr);
+            startDate = DateUtil.dateZeroClear(StringUtil.parseDateTime(startDateStr));
+//            startDate = StringUtil.parseDateTime(startDateStr);
             if (antibioticDateTimes.containsKey(drugName)) {
                 Map<Date, Integer> map = antibioticDateTimes.get(drugName);
                 if (map.containsKey(startDate)) {
@@ -333,7 +334,8 @@ public class THR02985 extends QCCatalogue {
         }
         //开医嘱时间起,昨天今天明天记录内查找药
         if ((doctorAdviceDate.before(wardDate) && !CatalogueUtil.compareTime(doctorAdviceDate, wardDate, days * 24 * 60L))
-                || (wardDate.before(doctorAdviceDate) && !CatalogueUtil.compareTime(wardDate, doctorAdviceDate, 24 * 60L))) {
+                || (wardDate.before(doctorAdviceDate) && !CatalogueUtil.compareTime(wardDate, doctorAdviceDate, 24 * 60L)) ||
+                DateUtils.isSameDay(wardDate, doctorAdviceDate)) {
             boolean findDrug = false;
             String standardDrug = null;
             for (String drug : drugs) {

+ 7 - 5
kernel/src/main/java/com/lantone/qc/kernel/catalogue/beilun/threelevelward/THR03076.java

@@ -21,6 +21,7 @@ import com.lantone.qc.pub.model.label.LeaveHospitalLabel;
 import com.lantone.qc.pub.model.label.ThreeLevelWardLabel;
 import com.lantone.qc.pub.util.DateUtil;
 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;
 
@@ -79,8 +80,8 @@ public class THR03076 extends QCCatalogue {
             drugName = structMap.get("医嘱项目名称");
             value = structMap.get("医嘱单次剂量");
             startDateStr = structMap.get("医嘱开始时间");
-//            startDate = DateUtil.dateZeroClear(StringUtil.parseDateTime(startDateStr));
-            startDate = StringUtil.parseDateTime(startDateStr);
+            startDate = DateUtil.dateZeroClear(StringUtil.parseDateTime(startDateStr));
+//            startDate = StringUtil.parseDateTime(startDateStr);
             if (extData != null && extData.containsKey(startDate) && extData.get(startDate).equals(drugName)) {
                 continue;   //THR02985  医嘱有抗生素使用病程无记录,规则中没报未记录的抗生素继续走这条规则,报未记录的抗生素过滤
             }
@@ -187,7 +188,8 @@ public class THR03076 extends QCCatalogue {
                         Date wardDate = StringUtil.parseDateTime(wardDateStr);
                         List<Double> wardUsage = wdvMap.getValue();
                         if ((adDate.before(wardDate) && !CatalogueUtil.compareTime(adDate, wardDate, 48 * 60L))
-                                || (wardDate.before(adDate) && !CatalogueUtil.compareTime(wardDate, adDate, 24 * 60L))) {
+                                || (wardDate.before(adDate) && !CatalogueUtil.compareTime(wardDate, adDate, 24 * 60L)) ||
+                                DateUtils.isSameDay(wardDate, adDate)) {
                             wardUsage.removeAll(adUsage);//比如adUsage有1.0、2.0,wardUsage中有2.0、3.0,removeAll之后wardUsage只剩3.0
                             adDateStr = DateUtil.formatDateTime(adDate);
                             if (wardUsage.size() > 0 && !sb.toString().contains(drugKey + "(" + adDateStr + ")")) {
@@ -220,8 +222,8 @@ public class THR03076 extends QCCatalogue {
         for (Map<String, String> structMap : docAdvStruct) {
             drugName = structMap.get("医嘱项目名称");
             startDateStr = structMap.get("医嘱开始时间");
-//            startDate = DateUtil.dateZeroClear(StringUtil.parseDateTime(startDateStr));
-            startDate = StringUtil.parseDateTime(startDateStr);
+            startDate = DateUtil.dateZeroClear(StringUtil.parseDateTime(startDateStr));
+//            startDate = StringUtil.parseDateTime(startDateStr);
             if (antibioticDateTimes.containsKey(drugName)) {
                 Map<Date, Integer> map = antibioticDateTimes.get(drugName);
                 if (map.containsKey(startDate)) {

+ 3 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/beilun/threelevelward/THR03077.java

@@ -21,6 +21,7 @@ import com.lantone.qc.pub.model.label.LeaveHospitalLabel;
 import com.lantone.qc.pub.model.label.ThreeLevelWardLabel;
 import com.lantone.qc.pub.util.DateUtil;
 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;
 
@@ -229,7 +230,8 @@ public class THR03077 extends QCCatalogue {
                         wardStartStr = wardStartStr.split("=")[0];
                         Date wardStart = StringUtil.parseDateTime(wardStartStr);
                         if ((adStart.before(wardStart) && !CatalogueUtil.compareTime(adStart, wardStart, 48 * 60L))
-                                || (wardStart.before(adStart) && !CatalogueUtil.compareTime(wardStart, adStart, 24 * 60L))) {
+                                || (wardStart.before(adStart) && !CatalogueUtil.compareTime(wardStart, adStart, 24 * 60L)) ||
+                                DateUtils.isSameDay(wardStart, adStart)) {
                             infoAppend(sb, ad.getKey(), start, wardDateStr.get(j).split("=")[1]);
                             break;
                         }