|
@@ -225,33 +225,57 @@ public class NursingManagementService {
|
|
|
|
|
|
public ResultVo<String> saveGm(YzTemperatureVO yzTemperature){
|
|
|
List<String> gmItems = yzTemperature.getGmItems();
|
|
|
- List<String> exist = queyGm(yzTemperature);
|
|
|
- if(CollUtil.isNotEmpty(gmItems)){
|
|
|
- List<String> collect = gmItems.stream().filter(item -> StrUtil.isNotBlank(item)).collect(Collectors.toList());
|
|
|
- if(CollUtil.isEmpty(collect)){
|
|
|
- throw new BizException(ExceptionEnum.LOGICAL_ERROR, "保存的过敏药物不能为空");
|
|
|
- }
|
|
|
- List<String> notExist = collect.stream().filter(item -> !exist.contains(item)).collect(Collectors.toList());
|
|
|
- if(CollUtil.isNotEmpty(notExist)){
|
|
|
- Date now = new Date();
|
|
|
- int i = 1;
|
|
|
- List<YzTemperatureGm> data = new ArrayList<>();
|
|
|
- for(String gm:notExist){
|
|
|
- YzTemperatureGm yzTemperatureGm = new YzTemperatureGm();
|
|
|
- yzTemperatureGm.setInpatientNo(yzTemperature.getVisitIds().get(0).split(separator)[0]);
|
|
|
- yzTemperatureGm.setAdmissTimes(Convert.toInt(yzTemperature.getVisitIds().get(0).split(separator)[1]));
|
|
|
- yzTemperatureGm.setGmxm(gm);
|
|
|
- yzTemperatureGm.setOrderTime(now);
|
|
|
- yzTemperatureGm.setPsTime(now);
|
|
|
- yzTemperatureGm.setResultTime(now);
|
|
|
- yzTemperatureGm.setActOrderNo(new BigDecimal(DateUtil.format(new Date(), "HHmmss")+i));
|
|
|
- data.add(yzTemperatureGm);
|
|
|
- ++i;
|
|
|
- }
|
|
|
- batchSaveData(data);
|
|
|
- }
|
|
|
- }
|
|
|
- return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_EL_MESSAGE,"保存过敏药物信息成功");
|
|
|
+ // 若未携带gmItems(为null),视为非本功能调用,不进行任何变更
|
|
|
+ if (gmItems == null) {
|
|
|
+ return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_EL_MESSAGE, "过敏药物未变更");
|
|
|
+ }
|
|
|
+ // 标准化住院信息
|
|
|
+ String inpatientNo = StrUtil.isBlank(yzTemperature.getInpatientNo()) ? yzTemperature.getVisitIds().get(0).split(separator)[0] : yzTemperature.getInpatientNo();
|
|
|
+ Integer admissTimes = yzTemperature.getAdmissTimes() == null ? Convert.toInt(yzTemperature.getVisitIds().get(0).split(separator)[1]) : yzTemperature.getAdmissTimes();
|
|
|
+
|
|
|
+ // 允许清空:若列表为空或仅包含空白,则清空该患者本次住院所有过敏药物
|
|
|
+ if (CollUtil.isEmpty(gmItems) || CollUtil.isEmpty(gmItems.stream().filter(StrUtil::isNotBlank).collect(Collectors.toList()))) {
|
|
|
+ dao.deleteAllYzTemperatureGm(inpatientNo, admissTimes);
|
|
|
+ return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_EL_MESSAGE, "过敏药物清空成功");
|
|
|
+ }
|
|
|
+
|
|
|
+ // 去重、去空白
|
|
|
+ List<String> collect = gmItems.stream().filter(StrUtil::isNotBlank).distinct().collect(Collectors.toList());
|
|
|
+
|
|
|
+ // 查询已存在
|
|
|
+ YzTemperatureVO temp = new YzTemperatureVO();
|
|
|
+ temp.setInpatientNo(inpatientNo);
|
|
|
+ temp.setAdmissTimes(admissTimes);
|
|
|
+ List<String> exist = queyGm(temp);
|
|
|
+
|
|
|
+ // 需要新增的
|
|
|
+ List<String> notExist = collect.stream().filter(item -> !exist.contains(item)).collect(Collectors.toList());
|
|
|
+ if (CollUtil.isNotEmpty(notExist)) {
|
|
|
+ Date now = new Date();
|
|
|
+ int i = 1;
|
|
|
+ List<YzTemperatureGm> data = new ArrayList<>();
|
|
|
+ for (String gm : notExist) {
|
|
|
+ YzTemperatureGm yzTemperatureGm = new YzTemperatureGm();
|
|
|
+ yzTemperatureGm.setInpatientNo(inpatientNo);
|
|
|
+ yzTemperatureGm.setAdmissTimes(admissTimes);
|
|
|
+ yzTemperatureGm.setGmxm(gm);
|
|
|
+ yzTemperatureGm.setOrderTime(now);
|
|
|
+ yzTemperatureGm.setPsTime(now);
|
|
|
+ yzTemperatureGm.setResultTime(now);
|
|
|
+ yzTemperatureGm.setActOrderNo(new BigDecimal(DateUtil.format(new Date(), "HHmmss") + i));
|
|
|
+ data.add(yzTemperatureGm);
|
|
|
+ ++i;
|
|
|
+ }
|
|
|
+ batchSaveData(data);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 需要删除的(库里有但本次未提交的),按名称删除
|
|
|
+ List<String> toDelete = exist.stream().filter(item -> !collect.contains(item)).collect(Collectors.toList());
|
|
|
+ if (CollUtil.isNotEmpty(toDelete)) {
|
|
|
+ dao.deleteYzTemperatureGmByItems(inpatientNo, admissTimes, toDelete);
|
|
|
+ }
|
|
|
+
|
|
|
+ return ResultVoUtil.success(ExceptionEnum.SUCCESS_AND_EL_MESSAGE, "保存过敏药物信息成功");
|
|
|
}
|
|
|
|
|
|
public List<YzTemperatureSum> getYzTemperatureSums(YzTemperatureVO yzTemperature) {
|