Quellcode durchsuchen

义乌妇幼新增规则合并(sq)

wangsy vor 3 Jahren
Ursprung
Commit
f848a108ae

+ 59 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstcourserecord/FIRC03295.java

@@ -0,0 +1,59 @@
+package com.lantone.qc.kernel.catalogue.firstcourserecord;
+
+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.model.doc.FirstCourseRecordDoc;
+import com.lantone.qc.pub.model.doc.FirstPageRecordDoc;
+import com.lantone.qc.pub.model.doc.MedicalRecordInfoDoc;
+import com.lantone.qc.pub.util.StringUtil;
+import org.springframework.stereotype.Component;
+
+/**
+ * @ClassName : FIRC03295
+ * @Description : 产科首次病程录年龄不应小于14岁或大于54岁
+ * @Author : 沈乾
+ * @Date: 2022-04-13 17:35
+ */
+@Component
+/*
+        1.查证【首次病程录】,有则继续。
+        2.查证【住院信息表】或【病案首页的(出院科室/出院科别)】是否为包含(产科)字段,不包含妇产科,有则继续。
+        3.查证【首次病程录】>>【年龄】字段内容,并判断字段内容的数字是否小于14或大于54,是则提示"
+*/
+
+public class FIRC03295 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status.set("0");
+        FirstCourseRecordDoc firstCourseRecordDoc = inputInfo.getFirstCourseRecordDoc();
+        MedicalRecordInfoDoc medicalRecordInfoDoc = inputInfo.getMedicalRecordInfoDoc();
+        FirstPageRecordDoc firstPageRecordDoc = inputInfo.getFirstPageRecordDoc();
+        if (firstCourseRecordDoc == null) {
+            return;
+        }
+        if (medicalRecordInfoDoc == null) {
+            return;
+        }
+        //定义变量,并将住院信息表中的出院科室信息赋值给变量
+        String behDeptName = medicalRecordInfoDoc.getStructureMap().get("beh_dept_name");
+        //定义变量,并将病案首页中的出院科室信息赋值给变量
+        String aa = firstPageRecordDoc.getStructureMap().get("出院科别");
+        //条件判断
+        if (StringUtil.isNotBlank(behDeptName) && !behDeptName.contains("产科") && behDeptName.contains("妇产科")
+                && StringUtil.isNotBlank(aa) && !aa.contains("产科") && aa.contains("妇产科")) {
+            return;
+        }
+        //定义变量储存从首次病程录中获取的年龄字段信息
+        String age = firstCourseRecordDoc.getStructureMap().get("年龄");
+        //判断年龄字段是否为空,且将年龄字段中可能出现的岁和年进行替换
+        if (StringUtil.isNotBlank(age)) {
+            age = age.replace("年", "").replace("岁", "");
+            //定义变量储存强制转化类型后的age
+            int ageNum = Integer.parseInt(age);
+            if (ageNum < 14 || ageNum > 54) {
+                status.set("-1");
+                return;
+            }
+        }
+    }
+}

Datei-Diff unterdrückt, da er zu groß ist
+ 96 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstcourserecord/FIRC03296.java


+ 55 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP03294.java

