From a8a205aa481aae290516fb142b69e01a1148b560 Mon Sep 17 00:00:00 2001 From: chenqi Date: Tue, 31 Mar 2026 16:35:34 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E9=97=A8=E8=AF=8A?= =?UTF-8?q?=E5=8C=BB=E7=94=9F=E7=AB=99=E6=89=8B=E6=9C=AF=E7=94=B3=E8=AF=B7?= =?UTF-8?q?=E5=8D=95=E4=BF=9D=E5=AD=98=E5=90=8E=E6=9C=AA=E7=94=9F=E6=88=90?= =?UTF-8?q?=E6=89=8B=E6=9C=AF=E5=8C=BB=E5=98=B1=20(#318)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在 RequestFormManageAppServiceImpl.saveRequestForm 方法中添加手术医嘱生成逻辑 - 当 typeCode 为 PROCEDURE(24) 时,额外生成 ServiceRequest 手术医嘱 - 同时生成对应的 ChargeItem 收费项目 - 医嘱状态设置为 DRAFT(待签发) - 关联申请单的 prescriptionNo 处方号 --- .../impl/RequestFormManageAppServiceImpl.java | 47 +++++++++++++++++++ 1 file changed, 47 insertions(+) diff --git a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/appservice/impl/RequestFormManageAppServiceImpl.java b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/appservice/impl/RequestFormManageAppServiceImpl.java index c3b70ca7..6aa2e7f8 100644 --- a/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/appservice/impl/RequestFormManageAppServiceImpl.java +++ b/openhis-server-new/openhis-application/src/main/java/com/openhis/web/regdoctorstation/appservice/impl/RequestFormManageAppServiceImpl.java @@ -28,6 +28,7 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.math.BigDecimal; import java.util.Date; import java.util.List; import java.util.stream.Collectors; @@ -211,6 +212,52 @@ public class RequestFormManageAppServiceImpl implements IRequestFormManageAppSer } } + // 如果是手术申请单,需要额外生成手术医嘱 + if (ActivityDefCategory.PROCEDURE.getCode().equals(typeCode)) { + // 生成手术医嘱 + ServiceRequest surgeryServiceRequest = new ServiceRequest(); + surgeryServiceRequest.setStatusEnum(RequestStatus.DRAFT.getValue()); + surgeryServiceRequest.setBusNo(String.format("%04d", (int) (Math.random() * 10000))); + surgeryServiceRequest.setGenerateSourceEnum(GenerateSource.DOCTOR_PRESCRIPTION.getValue()); + surgeryServiceRequest.setPrescriptionNo(prescriptionNo); + surgeryServiceRequest.setTherapyEnum(TherapyTimeType.TEMPORARY.getValue()); + surgeryServiceRequest.setQuantity(BigDecimal.valueOf(1)); + surgeryServiceRequest.setUnitCode("次"); + surgeryServiceRequest.setCategoryEnum(4); // 4-手术 + // 从 activityList 中获取第一个手术 ID 作为活动 ID + if (!activityList.isEmpty()) { + surgeryServiceRequest.setActivityId(activityList.get(0).getAdviceDefinitionId()); + } + surgeryServiceRequest.setPatientId(patientId); + surgeryServiceRequest.setRequesterId(practitionerId); + surgeryServiceRequest.setEncounterId(encounterId); + surgeryServiceRequest.setAuthoredTime(curDate); + surgeryServiceRequest.setOrgId(orgId); + iServiceRequestService.save(surgeryServiceRequest); + + // 生成手术收费项目 + ChargeItem surgeryChargeItem = new ChargeItem(); + surgeryChargeItem.setStatusEnum(ChargeItemStatus.DRAFT.getValue()); + surgeryChargeItem.setBusNo(AssignSeqEnum.CHARGE_ITEM_NO.getPrefix().concat(surgeryServiceRequest.getBusNo())); + surgeryChargeItem.setGenerateSourceEnum(GenerateSource.DOCTOR_PRESCRIPTION.getValue()); + surgeryChargeItem.setPatientId(patientId); + surgeryChargeItem.setContextEnum(3); // 3-诊疗 + surgeryChargeItem.setEncounterId(encounterId); + surgeryChargeItem.setEntererId(practitionerId); + surgeryChargeItem.setEnteredDate(curDate); + surgeryChargeItem.setServiceTable(CommonConstants.TableName.WOR_SERVICE_REQUEST); + surgeryChargeItem.setServiceId(surgeryServiceRequest.getId()); + surgeryChargeItem.setProductTable(CommonConstants.TableName.WOR_ACTIVITY_DEFINITION); + if (!activityList.isEmpty()) { + surgeryChargeItem.setProductId(activityList.get(0).getAdviceDefinitionId()); + } + surgeryChargeItem.setAccountId(activityList.isEmpty() ? null : activityList.get(0).getAccountId()); + surgeryChargeItem.setRequestingOrgId(orgId); + surgeryChargeItem.setQuantityValue(BigDecimal.valueOf(1)); + surgeryChargeItem.setQuantityUnit("次"); + iChargeItemService.save(surgeryChargeItem); + } + return R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00002, new Object[] {"申请单"})); }