From bbad4ad9d1927ec5878173567aa3eb0d7c038f73 Mon Sep 17 00:00:00 2001 From: liuhongrui Date: Wed, 19 Mar 2025 11:33:27 +0800 Subject: [PATCH 1/7] up --- .../controller/OutpatientInfusionRecordController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 3d3efc8f..e1e7ba64 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 @@ -39,7 +39,7 @@ public class OutpatientInfusionRecordController { * @return 门诊输液的患者列表 */ @GetMapping(value = "/infusion-patient-list") - public R getPatientInfusionRecord(OutpatientInfusionSearchParam outpatientInfusionSearchParam, + public R getOutpatientInfusionPatientList(OutpatientInfusionSearchParam outpatientInfusionSearchParam, @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) { From 2fda4197abe383d1bba6c244ee85d4a97d3fc371 Mon Sep 17 00:00:00 2001 From: liuhongrui Date: Wed, 19 Mar 2025 11:34:50 +0800 Subject: [PATCH 2/7] up --- .../controller/OutpatientInfusionRecordController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 e1e7ba64..59ddd293 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 @@ -36,7 +36,7 @@ public class OutpatientInfusionRecordController { * 查询门诊输液的患者列表 * * @param outpatientInfusionSearchParam 查询参数 - * @return 门诊输液的患者列表 + * @return 返回门诊输液的患者列表 */ @GetMapping(value = "/infusion-patient-list") public R getOutpatientInfusionPatientList(OutpatientInfusionSearchParam outpatientInfusionSearchParam, From b1e560be64edb39aaed41e80997e8ecb87a36177 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8F=B2=E8=8F=B2?= <12704587+yvwen@user.noreply.gitee.com> Date: Wed, 19 Mar 2025 11:37:28 +0800 Subject: [PATCH 3/7] up --- .../infusionrecord/component/api.js | 14 +++++------ .../clinicmanagement/infusionrecord/index.vue | 24 +++++++++---------- 2 files changed, 19 insertions(+), 19 deletions(-) diff --git a/openhis-ui-vue3/src/views/clinicmanagement/infusionrecord/component/api.js b/openhis-ui-vue3/src/views/clinicmanagement/infusionrecord/component/api.js index f80b2b55..f72a85c7 100644 --- a/openhis-ui-vue3/src/views/clinicmanagement/infusionrecord/component/api.js +++ b/openhis-ui-vue3/src/views/clinicmanagement/infusionrecord/component/api.js @@ -1,18 +1,18 @@ import request from '@/utils/request' // 待执行输液记录查询 -export function listInfusionRecord(query) { +export function listInfusionRecord() { return request({ url: '/outpatient-manage/infusion/infusion-wait-perform-record', - method: 'get', - params: query + method: 'get' }) } // 病人列表 -export function listPatients() { +export function listPatients(query) { return request({ - url: '/outpatient-manage/infusion/patient-infusion', + url: '/outpatient-manage/infusion/infusion-patient-list', method: 'get', + params: query }) } @@ -25,10 +25,10 @@ export function updateInfusionRecord(data) { }) } - // 查询单个患者门诊输液记录查询 + // 点击患者,查询该患者的输液记录 export function listPatientInfusionRecord(query) { return request({ - url: '/outpatient-manage/infusion/patient-infusion', + url: '/outpatient-manage/infusion/patient-infusion-record', method: 'get', params: query }) diff --git a/openhis-ui-vue3/src/views/clinicmanagement/infusionrecord/index.vue b/openhis-ui-vue3/src/views/clinicmanagement/infusionrecord/index.vue index 9f9b7067..b9f61124 100644 --- a/openhis-ui-vue3/src/views/clinicmanagement/infusionrecord/index.vue +++ b/openhis-ui-vue3/src/views/clinicmanagement/infusionrecord/index.vue @@ -115,12 +115,12 @@ const currentRow = ref(null); const dateRange = ref([]); const historyRecordsList = ref([]) const patientList = ref([]); -const infusionList = ref([]); -// const infusionList = ref([ -// { groupId: 1, executionCount: 2, doctorId_dictText: '张三', patientName: '李四', genderEnum_enumText: '男', status: '123456789012345678', medicationInformation: '药品A', medicationAntity: 10, rateCode: '每日一次', dose: '10mg', speed: '50ml/h', orgId_dictText: '内科', medicationStatusEnum_enumText: '已发放', skinTestFlag_enumText: '是', clinicalStatusEnum_enumText: '阴性' }, -// { groupId: 1, executionCount: 2, doctorId_dictText: '张三', patientName: '王五', genderEnum_enumText: '女', status: '123456789012345679', medicationInformation: '药品A', medicationAntity: 10, rateCode: '每日一次', dose: '10mg', speed: '50ml/h', orgId_dictText: '内科', medicationStatusEnum_enumText: '已发放', skinTestFlag_enumText: '是', clinicalStatusEnum_enumText: '阴性' }, -// { groupId: 2, executionCount: 1, doctorId_dictText: '李六', patientName: '赵七', genderEnum_enumText: '男', status: '123456789012345680', medicationInformation: '药品B', medicationAntity: 5, rateCode: '每日两次', dose: '5mg', speed: '30ml/h', orgId_dictText: '外科', medicationStatusEnum_enumText: '已发放', skinTestFlag_enumText: '否', clinicalStatusEnum_enumText: '无' }, -// ]); +// const infusionList = ref([]); +const infusionList = ref([ + { groupId: 1, executionCount: 2, doctorId_dictText: '张三', patientName: '李四', genderEnum_enumText: '男', status: '123456789012345678', medicationInformation: '药品A', medicationAntity: 10, rateCode: '每日一次', dose: '10mg', speed: '50ml/h', orgId_dictText: '内科', medicationStatusEnum_enumText: '已发放', flagText: '是', clinicalStatusEnum_enumText: '阴性' }, + { groupId: 1, executionCount: 2, doctorId_dictText: '张三', patientName: '王五', genderEnum_enumText: '女', status: '123456789012345679', medicationInformation: '药品A', medicationAntity: 10, rateCode: '每日一次', dose: '10mg', speed: '50ml/h', orgId_dictText: '内科', medicationStatusEnum_enumText: '已发放', flagText: '是', clinicalStatusEnum_enumText: '阴性' }, + { groupId: 2, executionCount: 1, doctorId_dictText: '李六', patientName: '赵七', genderEnum_enumText: '男', status: '123456789012345680', medicationInformation: '药品B', medicationAntity: 5, rateCode: '每日两次', dose: '5mg', speed: '30ml/h', orgId_dictText: '外科', medicationStatusEnum_enumText: '已发放', flagText: '否', clinicalStatusEnum_enumText: '无' }, + ]); const ids = ref([]); @@ -193,30 +193,30 @@ function handleSelectionChange(selection) { }); // 获取当前选中的 groupId 和 medicationId 集合 const currentGroupIds = new Set(selection.map(item => item.groupId)); -// const currentMedicationIds = new Set(selection.map(item => item.medicationId)); + const currentMedicationIds = new Set(selection.map(item => item.medicationId)); // 更新 selectedGroupIds 和 selectedMedicationIds selection.forEach(item => { const groupId = item.groupId; const medicationId = item.medicationId; // 检查 groupId 和 medicationId 是否同时存在 - if (selectedGroupIds.value.has(groupId) ) { + if (selectedGroupIds.value.has(groupId) && selectedMedicationIds.value.has(medicationId)) { // 如果都存在,则移除它们 selectedGroupIds.value.delete(groupId); - // selectedMedicationIds.value.delete(medicationId); + selectedMedicationIds.value.delete(medicationId); } else { // 否则添加它们 selectedGroupIds.value.add(groupId); - // selectedMedicationIds.value.add(medicationId); + selectedMedicationIds.value.add(medicationId); } }); // 动态更新表格行的选中状态 infusionList.value.forEach(row => { // 检查当前行的 groupId 和 medicationId 是否同时在 selectedGroupIds 和 selectedMedicationIds 中 - const isSelected = selectedGroupIds.value.has(row.groupId) + const isSelected = selectedGroupIds.value.has(row.groupId) && selectedMedicationIds.value.has(row.medicationId); tableRef.value.toggleRowSelection(row, isSelected); }); console.log('Current selectedGroupIds:', selectedGroupIds.value); -// console.log('Current selectedMedicationIds:', selectedMedicationIds.value); + console.log('Current selectedMedicationIds:', selectedMedicationIds.value); console.log('Current selectedItems:', selectedItems.value); } function handleSubmitCanel(){ From 21d21784f9afc2431883c5bc72212d79d780a7b5 Mon Sep 17 00:00:00 2001 From: "Wang.Huan" Date: Wed, 19 Mar 2025 15:37:20 +0800 Subject: [PATCH 4/7] =?UTF-8?q?=E4=BF=9D=E5=AD=98=E5=8C=BB=E5=98=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../IDoctorStationAdviceAppService.java | 11 ++ .../DoctorStationAdviceAppServiceImpl.java | 168 +++++++++++++++++- .../DoctorStationAdviceController.java | 19 +- .../web/doctorstation/dto/AdvicePriceDto.java | 4 + .../web/doctorstation/dto/AdviceSaveDto.java | 34 +++- .../assembler/InventoryManageAssembler.java | 2 +- .../DoctorStationAdviceAppMapper.xml | 1 + .../common/enums/ChargeItemContext.java | 16 +- .../com/openhis/common/enums/ItemType.java | 4 +- .../administration/domain/ChargeItem.java | 2 +- .../medication/domain/MedicationRequest.java | 2 +- .../workflow/domain/DeviceRequest.java | 2 +- .../workflow/domain/ServiceRequest.java | 2 +- 13 files changed, 241 insertions(+), 26 deletions(-) diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/IDoctorStationAdviceAppService.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/IDoctorStationAdviceAppService.java index 6af98657..8243acb7 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/IDoctorStationAdviceAppService.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/appservice/IDoctorStationAdviceAppService.java @@ -1,7 +1,10 @@ package com.openhis.web.doctorstation.appservice; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.core.common.core.domain.R; import com.openhis.web.doctorstation.dto.AdviceBaseDto; +import com.openhis.web.doctorstation.dto.AdviceSaveDto; +import com.openhis.web.doctorstation.dto.AdviceSaveParam; /** * 医生站-医嘱/处方 应用Service @@ -21,4 +24,12 @@ public interface IDoctorStationAdviceAppService { IPage getAdviceBaseInfo(AdviceBaseDto adviceBaseDto, String searchKey, Long locationId, Integer pageNo, Integer pageSize); + /** + * 门诊保存医嘱 + * + * @param adviceSaveParam 医嘱表单信息 + * @return 结果 + */ + R saveAdvice(AdviceSaveParam adviceSaveParam); + } 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 ffa188be..b2b36c76 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 @@ -1,5 +1,7 @@ package com.openhis.web.doctorstation.appservice.impl; +import java.math.BigDecimal; +import java.math.RoundingMode; import java.util.ArrayList; import java.util.Arrays; import java.util.HashSet; @@ -13,16 +15,25 @@ import org.springframework.stereotype.Service; 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.utils.AssignSeqUtil; +import com.core.common.utils.MessageUtils; +import com.openhis.administration.domain.ChargeItem; +import com.openhis.administration.service.IChargeItemService; import com.openhis.common.constant.CommonConstants; -import com.openhis.common.enums.ActivityType; -import com.openhis.common.enums.ConditionCode; +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.medication.domain.MedicationRequest; +import com.openhis.medication.service.IMedicationRequestService; import com.openhis.web.doctorstation.appservice.IDoctorStationAdviceAppService; -import com.openhis.web.doctorstation.dto.AdviceBaseDto; -import com.openhis.web.doctorstation.dto.AdviceInventoryDto; -import com.openhis.web.doctorstation.dto.AdvicePriceDto; +import com.openhis.web.doctorstation.dto.*; import com.openhis.web.doctorstation.mapper.DoctorStationAdviceAppMapper; +import com.openhis.workflow.domain.DeviceRequest; +import com.openhis.workflow.domain.ServiceRequest; +import com.openhis.workflow.service.IDeviceRequestService; +import com.openhis.workflow.service.IServiceRequestService; /** * 医生站-医嘱/处方 应用实现类 @@ -30,9 +41,24 @@ import com.openhis.web.doctorstation.mapper.DoctorStationAdviceAppMapper; @Service public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAppService { + @Resource + AssignSeqUtil assignSeqUtil; + @Resource DoctorStationAdviceAppMapper doctorStationAdviceAppMapper; + @Resource + IMedicationRequestService iMedicationRequestService; + + @Resource + IDeviceRequestService iDeviceRequestService; + + @Resource + IServiceRequestService iServiceRequestService; + + @Resource + IChargeItemService iChargeItemService; + /** * 查询医嘱信息 * @@ -63,6 +89,8 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp // 医嘱库存集合 List adviceInventory = doctorStationAdviceAppMapper.getAdviceInventory(locationId, adviceDefinitionIdList, CommonConstants.SqlCondition.ABOUT_INVENTORY_TABLE_STR); + // TODO: 预减库存待处理 + // 费用定价子表信息 List childCharge = doctorStationAdviceAppMapper .getChildCharge(ConditionCode.UNIT_PRODUCT_BATCH_NUM.getInfo(), chargeItemDefinitionIdList); @@ -132,4 +160,134 @@ public class DoctorStationAdviceAppServiceImpl implements IDoctorStationAdviceAp return adviceBaseInfo; } + /** + * 门诊保存医嘱 + * + * @param adviceSaveParam 医嘱表单信息 + * @return 结果 + */ + @Override + public R saveAdvice(AdviceSaveParam adviceSaveParam) { + // 医嘱分类信息 + List adviceSaveList = adviceSaveParam.getAdviceSaveList(); + // TODO: 保存医嘱时规则校验;待做 + // 药品 + List medicineList = adviceSaveList.stream() + .filter(e -> ItemType.MEDICINE.getValue().equals(e.getAdviceType())).collect(Collectors.toList()); + // 耗材 + List deviceList = adviceSaveList.stream() + .filter(e -> ItemType.DEVICE.getValue().equals(e.getAdviceType())).collect(Collectors.toList()); + // 诊疗活动 + List activityList = adviceSaveList.stream() + .filter(e -> ItemType.ACTIVITY.getValue().equals(e.getAdviceType())).collect(Collectors.toList()); + // 生成处方号 , 只有开了药品才有处方号 + String prescriptionNo = ""; + if (medicineList.size() > 0) { + prescriptionNo = assignSeqUtil.getSeq(AssignSeqEnum.PRESCRIPTION_NO.getPrefix(), 8); + } + // 保存药品请求 + List medicationRequestList = new ArrayList<>(); + MedicationRequest medicationRequest; + for (AdviceSaveDto adviceSaveDto : medicineList) { + medicationRequest = new MedicationRequest(); + medicationRequest.setBusNo(assignSeqUtil.getSeq(AssignSeqEnum.MEDICATION_RES_NO.getPrefix(), 8)); + medicationRequest.setPrescriptionNo(prescriptionNo); + medicationRequest.setQuantity(adviceSaveDto.getQuantity()); + medicationRequest.setExecuteNum(adviceSaveDto.getExecuteNum()); + medicationRequest.setUnitCode(adviceSaveDto.getUnitCode()); + medicationRequest.setLotNumber(adviceSaveDto.getLotNumber()); + medicationRequest.setStatusEnum(adviceSaveDto.getStatusEnum()); + medicationRequest.setCategoryEnum(adviceSaveDto.getCategoryEnum()); + medicationRequest.setMedicationId(adviceSaveDto.getAdviceDefinitionId());// 医嘱定义id + medicationRequest.setPatientId(adviceSaveDto.getPatientId()); + medicationRequest.setPractitionerId(adviceSaveDto.getPractitionerId()); + medicationRequest.setOrgId(adviceSaveDto.getOrgId()); + medicationRequest.setLocationId(adviceSaveDto.getLocationId()); + medicationRequest.setEncounterId(adviceSaveDto.getEncounterId()); + medicationRequest.setTherapyEnum(adviceSaveDto.getTherapyEnum()); + medicationRequest.setMethodCode(adviceSaveDto.getMethodCode()); + medicationRequest.setRateCode(adviceSaveDto.getRateCode()); + medicationRequest.setDose(adviceSaveDto.getDose()); + medicationRequest.setDoseUnitCode(adviceSaveDto.getDoseUnitCode()); + // medicationRequest.setPackageId(adviceSaveDto.getPackageId()); + + medicationRequestList.add(medicationRequest); + } + iMedicationRequestService.saveBatch(medicationRequestList); + + // 保存耗材请求 + List deviceRequestList = new ArrayList<>(); + DeviceRequest deviceRequest; + for (AdviceSaveDto adviceSaveDto : deviceList) { + deviceRequest = new DeviceRequest(); + deviceRequest.setBusNo(assignSeqUtil.getSeq(AssignSeqEnum.DEVICE_RES_NO.getPrefix(), 8)); + deviceRequest.setPrescriptionNo(prescriptionNo); + deviceRequest.setQuantity(adviceSaveDto.getQuantity()); + deviceRequest.setUnitCode(adviceSaveDto.getUnitCode()); + deviceRequest.setLotNumber(adviceSaveDto.getLotNumber()); + deviceRequest.setStatusEnum(adviceSaveDto.getStatusEnum()); + deviceRequest.setCategoryEnum(adviceSaveDto.getCategoryEnum()); + deviceRequest.setDeviceDefId(adviceSaveDto.getAdviceDefinitionId());// 耗材定义id + deviceRequest.setPatientId(adviceSaveDto.getPatientId()); + deviceRequest.setRequesterId(adviceSaveDto.getPractitionerId()); + deviceRequest.setOrgId(adviceSaveDto.getOrgId()); + deviceRequest.setLocationId(adviceSaveDto.getLocationId()); + deviceRequest.setEncounterId(adviceSaveDto.getEncounterId()); + // deviceRequest.setPackageId(adviceSaveDto.getPackageId()); + // deviceRequest.setActivityId(adviceSaveDto.getActivityId()); + + deviceRequestList.add(deviceRequest); + } + iDeviceRequestService.saveBatch(deviceRequestList); + + // 保存诊疗项目请求 + List serviceRequestList = new ArrayList<>(); + ServiceRequest serviceRequest; + for (AdviceSaveDto adviceSaveDto : activityList) { + serviceRequest = new ServiceRequest(); + serviceRequest.setBusNo(assignSeqUtil.getSeq(AssignSeqEnum.SERVICE_RES_NO.getPrefix(), 8)); + serviceRequest.setPrescriptionNo(prescriptionNo); + serviceRequest.setBasedOnTable(CommonConstants.TableName.WOR_ACTIVITY_DEFINITION); + serviceRequest.setBasedOnId(adviceSaveDto.getAdviceDefinitionId()); + serviceRequest.setQuantity(adviceSaveDto.getQuantity()); + serviceRequest.setUnitCode(adviceSaveDto.getUnitCode()); + serviceRequest.setStatusEnum(adviceSaveDto.getStatusEnum()); + serviceRequest.setCategoryEnum(adviceSaveDto.getCategoryEnum()); + serviceRequest.setCategoryEnum(adviceSaveDto.getCategoryEnum()); + serviceRequest.setActivityId(adviceSaveDto.getAdviceDefinitionId());// 诊疗定义id + serviceRequest.setPatientId(adviceSaveDto.getPatientId()); + serviceRequest.setRequesterId(adviceSaveDto.getPractitionerId()); + serviceRequest.setEncounterId(adviceSaveDto.getEncounterId()); + + serviceRequestList.add(serviceRequest); + } + iServiceRequestService.saveBatch(serviceRequestList); + + // 保存费用项管理 + List chargeItemList = new ArrayList<>(); + ChargeItem chargeItem; + for (AdviceSaveDto adviceSaveDto : adviceSaveList) { + chargeItem = new ChargeItem(); + chargeItem.setStatusEnum(ChargeItemStatus.PLANNED.getValue()); + chargeItem.setBusNo(assignSeqUtil.getSeq(AssignSeqEnum.CHARGE_ITEM_NO.getPrefix(), 8)); + chargeItem.setPrescriptionNo(prescriptionNo); + chargeItem.setPatientId(adviceSaveDto.getPatientId()); + chargeItem.setContextEnum(adviceSaveDto.getAdviceType()); + chargeItem.setEncounterId(adviceSaveDto.getEncounterId()); + chargeItem.setQuantityValue(adviceSaveDto.getQuantity()); // 数量 + chargeItem.setQuantityUnit(adviceSaveDto.getUnitCode()); // 单位 + chargeItem.setUnitPrice(adviceSaveDto.getUnitPrice()); // 单价 + chargeItem + .setTotalPrice((new BigDecimal(adviceSaveDto.getQuantity()).multiply(adviceSaveDto.getUnitPrice())) + .setScale(4, RoundingMode.HALF_UP)); // 总价 + chargeItem.setDefinitionId(adviceSaveDto.getDefinitionId()); + chargeItem.setDefDetailId(adviceSaveDto.getDefinitionDetailId()); + + chargeItemList.add(chargeItem); + } + iChargeItemService.saveBatch(chargeItemList); + + return R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"门诊医嘱"})); + } + } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/controller/DoctorStationAdviceController.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/controller/DoctorStationAdviceController.java index 4817d37a..78d61f83 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/controller/DoctorStationAdviceController.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/controller/DoctorStationAdviceController.java @@ -3,14 +3,12 @@ */ package com.openhis.web.doctorstation.controller; -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.doctorstation.appservice.IDoctorStationAdviceAppService; import com.openhis.web.doctorstation.dto.AdviceBaseDto; +import com.openhis.web.doctorstation.dto.AdviceSaveParam; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; @@ -39,11 +37,22 @@ public class DoctorStationAdviceController { @GetMapping(value = "/advice-base-info") public R getAdviceBaseInfo(AdviceBaseDto adviceBaseDto, @RequestParam(value = "searchKey", defaultValue = "") String searchKey, - @RequestParam(value = "locationId",required = false) Long locationId, + @RequestParam(value = "locationId", required = false) Long locationId, @RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) { return R.ok( iDoctorStationAdviceAppService.getAdviceBaseInfo(adviceBaseDto, searchKey, locationId, pageNo, pageSize)); } + /** + * 门诊保存医嘱 + * + * @param adviceSaveParam 医嘱表单信息 + * @return 结果 + */ + @PostMapping(value = "/save-advice") + public R saveAdvice(@RequestBody AdviceSaveParam adviceSaveParam) { + return iDoctorStationAdviceAppService.saveAdvice(adviceSaveParam); + } + } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/AdvicePriceDto.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/AdvicePriceDto.java index 1e237789..02c3f0fb 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/AdvicePriceDto.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/doctorstation/dto/AdvicePriceDto.java @@ -25,6 +25,10 @@ public class AdvicePriceDto { @JsonSerialize(using = ToStringSerializer.class) private Long definitionId; + /** 费用定价子表ID */ + @JsonSerialize(using = ToStringSerializer.class) + private Long definitionDetailId; + /** 命中条件 */ private String conditionCode; 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 e102b8ec..8258b038 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 @@ -1,9 +1,12 @@ package com.openhis.web.doctorstation.dto; +import java.math.BigDecimal; + import com.fasterxml.jackson.databind.annotation.JsonSerialize; import com.fasterxml.jackson.databind.ser.std.ToStringSerializer; import com.openhis.common.enums.EncounterClass; import com.openhis.common.enums.RequestStatus; +import com.openhis.common.enums.TherapyTimeType; import lombok.Data; import lombok.experimental.Accessors; @@ -16,7 +19,7 @@ import lombok.experimental.Accessors; public class AdviceSaveDto { /** 医嘱类型 */ - private String adviceType; // 1:药品 , 2: 耗材 , 3:项目 + private Integer adviceType; // 1:药品 , 2: 耗材 , 3:项目 /** 执行次数 */ private Integer executeNum; // 当医嘱类型为药品时,选填 @@ -30,6 +33,17 @@ public class AdviceSaveDto { /** 请求单位编码 */ private String unitCode; + /** 单价 */ + private BigDecimal unitPrice; + + /** 费用定价主表ID */ + @JsonSerialize(using = ToStringSerializer.class) + private Long definitionId; + + /** 费用定价子表ID */ + @JsonSerialize(using = ToStringSerializer.class) + private Long definitionDetailId; + /** 产品批号 */ private String lotNumber; @@ -65,6 +79,21 @@ public class AdviceSaveDto { @JsonSerialize(using = ToStringSerializer.class) private Long encounterId; + /** 治疗类型 */ + private Integer therapyEnum; + + /** 用法 */ + private String methodCode; + + /** 用药频次 */ + private String rateCode; + + /** 单次剂量 */ + private BigDecimal dose; + + /** 剂量单位 */ + private String doseUnitCode; + /** 组套id */ @JsonSerialize(using = ToStringSerializer.class) private Long packageId; // 该参数先预留出来 @@ -79,6 +108,9 @@ public class AdviceSaveDto { public AdviceSaveDto() { this.statusEnum = RequestStatus.DRAFT.getValue(); this.categoryEnum = EncounterClass.AMB.getValue(); + this.therapyEnum = TherapyTimeType.TEMPORARY.getValue(); + // TODO: 应该从当前登录账号获取参与者id,现在没有 + // this.practitionerId } } diff --git a/openhis-server/openhis-application/src/main/java/com/openhis/web/inventorymanage/assembler/InventoryManageAssembler.java b/openhis-server/openhis-application/src/main/java/com/openhis/web/inventorymanage/assembler/InventoryManageAssembler.java index 39773586..2ee16b50 100644 --- a/openhis-server/openhis-application/src/main/java/com/openhis/web/inventorymanage/assembler/InventoryManageAssembler.java +++ b/openhis-server/openhis-application/src/main/java/com/openhis/web/inventorymanage/assembler/InventoryManageAssembler.java @@ -48,7 +48,7 @@ public class InventoryManageAssembler { // 收费项id:供应物品id .setProductId(supplyItemDetailDto.getItemId()) // 物品数量 - .setQuantityValue(supplyItemDetailDto.getItemQuantity().longValue()) + .setQuantityValue(supplyItemDetailDto.getItemQuantity().intValue()) // 物品单位 .setQuantityUnit(supplyItemDetailDto.getItemUnit()) // 原价 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 7c378de7..4b523c32 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 @@ -162,6 +162,7 @@