@@ -0,0 +1,55 @@
+package com.lantone.qc.kernel.catalogue.firstpagerecord;
+
+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.model.doc.FirstPageRecordDoc;
+import com.lantone.qc.pub.model.doc.MedicalRecordInfoDoc;
+import com.lantone.qc.pub.util.StringUtil;
+import org.springframework.stereotype.Component;
+
+/**
+ * @ClassName : FIRP03294
+ * @Description : 产科病案首页年龄不应小于14岁或大于54岁
+ * @Author : 沈乾
+ * @Date: 2022-04-14 15:31
+ */
+@Component
+/*
+        1.查证【病案首页】,有则继续。
+        2.查证【住院信息表】或【病案首页的(出院科室/出院科别)】是否为包含(产科)字段,不包含妇产科,有则继续。
+        3.查证【病案首页】>>【年龄】字段内容,并判断字段内容的数字是否小于14或大于54,是则提示
+*/
+
+public class FIRP03294 extends QCCatalogue {
+
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status.set("0");
+        FirstPageRecordDoc firstPageRecordDoc = inputInfo.getFirstPageRecordDoc();
+        MedicalRecordInfoDoc medicalRecordInfoDoc = inputInfo.getMedicalRecordInfoDoc();
+        if (firstPageRecordDoc == null) {
+            return;
+        }
+        if (medicalRecordInfoDoc == null) {
+            return;
+        }
+        String behDeptName = medicalRecordInfoDoc.getStructureMap().get("beh_dept_name");
+
+        String aa = firstPageRecordDoc.getStructureMap().get("出院科别");
+
+        if (StringUtil.isNotBlank(behDeptName) && !behDeptName.contains("产科") && behDeptName.contains("妇产科")
+                && StringUtil.isNotBlank(aa) && !aa.contains("产科") && aa.contains("妇产科")) {
+            return;
+        }
+        String age = firstPageRecordDoc.getStructureMap().get("年龄");
+        if (StringUtil.isNotBlank(age)) {
+            age = age.replace("年", "").replace("岁", "");
+            int ageNum = Integer.parseInt(age);
+            if (ageNum < 14 || ageNum > 54) {
+                status.set("-1");
+                return;
+            }
+        }
+
+    }
+}

+ 83 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP03297.java

