Переглянути джерело

Merge remote-tracking branch 'origin/dev-1.2' into dev

hujing 5 роки тому
батько
коміт
2c1a276c0e

+ 1 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH02922.java

@@ -23,7 +23,7 @@ public class BEH02922 extends QCCatalogue {
             return;
         }
         Map<String, String> beHospitalStructureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
-        if (StringUtil.isBlank(beHospitalStructureMap.get("桡动脉脉率"))) {
+        if (StringUtil.isBlank(beHospitalStructureMap.get("脉搏"))) {
             status.set("-1");
         }
     }

+ 4 - 5
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH02956.java

@@ -24,11 +24,10 @@ public class BEH02956 extends QCCatalogue {
         }
         Map<String, String> beHospitalStructureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
         String marry = beHospitalStructureMap.get("婚姻");
-        if (StringUtil.isNotBlank(marry) && "未婚".equals(marry)){
-            return;
-        }
-        if (StringUtil.isBlank(beHospitalStructureMap.get("结婚年龄"))) {
-            status.set("-1");
+        if (StringUtil.isNotBlank(marry) && "已婚".equals(marry)) {
+            if (StringUtil.isBlank(beHospitalStructureMap.get("结婚年龄"))) {
+                status.set("-1");
+            }
         }
     }
 }

+ 4 - 5
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH02957.java

@@ -24,11 +24,10 @@ public class BEH02957 extends QCCatalogue {
         }
         Map<String, String> beHospitalStructureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
         String marry = beHospitalStructureMap.get("婚姻");
-        if (StringUtil.isNotBlank(marry) && "未婚".equals(marry)){
-            return;
-        }
-        if (StringUtil.isBlank(beHospitalStructureMap.get("夫妻关系"))) {
-            status.set("-1");
+        if (StringUtil.isNotBlank(marry) && "已婚".equals(marry)) {
+            if (StringUtil.isBlank(beHospitalStructureMap.get("夫妻关系"))) {
+                status.set("-1");
+            }
         }
     }
 }

+ 2 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/behospitalized/BEH02978.java

@@ -4,6 +4,7 @@ import com.lantone.qc.kernel.catalogue.QCCatalogue;
 import com.lantone.qc.pub.model.InputInfo;
 import com.lantone.qc.pub.model.OutputInfo;
 import com.lantone.qc.pub.util.StringUtil;
+import org.springframework.stereotype.Component;
 
 import java.util.Map;
 
@@ -13,6 +14,7 @@ import java.util.Map;
  * @Author : 楼辉荣
  * @Date: 2020-06-20 15:00
  */
