|
@@ -33,6 +33,7 @@ import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
import java.io.IOException;
|
|
|
import java.util.ArrayList;
|
|
|
+import java.util.Arrays;
|
|
|
import java.util.LinkedHashMap;
|
|
|
import java.util.List;
|
|
|
import java.util.ListIterator;
|
|
@@ -56,18 +57,29 @@ public class KlDiagnoseImportFacade {
|
|
|
|
|
|
public Map<String, Object> importDiagnose(MultipartFile file, DiagnoseImportVO diagnoseImportVO) {
|
|
|
long t1 = System.currentTimeMillis();
|
|
|
- Map<String, Object> errMessage = new LinkedHashMap<>(); // 错误提示语
|
|
|
+ Map<String, Object> message = new LinkedHashMap<>(); // 提示信息
|
|
|
List<ImportDiagnoseResVO> allData = Lists.newArrayList(); // 最终需要保存的数据
|
|
|
+ if (StringUtil.isNotBlank(diagnoseImportVO.getDiagStr())) {
|
|
|
+ List<String> diagList = Arrays.stream(diagnoseImportVO.getDiagStr().split("#")).map(r -> r.trim()).collect(Collectors.toList());
|
|
|
+ diagnoseImportVO.setDiags(diagList);
|
|
|
+ }
|
|
|
// 校验数据
|
|
|
- Boolean allFlag = verifyData(file, diagnoseImportVO, errMessage, allData);
|
|
|
+ Boolean allFlag = verifyData(file, diagnoseImportVO, message, allData);
|
|
|
|
|
|
// 保存数据
|
|
|
if (allFlag) {
|
|
|
saveData(allData);
|
|
|
+ message.put("导入条数", allData.size() + "条");
|
|
|
+ // 如果有指定诊断,提示导入的诊断;如果全部导入,提示“所有诊断”
|
|
|
+ if (ListUtil.isNotEmpty(diagnoseImportVO.getDiags())) {
|
|
|
+ message.put("导入诊断", allData.stream().map(r -> r.getDiseaseName()).collect(Collectors.joining("#")));
|
|
|
+ } else {
|
|
|
+ message.put("导入诊断", "所有诊断");
|
|
|
+ }
|
|
|
}
|
|
|
long t2 = System.currentTimeMillis();
|
|
|
- System.out.println("总计:" + (t2 - t1) / 1000.0);
|
|
|
- return errMessage;
|
|
|
+ message.put("总计耗时", (t2 - t1) / 1000.0);
|
|
|
+ return message;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -104,6 +116,7 @@ public class KlDiagnoseImportFacade {
|
|
|
importDiagnoseVOList.add(importDiagnoseVO);
|
|
|
}
|
|
|
}
|
|
|
+ addDisName = RegexUtil.getRegexData(addDisName, "【(.*?)】", 1); // 获取名字
|
|
|
groupData.put(addDisName, importDiagnoseVOList); // 添加最后一个
|
|
|
|
|
|
int i = 0;
|
|
@@ -114,7 +127,7 @@ public class KlDiagnoseImportFacade {
|
|
|
continue;
|
|
|
}
|
|
|
}
|
|
|
- System.out.println(i++ + ": " + disName);
|
|
|
+ // System.out.println(i++ + ": " + disName);
|
|
|
List<String> currentErrMsg = Lists.newArrayList();
|
|
|
|
|
|
ImportDiagnoseResVO importDiagnoseResVO = new ImportDiagnoseResVO();
|
|
@@ -366,10 +379,10 @@ public class KlDiagnoseImportFacade {
|
|
|
|
|
|
for (ImportDiagnoseVO importDiagnoseVO : data) {
|
|
|
String type = importDiagnoseVO.getType();
|
|
|
- String getOrderNo = importDiagnoseVO.getOrderNo();
|
|
|
- if (StringUtil.isNotBlank(type) && StringUtil.isNotBlank(getOrderNo)) {
|
|
|
+ String rule = importDiagnoseVO.getRule();
|
|
|
+ if (StringUtil.isNotBlank(type) && StringUtil.isNotBlank(rule)) {
|
|
|
if ("拟诊".equals(type) || "确诊".equals(type) || "警惕".equals(type)) {
|
|
|
- String[] splitGroup = getOrderNo.split("\\+");
|
|
|
+ String[] splitGroup = rule.split("\\+");
|
|
|
|
|
|
KlDiagnoseTypeVO klDiagnoseTypeVO = new KlDiagnoseTypeVO();
|
|
|
if ("拟诊".equals(type)) {
|
|
@@ -484,11 +497,21 @@ public class KlDiagnoseImportFacade {
|
|
|
klDiagnoseDetailVO.setBasDescription(current.getRule());
|
|
|
klDiagnoseDetailVO.setEqValue(current.getRule());
|
|
|
break;
|
|
|
- case jwzz: // 既往正则
|
|
|
+ case jwzz: // 既往史正则
|
|
|
klDiagnoseDetailVO.setBasType(4);
|
|
|
klDiagnoseDetailVO.setBasDescription(current.getRule());
|
|
|
klDiagnoseDetailVO.setEqValue(current.getRule());
|
|
|
break;
|
|
|
+ case ctzz: // 查体正则
|
|
|
+ klDiagnoseDetailVO.setBasType(5);
|
|
|
+ klDiagnoseDetailVO.setBasDescription(current.getRule());
|
|
|
+ klDiagnoseDetailVO.setEqValue(current.getRule());
|
|
|
+ break;
|
|
|
+ case fjjgzz: // 辅检结果正则
|
|
|
+ klDiagnoseDetailVO.setBasType(6);
|
|
|
+ klDiagnoseDetailVO.setBasDescription(current.getRule());
|
|
|
+ klDiagnoseDetailVO.setEqValue(current.getRule());
|
|
|
+ break;
|
|
|
case Vital: // 体格检查项目
|
|
|
case Age: // 年龄
|
|
|
klDiagnoseDetailVO.setBasConceptId(current.getConceptId());
|