IT大多是室內靜態的腦力活,但童綜合醫院資訊部主任蔡宏隆很不一樣,他總是捲起袖子,一副隨時要做工的樣子。這股挽起袖子動手做的衝勁,也讓他格外要求IT團隊要更有行動力。因此,蔡宏隆上任後,就帶著IT團隊,積極擁抱敏捷開發。
以麻醉資訊系統練兵敏捷開發,拉近使用者與IT距離
去年,童綜合醫院資訊部先從小型專案試水溫,開始嘗試敏捷開發方法。當時請來專業敏捷教練,擔任全職指導,讓開發團隊一開始就接觸企業級的敏捷開發做法,減少自行摸索的試誤過程。
麻醉資訊系統專案是第一批採用敏捷開發的典型例子。當時,童綜合醫院全院從上到下大力推行無紙化政策,因此需要重新打造麻醉資訊系統。資訊部與使用者單位幾經討論,最後決定自行開發,而且要以敏捷方法來實現。
開發人員與麻醉醫護組成了10人的敏捷團隊,更設置多種專案分工的角色,像是確保開發流程符合敏捷原則的Scrum Master、整合需求與定義開發方向的Product Owner,以及負責開發維運的DevOps小組。
接著,他們遵循以使用者為中心的設計思考(Design Thinking)做法,在每天10分鐘晨會中,IT與使用者互相溝通需求。蔡宏隆回憶,當時每天早上,會議室白總是貼滿便條紙,來整理需求重點,梳理出不同功能的開發順序。此外,團隊也設定里程碑,每隔數天就檢視進度。開發過程中,IT也導入常見的敏捷看板管理工具,來掌握專案動態。
特別的是,「我們先從使用者介面(UI)、使用者體驗(UX)下手!」蔡宏隆解釋,這是一般醫院少見的做法,IT團隊不會趕著開始寫程式,而是先理解使用者操作需求,畫出使用者介面,包含各類資訊呈現的畫面和不同功能的擺放位置,讓麻醉科室的醫護使用者檢視。
「這個步驟很關鍵,」他強調。因為,童綜合醫院的麻醉資訊系統所需的功能,過去分散在多項系統上處理,這些系統多由不同委外廠商開發。這次改版,重新設計系統介面時,「得先依使用者需求整合功能,再依重要性重新排列,才能做出符合使用者所需的系統、提高使用者體驗。」蔡宏隆補充。
比如,新版麻醉資訊系統的目標是打造一站式入口,將過往散落在不同系統的資訊納入其中,使用者不必反覆切換到不同系統。但為了在大量資訊中,優先呈現重要訊息,改以一個個方塊看板來代表每一位的手術病患。醫護人員可以直接點選打開病患個人頁面,進一步查閱這名病患的治療細節。在單一病患頁面,IT團隊也將常用的幾類同意書列在主畫面中,以特別設計的圖示來標註是否完成簽署,而次要同意書則收錄到側欄,醫護使用者有需要再點選。他們利用視覺化設計的手法,來區分出重要和次要資訊,讓使用者更容易取用。
定調使用者介面各設計後,IT團隊才開始撰寫程式、打造雛型,再提供給使用者單位試用,並根據他們的建議來修正,循著敏捷開發方法來進行。「我們設定了階段性里程碑,每完成一個階段就先部署系統,一邊執行,也一邊更新,」蔡宏隆形容,這樣的做法就像是人工式持續性部署,「邊走邊修正。」
在技術架構上,麻醉資訊系統後端系統採用Python程式語言開發,前端則以輕量化JaveScript框架Vue.js來設計跨平臺的網站應用。整套麻醉資訊系統則部署在當今流行的容器上,他們也以微服務架構來打造這套系統,作為練兵。
這個專案不只是敏捷開發的練手,蔡宏隆還希望能讓資訊團隊累積容器使用經驗和微服務架構設計經驗,一舉三得,讓自家IT團隊一次接觸和學習IT現代化的三大主流技術。
去年,麻醉資訊系統開始逐步上線,今年則要全數完成。蔡宏隆回想專案印象最深刻的事,麻醉科室團隊負責人曾激動地告訴他,從沒想過能有這種與IT密切合作的開發模式,打造出介面友善、符合需求的系統,「這些都是過去所沒有的體驗。」來自使用者單位這樣的反饋,讓蔡宏隆大受鼓勵。
這個成功經驗的故事,後來也散播到護理部門,開始有使用者單位主動找上IT團隊,也想要用同樣的模式來改造ICU資訊系統。這種靠使用者拉使用者的水平擴散風氣,正是童綜合IT推動敏捷的初衷,「建立起成功模式後,就能快速複製到其他專案,加速改造,」蔡宏隆說。
還要靠敏捷塑造文化、培育新技能
童綜合擁抱敏捷文化,不只要拉近IT與使用者距離、加速改造步伐,更要解決人力不足問題,培育職員新技能。
「我們地處海線、IT人力有限,」蔡宏隆舉例,在專案開發過程中,以往由IT人員擔任專案經理(PM),一條龍負責與使用者溝通、開發系統,但是,他觀察,一些醫療科室人員也許更適任PM,還能作為種子窗口,來主導專案,讓IT能更深入使用者單位。
這麼做,不僅能解決IT人力問題,所開發的系統也更優質。「否則,IT要負責開發、又要扮演PM,凡事都自己來,太累了,」他繼續表示:「因為先天條件限制,我們得先改造內部文化,讓醫療單位高度參與,否則IT改造永遠慢人一步!」
也因此,童綜合醫院今年力推敏捷文化,開設敏捷工作坊、精實看板工作坊,開放全院自由報名,也設為IT中高階主管必修課程,作為升職必要條件。甚至,資訊部還指派特定同仁參加Google認證的PM課程,將最新敏捷知識帶回內部渲染。
這些做法,也符合童綜合醫院的人才培育方向。他們希望,這些修習敏捷課程的中高階主管,未來能將敏捷文化融入組織,塑造出童綜合專屬的靈活IT開發文化。
童綜合醫院資訊部主任蔡宏隆表示,IT開發第一步不急著寫程式,先從UI、UX下手,釐清使用者需求後再寫程式,能大幅降低系統開發失敗率。
逐步擁抱微服務,要靠讀寫分離來管理
蔡宏隆手上的另一項重要工作,則是醫療資訊系統(HIS)微服務化。早在20年前,童綜合醫院就脫離大型主機,改用主從式的三層架構,5、6年前進一步發展網頁化,將系統中的共通功能取出,打造成一支支服務,以API來串接,打下日後的微服務基礎。
比如,HIS中有許多系統,都內建了相同的單張列印功能,像是醫囑系統、護理系統,但這種做法,在維護和管理上相當不便,若有功能更新得逐一到各系統手動調整,無法改一套就放諸四海皆準。後來,IT團隊將這個共用功能獨立,寫成一支服務,以API來串接其他系統,不論是Windows程式、網頁程式還是行動裝置程式,都能透過API呼叫來執行單張列印功能。維護上,團隊只需要管理一支服務,免除程式修改不同步的麻煩。
也正是從那時起,他們開始以其他周邊系統,來練兵微服務開發和開源工具,小至同意書功能、大至所有AI專案,都改以微服務架構開發,並搭配版本控管平臺GitLab來落實備份和持續部署。「新專案一定用GitLab進行持續部署,舊系統至少要用GitLab備份,」蔡宏隆補充。不只如此,他們也小規模嘗試開源容器管理平臺Kubernetes和相關工具,來累積經驗。
幾年下來,童綜合醫院所用的微服務數量,至今超過了1,000支API,未來也要開始將這些微服務程式容器化。如何管理這麼多的微服務和資源調度,正是他們當前面臨的課題。蔡宏隆透露,他們準備建立API閘道器,來執行資料庫讀寫分離,將大量的微服務讀取需求分流,一但發生異常,就能清楚找出問題,平時還能用來降低資料庫的負荷。
自建MLOps平臺自動化輔助AI團隊
除了擁抱敏捷開發、醫療系統微服務化,童綜合資訊部還有另一個任務,也就是協助AI團隊流程自動化。比如,他們導入RPA,來改善原本謄寫骨質密度報告的產出流程。
在醫院健檢業務中,需要產生大量的骨質密度報告,但要製作這種報告,過去仰賴人工判讀JPG格式的醫學影像,再將相關數值謄寫到骨質密度報告中。為降低人工負荷,他們利用電腦視覺判讀JPG影像,再截取數值、自動匯入報告,讓報表製作流程自動化。
不只將這項流程自動化,IT團隊還自建一個小型MLOps平臺,來協助AI團隊處理模型訓練的大小事。比如,AI團隊可用內建的標註工具,來自動標記訓練資料,完成後,可在平臺上挑選模型、調整參數和模型訓練。
模型部署上線後,這套MLOps平臺還會時時監控模型狀態,將模型各種效能呈現在儀表板上。要是出現異常,就會自動控制模型運作,當匯入新資料、重新訓練後,再部署上線。
雖然這套平臺還能應付現有的AI專案需求,但蔡宏隆坦言,他們正評估其他資源,未來將借助外力擴大平臺功能,來因應更大量的AI開發和維運需求。
養成FHIR交換能力,下一步瞄準雲端原生
這兩年,衛福部大力提倡電子病歷上雲政策和FHIR電子病歷交換架構,童綜合醫院也先培養自家FHIR交換能力,不只去年參加第二屆臺灣FHIR聯測,成功互通用藥記錄、疫苗注射等資料,今年還要參加第三屆聯測,來進行FHIR身份驗證和資安相關測試。
對他們來說,參加聯測除了驗證自身能力,一方面還能交流資訊、認識廠商,「先備好這些能力,待政策正式推行,我們就全力配合,」蔡宏隆說。
他也透露,隨著越來越多周邊系統微服務化,HIS核心系統未來將以微服務架構改造,IT架構也會朝雲端原生發展。為此,他們不只自行摸索K8s,也派不少同事參加雲端大廠研習課程,不論是RedHat、AWS還是GCP,都在評估範圍內。他們要藉外力打下深厚IT底子,進一步邁向智慧醫院。
文章來源:iThome