fix: 修复护理记录患者列表不显示在院患者的问题 (Bug #175)
- 将INNER JOIN改为LEFT JOIN,允许患者未分配床位时也能显示在列表中 - 修复getPatientPage和getNursingPatientPage两个查询 - 解决患者已入院但无床位信息时查询不到数据的问题
This commit is contained in:
@@ -31,33 +31,33 @@
|
|||||||
ON T2.patient_id = T1.id
|
ON T2.patient_id = T1.id
|
||||||
AND T2.class_enum = #{classEnum}
|
AND T2.class_enum = #{classEnum}
|
||||||
AND T2.delete_flag = '0'
|
AND T2.delete_flag = '0'
|
||||||
INNER JOIN (SELECT encounter_id,
|
INNER JOIN (SELECT encounter_id,
|
||||||
location_id,
|
location_id,
|
||||||
form_enum,
|
form_enum,
|
||||||
delete_flag
|
delete_flag
|
||||||
FROM (SELECT encounter_id,
|
FROM (SELECT encounter_id,
|
||||||
location_id,
|
location_id,
|
||||||
form_enum,
|
form_enum,
|
||||||
delete_flag,
|
delete_flag,
|
||||||
ROW_NUMBER() OVER (PARTITION BY encounter_id
|
ROW_NUMBER() OVER (PARTITION BY encounter_id
|
||||||
ORDER BY
|
ORDER BY
|
||||||
CASE
|
CASE
|
||||||
WHEN update_time IS NULL THEN create_time
|
WHEN update_time IS NULL THEN create_time
|
||||||
ELSE update_time
|
ELSE update_time
|
||||||
END DESC) AS rn
|
END DESC) AS rn
|
||||||
FROM adm_encounter_location
|
FROM adm_encounter_location
|
||||||
WHERE form_enum = #{ward}
|
WHERE form_enum = #{ward}
|
||||||
AND delete_flag = '0'
|
AND delete_flag = '0'
|
||||||
) ranked
|
) ranked
|
||||||
WHERE rn = 1) AS T3
|
WHERE rn = 1) AS T3
|
||||||
ON T3.encounter_id = T2.ID
|
ON T3.encounter_id = T2.ID
|
||||||
INNER JOIN adm_encounter_location AS T4
|
LEFT JOIN adm_encounter_location AS T4
|
||||||
ON T4.encounter_id = T2.ID
|
ON T4.encounter_id = T2.ID
|
||||||
AND T4.form_enum = #{bed}
|
AND T4.form_enum = #{bed}
|
||||||
AND T4.status_enum = #{active}
|
AND T4.status_enum = #{active}
|
||||||
AND T4.delete_flag = '0'
|
AND T4.delete_flag = '0'
|
||||||
WHERE T1.delete_flag = '0'
|
WHERE T1.delete_flag = '0'
|
||||||
ORDER BY T4.location_id ASC) AS T5
|
ORDER BY T4.location_id ASC) AS T5
|
||||||
${ew.customSqlSegment}
|
${ew.customSqlSegment}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
@@ -97,32 +97,32 @@
|
|||||||
ON T2.patient_id = T1.id
|
ON T2.patient_id = T1.id
|
||||||
AND T2.class_enum = #{classEnum}
|
AND T2.class_enum = #{classEnum}
|
||||||
AND T2.delete_flag = '0'
|
AND T2.delete_flag = '0'
|
||||||
INNER JOIN (SELECT encounter_id,
|
INNER JOIN (SELECT encounter_id,
|
||||||
location_id,
|
location_id,
|
||||||
form_enum,
|
form_enum,
|
||||||
delete_flag
|
delete_flag
|
||||||
FROM (SELECT encounter_id,
|
FROM (SELECT encounter_id,
|
||||||
location_id,
|
location_id,
|
||||||
form_enum,
|
form_enum,
|
||||||
delete_flag,
|
delete_flag,
|
||||||
ROW_NUMBER() OVER (PARTITION BY encounter_id
|
ROW_NUMBER() OVER (PARTITION BY encounter_id
|
||||||
ORDER BY
|
ORDER BY
|
||||||
CASE
|
CASE
|
||||||
WHEN update_time IS NULL THEN create_time
|
WHEN update_time IS NULL THEN create_time
|
||||||
ELSE update_time
|
ELSE update_time
|
||||||
END DESC) AS rn
|
END DESC) AS rn
|
||||||
FROM adm_encounter_location
|
FROM adm_encounter_location
|
||||||
WHERE form_enum = #{ward}
|
WHERE form_enum = #{ward}
|
||||||
AND delete_flag = '0'
|
AND delete_flag = '0'
|
||||||
) ranked
|
) ranked
|
||||||
WHERE rn = 1) AS T3
|
WHERE rn = 1) AS T3
|
||||||
ON T3.encounter_id = T2.ID
|
ON T3.encounter_id = T2.ID
|
||||||
INNER JOIN adm_encounter_location AS T4
|
LEFT JOIN adm_encounter_location AS T4
|
||||||
ON T4.encounter_id = T2.ID
|
ON T4.encounter_id = T2.ID
|
||||||
AND T4.form_enum = #{bed}
|
AND T4.form_enum = #{bed}
|
||||||
AND T4.status_enum = #{active}
|
AND T4.status_enum = #{active}
|
||||||
AND T4.delete_flag = '0'
|
AND T4.delete_flag = '0'
|
||||||
LEFT JOIN doc_emr AS T5
|
LEFT JOIN doc_emr AS T5
|
||||||
ON T5.patient_id = T1.id
|
ON T5.patient_id = T1.id
|
||||||
AND T5.encounter_id = T2.ID
|
AND T5.encounter_id = T2.ID
|
||||||
AND T5.class_enum = 1 --护理记录单
|
AND T5.class_enum = 1 --护理记录单
|
||||||
|
|||||||
Reference in New Issue
Block a user