Merge remote-tracking branch 'origin/master'

This commit is contained in:
Wang.Huan
2025-03-28 17:34:07 +08:00
9 changed files with 574 additions and 162 deletions

View File

@@ -0,0 +1,86 @@
package com.openhis.web.datadictionary.appservice;
import java.util.List;
import javax.servlet.http.HttpServletRequest;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestParam;
import com.core.common.core.domain.R;
import com.openhis.web.datadictionary.dto.DiagnosisTreatmentSelParam;
import com.openhis.web.datadictionary.dto.DiagnosisTreatmentUpDto;
/**
* 诊疗目录
*
* @author liuhr
* @date 2025/3/28
*/
public interface IDiagnosisTreatmentManageAppService {
/**
* 诊疗目录初期查询
*
* @return
*/
R<?> getDiseaseTreatmentInit();
/**
* 查询诊疗目录分页列表
*
* @param DiagnosisTreatmentSelParam 查询条件
* @param searchKey 查询条件-模糊查询
* @param pageNo 当前页码
* @param pageSize 查询条数
* @return
*/
R<?> getDiseaseTreatmentPage(DiagnosisTreatmentSelParam DiagnosisTreatmentSelParam,
@RequestParam(value = "searchKey", defaultValue = "") String searchKey,
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest request);
/**
* 根据id查询诊疗详情
*
* @param id 诊疗ID
* @return
*/
R<?> getDiseaseTreatmentOne(Long id);
/**
* 诊疗目录编辑
*
* @param diagnosisTreatmentUpDto 诊疗目录列表
* @return
*/
R<?> editDiseaseTreatment(DiagnosisTreatmentUpDto diagnosisTreatmentUpDto);
/**
* 诊疗目录停用
*
* @param ids 诊疗目录ID列表
* @return
*/
R<?> editDiseaseTreatmentStop(List<Long> ids);
/**
* 诊疗目录启用
*
* @param ids 诊疗目录ID列表
* @return
*/
R<?> editDiseaseTreatmentStart(List<Long> ids);
/**
* 新增外来诊疗目录
*
* @param diagnosisTreatmentUpDto 诊疗目录
* @return
*/
@PostMapping("/information")
R<?> addDiseaseTreatment(DiagnosisTreatmentUpDto diagnosisTreatmentUpDto);
}

View File

