188 lines
9.2 KiB
XML
188 lines
9.2 KiB
XML
<?xml version="1.0" encoding="UTF-8" ?>
|
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
|
<mapper namespace="com.openhis.web.pharmacymanage.mapper.SummaryDispenseMedicineMapper">
|
|
<<<<<<< HEAD
|
|
<select id="selectMedicationSummaryInfo" resultType="com.openhis.web.pharmacymanage.dto.MedicineSummaryDto">
|
|
SELECT ii.tenant_id,
|
|
ii.bus_no,--单据号
|
|
ii.request_id,--供应请求id
|
|
ii.delivery_id,--供应发放id
|
|
ii.item_table,--项目表
|
|
ii.item_name,--项目名
|
|
ii.item_id,--项目id
|
|
ii.total_volume,--规格
|
|
ii.lot_number,--批号
|
|
ii.quantity,--请求数
|
|
ii.unit_code,--单位
|
|
ii.max_unit_code,--常规单位
|
|
ii.min_unit_code,--最小单位
|
|
ii.source_location_id,--发放地点
|
|
ii.source_location_name,
|
|
ii.org_id,--申请科室
|
|
ii.org_name,
|
|
ii.applicant_id,--领药人
|
|
ii.applicant_name,
|
|
ii.apply_time,--申请时间
|
|
ii.status_enum,--状态
|
|
ii.patient_info --患者信息
|
|
FROM (SELECT T1.tenant_id,
|
|
T1.bus_no,--单据号
|
|
T1.id AS request_id,--供应请求id
|
|
T2.id AS delivery_id,--供应发放id
|
|
T1.item_table,--项目表
|
|
T3.name AS item_name,--项目名
|
|
T1.item_id,--项目id
|
|
T4.total_volume,--规格
|
|
T1.lot_number,--批号
|
|
T1.item_quantity AS quantity,--请求数
|
|
T1.unit_code,--单位
|
|
T3.unit_code AS max_unit_code,--常规单位
|
|
T3.min_unit_code,--最小单位
|
|
T1.source_location_id,--发放地点
|
|
T5.name AS source_location_name,
|
|
T1.purpose_location_id AS org_id,--申请科室
|
|
T6.name AS org_name,
|
|
T1.applicant_id,--领药人
|
|
T7.name AS applicant_name,
|
|
T1.apply_time,--申请时间
|
|
T1.status_enum,--状态
|
|
STRING_AGG(CONCAT(T11.name, ' : ', T12.inpatient_bed), ',' ORDER BY T11.name,
|
|
T12.inpatient_bed) AS patient_info -- 患者信息
|
|
FROM wor_supply_request T1
|
|
LEFT JOIN wor_supply_delivery AS T2
|
|
ON T2.request_id = T1.id
|
|
AND T2.delete_flag = '0'
|
|
LEFT JOIN med_medication_definition AS T3
|
|
ON T1.item_id = T3.id
|
|
AND T3.delete_flag = '0'
|
|
LEFT JOIN med_medication AS T4
|
|
ON T3.id = T4.medication_def_id
|
|
AND T4.delete_flag = '0'
|
|
LEFT JOIN adm_location AS T5
|
|
ON T1.source_location_id = T5.id
|
|
AND T5.delete_flag = '0'
|
|
LEFT JOIN adm_organization AS T6
|
|
ON T1.purpose_location_id = T6.id
|
|
AND T6.delete_flag = '0'
|
|
LEFT JOIN adm_practitioner AS T7
|
|
ON T1.applicant_id = T7.id
|
|
AND T7.delete_flag = '0'
|
|
LEFT JOIN (SELECT id,
|
|
encounter_id,
|
|
patient_id
|
|
FROM (SELECT id,
|
|
encounter_id,
|
|
patient_id,
|
|
ROW_NUMBER() OVER (PARTITION BY encounter_id ORDER BY id) AS rn
|
|
FROM med_medication_dispense
|
|
WHERE delete_flag = '0') t
|
|
WHERE rn = 1) AS T8
|
|
ON CONCAT(',', T2.based_on_ids, ',') LIKE CONCAT('%,', T8.id, ',%')
|
|
LEFT JOIN (SELECT STRING_AGG(T10.NAME, '_' ORDER BY T10.bus_no) AS inpatient_bed, T9.encounter_id
|
|
FROM adm_encounter_location T9
|
|
LEFT JOIN adm_location AS T10
|
|
ON T10.id = T9.location_id
|
|
AND T10.delete_flag = '0'
|
|
WHERE T9.status_enum = '2'
|
|
AND T9.delete_flag = '0'
|
|
GROUP BY T9.encounter_id) AS T12 ON T8.encounter_id = T12.encounter_id
|
|
LEFT JOIN adm_patient AS T11
|
|
ON T11.id = T8.patient_id
|
|
AND T11.delete_flag = '0'
|
|
WHERE T1.item_table = 'med_medication_definition'
|
|
AND T1.type_enum = 23
|
|
AND T1.category_enum = 21
|
|
AND T1.delete_flag = '0'
|
|
GROUP BY T1.tenant_id,
|
|
T1.bus_no,
|
|
T1.id,
|
|
T2.id,
|
|
T1.item_table,
|
|
T3.name,
|
|
T1.item_id,
|
|
T4.total_volume,
|
|
T1.lot_number,
|
|
T1.item_quantity,
|
|
T1.unit_code,
|
|
T3.unit_code,
|
|
T3.min_unit_code,
|
|
T1.source_location_id,
|
|
T5.name,
|
|
T1.purpose_location_id,
|
|
T6.name,
|
|
T1.applicant_id,
|
|
T7.name,
|
|
T1.apply_time,
|
|
T1.status_enum
|
|
) AS ii
|
|
${ew.customSqlSegment}
|
|
</select>
|
|
|
|
<select id="selectOrderInfo" resultType="com.openhis.web.pharmacymanage.dto.MedicineSummaryDto">
|
|
SELECT
|
|
li.bus_no,--单据号
|
|
li.request_id,--供应请求id
|
|
li.delivery_id,--供应发放id
|
|
li.item_table,--项目表
|
|
li.item_name,--项目名
|
|
li.item_id,--项目id
|
|
li.total_volume,--规格
|
|
li.lot_number,--批号
|
|
li.quantity,--请求数
|
|
li.unit_code,--单位
|
|
li.max_unit_code,--常规单位
|
|
li.min_unit_code,--最小单位
|
|
li.source_location_id,--发放地点
|
|
li.source_location_name,
|
|
li.org_id,--申请科室
|
|
li.org_name,
|
|
li.applicant_id,--领药人
|
|
li.applicant_name,
|
|
li.apply_time,--申请时间
|
|
li.status_enum--状态
|
|
FROM
|
|
(
|
|
SELECT
|
|
wsr.tenant_id,
|
|
wsr.bus_no,--单据号
|
|
wsd.request_id,--供应请求id
|
|
wsd.id AS delivery_id,--供应发放id
|
|
wsr.item_table,--项目表
|
|
mmd.name AS item_name,--项目名
|
|
wsr.item_id,--项目id
|
|
mm.total_volume,--规格
|
|
wsr.lot_number,--批号
|
|
wsr.item_quantity AS quantity,--请求数
|
|
wsr.unit_code,--单位
|
|
mmd.unit_code AS max_unit_code,--常规单位
|
|
mmd.min_unit_code,--最小单位
|
|
wsr.source_location_id,--发放地点
|
|
al.name AS source_location_name,
|
|
ao.id AS org_id,--申请科室
|
|
ao.name AS org_name,
|
|
wsr.applicant_id,--领药人
|
|
ap.name AS applicant_name,
|
|
wsr.apply_time,--申请时间
|
|
wsr.status_enum --状态
|
|
FROM
|
|
wor_supply_request AS wsr
|
|
LEFT JOIN adm_practitioner AS ap ON wsr.applicant_id = ap.ID
|
|
AND ap.delete_flag = '0'
|
|
LEFT JOIN wor_supply_delivery AS wsd ON wsd.request_id = wsr.ID
|
|
AND wsd.delete_flag = '0'
|
|
LEFT JOIN med_medication_definition AS mmd ON wsd.item_id = mmd.ID
|
|
AND mmd.delete_flag = '0'
|
|
LEFT JOIN med_medication AS mm ON mmd.ID = mm.medication_def_id
|
|
AND mm.delete_flag = '0'
|
|
LEFT JOIN adm_location AS al ON wsr.source_location_id = al.ID
|
|
AND al.delete_flag = '0'
|
|
LEFT JOIN adm_organization AS ao ON wsr.purpose_location_id = ao.ID
|
|
AND ao.delete_flag = '0'
|
|
WHERE wsr.delete_flag = '0'
|
|
) AS li
|
|
${ew.customSqlSegment}
|
|
</select>
|
|
=======
|
|
>>>>>>> v1.3
|
|
</mapper>
|