|
@@ -0,0 +1,114 @@
|
|
|
+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.util.ListUtil;
|
|
|
+import com.lantone.qc.pub.util.StringUtil;
|
|
|
+import org.springframework.stereotype.Component;
|
|
|
+
|
|
|
+import java.util.Arrays;
|
|
|
+import java.util.List;
|
|
|
+import java.util.Map;
|
|
|
+
|
|
|
+/**
|
|
|
+ * @ClassName : FIRP03308
|
|
|
+ * @Description : 入院病情不应为4
|
|
|
+ * @Author : 尤伟豪
|
|
|
+ * @Date: 2022/4/19 13:19
|
|
|
+ */
|
|
|
+
|
|
|
+/*1.查证【病案首页】,有则继续。
|
|
|
+ 2.查证【病案首页】>>【出院诊断】中是否有诊断能匹配【异位妊娠-疾病列表】中任一疾病名称,有则继续。
|
|
|
+ 3.查证【匹配的异位妊娠疾病】对应的【入院病情】是否填写为【无/4/4.无】,是则提示*/
|
|
|
+@Component
|
|
|
+public class FIRP03308 extends QCCatalogue {
|
|
|
+
|
|
|
+
|
|
|
+ public void start(InputInfo inputInfo, OutputInfo outputInfo) {
|
|
|
+
|
|
|
+ status.set("0");
|
|
|
+ //查证病案首页,没有则终止
|
|
|
+ if(inputInfo.getFirstPageRecordDoc() == null){
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ //将【异位妊娠-疾病列表】中任一疾病名称中的所有名称写入列表中去
|
|
|
+ List<String> disease_name = Arrays.asList("腹腔妊娠", "大网膜妊娠", "输卵管妊娠", "输卵管妊娠合并宫内孕", "输卵管伞部妊娠破裂"
|
|
|
+ , "输卵管复合妊娠", "输卵管妊娠流产", "输卵管妊娠破裂", "输卵管残端妊娠破裂", "输卵管壶腹部妊娠", "输卵管壶腹部妊娠流产"
|
|
|
+ , "输卵管壶腹部妊娠破裂", "输卵管间质部妊娠", "输卵管间质部妊娠流产", "输卵管间质部妊娠破裂", "输卵管伞部妊娠", "异位妊娠"
|
|
|
+ , "输卵管伞部妊娠流产", "输卵管伞端妊娠破裂", "输卵管峡部妊娠", "输卵管峡部妊娠破裂", "陈旧性输卵管妊娠", "卵巢妊娠"
|
|
|
+ , "卵巢妊娠破裂", "异位妊娠,其他的", "子宫下段妊娠", "子宫颈妊娠", "剖宫产瘢痕妊娠", "韧带内妊娠", "残角子宫妊娠"
|
|
|
+ , "残角子宫妊娠破裂", "输卵管峡部妊娠流产", "宫颈妊娠", "宫内外复合妊娠", "阔韧带妊娠", "子宫瘢痕处妊娠", "子宫壁妊娠"
|
|
|
+ , "子宫角妊娠", "持续性异位妊娠", "腹腔妊娠", "大网膜妊娠", "输卵管妊娠", "宫内外复合妊娠", "输卵管伞端妊娠破裂"
|
|
|
+ , "输卵管复合妊娠", "输卵管妊娠流产", "输卵管妊娠破裂", "输卵管残端妊娠破裂", "输卵管壶腹部妊娠", "输卵管壶腹部妊娠流产"
|
|
|
+ , "输卵管壶腹部妊娠破裂", "输卵管间质部妊娠", "输卵管间质部妊娠流产", "输卵管间质部妊娠破裂", "输卵管伞部妊娠"
|
|
|
+ , "输卵管伞部妊娠流产", "输卵管伞端妊娠破裂", "输卵管峡部妊娠", "输卵管峡部妊娠流产", "输卵管峡部妊娠破裂"
|
|
|
+ , "陈旧性输卵管妊娠", "卵巢妊娠", "卵巢妊娠破裂", "异位妊娠,其他的", "子宫下段妊娠", "宫颈妊娠", "子宫瘢痕处妊娠"
|
|
|
+ , "阔韧带妊娠", "残角子宫妊娠", "残角子宫妊娠破裂", "宫颈妊娠", "宫内外复合妊娠", "阔韧带妊娠", "子宫瘢痕处妊娠"
|
|
|
+ , "子宫壁妊娠", "子宫角妊娠", "异位妊娠", "持续性异位妊娠");
|
|
|
+
|
|
|
+ /* 注意病案首页返回类型为map集合,由于出院诊断比较特殊,无法直接获取里面的字符串,要先获取集合,然后获取的出院诊断本身也是个集合,
|
|
|
+ 要遍历获取里面的诊断名称,再用里面的诊断名称,去匹配规则,这里要注意,外面遍历的时候,不能终止循环,要取出院诊断集合中的每一个记录
|
|
|
+ 进行规则匹配 */
|
|
|
+
|
|
|
+ Map<String, Object> firstpageStructureMap = inputInfo.getFirstPageRecordDoc().getStructureExtMap();
|
|
|
+ List<Map<String, String>> dischargeDiag = (List) firstpageStructureMap.get(Content.dischargeDiag);
|
|
|
+ if (ListUtil.isEmpty(dischargeDiag)) {
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ for (Map<String, String> diagMap : dischargeDiag) {
|
|
|
+ //获取出院诊断中的诊断名称
|
|
|
+ String h = diagMap.get("诊断名称");
|
|
|
+ //建立空字符串获取入院病情
|
|
|
+ String n = "";
|
|
|
+ boolean k = false;
|
|
|
+ for(int i=0;i < disease_name.size();i++){
|
|
|
+ String name = disease_name.get(i);
|
|
|
+ //查证诊断名称是否匹配疾病列表任一疾病,有则获取入院病情这个字段,用于接下来的规则匹配
|
|
|
+ if(StringUtil.isNotBlank(h) && h.contains(name)){
|
|
|
+ n = diagMap.get("入院病情");
|
|
|
+ k = true;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(k){
|
|
|
+ //查证匹配的疾病对应的入院病情是否填写为【无/4/4.无】
|
|
|
+ if(n.equals("无") || n.equals("4") || n.equals("4.无")){
|
|
|
+ status.set("1");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+/* //取出map集合里的相应字符串
|
|
|
+ for (Map<String, String> diagMap : dischargeDiag) {
|
|
|
+ h =diagMap.get("诊断名称");
|
|
|
+ String s = diagMap.get("入院病情");
|
|
|
+ for(int i = 0;i < disease_name.size();i++){
|
|
|
+ String name = disease_name.get(i);
|
|
|
+ //判断病案首页中的出院诊断字段是否匹配任一疾病,并将匹配到的疾病用n接收
|
|
|
+ if(StringUtil.isNotBlank(h)&&h.contains(name)){
|
|
|
+ f = true;
|
|
|
+ if(s.equals("无") || s.equals("4") || s.equals("4.无")){
|
|
|
+ status.set("1");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }*/
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|