@@ -22,15 +22,6 @@ public interface IItemDefinitionService {
*/ */
boolean addItem(ItemUpFromDirectoryDto itemUpFromDirectoryDto); boolean addItem(ItemUpFromDirectoryDto itemUpFromDirectoryDto);
// /**
// * 添加器材的项目定价
// *
// * @param deviceManageUpDto 器材目录信息
// * @param deviceDefinition 器材信息
// */
// boolean addItem(ItemUpFromDirectoryDto itemUpFromDirectoryDto, DeviceDefinition deviceDefinition);
//
/** /**
* 修改项目定价表 * 修改项目定价表
* *

View File

@@ -199,7 +199,7 @@ public class DeviceManageAppServiceImpl implements IDeviceManageAppService {
// 更新器材信息 // 更新器材信息
if (deviceDefinitionService.updateById(deviceDefinition)) { if (deviceDefinitionService.updateById(deviceDefinition)) {
ChargeItemDefinition chargeItemDefinition = new ChargeItemDefinition(); ChargeItemDefinition chargeItemDefinition = new ChargeItemDefinition();
chargeItemDefinition.setYbType(deviceManageDto.getItemTypeCode()).setTypeCode(deviceManageDto.getTypeCode()) chargeItemDefinition.setYbType(deviceManageDto.getYbType()).setTypeCode(deviceManageDto.getItemTypeCode())
.setInstanceTable(CommonConstants.TableName.ADM_DEVICE_DEFINITION) .setInstanceTable(CommonConstants.TableName.ADM_DEVICE_DEFINITION)
.setInstanceId(deviceDefinition.getId()); .setInstanceId(deviceDefinition.getId());

View File

@@ -0,0 +1,279 @@
package com.openhis.web.datadictionary.appservice.impl;
import java.util.ArrayList;
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.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.core.common.core.domain.R;
import com.core.common.core.domain.entity.SysDictData;
import com.core.common.utils.MessageUtils;
import com.core.common.utils.SecurityUtils;
import com.core.common.utils.bean.BeanUtils;
import com.core.system.service.ISysDictTypeService;
import com.openhis.administration.domain.Organization;
import com.openhis.administration.service.IOrganizationService;
import com.openhis.common.constant.PromptMsgConstant;
import com.openhis.common.enums.*;
import com.openhis.common.utils.EnumUtils;
import com.openhis.common.utils.HisQueryUtils;
import com.openhis.web.datadictionary.appservice.IDiagnosisTreatmentManageAppService;
import com.openhis.web.datadictionary.dto.DiagnosisTreatmentDto;
import com.openhis.web.datadictionary.dto.DiagnosisTreatmentInitDto;
import com.openhis.web.datadictionary.dto.DiagnosisTreatmentSelParam;
import com.openhis.web.datadictionary.dto.DiagnosisTreatmentUpDto;
import com.openhis.web.datadictionary.mapper.ActivityDefinitionManageMapper;
import com.openhis.workflow.domain.ActivityDefinition;
import com.openhis.workflow.mapper.ActivityDefinitionMapper;
import com.openhis.workflow.service.IActivityDefinitionService;
/**
* 诊疗实现类
*
* @author Wuser
* @date 2025/3/28
*/
@Service
public class DiagnosisTreatmentManageAppServiceImpl implements IDiagnosisTreatmentManageAppService {
@Autowired
private IActivityDefinitionService iActivityDefinitionService;
@Autowired
private ActivityDefinitionMapper activityDefinitionMapper;
@Autowired
private IOrganizationService iOrganizationService;
@Autowired
private ISysDictTypeService iSysDictTypeService;
@Resource
private ActivityDefinitionManageMapper activityDefinitionManageMapper;
/**
* 诊疗目录初期查询
*
* @return
*/
@Override
public R<?> getDiseaseTreatmentInit() {
DiagnosisTreatmentInitDto diagnosisTreatmentInitDto = new DiagnosisTreatmentInitDto();
// 获取状态
List<DiagnosisTreatmentInitDto.statusEnumOption> statusEnumOptions = Stream.of(PublicationStatus.values())
.map(status -> new DiagnosisTreatmentInitDto.statusEnumOption(status.getValue(), status.getInfo()))
.collect(Collectors.toList());
diagnosisTreatmentInitDto.setStatusFlagOptions(statusEnumOptions);
// 获取执行科室
LambdaQueryWrapper<Organization> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(Organization::getTypeEnum, OrganizationType.HOSPITAL_DEPARTMENT);
List<Organization> organizations = iOrganizationService.list(queryWrapper);
List<DiagnosisTreatmentInitDto.exeOrganization> exeOrganizations = organizations.stream()
.map(exeOrg -> new DiagnosisTreatmentInitDto.exeOrganization(exeOrg.getId(), exeOrg.getName()))
.collect(Collectors.toList());
diagnosisTreatmentInitDto.setExeOrganizations(exeOrganizations);
// 获取诊疗分类
// 查询医疗服务项类型
List<SysDictData> medical_service_items =
iSysDictTypeService.selectDictDataByType(ActivityDefCategory.MEDICAL_SERVICE_ITEM.getCode());
// 获取医疗服务项List
List<DiagnosisTreatmentInitDto.diseaseTreatmentType> diseaseTreatmentCategoryList = medical_service_items
.stream().map(status -> new DiagnosisTreatmentInitDto.diseaseTreatmentType(status.getDictValue(),
status.getDictLabel()))
.collect(Collectors.toList());
List<DiagnosisTreatmentInitDto.diseaseTreatmentCategory> diseaseTreatmentCategories = new ArrayList<>();
DiagnosisTreatmentInitDto.diseaseTreatmentCategory diseaseTreatmentCategory =
new DiagnosisTreatmentInitDto.diseaseTreatmentCategory(ActivityDefCategory.MEDICAL_SERVICE_ITEM.getValue(),
ActivityDefCategory.MEDICAL_SERVICE_ITEM.getInfo());
diseaseTreatmentCategory.setChildren(diseaseTreatmentCategoryList);
diseaseTreatmentCategories.add(diseaseTreatmentCategory);
diagnosisTreatmentInitDto.setDiseaseTreatmentCategoryList(diseaseTreatmentCategories);
// 查询手术与治疗类型
List<SysDictData> medical_service_items2 =
iSysDictTypeService.selectDictDataByType(ActivityDefCategory.TREATMENT_SURGERY.getCode());
// 获取手术与治疗List
List<DiagnosisTreatmentInitDto.diseaseTreatmentType> diseaseTreatmentCategoryList2 = medical_service_items2
.stream().map(status -> new DiagnosisTreatmentInitDto.diseaseTreatmentType(status.getDictValue(),
status.getDictLabel()))
.collect(Collectors.toList());
DiagnosisTreatmentInitDto.diseaseTreatmentCategory diseaseTreatmentCategory2 =
new DiagnosisTreatmentInitDto.diseaseTreatmentCategory(ActivityDefCategory.TREATMENT_SURGERY.getValue(),
ActivityDefCategory.TREATMENT_SURGERY.getInfo());
diseaseTreatmentCategory2.setChildren(diseaseTreatmentCategoryList2);
diseaseTreatmentCategories.add(diseaseTreatmentCategory2);
diagnosisTreatmentInitDto.setDiseaseTreatmentCategoryList(diseaseTreatmentCategories);
// 获取类型
List<DiagnosisTreatmentInitDto.statusEnumOption> typeEnumOptions = Stream.of(ActivityType.values())
.map(status -> new DiagnosisTreatmentInitDto.statusEnumOption(status.getValue(), status.getInfo()))
.collect(Collectors.toList());
diagnosisTreatmentInitDto.setTypeEnumOptions(typeEnumOptions);
return R.ok(diagnosisTreatmentInitDto);
}
/**
* 查询诊疗目录分页列表
*
* @param DiagnosisTreatmentSelParam 查询条件
* @param searchKey 查询条件-模糊查询
* @param pageNo 当前页码
* @param pageSize 查询条数
* @return
*/
@Override
public R<?> getDiseaseTreatmentPage(DiagnosisTreatmentSelParam DiagnosisTreatmentSelParam, String searchKey,
Integer pageNo, Integer pageSize, HttpServletRequest request) {
//
// // 构建查询条件
// QueryWrapper<ActivityDefinition> queryWrapper = HisQueryUtils.buildQueryWrapper(DiagnosisTreatmentSelParam,
// searchKey, new HashSet<>(Arrays.asList("bus_no", "name", "py_str", "wb_str")), request);
// // 设置排序
// queryWrapper.orderByAsc("bus_no");
// // 分页查询
// Page<DiagnosisTreatmentDto> diseaseTreatmentPage = HisPageUtils.selectPage(activityDefinitionMapper,
// queryWrapper, pageNo, pageSize, DiagnosisTreatmentDto.class);
// 构建查询条件
QueryWrapper<DiagnosisTreatmentDto> queryWrapper = HisQueryUtils.buildQueryWrapper(DiagnosisTreatmentSelParam,
searchKey, new HashSet<>(Arrays.asList("bus_no", "name", "py_str", "wb_str")), request);
// 分页查询
IPage<DiagnosisTreatmentDto> diseaseTreatmentPage =
activityDefinitionManageMapper.getDiseaseTreatmentPage(new Page<>(pageNo, pageSize), queryWrapper);
diseaseTreatmentPage.getRecords().forEach(e -> {
// 医保标记枚举类回显赋值
e.setYbFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getYbFlag()));
// 医保对码标记枚举类回显赋值
e.setYbMatchFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getYbMatchFlag()));
// 类型举类回显赋值
e.setTypeEnum_enumText(EnumUtils.getInfoByValue(ActivityType.class, e.getTypeEnum()));
// 目录类别举类回显赋值
e.setCategory_enumText(EnumUtils.getInfoByValue(ActivityDefCategory.class, e.getCategoryEnum()));
// 状态举类回显赋值
e.setStatusEnum_enumText(EnumUtils.getInfoByValue(PublicationStatus.class, e.getStatusEnum()));
});
// 返回【诊疗目录列表DTO】分页
return R.ok(diseaseTreatmentPage);
}
/**
* 根据id查询诊疗详情
*
* @param id 诊疗ID
* @return
*/
@Override
public R<?> getDiseaseTreatmentOne(Long id) {
// 获取租户ID
Integer tenantId = SecurityUtils.getLoginUser().getTenantId();
// 根据ID查询【诊疗目录】
return R.ok(activityDefinitionManageMapper.getDiseaseTreatmentOne(id, tenantId));
}
/**
* 诊疗目录编辑
*
* @param diagnosisTreatmentUpDto 诊疗目录列表
* @return
*/
@Override
public R<?> editDiseaseTreatment(DiagnosisTreatmentUpDto diagnosisTreatmentUpDto) {
ActivityDefinition ActivityDefinition = new ActivityDefinition();
BeanUtils.copyProperties(diagnosisTreatmentUpDto, ActivityDefinition);
// 更新诊疗信息
return iActivityDefinitionService.updateById(ActivityDefinition)
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"诊疗目录"}))
: R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
}
/**
* 诊疗目录停用
*
* @param ids 诊疗目录ID列表
* @return
*/
@Override
public R<?> editDiseaseTreatmentStop(List<Long> ids) {
List<ActivityDefinition> ActivityDefinitionList = new CopyOnWriteArrayList<>();
// 取得更新值
for (Long detail : ids) {
ActivityDefinition ActivityDefinition = new ActivityDefinition();
ActivityDefinition.setId(detail);
ActivityDefinition.setStatusEnum(PublicationStatus.RETIRED.getValue());
ActivityDefinitionList.add(ActivityDefinition);
}
// 更新诊疗信息
return iActivityDefinitionService.updateBatchById(ActivityDefinitionList)
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"诊疗目录"}))
: R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
}
/**
* 诊疗目录启用
*
* @param ids 诊疗目录ID列表
* @return
*/
@Override
public R<?> editDiseaseTreatmentStart(List<Long> ids) {
List<ActivityDefinition> ActivityDefinitionList = new CopyOnWriteArrayList<>();
// 取得更新值
for (Long detail : ids) {
ActivityDefinition ActivityDefinition = new ActivityDefinition();
ActivityDefinition.setId(detail);
ActivityDefinition.setStatusEnum(PublicationStatus.ACTIVE.getValue());
ActivityDefinitionList.add(ActivityDefinition);
}
// 更新诊疗信息
return iActivityDefinitionService.updateBatchById(ActivityDefinitionList)
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"诊疗目录"}))
: R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
}
/**
* 新增外来诊疗目录
*
* @param diagnosisTreatmentUpDto 诊疗目录
* @return
*/
@Override
public R<?> addDiseaseTreatment(DiagnosisTreatmentUpDto diagnosisTreatmentUpDto) {
ActivityDefinition ActivityDefinition = new ActivityDefinition();
BeanUtils.copyProperties(diagnosisTreatmentUpDto, ActivityDefinition);
// 新增外来诊疗目录
ActivityDefinition.setStatusEnum(PublicationStatus.DRAFT.getValue());
return iActivityDefinitionService.addDiagnosisTreatment(ActivityDefinition)
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"诊疗目录"}))
: R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00008, null));
}
}

