提交merge1.3

This commit is contained in:
2025-12-27 15:30:25 +08:00
parent 8c607c8749
commit 088861f66e
1245 changed files with 220442 additions and 77616 deletions

View File

@@ -6,9 +6,15 @@ spring:
druid:
# 主库数据源
master:
<<<<<<< HEAD:openhis-server-new/openhis-application/src/main/resources/application-prd.yml
url: jdbc:postgresql://192.168.110.252:15432/postgresql?currentSchema=hisprd&characterEncoding=UTF-8&client_encoding=UTF-8
username: postgresql
password: Jchl1528
=======
url: jdbc:postgresql://192.168.2.15:5432/openhis-xz?currentSchema=public&characterEncoding=UTF-8&client_encoding=UTF-8
username: postgres
password: root
>>>>>>> v1.3:openhis-server-new/openhis-application/src/main/resources/application-prod.yml
# 从库数据源
slave:
# 从数据源开关/默认关闭
@@ -62,7 +68,11 @@ spring:
# redis 配置
redis:
# 地址
<<<<<<< HEAD:openhis-server-new/openhis-application/src/main/resources/application-prd.yml
host: 192.168.110.252
=======
host: 172.16.101.2
>>>>>>> v1.3:openhis-server-new/openhis-application/src/main/resources/application-prod.yml
# 端口默认为6379
port: 6379
# 数据库索引

View File

@@ -5,14 +5,36 @@ spring:
driverClassName: org.postgresql.Driver
druid:
# 主库数据源
<<<<<<< HEAD
master:
<<<<<<<< HEAD:openhis-server-new/openhis-application/src/main/resources/application-test.yml
url: jdbc:postgresql://192.168.110.252:15432/postgresql?currentSchema=histest&characterEncoding=UTF-8&client_encoding=UTF-8
username: postgresql
password: Jchl1528
========
url: jdbc:postgresql://192.168.30.199:5432/openhis?currentSchema=public&characterEncoding=UTF-8&client_encoding=UTF-8
username: postgres
password: root
>>>>>>>> v1.3:openhis-server-new/openhis-application/src/main/resources/application-local.yml
# 从库数据源
slave:
# 从数据源开关/默认关闭
enabled:
=======
# master:
# url: jdbc:postgresql://192.168.1.123:5432/openhistest?currentSchema=public&characterEncoding=UTF-8&client_encoding=UTF-8
# username: postgres
# password: root
master:
url: jdbc:postgresql://192.168.31.246:5432/openhis?currentSchema=public&characterEncoding=UTF-8&client_encoding=UTF-8
username: postgres
password: root
# 从库数据源
slave:
# 从数据源开关/默认关闭
enabled: false
>>>>>>> v1.3
url:
username:
password:
@@ -62,13 +84,26 @@ spring:
# redis 配置
redis:
# 地址
<<<<<<< HEAD
<<<<<<<< HEAD:openhis-server-new/openhis-application/src/main/resources/application-test.yml
host: 192.168.110.252
========
host: 192.168.30.199
>>>>>>>> v1.3:openhis-server-new/openhis-application/src/main/resources/application-local.yml
=======
# host: 192.168.1.123
host: 127.0.0.1
>>>>>>> v1.3
# 端口默认为6379
port: 6379
# 数据库索引
database: 1
# 密码
<<<<<<< HEAD
password: Jchl1528
=======
password: redis
>>>>>>> v1.3
# 连接超时时间
timeout: 10s
lettuce:
@@ -84,10 +119,14 @@ spring:
# 文言
messages:
basename: i18n/general_message/messages
<<<<<<< HEAD
encoding: utf-8
server:
# 服务器的HTTP端口默认为18080
port: 18081
servlet:
# 应用的访问路径
context-path: /openhis
context-path: /openhis
=======
encoding: utf-8
>>>>>>> v1.3

View File

@@ -49,7 +49,11 @@ spring:
# 国际化资源文件路径
basename: i18n/messages
profiles:
<<<<<<< HEAD
active: dev
=======
active: prod # (天翼云)cloud 本地测试test 本地local 生产prod (农大)
>>>>>>> v1.3
# 文件上传
servlet:
multipart:

View File

@@ -3,4 +3,4 @@ http:
appId: "JLNYDX2611325"
key: "e3d214e5b8414b583aefd287fd"
url: "http://clydzp.chinaebill.cn:8001/medical-web"
fixmedinsCode: "H22017200667"
fixmedinsCode: "H22010402403"

View File

@@ -77,7 +77,7 @@
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 每天一个文件保留60天 -->
<fileNamePattern>${log.path}/yb-service.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>60</maxHistory>
<maxHistory>365</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern> <!-- 使用统一日志格式 -->
@@ -95,7 +95,7 @@
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 每天一个文件保留60天 -->
<fileNamePattern>${log.path}/payment.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>60</maxHistory>
<maxHistory>180</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern> <!-- 使用统一日志格式 -->
@@ -108,11 +108,11 @@
<!-- 新增专用日志Appender -->
<appender name="E_INVOICE_LOGS" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${log.path}/E_invoice.log</file> <!-- 日志文件名 -->
<file>${log.path}/e_invoice.log</file> <!-- 日志文件名 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<!-- 每天一个文件保留60天 -->
<fileNamePattern>${log.path}/E_invoice.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>60</maxHistory>
<fileNamePattern>${log.path}/e_invoice.%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>365</maxHistory>
</rollingPolicy>
<encoder>
<pattern>${log.pattern}</pattern> <!-- 使用统一日志格式 -->

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

