疾病目录格式修改

This commit is contained in:
liuhongrui
2025-03-30 14:58:04 +08:00
parent fef3a16ea0
commit 9346a0ace1
3 changed files with 299 additions and 85 deletions

View File

@@ -0,0 +1,80 @@
package com.openhis.web.datadictionary.appservice;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.springframework.web.bind.annotation.GetMapping;
import com.core.common.core.domain.R;
import com.openhis.web.datadictionary.dto.DiseaseManageSelParam;
import com.openhis.web.datadictionary.dto.DiseaseManageUpDto;
/**
* 病种目录
*
* @author liuhr
* @date 2025/3/30
*/
public interface IDiseaseManageAppService {
/**
* 病种目录初始化
*
* @return
*/
R<?> getDiseaseInit();
/**
* 查询病种目录分页列表
*
* @param diseaseManageSelParam 查询条件
* @param searchKey 查询条件-模糊查询
* @param pageNo 当前页码
* @param pageSize 查询条数
* @return
*/
R<?> getDiseaseList(DiseaseManageSelParam diseaseManageSelParam, String searchKey, Integer pageNo, Integer pageSize,
HttpServletRequest request);
/**
* 根据id查询疾病详情
*
* @param id 疾病ID
* @return
*/
R<?> getDiseaseOne(Long id);
/**
* 病种目录编辑
*
* @param diseaseManageDto 病种目录列表
* @return
*/
R<?> editDisease(DiseaseManageUpDto diseaseManageDto);
/**
* 病种目录停用
*
* @param ids 病种目录ID列表
* @return
*/
R<?> editDiseaseStop(List<Long> ids);
/**
* 病种目录启用
*
* @param ids 病种目录ID列表
* @return
*/
R<?> editDiseaseStart(List<Long> ids);
/**
* 新增外来病种目录
*
* @param diseaseManageUpDto 病种目录
* @return
*/
R<?> addDisease(DiseaseManageUpDto diseaseManageUpDto);
}

View File