@@ -0,0 +1,83 @@
+package com.lantone.qc.kernel.catalogue.firstpagerecord;
+
+
+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.model.doc.FirstPageRecordDoc;
+import com.lantone.qc.pub.util.StringUtil;
+import org.springframework.stereotype.Component;
+
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * @ClassName : FIRP03297
+ * @Description : 异位妊娠患者病案首页年龄不应小于14岁或大于54岁
+ * @Author : 沈乾
+ * @Date: 2022-04-14 16:57
+ */
+@Component
+/*
+        1.查证【病案首页】,有则继续。
+        2.查证【病案首页】>>【出院诊断】或【门急诊诊断】或【门(急)诊诊断】或【门诊诊断】中是否有诊断能匹配【异位妊娠-疾病列表】中任一疾病名称,有则继续。
+        3.查证【病案首页】>>【年龄】字段内容,并判断字段内容的数字是否小于14或大于54,是则提示"
+*/
+public class FIRP03297 extends QCCatalogue {
+
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status.set("0");
+        //1.查证病案首页,有则继续。
+        FirstPageRecordDoc firstPageRecordDoc = inputInfo.getFirstPageRecordDoc();
+        if (firstPageRecordDoc == null) {
+            return;
+        }
+        //定义变量,获取储存的数据
+        String a = firstPageRecordDoc.getStructureMap().get("出院诊断");
+        String b = firstPageRecordDoc.getStructureMap().get("门急诊诊断");
+        String c = firstPageRecordDoc.getStructureMap().get("门(急)诊诊断");
+        String d = firstPageRecordDoc.getStructureMap().get("门诊诊断");
+        //将【异位妊娠-疾病列表】中任一疾病名称中的所有名称写入列表中去
+        List<String> disease_name = Arrays.asList("腹腔妊娠", "大网膜妊娠", "输卵管妊娠", "输卵管妊娠合并宫内孕", "输卵管伞部妊娠破裂"
+                , "输卵管复合妊娠", "输卵管妊娠流产", "输卵管妊娠破裂", "输卵管残端妊娠破裂", "输卵管壶腹部妊娠", "输卵管壶腹部妊娠流产"
+                , "输卵管壶腹部妊娠破裂", "输卵管间质部妊娠", "输卵管间质部妊娠流产", "输卵管间质部妊娠破裂", "输卵管伞部妊娠", "异位妊娠"
+                , "输卵管伞部妊娠流产", "输卵管伞端妊娠破裂", "输卵管峡部妊娠", "输卵管峡部妊娠破裂", "陈旧性输卵管妊娠", "卵巢妊娠"
+                , "卵巢妊娠破裂", "异位妊娠,其他的", "子宫下段妊娠", "子宫颈妊娠", "剖宫产瘢痕妊娠", "韧带内妊娠", "残角子宫妊娠"
+                , "残角子宫妊娠破裂", "输卵管峡部妊娠流产", "宫颈妊娠", "宫内外复合妊娠", "阔韧带妊娠", "子宫瘢痕处妊娠", "子宫壁妊娠"
+                , "子宫角妊娠", "持续性异位妊娠", "腹腔妊娠", "大网膜妊娠", "输卵管妊娠", "宫内外复合妊娠", "输卵管伞端妊娠破裂"
+                , "输卵管复合妊娠", "输卵管妊娠流产", "输卵管妊娠破裂", "输卵管残端妊娠破裂", "输卵管壶腹部妊娠", "输卵管壶腹部妊娠流产"
+                , "输卵管壶腹部妊娠破裂", "输卵管间质部妊娠", "输卵管间质部妊娠流产", "输卵管间质部妊娠破裂", "输卵管伞部妊娠"
+                , "输卵管伞部妊娠流产", "输卵管伞端妊娠破裂", "输卵管峡部妊娠", "输卵管峡部妊娠流产", "输卵管峡部妊娠破裂"
+                , "陈旧性输卵管妊娠", "卵巢妊娠", "卵巢妊娠破裂", "异位妊娠,其他的", "子宫下段妊娠", "宫颈妊娠", "子宫瘢痕处妊娠"
+                , "阔韧带妊娠", "残角子宫妊娠", "残角子宫妊娠破裂", "宫颈妊娠", "宫内外复合妊娠", "阔韧带妊娠", "子宫瘢痕处妊娠"
+                , "子宫壁妊娠", "子宫角妊娠", "异位妊娠", "持续性异位妊娠");
+        //定义一个布尔类型,用于最后的判断
+        boolean l = false;
+        //遍历列表内容,
+        for (int i = 0; i < disease_name.size(); i++) {
+            String name = disease_name.get(i);//定义一个变量储存每一次遍历时获取的列表值
+            if ((StringUtil.isNotBlank(a) && a.contains(name)) || (StringUtil.isNotBlank(b) && b.contains(name))
+                    || StringUtil.isNotBlank(c) && c.contains(name)){//用contains判断变量abc中是否包含列表中的任一项
+                l = true;
+                break;
+            }
+        }
+        if (l) {
+
+
+            //定义变量储存从病案首页中获取的年龄字段信息
+            String age = firstPageRecordDoc.getStructureMap().get("年龄");
+            if (StringUtil.isNotBlank(age)) {
+                age = age.replace("年", "").replace("岁", "");
+                //定义变量储存强制转化类型后的age
+                int ageNum = Integer.parseInt(age);
+                if (ageNum < 14 || ageNum > 54) {
+                    status.set("-1");
+                    return;
+                }
+            }
+
+        }
+    }
+}
+

+ 71 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP03298.java

