From 376ddd46ff4c342cafde772db3cfbd134ad254fc Mon Sep 17 00:00:00 2001 From: wangjian963 <15215920+aprilry@user.noreply.gitee.com> Date: Mon, 8 Jun 2026 12:51:54 +0800 Subject: [PATCH] =?UTF-8?q?595=20=E3=80=90=E4=BD=8F=E9=99=A2=E6=8A=A4?= =?UTF-8?q?=E5=A3=AB=E7=AB=99-=E5=8C=BB=E5=98=B1=E6=A0=A1=E5=AF=B9?= =?UTF-8?q?=E3=80=91=E5=8C=BB=E5=98=B1=E6=A0=A1=E5=AF=B9=E6=A8=A1=E5=9D=97?= =?UTF-8?q?=E5=88=97=E8=A1=A8=E5=AD=97=E6=AE=B5=E7=BC=BA=E5=A4=B1=E4=B8=A5?= =?UTF-8?q?=E9=87=8D=EF=BC=8C=E4=B8=8E=E5=8C=BB=E7=94=9F=E7=AB=99=E5=8C=BB?= =?UTF-8?q?=E5=98=B1=E8=A6=81=E7=B4=A0=E4=B8=8D=E4=B8=80=E8=87=B4=EF=BC=8C?= =?UTF-8?q?=E5=AD=98=E5=9C=A8=E6=A0=B8=E5=AF=B9=E5=AE=89=E5=85=A8=E9=9A=90?= =?UTF-8?q?=E6=82=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/AdviceProcessAppServiceImpl.java | 62 +++++++++ .../dto/InpatientAdviceDto.java | 36 ++++++ .../AdviceProcessAppMapper.xml | 18 ++- .../components/prescriptionList.vue | 118 +++++++++++++++--- .../medicalOrderProofread/index.vue | 6 +- 5 files changed, 215 insertions(+), 25 deletions(-) diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/inhospitalnursestation/appservice/impl/AdviceProcessAppServiceImpl.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/inhospitalnursestation/appservice/impl/AdviceProcessAppServiceImpl.java index 72eded6ac..471f51875 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/inhospitalnursestation/appservice/impl/AdviceProcessAppServiceImpl.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/inhospitalnursestation/appservice/impl/AdviceProcessAppServiceImpl.java @@ -230,6 +230,68 @@ public class AdviceProcessAppServiceImpl implements IAdviceProcessAppService { if (e.getBirthDate() != null) { e.setAge(AgeCalculatorUtil.getAge(e.getBirthDate())); } + + // ---------- Bug #595: 医嘱校对列表计算字段 ---------- + + // 单次剂量:剂量 + 单位 + if (e.getDose() != null) { + String doseStr = e.getDose().stripTrailingZeros().toPlainString(); + String unitStr = e.getDoseUnitCode_dictText() != null ? e.getDoseUnitCode_dictText() : ""; + e.setSingleDose(doseStr + unitStr); + } + + // 总量:剂量 × 数量 + 单位(仅药品医嘱) + if (e.getDose() != null && e.getQuantity() != null) { + BigDecimal total = e.getDose().multiply(BigDecimal.valueOf(e.getQuantity())); + String totalStr = total.stripTrailingZeros().toPlainString(); + String unitStr = e.getUnitCode_dictText() != null ? e.getUnitCode_dictText() : ""; + e.setTotalAmount(totalStr + unitStr); + } else if (e.getQuantity() != null) { + String unitStr = e.getUnitCode_dictText() != null ? e.getUnitCode_dictText() : ""; + e.setTotalAmount(e.getQuantity() + unitStr); + } + + // 频次/用法组合 + StringBuilder freqBuilder = new StringBuilder(); + if (e.getRateCode_dictText() != null && !e.getRateCode_dictText().isEmpty()) { + freqBuilder.append(e.getRateCode_dictText()); + } + if (e.getMethodCode_dictText() != null && !e.getMethodCode_dictText().isEmpty()) { + if (freqBuilder.length() > 0) freqBuilder.append(" "); + freqBuilder.append(e.getMethodCode_dictText()); + } + e.setFrequencyUsage(freqBuilder.length() > 0 ? freqBuilder.toString() : null); + + // 开嘱医生 + e.setOrderingDoctor(e.getRequesterId_dictText() != null + ? e.getRequesterId_dictText() : e.getAdmittingDoctorName()); + + // 皮试状态 + 高亮 + if (e.getSkinTestFlag() != null && e.getSkinTestFlag() == 1) { + e.setSkinTestStatus("需皮试"); + e.setSkinTestHighlight(true); + } else if (e.getSkinTestFlag() != null && e.getSkinTestFlag() == 2) { + e.setSkinTestStatus("皮试通过"); + e.setSkinTestHighlight(false); + } else { + e.setSkinTestStatus("无需"); + e.setSkinTestHighlight(false); + } + + // 注射药品标记 + e.setIsInjection(e.getInjectFlag() != null && e.getInjectFlag() == 1); + + // 停嘱医生 + e.setStopperName(e.getStopperName()); + + // 停嘱时间 + e.setStopTime(e.getEndTime()); + + // 医嘱号 + e.setOrderNo(e.getRequestId() != null ? e.getRequestId().toString() : null); + + // 诊断(行级) + e.setDiagnosis(e.getConditionNames()); }); // 获取医嘱列表 diff --git a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/inhospitalnursestation/dto/InpatientAdviceDto.java b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/inhospitalnursestation/dto/InpatientAdviceDto.java index 1d4565be8..6c101d621 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/inhospitalnursestation/dto/InpatientAdviceDto.java +++ b/healthlink-his-server/healthlink-his-application/src/main/java/com/healthlink/his/web/inhospitalnursestation/dto/InpatientAdviceDto.java @@ -259,4 +259,40 @@ public class InpatientAdviceDto { /** 发药状态 */ private Integer dispenseStatus; private String dispenseStatus_enumText; + + // ========== Bug #595 计算展示字段 ========== + + /** 单次剂量(格式化:剂量+单位) */ + private String singleDose; + + /** 总量(格式化:剂量×数量+单位) */ + private String totalAmount; + + /** 频次/用法组合(如:tid 静滴) */ + private String frequencyUsage; + + /** 开嘱医生 */ + private String orderingDoctor; + + /** 皮试状态文本(需皮试/皮试通过/无需) */ + private String skinTestStatus; + + /** 皮试高亮标记(需皮试时为true) */ + private Boolean skinTestHighlight; + + /** 是否注射药品 */ + private Boolean isInjection; + + /** 停嘱医生 */ + private String stopperName; + + /** 停嘱时间 */ + @JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "yyyy-MM-dd HH:mm:ss") + private Date stopTime; + + /** 医嘱号 */ + private String orderNo; + + /** 诊断(行级展示) */ + private String diagnosis; } diff --git a/healthlink-his-server/healthlink-his-application/src/main/resources/mapper/inhospitalnursestation/AdviceProcessAppMapper.xml b/healthlink-his-server/healthlink-his-application/src/main/resources/mapper/inhospitalnursestation/AdviceProcessAppMapper.xml index 3888151bb..0b66034f6 100755 --- a/healthlink-his-server/healthlink-his-application/src/main/resources/mapper/inhospitalnursestation/AdviceProcessAppMapper.xml +++ b/healthlink-his-server/healthlink-his-application/src/main/resources/mapper/inhospitalnursestation/AdviceProcessAppMapper.xml @@ -154,7 +154,11 @@ ii.account_id AS account_id, ii.performer_check_id, ii.category_code, - ii.dispense_status + ii.dispense_status, + ii.unit_price, + ii.total_price, + ii.stopper_id, + ii.stopper_name FROM (( SELECT DISTINCT T1.encounter_id, T1.tenant_id, #{medMedicationRequest} AS advice_table, @@ -199,7 +203,11 @@ personal_account.balance_amount, personal_account.id AS account_id, T2.category_code, - mmd.status_enum AS dispense_status + mmd.status_enum AS dispense_status, + NULL::numeric AS unit_price, + NULL::numeric AS total_price, + NULL::bigint AS stopper_id, + NULL::varchar AS stopper_name FROM med_medication_request AS T1 LEFT JOIN med_medication_definition AS T2 ON T2.id = T1.medication_id @@ -341,7 +349,11 @@ personal_account.balance_amount, personal_account.id AS account_id, T2.category_code, - NULL::integer AS dispense_status + NULL::integer AS dispense_status, + NULL::numeric AS unit_price, + NULL::numeric AS total_price, + NULL::bigint AS stopper_id, + NULL::varchar AS stopper_name FROM wor_service_request AS T1 LEFT JOIN wor_activity_definition AS T2 ON T2.id = T1.activity_id diff --git a/healthlink-his-ui/src/views/inpatientNurse/medicalOrderProofread/components/prescriptionList.vue b/healthlink-his-ui/src/views/inpatientNurse/medicalOrderProofread/components/prescriptionList.vue index 8c90d2e5d..54bd02ce7 100755 --- a/healthlink-his-ui/src/views/inpatientNurse/medicalOrderProofread/components/prescriptionList.vue +++ b/healthlink-his-ui/src/views/inpatientNurse/medicalOrderProofread/components/prescriptionList.vue @@ -1,18 +1,19 @@