Bladeren bron

嵊州性别与基本信息一致性规则新增

wangsy 3 jaren geleden
bovenliggende
commit
9044006848

+ 1 - 1
kernel/src/main/java/com/lantone/qc/kernel/catalogue/firstpagerecord/FIRP03229.java

@@ -11,7 +11,7 @@ import java.util.Map;
 
 /**
  * @ClassName : FIRP03229
- * @Description : 身份证号与性别不符合
+ * @Description : 身份证信息填写与性别不符
  * @Author : wsy
  * @Date: 2022-04-12 16:13
  */

+ 64 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/shengzhouyy/deathcasediscuss/DEAC03232.java

@@ -0,0 +1,64 @@
+package com.lantone.qc.kernel.catalogue.hospital.shengzhouyy.deathcasediscuss;
+
+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.DeathCaseDiscussDoc;
+import com.lantone.qc.pub.model.doc.LeaveHospitalDoc;
+import com.lantone.qc.pub.model.doc.MedicalRecordInfoDoc;
+import com.lantone.qc.pub.util.StringUtil;
+import org.springframework.stereotype.Component;
+
+import java.util.Map;
+
+/**
+ * @ClassName : DEAC03232
+ * @Description: 死亡病例讨论记录内性别和基本信息不一致
+ * @author: wsy
+ * @time: 2022/5/18 15:15
+ */
+@Component
+public class DEAC03232 extends QCCatalogue {
+    /**
+     * 1.(死亡病例讨论记录)存在,查看文书结构化(性别)和文书内是否有包含(男性/女性/男/女/性别男/性别女),存在则统一提取出
+     * 2.获取住院信息表,查看性别和(死亡病例讨论记录)中提出的性别处理过同义词后是否一致,任一不一致则报出
+     * */
+    @Override
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status.set("0");
+        String gender = "";
+        MedicalRecordInfoDoc medicalRecordInfoDoc = inputInfo.getMedicalRecordInfoDoc();
+        DeathCaseDiscussDoc deathCaseDiscussDoc = inputInfo.getDeathCaseDiscussDoc();
+        if (medicalRecordInfoDoc == null || deathCaseDiscussDoc == null) {
+            return;
+        }
+        gender = medicalRecordInfoDoc.getStructureMap().get("sex");
+        if (StringUtil.isBlank(gender)) {
+            return;
+        }
+        Map<String, String> structureMap = deathCaseDiscussDoc.getStructureMap();
+        String firCGender = structureMap.get("性别");
+        String text = structureMap.get("原始文本");
+        if (gender.contains("男")) {
+            if (StringUtil.isNotBlank(firCGender) && firCGender.contains("女")) {
+                status.set("-1");
+                return;
+            }
+            if (StringUtil.isNotBlank(text) && text.contains("女")) {
+                status.set("-1");
+                return;
+            }
+        }
+
+        if (gender.contains("女")) {
+            if (StringUtil.isNotBlank(firCGender) && firCGender.contains("男")) {
+                status.set("-1");
+                return;
+            }
+            if (StringUtil.isNotBlank(text) && text.contains("男")) {
+                status.set("-1");
+                return;
+            }
+        }
+    }
+}

+ 64 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/shengzhouyy/deathrecord/DEAR03233.java

@@ -0,0 +1,64 @@
+package com.lantone.qc.kernel.catalogue.hospital.shengzhouyy.deathrecord;
+
+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.DeathCaseDiscussDoc;
+import com.lantone.qc.pub.model.doc.DeathRecordDoc;
+import com.lantone.qc.pub.model.doc.MedicalRecordInfoDoc;
+import com.lantone.qc.pub.util.StringUtil;
+import org.springframework.stereotype.Component;
+
+import java.util.Map;
+
+/**
+ * @ClassName : DEAR03233
+ * @Description: 死亡记录内性别和基本信息不一致
+ * @author: wsy
+ * @time: 2022/5/18 15:15
+ */
+@Component
+public class DEAR03233 extends QCCatalogue {
+    /**
+     * 1.(死亡记录)存在,查看文书结构化(性别)和文书内是否有包含(男性/女性/男/女/性别男/性别女),存在则统一提取出
+     * 2.获取住院信息表,查看性别和(死亡记录)中提出的性别处理过同义词后是否一致,任一不一致则报出
+     * */
+    @Override
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status.set("0");
+        String gender = "";
+        MedicalRecordInfoDoc medicalRecordInfoDoc = inputInfo.getMedicalRecordInfoDoc();
+        DeathRecordDoc deathRecordDoc = inputInfo.getDeathRecordDoc();
+        if (medicalRecordInfoDoc == null || deathRecordDoc == null) {
+            return;
+        }
+        gender = medicalRecordInfoDoc.getStructureMap().get("sex");
+        if (StringUtil.isBlank(gender)) {
+            return;
+        }
+        Map<String, String> structureMap = deathRecordDoc.getStructureMap();
+        String firCGender = structureMap.get("性别");
+        String text = structureMap.get("原始文本");
+        if (gender.contains("男")) {
+            if (StringUtil.isNotBlank(firCGender) && firCGender.contains("女")) {
+                status.set("-1");
+                return;
+            }
+            if (StringUtil.isNotBlank(text) && text.contains("女")) {
+                status.set("-1");
+                return;
+            }
+        }
+
+        if (gender.contains("女")) {
+            if (StringUtil.isNotBlank(firCGender) && firCGender.contains("男")) {
+                status.set("-1");
+                return;
+            }
+            if (StringUtil.isNotBlank(text) && text.contains("男")) {
+                status.set("-1");
+                return;
+            }
+        }
+    }
+}