View File

@@ -1,40 +1,18 @@
package com.openhis.web.datadictionary.controller; package com.openhis.web.datadictionary.controller;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List; 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 javax.servlet.http.HttpServletRequest;
import com.openhis.common.enums.*; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
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.core.domain.R;
import com.core.common.core.domain.entity.SysDictData; import com.openhis.web.datadictionary.appservice.IDiagnosisTreatmentManageAppService;
import com.core.common.utils.MessageUtils;
import com.core.common.utils.bean.BeanUtils;
import com.core.system.service.ISysDictTypeService;
import com.openhis.administration.domain.Organization;
import com.openhis.administration.service.IOrganizationService;
import com.openhis.common.constant.PromptMsgConstant;
import com.openhis.common.utils.EnumUtils;
import com.openhis.common.utils.HisPageUtils;
import com.openhis.common.utils.HisQueryUtils;
import com.openhis.web.datadictionary.dto.DiagnosisTreatmentDto; import com.openhis.web.datadictionary.dto.DiagnosisTreatmentDto;
import com.openhis.web.datadictionary.dto.DiagnosisTreatmentInitDto;
import com.openhis.web.datadictionary.dto.DiagnosisTreatmentSelParam; import com.openhis.web.datadictionary.dto.DiagnosisTreatmentSelParam;
import com.openhis.web.datadictionary.dto.DiagnosisTreatmentUpDto; import com.openhis.web.datadictionary.dto.DiagnosisTreatmentUpDto;
import com.openhis.workflow.domain.ActivityDefinition;
import com.openhis.workflow.mapper.ActivityDefinitionMapper;
import com.openhis.workflow.service.IActivityDefinitionService;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@@ -50,10 +28,9 @@ import lombok.extern.slf4j.Slf4j;
@Slf4j @Slf4j
@AllArgsConstructor @AllArgsConstructor
public class DiagnosisTreatmentController { public class DiagnosisTreatmentController {
private final IActivityDefinitionService iActivityDefinitionService;
private final ActivityDefinitionMapper activityDefinitionMapper; @Autowired
private final IOrganizationService iOrganizationService; private IDiagnosisTreatmentManageAppService diagnosisTreatmentManageAppService;
private final ISysDictTypeService iSysDictTypeService;
/** /**
* 诊疗目录初期查询 * 诊疗目录初期查询
@@ -62,63 +39,8 @@ public class DiagnosisTreatmentController {
*/ */
@GetMapping("/init") @GetMapping("/init")
public R<?> getDiseaseTreatmentInit() { public R<?> getDiseaseTreatmentInit() {
DiagnosisTreatmentInitDto diagnosisTreatmentInitDto = new DiagnosisTreatmentInitDto();
// 获取状态
List<DiagnosisTreatmentInitDto.statusEnumOption> statusEnumOptions = Stream.of(PublicationStatus.values())
.map(status -> new DiagnosisTreatmentInitDto.statusEnumOption(status.getValue(), status.getInfo()))
.collect(Collectors.toList());
diagnosisTreatmentInitDto.setStatusFlagOptions(statusEnumOptions);
// 获取执行科室
LambdaQueryWrapper<Organization> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(Organization::getTypeEnum, OrganizationType.HOSPITAL_DEPARTMENT);
List<Organization> organizations = iOrganizationService.list(queryWrapper);
List<DiagnosisTreatmentInitDto.exeOrganization> exeOrganizations = organizations.stream()
.map(exeOrg -> new DiagnosisTreatmentInitDto.exeOrganization(exeOrg.getId(), exeOrg.getName()))
.collect(Collectors.toList());
diagnosisTreatmentInitDto.setExeOrganizations(exeOrganizations);
// 获取诊疗分类 return diagnosisTreatmentManageAppService.getDiseaseTreatmentInit();
// 查询医疗服务项类型
List<SysDictData> medical_service_items =
iSysDictTypeService.selectDictDataByType(ActivityDefCategory.MEDICAL_SERVICE_ITEM.getCode());
// 获取医疗服务项List
List<DiagnosisTreatmentInitDto.diseaseTreatmentType> diseaseTreatmentCategoryList = medical_service_items
.stream().map(status -> new DiagnosisTreatmentInitDto.diseaseTreatmentType(status.getDictValue(),
status.getDictLabel()))
.collect(Collectors.toList());
List<DiagnosisTreatmentInitDto.diseaseTreatmentCategory> diseaseTreatmentCategories = new ArrayList<>();
DiagnosisTreatmentInitDto.diseaseTreatmentCategory diseaseTreatmentCategory =
new DiagnosisTreatmentInitDto.diseaseTreatmentCategory(ActivityDefCategory.MEDICAL_SERVICE_ITEM.getValue(),
ActivityDefCategory.MEDICAL_SERVICE_ITEM.getInfo());
diseaseTreatmentCategory.setChildren(diseaseTreatmentCategoryList);
diseaseTreatmentCategories.add(diseaseTreatmentCategory);
diagnosisTreatmentInitDto.setDiseaseTreatmentCategoryList(diseaseTreatmentCategories);
// 查询手术与治疗类型
List<SysDictData> medical_service_items2 =
iSysDictTypeService.selectDictDataByType(ActivityDefCategory.TREATMENT_SURGERY.getCode());
// 获取手术与治疗List
List<DiagnosisTreatmentInitDto.diseaseTreatmentType> diseaseTreatmentCategoryList2 = medical_service_items2
.stream().map(status -> new DiagnosisTreatmentInitDto.diseaseTreatmentType(status.getDictValue(),
status.getDictLabel()))
.collect(Collectors.toList());
DiagnosisTreatmentInitDto.diseaseTreatmentCategory diseaseTreatmentCategory2 =
new DiagnosisTreatmentInitDto.diseaseTreatmentCategory(ActivityDefCategory.TREATMENT_SURGERY.getValue(),
ActivityDefCategory.TREATMENT_SURGERY.getInfo());
diseaseTreatmentCategory2.setChildren(diseaseTreatmentCategoryList2);
diseaseTreatmentCategories.add(diseaseTreatmentCategory2);
diagnosisTreatmentInitDto.setDiseaseTreatmentCategoryList(diseaseTreatmentCategories);
// 获取类型
List<DiagnosisTreatmentInitDto.statusEnumOption> typeEnumOptions = Stream.of(ActivityType.values())
.map(status -> new DiagnosisTreatmentInitDto.statusEnumOption(status.getValue(), status.getInfo()))
.collect(Collectors.toList());
diagnosisTreatmentInitDto.setTypeEnumOptions(typeEnumOptions);
return R.ok(diagnosisTreatmentInitDto);
} }
/** /**
@@ -136,30 +58,9 @@ public class DiagnosisTreatmentController {
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest request) { @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest request) {
// 构建查询条件
QueryWrapper<ActivityDefinition> queryWrapper = HisQueryUtils.buildQueryWrapper(DiagnosisTreatmentSelParam,
searchKey, new HashSet<>(Arrays.asList("bus_no", "name", "py_str", "wb_str")), request);
// 设置排序
queryWrapper.orderByAsc("bus_no");
// 分页查询
Page<DiagnosisTreatmentDto> diseaseTreatmentPage = HisPageUtils.selectPage(activityDefinitionMapper,
queryWrapper, pageNo, pageSize, DiagnosisTreatmentDto.class);
diseaseTreatmentPage.getRecords().forEach(e -> {
// 医保标记枚举类回显赋值
e.setYbFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getYbFlag()));
// 医保对码标记枚举类回显赋值
e.setYbMatchFlag_enumText(EnumUtils.getInfoByValue(Whether.class, e.getYbMatchFlag()));
//类型举类回显赋值
e.setTypeEnum_enumText(EnumUtils.getInfoByValue(ActivityType.class, e.getTypeEnum()));
//目录类别举类回显赋值
e.setCategory_enumText(EnumUtils.getInfoByValue(ActivityDefCategory.class, e.getCategoryEnum()));
//状态举类回显赋值
e.setStatusEnum_enumText(EnumUtils.getInfoByValue(PublicationStatus.class, e.getStatusEnum()));
});
// 返回【诊疗目录列表DTO】分页 // 返回【诊疗目录列表DTO】分页
return R.ok(diseaseTreatmentPage); return diagnosisTreatmentManageAppService.getDiseaseTreatmentPage(DiagnosisTreatmentSelParam, searchKey, pageNo,
pageSize, request);
} }
/** /**
@@ -169,12 +70,9 @@ public class DiagnosisTreatmentController {
* @return * @return
*/ */
@GetMapping("/information-one") @GetMapping("/information-one")
public R<?> getDiseaseTreatmentOne(@PathVariable("id") Long id) { public R<?> getDiseaseTreatmentOne(@RequestParam Long id) {
DiagnosisTreatmentDto diagnosisTreatmentDto = new DiagnosisTreatmentDto();
// 根据ID查询【诊疗目录】 return diagnosisTreatmentManageAppService.getDiseaseTreatmentOne(id);
ActivityDefinition activityDefinition = iActivityDefinitionService.getById(id);
BeanUtils.copyProperties(activityDefinition, diagnosisTreatmentDto);
return R.ok(diagnosisTreatmentDto);
} }
/** /**
@@ -186,13 +84,7 @@ public class DiagnosisTreatmentController {
@PutMapping("/information") @PutMapping("/information")
public R<?> editDiseaseTreatment(@RequestBody DiagnosisTreatmentUpDto diagnosisTreatmentUpDto) { public R<?> editDiseaseTreatment(@RequestBody DiagnosisTreatmentUpDto diagnosisTreatmentUpDto) {
ActivityDefinition ActivityDefinition = new ActivityDefinition(); return diagnosisTreatmentManageAppService.editDiseaseTreatment(diagnosisTreatmentUpDto);
BeanUtils.copyProperties(diagnosisTreatmentUpDto, ActivityDefinition);
// 更新诊疗信息
return iActivityDefinitionService.updateById(ActivityDefinition)
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"诊疗目录"}))
: R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
} }
/** /**
@@ -203,19 +95,8 @@ public class DiagnosisTreatmentController {
*/ */
@PutMapping("/information-stop") @PutMapping("/information-stop")
public R<?> editDiseaseTreatmentStop(@RequestBody List<Long> ids) { public R<?> editDiseaseTreatmentStop(@RequestBody List<Long> ids) {
List<ActivityDefinition> ActivityDefinitionList = new CopyOnWriteArrayList<>();
// 取得更新值 return diagnosisTreatmentManageAppService.editDiseaseTreatmentStop(ids);
for (Long detail : ids) {
ActivityDefinition ActivityDefinition = new ActivityDefinition();
ActivityDefinition.setId(detail);
ActivityDefinition.setStatusEnum(PublicationStatus.RETIRED.getValue());
ActivityDefinitionList.add(ActivityDefinition);
}
// 更新诊疗信息
return iActivityDefinitionService.updateBatchById(ActivityDefinitionList)
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"诊疗目录"}))
: R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
} }
/** /**
@@ -226,19 +107,7 @@ public class DiagnosisTreatmentController {
*/ */
@PutMapping("/information-start") @PutMapping("/information-start")
public R<?> editDiseaseTreatmentStart(@RequestBody List<Long> ids) { public R<?> editDiseaseTreatmentStart(@RequestBody List<Long> ids) {
List<ActivityDefinition> ActivityDefinitionList = new CopyOnWriteArrayList<>(); return diagnosisTreatmentManageAppService.editDiseaseTreatmentStart(ids);
// 取得更新值
for (Long detail : ids) {
ActivityDefinition ActivityDefinition = new ActivityDefinition();
ActivityDefinition.setId(detail);
ActivityDefinition.setStatusEnum(PublicationStatus.ACTIVE.getValue());
ActivityDefinitionList.add(ActivityDefinition);
}
// 更新诊疗信息
return iActivityDefinitionService.updateBatchById(ActivityDefinitionList)
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"诊疗目录"}))
: R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
} }
/** /**
@@ -249,13 +118,7 @@ public class DiagnosisTreatmentController {
*/ */
@PostMapping("/information") @PostMapping("/information")
public R<?> addDiseaseTreatment(@Validated @RequestBody DiagnosisTreatmentUpDto diagnosisTreatmentUpDto) { public R<?> addDiseaseTreatment(@Validated @RequestBody DiagnosisTreatmentUpDto diagnosisTreatmentUpDto) {
ActivityDefinition ActivityDefinition = new ActivityDefinition(); return diagnosisTreatmentManageAppService.addDiseaseTreatment(diagnosisTreatmentUpDto);
BeanUtils.copyProperties(diagnosisTreatmentUpDto, ActivityDefinition);
// 新增外来诊疗目录
ActivityDefinition.setStatusEnum(PublicationStatus.DRAFT.getValue());
return iActivityDefinitionService.addDiagnosisTreatment(ActivityDefinition)
? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"诊疗目录"}))
: R.fail(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00008, null));
} }
/** /**

View File

@@ -66,10 +66,14 @@ public class DiagnosisTreatmentDto {
private String statusEnum_enumText; private String statusEnum_enumText;
/** 身体部位 */ /** 身体部位 */
@Dict(dictCode = "body_site_code")
private String bodySiteCode; private String bodySiteCode;
private String bodySiteCode_dictText;
/** 所需标本 */ /** 所需标本 */
@Dict(dictCode = "specimen_code")
private String specimenCode; private String specimenCode;
private String specimenCode_dictText;
/** 说明 */ /** 说明 */
private String descriptionText; private String descriptionText;
@@ -110,5 +114,6 @@ public class DiagnosisTreatmentDto {
/** 最高零售价 */ /** 最高零售价 */
private BigDecimal maximumRetailPrice; private BigDecimal maximumRetailPrice;
} }