+@Component
 public class BEH02978 extends QCCatalogue {
     @Override
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {

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

@@ -4,6 +4,7 @@ import com.lantone.qc.kernel.catalogue.QCCatalogue;
 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.util.StringUtil;
 import org.springframework.stereotype.Component;
 
 import java.util.Collection;
@@ -24,12 +25,8 @@ public class BEH0440 extends QCCatalogue {
             return;
         }
         Map<String, String> bhMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
-        if(bhMap != null){
-            if(bhMap.containsKey("户口地址")){
-                if(!CatalogueUtil.isEmpty(bhMap.get("户口地址"))){
-                    status.set("0");
-                }
-            }
+        if (StringUtil.isNotBlank(bhMap.get("户口地址"))) {
+            status.set("0");
         }
     }
 }

+ 3 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP0185.java

@@ -30,6 +30,9 @@ public class FIRP0185 extends QCCatalogue {
             Map<String, String> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureMap();
             String drugAllergy = firstpageStructureMap.get(Content.drugAllergy);
             BeHospitalizedDoc beHospitalizedDoc = inputInfo.getBeHospitalizedDoc();
+            if (beHospitalizedDoc.getPastLabel() == null) {
+                return;
+            }
             PastLabel pastLabel = beHospitalizedDoc.getPastLabel();
             List<AllergyMedicine> allergyMedicines = pastLabel.getAllergyMedicines();
             if (allergyMedicines.size() == 0 || CatalogueUtil.isEmpty(drugAllergy)) {

+ 22 - 13
kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR0127.java

@@ -9,6 +9,7 @@ import com.lantone.qc.pub.model.doc.ThreeLevelWardDoc;
 import com.lantone.qc.pub.model.doc.operation.OperationDoc;
 import com.lantone.qc.pub.util.DateUtil;
 import com.lantone.qc.pub.util.StringUtil;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.stereotype.Component;
 
 import java.util.ArrayList;
@@ -26,13 +27,22 @@ import java.util.Map;
 public class THR0127 extends QCCatalogue {
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         status.set("0");
-        if (inputInfo.getLeaveHospitalDoc() != null
-                && inputInfo.getBeHospitalizedDoc() != null && inputInfo.getBeHospitalizedDoc().getStructureMap() != null
-                && inputInfo.getThreeLevelWardDocs().size() > 0) {
+        if (inputInfo.getLeaveHospitalDoc() != null) {
             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)) {
+            //如果住院天数小于7天则不判断该条规则
+            if (!CatalogueUtil.isEmpty(admisTime) && !CatalogueUtil.isEmpty(dischargeTime)) {
+                if (!CatalogueUtil.compareTime(StringUtil.parseDateTime(admisTime), StringUtil.parseDateTime(dischargeTime), (long) (7 * 24 * 60))) {
+                    return;
+                }
+            }
+        }
+
+        if (inputInfo.getBeHospitalizedDoc() != null && inputInfo.getThreeLevelWardDocs().size() > 0) {
+            Map<String, String> beHospitalStructureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
+            String admisTime = beHospitalStructureMap.get("入院日期");
+            if (CatalogueUtil.isEmpty(admisTime)) {
                 return;
             }
             //开始时间(入院时间)
@@ -40,10 +50,6 @@ public class THR0127 extends QCCatalogue {
             if (beginDate == null) {
                 return;
             }
-            //如果住院天数小于7天则不判断该条规则
-            if (!CatalogueUtil.compareTime(beginDate, StringUtil.parseDateTime(dischargeTime), (long) (7 * 24 * 60))) {
-                return;
-            }
 
             ThreeLevelWardDoc threeLevelWardDoc = inputInfo.getThreeLevelWardDocs().get(0);
             List<ThreeLevelWardDoc> allDoctorWradDocs = threeLevelWardDoc.getAllDoctorWradDocs();
@@ -78,16 +84,19 @@ public class THR0127 extends QCCatalogue {
                 status.set("0");
                 return;
             }
+            List<String> resultInfos = new ArrayList<>();
             for (int j = 0; j < roundRecordEveryWeek.size(); j++) {
                 int directorNum = CatalogueUtil.appearNumber(roundRecordEveryWeek.get(j).split(","), Content.director);
                 int dept_doctorNum = CatalogueUtil.appearNumber(roundRecordEveryWeek.get(j).split(","), Content.dept_doctor);
                 if (directorNum + dept_doctorNum < 2) {
                     //每周无2次主任医师查房记录/科主任查房记录
                     status.set("-1");
-                    info.set(lastWardDateRangeList.get(j));
-                    return;
+                    resultInfos.add(lastWardDateRangeList.get(j));
                 }
             }
+            if (resultInfos.size() > 0) {
+                info.set(StringUtils.join(resultInfos.toArray(), ";"));
+            }
         }
     }
 
@@ -127,10 +136,10 @@ public class THR0127 extends QCCatalogue {
             /* 替换查房标题中主刀/一助的职称 */
             List<OperationDoc> operationDocs = inputInfo.getOperationDocs();
             if (title.contains("主刀")) {
-                String doctorTitle = CatalogueUtil.getDoctorTitle(operationDocs, recordDate,"主刀医师");
+                String doctorTitle = CatalogueUtil.getDoctorTitle(operationDocs, recordDate, "主刀医师");
                 title = title.replace("主刀", doctorTitle);
-            } else if (title.contains("一助")){
-                String doctorTitle = CatalogueUtil.getDoctorTitle(operationDocs, recordDate,"一助");
+            } else if (title.contains("一助")) {
+                String doctorTitle = CatalogueUtil.getDoctorTitle(operationDocs, recordDate, "一助");
                 title = title.replace("一助", doctorTitle);
             }
             if (admisDate.before(recordDate) && !CatalogueUtil.compareTime(admisDate, recordDate, Long.valueOf(duration))) {

+ 20 - 10
kernel/src/main/java/com/lantone/qc/kernel/catalogue/threelevelward/THR0128.java

@@ -12,6 +12,7 @@ import com.lantone.qc.pub.model.doc.ThreeLevelWardDoc;
 import com.lantone.qc.pub.model.doc.operation.OperationDoc;
 import com.lantone.qc.pub.util.DateUtil;
 import com.lantone.qc.pub.util.StringUtil;
+import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Component;
 
@@ -33,13 +34,22 @@ public class THR0128 extends QCCatalogue {
 
     public void start(InputInfo inputInfo, OutputInfo outputInfo) {
         status.set("0");
-        if (inputInfo.getLeaveHospitalDoc() != null
-                && inputInfo.getBeHospitalizedDoc() != null && inputInfo.getBeHospitalizedDoc().getStructureMap() != null
-                && inputInfo.getThreeLevelWardDocs().size() > 0) {
+        if (inputInfo.getLeaveHospitalDoc() != null) {
             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)) {
+            //如果住院天数小于7天则不判断该条规则
+            if (!CatalogueUtil.isEmpty(admisTime) && !CatalogueUtil.isEmpty(dischargeTime)) {
+                if (!CatalogueUtil.compareTime(StringUtil.parseDateTime(admisTime), StringUtil.parseDateTime(dischargeTime), (long) (7 * 24 * 60))) {
+                    return;
+                }
+            }
+        }
+        if (inputInfo.getBeHospitalizedDoc() != null && inputInfo.getBeHospitalizedDoc().getStructureMap() != null
+                && inputInfo.getThreeLevelWardDocs().size() > 0) {
+            Map<String, String> beHospitalStructureMap = inputInfo.getBeHospitalizedDoc().getStructureMap();
+            String admisTime = beHospitalStructureMap.get("入院日期");
+            if (CatalogueUtil.isEmpty(admisTime)) {
                 return;
             }
             //开始时间(入院时间)
@@ -47,10 +57,6 @@ public class THR0128 extends QCCatalogue {
             if (beginDate == null) {
                 return;
             }
-            //如果住院天数小于7天则不判断该条规则
-            if (!CatalogueUtil.compareTime(StringUtil.parseDateTime(admisTime), StringUtil.parseDateTime(dischargeTime), (long) (7 * 24 * 60))) {
-                return;
-            }
 
             ThreeLevelWardDoc threeLevelWardDoc = inputInfo.getThreeLevelWardDocs().get(0);
             List<ThreeLevelWardDoc> allDoctorWradDocs = threeLevelWardDoc.getAllDoctorWradDocs();
@@ -86,6 +92,7 @@ public class THR0128 extends QCCatalogue {
                 return;
             }
             boolean firstRecordAttendExist = findfirstRecordAttend(inputInfo);
+            List<String> resultInfos = new ArrayList<>();
             for (int j = 0; j < roundRecordEveryWeek.size(); j++) {
                 int indicationsNum = CatalogueUtil.appearNumber(roundRecordEveryWeek.get(j).split(","), Content.attend);
                 if (j == 0 && firstRecordAttendExist) { //如果首程中医师签名为主治医师,第一周查房记录也要加上
@@ -94,10 +101,13 @@ public class THR0128 extends QCCatalogue {
                 if (indicationsNum < 3) {
                     //每周无3次主治医师查房记录
                     status.set("-1");
-                    info.set(lastWardDateRangeList.get(j));
-                    return;
+                    resultInfos.add(lastWardDateRangeList.get(j));
                 }
             }
+
+            if (resultInfos.size() > 0) {
+                info.set(StringUtils.join(resultInfos.toArray(), ";"));
+            }
         }
     }
 

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

@@ -48,14 +48,25 @@ public class THR0602 extends QCCatalogue {
             if (CatalogueUtil.isEmpty(operationEndDateStr)) {
                 continue;
             }
+
+            //和系统当前时间做比较,如果未超过48小时,条目不做判断
+            Date admisDate = StringUtil.parseDateTime(operationEndDateStr);
+            boolean isExceed = CatalogueUtil.compareTime(admisDate, new Date(), 48 * 60L);
+            if (!isExceed) {
+                return;
+            }
+
             Map<String, String> doctorRecord = extractWardRecord(
                     allDoctorWradDocs,
                     operationEndDateStr,
                     48 * 60);
-            if (!doctorRecord.containsKey("主刀")) {
-                status.set("-1");
-                return;
+            if(doctorRecord != null && doctorRecord.size()>0){
+                if (!doctorRecord.containsKey("主刀")) {
+                    status.set("-1");
+                    return;
+                }
             }
+
         }
 
 

+ 2 - 2
trans/src/main/java/com/lantone/qc/trans/taizhou/TaiZhouBeHospitalizedDocTrans.java

@@ -71,7 +71,7 @@ public class TaiZhouBeHospitalizedDocTrans extends ModelDocTrans {
             "出生时间=出生日期",
             "病人出生日期=出生日期",
             "新生儿出生日期=出生日期",
-            "出生地址=户口地址",
+//            "出生地址=户口地址",
             "本人电话=电话",
             "联系电话=联系人电话",
             "入院日期=入院日期",
@@ -88,7 +88,7 @@ public class TaiZhouBeHospitalizedDocTrans extends ModelDocTrans {
             "修正诊断=修正诊断",
             "医生=医师签名",
             "补充诊断=补充诊断",
-            "户口地址=联系地址",
+//            "户口地址=联系地址",
             "家属提供的信息可信吗=病史可靠性",
             "入院诊断(中医疾病)=中医诊断",
             "长期用药情况(包括可能成瘾的药物)=长期用药",