后端最新版本同步

This commit is contained in:
Zhang.WH
2025-09-25 10:43:25 +08:00
parent 1276dc4adb
commit c8014404f1
355 changed files with 10070 additions and 5578 deletions

View File

@@ -0,0 +1,86 @@
# 数据源配置
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: org.postgresql.Driver
druid:
# 主库数据源
master:
url: jdbc:postgresql://192.168.10.240:5432/openhis?currentSchema=public&characterEncoding=UTF-8&client_encoding=UTF-8
username: postgres
password: root
# 从库数据源
slave:
# 从数据源开关/默认关闭
enabled: false
url:
username:
password:
# 初始连接数
initialSize: 5
# 最小连接池数量
minIdle: 10
# 最大连接池数量
maxActive: 20
# 配置获取连接等待超时的时间
maxWait: 60000
# 配置连接超时时间
connectTimeout: 30000
# 配置网络超时时间
socketTimeout: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
# 配置一个连接在池中最大生存的时间,单位是毫秒
maxEvictableIdleTimeMillis: 900000
# 配置检测连接是否有效
validationQuery: SELECT 1 # FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
webStatFilter:
enabled: true
statViewServlet:
enabled: true
# 设置白名单,不填则允许所有访问
allow:
url-pattern: /druid/*
# 控制台管理用户名和密码
login-username: openhis
login-password: 123456
filter:
stat:
enabled: true
# 慢SQL记录
log-slow-sql: true
slow-sql-millis: 1000
merge-sql: true
wall:
config:
multi-statement-allow: true
# redis 配置
redis:
# 地址
host: 192.168.10.240
port: 6379
# 数据库索引
database: 1
# 密码
password: redis
# 连接超时时间
timeout: 10s
lettuce:
pool:
# 连接池中的最小空闲连接
min-idle: 0
# 连接池中的最大空闲连接
max-idle: 8
# 连接池的最大数据库连接数
max-active: 8
# #连接池最大阻塞等待时间(使用负值表示没有限制)
max-wait: -1ms
# 文言
messages:
basename: i18n/general_message/messages
encoding: utf-8

View File

@@ -0,0 +1,87 @@
# 数据源配置
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: org.postgresql.Driver
druid:
# 主库数据源
master:
url: jdbc:postgresql://60.188.247.175:5432/openhis?currentSchema=public&characterEncoding=UTF-8&client_encoding=UTF-8
username: postgres
password: root
# 从库数据源
slave:
# 从数据源开关/默认关闭
enabled: false
url:
username:
password:
# 初始连接数
initialSize: 5
# 最小连接池数量
minIdle: 10
# 最大连接池数量
maxActive: 20
# 配置获取连接等待超时的时间
maxWait: 60000
# 配置连接超时时间
connectTimeout: 30000
# 配置网络超时时间
socketTimeout: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
# 配置一个连接在池中最大生存的时间,单位是毫秒
maxEvictableIdleTimeMillis: 900000
# 配置检测连接是否有效
validationQuery: SELECT 1 # FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
webStatFilter:
enabled: true
statViewServlet:
enabled: true
# 设置白名单,不填则允许所有访问
allow:
url-pattern: /druid/*
# 控制台管理用户名和密码
login-username: openhis
login-password: 123456
filter:
stat:
enabled: true
# 慢SQL记录
log-slow-sql: true
slow-sql-millis: 1000
merge-sql: true
wall:
config:
multi-statement-allow: true
# redis 配置
redis:
# 地址
host: 60.188.247.175
# 端口默认为6379
port: 6379
# 数据库索引
database: 0
# 密码
password: redis
# 连接超时时间
timeout: 10s
lettuce:
pool:
# 连接池中的最小空闲连接
min-idle: 0
# 连接池中的最大空闲连接
max-idle: 8
# 连接池的最大数据库连接数
max-active: 8
# #连接池最大阻塞等待时间(使用负值表示没有限制)
max-wait: -1ms
# 文言
messages:
basename: i18n/general_message/messages
encoding: utf-8

View File

@@ -0,0 +1,86 @@
# 数据源配置
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: org.postgresql.Driver
druid:
# 主库数据源
master:
url: jdbc:postgresql://9.139.80.38:5432/openhis?currentSchema=public&characterEncoding=UTF-8&client_encoding=UTF-8
username: jiahui_health
password: xDQC3P0JZWMS*isc
# 从库数据源
slave:
# 从数据源开关/默认关闭
enabled: false
url:
username:
password:
# 初始连接数
initialSize: 5
# 最小连接池数量
minIdle: 10
# 最大连接池数量
maxActive: 20
# 配置获取连接等待超时的时间
maxWait: 60000
# 配置连接超时时间
connectTimeout: 30000
# 配置网络超时时间
socketTimeout: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
# 配置一个连接在池中最大生存的时间,单位是毫秒
maxEvictableIdleTimeMillis: 900000
# 配置检测连接是否有效
validationQuery: SELECT 1 # FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
webStatFilter:
enabled: true
statViewServlet:
enabled: true
# 设置白名单,不填则允许所有访问
allow:
url-pattern: /druid/*
# 控制台管理用户名和密码
login-username: openhis
login-password: 123456
filter:
stat:
enabled: true
# 慢SQL记录
log-slow-sql: true
slow-sql-millis: 1000
merge-sql: true
wall:
config:
multi-statement-allow: true
# redis 配置
redis:
# 地址
host: 9.139.86.34
port: 6379
# 数据库索引
database: 0
# 密码
password: HWV4cC*ABdY71kef
# 连接超时时间
timeout: 10s
lettuce:
pool:
# 连接池中的最小空闲连接
min-idle: 0
# 连接池中的最大空闲连接
max-idle: 8
# 连接池的最大数据库连接数
max-active: 8
# #连接池最大阻塞等待时间(使用负值表示没有限制)
max-wait: -1ms
# 文言
messages:
basename: i18n/general_message/messages
encoding: utf-8

View File

@@ -6,7 +6,7 @@ spring:
druid:
# 主库数据源
master:
url: jdbc:postgresql://localhost:5432/openhis?currentSchema=public&characterEncoding=UTF-8&client_encoding=UTF-8
url: jdbc:postgresql://192.168.30.199:5432/openhis?currentSchema=public&characterEncoding=UTF-8&client_encoding=UTF-8
username: postgres
password: root
# 从库数据源
@@ -62,7 +62,7 @@ spring:
# redis 配置
redis:
# 地址
host: 127.0.0.1
host: 192.168.30.199
# 端口默认为6379
port: 6379
# 数据库索引

View File

@@ -0,0 +1,87 @@
# 数据源配置
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: org.postgresql.Driver
druid:
# 主库数据源
master:
url: jdbc:postgresql://192.168.1.123:5432/openhis?currentSchema=public&characterEncoding=UTF-8&client_encoding=UTF-8
username: postgres
password: root
# 从库数据源
slave:
# 从数据源开关/默认关闭
enabled: false
url:
username:
password:
# 初始连接数
initialSize: 5
# 最小连接池数量
minIdle: 10
# 最大连接池数量
maxActive: 20
# 配置获取连接等待超时的时间
maxWait: 60000
# 配置连接超时时间
connectTimeout: 30000
# 配置网络超时时间
socketTimeout: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
# 配置一个连接在池中最大生存的时间,单位是毫秒
maxEvictableIdleTimeMillis: 900000
# 配置检测连接是否有效
validationQuery: SELECT 1 # FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
webStatFilter:
enabled: true
statViewServlet:
enabled: true
# 设置白名单,不填则允许所有访问
allow:
url-pattern: /druid/*
# 控制台管理用户名和密码
login-username: openhis
login-password: 123456
filter:
stat:
enabled: true
# 慢SQL记录
log-slow-sql: true
slow-sql-millis: 1000
merge-sql: true
wall:
config:
multi-statement-allow: true
# redis 配置
redis:
# 地址
host: 192.168.1.123
# 端口默认为6379
port: 6379
# 数据库索引
database: 1
# 密码
password: redis
# 连接超时时间
timeout: 10s
lettuce:
pool:
# 连接池中的最小空闲连接
min-idle: 0
# 连接池中的最大空闲连接
max-idle: 8
# 连接池的最大数据库连接数
max-active: 8
# #连接池最大阻塞等待时间(使用负值表示没有限制)
max-wait: -1ms
# 文言
messages:
basename: i18n/general_message/messages
encoding: utf-8

View File

@@ -0,0 +1,86 @@
# 数据源配置
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: org.postgresql.Driver
druid:
# 主库数据源
master:
url: jdbc:postgresql://172.16.7.4:5432/openhis?currentSchema=public&characterEncoding=UTF-8&client_encoding=UTF-8
username: postgres
password: root
# 从库数据源
slave:
# 从数据源开关/默认关闭
enabled: false
url:
username:
password:
# 初始连接数
initialSize: 5
# 最小连接池数量
minIdle: 10
# 最大连接池数量
maxActive: 20
# 配置获取连接等待超时的时间
maxWait: 60000
# 配置连接超时时间
connectTimeout: 30000
# 配置网络超时时间
socketTimeout: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
# 配置一个连接在池中最大生存的时间,单位是毫秒
maxEvictableIdleTimeMillis: 900000
# 配置检测连接是否有效
validationQuery: SELECT 1 # FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
webStatFilter:
enabled: true
statViewServlet:
enabled: true
# 设置白名单,不填则允许所有访问
allow:
url-pattern: /druid/*
# 控制台管理用户名和密码
login-username: openhis
login-password: 123456
filter:
stat:
enabled: true
# 慢SQL记录
log-slow-sql: true
slow-sql-millis: 1000
merge-sql: true
wall:
config:
multi-statement-allow: true
# redis 配置
redis:
# 地址
host: 172.16.7.4
port: 6379
# 数据库索引
database: 1
# 密码
password: redis
# 连接超时时间
timeout: 10s
lettuce:
pool:
# 连接池中的最小空闲连接
min-idle: 0
# 连接池中的最大空闲连接
max-idle: 8
# 连接池的最大数据库连接数
max-active: 8
# #连接池最大阻塞等待时间(使用负值表示没有限制)
max-wait: -1ms
# 文言
messages:
basename: i18n/general_message/messages
encoding: utf-8

View File

@@ -0,0 +1,93 @@
# 数据源配置
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: org.postgresql.Driver
druid:
# 主库数据源
# 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.30.199:5432/openhistest?currentSchema=public&characterEncoding=UTF-8&client_encoding=UTF-8
username: postgres
password: root
# 从库数据源
slave:
# 从数据源开关/默认关闭
enabled: false
url:
username:
password:
# 初始连接数
initialSize: 5
# 最小连接池数量
minIdle: 10
# 最大连接池数量
maxActive: 20
# 配置获取连接等待超时的时间
maxWait: 60000
# 配置连接超时时间
connectTimeout: 30000
# 配置网络超时时间
socketTimeout: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
# 配置一个连接在池中最大生存的时间,单位是毫秒
maxEvictableIdleTimeMillis: 900000
# 配置检测连接是否有效
validationQuery: SELECT 1 # FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
webStatFilter:
enabled: true
statViewServlet:
enabled: true
# 设置白名单,不填则允许所有访问
allow:
url-pattern: /druid/*
# 控制台管理用户名和密码
login-username: openhis
login-password: 123456
filter:
stat:
enabled: true
# 慢SQL记录
log-slow-sql: true
slow-sql-millis: 1000
merge-sql: true
wall:
config:
multi-statement-allow: true
# redis 配置
redis:
# 地址
# host: 192.168.1.123
host: 192.168.30.199
# 端口默认为6379
port: 6379
# 数据库索引
database: 1
# 密码
password: redis
# 连接超时时间
timeout: 10s
lettuce:
pool:
# 连接池中的最小空闲连接
min-idle: 0
# 连接池中的最大空闲连接
max-idle: 8
# 连接池的最大数据库连接数
max-active: 8
# #连接池最大阻塞等待时间(使用负值表示没有限制)
max-wait: -1ms
# 文言
messages:
basename: i18n/general_message/messages
encoding: utf-8

View File

@@ -0,0 +1,87 @@
# 数据源配置 农大
spring:
datasource:
type: com.alibaba.druid.pool.DruidDataSource
driverClassName: org.postgresql.Driver
druid:
# 主库数据源
master:
url: jdbc:postgresql://localhost:5432/openhis?currentSchema=public&characterEncoding=UTF-8&client_encoding=UTF-8
username: postgres
password: root
# 从库数据源
slave:
# 从数据源开关/默认关闭
enabled: false
url:
username:
password:
# 初始连接数
initialSize: 5
# 最小连接池数量
minIdle: 10
# 最大连接池数量
maxActive: 20
# 配置获取连接等待超时的时间
maxWait: 60000
# 配置连接超时时间
connectTimeout: 30000
# 配置网络超时时间
socketTimeout: 60000
# 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒
timeBetweenEvictionRunsMillis: 60000
# 配置一个连接在池中最小生存的时间,单位是毫秒
minEvictableIdleTimeMillis: 300000
# 配置一个连接在池中最大生存的时间,单位是毫秒
maxEvictableIdleTimeMillis: 900000
# 配置检测连接是否有效
validationQuery: SELECT 1 # FROM DUAL
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
webStatFilter:
enabled: true
statViewServlet:
enabled: true
# 设置白名单,不填则允许所有访问
allow:
url-pattern: /druid/*
# 控制台管理用户名和密码
login-username: openhis
login-password: 123456
filter:
stat:
enabled: true
# 慢SQL记录
log-slow-sql: true
slow-sql-millis: 1000
merge-sql: true
wall:
config:
multi-statement-allow: true
# redis 配置
redis:
# 地址
host: 127.0.0.1
# 端口默认为6379
port: 6379
# 数据库索引
database: 1
# 密码
password: redis
# 连接超时时间
timeout: 10s
lettuce:
pool:
# 连接池中的最小空闲连接
min-idle: 0
# 连接池中的最大空闲连接
max-idle: 8
# 连接池的最大数据库连接数
max-active: 8
# #连接池最大阻塞等待时间(使用负值表示没有限制)
max-wait: -1ms
# 文言
messages:
basename: i18n/general_message/messages
encoding: utf-8

View File

@@ -54,7 +54,7 @@ spring:
# 国际化资源文件路径
basename: i18n/messages
profiles:
active: local # (天翼云)cloud 本地测试test 本地local 生产prod (农大) nd (长大) cd
active: local # (天翼云)cloud 本地测试test 本地local 生产prod (农大) nd (长大) cd (师大)sd
# 文件上传
servlet:
multipart:

View File

@@ -126,6 +126,7 @@
AND T1.inventory_status_enum = #{inventoryStatusEnum}
AND T1.location_id = #{sourceLocationId}
AND T1.item_table = #{medicationTableName}
AND T1.quantity > 0
UNION ALL
SELECT T1.tenant_id,
#{device} AS medication_type,
@@ -174,6 +175,7 @@
AND T1.inventory_status_enum = #{inventoryStatusEnum}
AND T1.location_id = #{sourceLocationId}
AND T1.item_table = #{deviceTableName}
AND T1.quantity > 0
) AS A
${ew.customSqlSegment}
</select>
@@ -210,6 +212,7 @@
T1.item_id, -- 项目id
T2.part_percent, -- 拆零比
T1.remake, -- 备注
T1.occurrence_time,
T9.quantity AS total_source_quantity, -- 库存数量(源库存)
T12.quantity AS total_purpose_quantity -- 库存数量(目的库存)
FROM wor_supply_request T1
@@ -281,6 +284,7 @@
T1.item_id, -- 项目id
T2.part_percent, -- 拆零比
T1.remake, -- 备注
T1.occurrence_time,
T9.quantity AS total_source_quantity, -- 总库存数量(源库存)
T12.quantity AS total_purpose_quantity -- 总库存数量(目的库存)
FROM wor_supply_request T1

View File

@@ -80,6 +80,7 @@
T6."name" AS purpose_location_name,
T6."id" AS purpose_location_id,
T7."name" AS purpose_location_store_name,
T1.occurrence_time,
(SELECT SUM(T9.quantity)
FROM wor_inventory_item T9
WHERE T9.item_id = T1.item_id
@@ -126,6 +127,7 @@
T6."name" AS purpose_location_name,
T6."id" AS purpose_location_id,
T7."name" AS purpose_location_store_name,
T1.occurrence_time,
(SELECT SUM(T9.quantity)
FROM wor_inventory_item T9
WHERE T9.item_id = T1.item_id

View File

@@ -94,6 +94,7 @@
THEN T1.practitioner_id
ELSE NULL
END AS practitioner_id, --经手人
T1.occurrence_time,
T4.part_percent --拆零比
FROM wor_supply_request T1
LEFT JOIN wor_inventory_item T2
@@ -223,6 +224,7 @@
THEN T1.practitioner_id
ELSE NULL
END AS practitioner_id, --经手人
T1.occurrence_time,
T4.part_percent --拆零比
FROM wor_supply_request T1
LEFT JOIN wor_inventory_item T2
@@ -266,7 +268,7 @@
T1.practitioner_id,
T1.applicant_id,
T1.approver_id,
MIN(T1.create_time) AS create_time, -- 制单时间
MIN(T1.occurrence_time) AS occurrence_time, -- 制单时间
T1.approval_time
FROM wor_supply_request AS T1
WHERE T1.original_bus_no = #{busNo}

View File

@@ -125,9 +125,14 @@
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
WHERE T1.instance_id IN
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>

View File

@@ -87,6 +87,7 @@
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
@@ -157,6 +158,7 @@
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
@@ -264,12 +266,7 @@
<foreach collection="typeEnum" item="item" separator="," open="(" close=")">
#{item}
</foreach>
<if test="endTime == null">
AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') = #{startTime}
</if>
<if test="endTime != null">
AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
</if>
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

View File

@@ -87,6 +87,7 @@
T7."name" AS purpose_location_store_name, -- 目的仓位
T8."name" AS source_location_name, -- 源仓库
T9."name" AS source_location_store_name, -- 源仓位
T1.occurrence_time,
T1.remake -- 备注
FROM wor_supply_request T1
LEFT JOIN med_medication_definition T2
@@ -157,6 +158,7 @@
T7."name" AS source_location_store_name, -- 源仓位
T8."name" AS purpose_location_name, -- 目的仓库
T9."name" AS purpose_location_store_name, -- 目的货位
T1.occurrence_time,
T1.remake -- 备注
FROM wor_supply_request T1
LEFT JOIN adm_device_definition T2

View File

@@ -21,7 +21,9 @@
T3.address,
T3.yb_no,
T3.org_id,
T3.phar_prac_cert_no
T3.phar_prac_cert_no,
T3.dr_profttl_code,
T3.signature
from (
SELECT T1.tenant_id,
T1.id AS practitioner_id,
@@ -39,7 +41,9 @@
T1.address,
T1.yb_no,
T1.org_id,
T1.phar_prac_cert_no
T1.phar_prac_cert_no,
T1.dr_profttl_code,
T1.signature
FROM adm_practitioner AS T1
LEFT JOIN sys_user AS T2 ON T2.user_id = T1.user_id
AND T2.delete_flag = '0'

View File

@@ -4,20 +4,21 @@
<select id="selectEncounterPatientPage"
resultType="com.openhis.web.chargemanage.dto.EncounterPatientPageDto">
SELECT T4.encounter_id,
T4.encounter_bus_no,
T4.patient_id,
T4.reception_time,
T4.patient_name,
T4.patient_bus_no,
T4.gender_enum,
T4.birth_date,
T4.id_card,
T4.patient_py_str,
T4.patient_wb_str,
T4.status_enum
SELECT ii.encounter_id,
ii.encounter_bus_no,
ii.patient_id,
ii.reception_time,
ii.patient_name,
ii.patient_bus_no,
ii.gender_enum,
ii.birth_date,
ii.id_card,
ii.patient_py_str,
ii.patient_wb_str,
ii.status_enum,
ii.organization_name
FROM (
SELECT T1.id AS encounter_id,
SELECT T1.id AS encounter_id,
T1.bus_no AS encounter_bus_no,
T1.patient_id,
T1.reception_time,
@@ -30,13 +31,18 @@
T2.id_card,
T2.py_str AS patient_py_str,
T2.wb_str AS patient_wb_str,
T3.status_enum
T3.status_enum,
T4."name" AS organization_name
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'
LEFT JOIN adm_patient AS T2
ON T1.patient_id = T2.id
AND T2.delete_flag = '0'
INNER JOIN adm_charge_item AS T3
ON T3.encounter_id = T1.id
AND T3.delete_flag = '0'
LEFT JOIN adm_organization AS T4
ON T1.organization_id = T4.id
AND T4.delete_flag = '0'
WHERE T1.delete_flag = '0'
GROUP BY T1.id,
T1.bus_no,
@@ -51,10 +57,11 @@
T2.id_card,
T2.py_str,
T2.wb_str,
T3.status_enum
T3.status_enum,
T4."name"
ORDER BY T1.bus_no DESC
) AS T4
${ew.customSqlSegment}
) AS ii
${ew.customSqlSegment}
</select>
<select id="selectEncounterPatientPrescription"
@@ -69,58 +76,68 @@
T1.quantity_unit,
T1.unit_price,
T1.total_price,
T1.prescription_no,
mmr.prescription_no,
T1.bus_no,
T1.entered_date,
T1.account_id,
T1.service_table,
T1.service_id,
T5.enterer_id,
T5.bill_date,
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
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
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, ','))
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'
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'
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'
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'
AND T1.status_enum IN (#{planned}
, #{billable}
, #{billed}
, #{refunding}
, #{refunded}
, #{partRefund})
AND T1.context_enum != #{register}
AND T1.delete_flag = '0'
</select>
</mapper>

View File

@@ -248,6 +248,7 @@
AND T7.delete_flag = '0'
WHERE T3.status_enum IN (#{billed}, #{refunding}, #{refunded}, #{partRefund})
AND T3.refund_id IS NULL
AND T3.context_enum != #{register}
AND T1.class_enum = #{amb}
AND T1.delete_flag = '0'
GROUP BY T1.id,

View File

@@ -1,7 +1,58 @@
<?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.common.mapper.CommonAppMapper">
<resultMap id="PrescriptionPrintInfoMap" type="com.openhis.web.common.dto.AdvicePrintInfoDto">
<id property="departmentName" column="department_name"/>
<result property="patientName" column="patient_name"/>
<result property="phone" column="phone"/>
<result property="encounterNo" column="encounter_no"/>
<result property="genderEnum" column="gender_enum"/>
<result property="age" column="age"/>
<result property="birthDate" column="birth_date"/>
<result property="reqTime" column="req_time"/>
<result property="contractName" column="contract_name"/>
<result property="conditionName" column="condition_name"/>
<result property="doctorName" column="doctor_name"/>
<result property="dispenseDoctorName" column="dispense_doctor_name"/>
<result property="preparerDoctorName" column="preparer_doctor_name"/>
<result property="chargeDoctorName" column="charge_doctor_name"/>
<result property="encounterYbClass" column="encounter_yb_class"/>
<collection property="adviceItemList" ofType="com.openhis.web.common.dto.AdviceItemPrintInfoDto">
<result property="quantity" column="quantity"/>
<result property="unitPrice" column="unit_price"/>
<result property="totalPrice" column="total_price"/>
<result property="itemName" column="item_name"/>
<result property="totalVolume" column="total_volume"/>
<result property="dose" column="dose"/>
<result property="rateCode" column="rate_code"/>
<result property="methodCode" column="method_code"/>
<result property="doseUnitCode" column="dose_unit_code"/>
<result property="unitCode" column="unit_code"/>
<result property="prescriptionNo" column="prescription_no"/>
<result property="groupId" column="group_id"/>
<result property="sortNumber" column="sort_number"/>
</collection>
</resultMap>
<resultMap id="TreatmentPrintInfoMap" type="com.openhis.web.common.dto.AdvicePrintInfoDto">
<id property="departmentName" column="department_name"/>
<result property="patientName" column="patient_name"/>
<result property="phone" column="phone"/>
<result property="encounterNo" column="encounter_no"/>
<result property="genderEnum" column="gender_enum"/>
<result property="age" column="age"/>
<result property="birthDate" column="birth_date"/>
<result property="reqTime" column="req_time"/>
<result property="contractName" column="contract_name"/>
<result property="doctorName" column="doctor_name"/>
<result property="encounterYbClass" column="encounter_yb_class"/>
<collection property="adviceItemList" ofType="com.openhis.web.common.dto.AdviceItemPrintInfoDto">
<result property="quantity" column="quantity"/>
<result property="unitPrice" column="unit_price"/>
<result property="totalPrice" column="total_price"/>
<result property="itemName" column="item_name"/>
<result property="unitCode" column="unit_code"/>
</collection>
</resultMap>
<select id="selectInventoryItemList" resultType="com.openhis.web.common.dto.InventoryItemDto">
SELECT ii.tenant_id,
ii.item_type,
@@ -263,4 +314,195 @@
AND delete_flag = '0'
ORDER BY create_time DESC LIMIT 1
</select>
<select id="getPractitionerList" resultType="com.openhis.web.common.dto.PractitionerInfoDto">
SELECT ap.ID AS practitioner_id,
ap.NAME AS practitioner_name,
ao.NAME AS organization_name
FROM adm_practitioner AS ap
LEFT JOIN adm_organization AS ao ON ap.org_id = ao.ID
AND ao.delete_flag = '0'
WHERE ap.delete_flag = '0'
<if test="searchKey != null and searchKey != ''">
AND (ap.py_str LIKE concat('%', #{searchKey}, '%') OR ap.NAME LIKE concat('%', #{searchKey}, '%'))
</if>
</select>
<select id="selectPrescriptionPrintInfo" resultMap="PrescriptionPrintInfoMap">
SELECT ae.yb_class_enum AS encounter_yb_class,
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
FROM med_medication_request mmr
LEFT JOIN med_medication_dispense mmd
ON mmd.med_req_id = mmr.id
AND mmd.delete_flag = '0'
LEFT JOIN med_medication_definition mmd2
ON mmr.medication_id = mmd2.id
AND mmd2.delete_flag = '0'
LEFT JOIN med_medication mm
ON mmd2.id = mm.medication_def_id
AND mm.delete_flag = '0'
LEFT JOIN adm_charge_item aci
ON aci.service_id = mmr.id
AND aci.delete_flag = '0'
LEFT JOIN cli_condition AS cc
ON mmr.condition_id = cc.id
AND cc.delete_flag = '0'
LEFT JOIN cli_condition_definition AS ccd
ON cc.definition_id = ccd.id
AND ccd.delete_flag = '0'
LEFT JOIN adm_encounter ae
ON mmr.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 = mmr.practitioner_id
AND ap2.delete_flag = '0'
LEFT JOIN adm_practitioner ap3
ON ap3.id = mmd.practitioner_id
AND ap3.delete_flag = '0'
LEFT JOIN adm_practitioner ap4
ON ap4.id = aci.performer_id
AND ap4.delete_flag = '0'
LEFT JOIN adm_practitioner ap5
ON ap5.id = mmd.preparer_id
AND ap5.delete_flag = '0'
WHERE mmr.delete_flag = '0'
AND mmr.id IN
<foreach collection="requestIds" item="requestId" separator="," open="(" close=")">
#{requestId}
</foreach>
</select>
<select id="selectTreatmentPrintInfo" resultMap="TreatmentPrintInfoMap">
SELECT ae.yb_class_enum AS encounter_yb_class,
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
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'
WHERE wdr.delete_flag = '0'
AND wdr.id IN
<foreach collection="requestIds" item="requestId" separator="," open="(" close=")">
#{requestId}
</foreach>
UNION
SELECT ae.yb_class_enum AS encounter_yb_class,
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
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'
WHERE wsr.delete_flag = '0'
AND wsr.id IN
<foreach collection="requestIds" item="requestId" separator="," open="(" close=")">
#{requestId}
</foreach>
</select>
</mapper>

View File

@@ -227,6 +227,7 @@
SELECT
T1.id AS inventory_id,
T1.item_id,
T1.category_code,
T1.item_table,
T1.quantity,
T1.unit_code,
@@ -300,6 +301,15 @@
AND (T1.status_enum = #{status1} OR T1.status_enum = #{status2})
</select>
<select id="getMedLocationConfig" resultType="com.openhis.web.doctorstation.dto.AdviceInventoryDto">
SELECT aol.distribution_category_code AS category_code,
aol.def_location_id AS location_id
FROM adm_organization_location AS aol
WHERE aol.delete_flag = '0'
AND aol.organization_id = #{organizationId}
AND (CURRENT_TIME :: TIME ( 6 ) BETWEEN aol.start_time AND aol.end_time)
</select>
<select id="getChildCharge" resultType="com.openhis.web.doctorstation.dto.AdvicePriceDto">
SELECT
T1.definition_id,
@@ -475,6 +485,7 @@
LEFT JOIN adm_organization AS ao ON ao.ID = T1.org_id AND ao.delete_flag = '0'
WHERE T1.delete_flag = '0'
AND T1.based_on_table is null
AND T1.parent_id IS NULL
<if test="historyFlag == '0'.toString()">
AND T1.encounter_id = #{encounterId}
</if>
@@ -495,4 +506,17 @@
AND aa.encounter_id = #{encounterId}
</select>
<select id="getActivityBindDevice" resultType="com.openhis.web.doctorstation.dto.ActivityBindDeviceDetailDto">
SELECT item_no AS activity_id,
dev_act_id AS device_id,
quantity,
unit_code
FROM tmp_activity_device
WHERE delete_flag = '0'
AND status_enum = #{status}
AND type_code = '2'
AND dev_act_table = #{tableName}
AND item_no = #{activityId}
</select>
</mapper>

View File

@@ -55,10 +55,13 @@
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.delete_flag = '0'
ON T1.ID = T4.encounter_id AND T4.type_code = #{participantType}
AND T4.status_enum = #{activityStatus}
AND T4.delete_flag = '0'
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'

View File

@@ -15,7 +15,8 @@
ri.org_name,
ri.practitioner_id,
ri.practitioner_name,
ri.remark
ri.remark,
ri.tooth_position
from (SELECT crr.tenant_id,
crr.id,
crr.patient_name,
@@ -26,14 +27,14 @@
ao.NAME AS org_name,
crr.practitioner_id,
ap.NAME AS practitioner_name,
crr.remark
crr.remark,
crr.tooth_position
FROM cli_reservation_record AS crr
LEFT JOIN adm_organization AS ao ON ao.ID = crr.org_id
AND ao.delete_flag = '0'
LEFT JOIN adm_practitioner AS ap ON ap.ID = crr.practitioner_id
AND ap.delete_flag = '0'
WHERE crr.delete_flag = '0'
AND (crr.org_id = #{orgId} OR crr.practitioner_id = #{practitionerId})
order by crr.reservation_time) AS ri
${ew.customSqlSegment}
</select>

View File

@@ -32,7 +32,7 @@
t1.end_time,
t1.class_enum,
t1.primary_menu_enum,
t1.doc_name,
t1.name,
t1.tenant_id
FROM
(SELECT
@@ -49,7 +49,7 @@
e.reception_time,
e.class_enum,
d.primary_menu_enum,
d.name as doc_name,
d.name ,
t.id,
t.definition_id,
t.definition_bus_no,
@@ -86,6 +86,52 @@
)t1
${ew.customSqlSegment}
</select>
<select id="getRecordPageListByEncounterId" parameterType="java.util.Map"
resultType="com.openhis.web.document.dto.DocRecordDto">
SELECT t1.id,
t1.definition_id,
t1.definition_bus_no,
t1.content_json,
t1.status_enum,
t1.organization_id,
t1.encounter_id,
t1.patient_id,
t1.record_time,
t1.tenant_id,
t1.delete_flag,
t1.create_by,
t1.create_time,
t1.update_by,
t1.update_time,
t1.name,
t1.version,
t1.tenant_id
FROM
(SELECT
d.name ,
d.version,
t.id,
t.definition_id,
t.definition_bus_no,
t.content_json,
t.status_enum,
t.organization_id,
t.encounter_id,
t.patient_id,
t.record_time,
t.delete_flag,
t.create_by,
t.create_time,
t.update_by,
t.update_time,
t.tenant_id
FROM doc_record t
LEFT JOIN doc_definition d
on d.id=t.definition_id
where t.delete_flag='0'
order by t.record_time desc
)t1
${ew.customSqlSegment}
</select>
</mapper>

View File

@@ -42,17 +42,17 @@
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 = #{encounterLocationStatus}
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 = #{encounterLocationStatus}
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 = #{encounterLocationStatus}
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

View File

@@ -300,7 +300,7 @@
T1.therapy_enum AS therapy_enum,
NULL AS sort_number,
T1.quantity AS execute_num,
NULL AS day_times,
af.day_times,
ae.bus_no,
ap."name" AS patient_name,
al2."name" AS bad_name,
@@ -383,6 +383,9 @@
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 CASE WHEN T1.status_enum = #{draft}
THEN T1.performer_check_id IS NOT NULL

View File

@@ -0,0 +1,8 @@
<?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.jlau.mapper.ReviewPrescriptionRecordsAppMapper">
</mapper>

View File

@@ -1,7 +1,8 @@
<?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.OutpatientTreatmentAppMapper">
<select id="selectEncounterInfoListPage" resultType="com.openhis.web.outpatientmanage.dto.OutpatientTreatmentEncounterDto">
<select id="selectEncounterInfoListPage"
resultType="com.openhis.web.outpatientmanage.dto.OutpatientTreatmentEncounterDto">
SELECT ii.encounter_id,
ii.reception_time,
ii.encounter_no,
@@ -13,7 +14,7 @@
ii.status_enum
FROM (
SELECT T1.tenant_id,
T1.id AS encounter_id,
T1.id AS encounter_id,
T1.reception_time,
T1.bus_no AS encounter_no,
T2.gender_enum,
@@ -23,15 +24,15 @@
T2.birth_date,
T3.status_enum
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'
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'
WHERE T1.class_enum = #{amb}
AND T1.delete_flag = '0'
AND T1.delete_flag = '0'
GROUP BY T1.tenant_id,
T1.id,
T1.reception_time,
@@ -48,180 +49,188 @@
</select>
<select id="selectTreatmentInfoPage"
resultType="com.openhis.web.outpatientmanage.dto.OutpatientTreatmentInfoDto">
SELECT ii.encounter_id ,
ii.request_id ,
ii.service_status,
ii.dispense_id,
ii.dispense_status,
ii.execute_num,
ii.quantity ,
ii.unit_code ,
ii.bus_no,
ii.charge_status,
ii.unit_price ,
ii.total_price ,
ii.request_table ,
ii.service_category ,
ii.device_category ,
ii.med_category ,
ii.item_name,
ii.py_str,
ii.wb_str,
ii.size,
ii.group_id ,
ii.sort_number
FROM (SELECT ae.id AS encounter_id ,
ae.tenant_id,
wsr.id AS request_id ,
wsr.status_enum AS service_status,
NULL AS dispense_id,
NULL AS dispense_status,
wsr.quantity AS execute_num,
NULL AS quantity,
wsr.unit_code ,
wsr.bus_no,
aci.status_enum AS charge_status,
aci.unit_price ,
aci.total_price ,
#{worServiceRequest} AS request_table ,
wad.category_code AS service_category,
NULL AS device_category,
NULL AS med_category,
wad."name" AS item_name,
wad.py_str,
wad.wb_str,
NULL AS "size",
wsr.group_id ,
NULL AS sort_number
FROM adm_encounter ae
INNER JOIN wor_service_request wsr
ON wsr.encounter_id = ae.id
AND wsr.delete_flag = '0'
AND wsr.refund_service_id IS NULL
LEFT JOIN adm_charge_item aci
ON aci.service_id = wsr.id
AND aci.delete_flag = '0'
AND aci.refund_id IS NULL
INNER JOIN wor_activity_definition wad
ON wsr.activity_id = wad.id
AND wad.delete_flag = '0'
WHERE wsr.status_enum = #{reqCompleted}
AND ae.delete_flag = '0'
UNION ALL
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,
mmr.execute_num ,
mmr.quantity ,
mmr.unit_code ,
mmr.bus_no,
aci.status_enum AS charge_status,
aci.unit_price ,
aci.total_price ,
#{medMedicationRequest} AS request_table ,
NULL AS service_category,
NULL AS device_category,
mmd.category_code AS med_category,
mmd."name" AS item_name,
mmd.py_str ,
mmd.wb_str,
mm.total_volume AS "size",
mmr.group_id ,
mmr.sort_number
FROM adm_encounter ae
LEFT JOIN med_medication_request mmr
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)
AND mmd.delete_flag = '0'
INNER JOIN med_medication mm
ON mm.medication_def_id = mmd.id
AND mm.delete_flag = '0'
LEFT JOIN adm_charge_item aci
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
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
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'
WHERE wdd.status_enum != #{draft}
AND ae.delete_flag = '0'
) AS ii
${ew.customSqlSegment}
ORDER BY ii.sort_number
SELECT ii.encounter_id,
ii.request_id,
ii.service_status,
ii.dispense_id,
ii.dispense_status,
ii.execute_num,
ii.quantity,
ii.unit_code,
ii.bus_no,
ii.charge_status,
ii.unit_price,
ii.total_price,
ii.request_table,
ii.service_category,
ii.device_category,
ii.med_category,
ii.item_name,
ii.py_str,
ii.wb_str,
ii.size,
ii.group_id,
ii.sort_number,
ii.method_code,
ii.dispense_per_duration
FROM (SELECT ae.id AS encounter_id,
ae.tenant_id,
wsr.id AS request_id,
wsr.status_enum AS service_status,
NULL AS dispense_id,
NULL AS dispense_status,
wsr.quantity AS execute_num,
NULL AS quantity,
wsr.unit_code,
wsr.bus_no,
aci.status_enum AS charge_status,
aci.unit_price,
aci.total_price,
#{worServiceRequest} AS request_table,
wad.category_code AS service_category,
NULL AS device_category,
NULL AS med_category,
wad."name" AS item_name,
wad.py_str,
wad.wb_str,
NULL AS "size",
wsr.group_id,
NULL AS sort_number,
NULL AS method_code,
NULL AS dispense_per_duration
FROM adm_encounter ae
INNER JOIN wor_service_request wsr
ON wsr.encounter_id = ae.id
AND wsr.delete_flag = '0'
AND wsr.refund_service_id IS NULL
LEFT JOIN adm_charge_item aci
ON aci.service_id = wsr.id
AND aci.delete_flag = '0'
AND aci.refund_id IS NULL
INNER JOIN wor_activity_definition wad
ON wsr.activity_id = wad.id
AND wad.delete_flag = '0'
WHERE wsr.status_enum = #{reqCompleted}
AND ae.delete_flag = '0'
UNION ALL
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,
mmr.execute_num,
mmr.quantity,
mmr.unit_code,
mmr.bus_no,
aci.status_enum AS charge_status,
aci.unit_price,
aci.total_price,
#{medMedicationRequest} AS request_table,
NULL AS service_category,
NULL AS device_category,
mmd.category_code AS med_category,
mmd."name" AS item_name,
mmd.py_str,
mmd.wb_str,
mm.total_volume AS "size",
mmr.group_id,
mmr.sort_number,
mmr.method_code,
mmr.dispense_per_duration
FROM adm_encounter ae
LEFT JOIN med_medication_request mmr
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)
AND mmd.delete_flag = '0'
INNER JOIN med_medication mm
ON mm.medication_def_id = mmd.id
AND mm.delete_flag = '0'
LEFT JOIN adm_charge_item aci
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
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
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'
WHERE wdd.status_enum != #{draft}
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,
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
@@ -230,4 +239,21 @@
</foreach>
</if>
</select>
<select id="getBloodTransfusionPatch" resultType="com.openhis.web.outpatientmanage.dto.BloodTransfusionPatchDto">
SELECT ap.NAME AS patient_name,
ap.gender_enum,
ap.birth_date,
wad.NAME AS activity_name,
SUBSTRING(wad.bus_no FROM 3) AS bus_no,
aper.name AS practitioner_name,
ao.name AS org_name
FROM wor_service_request AS wsr
LEFT JOIN adm_patient AS ap ON ap.ID = wsr.patient_id
LEFT JOIN wor_activity_definition AS wad ON wad.ID = wsr.activity_id
LEFT JOIN adm_practitioner AS aper ON aper.id = wsr.requester_id AND aper.delete_flag = '0'
LEFT JOIN adm_organization AS ao ON ao.id = aper.org_id AND ao.delete_flag = '0'
WHERE wsr.ID = #{requestId}
</select>
</mapper>

View File

@@ -3,42 +3,44 @@
<mapper namespace="com.openhis.web.personalization.mapper.ActivityDeviceAppMapper">
<select id="selectActivityDevicePage" resultType="com.openhis.web.personalization.dto.ActivityDeviceDto">
SELECT T1.id ,
T1.range_code ,
T1.type_code ,
T1.item_no ,
T1.dev_act_id ,
T1.quantity ,
T1.status_enum ,
SELECT T1.id,
T1.range_code,
T1.type_code,
T1.item_no,
T1.dev_act_id,
T1.quantity,
T1.unit_code,
T1.status_enum,
T1.device_name,
T1.device_wb_str,
T1.device_py_str,
T1.activity_name,
T1.activity_py_str,
T1.activity_wb_str
FROM ( SELECT tad.id ,
tad.range_code ,
tad.type_code ,
tad.item_no ,
tad.dev_act_id ,
tad.quantity ,
tad.status_enum ,
tad.tenant_id ,
ad."name" AS device_name,
ad.wb_str AS device_wb_str,
ad.py_str AS device_py_str,
wad."name" AS activity_name,
wad.py_str AS activity_py_str,
wad.wb_str AS activity_wb_str
FROM tmp_activity_device AS tad
LEFT JOIN adm_device_definition AS ad
ON tad.dev_act_id = ad.id
AND ad.delete_flag = '0'
LEFT JOIN wor_activity_definition AS wad
ON tad.dev_act_id = wad.id
AND wad.delete_flag = '0'
WHERE tad.delete_flag = '0'
) AS T1
FROM (SELECT tad.id,
tad.range_code,
tad.type_code,
tad.item_no,
tad.dev_act_id,
tad.quantity,
tad.status_enum,
tad.tenant_id,
tad.unit_code,
ad."name" AS device_name,
ad.wb_str AS device_wb_str,
ad.py_str AS device_py_str,
wad."name" AS activity_name,
wad.py_str AS activity_py_str,
wad.wb_str AS activity_wb_str
FROM tmp_activity_device AS tad
LEFT JOIN adm_device_definition AS ad
ON tad.dev_act_id = ad.id
AND ad.delete_flag = '0'
LEFT JOIN wor_activity_definition AS wad
ON tad.dev_act_id = wad.id
AND wad.delete_flag = '0'
WHERE tad.delete_flag = '0'
) AS T1
${ew.customSqlSegment}
</select>
</mapper>

View File

@@ -0,0 +1,69 @@
<?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.personalization.mapper.OrdersGroupPackageAppMapper">
<select id="getGroupPackage" resultType="com.openhis.web.personalization.dto.OrdersGroupPackageQueryDto">
SELECT togp.ID AS group_package_id,
togp.NAME AS NAME,
togp.package_type_enum AS package_type_enum,
ao.id AS organization_id,
ao.NAME AS organization_name,
ap.id AS practitioner_id,
ap.NAME AS practitioner_name
FROM tmp_orders_group_package AS togp
LEFT JOIN adm_organization AS ao ON ao.ID = togp.organization_id
AND ao.delete_flag = '0'
LEFT JOIN adm_practitioner AS ap ON ap.ID = togp.practitioner_id
AND ap.delete_flag = '0'
WHERE togp.delete_flag = '0'
<if test="searchKey != null and searchKey != ''">
AND togp.NAME LIKE concat('%', #{searchKey}, '%')
</if>
<if test="packageTypeEnum != null">
AND togp.package_type_enum = #{packageTypeEnum}
</if>
<if test="organizationId != null">
AND togp.organization_id = #{organizationId}
</if>
<if test="practitionerId != null">
AND togp.practitioner_id = #{practitionerId}
</if>
</select>
<select id="getGroupPackageDetail"
resultType="com.openhis.web.personalization.dto.OrdersGroupPackageDetailQueryDto">
SELECT togpd.group_package_id,
togpd.order_definition_id,
togpd.order_definition_table,
togpd.quantity,
togpd.unit_code,
sdd.dict_label AS unit_code_name,
CASE
WHEN togpd.order_definition_table = 'med_medication_definition' THEN
med.NAME
WHEN togpd.order_definition_table = 'adm_device_definition' THEN
adm.NAME
WHEN togpd.order_definition_table = 'wor_activity_definition' THEN
wor.NAME
ELSE NULL
END AS order_definition_name
FROM tmp_orders_group_package_detail AS togpd
LEFT JOIN med_medication_definition AS med
ON togpd.order_definition_table = 'med_medication_definition'
AND togpd.order_definition_id = med.ID
LEFT JOIN adm_device_definition AS adm ON togpd.order_definition_table = 'adm_device_definition'
AND togpd.order_definition_id = adm.ID
LEFT JOIN wor_activity_definition AS wor ON togpd.order_definition_table = 'wor_activity_definition'
AND togpd.order_definition_id = wor.ID
LEFT JOIN sys_dict_data AS sdd ON sdd.dict_value = togpd.unit_code AND sdd.dict_type = 'unit_code' AND
sdd.status = '0'
WHERE togpd.delete_flag = '0'
<if test="groupPackageIds != null and !groupPackageIds.isEmpty()">
AND togpd.group_package_id IN
<foreach collection="groupPackageIds" item="itemId" open="(" separator="," close=")">
#{itemId}
</foreach>
</if>
</select>
</mapper>

View File

@@ -1,156 +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.pharmacymanage.mapper.ChineseMedicineDispenseMapper">
<select id="selectEncounterInfoListPage" resultType="com.openhis.web.pharmacymanage.dto.EncounterInfoPageDto">
SELECT ii.tenant_id,
ii.encounter_id,
ii.encounter_no,
ii.department_name,
ii.patient_name,
ii.patient_wb_str,
ii.patient_py_str,
ii.gender_enum,
ii.department_id,
ii.id_card,
ii.reception_time,
ii.status_enum
FROM (
SELECT T1.tenant_id,
T1.id AS encounter_id,
T1.bus_no AS encounter_no,
T1.reception_time,
T1.organization_id AS department_id,
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,
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'
GROUP BY T1.tenant_id,
T1.id,
T1.bus_no,
T1.reception_time,
T1.organization_id,
T2.gender_enum,
T2.name,
T2.wb_str,
T2.py_str,
T2.id_card,
T3.name,
T4.status_enum
ORDER BY T1.reception_time desc
) AS ii
${ew.customSqlSegment}
</select>
<select id="selectPrescriptionPatientInfo" resultType="com.openhis.web.pharmacymanage.dto.PrescriptionPatientInfoDto">
SELECT
T2.name AS patient_name,
T2.gender_enum,
T2.birth_date,
T4.category_enum,
T2.id_card,
T5.name AS organization_name,
TO_CHAR(T1.start_time,'YYYY-MM-DD') AS encounter_date
FROM adm_encounter AS T1
INNER JOIN adm_patient AS T2
ON T1.patient_id = T2.id
LEFT JOIN med_medication_request AS T3
ON T1.id = T3.encounter_id
LEFT JOIN fin_contract AS T4
ON T3.contract_no = T4.bus_no
LEFT JOIN adm_organization AS T5
ON T1.organization_id = T5.id
WHERE
T1.id = #{encounterId}
GROUP BY
T2.name,
T2.gender_enum,
T2.birth_date,
T4.category_enum,
T2.id_card,
T5.name,
T1.start_time
</select>
<select id="selectPrescriptionMedicineInfoList" resultType="com.openhis.web.pharmacymanage.dto.PrescriptionMedicineInfoDto">
SELECT
DISTINCT
T8.name AS department_name,
T9.name AS doctor_name,
'中药处方' AS item_type,
T7.name AS condition_name,
T2.prescription_no,
T4.name AS medicine_name,
T3.total_volume,
T1.dose,
T2.rate_code,
T1.method_code,
T1.dose_unit_code,
T2.max_dose,
T2.first_dose,
T2.first_duration,
T2.dispense_interval,
T2.dispense_per_quantity,
T2.dispense_per_duration,
T1.quantity,
T5.unit_price,
T5.total_price
FROM med_medication_dispense AS T1
INNER JOIN med_medication_request AS T2
ON T1.med_req_id = T2.id
INNER JOIN med_medication AS T3
ON T1.medication_id = T3.id
INNER JOIN med_medication_definition AS T4
ON T3.medication_def_id = T4.id
AND T4.category_code IN ('4')
INNER JOIN adm_charge_item AS T5
ON T1.med_req_id = T5.service_id
INNER JOIN adm_encounter AS T6
ON T1.encounter_id = T6.id
INNER JOIN cli_condition_definition AS T7
ON T2.condition_id = T7.id
LEFT JOIN adm_organization AS T8
ON T6.organization_id = T8.id
LEFT JOIN adm_practitioner AS T9
ON T1.practitioner_id = T9.id
WHERE
T1.encounter_id = #{encounterId}
AND T1.status_enum = 2
ORDER BY
prescription_no,
medicine_name
</select>
<select id="selectDispenseInventoryInfoByPrescriptionNo" resultType="com.openhis.web.pharmacymanage.dto.DispenseInventoryDto">
SELECT
T1.id AS dispense_id,
T1.unit_code AS dispense_unit_code,
T1.quantity AS dispense_quantity,
T3.Id AS inventory_id,
T3.unit_code AS inventory_unit_code,
T3.quantity AS inventory_quantity,
T5.part_percent
FROM med_medication_dispense AS T1
INNER JOIN med_medication_request AS T2
ON T1.med_req_id = T2.id
INNER JOIN wor_inventory_item AS T3
ON T1.medication_id = T3.item_id
AND T3.item_table = #{medMedicationDefinition}
INNER JOIN med_medication AS T4
ON T1.medication_id = T4.id
INNER JOIN med_medication_definition AS T5
ON T4.medication_def_id = T5.id
WHERE
T2.prescription_no = #{prescriptionNo}
</select>
</mapper>

View File

@@ -1,233 +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.pharmacymanage.mapper.IDeviceDispenseMapper">
<select id="selectEncounterInfoListPage" resultType="com.openhis.web.pharmacymanage.dto.EncounterInfoPageDto">
SELECT ii.tenant_id,
ii.encounter_id,
ii.encounter_no,
ii.department_name,
ii.patient_name,
ii.patient_wb_str,
ii.patient_py_str,
ii.gender_enum,
ii.department_id,
ii.id_card,
ii.reception_time,
ii.status_enum
-- ii.location_id
FROM (
SELECT T1.tenant_id,
T1.id AS encounter_id,
T1.bus_no AS encounter_no,
T1.reception_time,
T1.organization_id AS department_id,
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,
T3.name AS department_name,
T4.status_enum
-- T4.location_id
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 wor_device_dispense AS T4
ON T4.encounter_id = T1.id
AND T4.delete_flag = '0'
INNER JOIN wor_device_request AS T5
ON T4.device_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>
AND T1.class_enum = #{amb}
GROUP BY T1.tenant_id,
T1.id,
T1.bus_no,
T1.reception_time,
T1.organization_id,
T2.gender_enum,
T2.name,
T2.wb_str,
T2.py_str,
T2.id_card,
T3.name,
T4.status_enum
-- T4.location_id
ORDER BY T1.reception_time desc
) AS ii
${ew.customSqlSegment}
</select>
<select id="selectPrescriptionPatientInfo" resultType="com.openhis.web.pharmacymanage.dto.PrescriptionPatientInfoDto">
SELECT
T2.name AS patient_name,
T2.gender_enum,
T2.birth_date,
T2.phone,
T4.category_enum,
T2.id_card,
T2.bus_no AS patient_bus_no,
T5.name AS organization_name,
(SELECT T6.name FROM adm_organization AS T6 WHERE T6.id = #{hospitalId} AND T6.delete_flag = '0') AS hospital_name,
TO_CHAR(T1.start_time,'YYYY-MM-DD') AS encounter_date
FROM adm_encounter AS T1
INNER JOIN adm_patient AS T2
ON T1.patient_id = T2.id
LEFT JOIN wor_device_request AS T3
ON T1.id = T3.encounter_id
LEFT JOIN fin_contract AS T4
ON T3.contract_code = T4.bus_no
LEFT JOIN adm_organization AS T5
ON T1.organization_id = T5.id
WHERE
T1.id = #{encounterId}
GROUP BY
T2.name,
T2.gender_enum,
T2.birth_date,
T2.phone,
T4.category_enum,
T2.id_card,
T2.bus_no,
T5.name,
hospital_name,
T1.start_time
</select>
<select id="selectPrescriptionDeviceInfoList" resultType="com.openhis.web.pharmacymanage.dto.PrescriptionDeviceInfoDto">
SELECT ii.department_name,
ii.doctor_name,
ii.item_type,
ii.condition_name,
ii.prescription_no,
ii.lot_number,
ii.request_id,
ii.device_name,
ii.device_id,
ii.total_volume,
ii.unit_code,
ii.encounter_id,
ii.status_enum,
ii.rate_code,
ii.location_id,
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.no,
ii.charge_type,
ii.med_type_code,
ii.tenant_id
FROM ( SELECT T8."name" AS department_name,
T9."name" AS doctor_name,
T3.category_code AS item_type,
T7."name" AS condition_name,
T2.prescription_no,
T2.lot_number,
T2.id AS request_id,
T3."name" AS device_name,
T3.id AS device_id,
T3.size AS total_volume,
T1.unit_code,
T1.encounter_id,
T1.status_enum,
T2.rate_code,
T1.location_id,
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,
T14.no,
T15.contract_name AS charge_type,
T16.med_type_code,
T1.tenant_id
FROM wor_device_dispense AS T1
LEFT JOIN wor_device_request AS T2
ON T1.device_req_id = T2.id
AND T2.delete_flag = '0'
LEFT JOIN adm_device_definition AS T3
ON T1.device_def_id = T3.id
AND T3.delete_flag = '0'
LEFT JOIN adm_device AS T4
ON T3.id = T4.device_def_id
AND T4.delete_flag = '0'
INNER JOIN adm_charge_item AS T5
ON T1.device_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.requester_id = T9.id
AND T9.delete_flag = '0'
LEFT JOIN adm_practitioner AS T10
ON T1.performer_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 adm_account AS T14
ON T5.account_id = T14.id
AND T14.delete_flag = '0'
LEFT JOIN fin_contract AS T15
ON T14.contract_no = T15.bus_no
AND T15.delete_flag = '0'
LEFT JOIN adm_encounter_diagnosis AS T16
ON T2.encounter_id = T16.encounter_id
AND T2.condition_id = T16.condition_id
AND T16.delete_flag = '0'
WHERE T1.delete_flag = '0'
-- 因发药配药合并,前台只能看到待发药,已发药状态,但是后台配药发药状态都查
AND
<if test="dispenseStatus == null">
T1.status_enum IN (#{inProgress},#{completed},#{preparation},#{prepared})
</if>
<if test="dispenseStatus == 3">
T1.status_enum IN (#{inProgress},#{preparation},#{prepared})
</if>
<if test="dispenseStatus == 4">
T1.status_enum = #{completed}
</if>
ORDER BY prescription_no DESC
) AS ii
${ew.customSqlSegment}
</select>
<select id="getPreparerDoctorList" resultType="com.openhis.administration.domain.Practitioner">
SELECT ap.id,
ap."name"
FROM adm_practitioner ap
LEFT JOIN adm_practitioner_role apr
ON ap.id = apr.practitioner_id
WHERE apr.role_code = #{pharmacist}
GROUP BY ap.id,
ap."name"
</select>
</mapper>

View File

@@ -1,4 +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.pharmacymanage.mapper.InpatientMedicineDispenseMapper">
</mapper>

View File

@@ -1,7 +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.InpatientMedicineSummaryDispenseMapper">
<select id="selectMedicationSummaryInfo" resultType="com.openhis.web.pharmacymanage.dto.InpatientMedicineSummaryPrescriptionInfoDto">
<select id="selectMedicationSummaryInfo" resultType="com.openhis.web.pharmacymanage.dto.InpatientMedicineSummaryDto">
SELECT ii.tenant_id,
ii.bus_no,--单据号
ii.request_id,--供应请求id
@@ -293,8 +293,7 @@
<!-- T3.name) AS ii-->
<!-- ${ew.customSqlSegment}-->
<!-- </select>-->
<!-- <select id="selectMedicationSummaryHeadInfo" resultType="com.openhis.web.pharmacymanage.dto.InpatientMedicineSummaryPrescriptionInfoDto">-->
<!-- SELECT T2.dispense_time,&#45;&#45;发药日期-->
<!-- <select id="selectMedicationSummaryHeadInfo" resultType="com.openhis.web.pharmacymanage.dto.InpatientMedicineSummaryInfoDtoryInfoDto SELECT T2.dispense_time,&#45;&#45;发药日期-->
<!-- T2.rec_practitioner_id,&#45;&#45;领药人-->
<!-- T3.name AS rec_practitioner_name,-->
<!-- SUM(T5.total_price) AS totalPrice,&#45;&#45;金额合计-->
@@ -325,8 +324,7 @@
<!-- T3.name,-->
<!-- T4.name-->
<!-- </select>-->
<!-- <select id="selectMedicationSummaryInfo" resultType="com.openhis.web.pharmacymanage.dto.InpatientMedicineSummaryPrescriptionInfoDto">-->
<!-- SELECT T2.name AS med_name,&#45;&#45;药品名-->
<!-- <select id="selectMedicationSummaryInfo" resultType="com.openhis.web.pharmacymanage.dto.MedicineSummaryInfoDtoECT T2.name AS med_name,&#45;&#45;药品名-->
<!-- T3.total_volume,&#45;&#45;规格-->
<!-- T5.name AS supplier_name,&#45;&#45;供应商-->
<!-- CASE T1.unit_code-->

View File

@@ -1,139 +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.pharmacymanage.mapper.MedicalConsumablesDispenseAppMapper">
<select id="selectEncounterInfoListPage" resultType="com.openhis.web.pharmacymanage.dto.EncounterInfoPageDto">
SELECT
tenant_id,
encounter_id,
department_name,
patient_name,
gender_enum,
encounter_date,
department_id,
id_card,
start_time
FROM
(
SELECT
T1.tenant_id,
T1.id AS encounter_id,
T1.start_time,
TO_CHAR(T1.start_time,'YYYY-MM-DD') AS encounter_date,
T1.organization_id AS department_id,
T2.gender_enum,
T2.name AS patient_name,
T2.id_card,
T3.name AS department_name
FROM adm_encounter AS T1
INNER JOIN adm_patient AS T2
ON T1.patient_id = T2.id
LEFT JOIN adm_organization AS T3
ON T1.organization_id = T3.id
GROUP BY
T1.tenant_id,
T1.id,
T1.start_time,
T1.organization_id,
T2.gender_enum,
T2.name,
T2.id_card,
T3.name
ORDER BY
T1.start_time desc,
T1.organization_id,
T1.patient_id
)
${ew.customSqlSegment}
</select>
<select id="selectPrescriptionPatientInfo" resultType="com.openhis.web.pharmacymanage.dto.PrescriptionPatientInfoDto">
SELECT
T2.name AS patient_name,
T2.gender_enum,
T2.birth_date,
T4.category_enum,
T2.id_card,
T5.name AS organization_name,
TO_CHAR(T1.start_time,'YYYY-MM-DD') AS encounter_date
FROM adm_encounter AS T1
INNER JOIN adm_patient AS T2
ON T1.patient_id = T2.id
LEFT JOIN wor_device_request AS T3
ON T1.id = T3.encounter_id
LEFT JOIN fin_contract AS T4
ON T3.contract_no = T4.bus_no
LEFT JOIN adm_organization AS T5
ON T1.organization_id = T5.id
WHERE
T1.id = #{encounterId}
GROUP BY
T2.name,
T2.gender_enum,
T2.birth_date,
T4.category_enum,
T2.id_card,
T5.name,
T1.start_time
</select>
<select id="selectPrescriptionConsumablesInfoList" resultType="com.openhis.web.pharmacymanage.dto.PrescriptionMedicineInfoDto">
SELECT
DISTINCT
T8.name AS department_name,
T9.name AS doctor_name,
'器材发放' AS item_type,
T7.name AS condition_name,
T2.prescription_no,
T4.name AS medicine_name,
T3.device_specifications AS total_Volume,
T2.dispense_frequency_code AS rate_code,
T1.quantity,
T5.unit_price,
T5.total_price
FROM wor_device_dispense AS T1
INNER JOIN wor_device_request AS T2
ON T1.device_req_id = T2.id
INNER JOIN adm_device AS T3
ON T1.device_req_id = T3.id
INNER JOIN adm_device_definition AS T4
ON T3.medication_def_id = T4.id
AND T4.category_code IN ('2')
INNER JOIN adm_charge_item AS T5
ON T1.device_req_id = T5.service_id
INNER JOIN adm_encounter AS T6
ON T1.encounter_id = T6.id
INNER JOIN cli_condition_definition AS T7
ON T2.condition_id = T7.id
LEFT JOIN adm_organization AS T8
ON T6.organization_id = T8.id
LEFT JOIN adm_practitioner AS T9
ON T1.practitioner_id = T9.id
WHERE
T1.encounter_id = #{encounterId}
AND T1.status_enum = 2
ORDER BY
prescription_no,
medicine_name
</select>
<select id="selectDispenseInventoryInfoByPrescriptionNo" resultType="com.openhis.web.pharmacymanage.dto.DispenseInventoryDto">
SELECT
T1.id AS dispense_id,
T1.unit_code AS dispense_unit_code,
T1.quantity AS dispense_quantity,
T3.Id AS inventory_id,
T3.unit_code AS inventory_unit_code,
T3.quantity AS inventory_quantity,
T5.part_percent
FROM wor_device_dispense AS T1
INNER JOIN wor_device_request AS T2
ON T1.device_req_id = T2.id
INNER JOIN wor_inventory_item AS T3
ON T1.device_def_id = T3.item_id
AND T3.item_table = #{medMedicationDefinition}
INNER JOIN adm_device AS T4
ON T1.device_def_id = T4.id
INNER JOIN adm_device_definition AS T5
ON T4.bus_no = T5.id
WHERE
T2.prescription_no = #{prescriptionNo}
</select>
</mapper>

View File

@@ -0,0 +1,213 @@
<?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.MedicalDeviceDispenseMapper">
<select id="selectEncounterInfoListPage" resultType="com.openhis.web.pharmacymanage.dto.EncounterInfoDto">
SELECT ii.encounter_id,
ii.encounter_no,
ii.department_name,
ii.patient_name,
ii.patient_wb_str,
ii.patient_py_str,
ii.gender_enum,
ii.department_id,
ii.id_card,
ii.birth_date,
ii.reception_time,
ii.status_enum
FROM ( SELECT T1.tenant_id,
T1.id AS encounter_id,
T1.bus_no AS encounter_no,
T1.reception_time,
T1.organization_id AS department_id,
T2.gender_enum,
T2.name AS patient_name,
T2.wb_str AS patient_wb_str,
T2.py_str AS patient_py_str,
T2.id_card,
T2.birth_date,
T3.name AS department_name,
T4.status_enum
FROM adm_encounter AS T1
INNER JOIN adm_patient AS T2
ON T1.patient_id = T2.id
AND T2.delete_flag = '0'
LEFT JOIN adm_organization AS T3
ON T1.organization_id = T3.id
AND T3.delete_flag = '0'
INNER JOIN med_medication_dispense AS T4
ON T4.encounter_id = T1.id
AND T4.delete_flag = '0'
INNER JOIN med_medication_request AS T5
ON T4.med_req_id = T5.id
AND T5.delete_flag = '0'
WHERE
<if test="statusEnum == null">
T4.status_enum IN (#{inProgress},#{completed},#{preparation},#{prepared})
</if>
<if test="statusEnum == 3">
T4.status_enum IN (#{inProgress},#{preparation},#{prepared})
</if>
<if test="statusEnum == 4">
T4.status_enum = #{completed}
</if>
UNION
SELECT T1.tenant_id,
T1.id AS encounter_id,
T1.bus_no AS encounter_no,
T1.reception_time,
T1.organization_id AS department_id,
T2.gender_enum,
T2.name AS patient_name,
T2.wb_str AS patient_wb_str,
T2.py_str AS patient_py_str,
T2.id_card,
T2.birth_date,
T3.name AS department_name,
T4.status_enum
FROM adm_encounter AS T1
INNER JOIN adm_patient AS T2
ON T1.patient_id = T2.id
AND T2.delete_flag = '0'
LEFT JOIN adm_organization AS T3
ON T1.organization_id = T3.id
AND T3.delete_flag = '0'
INNER JOIN wor_device_dispense AS T4
ON T4.encounter_id = T1.id
AND T4.delete_flag = '0'
INNER JOIN wor_device_request AS T5
ON T4.device_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>
) AS ii
${ew.customSqlSegment}
GROUP BY ii.encounter_id,
ii.encounter_no,
ii.department_name,
ii.patient_name,
ii.patient_wb_str,
ii.patient_py_str,
ii.gender_enum,
ii.department_id,
ii.id_card,
ii.birth_date,
ii.reception_time,
ii.status_enum
ORDER BY ii.reception_time DESC
</select>
<select id="selectDeviceDispenseOrderPage" resultType="com.openhis.web.pharmacymanage.dto.ItemDispenseOrderDto">
SELECT ii.department_name,
ii.doctor_name,
ii.item_type,
ii.condition_name,
ii.lot_number,
ii.request_id,
ii.item_name,
ii.item_id,
ii.total_volume,
ii.unit_code,
ii.encounter_id,
ii.status_enum,
ii.rate_code,
ii.location_id,
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.tcm_flag,
ii.trace_no
FROM ( SELECT T8."name" AS department_name,
T9."name" AS doctor_name,
T3.category_code AS item_type,
T7."name" AS condition_name,
T2.lot_number,
T2.id AS request_id,
T3."name" AS item_name,
T3.id AS item_id,
T3.size AS total_volume,
T1.unit_code,
T1.encounter_id,
T1.status_enum,
T2.rate_code,
T1.location_id,
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,
T1.tenant_id,
0 AS tcm_flag,
T1.trace_no
FROM wor_device_dispense AS T1
LEFT JOIN wor_device_request AS T2
ON T1.device_req_id = T2.id
AND T2.delete_flag = '0'
LEFT JOIN adm_device_definition AS T3
ON T2.device_def_id = T3.id
AND T3.delete_flag = '0'
INNER JOIN adm_charge_item AS T5
ON T1.device_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.requester_id = T9.id
AND T9.delete_flag = '0'
LEFT JOIN adm_practitioner AS T10
ON T1.performer_id = T10.id
AND T10.delete_flag = '0'
LEFT JOIN adm_location AS T13
ON T1.location_id = T13.id
AND T13.delete_flag = '0'
WHERE T1.delete_flag = '0'
-- 因发药配药合并,前台只能看到待发药,已发药状态,但是后台配药发药状态都查
AND
<if test="dispenseStatus == null">
T1.status_enum IN (#{inProgress},#{completed},#{preparation},#{prepared})
</if>
<if test="dispenseStatus == 3">
T1.status_enum IN (#{inProgress},#{preparation},#{prepared})
</if>
<if test="dispenseStatus == 4">
T1.status_enum = #{completed}
</if>
ORDER BY req_authored_time DESC
) AS ii
${ew.customSqlSegment}
</select>
<select id="getPreparerDoctorList" resultType="com.openhis.administration.domain.Practitioner">
SELECT ap.id,
ap."name"
FROM adm_practitioner ap
LEFT JOIN adm_practitioner_role apr
ON ap.id = apr.practitioner_id
WHERE apr.role_code = #{pharmacist}
GROUP BY ap.id,
ap."name"
</select>
</mapper>

View File

@@ -42,6 +42,22 @@
WHERE mmd.status_enum = #{refunded}
AND mmd.delete_flag = '0'
AND mmr.refund_medicine_id IS not null
),
refund_device_info AS (
SELECT wdr.refund_device_id,
wdd.dispense_quantity,
wdd.unit_code,
aci.total_price
FROM wor_device_dispense wdd
LEFT JOIN wor_device_request wdr
ON wdd.device_req_id = wdr.id
AND wdr.delete_flag = '0'
INNER JOIN adm_charge_item aci
ON aci.service_id = wdd.device_req_id
AND aci.delete_flag = '0'
WHERE wdd.status_enum = #{refunded}
AND wdd.delete_flag = '0'
AND wdr.refund_device_id IS not null
)
SELECT def."name" AS medication_name,
def.py_str,
@@ -99,7 +115,72 @@
LEFT JOIN adm_supplier sup
ON sup.id = wii.supplier_id
WHERE mmd.status_enum = #{completed}
AND mmd.dispense_enum = #{amb}
AND mmr.status_enum = #{agree}
<if test="flg != 1">
AND mmd.dispense_enum = #{amb}
</if>
AND mmd.delete_flag = '0'
UNION
SELECT def."name" AS medication_name,
def.py_str,
def.bus_no,
def.yb_no,
def.manufacturer_text,
mmr.prescription_no,
ae.bus_no AS outpatient_no,
pat.name AS patient_name,
def.size AS total_volume,
mmd.unit_code,
mmd.bus_no AS dispense_no,
mmd.lot_number,
mmd.dispense_quantity,
mmd.encounter_id,
mmd.performer_id AS practitioner_id,
mmd.dispense_time,
ap.name AS practitioner_name,
mmd.location_id,
aci.total_price AS dispense_price,
ri.dispense_quantity AS refund_quantity,
ri.unit_code AS refund_unit_code,
ri.total_price AS refund_price,
wii.supplier_id,
sup.name AS supplier_name,
mmd.tenant_id
FROM wor_device_dispense mmd
LEFT JOIN wor_device_request mmr
ON mmd.device_req_id = mmr.id
AND mmr.delete_flag = '0'
INNER JOIN adm_charge_item aci
ON aci.service_id = mmr.id
AND aci.delete_flag = '0'
LEFT JOIN adm_device_definition def
ON mmd.device_def_id = def.id
AND def.delete_flag = '0'
LEFT JOIN adm_device mm
ON mm.device_def_id = def.id
AND mm.delete_flag = '0'
LEFT JOIN wor_inventory_item wii
ON wii.item_id = mmd.device_def_id
AND wii.lot_number = mmd.lot_number
AND wii.location_id = mmd.location_id
AND wii.delete_flag = '0'
LEFT JOIN refund_device_info AS ri
ON ri.refund_device_id = mmr.id
LEFT JOIN adm_location al
ON al.id = mmd.location_id
LEFT JOIN adm_practitioner ap
ON ap.id = mmd.performer_id
LEFT JOIN adm_patient pat
ON pat.id = mmd.patient_id
LEFT JOIN adm_encounter ae
ON ae.id = mmd.encounter_id
LEFT JOIN adm_supplier sup
ON sup.id = wii.supplier_id
WHERE mmd.status_enum = #{completed}
AND mmr.status_enum = #{agree}
<if test="flg != 1">
AND mmd.dispense_category_enum = #{amb}
</if>
AND mmd.delete_flag = '0'
) AS A
${ew.customSqlSegment}

View File

@@ -1,7 +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.ReturnMedicineMapper">
<select id="selectEncounterInfoListPage" resultType="com.openhis.web.pharmacymanage.dto.EncounterInfoPageDto">
<select id="selectEncounterInfoListPage" resultType="com.openhis.web.pharmacymanage.dto.EncounterInfoDto">
SELECT ii.reception_time,
ii.encounter_id,
ii.encounter_no,
@@ -62,71 +62,6 @@
${ew.customSqlSegment}
ORDER BY ii.reception_time DESC
</select>
<select id="selectPrescriptionPatientInfo"
resultType="com.openhis.web.pharmacymanage.dto.PrescriptionPatientInfoDto">
SELECT T2.name AS patient_name,
T2.gender_enum,
T2.birth_date,
T4.category_enum,
T2.id_card,
T5.name AS organization_name,
T1.start_time AS encounter_date
FROM adm_encounter AS T1
INNER JOIN adm_patient AS T2
ON T1.patient_id = T2.id
LEFT JOIN med_medication_request AS T3
ON T1.id = T3.encounter_id
LEFT JOIN fin_contract AS T4
ON T3.contract_no = T4.bus_no
LEFT JOIN adm_organization AS T5
ON T1.organization_id = T5.id
WHERE T1.id = #{encounterId}
GROUP BY T2.name,
T2.gender_enum,
T2.birth_date,
T4.category_enum,
T2.id_card,
T5.name,
T1.start_time
</select>
<select id="selectRequestListByPrescriptionNo"
resultType="com.openhis.web.pharmacymanage.dto.ReturnMedicineInfoDto">
SELECT T1.id AS dispense_id,
T7.name AS department_name,
T8.name AS doctor_name,
T2.prescription_no,
T4.name AS medicine_name,
T3.total_volume,
T1.unit_code,
T6.unit_price,
T3.lot_number,
T1.dosage_instruction,
T1.status_enum,
T1.quantity,
T1.medication_id,
T2.id AS request_id,
T2.refund_medicine_id
FROM med_medication_dispense AS T1
INNER JOIN med_medication_request AS T2
ON T1.med_req_id = T2.refund_medicine_id
INNER JOIN med_medication AS T3
ON T1.medication_id = T3.id
INNER JOIN med_medication_definition AS T4
ON T1.medication_id = T4.id
INNER JOIN adm_encounter AS T5
ON T1.encounter_id = T5.id
LEFT JOIN adm_charge_item AS T6
ON T1.medication_id = T6.product_id
LEFT JOIN adm_organization AS T7
ON T5.organization_id = T7.id
LEFT JOIN adm_practitioner AS T8
ON T2.practitioner_id = T8.id
WHERE T2.encounter_id = #{encounterId}
AND T2.refund_medicine_id IS NOT NULL
AND T2.status_enum = #{statusEnum}
ORDER BY T1.medication_id,
T1.status_enum
</select>
<select id="selectInventoryInfoList"
resultType="com.openhis.web.pharmacymanage.dto.InventoryDto">
<choose>
@@ -376,7 +311,7 @@
T12.yb_no,
T12.bus_no AS item_no,
T12.rx_flag,
null AS preparer_name,
T5."name" AS preparer_name,
T6."name" AS dispense_name,
T6.phar_prac_cert_no,
T7."name" AS practitioner_name,
@@ -398,6 +333,9 @@
LEFT JOIN adm_device_definition AS T12
ON T10.device_def_id = T12.id
AND T12.delete_flag = '0'
LEFT JOIN adm_practitioner AS T5
ON T10.preparer_id = T5.id
AND T5.delete_flag = '0'
LEFT JOIN adm_practitioner AS T6
ON T10.performer_id = T6.id
AND T6.delete_flag = '0'

View File

@@ -1,9 +1,8 @@
<?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">
<select id="selectEncounterInfoListPage" resultType="com.openhis.web.pharmacymanage.dto.EncounterInfoPageDto">
SELECT ii.tenant_id,
ii.encounter_id,
<select id="selectEncounterInfoListPage" resultType="com.openhis.web.pharmacymanage.dto.EncounterInfoDto">
SELECT ii.encounter_id,
ii.encounter_no,
ii.department_name,
ii.patient_name,
@@ -12,126 +11,99 @@
ii.gender_enum,
ii.department_id,
ii.id_card,
ii.birth_date,
ii.reception_time,
ii.status_enum,
ii.tcm_flag
-- ii.location_id
FROM (
SELECT T1.tenant_id,
T1.id AS encounter_id,
T1.bus_no AS encounter_no,
T1.reception_time,
T1.organization_id AS department_id,
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,
T3.name AS department_name,
T4.status_enum,
T5.tcm_flag
-- T4.location_id
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>
AND T1.class_enum = #{amb}
GROUP BY T1.tenant_id,
T1.id,
T1.bus_no,
T1.reception_time,
T1.organization_id,
T2.gender_enum,
T2.name,
T2.wb_str,
T2.py_str,
T2.id_card,
T3.name,
T4.status_enum,
T5.tcm_flag
-- T4.location_id
ORDER BY T1.reception_time desc
) AS ii
${ew.customSqlSegment}
</select>
<select id="selectPrescriptionPatientInfo" resultType="com.openhis.web.pharmacymanage.dto.PrescriptionPatientInfoDto">
SELECT T2.name AS patient_name,
T2.gender_enum,
T2.birth_date,
T2.phone,
T4.category_enum,
T4.contract_name,
T2.id_card,
T2.bus_no AS patient_bus_no,
T5.name AS organization_name,
(SELECT T6.name
FROM adm_organization AS T6
WHERE T6.id = #{hospitalId}
AND T6.delete_flag = '0') AS hospital_name,
TO_CHAR(T1.start_time, 'YYYY-MM-DD') AS encounter_date,
T1.id AS encounter_id,
T8.id AS condition_id,
T8.name AS condition_name
ii.status_enum
FROM ( SELECT T1.tenant_id,
T1.id AS encounter_id,
T1.bus_no AS encounter_no,
T1.reception_time,
T1.organization_id AS department_id,
T1.class_enum,
T2.gender_enum,
T2.name AS patient_name,
T2.wb_str AS patient_wb_str,
T2.py_str AS patient_py_str,
T2.id_card,
T2.birth_date,
T3.name AS department_name,
T4.status_enum
FROM adm_encounter AS T1
INNER JOIN adm_patient AS T2
ON T1.patient_id = T2.id
LEFT JOIN med_medication_request AS T3
ON T1.id = T3.encounter_id
LEFT JOIN adm_charge_item AS T9
ON T9.encounter_id = T1.id
AND T9.delete_flag = '0'
LEFT JOIN adm_account AS T10
ON T10.id = T9.account_id
AND T10.delete_flag = '0'
LEFT JOIN fin_contract AS T4
ON T4.bus_no = T10.contract_no
LEFT JOIN adm_organization AS T5
ON T1.organization_id = T5.id
LEFT JOIN adm_encounter_diagnosis T6
ON T1.id = T6.encounter_id
AND T6.maindise_flag = '1'
AND T6.delete_flag = '0'
LEFT JOIN cli_condition AS T7
ON T6.condition_id = T7.id
AND T7.delete_flag = '0'
LEFT JOIN cli_condition_definition AS T8
ON T7.definition_id = T8.id
AND T8.delete_flag = '0'
WHERE T1.id = #{encounterId}
GROUP BY T2.name,
T2.gender_enum,
T2.birth_date,
T2.phone,
T4.category_enum,
T4.contract_name,
T2.id_card,
T2.bus_no,
T5.name,
hospital_name,
T1.start_time,
T1.id,
T8.id
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>
UNION
SELECT T1.tenant_id,
T1.id AS encounter_id,
T1.bus_no AS encounter_no,
T1.reception_time,
T1.organization_id AS department_id,
T1.class_enum,
T2.gender_enum,
T2.name AS patient_name,
T2.wb_str AS patient_wb_str,
T2.py_str AS patient_py_str,
T2.id_card,
T2.birth_date,
T3.name AS department_name,
T4.status_enum
FROM adm_encounter AS T1
INNER JOIN adm_patient AS T2
ON T1.patient_id = T2.id
AND T2.delete_flag = '0'
LEFT JOIN adm_organization AS T3
ON T1.organization_id = T3.id
AND T3.delete_flag = '0'
INNER JOIN wor_device_dispense AS T4
ON T4.encounter_id = T1.id
AND T4.delete_flag = '0'
INNER JOIN wor_device_request AS T5
ON T4.device_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>
) AS ii
${ew.customSqlSegment}
GROUP BY ii.encounter_id,
ii.encounter_no,
ii.department_name,
ii.patient_name,
ii.patient_wb_str,
ii.patient_py_str,
ii.gender_enum,
ii.department_id,
ii.id_card,
ii.birth_date,
ii.reception_time,
ii.status_enum
ORDER BY ii.reception_time DESC
</select>
<select id="selectPrescriptionMedicineInfoList" resultType="com.openhis.web.pharmacymanage.dto.PrescriptionMedicineInfoDto">
<select id="selectMedicineDispenseOrderPage" resultType="com.openhis.web.pharmacymanage.dto.ItemDispenseOrderDto">
SELECT ii.department_name,
ii.doctor_name,
ii.item_type,
@@ -140,8 +112,8 @@
ii.lot_number,
ii.request_id,
ii.tcm_flag,
ii.medicine_name,
ii.medicine_id,
ii.item_name,
ii.item_id,
ii.total_volume,
ii.unit_code,
ii.encounter_id,
@@ -151,10 +123,6 @@
ii.location_id,
ii.method_code,
ii.dose_unit_code,
ii.max_dose,
ii.first_dose,
ii.first_duration,
ii.dispense_interval,
ii.dispense_per_quantity,
ii.dispense_per_duration,
ii.quantity,
@@ -162,16 +130,13 @@
ii.unit_price,
ii.total_price,
ii.dispense_doctor_name,
ii.preparer_doctor_name,
ii.location_name,
ii.encounter_bus_no,
ii.req_authored_time,
ii.no,
ii.charge_type,
ii.pharmacology_category_code,
ii.med_type_code,
ii.skin_test_flag,
ii.group_id
ii.group_id,
ii.manufacturer_text,
ii.trace_no
FROM ( SELECT T8."name" AS department_name,
T9."name" AS doctor_name,
T3.category_code AS item_type,
@@ -180,8 +145,8 @@
T2.lot_number,
T2.id AS request_id,
T2.tcm_flag,
T3."name" AS medicine_name,
T3.id AS medicine_id,
T3."name" AS item_name,
T3.id AS item_id,
T4.total_volume,
T1.unit_code,
T1.encounter_id,
@@ -191,10 +156,6 @@
T1.location_id,
T1.method_code,
T2.dose_unit_code,
T2.max_dose,
T2.first_dose,
T2.first_duration,
T2.dispense_interval,
T2.dispense_per_quantity,
T2.dispense_per_duration,
T1.quantity,
@@ -202,17 +163,14 @@
T5.unit_price,
T5.total_price,
T10."name" AS dispense_doctor_name,
T11."name" AS preparer_doctor_name,
T13."name" AS location_name,
T6.bus_no AS encounter_bus_no,
T2.req_authored_time,
T14.no,
T15.contract_name AS charge_type,
T3.pharmacology_category_code,
T16.med_type_code,
T3.skin_test_flag,
T2.group_id AS group_id,
T1.tenant_id
T1.tenant_id,
T3.manufacturer_text,
T1.trace_no
FROM med_medication_dispense AS T1
LEFT JOIN med_medication_request AS T2
ON T1.med_req_id = T2.id
@@ -244,22 +202,9 @@
LEFT JOIN adm_practitioner AS T10
ON T1.practitioner_id = T10.id
AND T10.delete_flag = '0'
LEFT JOIN adm_practitioner AS T11
ON T1.preparer_id = T11.id
AND T11.delete_flag = '0'
LEFT JOIN adm_location AS T13
ON T1.location_id = T13.id
AND T13.delete_flag = '0'
LEFT JOIN adm_account AS T14
ON T5.account_id = T14.id
AND T14.delete_flag = '0'
LEFT JOIN fin_contract AS T15
ON T14.contract_no = T15.bus_no
AND T15.delete_flag = '0'
LEFT JOIN adm_encounter_diagnosis AS T16
ON T2.encounter_id = T16.encounter_id
AND T2.condition_id = T16.condition_id
AND T16.delete_flag = '0'
WHERE T1.delete_flag = '0'
-- 因发药配药合并,前台只能看到待发药,已发药状态,但是后台配药发药状态都查
AND
@@ -276,60 +221,6 @@
) AS ii
${ew.customSqlSegment}
</select>
<select id="selectDispenseInventoryInfoByPrescriptionNo" resultType="com.openhis.web.pharmacymanage.dto.DispenseInventoryDto">
SELECT T1.id AS dispense_id,
T1.unit_code AS dispense_unit_code,
T1.quantity AS dispense_quantity,
T1.status_enum AS dispense_status,
T1.med_req_id,
T1.encounter_id,
T1.dispense_time,
T1.bus_no AS dispense_no,
T3.Id AS inventory_id,
T3.unit_code AS inventory_unit_code,
T3.quantity AS inventory_quantity,
T3.lot_number,
T3.production_date,
T3.expiration_date,
T3.trace_no,
T4.part_percent,
T4.yb_no,
T4.bus_no AS medication_no,
T4.rx_flag,
T5."name" AS preparer_name,
T6."name" AS dispense_name,
T6.phar_prac_cert_no,
T7."name" AS practitioner_name,
T8.patient_id,
T8.bus_no AS encounter_no
FROM med_medication_dispense AS T1
INNER JOIN med_medication_request AS T2
ON T1.med_req_id = T2.id
AND T2.delete_flag = '0'
LEFT JOIN wor_inventory_item AS T3
ON T1.medication_id = T3.item_id
AND T3.item_table = #{medMedicationDefinition}
AND T1.location_id = T3.location_id
AND T1.lot_number = T3.lot_number
AND T3.delete_flag = '0'
LEFT JOIN med_medication_definition AS T4
ON T1.medication_id = T4.id
AND T4.delete_flag = '0'
LEFT JOIN adm_practitioner AS T5
ON T1.preparer_id = T5.id
AND T5.delete_flag = '0'
LEFT JOIN adm_practitioner AS T6
ON T1.practitioner_id = T6.id
AND T6.delete_flag = '0'
LEFT JOIN adm_practitioner AS T7
ON T2.practitioner_id = T7.id
AND T7.delete_flag = '0'
LEFT JOIN adm_encounter AS T8
ON T1.encounter_id = T8.id
AND T8.delete_flag = '0'
WHERE T2.prescription_no = #{prescriptionNo}
AND T1.delete_flag = '0'
</select>
<select id="getPreparerDoctorList" resultType="com.openhis.administration.domain.Practitioner">
SELECT ap.id,
ap."name"
@@ -340,188 +231,4 @@
GROUP BY ap.id,
ap."name"
</select>
<select id="selectMonthlySettlementPatientInfoList" resultType="com.openhis.web.pharmacymanage.dto.PrescriptionMedicineInfoDto">
SELECT T8."name" AS department_name,
T9."name" AS doctor_name,
T3.category_code AS item_type,
T7."name" AS condition_name,
T2.prescription_no,
T2.lot_number,
T2.id AS request_id,
T2.tcm_flag,
T3."name" AS medicine_name,
T3.id AS medicine_id,
T4.total_volume,
T1.unit_code,
T1.encounter_id,
T1.dose,
T1.status_enum,
T2.rate_code,
T1.location_id,
T1.method_code,
T2.dose_unit_code,
T2.max_dose,
T2.first_dose,
T2.first_duration,
T2.dispense_interval,
T2.dispense_per_quantity,
T2.dispense_per_duration,
T1.quantity,
T1.id AS dispense_id,
T5.unit_price,
T5.total_price,
T10."name" AS dispense_doctor_name,
T11."name" AS preparer_doctor_name,
T13."name" AS location_name,
T6.bus_no AS encounter_bus_no,
T2.req_authored_time,
T14.no,
T15.contract_name AS charge_type,
T3.pharmacology_category_code,
T16.med_type_code,
T3.skin_test_flag,
T2.group_id AS group_id,
#{medicine} AS type
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_practitioner AS T11
ON T1.preparer_id = T11.id
AND T11.delete_flag = '0'
LEFT JOIN adm_location AS T13
ON T1.location_id = T13.id
AND T13.delete_flag = '0'
LEFT JOIN adm_account AS T14
ON T5.account_id = T14.id
AND T14.delete_flag = '0'
LEFT JOIN fin_contract AS T15
ON T14.contract_no = T15.bus_no
AND T15.delete_flag = '0'
LEFT JOIN adm_encounter_diagnosis AS T16
ON T2.encounter_id = T16.encounter_id
AND T2.condition_id = T16.condition_id
AND T16.delete_flag = '0'
WHERE T1.delete_flag = '0'
AND T1.status_enum = #{completed}
AND T1.location_id = #{locationId}
AND TO_CHAR(T1.dispense_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
UNION
SELECT T8."name" AS department_name,
T9."name" AS doctor_name,
T3.category_code AS item_type,
T7."name" AS condition_name,
T2.prescription_no,
T2.lot_number,
T2.id AS request_id,
NULL AS tcm_flag,
T3."name" AS medicine_name,
T3.id AS medicine_id,
T3.size AS total_volume,
T1.unit_code,
T1.encounter_id,
NULL AS dose,
T1.status_enum,
T2.rate_code,
T1.location_id,
NULL AS method_code,
NULL AS dose_unit_code,
NULL AS max_dose,
NULL AS first_dose,
NULL AS first_duration,
NULL AS dispense_interval,
NULL AS dispense_per_quantity,
NULL AS dispense_per_duration,
T1.quantity,
T1.id AS dispense_id,
T5.unit_price,
T5.total_price,
T10."name" AS dispense_doctor_name,
NULL AS preparer_doctor_name,
T13."name" AS location_name,
T6.bus_no AS encounter_bus_no,
T2.req_authored_time,
T14.no,
T15.contract_name AS charge_type,
NULL AS pharmacology_category_code,
T16.med_type_code,
NULL AS skin_test_flag,
NULL AS group_id,
#{device} AS type
FROM wor_device_dispense AS T1
LEFT JOIN wor_device_request AS T2
ON T1.device_req_id = T2.id
AND T2.delete_flag = '0'
LEFT JOIN adm_device_definition AS T3
ON T1.device_def_id = T3.id
AND T3.delete_flag = '0'
LEFT JOIN adm_device AS T4
ON T3.id = T4.device_def_id
AND T4.delete_flag = '0'
INNER JOIN adm_charge_item AS T5
ON T1.device_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.requester_id = T9.id
AND T9.delete_flag = '0'
LEFT JOIN adm_practitioner AS T10
ON T1.performer_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 adm_account AS T14
ON T5.account_id = T14.id
AND T14.delete_flag = '0'
LEFT JOIN fin_contract AS T15
ON T14.contract_no = T15.bus_no
AND T15.delete_flag = '0'
LEFT JOIN adm_encounter_diagnosis AS T16
ON T2.encounter_id = T16.encounter_id
AND T2.condition_id = T16.condition_id
AND T16.delete_flag = '0'
WHERE T1.delete_flag = '0'
AND T1.status_enum = #{completed}
AND T1.location_id = #{locationId}
AND TO_CHAR(T1.dispense_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
</select>
</mapper>

View File

@@ -55,19 +55,19 @@
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 = #{encounterLocationStatus}
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 = #{encounterLocationStatus}
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 = #{encounterLocationStatus}
AND aelb.status_enum = #{encounterActivityStatus}
LEFT JOIN adm_location AS alb ON alb.ID = aelb.location_id
AND alb.delete_flag = '0'
INNER JOIN adm_account AS aa ON aa.encounter_id = ae.ID
@@ -136,7 +136,7 @@
LEFT JOIN adm_location AS al ON al.ID = T1.perform_location AND al.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
WHERE T1.delete_flag = '0' AND T1.tcm_flag = 0 AND T1.category_enum = #{categoryEnum}
WHERE T1.delete_flag = '0' AND T1.tcm_flag = 0
<if test="historyFlag == '0'.toString()">
AND T1.encounter_id = #{encounterId}
</if>
@@ -183,7 +183,7 @@
ON T3.service_id = T1.ID AND T3.delete_flag = '0' AND
T3.service_table = #{WOR_DEVICE_REQUEST}
LEFT JOIN adm_location AS al ON al.ID = T1.perform_location AND al.delete_flag = '0'
WHERE T1.delete_flag = '0' AND T1.category_enum = #{categoryEnum}
WHERE T1.delete_flag = '0'
<if test="historyFlag == '0'.toString()">
AND T1.encounter_id = #{encounterId}
</if>
@@ -230,8 +230,9 @@
LEFT JOIN adm_charge_item AS T3 ON T3.service_id = T1.ID AND T3.delete_flag = '0' AND
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.category_enum = #{categoryEnum}
WHERE T1.delete_flag = '0'
AND T1.based_on_table is null
AND T1.parent_id IS NULL
<if test="historyFlag == '0'.toString()">
AND T1.encounter_id = #{encounterId}
</if>

View File

@@ -5,7 +5,8 @@
<mapper namespace="com.openhis.web.regdoctorstation.mapper.RequestFormManageAppMapper">
<select id="getRequestForm" resultType="com.openhis.web.regdoctorstation.dto.RequestFormQueryDto">
SELECT drf.encounter_id,
SELECT drf.id AS request_form_id,
drf.encounter_id,
drf.prescription_no,
drf.NAME,
drf.desc_json,

View File

@@ -0,0 +1,67 @@
<?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.DrugDosageSettlementMapper">
<!--门诊收入明细-->
<select id="selectDrugDosageReportPage"
resultType="com.openhis.web.reportmanage.dto.DrugDosageSettlementPageDto">
select A.medication_name,
A.bus_no,
A.yb_no,
A.total_volume,
A.unit_code,
A.dispense_quantity,
A.dispense_price,
A.category_code,
A.dispense_time,
A.tenant_id
from (
SELECT def."name" AS medication_name,
def.bus_no,
def.yb_no,
mm.total_volume,
mmd.unit_code,
SUM( mmd.dispense_quantity) AS dispense_quantity,
SUM( aci.total_price ) AS dispense_price,
def.category_code,
mmd.dispense_time,
mmd.tenant_id
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 med_medication_request mmrr
on mmr.id = mmrr.refund_medicine_id
AND mmrr.delete_flag = '0'
WHERE mmd.status_enum = #{disCompleted}
AND mmr.status_enum = #{reqCompleted}
AND mmr.refund_medicine_id IS NULL
AND mmrr.refund_medicine_id IS NULL
AND mmd.delete_flag = '0'
<if test="antibioticFlg == 1" >
AND def.antibiotic_flag = 1
</if>
<if test="antibioticFlg == 0" >
AND def.antibiotic_flag = 0
</if>
GROUP BY def."name",
def.bus_no,
def.yb_no,
mm.total_volume,
mmd.unit_code,
def.category_code,
mmd.dispense_time,
mmd.tenant_id
) AS A
${ew.customSqlSegment}
ORDER BY A.bus_no DESC
</select>
</mapper>

View File

@@ -20,7 +20,7 @@
T10.supplier_id, --供应商id
T10.supplier, --供应商
T10.approver_id, --审核人
T10.create_time, --制单日期
T10.occurrence_time, --制单日期
T10.approval_time, --审核日期
T10.tenant_id -- 租户ID
FROM (SELECT T1.bus_no AS supply_bus_no, --单据号
@@ -39,7 +39,7 @@
T1.supplier_id, --供应商id
T9.name AS supplier, --供应商
T1.approver_id, --审核人
T1.create_time, --制单日期
T1.occurrence_time, --制单日期
T1.approval_time, --审核日期
T1.tenant_id -- 租户ID
FROM wor_supply_request AS T1
@@ -57,6 +57,7 @@
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'
@@ -90,7 +91,7 @@
T1.supplier_id, --供应商id
T9.name AS supplier, --供应商
T1.approver_id, --审核人
T1.create_time, --制单日期
T1.occurrence_time, --制单日期
T1.approval_time, --审核日期
T1.tenant_id -- 租户ID
FROM wor_supply_request AS T1
@@ -108,6 +109,7 @@
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'

View File

@@ -13,6 +13,14 @@
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, --名称
@@ -23,6 +31,14 @@
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
@@ -38,6 +54,12 @@
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}
@@ -52,6 +74,14 @@
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
@@ -64,11 +94,17 @@
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.bus_no DESC
ORDER BY T9.supply_bus_no DESC
</select>
</mapper>

View File

@@ -11,9 +11,10 @@
manufacturer_text,
org_id,
SUM(total_quantity) AS total_quantity,
MAX(unit_code) AS unit_code,
unit_code,
unit_price,
SUM(total_money) AS total_money,
MAX(dispense_time) AS dispense_time
dispense_time
FROM (
/* ---------- 第一段查询 ---------- */
SELECT
@@ -33,12 +34,12 @@
T7.total_volume,
T1.lot_number,
T3.manufacturer_text,
SUM(T1.quantity) AS total_quantity,
MAX(T1.unit_code) AS unit_code,
MAX(T8.unit_price) AS unit_price,
SUM(T1.quantity) * MAX(T8.unit_price) AS total_money,
T1.quantity AS total_quantity,
T1.unit_code unit_code,
T8.unit_price,
T8.total_price AS total_money,
T1.org_id,
MAX(T2.dispense_time) AS dispense_time
T2.dispense_time
FROM med_medication_request T1
LEFT JOIN med_medication_dispense T2
ON T2.med_req_id = T1.id AND T2.delete_flag = '0'
@@ -50,15 +51,15 @@
ON T8.service_table = #{medReqTableName} --'med_medication_request'
AND T8.service_id = T1.id
AND T8.delete_flag = '0'
LEFT JOIN med_medication_request T17
on T1.id = T17.refund_medicine_id
AND T17.delete_flag = '0'
WHERE T1.status_enum = #{completed} --'3'
AND T2.status_enum = #{eventStatus} --'4'
AND T1.delete_flag = '0'
AND TO_CHAR(T2.dispense_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{dispenseDateSTime} AND #{dispenseDateETime}
GROUP BY
T3.name,
T7.total_volume,
T1.lot_number,
T3.manufacturer_text,
T1.org_id
AND T1.refund_medicine_id IS NULL
AND T17.refund_medicine_id IS NULL
UNION ALL
@@ -67,12 +68,12 @@
T6.size AS total_volume,
T4.lot_number,
T6.manufacturer_text,
SUM(T4.quantity) AS total_quantity,
MAX(T4.unit_code) AS unit_code,
MAX(T9.unit_price) AS unit_price,
SUM(T4.quantity) * MAX(T9.unit_price) AS total_money,
T4.quantity AS total_quantity,
T4.unit_code AS unit_code,
T9.unit_price AS unit_price,
T9.total_price AS total_money,
T4.org_id,
MAX(T5.dispense_time) AS dispense_time
T5.dispense_time
FROM wor_device_request T4
LEFT JOIN wor_device_dispense T5
ON T5.device_req_id = T4.id AND T5.delete_flag = '0'
@@ -82,17 +83,16 @@
ON T9.service_table = #{devReqTableName} --'wor_device_request'
AND T9.service_id = T4.id
AND T9.delete_flag = '0'
LEFT JOIN wor_device_request T17
on T4.id = T17.refund_device_id
AND T17.delete_flag = '0'
WHERE T4.status_enum = #{completed} --'3'
AND T5.status_enum = #{eventStatus} --'4'
AND T4.delete_flag = '0'
AND TO_CHAR(T5.dispense_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{dispenseDateSTime} AND #{dispenseDateETime}
GROUP BY
T6.name,
T6.size,
T4.lot_number,
T6.manufacturer_text,
T4.org_id
AND T4.refund_device_id IS NULL
AND T17.refund_device_id IS NULL
) AS q1
WHERE total_quantity > 0
UNION ALL
@@ -104,7 +104,7 @@
manufacturer_text,
total_quantity,
unit_code,
NULL AS unit_price, -- 第二段已自带总金额,不需要单价
unit_price,
total_money,
org_id,
dispense_time
@@ -116,9 +116,10 @@
manufacturer_text,
org_id,
SUM(quantity) AS total_quantity,
MAX(unit_code) AS unit_code,
unit_code,
price AS unit_price,
SUM(total_price) AS total_money,
MAX(dispense_time) AS dispense_time
dispense_time
FROM (
SELECT
T10.name,
@@ -128,6 +129,7 @@
CASE WHEN T9.type_enum = #{returnIssue} THEN T9.item_quantity * -1
ELSE T9.item_quantity END AS quantity,
T9.unit_code,
T9.price,
CASE WHEN T9.type_enum = #{returnIssue} THEN T9.total_price * -1
ELSE T9.total_price END AS total_price,
CASE WHEN T9.type_enum = #{returnIssue} THEN T9.source_location_id
@@ -156,6 +158,7 @@
CASE WHEN T13.type_enum = #{returnIssue} THEN T13.item_quantity * -1
ELSE T13.item_quantity END AS quantity,
T13.unit_code,
T13.price,
CASE WHEN T13.type_enum = #{returnIssue} THEN T13.total_price * -1
ELSE T13.total_price END AS total_price,
CASE WHEN T13.type_enum = #{returnIssue} THEN T13.source_location_id
@@ -177,7 +180,10 @@
total_volume,
lot_number,
manufacturer_text,
org_id
org_id,
unit_code,
price,
dispense_time
) AS q3
) AS merged
WHERE org_id = #{orgId}
@@ -188,10 +194,12 @@
total_volume,
lot_number,
manufacturer_text,
org_id
ORDER BY
org_id,
MAX(dispense_time) DESC
unit_code,
unit_price,
dispense_time
ORDER BY
dispense_time DESC
</select>
@@ -205,7 +213,7 @@
/* ---------- 第一段:药品申领 + 耗材申领 ---------- */
SELECT T1.org_id,
T16.name AS org_name,
SUM(T1.quantity * T8_MAX.unit_price_max) AS total_money
SUM(T8.total_price) AS total_money
FROM med_medication_request T1
LEFT JOIN med_medication_dispense T2
ON T2.med_req_id = T1.id
@@ -213,27 +221,31 @@
/* 时间区间 */
AND
TO_CHAR(T2.dispense_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{dispenseDateSTime} AND #{dispenseDateETime}
LEFT JOIN (SELECT T8.service_id,
MAX(T8.unit_price) AS unit_price_max -- 单处方的最高单价
FROM adm_charge_item T8
WHERE T8.service_table = #{medReqTableName} --'med_medication_request'
AND T8.delete_flag = '0'
GROUP BY T8.service_id) T8_MAX ON T8_MAX.service_id = T1.ID
LEFT JOIN adm_charge_item T8
ON T8.service_table = #{medReqTableName} --'med_medication_request'
AND T8.service_id = T1.id
AND T8.delete_flag = '0'
LEFT JOIN med_medication_request T17
on T1.id = T17.refund_medicine_id
AND T17.delete_flag = '0'
LEFT JOIN adm_organization T16
ON T1.org_id = T16.id
AND T16.delete_flag = '0'
WHERE T1.status_enum = #{completed} --'3'
AND T2.status_enum = #{eventStatus} --'4'
AND T1.delete_flag = '0'
/* 确保有发放记录才纳入汇总 */
AND T2.dispense_time IS NOT NULL
AND T1.refund_medicine_id IS NULL
AND T17.refund_medicine_id IS NULL
GROUP BY T1.org_id,
T16.name
UNION ALL
SELECT T4.org_id,
T16.name AS org_name,
SUM(T4.quantity * T9_MAX.unit_price_max) AS total_money
T16.name AS org_name,
SUM(T9.total_price) AS total_money
FROM wor_device_request T4
LEFT JOIN wor_device_dispense T5
ON T5.device_req_id = T4.id
@@ -241,18 +253,22 @@
/* 时间区间 */
AND
TO_CHAR(T5.dispense_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{dispenseDateSTime} AND #{dispenseDateETime}
LEFT JOIN (SELECT T9.service_id,
MAX(T9.unit_price) AS unit_price_max -- 单处方的最高单价
FROM adm_charge_item T9
WHERE T9.service_table = #{devReqTableName} --'wor_device_request'
AND T9.delete_flag = '0'
GROUP BY T9.service_id) T9_MAX ON T9_MAX.service_id = T4.ID
LEFT JOIN adm_charge_item T9
ON T9.service_table = #{devReqTableName} --'wor_device_request'
AND T9.service_id = T4.id
AND T9.delete_flag = '0'
LEFT JOIN wor_device_request T17
on T4.id = T17.refund_device_id
AND T17.delete_flag = '0'
LEFT JOIN adm_organization T16
ON T4.org_id = T16.id
AND T16.delete_flag = '0'
WHERE T4.status_enum = #{completed} --'3'
AND T5.status_enum = #{eventStatus} --'4'
AND T4.delete_flag = '0'
AND T5.dispense_time IS NOT NULL
AND T4.refund_device_id IS NULL
AND T17.refund_device_id IS NULL
GROUP BY T4.org_id,
T16.name

View File

@@ -68,7 +68,7 @@
COUNT(DISTINCT bus_no) AS total_number
FROM wor_supply_request T1
INNER JOIN wor_supply_delivery T2 ON T1.id = T2.request_id AND T2.delete_flag = '0'
WHERE T1.source_location_id = #{locationId}
WHERE T1.purpose_location_id = #{locationId}
AND T1.type_enum IN (#{productStocktaking} ,#{productBatchStocktaking} )
AND T1.status_enum = #{agree}--同意
AND T2.status_enum = #{completed}--已完成
@@ -112,6 +112,7 @@
AND T8.delete_flag = '0'
WHERE T2.location_id = #{locationId}
AND T1.status_enum = #{completed}--请求状态:已完成
AND T2.status_enum = #{agree}--请求状态:已发药
AND T1.delete_flag = '0'
AND TO_CHAR(T2.dispense_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
GROUP BY
@@ -136,6 +137,7 @@
AND T9.delete_flag = '0'
WHERE T5.location_id = #{locationId}
AND T4.status_enum = #{completed}--请求状态:已完成
AND T5.status_enum = #{agree}--请求状态:已发药
AND T4.delete_flag = '0'
AND TO_CHAR(T5.dispense_time, 'yyyy-MM-dd HH24:mi:ss') BETWEEN #{startTime} AND #{endTime}
GROUP BY

View File

@@ -22,6 +22,7 @@
T10.supplier_id, --供应商
T10.approver_id, --审核人
T10.approval_time, --审批时间
T10.occurrence_time, --制单日期
T10.remake, --出库原因
T10.tenant_id -- 租户ID
from (
@@ -43,6 +44,7 @@
T1.supplier_id, --供应商
T1.approver_id, --审核人
T1.approval_time, --审批时间
T1.occurrence_time, --制单日期
T1.remake, --出库原因(备注)
T1.tenant_id -- 租户ID
from wor_supply_request as T1
@@ -66,6 +68,7 @@
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'
@@ -92,6 +95,7 @@
T1.supplier_id, --供应商
T1.approver_id, --审核人
T1.approval_time, --审批时间
T1.occurrence_time, --制单日期
T1.remake, --出库原因
T1.tenant_id -- 租户ID
from wor_supply_request as T1
@@ -115,6 +119,7 @@
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'

View File

@@ -20,7 +20,7 @@
T10.supplier_id, --供应商id
T10.supplier, --供应商
T10.approver_id, --审核人
T10.create_time, --制单日期
T10.occurrence_time, --制单日期
T10.approval_time, --审核日期
T10.tenant_id -- 租户ID
FROM (SELECT T1.bus_no AS supply_bus_no, --单据号
@@ -40,7 +40,7 @@
T1.supplier_id, --供应商id
T9.name AS supplier, --供应商
T1.approver_id, --审核人
T1.create_time, --制单日期
T1.occurrence_time, --制单日期
T1.approval_time, --审核日期
T1.tenant_id -- 租户ID
FROM wor_supply_request AS T1
@@ -58,6 +58,7 @@
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'
@@ -92,7 +93,7 @@
T1.supplier_id, --供应商id
T9.name AS supplier, --供应商
T1.approver_id, --审核人
T1.create_time, --制单日期
T1.occurrence_time, --制单日期
T1.approval_time, --审核日期
T1.tenant_id -- 租户ID
FROM wor_supply_request AS T1
@@ -110,6 +111,7 @@
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'

View File

@@ -23,6 +23,7 @@
T10.approver_id, --审核人
T10.approval_time, --审批时间
T10.remake, --退库原因
T10.occurrence_time, --制单日期
T10.tenant_id -- 租户ID
from (
select T1.bus_no as supply_bus_no, --单据号
@@ -44,6 +45,7 @@
T1.approver_id, --审核人
T1.approval_time, --审批时间
T1.remake, --退库原因(备注)
T1.occurrence_time, --制单日期
T1.tenant_id -- 租户ID
from wor_supply_request as T1
inner join wor_supply_delivery as T2
@@ -66,6 +68,7 @@
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.source_location_id = T8.id
and T8.delete_flag = '0'
@@ -93,6 +96,7 @@
T1.approver_id, --审核人
T1.approval_time, --审批时间
T1.remake, --退库原因
T1.occurrence_time, --制单日期
T1.tenant_id -- 租户ID
from wor_supply_request as T1
inner join wor_supply_delivery as T2
@@ -115,6 +119,7 @@
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.source_location_id = T8.id
and T8.delete_flag = '0'

View File

@@ -9,24 +9,38 @@
T9.name, --名称
T9.total_volume, --规格
T9.manufacturer_text, --厂家
-- T9.item_table, --类型
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, --厂家
-- T2.category_code AS item_table, --类型
T4.lot_number, --产品批号
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
@@ -39,14 +53,15 @@
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 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}
@@ -57,12 +72,19 @@
T6.name, --名称
T6.size AS total_volume, --规格(器材规格)
T6.manufacturer_text, --厂家
-- T6.category_code AS item_table, --类型
T4.lot_number, --产品批号
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
@@ -72,19 +94,122 @@
LEFT JOIN adm_device_definition AS T6
ON T1.item_id = T6.id
AND T6.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 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.bus_no DESC
ORDER BY T9.supply_bus_no DESC
</select>
<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, --审批时间
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, --盈亏数量
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_aut_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 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 = #{stocktakingReport}
AND T1.status_enum = #{supplyStatus}
AND T1.item_table = #{medicationTableName}
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,--单据号
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_aut_supply_request AS T1
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 = #{stocktakingReport}
AND T1.status_enum = #{supplyStatus}
AND T1.item_table = #{deviceTableName}
AND T1.delete_flag = '0'
AND TO_CHAR(T1.occurrence_time, 'yyyy-MM-dd HH24:mi:ss') = #{time}) AS T9
ORDER BY T9.supply_bus_no DESC
</select>
</mapper>

View File

@@ -23,7 +23,7 @@
T6.total_price, -- 总价
T6.applicant_id, -- 申请人(制单人)
T6.approver_id, -- 审核人
T6.create_time, -- 制单日期
T6.occurrence_time, -- 制单日期
T6.apply_time, -- 申请日期
T6.approval_time, -- 审批时间(调拨日期)
T6.tenant_id -- 租户ID
@@ -46,7 +46,7 @@
T1.total_price, -- 总价
T1.applicant_id, -- 申请人(制单人)
T1.approver_id, -- 审核人
T1.create_time, -- 制单日期
T1.occurrence_time, -- 制单日期
T1.apply_time, -- 申请日期
T1.approval_time, -- 审批时间(调拨日期)
T1.tenant_id -- 租户ID
@@ -94,7 +94,7 @@
T1.total_price, -- 总价
T1.applicant_id, -- 申请人(制单人)
T1.approver_id, -- 审核人
T1.create_time, -- 制单日期
T1.occurrence_time, -- 制单日期
T1.apply_time, -- 申请日期
T1.approval_time, -- 审批时间(调拨日期)
T1.tenant_id -- 租户ID