docs(release-notes): 添加住院护士站划价功能说明和发版记录

- 新增住院护士站划价服务流程说明文档,详细描述了从参数预处理到结果响应的五大阶段流程
- 包含耗材类医嘱和诊疗活动类医嘱的差异化处理逻辑
- 添加完整的发版内容记录,涵盖新增菜单功能和各模块优化点
- 记录了住院相关功能的新增和门诊业务流程的修复
```
This commit is contained in:
2025-12-25 14:13:14 +08:00
parent 85fcb7c2e2
commit abc0674531
920 changed files with 107068 additions and 14495 deletions

View File

@@ -0,0 +1,93 @@
<?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.inventorymanage.mapper.InventorySettlementAppMapper">
<select id="selectMedicationPage"
resultType="com.openhis.web.inventorymanage.dto.InventorySettlementDto">
SELECT ii.item_name ,
ii.item_no ,
ii.item_id ,
ii.py_str ,
ii.wb_str ,
ii.unit_code ,
ii.min_unit_code ,
ii.part_percent,
ii.category_code,
ii.manufacturer_text,
ii.total_volume
FROM ( SELECT mmd.tenant_id ,
mmd."name" AS item_name ,
mmd.id AS item_id ,
mmd.bus_no AS item_no,
mmd.py_str ,
mmd.wb_str ,
mmd.unit_code ,
mmd.min_unit_code ,
mmd.part_percent,
mmd.category_code,
mmd.manufacturer_text,
mm.total_volume
FROM med_medication_definition mmd
LEFT JOIN med_medication mm
ON mmd.id = mm.medication_def_id
AND mm.delete_flag = '0'
WHERE mmd.delete_flag = '0'
) AS ii
${ew.customSqlSegment}
ORDER BY ii.py_str
</select>
<select id="selectMedDispenseList" resultType="com.openhis.web.inventorymanage.dto.InventoryBusinessInfoDto">
SELECT mmd.id AS item_id ,
mmd.unit_code ,
mmd.min_unit_code ,
mmd.part_percent ,
mmq.quantity AS dispense_quantity ,
mmd2.id AS dispense_id ,
mmd2.lot_number AS dispense_lot ,
mmd2.location_id AS dispense_location ,
mmd2.unit_code AS dispense_unit_code ,
mmd2.status_enum AS dispense_status ,
mmd2.dispense_time
FROM med_medication_definition mmd
LEFT JOIN med_medication_request mmq
ON mmd.id = mmq.medication_id
AND mmq.delete_flag = '0'
LEFT JOIN med_medication_dispense mmd2
ON mmq.id = mmd2.med_req_id
AND mmd2.delete_flag = '0'
WHERE mmd.delete_flag = '0'
AND mmd2.status_enum IN (#{completed},#{refunded})
AND mmd2.dispense_time &lt;= #{endTime}
AND mmd2.dispense_time > #{startTime}
AND mmd2.location_id = #{locationId}
</select>
<select id="selectInventorySupplyList"
resultType="com.openhis.web.inventorymanage.dto.InventoryBusinessInfoDto">
SELECT mmd.id AS item_id,
mmd.unit_code ,
mmd.min_unit_code ,
mmd.part_percent ,
wsr.item_quantity AS delivery_quantity,
wsr.lot_number AS delivery_lot,
wsr.unit_code AS delivery_unit_code,
wsr.purpose_location_id,
wsr.source_location_id,
wsr.type_enum,
wsr.status_enum AS delivery_status,
wsr.approval_time,
wsd.id AS delivery_id
FROM med_medication_definition mmd
LEFT JOIN wor_supply_request wsr
ON mmd.id = wsr.item_id
AND wsr.delete_flag = '0'
LEFT JOIN wor_supply_delivery wsd
ON wsr.id = wsd.request_id
AND wsd.delete_flag = '0'
WHERE mmd.delete_flag = '0'
AND wsd.status_enum = #{completed}
AND wsr.approval_time &lt;= #{endTime}
AND wsr.approval_time > #{startTime}
AND (wsr.source_location_id = #{locationId} OR wsr.purpose_location_id = #{locationId})
AND wsr.type_enum IN (#{productBatchTransfer}, #{productTransfer}, #{productReturn}, #{productStocktaking},
#{productBatchStocktaking}, #{purchaseInventory}, #{lossReportForm}, #{issueInventory},#{returnIssue})
</select>
</mapper>

View File

@@ -4,20 +4,20 @@
<select id="selectLossReportFormPage"
resultType="com.openhis.web.inventorymanage.dto.LossReportFormPageDto">
SELECT T4.supply_bus_no, -- 单据号
T4.type, -- 单据类型
T4.status_enum, -- 单据状态
T4.inventory_location_name, -- 盘点仓库
T4.reported_loss_amount, -- 报损金额(总价)
T4.applicant_id, -- 制单人(申请人)
T4.approver_id, -- 审核人
T4.approval_time, -- 审核日期
T4.create_time, -- 制单时间
T4.tenant_id -- 租户ID
FROM (SELECT T1.bus_no AS supply_bus_no,
T1.type_enum AS type,
SELECT T4.supply_bus_no, -- 单据号
T4.type, -- 单据类型
T4.status_enum, -- 单据状态
T4.inventory_location_name, -- 盘点仓库
T4.reported_loss_amount, -- 报损金额(总价)
T4.applicant_id, -- 制单人(申请人)
T4.approver_id, -- 审核人
T4.approval_time, -- 审核日期
T4.create_time, -- 制单时间
T4.tenant_id -- 租户ID
FROM (SELECT T1.bus_no AS supply_bus_no,
T1.type_enum AS type,
T1.status_enum,
T4.name AS inventory_location_name,
T4.name AS inventory_location_name,
T2.reported_loss_amount,
T1.applicant_id,
T1.approver_id,
@@ -43,41 +43,40 @@
T1.approver_id,
T1.approval_time,
T1.tenant_id
ORDER BY T1.bus_no desc
) AS T4
ORDER BY T1.bus_no desc) AS T4
${ew.customSqlSegment}
</select>
<select id="selectDetail" resultType="com.openhis.web.inventorymanage.dto.ReceiptDetailDto">
SELECT T1.id, --ID
T1.bus_no AS supply_bus_no, --单据号
T1.item_id, --物品编码
T1.purpose_type_enum, --目的类型
T1.purpose_location_id, --目的仓库
T5."name" AS purpose_location_name, --目的仓库名称
T6."name" AS purpose_location_store_name, --目的仓位
T1.occurrence_time, --报损时间
#{medicine} AS item_type, --药品类型
T1.remake, --备注
T2.bus_no AS item_bus_no, --项目编码
T2."name" AS item_name, --名称
T3.total_volume, --规格
T1.unit_code AS measurement_unit_code, -- 物品计量单位
T2.unit_code, -- 包装单位
T2.min_unit_code, -- 最小单位
T2.manufacturer_text, --生产厂商文本
T4.lot_number, --产品批号
T4.quantity AS total_quantity, --当前库存数量
T1.item_quantity, --数量(报损数量)
T11.amount AS price, --采购单价(大单位)
T1.total_price, --总价(报损金额)
T1.reason_code, --理由类型(报损原因)
T1.reason, --理由(报损详细)
T1.start_time, -- 开始时间
T1.end_time, -- 结束时间
T1.supplier_id, -- 供应商id
T9."name" AS supplier_name, -- 供应商名称
T2.part_percent, --拆零比
T1.total_quantity AS old_quantity --报损前数量
SELECT T1.id, -- ID
T1.bus_no AS supply_bus_no, -- 单据号
T1.item_id, -- 物品编码
T1.purpose_type_enum, -- 目的类型
T1.purpose_location_id, -- 目的仓库
T5."name" AS purpose_location_name, -- 目的仓库名称
T6."name" AS purpose_location_store_name, -- 目的仓位
T1.occurrence_time, -- 报损时间
#{medicine} AS item_type, -- 药品类型
T1.remake, -- 备注
T2.bus_no AS item_bus_no, -- 项目编码
T2."name" AS item_name, -- 名称
T3.total_volume, -- 规格
T1.unit_code AS measurement_unit_code, -- 物品计量单位
T2.unit_code, -- 包装单位
T2.min_unit_code, -- 最小单位
T2.manufacturer_text, -- 生产厂商文本
T4.lot_number, -- 产品批号
T4.quantity AS total_quantity, -- 当前库存数量
T1.item_quantity, -- 数量(报损数量)
T11.amount AS price, -- 采购单价(大单位)
T1.total_price, -- 总价(报损金额)
T1.reason_code, -- 理由类型(报损原因)
T1.reason, -- 理由(报损详细)
T1.start_time, -- 开始时间
T1.end_time, -- 结束时间
T1.supplier_id, -- 供应商id
T9."name" AS supplier_name, -- 供应商名称
T2.part_percent, -- 拆零比
T1.total_quantity AS old_quantity -- 报损前数量
FROM wor_supply_request T1
LEFT JOIN med_medication_definition T2
ON T1.item_id = T2.id
@@ -105,41 +104,41 @@
ON T11.definition_id = T10.id
AND T11.delete_flag = '0'
AND T11.condition_value = T4.lot_number
AND T11.condition_code = '1'--1:批号进价
AND T11.condition_code = '1'-- 1:批号进价
WHERE T1.bus_no = #{busNo}
AND T1.item_table = #{medicationTableName}
AND T1.delete_flag = '0'
UNION
SELECT T1.id, --ID
T1.bus_no AS supply_bus_no, --单据号
T1.item_id, --物品编码
T1.purpose_type_enum, --目的类型
T1.purpose_location_id, --目的仓库
T5."name" AS purpose_location_name, --目的仓库名称
T6."name" AS purpose_location_store_name, --目的仓位
T1.occurrence_time, --报损时间
#{device} AS item_type, --器材类型
T1.remake, --备注
T7.bus_no AS item_bus_no, --项目编码
T7."name" AS item_name, --名称
T7."size" AS total_volume, --器材规格
T1.unit_code AS measurement_unit_code, -- 物品计量单位
T7.unit_code, -- 包装单位
T7.min_unit_code, -- 最小单位
T7.manufacturer_text, --生产厂商文本
T4.lot_number, --产品批号
T4.quantity AS total_quantity, --当前库存数量
T1.item_quantity, --数量(报损数量)
T11.amount AS price, --采购单价(大单位)
T1.total_price, --总价(报损金额)
T1.reason_code, --理由类型(报损原因)
T1.reason, --理由(报损详细)
T1.start_time, -- 开始时间
T1.end_time, -- 结束时间
T1.supplier_id, -- 供应商id
T9."name" AS supplier_name, -- 供应商名称
T7.part_percent, --拆零比
T1.total_quantity AS old_quantity --报损前数量
SELECT T1.id, -- ID
T1.bus_no AS supply_bus_no, -- 单据号
T1.item_id, -- 物品编码
T1.purpose_type_enum, -- 目的类型
T1.purpose_location_id, -- 目的仓库
T5."name" AS purpose_location_name, -- 目的仓库名称
T6."name" AS purpose_location_store_name, -- 目的仓位
T1.occurrence_time, -- 报损时间
#{device} AS item_type, -- 器材类型
T1.remake, -- 备注
T7.bus_no AS item_bus_no, -- 项目编码
T7."name" AS item_name, -- 名称
T7."size" AS total_volume, -- 器材规格
T1.unit_code AS measurement_unit_code, -- 物品计量单位
T7.unit_code, -- 包装单位
T7.min_unit_code, -- 最小单位
T7.manufacturer_text, -- 生产厂商文本
T4.lot_number, -- 产品批号
T4.quantity AS total_quantity, -- 当前库存数量
T1.item_quantity, -- 数量(报损数量)
T11.amount AS price, -- 采购单价(大单位)
T1.total_price, -- 总价(报损金额)
T1.reason_code, -- 理由类型(报损原因)
T1.reason, -- 理由(报损详细)
T1.start_time, -- 开始时间
T1.end_time, -- 结束时间
T1.supplier_id, -- 供应商id
T9."name" AS supplier_name, -- 供应商名称
T7.part_percent, -- 拆零比
T1.total_quantity AS old_quantity -- 报损前数量
FROM wor_supply_request T1
LEFT JOIN adm_device_definition T7
ON T1.item_id = T7.id
@@ -165,41 +164,41 @@
ON T11.definition_id = T10.id
AND T11.delete_flag = '0'
AND T11.condition_value = T4.lot_number
AND T11.condition_code = '1'--1:批号进价
AND T11.condition_code = '1'-- 1:批号进价
WHERE T1.bus_no = #{busNo}
AND T1.item_table = #{deviceTableName}
AND T1.delete_flag = '0'
</select>
<select id="getMonthlySettlementDetail" resultType="com.openhis.web.inventorymanage.dto.ReceiptDetailDto">
SELECT T1.id, --ID
T1.bus_no AS supply_bus_no, --单据号
T1.item_id, --物品编码
T1.purpose_type_enum, --目的类型
T1.purpose_location_id, --目的仓库
T5."name" AS purpose_location_name, --目的仓库名称
T6."name" AS purpose_location_store_name, --目的仓位
T1.occurrence_time, --报损时间
#{medicine} AS item_type, --药品类型
T1.remake, --备注
T2.bus_no AS item_bus_no, --项目编码
T2."name" AS item_name, --名称
T3.total_volume, --规格
T1.unit_code AS measurement_unit_code, -- 物品计量单位
T2.unit_code, -- 包装单位
T2.min_unit_code, -- 最小单位
T2.manufacturer_text, --生产厂商文本
T4.lot_number, --产品批号
T4.quantity AS total_quantity, --当前库存数量
T1.item_quantity, --数量(报损数量)
T11.amount AS price, --采购单价(大单位)
T1.total_price, --总价(报损金额)
T1.reason_code, --理由类型(报损原因)
T1.reason, --理由(报损详细)
T1.start_time, -- 开始时间
T1.end_time, -- 结束时间
T1.supplier_id, -- 供应商id
T9."name" AS supplier_name, -- 供应商名称
T2.part_percent --拆零比
SELECT T1.id, -- ID
T1.bus_no AS supply_bus_no, -- 单据号
T1.item_id, -- 物品编码
T1.purpose_type_enum, -- 目的类型
T1.purpose_location_id, -- 目的仓库
T5."name" AS purpose_location_name, -- 目的仓库名称
T6."name" AS purpose_location_store_name, -- 目的仓位
T1.occurrence_time, -- 报损时间
#{medicine} AS item_type, -- 药品类型
T1.remake, -- 备注
T2.bus_no AS item_bus_no, -- 项目编码
T2."name" AS item_name, -- 名称
T3.total_volume, -- 规格
T1.unit_code AS measurement_unit_code, -- 物品计量单位
T2.unit_code, -- 包装单位
T2.min_unit_code, -- 最小单位
T2.manufacturer_text, -- 生产厂商文本
T4.lot_number, -- 产品批号
T4.quantity AS total_quantity, -- 当前库存数量
T1.item_quantity, -- 数量(报损数量)
T11.amount AS price, -- 采购单价(大单位)
T1.total_price, -- 总价(报损金额)
T1.reason_code, -- 理由类型(报损原因)
T1.reason, -- 理由(报损详细)
T1.start_time, -- 开始时间
T1.end_time, -- 结束时间
T1.supplier_id, -- 供应商id
T9."name" AS supplier_name, -- 供应商名称
T2.part_percent -- 拆零比
FROM wor_supply_request T1
LEFT JOIN med_medication_definition T2
ON T1.item_id = T2.id
@@ -227,7 +226,7 @@
ON T11.definition_id = T10.id
AND T11.delete_flag = '0'
AND T11.condition_value = T4.lot_number
AND T11.condition_code = '1'--1:批号进价
AND T11.condition_code = '1'-- 1:批号进价
WHERE T1.purpose_location_id = #{locationId}
AND T1.status_enum = #{statusEnum}
AND T1.type_enum = #{typeEnum}
@@ -235,35 +234,35 @@
AND T1.item_table = #{medicationTableName}
AND T1.delete_flag = '0'
UNION
SELECT T1.id, --ID
T1.bus_no AS supply_bus_no, --单据号
T1.item_id, --物品编码
T1.purpose_type_enum, --目的类型
T1.purpose_location_id, --目的仓库
T5."name" AS purpose_location_name, --目的仓库名称
T6."name" AS purpose_location_store_name, --目的仓位
T1.occurrence_time, --报损时间
#{device} AS item_type, --器材类型
T1.remake, --备注
T7.bus_no AS item_bus_no, --项目编码
T7."name" AS item_name, --名称
T7."size" AS total_volume, --器材规格
T1.unit_code AS measurement_unit_code, -- 物品计量单位
T7.unit_code, -- 包装单位
T7.min_unit_code, -- 最小单位
T7.manufacturer_text, --生产厂商文本
T4.lot_number, --产品批号
T4.quantity AS total_quantity, --当前库存数量
T1.item_quantity, --数量(报损数量)
T11.amount AS price, --采购单价(大单位)
T1.total_price, --总价(报损金额)
T1.reason_code, --理由类型(报损原因)
T1.reason, --理由(报损详细)
T1.start_time, -- 开始时间
T1.end_time, -- 结束时间
T1.supplier_id, -- 供应商id
T9."name" AS supplier_name, -- 供应商名称
T7.part_percent --拆零比
SELECT T1.id, -- ID
T1.bus_no AS supply_bus_no, -- 单据号
T1.item_id, -- 物品编码
T1.purpose_type_enum, -- 目的类型
T1.purpose_location_id, -- 目的仓库
T5."name" AS purpose_location_name, -- 目的仓库名称
T6."name" AS purpose_location_store_name, -- 目的仓位
T1.occurrence_time, -- 报损时间
#{device} AS item_type, -- 器材类型
T1.remake, -- 备注
T7.bus_no AS item_bus_no, -- 项目编码
T7."name" AS item_name, -- 名称
T7."size" AS total_volume, -- 器材规格
T1.unit_code AS measurement_unit_code, -- 物品计量单位
T7.unit_code, -- 包装单位
T7.min_unit_code, -- 最小单位
T7.manufacturer_text, -- 生产厂商文本
T4.lot_number, -- 产品批号
T4.quantity AS total_quantity, -- 当前库存数量
T1.item_quantity, -- 数量(报损数量)
T11.amount AS price, -- 采购单价(大单位)
T1.total_price, -- 总价(报损金额)
T1.reason_code, -- 理由类型(报损原因)
T1.reason, -- 理由(报损详细)
T1.start_time, -- 开始时间
T1.end_time, -- 结束时间
T1.supplier_id, -- 供应商id
T9."name" AS supplier_name, -- 供应商名称
T7.part_percent -- 拆零比
FROM wor_supply_request T1
LEFT JOIN adm_device_definition T7
ON T1.item_id = T7.id
@@ -289,7 +288,7 @@
ON T11.definition_id = T10.id
AND T11.delete_flag = '0'
AND T11.condition_value = T4.lot_number
AND T11.condition_code = '1'--1:批号进价
AND T11.condition_code = '1'-- 1:批号进价
WHERE T1.purpose_location_id = #{locationId}
AND T1.status_enum = #{statusEnum}
AND T1.type_enum = #{typeEnum}
@@ -297,4 +296,137 @@
AND T1.item_table = #{deviceTableName}
AND T1.delete_flag = '0'
</select>
<select id="selectLossDetail" resultType="com.openhis.web.inventorymanage.dto.LossReceiptDetailDto">
SELECT T1.id, -- ID
T1.bus_no AS supply_bus_no, -- 单据号
T1.item_id, -- 物品编码
T1.purpose_type_enum, -- 目的类型
T1.purpose_location_id, -- 目的仓库
T5."name" AS purpose_location_name, -- 目的仓库名称
T6."name" AS purpose_location_store_name, -- 目的仓位
T1.occurrence_time, -- 报损时间
#{medicine} AS item_type, -- 药品类型
T1.remake, -- 备注
T2.bus_no AS item_bus_no, -- 项目编码
T2."name" AS item_name, -- 名称
T3.total_volume, -- 规格
T1.unit_code AS measurement_unit_code, -- 物品计量单位
T2.unit_code, -- 包装单位
T2.min_unit_code, -- 最小单位
T2.manufacturer_text, -- 生产厂商文本
T4.lot_number, -- 产品批号
T4.quantity AS total_quantity, -- 当前库存数量
T1.item_quantity, -- 数量(报损数量)
T11.amount AS price, -- 采购单价(大单位)
T1.total_price, -- 总价(报损金额)
T1.reason_code, -- 理由类型(报损原因)
T1.reason, -- 理由(报损详细)
T1.start_time, -- 开始时间
T1.end_time, -- 结束时间
T1.supplier_id, -- 供应商id
T9."name" AS supplier_name, -- 供应商名称
T2.part_percent, -- 拆零比
T1.total_quantity AS old_quantity, -- 报损前数量
sdd.dict_label AS unitCodeDict_text,
sdd1.dict_label AS minUnitCodeDict_text
FROM wor_supply_request T1
LEFT JOIN med_medication_definition T2
ON T1.item_id = T2.id
AND T2.delete_flag = '0'
LEFT JOIN med_medication T3
ON T3.medication_def_id = T2.id
AND T3.delete_flag = '0'
LEFT JOIN wor_inventory_item T4
ON T1.item_id = T4.item_id
AND T1.purpose_location_id = T4.location_id
AND T1.lot_number = T4.lot_number
AND T4.delete_flag = '0'
LEFT JOIN adm_location T5
ON T1.purpose_location_id = T5.id
AND T5.delete_flag = '0'
LEFT JOIN adm_location T6
ON T1.purpose_location_store_id = T6.id
AND T6.delete_flag = '0'
LEFT JOIN adm_supplier T9
ON T9.id = T1.supplier_id
LEFT JOIN adm_charge_item_definition AS T10
ON T10.instance_id = T4.item_id
AND T10.delete_flag = '0'
LEFT JOIN adm_charge_item_def_detail AS T11
ON T11.definition_id = T10.id
AND T11.delete_flag = '0'
AND T11.condition_value = T4.lot_number
AND T11.condition_code = '1'-- 1:批号进价
LEFT JOIN sys_dict_data sdd ON sdd.dict_value = T2.unit_code AND sdd.dict_type = 'unit_code'
LEFT JOIN sys_dict_data sdd1 ON sdd1.dict_value = T2.min_unit_code AND sdd1.dict_type = 'unit_code'
WHERE T1.bus_no = #{busNo}
AND T1.item_table = #{medicationTableName}
AND T1.delete_flag = '0'
UNION
SELECT T1.id, -- ID
T1.bus_no AS supply_bus_no, -- 单据号
T1.item_id, -- 物品编码
T1.purpose_type_enum, -- 目的类型
T1.purpose_location_id, -- 目的仓库
T5."name" AS purpose_location_name, -- 目的仓库名称
T6."name" AS purpose_location_store_name, -- 目的仓位
T1.occurrence_time, -- 报损时间
#{device} AS item_type, -- 器材类型
T1.remake, -- 备注
T7.bus_no AS item_bus_no, -- 项目编码
T7."name" AS item_name, -- 名称
T7."size" AS total_volume, -- 器材规格
T1.unit_code AS measurement_unit_code, -- 物品计量单位
T7.unit_code, -- 包装单位
T7.min_unit_code, -- 最小单位
T7.manufacturer_text, -- 生产厂商文本
T4.lot_number, -- 产品批号
T4.quantity AS total_quantity, -- 当前库存数量
T1.item_quantity, -- 数量(报损数量)
T11.amount AS price, -- 采购单价(大单位)
T1.total_price, -- 总价(报损金额)
T1.reason_code, -- 理由类型(报损原因)
T1.reason, -- 理由(报损详细)
T1.start_time, -- 开始时间
T1.end_time, -- 结束时间
T1.supplier_id, -- 供应商id
T9."name" AS supplier_name, -- 供应商名称
T7.part_percent, -- 拆零比
T1.total_quantity AS old_quantity, -- 报损前数量
sdd.dict_label AS unitCodeDict_text,
sdd1.dict_label AS minUnitCodeDict_text
FROM wor_supply_request T1
LEFT JOIN adm_device_definition T7
ON T1.item_id = T7.id
AND T7.delete_flag = '0'
LEFT JOIN wor_inventory_item T4
ON T1.item_id = T4.item_id
AND T1.purpose_location_id = T4.location_id
AND T1.lot_number = T4.lot_number
AND T4.delete_flag = '0'
LEFT JOIN adm_location T5
ON T1.purpose_location_id = T5.id
AND T5.delete_flag = '0'
LEFT JOIN adm_location T6
ON T1.purpose_location_store_id = T6.id
AND T6.delete_flag = '0'
LEFT JOIN adm_supplier T9
ON T9.id = T1.supplier_id
AND T9.delete_flag = '0'
LEFT JOIN adm_charge_item_definition AS T10
ON T10.instance_id = T4.item_id
AND T10.delete_flag = '0'
LEFT JOIN adm_charge_item_def_detail AS T11
ON T11.definition_id = T10.id
AND T11.delete_flag = '0'
AND T11.condition_value = T4.lot_number
AND T11.condition_code = '1'-- 1:批号进价
LEFT JOIN sys_dict_data sdd ON sdd.dict_value = T7.unit_code AND sdd.dict_type = 'unit_code'
LEFT JOIN sys_dict_data sdd1 ON sdd1.dict_value = T7.min_unit_code AND sdd1.dict_type = 'unit_code'
WHERE T1.bus_no = #{busNo}
AND T1.item_table = #{deviceTableName}
AND T1.delete_flag = '0'
</select>
</mapper>

View File

@@ -5,19 +5,19 @@
<select id="selectStocktakingReceiptPage"
resultType="com.openhis.web.inventorymanage.dto.ReceiptPageDto">
SELECT T4.tenant_id,
T4.supply_bus_no, --单据号
T4.type_enum, --类型
T4.status_enum, --状态
T4.purpose_type_enum, --目的类型
T4.purpose_location_id, --目的仓库
T4.purpose_location_store_id, --目的仓位
T4.breakeven_price, --盈亏金额
T4.applicant_id, --申请人
T4.approver_id, --审批人
T4.create_time, -- 制单时间
T4.approval_time --审批时间
T4.supply_bus_no, -- 单据号
T4.type_enum, -- 类型
T4.status_enum, -- 状态
T4.purpose_type_enum, -- 目的类型
T4.purpose_location_id, -- 目的仓库
T4.purpose_location_store_id, -- 目的仓位
T4.breakeven_price, -- 盈亏金额
T4.applicant_id, -- 申请人
T4.approver_id, -- 审批人
T4.create_time, -- 制单时间
T4.approval_time -- 审批时间
FROM (SELECT T1.tenant_id,
T1.bus_no AS supply_bus_no,
T1.bus_no AS supply_bus_no,
T1.type_enum,
T1.status_enum,
T1.purpose_type_enum,
@@ -49,8 +49,7 @@
T1.applicant_id,
T1.approver_id,
T1.approval_time
ORDER BY T1.bus_no desc
) AS T4
ORDER BY T1.bus_no desc) AS T4
${ew.customSqlSegment}
</select>
<select id="selectDetail" resultType="com.openhis.web.inventorymanage.dto.ReceiptDetailDto">
@@ -73,6 +72,7 @@
T2.min_unit_code, --最小单位(小单位)
T2.manufacturer_text, --生产厂商文本
T4.lot_number, --产品批号
T4.quantity AS org_quantity, --实际库存
T1.total_quantity, --实盘数量(常规单位)(小单位)
T11.amount AS price, --采购单价(大单位)
T1.item_quantity, --数量(盈亏数量)(小单位)
@@ -108,7 +108,7 @@
ON T11.definition_id = T10.id
AND T11.delete_flag = '0'
AND T11.condition_value = T4.lot_number
AND T11.condition_code = '1'--1:批号进价
AND T11.condition_code = '1'-- 1:批号进价
WHERE T1.bus_no = #{busNo}
AND T1.delete_flag = '0'
AND T1.item_table = #{medicationTableName}
@@ -119,7 +119,7 @@
T1.item_id,
T1.purpose_type_enum,
T1.purpose_location_id,
T7."name" AS purpose_location_name,
T7."name" AS purpose_location_name,
T1.purpose_location_store_id,
T1.occurrence_time,
#{device} AS item_type,
@@ -127,22 +127,23 @@
T5.bus_no AS item_bus_no,
T5."name" AS item_name,
T5."size" AS total_volume,
T1.unit_code AS measurement_unit_code, -- 物品计量单位
T1.unit_code AS measurement_unit_code, -- 物品计量单位
T5.unit_code,
T5.min_unit_code AS min_unit_code,
T5.manufacturer_text,
T4.lot_number,
T4.quantity AS org_quantity, --实际库存
T1.total_quantity,
T11.amount AS price, --采购单价(大单位)
T11.amount AS price, -- 采购单价(大单位)
T1.item_quantity,
T1.total_price,
T1.reason_code,
T1.reason,
T5.yb_no,
T1.start_time, -- 开始时间
T1.end_time, -- 结束时间
T1.supplier_id, -- 供应商id
T8."name" AS supplier_name, -- 供应商名称
T1.start_time, -- 开始时间
T1.end_time, -- 结束时间
T1.supplier_id, -- 供应商id
T8."name" AS supplier_name, -- 供应商名称
T5.part_percent
FROM wor_supply_request AS T1
LEFT JOIN adm_device_definition AS T5
@@ -164,7 +165,7 @@
ON T11.definition_id = T10.id
AND T11.delete_flag = '0'
AND T11.condition_value = T4.lot_number
AND T11.condition_code = '1'--1:批号进价
AND T11.condition_code = '1'-- 1:批号进价
WHERE T1.bus_no = #{busNo}
AND T1.delete_flag = '0'
AND T1.item_table = #{deviceTableName}
@@ -172,29 +173,29 @@
<select id="selectStocktakingReceiptDetail"
resultType="com.openhis.web.inventorymanage.dto.ReceiptDetailDto">
SELECT T6.tenant_id,
T6.id AS item_Id, --Id
T6.bus_no AS item_bus_no, --编码
T6.item_type, --药品类型
T6.medication_type, -- 药品类型
T6.item_name, --名称
T6.total_volume, --规格
T6.lot_number, --产品批号
T6.yb_no, --医保编码
T6.measurement_unit_code, -- 计量单位
T6.unit_code, --药品单位(包装单位)(大单位)
T6.min_unit_code, --最小单位(小单位)
T6.part_percent, --拆零比
T6.stocktaking_unit_code, --常规单位(小单位)
T6.quantity AS total_quantity, --当前库存数量(常规单位)(小单位)
T6.price, --采购单价(大单位)
T6.manufacturer_text, --生产厂商文本
T6.location_id AS purpose_location_id, --仓库
T6.location_store_id AS purpose_location_store_id, --库位
T6.supplier_id, -- 供应商id
T6.supplier_name, -- 供应商名称
T6.start_time, -- 生产日期
T6.end_time, -- 有效期
T6.form_enum AS purpose_type_enum --仓库类型
T6.id AS item_Id, -- Id
T6.bus_no AS item_bus_no, -- 编码
T6.item_type, -- 药品类型
T6.medication_type, -- 药品类型
T6.item_name, -- 名称
T6.total_volume, -- 规格
T6.lot_number, -- 产品批号
T6.yb_no, -- 医保编码
T6.measurement_unit_code, -- 计量单位
T6.unit_code, -- 药品单位(包装单位)(大单位)
T6.min_unit_code, -- 最小单位(小单位)
T6.part_percent, -- 拆零比
T6.stocktaking_unit_code, -- 常规单位(小单位)
T6.quantity AS total_quantity, -- 当前库存数量(常规单位)(小单位)
T6.price, -- 采购单价(大单位)
T6.manufacturer_text, -- 生产厂商文本
T6.location_id AS purpose_location_id, -- 仓库
T6.location_store_id AS purpose_location_store_id, -- 库位
T6.supplier_id, -- 供应商id
T6.supplier_name, -- 供应商名称
T6.start_time, -- 生产日期
T6.end_time, -- 有效期
T6.form_enum AS purpose_type_enum -- 仓库类型
FROM (SELECT T1.tenant_id,
T2.id,
T2.bus_no,
@@ -214,8 +215,8 @@
T2.manufacturer_text,
T1.location_id,
T1.location_store_id,
T1.supplier_id, -- 供应商id
T7."name" AS supplier_name, -- 供应商名称
T1.supplier_id, -- 供应商id
T7."name" AS supplier_name, -- 供应商名称
T1.production_date AS start_time,
T1.expiration_date AS end_time,
T5.form_enum
@@ -238,7 +239,7 @@
ON T11.definition_id = T10.id
AND T11.delete_flag = '0'
AND T11.condition_value = T1.lot_number
AND T11.condition_code = '1'--1:批号进价
AND T11.condition_code = '1'-- 1:批号进价
WHERE T1.delete_flag = '0'
AND T1.inventory_status_enum = #{inventoryStatusEnum}
AND T1.location_id = #{sourceLocationId}
@@ -263,8 +264,8 @@
T4.manufacturer_text,
T1.location_id,
T1.location_store_id,
T1.supplier_id, -- 供应商id
T7."name" AS supplier_name, -- 供应商名称
T1.supplier_id, -- 供应商id
T7."name" AS supplier_name, -- 供应商名称
T1.production_date AS start_time,
T1.expiration_date AS end_time,
T5.form_enum
@@ -284,7 +285,7 @@
ON T11.definition_id = T10.id
AND T11.delete_flag = '0'
AND T11.condition_value = T1.lot_number
AND T11.condition_code = '1'--1:批号进价
AND T11.condition_code = '1'-- 1:批号进价
WHERE T1.delete_flag = '0'
AND T1.inventory_status_enum = #{inventoryStatusEnum}
AND T1.location_id = #{sourceLocationId}
@@ -295,20 +296,20 @@
<select id="selectAutoStocktakingBatch"
resultType="com.openhis.web.inventorymanage.dto.ProductStocktakingDto">
SELECT T1.id,
T1.item_table, --项目
T2.id AS item_id, --项目id
T1.unit_code AS unit_code,--物品计量单位
0 AS item_quantity,--盈亏数量
T1.quantity AS total_quantity,--合计数量
T11.amount / T2.part_percent AS price,--单价
0 AS total_price, -- 盈亏金额
T5.form_enum AS purpose_type_enum,--目的仓库类型
T1.location_id AS purpose_location_id,--目的仓库
T1.location_store_id AS purpose_location_store_id,--目的仓位
T1.supplier_id,--供应商
T1.production_date AS start_time,--开始时间
T1.expiration_date AS end_time,--结束时间
T1.lot_number--产品批号
T1.item_table, -- 项目
T2.id AS item_id, -- 项目id
T1.unit_code AS unit_code,-- 物品计量单位
0 AS item_quantity,-- 盈亏数量
T1.quantity AS total_quantity,-- 合计数量
T11.amount / T2.part_percent AS price,-- 单价
0 AS total_price, -- 盈亏金额
T5.form_enum AS purpose_type_enum,-- 目的仓库类型
T1.location_id AS purpose_location_id,-- 目的仓库
T1.location_store_id AS purpose_location_store_id,-- 目的仓位
T1.supplier_id,-- 供应商
T1.production_date AS start_time,-- 开始时间
T1.expiration_date AS end_time,-- 结束时间
T1.lot_number-- 产品批号
FROM wor_inventory_item T1
LEFT JOIN med_medication_definition T2
ON T1.item_id = T2.id
@@ -328,26 +329,26 @@
ON T11.definition_id = T10.id
AND T11.delete_flag = '0'
AND T11.condition_value = T1.lot_number
AND T11.condition_code = '1'--1:批号进价
AND T11.condition_code = '1'-- 1:批号进价
WHERE T1.delete_flag = '0'
AND T1.inventory_status_enum = #{inventoryStatusEnum}
AND T1.item_table = #{medicationTableName}
UNION
SELECT T1.id,
T1.item_table, --项目
T4.id AS item_id, --项目id
T1.unit_code AS unit_code,--物品计量单位
0 AS item_quantity,--盈亏数量
T1.quantity AS total_quantity,--合计数量
T11.amount / T4.part_percent AS price,--单价
0 AS total_price, -- 盈亏金额
T5.form_enum AS purpose_type_enum,--目的仓库类型
T1.location_id AS purpose_location_id,--目的仓库
T1.location_store_id AS purpose_location_store_id,--目的仓位
T1.supplier_id,--供应商
T1.production_date AS start_time,--开始时间
T1.expiration_date AS end_time,--结束时间
T1.lot_number--产品批号
T1.item_table, -- 项目
T4.id AS item_id, -- 项目id
T1.unit_code AS unit_code,-- 物品计量单位
0 AS item_quantity,-- 盈亏数量
T1.quantity AS total_quantity,-- 合计数量
T11.amount / T4.part_percent AS price,-- 单价
0 AS total_price, -- 盈亏金额
T5.form_enum AS purpose_type_enum,-- 目的仓库类型
T1.location_id AS purpose_location_id,-- 目的仓库
T1.location_store_id AS purpose_location_store_id,-- 目的仓位
T1.supplier_id,-- 供应商
T1.production_date AS start_time,-- 开始时间
T1.expiration_date AS end_time,-- 结束时间
T1.lot_number-- 产品批号
FROM wor_inventory_item T1
LEFT JOIN adm_device_definition T4
ON T1.item_id = T4.id
@@ -364,43 +365,43 @@
ON T11.definition_id = T10.id
AND T11.delete_flag = '0'
AND T11.condition_value = T1.lot_number
AND T11.condition_code = '1'--1:批号进价
AND T11.condition_code = '1'-- 1:批号进价
WHERE T1.delete_flag = '0'
AND T1.inventory_status_enum = #{inventoryStatusEnum}
AND T1.item_table = #{deviceTableName}
</select>
<select id="getMonthlySettlementDetail" resultType="com.openhis.web.inventorymanage.dto.ReceiptDetailDto">
SELECT T1.id, --ID
T1.bus_no, --单据号
T1.trace_no, --追溯码
T1.item_id, --物品编码
T1.purpose_type_enum, --目的类型
T1.purpose_location_id, --目的仓库
T7."name" AS purpose_location_name, -- 目的仓库
T1.purpose_location_store_id, --目的仓位
T1.occurrence_time, --期望时间(盘点日期)
#{medicine} AS item_type, --药品类型
T1.remake, --备注
T2.bus_no AS item_bus_no, --项目编码
T2."name" AS item_name, --名称
T3.total_volume, --规格
T1.unit_code AS measurement_unit_code, -- 物品计量单位
T2.unit_code, --包装单位(大单位)
T2.min_unit_code, --最小单位(小单位)
T2.manufacturer_text, --生产厂商文本
T4.lot_number, --产品批号
T1.total_quantity, --实盘数量(常规单位)(小单位)
T11.amount AS price, --采购单价(大单位)
T1.item_quantity, --数量(盈亏数量)(小单位)
T1.total_price, --总价(盈亏金额)
T1.reason_code, --理由类型(盈亏原因)
T1.reason, --理由(盈亏详细)
T2.yb_no, --医保编码
T1.start_time, -- 开始时间
T1.end_time, -- 结束时间
T1.supplier_id, -- 供应商id
T8."name" AS supplier_name, -- 供应商名称
T2.part_percent --拆零比
SELECT T1.id, -- ID
T1.bus_no, -- 单据号
T1.trace_no, -- 追溯码
T1.item_id, -- 物品编码
T1.purpose_type_enum, -- 目的类型
T1.purpose_location_id, -- 目的仓库
T7."name" AS purpose_location_name, -- 目的仓库
T1.purpose_location_store_id, -- 目的仓位
T1.occurrence_time, -- 期望时间(盘点日期)
#{medicine} AS item_type, -- 药品类型
T1.remake, -- 备注
T2.bus_no AS item_bus_no, -- 项目编码
T2."name" AS item_name, -- 名称
T3.total_volume, -- 规格
T1.unit_code AS measurement_unit_code, -- 物品计量单位
T2.unit_code, -- 包装单位(大单位)
T2.min_unit_code, -- 最小单位(小单位)
T2.manufacturer_text, -- 生产厂商文本
T4.lot_number, -- 产品批号
T1.total_quantity, -- 实盘数量(常规单位)(小单位)
T11.amount AS price, -- 采购单价(大单位)
T1.item_quantity, -- 数量(盈亏数量)(小单位)
T1.total_price, -- 总价(盈亏金额)
T1.reason_code, -- 理由类型(盈亏原因)
T1.reason, -- 理由(盈亏详细)
T2.yb_no, -- 医保编码
T1.start_time, -- 开始时间
T1.end_time, -- 结束时间
T1.supplier_id, -- 供应商id
T8."name" AS supplier_name, -- 供应商名称
T2.part_percent -- 拆零比
FROM
<if test="endTime == null">
wor_aut_supply_request AS T1
@@ -430,7 +431,7 @@
ON T11.definition_id = T10.id
AND T11.delete_flag = '0'
AND T11.condition_value = T4.lot_number
AND T11.condition_code = '1'--1:批号进价
AND T11.condition_code = '1'-- 1:批号进价
WHERE T1.purpose_location_id = #{locationId}
AND T1.status_enum = #{statusEnum}
AND T1.type_enum IN
@@ -460,22 +461,22 @@
T5.bus_no AS item_bus_no,
T5."name" AS item_name,
T5."size" AS total_volume,
T1.unit_code AS measurement_unit_code, -- 物品计量单位
T1.unit_code AS measurement_unit_code, -- 物品计量单位
T5.unit_code,
T5.min_unit_code AS min_unit_code,
T5.manufacturer_text,
T4.lot_number,
T1.total_quantity,
T11.amount AS price, --采购单价(大单位)
T11.amount AS price, -- 采购单价(大单位)
T1.item_quantity,
T1.total_price,
T1.reason_code,
T1.reason,
T5.yb_no,
T1.start_time, -- 开始时间
T1.end_time, -- 结束时间
T1.supplier_id, -- 供应商id
T8."name" AS supplier_name, -- 供应商名称
T1.start_time, -- 开始时间
T1.end_time, -- 结束时间
T1.supplier_id, -- 供应商id
T8."name" AS supplier_name, -- 供应商名称
T5.part_percent
FROM
<if test="endTime == null">
@@ -503,7 +504,7 @@
ON T11.definition_id = T10.id
AND T11.delete_flag = '0'
AND T11.condition_value = T4.lot_number
AND T11.condition_code = '1'--1:批号进价
AND T11.condition_code = '1'-- 1:批号进价
WHERE T1.purpose_location_id = #{locationId}
AND T1.status_enum = #{statusEnum}
AND T1.type_enum IN
@@ -519,4 +520,123 @@
AND T1.item_table = #{deviceTableName}
AND T1.delete_flag = '0'
</select>
<select id="selectInventoryReceiptDetail" resultType="com.openhis.web.inventorymanage.dto.InventoryReceiptDetailDto">
SELECT T1.id, -- ID
T1.bus_no, -- 单据号
T1.trace_no, -- 追溯码
T1.item_id, -- 物品编码
T1.purpose_type_enum, -- 目的类型
T1.purpose_location_id, -- 目的仓库
T7."name" AS purpose_location_name, -- 目的仓库
T1.purpose_location_store_id, -- 目的仓位
T1.occurrence_time, -- 期望时间(盘点日期)
#{medicine} AS item_type, -- 药品类型
T1.remake, -- 备注
T2.bus_no AS item_bus_no, -- 项目编码
T2."name" AS item_name, -- 名称
T3.total_volume, -- 规格
T1.unit_code AS measurement_unit_code, -- 物品计量单位
T2.unit_code, -- 包装单位(大单位)
T2.min_unit_code, -- 最小单位(小单位)
T2.manufacturer_text, -- 生产厂商文本
T4.lot_number, -- 产品批号
T1.total_quantity, -- 实盘数量(常规单位)(小单位)
T11.amount AS price, -- 采购单价(大单位)
T1.item_quantity, -- 数量(盈亏数量)(小单位)
T1.total_price, -- 总价(盈亏金额)
T1.reason_code, -- 理由类型(盈亏原因)
T1.reason, -- 理由(盈亏详细)
T2.yb_no, -- 医保编码
T1.start_time, -- 开始时间
T1.end_time, -- 结束时间
T1.supplier_id, -- 供应商id
T8."name" AS supplier_name, -- 供应商名称
T2.part_percent -- 拆零比
FROM wor_supply_request AS T1
LEFT JOIN med_medication_definition AS T2
ON T1.item_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 T1.item_id = T4.item_id
AND T1.purpose_location_id = T4.location_id
AND T1.lot_number = T4.lot_number
AND T4.delete_flag = '0'
LEFT JOIN adm_location T7
ON T1.purpose_location_id = T7.id
LEFT JOIN adm_supplier T8
ON T8.id = T1.supplier_id
LEFT JOIN adm_charge_item_definition AS T10
ON T10.instance_id = T4.item_id
AND T10.delete_flag = '0'
LEFT JOIN adm_charge_item_def_detail AS T11
ON T11.definition_id = T10.id
AND T11.delete_flag = '0'
AND T11.condition_value = T4.lot_number
AND T11.condition_code = '1'-- 1:批号进价
WHERE T1.bus_no = #{busNo}
AND T1.delete_flag = '0'
AND T1.item_table = #{medicationTableName}
UNION
SELECT T1.id,
T1.bus_no,
T1.trace_no,
T1.item_id,
T1.purpose_type_enum,
T1.purpose_location_id,
T7."name" AS purpose_location_name,
T1.purpose_location_store_id,
T1.occurrence_time,
#{device} AS item_type,
T1.remake,
T5.bus_no AS item_bus_no,
T5."name" AS item_name,
T5."size" AS total_volume,
T1.unit_code AS measurement_unit_code, -- 物品计量单位
T5.unit_code,
T5.min_unit_code AS min_unit_code,
T5.manufacturer_text,
T4.lot_number,
T1.total_quantity,
T11.amount AS price, -- 采购单价(大单位)
T1.item_quantity,
T1.total_price,
T1.reason_code,
T1.reason,
T5.yb_no,
T1.start_time, -- 开始时间
T1.end_time, -- 结束时间
T1.supplier_id, -- 供应商id
T8."name" AS supplier_name, -- 供应商名称
T5.part_percent
FROM wor_supply_request AS T1
LEFT JOIN adm_device_definition AS T5
ON T1.item_id = T5.id
AND T5.delete_flag = '0'
LEFT JOIN wor_inventory_item AS T4
ON T1.item_id = T4.item_id
AND T1.purpose_location_id = T4.location_id
AND T1.lot_number = T4.lot_number
AND T4.delete_flag = '0'
LEFT JOIN adm_location T7
ON T1.purpose_location_id = T7.id
LEFT JOIN adm_supplier T8
ON T8.id = T1.supplier_id
LEFT JOIN adm_charge_item_definition AS T10
ON T10.instance_id = T4.item_id
AND T10.delete_flag = '0'
LEFT JOIN adm_charge_item_def_detail AS T11
ON T11.definition_id = T10.id
AND T11.delete_flag = '0'
AND T11.condition_value = T4.lot_number
AND T11.condition_code = '1'-- 1:批号进价
WHERE T1.bus_no = #{busNo}
AND T1.delete_flag = '0'
AND T1.item_table = #{deviceTableName}
</select>
</mapper>

View File

@@ -16,7 +16,8 @@
T2.approval_time, -- 审批时间
T2.applicant_id, -- 申请人ID
T2.create_time, -- 制单时间
T2.tenant_id -- 租户ID
T2.tenant_id, -- 租户ID
T2.total_amount
FROM (SELECT T1.bus_no AS supply_bus_no,
T1.status_enum,
T1.type_enum,
@@ -29,7 +30,8 @@
T2."name" AS source_location_name, -- 源仓库
T1.purpose_location_id,
T3."name" AS purpose_location_name, -- 目的仓库
T1.tenant_id -- 租户ID
T1.tenant_id, -- 租户ID
sum(T1.total_price) AS total_amount
FROM wor_supply_request AS T1
LEFT JOIN adm_location T2
ON T1.source_location_id = T2.id
@@ -55,11 +57,12 @@
</select>
<select id="selectBatchTransferDetail" resultType="com.openhis.web.inventorymanage.dto.ProductTransferDetailDto">
SELECT A.tenant_id,
A.id,
A.medication_type, -- 药品类型
A.item_type, -- 药品类型
A.name, -- 项目
A.total_volume, -- 规格
A.manufacturer, -- 生产厂家
A.manufacturer_text, -- 生产厂家
A.measurement_unit_code, -- 计量单位
A.unit_code, -- 包装单位
A.min_unit_code, -- 最小单位
@@ -77,11 +80,12 @@
A.supplier_name, -- 供应商名称
A.packaging_levels -- 追溯码包装层级
FROM (SELECT T1.tenant_id,
T1.id,
#{medicine} AS medication_type,
#{medicine} AS item_type,
T1.name,
T3.total_volume,
T2.manufacturer_text AS manufacturer,
T2.manufacturer_text ,
T1.unit_code AS measurement_unit_code,
T2.unit_code,
T2.min_unit_code,
@@ -129,11 +133,12 @@
AND T1.quantity > 0
UNION ALL
SELECT T1.tenant_id,
T1.id,
#{device} AS medication_type,
#{device} AS item_type,
T1.name,
T5.size AS total_volume,
T5.manufacturer_text AS manufacturer,
T5.manufacturer_text,
T1.unit_code AS measurement_unit_code,
T5.unit_code,
T5.min_unit_code,
@@ -179,6 +184,8 @@
) AS A
${ew.customSqlSegment}
</select>
<select id="selectDetail" resultType="com.openhis.web.inventorymanage.dto.ProductTransferDetailDto">
SELECT DISTINCT T1.id,
T1.bus_no, -- 商品调拨单据号
@@ -196,7 +203,7 @@
#{medicine} AS item_type, -- 项目类型
T2.name, -- 药品名称
T3.total_volume, -- 规格
T2.manufacturer_text AS manufacturer, -- 生产厂商
T2.manufacturer_text, -- 生产厂商
T4."name" AS supplier_name, -- 供应商名称
T1.unit_code AS measurement_unit_code, -- 物品计量单位
T2.unit_code, -- 包装单位
@@ -213,8 +220,9 @@
T2.part_percent, -- 拆零比
T1.remake, -- 备注
T1.occurrence_time,
T9.quantity AS total_source_quantity, -- 库存数量(源库存)
T12.quantity AS total_purpose_quantity -- 库存数量(目的库存)
T1.total_quantity AS total_source_quantity, -- 库存数量(源库存)
T12.quantity AS total_purpose_quantity, -- 库存数量(目的库存)
sdt.dict_label AS measurementUnitCode_dictText -- 物品计量单位文字
FROM wor_supply_request T1
LEFT JOIN med_medication_definition T2
ON T1.item_id = T2.id
@@ -243,15 +251,17 @@
ON T11.definition_id = T10.id
AND T11.delete_flag = '0'
AND T11.condition_value = T9.lot_number
AND T11.condition_code = '1'--1:批号进价
AND T11.condition_code = '1' -- 1:批号进价
LEFT JOIN wor_inventory_item T12
ON T1.item_id = T12.item_id
AND T1.purpose_location_id = T12.location_id
AND T12.lot_number = T1.lot_number
AND T12.delete_flag = '0'
AND T12.inventory_status_enum != 3
LEFT JOIN sys_dict_data sdt
ON sdt.dict_value = T1.unit_code AND dict_type = 'unit_code'
WHERE T1.bus_no = #{busNo}
AND T1.item_table = #{medicationTableName}
AND T9.item_table = #{medicationTableName}
AND T1.delete_flag = '0'
UNION
SELECT DISTINCT T1.id,
@@ -270,7 +280,7 @@
#{device} AS item_type, -- 项目类型
T2.name, -- 药品名称
T2."size" AS total_volume, -- 规格
T2.manufacturer_text AS manufacturer, -- 生产厂商
T2.manufacturer_text, -- 生产厂商
T4."name" AS supplier_name, -- 供应商名称
T1.unit_code AS measurement_unit_code, -- 物品计量单位
T2.unit_code, -- 包装单位
@@ -287,8 +297,9 @@
T2.part_percent, -- 拆零比
T1.remake, -- 备注
T1.occurrence_time,
T9.quantity AS total_source_quantity, -- 总库存数量(源库存)
T12.quantity AS total_purpose_quantity -- 总库存数量(目的库存)
T1.total_quantity AS total_source_quantity, -- 总库存数量(源库存)
T12.quantity AS total_purpose_quantity, -- 总库存数量(目的库存)
sdt.dict_label AS measurementUnitCode_dictText
FROM wor_supply_request T1
LEFT JOIN adm_device_definition T2
ON T1.item_id = T2.id
@@ -315,17 +326,20 @@
ON T11.definition_id = T10.id
AND T11.delete_flag = '0'
AND T11.condition_value = T9.lot_number
AND T11.condition_code = '1'--1:批号进价
AND T11.condition_code = '1' -- 1:批号进价
LEFT JOIN wor_inventory_item T12
ON T1.item_id = T12.item_id
AND T1.purpose_location_id = T12.location_id
AND T12.lot_number = T1.lot_number
AND T12.delete_flag = '0'
AND T12.inventory_status_enum != 3
LEFT JOIN sys_dict_data sdt
ON sdt.dict_value = T1.unit_code AND dict_type = 'unit_code'
WHERE T1.bus_no = #{busNo}
AND T1.item_table = #{deviceTableName}
AND T9.item_table = #{deviceTableName}
AND T1.delete_flag = '0'
</select>
<select id="getMonthlySettlementDetail" resultType="com.openhis.web.inventorymanage.dto.ReceiptDetailDto">
SELECT DISTINCT T1.id,
T1.bus_no, -- 商品调拨单据号
@@ -343,7 +357,7 @@
#{medicine} AS item_type, -- 项目类型
T2.name, -- 药品名称
T3.total_volume, -- 规格
T2.manufacturer_text AS manufacturer, -- 生产厂商
T2.manufacturer_text , -- 生产厂商
T4."name" AS supplier_name, -- 供应商名称
T1.unit_code AS measurement_unit_code, -- 物品计量单位
T2.unit_code, -- 包装单位
@@ -425,7 +439,7 @@
#{device} AS item_type, -- 项目类型
T2.name, -- 药品名称
T2."size" AS total_volume, -- 规格
T2.manufacturer_text AS manufacturer, -- 生产厂商
T2.manufacturer_text , -- 生产厂商
T4."name" AS supplier_name, -- 供应商名称
T1.unit_code AS measurement_unit_code, -- 物品计量单位
T2.unit_code, -- 包装单位

View File

@@ -8,94 +8,95 @@
WHEN T1.type_enum = #{purchaseReturn}
THEN T1.item_quantity
ELSE 0
END AS item_quantity, --退库数量
END AS item_quantity, -- 退库数量
CASE
WHEN T1.type_enum = #{purchaseReturn}
THEN (
SELECT COALESCE(SUM(T9.item_quantity), 0)
FROM wor_supply_request AS T9
WHERE T9.original_bus_no = T1.original_bus_no
AND T9.item_id = T1.item_id
AND T9.lot_number = T1.lot_number
AND T9.delete_flag = '0'
AND T9.status_enum = #{agree}
)
ELSE (
SELECT COALESCE(SUM(T9.item_quantity), 0)
FROM wor_supply_request AS T9
WHERE T9.original_bus_no = T1.bus_no
AND T9.item_id = T1.item_id
AND T9.lot_number = T1.lot_number
AND T9.delete_flag = '0'
AND T9.status_enum = #{agree}
)
END AS returned_quantity, --已退数量
THEN (SELECT COALESCE(SUM(T9.item_quantity), 0)
FROM wor_supply_request AS T9
WHERE T9.original_bus_no = T1.original_bus_no
AND T9.item_id = T1.item_id
AND T9.lot_number = T1.lot_number
AND T9.delete_flag = '0'
AND T9.status_enum = #{agree})
ELSE (SELECT COALESCE(SUM(T9.item_quantity), 0)
FROM wor_supply_request AS T9
WHERE T9.original_bus_no = T1.bus_no
AND T9.item_id = T1.item_id
AND T9.lot_number = T1.lot_number
AND T9.delete_flag = '0'
AND T9.status_enum = #{agree})
END AS returned_quantity, -- 已退数量
CASE
WHEN T1.type_enum = #{purchaseReturn}
THEN T1.id
ELSE NULL
END AS id, --采购退货id
END AS id, -- 采购退货id
CASE
WHEN T1.type_enum = #{purchaseReturn}
THEN NULL
ELSE T1.id
END AS purchase_id, --采购入库id
T2.quantity AS quantity, --库存数量
END AS purchase_id, -- 采购入库id
T2.quantity AS quantity, -- 库存数量
CASE
WHEN T1.type_enum = #{purchaseReturn}
THEN (
SELECT T9.item_quantity
FROM wor_supply_request AS T9
WHERE T1.original_bus_no = T9.bus_no
AND T9.item_id = T1.item_id
AND T9.lot_number = T1.lot_number
AND T9.delete_flag = '0'
)
THEN (SELECT T9.item_quantity
FROM wor_supply_request AS T9
WHERE T1.original_bus_no = T9.bus_no
AND T9.item_id = T1.item_id
AND T9.lot_number = T1.lot_number
AND T9.delete_flag = '0')
ELSE T3.quantity
END AS purchase_quantity, --采购数量
T11.amount AS price, --采购单价
END AS purchase_quantity, -- 采购数量
T11.amount AS price, -- 采购单价
CASE
WHEN T1.type_enum = #{purchaseReturn}
THEN (
SELECT T9.unit_code
FROM wor_supply_request AS T9
WHERE T1.original_bus_no = T9.bus_no
AND T9.item_id = T1.item_id
AND T9.lot_number = T1.lot_number
AND T9.delete_flag = '0'
)
THEN (SELECT T9.unit_code
FROM wor_supply_request AS T9
WHERE T1.original_bus_no = T9.bus_no
AND T9.item_id = T1.item_id
AND T9.lot_number = T1.lot_number
AND T9.delete_flag = '0')
ELSE T1.unit_code
END AS purchase_unit_code, --采购单位
T1.unit_code AS measurement_unit_code, -- 物品计量单位
T4.unit_code, -- 包装单位
T4.min_unit_code, -- 最小单位
T5."name" AS purpose_location_name, --仓库
T6."name" AS purpose_location_store_name, --货位
T4."name" AS item_name, --药品
T1.lot_number, --批次号
T1.reason, --退货原因
T1.remake, --备注
T1.item_id, --物品编码
T1.purpose_location_id, --目的仓库ID
T1.purpose_location_store_id, --目的货位ID
T1.purpose_type_enum, -- 目的仓库类型
T1.supplier_id, -- 供应商id
T7."name" AS supplier_name, -- 供应商名称
T8.total_volume, -- 规格
T4.manufacturer_text AS manufacturer, -- 生产厂商
END AS purchase_unit_code, -- 采购单位
T1.unit_code AS measurement_unit_code, -- 物品计量单位
T4.unit_code, -- 包装单位
T4.min_unit_code, -- 最小单位
T5."name" AS purpose_location_name, -- 仓库
T6."name" AS purpose_location_store_name, -- 货位
T4."name" AS item_name, -- 药品
T1.lot_number, -- 批次号
T1.reason, -- 退货原因
T1.remake, -- 备注
T1.item_id, -- 物品编码
T1.purpose_location_id, -- 目的仓库ID
T1.purpose_location_store_id, -- 目的货位ID
T1.purpose_type_enum, -- 目的仓库类型
T1.supplier_id, -- 供应商id
T7."name" AS supplier_name, -- 供应商名称
T8.total_volume, -- 规格
T4.manufacturer_text , -- 生产厂商
#{medicine} AS item_type,
T1.start_time, -- 开始时间
T1.end_time, -- 结束时间
T1.invoice_no, -- 发票号
T1.trace_no, -- 追溯码
T2.packaging_levels, -- 追溯码包装层级
T1.start_time, -- 开始时间
T1.end_time, -- 结束时间
T1.invoice_no, -- 发票号
T1.trace_no, -- 追溯码
T2.packaging_levels, -- 追溯码包装层级
CASE
WHEN T1.type_enum = #{purchaseReturn}
THEN T1.practitioner_id
ELSE NULL
END AS practitioner_id, --经手人
END AS practitioner_id, -- 经手人
T1.occurrence_time,
T4.part_percent --拆零比
T4.part_percent, -- 拆零比
CASE
WHEN T1.type_enum = #{purchaseReturn}
THEN (SELECT name
FROM adm_practitioner ap
WHERE ap.delete_flag = '0'
AND ap.tenant_id = 1
AND ap.id = T1.practitioner_id)
ELSE NULL
END AS practitioner_name -- 经手人姓名
FROM wor_supply_request T1
LEFT JOIN wor_inventory_item T2
ON T1.item_id = T2.item_id
@@ -127,7 +128,8 @@
ON T11.definition_id = T10.id
AND T11.delete_flag = '0'
AND T11.condition_value = T2.lot_number
AND T11.condition_code = '1'--1:批号进价
AND T11.condition_code = '1'-- 1:批号进价
WHERE T1.bus_no = #{busNo}
AND T1.item_table = #{medicationTableName}
AND T1.delete_flag = '0'
@@ -138,94 +140,95 @@
WHEN T1.type_enum = #{purchaseReturn}
THEN T1.item_quantity
ELSE NULL
END AS item_quantity, --退库数量
END AS item_quantity, -- 退库数量
CASE
WHEN T1.type_enum = #{purchaseReturn}
THEN (
SELECT COALESCE(SUM(T9.item_quantity), 0)
FROM wor_supply_request AS T9
WHERE T9.original_bus_no = T1.original_bus_no
AND T9.item_id = T1.item_id
AND T9.lot_number = T1.lot_number
AND T9.delete_flag = '0'
AND T9.status_enum = #{agree}
)
ELSE (
SELECT COALESCE(SUM(T9.item_quantity), 0)
FROM wor_supply_request AS T9
WHERE T9.original_bus_no = T1.bus_no
AND T9.item_id = T1.item_id
AND T9.lot_number = T1.lot_number
AND T9.delete_flag = '0'
AND T9.status_enum = #{agree}
)
END AS returned_quantity, --已退数量
THEN (SELECT COALESCE(SUM(T9.item_quantity), 0)
FROM wor_supply_request AS T9
WHERE T9.original_bus_no = T1.original_bus_no
AND T9.item_id = T1.item_id
AND T9.lot_number = T1.lot_number
AND T9.delete_flag = '0'
AND T9.status_enum = #{agree})
ELSE (SELECT COALESCE(SUM(T9.item_quantity), 0)
FROM wor_supply_request AS T9
WHERE T9.original_bus_no = T1.bus_no
AND T9.item_id = T1.item_id
AND T9.lot_number = T1.lot_number
AND T9.delete_flag = '0'
AND T9.status_enum = #{agree})
END AS returned_quantity, -- 已退数量
CASE
WHEN T1.type_enum = #{purchaseReturn}
THEN T1.id
ELSE NULL
END AS id, --采购退货id
END AS id, -- 采购退货id
CASE
WHEN T1.type_enum = #{purchaseReturn}
THEN NULL
ELSE T1.id
END AS purchase_id, --采购入库id
T2.quantity AS quantity, --库存数量
END AS purchase_id, -- 采购入库id
T2.quantity AS quantity, -- 库存数量
CASE
WHEN T1.type_enum = #{purchaseReturn}
THEN (
SELECT T9.item_quantity
FROM wor_supply_request AS T9
WHERE T1.original_bus_no = T9.bus_no
AND T9.item_id = T1.item_id
AND T9.lot_number = T1.lot_number
AND T9.delete_flag = '0'
)
THEN (SELECT T9.item_quantity
FROM wor_supply_request AS T9
WHERE T1.original_bus_no = T9.bus_no
AND T9.item_id = T1.item_id
AND T9.lot_number = T1.lot_number
AND T9.delete_flag = '0')
ELSE T3.quantity
END AS purchase_quantity, --采购数量
T11.amount AS price, --采购单价
END AS purchase_quantity, -- 采购数量
T11.amount AS price, -- 采购单价
CASE
WHEN T1.type_enum = #{purchaseReturn}
THEN (
SELECT T9.unit_code
FROM wor_supply_request AS T9
WHERE T1.original_bus_no = T9.bus_no
AND T9.item_id = T1.item_id
AND T9.lot_number = T1.lot_number
AND T9.delete_flag = '0'
)
THEN (SELECT T9.unit_code
FROM wor_supply_request AS T9
WHERE T1.original_bus_no = T9.bus_no
AND T9.item_id = T1.item_id
AND T9.lot_number = T1.lot_number
AND T9.delete_flag = '0')
ELSE T1.unit_code
END AS purchase_unit_code, --采购单位
T1.unit_code AS measurement_unit_code, -- 物品计量单位
T4.unit_code, -- 包装单位
T4.min_unit_code, -- 最小单位
T5."name" AS purpose_location_name, --仓库
T6."name" AS purpose_location_store_name, --货位
T4."name" AS item_name, --药品
T1.lot_number, --批次号
T1.reason, --退货原因
T1.remake, --备注
T1.item_id, --物品编码
T1.purpose_location_id, --目的仓库ID
T1.purpose_location_store_id, --目的货位ID
T1.purpose_type_enum, -- 目的仓库类型
T1.supplier_id, -- 供应商id
T7."name" AS supplier_name, -- 供应商名称
T4."size" AS total_volume, -- 规格
T4.manufacturer_text AS manufacturer, -- 生产厂商
END AS purchase_unit_code, -- 采购单位
T1.unit_code AS measurement_unit_code, -- 物品计量单位
T4.unit_code, -- 包装单位
T4.min_unit_code, -- 最小单位
T5."name" AS purpose_location_name, -- 仓库
T6."name" AS purpose_location_store_name, -- 货位
T4."name" AS item_name, -- 药品
T1.lot_number, -- 批次号
T1.reason, -- 退货原因
T1.remake, -- 备注
T1.item_id, -- 物品编码
T1.purpose_location_id, -- 目的仓库ID
T1.purpose_location_store_id, -- 目的货位ID
T1.purpose_type_enum, -- 目的仓库类型
T1.supplier_id, -- 供应商id
T7."name" AS supplier_name, -- 供应商名称
T4."size" AS total_volume, -- 规格
T4.manufacturer_text , -- 生产厂商
#{device} AS item_type,
T1.start_time, -- 开始时间
T1.end_time, -- 结束时间
T1.invoice_no, -- 发票号
T1.trace_no, -- 追溯码
T2.packaging_levels, -- 追溯码包装层级
T1.start_time, -- 开始时间
T1.end_time, -- 结束时间
T1.invoice_no, -- 发票号
T1.trace_no, -- 追溯码
T2.packaging_levels, -- 追溯码包装层级
CASE
WHEN T1.type_enum = #{purchaseReturn}
THEN T1.practitioner_id
ELSE NULL
END AS practitioner_id, --经手人
END AS practitioner_id, -- 经手人
T1.occurrence_time,
T4.part_percent --拆零比
T4.part_percent, -- 拆零比
CASE
WHEN T1.type_enum = #{purchaseReturn}
THEN (SELECT name
FROM adm_practitioner ap
WHERE ap.delete_flag = '0'
AND ap.tenant_id = 1
AND ap.id = T1.practitioner_id)
ELSE NULL
END AS practitioner_name -- 经手人姓名
FROM wor_supply_request T1
LEFT JOIN wor_inventory_item T2
ON T2.item_id = T1.item_id
@@ -254,11 +257,12 @@
ON T11.definition_id = T10.id
AND T11.delete_flag = '0'
AND T11.condition_value = T2.lot_number
AND T11.condition_code = '1'--1:批号进价
AND T11.condition_code = '1'-- 1:批号进价
WHERE T1.bus_no = #{busNo}
AND T1.item_table = #{deviceTableName}
AND T1.delete_flag = '0'
</select>
<select id="selectGeneratedDetail"
resultType="com.openhis.web.inventorymanage.dto.PurchaseReturnPageDto">
SELECT T1.bus_no AS supply_bus_no,
@@ -268,7 +272,7 @@
T1.practitioner_id,
T1.applicant_id,
T1.approver_id,
MIN(T1.occurrence_time) AS occurrence_time, -- 制单时间
MIN(T1.occurrence_time) AS occurrence_time, -- 制单时间
T1.approval_time
FROM wor_supply_request AS T1
WHERE T1.original_bus_no = #{busNo}
@@ -287,7 +291,7 @@
<select id="getMonthlySettlementDetail" resultType="com.openhis.web.inventorymanage.dto.PurchaseReturnDetailDto">
SELECT T1.bus_no,
T1.original_bus_no,
T1.item_quantity AS item_quantity, --退库数量
T1.item_quantity AS item_quantity, -- 退库数量
( SELECT COALESCE(SUM(T9.item_quantity), 0)
FROM wor_supply_request AS T9
WHERE T9.original_bus_no = T1.original_bus_no
@@ -296,10 +300,10 @@
AND T9.delete_flag = '0'
AND T9.status_enum = #{statusEnum}
)
AS returned_quantity, --已退数量
T1.id , --采购退货id
NULL AS purchase_id, --采购入库id
T2.quantity AS quantity, --库存数量
AS returned_quantity, -- 已退数量
T1.id , -- 采购退货id
NULL AS purchase_id, -- 采购入库id
T2.quantity AS quantity, -- 库存数量
( SELECT T9.item_quantity
FROM wor_supply_request AS T9
WHERE T1.original_bus_no = T9.bus_no
@@ -307,41 +311,41 @@
AND T9.lot_number = T1.lot_number
AND T9.delete_flag = '0'
)
AS purchase_quantity, --采购数量
T11.amount AS price, --采购单价
AS purchase_quantity, -- 采购数量
T11.amount AS price, -- 采购单价
( SELECT T9.unit_code
FROM wor_supply_request AS T9
WHERE T1.original_bus_no = T9.bus_no
AND T9.item_id = T1.item_id
AND T9.lot_number = T1.lot_number
AND T9.delete_flag = '0'
) AS purchase_unit_code, --采购单位
T1.unit_code AS measurement_unit_code, -- 物品计量单位
T4.unit_code, -- 包装单位
T4.min_unit_code, -- 最小单位
T5."name" AS purpose_location_name, --仓库
T6."name" AS purpose_location_store_name, --货位
T4."name" AS item_name, --药品
T1.lot_number, --批次号
T1.reason, --退货原因
T1.remake, --备注
T1.item_id, --物品编码
T1.purpose_location_id, --目的仓库ID
T1.purpose_location_store_id, --目的货位ID
T1.purpose_type_enum, -- 目的仓库类型
T1.supplier_id, -- 供应商id
T7."name" AS supplier_name, -- 供应商名称
T8.total_volume, -- 规格
T4.manufacturer_text AS manufacturer, -- 生产厂商
) AS purchase_unit_code, -- 采购单位
T1.unit_code AS measurement_unit_code, -- 物品计量单位
T4.unit_code, -- 包装单位
T4.min_unit_code, -- 最小单位
T5."name" AS purpose_location_name, -- 仓库
T6."name" AS purpose_location_store_name, -- 货位
T4."name" AS item_name, -- 药品
T1.lot_number, -- 批次号
T1.reason, -- 退货原因
T1.remake, -- 备注
T1.item_id, -- 物品编码
T1.purpose_location_id, -- 目的仓库ID
T1.purpose_location_store_id, -- 目的货位ID
T1.purpose_type_enum, -- 目的仓库类型
T1.supplier_id, -- 供应商id
T7."name" AS supplier_name, -- 供应商名称
T8.total_volume, -- 规格
T4.manufacturer_text , -- 生产厂商
#{medicine} AS item_type,
T1.start_time, -- 开始时间
T1.end_time, -- 结束时间
T1.invoice_no, -- 发票号
T1.trace_no, -- 追溯码
T2.packaging_levels, -- 追溯码包装层级
T1.practitioner_id , --经手人
T1.occurrence_time,--制单日期
T4.part_percent --拆零比
T1.start_time, -- 开始时间
T1.end_time, -- 结束时间
T1.invoice_no, -- 发票号
T1.trace_no, -- 追溯码
T2.packaging_levels, -- 追溯码包装层级
T1.practitioner_id , -- 经手人
T1.occurrence_time,-- 制单日期
T4.part_percent -- 拆零比
FROM wor_supply_request T1
LEFT JOIN wor_inventory_item T2
ON T1.item_id = T2.item_id
@@ -373,7 +377,7 @@
ON T11.definition_id = T10.id
AND T11.delete_flag = '0'
AND T11.condition_value = T2.lot_number
AND T11.condition_code = '1'--1:批号进价
AND T11.condition_code = '1'-- 1:批号进价
WHERE T1.purpose_location_id = #{locationId}
AND T1.status_enum = #{statusEnum}
AND T1.type_enum IN
@@ -386,7 +390,7 @@
UNION
SELECT T1.bus_no,
T1.original_bus_no,
T1.item_quantity AS item_quantity, --退库数量
T1.item_quantity AS item_quantity, -- 退库数量
( SELECT COALESCE(SUM(T9.item_quantity), 0)
FROM wor_supply_request AS T9
WHERE T9.original_bus_no = T1.original_bus_no
@@ -394,51 +398,51 @@
AND T9.lot_number = T1.lot_number
AND T9.delete_flag = '0'
AND T9.status_enum = #{statusEnum}
) AS returned_quantity, --已退数量
T1.id , --采购退货id
NULL AS purchase_id, --采购入库id
T2.quantity AS quantity, --库存数量
) AS returned_quantity, -- 已退数量
T1.id , -- 采购退货id
NULL AS purchase_id, -- 采购入库id
T2.quantity AS quantity, -- 库存数量
( SELECT T9.item_quantity
FROM wor_supply_request AS T9
WHERE T1.original_bus_no = T9.bus_no
AND T9.item_id = T1.item_id
AND T9.lot_number = T1.lot_number
AND T9.delete_flag = '0'
) AS purchase_quantity, --采购数量
T11.amount AS price, --采购单价
) AS purchase_quantity, -- 采购数量
T11.amount AS price, -- 采购单价
( SELECT T9.unit_code
FROM wor_supply_request AS T9
WHERE T1.original_bus_no = T9.bus_no
AND T9.item_id = T1.item_id
AND T9.lot_number = T1.lot_number
AND T9.delete_flag = '0'
) AS purchase_unit_code, --采购单位
T1.unit_code AS measurement_unit_code, -- 物品计量单位
T4.unit_code, -- 包装单位
T4.min_unit_code, -- 最小单位
T5."name" AS purpose_location_name, --仓库
T6."name" AS purpose_location_store_name, --货位
T4."name" AS item_name, --药品
T1.lot_number, --批次号
T1.reason, --退货原因
T1.remake, --备注
T1.item_id, --物品编码
T1.purpose_location_id, --目的仓库ID
T1.purpose_location_store_id, --目的货位ID
T1.purpose_type_enum, -- 目的仓库类型
T1.supplier_id, -- 供应商id
T7."name" AS supplier_name, -- 供应商名称
T4."size" AS total_volume, -- 规格
T4.manufacturer_text AS manufacturer, -- 生产厂商
) AS purchase_unit_code, -- 采购单位
T1.unit_code AS measurement_unit_code, -- 物品计量单位
T4.unit_code, -- 包装单位
T4.min_unit_code, -- 最小单位
T5."name" AS purpose_location_name, -- 仓库
T6."name" AS purpose_location_store_name, -- 货位
T4."name" AS item_name, -- 药品
T1.lot_number, -- 批次号
T1.reason, -- 退货原因
T1.remake, -- 备注
T1.item_id, -- 物品编码
T1.purpose_location_id, -- 目的仓库ID
T1.purpose_location_store_id, -- 目的货位ID
T1.purpose_type_enum, -- 目的仓库类型
T1.supplier_id, -- 供应商id
T7."name" AS supplier_name, -- 供应商名称
T4."size" AS total_volume, -- 规格
T4.manufacturer_text , -- 生产厂商
#{device} AS item_type,
T1.start_time, -- 开始时间
T1.end_time, -- 结束时间
T1.invoice_no, -- 发票号
T1.trace_no, -- 追溯码
T2.packaging_levels, -- 追溯码包装层级
T1.practitioner_id, --经手人
T1.occurrence_time,--制单日期
T4.part_percent --拆零比
T1.start_time, -- 开始时间
T1.end_time, -- 结束时间
T1.invoice_no, -- 发票号
T1.trace_no, -- 追溯码
T2.packaging_levels, -- 追溯码包装层级
T1.practitioner_id, -- 经手人
T1.occurrence_time,-- 制单日期
T4.part_percent -- 拆零比
FROM wor_supply_request T1
LEFT JOIN wor_inventory_item T2
ON T2.item_id = T1.item_id
@@ -467,7 +471,7 @@
ON T11.definition_id = T10.id
AND T11.delete_flag = '0'
AND T11.condition_value = T2.lot_number
AND T11.condition_code = '1'--1:批号进价
AND T11.condition_code = '1'-- 1:批号进价
WHERE T1.purpose_location_id = #{locationId}
AND T1.status_enum = #{statusEnum}
AND T1.type_enum IN

View File

@@ -16,12 +16,13 @@
T2.approver_id,--审批人
T2.approval_time,--审批时间
T2.applicant_id,--申请人
T2.create_time, -- 制单时间
T2.create_time, -- 制单时间
T2.practitioner_id,--经手人
T2.tenant_id,--租户ID
T2.purpose_location_id,--领用部门ID
T2.location_name --领用部门名
FROM (SELECT T1.bus_no AS supply_bus_no,
T2.location_name, --领用部门名
T2.total_amount--总金额
FROM (SELECT T1.bus_no AS supply_bus_no,
T1.status_enum,
T1.approver_id,
T1.approval_time,
@@ -30,12 +31,13 @@
T1.practitioner_id,
T1.tenant_id,
T1.purpose_location_id,--领用部门ID
T4.name AS location_name
T4.name AS location_name,
SUM(T1.total_price) AS total_amount
FROM wor_supply_request AS T1
LEFT JOIN adm_location T3
ON T1.source_location_id = T3.id
LEFT JOIN adm_organization T4
ON T1.purpose_location_id = T4.id
LEFT JOIN adm_location T3
ON T1.source_location_id = T3.id
LEFT JOIN adm_organization T4
ON T1.purpose_location_id = T4.id
WHERE T1.type_enum = #{issueInventory}
AND T1.delete_flag = '0'
GROUP BY T1.bus_no,
@@ -48,17 +50,17 @@
T1.purpose_location_id,
T4.name
ORDER BY T1.bus_no desc
) AS T2
${ew.customSqlSegment}
) AS T2
${ew.customSqlSegment}
</select>
<select id="requisitionIssueDetail" resultType="com.openhis.web.inventorymanage.dto.IssueDetailDto">
SELECT T1.id,
T1.bus_no,--单据号
T1.item_id,
T1.item_quantity,--数量
T1.unit_code AS measurement_unit_code, -- 物品计量单位
T2.unit_code, -- 包装单位
T2.min_unit_code, -- 最小单位
T1.unit_code AS measurement_unit_code, -- 物品计量单位
T2.unit_code, -- 包装单位
T2.min_unit_code, -- 最小单位
T1.detail_json,--请求细节
T1.purpose_type_enum,--目的类型
#{medicine} AS item_type,--药品类型
@@ -68,166 +70,25 @@
T1.invoice_no,--发票号
T1.start_time,--开始时间
T1.end_time,--结束时间
T13.amount AS price,--单价
T1.price,--单价
T1.total_price,--总价
T2."name" AS item_name,--药品类型
T2."name" AS item_name,--药品类型
T2.part_percent,--拆零比
T2."yb_no",--医保编码
T3.total_volume,--规格
T4."name" AS supplier_name,--供应商名称
T2.manufacturer_text AS manufacturer, -- 生产厂商
T4."name" AS supplier_name,--供应商名称
T2.manufacturer_text, -- 生产厂商
T10.quantity AS total_quantity, -- 当前库存总数
T1.source_location_id, -- 源仓库ID
T1.source_location_store_id, -- 源仓位ID
T1.purpose_location_id, -- 目的仓库ID
T1.purpose_location_store_id, -- 目的货位ID
T6."name" AS source_location_name, -- 源仓库
T7."name" AS source_location_store_name, -- 源仓位
T8."name" AS purpose_location_name, -- 目的仓库
T9."name" AS purpose_location_store_name, -- 目的货位
T1.practitioner_id, -- 经办人
T1.remake, -- 备注
T1.occurrence_time,
T11."name" AS practitioner_name -- 经办人名称
FROM wor_supply_request T1
LEFT JOIN med_medication_definition T2
ON T1.item_id = T2.id
LEFT JOIN med_medication T3
ON T3.medication_def_id = T2.id
LEFT JOIN adm_supplier T4
ON T4.id = T1.supplier_id
LEFT JOIN adm_location T6
ON T1.source_location_id = T6.id
LEFT JOIN adm_location T7
ON T1.source_location_store_id = T7.id
LEFT JOIN adm_organization T8
ON T1.purpose_location_id = T8.id
LEFT JOIN adm_organization T9
ON T1.purpose_location_store_id = T9.id
LEFT JOIN wor_inventory_item T10
ON T1.item_id = T10.item_id
AND T1.source_location_id = T10.location_id
AND T10.lot_number = T1.lot_number
AND T10.delete_flag = '0'
LEFT JOIN adm_practitioner T11
ON T1.practitioner_id = T11.id
LEFT JOIN adm_charge_item_definition AS T12
ON T12.instance_id = T10.item_id
AND T12.delete_flag = '0'
LEFT JOIN adm_charge_item_def_detail AS T13
ON T13.definition_id = T12.id
AND T13.delete_flag = '0'
AND T13.condition_value = T10.lot_number
AND T13.condition_code = '1'--1:批号进价
WHERE T1.bus_no = #{busNo}
AND T1.item_table = #{medicationTableName}
AND T1.delete_flag = '0'
UNION
SELECT T1.id,
T1.bus_no,
T1.item_id,
T1.item_quantity,
T1.unit_code AS measurement_unit_code, -- 物品计量单位
T2.unit_code, -- 包装单位
T2.min_unit_code, -- 最小单位
T1.detail_json,
T1.purpose_type_enum,
#{device} AS item_type, --耗材类型
T1.apply_time,
T1.lot_number,
T1.trace_no,
T1.invoice_no,
T1.start_time,
T1.end_time,
T13.amount AS price,--单价
T1.total_price,
T2."name" AS item_name,
T2.part_percent,
T2."size" AS total_volume,
T2."yb_no",
T4."name" AS supplier_name,
T2.manufacturer_text AS manufacturer, -- 生产厂商
T10.quantity AS total_quantity, -- 当前库存总数
T1.source_location_id, -- 源仓库ID
T1.source_location_store_id, -- 源仓位ID
T1.purpose_location_id, -- 目的仓库ID
T1.purpose_location_store_id, -- 目的货位ID
T6."name" AS source_location_name, -- 源仓库
T7."name" AS source_location_store_name, -- 源仓位
T8."name" AS purpose_location_name, -- 目的仓库
T9."name" AS purpose_location_store_name, -- 目的货位
T1.practitioner_id, -- 经办人
T1.remake, -- 备注
T1.occurrence_time,
T11."name" AS practitioner_name -- 经办人名称
FROM wor_supply_request T1
LEFT JOIN adm_device_definition T2
ON T1.item_id = T2.id
LEFT JOIN adm_supplier T4
ON T4.id = T1.supplier_id
LEFT JOIN adm_location T6
ON T1.source_location_id = T6.id
LEFT JOIN adm_location T7
ON T1.source_location_store_id = T7.id
LEFT JOIN adm_organization T8
ON T1.purpose_location_id = T8.id
LEFT JOIN adm_organization T9
ON T1.purpose_location_store_id = T9.id
LEFT JOIN wor_inventory_item T10
ON T1.item_id = T10.item_id
AND T1.source_location_id = T10.location_id
AND T10.lot_number = T1.lot_number
AND T10.delete_flag = '0'
LEFT JOIN adm_practitioner T11
ON T1.practitioner_id = T11.id
LEFT JOIN adm_charge_item_definition AS T12
ON T12.instance_id = T10.item_id
AND T12.delete_flag = '0'
LEFT JOIN adm_charge_item_def_detail AS T13
ON T13.definition_id = T12.id
AND T13.delete_flag = '0'
AND T13.condition_value = T10.lot_number
AND T13.condition_code = '1'--1:批号进价
WHERE T1.bus_no = #{busNo}
AND T1.item_table = #{deviceTableName}
AND T1.delete_flag = '0'
</select>
<select id="getMonthlySettlementDetail" resultType="com.openhis.web.inventorymanage.dto.IssueDetailDto">
SELECT T1.id,
T1.bus_no,--单据号
T1.item_id,
T1.item_quantity,--数量
T1.unit_code AS measurement_unit_code, -- 物品计量单位
T2.unit_code, -- 包装单位
T2.min_unit_code, -- 最小单位
T1.detail_json,--请求细节
T1.purpose_type_enum,--目的类型
#{medicine} AS item_type,--药品类型
T1.apply_time,--申请时间
T1.lot_number,--产品批号
T1.trace_no,--追溯码
T1.invoice_no,--发票号
T1.start_time,--开始时间
T1.end_time,--结束时间
T13.amount AS price,--单价
T1.total_price,--总价
T2."name" AS item_name,--药品类型
T2.part_percent,--拆零比
T2."yb_no",--医保编码
T3.total_volume,--规格
T4."name" AS supplier_name,--供应商名称
T2.manufacturer_text AS manufacturer, -- 生产厂商
T10.quantity AS total_quantity, -- 当前库存总数
T1.source_location_id, -- 源仓库ID
T1.source_location_store_id, -- 源仓位ID
T1.purpose_location_id, -- 目的仓库ID
T1.purpose_location_store_id, -- 目的货位ID
T6."name" AS source_location_name, -- 源仓库
T7."name" AS source_location_store_name, -- 源仓位
T8."name" AS purpose_location_name, -- 目的仓库
T9."name" AS purpose_location_store_name, -- 目的货位
T1.practitioner_id, -- 经办人
T1.remake, -- 备注
T1.source_location_id, -- 源仓库ID
T1.source_location_store_id, -- 源仓位ID
T1.purpose_location_id, -- 目的仓库ID
T1.purpose_location_store_id, -- 目的货位ID
T6."name" AS source_location_name, -- 源仓库
T7."name" AS source_location_store_name, -- 源仓位
T8."name" AS purpose_location_name, -- 目的仓库
T9."name" AS purpose_location_store_name, -- 目的货位
T1.practitioner_id, -- 经办人
T1.remake, -- 备注
T1.occurrence_time,
T11."name" AS practitioner_name -- 经办人名称
FROM wor_supply_request T1
@@ -240,33 +101,27 @@
LEFT JOIN adm_location T6
ON T1.source_location_id = T6.id
LEFT JOIN adm_location T7
ON T1.source_location_store_id = T7.id
ON T1.source_location_store_id = T7.id
LEFT JOIN adm_organization T8
ON T1.purpose_location_id = T8.id
LEFT JOIN adm_organization T9
ON T1.purpose_location_store_id = T9.id
ON T1.purpose_location_store_id = T9.id
LEFT JOIN wor_inventory_item T10
ON T1.item_id = T10.item_id
AND T1.source_location_id = T10.location_id
AND T10.lot_number = T1.lot_number
AND T10.delete_flag = '0'
LEFT JOIN adm_practitioner T11
ON T1.practitioner_id = T11.id
LEFT JOIN adm_charge_item_definition AS T12
ON T12.instance_id = T10.item_id
AND T12.delete_flag = '0'
LEFT JOIN adm_charge_item_def_detail AS T13
ON T13.definition_id = T12.id
AND T13.delete_flag = '0'
AND T13.condition_value = T10.lot_number
AND T13.condition_code = '1'--1:批号进价
WHERE T1.source_location_id = #{locationId}
AND T1.status_enum = #{statusEnum}
AND T1.type_enum IN
<foreach collection="typeEnum" item="item" separator="," open="(" close=")">
#{item}
</foreach>
AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
ON T1.practitioner_id = T11.id
-- LEFT JOIN adm_charge_item_definition AS T12
-- ON T12.instance_id = T10.item_id
-- AND T12.delete_flag = '0'
-- LEFT JOIN adm_charge_item_def_detail AS T13
-- ON T13.definition_id = T12.id
-- AND T13.delete_flag = '0'
-- AND T13.condition_value = T10.lot_number
-- AND T13.condition_code = '1'--1:批号进价
WHERE T1.bus_no = #{busNo}
AND T1.item_table = #{medicationTableName}
AND T1.delete_flag = '0'
UNION
@@ -274,39 +129,39 @@
T1.bus_no,
T1.item_id,
T1.item_quantity,
T1.unit_code AS measurement_unit_code, -- 物品计量单位
T2.unit_code, -- 包装单位
T2.min_unit_code, -- 最小单位
T1.unit_code AS measurement_unit_code, -- 物品计量单位
T2.unit_code, -- 包装单位
T2.min_unit_code, -- 最小单位
T1.detail_json,
T1.purpose_type_enum,
#{device} AS item_type, --耗材类型
#{device} AS item_type, --耗材类型
T1.apply_time,
T1.lot_number,
T1.trace_no,
T1.invoice_no,
T1.start_time,
T1.end_time,
T13.amount AS price,--单价
T1.price,--单价
T1.total_price,
T2."name" AS item_name,
T2."name" AS item_name,
T2.part_percent,
T2."size" AS total_volume,
T2."size" AS total_volume,
T2."yb_no",
T4."name" AS supplier_name,
T2.manufacturer_text AS manufacturer, -- 生产厂商
T10.quantity AS total_quantity, -- 当前库存总数
T1.source_location_id, -- 源仓库ID
T1.source_location_store_id, -- 源仓位ID
T1.purpose_location_id, -- 目的仓库ID
T1.purpose_location_store_id, -- 目的货位ID
T6."name" AS source_location_name, -- 源仓库
T7."name" AS source_location_store_name, -- 源仓位
T8."name" AS purpose_location_name, -- 目的仓库
T9."name" AS purpose_location_store_name, -- 目的货位
T1.practitioner_id, -- 经办人
T1.remake, -- 备注
T4."name" AS supplier_name,
T2.manufacturer_text, -- 生产厂商
T10.quantity AS total_quantity, -- 当前库存总数
T1.source_location_id, -- 源仓库ID
T1.source_location_store_id, -- 源仓位ID
T1.purpose_location_id, -- 目的仓库ID
T1.purpose_location_store_id, -- 目的货位ID
T6."name" AS source_location_name, -- 源仓库
T7."name" AS source_location_store_name, -- 源仓位
T8."name" AS purpose_location_name, -- 目的仓库
T9."name" AS purpose_location_store_name, -- 目的货位
T1.practitioner_id, -- 经办人
T1.remake, -- 备注
T1.occurrence_time,
T11."name" AS practitioner_name -- 经办人名称
T11."name" AS practitioner_name -- 经办人名称
FROM wor_supply_request T1
LEFT JOIN adm_device_definition T2
ON T1.item_id = T2.id
@@ -315,34 +170,181 @@
LEFT JOIN adm_location T6
ON T1.source_location_id = T6.id
LEFT JOIN adm_location T7
ON T1.source_location_store_id = T7.id
ON T1.source_location_store_id = T7.id
LEFT JOIN adm_organization T8
ON T1.purpose_location_id = T8.id
LEFT JOIN adm_organization T9
ON T1.purpose_location_store_id = T9.id
ON T1.purpose_location_store_id = T9.id
LEFT JOIN wor_inventory_item T10
ON T1.item_id = T10.item_id
AND T1.source_location_id = T10.location_id
AND T10.lot_number = T1.lot_number
AND T10.delete_flag = '0'
LEFT JOIN adm_practitioner T11
ON T1.practitioner_id = T11.id
LEFT JOIN adm_charge_item_definition AS T12
ON T12.instance_id = T10.item_id
AND T12.delete_flag = '0'
LEFT JOIN adm_charge_item_def_detail AS T13
ON T13.definition_id = T12.id
AND T13.delete_flag = '0'
AND T13.condition_value = T10.lot_number
AND T13.condition_code = '1'--1:批号进价
WHERE T1.source_location_id = #{locationId}
AND T1.status_enum = #{statusEnum}
AND T1.type_enum IN
<foreach collection="typeEnum" item="item" separator="," open="(" close=")">
#{item}
</foreach>
AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
AND T1.item_table = #{deviceTableName}
AND T1.delete_flag = '0'
ON T1.practitioner_id = T11.id
-- LEFT JOIN adm_charge_item_definition AS T12
-- ON T12.instance_id = T10.item_id
-- AND T12.delete_flag = '0'
-- LEFT JOIN adm_charge_item_def_detail AS T13
-- ON T13.definition_id = T12.id
-- AND T13.delete_flag = '0'
-- AND T13.condition_value = T10.lot_number
-- AND T13.condition_code = '1'--1:批号进价
WHERE T1.bus_no = #{busNo}
AND T1.item_table = #{deviceTableName}
AND T1.delete_flag = '0'
</select>
<select id="getMonthlySettlementDetail" resultType="com.openhis.web.inventorymanage.dto.IssueDetailDto">
SELECT T1.id,
T1.bus_no,--单据号
T1.item_id,
T1.item_quantity,--数量
T1.unit_code AS measurement_unit_code, -- 物品计量单位
T2.unit_code, -- 包装单位
T2.min_unit_code, -- 最小单位
T1.detail_json,--请求细节
T1.purpose_type_enum,--目的类型
#{medicine} AS item_type,--药品类型
T1.apply_time,--申请时间
T1.lot_number,--产品批号
T1.trace_no,--追溯码
T1.invoice_no,--发票号
T1.start_time,--开始时间
T1.end_time,--结束时间
T13.amount AS price,--单价
T1.total_price,--总价
T2."name" AS item_name,--药品类型
T2.part_percent,--拆零比
T2."yb_no",--医保编码
T3.total_volume,--规格
T4."name" AS supplier_name,--供应商名称
T2.manufacturer_text , -- 生产厂商
T10.quantity AS total_quantity, -- 当前库存总数
T1.source_location_id, -- 源仓库ID
T1.source_location_store_id, -- 源仓位ID
T1.purpose_location_id, -- 目的仓库ID
T1.purpose_location_store_id, -- 目的货位ID
T6."name" AS source_location_name, -- 源仓库
T7."name" AS source_location_store_name, -- 源仓位
T8."name" AS purpose_location_name, -- 目的仓库
T9."name" AS purpose_location_store_name, -- 目的货位
T1.practitioner_id, -- 经办人
T1.remake, -- 备注
T1.occurrence_time,
T11."name" AS practitioner_name -- 经办人名称
FROM wor_supply_request T1
LEFT JOIN med_medication_definition T2
ON T1.item_id = T2.id
LEFT JOIN med_medication T3
ON T3.medication_def_id = T2.id
LEFT JOIN adm_supplier T4
ON T4.id = T1.supplier_id
LEFT JOIN adm_location T6
ON T1.source_location_id = T6.id
LEFT JOIN adm_location T7
ON T1.source_location_store_id = T7.id
LEFT JOIN adm_organization T8
ON T1.purpose_location_id = T8.id
LEFT JOIN adm_organization T9
ON T1.purpose_location_store_id = T9.id
LEFT JOIN wor_inventory_item T10
ON T1.item_id = T10.item_id
AND T1.source_location_id = T10.location_id
AND T10.lot_number = T1.lot_number
AND T10.delete_flag = '0'
LEFT JOIN adm_practitioner T11
ON T1.practitioner_id = T11.id
LEFT JOIN adm_charge_item_definition AS T12
ON T12.instance_id = T10.item_id
AND T12.delete_flag = '0'
LEFT JOIN adm_charge_item_def_detail AS T13
ON T13.definition_id = T12.id
AND T13.delete_flag = '0'
AND T13.condition_value = T10.lot_number
AND T13.condition_code = '1'--1:批号进价
WHERE T1.source_location_id = #{locationId}
AND T1.status_enum = #{statusEnum}
AND T1.type_enum IN
<foreach collection="typeEnum" item="item" separator="," open="(" close=")">
#{item}
</foreach>
AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
AND T1.item_table = #{medicationTableName}
AND T1.delete_flag = '0'
UNION
SELECT T1.id,
T1.bus_no,
T1.item_id,
T1.item_quantity,
T1.unit_code AS measurement_unit_code, -- 物品计量单位
T2.unit_code, -- 包装单位
T2.min_unit_code, -- 最小单位
T1.detail_json,
T1.purpose_type_enum,
#{device} AS item_type, --耗材类型
T1.apply_time,
T1.lot_number,
T1.trace_no,
T1.invoice_no,
T1.start_time,
T1.end_time,
T13.amount AS price,--单价
T1.total_price,
T2."name" AS item_name,
T2.part_percent,
T2."size" AS total_volume,
T2."yb_no",
T4."name" AS supplier_name,
T2.manufacturer_text , -- 生产厂商
T10.quantity AS total_quantity, -- 当前库存总数
T1.source_location_id, -- 源仓库ID
T1.source_location_store_id, -- 源仓位ID
T1.purpose_location_id, -- 目的仓库ID
T1.purpose_location_store_id, -- 目的货位ID
T6."name" AS source_location_name, -- 源仓库
T7."name" AS source_location_store_name, -- 源仓位
T8."name" AS purpose_location_name, -- 目的仓库
T9."name" AS purpose_location_store_name, -- 目的货位
T1.practitioner_id, -- 经办人
T1.remake, -- 备注
T1.occurrence_time,
T11."name" AS practitioner_name -- 经办人名称
FROM wor_supply_request T1
LEFT JOIN adm_device_definition T2
ON T1.item_id = T2.id
LEFT JOIN adm_supplier T4
ON T4.id = T1.supplier_id
LEFT JOIN adm_location T6
ON T1.source_location_id = T6.id
LEFT JOIN adm_location T7
ON T1.source_location_store_id = T7.id
LEFT JOIN adm_organization T8
ON T1.purpose_location_id = T8.id
LEFT JOIN adm_organization T9
ON T1.purpose_location_store_id = T9.id
LEFT JOIN wor_inventory_item T10
ON T1.item_id = T10.item_id
AND T1.source_location_id = T10.location_id
AND T10.lot_number = T1.lot_number
AND T10.delete_flag = '0'
LEFT JOIN adm_practitioner T11
ON T1.practitioner_id = T11.id
LEFT JOIN adm_charge_item_definition AS T12
ON T12.instance_id = T10.item_id
AND T12.delete_flag = '0'
LEFT JOIN adm_charge_item_def_detail AS T13
ON T13.definition_id = T12.id
AND T13.delete_flag = '0'
AND T13.condition_value = T10.lot_number
AND T13.condition_code = '1'--1:批号进价
WHERE T1.source_location_id = #{locationId}
AND T1.status_enum = #{statusEnum}
AND T1.type_enum IN
<foreach collection="typeEnum" item="item" separator="," open="(" close=")">
#{item}
</foreach>
AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
AND T1.item_table = #{deviceTableName}
AND T1.delete_flag = '0'
</select>
</mapper>

View File

@@ -75,7 +75,7 @@
T2."yb_no",--医保编码
T3.total_volume,--药品规格
T4."name" AS supplier_name,--供应商名称
T2.manufacturer_text AS manufacturer, -- 生产厂商
T2.manufacturer_text , -- 生产厂商
T1.practitioner_id, -- 经办人
T5."name" AS practitioner_name,--经办人名称
T10.quantity AS total_quantity, -- 当前库存总数
@@ -146,7 +146,7 @@
T2."yb_no",--医保编码
T2."size" AS total_volume,--包装规格
T4."name" AS supplier_name,
T2.manufacturer_text AS manufacturer, -- 生产厂商
T2.manufacturer_text , -- 生产厂商
T1.practitioner_id, -- 经办人
T5."name" AS practitioner_name,
T10.quantity AS total_quantity, -- 当前库存总数
@@ -216,7 +216,7 @@
T2."yb_no",--医保编码
T3.total_volume,--药品规格
T4."name" AS supplier_name,--供应商名称
T2.manufacturer_text AS manufacturer, -- 生产厂商
T2.manufacturer_text , -- 生产厂商
T1.practitioner_id, -- 经办人
T5."name" AS practitioner_name,--经办人名称
T10.quantity AS total_quantity, -- 当前库存总数
@@ -293,7 +293,7 @@
T2."yb_no",--医保编码
T2."size" AS total_volume,--包装规格
T4."name" AS supplier_name,
T2.manufacturer_text AS manufacturer, -- 生产厂商
T2.manufacturer_text , -- 生产厂商
T1.practitioner_id, -- 经办人
T5."name" AS practitioner_name,
T10.quantity AS total_quantity, -- 当前库存总数

View File

@@ -89,6 +89,10 @@
</if>
</select>
<update id="delUser">
UPDATE sys_user set del_flag = '1' WHERE user_id = #{userId}
</update>
<delete id="delUserRole">
delete
from sys_user_role

View File

@@ -7,6 +7,7 @@
SELECT T4.encounter_id,
T4.encounter_bus_no,
T4.patient_id,
T4.encounter_status,
T4.reception_time,
T4.patient_name,
T4.patient_bus_no,
@@ -16,47 +17,62 @@
T4.start_time,
T4.patient_py_str,
T4.patient_wb_str,
T4.status_enum
FROM (
SELECT T1.id AS encounter_id,
T1.bus_no AS encounter_bus_no,
T1.patient_id,
T1.reception_time,
T1.delete_flag,
T1.tenant_id,
T2."name" AS patient_name,
T2.bus_no AS patient_bus_no,
T2.gender_enum,
T2.birth_date,
T1.start_time,
T2.id_card,
T2.py_str AS patient_py_str,
T2.wb_str AS patient_wb_str,
T3.status_enum
FROM adm_encounter AS T1
LEFT JOIN adm_patient AS T2
ON T1.patient_id = T2.id
INNER JOIN adm_charge_item AS T3
ON T3.encounter_id = T1.id
AND T3.delete_flag = '0'
WHERE T1.delete_flag = '0'
AND T1.class_enum = #{classEnum}
GROUP BY T1.id,
T1.bus_no,
T1.patient_id,
T1.reception_time,
T1.delete_flag,
T1.tenant_id,
T2."name",
T2.bus_no,
T2.gender_enum,
T2.birth_date,
T2.id_card,
T2.py_str,
T2.wb_str,
T3.status_enum
ORDER BY T1.bus_no DESC
) AS T4
T4.balance_amount
FROM (SELECT T1.id AS encounter_id,
T1.bus_no AS encounter_bus_no,
T1.patient_id,
T1.reception_time,
T1.delete_flag,
T1.tenant_id,
T1.start_time,
T1.status_enum AS encounter_status,
T2."name" AS patient_name,
T2.bus_no AS patient_bus_no,
T2.gender_enum,
T2.birth_date,
T2.id_card,
T2.py_str AS patient_py_str,
T2.wb_str AS patient_wb_str,
T3.balance_amount
FROM adm_encounter AS T1
LEFT JOIN adm_patient AS T2
ON T1.patient_id = T2.id
LEFT JOIN (SELECT 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.encounter_id,
aa.balance_amount) AS T3 ON T3.encounter_id = T1.id
WHERE T1.delete_flag = '0'
AND T1.class_enum = #{classEnum}
AND T1.status_enum IN (#{dischargedFromHospital}, #{alreadySettled})
GROUP BY T1.id,
T1.bus_no,
T1.patient_id,
T1.reception_time,
T1.delete_flag,
T1.tenant_id,
T1.start_time,
T1.status_enum,
T2."name",
T2.bus_no,
T2.gender_enum,
T2.birth_date,
T2.id_card,
T2.py_str,
T2.wb_str,
T3.balance_amount
ORDER BY T1.bus_no DESC) AS T4
${ew.customSqlSegment}
</select>
@@ -132,8 +148,6 @@
, #{refunded}
, #{partRefund})
AND T1.context_enum != #{register}
AND T1.entered_date &gt;= #{startTime}
AND T1.entered_date &lt;= #{endTime}
AND T1.delete_flag = '0'
</select>
</mapper>

View File

@@ -75,10 +75,6 @@
T2.unit_code,
T1.unit_price,
T1.total_price,
T3.status_enum AS dispense_status,
T3.not_performed_reason_enum AS not_performed_reason,
0 AS service_status,
T3.id AS dispense_id,
T2.id AS request_id,
T7.name AS item_name,
T10.id AS payment_id,
@@ -87,9 +83,6 @@
LEFT JOIN med_medication_request AS T2
ON T2.id = T1.service_id
AND T2.delete_flag = '0'
LEFT JOIN med_medication_dispense AS T3
ON T3.med_req_id = T2.id
AND T3.delete_flag = '0'
LEFT JOIN med_medication_definition AS T7
ON T1.product_id = T7.id
AND T7.delete_flag = '0'
@@ -117,10 +110,6 @@
T4.unit_code,
T1.unit_price,
T1.total_price,
T5.status_enum AS dispense_status,
T5.not_performed_reason_enum AS not_performed_reason,
0 AS service_status,
T5.id AS dispense_id,
T4.id AS request_id,
T8.name AS item_name,
T10.id AS payment_id,
@@ -129,9 +118,6 @@
LEFT JOIN wor_device_request AS T4
ON T4.id = T1.service_id
AND T4.delete_flag = '0'
LEFT JOIN wor_device_dispense AS T5
ON T5.device_req_id = T4.id
AND T5.delete_flag = '0'
LEFT JOIN adm_device_definition AS T8
ON T1.product_id = T8.id
AND T8.delete_flag = '0'
@@ -159,10 +145,6 @@
T6.unit_code,
T1.unit_price,
T1.total_price,
0 AS dispense_status,
null AS not_performed_reason,
T6.status_enum AS service_status,
null AS dispense_id,
T6.id AS request_id,
T9.name AS item_name,
T10.id AS payment_id,
@@ -282,10 +264,7 @@
aci.service_table,
mmr.prescription_no,
mmr.id AS request_id,
dis.status_enum AS dispense_status,
0 AS service_status,
dis.dispense_quantity,
dis.id AS dispense_id,
mmd."name" AS item_name,
fpr.id AS payment_id,
fpr.enterer_id,
@@ -310,9 +289,6 @@
ON aci.service_id = mmr.refund_medicine_id
AND mmr.refund_medicine_id IS NOT NULL
AND mmr.delete_flag = '0'
LEFT JOIN med_medication_dispense dis
ON mmr.id = dis.med_req_id
AND dis.delete_flag = '0'
INNER JOIN med_medication_definition mmd
ON aci.product_id = mmd.id
AND mmd.delete_flag = '0'
@@ -350,10 +326,7 @@
aci.service_table,
wdr.prescription_no,
wdr.id AS request_id,
wdd.status_enum AS dispense_status,
0 AS service_status,
wdd.dispense_quantity,
wdd.id AS dispense_id,
dev."name" AS item_name,
fpr.id AS payment_id,
fpr.enterer_id,
@@ -378,9 +351,6 @@
ON aci.service_id = wdr.refund_device_id
AND wdr.refund_device_id IS NOT NULL
AND wdr.delete_flag = '0'
LEFT JOIN wor_device_dispense wdd
ON wdr.id = wdd.device_req_id
AND wdd.delete_flag = '0'
INNER JOIN adm_device_definition dev
ON aci.product_id = dev.id
AND dev.delete_flag = '0'
@@ -418,10 +388,7 @@
aci.service_table,
wsr.prescription_no,
wsr.id AS request_id,
0 AS dispense_status,
wsr.status_enum AS service_status,
0 AS dispense_quantity,
null AS dispense_id,
wad."name" AS item_name,
fpr.id AS payment_id,
fpr.enterer_id,

View File

@@ -75,7 +75,8 @@
T6.retail_price,
T6.chrgitm_lv,--医保等级
T6.rx_flag,--处方标志
T6.tenant_id
T6.tenant_id,
T6.drug_69_code
FROM
(
SELECT T2.id,
@@ -101,6 +102,7 @@
T2.ddd_unit_code,
T2.min_rate_code,
T2.max_rate_code,
T1.drug_69_code,
T1.bus_no,
T1.name,
T1.domain_enum,
@@ -201,6 +203,7 @@
T2.ddd_unit_code,
T2.min_rate_code,
T2.max_rate_code,
T1.drug_69_code,
T1.bus_no,
T1.name,
T1.domain_enum,

View File

@@ -41,7 +41,7 @@
GROUP BY
dd.id, dd.primary_menu_enum ,
dd.sub_menu
ORDER BY dd.display_order
</select>

View File

@@ -6,85 +6,91 @@
<select id="getAdvancePaymentInfo" resultType="com.openhis.web.inhospitalcharge.dto.AdvancePaymentInfoDto">
SELECT api.tenant_id,
api.encounter_id,
api.bus_no,
api.patient_id,
api.patient_name,
api.gender_enum,
api.birth_date,
api.ward_name,
api.house_name,
api.bed_name,
api.inHospital_org_name,
api.account_id,
api.total_amount,
api.balance_amount
api.encounter_id,
api.bus_no,
api.patient_id,
api.patient_name,
api.gender_enum,
api.birth_date,
api.ward_name,
api.house_name,
api.bed_name,
api.inHospital_org_name,
api.account_id,
api.total_amount,
api.balance_amount
from (SELECT ae.tenant_id,
ae.ID AS encounter_id,
ae.bus_no AS bus_no,
ap.id AS patient_id,
ap.NAME AS patient_name,
ap.gender_enum AS gender_enum,
ap.birth_date AS birth_date,
alw.name AS ward_name,
alh.name AS house_name,
alb.name AS bed_name,
ao.NAME AS inHospital_org_name,
aa.id AS account_id,
COALESCE(payment.total_amount, 0) AS total_amount,
COALESCE(payment.total_amount, 0) - COALESCE(consumption.consumption_amount, 0) +
COALESCE(return_pay.return_amount, 0) AS balance_amount
FROM adm_encounter AS ae
LEFT JOIN adm_patient AS ap ON ap.ID = ae.patient_id
AND ap.delete_flag = '0'
LEFT JOIN adm_organization AS ao ON ao.ID = ae.organization_id
AND ao.delete_flag = '0'
LEFT JOIN adm_encounter_location AS aelw
ON aelw.encounter_id = ae.ID AND aelw.delete_flag = '0' AND
aelw.form_enum = #{wardEnum} AND
aelw.status_enum = #{encounterActivityStatus}
LEFT JOIN adm_location AS alw ON alw.id = aelw.location_id AND alw.delete_flag = '0'
LEFT JOIN adm_encounter_location AS aelh
ON aelh.encounter_id = ae.ID AND aelh.delete_flag = '0' AND
aelh.form_enum = #{houseEnum} AND
aelh.status_enum = #{encounterActivityStatus}
LEFT JOIN adm_location AS alh ON alh.id = aelh.location_id AND alh.delete_flag = '0'
LEFT JOIN adm_encounter_location AS aelb
ON aelb.encounter_id = ae.ID AND aelb.delete_flag = '0' AND
aelb.form_enum = #{bedEnum} AND
aelb.status_enum = #{encounterActivityStatus}
LEFT JOIN adm_location AS alb ON alb.id = aelb.location_id AND alb.delete_flag = '0'
LEFT JOIN adm_account AS aa
ON aa.encounter_id = ae.ID AND aa.delete_flag = '0' AND
aa.type_code = #{accountTypeCode}
LEFT JOIN LATERAL (
SELECT SUM
(tendered_amount) AS total_amount
FROM fin_payment_reconciliation AS fpr
WHERE fpr.delete_flag = '0'
AND fpr.kind_enum = #{kindEnum}
AND fpr.encounter_id = ae.ID
) AS payment
ON TRUE
LEFT JOIN LATERAL (
SELECT SUM
(total_price) AS consumption_amount
FROM adm_charge_item AS aci
WHERE aci.delete_flag = '0'
AND aci.status_enum IN (#{status1}, #{status2})
AND aci.encounter_id = ae.ID
) AS consumption ON TRUE
LEFT JOIN LATERAL (
SELECT SUM
(total_price) AS return_amount
FROM adm_charge_item AS aci
WHERE aci.delete_flag = '0'
AND aci.status_enum IN (#{status3})
AND aci.encounter_id = ae.ID
) AS return_pay ON TRUE
WHERE ae.delete_flag = '0'
AND ae.class_enum = #{classEnum}) AS api
${ew.customSqlSegment}
ae.ID AS encounter_id,
ae.bus_no AS bus_no,
ap.id AS patient_id,
ap.NAME AS patient_name,
ap.gender_enum AS gender_enum,
ap.birth_date AS birth_date,
alw.id AS ward_location_id,
alw.name AS ward_name,
alh.name AS house_name,
alb.name AS bed_name,
ao.NAME AS inHospital_org_name,
aa.id AS account_id,
COALESCE(payment.total_amount, 0) AS total_amount,
COALESCE(payment.total_amount, 0) - COALESCE(consumption.consumption_amount, 0) +
COALESCE(return_pay.return_amount, 0) AS balance_amount
FROM adm_encounter AS ae
LEFT JOIN adm_patient AS ap ON ap.ID = ae.patient_id
AND ap.delete_flag = '0'
LEFT JOIN adm_organization AS ao ON ao.ID = ae.organization_id
AND ao.delete_flag = '0'
LEFT JOIN adm_encounter_location AS aelw
ON aelw.encounter_id = ae.ID AND aelw.delete_flag = '0' AND
aelw.form_enum = #{wardEnum} AND
aelw.status_enum = #{encounterActivityStatus}
LEFT JOIN adm_location AS alw ON alw.id = aelw.location_id AND alw.delete_flag = '0'
LEFT JOIN adm_encounter_location AS aelh
ON aelh.encounter_id = ae.ID AND aelh.delete_flag = '0' AND
aelh.form_enum = #{houseEnum} AND
aelh.status_enum = #{encounterActivityStatus}
LEFT JOIN adm_location AS alh ON alh.id = aelh.location_id AND alh.delete_flag = '0'
LEFT JOIN adm_encounter_location AS aelb
ON aelb.encounter_id = ae.ID AND aelb.delete_flag = '0' AND
aelb.form_enum = #{bedEnum} AND
aelb.status_enum = #{encounterActivityStatus}
LEFT JOIN adm_location AS alb ON alb.id = aelb.location_id AND alb.delete_flag = '0'
LEFT JOIN adm_account AS aa
ON aa.encounter_id = ae.ID AND aa.delete_flag = '0' AND
aa.type_code = #{accountTypeCode}
LEFT JOIN LATERAL (
SELECT SUM
(tendered_amount) AS total_amount
FROM fin_payment_reconciliation AS fpr
WHERE fpr.delete_flag = '0'
AND fpr.kind_enum = #{kindEnum}
AND fpr.encounter_id = ae.ID
) AS payment
ON TRUE
LEFT JOIN LATERAL (
SELECT SUM
(total_price) AS consumption_amount
FROM adm_charge_item AS aci
WHERE aci.delete_flag = '0'
AND aci.status_enum IN (#{status1}, #{status2})
AND aci.encounter_id = ae.ID
) AS consumption ON TRUE
LEFT JOIN LATERAL (
SELECT SUM
(total_price) AS return_amount
FROM adm_charge_item AS aci
WHERE aci.delete_flag = '0'
AND aci.status_enum IN (#{status3})
AND aci.encounter_id = ae.ID
) AS return_pay ON TRUE
WHERE ae.delete_flag = '0'
AND ae.status_enum != #{registeredFlag}
AND ae.class_enum = #{classEnum}
ORDER BY ae.create_time DESC) AS api
${ew.customSqlSegment}
<if test="wardLocationId != null">
AND api.ward_location_id = #{wardLocationId}
</if>
</select>
<select id="getAdvancePaymentFlowRecordList"

View File

@@ -15,7 +15,10 @@
ihri.patient_name,
ihri.gender_enum,
ihri.birth_date,
ihri.ward_name
ihri.ward_name,
ihri.contract_no,
ihri.bus_no,
ihri.admit_source_code
from (SELECT ae.tenant_id,
ae.ID AS encounter_id,
ae.amb_encounter_id AS amb_encounter_id,
@@ -26,7 +29,10 @@
ap.NAME AS patient_name,
ap.gender_enum AS gender_enum,
ap.birth_date AS birth_date,
al.NAME AS ward_name
al.NAME AS ward_name,
aa.contract_no,
ae.bus_no,
ae.admit_source_code
FROM adm_encounter AS ae
LEFT JOIN adm_encounter AS ambae ON ae.amb_encounter_id = ambae.
ID
@@ -41,6 +47,9 @@
AND al.delete_flag = '0'
LEFT JOIN adm_practitioner AS aper ON aper.ID = ae.registrar_id
AND aper.delete_flag = '0'
LEFT JOIN adm_account AS aa ON aa.encounter_id = ae.ID
AND aa.delete_flag = '0'
AND aa.type_code = '04'
WHERE ae.delete_flag = '0'
AND ae.class_enum = #{encounterClass}
<if test="registeredFlag == '0'.toString()">
@@ -51,6 +60,7 @@
</if>
) AS ihri
${ew.customSqlSegment}
ORDER BY ihri.request_time DESC
</select>
<select id="getPatientInfo" resultType="com.openhis.web.inhospitalcharge.dto.InHospitalPatientInfoDto">
@@ -94,30 +104,44 @@
ap.ID AS amb_doctor_practitioner_id,
ap.NAME AS amb_doctor_practitioner_name,
ccd.NAME AS amb_diagnosis_name,
aa.contract_no AS contract_no,
COALESCE(aa.balance_amount, 0) AS balance_amount
FROM adm_encounter AS ae
LEFT JOIN adm_organization AS ao ON ao.ID = ae.organization_id
AND ao.delete_flag = '0'
LEFT JOIN adm_encounter_location AS ael ON ael.encounter_id = ae.ID
AND ael.delete_flag = '0'
AND ael.form_enum = #{formEnum}
LEFT JOIN adm_location AS al ON al.ID = ael.location_id
AND al.delete_flag = '0'
LEFT JOIN adm_encounter_participant AS aep ON aep.encounter_id = ae.amb_encounter_id
AND aep.delete_flag = '0'
AND aep.type_code = #{participantType}
LEFT JOIN adm_practitioner AS ap ON ap.ID = aep.practitioner_id
AND ap.delete_flag = '0'
LEFT JOIN adm_encounter_diagnosis AS aed ON aed.encounter_id = ae.amb_encounter_id
AND aed.delete_flag = '0'
AND aed.maindise_flag = #{maindiseFlag}
LEFT JOIN cli_condition AS cc ON cc.ID = aed.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_account AS aa ON aa.encounter_id = ae.ID
AND aa.delete_flag = '0'
AND aa.type_code = #{accountType}
LEFT JOIN adm_organization AS ao
ON ao.ID = ae.organization_id
AND ao.delete_flag = '0'
LEFT JOIN adm_encounter_location AS ael
ON ael.encounter_id = ae.ID
AND ael.delete_flag = '0'
AND ael.form_enum = #{formEnum}
LEFT JOIN adm_location AS al
ON al.ID = ael.location_id
AND al.delete_flag = '0'
LEFT JOIN adm_encounter_participant AS aep
ON aep.encounter_id = ae.amb_encounter_id
AND aep.delete_flag = '0'
AND aep.status_enum = #{status}
AND aep.type_code = #{participantType}
LEFT JOIN adm_practitioner AS ap
ON ap.ID = aep.practitioner_id
AND ap.delete_flag = '0'
LEFT JOIN adm_encounter_diagnosis AS aed
ON aed.delete_flag = '0'
AND aed.maindise_flag = #{maindiseFlag}
AND aed.encounter_id = CASE
WHEN ae.amb_encounter_id IS NOT NULL THEN ae.amb_encounter_id
ELSE ae.ID
END
LEFT JOIN cli_condition AS cc
ON cc.ID = aed.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_account AS aa
ON aa.encounter_id = ae.ID
AND aa.delete_flag = '0'
AND aa.type_code = #{accountType}
WHERE ae.ID = #{encounterId}
</select>
@@ -145,4 +169,20 @@
, '%')
</select>
<select id="selectWardList" resultType="com.openhis.administration.domain.Location">
SELECT
id,
name,
bus_no
FROM
adm_location
WHERE
delete_flag = '0'
AND status_enum = #{status}
AND form_enum = #{formEnum}
<if test="orgId != null">
AND organization_id = #{orgId}
</if>
AND tenant_id = 1 <!-- 多租户ID若为动态可改为参数传入 -->
</select>
</mapper>

View File

@@ -23,10 +23,12 @@
ii.bed_id,
ii.bed_name,
ii.organization_name,
ii.contract_name
ii.contract_name,
COALESCE(ii.time1, ii.time2, ii.time3) AS admission_time
FROM (
WITH locations AS (
SELECT ael.encounter_id,
ael.start_time as admission_time,
al.form_enum,
al.id AS location_id,
al."name" AS location_name
@@ -58,7 +60,10 @@
alb.location_id AS bed_id,
alb.location_name AS bed_name,
ao."name" AS organization_name,
fc.contract_name
fc.contract_name,
alw.admission_time as time1,
alh.admission_time as time2,
alb.admission_time as time3
FROM adm_encounter ae
LEFT JOIN adm_patient ap
ON ae.patient_id = ap.id
@@ -85,7 +90,8 @@
WHERE ae.delete_flag = '0'
AND ae.class_enum = #{imp}
AND ae.status_enum != #{toBeRegistered}
GROUP BY ae.id,
GROUP BY ae.tenant_id,
ae.id,
ae.bus_no,
ae.status_enum,
ae.start_time,
@@ -105,7 +111,10 @@
alb.location_id,
alb.location_name,
ao."name",
fc.contract_name
fc.contract_name,
alw.admission_time,
alh.admission_time,
alb.admission_time
ORDER BY ae.bus_no DESC
) AS ii
${ew.customSqlSegment}
@@ -190,6 +199,7 @@
AND bed.delete_flag = '0'
AND bed.status_enum != #{inactive}
GROUP BY bed.id,
bed.bus_no,
bed.tenant_id,
bed."name",
bed.status_enum,
@@ -214,112 +224,107 @@
</select>
<select id="selectAdmissionPatientInfo"
resultType="com.openhis.web.inhospitalnursestation.dto.AdmissionPatientInfoDto">
WITH locations AS (
SELECT ael.encounter_id,
ael.start_time,
al.form_enum,
al.id AS location_id,
al."name" AS location_name
FROM adm_encounter_location ael
LEFT JOIN adm_location al
ON ael.location_id = al.id
AND al.delete_flag = '0'
WHERE ael.status_enum = #{active}
AND ael.delete_flag = '0'
) , practitioners AS (
SELECT aep.encounter_id ,
aep.type_code ,
pra.id AS practitioner_id,
pra."name" AS practitioner_name
FROM adm_encounter_participant aep
LEFT JOIN adm_practitioner pra
ON aep.practitioner_id = pra.id
AND pra.delete_flag = '0'
WHERE aep.status_enum = #{active}
AND aep.delete_flag = '0'
)
SELECT ae.id AS encounter_id,
ae.bus_no ,
ae.priority_enum ,
ae.organization_id ,
ae.start_time AS in_hos_time,
WITH locations AS (SELECT ael.encounter_id,
ael.start_time,
al.form_enum,
al.id AS location_id,
al."name" AS location_name
FROM adm_encounter_location ael
LEFT JOIN adm_location al
ON ael.location_id = al.id
AND al.delete_flag = '0'
WHERE ael.status_enum = #{active}
AND ael.delete_flag = '0'),
practitioners AS (SELECT aep.encounter_id,
aep.type_code,
pra.id AS practitioner_id,
pra."name" AS practitioner_name
FROM adm_encounter_participant aep
LEFT JOIN adm_practitioner pra
ON aep.practitioner_id = pra.id
AND pra.delete_flag = '0'
WHERE aep.status_enum = #{active}
AND aep.delete_flag = '0')
SELECT ae.id AS encounter_id,
ae.bus_no,
ae.priority_enum,
ae.organization_id,
ae.start_time AS in_hos_time,
bed.start_time,
bed.location_id AS bed_id,
bed.location_name AS bed_name,
house.location_id AS house_id,
house.location_name AS house_name,
ward.location_id AS ward_id,
ward.location_name AS ward_name,
primaryNurse.practitioner_id AS primary_nurse_id,
primaryNurse.practitioner_name AS primary_nurse_name,
attendingDoctor.practitioner_id AS attending_doctor_id,
bed.location_id AS bed_id,
bed.location_name AS bed_name,
house.location_id AS house_id,
house.location_name AS house_name,
ward.location_id AS ward_id,
ward.location_name AS ward_name,
primaryNurse.practitioner_id AS primary_nurse_id,
primaryNurse.practitioner_name AS primary_nurse_name,
attendingDoctor.practitioner_id AS attending_doctor_id,
attendingDoctor.practitioner_name AS attending_doctor_name,
admittingDoctor.practitioner_id AS admitting_doctor_id,
admittingDoctor.practitioner_id AS admitting_doctor_id,
admittingDoctor.practitioner_name AS admitting_doctor_name,
chiefDoctor.practitioner_id AS chief_doctor_id,
chiefDoctor.practitioner_name AS chief_doctor_name,
ao."name" AS organization_name ,
ap."name" AS patient_name,
ap.gender_enum ,
ap.birth_date ,
ap.phone ,
fc.contract_name ,
chiefDoctor.practitioner_id AS chief_doctor_id,
chiefDoctor.practitioner_name AS chief_doctor_name,
ao."name" AS organization_name,
ap."name" AS patient_name,
ap.gender_enum,
ap.birth_date,
ap.phone,
fc.contract_name,
diagnosis.condition_names
FROM adm_encounter ae
LEFT JOIN locations AS bed
ON bed.encounter_id = ae.id
AND bed.form_enum = #{bed}
LEFT JOIN locations AS house
ON house.encounter_id = ae.id
AND house.form_enum = #{house}
LEFT JOIN locations AS ward
ON ward.encounter_id = ae.id
AND ward.form_enum = #{ward}
LEFT JOIN practitioners AS primaryNurse
ON primaryNurse.encounter_id = ae.id
AND primaryNurse.type_code = #{primaryNurse}
LEFT JOIN practitioners AS attendingDoctor
ON attendingDoctor.encounter_id = ae.id
AND attendingDoctor.type_code = #{attendingDoctor}
LEFT JOIN practitioners AS admittingDoctor
ON admittingDoctor.encounter_id = ae.id
AND admittingDoctor.type_code = #{admittingDoctor}
LEFT JOIN practitioners AS chiefDoctor
ON chiefDoctor.encounter_id = ae.id
AND chiefDoctor.type_code = #{chiefDoctor}
LEFT JOIN adm_organization ao
ON ao.id = ae.organization_id
AND ao.delete_flag = '0'
LEFT JOIN adm_patient ap
ON ae.patient_id = ap.id
AND ap.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 locations AS bed
ON bed.encounter_id = ae.id
AND bed.form_enum = #{bed}
LEFT JOIN locations AS house
ON house.encounter_id = ae.id
AND house.form_enum = #{house}
LEFT JOIN locations AS ward
ON ward.encounter_id = ae.id
AND ward.form_enum = #{ward}
LEFT JOIN practitioners AS primaryNurse
ON primaryNurse.encounter_id = ae.id
AND primaryNurse.type_code = #{primaryNurse}
LEFT JOIN practitioners AS attendingDoctor
ON attendingDoctor.encounter_id = ae.id
AND attendingDoctor.type_code = #{attendingDoctor}
LEFT JOIN practitioners AS admittingDoctor
ON admittingDoctor.encounter_id = ae.id
AND admittingDoctor.type_code = #{admittingDoctor}
LEFT JOIN practitioners AS chiefDoctor
ON chiefDoctor.encounter_id = ae.id
AND chiefDoctor.type_code = #{chiefDoctor}
LEFT JOIN adm_organization ao
ON ao.id = ae.organization_id
AND ao.delete_flag = '0'
LEFT JOIN adm_patient ap
ON ae.patient_id = ap.id
AND ap.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
WHERE ae.id = #{encounterId}
AND ae.delete_flag = '0'
AND ae.delete_flag = '0'
GROUP BY ae.id,
ae.bus_no ,
ae.priority_enum ,
ae.organization_id ,
ae.bus_no,
ae.priority_enum,
ae.organization_id,
ae.start_time,
bed.start_time,
bed.location_id,
@@ -338,10 +343,437 @@
chiefDoctor.practitioner_name,
ao."name",
ap."name",
ap.gender_enum ,
ap.birth_date ,
ap.phone ,
fc.contract_name ,
ap.gender_enum,
ap.birth_date,
ap.phone,
fc.contract_name,
diagnosis.condition_names
</select>
<select id="getAmount" resultType="com.openhis.web.inhospitalnursestation.dto.EncounterAccountDto">
SELECT aa.id,
aa.encounter_id,
aa.balance_amount AS advance_amount,
COALESCE(SUM(CASE WHEN aci.status_enum IN (#{billed}, #{billable}) THEN aci.total_price ELSE 0 END),
0) AS total_amount,
(
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 aci.delete_flag = '0'
WHERE aa.type_code = #{personalCashAccount}
AND aa.delete_flag = '0'
AND aa.encounter_id = #{encounterId}
GROUP BY aa.id, aa.encounter_id, aa.balance_amount;
</select>
<select id="getPendingMedication" resultType="com.openhis.web.inhospitalnursestation.dto.PendingMedicationDto">
SELECT mmr.id AS medication_request_id,
mmdi.id AS medication_dispense_id,
ao.name AS org_name,
al.name AS perform_location_name,
mmde.name AS medication_name,
mm.total_volume AS medication_spec,
aci.unit_price,
mmr.quantity AS request_quantity,
mmr.unit_code,
mmdi.dispense_quantity,
aci.total_price,
mmdi.practitioner_id AS dispense_practitioner_id,
ap.name AS dispense_practitioner_name,
mmdi.planned_dispense_time,
mmdi.status_enum AS dispense_status_enum,
mmr.status_enum AS request_status_enum
FROM med_medication_request AS mmr
LEFT JOIN med_medication_definition AS mmde
ON mmde.id = mmr.medication_id
AND mmde.delete_flag = '0'
LEFT JOIN med_medication AS mm
ON mm.medication_def_id = mmde.id
AND mm.delete_flag = '0'
LEFT JOIN adm_location AS al
ON al.id = mmr.perform_location
AND al.delete_flag = '0'
LEFT JOIN med_medication_dispense AS mmdi
ON mmdi.med_req_id = mmr.id
AND mmdi.delete_flag = '0'
LEFT JOIN adm_charge_item AS aci
ON aci.service_table = 'med_medication_request'
AND aci.encounter_id = #{encounterId}
AND aci.delete_flag = '0'
LEFT JOIN adm_organization ao
ON ao.id = mmr.org_id
AND ao.delete_flag = '0'
LEFT JOIN adm_practitioner ap
ON ap.id = mmdi.practitioner_id
AND ap.delete_flag = '0'
WHERE mmr.encounter_id = #{encounterId}
AND ((mmdi.status_enum = #{preparationStatus}
OR mmdi.status_enum = #{summarizedStatus})
OR mmr.status_enum = #{requestStatus})
</select>
<select id="selectInpatientAdvicePage"
resultType="com.openhis.web.inhospitalnursestation.dto.InpatientAdviceDto">
SELECT ii.encounter_id,
ii.advice_table,
ii.request_id,
ii.start_time,
ii.end_time,
ii.requester_id,
ii.request_time,
ii.skin_test_flag,
ii.inject_flag,
ii.group_id,
ii.advice_name,
ii.item_id,
ii.volume,
ii.lot_number,
ii.quantity,
ii.unit_code,
ii.request_status,
ii.method_code,
ii.rate_code,
ii.dose,
ii.dose_unit_code,
ii.position_id,
ii.position_name,
ii.dispense_per_duration,
ii.part_percent,
ii.condition_definition_name,
ii.therapy_enum,
ii.sort_number,
ii.execute_num,
ii.day_times,
ii.bus_no,
ii."patient_name" AS patient_name,
ii."bed_name" AS bed_name,
ii.gender_enum,
ii.birth_date,
ii.patient_id,
ii.contract_name,
ii.condition_names,
ii.admitting_doctor_name AS admitting_doctor_name,
ii.balance_amount AS balance_amount,
ii.account_id AS account_id,
ii.performer_check_id,
ii.category_code,
ii.org_name
FROM ((SELECT T1.encounter_id,
T1.tenant_id,
#{medMedicationRequest} AS advice_table,
T1.id AS request_id,
T1.effective_dose_start AS start_time,
T1.effective_dose_end AS end_time,
T1.practitioner_id AS requester_id,
T1.create_time AS request_time,
T1.skin_test_flag AS skin_test_flag,
T1.infusion_flag AS inject_flag,
T1.group_id AS group_id,
T1.performer_check_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.status_enum AS request_status,
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,
T1.dispense_per_duration AS dispense_per_duration,
T2.part_percent AS part_percent,
ccd."name" AS condition_definition_name,
T1.therapy_enum AS therapy_enum,
T1.sort_number AS sort_number,
T1.execute_num,
af.day_times,
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,
personal_account.id AS account_id,
T2.category_code,
ao.name AS org_name
FROM med_medication_request AS T1
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 adm_organization AS ao
ON ao.id = T1.perform_org
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_frequency af
ON af.rate_code = T1.rate_code
AND af.delete_flag = '0'
LEFT JOIN adm_encounter ae
ON ae.id = T1.encounter_id
AND ae.class_enum = #{imp}
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.refund_medicine_id IS NULL
AND T1.status_enum != #{stopped}
AND T1.generate_source_enum = #{doctorPrescription}
AND CASE
WHEN T1.status_enum = #{draft}
THEN T1.performer_check_id IS NOT NULL
ELSE 1 = 1 END
ORDER BY T1.status_enum,
T1.sort_number,
T1.group_id)
UNION
(SELECT T1.encounter_id,
T1.tenant_id,
#{worServiceRequest} AS advice_table,
T1.id AS request_id,
T1.occurrence_start_time AS start_time,
T1.occurrence_end_time AS end_time,
T1.requester_id AS requester_id,
T1.create_time AS request_time,
NULL AS skin_test_flag,
NULL AS inject_flag,
NULL AS group_id,
T1.performer_check_id,
T2."name" AS advice_name,
T2.id AS item_id,
NULL AS volume,
NULL AS lot_number,
T1.quantity AS quantity,
T1.unit_code AS unit_code,
T1.status_enum AS request_status,
NULL AS method_code,
NULL AS rate_code,
NULL AS dose,
NULL AS dose_unit_code,
ao1.id AS position_id,
ao1."name" AS position_name,
NULL AS dispense_per_duration,
1 AS part_percent,
ccd."name" AS condition_definition_name,
T1.therapy_enum AS therapy_enum,
NULL AS sort_number,
T1.quantity AS execute_num,
af.day_times,
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,
personal_account.id AS account_id,
T2.category_code,
ao1.name AS org_name
FROM wor_service_request AS T1
LEFT JOIN wor_activity_definition AS T2
ON T2.id = T1.activity_id
AND T2.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_organization AS ao1
ON ao1.id = T1.org_id
AND ao1.delete_flag = '0'
LEFT JOIN adm_encounter ae
ON ae.id = T1.encounter_id
AND ae.class_enum = #{imp}
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 al
ON ael.location_id = al.id
AND al.delete_flag = '0'
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
LEFT JOIN adm_frequency af
ON af.rate_code = T1.rate_code
AND af.delete_flag = '0'
WHERE T1.delete_flag = '0'
AND T1.status_enum != #{stopped}
AND T1.generate_source_enum = #{doctorPrescription}
AND T2.category_code != #{transfer}
AND T2.category_code != #{discharge}
AND T2.category_code != #{nursing}
AND CASE
WHEN T1.status_enum = #{draft}
THEN T1.performer_check_id IS NOT NULL
ELSE 1 = 1 END
AND T1.refund_service_id IS NULL
ORDER BY T1.status_enum)) AS ii
${ew.customSqlSegment}
</select>
<select id="selectPerformRecordList" resultType="com.openhis.web.common.dto.PerformRecordDto">
SELECT cp.id AS procedure_id,
cp.status_enum,
cp.occurrence_time,
cp.create_time,
al."name" AS location_name,
ao."name" AS org_name,
cp.request_id,
cp.refund_id,
cpp.start_time,
cpp.end_time,
ap."name" AS practitioner_name
FROM cli_procedure cp
LEFT JOIN cli_procedure_performer cpp
ON cpp.procedure_id = cp.id
AND cpp.delete_flag = '0'
LEFT JOIN adm_organization ao
ON ao.id = cp.org_id
AND ao.delete_flag = '0'
LEFT JOIN adm_location al
ON al.id = cp.location_id
AND al.delete_flag = '0'
LEFT JOIN adm_practitioner ap
ON ap.id = cpp.practitioner_id
AND ap.delete_flag = '0'
WHERE cp.delete_flag = '0'
<if test="reqIds!=null and !reqIds.isEmpty()">
AND cp.request_id IN
<foreach collection="reqIds" item="reqId" open="(" separator="," close=")">
#{reqId}
</foreach>
</if>
</select>
</mapper>

View File

@@ -23,83 +23,90 @@
ii.house_name,
ii.bed_id,
ii.bed_name,
ii.organization_name
FROM (
WITH locations AS (
SELECT ael.encounter_id,
al.form_enum,
al.id AS location_id,
al."name" AS location_name
FROM adm_encounter_location ael
LEFT JOIN adm_location al
ON ael.location_id = al.id
AND al.delete_flag = '0'
WHERE ael.status_enum = #{active}
AND ael.delete_flag = '0'
)
SELECT ae.tenant_id,
ae.id AS encounter_id,
ae.bus_no,
ae.status_enum AS encounter_status,
ae.start_time,
ae.end_time,
ae.admit_source_code,
ae.priority_enum,
ae.organization_id,
ap."name" AS patient_name,
ap.py_str AS patient_py_str,
ap.wb_str AS patient_wb_str,
ap.gender_enum,
ap.birth_date,
alw.location_id AS ward_id,
alw.location_name AS ward_name,
alh.location_id AS house_id,
alh.location_name AS house_name,
alb.location_id AS bed_id,
alb.location_name AS bed_name,
ao."name" AS organization_name
FROM adm_encounter ae
LEFT JOIN adm_patient ap
ON ae.patient_id = ap.id
AND ap.delete_flag = '0'
LEFT JOIN locations alw
ON alw.encounter_id = ae.id
AND alw.form_enum = #{ward}
LEFT JOIN locations alh
ON alh.encounter_id = ae.id
AND alh.form_enum = #{house}
LEFT JOIN locations alb
ON alb.encounter_id = ae.id
AND alb.form_enum = #{bed}
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}
AND ae.status_enum != #{toBeRegistered}
AND ae.status_enum != #{registered}
GROUP BY ae.id,
ii.organization_name,
ii.patient_id,
ii.account_id
FROM (WITH locations AS (SELECT ael.encounter_id,
al.form_enum,
al.id AS location_id,
al."name" AS location_name
FROM adm_encounter_location ael
LEFT JOIN adm_location al
ON ael.location_id = al.id
AND al.delete_flag = '0'
WHERE ael.status_enum = #{active}
AND ael.delete_flag = '0')
SELECT ae.tenant_id,
ae.id AS encounter_id,
ae.bus_no,
ae.status_enum,
ae.status_enum AS encounter_status,
ae.start_time,
ae.end_time,
ae.admit_source_code,
ae.priority_enum,
ae.organization_id,
ap."name",
ap.py_str,
ap.wb_str,
ap."name" AS patient_name,
ap.py_str AS patient_py_str,
ap.wb_str AS patient_wb_str,
ap.gender_enum,
ap.birth_date,
alw.location_id,
alw.location_name,
alh.location_id,
alh.location_name,
alb.location_id,
alb.location_name,
ao."name"
ORDER BY ae.bus_no DESC
) AS ii
ap.id as patient_id,
alw.location_id AS ward_id,
alw.location_name AS ward_name,
alh.location_id AS house_id,
alh.location_name AS house_name,
alb.location_id AS bed_id,
alb.location_name AS bed_name,
ao."name" AS organization_name,
aa.id AS account_id
FROM adm_encounter ae
LEFT JOIN adm_patient ap
ON ae.patient_id = ap.id
AND ap.delete_flag = '0'
LEFT JOIN locations alw
ON alw.encounter_id = ae.id
AND alw.form_enum = #{ward}
LEFT JOIN locations alh
ON alh.encounter_id = ae.id
AND alh.form_enum = #{house}
LEFT JOIN locations alb
ON alb.encounter_id = ae.id
AND alb.form_enum = #{bed}
LEFT JOIN adm_organization ao
ON ao.id = ae.organization_id
AND ao.delete_flag = '0'
LEFT JOIN adm_account aa
ON ae.id = aa.encounter_id
AND aa.delete_flag = '0'
WHERE ae.delete_flag = '0'
AND ae.class_enum = #{imp}
AND ae.status_enum != #{toBeRegistered}
AND ae.status_enum != #{registered}
AND aa.type_code = #{personalCashAccount}
GROUP BY ae.id,
ae.bus_no,
ae.status_enum,
ae.start_time,
ae.end_time,
ae.admit_source_code,
ae.priority_enum,
ae.organization_id,
ap."name",
ap.py_str,
ap.wb_str,
ap.gender_enum,
ap.birth_date,
ap.id,
alw.location_id,
alw.location_name,
alh.location_id,
alh.location_name,
alb.location_id,
alb.location_name,
ao."name",
aa.id,
ae.tenant_id
ORDER BY ae.bus_no DESC) AS ii
${ew.customSqlSegment}
</select>
<select id="selectInpatientAdvicePage"
@@ -145,7 +152,8 @@
ii.admitting_doctor_name AS admitting_doctor_name,
ii.balance_amount AS balance_amount,
ii.account_id AS account_id,
ii.performer_check_id
ii.performer_check_id,
ii.category_code
FROM (( SELECT T1.encounter_id,
T1.tenant_id,
#{medMedicationRequest} AS advice_table,
@@ -188,7 +196,8 @@
diagnosis.condition_names,
pra."name" AS admitting_doctor_name,
personal_account.balance_amount,
personal_account.id AS account_id
personal_account.id AS account_id,
T2.category_code
FROM med_medication_request AS T1
LEFT JOIN med_medication_definition AS T2
ON T2.id = T1.medication_id
@@ -271,6 +280,7 @@
ON personal_account.encounter_id = ae.id
WHERE T1.delete_flag = '0'
AND T1.refund_medicine_id IS NULL
AND T1.generate_source_enum = #{doctorPrescription}
AND CASE WHEN T1.status_enum = #{draft}
THEN T1.performer_check_id IS NOT NULL
ELSE 1=1 END
@@ -320,7 +330,8 @@
diagnosis.condition_names,
pra."name" AS admitting_doctor_name,
personal_account.balance_amount,
personal_account.id AS account_id
personal_account.id AS account_id,
T2.category_code
FROM wor_service_request AS T1
LEFT JOIN wor_activity_definition AS T2
ON T2.id = T1.activity_id
@@ -400,6 +411,7 @@
ON af.rate_code = T1.rate_code
AND af.delete_flag = '0'
WHERE T1.delete_flag = '0'
AND T1.generate_source_enum = #{doctorPrescription}
AND CASE WHEN T1.status_enum = #{draft}
THEN T1.performer_check_id IS NOT NULL
ELSE 1=1 END

View File

@@ -0,0 +1,104 @@
<?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.EncounterAutoRollAppMapper">
<select id="getSource" resultType="com.openhis.web.inhospitalnursestation.dto.AutoRollSourceDto">
SELECT ID AS instance_id,
NAME AS instance_name,
permitted_unit_code
FROM wor_activity_definition
WHERE delete_flag = '0'
AND status_enum = #{status}
AND category_code = #{basicService}
</select>
<select id="getEncounter" resultType="com.openhis.web.inhospitalnursestation.dto.EncounterAutoRollQueryDto">
SELECT tear.ID,
tear.status_enum,
tear.quantity,
sdd.dict_label AS unit_code_name,
CASE
WHEN tear.instance_table = 'wor_activity_definition' THEN
wor.NAME
ELSE NULL
END AS definition_name
FROM tmp_encounter_auto_roll AS tear
LEFT JOIN wor_activity_definition AS wor ON tear.instance_table = 'wor_activity_definition'
AND tear.instance_id = wor.
ID
LEFT JOIN sys_dict_data AS sdd ON sdd.dict_value = wor.permitted_unit_code
AND sdd.dict_type = 'unit_code'
AND sdd.status = '0'
WHERE tear.delete_flag = '0'
AND tear.encounter_id = #{encounterId}
</select>
<select id="getInBedPatientInfo" resultType="com.openhis.web.inhospitalnursestation.dto.InBedPatientInfoDto">
SELECT ae.ID AS encounter_id,
ae.organization_id,
ae.patient_id,
aa.ID AS account_id,
aed.ID AS encounter_diagnosis_id,
aed.condition_id
FROM adm_encounter AS ae
LEFT JOIN adm_account AS aa ON aa.encounter_id = ae.ID
AND aa.delete_flag = '0'
AND aa.type_code = #{typeCode}
LEFT JOIN adm_encounter_diagnosis AS aed ON aed.encounter_id = ae.ID
AND aed.delete_flag = '0'
AND aed.maindise_flag = #{maindiseFlag}
WHERE ae.delete_flag = '0'
AND ae.class_enum = #{classEnum}
AND EXISTS(
SELECT 1
FROM adm_encounter_location AS ael
WHERE ael.encounter_id = ae.ID
AND ael.delete_flag = '0'
AND ael.status_enum = #{status}
AND ael.form_enum = #{formEnum}
)
</select>
<select id="getNursingRequest" resultType="com.openhis.web.inhospitalnursestation.dto.AutoRollNursingDto">
SELECT
wsr.activity_id AS activity_definition_id,
wsr.quantity,
wsr.patient_id,
wsr.encounter_id,
wsr.requester_id
FROM
wor_service_request AS wsr
WHERE
wsr.delete_flag = '0'
AND wsr.category_enum = #{categoryEnum}
AND wsr.status_enum = #{status}
<if test="encounterIdList != null and !encounterIdList.isEmpty()">
AND wsr.encounter_id IN
<foreach collection="encounterIdList" item="itemId" open="(" separator="," close=")">
#{itemId}
</foreach>
</if>
</select>
<select id="getAutoRollBasicService"
resultType="com.openhis.web.inhospitalnursestation.dto.AutoRollBasicServiceDto">
SELECT
tear.encounter_id,
tear.instance_id AS activity_definition_id,
tear.quantity,
tear.practitioner_id AS requester_id,
tear.organization_id
FROM
tmp_encounter_auto_roll AS tear
WHERE
tear.delete_flag = '0'
AND tear.status_enum = #{status}
<if test="encounterIdList != null and !encounterIdList.isEmpty()">
AND tear.encounter_id IN
<foreach collection="encounterIdList" item="itemId" open="(" separator="," close=")">
#{itemId}
</foreach>
</if>
</select>
</mapper>

View File

@@ -1,160 +0,0 @@
<?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.inpatientmanage.mapper.AdmissionMapper">
<!-- 住院登记信息分页查询-->
<select id="getPage" parameterType="java.util.Map"
resultType="com.openhis.web.inpatientmanage.dto.AdmissionDto">
SELECT
T1.id,
T1.patient_id,
T1.group_id,
T1.encounter_bus_no,
T1.status_enum,
T1.class_enum,
T1.yb_class_enum,
T1.organization_id,
T1.in_way_code,
T1.admit_source_code,
T1.tenant_id,
T1.create_time,
T1.create_by,
T1.name,
T1.patient_bus_no,
T1.gender_enum,
T1.birth_date,
T1.phone,
T1.id_card,
T1.py_str,
T1.wb_str,
T1.ward_location_id
FROM
(
SELECT
e.id,
e.patient_id,
e.group_id,
e.bus_no as encounter_bus_no,
e.status_enum,
e.class_enum,
e.yb_class_enum,
e.organization_id,
e.admit_source_code,
e.in_way_code,
e.tenant_id,
e.create_time,
e.create_by,
p.name,
p.bus_no AS patient_bus_no,
p.gender_enum,
p.birth_date,
p.phone,
p.id_card,
p.py_str,
p.wb_str,
(SELECT el.location_id
FROM adm_encounter_location el
WHERE el.encounter_id = e.id AND el.form_enum = #{formEnum} --4:病区
ORDER BY el.id DESC
LIMIT 1) as ward_location_id--病区
FROM adm_encounter e
LEFT JOIN adm_patient p ON e.patient_id = p.id
<where>
e.delete_flag = '0'
AND e.class_enum = #{classEnum} --1:住院
</where>
ORDER BY e.bus_no desc
) AS T1
${ew.customSqlSegment}
</select>
<!-- 住院登记信息分页查询-->
<select id="getAdmissionOne" parameterType="java.util.Map"
resultType="com.openhis.web.inpatientmanage.dto.AdmissionUpDto">
SELECT
e.id,
e.patient_id,
e.group_id,
e.bus_no as encounter_bus_no,
e.status_enum,
e.class_enum,
e.yb_class_enum,
e.class_json,
e.priority_enum,
e.type_enum,
e.service_type_id,
e.subject_status_enum,
e.start_time,
e.end_time,
e.organization_id,
e.display_order,
e.admit_source_code,
e.in_way_code,
e.first_enum,
e.tenant_id,
p.name,
p.bus_no AS patient_bus_no,
p.gender_enum,
p.birth_date,
p.address,
p.prfs_enum,
p.phone,
p.id_card,
p.py_str,
p.wb_str,
p.work_company,
p.native_place,
p.country_code,
p.nationality_code,
p.link_name,
p.link_relation_code,
p.link_telcom,
(SELECT pra.name
FROM adm_encounter_participant ep
LEFT JOIN adm_practitioner pra ON ep.practitioner_id = pra.id
WHERE ep.encounter_id = e.id
AND ep.type_code = #{typeCode} --就诊参与者身份类型是1:接诊医生
ORDER BY ep.create_time DESC
LIMIT 1) AS doctor_name,--接诊医生
COALESCE((SELECT COUNT(*)
FROM adm_encounter e1
WHERE e1.patient_id = e.patient_id
AND e1.class_enum = #{classEnum} --住院类型
AND e1.status_enum = #{statusEnum} --出院,诊毕
), 0) AS hospitalization_count,-- 住院次数
el.location_id AS ward_location_id, --病区
l.bus_no,
(SELECT COUNT(*)
FROM adm_location
WHERE bus_no LIKE l.bus_no || '%'
AND form_enum = #{bedForm} -- 8:病床
AND operational_enum = #{operational} -- 病床状态 3占用中
) || '/' ||
(SELECT COUNT(*)
FROM adm_location
WHERE bus_no LIKE l.bus_no || '%'
AND form_enum = #{bedForm} -- 8:病床
) AS bed_count -- 占用中/病床总数
FROM adm_encounter e
LEFT JOIN adm_patient p ON e.patient_id = p.id
LEFT JOIN adm_encounter_location el ON e.id = el.encounter_id AND el.form_enum = #{wardForm}--4病区
LEFT JOIN adm_location l ON l.id = el.location_id AND l.form_enum = #{wardForm}--4病区
<where>
e.delete_flag = '0'
AND e.class_enum = #{classEnum}
<if test="id!= null">
AND e.id = #{id}
</if>
<if test="tenantId!= null">
AND e.tenant_id = #{tenantId}
</if>
</where>
ORDER BY e.bus_no desc
</select>
</mapper>

View File

@@ -54,7 +54,6 @@
T8.end_time AS surgeryEndTime, -- 手术结束时间
T9.id AS encounterLocationId, -- 就诊位置ID
T9.location_id, -- 床位号
T10.category_code, -- 过敏原
T11."name" AS caty, -- 入院科室
T12."name" AS mainDiagnosis -- 主要诊断
FROM adm_patient AS T1
@@ -119,9 +118,6 @@
ON T2.id = T9.encounter_id -- 就诊ID
AND T9.form_enum = 8
AND T9.delete_flag = '0'
LEFT JOIN cli_allergy_intolerance T10
ON T1.id = T10.patient_id -- 患者ID
AND T10.delete_flag = '0'
LEFT JOIN adm_organization T11
ON T2.organization_id = T11.id
AND T11.type_enum = 2

View File

@@ -0,0 +1,9 @@
<?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.Inspection.mapper.GroupRecMapper">
</mapper>

View File

@@ -0,0 +1,140 @@
<?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.Inspection.mapper.LisReportMapper">
<select id="getReportResultList" resultType="com.openhis.web.Inspection.dto.ReportResultManageDto">
SELECT
*
FROM
(
SELECT
t2.service_id AS parentId,
t1.id,
t5.name AS patient_name,
t6.patient_id,
t5.gender_enum,
t4.charge_name,
t7.specimen_name,
t8."name" AS doctor_name,
t6.authored_time,
t2.tenant_id,
t1.observation_result,
t1.observation_date,
t9."name" as observation_name,
t9.reference_range
FROM
lab_observation t1
INNER JOIN lab_specimen t2 ON t1.specimen_id = t2.id
INNER JOIN wor_service_request t6 ON t2.service_id = t6.id
AND t6.category_enum = 22
LEFT JOIN adm_charge_item t3 ON t3.service_id = t6.id
LEFT JOIN adm_charge_item_definition t4 ON t3.definition_id = t4."id"
AND t4.delete_flag = '0'
LEFT JOIN adm_patient t5 ON t6.patient_id = t5.id
LEFT JOIN adm_specimen_definition t7 ON t2.specimen_definition_id = t7.id
LEFT JOIN adm_practitioner t8 ON t6.requester_id = t8.id
AND t8.delete_flag = '0'
Left join adm_observation_definition t9 on t1.observation_definition_id = t9.id and t9.delete_flag = '0'
UNION
SELECT
0 AS parentId,
t2.service_id AS id,
t5.name AS patient_name,
t6.patient_id,
t5.gender_enum,
t4.charge_name,
NULL AS specimen_name,
t8."name" AS doctor_name,
t6.authored_time AS authored_time,
t2.tenant_id,
NULL observation_result,
NULL observation_date,
NULL as observation_name,
NULL as reference_range
FROM
lab_observation t1
INNER JOIN lab_specimen t2 ON t1.specimen_id = t2.id
INNER JOIN wor_service_request t6 ON t2.service_id = t6.id
AND t6.category_enum = 22
LEFT JOIN adm_charge_item t3 ON t3.service_id = t6.id
LEFT JOIN adm_charge_item_definition t4 ON t3.definition_id = t4."id"
AND t4.delete_flag = '0'
LEFT JOIN adm_patient t5 ON t6.patient_id = t5.id
LEFT JOIN adm_practitioner t8 ON t6.requester_id = t8.id
AND t8.delete_flag = '0'
Left join adm_observation_definition t9 on t1.observation_definition_id = t9.id and t9.delete_flag = '0'
WHERE
t2.service_id IN (SELECT DISTINCT service_id FROM lab_specimen)
) T1
${ew.customSqlSegment}
</select>
<select id="getReportResultListTotal" resultType="java.lang.Long">
SELECT
COUNT(1)
from (
SELECT
DISTINCT
0 AS parentId,
t2.service_id AS id,
t5.name AS patient_name,
t6.patient_id,
t5.gender_enum,
t4.charge_name,
NULL AS specimen_name,
t8."name" AS doctor_name,
t6.authored_time AS authored_time,
t2.tenant_id,
NULL observation_result,
NULL observation_date,
NULL as observation_name,
NULL as reference_range
FROM
lab_observation t1
INNER JOIN lab_specimen t2 ON t1.specimen_id = t2.id
INNER JOIN wor_service_request t6 ON t2.service_id = t6.id
AND t6.category_enum = 22
LEFT JOIN adm_charge_item t3 ON t3.service_id = t6.id
LEFT JOIN adm_charge_item_definition t4 ON t3.definition_id = t4."id"
AND t4.delete_flag = '0'
LEFT JOIN adm_patient t5 ON t6.patient_id = t5.id
LEFT JOIN adm_practitioner t8 ON t6.requester_id = t8.id
AND t8.delete_flag = '0'
Left join adm_observation_definition t9 on t1.observation_definition_id = t9.id and t9.delete_flag = '0'
WHERE
t2.service_id IN (SELECT DISTINCT service_id FROM lab_specimen)
)
${ew.customSqlSegment}
</select>
<select id="getReportListById" resultType="com.openhis.web.Inspection.dto.ReportResultManageDto">
SELECT
t2.service_id AS parentId,
t1.id,
t5.name AS patient_name,
t6.patient_id,
t5.gender_enum,
t4.charge_name,
t7.specimen_name,
t8."name" AS doctor_name,
t6.authored_time,
t2.tenant_id,
t1.observation_result,
t1.observation_date,
t9."name" as observation_name,
t9.reference_range
FROM
lab_observation t1
INNER JOIN lab_specimen t2 ON t1.specimen_id = t2.id
INNER JOIN wor_service_request t6 ON t2.service_id = t6.id
AND t6.category_enum = 22
LEFT JOIN adm_charge_item t3 ON t3.service_id = t6.id
LEFT JOIN adm_charge_item_definition t4 ON t3.definition_id = t4."id"
AND t4.delete_flag = '0'
LEFT JOIN adm_patient t5 ON t6.patient_id = t5.id
LEFT JOIN adm_specimen_definition t7 ON t2.specimen_definition_id = t7.id
LEFT JOIN adm_practitioner t8 ON t6.requester_id = t8.id
AND t8.delete_flag = '0'
Left join adm_observation_definition t9 on t1.observation_definition_id = t9.id and t9.delete_flag = '0'
${ew.customSqlSegment}
</select>
</mapper>

View File

@@ -0,0 +1,108 @@
<?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.Inspection.mapper.SampleCollectMapper">
<select id="getSampleCollectList" resultType="com.openhis.web.Inspection.dto.SampleCollectManageDto">
-- 查询所有子数据
SELECT
*
FROM
(
SELECT
t1.service_id AS parentId,
t1.id,
t1.collection_status_enum,
t5.name AS patient_name,
t2.patient_id,
t5.gender_enum,
t4.charge_name,
t6.specimen_name,
t7."name" AS doctor_name,
t1.collection_date,
t1.received_date,
t2.authored_time,
t1.specimen_volume,
t1.specimen_unit,
t1.tenant_id
FROM
lab_specimen t1
INNER JOIN wor_service_request t2 ON t1.service_id = t2.id
AND t2.category_enum = 22
LEFT JOIN adm_charge_item t3 ON t3.service_id = t2.id
LEFT JOIN adm_charge_item_definition t4 ON t3.definition_id = t4."id"
AND t4.delete_flag = '0'
LEFT JOIN adm_patient t5 ON t2.patient_id = t5.id
LEFT JOIN adm_specimen_definition t6 ON t1.specimen_definition_id = t6.id
LEFT JOIN adm_practitioner t7 ON t2.requester_id = t7.id
AND t7.delete_flag = '0'
UNION
SELECT
0 AS parentId,
t1.service_id AS id,
NULL collection_status_enum,
t5.name AS patient_name,
t2.patient_id,
t5.gender_enum,
t4.charge_name,
NULL AS specimen_name,
t7."name" AS doctor_name,
NULL AS collection_date,
null received_date,
t2.authored_time AS authored_time,
null specimen_volume,
null specimen_unit,
t1.tenant_id
FROM
lab_specimen t1
INNER JOIN wor_service_request t2 ON t1.service_id = t2.id
AND t2.category_enum = 22
LEFT JOIN adm_charge_item t3 ON t3.service_id = t2.id
LEFT JOIN adm_charge_item_definition t4 ON t3.definition_id = t4."id"
AND t4.delete_flag = '0'
LEFT JOIN adm_patient t5 ON t2.patient_id = t5.id
LEFT JOIN adm_practitioner t7 ON t2.requester_id = t7.id
AND t7.delete_flag = '0'
WHERE
t1.service_id IN (SELECT DISTINCT service_id FROM lab_specimen)
) T1
${ew.customSqlSegment}
</select>
<select id="getSampleCollectListTotal" resultType="java.lang.Long">
SELECT
COUNT(1)
FROM
(
SELECT
DISTINCT
0 AS parentId,
t1.service_id AS id,
NULL collection_status_enum,
t5.name AS patient_name,
t2.patient_id,
t5.gender_enum,
t4.charge_name,
NULL AS specimen_name,
t7."name" AS doctor_name,
NULL AS collection_date,
null specimen_volume,
null specimen_unit,
t2.authored_time AS authored_time,
t1.tenant_id
FROM
lab_specimen t1
INNER JOIN wor_service_request t2 ON t1.service_id = t2.id
AND t2.category_enum = 22
LEFT JOIN adm_charge_item t3 ON t3.service_id = t2.id
LEFT JOIN adm_charge_item_definition t4 ON t3.definition_id = t4."id"
AND t4.delete_flag = '0'
LEFT JOIN adm_patient t5 ON t2.patient_id = t5.id
LEFT JOIN adm_practitioner t7 ON t2.requester_id = t7.id
AND t7.delete_flag = '0'
WHERE
t1.service_id IN (SELECT DISTINCT service_id FROM lab_specimen)
)
${ew.customSqlSegment}
</select>
</mapper>

View File

@@ -2,102 +2,6 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.openhis.web.outpatientmanage.mapper.OutpatientInfusionAppMapper">
<!-- 门诊皮试记录相关查询-->
<select id="getSkinTestRecords"
parameterType="com.openhis.web.outpatientmanage.dto.OutpatientSkinTestRecordSearchParam"
resultType="com.openhis.web.outpatientmanage.dto.OutpatientSkinTestRecordDto">
SELECT
T1.tenant_id,
T1.id,
T1.prescription_no,
T1.encounter_bus_no,
T1.patient_name,
T1.patient_bus_no,
T1.patient_id,
T1.phone,
T1.medication_information,
T1.medication_detail,
T1.medication_lot_number,
T1.medication_status_enum,
T1.performer_id,
T1.performer_check_id,
T1.occurrence_start_time,
T1.occurrence_end_time,
T1.clinical_status_enum,
T1.verification_status_enum,
T1.doctor_id,
T1.recorded_date,
T1.note
FROM
(
SELECT
sr.tenant_id,
sr.id, --服务申请管理ID
mr.prescription_no, --处方号
e.bus_no as encounter_bus_no, --就诊号
pt.name AS patient_name, --病人姓名
pt.bus_no AS patient_bus_no, --病人ID前台显示用
pt.phone,
sr.patient_id, --病人ID
ad.name AS medication_information, --药品信息
md.bus_no || ' ' || md.name || ' 规格:' || COALESCE(m.total_volume, '') AS medication_detail,--药品
m.lot_number AS medication_lot_number, --药品批次号
mmd.status_enum AS medication_status_enum, --药品发放状态
sr.performer_id, --执行护士
sr.performer_check_id,--核对人
to_char(sr.occurrence_start_time, 'YYYY-MM-DD HH24:MI:SS') AS occurrence_start_time, --预计执行时间
to_char(sr.occurrence_end_time, 'YYYY-MM-DD HH24:MI:SS') AS occurrence_end_time, --预计结束时间
ai.clinical_status_enum, --皮试结果
ai.verification_status_enum, --皮试检查项目状态
mr.practitioner_id as doctor_id, --开单医生
ai.recorded_date,
ai.note --备注
FROM
wor_service_request sr
LEFT JOIN (
SELECT DISTINCT ON (request_id)
ai.id,
ai.request_id,
ai.clinical_status_enum,
ai.verification_status_enum,
ai.recorded_date,
ai.note
FROM
cli_allergy_intolerance ai
WHERE
ai.delete_flag = '0'
ORDER BY
ai.request_id,
ai.create_time DESC
) ai ON ai.request_id = sr.id
-- LEFT JOIN cli_allergy_intolerance ai ON ai.request_id = sr.id
-- AND ai.delete_flag = '0'
LEFT JOIN adm_encounter e ON e.id = sr.encounter_id
AND e.delete_flag = '0'
LEFT JOIN adm_patient pt ON pt.id = sr.patient_id
AND pt.delete_flag = '0'
LEFT JOIN wor_activity_definition ad ON ad.id = sr.activity_id
AND ad.delete_flag = '0'
LEFT JOIN med_medication_request mr ON mr.encounter_id = sr.encounter_id
AND mr.delete_flag = '0'
LEFT JOIN med_medication_definition md ON md.id = mr.medication_id
AND md.delete_flag = '0'
LEFT JOIN med_medication m ON md.id = m.medication_def_id
AND m.delete_flag = '0'
LEFT JOIN med_medication_dispense mmd ON mr.id = mmd.med_req_id
AND mmd.delete_flag = '0'
<where>
ad.name = '皮试检查'
AND mr.skin_test_flag = 1
AND mmd.status_enum IN (2,3,4,14)--药品发放状态:(DispenseStatus枚举类)
AND md.skin_test_flag = 1
AND sr.status_enum IN (2,3,10) --服务状态待执行(RequestStatus枚举类)
</where>
ORDER BY sr.prescription_no,e.bus_no,md.bus_no
) AS T1
${ew.customSqlSegment}
</select>
<!-- 门诊输液记录患者列表信息查询-->
<select id="getOutpatientInfusionPatient"
resultType="com.openhis.web.outpatientmanage.dto.OutpatientInfusionPatientDto">
@@ -113,68 +17,68 @@
T1.gender_enum,
T1.create_time
FROM (
SELECT sr.status_enum AS service_status,
sr.encounter_id,
e.bus_no as encounter_bus_no,
pt.birth_date,
pt.bus_no AS patient_bus_no,
sr.patient_id,
pt."name" AS patient_name,
pt.py_str AS patient_py_str,
pt.wb_str AS patient_wb_str,
sr.tenant_id,
pt.gender_enum,
e.reception_time AS create_time
FROM adm_encounter e
LEFT JOIN wor_service_request sr
ON e.id = sr.encounter_id
AND sr.refund_service_id IS NULL
AND sr.delete_flag = '0'
LEFT JOIN adm_patient pt
ON pt.id = sr.patient_id
AND pt.delete_flag = '0'
LEFT JOIN wor_activity_definition ad
ON ad.id = sr.activity_id
AND ad.delete_flag = '0'
WHERE e.delete_flag = '0'
AND sr.status_enum IN (#{inProgress},#{completed},#{cancelled})
GROUP BY sr.status_enum,
sr.encounter_id,
e.bus_no,
pt.birth_date,
pt.bus_no,
sr.patient_id,
pt."name",
pt.py_str,
pt.wb_str,
sr.tenant_id,
pt.gender_enum,
e.reception_time
ORDER BY create_time DESC
) AS T1
${ew.customSqlSegment}
SELECT sr.status_enum AS service_status,
sr.encounter_id,
e.bus_no as encounter_bus_no,
pt.birth_date,
pt.bus_no AS patient_bus_no,
sr.patient_id,
pt."name" AS patient_name,
pt.py_str AS patient_py_str,
pt.wb_str AS patient_wb_str,
sr.tenant_id,
pt.gender_enum,
e.reception_time AS create_time
FROM adm_encounter e
LEFT JOIN wor_service_request sr
ON e.id = sr.encounter_id
AND sr.refund_service_id IS NULL
AND sr.delete_flag = '0'
LEFT JOIN adm_patient pt
ON pt.id = sr.patient_id
AND pt.delete_flag = '0'
LEFT JOIN wor_activity_definition ad
ON ad.id = sr.activity_id
AND ad.delete_flag = '0'
WHERE e.delete_flag = '0'
AND sr.status_enum IN (#{inProgress}, #{completed}, #{cancelled})
GROUP BY sr.status_enum,
sr.encounter_id,
e.bus_no,
pt.birth_date,
pt.bus_no,
sr.patient_id,
pt."name",
pt.py_str,
pt.wb_str,
sr.tenant_id,
pt.gender_enum,
e.reception_time
ORDER BY create_time DESC
) AS T1
${ew.customSqlSegment}
</select>
<select id="selectInfusionPendingRecord"
resultType="com.openhis.web.outpatientmanage.dto.OutpatientInfusionRecordDto">
SELECT pr.encounter_id,
pr.service_status,
pr.authored_time ,
pr.service_id ,
pr.bus_no ,
pr.print_count ,
pr.group_id ,
pr.authored_time,
pr.service_id,
pr.bus_no,
pr.print_count,
pr.group_id,
pr.execute_num,
pr.speed ,
pr.quantity ,
pr.skin_test_flag ,
pr.unit_code ,
pr.dose ,
pr.dose_unit_code ,
pr.method_code ,
pr.rate_code ,
pr.performer_id ,
pr.preparer_id ,
pr.speed,
pr.quantity,
pr.skin_test_flag,
pr.unit_code,
pr.dose,
pr.dose_unit_code,
pr.method_code,
pr.rate_code,
pr.performer_id,
pr.preparer_id,
pr.dispense_status,
pr.medication_name,
pr.service_name,
@@ -182,42 +86,42 @@
pr.perform_count,
pr.dept_name
FROM (
SELECT ae.id AS encounter_id,
SELECT ae.id AS encounter_id,
ae.tenant_id,
wsr.status_enum AS service_status,
wsr.authored_time ,
wsr.id AS service_id,
wsr.bus_no ,
wsr.authored_time,
wsr.id AS service_id,
wsr.bus_no,
wsr.print_count,
mmr.group_id ,
mmr.group_id,
mmr.execute_num,
mmr.speed ,
mmr.quantity ,
mmr.skin_test_flag ,
mmr.unit_code ,
mmr.dose ,
mmr.dose_unit_code ,
mmr.method_code ,
mmr.rate_code ,
mmr.performer_id ,
mmr.speed,
mmr.quantity,
mmr.skin_test_flag,
mmr.unit_code,
mmr.dose,
mmr.dose_unit_code,
mmr.method_code,
mmr.rate_code,
mmr.performer_id,
dis.status_enum AS dispense_status,
mmd."name" AS medication_name,
ad."name" AS service_name,
ap."name" AS practitioner_name,
o."name" AS dept_name,
mmd."name" AS medication_name,
ad."name" AS service_name,
ap."name" AS practitioner_name,
o."name" AS dept_name,
-- 新增子查询:查询配药人
(SELECT DISTINCT mmdis.preparer_id
FROM med_medication_dispense mmdis
WHERE mmdis.med_req_id = mmr.id
AND mmdis.delete_flag = '0'
) AS preparer_id ,
) AS preparer_id,
-- 新增子查询:统计已执行次数
(SELECT COUNT(sub_wsr.id)
FROM wor_service_request sub_wsr
WHERE sub_wsr.based_on_id = wsr.id
AND sub_wsr.status_enum = #{completed}
AND sub_wsr.delete_flag = '0'
) AS perform_count
) AS perform_count
FROM adm_encounter ae
LEFT JOIN wor_service_request wsr
ON ae.id = wsr.encounter_id
@@ -250,67 +154,67 @@
</select>
<select id="selectInfusionPerformRecord"
resultType="com.openhis.web.outpatientmanage.dto.OutpatientInfusionRecordDto">
SELECT pr.service_status,
pr.bus_no ,
pr.based_on_id ,
pr.group_id ,
pr.occurrence_end_time ,
pr.service_id,
pr.tenant_id,
pr.service_name,
pr.performer_name,
pr.org_name
FROM (
SELECT wsr.status_enum AS service_status,
wsr.bus_no ,
wsr.based_on_id ,
wsr.group_id ,
wsr.occurrence_end_time ,
wsr.id AS service_id,
wsr.tenant_id,
ad."name" AS service_name,
ap."name" AS performer_name,
al."name" AS org_name
FROM wor_service_request wsr
LEFT JOIN wor_activity_definition ad
ON ad.id = wsr.activity_id
AND ad.delete_flag = '0'
LEFT JOIN adm_practitioner ap
ON wsr.performer_id = ap.id
AND ap.delete_flag = '0'
LEFT JOIN adm_organization al
ON al.id = wsr.org_id
WHERE wsr.based_on_id = #{serviceReqId}
AND wsr.delete_flag = '0'
) AS pr
${ew.customSqlSegment}
SELECT pr.service_status,
pr.bus_no,
pr.based_on_id,
pr.group_id,
pr.occurrence_end_time,
pr.service_id,
pr.tenant_id,
pr.service_name,
pr.performer_name,
pr.org_name
FROM (
SELECT wsr.status_enum AS service_status,
wsr.bus_no,
wsr.based_on_id,
wsr.group_id,
wsr.occurrence_end_time,
wsr.id AS service_id,
wsr.tenant_id,
ad."name" AS service_name,
ap."name" AS performer_name,
al."name" AS org_name
FROM wor_service_request wsr
LEFT JOIN wor_activity_definition ad
ON ad.id = wsr.activity_id
AND ad.delete_flag = '0'
LEFT JOIN adm_practitioner ap
ON wsr.performer_id = ap.id
AND ap.delete_flag = '0'
LEFT JOIN adm_organization al
ON al.id = wsr.org_id
WHERE wsr.based_on_id = #{serviceReqId}
AND wsr.delete_flag = '0'
) AS pr
${ew.customSqlSegment}
ORDER BY pr.occurrence_end_time DESC
</select>
<select id="selectPerformInfo"
resultType="com.openhis.web.outpatientmanage.dto.OutpatientInfusionRecordDto">
SELECT wsr.id AS service_id,
wsr.status_enum AS service_status,
mmr.execute_num ,
dis.status_enum AS dispense_status,
-- 新增子查询:统计已执行次数
(SELECT COUNT(sub_wsr.id)
FROM wor_service_request sub_wsr
WHERE sub_wsr.based_on_id = wsr.id
AND sub_wsr.status_enum = #{completed}
AND sub_wsr.delete_flag = '0'
) AS perform_count
wsr.status_enum AS service_status,
mmr.execute_num ,
dis.status_enum AS dispense_status,
-- 新增子查询:统计已执行次数
(SELECT COUNT(sub_wsr.id)
FROM wor_service_request sub_wsr
WHERE sub_wsr.based_on_id = wsr.id
AND sub_wsr.status_enum = #{completed}
AND sub_wsr.delete_flag = '0'
) AS perform_count
FROM wor_service_request wsr
LEFT JOIN med_medication_request mmr
ON wsr.based_on_id = mmr.id
AND mmr.delete_flag = '0'
LEFT JOIN med_medication_dispense dis
ON dis.med_req_id = mmr.id
AND dis.delete_flag = '0'
LEFT JOIN med_medication_request mmr
ON wsr.based_on_id = mmr.id
AND mmr.delete_flag = '0'
LEFT JOIN med_medication_dispense dis
ON dis.med_req_id = mmr.id
AND dis.delete_flag = '0'
WHERE wsr.delete_flag = '0'
AND wsr.id IN
<foreach item="serviceReqId" collection="serviceReqIdList" open="(" separator="," close=")">
#{serviceReqId}
</foreach>
AND wsr.id IN
<foreach item="serviceReqId" collection="serviceReqIdList" open="(" separator="," close=")">
#{serviceReqId}
</foreach>
</select>
</mapper>

View File

@@ -0,0 +1,46 @@
<?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.outpatientmanage.mapper.OutpatientSkinTestAppMapper">
<select id="getRecordInfo" resultType="com.openhis.web.outpatientmanage.dto.SkinTestQueryDto">
SELECT wsr.ID AS request_id,
wsr.encounter_id,
wsr.patient_id,
mmd.ID AS medication_id,
mmd.NAME AS medication_name,
cai.id AS record_id,
mmdi.lot_number,
cai.recorded_date,
cai.clinical_status_enum,
cai.verification_status_enum,
cai.practitioner_id,
cai.check_practitioner_id
FROM wor_service_request AS wsr
LEFT JOIN med_medication_request AS mmr ON mmr.ID = wsr.based_on_id
AND mmr.delete_flag = '0'
AND mmr.status_enum = #{requestStatus}
LEFT JOIN med_medication_definition AS mmd ON mmd.ID = mmr.medication_id
AND mmd.delete_flag = '0'
LEFT JOIN cli_allergy_intolerance AS cai ON cai.request_id = wsr.ID
AND cai.delete_flag = '0'
LEFT JOIN med_medication_dispense AS mmdi ON mmr.id = mmdi.med_req_id
WHERE wsr.delete_flag = '0'
AND wsr.status_enum = #{requestStatus}
AND wsr.activity_id = #{activityId}
AND wsr.encounter_id = #{encounterId}
</select>
<select id="getMedLotNumber" resultType="com.openhis.web.outpatientmanage.dto.SkinTestMedLotNumberDto">
SELECT wii.item_id AS medication_id,
aser.NAME AS supplier_name,
wii.lot_number
FROM wor_inventory_item AS wii
LEFT JOIN adm_supplier AS aser ON aser.ID = wii.supplier_id
WHERE wii.delete_flag = '0'
AND wii.item_table = #{itemTable}
GROUP BY wii.item_id,
aser.NAME,
wii.lot_number
</select>
</mapper>

View File

@@ -2,153 +2,98 @@
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.openhis.web.patientmanage.mapper.PatientManageMapper">
<!-- 病人信息相关查询-->
<select id="getPatientPage" resultType="com.openhis.web.patientmanage.dto.PatientInformationDto">
SELECT
T1.tenant_id,
T1.id,
T1.active_flag,
T1.temp_flag,
T1.name,
T1.name_json,
T1.bus_no,
T1.gender_enum,
T1.birth_date,
T1.deceased_date,
T1.marital_status_enum,
T1.prfs_enum,
T1.phone,
T1.address,
T1.address_province,
T1.address_city,
T1.address_district,
T1.address_street,
T1.address_json,
T1.nationality_code,
T1.id_card,
T1.py_str,
T1.wb_str,
T1.blood_abo,
T1.blood_rh,
T1.work_company,
T1.native_place,
T1.country_code,
T1.link_name,
T1.link_relation_code,
T1.link_telcom,
T1.link_jsons,
T1.organization_id,
T1.create_time,
T1.type_code,
T1.organization_name
FROM
(
SELECT
pt.tenant_id,
pt.id,
pt.active_flag,
pt.temp_flag,
pt.name,
pt.name_json,
pt.bus_no,
pt.gender_enum,
pt.birth_date,
pt.deceased_date,
pt.marital_status_enum,
pt.prfs_enum,
pt.phone,
pt.address,
pt.address_province,
pt.address_city,
pt.address_district,
pt.address_street,
pt.address_json,
pt.nationality_code,
pt.id_card,
pt.py_str,
pt.wb_str,
pt.blood_abo,
pt.blood_rh,
pt.work_company,
pt.native_place,
pt.country_code,
pt.link_name,
pt.link_relation_code,
pt.link_telcom,
pt.link_jsons,
pt.organization_id,
pt.create_time,
api.type_code,
ogt.name as organization_name
FROM adm_patient pt
LEFT JOIN adm_organization ogt ON pt.organization_id = ogt.id
LEFT JOIN adm_patient_identifier api ON pt.id = api.patient_id
ORDER BY pt.bus_no DESC
) AS T1
<select id="getPatientPage" resultType="com.openhis.web.patientmanage.dto.PatientBaseInfoDto">
SELECT T1.tenant_id,
T1.id,
T1.active_flag,
T1.temp_flag,
T1.name,
T1.name_json,
T1.bus_no,
T1.gender_enum,
T1.birth_date,
T1.deceased_date,
T1.marital_status_enum,
T1.prfs_enum,
T1.phone,
T1.address,
T1.address_province,
T1.address_city,
T1.address_district,
T1.address_street,
T1.address_json,
T1.nationality_code,
T1.id_card,
T1.py_str,
T1.wb_str,
T1.blood_abo,
T1.blood_rh,
T1.work_company,
T1.native_place,
T1.country_code,
T1.link_name,
T1.link_relation_code,
T1.link_telcom,
T1.link_jsons,
T1.organization_id,
T1.create_time
FROM (
SELECT pt.tenant_id,
pt.id,
pt.active_flag,
pt.temp_flag,
pt.name,
pt.name_json,
pt.bus_no,
pt.gender_enum,
pt.birth_date,
pt.deceased_date,
pt.marital_status_enum,
pt.prfs_enum,
pt.phone,
pt.address,
pt.address_province,
pt.address_city,
pt.address_district,
pt.address_street,
pt.address_json,
pt.nationality_code,
pt.id_card,
pt.py_str,
pt.wb_str,
pt.blood_abo,
pt.blood_rh,
pt.work_company,
pt.native_place,
pt.country_code,
pt.link_name,
pt.link_relation_code,
pt.link_telcom,
pt.link_jsons,
pt.organization_id,
pt.create_time
FROM adm_patient pt
where pt.delete_flag = '0'
ORDER BY pt.bus_no DESC
) AS T1
${ew.customSqlSegment}
</select>
<!-- 查询医生名字列表-->
<select id="getDoctorNames" resultType ="java.lang.String">
SELECT MIN(p.name) AS practitioner_name
FROM adm_encounter_participant ep
LEFT JOIN adm_practitioner p ON ep.practitioner_id = p.id
WHERE ep.type_code = '1'
GROUP BY ep.practitioner_id
HAVING MIN(p.name) IS NOT NULL;
<select id="getPatientIdInfo" resultType="com.openhis.web.patientmanage.dto.PatientIdInfoDto">
SELECT patient_id,
type_code,
identifier_no,
start_time,
end_time
FROM adm_patient_identifier
WHERE delete_flag = '0'
<if test="patientIdList != null and !patientIdList.isEmpty()">
AND patient_id IN
<foreach collection="patientIdList" item="itemId" open="(" separator="," close=")">
#{itemId}
</foreach>
</if>
</select>
<!-- 门诊记录相关查询-->
<select id="getOutpatientRecord" parameterType="com.openhis.web.patientmanage.dto.OutpatientRecordSearchParam"
resultType="com.openhis.web.patientmanage.dto.OutpatientRecordDto">
SELECT
T1.tenant_id,
T1.name,
T1.id_card,
T1.description,
T1.patient_bus_no,
T1.encounter_bus_no,
T1.gender_enum,
T1.encounter_time,
T1.subject_status_enum,
T1.organization_name,
T1.doctor_name,
T1.phone,
T1.start_time
FROM
(
SELECT
e.tenant_id,
pt.name,
pt.id_card,
ccd.name AS description,
pt.bus_no as patient_bus_no,
e.bus_no as encounter_bus_no,
pt.gender_enum,
e.reception_time as encounter_time,
e.subject_status_enum,
ogt.name as organization_name,
pt.phone,
e.start_time,
(SELECT pra.name
FROM adm_encounter_participant ep
LEFT JOIN adm_practitioner pra ON ep.practitioner_id = pra.id
WHERE ep.encounter_id = e.id
AND ep.type_code = #{typeCode} --就诊参与者身份类型是1:接诊医生
ORDER BY ep.create_time DESC
LIMIT 1
) AS doctor_name--门诊医生
FROM
adm_encounter e
LEFT JOIN
adm_organization ogt ON e.organization_id = ogt.id
LEFT JOIN
adm_patient pt ON e.patient_id = pt.id
LEFT JOIN adm_encounter_diagnosis ed ON e.id = ed.encounter_id
LEFT JOIN cli_condition c ON ed.condition_id = c.id
LEFT JOIN cli_condition_definition ccd ON c.definition_id = ccd.id
) AS T1
${ew.customSqlSegment}
</select>
</mapper>

View File

@@ -71,7 +71,11 @@
SELECT DISTINCT T1.id AS payer_id, --患者id
T1.name AS payer, --患者姓名
T1.bus_no AS case_number, --患者院内编码/病历号
T1.gender_enum, --性别
T1.gender_enum,
case T1.gender_enum when 0 then '男'
when 1 then '女'
else '未说明' end --性别
AS gender_enum_enumText,
T1.birth_date, --出生日期
T1.phone AS tel, --电话
T1.id_card AS card_no, --身份证号

View File

@@ -126,4 +126,129 @@
${ew.customSqlSegment}
ORDER BY T10.supply_bus_no DESC
</select>
<select id="excelInboundReportPage"
resultType="com.openhis.web.reportmanage.dto.InboundReportPageDto">
SELECT T10.supply_bus_no, --单据号
T10.name, --药品名称
T10.bus_no, --药品编码
T10.lot_number, --批次号
T10.purpose_location_id, --目的仓库ID
T10.location_name, --仓库名称
T10.location_store_name, --货位名称
T10.unit_code, --计量单位
T10.quantity, --采购数量
T10.price, --采购单价
T10.total_price AS total_price, --采购金额(总价)
T10.sale_price, --售价
T10.sale_price * T10.quantity AS total_sale_price, --售价金额(总价)
T10.supplier_id, --供应商id
T10.supplier, --供应商
T10.approver_id, --审核人
T10.occurrence_time, --制单日期
T10.approval_time, --审核日期
T10.tenant_id -- 租户ID
FROM (SELECT T1.bus_no AS supply_bus_no, --单据号
T2.name, --药品名称
T2.bus_no, --药品编码
T1.lot_number, --批次号
T1.purpose_location_id, -- 目的仓库ID
T7.name AS location_name, --仓库名称
T8.name AS location_store_name, --货位名称
T1.unit_code, --计量单位
T1.item_quantity AS quantity, --采购数量
T4.amount AS price, --采购单价
T1.total_price, --采购金额(总价)
T4.amount AS sale_price, --售价
T2.part_percent, --拆零比
T1.supplier_id, --供应商id
T9.name AS supplier, --供应商
T1.approver_id, --审核人
T1.occurrence_time, --制单日期
T1.approval_time, --审核日期
T1.tenant_id -- 租户ID
FROM wor_supply_request AS T1
INNER JOIN wor_supply_delivery AS T14
ON T14.request_id = T1.id
AND T14.status_enum = #{deliveryStatus}
AND T14.delete_flag = '0'
LEFT JOIN med_medication_definition AS T2
ON T2.id = T1.item_id
AND T2.delete_flag = '0'
LEFT JOIN adm_charge_item_definition AS T3
ON T3.instance_id = T1.item_id
AND T3.delete_flag = '0'
LEFT JOIN adm_charge_item_def_detail AS T4
ON T4.definition_id = T3.id
AND T4.delete_flag = '0'
AND T4.condition_value = T1.lot_number
AND T4.condition_code = '1'--1:批号进价
LEFT JOIN med_medication AS T5
ON T5.medication_def_id = T2.id
AND T5.delete_flag = '0'
LEFT JOIN adm_location AS T7
ON T7.id = T1.purpose_location_id
AND T7.delete_flag = '0'
LEFT JOIN adm_location AS T8
ON T8.id = T1.purpose_location_store_id
AND T8.delete_flag = '0'
LEFT JOIN adm_supplier AS T9
ON T9.id = T1.supplier_id
AND T9.delete_flag = '0'
WHERE T1.delete_flag = '0'
AND T1.type_enum = #{purchaseInventory}
AND T1.status_enum = #{supplyStatus}
AND T1.item_table = #{medicationTableName}
UNION
SELECT T1.bus_no AS supply_bus_no, --单据号
T11.name, --器材名称
T11.bus_no, --器材编码
T1.lot_number, --批次号
T1.purpose_location_id, -- 目的仓库ID
T7.name AS location_name, --仓库名称
T8.name AS location_store_name, --货位名称
T1.unit_code, --计量单位
T1.item_quantity AS quantity, --采购数量
T4.amount AS price, --采购单价
T1.total_price, --采购金额(总价)
T4.amount AS sale_price, --售价
T11.part_percent, --拆零比
T1.supplier_id, --供应商id
T9.name AS supplier, --供应商
T1.approver_id, --审核人
T1.occurrence_time, --制单日期
T1.approval_time, --审核日期
T1.tenant_id -- 租户ID
FROM wor_supply_request AS T1
INNER JOIN wor_supply_delivery AS T14
ON T14.request_id = T1.id
AND T14.status_enum = #{deliveryStatus}
AND T14.delete_flag = '0'
LEFT JOIN adm_device_definition AS T11
ON T11.id = T1.item_id
AND T11.delete_flag = '0'
LEFT JOIN adm_charge_item_definition AS T3
ON T3.instance_id = T1.item_id
AND T3.delete_flag = '0'
LEFT JOIN adm_charge_item_def_detail AS T4
ON T4.definition_id = T3.id
AND T4.delete_flag = '0'
AND T4.condition_value = T1.lot_number
AND T4.condition_code = '1'--1:批号进价
LEFT JOIN adm_location AS T7
ON T7.id = T1.purpose_location_id
AND T7.delete_flag = '0'
LEFT JOIN adm_location AS T8
ON T8.id = T1.purpose_location_store_id
AND T8.delete_flag = '0'
LEFT JOIN adm_supplier AS T9
ON T9.id = T1.supplier_id
AND T9.delete_flag = '0'
WHERE T1.delete_flag = '0'
AND T1.type_enum = #{purchaseInventory}
AND T1.status_enum = #{supplyStatus}
AND T1.item_table = #{deviceTableName}) AS T10
${ew.customSqlSegment}
ORDER BY T10.supply_bus_no DESC
</select>
</mapper>

View File

@@ -107,4 +107,110 @@
${ew.customSqlSegment}
ORDER BY T9.supply_bus_no DESC
</select>
<select id="excelLossReportPage"
resultType="com.openhis.web.reportmanage.dto.LossReportPageDto">
SELECT T9.bus_no, --编码
T9.name, --名称
T9.total_volume, --规格
T9.manufacturer_text, --厂家
T9.lot_number, --产品批号
T9.location_name, --目的仓库
T9.unit_code, --小单位
T9.item_quantity, --数量
T9.approval_time, --审批时间
T9.supply_bus_no,--单据号
T9.purpose_location_id,-- 目的仓库id
T9.price,--采购单价
T9.location_store_name,--仓库货位
T9.total_price,--报损金额
T9.name AS supplier,--供应商
T9.approver_id, --审核人
T9.occurrence_time, --制单日期
T9.tenant_id -- 租户ID
FROM (SELECT T2.bus_no, --编码
T2.name, --名称
T3.total_volume, --规格
T2.manufacturer_text, --厂家
T1.lot_number, --产品批号
T5.name AS location_name, --目的仓库
T1.unit_code, --单位
T1.item_quantity, --数量
T1.approval_time, --审批时间
T1.bus_no AS supply_bus_no,--单据号
T1.purpose_location_id,-- 目的仓库id
T1.price,--采购单价
T4.name AS location_store_name,--仓库货位
T1.total_price,--报损金额
T9.name AS supplier,--供应商
T1.approver_id, --审核人
T1.occurrence_time, --制单日期
T1.tenant_id -- 租户ID
FROM wor_supply_request AS T1
INNER JOIN wor_supply_delivery AS T8
ON T8.request_id = T1.id
AND T8.status_enum = #{deliveryStatus}
AND T8.delete_flag = '0'
LEFT JOIN med_medication_definition AS T2
ON T1.item_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 adm_location T5
ON T1.purpose_location_id = T5.id
AND T5.delete_flag = '0'
LEFT JOIN adm_location AS T4
ON T4.id = T1.purpose_location_store_id
AND T4.delete_flag = '0'
LEFT JOIN adm_supplier AS T9
ON T9.id = T1.supplier_id
AND T9.delete_flag = '0'
WHERE T1.type_enum = #{lossReport}
AND T1.status_enum = #{supplyStatus}
AND T1.item_table = #{medicationTableName}
AND T1.delete_flag = '0'
UNION
SELECT T6.bus_no, --编码
T6.name, --名称
T6.size AS total_volume, --规格(器材规格)
T6.manufacturer_text, --厂家
T1.lot_number, --产品批号
T5.name AS location_name, --目的仓库
T1.unit_code, --单位
T1.item_quantity, --数量
T1.approval_time, --审批时间
T1.bus_no AS supply_bus_no,--单据号
T1.purpose_location_id,-- 目的仓库id
T1.price,--采购单价
T4.name AS location_store_name,--仓库货位
T1.total_price,--报损金额
T9.name AS supplier,--供应商
T1.approver_id, --审核人
T1.occurrence_time, --制单日期
T1.tenant_id -- 租户ID
FROM wor_supply_request AS T1
INNER JOIN wor_supply_delivery AS T8
ON T8.request_id = T1.id
AND T8.status_enum = #{deliveryStatus}
AND T8.delete_flag = '0'
LEFT JOIN adm_device_definition AS T6
ON T1.item_id = T6.id
AND T6.delete_flag = '0'
LEFT JOIN adm_location T5
ON T1.purpose_location_id = T5.id
AND T5.delete_flag = '0'
LEFT JOIN adm_location AS T4
ON T4.id = T1.purpose_location_store_id
AND T4.delete_flag = '0'
LEFT JOIN adm_supplier AS T9
ON T9.id = T1.supplier_id
AND T9.delete_flag = '0'
WHERE T1.type_enum = #{lossReport}
AND T1.status_enum = #{supplyStatus}
AND T1.item_table = #{deviceTableName}
AND T1.delete_flag = '0') AS T9
${ew.customSqlSegment}
ORDER BY T9.supply_bus_no DESC
</select>
</mapper>

View File

@@ -0,0 +1,46 @@
<?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.reportmanage.mapper.MedicationInboundReportMapper">
<select id="getMedicationInboundPage" resultType="com.openhis.web.reportmanage.dto.MedicationInboundReportDto">
SELECT ii.medication_id, --药品id
ii.NAME, --药品名称
ii.py_str, --拼音码
ii.wb_str, --五笔码
ii.yb_no, --医保编码
ii.bus_no, --药品编号
ii.total_price, --总价
ii.item_quantity, --数量
ii.unit_code, --单位
ii.min_unit_code, --最小单位
ii.part_percent, --拆零比
ii.occurrence_time --发放时间
FROM (SELECT T1.tenant_id,
T3.ID AS medication_id,
T3.NAME,
T3.py_str,
T3.wb_str,
T3.yb_no,
T3.bus_no,
T1.total_price,
T1.item_quantity,
T1.unit_code,
T3.min_unit_code,
T3.part_percent,
T2.occurrence_time
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 T2.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'
WHERE T1.delete_flag = '0'
AND T1.status_enum = #{requestStatus}
AND T2.status_enum = #{dispenseStatus}
AND T1.type_enum = #{typeStatus}
AND T1.item_table = #{medMedicationDefinition}) AS ii
${ew.customSqlSegment}
</select>
</mapper>

View File

@@ -131,4 +131,134 @@
${ew.customSqlSegment}
ORDER BY T10.supply_bus_no DESC
</select>
<select id="excelOutboundReportPage"
resultType="com.openhis.web.reportmanage.dto.OutboundReportPageDto">
select T10.supply_bus_no, --单据号
T10.name, --药品名称
T10.bus_no, --编码
T10.lot_number, --批号
T10.source_location_id, -- 源仓库ID(存放仓库)
T10.source_location_name, -- 源仓库(存放仓库)
T10.source_location_store_id, -- 源仓位ID
T10.source_location_store_name, -- 源仓位
T10.purpose_location_id, -- 目的仓库ID(领用科室)
T10.purpose_location_name, -- 目的仓库(领用科室)
T10.unit_code, --计量单位
T10.item_quantity, --数量
T10.purchase_price, --采购单价
T10.price, --领用单价
T10.total_price, --金额
T10.supplier_id, --供应商
T10.approver_id, --审核人
T10.approval_time, --审批时间
T10.occurrence_time, --制单日期
T10.remake, --出库原因
T10.tenant_id -- 租户ID
from (
select T1.bus_no as supply_bus_no, --单据号
T3.name, --药品名称
T3.bus_no, --编码
T1.lot_number, --批号
T1.source_location_id, -- 源仓库ID
T4.name AS source_location_name, -- 源仓库
T1.source_location_store_id, -- 源仓位ID
T5.name AS source_location_store_name, -- 源仓位
T1.purpose_location_id, -- 目的仓库ID
T8.name AS purpose_location_name, -- 目的仓库(领用科室)
T1.unit_code, --计量单位
T1.item_quantity, --数量
T7.amount as purchase_price, --采购单价
T1.price, --领用单价
T1.total_price, --金额
T1.supplier_id, --供应商
T1.approver_id, --审核人
T1.approval_time, --审批时间
T1.occurrence_time, --制单日期
T1.remake, --出库原因(备注)
T1.tenant_id -- 租户ID
from wor_supply_request as T1
inner join wor_supply_delivery as T2
on T1.id = T2.request_id
and T2.status_enum = #{deliveryStatus}
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 adm_location T4
on T1.source_location_id = T4.id
and T4.delete_flag = '0'
left join adm_location T5
on T1.source_location_store_id = T5.id
and T5.delete_flag = '0'
left join adm_charge_item_definition as T6
on T3.id = T6.instance_id
and T6.delete_flag = '0'
left join adm_charge_item_def_detail as T7
on T6.id = T7.definition_id
and T7.delete_flag = '0'
AND T7.condition_value = T1.lot_number
AND T7.condition_code = '1'--1:批号进价
left join adm_organization T8
on T1.purpose_location_id = T8.id
and T8.delete_flag = '0'
where T1.delete_flag = '0'
and T1.type_enum = #{issueInventory}
and T1.status_enum = #{supplyStatus}
and T1.item_table = #{medicationTableName}
union
select T1.bus_no as supply_bus_no, --单据号
T3.name, --药品名称
T3.bus_no, --编码
T1.lot_number, --批号
T1.source_location_id, -- 源仓库ID
T4.name AS source_location_name, -- 源仓库
T1.source_location_store_id, -- 源仓位ID
T5.name AS source_location_store_name, -- 源仓位
T1.purpose_location_id, -- 目的仓库ID
T8.name AS purpose_location_name, -- 目的仓库(领用科室)
T1.unit_code, --计量单位
T1.item_quantity, --数量
T7.amount as purchase_price, --采购单价
T1.price, --领用单价
T1.total_price, --金额
T1.supplier_id, --供应商
T1.approver_id, --审核人
T1.approval_time, --审批时间
T1.occurrence_time, --制单日期
T1.remake, --出库原因
T1.tenant_id -- 租户ID
from wor_supply_request as T1
inner join wor_supply_delivery as T2
on T1.id = T2.request_id
and T2.status_enum = #{deliveryStatus}
and T2.delete_flag = '0'
inner join adm_device_definition as T3
on T1.item_id = T3.id
and T3.delete_flag = '0'
left join adm_location T4
on T1.source_location_id = T4.id
and T4.delete_flag = '0'
left join adm_location T5
on T1.source_location_store_id = T5.id
and T5.delete_flag = '0'
left join adm_charge_item_definition as T6
on T3.id = T6.instance_id
and T6.delete_flag = '0'
left join adm_charge_item_def_detail as T7
on T6.id = T7.definition_id
and T7.delete_flag = '0'
AND T7.condition_value = T1.lot_number
AND T7.condition_code = '1'--1:批号进价
left join adm_organization T8
on T1.purpose_location_id = T8.id
and T8.delete_flag = '0'
where T1.delete_flag = '0'
and T1.type_enum = #{issueInventory}
and T1.status_enum = #{supplyStatus}
and T1.item_table = #{deviceTableName}
) as T10
${ew.customSqlSegment}
ORDER BY T10.supply_bus_no DESC
</select>
</mapper>

View File

@@ -0,0 +1,191 @@
<?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.reportmanage.mapper.ReportMapper">
<!--患者明细报表-->
<select id="selectPatientDetailsPage"
resultType="com.openhis.web.reportmanage.dto.ReportPatientDetailsDto">
SELECT T6.tenant_id,
T6.encounter_bus_no,
T6.med_name,
T6.med_yb_no,
T6.category_code,
T6.dose_form_code,
T6.total_volume,
T6.package_unit,
T6.unit_code,
T6.is_selected,
T6.manufacturer_text,
T6.price,
T6.quantity,
T6.total_price
FROM (SELECT T1.tenant_id,
T2.bus_no AS encounter_bus_no,--门诊住院号
T4.name AS med_name,--药品通用名
T4.yb_no AS med_yb_no,--药品医保编码
T4.category_code AS category_code,--药品类别
T5.dose_form_code AS dose_form_code,--剂型
T5.total_volume AS total_volume,--规格
T4.unit_code AS package_unit,--包装
T1.quantity_unit AS unit_code,--计价单位
'' AS is_selected,--是否中选产品
T4.manufacturer_text AS manufacturer_text,--生产企业
T1.unit_price AS price,--单价(元)
T1.quantity_value AS quantity,--使用数量(片袋支)
T1.total_price AS total_price--使用总金额(元)
FROM adm_charge_item T1
LEFT JOIN adm_encounter T2 ON T1.encounter_id = T2.id
AND T2.delete_flag = '0'
LEFT JOIN med_medication_request T3 ON T1.service_id = T3.id
AND T3.delete_flag = '0'
LEFT JOIN med_medication_definition T4 ON T3.medication_id = T4.id
AND T4.delete_flag = '0'
LEFT JOIN med_medication T5 ON T4.id = T5.medication_def_id
AND T5.delete_flag = '0'
WHERE T1.service_table = #{medicationTableName}
AND T1.delete_flag = '0'
) AS T6
${ew.customSqlSegment}
</select>
<select id="selectMedicationInboundDetailsPage"
resultType="com.openhis.web.reportmanage.dto.ReportMedicationInboundDetailsDto">
SELECT T2.med_name AS product_name,
T2.unit_label,
T2.min_unit_label AS min_unit,
T2.item_quantity,
T2.total_quantity,
T2.part_percent
FROM (SELECT T1.bus_no,
T4.NAME AS med_name,
T1.item_quantity,
T1.total_quantity,
sdd.dict_label AS unit_label,
sdd1.dict_label AS min_unit_label,
T4.part_percent
FROM wor_supply_request AS T1
LEFT JOIN med_medication_definition T4 ON T1.item_id = T4.ID
AND T4.delete_flag = '0'
LEFT JOIN sys_dict_data sdd ON sdd.dict_value = T4.unit_code
AND sdd.dict_type = 'unit_code'
LEFT JOIN sys_dict_data sdd1 ON sdd1.dict_value = T4.min_unit_code
AND sdd1.dict_type = 'unit_code'
WHERE T1.type_enum IN (#{transferCode}, #{batchTransferCode})
AND T1.source_location_id = #{sourceLocationId}
AND T1.purpose_location_id = #{purposeLocationId}
AND T1.occurrence_time BETWEEN #{startTime} AND #{endTime}
GROUP BY T1.bus_no,
T4.NAME,
T1.item_quantity,
T1.total_quantity,
sdd.dict_label,
sdd1.dict_label,
T4.part_percent,
T4.unit_code,
T4.min_unit_code
ORDER BY T1.bus_no DESC) AS T2
</select>
<!--患者明细主表做成-->
<select id="selectPatientMasterDetailPage"
resultType="com.openhis.web.reportmanage.dto.ReportPatientMasterDetailDto">
SELECT T7.tenant_id,
T7.encounter_bus_no,
T7.patient_name,
T7.id_card,
T7.psn_no,--人员编码
T7.insu_plc_no,--参保地区编码
T7.yb_type,
T7.encounter_start_time,
T7.encounter_end_time,
T7.issue_time,--处方日期
T7.out_diagnose_name,--出院诊断
T7.fee_amount,
T7.inscp_scp_amt,--政策范围内
T7.tc_pay_amount--基本医保统筹支付金额(元)
FROM (SELECT T1.tenant_id,
T2.bus_no AS encounter_bus_no,
T3.name AS patient_name,
T3.id_card AS id_card,
'' AS psn_no,--人员编码
'' AS insu_plc_no,--参保地区编码
T5.contract_name AS yb_type,--参保类型
T2.start_time AS encounter_start_time,
T2.end_time AS encounter_end_time,
MAX(T6.issue_time ) AS issue_time,--处方日期
'' AS out_diagnose_name,--出院诊断
SUM(T1.total_price) AS fee_amount,--总费用(元)
NULL AS inscp_scp_amt,--政策范围内
NULL AS tc_pay_amount--基本医保统筹支付金额(元)
FROM adm_charge_item T1
LEFT JOIN adm_encounter T2 ON T1.encounter_id = T2.id
AND T2.delete_flag = '0'
LEFT JOIN adm_patient T3 ON T1.patient_id = T3.id
AND T3.delete_flag = '0'
LEFT JOIN adm_account T4 ON T1.encounter_id = T4.encounter_id
AND T4.delete_flag = '0'
LEFT JOIN fin_contract T5 ON T4.contract_no = T5.bus_no
AND T5.delete_flag = '0'
LEFT JOIN elep_medication_request T6 ON T1.prescription_no = T6.prescription_no
AND T6.delete_flag = '0'
WHERE T2.class_enum = #{encounterClass}--住院
AND T1.delete_flag = '0'
GROUP BY
T1.tenant_id,
T2.bus_no,
T3.name,
T3.id_card,
T2.start_time,
T2.end_time,
T5.contract_name
) AS T7
${ew.customSqlSegment}
</select>
<select id="selectMedicationUsagePage"
resultType="com.openhis.web.reportmanage.dto.ReportMedicationUsageDto">
SELECT
mmde.yb_no AS national_drugCode,
md.medication_def_id AS bus_no,
mmde.name AS item_name,
SUM(aci.total_price) AS total_sales_price,
SUM(CASE
WHEN mmdi.unit_code = mmde.min_unit_code THEN mmdi.dispense_quantity
WHEN mmdi.unit_code = mmde.unit_code THEN mmdi.dispense_quantity * mmde.part_percent
ELSE 0
END) AS package_sales_quantity,
SUM(CASE
WHEN mmdi.unit_code = mmde.unit_code THEN mmdi.dispense_quantity
WHEN mmdi.unit_code = mmde.min_unit_code THEN mmdi.dispense_quantity / mmde.part_percent
ELSE 0
END) AS dosage_sales_quantity,
mmde.min_unit_code AS unit_code,
md.tenant_id
FROM med_medication md
INNER JOIN med_medication_definition mmde
ON md.medication_def_id = mmde.id
AND mmde.delete_flag = '0'
INNER JOIN med_medication_dispense mmdi
ON md.medication_def_id = mmdi.medication_id
AND mmdi.status_enum = #{dispenseStatus}
AND mmdi.delete_flag = '0'
LEFT JOIN adm_charge_item aci
ON mmdi.encounter_id = aci.encounter_id
AND product_table = 'med_medication_definition'
AND aci.delete_flag = '0'
WHERE
md.delete_flag = '0'
<if test="searchKey != null">
AND mmde.name LIKE CONCAT('%', #{searchKey}, '%')
</if>
<if test="startTime != null">
AND mmdi.dispense_time >= CAST(#{startTime} AS timestamp with time zone)
</if>
<if test="endTime != null">
AND mmdi.dispense_time &gt;= CAST(#{endTime} AS timestamp with time zone)
</if>
GROUP BY
mmde.yb_no,
md.medication_def_id,
mmde.name,
mmde.min_unit_code,
md.tenant_id
</select>
</mapper>

View File

@@ -4,52 +4,52 @@
<select id="selectStocktakingReportPage"
resultType="com.openhis.web.reportmanage.dto.StocktakingReportPageDto">
SELECT T9.id, --ID
T9.bus_no, --编码
T9.name, --名称
T9.total_volume, --规格
T9.manufacturer_text, --厂家
T9.lot_number, --产品批号
T9.location_name, --目的仓库
T9.unit_code, --小单位
T9.item_quantity, --数量
T9.approval_time, --审批时间
SELECT T9.id, --ID
T9.bus_no, --编码
T9.name, --名称
T9.total_volume, --规格
T9.manufacturer_text, --厂家
T9.lot_number, --产品批号
T9.location_name, --目的仓库
T9.unit_code, --小单位
T9.item_quantity, --数量
T9.approval_time, --审批时间
T9.supply_bus_no,--单据号
T9.purpose_location_id,-- 目的仓库id
T9.price,--采购单价
T9.location_store_name,--仓库货位
T9.total_price,--报损金额
T9.name AS supplier,--供应商
T9.approver_id, --审核人
T9.occurrence_time, --制单日期
T9.tenant_id -- 租户ID
FROM (SELECT T1.id, --ID
T2.bus_no, --编码
T2.name, --名称
T3.total_volume, --规格
T2.manufacturer_text, --厂家
T1.lot_number, --产品批号
T5.name AS location_name, --目的仓库
T1.unit_code, --小单位
T1.item_quantity, --盈亏数量
T9.profit_loss_price,
T9.name AS supplier,--供应商
T9.approver_id, --审核人
T9.occurrence_time, --制单日期
T9.tenant_id -- 租户ID
FROM (SELECT T1.id, --ID
T2.bus_no, --编码
T2.name, --名称
T3.total_volume, --规格
T2.manufacturer_text, --厂家
T1.lot_number, --产品批号
T5.name AS location_name, --目的仓库
T1.unit_code, --小单位
T1.item_quantity, --盈亏数量
T1.approval_time, --审批时间
T1.bus_no AS supply_bus_no,--单据号
T1.bus_no AS supply_bus_no,--单据号
T1.purpose_location_id,-- 目的仓库id
T1.price,--采购单价
T4.name AS location_store_name,--仓库货位
T1.total_price,--报损金额
T9.name AS supplier,--供应商
T1.approver_id, --审核人
T1.occurrence_time, --制单日期
T1.tenant_id -- 租户ID
T4.name AS location_store_name,--仓库货位
T1.profit_loss_price,
T9.name AS supplier,--供应商
T1.approver_id, --审核人
T1.occurrence_time, --制单日期
T1.tenant_id -- 租户ID
FROM wor_supply_request AS T1
INNER JOIN wor_supply_delivery AS T8
ON T8.request_id = T1.id
AND T8.status_enum = #{deliveryStatus}
AND T8.delete_flag = '0'
LEFT JOIN med_medication_definition AS T2
ON T1.item_id = T2.id
AND T2.delete_flag = '0'
ON T1.item_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'
@@ -67,33 +67,33 @@
AND T1.item_table = #{medicationTableName}
AND T1.delete_flag = '0'
UNION
SELECT T1.id, --ID
T6.bus_no, --编码
T6.name, --名称
T6.size AS total_volume, --规格(器材规格)
T6.manufacturer_text, --厂家
T1.lot_number, --产品批号
T5.name AS location_name, --目的仓库
T1.unit_code, --小单位
T1.item_quantity, --盈亏数量
T1.approval_time, --审批时间
T1.bus_no AS supply_bus_no,--单据号
SELECT T1.id, --ID
T6.bus_no, --编码
T6.name, --名称
T6.size AS total_volume, --规格(器材规格)
T6.manufacturer_text, --厂家
T1.lot_number, --产品批号
T5.name AS location_name, --目的仓库
T1.unit_code, --小单位
T1.item_quantity, --盈亏数量
T1.approval_time, --审批时间
T1.bus_no AS supply_bus_no,--单据号
T1.purpose_location_id,-- 目的仓库id
T1.price,--采购单价
T4.name AS location_store_name,--仓库货位
T1.total_price,--报损金额
T9.name AS supplier,--供应商
T1.approver_id, --审核人
T1.occurrence_time, --制单日期
T1.tenant_id -- 租户ID
T4.name AS location_store_name,--仓库货位
T1.profit_loss_price,
T9.name AS supplier,--供应商
T1.approver_id, --审核人
T1.occurrence_time, --制单日期
T1.tenant_id -- 租户ID
FROM wor_supply_request AS T1
INNER JOIN wor_supply_delivery AS T8
ON T8.request_id = T1.id
AND T8.status_enum = #{deliveryStatus}
AND T8.delete_flag = '0'
LEFT JOIN adm_device_definition AS T6
ON T1.item_id = T6.id
AND T6.delete_flag = '0'
ON T1.item_id = T6.id
AND T6.delete_flag = '0'
LEFT JOIN adm_location T5
ON T1.purpose_location_id = T5.id
AND T5.delete_flag = '0'
@@ -113,44 +113,44 @@
<select id="selectAutoStocktakingReportPage"
resultType="com.openhis.web.reportmanage.dto.StocktakingReportPageDto">
SELECT T9.id, --ID
T9.bus_no, --编码
T9.name, --名称
T9.total_volume, --规格
T9.manufacturer_text, --厂家
T9.lot_number, --产品批号
T9.location_name, --目的仓库
T9.unit_code, --小单位
T9.item_quantity, --数量
T9.approval_time, --审批时间
SELECT T9.id, --ID
T9.bus_no, --编码
T9.name, --名称
T9.total_volume, --规格
T9.manufacturer_text, --厂家
T9.lot_number, --产品批号
T9.location_name, --目的仓库
T9.unit_code, --小单位
T9.item_quantity, --数量
T9.approval_time, --审批时间
T9.supply_bus_no,--单据号
T9.purpose_location_id,-- 目的仓库id
T9.price,--采购单价
T9.location_store_name,--仓库货位
T9.total_price,--报损金额
T9.name AS supplier,--供应商
T9.approver_id, --审核人
T9.occurrence_time, --制单日期
T9.tenant_id -- 租户ID
FROM (SELECT T1.id, --ID
T2.bus_no, --编码
T2.name, --名称
T3.total_volume, --规格
T2.manufacturer_text, --厂家
T1.lot_number, --产品批号
T5.name AS location_name, --目的仓库
T1.unit_code, --小单位
T1.item_quantity, --盈亏数量
T9.name AS supplier,--供应商
T9.approver_id, --审核人
T9.occurrence_time, --制单日期
T9.tenant_id -- 租户ID
FROM (SELECT T1.id, --ID
T2.bus_no, --编码
T2.name, --名称
T3.total_volume, --规格
T2.manufacturer_text, --厂家
T1.lot_number, --产品批号
T5.name AS location_name, --目的仓库
T1.unit_code, --小单位
T1.item_quantity, --盈亏数量
T1.approval_time, --审批时间
T1.bus_no AS supply_bus_no,--单据号
T1.bus_no AS supply_bus_no,--单据号
T1.purpose_location_id,-- 目的仓库id
T1.price,--采购单价
T4.name AS location_store_name,--仓库货位
T4.name AS location_store_name,--仓库货位
T1.total_price,--报损金额
T9.name AS supplier,--供应商
T1.approver_id, --审核人
T1.occurrence_time, --制单日期
T1.tenant_id -- 租户ID
T9.name AS supplier,--供应商
T1.approver_id, --审核人
T1.occurrence_time, --制单日期
T1.tenant_id -- 租户ID
FROM wor_aut_supply_request AS T1
LEFT JOIN med_medication_definition AS T2
ON T1.item_id = T2.id
@@ -173,25 +173,25 @@
AND T1.delete_flag = '0'
AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') = #{time}
UNION
SELECT T1.id, --ID
T6.bus_no, --编码
T6.name, --名称
T6.size AS total_volume, --规格(器材规格)
T6.manufacturer_text, --厂家
T1.lot_number, --产品批号
T5.name AS location_name, --目的仓库
T1.unit_code, --小单位
T1.item_quantity, --盈亏数量
T1.approval_time, --审批时间
T1.bus_no AS supply_bus_no,--单据号
SELECT T1.id, --ID
T6.bus_no, --编码
T6.name, --名称
T6.size AS total_volume, --规格(器材规格)
T6.manufacturer_text, --厂家
T1.lot_number, --产品批号
T5.name AS location_name, --目的仓库
T1.unit_code, --小单位
T1.item_quantity, --盈亏数量
T1.approval_time, --审批时间
T1.bus_no AS supply_bus_no,--单据号
T1.purpose_location_id,-- 目的仓库id
T1.price,--采购单价
T4.name AS location_store_name,--仓库货位
T4.name AS location_store_name,--仓库货位
T1.total_price,--报损金额
T9.name AS supplier,--供应商
T1.approver_id, --审核人
T1.occurrence_time, --制单日期
T1.tenant_id -- 租户ID
T9.name AS supplier,--供应商
T1.approver_id, --审核人
T1.occurrence_time, --制单日期
T1.tenant_id -- 租户ID
FROM wor_aut_supply_request AS T1
LEFT JOIN adm_device_definition AS T6
ON T1.item_id = T6.id
@@ -212,4 +212,113 @@
AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') = #{time}) AS T9
ORDER BY T9.supply_bus_no DESC
</select>
<select id="excelStocktakingReportPage"
resultType="com.openhis.web.reportmanage.dto.StocktakingReportPageDto">
SELECT T9.id, --ID
T9.bus_no, --编码
T9.name, --名称
T9.total_volume, --规格
T9.manufacturer_text, --厂家
T9.lot_number, --产品批号
T9.location_name, --目的仓库
T9.unit_code, --小单位
T9.item_quantity, --数量
T9.approval_time, --审批时间
T9.supply_bus_no,--单据号
T9.purpose_location_id,-- 目的仓库id
T9.price,--采购单价
T9.location_store_name,--仓库货位
T9.profit_loss_price,
T9.name AS supplier,--供应商
T9.approver_id, --审核人
T9.occurrence_time, --制单日期
T9.tenant_id -- 租户ID
FROM (SELECT T1.id, --ID
T2.bus_no, --编码
T2.name, --名称
T3.total_volume, --规格
T2.manufacturer_text, --厂家
T1.lot_number, --产品批号
T5.name AS location_name, --目的仓库
T1.unit_code, --小单位
T1.item_quantity, --盈亏数量
T1.approval_time, --审批时间
T1.bus_no AS supply_bus_no,--单据号
T1.purpose_location_id,-- 目的仓库id
T1.price,--采购单价
T4.name AS location_store_name,--仓库货位
T1.profit_loss_price,
T9.name AS supplier,--供应商
T1.approver_id, --审核人
T1.occurrence_time, --制单日期
T1.tenant_id -- 租户ID
FROM wor_supply_request AS T1
INNER JOIN wor_supply_delivery AS T8
ON T8.request_id = T1.id
AND T8.status_enum = #{deliveryStatus}
AND T8.delete_flag = '0'
LEFT JOIN med_medication_definition AS T2
ON T1.item_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 adm_location T5
ON T1.purpose_location_id = T5.id
AND T5.delete_flag = '0'
LEFT JOIN adm_location AS T4
ON T4.id = T1.purpose_location_store_id
AND T4.delete_flag = '0'
LEFT JOIN adm_supplier AS T9
ON T9.id = T1.supplier_id
AND T9.delete_flag = '0'
WHERE T1.type_enum in (#{stocktakingReport}, #{stocktakingBatchReport})
AND T1.status_enum = #{supplyStatus}
AND T1.item_table = #{medicationTableName}
AND T1.delete_flag = '0'
UNION
SELECT T1.id, --ID
T6.bus_no, --编码
T6.name, --名称
T6.size AS total_volume, --规格(器材规格)
T6.manufacturer_text, --厂家
T1.lot_number, --产品批号
T5.name AS location_name, --目的仓库
T1.unit_code, --小单位
T1.item_quantity, --盈亏数量
T1.approval_time, --审批时间
T1.bus_no AS supply_bus_no,--单据号
T1.purpose_location_id,-- 目的仓库id
T1.price,--采购单价
T4.name AS location_store_name,--仓库货位
T1.profit_loss_price,
T9.name AS supplier,--供应商
T1.approver_id, --审核人
T1.occurrence_time, --制单日期
T1.tenant_id -- 租户ID
FROM wor_supply_request AS T1
INNER JOIN wor_supply_delivery AS T8
ON T8.request_id = T1.id
AND T8.status_enum = #{deliveryStatus}
AND T8.delete_flag = '0'
LEFT JOIN adm_device_definition AS T6
ON T1.item_id = T6.id
AND T6.delete_flag = '0'
LEFT JOIN adm_location T5
ON T1.purpose_location_id = T5.id
AND T5.delete_flag = '0'
LEFT JOIN adm_location AS T4
ON T4.id = T1.purpose_location_store_id
AND T4.delete_flag = '0'
LEFT JOIN adm_supplier AS T9
ON T9.id = T1.supplier_id
AND T9.delete_flag = '0'
WHERE T1.type_enum in (#{stocktakingReport}, #{stocktakingBatchReport})
AND T1.status_enum = #{supplyStatus}
AND T1.item_table = #{deviceTableName}
AND T1.delete_flag = '0') AS T9
${ew.customSqlSegment}
ORDER BY T9.supply_bus_no DESC
</select>
</mapper>

View File

@@ -125,4 +125,128 @@
${ew.customSqlSegment}
ORDER BY T6.supply_bus_no DESC
</select>
<select id="excelTransferReportPage"
resultType="com.openhis.web.reportmanage.dto.TransferReportPageDto">
SELECT T6.id,
T6.supply_bus_no, -- 商品调拨单据号
T6.name, -- 药品名称
T6.status_enum, -- 状态
T6.lot_number, -- 产品批号
T6.source_location_id, -- 源仓库ID
T6.source_location_name, -- 源仓库
T6.source_location_store_id, -- 源仓位ID
T6.source_location_store_name, -- 源仓位
T6.purpose_location_id, -- 目的仓库ID
T6.purpose_location_name, -- 目的仓库
T6.purpose_location_store_id, -- 目的货位ID
T6.purpose_location_store_name, -- 目的货位
T6.item_quantity, -- 调拨数量
T6.unit_code, -- 物品计量单位
T6.price, -- 采购单价
T6.total_price, -- 总价
T6.applicant_id, -- 申请人(制单人)
T6.approver_id, -- 审核人
T6.occurrence_time, -- 制单日期
T6.apply_time, -- 申请日期
T6.approval_time, -- 审批时间(调拨日期)
T6.tenant_id -- 租户ID
FROM (SELECT T1.id,
T1.bus_no AS supply_bus_no, -- 商品调拨单据号
T3.name, -- 药品名称
T1.status_enum, -- 状态
T1.lot_number, -- 产品批号
T1.source_location_id, -- 源仓库ID
T4.name AS source_location_name, -- 源仓库
T1.source_location_store_id, -- 源仓位ID
T5.name AS source_location_store_name, -- 源仓位
T1.purpose_location_id, -- 目的仓库ID
T9.name AS purpose_location_name, -- 目的仓库
T1.purpose_location_store_id, -- 目的货位ID
T10.name AS purpose_location_store_name, -- 目的货位
T1.item_quantity, -- 调拨数量
T1.unit_code, -- 物品计量单位
T1.price, -- 采购单价
T1.total_price, -- 总价
T1.applicant_id, -- 申请人(制单人)
T1.approver_id, -- 审核人
T1.occurrence_time, -- 制单日期
T1.apply_time, -- 申请日期
T1.approval_time, -- 审批时间(调拨日期)
T1.tenant_id -- 租户ID
FROM wor_supply_request T1
INNER JOIN wor_supply_delivery AS T2
ON T2.request_id = T1.id
AND T2.status_enum = #{deliveryStatus}
AND T2.delete_flag = '0'
LEFT JOIN med_medication_definition T3
ON T1.item_id = T3.id
AND T3.delete_flag = '0'
LEFT JOIN adm_location T4
ON T1.source_location_id = T4.id
AND T4.delete_flag = '0'
LEFT JOIN adm_location T5
ON T1.source_location_store_id = T5.id
AND T5.delete_flag = '0'
LEFT JOIN adm_location T9
ON T1.purpose_location_id = T9.id
AND T9.delete_flag = '0'
LEFT JOIN adm_location T10
ON T1.purpose_location_store_id = T10.id
AND T10.delete_flag = '0'
WHERE T1.type_enum in (#{transferReport}, #{transferBatchReport})
AND T1.status_enum = #{supplyStatus}
AND T1.item_table = #{medicationTableName}
AND T1.delete_flag = '0'
UNION
SELECT T1.id,
T1.bus_no AS supply_bus_no, -- 商品调拨单据号
T7.name, -- 器材名称
T1.status_enum, -- 状态
T1.lot_number, -- 产品批号
T1.source_location_id, -- 源仓库ID
T4.name AS source_location_name, -- 源仓库
T1.source_location_store_id, -- 源仓位ID
T5.name AS source_location_store_name, -- 源仓位
T1.purpose_location_id, -- 目的仓库ID
T9.name AS purpose_location_name, -- 目的仓库
T1.purpose_location_store_id, -- 目的货位ID
T10.name AS purpose_location_store_name, -- 目的货位
T1.item_quantity, -- 调拨数量
T1.unit_code, -- 物品计量单位
T1.price, -- 采购单价
T1.total_price, -- 总价
T1.applicant_id, -- 申请人(制单人)
T1.approver_id, -- 审核人
T1.occurrence_time, -- 制单日期
T1.apply_time, -- 申请日期
T1.approval_time, -- 审批时间(调拨日期)
T1.tenant_id -- 租户ID
FROM wor_supply_request T1
INNER JOIN wor_supply_delivery AS T2
ON T2.request_id = T1.id
AND T2.status_enum = #{deliveryStatus}
AND T2.delete_flag = '0'
LEFT JOIN adm_device_definition T7
ON T1.item_id = T7.id
AND T7.delete_flag = '0'
LEFT JOIN adm_location T4
ON T1.source_location_id = T4.id
AND T4.delete_flag = '0'
LEFT JOIN adm_location T5
ON T1.source_location_store_id = T5.id
AND T5.delete_flag = '0'
LEFT JOIN adm_location T9
ON T1.purpose_location_id = T9.id
AND T9.delete_flag = '0'
LEFT JOIN adm_location T10
ON T1.purpose_location_store_id = T10.id
AND T10.delete_flag = '0'
WHERE T1.type_enum in (#{transferReport}, #{transferBatchReport})
AND T1.status_enum = #{supplyStatus}
AND T1.item_table = #{deviceTableName}
AND T1.delete_flag = '0') AS T6
${ew.customSqlSegment}
ORDER BY T6.supply_bus_no DESC
</select>
</mapper>

View File

@@ -0,0 +1,184 @@
<?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.tencentJH.mapper.TencentAppMapper">
<select id="getCurrentDayEncounter" resultType="com.openhis.web.tencentJH.dto.CurrentDayEncounterTencentDto">
SELECT T9.tenant_id,
T9.encounter_id,
T9.organization_id,
T9.organization_name,
T9.healthcare_name,
T9.practitioner_user_id,
T9.practitioner_name,
T9.contract_name,
T9.patient_id,
T9.patient_name,
T9.phone,
T9.gender_enum,
T9.id_card,
T9.status_enum,
T9.register_time,
T9.total_price,
T9.account_name,
T9.enterer_name,
T9.charge_item_ids,
T9.payment_id,
T9.picture_url,
T9.birth_date,
t9.english_name
from (
SELECT T1.tenant_id AS tenant_id,
T1.id AS encounter_id,
T1.organization_id AS organization_id,
T2.NAME AS organization_name,
T3.NAME AS healthcare_name,
T5.user_id AS practitioner_user_id,
T5.NAME AS practitioner_name,
T7.contract_name AS contract_name,
T8.id AS patient_id,
T8.NAME AS patient_name,
T8.phone AS phone,
T8.gender_enum AS gender_enum,
T8.id_card AS id_card,
T1.status_enum AS status_enum,
T1.create_time AS register_time,
T10.total_price,
T11."name" AS account_name,
T12."name" AS enterer_name,
T13.charge_item_ids,
T13.id AS payment_id,
ai.picture_url AS picture_url,
T8.birth_date AS birth_date,
tx.staff_english_name AS english_name
FROM adm_encounter AS T1
LEFT JOIN adm_organization AS T2 ON T1.organization_id = T2.ID AND T2.delete_flag = '0'
LEFT JOIN adm_healthcare_service AS T3 ON T1.service_type_id = T3.ID AND T3.delete_flag = '0'
LEFT JOIN (
SELECT *
FROM (
SELECT *,
ROW_NUMBER() OVER (PARTITION BY encounter_id ORDER BY create_time ASC) AS rn
FROM adm_encounter_participant
WHERE delete_flag = '0'
AND (
(type_code = #{participantType1} AND EXISTS(SELECT 1
FROM adm_encounter AS T1
WHERE T1.status_enum = #{statusEnum}
AND T1.ID = encounter_id))
OR
(type_code = #{participantType2} AND NOT EXISTS(SELECT 1
FROM adm_encounter AS T1
WHERE T1.status_enum = #{statusEnum}
AND T1.ID = encounter_id))
)
) t
WHERE rn = 1
) AS T4 ON T1.ID = T4.encounter_id
LEFT JOIN adm_practitioner AS T5 ON T5.ID = T4.practitioner_id AND T5.delete_flag = '0'
LEFT JOIN adm_account AS T6
ON T1.ID = T6.encounter_id AND T6.delete_flag = '0' AND T6.encounter_flag = '1'
LEFT JOIN fin_contract AS T7 ON T6.contract_no = T7.bus_no AND T7.delete_flag = '0'
LEFT JOIN adm_patient AS T8 ON T1.patient_id = T8.ID AND T8.delete_flag = '0'
LEFT JOIN adm_charge_item AS T10 ON T1.id = T10.encounter_id AND T10.delete_flag = '0'
LEFT JOIN adm_account AS T11 ON T10.account_id = T11.id AND T11.delete_flag = '0'
LEFT JOIN adm_practitioner AS T12 ON T12.ID = T10.enterer_id AND T12.delete_flag = '0'
LEFT JOIN tx_encounter AS tx ON tx.bus_no=T1.bus_no
LEFT JOIN fin_payment_reconciliation T13
ON T10.id::TEXT = ANY(string_to_array(T13.charge_item_ids,','))
AND T13.delete_flag = '0'
AND T13.status_enum = ${paymentStatus}
LEFT JOIN adm_invoice AS ai
ON ai.reconciliation_id = T13.id AND ai.delete_flag = '0'
WHERE T1.delete_flag = '0'
AND T1.class_enum = #{classEnum}
AND T10.context_enum = #{register}
) AS T9
${ew.customSqlSegment}
ORDER BY T9.register_time DESC
</select>
<select id="getPatientInfo" resultType="com.openhis.web.tencentJH.dto.PatientInfoTencentDto">
SELECT
T10.encounter_id,
T10.patient_id,
T10.patient_name,
T10.gender_enum,
T10.id_card,
T10.phone,
T10.birth_date,
T10.status_enum,
T10.account_id,
T10.type_code,
T10.contract_name,
T10.org_id,
T10.register_time,
T10.reception_time,
T10.practitioner_user_id,
T10.jz_practitioner_user_id,
T10.bus_no,
T10.english_name
from
(
SELECT T1.tenant_id AS tenant_id,
T1.ID AS encounter_id,
T1.organization_id AS organization_id,
T2.NAME AS organization_name,
T3.NAME AS healthcare_name,
T5.user_id AS practitioner_user_id,
T5.NAME AS practitioner_name,
ap.user_id AS jz_practitioner_user_id,
ap.NAME AS jz_practitioner_name,
T6.id AS account_id,
T6.type_code AS type_code,
T7.contract_name AS contract_name,
T8.ID AS patient_id,
T8.NAME AS patient_name,
T8.gender_enum AS gender_enum,
T8.id_card AS id_card,
T8.phone AS phone,
T8.birth_date AS birth_date,
T1.status_enum AS status_enum,
T1.create_time AS register_time,
T1.reception_time AS reception_time,
T1.organization_id AS org_id,
T8.bus_no AS bus_no,
tx.staff_english_name AS english_name
FROM adm_encounter AS T1
LEFT JOIN adm_organization AS T2 ON T1.organization_id = T2.ID AND T2.delete_flag = '0'
LEFT JOIN adm_healthcare_service AS T3 ON T1.service_type_id = T3.ID AND T3.delete_flag = '0'
LEFT JOIN adm_encounter_participant AS T4
ON T1.ID = T4.encounter_id AND T4.type_code = #{participantType}
AND T4.status_enum = #{activityStatus}
AND T4.delete_flag = '0'
AND T1.status_enum = #{encounterStatus}
LEFT JOIN adm_practitioner AS T5 ON T5.ID = T4.practitioner_id AND T5.delete_flag = '0'
LEFT JOIN adm_encounter_participant AS aep ON T1.ID = aep.encounter_id
AND aep.type_code = #{participantType2}
AND aep.status_enum = #{activityStatus}
AND aep.delete_flag = '0'
LEFT JOIN adm_practitioner AS ap ON ap.ID = aep.practitioner_id
AND ap.delete_flag = '0'
LEFT JOIN adm_account AS T6 ON T1.ID = T6.encounter_id AND T6.delete_flag = '0' and T6.encounter_flag = '1'
LEFT JOIN fin_contract AS T7 ON T6.contract_no = T7.bus_no AND T7.delete_flag = '0'
LEFT JOIN adm_patient AS T8 ON T1.patient_id = T8.ID AND T8.delete_flag = '0'
LEFT JOIN tx_encounter AS tx ON tx.bus_no=T1.bus_no
WHERE
T1.delete_flag = '0'
<!-- 当前登录账号ID 和 当前登录账号所属的科室ID 用于控制数据权限 -->
<if test="userId != null and currentUserOrganizationId != null">
AND (
(T4.encounter_id IS NOT NULL AND T5.user_id = #{userId})
OR
(T4.encounter_id IS NULL AND T1.organization_id = #{currentUserOrganizationId})
)
</if>
<if test="pricingFlag ==1">
AND T1.status_enum != #{encounterStatus}
</if>
ORDER BY
T1.create_time ) AS T10
${ew.customSqlSegment}
</select>
</mapper>

View File

@@ -4,6 +4,8 @@
<select id="getVeriPrescriptionInfo" resultType="com.openhis.web.ybmanage.dto.VeriPrescriptionInfoDto">
SELECT tenant_id,
prescription_no, --处方号
practitioner_id,
practitioner_name,
ipt_otp_no, --门诊号
patient_name, --姓名
certno, --身份证号
@@ -14,19 +16,21 @@
prsc_time, --处方开立日期
hi_rxno --医保处方编号
FROM (SELECT T1.tenant_id,
T1.prescription_no, --处方号
T1.ipt_otp_no, --门诊号
T2.name AS patient_name, --姓名
T2.id_card AS certno, --身份证
T1.prescription_no, --处方号
T1.prescribing_dr_id AS practitioner_id,
aper.name AS practitioner_name,
T1.ipt_otp_no, --门诊
T2.name AS patient_name, --姓名
T2.id_card AS certno, --身份证号
CASE
WHEN (T5.rx_used_stas_codg IN ('1', '2')) THEN T5.rx_used_stas_name
ELSE '未使用'
END AS med_status, --取药状态
T1.status_enum AS status_enum, --状态
T4.name AS prsc_dept_name, --开单科室
T3.reception_time AS mdtrt_time, --挂号日期
T1.issue_time AS prsc_time, --处方开立日期
T1.hi_rxno --医保处方编号
END AS med_status, --取药状态
T1.status_enum AS status_enum, --状态
T4.name AS prsc_dept_name, --开单科室
T3.reception_time AS mdtrt_time, --挂号日期
T1.issue_time AS prsc_time, --处方开立日期
T1.hi_rxno --医保处方编号
FROM elep_medication_request AS T1
LEFT JOIN adm_patient AS T2
ON T1.patient_id = T2.id
@@ -42,9 +46,15 @@
LEFT JOIN adm_account AS T6
ON T1.encounter_id = T6.encounter_id
AND T6.delete_flag = '0'
LEFT JOIN adm_practitioner AS aper
ON aper.ID = T1.prescribing_dr_id
AND aper.delete_flag = '0'
AND T6.delete_flag = '0'
WHERE T1.delete_flag = '0') ${ew.customSqlSegment}
GROUP BY tenant_id,
prescription_no,
practitioner_id,
practitioner_name,
ipt_otp_no,
patient_name,
certno,
@@ -61,9 +71,9 @@
T1.ipt_otp_no, --门诊号
T1.quantity, --请求数量
T1.unit_code, --请求单位
T1.status_enum AS status_enum, --药品请求状态
T1.status_enum AS status_enum, --药品请求状态
--处方信息
T2.registered_name AS medication_name, --药品名
T2.registered_name AS medication_name, --药品名
T2.drug_specification, --药品规格
T1.med_dosage, --药品剂量
T1.med_dosage_unit_code, --药品剂量单位
@@ -72,11 +82,11 @@
CASE
WHEN (T9.rx_used_stas_codg IN ('1', '2')) THEN T9.rx_used_stas_name
ELSE '未使用'
END AS med_status, --取药状态
END AS med_status, --取药状态
CASE
WHEN (T10.rx_stas_codg IN ('1', '2', '3', '4')) THEN T10.rx_stas_name
ELSE '未上传'
END AS prescription_status, --处方状态
END AS prescription_status, --处方状态
T1.rx_type_code, --处方类别
T1.support_info, --支持用药信息
T1.effective_dose_start, -- 服药时间(开始)
@@ -85,15 +95,16 @@
T1.dispense_per_quantity, -- 单次发药数
T1.dispense_per_duration, -- 每次发药供应天数
--就诊信息
T3.name AS patn_name, --患者名
T3.id_card AS certno, --身份证号
T4.name AS practitioner_name, --开方医生名
T6.name AS mdtrt_dept_name, --挂号科室
T7.name AS prsc_dept_name, --开单科室
T5.create_time AS mdtrt_time, --挂号日期
T1.issue_time AS prsc_time, --处方开立日期
T3.name AS patn_name, --患者名
T3.id_card AS certno, --身份证号
T4.name AS practitioner_name, --开方医生名
T6.name AS mdtrt_dept_name, --挂号科室
T7.name AS prsc_dept_name, --开单科室
T5.create_time AS mdtrt_time, --挂号日期
T1.issue_time AS prsc_time, --处方开立日期
--诊断信息
T8.name AS condition_name --诊断名
T8.name AS condition_name, --诊断名
T12.name AS special_condition_name --诊断名
FROM elep_medication_request AS T1
LEFT JOIN (SELECT drug.medical_catalog_code,
drug.registered_name,
@@ -102,11 +113,11 @@
FROM yb_catalog_drug_info drug
INNER JOIN (SELECT info.medical_catalog_code, MAX(info.version) AS max_version
FROM yb_catalog_drug_info info
WHERE info.valid_flag = '1'
WHERE info.valid_flag = '1'
GROUP BY info.medical_catalog_code
) AS item ON drug.medical_catalog_code = item.medical_catalog_code AND
drug.version = item.max_version
WHERE drug.valid_flag = '1'
WHERE drug.valid_flag = '1'
) AS T2 ON T1.medication_id = T2.medical_catalog_code
LEFT JOIN adm_patient AS T3
ON T1.patient_id = T3.id
@@ -127,8 +138,11 @@
ON T1.condition_id = T11.id
AND T11.delete_flag = '0'
LEFT JOIN cli_condition_definition AS T8
ON T11.definition_id = T8.id
ON T1.condition_def_id = T8.id
AND T8.delete_flag = '0'
LEFT JOIN cli_condition_definition AS T12
ON T1.opsp_dise_code = T12.yb_no
AND T12.delete_flag = '0'
LEFT JOIN yb_elep_medresult_info AS T9
ON T1.hi_rxno = T9.hi_rxno
LEFT JOIN (SELECT hi_rxno, rx_stas_codg, rx_stas_name

View File

@@ -185,4 +185,76 @@
WHERE T1.id = #{paymentId}
GROUP BY T5."name", T5.yb_no
</select>
<select id="getInHospitalRegisterInfo"
resultType="com.openhis.web.ybmanage.dto.YbInHospitalRegisterQueryDto">
SELECT ihri.tenant_id,
ihri.encounter_id,
ihri.amb_encounter_id,
ihri.patient_id,
ihri.request_time,
ihri.registrar,
ihri.source_name,
ihri.patient_name,
ihri.gender_enum,
ihri.birth_date,
ihri.ward_name,
ihri.mdtrt_id
from (SELECT ae.tenant_id,
ae.ID AS encounter_id,
ae.amb_encounter_id AS amb_encounter_id,
ae.patient_id AS patient_id,
ae.create_time AS request_time,
aper.NAME AS registrar,
ao.NAME AS source_name,
ap.NAME AS patient_name,
ap.gender_enum AS gender_enum,
ap.birth_date AS birth_date,
al.NAME AS ward_name,
inreg.mdtrt_id
FROM adm_encounter AS ae
LEFT JOIN adm_encounter AS ambae ON ae.amb_encounter_id = ambae.
ID
LEFT JOIN adm_organization AS ao ON ao.ID = ambae.organization_id
AND ao.delete_flag = '0'
LEFT JOIN adm_patient AS ap ON ap.ID = ae.patient_id
AND ap.delete_flag = '0'
LEFT JOIN adm_encounter_location AS ael ON ael.encounter_id = ae.ID
AND ael.delete_flag = '0'
AND ael.form_enum = #{formEnum}
LEFT JOIN adm_location AS al ON al.ID = ael.location_id
AND al.delete_flag = '0'
LEFT JOIN adm_practitioner AS aper ON aper.ID = ae.registrar_id
AND aper.delete_flag = '0'
LEFT JOIN yb_inpatient_reg AS inreg ON inreg.ipt_no = ae.bus_no
WHERE ae.delete_flag = '0'
AND ae.class_enum = #{encounterClass}
) AS ihri
${ew.customSqlSegment}
</select>
<select id="getDiagnosisList" resultType="com.openhis.web.ybmanage.dto.EncounterDiagnosisDto">
SELECT
endi.id,
endi.encounter_id,
endi.condition_id,
endi.ipt_dise_crsp,
endi.ipt_dise_type_code,
endi.adm_dise_cond_code,
endi.med_type_code,
endi.maindise_flag,
endi.high_dise_evid_flag,
endi.diag_srt_no,
endi.syndrome_group_no,
endi.tcm_flag,
endi.diagnosis_desc,
condef.type_code,
condef.yb_no,
condef.name
FROM
adm_encounter_diagnosis endi
LEFT JOIN cli_condition con ON endi.condition_id = con.id
LEFT JOIN cli_condition_definition condef ON con.definition_id = condef."id"
WHERE
endi.encounter_id = #{encounterId}
AND endi.delete_flag = '0'
</select>
</mapper>