+ 62 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/shengzhouyy/firstcourserecord/FIRC03230.java

@@ -0,0 +1,62 @@
+package com.lantone.qc.kernel.catalogue.hospital.shengzhouyy.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.MedicalRecordInfoDoc;
+import com.lantone.qc.pub.util.StringUtil;
+import org.springframework.stereotype.Component;
+
+import java.util.Map;
+
+/**
+ * @ClassName : FIRC03230
+ * @Description : 首次病程录内性别和基本信息不一致
+ * @Author : wangsy
+ * @Date: 2022-05-18 17:28
+ */
+@Component
+public class FIRC03230 extends QCCatalogue {
+    /**
+     * 1.首次病程录存在,查看文书结构化(性别)和文书内是否有包含(男性/女性/男/女/性别男/性别女),存在则统一提取出
+     * 2.获取住院信息表,查看性别和首次病程录中提出的性别处理过同义词后是否一致,任一不一致则报出
+     */
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status.set("0");
+        String gender = "";
+        MedicalRecordInfoDoc medicalRecordInfoDoc = inputInfo.getMedicalRecordInfoDoc();
+        FirstCourseRecordDoc firstCourseRecordDoc = inputInfo.getFirstCourseRecordDoc();
+        if (medicalRecordInfoDoc == null || firstCourseRecordDoc == null) {
+            return;
+        }
+        gender = medicalRecordInfoDoc.getStructureMap().get("sex");
+        if (StringUtil.isBlank(gender)) {
+            return;
+        }
+        Map<String, String> structureMap = firstCourseRecordDoc.getStructureMap();
+        String firCGender = structureMap.get("性别");
+        String text = structureMap.get("原始文本");
+        if (gender.contains("男")) {
+            if (StringUtil.isNotBlank(firCGender) && firCGender.contains("女")) {
+                status.set("-1");
+                return;
+            }
+            if (StringUtil.isNotBlank(text) && text.contains("女")) {
+                status.set("-1");
+                return;
+            }
+        }
+
+        if (gender.contains("女")) {
+            if (StringUtil.isNotBlank(firCGender) && firCGender.contains("男")) {
+                status.set("-1");
+                return;
+            }
+            if (StringUtil.isNotBlank(text) && text.contains("男")) {
+                status.set("-1");
+                return;
+            }
+        }
+    }
+}

+ 63 - 0
kernel/src/main/java/com/lantone/qc/kernel/catalogue/hospital/shengzhouyy/leavehospital/LEA03231.java

@@ -0,0 +1,63 @@
+package com.lantone.qc.kernel.catalogue.hospital.shengzhouyy.leavehospital;
+
+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.LeaveHospitalDoc;
+import com.lantone.qc.pub.model.doc.MedicalRecordInfoDoc;
+import com.lantone.qc.pub.util.StringUtil;
+import org.springframework.stereotype.Component;
+
+import java.util.Map;
+
+/**
+ * @ClassName : LEA03231
+ * @Description: 出院记录内性别和基本信息不一致
+ * @author: wsy
+ * @time: 2022/5/18 15:15
+ */
+@Component
+public class LEA03231 extends QCCatalogue {
+    /**
+     * 1.(出院存小结/出院记录)存在,查看文书结构化(性别)和文书内是否有包含(男性/女性/男/女/性别男/性别女),存在则统一提取出
+     * 2.获取住院信息表,查看性别和(出院存小结/出院记录)中提出的性别处理过同义词后是否一致,任一不一致则报出
+     * */
+    @Override
+    public void start(InputInfo inputInfo, OutputInfo outputInfo) {
+        status.set("0");
+        String gender = "";
+        MedicalRecordInfoDoc medicalRecordInfoDoc = inputInfo.getMedicalRecordInfoDoc();
+        LeaveHospitalDoc leaveHospitalDoc = inputInfo.getLeaveHospitalDoc();
+        if (medicalRecordInfoDoc == null || leaveHospitalDoc == null) {
+            return;
+        }
+        gender = medicalRecordInfoDoc.getStructureMap().get("sex");
+        if (StringUtil.isBlank(gender)) {
+            return;
+        }
+        Map<String, String> structureMap = leaveHospitalDoc.getStructureMap();
+        String firCGender = structureMap.get("性别");
+        String text = structureMap.get("原始文本");
+        if (gender.contains("男")) {
+            if (StringUtil.isNotBlank(firCGender) && firCGender.contains("女")) {
+                status.set("-1");
+                return;
+            }
+            if (StringUtil.isNotBlank(text) && text.contains("女")) {
+                status.set("-1");
+                return;
+            }
+        }
+
+        if (gender.contains("女")) {
+            if (StringUtil.isNotBlank(firCGender) && firCGender.contains("男")) {
+                status.set("-1");
+                return;
+            }
+            if (StringUtil.isNotBlank(text) && text.contains("男")) {
+                status.set("-1");
+                return;
+            }
+        }
+    }
+}