View File

@@ -77,6 +77,18 @@ public class DiagnosisTreatmentUpDto {
/** 规则id */ /** 规则id */
private Integer ruleId; private Integer ruleId;
/** 所属科室 */
@Dict(dictTable = "adm_organization", dictCode = "id", dictText = "name")
@JsonSerialize(using = ToStringSerializer.class)
private Long orgId;
private String orgId_dictText;
/** 所在位置 */
@Dict(dictTable = "adm_location", dictCode = "id", dictText = "name")
@JsonSerialize(using = ToStringSerializer.class)
private Long locationId;
private String locationId_dictText;
/** 财务类别 */ /** 财务类别 */
@Dict(dictCode = "fin_type_code") @Dict(dictCode = "fin_type_code")
private String itemTypeCode; private String itemTypeCode;

View File

@@ -0,0 +1,40 @@
package com.openhis.web.datadictionary.mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.openhis.web.datadictionary.dto.DiagnosisTreatmentDto;
/**
* 诊疗定义管理
*
* @author liuhr
* @date 2025/3/28
*/
@Repository
public interface ActivityDefinitionManageMapper {
/**
* 诊疗目录分页查询
*
* @param page 分页参数
* @param queryWrapper 查询条件
* @return 器材记录
*/
IPage<DiagnosisTreatmentDto> getDiseaseTreatmentPage(@Param("page") Page<DiagnosisTreatmentDto> page,
@Param(Constants.WRAPPER) QueryWrapper<DiagnosisTreatmentDto> queryWrapper);
/**
* 诊疗详情
*
* @param id 诊疗ID
* @param tenantId 租户
* @return
*/
DiagnosisTreatmentDto getDiseaseTreatmentOne(@Param("id") Long id, @Param("tenantId") Integer tenantId);
}

View File

@@ -0,0 +1,136 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.openhis.web.datadictionary.mapper.ActivityDefinitionManageMapper">
<select id="getDiseaseTreatmentPage" parameterType="java.util.Map"
resultType="com.openhis.web.datadictionary.dto.DiagnosisTreatmentDto">
SELECT
T3.id,
T3.category_enum,
T3.bus_no,
T3.name,
T3.py_str,
T3.wb_str,
T3.type_enum,
T3.permitted_unit_code,
T3.org_id,
T3.location_id,
T3.yb_flag,
T3.yb_no,
T3.yb_match_flag,
T3.status_enum,
T3.body_site_code,
T3.specimen_code,
T3.description_text,
T3.rule_id,
T3.tenant_id,
T3.item_type_code,
T3.yb_type,
T3.retail_price,
T3.purchase_price,
T3.maximum_retail_price
FROM
(
SELECT
T1.id,
T1.category_enum,
T1.bus_no,
T1.name,
T1.py_str,
T1.wb_str,
T1.type_enum,
T1.permitted_unit_code,
T1.org_id,
T1.location_id,
T1.yb_flag,
T1.yb_no,
T1.yb_match_flag,
T1.status_enum,
T1.body_site_code,
T1.specimen_code,
T1.description_text,
T1.rule_id,
T1.tenant_id,
T2.type_code as item_type_code,
T2.yb_type,
T2.price as retail_price,--零售价,
( SELECT T4.amount
FROM adm_charge_item_definition T5
LEFT JOIN adm_charge_item_def_detail T4 ON T4.definition_id = T5.id
WHERE T4.condition_code = '2'--2:采购价
AND T5.instance_id = T1.id
AND T5.instance_table = 'wor_activity_definition'
) as purchase_price,--购入价
( SELECT T4.amount
FROM adm_charge_item_definition T5
LEFT JOIN adm_charge_item_def_detail T4 ON T4.definition_id = T5.id
WHERE T4.condition_code = '4'--4:限制
AND T5.instance_id = T1.id
AND T5.instance_table = 'wor_activity_definition'
) as maximum_retail_price--最高零售价
FROM wor_activity_definition T1
LEFT JOIN adm_charge_item_definition T2 ON T1.id = T2.instance_id
<where>
T1.delete_flag = '0'
AND T2.instance_table = 'wor_activity_definition'
</where>
ORDER BY T1.bus_no
) AS T3
${ew.customSqlSegment}
</select>
<select id="getDiseaseTreatmentOne" resultType="com.openhis.web.datadictionary.dto.DiagnosisTreatmentDto">
SELECT
T1.id,
T1.category_enum,
T1.bus_no,
T1.name,
T1.py_str,
T1.wb_str,
T1.type_enum,
T1.permitted_unit_code,
T1.org_id,
T1.location_id,
T1.yb_flag,
T1.yb_no,
T1.yb_match_flag,
T1.status_enum,
T1.body_site_code,
T1.specimen_code,
T1.description_text,
T1.rule_id,
T1.tenant_id,
T2.type_code as item_type_code,
T2.yb_type,
T2.price as retail_price,--零售价,
( SELECT T4.amount
FROM adm_charge_item_definition T5
LEFT JOIN adm_charge_item_def_detail T4 ON T4.definition_id = T5.id
WHERE T4.condition_code = '2'--2:采购价
AND T5.instance_id = T1.id
AND T5.instance_table = 'wor_activity_definition'
) as purchase_price,--购入价
( SELECT T4.amount
FROM adm_charge_item_definition T5
LEFT JOIN adm_charge_item_def_detail T4 ON T4.definition_id = T5.id
WHERE T4.condition_code = '4'--4:限制
AND T5.instance_id = T1.id
AND T5.instance_table = 'wor_activity_definition'
) as maximum_retail_price--最高零售价
FROM wor_activity_definition T1
LEFT JOIN adm_charge_item_definition T2 ON T1.id = T2.instance_id
<where>
T1.delete_flag = '0'
AND T2.instance_table = 'wor_activity_definition'
<if test="id!= null">
AND T2.id = #{id}
</if>
<if test="tenantId!= null">
AND T1.tenant_id = #{tenantId}
</if>
</where>
</select>
</mapper>