From 0b12bbdb91fbce1bc9903b9445849f9846832964 Mon Sep 17 00:00:00 2001 From: "Wang.Huan" Date: Thu, 27 Mar 2025 15:51:44 +0800 Subject: [PATCH] tb --- .../impl/PractitionerAppServiceImpl.java | 4 ++- .../DoctorStationAdviceAppServiceImpl.java | 25 ++++++++++++++++--- .../web/doctorstation/dto/AdviceBaseDto.java | 5 ++++ .../web/doctorstation/dto/AdviceSaveDto.java | 12 ++++++++- .../mapper/DoctorStationAdviceAppMapper.java | 3 ++- .../DoctorStationAdviceAppMapper.xml | 5 ++++ .../openhis/common/enums/DeviceCategory.java | 20 +++++++-------- .../service/IOrganizationLocationService.java | 13 +++++++++- .../impl/OrganizationLocationServiceImpl.java | 19 ++++++++++++++ .../medication/domain/MedicationRequest.java | 7 +++++- .../workflow/domain/DeviceRequest.java | 3 +++ 11 files changed, 98 insertions(+), 18 deletions(-) diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/impl/PractitionerAppServiceImpl.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/impl/PractitionerAppServiceImpl.java index 38efeda4..3a476f55 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/impl/PractitionerAppServiceImpl.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/basedatamanage/appservice/impl/PractitionerAppServiceImpl.java @@ -79,7 +79,8 @@ public class PractitionerAppServiceImpl implements IPractitionerAppService { bizUser.setStatus(userAndPractitionerDto.getStatus()); // 状态 bizUser.setRemark(userAndPractitionerDto.getRemark()); // 备注 iBizUserService.save(bizUser); - Long userId = bizUser.getUserId(); // 用户id + Long userId = + iBizUserService.getOne(new LambdaQueryWrapper().eq(BizUser::getUserName, userName)).getUserId(); // 用户id // 新增 sys_user_role List roleIds = userAndPractitionerDto.getRoleIds(); BizUserRole bizUserRole; @@ -135,6 +136,7 @@ public class PractitionerAppServiceImpl implements IPractitionerAppService { // 构建查询条件 QueryWrapper queryWrapper = HisQueryUtils.buildQueryWrapper(userAndPractitionerDto, searchKey, new HashSet<>(Arrays.asList("user_name", "nick_name", "py_str", "wb_str")), null); + queryWrapper.orderByDesc("user_id"); IPage userPractitionerPage = practitionerAppAppMapper.getUserPractitionerPage(new Page<>(pageNo, pageSize), queryWrapper); List records = userPractitionerPage.getRecords(); diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationAdviceAppServiceImpl.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationAdviceAppServiceImpl.java index 359007b6..2d4e3795 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationAdviceAppServiceImpl.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/impl/DoctorStationAdviceAppServiceImpl.java @@ -19,7 +19,9 @@ import com.core.common.core.domain.R; import com.core.common.utils.AssignSeqUtil; import com.core.common.utils.MessageUtils; import com.openhis.administration.domain.ChargeItem; +import com.openhis.administration.domain.OrganizationLocation; import com.openhis.administration.service.IChargeItemService; +import com.openhis.administration.service.IOrganizationLocationService; import com.openhis.common.constant.CommonConstants; import com.openhis.common.constant.PromptMsgConstant; import com.openhis.common.enums.*; @@ -59,6 +61,9 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp @Resource IChargeItemService iChargeItemService; + @Resource + IOrganizationLocationService iOrganizationLocationService; + /** * 查询医嘱信息 * @@ -78,7 +83,7 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp IPage adviceBaseInfo = doctorStationAdviceAppMapper.getAdviceBaseInfo(new Page<>(pageNo, pageSize), CommonConstants.TableName.MED_MEDICATION_DEFINITION, CommonConstants.TableName.ADM_DEVICE_DEFINITION, - CommonConstants.TableName.WOR_ACTIVITY_DEFINITION, queryWrapper); + CommonConstants.TableName.WOR_ACTIVITY_DEFINITION, DeviceCategory.SINGLE_USE.getInfo(), queryWrapper); List adviceBaseDtoList = adviceBaseInfo.getRecords(); // 医嘱定义ID集合 List adviceDefinitionIdList = @@ -203,7 +208,14 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp medicationRequest.setPatientId(adviceSaveDto.getPatientId()); medicationRequest.setPractitionerId(adviceSaveDto.getPractitionerId()); medicationRequest.setOrgId(adviceSaveDto.getOrgId()); - medicationRequest.setLocationId(adviceSaveDto.getLocationId()); + // 查询机构位置关系 + OrganizationLocation orgLocByOrgIdAndCategoryCode = iOrganizationLocationService + .getOrgLocByOrgIdAndCategoryCode(adviceSaveDto.getOrgId(), adviceSaveDto.getCategoryCode()); + if (orgLocByOrgIdAndCategoryCode != null) { + // 发放药房 + medicationRequest.setPerformLocation(orgLocByOrgIdAndCategoryCode.getDefLocationId()); + } + // medicationRequest.setLocationId(adviceSaveDto.getLocationId()); // 请求发起的位置 medicationRequest.setEncounterId(adviceSaveDto.getEncounterId()); medicationRequest.setConditionId(adviceSaveDto.getConditionId()); // 诊断id medicationRequest.setTherapyEnum(adviceSaveDto.getTherapyEnum()); @@ -235,7 +247,14 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp deviceRequest.setPatientId(adviceSaveDto.getPatientId()); deviceRequest.setRequesterId(adviceSaveDto.getPractitionerId()); deviceRequest.setOrgId(adviceSaveDto.getOrgId()); - deviceRequest.setLocationId(adviceSaveDto.getLocationId()); + // 查询机构位置关系 + OrganizationLocation orgLocByOrgIdAndCategoryCode = iOrganizationLocationService + .getOrgLocByOrgIdAndCategoryCode(adviceSaveDto.getOrgId(), adviceSaveDto.getCategoryCode()); + if (orgLocByOrgIdAndCategoryCode != null) { + // 发放耗材房 + deviceRequest.setPerformLocation(orgLocByOrgIdAndCategoryCode.getDefLocationId()); + } + // deviceRequest.setLocationId(adviceSaveDto.getLocationId()); 请求发起的位置 deviceRequest.setEncounterId(adviceSaveDto.getEncounterId()); // deviceRequest.setPackageId(adviceSaveDto.getPackageId()); // deviceRequest.setActivityId(adviceSaveDto.getActivityId()); diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/AdviceBaseDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/AdviceBaseDto.java index fff3c1d8..dcea9bdc 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/AdviceBaseDto.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/AdviceBaseDto.java @@ -19,6 +19,11 @@ public class AdviceBaseDto { /** 医嘱类型 */ private Integer adviceType; // 1:药品 , 2: 耗材 , 3:项目 + /** + * 医嘱详细分类 + */ + private String categoryCode; + /** 医嘱定义ID */ @JsonSerialize(using = ToStringSerializer.class) private Long adviceDefinitionId; diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/AdviceSaveDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/AdviceSaveDto.java index 54f84bc6..0c844a0f 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/AdviceSaveDto.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/AdviceSaveDto.java @@ -22,6 +22,11 @@ public class AdviceSaveDto { /** 医嘱类型 */ private Integer adviceType; // 1:药品 , 2: 耗材 , 3:项目 + /** + * 医嘱详细分类 + */ + private String categoryCode; + /** 执行次数 */ private Integer executeNum; // 当医嘱类型为药品时,选填 @@ -68,10 +73,14 @@ public class AdviceSaveDto { @JsonSerialize(using = ToStringSerializer.class) private Long practitionerId; - /** 所属位置 */ + /** 请求发起的位置 */ @JsonSerialize(using = ToStringSerializer.class) private Long locationId; + /** 发放位置 */ + @JsonSerialize(using = ToStringSerializer.class) + private Long performLocation; + /** 所属科室 */ @JsonSerialize(using = ToStringSerializer.class) private Long orgId; @@ -128,6 +137,7 @@ public class AdviceSaveDto { this.categoryEnum = EncounterClass.AMB.getValue(); this.therapyEnum = TherapyTimeType.TEMPORARY.getValue(); this.practitionerId = SecurityUtils.getLoginUser().getPractitionerId(); + this.orgId = SecurityUtils.getLoginUser().getOrgId(); // 开发人科室 } } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/mapper/DoctorStationAdviceAppMapper.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/mapper/DoctorStationAdviceAppMapper.java index 4b9c83af..1eeb50da 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/mapper/DoctorStationAdviceAppMapper.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/mapper/DoctorStationAdviceAppMapper.java @@ -26,12 +26,13 @@ public interface DoctorStationAdviceAppMapper { * @param medicationTableName 药品定义表名 * @param deviceTableName 耗材定义表名 * @param activityTableName 诊疗定义表名 + * @param singleUse 单次消耗类 (耗材只查这类) * @param queryWrapper 查询条件 * @return 医嘱信息 */ IPage getAdviceBaseInfo(@Param("page") Page page, @Param("medicationTableName") String medicationTableName, @Param("deviceTableName") String deviceTableName, - @Param("activityTableName") String activityTableName, + @Param("activityTableName") String activityTableName, @Param("singleUse") String singleUse, @Param(Constants.WRAPPER) QueryWrapper queryWrapper); /** diff --git a/openhis-server/openhis-application/src/main/resources/mapper/doctorstation/DoctorStationAdviceAppMapper.xml b/openhis-server/openhis-application/src/main/resources/mapper/doctorstation/DoctorStationAdviceAppMapper.xml index a60215c2..c3b16886 100644 --- a/openhis-server/openhis-application/src/main/resources/mapper/doctorstation/DoctorStationAdviceAppMapper.xml +++ b/openhis-server/openhis-application/src/main/resources/mapper/doctorstation/DoctorStationAdviceAppMapper.xml @@ -7,6 +7,7 @@