摘要:UML是一種面向對象的建模語言,能夠將用戶的業務需求映射為模型,可大大提高系統的開發效率和擴展性。運用UML用例圖、時序圖、協作圖、狀態圖、活動圖等表示方法,對醫院信息系統HIS的需求和業務流程進行分析與設計,準確地表達系統的功能需求,有效解決了HIS的需求分析和業務建模問題,為下一步的總體設計奠定了良好的基礎。
關鍵詞:UML;建模;HIS
中圖分類號:TP311.5文獻標識碼:A 文章編號:1009-3044(2010)01-121-03
The Hospital Information System Modeling Based on UML
LI Ting-quan, DING Chen-lu, ZHOU Chao
(Chongqing Communication Institute, Chongqing 400035, China)
Abstract: UML is an object-oriented modeling language which can map the user's business requirements into the model and improve the scalability and the efficiency of the system. This paper will illustrate some diagrams in UML such as the use case diagram, sequence diagram, collaboration diagram, state diagrams and activity diagrams, furthermore the business processes and requirements of the HIS will also be analyzed and designed to express the accurate functional needs of the system. In this case, UML could solve all the indeed analysis of the requirements and the actual modeling of the business, therefore a good foundation has been made for the overall planning of the next step.
Key words: UML; modeling; HIS
醫院信息系統(Hospital Information System, HIS)[1],是指利用計算機軟硬件技術、網絡通訊技術等現代化手段,對醫院及其所屬各部門對人流、物流、財流進行綜合管理,對在醫療活動各階段中產生的數據進行采集、存貯、處理、提取、傳輸、匯總、加工生成各種信息,從而為醫院的整體運行提供全面的、自動化的管理及各種服務的信息系統,醫院信息系統是現代化醫院建設中不可缺少的基礎設施與支撐環境。需求分析決定系統開發的成敗,軟件建模技術使系統開發走向成熟。使用UML建模方式,將客戶不斷變化的業務需求映射到模型中,能大大提高系統的擴展性和開發效率。
1 統一建模語言UML
1.1 UML的定義
UML(Unified Modeling language)[2],是一種面向對象的建模語言。它的主要作用是幫助用戶對軟件系統進行面向對象的描述和建模,它可以描述從需求分析、系統設計、編碼和測試等軟件開發全過程。
UML由視圖(View)、圖(Diagram)、模型元素(Model Element)和通用機制(General Mechanism)等幾個部分組成。
視圖(View)是表達系統的某一方面特征的UML建模元素的子集,視圖并不是圖,它是由一個或多個圖組成的對系統某個角度的抽象。在建立一個系統模型時,通過定義多個反映系統不同方面的視圖,才能對系統做出完整、精確的描述。
圖(Diagram)是模型元素集的圖形表示,通常是由弧(關系)和頂點(其他模型元素)相互連接構成的。
模型元素(Model Element)代表面向對象中的類、對象、接口、消息和關系等概念。UML中的模型元素包括事物和事物之間的聯系。事物之間的關系能夠把事物聯系在一起,組成由意義的結構模型。
通用機制(General Mechanism)用于表示其他信息,比如注釋、模型元素的語義等。
1.2 UML的內容
UML的重要內容可以由下列五種類圖來定義:
第一類是用例圖(Use Case Diagram)[3],從用戶角度描述系統功能,并指出各功能的操作者。
第二類是靜態圖(Static Diagram),包括類圖、對象圖和包圖,其中類圖用于定義系統中的類,描述類之間的關系(關聯、依賴、聚合等)及類的內部結構(類的屬性和操作),對象圖所使用的符號與類圖幾乎完全相同,它們是類的實例。包圖由包或類組成,主要表示包與包之間的關系,包與類之間的關系。
第三類是行為圖 (Behavior Diagram),描述系統的動態模型和組成對象之間的交互關系。其中狀態圖描述一類的對象所有可能的狀態以及事件發生時狀態的轉移條件。而活動圖描述滿足用例要求所要進行的活動以及活動間的約束關系,有利于識別并行活動。
第四類是交互圖(Interactive Diagram),描述對象之間的交互關系。一種成為順序圖,用以顯示對象之間的動態合作關系。另一種是合作圖,它側重描述對象之間的合作關系。如果強調時間和順序,則使用順序圖如果強調上下級關系,則選擇合作圖。這兩種圖合稱為交互圖。
第五類是實現圖(Implementation Diagram),包括組件圖和配置圖。組件圖描述代碼部件的物理結構以及各組件之間的依賴關系。配置圖定義系統中軟硬件的物理體系結構。
從應用角度看,采用面向對象技術設計系統時,遵從以下幾個階段[4]:需求分析、概要設計(總體設計)、詳細設計、編碼調試、測試、維護,這也是瀑布式軟件生命周期開發過程。用UML建模及 Rational Rose工具的面向對象開發技術大致歸納為以下幾個步驟[5]:①建立用例框圖;②建立交互框圖;③細化上述一系列圖中的用例;④建立類框圖;⑤建立狀態轉換框圖;⑥軟件構造(編碼、調試、組件部分測試);⑦測試;⑧建立組件框圖:定義和瀏覽系統的實際軟件結構,描述系統組件之的編譯相關性;⑨建立部署框圖:定義應用程序在網絡結構中的實際部署,包括網絡布局和軟件組件在網絡上的位置;⑩維護。以上各步驟中存在反復、循環、細化。①、②屬于需求分析階段;③-⑤屬于設計階段(總體設計、詳細設計)。
2 基于UML的 HIS建模
下面結合某醫院信息系統 HIS項目,用UML圖來建模,根據項目規定和開發需要繪制了相應的圖形。
2.1 功能模塊
首先,根據衛生部《醫院信息系統基本功能規范》,結合該醫院實際情況和預算,將HIS分解成14個子系統,包括:數據字典維護分系統;門診掛號分系統;門診醫生工作站分系統;住院醫生工作站分系統;護士工作站分系統;藥品管理分系統;門診劃價收費分系統;住院病人入出轉管理分系統;住院收費管理分系統;病案病歷管理分系統;院長統計查詢分系統;醫療保險接口分系統;權限設置分系統;數據備份和恢復分系統。主要模塊的功能具體如下:
門診掛號分系統:實現預約掛號、窗口掛號、處理號表、統計和門診病歷處理等基本功能。
門診醫生工作站分系統:醫生處理門診記錄、診斷、處方、檢查、檢驗、治療處置、手術和衛生材料等信息。
住院醫生工作站分系統:醫生處理診斷、處方、檢查、檢驗、治療處置、手術、護理、衛生材料以及會診、轉科、出院等信息。
護士工作站分系統:護士核對并處理醫生下達的長期和臨時醫囑,對醫囑執行情況進行管理,同時完成護理及病區床位管理等日常工作。
藥品管理分系統:對藥庫、門診藥房、住院藥房、藥品價格、藥品會計核算等信息的管理以及輔助臨床合理用藥,包括處方或醫囑的合理用藥審查、藥物信息咨詢、用藥咨詢等。
門診劃價收費分系統:包括門急診劃價、收費、退費、打印報銷憑證、結賬、統計等功能。
住院病人入出轉管理分系統:包括入院登記、床位管理、住院預交金管理、住院病歷管理等功能。
住院收費管理分系統:包括住院病人結算、費用錄入、打印收費細目和發票、住院預交金管理、欠款管理等功能。
病案病歷管理分系統:對病案首頁和相關內容及病案室(科)工作進行管理。
院長統計查詢分系統:從醫院信息系統中加工處理出有關醫院管理的醫、教、研和人、財、物分析決策信息,以便為院長及各級管理者決策提供依據。
醫療保險接口分系統:完成醫院信息系統與上級醫保部門進行信息交換的功能。
2.2 用例圖(UseCase Diagram)
用例圖用來描述系統應該具備的功能,顯示用例、參與者以及它們之間的關系。在用例圖中,參與者是指與系統交互的用戶,用例是對一個系統或一個應用的一種單一的方式所做的描述,是關于單個活動者在與系統對話中所執行的處理行為的陳述序列。在軟件開發過程中,恰當地使用用例可以有效地控制交互式開發過程。
每個分系統可以用若干個用例圖來表達,本文借助Rose 2003軟件工具,以門診部掛號分系統中病人掛號為例,繪制了其用例圖(見圖1)。主要角色有:病人、掛號收費員。用例主要有注冊登記、產生病歷卡、付費,其中包括一些對用例的包含、擴展關系,如注冊登記包括記錄病人個人信息,安排就診科室等,付費方式有醫保、公費和自費等方式。
2.3 時序圖(Sequence Diagram)
時序圖描述了對象之間傳遞消息的時間順序,它用來表示用例中的行為順序,是強調消息時間順序的交互圖,它反映了若干對象的動態協作關系。主要分析對象所發消息的先后順序,說明對象之間的交互。它是對系統工作流程的一個過程反映,直接影響著系統將來是否與實際關系相符。圖2描述了病人掛號的時序圖。
2.4 協作圖(Collaboration Diagram)
協作圖用來表現系統的對象間的另一種交互,即時間和空間順序上的交互。雖然和時序圖表現交互的方式不同,但系統的時序圖和協作圖一般描述相同的內容。圖3描述了病人掛號的協作圖。
2.5 狀態圖(Statechart Diagram)
狀態圖是通過類對象的生命周期建立模型來描述對象隨時間變化的動態行為,顯示了該實體如何根據當前所處的狀態對不同的時間做出反應的。當行為的改變和狀態有關時才創建狀態圖。它是對類所描述的一個對象的一個補充,展示了此類對象所具有的所有可能的狀態及當某些事件發生時其狀態的轉移情況。如圖4所示,藥庫管理員在添加藥品時,首先登陸系統,然后進行藥品的添加,最后更新藥品信息。
2.6 活動圖(Activity Diagram)
活動圖用于展現參與行為的類的活動或動作,描述一個操作中所要進行的各項活動的執行流程,描述一個用例的處理流程或某種交互流程,對于每個用例均可畫出其活動圖,以便更詳細地描述該用例與角色的交互。如圖5所示,系統管理員在維護系統數據的活動中,可以進行兩種操作,即數據備份與數據恢復。
以上主要結合醫院信息系統介紹了用UML來指導項目開發的需求分析和系統分析的過程,在軟件開發的后續開發階段系統設計、系統構造和系統測試等階段都可以使用UML的不同圖形表示工具來幫助我們做相應的開發設計,以具體實現軟件。這里因篇幅關系就不再一一詳述。
3 結束語
UML是用于對系統進行描述、可視化處理、構造和建立軟件系統的統一建模語言,適用于軟件開發的各個階段、各種應用領域。利用同樣的UML模型可以生成不同語言的框架代碼,而且可以通過反向生成,在編寫代碼過程中及時更新 UML模型。本文同時借助Rose 2003開發工具,結合醫院信息管理系統項目案例,繪制出各種相應的UML圖,從不同角度和層次上為系統分析、設計和實現提供了支持,從而很好地解決了系統建模問題。本系統以病人業務為中心,以信息管理為主線,以電子病歷為發展目標,集病人信息、費用信息、管理信息于一體的原則設計,盡可能地減輕事務處理人員的勞動強度,合理記錄醫院各類數據,確保數據的準確性,提高醫療管理和科學決策的水平,更好地為社會提供高質量高效率的服務。
參考文獻:
[1] 衛生部.醫院信息系統基本功能規范[S].2001.
[2] Rumbaugh J,Jacobson I,Booch G.UML參考手冊[M].北京:機械工業出版社,2001.
[3] Pilone D,Pitman N.UML 2.0 in a Nutshell[M].2nd ed.O'Reilly Media,2006.
[4] Booch G,Rumbaugh J,Jacobson I.The Unified Modeling Language User Guide[M].2nd ed.Addison Wesley Professional,2005.
[5] 吳建,鄭潮,汪杰.UML基礎與Rose建模案例[M].北京:人民郵電出版社,2007.