@@ -0,0 +1,71 @@
+package com.lantone.qc.kernel.catalogue.firstpagerecord;
+
+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.model.doc.FirstPageRecordDoc;
+import com.lantone.qc.pub.model.doc.MedicalRecordInfoDoc;
+import com.lantone.qc.pub.util.StringUtil;
+import org.springframework.stereotype.Component;
+
+import java.util.Arrays;
+import java.util.List;
+
+/**
+ * @ClassName : FIRP03298
+ * @Description : 病案首页性别和科室不符,性别不应为男性
+ * @Author : 沈乾
+ * @Date: 2022-04-14 15:25
+ */
+@Component
+/*
+        1.查证【病案首页】,有则继续
+        2.查证【住院信息表】或【病案首页的(出院科室/出院科别)】是否为包含(产科/妇科/妇产科)任一字段,有则继续。
+        3.查证【病案首页】>>【性别】字段内容, 字段内容为【男#男性#1#1男#1男性#1.男#1.男性】任一,则提示。"
+*/
+
+public class FIRP03298 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status.set("0");
+        //1.查证病案首页,有则继续;再查证住院信息表
+        FirstPageRecordDoc firstPageRecordDoc = inputInfo.getFirstPageRecordDoc();
+        MedicalRecordInfoDoc medicalRecordInfoDoc = inputInfo.getMedicalRecordInfoDoc();
+        if (firstPageRecordDoc == null) {
+            return;
+        }
+        if(medicalRecordInfoDoc == null){
+            return;
+        }
+        //定义变量,并将住院信息表中的出院科室信息赋值给变量
+        String bb = medicalRecordInfoDoc.getStructureMap().get("beh_dept_name");
+        //定义变量,并将病案首页中的出院科室信息赋值给变量
+        String aa = firstPageRecordDoc.getStructureMap().get("出院科别");
+        //定义列表储存字段
+        List<String> disease_name = Arrays.asList("产科","妇科","妇产科");
+        //定义一个布尔类型,用于最后的判断
+        boolean l = false;
+        //遍历列表内容,
+        for (int i = 0; i < disease_name.size(); i++) {
+            String name = disease_name.get(i);//定义一个变量储存每一次遍历时获取的列表值
+            if ((StringUtil.isNotBlank(aa) && aa.contains(name)) || (StringUtil.isNotBlank(bb) && bb.contains(name))){//用contains判断变量abc中是否包含列表中的任一项
+                l = true;
+                break;
+            }
+        }
+        if (l) {
+
+
+            //定义变量储存从病案首页中获取的性别字段信息
+            String sex = firstPageRecordDoc.getStructureMap().get("性别");
+            if (StringUtil.isNotBlank(sex) && (sex.contains("男") || sex.contains("男性") || sex.contains("1")
+                    || sex.contains("1男") || sex.contains("1男性") || sex.contains("1.男") || sex.contains("1.男性"))) {
+
+                status.set("-1");
+                return;
+
+            }
+
+        }
+    }
+}
+

+ 71 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP03300.java

@@ -0,0 +1,71 @@
+package com.lantone.qc.kernel.catalogue.firstpagerecord;
+
+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.model.doc.FirstPageRecordDoc;
+import com.lantone.qc.pub.model.doc.MedicalRecordInfoDoc;
+import com.lantone.qc.pub.util.StringUtil;
+import org.springframework.stereotype.Component;
+
+import java.util.Date;
+
+/**
+ * @ClassName : FIRP03300
+ * @Description : 产科病案首页血型不能填不详或未查
+ * @Author : 沈乾
+ * @Date: 2022-04-15 15:25
+ */
+@Component
+/*
+        1.查证【病案首页】,有则继续
+        2.查证【住院信息表】或【病案首页的(出院科室/出院科别)】是否为包含(产科)字段,排除妇产科,有则继续。
+        3.查证【入院时间】和当前时间已超24小时,是则继续。
+        4.查看【病案首页】>>【血型】字段内容, 字段内容为【不详#未查#6#5#5不详#6未查#5.不详#6.未查】任一,则提示。"
+*/
+
+public class FIRP03300 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo){
+        //查证【病案首页】,有则继续
+        FirstPageRecordDoc firstPageRecordDoc = inputInfo.getFirstPageRecordDoc();
+        if(firstPageRecordDoc == null){
+            return;
+        }
+        MedicalRecordInfoDoc medicalRecordInfoDoc = inputInfo.getMedicalRecordInfoDoc();
+        if(medicalRecordInfoDoc == null){
+            return;
+        }
+        //定义变量,并将住院信息表中的出院科室信息赋值给变量
+        String behDeptName = medicalRecordInfoDoc.getStructureMap().get("beh_dept_name");
+        //定义变量,并将病案首页中的出院科室信息赋值给变量
+        String aa = firstPageRecordDoc.getStructureMap().get("出院科别");
+        //条件判断
+        if (StringUtil.isNotBlank(behDeptName) && !behDeptName.contains("产科") && behDeptName.contains("妇产科")
+                && StringUtil.isNotBlank(aa) && !aa.contains("产科") && behDeptName.contains("妇产科")) {
+            return;
+        }
+
+
+        long l = Long.parseLong("1440");//定义超出的24小时也就是1440分钟为long类型
+        Date now = new Date();//获取当前时间
+        String beHospital_Date = medicalRecordInfoDoc.getStructureMap().get("behospital_date");//获取入院时间
+        Date beginTime = StringUtil.parseDateTime(beHospital_Date);//将获得的时间转化成date类型
+        if(!CatalogueUtil.compareTime(beginTime,now,l)){
+            return;
+        }
+
+
+
+
+        String blood = firstPageRecordDoc.getStructureMap().get("血型");
+        if (StringUtil.isNotBlank(blood) && (blood.contains("不详") || blood.contains("未查")
+                || blood.contains("6") || blood.contains("5") || blood.contains("5不详")
+                || blood.contains("6未查") || blood.contains("5.不详") || blood.contains("6.未查"))) {
+
+            status.set("-1");
+            return;
+
+        }
+    }
+}

