282 lines
14 KiB
XML
282 lines
14 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.inhospitalnursestation.mapper.MedicineSummaryAppMapper">
|
|
<resultMap id="MedicineDispenseFormMap" type="com.openhis.web.inhospitalnursestation.dto.MedicineDispenseFormDto">
|
|
<result property="encounterId" column="encounter_id"/>
|
|
<result property="skinTestFlag" column="skin_test_flag"/>
|
|
<result property="injectFlag" column="inject_flag"/>
|
|
<result property="tcmFlag" column="tcm_flag"/>
|
|
<result property="chineseHerbsDoseQuantity" column="chinese_herbs_dose_quantity"/>
|
|
<result property="sufferingFlag" column="suffering_flag"/>
|
|
<result property="adviceId" column="advice_id"/>
|
|
<result property="adviceName" column="advice_name"/>
|
|
<result property="itemId" column="item_id"/>
|
|
<result property="volume" column="volume"/>
|
|
<result property="lotNumber" column="lot_number"/>
|
|
<result property="quantity" column="quantity"/>
|
|
<result property="unitCode" column="unit_code"/>
|
|
<result property="methodCode" column="method_code"/>
|
|
<result property="rateCode" column="rate_code"/>
|
|
<result property="dose" column="dose"/>
|
|
<result property="doseUnitCode" column="dose_unit_code"/>
|
|
<result property="positionId" column="position_id"/>
|
|
<result property="positionName" column="position_name"/>
|
|
<result property="conditionDefinitionName" column="condition_definition_name"/>
|
|
<result property="therapyEnum" column="therapy_enum"/>
|
|
<result property="sortNumber" column="sort_number"/>
|
|
<result property="busNo" column="bus_no"/>
|
|
<result property="patientName" column="patient_name"/>
|
|
<result property="bedName" column="bed_name"/>
|
|
<result property="genderEnum" column="gender_enum"/>
|
|
<result property="birthDate" column="birth_date"/>
|
|
<result property="contractName" column="contract_name"/>
|
|
<result property="conditionNames" column="condition_names"/>
|
|
<result property="admittingDoctorName" column="admitting_doctor_name"/>
|
|
<result property="balanceAmount" column="balance_amount"/>
|
|
<collection property="medicineSummaryParamList" ofType="com.openhis.web.inhospitalnursestation.dto.MedicineSummaryParam">
|
|
<result property="procedureId" column="procedure_id"/>
|
|
<result property="dispenseId" column="dispense_id"/>
|
|
<result property="dispenseTime" column="planned_dispense_time"/>
|
|
<result property="dispenseStatus" column="dispense_status"/>
|
|
</collection>
|
|
</resultMap>
|
|
<select id="selectMedicineDispenseFormPage" resultMap="MedicineDispenseFormMap">
|
|
SELECT ii.encounter_id,
|
|
ii.skin_test_flag,
|
|
ii.inject_flag,
|
|
ii.group_id,
|
|
ii.tcm_flag,
|
|
ii.chinese_herbs_dose_quantity,
|
|
ii.suffering_flag,
|
|
ii.advice_id,
|
|
ii.advice_name,
|
|
ii.item_id,
|
|
ii.volume,
|
|
ii.lot_number,
|
|
ii.quantity,
|
|
ii.unit_code,
|
|
ii.method_code,
|
|
ii.rate_code,
|
|
ii.dose,
|
|
ii.dose_unit_code,
|
|
ii.position_id,
|
|
ii.position_name,
|
|
ii.condition_definition_name,
|
|
ii.therapy_enum,
|
|
ii.sort_number,
|
|
ii.bus_no,
|
|
ii.patient_name,
|
|
ii.bed_name,
|
|
ii.gender_enum ,
|
|
ii.birth_date ,
|
|
ii.patient_id,
|
|
ii.contract_name ,
|
|
ii.condition_names,
|
|
ii.admitting_doctor_name,
|
|
ii.balance_amount,
|
|
ii.dispense_id,
|
|
ii.planned_dispense_time,
|
|
ii.procedure_id,
|
|
ii.dispense_status
|
|
FROM (( SELECT T1.encounter_id,
|
|
T1.tenant_id,
|
|
T1.skin_test_flag AS skin_test_flag,
|
|
T1.infusion_flag AS inject_flag,
|
|
T1.group_id AS group_id,
|
|
T1.tcm_flag,
|
|
T1.chinese_herbs_dose_quantity,
|
|
T1.suffering_flag,
|
|
T1.id AS advice_id,
|
|
T2."name" AS advice_name,
|
|
T2.id AS item_id,
|
|
T3.total_volume AS volume,
|
|
T1.lot_number AS lot_number,
|
|
T1.quantity AS quantity,
|
|
T1.unit_code AS unit_code,
|
|
T1.method_code AS method_code,
|
|
T1.rate_code AS rate_code,
|
|
T1.dose AS dose,
|
|
T1.dose_unit_code AS dose_unit_code,
|
|
al1.id AS position_id,
|
|
al1."name" AS position_name,
|
|
ccd."name" AS condition_definition_name,
|
|
T1.therapy_enum AS therapy_enum,
|
|
T1.sort_number AS sort_number,
|
|
ae.bus_no,
|
|
ap."name" AS patient_name,
|
|
al2."name" AS bed_name,
|
|
ap.gender_enum ,
|
|
ap.birth_date ,
|
|
ap.id AS patient_id,
|
|
fc.contract_name ,
|
|
diagnosis.condition_names,
|
|
pra."name" AS admitting_doctor_name,
|
|
personal_account.balance_amount,
|
|
mmd.id AS dispense_id,
|
|
mmd.planned_dispense_time,
|
|
mmd.procedure_id,
|
|
mmd.status_enum AS dispense_status
|
|
FROM med_medication_request AS T1
|
|
LEFT JOIN med_medication_dispense AS mmd
|
|
ON T1.id = mmd.med_req_id
|
|
AND mmd.delete_flag = '0'
|
|
AND mmd.status_enum != #{summarized}
|
|
LEFT JOIN med_medication_definition AS T2
|
|
ON T2.id = T1.medication_id
|
|
AND T2.delete_flag = '0'
|
|
LEFT JOIN med_medication AS T3
|
|
ON T3.medication_def_id = T2.ID
|
|
AND T3.delete_flag = '0'
|
|
LEFT JOIN adm_location AS al1
|
|
ON al1.id = T1.perform_location
|
|
AND al1.delete_flag = '0'
|
|
LEFT JOIN cli_condition AS cc
|
|
ON cc.id = T1.condition_id
|
|
AND cc.delete_flag = '0'
|
|
LEFT JOIN cli_condition_definition AS ccd
|
|
ON ccd.id = cc.definition_id
|
|
AND ccd.delete_flag = '0'
|
|
LEFT JOIN adm_encounter ae
|
|
ON ae.id = T1.encounter_id
|
|
AND ae.delete_flag = '0'
|
|
LEFT JOIN adm_patient ap
|
|
ON ae.patient_id = ap.id
|
|
AND ap.delete_flag = '0'
|
|
LEFT JOIN adm_encounter_location ael
|
|
ON ae.id = ael.encounter_id
|
|
AND ael.delete_flag = '0'
|
|
AND ael.status_enum = #{active}
|
|
AND ael.form_enum = #{bed}
|
|
LEFT JOIN adm_location al2
|
|
ON ael.location_id = al2.id
|
|
AND al2.delete_flag = '0'
|
|
LEFT JOIN adm_account aa
|
|
ON ae.id = aa.encounter_id
|
|
AND aa.encounter_flag = 1
|
|
AND aa.delete_flag = '0'
|
|
LEFT JOIN fin_contract fc
|
|
ON aa.contract_no = fc.bus_no
|
|
AND fc.delete_flag = '0'
|
|
LEFT JOIN ( SELECT aed.encounter_id,
|
|
STRING_AGG(ccd.name, ', ') AS condition_names
|
|
FROM adm_encounter_diagnosis aed
|
|
INNER JOIN cli_condition cc
|
|
ON cc.id = aed.condition_id
|
|
AND cc.delete_flag = '0'
|
|
INNER JOIN cli_condition_definition ccd
|
|
ON ccd.id = cc.definition_id
|
|
AND ccd.delete_flag = '0'
|
|
WHERE aed.delete_flag = '0'
|
|
GROUP BY aed.encounter_id
|
|
) AS diagnosis
|
|
ON ae.id = diagnosis.encounter_id
|
|
LEFT JOIN adm_encounter_participant aep
|
|
ON ae.id = aep.encounter_id
|
|
AND aep.delete_flag = '0'
|
|
AND aep.status_enum = #{active}
|
|
AND aep.type_code = #{admittingDoctor}
|
|
LEFT JOIN adm_practitioner pra
|
|
ON aep.practitioner_id = pra.id
|
|
AND pra.delete_flag = '0'
|
|
LEFT JOIN ( SELECT aa.id,
|
|
aa.encounter_id,
|
|
(aa.balance_amount -
|
|
COALESCE(SUM(CASE WHEN aci.status_enum IN (#{billed}, #{billable})
|
|
THEN aci.total_price ELSE 0 END), 0) +
|
|
COALESCE(SUM(CASE WHEN aci.status_enum = #{refunded}
|
|
THEN aci.total_price ELSE 0 END), 0)) AS balance_amount
|
|
FROM adm_account aa
|
|
LEFT JOIN adm_charge_item aci
|
|
ON aa.encounter_id = aci.encounter_id
|
|
AND aa.delete_flag = '0'
|
|
WHERE aa.type_code = #{personalCashAccount}
|
|
AND aa.delete_flag = '0'
|
|
GROUP BY aa.id,
|
|
aa.encounter_id,
|
|
aa.balance_amount
|
|
) AS personal_account
|
|
ON personal_account.encounter_id = ae.id
|
|
WHERE T1.delete_flag = '0'
|
|
AND T1.status_enum = #{completed}
|
|
AND T1.refund_medicine_id IS NULL
|
|
AND mmd.procedure_id IS NOT NULL
|
|
ORDER BY mmd.planned_dispense_time )) AS ii
|
|
${ew.customSqlSegment}
|
|
</select>
|
|
<select id="selectMedicineSummaryFormPage"
|
|
resultType="com.openhis.web.inhospitalnursestation.dto.MedicineSummaryFormDto">
|
|
SELECT T1.bus_no ,
|
|
T1.apply_time ,
|
|
T1.applicant_id,
|
|
T1.status_enum ,
|
|
T1.dispense_time,
|
|
T1.receiver_id,
|
|
T1.applicant_name,
|
|
T1.receiver_name,
|
|
T1.location_name
|
|
FROM (
|
|
SELECT wsr.tenant_id,
|
|
wsr.bus_no ,
|
|
wsr.apply_time ,
|
|
wsr.applicant_id,
|
|
wsd.status_enum ,
|
|
wsd.receive_time AS dispense_time,
|
|
wsd.receiver_id,
|
|
ap."name" AS applicant_name,
|
|
ap2."name" AS receiver_name,
|
|
al."name" AS location_name
|
|
FROM wor_supply_request wsr
|
|
LEFT JOIN wor_supply_delivery wsd
|
|
ON wsr.id = wsd.request_id
|
|
AND wsd.delete_flag = '0'
|
|
LEFT JOIN adm_practitioner ap
|
|
ON wsr.applicant_id = ap.id
|
|
AND ap.delete_flag = '0'
|
|
LEFT JOIN adm_practitioner ap2
|
|
ON wsd.receiver_id = ap.id
|
|
AND ap.delete_flag = '0'
|
|
LEFT JOIN adm_location al
|
|
ON wsr.source_location_id = al.id
|
|
AND al.delete_flag = '0'
|
|
WHERE wsr.delete_flag = '0'
|
|
AND wsd.status_enum IN (#{preparation}, #{completed})
|
|
AND wsr.type_enum = #{summaryDispense}
|
|
GROUP BY wsr.tenant_id,
|
|
wsr.bus_no ,
|
|
wsr.apply_time ,
|
|
wsr.applicant_id,
|
|
wsd.status_enum ,
|
|
wsd.receive_time,
|
|
wsd.receiver_id,
|
|
ap."name",
|
|
ap2."name",
|
|
al."name"
|
|
ORDER BY wsr.bus_no DESC ) AS T1
|
|
${ew.customSqlSegment}
|
|
</select>
|
|
<select id="selectMedicineSummaryFormDetail"
|
|
resultType="com.openhis.web.inhospitalnursestation.dto.MedicineSummaryInfoDto">
|
|
SELECT mmd."name" AS item_name,
|
|
mmd.unit_code ,
|
|
mmd.min_unit_code ,
|
|
mmd.part_percent ,
|
|
mmd.manufacturer_text,
|
|
mmd.category_code,
|
|
mm.total_volume ,
|
|
wsr.lot_number,
|
|
wsr.item_quantity
|
|
FROM wor_supply_request wsr
|
|
LEFT JOIN wor_supply_delivery wsd
|
|
ON wsr.id = wsd.request_id
|
|
AND wsd.delete_flag = '0'
|
|
LEFT JOIN med_medication_definition mmd
|
|
ON wsr.item_id = mmd.id
|
|
AND mmd.delete_flag = '0'
|
|
LEFT JOIN med_medication mm
|
|
ON mmd.id = mm.medication_def_id
|
|
AND mm.delete_flag = '0'
|
|
WHERE wsr.delete_flag = '0'
|
|
AND wsr.bus_no = #{summaryNo}
|
|
</select>
|
|
</mapper>
|