@@ -28,6 +28,10 @@
ii.min_unit_code,
ii.part_percent,
ii.approval_number,
<<<<<<< HEAD
=======
ii.item_id,
>>>>>>> v1.3
ii.dose_form_code,
ii.total_volume,
ii.sale_price,
@@ -36,6 +40,7 @@
ii.location_name,
ii.location_store_name,
ii.supplier_name
<<<<<<< HEAD
FROM (SELECT wii.id AS inventory_id,
wii.production_date,
wii.expiration_date,
@@ -320,5 +325,389 @@
LEFT JOIN sys_dict_data sdd5 ON ii.med_category_code = sdd5.dict_value AND sdd5.dict_type = 'med_category_code'
${ew.customSqlSegment}
ORDER BY ii.py_str
=======
FROM (
(SELECT wii.id AS inventory_id,
wii.production_date,
wii.expiration_date,
(wii.expiration_date::date - CURRENT_DATE) AS remaining_days,
wii.inventory_status_enum,
wii.location_id,
wii.location_store_id,
wii.lot_number,
wii.quantity,
wii.supplier_id,
wii.tenant_id,
#{medMedicationDefinition} AS item_table,
mmd."name" AS item_name,
mmd.bus_no,
NULL AS dev_category_code,
mmd.category_code AS med_category_code,
mmd.chrgitm_lv,
mmd.manufacturer_text,
mmd.yb_no,
mmd.wb_str,
mmd.py_str,
mmd.unit_code,
mmd.min_unit_code,
mmd.part_percent,
mmd.approval_number,
mmd.id AS item_id,
mm.dose_form_code,
mm.total_volume,
acid.price AS sale_price,
acid.id AS charge_item_def_id,
acidd.amount AS purchase_price,
al."name" AS location_name,
al2."name" AS location_store_name,
as2."name" AS supplier_name
FROM wor_inventory_item wii
LEFT JOIN med_medication_definition mmd
ON wii.item_id = mmd.id
AND mmd.delete_flag = '0'
LEFT JOIN med_medication mm
ON mmd.id = mm.medication_def_id
AND mm.delete_flag = '0'
LEFT JOIN adm_charge_item_definition acid
ON wii.item_id = acid.instance_id
AND acid.delete_flag = '0'
LEFT JOIN adm_charge_item_def_detail acidd
ON acid.id = acidd.definition_id
AND acidd.condition_value = wii.lot_number
AND acidd.delete_flag = '0'
LEFT JOIN adm_location al
ON wii.location_id = al.id
AND al.delete_flag = '0'
LEFT JOIN adm_location al2
ON wii.location_store_id = al2.id
AND al2.delete_flag = '0'
LEFT JOIN adm_supplier as2
ON wii.supplier_id = as2.id
AND as2.delete_flag = '0'
WHERE wii.item_table = #{medMedicationDefinition}
AND acidd.condition_code = #{lotNumberCost}
AND wii.delete_flag = '0'
ORDER BY wii.py_str)
UNION
(SELECT wii.id AS inventory_id,
wii.production_date,
wii.expiration_date,
(wii.expiration_date::date - CURRENT_DATE) AS remaining_days,
wii.inventory_status_enum,
wii.location_id,
wii.location_store_id,
wii.lot_number,
wii.quantity,
wii.supplier_id,
wii.tenant_id,
#{admDeviceDefinition} AS item_table,
add2."name" AS item_name,
add2.bus_no,
add2.category_code AS dev_category_code,
NULL AS med_category_code,
add2.chrgitm_lv,
add2.manufacturer_text,
add2.yb_no,
add2.wb_str,
add2.py_str,
add2.unit_code,
add2.min_unit_code,
add2.part_percent,
add2.approval_number,
add2.id AS item_id,
NULL AS dose_form_code,
add2.size AS total_volume,
acid.price AS sale_price,
acid.id AS charge_item_def_id,
acidd.amount AS purchase_price,
al."name" AS location_name,
al2."name" AS location_store_name,
as2."name" AS supplier_name
FROM wor_inventory_item wii
LEFT JOIN adm_device_definition add2
ON wii.item_id = add2.id
AND add2.delete_flag = '0'
LEFT JOIN adm_charge_item_definition acid
ON wii.item_id = acid.instance_id
AND acid.delete_flag = '0'
LEFT JOIN adm_charge_item_def_detail acidd
ON acid.id = acidd.definition_id
AND acidd.condition_code = #{lotNumberCost}
AND acidd.condition_value = wii.lot_number
AND acidd.delete_flag = '0'
LEFT JOIN adm_location al
ON wii.location_id = al.id
AND al.delete_flag = '0'
LEFT JOIN adm_location al2
ON wii.location_store_id = al2.id
AND al2.delete_flag = '0'
LEFT JOIN adm_supplier as2
ON wii.supplier_id = as2.id
AND as2.delete_flag = '0'
WHERE wii.item_table = #{admDeviceDefinition}
AND acidd.condition_code = #{lotNumberCost}
AND wii.delete_flag = '0'
ORDER BY wii.py_str)
) AS ii
${ew.customSqlSegment}
</select>
<select id="getProductDetailPageAndTranslateField"
resultType="com.openhis.web.inventorymanage.dto.ProductDetailPageDto">
SELECT *
FROM (SELECT DISTINCT ii.inventory_id,
ii.production_date,
ii.expiration_date,
ii.remaining_days,
ii.inventory_status_enum,
ii.location_id,
ii.location_store_id,
ii.lot_number,
ii.quantity,
ii.supplier_id,
ii.item_table,
ii.item_name,
ii.bus_no,
ii.dev_category_code,
ii.med_category_code,
ii.chrgitm_lv,
ii.manufacturer_text,
ii.yb_no,
ii.wb_str,
ii.py_str,
ii.unit_code,
ii.min_unit_code,
ii.part_percent,
ii.approval_number,
ii.dose_form_code,
ii.total_volume,
ii.sale_price,
ii.charge_item_def_id,
ii.purchase_price,
ii.location_name,
ii.location_store_name,
ii.supplier_name,
sdd.dict_label AS unitCode_dictText,
sdd2.dict_label AS minUnitCode_dictText,
sdd3.dict_label AS devCategoryCode_dictText,
sdd4.dict_label AS doseFormCode_dictText,
sdd5.dict_label AS medCategoryCode_dictText,
ROW_NUMBER() OVER (PARTITION BY ii.inventory_id ORDER BY ii.inventory_id) as rn
FROM (SELECT wii.id AS inventory_id,
wii.production_date,
wii.expiration_date,
(wii.expiration_date::date - CURRENT_DATE) AS remaining_days,
wii.inventory_status_enum,
wii.location_id,
wii.location_store_id,
wii.lot_number,
wii.quantity,
wii.supplier_id,
wii.tenant_id,
#{medMedicationDefinition} AS item_table,
mmd."name" AS item_name,
mmd.bus_no,
NULL AS dev_category_code,
mmd.category_code AS med_category_code,
mmd.chrgitm_lv,
mmd.manufacturer_text,
mmd.yb_no,
mmd.wb_str,
mmd.py_str,
mmd.unit_code,
mmd.min_unit_code,
mmd.part_percent,
mmd.approval_number,
mm.dose_form_code,
mm.total_volume,
acid.price AS sale_price,
acid.id AS charge_item_def_id,
acidd.amount AS purchase_price,
al."name" AS location_name,
al2."name" AS location_store_name,
as2."name" AS supplier_name
FROM wor_inventory_item wii
LEFT JOIN med_medication_definition mmd
ON wii.item_id = mmd.id
AND mmd.delete_flag = '0'
LEFT JOIN med_medication mm
ON mmd.id = mm.medication_def_id
AND mm.delete_flag = '0'
LEFT JOIN adm_charge_item_definition acid
ON wii.item_id = acid.instance_id
AND acid.delete_flag = '0'
LEFT JOIN adm_charge_item_def_detail acidd
ON acid.id = acidd.definition_id
AND acidd.condition_value = wii.lot_number
AND acidd.delete_flag = '0'
LEFT JOIN adm_location al
ON wii.location_id = al.id
AND al.delete_flag = '0'
LEFT JOIN adm_location al2
ON wii.location_store_id = al2.id
AND al2.delete_flag = '0'
LEFT JOIN adm_supplier as2
ON wii.supplier_id = as2.id
AND as2.delete_flag = '0'
WHERE wii.item_table = #{medMedicationDefinition}
AND acidd.condition_code = #{lotNumberCost}
AND wii.delete_flag = '0'
UNION
SELECT wii.id AS inventory_id,
wii.production_date,
wii.expiration_date,
(wii.expiration_date::date - CURRENT_DATE) AS remaining_days,
wii.inventory_status_enum,
wii.location_id,
wii.location_store_id,
wii.lot_number,
wii.quantity,
wii.supplier_id,
wii.tenant_id,
#{admDeviceDefinition} AS item_table,
add2."name" AS item_name,
add2.bus_no,
add2.category_code AS dev_category_code,
NULL AS med_category_code,
add2.chrgitm_lv,
add2.manufacturer_text,
add2.yb_no,
add2.wb_str,
add2.py_str,
add2.unit_code,
add2.min_unit_code,
add2.part_percent,
add2.approval_number,
NULL AS dose_form_code,
add2.size AS total_volume,
acid.price AS sale_price,
acid.id AS charge_item_def_id,
acidd.amount AS purchase_price,
al."name" AS location_name,
al2."name" AS location_store_name,
as2."name" AS supplier_name
FROM wor_inventory_item wii
LEFT JOIN adm_device_definition add2
ON wii.item_id = add2.id
AND add2.delete_flag = '0'
LEFT JOIN adm_charge_item_definition acid
ON wii.item_id = acid.instance_id
AND acid.delete_flag = '0'
LEFT JOIN adm_charge_item_def_detail acidd
ON acid.id = acidd.definition_id
AND acidd.condition_code = #{lotNumberCost}
AND acidd.condition_value = wii.lot_number
AND acidd.delete_flag = '0'
LEFT JOIN adm_location al
ON wii.location_id = al.id
AND al.delete_flag = '0'
LEFT JOIN adm_location al2
ON wii.location_store_id = al2.id
AND al2.delete_flag = '0'
LEFT JOIN adm_supplier as2
ON wii.supplier_id = as2.id
AND as2.delete_flag = '0'
WHERE wii.item_table = #{admDeviceDefinition}
AND acidd.condition_code = #{lotNumberCost}
AND wii.delete_flag = '0') AS ii
LEFT JOIN sys_dict_data sdd ON ii.unit_code = sdd.dict_value AND sdd.dict_type = 'unit_code'
LEFT JOIN sys_dict_data sdd2
ON ii.min_unit_code = sdd2.dict_value AND sdd2.dict_type = 'unit_code'
LEFT JOIN sys_dict_data sdd3
ON ii.dev_category_code = sdd3.dict_value AND sdd3.dict_type = 'device_category_code'
LEFT JOIN sys_dict_data sdd4
ON ii.dose_form_code = sdd4.dict_value AND sdd4.dict_type = 'dose_form_code'
LEFT JOIN sys_dict_data sdd5
ON ii.med_category_code = sdd5.dict_value AND sdd5.dict_type = 'med_category_code'
${ew.customSqlSegment}) AS final_data
WHERE rn = 1
ORDER BY py_str
</select>
<select id="selectProductDetailsBackupPage"
resultType="com.openhis.web.inventorymanage.dto.ProductDetailPageDto">
SELECT ii.med_category_code,
ii.dev_category_code,
ii.item_name,
ii.inventory_status_enum,
ii.supplier_id,
ii.description_text,
ii.unit_code,
ii.quantity,
ii.number,
ii.remainder,
ii.lot_number,
ii.production_date,
ii.expiration_date,
ii.location_store_id,
ii.location_id,
ii.trace_no,
ii.packaging_levels,
ii.item_table,
ii.item_id,
ii.purchase_price,
ii.sale_price,
ii.total_sale_price,
ii.total_purchase_price,
ii.bus_no,
ii.min_unit_code,
ii.part_percent,
ii.supplier_name,
ii.location_name,
ii.location_store_name,
ii.manufacturer_text,
ii.chrgitm_lv,
ii.total_volume,
ii.py_str,
ii.wb_str,
ii.remaining_days,
ii.inventory_id,
ii.yb_no,
ii.approval_number,
ii.back_up_date
FROM (SELECT tenant_id,
med_category_code,
dev_category_code,
name AS item_name,
inventory_status_enum,
supplier_id,
description_text,
unit_code,
quantity,
number,
remainder,
lot_number,
production_date,
expiration_date,
location_store_id,
location_id,
trace_no,
packaging_levels,
item_table,
item_id,
price AS purchase_price,
sale_price,
total_sale_price,
total_price AS total_purchase_price,
item_no AS bus_no,
min_unit_code,
part_percent,
supplier_name,
location_name,
location_store_name,
manufacturer_text,
chrgitm_lv,
total_volume,
py_str,
wb_str,
remaining_days,
inventory_id,
yb_no,
approval_number,
create_time AS back_up_date
FROM doc_inventory_item_static
WHERE delete_flag = '0'
) AS ii
${ew.customSqlSegment}
>>>>>>> v1.3
</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

@@ -17,16 +17,18 @@
T2.purpose_type_enum,
T2.category_enum,
CASE
WHEN EXISTS (
WHEN EXISTS(
SELECT 1
FROM wor_supply_request AS T3
WHERE T3.original_bus_no = T2.supply_bus_no
AND T3.delete_flag = '0'
) THEN 1
ELSE 0
END AS return_status, --退库状态
T2.tenant_id
FROM (SELECT T1.bus_no AS supply_bus_no,
END AS return_status, --退库状态
T2.tenant_id,
T2.purpose_location_id,
T2.total_amount
FROM (SELECT T1.bus_no AS supply_bus_no,
T1.status_enum,
T1.type_enum,
T1.supplier_id,
@@ -38,7 +40,13 @@
T1.item_table,
T1.purpose_type_enum,
T1.tenant_id,
<<<<<<< HEAD
T1.category_enum
=======
T1.category_enum,
T1.purpose_location_id,
sum(T1.total_price) AS total_amount
>>>>>>> v1.3
FROM wor_supply_request AS T1
WHERE type_enum = #{purchaseInventory}
AND T1.delete_flag = '0'
@@ -53,7 +61,12 @@
T1.item_table,
T1.purpose_type_enum,
T1.tenant_id,
<<<<<<< HEAD
T1.category_enum
=======
T1.category_enum,
T1.purpose_location_id
>>>>>>> v1.3
ORDER BY T1.bus_no desc
) AS T2
${ew.customSqlSegment}
@@ -74,24 +87,37 @@
T1.end_time,
T1.price,
T1.total_price,
T2."name" AS item_name,
T2.id AS item_id,
T2."name" AS item_name,
T2.id AS item_id,
T2.part_percent,
T2.manufacturer_text,
T3.total_volume,
<<<<<<< HEAD
T5."name" AS practitioner_name,
T6."name" AS purpose_location_name,
T6."id" AS purpose_location_id,
T7."name" AS purpose_location_store_name,
T1.supplier_id AS supplierId,
T10."name" AS supplier_name,
=======
T5."name" AS practitioner_name,
T6."name" AS purpose_location_name,
T6."id" AS purpose_location_id,
T7."name" AS purpose_location_store_name,
>>>>>>> v1.3
T1.occurrence_time,
(SELECT SUM(T9.quantity)
FROM wor_inventory_item T9
WHERE T9.item_id = T1.item_id
<<<<<<< HEAD
AND T9.location_id = T1.purpose_location_id
) AS total_quantity,
T10."name" AS supplier_name
=======
AND T9.location_id = T1.purpose_location_id) AS total_quantity,
T10."name" AS supplier_name,
sdt.dict_label AS measurementUnitCode_dictText
>>>>>>> v1.3
FROM wor_supply_request T1
INNER JOIN med_medication_definition T2
ON T1.item_id = T2.id
@@ -106,7 +132,11 @@
ON T1.purpose_location_id = T6.id
AND T6.delete_flag = '0'
LEFT JOIN adm_location T7
<<<<<<< HEAD
ON T1.purpose_location_store_id = T7.id
=======
ON T1.purpose_location_store_id = T7.id
>>>>>>> v1.3
AND T7.delete_flag = '0'
LEFT JOIN wor_inventory_item T9
ON T1.item_id = T9.item_id
@@ -115,6 +145,11 @@
LEFT JOIN adm_supplier T10
ON T1.supplier_id = T10.id
AND T10.delete_flag = '0'
<<<<<<< HEAD
=======
LEFT JOIN sys_dict_data sdt
ON sdt.dict_value = T1.unit_code AND dict_type = 'unit_code'
>>>>>>> v1.3
WHERE T1.bus_no = #{busNo}
AND T1.delete_flag = '0'
UNION
@@ -133,10 +168,11 @@
T1.end_time,
T1.price,
T1.total_price,
T8."name" AS item_name,
T8.id AS item_id,
T8."name" AS item_name,
T8.id AS item_id,
T8.part_percent,
T8.manufacturer_text,
<<<<<<< HEAD
T8."size" AS total_volume,
T5."name" AS practitioner_name,
T6."name" AS purpose_location_name,
@@ -144,10 +180,18 @@
T7."name" AS purpose_location_store_name,
T1.supplier_id AS supplierId,
T10."name" AS supplier_name,
=======
T8."size" AS total_volume,
T5."name" AS practitioner_name,
T6."name" AS purpose_location_name,
T6."id" AS purpose_location_id,
T7."name" AS purpose_location_store_name,
>>>>>>> v1.3
T1.occurrence_time,
(SELECT SUM(T9.quantity)
FROM wor_inventory_item T9
WHERE T9.item_id = T1.item_id
<<<<<<< HEAD
AND T9.location_id = T1.purpose_location_id
) AS total_quantity,
T10."name" AS supplier_name
@@ -163,14 +207,40 @@
AND T6.delete_flag = '0'
LEFT JOIN adm_location T7
ON T1.purpose_location_store_id = T7.id
=======
AND T9.location_id = T1.purpose_location_id) AS total_quantity,
T10."name" AS supplier_name,
sdt.dict_label AS measurementUnitCode_dictText
FROM wor_supply_request T1
INNER JOIN adm_device_definition T8
ON T1.item_id = T8.id
AND T8.delete_flag = '0'
LEFT JOIN adm_practitioner T5
ON T1.practitioner_id = T5.id
AND T5.delete_flag = '0'
LEFT JOIN adm_location T6
ON T1.purpose_location_id = T6.id
AND T6.delete_flag = '0'
LEFT JOIN adm_location T7
ON T1.purpose_location_store_id = T7.id
>>>>>>> v1.3
AND T7.delete_flag = '0'
LEFT JOIN wor_inventory_item T9
ON T1.item_id = T9.item_id
AND T1.purpose_location_id = T9.location_id
<<<<<<< HEAD
AND T9.delete_flag = '0'
LEFT JOIN adm_supplier T10
ON T1.supplier_id = T10.id
AND T10.delete_flag = '0'
=======
AND T9.delete_flag = '0'
LEFT JOIN adm_supplier T10
ON T1.supplier_id = T10.id
AND T10.delete_flag = '0'
LEFT JOIN sys_dict_data sdt
ON sdt.dict_value = T1.unit_code AND dict_type = 'unit_code'
>>>>>>> v1.3
WHERE T1.bus_no = #{busNo}
AND T1.delete_flag = '0'
</select>
@@ -214,11 +284,19 @@
LEFT JOIN adm_location T6
ON T1.purpose_location_id = T6.id
LEFT JOIN adm_location T7
<<<<<<< HEAD
ON T1.purpose_location_store_id = T7.id
LEFT JOIN wor_inventory_item T9
ON T1.item_id = T9.item_id
AND T1.purpose_location_id = T9.location_id
WHERE T1.purpose_location_id = #{locationId}
=======
ON T1.purpose_location_store_id = T7.id
LEFT JOIN wor_inventory_item T9
ON T1.item_id = T9.item_id
AND T1.purpose_location_id = T9.location_id
WHERE T1.purpose_location_id = #{locationId}
>>>>>>> v1.3
AND T1.status_enum = #{statusEnum}
AND T1.type_enum IN
<foreach collection="typeEnum" item="item" separator="," open="(" close=")">
@@ -265,11 +343,19 @@
LEFT JOIN adm_location T6
ON T1.purpose_location_id = T6.id
LEFT JOIN adm_location T7
<<<<<<< HEAD
ON T1.purpose_location_store_id = T7.id
LEFT JOIN wor_inventory_item T9
ON T1.item_id = T9.item_id
AND T1.purpose_location_id = T9.location_id
WHERE T1.purpose_location_id = #{locationId}
=======
ON T1.purpose_location_store_id = T7.id
LEFT JOIN wor_inventory_item T9
ON T1.item_id = T9.item_id
AND T1.purpose_location_id = T9.location_id
WHERE T1.purpose_location_id = #{locationId}
>>>>>>> v1.3
AND T1.status_enum = #{statusEnum}
AND T1.type_enum IN
<foreach collection="typeEnum" item="item" separator="," open="(" close=")">

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

@@ -3,12 +3,12 @@
<mapper namespace="com.openhis.web.inventorymanage.mapper.ReceiptApprovalMapper">
<select id="selectSupplyDetail" resultType="com.openhis.web.inventorymanage.dto.SupplyItemDetailDto">
SELECT T1.id AS supply_id,
SELECT T1.id AS supply_id,
T1.item_table,
T1.item_id,
T1.item_quantity,
T1.total_quantity,
T1.unit_code AS item_unit,
T1.unit_code AS item_unit,
T1.price,
T1.total_price,
T1.approver_id,
@@ -26,9 +26,9 @@
T1.bus_no,
T1.start_time,
T1.end_time,
T1.id AS service_id,
T1.id AS service_id,
T2."name",
T2.bus_no AS item_bus_no,
T2.bus_no AS item_bus_no,
T2.py_str,
T2.wb_str,
T2.unit_code,
@@ -39,31 +39,31 @@
T2.rx_flag,
T2.approval_number,
T2.manufacturer_text,
T6."name" AS supplier_name,
T7."name" AS practitioner_name
T6."name" AS supplier_name,
T7."name" AS practitioner_name
FROM wor_supply_request AS T1
LEFT JOIN wor_supply_delivery AS T5
ON T1.id = T5.request_id
AND T5.delete_flag = '0'
INNER JOIN med_medication_definition AS T2
ON T2.id = T1.item_id
AND T2.delete_flag = '0'
LEFT JOIN adm_supplier AS T6
ON T1.supplier_id = T6.id
AND T6.delete_flag = '0'
LEFT JOIN adm_practitioner AS T7
ON T1.practitioner_id = T7.id
AND T7.delete_flag = '0'
LEFT JOIN wor_supply_delivery AS T5
ON T1.id = T5.request_id
AND T5.delete_flag = '0'
INNER JOIN med_medication_definition AS T2
ON T2.id = T1.item_id
AND T2.delete_flag = '0'
LEFT JOIN adm_supplier AS T6
ON T1.supplier_id = T6.id
AND T6.delete_flag = '0'
LEFT JOIN adm_practitioner AS T7
ON T1.practitioner_id = T7.id
AND T7.delete_flag = '0'
WHERE T1.bus_no = #{busNo}
AND T5.status_enum = #{completed}
AND T1.delete_flag = '0'
AND T5.status_enum = #{completed}
AND T1.delete_flag = '0'
UNION
SELECT T1.id AS supply_id,
SELECT T1.id AS supply_id,
T1.item_table,
T1.item_id,
T1.item_quantity,
T1.total_quantity,
T1.unit_code AS item_unit,
T1.unit_code AS item_unit,
T1.price,
T1.total_price,
T1.approver_id,
@@ -81,9 +81,9 @@
T1.bus_no,
T1.start_time,
T1.end_time,
T1.id AS service_id,
T1.id AS service_id,
T3."name",
T3.bus_no AS item_bus_no,
T3.bus_no AS item_bus_no,
T3.py_str,
T3.wb_str,
T3.unit_code,
@@ -94,19 +94,19 @@
T3.rx_flag,
T3.approval_number,
T3.manufacturer_text,
T6."name" AS supplier_name,
T7."name" AS practitioner_name
T6."name" AS supplier_name,
T7."name" AS practitioner_name
FROM wor_supply_request AS T1
LEFT JOIN wor_supply_delivery AS T5
ON T1.id = T5.request_id
INNER JOIN adm_device_definition AS T3
ON T3.id = T1.item_id
LEFT JOIN adm_supplier AS T6
ON T1.supplier_id = T6.id
AND T6.delete_flag = '0'
LEFT JOIN adm_practitioner AS T7
ON T1.practitioner_id = T7.id
AND T7.delete_flag = '0'
LEFT JOIN wor_supply_delivery AS T5
ON T1.id = T5.request_id
INNER JOIN adm_device_definition AS T3
ON T3.id = T1.item_id
LEFT JOIN adm_supplier AS T6
ON T1.supplier_id = T6.id
AND T6.delete_flag = '0'
LEFT JOIN adm_practitioner AS T7
ON T1.practitioner_id = T7.id
AND T7.delete_flag = '0'
WHERE T1.bus_no = #{busNo}
AND T5.status_enum = #{completed}
AND T1.delete_flag = '0'
@@ -114,28 +114,28 @@
<select id="selectChargeDetail" resultType="com.openhis.web.inventorymanage.dto.ItemChargeDetailDto">
SELECT T1.id AS definition_id,
T1.instance_id,
T1.charge_name,
T1.price AS sell_price,
T2.condition_code,
T2.condition_value,
T2.amount AS unit_price,
T3.unit_code,
T3.min_unit_code
T1.instance_id,
T1.charge_name,
T1.price AS sell_price,
T2.condition_code,
T2.condition_value,
T2.amount AS unit_price,
T3.unit_code,
T3.min_unit_code
FROM adm_charge_item_definition AS T1
LEFT JOIN adm_charge_item_def_detail AS T2
ON T1.id = T2.definition_id
AND T2.delete_flag = '0'
LEFT JOIN med_medication_definition AS T3
ON T1.instance_id = T3.id
AND T3.delete_flag = '0'
LEFT JOIN adm_device_definition AS T4
ON T1.instance_id = T4.id
AND T4.delete_flag = '0'
WHERE T1.instance_id IN
<foreach collection="itemIdList" item="itemId" separator="," open="(" close=")">
#{itemId}
</foreach>
LEFT JOIN adm_charge_item_def_detail AS T2
ON T1.id = T2.definition_id
AND T2.delete_flag = '0'
LEFT JOIN med_medication_definition AS T3
ON T1.instance_id = T3.id
AND T3.delete_flag = '0'
LEFT JOIN adm_device_definition AS T4
ON T1.instance_id = T4.id
AND T4.delete_flag = '0'
WHERE T1.instance_id IN
<foreach collection="itemIdList" item="itemId" separator="," open="(" close=")">
#{itemId}
</foreach>
</select>
<select id="selectReceiptPage" resultType="com.openhis.web.inventorymanage.dto.ReceiptPageDto">
SELECT T2.supply_bus_no,
@@ -147,6 +147,7 @@
T2.apply_time,
T2.practitioner_id,
T2.tenant_id,
<<<<<<< HEAD
T2.supplier_id,
T2.purpose_location_id,
T2.total_amount
@@ -187,6 +188,50 @@
T1.supplier_id,
T1.purpose_location_id
ORDER BY T1.apply_time desc
=======
T2.purpose_location_id,
CASE
WHEN T2.type_enum IN (#{purchaseInventory}, #{productReturn}) THEN T2.supplier_id
ELSE NULL END AS supplier_id,
T2.total_amount
FROM (
SELECT T1.bus_no AS supply_bus_no,
T1.status_enum,
T1.type_enum,
T1.approver_id,
T1.approval_time,
T1.applicant_id,
T1.apply_time,
T1.practitioner_id,
T1.tenant_id,
T1.purpose_location_id,
MAX(CASE
WHEN T1.type_enum IN (#{purchaseInventory}, #{productReturn}) THEN T1.supplier_id
ELSE NULL END) AS supplier_id,
SUM(T1.total_price) AS total_amount
FROM wor_supply_request AS T1
LEFT JOIN adm_supplier T3
ON T3.id = T1.supplier_id AND T3.delete_flag = '0' AND T3.tenant_id = 1
LEFT JOIN adm_location T4
ON T4.id = T1.purpose_location_id AND T4.delete_flag = '0' AND T4.tenant_id = 1
WHERE T1.status_enum IN (#{approval}, #{agree}, #{reject})
AND T1.type_enum IN
(#{productBatchTransfer}, #{productTransfer}, #{productReturn}, #{productStocktaking},
#{productBatchStocktaking}, #{purchaseInventory}, #{lossReportForm}, #{issueInventory},
#{returnIssue})
AND T1.delete_flag = '0'
GROUP BY T1.bus_no,
T1.status_enum,
T1.type_enum,
T1.approver_id,
T1.approval_time,
T1.applicant_id,
T1.apply_time,
T1.practitioner_id,
T1.tenant_id,
T1.purpose_location_id
ORDER BY T1.apply_time desc
>>>>>>> v1.3
) AS T2
${ew.customSqlSegment}
</select>

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

@@ -77,7 +77,10 @@
T1.unit_price,
T1.total_price,
mmr.prescription_no,
<<<<<<< HEAD
mmr.prescription_no,
=======
>>>>>>> v1.3
mmr.method_code,
mmr.rate_code,
mmr.dose,
@@ -147,4 +150,97 @@
AND T1.delete_flag = '0'
</select>
<select id="selectEncounterPatientPrescriptionWithPrice"
resultType="com.openhis.web.chargemanage.dto.EncounterPatientPrescriptionDto">
SELECT final_res.*,
(SELECT SUM(amount)
FROM fin_payment_rec_detail
WHERE reconciliation_id = final_res.payment_id
AND pay_enum IN (#{self}, #{selfVx}, #{selfAli}, #{selfUnion})) AS received_amount,
(SELECT amount
FROM fin_payment_rec_detail
WHERE reconciliation_id = final_res.payment_id
AND pay_enum = #{discountCode}) AS discount_amount
FROM (SELECT T1.encounter_id,
T1.id,
T1.patient_id,
T1.context_enum,
T1.status_enum,
T1.requesting_org_id,
T1.quantity_value,
T1.quantity_unit,
T1.unit_price,
T1.total_price,
mmr.prescription_no,
mmr.method_code,
mmr.rate_code,
mmr.dose,
mmr.dose_unit_code,
T1.bus_no,
T1.entered_date,
T1.account_id,
T1.service_table,
T1.service_id,
T5.enterer_id,
T5.bill_date,
T5.id AS payment_id,
T6.contract_no,
T7.med_type_code,
T8.contract_name,
CASE
WHEN T1.context_enum = #{activity} THEN T2."name"
WHEN T1.context_enum = #{medication} THEN T3."name"
WHEN T1.context_enum = #{device} THEN T4."name"
END AS item_name,
CASE
WHEN T1.context_enum = #{activity} THEN T2.yb_no
WHEN T1.context_enum = #{medication} THEN T3.yb_no
WHEN T1.context_enum = #{device} THEN T4.yb_no
END AS yb_no,
CASE
WHEN T1.context_enum = #{activity} THEN T2.id
WHEN T1.context_enum = #{medication} THEN T3.id
WHEN T1.context_enum = #{device} THEN T4.id
END AS item_id,
T5.tendered_amount AS receivable_amount
FROM adm_charge_item AS T1
LEFT JOIN wor_activity_definition AS T2
ON T1.context_enum = #{activity}
AND T1.product_id = T2.id
AND T2.delete_flag = '0'
LEFT JOIN med_medication_definition AS T3
ON T1.context_enum = #{medication}
AND T1.product_id = T3.id
AND T3.delete_flag = '0'
LEFT JOIN adm_device_definition AS T4
ON T1.context_enum = #{device}
AND T1.product_id = T4.id
AND T4.delete_flag = '0'
LEFT JOIN fin_payment_reconciliation AS T5
ON T1.id::TEXT = ANY(string_to_array(T5.charge_item_ids, ','))
AND T5.delete_flag = '0'
AND T5.status_enum = 1
LEFT JOIN adm_account AS T6
ON T1.account_id = T6.id
AND T6.delete_flag = '0'
LEFT JOIN adm_encounter_diagnosis AS T7
ON T1.encounter_id = T7.encounter_id
AND T1.condition_id = T7.condition_id
AND T7.delete_flag = '0'
LEFT JOIN fin_contract AS T8
ON T6.contract_no = T8.bus_no
AND T8.delete_flag = '0'
LEFT JOIN med_medication_request AS mmr ON mmr.id = T1.service_id AND mmr.delete_flag = '0'
WHERE T1.encounter_id = #{encounterId}
AND T1.status_enum IN (#{planned}
, #{billable}
, #{billed}
, #{refunding}
, #{refunded}
, #{partRefund})
AND T1.context_enum != #{register}
AND T1.delete_flag = '0') final_res
</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

@@ -10,14 +10,16 @@
T3.NAME,
T3.gender_enum,
T3.py_str,
T3.wb_str
T3.wb_str,
T3.dr_profttl_code
FROM (
SELECT T1.tenant_id,
T1.ID,
T1.NAME,
T1.gender_enum,
T1.py_str,
T1.wb_str
T1.wb_str,
T1.dr_profttl_code
FROM adm_practitioner AS T1
WHERE T1.delete_flag = '0'
AND EXISTS(SELECT 1
@@ -93,6 +95,7 @@
T13.charge_item_ids,
T13.id AS payment_id,
ai.picture_url AS picture_url,
<<<<<<< HEAD
T8.birth_date AS birth_date,
T14.create_time AS return_date,
T14.return_reason AS return_reason,
@@ -101,6 +104,9 @@
T14.display_amount AS refund_amount,
T6.contract_no AS contract_no,
T16.refund_method AS refund_method
=======
T8.birth_date AS birth_date
>>>>>>> v1.3
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'

View File

@@ -31,6 +31,9 @@
<result property="prescriptionNo" column="prescription_no"/>
<result property="groupId" column="group_id"/>
<result property="sortNumber" column="sort_number"/>
<result property="chrgitmLv" column="chrgitm_lv"/>
<result property="chineseHerbsDoseQuantity" column="chinese_herbs_dose_quantity"/>
<result property="basicFlag" column="basic_flag"/>
</collection>
</resultMap>
<resultMap id="TreatmentPrintInfoMap" type="com.openhis.web.common.dto.AdvicePrintInfoDto">
@@ -265,7 +268,7 @@
</choose>
<choose>
<when test="objLocationId != null and objLocationId != ''">
AND T1.location_id IN (#{orgLocationId}, #{objLocationId})
AND T1.location_id IN (#{orgLocationId})
</when>
<otherwise>
AND T1.location_id = #{orgLocationId}
@@ -332,6 +335,7 @@
<select id="selectPrescriptionPrintInfo" resultMap="PrescriptionPrintInfoMap">
SELECT ae.yb_class_enum AS encounter_yb_class,
<<<<<<< HEAD
mmr.prescription_no ,
fc.contract_name ,
ap."name" AS patient_name,
@@ -358,6 +362,39 @@
mmr.dose_unit_code,
mmr.sort_number,
mmr.group_id
=======
mmr.prescription_no ,
fc.contract_name ,
ap."name" AS patient_name,
ap.gender_enum ,
ap.birth_date ,
ae.bus_no AS encounter_no,
ao."name" AS department_name,
ccd."name" AS condition_name,
ap.phone ,
mmr.req_authored_time AS req_time,
ap2."name" AS doctor_name,
ap3."name" AS dispense_doctor_name,
ap4."name" AS charge_doctor_name,
ap5."name" AS preparer_doctor_name,
mmd2."name" AS item_name,
mm.total_volume ,
mmr.dose ,
mmr.method_code ,
aci.unit_price ,
aci.total_price ,
mmr.quantity,
mmr.rate_code ,
mmr.unit_code ,
mmr.dose_unit_code,
mmr.sort_number,
mmr.group_id,
mmd2.chrgitm_lv,
mmr.chinese_herbs_dose_quantity,
ap.address,
ae.patient_id,
mmd2.basic_flag
>>>>>>> v1.3
FROM med_medication_request mmr
LEFT JOIN med_medication_dispense mmd
ON mmd.med_req_id = mmr.id
@@ -413,6 +450,7 @@
</select>
<select id="selectTreatmentPrintInfo" resultMap="TreatmentPrintInfoMap">
SELECT ae.yb_class_enum AS encounter_yb_class,
<<<<<<< HEAD
fc.contract_name ,
ap."name" AS patient_name,
ap.gender_enum ,
@@ -453,6 +491,51 @@
LEFT JOIN adm_practitioner ap2
ON ap2.id = wdr.requester_id
AND ap2.delete_flag = '0'
=======
fc.contract_name ,
ap."name" AS patient_name,
ap.gender_enum ,
ap.birth_date ,
ae.bus_no AS encounter_no,
ao."name" AS department_name,
ap.phone ,
ae.reception_time AS req_time,
ap2."name" AS doctor_name,
aci.unit_price ,
aci.total_price,
wdr.quantity ,
wdr.unit_code ,
add2."name" AS item_name,
ap.address,
ae.patient_id,
add2.chrgitm_lv
FROM wor_device_request wdr
LEFT JOIN adm_device_definition add2
ON wdr.device_def_id = add2.id
AND add2.delete_flag = '0'
LEFT JOIN adm_charge_item aci
ON aci.service_id = wdr.id
AND aci.delete_flag = '0'
LEFT JOIN adm_encounter ae
ON wdr.encounter_id = ae.id
AND ae.delete_flag = '0'
LEFT JOIN adm_patient ap
ON ae.patient_id = ap.id
AND ap.delete_flag = '0'
LEFT JOIN adm_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.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 adm_practitioner ap2
ON ap2.id = wdr.requester_id
AND ap2.delete_flag = '0'
>>>>>>> v1.3
WHERE wdr.delete_flag = '0'
AND wdr.id IN
<foreach collection="requestIds" item="requestId" separator="," open="(" close=")">
@@ -460,6 +543,7 @@
</foreach>
UNION
SELECT ae.yb_class_enum AS encounter_yb_class,
<<<<<<< HEAD
fc.contract_name ,
ap."name" AS patient_name,
ap.gender_enum ,
@@ -500,6 +584,51 @@
LEFT JOIN adm_practitioner ap2
ON ap2.id = wsr.requester_id
AND ap2.delete_flag = '0'
=======
fc.contract_name ,
ap."name" AS patient_name,
ap.gender_enum ,
ap.birth_date ,
ae.bus_no AS encounter_no,
ao."name" AS department_name,
ap.phone ,
ae.reception_time AS req_time,
ap2."name" AS doctor_name,
aci.unit_price ,
aci.total_price,
wsr.quantity ,
wsr.unit_code ,
wad."name" AS item_name,
ap.address,
ae.patient_id,
wad.chrgitm_lv
FROM wor_service_request wsr
LEFT JOIN wor_activity_definition wad
ON wsr.activity_id = wad.id
AND wad.delete_flag = '0'
LEFT JOIN adm_charge_item aci
ON aci.service_id = wsr.id
AND aci.delete_flag = '0'
LEFT JOIN adm_encounter ae
ON wsr.encounter_id = ae.id
AND ae.delete_flag = '0'
LEFT JOIN adm_patient ap
ON ae.patient_id = ap.id
AND ap.delete_flag = '0'
LEFT JOIN adm_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.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 adm_practitioner ap2
ON ap2.id = wsr.requester_id
AND ap2.delete_flag = '0'
>>>>>>> v1.3
WHERE wsr.delete_flag = '0'
AND wsr.id IN
<foreach collection="requestIds" item="requestId" separator="," open="(" close=")">
@@ -522,4 +651,72 @@
AND status_enum = #{statusEnum}
</select>
<select id="getPractitionerSignature" resultType="string">
SELECT signature
FROM adm_practitioner
WHERE id = #{practitionerId}
</select>
<select id="getActivityDefinition" resultType="com.openhis.web.common.dto.ActivityDefinitionDto">
SELECT ID AS
activity_definition_id,
NAME AS activity_definition_name
FROM wor_activity_definition
WHERE delete_flag = '0'
AND status_enum = #{statusEnum}
</select>
<select id="selectMedicineInventoryDetail"
resultType="com.openhis.web.pharmacymanage.dto.InventoryDetailDto">
SELECT wii.expiration_date ,
wii.location_id ,
wii.item_id ,
wii.lot_number AS inventory_lot_number,
wii.unit_code AS inventory_unit_code,
wii.quantity AS inventory_quantity,
mmd.part_percent ,
mmd.unit_code AS max_unit_code
FROM wor_inventory_item wii
LEFT JOIN med_medication_definition mmd
ON wii.item_id = mmd.id
AND mmd.delete_flag = '0'
WHERE wii.delete_flag = '0'
AND wii.item_id IN
<foreach item="itemId" collection="medicationIdList" index="index"
separator="," close=")" open="(">
#{itemId}
</foreach>
AND wii.location_id IN
<foreach item="locationId" collection="locationIdList" index="index"
separator="," close=")" open="(">
#{locationId}
</foreach>
AND wii.inventory_status_enum = #{active}
</select>
<select id="selectDeviceInventoryDetail"
resultType="com.openhis.web.pharmacymanage.dto.InventoryDetailDto">
SELECT wii.expiration_date ,
wii.location_id ,
wii.item_id ,
wii.lot_number AS inventory_lot_number,
wii.unit_code AS inventory_unit_code,
wii.quantity AS inventory_quantity,
add2.part_percent ,
add2.unit_code AS max_unit_code
FROM wor_inventory_item wii
LEFT JOIN adm_device_definition add2
ON wii.item_id = add2.id
AND add2.delete_flag = '0'
WHERE wii.delete_flag = '0'
AND wii.item_id IN
<foreach item="itemId" collection="deviceIdList" index="index"
separator="," close=")" open="(">
#{itemId}
</foreach>
AND wii.location_id IN
<foreach item="locationId" collection="locationIdList" index="index"
separator="," close=")" open="(">
#{locationId}
</foreach>
AND wii.inventory_status_enum = #{active}
</select>
</mapper>

View File

@@ -5,6 +5,39 @@
resultType="com.openhis.web.datadictionary.dto.DiagnosisTreatmentDto">
SELECT
<<<<<<< HEAD
=======
T3.id,
T3.category_code,
T3.bus_no,
T3.name,
T3.py_str,
T3.wb_str,
T3.type_enum,
T3.permitted_unit_code,
T3.org_id,
T3.location_id,
T3.yb_flag,
T3.yb_no,
T3.yb_match_flag,
T3.status_enum,
T3.body_site_code,
T3.specimen_code,
T3.description_text,
T3.rule_id,
T3.tenant_id,
T3.item_type_code,
T3.yb_type,
T3.price_code,
T3.retail_price,
T3.maximum_retail_price,
T3.chrgitm_lv,--
T3.children_json,--json
T3.pricing_flag--
FROM
(
SELECT
>>>>>>> v1.3
T1.id,
T1.category_code,
T1.bus_no,
@@ -27,6 +60,7 @@
T1.chrgitm_lv,--医保等级
T2.type_code as item_type_code,
T2.yb_type,
T2.price_code,
T2.price as retail_price,--零售价
T4.amount as maximum_retail_price,--最高零售价
T1.children_json,--子项json
@@ -76,6 +110,7 @@
T1.tenant_id,
T2.type_code as item_type_code,
T2.yb_type,
T2.price_code,
T2.price as retail_price,--零售价,
( SELECT T4.amount
FROM adm_charge_item_definition T5

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,12 @@
abi.position_id,
abi.restricted_flag,
abi.restricted_scope,
<<<<<<< HEAD
abi.dosage_instruction
=======
abi.dosage_instruction,
abi.chrgitm_lv
>>>>>>> v1.3
from (
<if test="adviceTypes == null or adviceTypes.contains(1)">
(SELECT
@@ -82,7 +87,12 @@
T6.def_location_id AS position_id,
t1.restricted_flag AS restricted_flag,
t1.restricted_scope AS restricted_scope,
<<<<<<< HEAD
T1.dosage_instruction AS dosage_instruction
=======
T1.dosage_instruction AS dosage_instruction,
T1.chrgitm_lv as chrgitm_lv
>>>>>>> v1.3
FROM med_medication_definition AS t1
INNER JOIN med_medication AS T2 ON T2.medication_def_id = T1.ID
AND T2.delete_flag = '0' AND T2.status_enum = #{statusEnum}
@@ -93,7 +103,7 @@
AND T5.delete_flag = '0' AND T5.status_enum = #{statusEnum}
LEFT JOIN adm_organization_location AS T6
ON T6.distribution_category_code = T1.category_code
AND T6.delete_flag = '0' AND T6.organization_id = #{organizationId} AND
AND T6.delete_flag = '0' AND T6.item_code = '1' AND T6.organization_id = #{organizationId} AND
(CURRENT_TIME :: time (6) BETWEEN T6.start_time AND T6.end_time)
WHERE T1.delete_flag = '0'
AND T2.status_enum = #{statusEnum}
@@ -154,7 +164,12 @@
T5.def_location_id AS position_id,
0 AS restricted_flag,
'' AS restricted_scope,
<<<<<<< HEAD
'' AS dosage_instruction
=======
'' AS dosage_instruction,
T1.chrgitm_lv as chrgitm_lv
>>>>>>> v1.3
FROM adm_device_definition AS T1
LEFT JOIN adm_supplier AS T2
ON T2.ID = T1.supply_id
@@ -162,7 +177,7 @@
LEFT JOIN adm_charge_item_definition AS T4 ON T4.instance_id = T1.ID
AND T4.delete_flag = '0' AND T4.status_enum = #{statusEnum}
LEFT JOIN adm_organization_location AS T5 ON T5.distribution_category_code = T1.category_code
AND T5.delete_flag = '0' AND T5.organization_id = #{organizationId} AND
AND T5.delete_flag = '0' AND T5.item_code = '2' AND T5.organization_id = #{organizationId} AND
(CURRENT_TIME :: time (6) BETWEEN T5.start_time AND T5.end_time)
WHERE T1.delete_flag = '0'
<if test="adviceDefinitionIdParamList != null and !adviceDefinitionIdParamList.isEmpty()">
@@ -220,7 +235,12 @@
T3.organization_id AS position_id,
0 AS restricted_flag,
'' AS restricted_scope,
<<<<<<< HEAD
'' AS dosage_instruction
=======
'' AS dosage_instruction,
T1.chrgitm_lv as chrgitm_lv
>>>>>>> v1.3
FROM wor_activity_definition AS T1
LEFT JOIN adm_charge_item_definition AS T2
ON T2.instance_id = T1.ID
@@ -414,7 +434,8 @@
T1.dispense_per_duration AS dispense_per_duration,
T2.part_percent AS part_percent,
ccd.name AS condition_definition_name,
T1.sort_number AS sort_number
T1.sort_number AS sort_number,
T1.based_on_id AS based_on_id
FROM med_medication_request AS T1
LEFT JOIN med_medication_definition AS T2 ON T2.ID = T1.medication_id
AND T2.delete_flag = '0'
@@ -433,7 +454,7 @@
AND T1.patient_id = #{patientId} AND T1.encounter_id != #{encounterId}
</if>
AND T1.refund_medicine_id IS NULL
ORDER BY T1.status_enum,T1.sort_number,T1.group_id)
ORDER BY T1.status_enum,T1.sort_number)
UNION ALL
(SELECT 2 AS advice_type,
T1.id AS request_id,
@@ -464,7 +485,8 @@
null AS dispense_per_duration,
T2.part_percent AS part_percent,
'' AS condition_definition_name,
99 AS sort_number
99 AS sort_number,
T1.based_on_id AS based_on_id
FROM wor_device_request AS T1
LEFT JOIN adm_device_definition AS T2 ON T2.ID = T1.device_def_id
AND T2.delete_flag = '0'
@@ -511,7 +533,8 @@
null AS dispense_per_duration,
1 AS part_percent,
'' AS condition_definition_name,
99 AS sort_number
99 AS sort_number,
T1.based_on_id AS based_on_id
FROM wor_service_request AS T1
LEFT JOIN wor_activity_definition AS T2
ON T2.ID = T1.activity_id
@@ -520,7 +543,10 @@
T3.service_table = #{WOR_SERVICE_REQUEST}
LEFT JOIN adm_organization AS ao ON ao.ID = T1.org_id AND ao.delete_flag = '0'
WHERE T1.delete_flag = '0' AND T1.generate_source_enum = #{generateSourceEnum}
<<<<<<< HEAD
AND T1.based_on_table is null
=======
>>>>>>> v1.3
AND T1.parent_id IS NULL
AND T1.refund_service_id IS NULL
<if test="historyFlag == '0'.toString()">
@@ -594,6 +620,33 @@
AND tad.status_enum = #{status}
AND tad.type_code = #{typeCode}
AND tad.item_no = #{itemNo}
<<<<<<< HEAD
=======
</select>
<select id="getProofAndTestHistory" resultType="com.openhis.web.doctorstation.dto.ProofAndTestHistoryDto">
SELECT wsr.authored_time,
aper.NAME AS requester
FROM wor_service_request AS wsr
LEFT JOIN adm_practitioner AS aper ON aper.ID = wsr.requester_id
WHERE wsr.delete_flag = '0'
AND wsr.status_enum = #{status}
AND wsr.patient_id = #{patientId}
AND wsr.activity_id = #{adviceDefinitionId}
AND wsr.authored_time >= CURRENT_DATE - INTERVAL '30 days'
</select>
<select id="getProofAndTestResult" resultType="com.openhis.web.doctorstation.dto.ProofAndTestResultDto">
SELECT wsr.bus_no,
wad.NAME advice_name
FROM wor_service_request AS wsr
LEFT JOIN wor_activity_definition AS wad ON wad.ID = wsr.activity_id
WHERE wsr.delete_flag = '0'
AND wsr.status_enum != #{status}
AND wsr.encounter_id = #{encounterId}
AND EXISTS ( SELECT 1 FROM wor_activity_definition AS wad WHERE wad.type_enum = #{typeEnum}
AND wad.ID = wsr.activity_id )
>>>>>>> v1.3
</select>
</mapper>

View File

@@ -14,7 +14,6 @@
T10.phone,
T10.birth_date,
T10.status_enum,
T10.allergy_history_flag,
T10.account_id,
T10.type_code,
T10.contract_name,
@@ -49,11 +48,15 @@
T1.create_time AS register_time,
T1.reception_time AS reception_time,
T1.organization_id AS org_id,
<<<<<<< HEAD
T8.bus_no AS bus_no,
CASE
WHEN T9.patient_id IS NOT NULL THEN 1
ELSE 0
END AS allergy_history_flag
=======
T8.bus_no AS bus_no
>>>>>>> v1.3
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'
@@ -72,8 +75,6 @@
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 cli_allergy_intolerance AS T9
ON T1.patient_id = T9.patient_id AND T9.clinical_status_enum != #{ClinicalStatus} AND T9.delete_flag = '0'
WHERE
T1.delete_flag = '0'
<!-- 当前登录账号ID 和 当前登录账号所属的科室ID 用于控制数据权限 -->
@@ -115,7 +116,7 @@
ap.birth_date AS birth_date,
ap.gender_enum AS gender_enum,
ccd.NAME AS condition_definition_name,
mmr.create_time AS request_time,
mmr.req_authored_time AS request_time,
mmr.practitioner_id,
aper.NAME AS practitioner_name,
ae.organization_id,
@@ -139,6 +140,7 @@
mmr.delete_flag = '0'
AND (mmr.prescription_no LIKE 'P%'
OR mmr.prescription_no LIKE 'C%')
-- AND mmr.status_enum = 3
AND mmr.refund_medicine_id IS NULL
ORDER BY
mmr.prescription_no DESC) AS ppi
@@ -149,7 +151,7 @@
SELECT mmr.prescription_no,
mmr.ID AS request_id,
mmr.practitioner_id AS requester_id,
mmr.create_time AS request_time,
mmr.req_authored_time AS request_time,
mmr.group_id AS group_id,
mmd.NAME AS advice_name,
mm.total_volume AS volume,
@@ -190,4 +192,22 @@
</if>
</select>
<select id="getReceptionStatistics" resultType="com.openhis.web.doctorstation.dto.ReceptionStatisticsDto">
SELECT aep.practitioner_id,
aper.NAME AS practitioner_name,
COUNT(1) AS reception_nums
FROM adm_encounter_participant AS aep
LEFT JOIN adm_practitioner AS aper ON aper.ID = aep.practitioner_id
WHERE aep.delete_flag = '0'
AND aep.type_code = #{typeCode}
<if test="practitionerId != null">
AND aep.practitioner_id = #{practitionerId}
</if>
AND aep.create_time &gt;= #{startTime} ::timestamp
AND aep.create_time &lt;= #{endTime} ::timestamp
GROUP BY aep.practitioner_id,
aper.NAME
ORDER BY reception_nums DESC
</select>
</mapper>

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

@@ -239,7 +239,11 @@
ON wsr.source_location_id = al.id
AND al.delete_flag = '0'
WHERE wsr.delete_flag = '0'
<<<<<<< HEAD
AND wsd.status_enum IN (#{inProgress}, #{completed})
=======
AND wsd.status_enum IN (#{preparation}, #{completed})
>>>>>>> v1.3
AND wsr.type_enum = #{summaryDispense}
GROUP BY wsr.tenant_id,
wsr.bus_no ,
@@ -260,6 +264,11 @@
mmd.unit_code ,
mmd.min_unit_code ,
mmd.part_percent ,
<<<<<<< HEAD
=======
mmd.manufacturer_text,
mmd.category_code,
>>>>>>> v1.3
mm.total_volume ,
wsr.lot_number,
wsr.item_quantity

View File

@@ -2,5 +2,306 @@
<!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.NurseBillingAppMapper">
<<<<<<< HEAD
=======
<select id="getInNurseBillingPage"
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.unit_price,
ii.total_price
FROM (
( SELECT
T1.encounter_id,
T1.tenant_id,
#{ worDeviceRequest } AS advice_table,
T1.id AS request_id,
T1.use_start_time AS start_time,
T1.use_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,
NULL AS performer_check_id,
T2."name" AS advice_name,
T2.id AS item_id,
T2.SIZE AS volume,
T1.lot_number 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,
al1.id AS position_id,
al1."name" AS position_name,
NULL AS dispense_per_duration,
T2.part_percent AS part_percent,
'' AS condition_definition_name,
2 AS therapy_enum,
NULL AS sort_number,
T1.quantity AS execute_num,
NULL AS day_times,
ae.bus_no,
ap."name" AS patient_name,
al."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,
aci1.unit_price,
aci1.total_price
FROM
wor_device_request AS T1
LEFT JOIN adm_device_definition AS T2 ON T2.id = T1.device_def_id
AND T2.delete_flag = '0'
LEFT JOIN adm_charge_item aci1 on aci1.service_id = T1.id
AND aci1.delete_flag = '0'
LEFT JOIN adm_location al1 ON T1.perform_location = al1.id
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 = 1
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 = 2
AND ael.form_enum = 8
LEFT JOIN adm_location al ON ael.location_id = al.id
AND al.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.generate_source_enum =#{ generateSourceEnum }
AND T1.refund_device_id IS NULL
<if test="startTime!=null and endTime!=null">
AND T1.create_time BETWEEN #{startTime}
AND #{endTime}
</if>
ORDER BY
T1.status_enum)
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,
'' AS condition_definition_name,
T1.therapy_enum AS therapy_enum,
NULL AS sort_number,
T1.quantity AS execute_num,
NULL AS day_times,
ae.bus_no,
ap."name" AS patient_name,
al."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,
aci1.unit_price,
aci1.total_price
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 adm_charge_item aci1 on aci1.service_id = T1.id
AND aci1.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_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.generate_source_enum =#{ generateSourceEnum }
AND T1.refund_service_id IS NULL
<if test="startTime!=null and endTime!=null">
AND T1.create_time BETWEEN #{startTime}
AND #{endTime}
</if>
ORDER BY
T1.status_enum)
) AS ii
${ew.customSqlSegment}
</select>
>>>>>>> v1.3
</mapper>

View File

@@ -62,7 +62,17 @@
AND T7.delete_flag = '0'
LEFT JOIN adm_charge_item AS T8 ON T1.id = T8.service_id
AND T8.delete_flag = '0'
<<<<<<< HEAD
WHERE T1.delete_flag = '0') AS ii
=======
LEFT JOIN adm_encounter AS T9 ON T1.encounter_id = T9.id
AND T9.delete_flag = '0'
WHERE T1.delete_flag = '0'
AND T9.class_enum = #{imp}
AND T1.status_enum = #{requestStatus}
AND T2.status_enum = #{dispenseStatus}
AND T8.status_enum = #{chargeItemStatus}) AS ii
>>>>>>> v1.3
${ew.customSqlSegment}
</select>

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

@@ -64,5 +64,43 @@
ORDER BY T1.id DESC) AS T
${ew.customSqlSegment}
</select>
<<<<<<< HEAD
=======
<select id="getPatientBusNoList" resultType="com.openhis.web.nenu.dto.GfStudentPeisDto">
SELECT T1.bus_no as bus_no
, T.id_number as id_number
, T.student_id as student_id
, T.name as name
, T.physical_exam_result as status
FROM adm_patient_student AS T
INNER JOIN adm_patient AS T1 ON T.patient_id = T1.id
WHERE T.delete_flag = '0'
ORDER BY T.id DESC
LIMIT #{pageSize} OFFSET #{pageNum}
</select>
<select id="getPatientBusNoList1" resultType="com.openhis.web.nenu.dto.GfStudentPeisDto">
SELECT * FROM
(SELECT T1.bus_no as bus_no
, T.id_number as id_number
, T.student_id as student_id
, T.name as name
, T.physical_exam_result as status
FROM adm_patient_student AS T
INNER JOIN adm_patient AS T1 ON T.patient_id = T1.id
WHERE T.delete_flag = '0'
ORDER BY T.id DESC) abc
</select>
<select id="getPatientBusNoCount" resultType="java.lang.Long">
SELECT COUNT(T.id)
FROM adm_patient_student AS T
INNER JOIN adm_patient AS T1 ON T.patient_id = T1.id
WHERE T.delete_flag = '0'
GROUP BY T.id
ORDER BY T.id DESC
LIMIT 1 OFFSET 0
</select>
>>>>>>> v1.3
</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

@@ -23,14 +23,23 @@
T2.birth_date
FROM adm_encounter AS T1
INNER JOIN adm_patient AS T2
ON T1.patient_id = T2.id
AND T2.delete_flag = '0'
INNER JOIN wor_service_request AS T3
ON T1.id = T3.encounter_id
AND T3.refund_service_id IS NULL
AND T3.delete_flag = '0'
ON T1.patient_id = T2.id
AND T2.delete_flag = '0'
LEFT JOIN wor_service_request AS T3
ON T1.id = T3.encounter_id
AND T3.refund_service_id IS NULL
AND T3.delete_flag = '0'
LEFT JOIN wor_device_request AS T4
ON T1.id = T4.encounter_id
AND T4.refund_device_id IS NULL
AND T4.delete_flag = '0'
WHERE T1.class_enum = #{amb}
<<<<<<< HEAD
AND T3.status_enum IN (#{completed},#{cancelled})
=======
AND (T3.status_enum IN (#{completed},#{cancelled})
OR T4.status_enum IN (#{completed},#{cancelled}))
>>>>>>> v1.3
AND T1.delete_flag = '0'
GROUP BY T1.tenant_id,
T1.id,
@@ -75,8 +84,8 @@
ae.tenant_id,
wsr.id AS request_id,
wsr.status_enum AS service_status,
NULL AS dispense_id,
NULL AS dispense_status,
NULL::bigint AS dispense_id,
0 AS dispense_status,
wsr.quantity AS execute_num,
NULL AS quantity,
wsr.unit_code,
@@ -110,13 +119,13 @@
AND wad.delete_flag = '0'
WHERE wsr.status_enum = #{reqCompleted}
AND ae.delete_flag = '0'
UNION ALL
UNION
SELECT ae.id AS encounter_id,
ae.tenant_id,
mmr.id AS request_id,
NULL AS service_status,
dis.id AS dispense_id,
dis.status_enum AS dispense_status,
NULL::bigint AS dispense_id,
0 AS dispense_status,
mmr.execute_num,
mmr.quantity,
mmr.unit_code,
@@ -141,9 +150,6 @@
ON ae.id = mmr.encounter_id
AND mmr.refund_medicine_id IS NULL
AND mmr.delete_flag = '0'
LEFT JOIN med_medication_dispense dis
ON dis.med_req_id = mmr.id
AND dis.delete_flag = '0'
INNER JOIN med_medication_definition mmd
ON mmr.medication_id = mmd.id
AND (mmd.skin_test_flag = 1 OR mmd.inject_flag = 1)
@@ -155,80 +161,79 @@
ON aci.service_id = mmr.id
AND aci.delete_flag = '0'
AND aci.refund_id IS NULL
WHERE dis.status_enum != #{draft}
AND ae.delete_flag = '0'
UNION ALL
WHERE mmr.status_enum = #{reqCompleted}
AND ae.delete_flag = '0'
UNION
SELECT ae.id AS encounter_id,
ae.tenant_id,
wdr.id AS request_id,
NULL AS service_status,
wdd.id AS dispense_id,
wdd.status_enum AS dispense_status,
NULL AS execute_num,
wdr.quantity,
wdr.unit_code,
wdr.bus_no,
aci.status_enum AS charge_status,
aci.unit_price,
aci.total_price,
#{worDeviceRequest} AS request_table,
NULL AS service_category,
dev.category_code AS device_category,
NULL AS med_category,
dev."name" AS item_name,
dev.py_str,
dev.wb_str,
dev.size,
NULL AS group_id,
NULL AS sort_number,
NULL AS method_code,
NULL AS dispense_per_duration
ae.tenant_id,
wdr.id AS request_id,
NULL AS service_status,
wdd.id AS dispense_id,
wdd.status_enum AS dispense_status,
NULL AS execute_num,
wdr.quantity,
wdr.unit_code,
wdr.bus_no,
aci.status_enum AS charge_status,
aci.unit_price,
aci.total_price,
#{worDeviceRequest} AS request_table,
NULL AS service_category,
dev.category_code AS device_category,
NULL AS med_category,
dev."name" AS item_name,
dev.py_str,
dev.wb_str,
dev.size,
NULL AS group_id,
NULL AS sort_number,
NULL AS method_code,
NULL AS dispense_per_duration
FROM adm_encounter ae
INNER JOIN wor_device_request wdr
ON wdr.encounter_id = ae.id
AND wdr.delete_flag = '0'
AND wdr.refund_device_id IS NULL
LEFT JOIN wor_device_dispense wdd
ON wdd.device_req_id = wdr.id
AND wdd.delete_flag = '0'
LEFT JOIN adm_charge_item aci
ON aci.service_id = wdr.id
AND aci.delete_flag = '0'
AND aci.refund_id IS NULL
INNER JOIN adm_device_definition dev
ON dev.id = wdr.device_def_id
AND dev.delete_flag = '0'
INNER JOIN wor_device_request wdr
ON wdr.encounter_id = ae.id
AND wdr.delete_flag = '0'
LEFT JOIN wor_device_dispense wdd
ON wdd.device_req_id = wdr.id
AND wdd.delete_flag = '0'
LEFT JOIN adm_charge_item aci
ON aci.service_id = wdr.id
AND aci.delete_flag = '0'
INNER JOIN adm_device_definition dev
ON dev.id = wdr.device_def_id
AND dev.delete_flag = '0'
WHERE wdd.status_enum != #{draft}
AND ae.delete_flag = '0'
AND ae.delete_flag = '0'
) AS ii
${ew.customSqlSegment}
ORDER BY ii.sort_number
</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
cp.status_enum,
cp.occurrence_time,
cp.create_time,
cp.recorded_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'
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

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

@@ -53,7 +53,11 @@
FROM fin_payment_reconciliation t
LEFT JOIN adm_patient patient ON patient.id = t.patient_id
LEFT JOIN adm_practitioner pra ON pra.id = t.enterer_id
<<<<<<< HEAD
LEFT JOIN adm_invoice invoice ON invoice.reconciliation_id = t.id
=======
LEFT JOIN adm_invoice invoice ON invoice.reconciliation_id = t.id AND invoice.delete_flag = '0'
>>>>>>> v1.3
LEFT JOIN adm_encounter enc ON enc.id = t.enterer_id
WHERE 1 = 1
AND t.delete_flag = '0'
@@ -248,4 +252,18 @@
#{chargeItemId}
</foreach>
</select>
<select id="getThreePartCallBackVoPage" resultType="com.openhis.web.paymentmanage.dto.ThreePartCallBackVo">
SELECT *
FROM
(select three.*,
patient.name as patient_name,
payment.payment_no as payment_no
from fin_three_part_pay_call_back three
left join fin_payment_reconciliation payment on three.payment_id = payment.id
left join adm_patient patient on payment.patient_id = patient.id
order by three.create_time DESC
) as T1
${ew.customSqlSegment}
</select>
</mapper>

View File

@@ -4,6 +4,7 @@
<select id="selectAmbPractitionerDetailPage"
resultType="com.openhis.web.pharmacymanage.dto.MedDetailedAccountPageDto">
select A.outpatient_no,
<<<<<<< HEAD
A.prescription_no,
A.patient_name,
A.practitioner_id,
@@ -191,6 +192,232 @@
ORDER BY A.dispense_time DESC
</when>
<when test="dispenseEnum == 2">
=======
A.prescription_no,
A.patient_name,
A.practitioner_id,
A.practitioner_name,
A.medication_name,
A.py_str,
A.bus_no,
A.dispense_no,
A.yb_no,
A.total_volume,
A.dispense_quantity,
A.dispense_price,
A.refund_quantity,
A.refund_price,
A.lot_number,
A.manufacturer_text,
A.supplier_name,
A.unit_code,
A.refund_unit_code,
A.dispense_time,
A.location_id,
A.item_table,
A.cost_price
from (
WITH refund_info AS (
SELECT mmr.refund_medicine_id,
mmd.dispense_quantity,
mmd.unit_code,
aci.total_price
FROM med_medication_dispense mmd
LEFT JOIN med_medication_request mmr
ON mmd.med_req_id = mmr.id
AND mmr.delete_flag = '0'
INNER JOIN adm_charge_item aci
ON aci.service_id = mmr.refund_medicine_id
AND aci.delete_flag = '0'
WHERE mmd.status_enum = #{refunded}
AND mmd.delete_flag = '0'
AND mmr.refund_medicine_id IS not null
),
refund_device_info AS (
SELECT wdr.refund_device_id,
wdd.dispense_quantity,
wdd.unit_code,
aci.total_price
FROM wor_device_dispense wdd
LEFT JOIN wor_device_request wdr
ON wdd.device_req_id = wdr.id
AND wdr.delete_flag = '0'
INNER JOIN adm_charge_item aci
ON aci.service_id = wdr.refund_device_id
AND aci.delete_flag = '0'
WHERE wdd.status_enum = #{refunded}
AND wdd.delete_flag = '0'
AND wdr.refund_device_id IS not null
)
SELECT def."name" AS medication_name,
def.py_str,
def.bus_no,
def.yb_no,
def.manufacturer_text,
mmr.prescription_no,
ae.bus_no AS outpatient_no,
pat.name AS patient_name,
mm.total_volume,
mmd.unit_code,
mmd.bus_no AS dispense_no,
mmd.lot_number,
mmd.dispense_quantity,
mmd.encounter_id,
mmd.practitioner_id,
mmd.dispense_time,
ap.name AS practitioner_name,
mmd.location_id,
aci.total_price AS dispense_price,
ri.dispense_quantity AS refund_quantity,
ri.unit_code AS refund_unit_code,
ri.total_price AS refund_price,
wii.supplier_id,
sup.name AS supplier_name,
mmd.tenant_id,
#{medMedicationDefinition} AS item_table,
CASE
WHEN mmd.unit_code = def.min_unit_code THEN
(mmd.dispense_quantity * acidd.amount) / COALESCE(def.part_percent, 1)
ELSE
mmd.dispense_quantity * acidd.amount
END AS cost_price
FROM med_medication_dispense mmd
LEFT JOIN med_medication_request mmr
ON mmd.med_req_id = mmr.id
AND mmr.delete_flag = '0'
INNER JOIN adm_charge_item aci
ON aci.service_id = mmr.id
AND aci.delete_flag = '0'
LEFT JOIN med_medication_definition def
ON mmd.medication_id = def.id
AND def.delete_flag = '0'
LEFT JOIN med_medication mm
ON mm.medication_def_id = def.id
AND mm.delete_flag = '0'
LEFT JOIN wor_inventory_item wii
ON wii.item_id = mmd.medication_id
AND wii.lot_number = mmd.lot_number
AND wii.location_id = mmd.location_id
AND wii.delete_flag = '0'
LEFT JOIN refund_info AS ri
ON ri.refund_medicine_id = mmr.id
LEFT JOIN adm_location al
ON al.id = mmd.location_id
LEFT JOIN adm_practitioner ap
ON ap.id = mmd.practitioner_id
LEFT JOIN adm_patient pat
ON pat.id = mmd.patient_id
LEFT JOIN adm_encounter ae
ON ae.id = mmd.encounter_id
LEFT JOIN adm_supplier sup
ON sup.id = wii.supplier_id
LEFT JOIN adm_charge_item_definition acid on acid.instance_table = #{medMedicationDefinition} AND
acid.instance_id = def.id AND acid.delete_flag = '0'
LEFT JOIN adm_charge_item_def_detail acidd
ON acid.id = acidd.definition_id
AND acidd.id = (
SELECT cidd.id
FROM adm_charge_item_def_detail cidd
WHERE acid.id = cidd.definition_id
AND cidd.condition_code = #{costEnum}
AND cidd.delete_flag = '0'
AND cidd.condition_value = mmd.lot_number
ORDER BY create_time DESC
LIMIT 1
)
WHERE mmd.status_enum = #{completed}
AND mmr.status_enum = #{agree}
AND ae.class_enum = #{flg}
AND mmd.delete_flag = '0'
UNION
SELECT def."name" AS medication_name,
def.py_str,
def.bus_no,
def.yb_no,
def.manufacturer_text,
mmr.prescription_no,
ae.bus_no AS outpatient_no,
pat.name AS patient_name,
def.size AS total_volume,
mmd.unit_code,
mmd.bus_no AS dispense_no,
mmd.lot_number,
mmd.dispense_quantity,
mmd.encounter_id,
mmd.performer_id AS practitioner_id,
mmd.dispense_time,
ap.name AS practitioner_name,
mmd.location_id,
aci.total_price AS dispense_price,
ri.dispense_quantity AS refund_quantity,
ri.unit_code AS refund_unit_code,
ri.total_price AS refund_price,
wii.supplier_id,
sup.name AS supplier_name,
mmd.tenant_id,
#{admDeviceDefinition} AS item_table,
CASE
WHEN mmd.unit_code = def.min_unit_code THEN
(mmd.dispense_quantity * acidd.amount) / COALESCE(def.part_percent, 1)
ELSE
mmd.dispense_quantity * acidd.amount
END AS cost_price
FROM wor_device_dispense mmd
LEFT JOIN wor_device_request mmr
ON mmd.device_req_id = mmr.id
AND mmr.delete_flag = '0'
INNER JOIN adm_charge_item aci
ON aci.service_id = mmr.id
AND aci.delete_flag = '0'
LEFT JOIN adm_device_definition def
ON mmd.device_def_id = def.id
AND def.delete_flag = '0'
LEFT JOIN adm_device mm
ON mm.device_def_id = def.id
AND mm.delete_flag = '0'
LEFT JOIN wor_inventory_item wii
ON wii.item_id = mmd.device_def_id
AND wii.lot_number = mmd.lot_number
AND wii.location_id = mmd.location_id
AND wii.delete_flag = '0'
LEFT JOIN refund_device_info AS ri
ON ri.refund_device_id = mmr.id
LEFT JOIN adm_location al
ON al.id = mmd.location_id
LEFT JOIN adm_practitioner ap
ON ap.id = mmd.performer_id
LEFT JOIN adm_patient pat
ON pat.id = mmd.patient_id
LEFT JOIN adm_encounter ae
ON ae.id = mmd.encounter_id
LEFT JOIN adm_supplier sup
ON sup.id = wii.supplier_id
LEFT JOIN adm_charge_item_definition acid ON acid.instance_table = #{admDeviceDefinition} AND acid.instance_id
= def.id AND acid.delete_flag = '0'
LEFT JOIN adm_charge_item_def_detail acidd
ON acid.id = acidd.definition_id
AND acidd.id = (
SELECT cidd.id
FROM adm_charge_item_def_detail cidd
WHERE acid.id = cidd.definition_id
AND cidd.condition_code = #{costEnum}
AND cidd.delete_flag = '0'
AND cidd.condition_value = mmd.lot_number
ORDER BY create_time DESC
LIMIT 1
)
WHERE mmd.status_enum = #{completed}
AND mmr.status_enum = #{agree}
AND ae.class_enum = #{flg}
AND mmd.delete_flag = '0'
) AS A
${ew.customSqlSegment}
<choose>
<when test="statisticalType == 1 || statisticalType ==3 || statisticalType ==5">
ORDER BY A.dispense_time DESC
</when>
<when test="statisticalType == 2 || statisticalType ==4 || statisticalType ==6">
>>>>>>> v1.3
ORDER BY A.outpatient_no DESC, A.prescription_no DESC
</when>
</choose>

View File

@@ -3,6 +3,7 @@
<mapper namespace="com.openhis.web.pharmacymanage.mapper.ReturnMedicineMapper">
<select id="selectEncounterInfoListPage" resultType="com.openhis.web.pharmacymanage.dto.EncounterInfoDto">
SELECT ii.reception_time,
ii.start_time,
ii.encounter_id,
ii.encounter_no,
ii.tenant_id,
@@ -19,7 +20,9 @@
ae.id AS encounter_id,
ae.bus_no AS encounter_no,
ae.tenant_id,
mmr.status_enum AS refund_enum,
ae.start_time,
ae.class_enum,
mmd.status_enum AS refund_enum,
ap."name" AS patient_name,
ap.wb_str AS patient_wb_str,
ap.py_str AS patient_py_str,
@@ -30,18 +33,25 @@
FROM adm_encounter ae
LEFT JOIN med_medication_request mmr
ON mmr.encounter_id = ae.id
AND mmr.delete_flag = '0'
LEFT JOIN med_medication_dispense mmd
ON mmd.med_req_id = mmr.id
AND mmd.delete_flag = '0'
LEFT JOIN adm_patient ap
ON ae.patient_id = ap.id
AND ap.delete_flag = '0'
LEFT JOIN adm_organization ao
ON ao.id = ae.organization_id
AND ao.delete_flag = '0'
WHERE mmr.refund_medicine_id IS NOT NULL
AND ae.class_enum = #{amb}
UNION
SELECT ae.reception_time,
ae.id AS encounter_id,
ae.bus_no AS encounter_no,
ae.tenant_id,
wdr.status_enum AS refund_enum,
ae.start_time,
ae.class_enum,
wdd.status_enum AS refund_enum,
ap."name" AS patient_name,
ap.wb_str AS patient_wb_str,
ap.py_str AS patient_py_str,
@@ -52,12 +62,17 @@
FROM adm_encounter ae
LEFT JOIN wor_device_request wdr
ON wdr.encounter_id = ae.id
AND wdr.delete_flag = '0'
LEFT JOIN wor_device_dispense wdd
ON wdd.device_req_id = wdr.id
AND wdd.delete_flag = '0'
LEFT JOIN adm_patient ap
ON ae.patient_id = ap.id
AND ap.delete_flag = '0'
LEFT JOIN adm_organization ao
ON ao.id = ae.organization_id
AND ao.delete_flag = '0'
WHERE wdr.refund_device_id IS NOT NULL
AND ae.class_enum = #{amb}
) AS ii
${ew.customSqlSegment}
ORDER BY ii.reception_time DESC
@@ -68,6 +83,7 @@
<when test="(medDispenseIdList != null and !medDispenseIdList.isEmpty())
or (devDispenseIdList != null and !devDispenseIdList.isEmpty())">
<if test="medDispenseIdList != null and !medDispenseIdList.isEmpty()">
<<<<<<< HEAD
SELECT
T1.id AS dispense_id,
T1.unit_code AS dispense_unit,
@@ -83,16 +99,35 @@
T3.part_percent,
T3."name" AS item_name,
T3.id AS item_id
=======
SELECT T1.id AS dispense_id,
T1.unit_code AS dispense_unit,
T1.quantity,
T1.location_id,
T1.lot_number,
T1.dispense_quantity,
T1.status_enum AS dispense_status,
T1.trace_no,
T1.med_req_id AS request_id,
T2.id AS inventory_id,
T2.unit_code AS inventory_unit_code,
T2.quantity AS inventory_quantity,
T2.inventory_status_enum,
T2.expiration_date,
T3.part_percent,
T3."name" AS item_name,
T1.medication_id AS item_id
>>>>>>> v1.3
FROM med_medication_dispense AS T1
INNER JOIN wor_inventory_item AS T2
ON T1.medication_id = T2.item_id
AND T2.delete_flag = '0'
AND T2.item_table = #{medMedicationDefinition}
AND T1.lot_number = T2.lot_number
AND T1.location_id = T2.location_id
INNER JOIN med_medication_definition AS T3
ON T1.medication_id = T3.id
AND T3.delete_flag = '0'
INNER JOIN wor_inventory_item AS T2
ON T1.medication_id = T2.item_id
AND T2.delete_flag = '0'
AND T2.item_table = #{medMedicationDefinition}
AND T1.lot_number = T2.lot_number
AND T1.location_id = T2.location_id
INNER JOIN med_medication_definition AS T3
ON T1.medication_id = T3.id
AND T3.delete_flag = '0'
WHERE T1.id IN
<foreach collection="medDispenseIdList" item="medDispenseId" open="(" separator="," close=")">
#{medDispenseId}
@@ -104,6 +139,7 @@
UNION
</if>
<if test="devDispenseIdList != null and !devDispenseIdList.isEmpty()">
<<<<<<< HEAD
SELECT
T4.id AS dispense_id,
T4.unit_code AS dispense_unit,
@@ -119,16 +155,35 @@
T5.part_percent,
T5."name" AS item_name,
T5.id AS item_id
=======
SELECT T4.id AS dispense_id,
T4.unit_code AS dispense_unit,
T4.quantity,
T4.location_id,
T4.lot_number,
T4.dispense_quantity,
T4.status_enum AS dispense_status,
T4.trace_no,
T4.device_req_id AS request_id,
T2.id AS inventory_id,
T2.unit_code AS inventory_unit_code,
T2.quantity AS inventory_quantity,
T2.inventory_status_enum,
T2.expiration_date,
T5.part_percent,
T5."name" AS item_name,
T4.device_def_id AS item_id
>>>>>>> v1.3
FROM wor_device_dispense AS T4
INNER JOIN wor_inventory_item AS T2
ON T4.device_def_id = T2.item_id
AND T2.delete_flag = '0'
AND T2.item_table = #{admDeviceDefinition}
AND T4.lot_number = T2.lot_number
AND T4.location_id = T2.location_id
INNER JOIN adm_device_definition AS T5
ON T4.device_def_id = T5.id
AND T5.delete_flag = '0'
INNER JOIN wor_inventory_item AS T2
ON T4.device_def_id = T2.item_id
AND T2.delete_flag = '0'
AND T2.item_table = #{admDeviceDefinition}
AND T4.lot_number = T2.lot_number
AND T4.location_id = T2.location_id
INNER JOIN adm_device_definition AS T5
ON T4.device_def_id = T5.id
AND T5.delete_flag = '0'
WHERE T4.id IN
<foreach collection="devDispenseIdList" item="devDispenseId" open="(" separator="," close=")">
#{devDispenseId}
@@ -143,9 +198,9 @@
SELECT mmd.status_enum AS refund_enum,
mmr.refund_medicine_id,
mmr.id AS request_id,
mmr.quantity,
mmd.quantity,
mmr.unit_code,
mmr.lot_number,
mmd.lot_number,
mmr.status_enum AS req_status,
mmd.dispense_quantity,
mmd.id AS dispense_id,
@@ -157,7 +212,7 @@
mmd.trace_no
FROM med_medication_request mmr
LEFT JOIN med_medication_dispense mmd
ON mmr.refund_medicine_id = mmd.med_req_id
ON mmr.id = mmd.med_req_id
AND mmd.delete_flag = '0'
INNER JOIN med_medication_definition med
ON mmr.medication_id = med.id
@@ -172,13 +227,10 @@
AND mmr.encounter_id = #{encounterId}
AND aci.service_table =#{medMedicationRequest}
<if test="refundStatus == null">
AND mmr.status_enum IN (#{inRefund},#{completed})
AND mmd.status_enum IN (#{refunded},#{pendingRefund})
</if>
<if test="refundStatus == 5">
AND mmr.status_enum = #{inRefund}
</if>
<if test="refundStatus == 3">
AND mmr.status_enum = #{completed}
<if test="refundStatus != null">
AND mmd.status_enum = #{refundStatus}
</if>
AND mmr.delete_flag = '0'
UNION
@@ -187,7 +239,7 @@
wdr.id AS request_id,
wdr.quantity,
wdr.unit_code,
wdr.lot_number,
wdd.lot_number,
wdr.status_enum AS req_status,
wdd.dispense_quantity,
wdd.id AS dispense_id,
@@ -199,7 +251,7 @@
wdd.trace_no
FROM wor_device_request wdr
LEFT JOIN wor_device_dispense wdd
ON wdr.refund_device_id = wdd.device_req_id
ON wdr.id = wdd.device_req_id
AND wdd.delete_flag = '0'
INNER JOIN adm_device_definition dev
ON wdr.device_def_id = dev.id
@@ -213,15 +265,12 @@
WHERE wdr.refund_device_id IS NOT NULL
AND wdr.encounter_id =#{encounterId}
AND aci.service_table =#{worDeviceRequest}
<if test="refundStatus == null">
AND wdr.status_enum IN (#{inRefund},#{completed})
</if>
<if test="refundStatus == 5">
AND wdr.status_enum = #{inRefund}
</if>
<if test="refundStatus == 3">
AND wdr.status_enum = #{completed}
</if>
<if test="refundStatus == null">
AND wdd.status_enum IN (#{refunded},#{pendingRefund})
</if>
<if test="refundStatus != null">
AND wdd.status_enum = #{refundStatus}
</if>
AND wdr.delete_flag = '0'
</select>
<select id="selectReturnItemDetail" resultType="com.openhis.web.pharmacymanage.dto.DispenseInventoryDto">
@@ -238,6 +287,7 @@
T1.dispense_time,
T1.bus_no AS dispense_no,
T1.trace_no,
T2.refund_medicine_id AS refund_id,
T3.Id AS inventory_id,
T3.unit_code AS inventory_unit_code,
T3.quantity AS inventory_quantity,
@@ -305,6 +355,7 @@
T10.dispense_time,
T10.bus_no AS dispense_no,
T10.trace_no,
T11.refund_device_id AS refund_id,
T3.Id AS inventory_id,
T3.unit_code AS inventory_unit_code,
T3.quantity AS inventory_quantity,

View File

@@ -1,6 +1,7 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.openhis.web.pharmacymanage.mapper.SummaryDispenseMedicineMapper">
<<<<<<< HEAD
<select id="selectMedicationSummaryInfo" resultType="com.openhis.web.pharmacymanage.dto.MedicineSummaryDto">
SELECT ii.tenant_id,
ii.bus_no,--单据号
@@ -181,4 +182,6 @@
) AS li
${ew.customSqlSegment}
</select>
=======
>>>>>>> v1.3
</mapper>

View File

@@ -1,6 +1,56 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.openhis.web.pharmacymanage.mapper.WesternMedicineDispenseMapper">
<resultMap id="medicineDispenseOrderMap" type="com.openhis.web.pharmacymanage.dto.ItemDispenseOrderDto">
<result property="lotNumber" column="lot_number"/>
<result property="departmentName" column="department_name"/>
<result property="doctorId" column="doctor_id"/>
<result property="doctorName" column="doctor_name"/>
<result property="itemType" column="item_type"/>
<result property="conditionName" column="condition_name"/>
<result property="prescriptionNo" column="prescription_no"/>
<result property="requestId" column="request_id"/>
<result property="tcmFlag" column="tcm_flag"/>
<result property="itemName" column="item_name"/>
<result property="itemId" column="item_id"/>
<result property="totalVolume" column="total_volume"/>
<result property="unitCode" column="unit_code"/>
<result property="encounterId" column="encounter_id"/>
<result property="dose" column="dose"/>
<result property="statusEnum" column="status_enum"/>
<result property="rateCode" column="rate_code"/>
<result property="locationId" column="location_id"/>
<result property="methodCode" column="method_code"/>
<result property="doseUnitCode" column="dose_unit_code"/>
<result property="dispensePerQuantity" column="dispense_per_quantity"/>
<result property="dispensePerDuration" column="dispense_per_duration"/>
<result property="requestQuantity" column="request_quantity"/>
<result property="quantity" column="quantity"/>
<result property="dispenseId" column="dispense_id"/>
<result property="unitPrice" column="unit_price"/>
<result property="totalPrice" column="total_price"/>
<result property="dispenseDoctorName" column="dispense_doctor_name"/>
<result property="locationName" column="location_name"/>
<result property="encounterBusNo" column="encounter_bus_no"/>
<result property="reqAuthoredTime" column="req_authored_time"/>
<result property="skinTestFlag" column="skin_test_flag"/>
<result property="injectFlag" column="inject_flag"/>
<result property="groupId" column="group_id"/>
<result property="manufacturerText" column="manufacturer_text"/>
<result property="medTypeCode" column="med_type_code"/>
<result property="merchandiseName" column="merchandise_name"/>
<result property="traceNo" column="trace_no"/>
<result property="partAttributeEnum" column="part_attribute_enum"/>
<collection property="inventoryDetailList" ofType="com.openhis.web.pharmacymanage.dto.InventoryDetailDto">
<result property="inventoryId" column="inventory_id"/>
<result property="maxUnitCode" column="max_unit_code"/>
<result property="partPercent" column="part_percent"/>
<result property="inventoryUnitCode" column="inventory_unit_code"/>
<result property="inventoryQuantity" column="inventory_quantity"/>
<result property="inventoryLotNumber" column="inventory_lot_number"/>
<result property="expirationDate" column="expiration_date"/>
</collection>
</resultMap>
<select id="selectEncounterInfoListPage" resultType="com.openhis.web.pharmacymanage.dto.EncounterInfoDto">
SELECT ii.encounter_id,
ii.encounter_no,
@@ -12,8 +62,11 @@
ii.department_id,
ii.id_card,
ii.birth_date,
ii.phone,
ii.reception_time,
ii.start_time,
ii.status_enum
<<<<<<< HEAD
FROM ( SELECT T1.tenant_id,
T1.id AS encounter_id,
T1.bus_no AS encounter_no,
@@ -50,6 +103,46 @@
<if test="statusEnum == 4">
T4.status_enum = #{completed}
</if>
=======
FROM ( SELECT T1.tenant_id,
T1.id AS encounter_id,
T1.bus_no AS encounter_no,
T1.reception_time,
T1.start_time,
T1.organization_id AS department_id,
T1.class_enum,
T2.gender_enum,
T2.name AS patient_name,
T2.wb_str AS patient_wb_str,
T2.py_str AS patient_py_str,
T2.id_card,
T2.birth_date,
T2.phone,
T3.name AS department_name,
T4.status_enum
FROM adm_encounter AS T1
INNER JOIN adm_patient AS T2
ON T1.patient_id = T2.id
AND T2.delete_flag = '0'
LEFT JOIN adm_organization AS T3
ON T1.organization_id = T3.id
AND T3.delete_flag = '0'
INNER JOIN med_medication_dispense AS T4
ON T4.encounter_id = T1.id
AND T4.delete_flag = '0'
INNER JOIN med_medication_request AS T5
ON T4.med_req_id = T5.id
AND T5.delete_flag = '0'
WHERE <if test="statusEnum == null">
T4.status_enum IN (#{inProgress},#{completed},#{preparation},#{prepared})
</if>
<if test="statusEnum == 3">
T4.status_enum IN (#{inProgress},#{preparation},#{prepared})
</if>
<if test="statusEnum == 4">
T4.status_enum = #{completed}
</if>
>>>>>>> v1.3
) AS ii
${ew.customSqlSegment}
GROUP BY ii.encounter_id,
@@ -62,10 +155,14 @@
ii.department_id,
ii.id_card,
ii.birth_date,
ii.phone,
ii.reception_time,
ii.start_time,
ii.status_enum
ORDER BY ii.reception_time DESC
ORDER BY ii.reception_time,
ii.start_time DESC
</select>
<<<<<<< HEAD
<select id="selectMedicineDispenseOrderPage" resultType="com.openhis.web.pharmacymanage.dto.ItemDispenseOrderDto">
SELECT ii.department_name,
ii.doctor_id,
@@ -183,17 +280,218 @@
T1.status_enum = #{completed}
</if>
ORDER BY prescription_no DESC
=======
<select id="selectMedicineDispenseOrderPage" resultMap="medicineDispenseOrderMap">
SELECT ii.department_name,
ii.doctor_id,
ii.doctor_name,
ii.item_type,
ii.condition_name,
ii.prescription_no,
ii.lot_number,
ii.request_id,
ii.tcm_flag,
ii.item_name,
ii.merchandise_name,
ii.item_id,
ii.total_volume,
ii.unit_code,
ii.encounter_id,
ii.dose,
ii.status_enum,
ii.rate_code,
ii.location_id,
ii.method_code,
ii.dose_unit_code,
ii.dispense_per_quantity,
ii.dispense_per_duration,
ii.request_quantity,
ii.quantity,
ii.dispense_id,
ii.unit_price,
ii.total_price,
ii.dispense_doctor_name,
ii.location_name,
ii.encounter_bus_no,
ii.req_authored_time,
ii.skin_test_flag,
ii.group_id,
ii.manufacturer_text,
ii.trace_no,
ii.max_unit_code,
ii.part_percent,
ii.inject_flag,
ii.part_attribute_enum,
ii.inventory_id,
ii.inventory_unit_code,
ii.inventory_quantity,
ii.inventory_lot_number,
ii.expiration_date,
ii.med_type_code
FROM ( SELECT T8."name" AS department_name,
T9.id AS doctor_id,
T9."name" AS doctor_name,
T3.category_code AS item_type,
T7."name" AS condition_name,
T2.prescription_no,
T2.id AS request_id,
T2.tcm_flag,
T3."name" AS item_name,
T3.merchandise_name,
T3.id AS item_id,
T4.total_volume,
T1.unit_code,
T1.encounter_id,
T1.dose,
T1.status_enum,
T2.rate_code,
T1.location_id,
T1.method_code,
T1.lot_number,
T2.dose_unit_code,
T2.dispense_per_quantity,
T2.dispense_per_duration,
T2.quantity AS request_quantity,
T1.quantity,
T1.id AS dispense_id,
T5.unit_price,
T5.total_price,
T10."name" AS dispense_doctor_name,
T13."name" AS location_name,
T6.bus_no AS encounter_bus_no,
T2.req_authored_time,
T3.skin_test_flag,
T2.group_id AS group_id,
T1.tenant_id,
T3.manufacturer_text,
T1.trace_no,
T3.unit_code AS max_unit_code,
T3.part_percent,
T3.inject_flag,
T3.part_attribute_enum,
T14.id AS inventory_id,
T14.unit_code AS inventory_unit_code,
T14.quantity AS inventory_quantity,
T14.lot_number AS inventory_lot_number,
T14.expiration_date,
T15.med_type_code
FROM med_medication_dispense AS T1
LEFT JOIN med_medication_request AS T2
ON T1.med_req_id = T2.id
AND T2.delete_flag = '0'
LEFT JOIN med_medication_definition AS T3
ON T1.medication_id = T3.id
AND T3.delete_flag = '0'
LEFT JOIN med_medication AS T4
ON T3.id = T4.medication_def_id
AND T4.delete_flag = '0'
INNER JOIN adm_charge_item AS T5
ON T1.med_req_id = T5.service_id
AND T5.delete_flag = '0'
LEFT JOIN adm_encounter AS T6
ON T1.encounter_id = T6.id
AND T6.delete_flag = '0'
LEFT JOIN cli_condition AS T12
ON T2.condition_id = T12.id
AND T12.delete_flag = '0'
LEFT JOIN cli_condition_definition AS T7
ON T12.definition_id = T7.id
AND T7.delete_flag = '0'
LEFT JOIN adm_organization AS T8
ON T6.organization_id = T8.id
AND T8.delete_flag = '0'
LEFT JOIN adm_practitioner AS T9
ON T2.practitioner_id = T9.id
AND T9.delete_flag = '0'
LEFT JOIN adm_practitioner AS T10
ON T1.practitioner_id = T10.id
AND T10.delete_flag = '0'
LEFT JOIN adm_location AS T13
ON T1.location_id = T13.id
AND T13.delete_flag = '0'
LEFT JOIN wor_inventory_item AS T14
ON T2.medication_id = T14.item_id
AND T1.location_id = T14.location_id
AND T14.delete_flag = '0'
LEFT JOIN adm_encounter_diagnosis AS T15
ON T2.encounter_diagnosis_id = T15.id
AND T15.delete_flag = '0'
WHERE T1.delete_flag = '0'
-- 因发药配药合并,前台只能看到待发药,已发药状态,但是后台配药发药状态都查
AND
<if test="dispenseStatus == null">
T1.status_enum IN (#{inProgress},#{completed},#{preparation},#{prepared})
</if>
<if test="dispenseStatus == 3">
T1.status_enum IN (#{inProgress},#{preparation},#{prepared})
</if>
<if test="dispenseStatus == 4">
T1.status_enum = #{completed}
</if>
AND T14.inventory_status_enum = #{active}
ORDER BY prescription_no DESC
>>>>>>> v1.3
) AS ii
${ew.customSqlSegment}
</select>
<select id="getPreparerDoctorList" resultType="com.openhis.administration.domain.Practitioner">
SELECT ap.id,
ap."name"
ap."name",
su.status
FROM adm_practitioner ap
LEFT JOIN adm_practitioner_role apr
ON ap.id = apr.practitioner_id
LEFT JOIN adm_practitioner_role apr
ON ap.id = apr.practitioner_id
LEFT JOIN sys_user AS su ON su.user_id = ap.user_id
AND su.delete_flag = '0'
WHERE apr.role_code = #{pharmacist}
AND ap.delete_flag = '0'
AND su.status = '0'
GROUP BY ap.id,
ap."name"
ap."name",
su.status
</select>
<select id="selectMedicineInventoryDetail"
resultType="com.openhis.web.pharmacymanage.dto.InventoryDetailDto">
SELECT wii.expiration_date ,
wii.location_id ,
wii.item_id ,
wii.lot_number AS inventory_lot_number,
wii.unit_code AS inventory_unit_code,
wii.quantity AS inventory_quantity,
mmd.part_percent ,
mmd.unit_code AS max_unit_code
FROM wor_inventory_item wii
LEFT JOIN med_medication_definition mmd
ON wii.item_id = mmd.id
AND mmd.delete_flag = '0'
WHERE wii.delete_flag = '0'
AND wii.item_id IN
<foreach item="itemId" collection="medicationIdList" index="index"
separator="," close=")" open="(">
#{itemId}
</foreach>
AND wii.location_id IN
<foreach item="locationId" collection="locationIdList" index="index"
separator="," close=")" open="(">
#{locationId}
</foreach>
AND wii.inventory_status_enum = #{active}
ORDER BY wii.expiration_date
</select>
<select id="getOutTraceNo" resultType="string">
SELECT atnm.trace_no
FROM adm_trace_no_manage AS atnm
WHERE atnm.delete_flag = '0'
AND atnm.trace_no != '22000000000000000000'
AND atnm.status_enum = #{status}
AND atnm.operation_type = #{operationType}
AND NOT EXISTS(SELECT 1
FROM med_medication_definition AS mmd
WHERE mmd.ID = atnm.item_id
AND mmd.delete_flag = '0'
AND (mmd.inject_flag = #{injectFlag} OR mmd.part_attribute_enum = #{outpatientMinUnitCeil} OR
mmd.part_attribute_enum = #{outpatientMinUnitTotalCeil}))
</select>
</mapper>

View File

@@ -84,14 +84,16 @@
AND ccd.delete_flag = '0'
WHERE ae.delete_flag = '0'
AND ae.class_enum = #{classEnum}
AND ae.status_enum = #{status}
AND ae.status_enum != #{toBeRegistered}
AND ae.status_enum != #{alreadySettled}
AND ae.status_enum != #{registered}
AND EXISTS(
SELECT 1
FROM adm_practitioner_role
WHERE delete_flag = '0'
AND practitioner_id = #{practitionerId}
AND org_id = ae.organization_id
)) AS rpmi
SELECT 1
FROM adm_practitioner_role
WHERE delete_flag = '0'
AND practitioner_id = #{practitionerId}
AND org_id = ae.organization_id
)) AS rpmi
${ew.customSqlSegment}
</select>
@@ -125,7 +127,8 @@
T2.part_percent AS part_percent,
ccd.name AS condition_definition_name,
T1.therapy_enum AS therapyEnum,
T1.sort_number AS sort_number
T1.sort_number AS sort_number,
T1.based_on_id AS based_on_id
FROM med_medication_request AS T1
LEFT JOIN med_medication_definition AS T2 ON T2.ID = T1.medication_id
AND T2.delete_flag = '0'
@@ -175,7 +178,8 @@
T2.part_percent AS part_percent,
'' AS condition_definition_name,
2 AS therapyEnum,
99 AS sort_number
99 AS sort_number,
T1.based_on_id AS based_on_id
FROM wor_device_request AS T1
LEFT JOIN adm_device_definition AS T2 ON T2.ID = T1.device_def_id
AND T2.delete_flag = '0'
@@ -222,7 +226,8 @@
1 AS part_percent,
'' AS condition_definition_name,
T1.therapy_enum AS therapyEnum,
99 AS sort_number
99 AS sort_number,
T1.based_on_id AS based_on_id
FROM wor_service_request AS T1
LEFT JOIN wor_activity_definition AS T2
ON T2.ID = T1.activity_id
@@ -231,7 +236,10 @@
T3.service_table = #{WOR_SERVICE_REQUEST}
LEFT JOIN adm_organization AS ao ON ao.ID = T1.org_id AND ao.delete_flag = '0'
WHERE T1.delete_flag = '0' AND T1.generate_source_enum = #{generateSourceEnum}
<<<<<<< HEAD
AND T1.based_on_table is null
=======
>>>>>>> v1.3
AND T1.parent_id IS NULL
<if test="historyFlag == '0'.toString()">
AND T1.encounter_id = #{encounterId}
@@ -242,4 +250,36 @@
ORDER BY T1.status_enum)
</select>
<select id="getAmount" resultType="com.openhis.web.inhospitalnursestation.dto.EncounterAccountDto">
SELECT final_res.id,
final_res.insutype,
final_res.encounter_id,
final_res.advance_amount,
final_res.total_amount,
final_res.balance_amount
FROM (SELECT aa.tenant_id,
aa.id,
aa.insutype,
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'
GROUP BY aa.tenant_id, aa.id, aa.insutype, aa.encounter_id, aa.balance_amount) AS final_res
${ew.customSqlSegment}
</select>
</mapper>

View File

@@ -1,9 +1,216 @@
<?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.ChargeReportMapper">
<!--门诊收入明细-->
<sql id="selectRevenueReportPage">
SELECT T8.tenant_id,
T8.payment_id,
T8.charge_id,
T8.name, -- 姓名
T8.gender_enum, -- 性别
T8.birth_date, -- 出生日期
T8.id_card, -- 证件号
T8.yb_code, -- 医保号
T8.encounter_date, -- 就诊日期
T8.bus_no,-- 患者院内编码/病历号
T8.department_id,-- 科室
T8.department_name,-- 科室
T8.clinical_name,-- 项目名
T8.clinical_no, -- 项目编码
T8.ybNo,-- 医保码
T8.type, -- 类别
T8.issuer_id,-- 开单人
T8.issuer_name,-- 开单人
T8.payee_id,-- 收款人
T8.payee_name,-- 收款人
T8.number,-- 数量
T8.quantity_unit,-- 单位
T8.price,-- 单价
T8.total_price,-- 金额
T8.charge_time,-- 收费时间
T8.total_volume, -- 规格
T8.chrgitmLv,-- 医保等级
T8.clinical_type, -- 项目类型
T8.encounter_id
FROM (SELECT DISTINCT T1.tenant_id,
T1.id AS payment_id,
T4.id AS charge_id,
T15.name, -- 姓名
T15.gender_enum, -- 性别
T15.birth_date, -- 出生日期
T15.id_card, -- 证件号
T16.psn_no AS yb_code, -- 医保号
TO_CHAR(T2.reception_time, 'YYYY-MM-DD') AS encounter_date, -- 就诊日期
T2.bus_no, -- 患者院内编码/病历号
T3.id AS department_id,-- 科室
T3.name AS department_name,-- 科室
CASE
WHEN T5.instance_table = 'adm_device_definition' THEN T11.name
WHEN T5.instance_table = 'adm_healthcare_service' THEN T12.name
WHEN T5.instance_table = 'med_medication_definition' THEN T13.name
WHEN T5.instance_table = 'wor_activity_definition' THEN T14.name
ELSE NULL
END AS clinical_name, -- 项目名
CASE
WHEN T5.instance_table = 'adm_device_definition' THEN T11.bus_no
WHEN T5.instance_table = 'med_medication_definition' THEN T13.bus_no
WHEN T5.instance_table = 'wor_activity_definition' THEN T14.bus_no
ELSE NULL
END AS clinical_no, -- 项目编码
CASE
WHEN T5.instance_table = 'adm_device_definition' THEN T11.yb_no
WHEN T5.instance_table = 'adm_healthcare_service' THEN T12.yb_no
WHEN T5.instance_table = 'med_medication_definition' THEN T13.yb_no
WHEN T5.instance_table = 'wor_activity_definition' THEN T14.yb_no
ELSE NULL
END AS ybNo, -- 医保码
T5.yb_type AS type, -- 医保类别
T6.id AS issuer_id,-- 开单人
T6.name AS issuer_name,-- 开单人
T7.id AS payee_id,-- 收款人
T7.name AS payee_name,-- 收款人
T4.quantity_value AS number,-- 数量
T4.quantity_unit,-- 单位
T4.unit_price AS price,-- 单价
CASE
WHEN T1.status_enum = #{refundAll} THEN -T4.total_price
ELSE T4.total_price
END AS total_price,-- 金额
T1.bill_date AS charge_time,-- 收费时间
CASE
WHEN T5.instance_table = 'adm_device_definition' THEN T17.device_specifications
WHEN T5.instance_table = 'med_medication_definition' THEN T18.total_volume
ELSE NULL
END AS total_volume, -- 规格
CASE
WHEN T5.instance_table = 'adm_device_definition' THEN T11.chrgitm_lv
WHEN T5.instance_table = 'med_medication_definition' THEN T13.chrgitm_lv
WHEN T5.instance_table = 'wor_activity_definition' THEN T14.chrgitm_lv
ELSE NULL
END AS chrgitmLv,-- 医保等级
CASE
WHEN T5.instance_table = 'adm_device_definition' THEN #{device}
WHEN T5.instance_table = 'adm_healthcare_service' THEN #{register}
WHEN T5.instance_table = 'med_medication_definition' THEN #{medication}
WHEN T5.instance_table = 'wor_activity_definition' THEN #{activity}
ELSE NULL
END AS clinical_type, -- 项目类型
T1.encounter_id,
CASE WHEN T5.instance_table = 'adm_device_definition' THEN T11.category_code ELSE NULL END AS
device_category_code,
CASE WHEN T5.instance_table = 'med_medication_definition' THEN T13.category_code ELSE NULL END AS
medication_category_code,
CASE WHEN T5.instance_table = 'wor_activity_definition' THEN T14.category_code ELSE NULL END AS
activity_category_code
FROM fin_payment_reconciliation T1
LEFT JOIN adm_encounter T2
ON T2.id = T1.encounter_id
AND T2.delete_flag = '0'
AND T2.class_enum = 2
LEFT JOIN adm_patient AS T15
ON T1.patient_id = T15.id
AND T15.delete_flag = '0'
LEFT JOIN yb_clinc_reg AS T16
ON T2.bus_no = T16.ipt_otp_no
LEFT JOIN adm_organization AS T3
ON T2.organization_id = T3.id
AND T3.delete_flag = '0'
LEFT JOIN adm_charge_item T4
ON CONCAT(',', T1.charge_item_ids, ',') LIKE CONCAT('%,', T4.id, ',%')
AND T4.delete_flag = '0'
LEFT JOIN adm_charge_item_definition T5
ON T4.definition_id = T5.id
AND T5.delete_flag = '0'
LEFT JOIN adm_device_definition T11
ON T5.instance_id = T11.id
AND T5.instance_table = 'adm_device_definition'
AND T11.delete_flag = '0'
LEFT JOIN adm_device T17
ON T11.id = T17.device_def_id
AND T17.delete_flag = '0'
LEFT JOIN adm_healthcare_service T12
ON T5.instance_id = T12.id
AND T5.instance_table = 'adm_healthcare_service'
AND T12.delete_flag = '0'
LEFT JOIN med_medication_definition T13
ON T5.instance_id = T13.id
AND T5.instance_table = 'med_medication_definition'
AND T13.delete_flag = '0'
LEFT JOIN med_medication T18
ON T13.id = T18.medication_def_id
AND T18.delete_flag = '0'
LEFT JOIN wor_activity_definition T14
ON T5.instance_id = T14.id
AND T5.instance_table = 'wor_activity_definition'
AND T14.delete_flag = '0'
LEFT JOIN adm_practitioner T6
ON T4.enterer_id = T6.id
AND T6.delete_flag = '0'
LEFT JOIN adm_practitioner T7
ON T1.enterer_id = T7.id
AND T7.delete_flag = '0'
<if test="statisticsFlg == 0 or statisticsFlg == 1">
INNER JOIN adm_account T19
ON T4.account_id = T19.id
AND T19.delete_flag = '0'
INNER JOIN fin_contract T20
ON T19.contract_no = T20.bus_no
AND T20.yb_flag = #{statisticsFlg}
AND T20.delete_flag = '0'
</if>
<if test="statisticsFlg == 3">
WHERE T1.status_enum = #{refundAll}
</if>
<if test="statisticsFlg != 3">
WHERE T1.status_enum IN (#{success}, #{refundAll})
</if>
AND T1.delete_flag = '0'
ORDER BY T2.bus_no,
T4.ID,
T1.bill_date) AS T8
${ew.customSqlSegment}
<!-- clinicalType 筛选条件 -->
<if test="clinicalType != null and !clinicalType.isEmpty()">
AND (
<trim prefix="" suffix="" suffixOverrides="OR">
<if test="clinicalType.contains(1)">
T8.clinical_type = 1
AND T8.medication_category_code IN
<foreach collection="medicationCategoryCode" item="code" open="(" separator="," close=")">
#{code}
</foreach>
OR
</if>
<if test="clinicalType.contains(2)">
T8.clinical_type = 2
AND T8.device_category_code IN
<foreach collection="deviceCategoryCode" item="code" open="(" separator="," close=")">
#{code}
</foreach>
OR
</if>
<if test="clinicalType.contains(3)">
T8.clinical_type = 3
AND T8.activity_category_code IN
<foreach collection="activityCategoryCode" item="code" open="(" separator="," close=")">
#{code}
</foreach>
OR
</if>
<if test="clinicalType.contains(4)">
T8.clinical_type = 4
</if>
</trim>
)
</if>
</sql>
<!--门诊收入明细 -->
<select id="selectRevenueReportPage"
resultType="com.openhis.web.reportmanage.dto.ChargeReportPageDto">
<<<<<<< HEAD
SELECT T8.tenant_id,
T8.payment_id,
T8.charge_id,
@@ -164,5 +371,510 @@
T4.ID,
T1.bill_date) AS T8
${ew.customSqlSegment}
=======
<include refid="selectRevenueReportPage"/>
</select>
<!--门诊收入明细,不分页 -->
<select id="selectAllRevenueReportPage" resultType="com.openhis.web.reportmanage.dto.ChargeReportPageDto">
<include refid="selectRevenueReportPage"/>
</select>
<select id="selectOrgWorkload" resultType="com.openhis.web.reportmanage.dto.workloadReportDto">
SELECT
T8.requesting_org_id AS org_id,
T3.name AS org_name,
T5.type_code AS charge_code,
T5.yb_type AS yb_Charge_Code,
T8.trade_type AS charge_type,
SUM(T8.total_price) AS total_price, -- 退款为负数,汇总自动抵消,保留原有逻辑
SUM(T8.system_discount_price) AS system_discount_price_total,
SUM(
CASE
WHEN T5.instance_table = #{medicationTableName} THEN
T8.quantity_value * COALESCE(acidd.amount, 0) *
CASE
WHEN T8.quantity_unit = T13.min_unit_code THEN 1.0 / COALESCE(T13.part_percent, 1)
ELSE 1
END
WHEN T5.instance_table = #{deviceTableName} THEN
T8.quantity_value * COALESCE(acidd.amount, 0) *
CASE
WHEN T8.quantity_unit = T11.min_unit_code THEN 1.0 / COALESCE(T11.part_percent, 1)
ELSE 1
END
ELSE 0
END
) AS cost_price,
SUM(T8.total_price) - SUM(
CASE
WHEN T5.instance_table IN (#{medicationTableName}, #{deviceTableName}) THEN
T8.quantity_value * COALESCE(acidd.amount, 0) *
CASE
WHEN T5.instance_table = #{medicationTableName} THEN
CASE
WHEN T8.quantity_unit = T13.min_unit_code THEN 1.0 / COALESCE(T13.part_percent, 1)
ELSE 1
END
ELSE
CASE
WHEN T8.quantity_unit = T11.min_unit_code THEN 1.0 / COALESCE(T11.part_percent, 1)
ELSE 1
END
END
ELSE 0
END
) AS profit
FROM (
WITH base_payment AS (
SELECT
T1.id AS payment_id,
T1.tenant_id,
T1.status_enum,
T1.bill_date,
T1.charge_item_ids,
NULL AS relation_id,
T1.delete_flag
FROM fin_payment_reconciliation T1
WHERE T1.status_enum = #{success}
AND T1.delete_flag = '0'
AND T1.tenant_id = #{tenantId}
<if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
AND T1.bill_date BETWEEN
to_timestamp(#{startTime}, 'YYYY-MM-DD HH24:MI:SS')::timestamptz
AND
to_timestamp(#{endTime}, 'YYYY-MM-DD HH24:MI:SS')::timestamptz
</if>
UNION ALL
SELECT
refund.id AS payment_id,
refund.tenant_id,
refund.status_enum,
refund.bill_date,
refund.charge_item_ids,
refund.relation_id,
refund.delete_flag
FROM fin_payment_reconciliation refund
WHERE refund.status_enum = #{refund}
AND refund.delete_flag = '0'
AND refund.tenant_id = #{tenantId}
<if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
AND refund.bill_date BETWEEN
to_timestamp(#{startTime}, 'YYYY-MM-DD HH24:MI:SS')::timestamptz
AND
to_timestamp(#{endTime}, 'YYYY-MM-DD HH24:MI:SS')::timestamptz
</if>
),
payment_charge_item AS (
SELECT
bp.payment_id,
bp.tenant_id,
bp.status_enum,
bp.bill_date,
bp.relation_id,
unnest(string_to_array(bp.charge_item_ids, ','))::BIGINT AS charge_item_id
FROM base_payment bp
WHERE bp.charge_item_ids IS NOT NULL AND bp.charge_item_ids != ''
),
charge_item_calc AS (
SELECT
pci.payment_id,
pci.tenant_id,
pci.status_enum,
pci.bill_date,
pci.charge_item_id,
CASE
WHEN pci.status_enum = #{success} THEN 1
WHEN pci.status_enum = #{refund} THEN -1
ELSE 0
END AS calc_flag
FROM payment_charge_item pci
LEFT JOIN base_payment orig ON pci.relation_id = orig.payment_id
),
charge_item_detail AS (
SELECT
cic.tenant_id,
ac.id AS charge_id,
ac.requesting_org_id,
ac.quantity_value,
ac.quantity_unit,
ac.definition_id,
ac.service_id,
ac.total_price * cic.calc_flag AS total_price,
COALESCE(ac.system_discount_price, ac.total_price) * cic.calc_flag AS system_discount_price,
cic.bill_date,
CASE WHEN cic.status_enum = #{refund} THEN 2 ELSE 1 END AS trade_type,
COALESCE(
CASE
WHEN acd.instance_table = #{medicationTableName} THEN mmd.lot_number
WHEN acd.instance_table = #{deviceTableName} THEN wdd.lot_number
ELSE NULL
END, ''
) AS lot_number
FROM charge_item_calc cic
LEFT JOIN adm_charge_item ac ON cic.charge_item_id = ac.id AND ac.delete_flag = '0' AND ac.tenant_id =
#{tenantId}
LEFT JOIN adm_charge_item_definition acd ON ac.definition_id = acd.id AND acd.delete_flag = '0' AND
acd.tenant_id = #{tenantId}
LEFT JOIN med_medication_request mmr ON ac.service_id = mmr.id AND mmr.delete_flag = '0' AND mmr.tenant_id =
#{tenantId}
LEFT JOIN med_medication_dispense mmd ON mmd.med_req_id = mmr.id AND mmd.delete_flag = '0' AND mmd.tenant_id =
#{tenantId}
LEFT JOIN wor_device_request wdr ON ac.service_id = wdr.id AND wdr.delete_flag = '0' AND wdr.tenant_id =
#{tenantId}
LEFT JOIN wor_device_dispense wdd ON wdd.device_req_id = wdr.id AND wdd.delete_flag = '0' AND wdd.tenant_id =
#{tenantId}
LEFT JOIN fin_payment_rec_detail paydel ON cic.payment_id = paydel.reconciliation_id AND paydel.tenant_id =
#{tenantId}
LEFT JOIN adm_account account ON paydel.account_id = account.id AND account.tenant_id = #{tenantId}
WHERE ac.id IS NOT NULL
),
-- 按「charge_id + trade_type」组合维度去重保留正常/退款各一条)
charge_item_distinct AS (
SELECT
*,
-- 分区键charge_id收费项 + trade_type正常/退款),确保不同类型不互相覆盖
ROW_NUMBER() OVER (PARTITION BY charge_id, trade_type ORDER BY bill_date DESC) AS rn
FROM charge_item_detail
)
-- 只保留每个「收费项+交易类型」的第一条记录(去重),同时保留正常/退款数据
SELECT
tenant_id,
charge_id,
requesting_org_id,
quantity_value,
quantity_unit,
definition_id,
service_id,
total_price,
system_discount_price,
trade_type,
lot_number
FROM charge_item_distinct
WHERE rn = 1
) AS T8
-- 关联成本详情表(保留原有逻辑)
LEFT JOIN adm_charge_item_def_detail acidd
ON T8.definition_id = acidd.definition_id
AND acidd.tenant_id = #{tenantId}
AND acidd.id = (
SELECT cidd.id
FROM adm_charge_item_def_detail cidd
WHERE cidd.definition_id = T8.definition_id
AND cidd.condition_code = #{conditionCode}
AND cidd.delete_flag = '0'
AND cidd.tenant_id = #{tenantId}
AND (cidd.condition_value = T8.lot_number OR (T8.lot_number = '' AND cidd.condition_value IS NULL))
ORDER BY cidd.create_time DESC
LIMIT 1
)
-- 关联机构表(保留原有逻辑)
LEFT JOIN adm_organization T3
ON T8.requesting_org_id = T3.id
AND T3.delete_flag = '0'
AND T3.tenant_id = #{tenantId}
-- 关联收费项定义表(保留原有逻辑)
LEFT JOIN adm_charge_item_definition T5
ON T8.definition_id = T5.id
AND T5.delete_flag = '0'
AND T5.tenant_id = #{tenantId}
-- 关联药品定义表(保留原有去重逻辑)
LEFT JOIN (
SELECT id, min_unit_code, part_percent, tenant_id
FROM med_medication_definition
WHERE delete_flag = '0'
GROUP BY id, min_unit_code, part_percent, tenant_id
) T13
ON T5.instance_id = T13.id
AND T5.instance_table = #{medicationTableName}
AND T13.tenant_id = #{tenantId}
-- 关联设备定义表(保留原有去重逻辑)
LEFT JOIN (
SELECT id, min_unit_code, part_percent, tenant_id
FROM adm_device_definition
WHERE delete_flag = '0'
GROUP BY id, min_unit_code, part_percent, tenant_id
) T11
ON T5.instance_id = T11.id
AND T5.instance_table = #{deviceTableName}
AND T11.tenant_id = #{tenantId}
-- 保留原有分组逻辑包含trade_type确保正常/退款分开统计)
GROUP BY
T8.requesting_org_id,
T3.name,
T5.yb_type,
T5.type_code,
T8.trade_type
ORDER BY
T8.requesting_org_id,
T3.name,
T5.yb_type,
T5.type_code,
T8.trade_type;
</select>
<select id="selectDoctorWorkload" resultType="com.openhis.web.reportmanage.dto.workloadReportDto">
SELECT
T8.requesting_org_id AS org_id,
T3.name AS org_name,
T8.enterer_id AS doctor_id,
T8.name AS doctor_name,
T5.type_code AS charge_code,
T5.yb_type AS yb_Charge_Code,
T8.trade_type AS charge_type,
SUM(T8.total_price) AS total_price,
SUM(T8.system_discount_price) AS system_discount_price_total,
SUM(
CASE
WHEN T5.instance_table = #{medicationTableName} THEN
T8.quantity_value * COALESCE(acidd.amount, 0) *
CASE
WHEN T8.quantity_unit = T13.min_unit_code THEN 1.0 / COALESCE(T13.part_percent, 1)
ELSE 1
END
WHEN T5.instance_table = #{deviceTableName} THEN
T8.quantity_value * COALESCE(acidd.amount, 0) *
CASE
WHEN T8.quantity_unit = T11.min_unit_code THEN 1.0 / COALESCE(T11.part_percent, 1)
ELSE 1
END
ELSE 0
END
) AS cost_price,
-- 净收入 = 收入 - 成本(完全保留原有计算逻辑)
SUM(T8.total_price) - SUM(
CASE
WHEN T5.instance_table IN (#{medicationTableName}, #{deviceTableName}) THEN
T8.quantity_value * COALESCE(acidd.amount, 0) *
CASE
WHEN T5.instance_table = #{medicationTableName} THEN
CASE
WHEN T8.quantity_unit = T13.min_unit_code THEN 1.0 / COALESCE(T13.part_percent, 1)
ELSE 1
END
ELSE
CASE
WHEN T8.quantity_unit = T11.min_unit_code THEN 1.0 / COALESCE(T11.part_percent, 1)
ELSE 1
END
END
ELSE 0
END
) AS profit
FROM (
-- 基础支付对账数据(整合正常+退款和科室SQL完全一致
WITH base_payment AS (
SELECT
T1.id AS payment_id,
T1.tenant_id,
T1.status_enum,
T1.bill_date,
T1.charge_item_ids,
NULL AS relation_id,
T1.delete_flag
FROM fin_payment_reconciliation T1
WHERE T1.status_enum = #{success}
AND T1.delete_flag = '0'
AND T1.tenant_id = #{tenantId}
<if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
AND T1.bill_date BETWEEN
to_timestamp(#{startTime}, 'YYYY-MM-DD HH24:MI:SS')::timestamptz
AND
to_timestamp(#{endTime}, 'YYYY-MM-DD HH24:MI:SS')::timestamptz
</if>
UNION ALL
SELECT
refund.id AS payment_id,
refund.tenant_id,
refund.status_enum,
refund.bill_date,
refund.charge_item_ids,
refund.relation_id,
refund.delete_flag
FROM fin_payment_reconciliation refund
WHERE refund.status_enum = #{refund}
AND refund.delete_flag = '0'
AND refund.tenant_id = #{tenantId}
<if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
AND refund.bill_date BETWEEN
to_timestamp(#{startTime}, 'YYYY-MM-DD HH24:MI:SS')::timestamptz
AND
to_timestamp(#{endTime}, 'YYYY-MM-DD HH24:MI:SS')::timestamptz
</if>
),
-- 拆分charge_item_ids替代原有LIKE匹配精准且高效
payment_charge_item AS (
SELECT
bp.payment_id,
bp.tenant_id,
bp.status_enum,
bp.bill_date,
bp.relation_id,
unnest(string_to_array(bp.charge_item_ids, ','))::BIGINT AS charge_item_id
FROM base_payment bp
WHERE bp.charge_item_ids IS NOT NULL AND bp.charge_item_ids != ''
),
-- 计算calc_flag正常=1退款=-1和科室SQL一致
charge_item_calc AS (
SELECT
pci.payment_id,
pci.tenant_id,
pci.status_enum,
pci.bill_date,
pci.charge_item_id,
CASE
WHEN pci.status_enum = #{success} THEN 1
WHEN pci.status_enum = #{refund} THEN -1
ELSE 0
END AS calc_flag
FROM payment_charge_item pci
LEFT JOIN base_payment orig ON pci.relation_id = orig.payment_id
),
-- 关联收费项+医生信息(核心新增医生维度字段)
charge_item_detail AS (
SELECT
cic.tenant_id,
ac.id AS charge_id,
ac.requesting_org_id,
ac.quantity_value,
ac.quantity_unit,
ac.definition_id,
ac.service_id,
-- 金额计算和科室SQL一致退款为负数
ac.total_price * cic.calc_flag AS total_price,
-- 折后价计算和科室SQL一致退款为负数
COALESCE(ac.system_discount_price, ac.total_price) * cic.calc_flag AS system_discount_price,
cic.bill_date,
-- 交易类型1=正常2=退款,和原有逻辑一致)
CASE WHEN cic.status_enum = #{refund} THEN 2 ELSE 1 END AS trade_type,
-- 医生维度核心字段(新增)
ac.enterer_id,
ap.name,
-- 处理lot_number空值避免关联异常
COALESCE(
CASE
WHEN acd.instance_table = #{medicationTableName} THEN mmd.lot_number
WHEN acd.instance_table = #{deviceTableName} THEN wdd.lot_number
ELSE NULL
END, ''
) AS lot_number
FROM charge_item_calc cic
-- 关联收费项精准匹配替代原有LIKE
LEFT JOIN adm_charge_item ac
ON cic.charge_item_id = ac.id
AND ac.delete_flag = '0'
AND ac.tenant_id = #{tenantId}
-- 关联收费项定义获取instance_table等信息
LEFT JOIN adm_charge_item_definition acd
ON ac.definition_id = acd.id
AND acd.delete_flag = '0'
AND acd.tenant_id = #{tenantId}
-- 关联医生信息核心医生ID+姓名)
LEFT JOIN adm_practitioner ap
ON ac.enterer_id = ap.id
AND ap.delete_flag = '0'
AND ap.tenant_id = #{tenantId}
-- 关联药品/设备相关表(保留原有逻辑)
LEFT JOIN med_medication_request mmr
ON ac.service_id = mmr.id
AND mmr.delete_flag = '0'
AND mmr.tenant_id = #{tenantId}
LEFT JOIN med_medication_dispense mmd
ON mmd.med_req_id = mmr.id
AND mmd.delete_flag = '0'
AND mmd.tenant_id = #{tenantId}
LEFT JOIN wor_device_request wdr
ON ac.service_id = wdr.id
AND wdr.delete_flag = '0'
AND wdr.tenant_id = #{tenantId}
LEFT JOIN wor_device_dispense wdd
ON wdd.device_req_id = wdr.id
AND wdd.delete_flag = '0'
AND wdd.tenant_id = #{tenantId}
WHERE ac.id IS NOT NULL
),
--核心去重医生维度charge_id + enterer_id + trade_type
charge_item_distinct AS (
SELECT
*,
-- 分区键:收费项+医生+交易类型,确保不同医生/不同类型不重复
ROW_NUMBER() OVER (PARTITION BY charge_id, enterer_id, trade_type ORDER BY bill_date DESC) AS rn
FROM charge_item_detail
)
SELECT
tenant_id,
charge_id,
requesting_org_id,
quantity_value,
quantity_unit,
definition_id,
service_id,
total_price,
system_discount_price,
trade_type,
enterer_id,
name,
lot_number
FROM charge_item_distinct
WHERE rn = 1
) AS T8
-- 关联成本详情表和科室SQL一致修复lot_number空值匹配
LEFT JOIN adm_charge_item_def_detail acidd
ON T8.definition_id = acidd.definition_id
AND acidd.tenant_id = #{tenantId}
AND acidd.id = (
SELECT cidd.id
FROM adm_charge_item_def_detail cidd
WHERE cidd.definition_id = T8.definition_id
AND cidd.condition_code = #{conditionCode}
AND cidd.delete_flag = '0'
AND cidd.tenant_id = #{tenantId}
-- 关键处理lot_number为空的情况
AND (cidd.condition_value = T8.lot_number OR (T8.lot_number = '' AND cidd.condition_value IS NULL))
ORDER BY cidd.create_time DESC
LIMIT 1
)
-- 关联机构表和科室SQL一致
LEFT JOIN adm_organization T3
ON T8.requesting_org_id = T3.id
AND T3.delete_flag = '0'
AND T3.tenant_id = #{tenantId}
-- 关联收费项定义表和科室SQL一致获取yb_type
LEFT JOIN adm_charge_item_definition T5
ON T8.definition_id = T5.id
AND T5.delete_flag = '0'
AND T5.tenant_id = #{tenantId}
-- 关联药品定义表(去重,避免笛卡尔积)
LEFT JOIN (
SELECT id, min_unit_code, part_percent, tenant_id
FROM med_medication_definition
WHERE delete_flag = '0'
GROUP BY id, min_unit_code, part_percent, tenant_id
) T13
ON T5.instance_id = T13.id
AND T5.instance_table = #{medicationTableName}
AND T13.tenant_id = #{tenantId}
-- 关联设备定义表(去重,避免笛卡尔积)
LEFT JOIN (
SELECT id, min_unit_code, part_percent, tenant_id
FROM adm_device_definition
WHERE delete_flag = '0'
GROUP BY id, min_unit_code, part_percent, tenant_id
) T11
ON T5.instance_id = T11.id
AND T5.instance_table = #{deviceTableName}
AND T11.tenant_id = #{tenantId}
GROUP BY
T8.requesting_org_id,
T3.name,
T8.enterer_id,
T8.name,
T5.type_code,
T5.yb_type,
T8.trade_type
ORDER BY
T8.requesting_org_id,
T3.name,
T5.yb_type,
T5.type_code,
T8.trade_type;
>>>>>>> v1.3
</select>
</mapper>

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>

View File

@@ -1,5 +1,5 @@
ybapp.config.url=http://localhost:18079/openhis/yb/yb
ybapp.config.api.key=your_api_key_123
ybapp.config.timeout=5000
ybapp.config.fixmedinsCode=H22010200
ybapp.config.fixmedinsCode=H22010402403
ybapp.config.eleUrl=http://localhost:18079/openhis/yb/ybElep