feat: 合并 upstream/v1.3 新增功能模块(安全合并策略)
新增功能模块:
- 药房管理:住院退药、处方审核功能
- 报表管理:门诊管理报表、药房结算报表、医嘱统计报表
- 支付管理:三方对账功能
- 新增枚举类:电子处方类型、频次类型、病历状态等10个
- 新增实体类:处方审核记录、第三方支付请求、中医结算目录
- 工具类增强:年龄计算、Excel工具
合并策略:仅合并低风险新增文件,保留现有业务功能
上游版本:v1.3 (2025-03-06发版)
合并分支:merge-upstream-v1.3-0310
🤖 Auto-generated by Claude Code
This commit is contained in:
@@ -0,0 +1,165 @@
|
||||
<?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.InHospitalReturnMedicineAppMapper">
|
||||
<select id="selectEncounterInfoListPage" resultType="com.openhis.web.pharmacymanage.dto.EncounterInfoDto">
|
||||
SELECT ii.reception_time,
|
||||
ii.start_time,
|
||||
ii.encounter_id,
|
||||
ii.encounter_no,
|
||||
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,
|
||||
ae.start_time,
|
||||
ae.class_enum,
|
||||
mmd.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,
|
||||
#{medMedicationDefinition} AS item_table
|
||||
FROM adm_encounter ae
|
||||
LEFT JOIN med_medication_request mmr
|
||||
ON mmr.encounter_id = ae.id
|
||||
AND mmr.delete_flag = '0'
|
||||
LEFT JOIN med_medication_dispense mmd
|
||||
ON mmd.med_req_id = mmr.id
|
||||
AND mmd.delete_flag = '0'
|
||||
LEFT JOIN adm_patient ap
|
||||
ON ae.patient_id = ap.id
|
||||
AND ap.delete_flag = '0'
|
||||
LEFT JOIN adm_organization ao
|
||||
ON ao.id = ae.organization_id
|
||||
AND ao.delete_flag = '0'
|
||||
WHERE ae.delete_flag = '0'
|
||||
AND ae.class_enum = #{imp}
|
||||
<if test="refundStatus == null">
|
||||
AND mmd.status_enum IN (#{refunded},#{pendingRefund})
|
||||
</if>
|
||||
<if test="refundStatus != null">
|
||||
AND mmd.status_enum = #{refundStatus}
|
||||
</if>
|
||||
UNION
|
||||
SELECT ae.reception_time,
|
||||
ae.id AS encounter_id,
|
||||
ae.bus_no AS encounter_no,
|
||||
ae.tenant_id,
|
||||
ae.start_time,
|
||||
ae.class_enum,
|
||||
wdd.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,
|
||||
#{admDeviceDefinition} AS item_table
|
||||
FROM adm_encounter ae
|
||||
LEFT JOIN wor_device_request wdr
|
||||
ON wdr.encounter_id = ae.id
|
||||
AND wdr.delete_flag = '0'
|
||||
LEFT JOIN wor_device_dispense wdd
|
||||
ON wdd.device_req_id = wdr.id
|
||||
AND wdd.delete_flag = '0'
|
||||
LEFT JOIN adm_patient ap
|
||||
ON ae.patient_id = ap.id
|
||||
AND ap.delete_flag = '0'
|
||||
LEFT JOIN adm_organization ao
|
||||
ON ao.id = ae.organization_id
|
||||
AND ao.delete_flag = '0'
|
||||
WHERE ae.delete_flag = '0'
|
||||
AND ae.class_enum = #{imp}
|
||||
<if test="refundStatus == null">
|
||||
AND wdd.status_enum IN (#{refunded},#{pendingRefund})
|
||||
</if>
|
||||
<if test="refundStatus != null">
|
||||
AND wdd.status_enum = #{refundStatus}
|
||||
</if>
|
||||
) AS ii
|
||||
${ew.customSqlSegment}
|
||||
ORDER BY ii.reception_time DESC
|
||||
</select>
|
||||
<select id="selectReturnMedicineInfo"
|
||||
resultType="com.openhis.web.pharmacymanage.dto.ReturnMedicineInfoDto">
|
||||
<if test="itemTable == null or itemTable == medMedicationDefinition">
|
||||
SELECT mmd.status_enum AS refund_enum,
|
||||
mmd.quantity,
|
||||
mmd.unit_code,
|
||||
mmd.lot_number,
|
||||
mmd.dispense_quantity,
|
||||
mmd.id AS dispense_id,
|
||||
mmr.id AS request_id,
|
||||
med."name" AS item_name,
|
||||
med.id AS item_id,
|
||||
doc."name" AS doctor_name,
|
||||
mmd.trace_no,
|
||||
#{medMedicationRequest} AS service_table
|
||||
FROM med_medication_dispense mmd
|
||||
INNER JOIN med_medication_request mmr
|
||||
ON mmr.id = mmd.med_req_id
|
||||
AND mmr.delete_flag = '0'
|
||||
INNER JOIN med_medication_definition med
|
||||
ON mmr.medication_id = med.id
|
||||
AND med.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner doc
|
||||
ON mmr.practitioner_id = doc.id
|
||||
AND doc.delete_flag = '0'
|
||||
WHERE mmd.delete_flag = '0'
|
||||
AND mmd.encounter_id = #{encounterId}
|
||||
<if test="refundStatus == null">
|
||||
AND mmd.status_enum IN (#{refunded},#{pendingRefund})
|
||||
</if>
|
||||
<if test="refundStatus != null">
|
||||
AND mmd.status_enum = #{refundStatus}
|
||||
</if>
|
||||
</if>
|
||||
<if test="itemTable == null">
|
||||
UNION
|
||||
</if>
|
||||
<if test="itemTable == null or itemTable == admDeviceDefinition">
|
||||
SELECT wdd.status_enum AS refund_enum,
|
||||
wdd.quantity,
|
||||
wdd.unit_code,
|
||||
wdd.lot_number,
|
||||
wdd.dispense_quantity,
|
||||
wdd.id AS dispense_id,
|
||||
wdr.id AS request_id,
|
||||
dev."name" AS item_name,
|
||||
dev.id AS item_id,
|
||||
doc."name" AS doctor_name,
|
||||
wdd.trace_no,
|
||||
#{worDeviceRequest} AS service_table
|
||||
FROM wor_device_dispense wdd
|
||||
INNER JOIN wor_device_request wdr
|
||||
ON wdr.id = wdd.device_req_id
|
||||
AND wdr.delete_flag = '0'
|
||||
INNER JOIN adm_device_definition dev
|
||||
ON wdr.device_def_id = dev.id
|
||||
AND dev.delete_flag = '0'
|
||||
LEFT JOIN adm_practitioner doc
|
||||
ON wdr.requester_id = doc.id
|
||||
AND doc.delete_flag = '0'
|
||||
WHERE wdd.delete_flag = '0'
|
||||
AND wdd.encounter_id = #{encounterId}
|
||||
<if test="refundStatus == null">
|
||||
AND wdd.status_enum IN (#{refunded},#{pendingRefund})
|
||||
</if>
|
||||
<if test="refundStatus != null">
|
||||
AND wdd.status_enum = #{refundStatus}
|
||||
</if>
|
||||
</if>
|
||||
</select>
|
||||
</mapper>
|
||||
Reference in New Issue
Block a user