提交merge1.3

This commit is contained in:
2025-12-27 15:30:40 +08:00
parent 088861f66e
commit 3c497417dc
167 changed files with 0 additions and 17577 deletions

View File

@@ -4,195 +4,6 @@
<select id="selectAmbPractitionerDetailPage"
resultType="com.openhis.web.pharmacymanage.dto.MedDetailedAccountPageDto">
select A.outpatient_no,
<<<<<<< HEAD
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.item_table
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
),
refund_device_info AS (
SELECT wdr.refund_device_id,
wdd.dispense_quantity,
wdd.unit_code,
aci.total_price
FROM wor_device_dispense wdd
LEFT JOIN wor_device_request wdr
ON wdd.device_req_id = wdr.id
AND wdr.delete_flag = '0'
INNER JOIN adm_charge_item aci
ON aci.service_id = wdd.device_req_id
AND aci.delete_flag = '0'
WHERE wdd.status_enum = #{refunded}
AND wdd.delete_flag = '0'
AND wdr.refund_device_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,
#{medMedicationDefinition} AS item_table
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 mmr.status_enum = #{agree}
<if test="flg != 1">
AND ae.class_enum = #{amb}
</if>
AND mmd.delete_flag = '0'
UNION
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,
def.size AS total_volume,
mmd.unit_code,
mmd.bus_no AS dispense_no,
mmd.lot_number,
mmd.dispense_quantity,
mmd.encounter_id,
mmd.performer_id AS 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,
#{admDeviceDefinition} AS item_table
FROM wor_device_dispense mmd
LEFT JOIN wor_device_request mmr
ON mmd.device_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 adm_device_definition def
ON mmd.device_def_id = def.id
AND def.delete_flag = '0'
LEFT JOIN adm_device mm
ON mm.device_def_id = def.id
AND mm.delete_flag = '0'
LEFT JOIN wor_inventory_item wii
ON wii.item_id = mmd.device_def_id
AND wii.lot_number = mmd.lot_number
AND wii.location_id = mmd.location_id
AND wii.delete_flag = '0'
LEFT JOIN refund_device_info AS ri
ON ri.refund_device_id = mmr.id
LEFT JOIN adm_location al
ON al.id = mmd.location_id
LEFT JOIN adm_practitioner ap
ON ap.id = mmd.performer_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 mmr.status_enum = #{agree}
<if test="flg != 1">
AND ae.class_enum = #{amb}
</if>
AND mmd.delete_flag = '0'
) AS A
${ew.customSqlSegment}
<choose>
<when test="dispenseEnum == 1">
ORDER BY A.dispense_time DESC
</when>
<when test="dispenseEnum == 2">
=======
A.prescription_no,
A.patient_name,
A.practitioner_id,
@@ -417,7 +228,6 @@
ORDER BY A.dispense_time DESC
</when>
<when test="statisticalType == 2 || statisticalType ==4 || statisticalType ==6">
>>>>>>> v1.3
ORDER BY A.outpatient_no DESC, A.prescription_no DESC
</when>
</choose>

View File

@@ -83,23 +83,6 @@
<when test="(medDispenseIdList != null and !medDispenseIdList.isEmpty())
or (devDispenseIdList != null and !devDispenseIdList.isEmpty())">
<if test="medDispenseIdList != null and !medDispenseIdList.isEmpty()">
<<<<<<< HEAD
SELECT
T1.id AS dispense_id,
T1.unit_code AS dispense_unit,
T1.quantity,
T1.location_id,
T1.lot_number,
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
=======
SELECT T1.id AS dispense_id,
T1.unit_code AS dispense_unit,
T1.quantity,
@@ -117,7 +100,6 @@
T3.part_percent,
T3."name" AS item_name,
T1.medication_id AS item_id
>>>>>>> v1.3
FROM med_medication_dispense AS T1
INNER JOIN wor_inventory_item AS T2
ON T1.medication_id = T2.item_id
@@ -139,23 +121,6 @@
UNION
</if>
<if test="devDispenseIdList != null and !devDispenseIdList.isEmpty()">
<<<<<<< HEAD
SELECT
T4.id AS dispense_id,
T4.unit_code AS dispense_unit,
T4.quantity,
T4.location_id,
T4.lot_number,
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
=======
SELECT T4.id AS dispense_id,
T4.unit_code AS dispense_unit,
T4.quantity,
@@ -173,7 +138,6 @@
T5.part_percent,
T5."name" AS item_name,
T4.device_def_id AS item_id
>>>>>>> v1.3
FROM wor_device_dispense AS T4
INNER JOIN wor_inventory_item AS T2
ON T4.device_def_id = T2.item_id

View File

@@ -1,187 +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.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>

View File

@@ -66,44 +66,6 @@
ii.reception_time,
ii.start_time,
ii.status_enum
<<<<<<< HEAD
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,
T1.class_enum,
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,
T2.birth_date,
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'
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>
=======
FROM ( SELECT T1.tenant_id,
T1.id AS encounter_id,
T1.bus_no AS encounter_no,
@@ -142,7 +104,6 @@
<if test="statusEnum == 4">
T4.status_enum = #{completed}
</if>
>>>>>>> v1.3
) AS ii
${ew.customSqlSegment}
GROUP BY ii.encounter_id,
@@ -162,125 +123,6 @@
ORDER BY ii.reception_time,
ii.start_time DESC
</select>
<<<<<<< HEAD
<select id="selectMedicineDispenseOrderPage" resultType="com.openhis.web.pharmacymanage.dto.ItemDispenseOrderDto">
SELECT ii.department_name,
ii.doctor_id,
ii.doctor_name,
ii.item_type,
ii.condition_name,
ii.prescription_no,
ii.lot_number,
ii.request_id,
ii.tcm_flag,
ii.item_name,
ii.item_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.dispense_per_quantity,
ii.dispense_per_duration,
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.skin_test_flag,
ii.group_id,
ii.manufacturer_text,
ii.trace_no
FROM ( SELECT T8."name" AS department_name,
T9.id AS doctor_id,
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 item_name,
T3.id AS item_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.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,
T13."name" AS location_name,
T6.bus_no AS encounter_bus_no,
T2.req_authored_time,
T3.skin_test_flag,
T2.group_id AS group_id,
T1.tenant_id,
T3.manufacturer_text,
T1.trace_no
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_location AS T13
ON T1.location_id = T13.id
AND T13.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
=======
<select id="selectMedicineDispenseOrderPage" resultMap="medicineDispenseOrderMap">
SELECT ii.department_name,
ii.doctor_id,
@@ -430,7 +272,6 @@
</if>
AND T14.inventory_status_enum = #{active}
ORDER BY prescription_no DESC
>>>>>>> v1.3
) AS ii
${ew.customSqlSegment}
</select>