版本更新
This commit is contained in:
@@ -0,0 +1,156 @@
|
||||
<?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.ChineseMedicineDispenseMapper">
|
||||
<select id="selectEncounterInfoListPage" resultType="com.openhis.web.pharmacymanage.dto.EncounterInfoPageDto">
|
||||
SELECT ii.tenant_id,
|
||||
ii.encounter_id,
|
||||
ii.encounter_no,
|
||||
ii.department_name,
|
||||
ii.patient_name,
|
||||
ii.patient_wb_str,
|
||||
ii.patient_py_str,
|
||||
ii.gender_enum,
|
||||
ii.department_id,
|
||||
ii.id_card,
|
||||
ii.reception_time,
|
||||
ii.status_enum
|
||||
FROM (
|
||||
SELECT T1.tenant_id,
|
||||
T1.id AS encounter_id,
|
||||
T1.bus_no AS encounter_no,
|
||||
T1.reception_time,
|
||||
T1.organization_id AS department_id,
|
||||
T2.gender_enum,
|
||||
T2.name AS patient_name,
|
||||
T2.wb_str AS patient_wb_str,
|
||||
T2.py_str AS patient_py_str,
|
||||
T2.id_card,
|
||||
T3.name AS department_name,
|
||||
T4.status_enum
|
||||
FROM adm_encounter AS T1
|
||||
INNER JOIN adm_patient AS T2
|
||||
ON T1.patient_id = T2.id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_organization AS T3
|
||||
ON T1.organization_id = T3.id
|
||||
AND T3.delete_flag = '0'
|
||||
INNER JOIN med_medication_dispense AS T4
|
||||
ON T4.encounter_id = T1.id
|
||||
AND T4.delete_flag = '0'
|
||||
GROUP BY T1.tenant_id,
|
||||
T1.id,
|
||||
T1.bus_no,
|
||||
T1.reception_time,
|
||||
T1.organization_id,
|
||||
T2.gender_enum,
|
||||
T2.name,
|
||||
T2.wb_str,
|
||||
T2.py_str,
|
||||
T2.id_card,
|
||||
T3.name,
|
||||
T4.status_enum
|
||||
ORDER BY T1.reception_time desc
|
||||
) AS ii
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
<select id="selectPrescriptionPatientInfo" resultType="com.openhis.web.pharmacymanage.dto.PrescriptionPatientInfoDto">
|
||||
SELECT
|
||||
T2.name AS patient_name,
|
||||
T2.gender_enum,
|
||||
T2.birth_date,
|
||||
T4.category_enum,
|
||||
T2.id_card,
|
||||
T5.name AS organization_name,
|
||||
TO_CHAR(T1.start_time,'YYYY-MM-DD') AS encounter_date
|
||||
FROM adm_encounter AS T1
|
||||
INNER JOIN adm_patient AS T2
|
||||
ON T1.patient_id = T2.id
|
||||
LEFT JOIN med_medication_request AS T3
|
||||
ON T1.id = T3.encounter_id
|
||||
LEFT JOIN fin_contract AS T4
|
||||
ON T3.contract_no = T4.bus_no
|
||||
LEFT JOIN adm_organization AS T5
|
||||
ON T1.organization_id = T5.id
|
||||
WHERE
|
||||
T1.id = #{encounterId}
|
||||
GROUP BY
|
||||
T2.name,
|
||||
T2.gender_enum,
|
||||
T2.birth_date,
|
||||
T4.category_enum,
|
||||
T2.id_card,
|
||||
T5.name,
|
||||
T1.start_time
|
||||
</select>
|
||||
<select id="selectPrescriptionMedicineInfoList" resultType="com.openhis.web.pharmacymanage.dto.PrescriptionMedicineInfoDto">
|
||||
SELECT
|
||||
DISTINCT
|
||||
T8.name AS department_name,
|
||||
T9.name AS doctor_name,
|
||||
'中药处方' AS item_type,
|
||||
T7.name AS condition_name,
|
||||
T2.prescription_no,
|
||||
T4.name AS medicine_name,
|
||||
T3.total_volume,
|
||||
T1.dose,
|
||||
T2.rate_code,
|
||||
T1.method_code,
|
||||
T1.dose_unit_code,
|
||||
T2.max_dose,
|
||||
T2.first_dose,
|
||||
T2.first_duration,
|
||||
T2.dispense_interval,
|
||||
T2.dispense_per_quantity,
|
||||
T2.dispense_per_duration,
|
||||
T1.quantity,
|
||||
T5.unit_price,
|
||||
T5.total_price
|
||||
FROM med_medication_dispense AS T1
|
||||
INNER JOIN med_medication_request AS T2
|
||||
ON T1.med_req_id = T2.id
|
||||
INNER JOIN med_medication AS T3
|
||||
ON T1.medication_id = T3.id
|
||||
INNER JOIN med_medication_definition AS T4
|
||||
ON T3.medication_def_id = T4.id
|
||||
AND T4.category_code IN ('4')
|
||||
INNER JOIN adm_charge_item AS T5
|
||||
ON T1.med_req_id = T5.service_id
|
||||
INNER JOIN adm_encounter AS T6
|
||||
ON T1.encounter_id = T6.id
|
||||
INNER JOIN cli_condition_definition AS T7
|
||||
ON T2.condition_id = T7.id
|
||||
LEFT JOIN adm_organization AS T8
|
||||
ON T6.organization_id = T8.id
|
||||
LEFT JOIN adm_practitioner AS T9
|
||||
ON T1.practitioner_id = T9.id
|
||||
|
||||
WHERE
|
||||
T1.encounter_id = #{encounterId}
|
||||
AND T1.status_enum = 2
|
||||
ORDER BY
|
||||
prescription_no,
|
||||
medicine_name
|
||||
</select>
|
||||
<select id="selectDispenseInventoryInfoByPrescriptionNo" resultType="com.openhis.web.pharmacymanage.dto.DispenseInventoryDto">
|
||||
SELECT
|
||||
T1.id AS dispense_id,
|
||||
T1.unit_code AS dispense_unit_code,
|
||||
T1.quantity AS dispense_quantity,
|
||||
T3.Id AS inventory_id,
|
||||
T3.unit_code AS inventory_unit_code,
|
||||
T3.quantity AS inventory_quantity,
|
||||
T5.part_percent
|
||||
FROM med_medication_dispense AS T1
|
||||
INNER JOIN med_medication_request AS T2
|
||||
ON T1.med_req_id = T2.id
|
||||
INNER JOIN wor_inventory_item AS T3
|
||||
ON T1.medication_id = T3.item_id
|
||||
AND T3.item_table = #{medMedicationDefinition}
|
||||
INNER JOIN med_medication AS T4
|
||||
ON T1.medication_id = T4.id
|
||||
INNER JOIN med_medication_definition AS T5
|
||||
ON T4.medication_def_id = T5.id
|
||||
WHERE
|
||||
T2.prescription_no = #{prescriptionNo}
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,233 @@
|
||||
<?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.IDeviceDispenseMapper">
|
||||
<select id="selectEncounterInfoListPage" resultType="com.openhis.web.pharmacymanage.dto.EncounterInfoPageDto">
|
||||
SELECT ii.tenant_id,
|
||||
ii.encounter_id,
|
||||
ii.encounter_no,
|
||||
ii.department_name,
|
||||
ii.patient_name,
|
||||
ii.patient_wb_str,
|
||||
ii.patient_py_str,
|
||||
ii.gender_enum,
|
||||
ii.department_id,
|
||||
ii.id_card,
|
||||
ii.reception_time,
|
||||
ii.status_enum
|
||||
-- ii.location_id
|
||||
FROM (
|
||||
SELECT T1.tenant_id,
|
||||
T1.id AS encounter_id,
|
||||
T1.bus_no AS encounter_no,
|
||||
T1.reception_time,
|
||||
T1.organization_id AS department_id,
|
||||
T2.gender_enum,
|
||||
T2.name AS patient_name,
|
||||
T2.wb_str AS patient_wb_str,
|
||||
T2.py_str AS patient_py_str,
|
||||
T2.id_card,
|
||||
T3.name AS department_name,
|
||||
T4.status_enum
|
||||
-- T4.location_id
|
||||
FROM adm_encounter AS T1
|
||||
INNER JOIN adm_patient AS T2
|
||||
ON T1.patient_id = T2.id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_organization AS T3
|
||||
ON T1.organization_id = T3.id
|
||||
AND T3.delete_flag = '0'
|
||||
INNER JOIN wor_device_dispense AS T4
|
||||
ON T4.encounter_id = T1.id
|
||||
AND T4.delete_flag = '0'
|
||||
INNER JOIN wor_device_request AS T5
|
||||
ON T4.device_req_id = T5.id
|
||||
AND T5.delete_flag = '0'
|
||||
-- 因发药配药合并,前台只能看到待发药,已发药状态,但是后台配药发药状态都查
|
||||
WHERE <if test="statusEnum == null">
|
||||
T4.status_enum IN (#{inProgress},#{completed},#{preparation},#{prepared})
|
||||
</if>
|
||||
<if test="statusEnum == 3">
|
||||
T4.status_enum IN (#{inProgress},#{preparation},#{prepared})
|
||||
</if>
|
||||
<if test="statusEnum == 4">
|
||||
T4.status_enum = #{completed}
|
||||
</if>
|
||||
AND T1.class_enum = #{amb}
|
||||
GROUP BY T1.tenant_id,
|
||||
T1.id,
|
||||
T1.bus_no,
|
||||
T1.reception_time,
|
||||
T1.organization_id,
|
||||
T2.gender_enum,
|
||||
T2.name,
|
||||
T2.wb_str,
|
||||
T2.py_str,
|
||||
T2.id_card,
|
||||
T3.name,
|
||||
T4.status_enum
|
||||
-- T4.location_id
|
||||
ORDER BY T1.reception_time desc
|
||||
) AS ii
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
<select id="selectPrescriptionPatientInfo" resultType="com.openhis.web.pharmacymanage.dto.PrescriptionPatientInfoDto">
|
||||
SELECT
|
||||
T2.name AS patient_name,
|
||||
T2.gender_enum,
|
||||
T2.birth_date,
|
||||
T2.phone,
|
||||
T4.category_enum,
|
||||
T2.id_card,
|
||||
T2.bus_no AS patient_bus_no,
|
||||
T5.name AS organization_name,
|
||||
(SELECT T6.name FROM adm_organization AS T6 WHERE T6.id = #{hospitalId} AND T6.delete_flag = '0') AS hospital_name,
|
||||
TO_CHAR(T1.start_time,'YYYY-MM-DD') AS encounter_date
|
||||
FROM adm_encounter AS T1
|
||||
INNER JOIN adm_patient AS T2
|
||||
ON T1.patient_id = T2.id
|
||||
LEFT JOIN wor_device_request AS T3
|
||||
ON T1.id = T3.encounter_id
|
||||
LEFT JOIN fin_contract AS T4
|
||||
ON T3.contract_code = T4.bus_no
|
||||
LEFT JOIN adm_organization AS T5
|
||||
ON T1.organization_id = T5.id
|
||||
WHERE
|
||||
T1.id = #{encounterId}
|
||||
GROUP BY
|
||||
T2.name,
|
||||
T2.gender_enum,
|
||||
T2.birth_date,
|
||||
T2.phone,
|
||||
T4.category_enum,
|
||||
T2.id_card,
|
||||
T2.bus_no,
|
||||
T5.name,
|
||||
hospital_name,
|
||||
T1.start_time
|
||||
</select>
|
||||
<select id="selectPrescriptionDeviceInfoList" resultType="com.openhis.web.pharmacymanage.dto.PrescriptionDeviceInfoDto">
|
||||
SELECT ii.department_name,
|
||||
ii.doctor_name,
|
||||
ii.item_type,
|
||||
ii.condition_name,
|
||||
ii.prescription_no,
|
||||
ii.lot_number,
|
||||
ii.request_id,
|
||||
ii.device_name,
|
||||
ii.device_id,
|
||||
ii.total_volume,
|
||||
ii.unit_code,
|
||||
ii.encounter_id,
|
||||
ii.status_enum,
|
||||
ii.rate_code,
|
||||
ii.location_id,
|
||||
ii.quantity,
|
||||
ii.dispense_id,
|
||||
ii.unit_price,
|
||||
ii.total_price,
|
||||
ii.dispense_doctor_name,
|
||||
ii.location_name,
|
||||
ii.encounter_bus_no,
|
||||
ii.req_authored_time,
|
||||
ii.no,
|
||||
ii.charge_type,
|
||||
ii.med_type_code,
|
||||
ii.tenant_id
|
||||
FROM ( SELECT T8."name" AS department_name,
|
||||
T9."name" AS doctor_name,
|
||||
T3.category_code AS item_type,
|
||||
T7."name" AS condition_name,
|
||||
T2.prescription_no,
|
||||
T2.lot_number,
|
||||
T2.id AS request_id,
|
||||
T3."name" AS device_name,
|
||||
T3.id AS device_id,
|
||||
T3.size AS total_volume,
|
||||
T1.unit_code,
|
||||
T1.encounter_id,
|
||||
T1.status_enum,
|
||||
T2.rate_code,
|
||||
T1.location_id,
|
||||
T1.quantity,
|
||||
T1.id AS dispense_id,
|
||||
T5.unit_price,
|
||||
T5.total_price,
|
||||
T10."name" AS dispense_doctor_name,
|
||||
T13."name" AS location_name,
|
||||
T6.bus_no AS encounter_bus_no,
|
||||
T2.req_authored_time,
|
||||
T14.no,
|
||||
T15.contract_name AS charge_type,
|
||||
T16.med_type_code,
|
||||
T1.tenant_id
|
||||
FROM wor_device_dispense AS T1
|
||||
LEFT JOIN wor_device_request AS T2
|
||||
ON T1.device_req_id = T2.id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_device_definition AS T3
|
||||
ON T1.device_def_id = T3.id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_device AS T4
|
||||
ON T3.id = T4.device_def_id
|
||||
AND T4.delete_flag = '0'
|
||||
INNER JOIN adm_charge_item AS T5
|
||||
ON T1.device_req_id = T5.service_id
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN adm_encounter AS T6
|
||||
ON T1.encounter_id = T6.id
|
||||
AND T6.delete_flag = '0'
|
||||
LEFT JOIN cli_condition AS T12
|
||||
ON T2.condition_id = T12.id
|
||||
AND T12.delete_flag = '0'
|
||||
LEFT JOIN cli_condition_definition AS T7
|
||||
ON T12.definition_id = T7.id
|
||||
AND T7.delete_flag = '0'
|
||||
LEFT JOIN adm_organization AS T8
|
||||
ON T6.organization_id = T8.id
|
||||
AND T8.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner AS T9
|
||||
ON T2.requester_id = T9.id
|
||||
AND T9.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner AS T10
|
||||
ON T1.performer_id = T10.id
|
||||
AND T10.delete_flag = '0'
|
||||
LEFT JOIN adm_location AS T13
|
||||
ON T1.location_id = T13.id
|
||||
AND T13.delete_flag = '0'
|
||||
LEFT JOIN adm_account AS T14
|
||||
ON T5.account_id = T14.id
|
||||
AND T14.delete_flag = '0'
|
||||
LEFT JOIN fin_contract AS T15
|
||||
ON T14.contract_no = T15.bus_no
|
||||
AND T15.delete_flag = '0'
|
||||
LEFT JOIN adm_encounter_diagnosis AS T16
|
||||
ON T2.encounter_id = T16.encounter_id
|
||||
AND T2.condition_id = T16.condition_id
|
||||
AND T16.delete_flag = '0'
|
||||
WHERE T1.delete_flag = '0'
|
||||
-- 因发药配药合并,前台只能看到待发药,已发药状态,但是后台配药发药状态都查
|
||||
AND
|
||||
<if test="dispenseStatus == null">
|
||||
T1.status_enum IN (#{inProgress},#{completed},#{preparation},#{prepared})
|
||||
</if>
|
||||
<if test="dispenseStatus == 3">
|
||||
T1.status_enum IN (#{inProgress},#{preparation},#{prepared})
|
||||
</if>
|
||||
<if test="dispenseStatus == 4">
|
||||
T1.status_enum = #{completed}
|
||||
</if>
|
||||
ORDER BY prescription_no DESC
|
||||
) AS ii
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
<select id="getPreparerDoctorList" resultType="com.openhis.administration.domain.Practitioner">
|
||||
SELECT ap.id,
|
||||
ap."name"
|
||||
FROM adm_practitioner ap
|
||||
LEFT JOIN adm_practitioner_role apr
|
||||
ON ap.id = apr.practitioner_id
|
||||
WHERE apr.role_code = #{pharmacist}
|
||||
GROUP BY ap.id,
|
||||
ap."name"
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,4 @@
|
||||
<?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.InpatientMedicineDispenseMapper">
|
||||
</mapper>
|
||||
@@ -0,0 +1,439 @@
|
||||
<?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.InpatientMedicineSummaryDispenseMapper">
|
||||
<select id="selectMedicationSummaryInfo" resultType="com.openhis.web.pharmacymanage.dto.InpatientMedicineSummaryPrescriptionInfoDto">
|
||||
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 = #{medicationDefinition}
|
||||
AND T1.type_enum = #{typeEnum}
|
||||
AND T1.category_enum = #{categoryEnum}
|
||||
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
|
||||
UNION
|
||||
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
|
||||
T3.size AS 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 adm_device_definition AS T3
|
||||
ON T1.item_id = T3.id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_device AS T4
|
||||
ON T3.id = T4.device_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 wor_device_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 = #{deviceDefinition}
|
||||
AND T1.type_enum = #{typeEnum}
|
||||
AND T1.category_enum = #{categoryEnum}
|
||||
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,
|
||||
T3.size,
|
||||
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="selectEncounterInfoListPage" resultType="com.openhis.web.pharmacymanage.dto.InpatientMedicineEncounterInfoDto">-->
|
||||
<!-- SELECT ii.tenant_id,-->
|
||||
<!-- ii.org_id,-->
|
||||
<!-- ii.therapy_enum,-->
|
||||
<!-- ii.encounter_id,-->
|
||||
<!-- ii.bus_no,-->
|
||||
<!-- ii.patient_name,-->
|
||||
<!-- ii.gender_enum,-->
|
||||
<!-- ii.birth_date,-->
|
||||
<!-- ii.inpatient_bed,-->
|
||||
<!-- ii.effective_dose_start-->
|
||||
<!-- FROM (SELECT T1.tenant_id,-->
|
||||
<!-- T1.org_id, --科室-->
|
||||
<!-- T1.therapy_enum, --治疗类型 1:临时医嘱,2:长期医嘱,3:备用医嘱 -->
|
||||
<!-- T3.id AS encounter_id, --就诊id-->
|
||||
<!-- T3.bus_no, --住院号-->
|
||||
<!-- T2.name AS patient_name, --患者姓名-->
|
||||
<!-- T2.gender_enum, --性别-->
|
||||
<!-- T2.birth_date, --生日-->
|
||||
<!-- STRING_AGG(T5.NAME, '_' ORDER BY T5.bus_no) AS inpatient_bed, --床位-->
|
||||
<!-- MIN(T1.effective_dose_start) AS effective_dose_start --请求开始时间-->
|
||||
<!-- FROM med_medication_request AS T1-->
|
||||
<!-- LEFT JOIN adm_patient AS T2-->
|
||||
<!-- ON T1.patient_id = T2.id-->
|
||||
<!-- AND T2.delete_flag = '0'-->
|
||||
<!-- INNER JOIN adm_encounter AS T3-->
|
||||
<!-- ON T1.encounter_id = T3.id-->
|
||||
<!-- AND T3.class_enum = #{amb}-->
|
||||
<!-- AND T3.status_enum = 5-->
|
||||
<!-- AND T3.delete_flag = '0'-->
|
||||
<!-- LEFT JOIN adm_encounter_location AS T4-->
|
||||
<!-- ON T4.encounter_id = T3.id-->
|
||||
<!-- AND T4.status_enum = '2'-->
|
||||
<!-- AND T4.delete_flag = '0'-->
|
||||
<!-- LEFT JOIN adm_location AS T5-->
|
||||
<!-- ON T5.id = T4.location_id-->
|
||||
<!-- AND T5.delete_flag = '0'-->
|
||||
<!-- WHERE T1.delete_flag = '0'-->
|
||||
<!-- GROUP BY T1.tenant_id,-->
|
||||
<!-- T1.org_id,-->
|
||||
<!-- T1.therapy_enum,-->
|
||||
<!-- T3.id,-->
|
||||
<!-- T3.bus_no,-->
|
||||
<!-- T2.name,-->
|
||||
<!-- T2.gender_enum,-->
|
||||
<!-- T2.birth_date) AS ii-->
|
||||
<!-- ${ew.customSqlSegment}-->
|
||||
<!-- </select>-->
|
||||
<!-- <select id="selectPrescriptionInfoListPage" resultType="com.openhis.web.pharmacymanage.dto.InpatientMedicinePrescriptionInfoDto">-->
|
||||
<!-- SELECT ii.tenant_id,-->
|
||||
<!-- ii.request_id,--药品请求id-->
|
||||
<!-- ii.encounter_id,--就诊id-->
|
||||
<!-- ii.bus_no, --单据号-->
|
||||
<!-- ii.status_enum, --状态-->
|
||||
<!-- ii.patient_name,--患者姓名-->
|
||||
<!-- ii.medication_name,--药品名-->
|
||||
<!-- ii.effective_dose_start,--医嘱开始时间-->
|
||||
<!-- ii.effective_dose_end,--医嘱结束时间-->
|
||||
<!-- ii.req_authored_time --生成日期-->
|
||||
<!-- FROM (SELECT T1.tenant_id,-->
|
||||
<!-- T1.id AS request_id,--药品请求id-->
|
||||
<!-- T1.encounter_id,--就诊id-->
|
||||
<!-- T1.bus_no, --单据号-->
|
||||
<!-- T1.status_enum, --状态-->
|
||||
<!-- T2.name AS patient_name,--患者姓名-->
|
||||
<!-- T3.name AS medication_name,--药品名-->
|
||||
<!-- T1.effective_dose_start,--医嘱开始时间-->
|
||||
<!-- T1.effective_dose_end,--医嘱结束时间-->
|
||||
<!-- T1.req_authored_time --生成日期-->
|
||||
<!-- FROM med_medication_request AS T1-->
|
||||
<!-- LEFT JOIN adm_patient AS T2-->
|
||||
<!-- ON T1.patient_id = T2.id-->
|
||||
<!-- AND T2.delete_flag = '0'-->
|
||||
<!-- LEFT JOIN med_medication_definition AS T3-->
|
||||
<!-- ON T1.medication_id = T3.id-->
|
||||
<!-- AND T3.delete_flag = '0'-->
|
||||
<!-- WHERE T1.encounter_id IN-->
|
||||
<!-- <foreach collection="encounterIdList" item="item" separator="," open="(" close=")">-->
|
||||
<!-- #{item}-->
|
||||
<!-- </foreach>-->
|
||||
<!-- AND T1.delete_flag = '0'-->
|
||||
<!-- GROUP BY T1.id,-->
|
||||
<!-- T2.name,-->
|
||||
<!-- T3.name) AS ii-->
|
||||
<!-- ${ew.customSqlSegment}-->
|
||||
<!-- </select>-->
|
||||
<!-- <select id="selectMedicationSummaryHeadInfo" resultType="com.openhis.web.pharmacymanage.dto.InpatientMedicineSummaryPrescriptionInfoDto">-->
|
||||
<!-- SELECT T2.dispense_time,--发药日期-->
|
||||
<!-- T2.rec_practitioner_id,--领药人-->
|
||||
<!-- T3.name AS rec_practitioner_name,-->
|
||||
<!-- SUM(T5.total_price) AS totalPrice,--金额合计-->
|
||||
<!-- COUNT(DISTINCT T1.medication_id) AS medVarietyCount,--药品种数-->
|
||||
<!-- COUNT(T1.id) AS aggregated_order_count,--汇总医嘱数-->
|
||||
<!-- T4.name AS department--科室病区-->
|
||||
<!-- FROM med_medication_request AS T1-->
|
||||
<!-- LEFT JOIN med_medication_dispense AS T2-->
|
||||
<!-- ON T2.med_req_id = T1.id-->
|
||||
<!-- AND T2.delete_flag = '0'-->
|
||||
<!-- LEFT JOIN adm_practitioner AS T3-->
|
||||
<!-- ON T2.rec_practitioner_id = T3.id-->
|
||||
<!-- AND T3.delete_flag = '0'-->
|
||||
<!-- LEFT JOIN adm_organization AS T4-->
|
||||
<!-- ON T3.org_id = T4.id-->
|
||||
<!-- AND T4.delete_flag = '0'-->
|
||||
<!-- LEFT JOIN adm_charge_item AS T5-->
|
||||
<!-- ON T1.id = T5.service_id-->
|
||||
<!-- AND T5.service_table = #{medicationRequest}-->
|
||||
<!-- AND T5.delete_flag = '0'-->
|
||||
<!-- WHERE T1.id IN-->
|
||||
<!-- <foreach collection="requestIdList" item="item" separator="," open="(" close=")">-->
|
||||
<!-- #{item}-->
|
||||
<!-- </foreach>-->
|
||||
<!-- AND T1.delete_flag = '0'-->
|
||||
<!-- GROUP BY T2.dispense_time,-->
|
||||
<!-- T2.rec_practitioner_id,-->
|
||||
<!-- T3.name,-->
|
||||
<!-- T4.name-->
|
||||
<!-- </select>-->
|
||||
<!-- <select id="selectMedicationSummaryInfo" resultType="com.openhis.web.pharmacymanage.dto.InpatientMedicineSummaryPrescriptionInfoDto">-->
|
||||
<!-- SELECT T2.name AS med_name,--药品名-->
|
||||
<!-- T3.total_volume,--规格-->
|
||||
<!-- T5.name AS supplier_name,--供应商-->
|
||||
<!-- CASE T1.unit_code-->
|
||||
<!-- WHEN T2.min_unit_code THEN T8.amount * T2.part_percent-->
|
||||
<!-- ELSE T8.amount END AS purchase_price,--采购价-->
|
||||
<!-- CASE T1.unit_code-->
|
||||
<!-- WHEN T2.min_unit_code THEN T9.amount * T2.part_percent-->
|
||||
<!-- ELSE T9.amount END AS unit_price,--单价-->
|
||||
<!-- T1.lot_number,--批号-->
|
||||
<!-- CASE T1.unit_code-->
|
||||
<!-- WHEN T2.min_unit_code THEN T4.quantity-->
|
||||
<!-- ELSE T4.quantity/T2.part_percent END AS stock_quantity,--库存数-->
|
||||
<!-- SUM(CASE WHEN T1.status_enum = #{active} THEN T1.quantity ELSE 0 END) AS pending_quantity,--待发药数-->
|
||||
<!-- SUM(CASE WHEN T1.status_enum = #{completed} THEN T1.quantity ELSE 0 END) AS dispensed_quantity,--已发药数-->
|
||||
<!-- SUM(CASE WHEN T1.status_enum = #{cancelled} THEN T1.quantity ELSE 0 END) AS returned_quantity,--已退药数-->
|
||||
<!-- T1.unit_code, --单位-->
|
||||
<!-- T1.status_enum,--状态-->
|
||||
<!-- T1.trace_no--追溯码-->
|
||||
<!-- FROM med_medication_request AS T1-->
|
||||
<!-- LEFT JOIN med_medication_definition AS T2-->
|
||||
<!-- ON T1.medication_id = T2.id-->
|
||||
<!-- AND T2.delete_flag = '0'-->
|
||||
<!-- LEFT JOIN med_medication AS T3-->
|
||||
<!-- ON T2.id = T3.medication_def_id-->
|
||||
<!-- AND T3.delete_flag = '0'-->
|
||||
<!-- LEFT JOIN wor_inventory_item AS T4-->
|
||||
<!-- ON T4.item_id = T2.id-->
|
||||
<!-- AND T4.item_table = #{medicationDefinition}-->
|
||||
<!-- AND T1.lot_number = T4.lot_number-->
|
||||
<!-- AND T4.delete_flag = '0'-->
|
||||
<!-- LEFT JOIN adm_supplier AS T5-->
|
||||
<!-- ON T4.supplier_id = T5.id-->
|
||||
<!-- AND T5.delete_flag = '0'-->
|
||||
<!-- LEFT JOIN adm_charge_item AS T6-->
|
||||
<!-- ON T6.service_id = T1.id-->
|
||||
<!-- AND T6.service_table = #{medicationRequest}-->
|
||||
<!-- AND T6.delete_flag = '0'-->
|
||||
<!-- LEFT JOIN adm_charge_item_definition T7-->
|
||||
<!-- ON T7.instance_id = T2.id-->
|
||||
<!-- AND T7.instance_table = #{medicationDefinition}-->
|
||||
<!-- AND T7.delete_flag = '0'-->
|
||||
<!-- LEFT JOIN adm_charge_item_def_detail T8-->
|
||||
<!-- ON T8.definition_id = T7.id-->
|
||||
<!-- AND T8.condition_code = '1'--1:批号进价-->
|
||||
<!-- AND T8.condition_value = T1.lot_number-->
|
||||
<!-- AND T8.delete_flag = '0'-->
|
||||
<!-- LEFT JOIN adm_charge_item_def_detail T9-->
|
||||
<!-- ON T9.definition_id = T7.id-->
|
||||
<!-- AND T9.condition_code = '5'--1:批号售价-->
|
||||
<!-- AND T9.condition_value = T1.lot_number-->
|
||||
<!-- AND T9.delete_flag = '0'-->
|
||||
<!-- WHERE T1.id IN-->
|
||||
<!-- <foreach collection="requestIdList" item="item" separator="," open="(" close=")">-->
|
||||
<!-- #{item}-->
|
||||
<!-- </foreach>-->
|
||||
<!-- AND T1.delete_flag = '0'-->
|
||||
<!-- GROUP BY T2.name,-->
|
||||
<!-- T3.total_volume,-->
|
||||
<!-- T5.name,-->
|
||||
<!-- T1.unit_code,-->
|
||||
<!-- T2.min_unit_code,-->
|
||||
<!-- T8.amount,-->
|
||||
<!-- T2.part_percent,-->
|
||||
<!-- T9.amount,-->
|
||||
<!-- T1.lot_number,-->
|
||||
<!-- T4.quantity,-->
|
||||
<!-- T1.status_enum,-->
|
||||
<!-- T1.trace_no-->
|
||||
<!-- </select>-->
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<!-- <select id="selectMedicationPatientInfoList" resultType="com.openhis.web.pharmacymanage.dto.InpatientMedicineEncounterInfoDto">-->
|
||||
<!-- SELECT T3.bus_no,--住院号-->
|
||||
<!-- T4.name AS patient_name,--患者姓名-->
|
||||
<!-- T2.bus_no AS med_request_bus_no,--发药单号-->
|
||||
<!-- T6.name AS occurrence_name,--发药人-->
|
||||
<!-- T5.occurrence_time,--发药时间-->
|
||||
<!-- T2.status_enum--状态-->
|
||||
<!-- FROM wor_supply_request AS T1-->
|
||||
<!-- INNER JOIN med_medication_request AS T2-->
|
||||
<!-- ON T1.item_id = T2.id-->
|
||||
<!-- AND T2.delete_flag = '0'-->
|
||||
<!-- INNER JOIN adm_encounter AS T3-->
|
||||
<!-- ON T2.encounter_id = T3.id-->
|
||||
<!-- AND T3.delete_flag = '0'-->
|
||||
<!-- LEFT JOIN adm_patient AS T4-->
|
||||
<!-- ON T1.patient_id = T4.id-->
|
||||
<!-- AND T4.delete_flag = '0'-->
|
||||
<!-- LEFT JOIN wor_supply_delivery AS T5-->
|
||||
<!-- ON T5.request_id = T1.id-->
|
||||
<!-- AND T5.delete_flag = '0'-->
|
||||
<!-- LEFT JOIN adm_practitioner AS T6-->
|
||||
<!-- ON T5.practitioner_id = T6.id-->
|
||||
<!-- AND T6.delete_flag = '0'-->
|
||||
<!-- WHERE T1.bus_no = #{busNo}-->
|
||||
<!-- AND T1.item_table = #{medicationRequest}-->
|
||||
<!-- AND T1.delete_flag = '0'-->
|
||||
<!-- GROUP BY T3.bus_no,-->
|
||||
<!-- T4.name,-->
|
||||
<!-- T2.bus_no,-->
|
||||
<!-- T6.name,-->
|
||||
<!-- T5.occurrence_time,-->
|
||||
<!-- T2.status_enum-->
|
||||
<!-- </select>-->
|
||||
|
||||
</mapper>
|
||||
@@ -0,0 +1,139 @@
|
||||
<?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.MedicalConsumablesDispenseAppMapper">
|
||||
<select id="selectEncounterInfoListPage" resultType="com.openhis.web.pharmacymanage.dto.EncounterInfoPageDto">
|
||||
SELECT
|
||||
tenant_id,
|
||||
encounter_id,
|
||||
department_name,
|
||||
patient_name,
|
||||
gender_enum,
|
||||
encounter_date,
|
||||
department_id,
|
||||
id_card,
|
||||
start_time
|
||||
FROM
|
||||
(
|
||||
SELECT
|
||||
T1.tenant_id,
|
||||
T1.id AS encounter_id,
|
||||
T1.start_time,
|
||||
TO_CHAR(T1.start_time,'YYYY-MM-DD') AS encounter_date,
|
||||
T1.organization_id AS department_id,
|
||||
T2.gender_enum,
|
||||
T2.name AS patient_name,
|
||||
T2.id_card,
|
||||
T3.name AS department_name
|
||||
FROM adm_encounter AS T1
|
||||
INNER JOIN adm_patient AS T2
|
||||
ON T1.patient_id = T2.id
|
||||
LEFT JOIN adm_organization AS T3
|
||||
ON T1.organization_id = T3.id
|
||||
GROUP BY
|
||||
T1.tenant_id,
|
||||
T1.id,
|
||||
T1.start_time,
|
||||
T1.organization_id,
|
||||
T2.gender_enum,
|
||||
T2.name,
|
||||
T2.id_card,
|
||||
T3.name
|
||||
ORDER BY
|
||||
T1.start_time desc,
|
||||
T1.organization_id,
|
||||
T1.patient_id
|
||||
)
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
<select id="selectPrescriptionPatientInfo" resultType="com.openhis.web.pharmacymanage.dto.PrescriptionPatientInfoDto">
|
||||
SELECT
|
||||
T2.name AS patient_name,
|
||||
T2.gender_enum,
|
||||
T2.birth_date,
|
||||
T4.category_enum,
|
||||
T2.id_card,
|
||||
T5.name AS organization_name,
|
||||
TO_CHAR(T1.start_time,'YYYY-MM-DD') AS encounter_date
|
||||
FROM adm_encounter AS T1
|
||||
INNER JOIN adm_patient AS T2
|
||||
ON T1.patient_id = T2.id
|
||||
LEFT JOIN wor_device_request AS T3
|
||||
ON T1.id = T3.encounter_id
|
||||
LEFT JOIN fin_contract AS T4
|
||||
ON T3.contract_no = T4.bus_no
|
||||
LEFT JOIN adm_organization AS T5
|
||||
ON T1.organization_id = T5.id
|
||||
WHERE
|
||||
T1.id = #{encounterId}
|
||||
GROUP BY
|
||||
T2.name,
|
||||
T2.gender_enum,
|
||||
T2.birth_date,
|
||||
T4.category_enum,
|
||||
T2.id_card,
|
||||
T5.name,
|
||||
T1.start_time
|
||||
</select>
|
||||
<select id="selectPrescriptionConsumablesInfoList" resultType="com.openhis.web.pharmacymanage.dto.PrescriptionMedicineInfoDto">
|
||||
SELECT
|
||||
DISTINCT
|
||||
T8.name AS department_name,
|
||||
T9.name AS doctor_name,
|
||||
'器材发放' AS item_type,
|
||||
T7.name AS condition_name,
|
||||
T2.prescription_no,
|
||||
T4.name AS medicine_name,
|
||||
T3.device_specifications AS total_Volume,
|
||||
T2.dispense_frequency_code AS rate_code,
|
||||
T1.quantity,
|
||||
T5.unit_price,
|
||||
T5.total_price
|
||||
FROM wor_device_dispense AS T1
|
||||
INNER JOIN wor_device_request AS T2
|
||||
ON T1.device_req_id = T2.id
|
||||
INNER JOIN adm_device AS T3
|
||||
ON T1.device_req_id = T3.id
|
||||
INNER JOIN adm_device_definition AS T4
|
||||
ON T3.medication_def_id = T4.id
|
||||
AND T4.category_code IN ('2')
|
||||
INNER JOIN adm_charge_item AS T5
|
||||
ON T1.device_req_id = T5.service_id
|
||||
INNER JOIN adm_encounter AS T6
|
||||
ON T1.encounter_id = T6.id
|
||||
INNER JOIN cli_condition_definition AS T7
|
||||
ON T2.condition_id = T7.id
|
||||
LEFT JOIN adm_organization AS T8
|
||||
ON T6.organization_id = T8.id
|
||||
LEFT JOIN adm_practitioner AS T9
|
||||
ON T1.practitioner_id = T9.id
|
||||
|
||||
WHERE
|
||||
T1.encounter_id = #{encounterId}
|
||||
AND T1.status_enum = 2
|
||||
ORDER BY
|
||||
prescription_no,
|
||||
medicine_name
|
||||
</select>
|
||||
<select id="selectDispenseInventoryInfoByPrescriptionNo" resultType="com.openhis.web.pharmacymanage.dto.DispenseInventoryDto">
|
||||
SELECT
|
||||
T1.id AS dispense_id,
|
||||
T1.unit_code AS dispense_unit_code,
|
||||
T1.quantity AS dispense_quantity,
|
||||
T3.Id AS inventory_id,
|
||||
T3.unit_code AS inventory_unit_code,
|
||||
T3.quantity AS inventory_quantity,
|
||||
T5.part_percent
|
||||
FROM wor_device_dispense AS T1
|
||||
INNER JOIN wor_device_request AS T2
|
||||
ON T1.device_req_id = T2.id
|
||||
INNER JOIN wor_inventory_item AS T3
|
||||
ON T1.device_def_id = T3.item_id
|
||||
AND T3.item_table = #{medMedicationDefinition}
|
||||
INNER JOIN adm_device AS T4
|
||||
ON T1.device_def_id = T4.id
|
||||
INNER JOIN adm_device_definition AS T5
|
||||
ON T4.bus_no = T5.id
|
||||
WHERE
|
||||
T2.prescription_no = #{prescriptionNo}
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,115 @@
|
||||
<?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.MedicationDetailsMapper">
|
||||
<select id="selectAmbPractitionerDetailPage"
|
||||
resultType="com.openhis.web.pharmacymanage.dto.MedDetailedAccountPageDto">
|
||||
select A.outpatient_no,
|
||||
A.prescription_no,
|
||||
A.patient_name,
|
||||
A.practitioner_id,
|
||||
A.practitioner_name,
|
||||
A.medication_name,
|
||||
A.py_str,
|
||||
A.bus_no,
|
||||
A.dispense_no,
|
||||
A.yb_no,
|
||||
A.total_volume,
|
||||
A.dispense_quantity,
|
||||
A.dispense_price,
|
||||
A.refund_quantity,
|
||||
A.refund_price,
|
||||
A.lot_number,
|
||||
A.manufacturer_text,
|
||||
A.supplier_name,
|
||||
A.unit_code,
|
||||
A.refund_unit_code,
|
||||
A.dispense_time,
|
||||
A.location_id,
|
||||
A.tenant_id
|
||||
from (
|
||||
WITH refund_info AS (
|
||||
SELECT mmr.refund_medicine_id,
|
||||
mmd.dispense_quantity,
|
||||
mmd.unit_code,
|
||||
aci.total_price
|
||||
FROM med_medication_dispense mmd
|
||||
LEFT JOIN med_medication_request mmr
|
||||
ON mmd.med_req_id = mmr.id
|
||||
AND mmr.delete_flag = '0'
|
||||
INNER JOIN adm_charge_item aci
|
||||
ON aci.service_id = mmr.refund_medicine_id
|
||||
AND aci.delete_flag = '0'
|
||||
WHERE mmd.status_enum = #{refunded}
|
||||
AND mmd.delete_flag = '0'
|
||||
AND mmr.refund_medicine_id IS not null
|
||||
)
|
||||
SELECT def."name" AS medication_name,
|
||||
def.py_str,
|
||||
def.bus_no,
|
||||
def.yb_no,
|
||||
def.manufacturer_text,
|
||||
mmr.prescription_no,
|
||||
ae.bus_no AS outpatient_no,
|
||||
pat.name AS patient_name,
|
||||
mm.total_volume,
|
||||
mmd.unit_code,
|
||||
mmd.bus_no AS dispense_no,
|
||||
mmd.lot_number,
|
||||
mmd.dispense_quantity,
|
||||
mmd.encounter_id,
|
||||
mmd.practitioner_id,
|
||||
mmd.dispense_time,
|
||||
ap.name AS practitioner_name,
|
||||
mmd.location_id,
|
||||
aci.total_price AS dispense_price,
|
||||
ri.dispense_quantity AS refund_quantity,
|
||||
ri.unit_code AS refund_unit_code,
|
||||
ri.total_price AS refund_price,
|
||||
wii.supplier_id,
|
||||
sup.name AS supplier_name,
|
||||
mmd.tenant_id
|
||||
FROM med_medication_dispense mmd
|
||||
LEFT JOIN med_medication_request mmr
|
||||
ON mmd.med_req_id = mmr.id
|
||||
AND mmr.delete_flag = '0'
|
||||
INNER JOIN adm_charge_item aci
|
||||
ON aci.service_id = mmr.id
|
||||
AND aci.delete_flag = '0'
|
||||
LEFT JOIN med_medication_definition def
|
||||
ON mmd.medication_id = def.id
|
||||
AND def.delete_flag = '0'
|
||||
LEFT JOIN med_medication mm
|
||||
ON mm.medication_def_id = def.id
|
||||
AND mm.delete_flag = '0'
|
||||
LEFT JOIN wor_inventory_item wii
|
||||
ON wii.item_id = mmd.medication_id
|
||||
AND wii.lot_number = mmd.lot_number
|
||||
AND wii.location_id = mmd.location_id
|
||||
AND wii.delete_flag = '0'
|
||||
LEFT JOIN refund_info AS ri
|
||||
ON ri.refund_medicine_id = mmr.id
|
||||
LEFT JOIN adm_location al
|
||||
ON al.id = mmd.location_id
|
||||
LEFT JOIN adm_practitioner ap
|
||||
ON ap.id = mmd.practitioner_id
|
||||
LEFT JOIN adm_patient pat
|
||||
ON pat.id = mmd.patient_id
|
||||
LEFT JOIN adm_encounter ae
|
||||
ON ae.id = mmd.encounter_id
|
||||
LEFT JOIN adm_supplier sup
|
||||
ON sup.id = wii.supplier_id
|
||||
WHERE mmd.status_enum = #{completed}
|
||||
AND mmd.dispense_enum = #{amb}
|
||||
AND mmd.delete_flag = '0'
|
||||
) AS A
|
||||
${ew.customSqlSegment}
|
||||
<choose>
|
||||
<when test="dispenseEnum == 1">
|
||||
ORDER BY A.practitioner_name, A.dispense_time DESC
|
||||
</when>
|
||||
<when test="dispenseEnum == 2">
|
||||
ORDER BY A.outpatient_no, A.prescription_no
|
||||
</when>
|
||||
</choose>
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,59 @@
|
||||
<?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.PendingMedicationDetailsMapper">
|
||||
<select id="selectPendingMedicationDetailsPage"
|
||||
resultType="com.openhis.web.pharmacymanage.dto.PendingMedicationPageDto">
|
||||
SELECT T7.medicine_no, --药品编码
|
||||
T7.medicine_name, --药品名称
|
||||
T7.py_str, --药品拼音
|
||||
T7.dispense_quantity, --待发药数量
|
||||
T7.unit_code, --请求单位
|
||||
T7.dispense_enum, --发药类型
|
||||
T7.patient_name, --患者姓名
|
||||
T7.prescription_no, --处方号
|
||||
T7.outpatient_no, --门诊号
|
||||
T7.admission_no, --住院号
|
||||
T7.create_time, --开单时间
|
||||
T7.tenant_id --租户ID
|
||||
FROM (
|
||||
SELECT T1.bus_no AS medicine_no, --药品编码
|
||||
T6."name" AS medicine_name, --药品名称
|
||||
T6.py_str, --药品拼音
|
||||
T1.quantity AS dispense_quantity, --待发药数量
|
||||
T1.unit_code, --请求单位
|
||||
T1.dispense_enum, --发药类型
|
||||
T3."name" AS patient_name, --患者姓名
|
||||
T4.prescription_no, --处方号
|
||||
CASE
|
||||
WHEN T2.class_enum = #{amb}
|
||||
THEN T2.bus_no
|
||||
ELSE '' END AS outpatient_no, --门诊号
|
||||
CASE
|
||||
WHEN T2.class_enum = #{imp}
|
||||
THEN T2.bus_no
|
||||
ELSE '' END AS admission_no, --住院号
|
||||
T1.create_time, --开单时间
|
||||
T1.tenant_id --租户ID
|
||||
FROM med_medication_dispense AS T1
|
||||
LEFT JOIN adm_encounter AS T2
|
||||
ON T1.encounter_id = T2.id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_patient AS T3
|
||||
ON T1.patient_id = T3.id
|
||||
AND T3.delete_flag = '0'
|
||||
INNER JOIN med_medication_request AS T4
|
||||
ON T1.med_req_id = T4.id
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN med_medication_definition AS T6
|
||||
ON T1.medication_id = T6.id
|
||||
AND T6.delete_flag = '0'
|
||||
LEFT JOIN med_medication AS T5
|
||||
ON T5.medication_def_id = T6.id
|
||||
AND T5.delete_flag = '0'
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND T1.status_enum = #{inProgress}
|
||||
ORDER BY T1.create_time DESC
|
||||
) AS T7
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,422 @@
|
||||
<?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.ReturnMedicineMapper">
|
||||
<select id="selectEncounterInfoListPage" resultType="com.openhis.web.pharmacymanage.dto.EncounterInfoPageDto">
|
||||
SELECT ii.reception_time,
|
||||
ii.encounter_id,
|
||||
ii.encounter_no,
|
||||
ii.tenant_id,
|
||||
ii.refund_enum,
|
||||
ii.patient_name,
|
||||
ii.patient_wb_str,
|
||||
ii.patient_py_str,
|
||||
ii.id_card,
|
||||
ii.gender_enum,
|
||||
ii.birth_date,
|
||||
ii.department_name
|
||||
FROM (
|
||||
SELECT ae.reception_time,
|
||||
ae.id AS encounter_id,
|
||||
ae.bus_no AS encounter_no,
|
||||
ae.tenant_id,
|
||||
mmr.status_enum AS refund_enum,
|
||||
ap."name" AS patient_name,
|
||||
ap.wb_str AS patient_wb_str,
|
||||
ap.py_str AS patient_py_str,
|
||||
ap.id_card,
|
||||
ap.gender_enum,
|
||||
ap.birth_date,
|
||||
ao."name" AS department_name
|
||||
FROM adm_encounter ae
|
||||
LEFT JOIN med_medication_request mmr
|
||||
ON mmr.encounter_id = ae.id
|
||||
LEFT JOIN adm_patient ap
|
||||
ON ae.patient_id = ap.id
|
||||
LEFT JOIN adm_organization ao
|
||||
ON ao.id = ae.organization_id
|
||||
WHERE mmr.refund_medicine_id IS NOT NULL
|
||||
AND ae.class_enum = #{amb}
|
||||
UNION
|
||||
SELECT ae.reception_time,
|
||||
ae.id AS encounter_id,
|
||||
ae.bus_no AS encounter_no,
|
||||
ae.tenant_id,
|
||||
wdr.status_enum AS refund_enum,
|
||||
ap."name" AS patient_name,
|
||||
ap.wb_str AS patient_wb_str,
|
||||
ap.py_str AS patient_py_str,
|
||||
ap.id_card,
|
||||
ap.gender_enum,
|
||||
ap.birth_date,
|
||||
ao."name" AS department_name
|
||||
FROM adm_encounter ae
|
||||
LEFT JOIN wor_device_request wdr
|
||||
ON wdr.encounter_id = ae.id
|
||||
LEFT JOIN adm_patient ap
|
||||
ON ae.patient_id = ap.id
|
||||
LEFT JOIN adm_organization ao
|
||||
ON ao.id = ae.organization_id
|
||||
WHERE wdr.refund_device_id IS NOT NULL
|
||||
AND ae.class_enum = #{amb}
|
||||
) AS ii
|
||||
${ew.customSqlSegment}
|
||||
ORDER BY ii.reception_time DESC
|
||||
</select>
|
||||
<select id="selectPrescriptionPatientInfo"
|
||||
resultType="com.openhis.web.pharmacymanage.dto.PrescriptionPatientInfoDto">
|
||||
SELECT T2.name AS patient_name,
|
||||
T2.gender_enum,
|
||||
T2.birth_date,
|
||||
T4.category_enum,
|
||||
T2.id_card,
|
||||
T5.name AS organization_name,
|
||||
T1.start_time AS encounter_date
|
||||
FROM adm_encounter AS T1
|
||||
INNER JOIN adm_patient AS T2
|
||||
ON T1.patient_id = T2.id
|
||||
LEFT JOIN med_medication_request AS T3
|
||||
ON T1.id = T3.encounter_id
|
||||
LEFT JOIN fin_contract AS T4
|
||||
ON T3.contract_no = T4.bus_no
|
||||
LEFT JOIN adm_organization AS T5
|
||||
ON T1.organization_id = T5.id
|
||||
WHERE T1.id = #{encounterId}
|
||||
GROUP BY T2.name,
|
||||
T2.gender_enum,
|
||||
T2.birth_date,
|
||||
T4.category_enum,
|
||||
T2.id_card,
|
||||
T5.name,
|
||||
T1.start_time
|
||||
</select>
|
||||
<select id="selectRequestListByPrescriptionNo"
|
||||
resultType="com.openhis.web.pharmacymanage.dto.ReturnMedicineInfoDto">
|
||||
SELECT T1.id AS dispense_id,
|
||||
T7.name AS department_name,
|
||||
T8.name AS doctor_name,
|
||||
T2.prescription_no,
|
||||
T4.name AS medicine_name,
|
||||
T3.total_volume,
|
||||
T1.unit_code,
|
||||
T6.unit_price,
|
||||
T3.lot_number,
|
||||
T1.dosage_instruction,
|
||||
T1.status_enum,
|
||||
T1.quantity,
|
||||
T1.medication_id,
|
||||
T2.id AS request_id,
|
||||
T2.refund_medicine_id
|
||||
FROM med_medication_dispense AS T1
|
||||
INNER JOIN med_medication_request AS T2
|
||||
ON T1.med_req_id = T2.refund_medicine_id
|
||||
INNER JOIN med_medication AS T3
|
||||
ON T1.medication_id = T3.id
|
||||
INNER JOIN med_medication_definition AS T4
|
||||
ON T1.medication_id = T4.id
|
||||
INNER JOIN adm_encounter AS T5
|
||||
ON T1.encounter_id = T5.id
|
||||
LEFT JOIN adm_charge_item AS T6
|
||||
ON T1.medication_id = T6.product_id
|
||||
LEFT JOIN adm_organization AS T7
|
||||
ON T5.organization_id = T7.id
|
||||
LEFT JOIN adm_practitioner AS T8
|
||||
ON T2.practitioner_id = T8.id
|
||||
WHERE T2.encounter_id = #{encounterId}
|
||||
AND T2.refund_medicine_id IS NOT NULL
|
||||
AND T2.status_enum = #{statusEnum}
|
||||
ORDER BY T1.medication_id,
|
||||
T1.status_enum
|
||||
</select>
|
||||
<select id="selectInventoryInfoList"
|
||||
resultType="com.openhis.web.pharmacymanage.dto.InventoryDto">
|
||||
<choose>
|
||||
<when test="(medDispenseIdList != null and !medDispenseIdList.isEmpty())
|
||||
or (devDispenseIdList != null and !devDispenseIdList.isEmpty())">
|
||||
<if test="medDispenseIdList != null and !medDispenseIdList.isEmpty()">
|
||||
SELECT
|
||||
T1.id AS dispense_id,
|
||||
T1.unit_code AS dispense_unit,
|
||||
T1.quantity,
|
||||
T1.dispense_quantity,
|
||||
T2.id AS inventory_id,
|
||||
T2.unit_code AS inventory_unit_code,
|
||||
T2.quantity AS inventory_quantity,
|
||||
T2.inventory_status_enum,
|
||||
T2.expiration_date,
|
||||
T3.part_percent,
|
||||
T3."name" AS item_name,
|
||||
T3.id AS item_id
|
||||
FROM med_medication_dispense AS T1
|
||||
INNER JOIN wor_inventory_item AS T2
|
||||
ON T1.medication_id = T2.item_id
|
||||
AND T2.delete_flag = '0'
|
||||
AND T2.item_table = #{medMedicationDefinition}
|
||||
AND T1.lot_number = T2.lot_number
|
||||
AND T1.location_id = T2.location_id
|
||||
INNER JOIN med_medication_definition AS T3
|
||||
ON T1.medication_id = T3.id
|
||||
AND T3.delete_flag = '0'
|
||||
WHERE T1.id IN
|
||||
<foreach collection="medDispenseIdList" item="medDispenseId" open="(" separator="," close=")">
|
||||
#{medDispenseId}
|
||||
</foreach>
|
||||
AND T1.delete_flag = '0'
|
||||
</if>
|
||||
<if test="(medDispenseIdList != null and !medDispenseIdList.isEmpty())
|
||||
and (devDispenseIdList != null and !devDispenseIdList.isEmpty())">
|
||||
UNION
|
||||
</if>
|
||||
<if test="devDispenseIdList != null and !devDispenseIdList.isEmpty()">
|
||||
SELECT
|
||||
T4.id AS dispense_id,
|
||||
T4.unit_code AS dispense_unit,
|
||||
T4.quantity,
|
||||
T4.dispense_quantity,
|
||||
T2.id AS inventory_id,
|
||||
T2.unit_code AS inventory_unit_code,
|
||||
T2.quantity AS inventory_quantity,
|
||||
T2.inventory_status_enum,
|
||||
T2.expiration_date,
|
||||
T5.part_percent,
|
||||
T5."name" AS item_name,
|
||||
T5.id AS item_id
|
||||
FROM wor_device_dispense AS T4
|
||||
INNER JOIN wor_inventory_item AS T2
|
||||
ON T4.device_def_id = T2.item_id
|
||||
AND T2.delete_flag = '0'
|
||||
AND T2.item_table = #{admDeviceDefinition}
|
||||
AND T4.lot_number = T2.lot_number
|
||||
AND T4.location_id = T2.location_id
|
||||
INNER JOIN adm_device_definition AS T5
|
||||
ON T4.device_def_id = T5.id
|
||||
AND T5.delete_flag = '0'
|
||||
WHERE T4.id IN
|
||||
<foreach collection="devDispenseIdList" item="devDispenseId" open="(" separator="," close=")">
|
||||
#{devDispenseId}
|
||||
</foreach>
|
||||
AND T4.delete_flag = '0'
|
||||
</if>
|
||||
</when>
|
||||
</choose>
|
||||
</select>
|
||||
<select id="selectReturnMedicineInfo"
|
||||
resultType="com.openhis.web.pharmacymanage.dto.ReturnMedicineInfoDto">
|
||||
SELECT mmd.status_enum AS refund_enum,
|
||||
mmr.refund_medicine_id,
|
||||
mmr.id AS request_id,
|
||||
mmr.quantity,
|
||||
mmr.unit_code,
|
||||
mmr.lot_number,
|
||||
mmr.status_enum AS req_status,
|
||||
mmd.dispense_quantity,
|
||||
mmd.id AS dispense_id,
|
||||
med."name" AS item_name,
|
||||
med.id AS item_id,
|
||||
aci.total_price,
|
||||
aci.service_table,
|
||||
doc."name" AS doctor_name,
|
||||
mmd.trace_no
|
||||
FROM med_medication_request mmr
|
||||
LEFT JOIN med_medication_dispense mmd
|
||||
ON mmr.refund_medicine_id = mmd.med_req_id
|
||||
AND mmd.delete_flag = '0'
|
||||
INNER JOIN med_medication_definition med
|
||||
ON mmr.medication_id = med.id
|
||||
AND med.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item aci
|
||||
ON aci.service_id = mmr.refund_medicine_id
|
||||
AND aci.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner doc
|
||||
ON mmr.practitioner_id = doc.id
|
||||
AND doc.delete_flag = '0'
|
||||
WHERE mmr.refund_medicine_id IS NOT NULL
|
||||
AND mmr.encounter_id = #{encounterId}
|
||||
AND aci.service_table =#{medMedicationRequest}
|
||||
<if test="refundStatus == null">
|
||||
AND mmr.status_enum IN (#{inRefund},#{completed})
|
||||
</if>
|
||||
<if test="refundStatus == 5">
|
||||
AND mmr.status_enum = #{inRefund}
|
||||
</if>
|
||||
<if test="refundStatus == 3">
|
||||
AND mmr.status_enum = #{completed}
|
||||
</if>
|
||||
AND mmr.delete_flag = '0'
|
||||
UNION
|
||||
SELECT wdr.status_enum AS refund_enum,
|
||||
wdr.refund_device_id,
|
||||
wdr.id AS request_id,
|
||||
wdr.quantity,
|
||||
wdr.unit_code,
|
||||
wdr.lot_number,
|
||||
wdr.status_enum AS req_status,
|
||||
wdd.dispense_quantity,
|
||||
wdd.id AS dispense_id,
|
||||
dev."name" AS item_name,
|
||||
dev.id AS item_id,
|
||||
aci.total_price,
|
||||
aci.service_table,
|
||||
doc."name" AS doctor_name,
|
||||
wdd.trace_no
|
||||
FROM wor_device_request wdr
|
||||
LEFT JOIN wor_device_dispense wdd
|
||||
ON wdr.refund_device_id = wdd.device_req_id
|
||||
AND wdd.delete_flag = '0'
|
||||
INNER JOIN adm_device_definition dev
|
||||
ON wdr.device_def_id = dev.id
|
||||
AND dev.delete_flag = '0'
|
||||
LEFT JOIN adm_charge_item aci
|
||||
ON aci.service_id = wdr.refund_device_id
|
||||
AND aci.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner doc
|
||||
ON wdr.requester_id = doc.id
|
||||
AND doc.delete_flag = '0'
|
||||
WHERE wdr.refund_device_id IS NOT NULL
|
||||
AND wdr.encounter_id =#{encounterId}
|
||||
AND aci.service_table =#{worDeviceRequest}
|
||||
<if test="refundStatus == null">
|
||||
AND wdr.status_enum IN (#{inRefund},#{completed})
|
||||
</if>
|
||||
<if test="refundStatus == 5">
|
||||
AND wdr.status_enum = #{inRefund}
|
||||
</if>
|
||||
<if test="refundStatus == 3">
|
||||
AND wdr.status_enum = #{completed}
|
||||
</if>
|
||||
AND wdr.delete_flag = '0'
|
||||
</select>
|
||||
<select id="selectReturnItemDetail" resultType="com.openhis.web.pharmacymanage.dto.DispenseInventoryDto">
|
||||
<choose>
|
||||
<when test="(medDispenseIdList != null and !medDispenseIdList.isEmpty())
|
||||
or (devDispenseIdList != null and !devDispenseIdList.isEmpty())">
|
||||
<if test="medDispenseIdList != null and !medDispenseIdList.isEmpty()">
|
||||
SELECT T1.id AS dispense_id,
|
||||
T1.unit_code AS dispense_unit_code,
|
||||
T1.quantity AS dispense_quantity,
|
||||
T1.status_enum AS dispense_status,
|
||||
T1.med_req_id AS req_id,
|
||||
T1.encounter_id,
|
||||
T1.dispense_time,
|
||||
T1.bus_no AS dispense_no,
|
||||
T1.trace_no,
|
||||
T3.Id AS inventory_id,
|
||||
T3.unit_code AS inventory_unit_code,
|
||||
T3.quantity AS inventory_quantity,
|
||||
T3.lot_number,
|
||||
T3.production_date,
|
||||
T3.expiration_date,
|
||||
T4.part_percent,
|
||||
T4.yb_no,
|
||||
T4.bus_no AS item_no,
|
||||
T4.rx_flag,
|
||||
T5."name" AS preparer_name,
|
||||
T6."name" AS dispense_name,
|
||||
T6.phar_prac_cert_no,
|
||||
T7."name" AS practitioner_name,
|
||||
T8.patient_id,
|
||||
T8.bus_no AS encounter_no,
|
||||
T9.id_card,
|
||||
T9."name" AS patient_name,
|
||||
#{medMedicationDefinition} AS item_table
|
||||
FROM med_medication_dispense AS T1
|
||||
INNER JOIN med_medication_request AS T2
|
||||
ON T1.med_req_id = T2.id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN wor_inventory_item AS T3
|
||||
ON T1.medication_id = T3.item_id
|
||||
AND T3.item_table = #{medMedicationDefinition}
|
||||
AND T1.location_id = T3.location_id
|
||||
AND T1.lot_number = T3.lot_number
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN med_medication_definition AS T4
|
||||
ON T1.medication_id = T4.id
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner AS T5
|
||||
ON T1.preparer_id = T5.id
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner AS T6
|
||||
ON T1.practitioner_id = T6.id
|
||||
AND T6.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner AS T7
|
||||
ON T2.practitioner_id = T7.id
|
||||
AND T7.delete_flag = '0'
|
||||
LEFT JOIN adm_encounter AS T8
|
||||
ON T1.encounter_id = T8.id
|
||||
AND T8.delete_flag = '0'
|
||||
LEFT JOIN adm_patient AS T9
|
||||
ON T1.patient_id = T9.id
|
||||
AND T9.delete_flag = '0'
|
||||
WHERE T1.id IN
|
||||
<foreach collection="medDispenseIdList" item="medDispenseId" open="(" separator="," close=")">
|
||||
#{medDispenseId}
|
||||
</foreach>
|
||||
AND T1.delete_flag = '0'
|
||||
</if>
|
||||
<if test="(medDispenseIdList != null and !medDispenseIdList.isEmpty())
|
||||
and (devDispenseIdList != null and !devDispenseIdList.isEmpty())">
|
||||
UNION
|
||||
</if>
|
||||
<if test="devDispenseIdList != null and !devDispenseIdList.isEmpty()">
|
||||
SELECT T10.id AS dispense_id,
|
||||
T10.unit_code AS dispense_unit_code,
|
||||
T10.quantity AS dispense_quantity,
|
||||
T10.status_enum AS dispense_status,
|
||||
T10.device_req_id AS req_id,
|
||||
T10.encounter_id,
|
||||
T10.dispense_time,
|
||||
T10.bus_no AS dispense_no,
|
||||
T10.trace_no,
|
||||
T3.Id AS inventory_id,
|
||||
T3.unit_code AS inventory_unit_code,
|
||||
T3.quantity AS inventory_quantity,
|
||||
T3.lot_number,
|
||||
T3.production_date,
|
||||
T3.expiration_date,
|
||||
T12.part_percent,
|
||||
T12.yb_no,
|
||||
T12.bus_no AS item_no,
|
||||
T12.rx_flag,
|
||||
null AS preparer_name,
|
||||
T6."name" AS dispense_name,
|
||||
T6.phar_prac_cert_no,
|
||||
T7."name" AS practitioner_name,
|
||||
T8.patient_id,
|
||||
T8.bus_no AS encounter_no,
|
||||
T9.id_card,
|
||||
T9."name" AS patient_name,
|
||||
#{admDeviceDefinition} AS item_table
|
||||
FROM wor_device_dispense AS T10
|
||||
INNER JOIN wor_device_request AS T11
|
||||
ON T10.device_req_id = T11.id
|
||||
AND T11.delete_flag = '0'
|
||||
LEFT JOIN wor_inventory_item AS T3
|
||||
ON T10.device_def_id = T3.item_id
|
||||
AND T3.item_table = #{admDeviceDefinition}
|
||||
AND T10.location_id = T3.location_id
|
||||
AND T10.lot_number = T3.lot_number
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_device_definition AS T12
|
||||
ON T10.device_def_id = T12.id
|
||||
AND T12.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner AS T6
|
||||
ON T10.performer_id = T6.id
|
||||
AND T6.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner AS T7
|
||||
ON T11.requester_id = T7.id
|
||||
AND T7.delete_flag = '0'
|
||||
LEFT JOIN adm_encounter AS T8
|
||||
ON T10.encounter_id = T8.id
|
||||
AND T8.delete_flag = '0'
|
||||
LEFT JOIN adm_patient AS T9
|
||||
ON T10.patient_id = T9.id
|
||||
AND T9.delete_flag = '0'
|
||||
WHERE T10.id IN
|
||||
<foreach collection="devDispenseIdList" item="devDispenseId" open="(" separator="," close=")">
|
||||
#{devDispenseId}
|
||||
</foreach>
|
||||
AND T10.delete_flag = '0'
|
||||
</if>
|
||||
</when>
|
||||
</choose>
|
||||
</select>
|
||||
</mapper>
|
||||
@@ -0,0 +1,527 @@
|
||||
<?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.WesternMedicineDispenseMapper">
|
||||
<select id="selectEncounterInfoListPage" resultType="com.openhis.web.pharmacymanage.dto.EncounterInfoPageDto">
|
||||
SELECT ii.tenant_id,
|
||||
ii.encounter_id,
|
||||
ii.encounter_no,
|
||||
ii.department_name,
|
||||
ii.patient_name,
|
||||
ii.patient_wb_str,
|
||||
ii.patient_py_str,
|
||||
ii.gender_enum,
|
||||
ii.department_id,
|
||||
ii.id_card,
|
||||
ii.reception_time,
|
||||
ii.status_enum,
|
||||
ii.tcm_flag
|
||||
-- ii.location_id
|
||||
FROM (
|
||||
SELECT T1.tenant_id,
|
||||
T1.id AS encounter_id,
|
||||
T1.bus_no AS encounter_no,
|
||||
T1.reception_time,
|
||||
T1.organization_id AS department_id,
|
||||
T2.gender_enum,
|
||||
T2.name AS patient_name,
|
||||
T2.wb_str AS patient_wb_str,
|
||||
T2.py_str AS patient_py_str,
|
||||
T2.id_card,
|
||||
T3.name AS department_name,
|
||||
T4.status_enum,
|
||||
T5.tcm_flag
|
||||
-- T4.location_id
|
||||
FROM adm_encounter AS T1
|
||||
INNER JOIN adm_patient AS T2
|
||||
ON T1.patient_id = T2.id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_organization AS T3
|
||||
ON T1.organization_id = T3.id
|
||||
AND T3.delete_flag = '0'
|
||||
INNER JOIN med_medication_dispense AS T4
|
||||
ON T4.encounter_id = T1.id
|
||||
AND T4.delete_flag = '0'
|
||||
INNER JOIN med_medication_request AS T5
|
||||
ON T4.med_req_id = T5.id
|
||||
AND T5.delete_flag = '0'
|
||||
-- 因发药配药合并,前台只能看到待发药,已发药状态,但是后台配药发药状态都查
|
||||
WHERE <if test="statusEnum == null">
|
||||
T4.status_enum IN (#{inProgress},#{completed},#{preparation},#{prepared})
|
||||
</if>
|
||||
<if test="statusEnum == 3">
|
||||
T4.status_enum IN (#{inProgress},#{preparation},#{prepared})
|
||||
</if>
|
||||
<if test="statusEnum == 4">
|
||||
T4.status_enum = #{completed}
|
||||
</if>
|
||||
AND T1.class_enum = #{amb}
|
||||
GROUP BY T1.tenant_id,
|
||||
T1.id,
|
||||
T1.bus_no,
|
||||
T1.reception_time,
|
||||
T1.organization_id,
|
||||
T2.gender_enum,
|
||||
T2.name,
|
||||
T2.wb_str,
|
||||
T2.py_str,
|
||||
T2.id_card,
|
||||
T3.name,
|
||||
T4.status_enum,
|
||||
T5.tcm_flag
|
||||
-- T4.location_id
|
||||
ORDER BY T1.reception_time desc
|
||||
) AS ii
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
<select id="selectPrescriptionPatientInfo" resultType="com.openhis.web.pharmacymanage.dto.PrescriptionPatientInfoDto">
|
||||
SELECT T2.name AS patient_name,
|
||||
T2.gender_enum,
|
||||
T2.birth_date,
|
||||
T2.phone,
|
||||
T4.category_enum,
|
||||
T4.contract_name,
|
||||
T2.id_card,
|
||||
T2.bus_no AS patient_bus_no,
|
||||
T5.name AS organization_name,
|
||||
(SELECT T6.name
|
||||
FROM adm_organization AS T6
|
||||
WHERE T6.id = #{hospitalId}
|
||||
AND T6.delete_flag = '0') AS hospital_name,
|
||||
TO_CHAR(T1.start_time, 'YYYY-MM-DD') AS encounter_date,
|
||||
T1.id AS encounter_id,
|
||||
T8.id AS condition_id,
|
||||
T8.name AS condition_name
|
||||
FROM adm_encounter AS T1
|
||||
INNER JOIN adm_patient AS T2
|
||||
ON T1.patient_id = T2.id
|
||||
LEFT JOIN med_medication_request AS T3
|
||||
ON T1.id = T3.encounter_id
|
||||
LEFT JOIN adm_charge_item AS T9
|
||||
ON T9.encounter_id = T1.id
|
||||
AND T9.delete_flag = '0'
|
||||
LEFT JOIN adm_account AS T10
|
||||
ON T10.id = T9.account_id
|
||||
AND T10.delete_flag = '0'
|
||||
LEFT JOIN fin_contract AS T4
|
||||
ON T4.bus_no = T10.contract_no
|
||||
LEFT JOIN adm_organization AS T5
|
||||
ON T1.organization_id = T5.id
|
||||
LEFT JOIN adm_encounter_diagnosis T6
|
||||
ON T1.id = T6.encounter_id
|
||||
AND T6.maindise_flag = '1'
|
||||
AND T6.delete_flag = '0'
|
||||
LEFT JOIN cli_condition AS T7
|
||||
ON T6.condition_id = T7.id
|
||||
AND T7.delete_flag = '0'
|
||||
LEFT JOIN cli_condition_definition AS T8
|
||||
ON T7.definition_id = T8.id
|
||||
AND T8.delete_flag = '0'
|
||||
WHERE T1.id = #{encounterId}
|
||||
GROUP BY T2.name,
|
||||
T2.gender_enum,
|
||||
T2.birth_date,
|
||||
T2.phone,
|
||||
T4.category_enum,
|
||||
T4.contract_name,
|
||||
T2.id_card,
|
||||
T2.bus_no,
|
||||
T5.name,
|
||||
hospital_name,
|
||||
T1.start_time,
|
||||
T1.id,
|
||||
T8.id
|
||||
</select>
|
||||
<select id="selectPrescriptionMedicineInfoList" resultType="com.openhis.web.pharmacymanage.dto.PrescriptionMedicineInfoDto">
|
||||
SELECT ii.department_name,
|
||||
ii.doctor_name,
|
||||
ii.item_type,
|
||||
ii.condition_name,
|
||||
ii.prescription_no,
|
||||
ii.lot_number,
|
||||
ii.request_id,
|
||||
ii.tcm_flag,
|
||||
ii.medicine_name,
|
||||
ii.medicine_id,
|
||||
ii.total_volume,
|
||||
ii.unit_code,
|
||||
ii.encounter_id,
|
||||
ii.dose,
|
||||
ii.status_enum,
|
||||
ii.rate_code,
|
||||
ii.location_id,
|
||||
ii.method_code,
|
||||
ii.dose_unit_code,
|
||||
ii.max_dose,
|
||||
ii.first_dose,
|
||||
ii.first_duration,
|
||||
ii.dispense_interval,
|
||||
ii.dispense_per_quantity,
|
||||
ii.dispense_per_duration,
|
||||
ii.quantity,
|
||||
ii.dispense_id,
|
||||
ii.unit_price,
|
||||
ii.total_price,
|
||||
ii.dispense_doctor_name,
|
||||
ii.preparer_doctor_name,
|
||||
ii.location_name,
|
||||
ii.encounter_bus_no,
|
||||
ii.req_authored_time,
|
||||
ii.no,
|
||||
ii.charge_type,
|
||||
ii.pharmacology_category_code,
|
||||
ii.med_type_code,
|
||||
ii.skin_test_flag,
|
||||
ii.group_id
|
||||
FROM ( SELECT T8."name" AS department_name,
|
||||
T9."name" AS doctor_name,
|
||||
T3.category_code AS item_type,
|
||||
T7."name" AS condition_name,
|
||||
T2.prescription_no,
|
||||
T2.lot_number,
|
||||
T2.id AS request_id,
|
||||
T2.tcm_flag,
|
||||
T3."name" AS medicine_name,
|
||||
T3.id AS medicine_id,
|
||||
T4.total_volume,
|
||||
T1.unit_code,
|
||||
T1.encounter_id,
|
||||
T1.dose,
|
||||
T1.status_enum,
|
||||
T2.rate_code,
|
||||
T1.location_id,
|
||||
T1.method_code,
|
||||
T2.dose_unit_code,
|
||||
T2.max_dose,
|
||||
T2.first_dose,
|
||||
T2.first_duration,
|
||||
T2.dispense_interval,
|
||||
T2.dispense_per_quantity,
|
||||
T2.dispense_per_duration,
|
||||
T1.quantity,
|
||||
T1.id AS dispense_id,
|
||||
T5.unit_price,
|
||||
T5.total_price,
|
||||
T10."name" AS dispense_doctor_name,
|
||||
T11."name" AS preparer_doctor_name,
|
||||
T13."name" AS location_name,
|
||||
T6.bus_no AS encounter_bus_no,
|
||||
T2.req_authored_time,
|
||||
T14.no,
|
||||
T15.contract_name AS charge_type,
|
||||
T3.pharmacology_category_code,
|
||||
T16.med_type_code,
|
||||
T3.skin_test_flag,
|
||||
T2.group_id AS group_id,
|
||||
T1.tenant_id
|
||||
FROM med_medication_dispense AS T1
|
||||
LEFT JOIN med_medication_request AS T2
|
||||
ON T1.med_req_id = T2.id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN med_medication_definition AS T3
|
||||
ON T1.medication_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'
|
||||
INNER JOIN adm_charge_item AS T5
|
||||
ON T1.med_req_id = T5.service_id
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN adm_encounter AS T6
|
||||
ON T1.encounter_id = T6.id
|
||||
AND T6.delete_flag = '0'
|
||||
LEFT JOIN cli_condition AS T12
|
||||
ON T2.condition_id = T12.id
|
||||
AND T12.delete_flag = '0'
|
||||
LEFT JOIN cli_condition_definition AS T7
|
||||
ON T12.definition_id = T7.id
|
||||
AND T7.delete_flag = '0'
|
||||
LEFT JOIN adm_organization AS T8
|
||||
ON T6.organization_id = T8.id
|
||||
AND T8.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner AS T9
|
||||
ON T2.practitioner_id = T9.id
|
||||
AND T9.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner AS T10
|
||||
ON T1.practitioner_id = T10.id
|
||||
AND T10.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner AS T11
|
||||
ON T1.preparer_id = T11.id
|
||||
AND T11.delete_flag = '0'
|
||||
LEFT JOIN adm_location AS T13
|
||||
ON T1.location_id = T13.id
|
||||
AND T13.delete_flag = '0'
|
||||
LEFT JOIN adm_account AS T14
|
||||
ON T5.account_id = T14.id
|
||||
AND T14.delete_flag = '0'
|
||||
LEFT JOIN fin_contract AS T15
|
||||
ON T14.contract_no = T15.bus_no
|
||||
AND T15.delete_flag = '0'
|
||||
LEFT JOIN adm_encounter_diagnosis AS T16
|
||||
ON T2.encounter_id = T16.encounter_id
|
||||
AND T2.condition_id = T16.condition_id
|
||||
AND T16.delete_flag = '0'
|
||||
WHERE T1.delete_flag = '0'
|
||||
-- 因发药配药合并,前台只能看到待发药,已发药状态,但是后台配药发药状态都查
|
||||
AND
|
||||
<if test="dispenseStatus == null">
|
||||
T1.status_enum IN (#{inProgress},#{completed},#{preparation},#{prepared})
|
||||
</if>
|
||||
<if test="dispenseStatus == 3">
|
||||
T1.status_enum IN (#{inProgress},#{preparation},#{prepared})
|
||||
</if>
|
||||
<if test="dispenseStatus == 4">
|
||||
T1.status_enum = #{completed}
|
||||
</if>
|
||||
ORDER BY prescription_no DESC
|
||||
) AS ii
|
||||
${ew.customSqlSegment}
|
||||
</select>
|
||||
<select id="selectDispenseInventoryInfoByPrescriptionNo" resultType="com.openhis.web.pharmacymanage.dto.DispenseInventoryDto">
|
||||
SELECT T1.id AS dispense_id,
|
||||
T1.unit_code AS dispense_unit_code,
|
||||
T1.quantity AS dispense_quantity,
|
||||
T1.status_enum AS dispense_status,
|
||||
T1.med_req_id,
|
||||
T1.encounter_id,
|
||||
T1.dispense_time,
|
||||
T1.bus_no AS dispense_no,
|
||||
T3.Id AS inventory_id,
|
||||
T3.unit_code AS inventory_unit_code,
|
||||
T3.quantity AS inventory_quantity,
|
||||
T3.lot_number,
|
||||
T3.production_date,
|
||||
T3.expiration_date,
|
||||
T3.trace_no,
|
||||
T4.part_percent,
|
||||
T4.yb_no,
|
||||
T4.bus_no AS medication_no,
|
||||
T4.rx_flag,
|
||||
T5."name" AS preparer_name,
|
||||
T6."name" AS dispense_name,
|
||||
T6.phar_prac_cert_no,
|
||||
T7."name" AS practitioner_name,
|
||||
T8.patient_id,
|
||||
T8.bus_no AS encounter_no
|
||||
FROM med_medication_dispense AS T1
|
||||
INNER JOIN med_medication_request AS T2
|
||||
ON T1.med_req_id = T2.id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN wor_inventory_item AS T3
|
||||
ON T1.medication_id = T3.item_id
|
||||
AND T3.item_table = #{medMedicationDefinition}
|
||||
AND T1.location_id = T3.location_id
|
||||
AND T1.lot_number = T3.lot_number
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN med_medication_definition AS T4
|
||||
ON T1.medication_id = T4.id
|
||||
AND T4.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner AS T5
|
||||
ON T1.preparer_id = T5.id
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner AS T6
|
||||
ON T1.practitioner_id = T6.id
|
||||
AND T6.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner AS T7
|
||||
ON T2.practitioner_id = T7.id
|
||||
AND T7.delete_flag = '0'
|
||||
LEFT JOIN adm_encounter AS T8
|
||||
ON T1.encounter_id = T8.id
|
||||
AND T8.delete_flag = '0'
|
||||
WHERE T2.prescription_no = #{prescriptionNo}
|
||||
AND T1.delete_flag = '0'
|
||||
</select>
|
||||
<select id="getPreparerDoctorList" resultType="com.openhis.administration.domain.Practitioner">
|
||||
SELECT ap.id,
|
||||
ap."name"
|
||||
FROM adm_practitioner ap
|
||||
LEFT JOIN adm_practitioner_role apr
|
||||
ON ap.id = apr.practitioner_id
|
||||
WHERE apr.role_code = #{pharmacist}
|
||||
GROUP BY ap.id,
|
||||
ap."name"
|
||||
</select>
|
||||
<select id="selectMonthlySettlementPatientInfoList" resultType="com.openhis.web.pharmacymanage.dto.PrescriptionMedicineInfoDto">
|
||||
SELECT T8."name" AS department_name,
|
||||
T9."name" AS doctor_name,
|
||||
T3.category_code AS item_type,
|
||||
T7."name" AS condition_name,
|
||||
T2.prescription_no,
|
||||
T2.lot_number,
|
||||
T2.id AS request_id,
|
||||
T2.tcm_flag,
|
||||
T3."name" AS medicine_name,
|
||||
T3.id AS medicine_id,
|
||||
T4.total_volume,
|
||||
T1.unit_code,
|
||||
T1.encounter_id,
|
||||
T1.dose,
|
||||
T1.status_enum,
|
||||
T2.rate_code,
|
||||
T1.location_id,
|
||||
T1.method_code,
|
||||
T2.dose_unit_code,
|
||||
T2.max_dose,
|
||||
T2.first_dose,
|
||||
T2.first_duration,
|
||||
T2.dispense_interval,
|
||||
T2.dispense_per_quantity,
|
||||
T2.dispense_per_duration,
|
||||
T1.quantity,
|
||||
T1.id AS dispense_id,
|
||||
T5.unit_price,
|
||||
T5.total_price,
|
||||
T10."name" AS dispense_doctor_name,
|
||||
T11."name" AS preparer_doctor_name,
|
||||
T13."name" AS location_name,
|
||||
T6.bus_no AS encounter_bus_no,
|
||||
T2.req_authored_time,
|
||||
T14.no,
|
||||
T15.contract_name AS charge_type,
|
||||
T3.pharmacology_category_code,
|
||||
T16.med_type_code,
|
||||
T3.skin_test_flag,
|
||||
T2.group_id AS group_id,
|
||||
#{medicine} AS type
|
||||
FROM med_medication_dispense AS T1
|
||||
LEFT JOIN med_medication_request AS T2
|
||||
ON T1.med_req_id = T2.id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN med_medication_definition AS T3
|
||||
ON T1.medication_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'
|
||||
INNER JOIN adm_charge_item AS T5
|
||||
ON T1.med_req_id = T5.service_id
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN adm_encounter AS T6
|
||||
ON T1.encounter_id = T6.id
|
||||
AND T6.delete_flag = '0'
|
||||
LEFT JOIN cli_condition AS T12
|
||||
ON T2.condition_id = T12.id
|
||||
AND T12.delete_flag = '0'
|
||||
LEFT JOIN cli_condition_definition AS T7
|
||||
ON T12.definition_id = T7.id
|
||||
AND T7.delete_flag = '0'
|
||||
LEFT JOIN adm_organization AS T8
|
||||
ON T6.organization_id = T8.id
|
||||
AND T8.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner AS T9
|
||||
ON T2.practitioner_id = T9.id
|
||||
AND T9.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner AS T10
|
||||
ON T1.practitioner_id = T10.id
|
||||
AND T10.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner AS T11
|
||||
ON T1.preparer_id = T11.id
|
||||
AND T11.delete_flag = '0'
|
||||
LEFT JOIN adm_location AS T13
|
||||
ON T1.location_id = T13.id
|
||||
AND T13.delete_flag = '0'
|
||||
LEFT JOIN adm_account AS T14
|
||||
ON T5.account_id = T14.id
|
||||
AND T14.delete_flag = '0'
|
||||
LEFT JOIN fin_contract AS T15
|
||||
ON T14.contract_no = T15.bus_no
|
||||
AND T15.delete_flag = '0'
|
||||
LEFT JOIN adm_encounter_diagnosis AS T16
|
||||
ON T2.encounter_id = T16.encounter_id
|
||||
AND T2.condition_id = T16.condition_id
|
||||
AND T16.delete_flag = '0'
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND T1.status_enum = #{completed}
|
||||
AND T1.location_id = #{locationId}
|
||||
AND TO_CHAR(T1.dispense_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
|
||||
UNION
|
||||
SELECT T8."name" AS department_name,
|
||||
T9."name" AS doctor_name,
|
||||
T3.category_code AS item_type,
|
||||
T7."name" AS condition_name,
|
||||
T2.prescription_no,
|
||||
T2.lot_number,
|
||||
T2.id AS request_id,
|
||||
NULL AS tcm_flag,
|
||||
T3."name" AS medicine_name,
|
||||
T3.id AS medicine_id,
|
||||
T3.size AS total_volume,
|
||||
T1.unit_code,
|
||||
T1.encounter_id,
|
||||
NULL AS dose,
|
||||
T1.status_enum,
|
||||
T2.rate_code,
|
||||
T1.location_id,
|
||||
NULL AS method_code,
|
||||
NULL AS dose_unit_code,
|
||||
NULL AS max_dose,
|
||||
NULL AS first_dose,
|
||||
NULL AS first_duration,
|
||||
NULL AS dispense_interval,
|
||||
NULL AS dispense_per_quantity,
|
||||
NULL AS dispense_per_duration,
|
||||
T1.quantity,
|
||||
T1.id AS dispense_id,
|
||||
T5.unit_price,
|
||||
T5.total_price,
|
||||
T10."name" AS dispense_doctor_name,
|
||||
NULL AS preparer_doctor_name,
|
||||
T13."name" AS location_name,
|
||||
T6.bus_no AS encounter_bus_no,
|
||||
T2.req_authored_time,
|
||||
T14.no,
|
||||
T15.contract_name AS charge_type,
|
||||
NULL AS pharmacology_category_code,
|
||||
T16.med_type_code,
|
||||
NULL AS skin_test_flag,
|
||||
NULL AS group_id,
|
||||
#{device} AS type
|
||||
FROM wor_device_dispense AS T1
|
||||
LEFT JOIN wor_device_request AS T2
|
||||
ON T1.device_req_id = T2.id
|
||||
AND T2.delete_flag = '0'
|
||||
LEFT JOIN adm_device_definition AS T3
|
||||
ON T1.device_def_id = T3.id
|
||||
AND T3.delete_flag = '0'
|
||||
LEFT JOIN adm_device AS T4
|
||||
ON T3.id = T4.device_def_id
|
||||
AND T4.delete_flag = '0'
|
||||
INNER JOIN adm_charge_item AS T5
|
||||
ON T1.device_req_id = T5.service_id
|
||||
AND T5.delete_flag = '0'
|
||||
LEFT JOIN adm_encounter AS T6
|
||||
ON T1.encounter_id = T6.id
|
||||
AND T6.delete_flag = '0'
|
||||
LEFT JOIN cli_condition AS T12
|
||||
ON T2.condition_id = T12.id
|
||||
AND T12.delete_flag = '0'
|
||||
LEFT JOIN cli_condition_definition AS T7
|
||||
ON T12.definition_id = T7.id
|
||||
AND T7.delete_flag = '0'
|
||||
LEFT JOIN adm_organization AS T8
|
||||
ON T6.organization_id = T8.id
|
||||
AND T8.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner AS T9
|
||||
ON T2.requester_id = T9.id
|
||||
AND T9.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner AS T10
|
||||
ON T1.performer_id = T10.id
|
||||
AND T10.delete_flag = '0'
|
||||
LEFT JOIN adm_location AS T13
|
||||
ON T1.location_id = T13.id
|
||||
AND T13.delete_flag = '0'
|
||||
LEFT JOIN adm_account AS T14
|
||||
ON T5.account_id = T14.id
|
||||
AND T14.delete_flag = '0'
|
||||
LEFT JOIN fin_contract AS T15
|
||||
ON T14.contract_no = T15.bus_no
|
||||
AND T15.delete_flag = '0'
|
||||
LEFT JOIN adm_encounter_diagnosis AS T16
|
||||
ON T2.encounter_id = T16.encounter_id
|
||||
AND T2.condition_id = T16.condition_id
|
||||
AND T16.delete_flag = '0'
|
||||
WHERE T1.delete_flag = '0'
|
||||
AND T1.status_enum = #{completed}
|
||||
AND T1.location_id = #{locationId}
|
||||
AND TO_CHAR(T1.dispense_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
|
||||
</select>
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user