From 3c4797991339ac8ac7d001d3c229a8b27185deca Mon Sep 17 00:00:00 2001 From: chenqi Date: Thu, 12 Mar 2026 14:15:56 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E4=BF=AE=E5=A4=8D=E6=8A=A4=E7=90=86?= =?UTF-8?q?=E8=AE=B0=E5=BD=95=E6=82=A3=E8=80=85=E5=88=97=E8=A1=A8=E4=B8=8D?= =?UTF-8?q?=E6=98=BE=E7=A4=BA=E5=9C=A8=E9=99=A2=E6=82=A3=E8=80=85=E7=9A=84?= =?UTF-8?q?=E9=97=AE=E9=A2=98=20(Bug=20#175)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 将INNER JOIN改为LEFT JOIN,允许患者未分配床位时也能显示在列表中 - 修复getPatientPage和getNursingPatientPage两个查询 - 解决患者已入院但无床位信息时查询不到数据的问题 --- .../NursingRecordAppMapper.xml | 90 +++++++++---------- 1 file changed, 45 insertions(+), 45 deletions(-) diff --git a/openhis-server-new/openhis-application/src/main/resources/mapper/inpatientmanage/NursingRecordAppMapper.xml b/openhis-server-new/openhis-application/src/main/resources/mapper/inpatientmanage/NursingRecordAppMapper.xml index 385f40fe..70002ada 100644 --- a/openhis-server-new/openhis-application/src/main/resources/mapper/inpatientmanage/NursingRecordAppMapper.xml +++ b/openhis-server-new/openhis-application/src/main/resources/mapper/inpatientmanage/NursingRecordAppMapper.xml @@ -31,33 +31,33 @@ ON T2.patient_id = T1.id AND T2.class_enum = #{classEnum} AND T2.delete_flag = '0' - INNER JOIN (SELECT encounter_id, - location_id, - form_enum, - delete_flag - FROM (SELECT encounter_id, - location_id, - form_enum, - delete_flag, - ROW_NUMBER() OVER (PARTITION BY encounter_id - ORDER BY - CASE - WHEN update_time IS NULL THEN create_time - ELSE update_time - END DESC) AS rn - FROM adm_encounter_location - WHERE form_enum = #{ward} - AND delete_flag = '0' - ) ranked - WHERE rn = 1) AS T3 - ON T3.encounter_id = T2.ID - INNER JOIN adm_encounter_location AS T4 + INNER JOIN (SELECT encounter_id, + location_id, + form_enum, + delete_flag + FROM (SELECT encounter_id, + location_id, + form_enum, + delete_flag, + ROW_NUMBER() OVER (PARTITION BY encounter_id + ORDER BY + CASE + WHEN update_time IS NULL THEN create_time + ELSE update_time + END DESC) AS rn + FROM adm_encounter_location + WHERE form_enum = #{ward} + AND delete_flag = '0' + ) ranked + WHERE rn = 1) AS T3 + ON T3.encounter_id = T2.ID + LEFT JOIN adm_encounter_location AS T4 ON T4.encounter_id = T2.ID AND T4.form_enum = #{bed} AND T4.status_enum = #{active} AND T4.delete_flag = '0' - WHERE T1.delete_flag = '0' - ORDER BY T4.location_id ASC) AS T5 + WHERE T1.delete_flag = '0' + ORDER BY T4.location_id ASC) AS T5 ${ew.customSqlSegment} @@ -97,32 +97,32 @@ ON T2.patient_id = T1.id AND T2.class_enum = #{classEnum} AND T2.delete_flag = '0' - INNER JOIN (SELECT encounter_id, - location_id, - form_enum, - delete_flag - FROM (SELECT encounter_id, - location_id, - form_enum, - delete_flag, - ROW_NUMBER() OVER (PARTITION BY encounter_id - ORDER BY - CASE - WHEN update_time IS NULL THEN create_time - ELSE update_time - END DESC) AS rn - FROM adm_encounter_location - WHERE form_enum = #{ward} - AND delete_flag = '0' - ) ranked - WHERE rn = 1) AS T3 - ON T3.encounter_id = T2.ID - INNER JOIN adm_encounter_location AS T4 + INNER JOIN (SELECT encounter_id, + location_id, + form_enum, + delete_flag + FROM (SELECT encounter_id, + location_id, + form_enum, + delete_flag, + ROW_NUMBER() OVER (PARTITION BY encounter_id + ORDER BY + CASE + WHEN update_time IS NULL THEN create_time + ELSE update_time + END DESC) AS rn + FROM adm_encounter_location + WHERE form_enum = #{ward} + AND delete_flag = '0' + ) ranked + WHERE rn = 1) AS T3 + ON T3.encounter_id = T2.ID + LEFT JOIN adm_encounter_location AS T4 ON T4.encounter_id = T2.ID AND T4.form_enum = #{bed} AND T4.status_enum = #{active} AND T4.delete_flag = '0' - LEFT JOIN doc_emr AS T5 + LEFT JOIN doc_emr AS T5 ON T5.patient_id = T1.id AND T5.encounter_id = T2.ID AND T5.class_enum = 1 --护理记录单