Browse Source

生成新结构诊断依据

kongwz 4 years atrás
parent
commit
f305e3036a

+ 1 - 1
src/main/java/com/diagbot/dto/ExportDiagnoseDTO.java

@@ -20,7 +20,7 @@ public class ExportDiagnoseDTO implements Serializable {
 
     @Excel(name="类型", width = 20, orderNum = "10")
     private String type = "";
-    @Excel(name="序号", width = 50, orderNum = "20")
+    @Excel(name="序号", width = 10, orderNum = "20")
     private String orderNo = "";
     @Excel(name="规则", width = 50, orderNum = "30")
     private String rule = "";

+ 7 - 3
src/main/java/com/diagbot/facade/KlDiagnoseDetailFacade.java

@@ -37,7 +37,7 @@ public class KlDiagnoseDetailFacade extends KlDiagnoseDetailServiceImpl {
     public void exportDiagnose(HttpServletResponse response) {
         // 获取全部数据、分组
         List<KlDiagnoseDetail> klDiagnoseDetailList = klDiagnoseDetailFacade.list(new QueryWrapper<KlDiagnoseDetail>()
-//                .eq("dis_name", "急性化脓性扁桃体炎")
+//                .eq("dis_name", "下颌骨骨折")
                 .eq("is_deleted", IsDeleteEnum.N.getKey()));
         Map<String, List<KlDiagnoseDetail>> diagnoseDetailMap = EntityUtil.makeEntityListMap(klDiagnoseDetailList, "disName");
         // TODO 获取公式,分隔编码,替换编码,组装导出数据  Map<String, List<ExportDiagnoseDTO>>
@@ -130,7 +130,7 @@ public class KlDiagnoseDetailFacade extends KlDiagnoseDetailServiceImpl {
 
                 if (type == 91 || type == 92 || type == 93) {
                     ReflectUtil.setProperty(exportDiagnoseDTO, "type", typeName);
-                    exportDiagnoseDTO.setOrderNo(kdl.getFormula().replaceAll("/","、")
+                    exportDiagnoseDTO.setRule(kdl.getFormula().replaceAll("/","、")
                     .replaceAll("\\(","[").replaceAll("\\)","]"));
                 }else {
                     String tName = typeName.split(":")[1];//症状
@@ -155,12 +155,16 @@ public class KlDiagnoseDetailFacade extends KlDiagnoseDetailServiceImpl {
                     }
                     ReflectUtil.setProperty(exportDiagnoseDTO, "type", tName);
                     ReflectUtil.setProperty(exportDiagnoseDTO, "orderNo", tType+String.valueOf(tCode));
-                    if (code.startsWith("3.") || code.startsWith("4.")) {
+                    if (code.startsWith("3.") ) {
                         exportDiagnoseDTO.setRule(kdl.getRelation());
                         exportDiagnoseDTO.setRelation("");
                     } else {
                         exportDiagnoseDTO.setRule(kdl.getStandard());
                     }
+                    if(code.startsWith("4.")){
+                        exportDiagnoseDTO.setRule(kdl.getRelation());
+                        exportDiagnoseDTO.setRelation(kdl.getStandard());
+                    }
                     exportDiagnoseDTO.setEq(kdl.getMidResult());
                 }
 

+ 11 - 10
src/main/java/com/diagbot/facade/KlDiagnoseImportFacade.java

@@ -155,22 +155,23 @@ public class KlDiagnoseImportFacade {
                 ImportDiagnoseVO next = it.next();
                 String type = next.getType();
                 String orderNo = next.getOrderNo();
+                String rule = next.getRule();
                 Integer rowNum = next.getRowNum() - 1;
                 if (!diagtypes.contains(type) && StringUtil.isNotBlank(type) && StringUtil.isNotBlank(orderNo)) {
                     orderList.add(orderNo);
                 }
-                if ("拟诊".equals(type) && StringUtils.isNotBlank(orderNo)) {
+                if ("拟诊".equals(type) && StringUtils.isNotBlank(rule)) {
                     if (typeCollect.containsKey(type)) {
                         List<String> gongsi = typeCollect.get(type);
-                        gongsi.add(orderNo);
+                        gongsi.add(rule);
                         typeCollect.put(type, gongsi);
                     } else {
                         List<String> gongsi = Lists.newArrayList();
-                        gongsi.add(orderNo);
+                        gongsi.add(rule);
                         typeCollect.put(type, gongsi);
                     }
                 }
-                if ("确诊".equals(type) && StringUtils.isNotBlank(orderNo)) {
+                if ("确诊".equals(type) && StringUtils.isNotBlank(rule)) {
                     if (orderNo.contains("拟诊") && typeCollect.containsKey("拟诊")) {
                         it.remove();
                         for (String nizhen : typeCollect.get("拟诊")) {
@@ -178,7 +179,7 @@ public class KlDiagnoseImportFacade {
                             importDiagnoseVO.setParentRule(next.getOrderNo());
                             importDiagnoseVO.setType(type);
                             importDiagnoseVO.setRowNum(rowNum);
-                            importDiagnoseVO.setOrderNo(orderNo.replace("拟诊", nizhen));
+                            importDiagnoseVO.setOrderNo(rule.replace("拟诊", nizhen));
                             it.add(importDiagnoseVO);
                         }
                     }
@@ -300,17 +301,17 @@ public class KlDiagnoseImportFacade {
                 if (StringUtils.isBlank(type)) {
                     currentErrMsg.add(String.format("第%d行【类型】不能为空", rowNum));
                 }
-                if (StringUtils.isBlank(orderNo)) {
-                    currentErrMsg.add(String.format("第%d行【序号】不能为空", rowNum));
+                if (StringUtils.isNotBlank(type) && diagtypes.contains(type) && StringUtils.isBlank(rule)) {
+                    currentErrMsg.add(String.format("第%d行【诊断依据规则】不能为空", rowNum));
                 }
                 if (StringUtils.isNotBlank(type) && !diagtypes.contains(type) && StringUtils.isBlank(rule)) {
                     currentErrMsg.add(String.format("第%d行【规则】不能为空", rowNum));
                 }
-                if (diagtypes.contains(type) && StringUtil.isNotBlank(orderNo)) {
-                    String s = VerifyUtil.verifyFormula(orderNums, orderNo);
+                if (diagtypes.contains(type) && StringUtil.isNotBlank(rule)) {
+                    String s = VerifyUtil.verifyFormula(orderNums, rule);
                     if (StringUtil.isNotBlank(s)) {
                         if (StringUtil.isNotBlank(parentRule)) {
-                            s = s.replace(orderNo, parentRule);
+                            s = s.replace(rule, parentRule);
                         }
                         currentErrMsg.add(s);
                     }

+ 5 - 3
src/main/java/com/diagbot/util/VerifyUtil.java

@@ -252,8 +252,8 @@ public class VerifyUtil {
 	 * @return
 	 */
 	public static List<String> verifySplit(String s) {
-		s = s.replaceAll("\\(", "(");
-		s = s.replaceAll("\\)", ")");
+		s = s.replaceAll("\\【", "[");
+		s = s.replaceAll("\\】", "]");
 		s = s.replaceAll(" ", "");
 		String regex =
 				"\\]任一\\+\\[" + "|\\]任二\\+\\[" + "|\\]任三\\+\\[" + "|\\]任四\\+\\[" + "|\\]任五\\+\\[" + "|\\]任六\\+\\[" + "|\\]任七\\+\\[" + "|\\]任八\\+\\[" + "|\\]任九\\+\\[" + "|\\]任十\\+\\[" +
@@ -265,7 +265,9 @@ public class VerifyUtil {
 						"|\\+" +
 						"|\\、" +
 						"|/" ;
+
 		String[] arr = s.split(regex);
+		System.out.println(s);
 		return Arrays.asList(arr);
 	}
 
@@ -376,7 +378,7 @@ public class VerifyUtil {
 	}
 
 	public static void main(String[] args) {
-		List<String> strings = verifySplit("[1、3]任一+4");
+		List<String> strings = verifySplit("[1.1、1.2、2.1]任一");
 		System.out.println(strings);
 		//		System.out.println(verifyStartEnd("]1.1+1.2"));
 		//    	String str = "1.99";