2022.01.27.万芳医院微服务大胆改造,更要助北医体系HIS大转型
HIS对多数医护而言,只是单调的日常工作环境,但对万芳医院的医护来说却很不一样。「我们医疗资讯系统(HIS)画面,到圣诞节时会飘雪,就像Line聊天室一样,甚至计画在情人节时秀出爱心,」万芳医院资讯室主任许权广越讲,眼睛越发亮了起来,「要让辛苦工作的同仁感受到温暖。」
甚至他打算,让一天得用好几套系统的医生,打开最后一个HIS系统页面时跳出「恭喜集满七个系统~获得今日最辛苦医师勳章」的惊喜,利用寻宝集点的游戏化概念,让使用者体验更有趣。
这个多帮使用者思考一步的思维,让HIS不再冷冰冰,使用者用起来就像生活中熟悉的工具一般,就是许权广的开发风格。勇于打破旧有框架,也跳脱传统IT开发方式,让他更能大胆尝试新方法,这正是为何早在4、5年前,远在微服务浪潮吹进台湾之前,万芳就开使思考这样技术的可行性。
直接嚐鲜微服务,解决旧系统问题
如同其他历史悠久的医院,万芳仍采用大型主机,这种设计虽然安全,IT却面临许多挑战。光是修改日期字段,只改一处还不够,IT得手动一一修改所有牵涉日期的系统才行,这只是万芳医院维运大型主机系统常见的麻烦事之一。
最让许权广头痛的是,大型主机使用老旧程式语言,例如Delphi,人才越来越难找,「最可怕的是,能用的工具也越来越少!」他指出,大型主机系统遇到维护更新时,还得中断服务,就算暂停1分钟,都影响HIS服务的持续性。
所以,4、5年前一场会议上,万芳医院开始思考,能否用微服务来开发系统。当时,台湾医界讨论微服务的声浪甚小,但万芳医院评估后就认定,微服务架构可解决老旧系统的问题。
而真正推了万芳医院一把,让他们成为北医体系中,第一家拥抱微服务医院的关键,是一项非做不可的国家政策。当时政府力推医院无纸化,医院得在平板、手机等行动装置上执行HIS,但用老旧程式语言开发的系统,必须事先定义固定的画面尺寸,难以根据装置萤幕来缩放大小,无法如新式网页应用程式那样,可以动态支援不同装置的萤幕。
在双重挑战的推力下,万芳在2018年初,决定大胆改用微服务来开发系统。
挑病摘系统先练兵,正式展开微服务开发之路
他们首先练兵的对象是病摘系统。
这是因为,这套系统不如门诊系统庞大,但用途广泛,记载了病人从入院到出院全流程的病历摘要,也医院每天必用的系统。再来,病摘系统主要使用者是年轻住院医师,这群使用者对系统转换接受度高,也可以快速提供建议给开发团队。从医院整体作业角度来看,优化病摘系统,也能进一步提高无纸化程度,让医护更习惯在装置上记录病历。
从技术面考量,锁定病摘系统还有一个关键理由,就是更容易符合微服务拆分理念,将不同阶段的流程模组化,拆分为一支支的服务,再以API串接。
选好改造的目标系统后,万芳IT团队找来使用者单位和负责统筹的医务部,联手开发新系统,一一从入院病摘、病程记录、出院病摘等关键模组着手,再延伸到其他照护系统,将这些模组都打造成网页化的服务,能根据行动装置大小缩放使用,甚至还结合Chatbot工具,来发送会诊通知。网页版病摘系统也以API串接其他仍在大型主机上执行的旧系统。
这种用微服务介接大型主机旧系统的方法,就像是「在旧按钮呼叫新服务。」许权广认为,明显效益是大幅缩短资料存取时间,因为原本所用的数据库架构复杂,资料存取相当费时,但改用微服务介接旧系统后,万芳会先将资料抓取到微服务专用的快取数据库Redis,再用NoSQL数据库MongoDB连结快速存取。
这种暂存方式,大大加速资料存取时间,使用者能立即读取资料,而且,IT服务更新不必停机,团队不需公告系统何时更换,随时就能逐一更新不同的模组,使用者也能立即体验操作顺畅度。
这套以微服务架构开发的病摘系统,后来成为万芳医院One系列系统中的OneRecord,更奠定微服务开发基调。
摄影/洪政伟
万芳医院资讯室主任许权广表示,微服务开发关键在于服务资料分类,以及资料定义,得先找出共享模组、规范资料书写格式,才能顺利动工。
实作微服务2步骤:服务分类、资料定义
不过,作为微服务开发新手,万芳医院IT如何打造微服务系统?
他们的原则很简单,就2件事。首先,IT团队得先将服务与资料分类,找出医疗流程中共享的重要模组,像是病人基本资料、实验室检测数据等。这一步,就像是「先穿好衣服,」许权广这样比喻,衣服穿好后,要搭上配件就很容易了。接着第二项原则是建立资料定义,也就是资料标准化。比如,万芳医院遵照Google标准时间格式,来纪录年、月、日,甚至连秒、毫秒都包括在内。
服务分类、资料定义,这两项就是万芳医院每周例行开发会议的重点工作。许权广指出,每周二下午,医务部会主导开发会议,找来资讯室开发小组、医疗资讯执行长暨放射肿瘤科专任主治医师陈俊佑和相关使用单位,共同审视现有流程。他们从中分门别类,找出共享功能,再让IT人员认领开发。
微服务拆分后更容易结合敏捷式开发来分工,不仅精简快速,也十分弹性,团队不必像传统IT开发般,按照顺序「从1234开发,而是拆分成模组后,从1或10开始都行。」许权广点出,老派开发要求一人独挑大樑,IT人员一接到任务就自认倒楣,但微服务开发方法不只分工,还能提高成就感。
先完成共享模组的开发后,团队就能重新组合不同微服务化的模组,来建立整体操作流程。甚至,他们也能在模组间穿插其他功能,像是大数据分析、AI等。对团队来说,微服务让不同系统都能透过API呼叫取用,而且,模组改写一次就能同步更新到所有套用的流程上,不必一一手动改写所有相关系统。
跳脱传统IT框架:IT人才非相关科系也能做好微服务
不只在系统开发上跳脱传统IT框架,许权广在人才安排上也打破旧有做法。万芳医院资讯室人力不多,特别的是,主力开发人员都不是IT背景,「有英文老师、政治系、航太系毕业的同事,还有一位IT团队主管是医师,而我自己是护理背景,」他打趣地一一细数团队成员背景。这群人来历不同,但都对系统开发抱持高度热忱,自行寻找开源工具解决问题,更是必备特质。
为何出现这样奇特的人才组成,得从2017年底,万芳改变招募方式说起。当时,万芳医院面临老旧程式语言人才难寻、又不得不动起来开发的困境,于是下定决心从零开始,只要会网页式开发的人才,都纳入考量。
不像传统透过人力网站征才的制式方法,万芳医院主动出击,在PTT、各大论坛上寻找对医疗IT有独到见解之人,主动邀请面试。万芳医院IT主管与这些人对谈时,除了记录人格特质,还看重快速反应能力。甚至在面试后,还会找面试者到开发团队的办公室,与其他成员閒聊半小时,分享彼此兴趣。「大家语言相同,就会留下来,就会开发出许多新东西,获得成就,」他说。
许权广强调,这些不同背景的开发人才想像力丰富、富有弹性,再加上平时都是IT系统的使用者,更能从使用者角度看问题。「对我们来说,这是很好的改变!」他说。
不只如此,万芳医院还自创一套人才转型做法。开发微服务系统时,必须先梳理出关键的共享模组,但医疗资料架构庞杂,容易衍生出各式各样的子分类,对IT新人来说更难分辨。这时,万芳医院换个角度,改找来开发旧系统的资深员工,转型担任系统架构师,负责拆解庞大的旧系统,再提供架构设计给新进IT人员来打造微服务系统。如此一来,只熟悉旧系统和旧语言的资深人员,也能在新系统开发中发挥关键作用。
下一步进驻北医体系,扩散万芳微服务经验
开启万芳医院微服务开发之路的OneRecord,是承袭万芳另一套一站式病人资讯入口系统OnePage而来。OnePage的前身是一站式病人资讯查询系统LazyR,这是多年前,陈俊佑医生利用看诊之馀的空閒时间,一手开发的系统,整合了原散落在各系统的病人检验检查资料,来让住院医师靠单一接口就能存取所需资讯。
后来,IT团队用微服务架构优化LazyR,发展出了OnePage系统,更接着打造出第一个以微服务架构从头开发的病摘系统OneRecord,再延伸出一系列One系统。比如OneTeam,就是从病摘出发,可用来搜寻适合收案的病人收案与相关资料等,提供给院内9大职类人员如社工、营养师、护理师、药剂师、个案管理师和呼吸治疗师等人使用。其他如急诊专用系统OneER、医疗数据库OneFamily和聊天机器人OneBot等,也都是One系列系统的延伸。微服务的延伸,不光是系统,更推展到整个肿瘤治疗流程上。许权广透露,目前北医体系有意改造肿瘤治疗流程,计画要以微服务架构来开发。
这些都是万芳微服务系统延伸应用的一环。接下来,北医大今年2月将启动专案办公室,来推动北医体系3家医院的HIS转型,要用微服务架构来改善大型主机旧系统。这个专案办公室的目标是,将One系列系统导入体系医院,让3家医院透过单一入口查询所有资讯,甚至纳入周边合作诊所的资讯。
专案办公室将先从3家医院中挑选人才,一面组队,一面规画复制万芳医院One系列系统的成功经验到其他2家医院。这个经验复制,不只包含系统开发,更着重团队合作和人才组成。尤其,万芳医院力推由医师领导IT团队,所开发的系统才更贴近使用者需求,而由不同人格特质组成团队也是关键,才能借此互补、快速进步。在开发过程中,如何让医疗团队了解关键模组、分门别类回馈资料,也是万芳经验分享中的重要一环。
许权广特别强调,万芳IT还建置系统互动区,来让使用者截图、反应系统状况,这也是他眼中,提高使用者体验的关键作法。
接下来,北医体系专案办公室,还要研究世界主流的开源容器平台K8s,来管理3院微服务系统。许权广期许,未来北医体系微服务模组要像App市集一样,随时可供不同系统呼叫、引用,打造更灵活的智慧医疗环境。
CIO小档案
万芳医院资讯室主任 许权广
学历:台北医学大学医学资讯硕士毕业
经历:2010年进入北医大,担任卓越癌症计画研究护士,2013年接任北医大科技学院专案经理,累积IT开发经验,2年后进入万芳医院资讯室护理小组,2017年升任万芳医院资讯室副主任,2年后接下资讯室主任一职,2020年则任命为资讯长
医院档案
台北市立万芳医院
地址:台北市文山区兴隆路三段111号
成立时间:1997年
主要业务:与台北医学大学附设医院、卫福部立双和医院在临床教学研究、人力资源、医疗服务及其他资源上相互支援
员工数:约2,500人
资讯部门档案
资讯部门主管职称:万芳医院资讯室主任
资讯部门主管姓名:许权广
医疗资讯执行长:陈俊佑
直属主管:行政副院长
资讯部门人数:31人
资讯部门分工:分为系统维运组、程式设计组、资讯发展组、资讯服务组、总机组
IT大事记
●2010年:电子病历系统上线、建置住院医师查房资讯系统LazyR
●2013年:参与北医体系医院医疗资讯系统整合计画
●2016年:建立一页式医师小助手OnePage,召集北医教授李友专、万芳医师陈俊佑等成立医资专家群
●2017年:导入癌症诊断辅助系统Watson for Oncology、建置智慧病房;打造云端文件共享服务平台及云端运算资料交换管理系统
●2018年:发表台湾首个AI医疗服务聊天机器人「万小芳」
●2019年:以OnePage为核心,打造万芳One万平台,开始微服务转型
●2020年:打造文山区诊所系统资料双向交换环境,建立台湾首个光配方乐龄智慧病房
●2021年:获得2020年至2021年国家医疗品质奖(NHQA)智慧医疗类竞赛六面向全获智慧标章
●2022年:以One万平台微服务建构经验,推动北医大下一代HIS开发
参考网站:https://www.ithome.com.tw/people/149088