@@ -0,0 +1,205 @@
package com.openhis.web.datadictionary.appservice.impl;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import javax.servlet.http.HttpServletRequest;
import com.core.common.utils.ChineseConvertUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.core.common.core.domain.R;
import com.core.common.utils.MessageUtils;
import com.core.common.utils.bean.BeanUtils;
import com.openhis.clinical.domain.ConditionDefinition;
import com.openhis.clinical.mapper.ConditionDefinitionMapper;
import com.openhis.clinical.service.IConditionDefinitionService;
import com.openhis.common.constant.PromptMsgConstant;
import com.openhis.common.enums.ConditionDefinitionSource;
import com.openhis.common.enums.PublicationStatus;
import com.openhis.common.enums.Whether;
import com.openhis.common.utils.EnumUtils;
import com.openhis.common.utils.HisPageUtils;
import com.openhis.common.utils.HisQueryUtils;
import com.openhis.web.datadictionary.appservice.IDiseaseManageAppService;
import com.openhis.web.datadictionary.dto.DiseaseManageDto;
import com.openhis.web.datadictionary.dto.DiseaseManageInitDto;
import com.openhis.web.datadictionary.dto.DiseaseManageSelParam;
import com.openhis.web.datadictionary.dto.DiseaseManageUpDto;
/**
* 病种目录 实现
*
* @author liuhr
* @date 2025/3/30
*/
@Service
public class DiseaseManageAppServiceImpl implements IDiseaseManageAppService {
@Autowired
private ConditionDefinitionMapper conditionDefinitionMapper;
@Autowired
private IConditionDefinitionService ConditionDefinitionService;
/**
* 病种目录初始化
*
* @return
*/
@Override
public R<?> getDiseaseInit() {
DiseaseManageInitDto diseaseManageInitDto = new DiseaseManageInitDto();
// 获取疾病目录种类
List<DiseaseManageInitDto.diseaseCategory> diseaseCategoryList = Stream.of(ConditionDefinitionSource.values())
.map(status -> new DiseaseManageInitDto.diseaseCategory(status.getValue(), status.getInfo()))
.collect(Collectors.toList());
diseaseManageInitDto.setDiseaseCategoryList(diseaseCategoryList);
// 获取状态
List<DiseaseManageInitDto.statusEnumOption> statusEnumOptions = Stream.of(PublicationStatus.values())
.map(status -> new DiseaseManageInitDto.statusEnumOption(status.getValue(), status.getInfo()))
.collect(Collectors.toList());
diseaseManageInitDto.setStatusFlagOptions(statusEnumOptions);
return R.ok(diseaseManageInitDto);
}
/**
* 查询病种目录分页列表
*
* @param diseaseManageSelParam 查询条件
* @param searchKey 查询条件-模糊查询
* @param pageNo 当前页码
* @param pageSize 查询条数
* @return
*/
public R<?> getDiseaseList(DiseaseManageSelParam diseaseManageSelParam, String searchKey, Integer pageNo,
Integer pageSize, HttpServletRequest request) {
// 构建查询条件
QueryWrapper<ConditionDefinition> queryWrapper = HisQueryUtils.buildQueryWrapper(diseaseManageSelParam,
searchKey, new HashSet<>(Arrays.asList("condition_code", "name", "py_str", "wb_str")), request);
// 设置排序
queryWrapper.orderByAsc("condition_code");
// 分页查询
Page<DiseaseManageDto> diseasePage =
HisPageUtils.selectPage(conditionDefinitionMapper, queryWrapper, pageNo, pageSize, DiseaseManageDto.class);
diseasePage.getRecords().forEach(e -> {
// 医保对码枚举类回显赋值
e.setYbMatchFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getYbMatchFlag()));
// 状态
e.setStatusEnum_enumText(EnumUtils.getInfoByValue(PublicationStatus.class, e.getStatusEnum()));
});
// 返回【病种目录列表DTO】分页
return R.ok(diseasePage);
}
/**
* 根据id查询疾病详情
*
* @param id 疾病ID
* @return
*/
public R<?> getDiseaseOne(Long id) {
DiseaseManageDto diseaseManageDto = new DiseaseManageDto();
// 根据ID查询【病种目录】
ConditionDefinition conditionDefinition = ConditionDefinitionService.getById(id);
BeanUtils.copyProperties(conditionDefinition, diseaseManageDto);
return R.ok(diseaseManageDto);
}
/**
* 病种目录编辑
*
* @param diseaseManageDto 病种目录列表
* @return
*/
public R<?> editDisease(DiseaseManageUpDto diseaseManageDto) {
ConditionDefinition conditionDefinition = new ConditionDefinition();
BeanUtils.copyProperties(diseaseManageDto, conditionDefinition);
// 拼音码
conditionDefinition.setPyStr(ChineseConvertUtils.toPinyinFirstLetter(conditionDefinition.getName()));
// 五笔码
conditionDefinition.setWbStr(ChineseConvertUtils.toWBFirstLetter(conditionDefinition.getName()));
// 更新病种信息
return ConditionDefinitionService.updateById(conditionDefinition)
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"疾病目录"}))
: R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
}
/**
* 病种目录停用
*
* @param ids 病种目录ID列表
* @return
*/
public R<?> editDiseaseStop(List<Long> ids) {
List<ConditionDefinition> conditionDefinitionList = new CopyOnWriteArrayList<>();
// 取得更新值
for (Long detail : ids) {
ConditionDefinition conditionDefinition = new ConditionDefinition();
conditionDefinition.setId(detail);
conditionDefinition.setStatusEnum(PublicationStatus.RETIRED.getValue());
conditionDefinitionList.add(conditionDefinition);
}
// 更新病种信息
return ConditionDefinitionService.updateBatchById(conditionDefinitionList)
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"疾病目录"}))
: R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
}
/**
* 病种目录启用
*
* @param ids 病种目录ID列表
* @return
*/
public R<?> editDiseaseStart(List<Long> ids) {
List<ConditionDefinition> conditionDefinitionList = new CopyOnWriteArrayList<>();
// 取得更新值
for (Long detail : ids) {
ConditionDefinition conditionDefinition = new ConditionDefinition();
conditionDefinition.setId(detail);
conditionDefinition.setStatusEnum(PublicationStatus.ACTIVE.getValue());
conditionDefinitionList.add(conditionDefinition);
}
// 更新病种信息
return ConditionDefinitionService.updateBatchById(conditionDefinitionList)
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"疾病目录"}))
: R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
}
/**
* 新增外来病种目录
*
* @param diseaseManageUpDto 病种目录
* @return
*/
public R<?> addDisease(DiseaseManageUpDto diseaseManageUpDto) {
ConditionDefinition conditionDefinition = new ConditionDefinition();
BeanUtils.copyProperties(diseaseManageUpDto, conditionDefinition);
// 新增外来病种目录
conditionDefinition.setStatusEnum(PublicationStatus.DRAFT.getValue());
// 拼音码
conditionDefinition.setPyStr(ChineseConvertUtils.toPinyinFirstLetter(conditionDefinition.getName()));
// 五笔码
conditionDefinition.setWbStr(ChineseConvertUtils.toWBFirstLetter(conditionDefinition.getName()));
return ConditionDefinitionService.addDisease(conditionDefinition)
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"疾病目录"}))
: R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00008, null));
}
}

