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

义乌妇保规则更新-入院记录预产期、临床路径管理、首次病程未在患者入院8小时内完成,规则新增-病案首页未在患者出院院24小时内完成

wanghn преди 6 месеца
родител
ревизия
11b0bd6305

+ 3 - 3
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH03330.java

@@ -25,7 +25,7 @@ public class BEH03330 extends QCCatalogue {
         /**
          * 1.查证【入院记录】,是否有“预产期”和“末次月经”两个字段,任一不存在则直接返回。
          * 2.查证【入院记录】>>【末次月经】字段内容,加280天计算出数值为“预产期”。
-         * 3.查证【入院记录】>>【预产期】中的内容与计算出的“预产期”转换相同格式后时间一致或大于3天或小于1天则通过,否则提示。
+         * 3.查证【入院记录】>>【预产期】中的内容与计算出的“预产期”转换相同格式后时间一致或大或小于5天则于5天通过,否则提示。
          * */
         status.set("0");
         //获取入院记录
@@ -61,12 +61,12 @@ public class BEH03330 extends QCCatalogue {
 
             //添加末次月经时间
             c.setTime(lastMPDate);
-            c.add(Calendar.DATE, 277); //给末次月经时间加277
+            c.add(Calendar.DATE, 275); //给末次月经时间加275
             String after = sdf.format(c.getTime());
             Date afterDate = StringUtil.parseDateTime(after);//日期转成Date格式
 
             c.setTime(lastMPDate);
-            c.add(Calendar.DATE, 281);//给末次月经时间加281
+            c.add(Calendar.DATE, 285);//给末次月经时间加285
             String before = sdf.format(c.getTime());
             Date beforeDate = StringUtil.parseDateTime(before);
 

+ 10 - 9
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/yiwu/firstcourserecord/FIRC0093.java

@@ -6,6 +6,7 @@ import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
 import com.lantone.qc.pub.model.doc.BeHospitalizedDoc;
 import com.lantone.qc.pub.model.doc.FirstCourseRecordDoc;
+import com.lantone.qc.pub.model.doc.FirstPageRecordDoc;
 import com.lantone.qc.pub.util.StringUtil;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Component;
@@ -24,15 +25,15 @@ import java.util.Map;
 public class FIRC0093 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) throws ParseException {
         status.set("0");
-        BeHospitalizedDoc beHospitalizedDoc = inputInfo.getBeHospitalizedDoc();
+        FirstPageRecordDoc firstPageRecordDoc = inputInfo.getFirstPageRecordDoc();//病案首页
         FirstCourseRecordDoc firstCourseRecordDoc = inputInfo.getFirstCourseRecordDoc();
-        if (firstCourseRecordDoc != null && beHospitalizedDoc != null) {
+        if (firstCourseRecordDoc != null && firstPageRecordDoc != null) {
             Map<String, String> courseRecordDocStructureMap = firstCourseRecordDoc.getStructureMap();
-            Map<String, String> beHospitalizedDocStructureMap = beHospitalizedDoc.getStructureMap();
-            if (courseRecordDocStructureMap != null && beHospitalizedDocStructureMap != null) {
+            Map<String, String> firstPageRecordDocStructureMap = firstPageRecordDoc.getStructureMap();
+            if (courseRecordDocStructureMap != null && firstPageRecordDocStructureMap != null) {
                 String couDate = courseRecordDocStructureMap.get("病历日期");
                 String couBeDate = courseRecordDocStructureMap.get("入院日期");
-                String beDate = beHospitalizedDocStructureMap.get("入院日期");
+                String beDate = firstPageRecordDocStructureMap.get("入院时间");
                 if (StringUtils.isNotEmpty(couDate)) {
                     Date date_out = StringUtil.parseDateTime(couDate);
                     Date date_in = null;
@@ -54,10 +55,10 @@ public class FIRC0093 extends QCCatalogue {
                 }
             }
         } else {
-            if (beHospitalizedDoc != null) {
-                Map<String, String> beHospitalizedDocStructureMap = beHospitalizedDoc.getStructureMap();
-                if (beHospitalizedDocStructureMap != null) {
-                    String beDate = beHospitalizedDocStructureMap.get("入院日期");
+            if (firstPageRecordDoc != null) {
+                Map<String, String> firstPageRecordDocStructureMap = firstPageRecordDoc.getStructureMap();
+                if (firstPageRecordDocStructureMap != null) {
+                    String beDate = firstPageRecordDocStructureMap.get("入院时间");
                     if (StringUtils.isNotEmpty(beDate)) {
                         Date date_in = StringUtil.parseDateTime(beDate);
                         Date date_out = new Date();

+ 1 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/yiwu/firstpagerecord/FIRP0192.java

@@ -20,7 +20,7 @@ import java.util.Map;
 
 /**
  * @ClassName : FIRP0192
- * @Description : 主要手术及操作名称与病程记录不一致
+ * @Description : 首页手术名称与手术记录不一致
  * @Author : 胡敬
  * @Date: 2020-03-16 20:28
  */

+ 78 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/yiwu/firstpagerecord/FIRP03110.java

@@ -0,0 +1,78 @@
+package com.lantone.qc.kernel.catalogue.hospital.yiwu.firstpagerecord;
+
+import com.lantone.qc.kernel.catalogue.QCCatalogue;
+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.model.doc.FirstPageRecordDoc;
+import com.lantone.qc.pub.model.doc.LeaveHospitalDoc;
+import com.lantone.qc.pub.util.DateUtil;
+import com.lantone.qc.pub.util.StringUtil;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+import java.util.Map;
+
+/**
+ * @ClassName : FIRP03110
+ * @Description : 病案首页未在患者出院院24小时内完成
+ * @Author : 汪浩楠
+ * @Date: 2025-01-20 15:30
+ */
+@Component
+public class FIRP03110 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        FirstPageRecordDoc firstPageRecordDoc = inputInfo.getFirstPageRecordDoc();
+        if (firstPageRecordDoc == null) {
+            status.set("0");
+            return;
+        }
+        if (inputInfo.getDeathRecordDoc() != null || inputInfo.getDeathCaseDiscussDoc() != null) {
+            status.set("0");
+            return;
+        }
+        String timeCy = null;
+        if (inputInfo.getMedicalRecordInfoDoc() != null) {
+            Map<String, String> medicalRecordInfoStructureMap = inputInfo.getMedicalRecordInfoDoc().getStructureMap();
+            timeCy = medicalRecordInfoStructureMap.get("leaveHospitalDate");
+        }
+        String key = getKeyByHospitalId();
+        String timeQm = firstPageRecordDoc.getStructureMap().get(key);
+        if (StringUtil.isNotBlank(timeQm) && DateUtil.parseDate(timeQm) != null && 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;
+        }
+    }
+    private String getKeyByHospitalId() {
+        switch (Content.hospital_Id)
+        {
+            case "7":               //厦门
+                return "病历日期";
+            default:
+                return "创建时间";
+        }
+    }
+}