# lis、pacs视图 # 地址:10.100.100.205 # 数据库名:ltkjview # 用户:ltkjview # 密码:ltkj@view # 视图 /* ltkjview.lis_sqd | his_bodycheck ltkjview.lis_xm | hjlis_ylsf ltkjview.pacs_sqd | v_examhisorderdata ltkjview.pacs_xm | v_examitem */ # 迪安外送对接 # 金堆城 CREATE USER 'ltkjwsdian'@'%' IDENTIFIED BY 'ltkj@ws20250320'; GRANT INSERT, UPDATE, DELETE,SELECT ON ltkjpeis10_jdczgzyy.ws_import_result_group TO 'ltkjwsdian'@'%'; GRANT INSERT, UPDATE, DELETE,SELECT ON ltkjpeis10_jdczgzyy.ws_import_pdf_group TO 'ltkjwsdian'@'%'; GRANT SELECT ON ltkjpeis10_jdczgzyy.ws_export_sample_group TO 'ltkjwsdian'@'%'; GRANT SELECT ON ltkjpeis10_jdczgzyy.ws_import_pdf_group TO 'ltkjwsdian'@'%'; FLUSH PRIVILEGES; # 外送PDF报告表 CREATE TABLE ws_import_pdf_group( id bigint AUTO_INCREMENT COMMENT '序号', sample_no varchar(100) NULL COMMENT '指样本在LIS的唯一ID号。如果没有,就填样本条码号。', hos_code varchar(100) NULL COMMENT '贴在试管上的样本医院条码号。', patient_no varchar(100) NULL COMMENT '患者唯一ID,或者唯一就诊卡号、社保卡号', out_patient_no varchar(100) NULL COMMENT '门诊号', pdf_file varchar(255) NULL COMMENT '报告文件路径', report_date datetime NULL COMMENT '报告日期', is_read varchar(30) NULL COMMENT '是否下载', create_time datetime NULL COMMENT '创建日期', da_barcode varchar(100) NULL COMMENT '迪安条码', pdf_base64 text NULL COMMENT 'pdf报告单base64串', jpg_base64 text NULL COMMENT 'jpg报告单base64串' ) COMMENT '外送PDF回传'; # 清库 TRUNCATE TABLE tb_transition; TRUNCATE TABLE tj_order; TRUNCATE TABLE tj_order_ycxm; TRUNCATE TABLE tj_order_detail; TRUNCATE TABLE tj_order_remark; TRUNCATE TABLE tj_order_detail_rules; TRUNCATE TABLE ltkj_hysqd; TRUNCATE TABLE ltkj_hybgd; TRUNCATE TABLE ltkj_exam_jcsqd; TRUNCATE TABLE ltkj_exam_jcbgd; TRUNCATE TABLE tj_jcycxm; TRUNCATE TABLE tj_sampling; TRUNCATE TABLE tj_report; TRUNCATE TABLE tj_reservation; TRUNCATE TABLE tj_wsxm; TRUNCATE TABLE tj_zhxm; TRUNCATE TABLE tj_xd_picture; TRUNCATE TABLE tj_xdtgmdjg; TRUNCATE TABLE tj_report_print; TRUNCATE TABLE tj_flowing_water; TRUNCATE TABLE tj_flowing_water_his; TRUNCATE TABLE tj_dw_grouping; TRUNCATE TABLE tj_grouping_pro; TRUNCATE TABLE tj_customer; TRUNCATE TABLE tj_dw_dept; TRUNCATE TABLE tj_customer_black; TRUNCATE TABLE tj_ask_historys; TRUNCATE TABLE tj_ask_medical_history; TRUNCATE TABLE tj_ask_work_log; TRUNCATE TABLE dict_user_info; # 查询前缀值 SELECT * FROM ( SELECT config_value,'sqyy' as hosp FROM ltkjpeis10_sqyy.`sys_config` WHERE config_key = 'make_lis_tmh_prefix' union all SELECT config_value,'bjfhyy' as hosp FROM ltkjpeis10_bjfhyy.`sys_config` WHERE config_key = 'make_lis_tmh_prefix' union all SELECT config_value,'bjxjyy' as hosp FROM ltkjpeis10_bjxjyy.`sys_config` WHERE config_key = 'make_lis_tmh_prefix' union all SELECT config_value,'chkwyy' as hosp FROM ltkjpeis10_chkwyy.`sys_config` WHERE config_key = 'make_lis_tmh_prefix' union all SELECT config_value,'jdczgzyy' as hosp FROM ltkjpeis10_jdczgzyy.`sys_config` WHERE config_key = 'make_lis_tmh_prefix' union all SELECT config_value,'pbkwyy' as hosp FROM ltkjpeis10_pbkwyy.`sys_config` WHERE config_key = 'make_lis_tmh_prefix' union all SELECT config_value,'ssyjyy' as hosp FROM ltkjpeis10_ssyjyy.`sys_config` WHERE config_key = 'make_lis_tmh_prefix' union all SELECT config_value,'wbzxyy' as hosp FROM ltkjpeis10_wbzxyy.`sys_config` WHERE config_key = 'make_lis_tmh_prefix' union all SELECT config_value,'xamjyy' as hosp FROM ltkjpeis10_xamjyy.`sys_config` WHERE config_key = 'make_lis_tmh_prefix' union all SELECT config_value,'xatlgcyy' as hosp FROM ltkjpeis10_xatlgcyy.`sys_config` WHERE config_key = 'make_lis_tmh_prefix' ) a ORDER BY a.config_value DESC; # 同步价格存储过程 CREATE TABLE tb_proprice_his ( pro_id BIGINT NULL , old_price DECIMAL(10,2) NULL, new_price DECIMAL(10,2) NULL, pro_parent_id BIGINT NULL, time DATETIME DEFAULT CURRENT_TIMESTAMP ); CREATE DEFINER=`root`@`%` PROCEDURE `pro_tb_his_project`() BEGIN # 是否开启同步his项目 DECLARE isOpenTbHisProject VARCHAR(10); # 是否开启同步公共套餐 DECLARE isOpenCommonTaoCan VARCHAR(10); # 是否开启同步单位套餐 DECLARE isOpenDeptTaoCan VARCHAR(10); main_block: BEGIN # 凌云价格同步存储过程,his停用的项目不要从套餐 分组中删除,只修改价格 # 存储过程调用写到中间层,加参数配置默认不同步 SELECT config_value INTO isOpenTbHisProject FROM `sys_config` WHERE config_key = 'isOpenTbHisProject' LIMIT 1; SELECT config_value INTO isOpenCommonTaoCan FROM `sys_config` WHERE config_key = 'isOpenCommonTaoCan' LIMIT 1; SELECT config_value INTO isOpenDeptTaoCan FROM `sys_config` WHERE config_key = 'isOpenDeptTaoCan' LIMIT 1; IF isOpenTbHisProject IS NULL OR isOpenTbHisProject != 'Y' THEN LEAVE main_block; END IF; DELETE FROM tb_proprice_his; DROP TEMPORARY TABLE IF EXISTS his_tb_temp_prods; CREATE TEMPORARY TABLE his_tb_temp_prods(id BIGINT); INSERT INTO his_tb_temp_prods(id,pro_parent_id) # 已停用项目ids SELECT b.pro_id,b.pro_parent_id FROM ( SELECT a.pro_id,a.his_xmbm,a.pro_parent_id FROM tj_project a LEFT JOIN tj_project b ON a.pro_parent_id = b.pro_id WHERE a.pro_parent_id <> 0 AND a.his_xmbm <> '' AND a.pro_status =0 AND a.deleted = 0 AND b.pro_status = 0 AND b.deleted = 0 ) b LEFT JOIN ltkj_shanxiqinjdczgzyy_getshoufeixmzd c ON b.his_xmbm = c.shoufeixmid WHERE c.shoufeixmid IS NULL OR c.zuofeibz = 1; INSERT INTO tb_proprice_his(pro_id) SELECT id FROM his_tb_temp_prods; UPDATE tj_project a JOIN his_tb_temp_prods b ON a.pro_id = b.pro_id SET a.pro_status = 1; INSERT INTO tb_proprice_his (pro_id,old_price,new_price,pro_parent_id) # 价格变动的数据 SELECT c.pro_id,c.pro_price,d.danjia,c.pro_parent_id FROM ( SELECT a.pro_id,a.his_xmbm,a.pro_price,a.pro_parent_id FROM tj_project a LEFT JOIN tj_project b ON a.pro_parent_id = b.pro_id WHERE a.pro_parent_id <> 0 AND a.his_xmbm <> '' AND a.pro_status =0 AND a.deleted = 0 AND b.pro_status = 0 AND b.deleted = 0 ) c LEFT JOIN ltkj_shanxiqinjdczgzyy_getshoufeixmzd d ON c.his_xmbm = d.shoufeixmid WHERE d.zuofeibz = 0 AND c.pro_price <> d.danjia AND c.pro_id NOT IN (SELECT id FROM his_tb_temp_prods); # 修改小项价格 UPDATE tj_project a JOIN tb_proprice_his b ON a.pro_id = b.pro_id SET a.pro_price = b.new_price; # 修改大项价格 UPDATE tj_project a JOIN (SELECT pro_parent_id FROM tb_proprice_his GROUP BY(pro_parent_id)) b ON a.pro_id = b.pro_parent_id JOIN ( SELECT pro_parent_id, SUM(pro_price * sl) AS parentPrice FROM tj_project WHERE pro_parent_id != 0 and deleted=0 and pro_status=0 GROUP BY pro_parent_id ) d ON a.pro_id = d.pro_parent_id SET a.pro_price = d.parentPrice; # 如果his停用了,项目也改停用状态,套餐 分组中的项目不进行删除变动 只修改原价,一共三个配置 是否开启同步、是否同步公共套餐、是否同步单位套餐 IF isOpenCommonTaoCan = 'Y' THEN # 停用项目 UPDATE tj_package_project SET price_ord = 0 WHERE pro_id IN (SELECT pro_id FROM tb_proprice_his WHERE new_price IS NULL); # 改价项目 UPDATE tj_package_project a JOIN tb_proprice_his b ON a.pro_id = b.pro_id SET a.price_ord = b.new_price WHERE b.new_price IS NOT NULL; # 修改套餐总价 UPDATE tj_package a JOIN ( SELECT b.pac_id,SUM(b.price_ord) AS order_price FROM tj_package_project b JOIN tb_proprice_his c ON b.pro_id = c.pro_id GROUP BY b.pac_id ) d ON a.pac_id = d.pac_id SET a.price = d.order_price; END IF; IF isOpenDeptTaoCan = 'Y' THEN # 停用项目 UPDATE tj_grouping_pro a SET pro_price = 0 WHERE pro_id IN (SELECT pro_id FROM tb_proprice_his WHERE new_price IS NULL); # 改价项目 UPDATE tj_grouping_pro a JOIN tb_proprice_his b ON a.pro_id = b.pro_id SET a.pro_price = b.new_price WHERE b.new_price IS NOT NULL; # 修改套餐总价 UPDATE tj_dw_grouping a JOIN ( SELECT b.grouping_id,SUM(b.pro_price) AS order_price FROM tj_grouping_pro b JOIN tb_proprice_his c ON b.pro_id = c.pro_id GROUP BY b.grouping_id ) d ON a.id = d.grouping_id SET a.price = d.order_price; END IF; END main_block; END