+ 77 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP03301.java

@@ -0,0 +1,77 @@
+package com.lantone.qc.kernel.catalogue.firstpagerecord;
+
+import com.lantone.qc.kernel.catalogue.QCCatalogue;
+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.MedicalRecordInfoDoc;
+import com.lantone.qc.pub.util.StringUtil;
+import org.springframework.stereotype.Component;
+
+import java.util.List;
+import java.util.Map;
+
+/**
+ * @ClassName : FIRP03301
+ * @Description : 产科出院主要诊断编码应为“O”码
+ * @Author : 沈乾
+ * @Date: 2022-04-15 16:25
+ */
+@Component
+/*
+        1.查证【病案首页】,有则继续
+        2.查证【病案首页】内(出院科室/出院科别)或【住院信息表科室】,为包含“产科”不为“妇产科”
+        3.查看【出院主要诊断编码】字段内容,未填写则不报,填写情况下为字母“O”开头的编码,则通过,否则提示。"
+
+*/
+public class FIRP03301 extends QCCatalogue {
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status.set("0");
+        //查证【病案首页】,有则继续
+        FirstPageRecordDoc firstPageRecordDoc = inputInfo.getFirstPageRecordDoc();
+        if (firstPageRecordDoc == null) {
+            return;
+        }
+        String a = firstPageRecordDoc.getStructureMap().get("出院科别");
+
+
+        //查证住院信息表
+        MedicalRecordInfoDoc medicalRecordInfoDoc = inputInfo.getMedicalRecordInfoDoc();
+        if(medicalRecordInfoDoc == null){
+            return;
+        }
+        //定义变量,并将住院信息表中的出院科室信息赋值给变量
+        String behDeptName = medicalRecordInfoDoc.getStructureMap().get("beh_dept_name");
+
+
+        //条件判断
+        if (StringUtil.isNotBlank(behDeptName) && !behDeptName.contains("产科") && behDeptName.contains("妇产科")
+                && StringUtil.isNotBlank(a) && !a.contains("产科") && a.contains("妇产科")) {
+            return;
+        }
+
+        //获取出院诊断信息
+        Map<String, Object> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureExtMap();
+        List<Map<String, String>> dischargeDiag = (List) firstpageStructureMap.get(Content.dischargeDiag);
+        if(dischargeDiag == null){
+            return;
+        }
+        //获取诊断编码
+        String s = dischargeDiag.get(0).get(Content.diagCode);
+        char fir = s.charAt(0);
+        if(s == null){
+            return;
+        } else if(fir == 0){
+
+            status.set("-1");
+            return;
+        } else{
+            return;
+        }
+
+
+
+
+    }
+}