打造医疗新质生产力
目录
- 头雁领航 - 激发医疗新质生产力
- 核心支撑 - 电科金仓奠定数据底座
- 生态共建 - 携手护航医疗信创发展
信创产业发展是国家经济数字化转型、提升产业链发展的关键,是科技自立自强的核心基座,其本质是实现中国信息化产业的自主可控。医疗信创作为关系到民生保障的核心领域,也正同步经历着从技术依赖到自主可控的深刻变革。
2025年4月30日,常德市第二人民医院(下称常德二院)全栈国产化信创项目正式上线,支撑医院30余个核心系统平稳运行,患者候诊时间缩短了20%,医疗新质生产力正在加速生成。该项目是全国首个地方三级医院全栈国产化医疗信创项目,打破了医疗信息化领域对国外技术的依赖,成为全国医疗行业自主可控转型的可复制样板。
头雁领航 - 激发医疗新质生产力
作为湖南省三级医院、国家疼痛综合管理试点医院、区域公共卫生救治中心,常德二院承担着常德及湘西北地区数百万群众的医疗保障重任。常德二院的医疗信创转型,既是国家信创战略向医疗领域深度渗透下的必然选择,也是常德二院通过技术创新提升医疗服务能力的主动实践。
湖南省提出了“医疗信创看湖南”的发展目标,而常德二院的信创实践被定位为湖南省医疗全面信创的试验田,赋予了“头雁”的使命:探索一条可复制、可推广的“新路子”,为湖南省医疗领域推进信创工作提供常德经验。
医院信创是建设是一项系统性工程,需要全院全员协同参与。在常德二院,这场变革被确立为“一把手工程”,组成了信创信息化领导小组,统筹协调全院资源。湖南省卫健委、省委机要局,常德市市委办、财政局、卫健委、数据局和电信常德分公司等单位也对项目给予了大力支持。
常德二院党委书记马明祥表示,全院信创宜早不宜迟,常德二院已经迎来了全院国产化信创的“天时地利人和”:医院信创方案获得了湖南省、常德市的高度认可;医院业务体量适中,没有大型医院的包袱,也能有效验证国产信创系统;全院对于全栈国产化信创决心坚定,获得了各方面的大力支持。
2025年4月30日,全国首个地方三级医院全栈国产化医疗信息系统在常德二院成功上线,实现包含HIS、EMR、PACS、LIS等核心业务系统在内的全栈国产化覆盖。系统整体上线后,医护人员可通过“患者360视图”调阅患者此前来院的检验、影像、电子病历等历史诊疗数据。
在系统性能改善方面,最明显的莫过于影像调阅速度,以往医生需要在不同系统间反复切换,现在只需要点击医学影像模块,就可以快速阅片。依托智能报表平台,日常统计、医保对账等工作的处理效率较传统模式提升,重要报表数据实时生成,大大提高了查询效率,管理效能获得跃升。
全栈国产化带来的安全优势也已经开始显现,张兴林主任介绍,在最近一次的漏扫检测当中,没有发现任何系统漏洞,“这在以往用国外软硬件的时候是不可想象的,之前即使是发现漏洞也没法得到厂家的支持,现在心里有了底气”。
核心支撑 - 电科金仓奠定数据底座
在医疗信息化系统中,数据库不仅承载着海量患者诊疗数据、电子病历、影像资料等核心信息,还需支撑高并发实时业务场景及复杂的数据分析需求,其自主可控性直接关系到医疗数据安全、业务连续性和行业数字化转型进程。
常德二院信息科主任张兴林介绍,在数据库的选型上,医院首先确认的是厂商对于医疗信创的热情。“医疗行业的业务并发可能不会太大,但是业务逻辑异常复杂”,作为第一个吃螃蟹的人,需要数据库厂商的大力配合。张兴林表示:“电科金仓真正做到了不计得失,随时响应,全力配合。”
在数据库选型过程中,医院抽取了此前的门诊和住院数据,输入金仓数据库做压力测试,实测表明,金仓数据库的性能和国外主流数据库没有明显差别,在某些方面还做了有针对性的优化。金仓数据库的优异表现也给医院吃下了一颗定心丸,“我们认定数据库不是信创的瓶颈,可以放心使用国产数据库”。
系统上线前的压力测试模拟了医院规模并发每小时1000多条业务建卡、就诊记录,每小时产生医嘱记录8000余条,金仓数据库均能够轻松应对。系统上线100余天以来,金仓数据库有效支撑了常德二院诊疗、医院管理等场景,挂号、医嘱下达、医疗影像调阅等业务响应速度相较替换前有了大幅度提升,有效提升了患者就医体验。
生态共建 - 携手护航医疗信创发展
常德二院全栈国产化信创成功的背后是一张紧密协作的国产生态图谱,电科金仓、东华医为、海光、银河麒麟等国产信创厂家,共同打通了从硬件到软件,从基础设施层-系统层-应用层的全链路100%国产化路径。
医疗信创的难点,在于核心业务系统与国产化技术栈的深度耦合,需要针对医疗场景进行全链路的联合攻坚。为了实现数据库与业务系统的共生,常德二院、电科金仓和东华医为组建了精英团队进行联合办公。谈起项目攻坚期的情况,张兴林主任依然历历在目:“当时医院进驻了200多名各个单位的工程师,医院腾出了三个住院院区给工程师提供食宿。”有前来参观考察的厂商表示,“(常德二院)信息科就像是一家科技公司”。
七个多月的联合攻坚解决了9000多个问题点,常德二院全栈国产化信创项目终于从概念实现了落地。电科金仓和东华医为等合作伙伴基于KES进行了全院系统开发,针对医疗业务特点优化数据库参数配置,采用读写分离架构提升并发处理能力,合理设计索引和分区策略,保障数据库性能;针对医疗业务特点重写关键SQL,提升查询效率;采用微服务架构降低数据库压力,提高系统可扩展性。
这种协同开发模式,让数据库不再是孤立的技术组件,而是深度融入医疗业务流程的中枢神经。电科金仓和东华医为的联合实践,也更加丰富了医疗信创领域的生态,国产软硬件能力获得了提升,形成了可复制的方案,为行业推广复制奠定了基础。
在以科技创新驱动医疗变革的时代浪潮中,医疗产业如何向“新”而行,向“质”而造?常德二院全栈国产化信创项目已经迈出了关键一步,而更广阔的未来正在该项目所代表的医疗新质生产力中延申,落在每一份病历的数据里,体现在患者的每个点滴便利。
来展示一段代码:
-- 分析门诊患者的就诊模式、诊断分布和费用情况
WITH patient_visit_summary AS (-- 汇总每位患者的就诊基本信息SELECT p.patient_id,p.full_name,p.gender,TIMESTAMPDIFF(YEAR, p.date_of_birth, CURDATE()) AS age,p.insurance_type,COUNT(DISTINCT v.visit_id) AS total_visits,MIN(v.visit_date) AS first_visit_date,MAX(v.visit_date) AS last_visit_date,TIMESTAMPDIFF(DAY, MIN(v.visit_date), MAX(v.visit_date)) AS days_between_first_last,AVG(TIMESTAMPDIFF(DAY, LAG(v.visit_date) OVER (PARTITION BY p.patient_id ORDER BY v.visit_date), v.visit_date)) AS avg_days_between_visitsFROM patients pJOIN visits v ON p.patient_id = v.patient_idWHERE v.visit_type = 'OUTPATIENT' -- 仅考虑门诊患者AND v.visit_date >= DATE_SUB(CURDATE(), INTERVAL 2 YEAR) -- 近2年数据GROUP BY p.patient_id, p.full_name, p.gender, p.date_of_birth, p.insurance_type
),
patient_diagnosis AS (-- 获取患者的主要诊断信息SELECT v.patient_id,d.diagnosis_code,d.diagnosis_description,COUNT(*) AS diagnosis_occurrences,ROW_NUMBER() OVER (PARTITION BY v.patient_id ORDER BY COUNT(*) DESC) AS diag_rankFROM visits vJOIN diagnoses d ON v.visit_id = d.visit_idWHERE v.visit_type = 'OUTPATIENT'AND v.visit_date >= DATE_SUB(CURDATE(), INTERVAL 2 YEAR)GROUP BY v.patient_id, d.diagnosis_code, d.diagnosis_description
),
patient_visit_costs AS (-- 计算患者每次就诊的费用SELECT v.visit_id,v.patient_id,v.visit_date,SUM(c.service_cost) AS total_service_cost,SUM(c.medication_cost) AS total_medication_cost,SUM(c.lab_test_cost) AS total_lab_cost,SUM(c.service_cost + c.medication_cost + c.lab_test_cost) AS total_visit_cost,c.insurance_reimbursement,(SUM(c.service_cost + c.medication_cost + c.lab_test_cost) - c.insurance_reimbursement) AS patient_out_of_pocketFROM visits vJOIN costs c ON v.visit_id = c.visit_idWHERE v.visit_type = 'OUTPATIENT'AND v.visit_date >= DATE_SUB(CURDATE(), INTERVAL 2 YEAR)GROUP BY v.visit_id, v.patient_id, v.visit_date, c.insurance_reimbursement
)
-- 综合分析结果
SELECT vs.patient_id,vs.full_name,vs.gender,vs.age,CASE WHEN vs.age < 18 THEN 'Pediatric'WHEN vs.age BETWEEN 18 AND 64 THEN 'Adult'ELSE 'Senior'END AS age_group,vs.insurance_type,vs.total_visits,vs.first_visit_date,vs.last_visit_date,vs.days_between_first_last,ROUND(vs.avg_days_between_visits, 1) AS avg_days_between_visits,pd.diagnosis_code AS primary_diagnosis_code,pd.diagnosis_description AS primary_diagnosis,pd.diagnosis_occurrences AS primary_diagnosis_occurrences,ROUND(AVG(vc.total_visit_cost), 2) AS avg_visit_cost,ROUND(SUM(vc.total_visit_cost), 2) AS total_2year_cost,ROUND(AVG(vc.patient_out_of_pocket), 2) AS avg_out_of_pocket,ROUND(SUM(vc.patient_out_of_pocket), 2) AS total_out_of_pocket,ROUND(AVG(vc.insurance_reimbursement), 2) AS avg_insurance_reimbursement,ROUND(SUM(vc.total_medication_cost) / SUM(vc.total_visit_cost) * 100, 1) AS medication_cost_percentage,ROUND(SUM(vc.total_lab_cost) / SUM(vc.total_visit_cost) * 100, 1) AS lab_cost_percentage
FROM patient_visit_summary vs
JOIN patient_diagnosis pd ON vs.patient_id = pd.patient_id AND pd.diag_rank = 1 -- 仅取主要诊断
JOIN patient_visit_costs vc ON vs.patient_id = vc.patient_id
WHERE vs.total_visits >= 2 -- 至少就诊2次的患者
GROUP BY vs.patient_id, vs.full_name, vs.gender, vs.age, vs.insurance_type,vs.total_visits, vs.first_visit_date, vs.last_visit_date, vs.days_between_first_last, vs.avg_days_between_visits,pd.diagnosis_code, pd.diagnosis_description, pd.diagnosis_occurrences
HAVING total_2year_cost > 1000 -- 总费用超过1000的患者
ORDER BY total_2year_cost DESC, vs.total_visits DESC
LIMIT 100;