专病路径
This commit is contained in:
parent
4d2ed89d41
commit
8c8764bf0d
@ -143,7 +143,7 @@ public class SpecialDiseaseNodeServiceImpl implements ISpecialDiseaseNodeService
|
|||||||
if (StringUtils.isNotBlank(diseaseNode.getRouteNodeName()) && Objects.nonNull(diseaseNode.getRouteNodeDay()) && StringUtils.isNotBlank(diseaseNode.getTaskType()) && StringUtils.isNotBlank(diseaseNode.getTaskSubdivision()) && StringUtils.isNotBlank(diseaseNode.getTaskStatus())) {
|
if (StringUtils.isNotBlank(diseaseNode.getRouteNodeName()) && Objects.nonNull(diseaseNode.getRouteNodeDay()) && StringUtils.isNotBlank(diseaseNode.getTaskType()) && StringUtils.isNotBlank(diseaseNode.getTaskSubdivision()) && StringUtils.isNotBlank(diseaseNode.getTaskStatus())) {
|
||||||
diseaseNode.setRouteId(specialDiseaseRoute.getId());
|
diseaseNode.setRouteId(specialDiseaseRoute.getId());
|
||||||
diseaseNode.setRouteName(specialDiseaseNode.getRouteName());
|
diseaseNode.setRouteName(specialDiseaseNode.getRouteName());
|
||||||
diseaseNode.setTemplateType(diseaseNode.getTaskSubdivisiontemplateType());
|
diseaseNode.setTemplateType(StringUtils.isBlank(diseaseNode.getTaskSubdivisiontemplateType()) ? "" : diseaseNode.getTaskSubdivisiontemplateType());
|
||||||
diseaseNode.setUpdateTime(LocalDateTime.now());
|
diseaseNode.setUpdateTime(LocalDateTime.now());
|
||||||
diseaseNode.setUpdateBy(SecurityUtils.getUsername());
|
diseaseNode.setUpdateBy(SecurityUtils.getUsername());
|
||||||
specialDiseaseNodeVOS.add(diseaseNode);
|
specialDiseaseNodeVOS.add(diseaseNode);
|
||||||
@ -206,88 +206,89 @@ public class SpecialDiseaseNodeServiceImpl implements ISpecialDiseaseNodeService
|
|||||||
return AjaxResult.success(specialDiseaseNodeMapper.updateSpecialDiseaseNode(specialDiseaseNode));
|
return AjaxResult.success(specialDiseaseNodeMapper.updateSpecialDiseaseNode(specialDiseaseNode));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<List<PatientNodeParamsCurrent>> getParams(Long id, Long patientId) {
|
public List<List<PatientNodeParamsCurrent>> getParams(Long id, Long patientId) {
|
||||||
List<List<PatientNodeParamsCurrent>> retList = new ArrayList<>();
|
List<List<PatientNodeParamsCurrent>> retList = new ArrayList<>();
|
||||||
// 根据节点id查询是否有已经维护的参数
|
// 根据节点id查询是否有已经维护的参数
|
||||||
PatientNodeParamsCurrent paramsQuery = new PatientNodeParamsCurrent();
|
PatientNodeParamsCurrent paramsQuery = new PatientNodeParamsCurrent();
|
||||||
paramsQuery.setPatientId(patientId);
|
paramsQuery.setPatientId(patientId);
|
||||||
paramsQuery.setRouteNodeId(id);
|
paramsQuery.setRouteNodeId(id);
|
||||||
List<PatientNodeParamsCurrent> nodeParams = patientNodeParamsCurrentMapper.selectPatientNodeParamsCurrentList(paramsQuery);
|
List<PatientNodeParamsCurrent> nodeParams = patientNodeParamsCurrentMapper.selectPatientNodeParamsCurrentList(paramsQuery);
|
||||||
|
|
||||||
// 查询SpecialDiseaseNode中包含的可编辑标签
|
// 查询SpecialDiseaseNode中包含的可编辑标签
|
||||||
List<PatientNodeParamsCurrent> diseaseNodeParams = new ArrayList<>();
|
List<PatientNodeParamsCurrent> diseaseNodeParams = new ArrayList<>();
|
||||||
SpecialDiseaseNode specialDiseaseNode = specialDiseaseNodeMapper.selectSpecialDiseaseNodeById(id);
|
SpecialDiseaseNode specialDiseaseNode = specialDiseaseNodeMapper.selectSpecialDiseaseNodeById(id);
|
||||||
if (StringUtils.isNotBlank(specialDiseaseNode.getNodeContent()) && specialDiseaseNode.getNodeContent().contains("data-fieldMark")) {
|
if (StringUtils.isNotBlank(specialDiseaseNode.getNodeContent()) && specialDiseaseNode.getNodeContent().contains("data-fieldMark")) {
|
||||||
JSONObject paramValues = getParamsValue(specialDiseaseNode.getTaskSubdivision(), patientId);
|
JSONObject paramValues = getParamsValue(specialDiseaseNode.getTaskSubdivision(), patientId);
|
||||||
Document document = Jsoup.parse(specialDiseaseNode.getNodeContent());
|
Document document = Jsoup.parse(specialDiseaseNode.getNodeContent());
|
||||||
// 需要提取的span
|
// 需要提取的span
|
||||||
Elements spanlist = document.select("span[data-w-e-type]");
|
Elements spanlist = document.select("span[data-w-e-type]");
|
||||||
for (Element span : spanlist) {
|
for (Element span : spanlist) {
|
||||||
PatientNodeParamsCurrent nodeParamCurrent = new PatientNodeParamsCurrent();
|
PatientNodeParamsCurrent nodeParamCurrent = new PatientNodeParamsCurrent();
|
||||||
String paramKey = span.attr("data-fieldMark");
|
String paramKey = span.attr("data-fieldMark");
|
||||||
String paramName = span.attr("data-fileSpan");
|
String paramName = span.attr("data-fileSpan");
|
||||||
nodeParamCurrent.setSn("1");
|
nodeParamCurrent.setSn("1");
|
||||||
nodeParamCurrent.setParamName(paramName);
|
nodeParamCurrent.setParamName(paramName);
|
||||||
nodeParamCurrent.setParamKey(paramKey);
|
nodeParamCurrent.setParamKey(paramKey);
|
||||||
nodeParamCurrent.setParamValue(paramValues.getOrDefault(paramKey, "").toString());
|
nodeParamCurrent.setParamValue(paramValues.getOrDefault(paramKey, "").toString());
|
||||||
diseaseNodeParams.add(nodeParamCurrent);
|
diseaseNodeParams.add(nodeParamCurrent);
|
||||||
}
|
}
|
||||||
// nodeParams去重
|
// nodeParams去重
|
||||||
diseaseNodeParams = diseaseNodeParams.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(()-> new TreeSet<>(Comparator.comparing(PatientNodeParamsCurrent::getParamKey))), ArrayList::new));
|
diseaseNodeParams = diseaseNodeParams.stream().collect(Collectors.collectingAndThen(Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(PatientNodeParamsCurrent::getParamKey))), ArrayList::new));
|
||||||
}
|
}
|
||||||
// 之前未维护过参数专病路径节点中的参数为返回值
|
// 之前未维护过参数专病路径节点中的参数为返回值
|
||||||
if (CollectionUtils.isEmpty(nodeParams)) {
|
if (CollectionUtils.isEmpty(nodeParams)) {
|
||||||
retList.add(diseaseNodeParams);
|
retList.add(diseaseNodeParams);
|
||||||
} else {
|
} else {
|
||||||
// 之前维护过参数则将参数进行对比
|
// 之前维护过参数则将参数进行对比
|
||||||
Map<String, List<PatientNodeParamsCurrent>> groupBySn = nodeParams.stream().collect(Collectors.groupingBy(PatientNodeParamsCurrent::getSn));
|
Map<String, List<PatientNodeParamsCurrent>> groupBySn = nodeParams.stream().collect(Collectors.groupingBy(PatientNodeParamsCurrent::getSn));
|
||||||
for (String sn : groupBySn.keySet()) {
|
for (String sn : groupBySn.keySet()) {
|
||||||
List<PatientNodeParamsCurrent> oldParams = groupBySn.get(sn);
|
List<PatientNodeParamsCurrent> oldParams = groupBySn.get(sn);
|
||||||
//List<String> paramKeys = oldParams.stream().map(PatientNodeParamsCurrent::getParamKey).collect(Collectors.toList());
|
//List<String> paramKeys = oldParams.stream().map(PatientNodeParamsCurrent::getParamKey).collect(Collectors.toList());
|
||||||
//List<String> newKeys = diseaseNodeParams.stream().map(PatientNodeParamsCurrent::getParamKey).collect(Collectors.toList());
|
//List<String> newKeys = diseaseNodeParams.stream().map(PatientNodeParamsCurrent::getParamKey).collect(Collectors.toList());
|
||||||
//if (ListUtils.isEqualList(paramKeys, newKeys)) {
|
//if (ListUtils.isEqualList(paramKeys, newKeys)) {
|
||||||
// retList.add(oldParams);
|
// retList.add(oldParams);
|
||||||
//} else {
|
//} else {
|
||||||
// for(PatientNodeParamsCurrent nodeParam : diseaseNodeParams) {
|
// for(PatientNodeParamsCurrent nodeParam : diseaseNodeParams) {
|
||||||
// if (!paramKeys.contains(nodeParam.getParamKey())) {
|
// if (!paramKeys.contains(nodeParam.getParamKey())) {
|
||||||
// oldParams.add(nodeParam);
|
// oldParams.add(nodeParam);
|
||||||
// }
|
// }
|
||||||
// if (!newKeys.contains(nodeParam.getParamKey())) {
|
// if (!newKeys.contains(nodeParam.getParamKey())) {
|
||||||
// oldParams.remove(nodeParam);
|
// oldParams.remove(nodeParam);
|
||||||
// }
|
// }
|
||||||
// }
|
// }
|
||||||
retList.add(oldParams);
|
retList.add(oldParams);
|
||||||
//}
|
//}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return retList;
|
return retList;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 根据任务细分类型获取患者的真实信息
|
* 根据任务细分类型获取患者的真实信息
|
||||||
* @param taskSubdivision 任务细分类型code
|
*
|
||||||
* @param patientId 患者主键
|
* @param taskSubdivision 任务细分类型code
|
||||||
* @return 实际信息
|
* @param patientId 患者主键
|
||||||
*/
|
* @return 实际信息
|
||||||
private JSONObject getParamsValue(String taskSubdivision, Long patientId) {
|
*/
|
||||||
JSONObject retObj = new JSONObject();
|
private JSONObject getParamsValue(String taskSubdivision, Long patientId) {
|
||||||
PatientInfo patientInfo = patientInfoMapper.selectPatientInfoById(patientId);
|
JSONObject retObj = new JSONObject();
|
||||||
switch (taskSubdivision) {
|
PatientInfo patientInfo = patientInfoMapper.selectPatientInfoById(patientId);
|
||||||
// 健康档案
|
switch (taskSubdivision) {
|
||||||
case "HEALTH_ARCHIVE":
|
// 健康档案
|
||||||
retObj = JSONObject.parseObject(JSONObject.toJSONString(patientInfo));
|
case "HEALTH_ARCHIVE":
|
||||||
// 性别转换成中文、计算年龄
|
retObj = JSONObject.parseObject(JSONObject.toJSONString(patientInfo));
|
||||||
retObj.fluentPut("sex", PatientSexEnum.getInfoByCode(patientInfo.getSex()).getInfo())
|
// 性别转换成中文、计算年龄
|
||||||
.fluentPut("age", BaseUtil.getAge(patientInfo.getBirthDate()));
|
retObj.fluentPut("sex", PatientSexEnum.getInfoByCode(patientInfo.getSex()).getInfo())
|
||||||
break;
|
.fluentPut("age", BaseUtil.getAge(patientInfo.getBirthDate()));
|
||||||
default:
|
break;
|
||||||
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
default:
|
||||||
retObj.fluentPut("patientName", patientInfo.getPatientName())
|
DateTimeFormatter df = DateTimeFormatter.ofPattern("yyyy-MM-dd");
|
||||||
.fluentPut("dischargeTime", patientInfo.getDischargeTime() == null ? "" : patientInfo.getDischargeTime().format(df))
|
retObj.fluentPut("patientName", patientInfo.getPatientName())
|
||||||
.fluentPut("visitDate", patientInfo.getVisitDate().format(df));
|
.fluentPut("dischargeTime", patientInfo.getDischargeTime() == null ? "" : patientInfo.getDischargeTime().format(df))
|
||||||
break;
|
.fluentPut("visitDate", patientInfo.getVisitDate().format(df));
|
||||||
}
|
break;
|
||||||
return retObj;
|
}
|
||||||
}
|
return retObj;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user