View File

@@ -1,32 +1,18 @@
package com.openhis.web.datadictionary.controller;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import javax.servlet.http.HttpServletRequest;
import com.openhis.common.enums.*;
import com.openhis.common.utils.EnumUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.core.common.core.domain.R;
import com.core.common.utils.MessageUtils;
import com.core.common.utils.bean.BeanUtils;
import com.openhis.clinical.domain.ConditionDefinition;
import com.openhis.clinical.mapper.ConditionDefinitionMapper;
import com.openhis.clinical.service.IConditionDefinitionService;
import com.openhis.common.constant.PromptMsgConstant;
import com.openhis.common.utils.HisPageUtils;
import com.openhis.common.utils.HisQueryUtils;
import com.openhis.web.datadictionary.appservice.IDiseaseManageAppService;
import com.openhis.web.datadictionary.dto.DiseaseManageDto;
import com.openhis.web.datadictionary.dto.DiseaseManageInitDto;
import com.openhis.web.datadictionary.dto.DiseaseManageSelParam;
import com.openhis.web.datadictionary.dto.DiseaseManageUpDto;
@@ -44,8 +30,9 @@ import lombok.extern.slf4j.Slf4j;
@Slf4j
@AllArgsConstructor
public class DiseaseManageController {
private final IConditionDefinitionService iConditionDefinitionService;
private final ConditionDefinitionMapper conditionDefinitionMapper;
@Autowired
private IDiseaseManageAppService diseaseManageAppService;
/**
* 病种目录初始化
@@ -55,19 +42,7 @@ public class DiseaseManageController {
@GetMapping("/information-init")
public R<?> getDiseaseInit() {
DiseaseManageInitDto diseaseManageInitDto = new DiseaseManageInitDto();
// 获取疾病目录种类
List<DiseaseManageInitDto.diseaseCategory> diseaseCategoryList = Stream.of(ConditionDefinitionSource.values())
.map(status -> new DiseaseManageInitDto.diseaseCategory(status.getValue(), status.getInfo()))
.collect(Collectors.toList());
diseaseManageInitDto.setDiseaseCategoryList(diseaseCategoryList);
// 获取状态
List<DiseaseManageInitDto.statusEnumOption> statusEnumOptions = Stream.of(PublicationStatus.values())
.map(status -> new DiseaseManageInitDto.statusEnumOption(status.getValue(), status.getInfo()))
.collect(Collectors.toList());
diseaseManageInitDto.setStatusFlagOptions(statusEnumOptions);
return R.ok(diseaseManageInitDto);
return diseaseManageAppService.getDiseaseInit();
}
/**
@@ -85,24 +60,8 @@ public class DiseaseManageController {
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest request) {
// 构建查询条件
QueryWrapper<ConditionDefinition> queryWrapper = HisQueryUtils.buildQueryWrapper(diseaseManageSelParam,
searchKey, new HashSet<>(Arrays.asList("condition_code", "name", "py_str", "wb_str")), request);
// 设置排序
queryWrapper.orderByAsc("condition_code");
// 分页查询
Page<DiseaseManageDto> diseasePage =
HisPageUtils.selectPage(conditionDefinitionMapper, queryWrapper, pageNo, pageSize, DiseaseManageDto.class);
diseasePage.getRecords().forEach(e -> {
// 医保对码枚举类回显赋值
e.setYbMatchFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getYbMatchFlag()));
//状态
e.setStatusEnum_enumText(EnumUtils.getInfoByValue(PublicationStatus.class, e.getStatusEnum()));
});
// 返回【病种目录列表DTO】分页
return R.ok(diseasePage);
return diseaseManageAppService.getDiseaseList(diseaseManageSelParam, searchKey, pageNo, pageSize, request);
}
/**
@@ -113,11 +72,9 @@ public class DiseaseManageController {
*/
@GetMapping("/information-one")
public R<?> getDiseaseOne(@RequestParam Long id) {
DiseaseManageDto diseaseManageDto = new DiseaseManageDto();
// 根据ID查询【病种目录】
ConditionDefinition conditionDefinition = iConditionDefinitionService.getById(id);
BeanUtils.copyProperties(conditionDefinition, diseaseManageDto);
return R.ok(diseaseManageDto);
return diseaseManageAppService.getDiseaseOne(id);
}
/**
@@ -133,9 +90,7 @@ public class DiseaseManageController {
BeanUtils.copyProperties(diseaseManageDto, conditionDefinition);
// 更新病种信息
return iConditionDefinitionService.updateById(conditionDefinition)
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"疾病目录"}))
: R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
return diseaseManageAppService.editDisease(diseaseManageDto);
}
/**
@@ -146,19 +101,8 @@ public class DiseaseManageController {
*/
@PutMapping("/information-stop")
public R<?> editDiseaseStop(@RequestBody List<Long> ids) {
List<ConditionDefinition> conditionDefinitionList = new CopyOnWriteArrayList<>();
// 取得更新值
for (Long detail : ids) {
ConditionDefinition conditionDefinition = new ConditionDefinition();
conditionDefinition.setId(detail);
conditionDefinition.setStatusEnum(PublicationStatus.RETIRED.getValue());
conditionDefinitionList.add(conditionDefinition);
}
// 更新病种信息
return iConditionDefinitionService.updateBatchById(conditionDefinitionList)
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"疾病目录"}))
: R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
return diseaseManageAppService.editDiseaseStop(ids);
}
/**
@@ -169,19 +113,9 @@ public class DiseaseManageController {
*/
@PutMapping("/information-start")
public R<?> editDiseaseStart(@RequestBody List<Long> ids) {
List<ConditionDefinition> conditionDefinitionList = new CopyOnWriteArrayList<>();
// 取得更新值
for (Long detail : ids) {
ConditionDefinition conditionDefinition = new ConditionDefinition();
conditionDefinition.setId(detail);
conditionDefinition.setStatusEnum(PublicationStatus.ACTIVE.getValue());
conditionDefinitionList.add(conditionDefinition);
}
// 更新病种信息
return iConditionDefinitionService.updateBatchById(conditionDefinitionList)
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"疾病目录"}))
: R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
return diseaseManageAppService.editDiseaseStart(ids);
}
/**
@@ -192,13 +126,8 @@ public class DiseaseManageController {
*/
@PostMapping("/information")
public R<?> addDisease(@Validated @RequestBody DiseaseManageUpDto diseaseManageUpDto) {
ConditionDefinition conditionDefinition = new ConditionDefinition();
BeanUtils.copyProperties(diseaseManageUpDto, conditionDefinition);
// 新增外来病种目录
conditionDefinition.setStatusEnum(PublicationStatus.DRAFT.getValue());
return iConditionDefinitionService.addDisease(conditionDefinition)
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"疾病目录"}))
: R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00008, null));
return diseaseManageAppService.addDisease(diseaseManageUpDto);
}
/**