diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/IDiseaseManageAppService.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/IDiseaseManageAppService.java new file mode 100644 index 00000000..ccaa4bda --- /dev/null +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/IDiseaseManageAppService.java @@ -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 ids); + + /** + * 病种目录启用 + * + * @param ids 病种目录ID列表 + * @return + */ + R editDiseaseStart(List ids); + + /** + * 新增外来病种目录 + * + * @param diseaseManageUpDto 病种目录 + * @return + */ + R addDisease(DiseaseManageUpDto diseaseManageUpDto); + +} diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/impl/DiseaseManageAppServiceImpl.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/impl/DiseaseManageAppServiceImpl.java new file mode 100644 index 00000000..36922f1f --- /dev/null +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/appservice/impl/DiseaseManageAppServiceImpl.java @@ -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 diseaseCategoryList = Stream.of(ConditionDefinitionSource.values()) + .map(status -> new DiseaseManageInitDto.diseaseCategory(status.getValue(), status.getInfo())) + .collect(Collectors.toList()); + diseaseManageInitDto.setDiseaseCategoryList(diseaseCategoryList); + // 获取状态 + List 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 queryWrapper = HisQueryUtils.buildQueryWrapper(diseaseManageSelParam, + searchKey, new HashSet<>(Arrays.asList("condition_code", "name", "py_str", "wb_str")), request); + // 设置排序 + queryWrapper.orderByAsc("condition_code"); + // 分页查询 + Page 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 ids) { + List 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 ids) { + List 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)); + } + +} diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/controller/DiseaseManageController.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/controller/DiseaseManageController.java index 1e51a619..ce946140 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/controller/DiseaseManageController.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/controller/DiseaseManageController.java @@ -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 diseaseCategoryList = Stream.of(ConditionDefinitionSource.values()) - .map(status -> new DiseaseManageInitDto.diseaseCategory(status.getValue(), status.getInfo())) - .collect(Collectors.toList()); - diseaseManageInitDto.setDiseaseCategoryList(diseaseCategoryList); - // 获取状态 - List 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 queryWrapper = HisQueryUtils.buildQueryWrapper(diseaseManageSelParam, - searchKey, new HashSet<>(Arrays.asList("condition_code", "name", "py_str", "wb_str")), request); - // 设置排序 - queryWrapper.orderByAsc("condition_code"); - // 分页查询 - Page 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 ids) { - List 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 ids) { - List 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); } /** diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/DiagnosisTreatmentUpDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/DiagnosisTreatmentUpDto.java index 5425e648..3eafc386 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/DiagnosisTreatmentUpDto.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/datadictionary/dto/DiagnosisTreatmentUpDto.java @@ -28,7 +28,7 @@ public class DiagnosisTreatmentUpDto { private Long id; /** 目录类别 */ - @NotNull(message = "目录类别不能为空") + @NotBlank(message = "目录类别不能为空") private String categoryCode; /** 编码 */ diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientmanage/appservice/IOutpatientInfusionRecordService.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientmanage/appservice/IOutpatientInfusionRecordService.java index 11f5850e..3c15dcb1 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientmanage/appservice/IOutpatientInfusionRecordService.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientmanage/appservice/IOutpatientInfusionRecordService.java @@ -55,9 +55,10 @@ public interface IOutpatientInfusionRecordService { /** * 门诊输液执行历史记录查询 * + * @param patientId 患者ID * @param historyFlag 查询的是否为执行履历 * @return 门诊输液记录列表 */ - List getPatientInfusionPerformRecord(HttpServletRequest request, boolean historyFlag); + List getPatientInfusionPerformRecord(Long patientId,HttpServletRequest request, boolean historyFlag); } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientmanage/appservice/impl/OutpatientInfusionRecordServiceImpl.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientmanage/appservice/impl/OutpatientInfusionRecordServiceImpl.java index 29e71f4f..0ee18760 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientmanage/appservice/impl/OutpatientInfusionRecordServiceImpl.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientmanage/appservice/impl/OutpatientInfusionRecordServiceImpl.java @@ -114,7 +114,7 @@ public class OutpatientInfusionRecordServiceImpl implements IOutpatientInfusionR // 构建查询条件 QueryWrapper queryWrapper = - HisQueryUtils.buildQueryWrapper(new OutpatientInfusionPatientDto(), null, null, request); + HisQueryUtils.buildQueryWrapper(null, null, null, request); queryWrapper.eq(CommonConstants.FieldName.PatientId, outpatientInfusionPatientDto.getPatientId()); // based_on_id 是为空的 @@ -239,7 +239,7 @@ public class OutpatientInfusionRecordServiceImpl implements IOutpatientInfusionR public List checkServiceRequestIsCompleted() { //获取全部执行输液记录 - List patientInfusionList =getPatientInfusionPerformRecord(null,false); + List patientInfusionList =getPatientInfusionPerformRecord(null,null,false); // 按 serviceId 分组 Map> servicePatientInfusionList = patientInfusionList.stream() .collect(Collectors.groupingBy(OutpatientInfusionRecordDto::getServiceId)); @@ -334,16 +334,17 @@ public class OutpatientInfusionRecordServiceImpl implements IOutpatientInfusionR /** * 显示门诊输液执行记录查询 * + * @param patientId 患者输液信息 * @param historyFlag 查询的是否为执行履历 * @return 返回门诊输液执行记录查询 */ @Override - public List getPatientInfusionPerformRecord(HttpServletRequest request, + public List getPatientInfusionPerformRecord(Long patientId,HttpServletRequest request, boolean historyFlag) { // 构建查询条件 QueryWrapper queryWrapper = - HisQueryUtils.buildQueryWrapper(new OutpatientInfusionRecordDto(), null, null, request); + HisQueryUtils.buildQueryWrapper(null, null, null, request); // 执行历史查询的条件 if (historyFlag) { @@ -351,24 +352,30 @@ public class OutpatientInfusionRecordServiceImpl implements IOutpatientInfusionR queryWrapper.isNotNull(CommonConstants.FieldName.BasedOnId); // 状态是已完成 queryWrapper.eq(CommonConstants.FieldName.RequestStatus, EventStatus.COMPLETED.getValue()); + //筛选当前ID的患者历史执行记录 + queryWrapper.eq(CommonConstants.FieldName.PatientId,patientId); + //执行次数大于0 + queryWrapper.gt("done_num", 0); - List infusionPerformList = editRecords(queryWrapper); - List medicationIds = checkServiceRequestIsCompleted(infusionPerformList); - // 未产生执行历史 - if (medicationIds == null || medicationIds.isEmpty()) { - return infusionPerformList; - } - // 筛选一下执行的药品 - queryWrapper.in(CommonConstants.FieldName.MedicationId, medicationIds); - +// List infusionPerformList = editRecords(queryWrapper); +// List medicationIds = checkServiceRequestIsCompleted(infusionPerformList); +// // 未产生执行历史 +// if (medicationIds == null || medicationIds.isEmpty()) { +// return infusionPerformList; +// } +// // 筛选一下执行的药品 +// queryWrapper.in(CommonConstants.FieldName.MedicationId, medicationIds); return editRecords(queryWrapper); // 门诊输液待执行记录查询 } else { + // based_on_id 为空,此条件筛选控制不显示执行履历 queryWrapper.isNull(CommonConstants.FieldName.BasedOnId); // 状态是进行中 queryWrapper.eq(CommonConstants.FieldName.RequestStatus, EventStatus.IN_PROGRESS.getValue()); + //筛选当前ID的患者历史执行记录 + queryWrapper.eq(CommonConstants.FieldName.PatientId,patientId); return editRecords(queryWrapper); } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientmanage/controller/OutpatientInfusionRecordController.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientmanage/controller/OutpatientInfusionRecordController.java index 9f7f3e7d..95543e1a 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientmanage/controller/OutpatientInfusionRecordController.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientmanage/controller/OutpatientInfusionRecordController.java @@ -12,7 +12,6 @@ import com.core.common.core.domain.R; import com.core.common.utils.MessageUtils; import com.openhis.common.constant.PromptMsgConstant; import com.openhis.web.outpatientmanage.appservice.IOutpatientInfusionRecordService; -import com.openhis.web.outpatientmanage.dto.OutpatientInfusionPatientDto; import com.openhis.web.outpatientmanage.dto.OutpatientInfusionRecordDto; import lombok.AllArgsConstructor; @@ -50,18 +49,18 @@ public class OutpatientInfusionRecordController { .ok(outpatientInfusionRecordService.getOutpatientInfusionPatientList(searchKey, pageNo, pageSize, request)); } - /** - * 点击患者,查询该患者的输液记录 - * - * @param outpatientInfusionPatientDto 患者输液信息 - * @return 当前患者门诊输液待执行列表 - */ - @GetMapping(value = "/patient-infusion-record") - public R getPatientInfusionRecord(OutpatientInfusionPatientDto outpatientInfusionPatientDto, - HttpServletRequest request) { - - return R.ok(outpatientInfusionRecordService.getPatientInfusionRecord(outpatientInfusionPatientDto, request)); - } + // /** + // * 点击患者,查询该患者的输液记录 + // * + // * @param outpatientInfusionPatientDto 患者输液信息 + // * @return 当前患者门诊输液待执行列表 + // */ + // @GetMapping(value = "/patient-infusion-record") + // public R getPatientInfusionRecord(OutpatientInfusionPatientDto outpatientInfusionPatientDto, + // HttpServletRequest request) { + // + // return R.ok(outpatientInfusionRecordService.getPatientInfusionRecord(outpatientInfusionPatientDto, request)); + // } /** * 批量执行患者门诊输液 @@ -98,23 +97,27 @@ public class OutpatientInfusionRecordController { /** * 门诊输液待执行记录查询 * + * @param patientId 患者ID * @return 门诊输液待执行记录列表 */ @GetMapping(value = "/infusion-wait-perform-record") - public R getPatientInfusionRecords(HttpServletRequest request) { + public R getPatientInfusionRecords(@RequestParam(value = "patientId", required = false) Long patientId, + HttpServletRequest request) { - return R.ok(outpatientInfusionRecordService.getPatientInfusionPerformRecord(request, false)); + return R.ok(outpatientInfusionRecordService.getPatientInfusionPerformRecord(patientId, request, false)); } /** * 门诊输液执行历史记录查询 * + * @param patientId 患者ID * @return 门诊输液执行历史记录列表 */ @GetMapping(value = "/infusion-perform-record") - public R getPatientInfusionPerformRecord(HttpServletRequest request) { + public R getPatientInfusionPerformRecord(@RequestParam(value = "patientId", required = false) Long patientId, + HttpServletRequest request) { - return R.ok(outpatientInfusionRecordService.getPatientInfusionPerformRecord(request, true)); + return R.ok(outpatientInfusionRecordService.getPatientInfusionPerformRecord(patientId, request, true)); } } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientmanage/dto/OutpatientInfusionPatientDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientmanage/dto/OutpatientInfusionPatientDto.java index 4fc0a2aa..a1e917e6 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientmanage/dto/OutpatientInfusionPatientDto.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/outpatientmanage/dto/OutpatientInfusionPatientDto.java @@ -6,6 +6,7 @@ import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import lombok.Data; import lombok.experimental.Accessors; +import javax.validation.constraints.NotNull; import java.util.Date; /** diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/appservice/impl/IWesternMedicineDispenseAppServiceImpl.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/appservice/impl/IWesternMedicineDispenseAppServiceImpl.java index 2ba9374b..bfcda523 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/appservice/impl/IWesternMedicineDispenseAppServiceImpl.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/appservice/impl/IWesternMedicineDispenseAppServiceImpl.java @@ -95,11 +95,15 @@ public class IWesternMedicineDispenseAppServiceImpl implements IWesternMedicineD // 查询条件设定 String condition = encounterInfoSearchParam.getCondition(); + encounterInfoSearchParam.setCondition(null); if (StringUtils.isNotEmpty(condition)){ Pattern pattern = Pattern.compile(".*\\d.*"); - Matcher matcher = pattern.matcher(encounterInfoSearchParam.getCondition()); - encounterInfoSearchParam.setIdCard(matcher.find() ? condition:""); - encounterInfoSearchParam.setPatientName(!matcher.find() ? condition:""); + Matcher matcher = pattern.matcher(condition); + if (matcher.find()){ + encounterInfoSearchParam.setIdCard(condition); + } else{ + encounterInfoSearchParam.setPatientName(condition); + } } // 构建查询条件 @@ -110,6 +114,12 @@ public class IWesternMedicineDispenseAppServiceImpl implements IWesternMedicineD Page encounterInfoPageDto = westernMedicineDispenseMapper.selectEncounterInfoListPage( new Page<>(pageNo, pageSize), queryWrapper); + // 个别项目设定 + encounterInfoPageDto.getRecords().forEach(prescriptionPatientInfoDto -> { + // 性别 + prescriptionPatientInfoDto.setGenderEnum_enumText(EnumUtils.getInfoByValue(AdministrativeGender.class, + prescriptionPatientInfoDto.getGenderEnum())); + }); return R.ok(encounterInfoPageDto); } @@ -125,12 +135,12 @@ public class IWesternMedicineDispenseAppServiceImpl implements IWesternMedicineD PrescriptionPatientInfoDto prescriptionPatientInfoDto = westernMedicineDispenseMapper. selectPrescriptionPatientInfo(encounterId); // 年龄 - prescriptionPatientInfoDto.setAge(AgeCalculatorUtil.getAge(prescriptionPatientInfoDto.getBirth_date())); + prescriptionPatientInfoDto.setAge(AgeCalculatorUtil.getAge(prescriptionPatientInfoDto.getBirthDate())); // 性别 prescriptionPatientInfoDto.setGenderEnum_enumText(EnumUtils.getInfoByValue(AdministrativeGender.class, prescriptionPatientInfoDto.getGenderEnum())); // 合同类型 - if (StringUtils.isNull(prescriptionPatientInfoDto.getCategoryEnum())){ + if (StringUtils.isNotNull(prescriptionPatientInfoDto.getCategoryEnum())){ prescriptionPatientInfoDto.setCategoryEnum_enumText(EnumUtils.getInfoByValue(FinCategory.class, prescriptionPatientInfoDto.getCategoryEnum())); } @@ -139,9 +149,9 @@ public class IWesternMedicineDispenseAppServiceImpl implements IWesternMedicineD selectPrescriptionMedicineInfoList(encounterId); // 计算合计金额 if(!prescriptionMedicineInfoList.isEmpty()) { - BigDecimal totalPrice = new BigDecimal(0); + double totalPrice = 0d; for (PrescriptionMedicineInfoDto item : prescriptionMedicineInfoList) { - totalPrice.add(item.getTotal_price()); + totalPrice += item.getTotalPrice().doubleValue(); } prescriptionPatientInfoDto.setTotalPrice(totalPrice); } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/controller/WesternMedicineDispenseController.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/controller/WesternMedicineDispenseController.java index db9063ac..d49aa2e8 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/controller/WesternMedicineDispenseController.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/controller/WesternMedicineDispenseController.java @@ -3,10 +3,7 @@ package com.openhis.web.pharmacymanage.controller; import javax.servlet.http.HttpServletRequest; import org.springframework.beans.factory.annotation.Autowired; -import org.springframework.web.bind.annotation.GetMapping; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestParam; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import com.core.common.core.domain.R; import com.openhis.web.pharmacymanage.appservice.IWesternMedicineDispenseAppService; @@ -74,7 +71,7 @@ public class WesternMedicineDispenseController { * * @param prescriptionNo 处方号 */ - @GetMapping("/medicine-dispense") + @PutMapping("/medicine-dispense") public R medicineDispense(@RequestParam(value = "prescriptionNo") String prescriptionNo) { return iWesternMedicineDispenseService.medicineDispense(prescriptionNo); } @@ -85,9 +82,10 @@ public class WesternMedicineDispenseController { * @param prescriptionNo 处方号 * @param notPerformedReasonEnum 未发药原因 */ - @GetMapping("/medicine-cancel") + @PutMapping("/medicine-cancel") public R medicineCancel(@RequestParam(value = "prescriptionNo") String prescriptionNo, - @RequestParam(value = "prescriptionNo") Integer notPerformedReasonEnum) { - return iWesternMedicineDispenseService.medicineCancel(prescriptionNo, notPerformedReasonEnum); + @RequestParam(value = "notPerformedReasonEnum") Integer notPerformedReasonEnum) { + //return iWesternMedicineDispenseService.medicineCancel(prescriptionNo, notPerformedReasonEnum); + return R.ok(); } } \ No newline at end of file diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/EncounterInfoPageDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/EncounterInfoPageDto.java index dc1eeed6..374b4f56 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/EncounterInfoPageDto.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/EncounterInfoPageDto.java @@ -5,6 +5,8 @@ package com.openhis.web.pharmacymanage.dto; import java.io.Serializable; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import lombok.Data; import lombok.experimental.Accessors; @@ -21,6 +23,7 @@ public class EncounterInfoPageDto implements Serializable { private static final long serialVersionUID = 1L; /** 就诊ID */ + @JsonSerialize(using = ToStringSerializer.class) private Long encounterId; /** 科室 */ diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/EncounterInfoSearchParam.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/EncounterInfoSearchParam.java index d46515c4..76c6b31f 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/EncounterInfoSearchParam.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/EncounterInfoSearchParam.java @@ -19,7 +19,7 @@ import lombok.experimental.Accessors; public class EncounterInfoSearchParam implements Serializable { /** 科室 */ - private long departmentId; + private Long departmentId; /** 患者姓名或者证件号 */ private String condition; diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/PageInitDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/PageInitDto.java index d5dd601a..5d47ceb3 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/PageInitDto.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/PageInitDto.java @@ -5,6 +5,8 @@ package com.openhis.web.pharmacymanage.dto; import java.util.List; +import com.fasterxml.jackson.databind.annotation.JsonSerialize; +import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import lombok.Data; import lombok.experimental.Accessors; @@ -26,6 +28,7 @@ public class PageInitDto { @Data public static class DepartmentOption { + @JsonSerialize(using = ToStringSerializer.class) private Long value; private String label; diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/PrescriptionMedicineInfoDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/PrescriptionMedicineInfoDto.java index a694d4b8..c0d03d42 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/PrescriptionMedicineInfoDto.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/PrescriptionMedicineInfoDto.java @@ -24,11 +24,14 @@ public class PrescriptionMedicineInfoDto implements Serializable { /** 科室 */ private String departmentName; + /** 开单医生 */ + private String doctorName; + /** 项目类型 */ private String itemType; - /** 开单医生 */ - private String doctorName; + /** 诊断名称 */ + private String conditionName; /** 处方号 */ private String prescriptionNo; @@ -76,5 +79,5 @@ public class PrescriptionMedicineInfoDto implements Serializable { private BigDecimal unitPrice; /** 金额 */ - private BigDecimal total_price; + private BigDecimal totalPrice; } \ No newline at end of file diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/PrescriptionPatientInfoDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/PrescriptionPatientInfoDto.java index 3ee74c4e..f21bfa4a 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/PrescriptionPatientInfoDto.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/pharmacymanage/dto/PrescriptionPatientInfoDto.java @@ -30,7 +30,7 @@ public class PrescriptionPatientInfoDto implements Serializable { private String genderEnum_enumText; /** 生日 */ - private Date birth_date; + private Date birthDate; /** 年龄 */ private String age; @@ -49,5 +49,5 @@ public class PrescriptionPatientInfoDto implements Serializable { private String encounterDate; /** 总金额 */ - private BigDecimal totalPrice; + private double totalPrice; } \ No newline at end of file diff --git a/openhis-server/openhis-application/src/main/resources/mapper/pharmacymanage/WesternMedicineDispenseMapper.xml b/openhis-server/openhis-application/src/main/resources/mapper/pharmacymanage/WesternMedicineDispenseMapper.xml index 4dd1a866..e3539018 100644 --- a/openhis-server/openhis-application/src/main/resources/mapper/pharmacymanage/WesternMedicineDispenseMapper.xml +++ b/openhis-server/openhis-application/src/main/resources/mapper/pharmacymanage/WesternMedicineDispenseMapper.xml @@ -8,16 +8,17 @@ patient_name, gender_enum, encounter_date, - organization_id, + department_id, id_card, start_time FROM ( SELECT + T1.tenant_id, T1.id AS encounter_id, T1.start_time, TO_CHAR(T1.start_time,'YYYY-MM-DD') AS encounter_date, - T1.organization_id, + T1.organization_id AS department_id, T2.gender_enum, T2.name AS patient_name, T2.id_card, @@ -74,8 +75,10 @@