<nav id="w0g0m"><code id="w0g0m"></code></nav>
  • <xmp id="w0g0m">
    <xmp id="w0g0m"><nav id="w0g0m"></nav><menu id="w0g0m"><strong id="w0g0m"></strong></menu>
  • <xmp id="w0g0m">
  • <nav id="w0g0m"></nav>
    <menu id="w0g0m"><menu id="w0g0m"></menu></menu>
    1. 網站地圖
    2. 設為首頁
    3. 關于我們
    ?

    基于Java EE 平臺的個人健康信息 管理系統設計與實現

    發布時間:2023-07-20 10:45
    第一章 緒論 1
    研究背景與選題意義 1
    1.2國內外研究現狀 2
    121健康信息類型與存儲 2
    1.2.2國外個人健康信息管理研究現狀 4
    1.2.3國內個人健康信息管理研究現狀 5
    1.3主要研究內容 5
    1.4論文章節安排 6
    第二章 系統開發相關技術 7
    B/S結構框架技術 7
    2.2Java EE平臺概述 7
    2.3時序圖 9
    2.4MVC 模式 10
    2.5Shiro安全控制 11
    第三章 個人健康信息管理系統需求分析 14
    系統實現目標 14
    3.2系統可行性分析 14
    3.3系統總體需求分析 15
    3.4系統功能需求分析 16
    3.4.1系統管理功能分析 16
    3.4.2信息管理功能分析 17
    3.5系統非功能性需求分析 18
    3.5.1質量可靠性需求分析 18
    3.5.2安全性需求分析 19
    3.6本章小結 19
    第四章 個人健康信息管理系統設計 20
    系統設計原則 20
    4.2系統整體架構設計 20
    4.3數據庫設計 21
    4.3.1數據庫的選擇 2 1
    4.3.2設計原則和技巧 22
    4.3.3數據庫表設計 23
    4.4系統模塊設計 30
    4.4.1用戶登錄模塊 30
    4.4.2系統管理模塊 32
    4.4.3信息管理模塊 34
    4.5本章小結 35
    第五章 個人健康信息管理系統實現與測試 3 7
    開發框架選擇與集成 37
    5.2系統基礎功能實現 39
    5.2.1登錄功能實現 39
    5.2.2注冊功能實現 40
    5.3系統管理功能實現 42
    5.3.1用戶組管理功能實現 42
    5.3.2用戶管理功能實現 44
    5.3.3角色管理功能實現 46
    5.4信息管理功能實現 48
    5.4.1就診報告管理 49
    5.4.2體征數據管理 51
    5.4.3心血管數據管理 53
    5.4.4其他功能界面 56
    5.5系統測試 57
    5.5.1功能測試 57
    5.5.2性能測試 5 8
    5.6本章小結 59
    第六章 總結與展望 60
    參考文獻 62
    附錄 1 攻讀碩士學位期間撰寫的論文 64
    附錄 2 攻讀碩士學位期間申請的專利 65
    致謝 66
    第一章 緒論
    1」研究背景與選題意義
    健康是人們生存的基本,勞作的基礎,謀取幸福的前提。隨著社會經濟的發展,人們更 加重視自身健康,但在我國,亞健康、慢性病和老齡化等問題嚴重影響著社會的發展。
    中國科學院心理研究所統計結果顯示,由于地域差異不同人群的亞健康狀態同樣存在著 顯著的差異,但總體狀況不容樂觀,中國亞健康人群已超過 75%,更可怕地是亞健康問題的 波及面還在不斷地擴張[1]。
    我國工業化和城市化快速發展加快了人們的生活節奏、加重了工作壓力,再加上環境污 染等問題對人體的影響,使人們患上慢性病的概率進一步提高。在我國,目前明確診斷的慢 性病患者超過 2.6 億,慢性病給家庭生活、衛生服務和公共財政造成了巨大壓力,對低收入 人群的影響尤為嚴重,已經成為嚴重的公共衛生問題和社會問題[2]。
    20 世紀下半葉,國家計劃生育政策使得新生嬰兒的出生率驟然下降,中國人口老齡化的 進程也因此展開,專家預測,我國人口老齡化比例將在未來的 40 年時間內達到 34%。不斷增 加的人口老齡化給國家、社會帶來了諸多問題,例如養老保障體系建設難度較大、老年人的 醫療衛生消費支出水平有限難以滿足醫療需求、老年人社會服務嚴重不足[3]。老年人的日常護 理、醫療保健、健康康復、精神建設等各項需求越來越難以滿足。
    在生活中亞健康、慢性病和老齡化這類的健康問題很容易被人們所忽視,其引發的疾病 卻不應該被忽視。任何疾病都是有規律可循的,并都是有一定潛伏期的,并不是突然發生的, 亞健康、慢性病和老齡化引起的疾病更是如此。專家指出,人類 1/3 的疾病是通過有效的預防 保健等措施是可以避免的, 1/3 的疾病通過有效預防和早期發現控制是可以緩解的, 1/3 的疾 病通過早發現早治療的積極醫療方式是可以提高醫療效果的。保障人類的健康最直接有效的 方式莫過于疾病的早期預防與發現。目前,大部分人已經意識到健康無可取代的地位,并開 始更加期待多方便面的醫療健康服務和主動的健康消費而非單一的醫療模式和被動的問診模 式。近年來,隨著智慧醫療行業發展,醫療信息化的浪潮也愈演愈烈,通過打造健康檔案區 域醫療信息平臺,利用先進的物聯網技術和計算機系統來逐步實現醫療信息化建設,不僅能 預防和控制亞健康、慢性病和老齡化帶來的諸多問題,還能提高國民健康水平、促進醫療信 息化技術的革新[4]。
    中共中央、國務院在 2016 年 10 月印發的《“健康中國 2030”規劃綱要》明確指出健康是 促進全面發展的必然要求,是經濟社會發展的基礎條件[5]。綱要指出實現國民健康長壽不僅僅 是國家富強、民族振興的重要標志,同樣是也是全國各族人民的共同愿望,其中還強調要盡 快完成人口健康信息化服務體系和人口健康信息平臺建設。 “互聯網+健康醫療”服務規范 要求國民健康信息服務要能夠覆蓋全生命周期,并提供包括預防治療和自主康復管理一體化 服務。因此如何在醫療信息化的發展中充分利用互聯網信息化技術優勢,為居民健康檔案、 疾病預防治療與日常健康狀態提供管理服務,是互聯網應用研究人員與醫療信息化建設研究 人員所共同面臨的重點課題。
    將被動的疾病預防治療轉變為主動的健康管理,達到長期有效地促進個人健康正是個人 健康信息管理系統目的。通過科學的健康管理,充分地調動個人的主動性和積極性,利用日 常有限的資源最大限度的改善不健康的狀態,對于預防疾病的發生,降低醫療費用以及保護 和促進個人健康具有重要意義[5]。正是基于以上原因,建立一個個人健康信息管理系統可以最 大化的分配和優化區域醫療資源,具有一定的現實和社會研究意義。
    1.2國內外研究現狀
    1.2.1健康信息類型與存儲
    健康信息是指與人類健康相關的行為模式,主要包括人體生物信息和疾病相關信息。人 體生物信息是指我們每時每刻都會產生的健康相關的信息,如血壓、心率、脈搏、血糖等; 疾病相關信息是指我們每年定期體檢的相關數據指標和就診記錄、檢查結果、服藥信息等, 健康信息是一種寶貴的衛生資源。對健康信息的存儲是整個醫療信息化與數字化的重要環節。 健康信息記錄形式上主要有文本文件、圖形文件、圖像文件、視頻文件等類型。目前,大多 數醫療機構主要以文本文件和圖形文件兩種記錄形式記錄健康信息。
    文本文件是健康信息的主要記錄方式,一般以文字列表的方式呈現,如圖 1.1 所示。文本 文件存儲相對簡單,通常以對象模型創建關系型數據表結構實現存儲,如檢查報告,服藥記 錄,既往病史和費用清單等。
     
    XX市第一人民醫院生化檢驗報告單
    姓名: 性別: 年齡: XXX 科室: 病區: 床號: 病員號: 標本種類:血 臨床診斷: 樣本號:
    送檢醫生:
    注:M社區
    序號 代碼 項目 結果 提示 單位 參考值
    1 TBIL 總膽紅素 22.8 umol/1 3.0~24. 0
    2 DBIL 直接膽紅素 & 3 umol/1 0. 0?10.0
    3 IBIL 間接膽紅素 14.5 umol/1 2. 0?17.0
    4 TP 總蛋白 87. 1 f g/L 60. 0~82. 0
    5 ALB 白蛋白 46.8 g/L 35.0?55. 0
    6 GLO 球蛋白 40.3 t g/L 20.0—35. 0
    7 A/G 白球比例 1. 16 I 1.30~2. 50
    8 ALT 谷丙轉氨蘭 14.6 u/1 0.0 ?50.0
    9 AST 谷草轉氨酶 15.6 u/1 0. 0—50.0
    10 ALT/AST 谷丙/谷草 0. 94 0. 20~1.50
    11 AKP 堿性磷酸酚 84.8 Iu/1 30.0 ?120.0
    12 GGT 谷氨酰轉猷酶 23.0 u/1 0.0 ?50.0
    13 BUN 尿素 5.31 nunol/1 1.70 ?7. 14
    14 CREA 肌肝 72.0 umol/1 30.0 ?110.0
    15 UA 尿酸 362.0 umol/1 90. 0?416.0
    16 CRP C反應蛋白 13. 40 f mg/1 0.00-10.00
    17 ASO 抗鏈球菌溶血素0 649 t Iu/mL 0-200
     
    送檢口期:2011-05-27 10:41檢驗醫生: 報告口期:2011-05-27 10:48審核:
    注:本結果僅對該檢驗樣本負責!
    圖1.1生化檢驗報告單
    核磁共振、掃描、超聲波等醫學成像技術的相繼誕生為醫務人員帶來了更為精確的診斷 信息,但同時產生也了大量圖形文件,如眼底彩照和心電圖。眼底彩照是眼底檢查產生的眼 底彩色照片,能直觀的觀察到一部分對準瞳孔的眼底,是檢查玻璃體、視網膜、脈絡膜和視 神經疾病的重要方法,如圖 1.2 所示。心電圖是利用心電圖機從體表記錄心臟每一心動周期 所產生的電活動變化圖形的技術,它對心臟基本功能及其病理研究方面,具有重要的參考價值, 如圖 1.3 所示。由于圖形文件占用空間較大,傳統關系型數據庫已經開始不能滿足圖形文件 的存儲需求,分布式文件系統成為解決圖形存儲的技術手段之一。目前,Google公司設計 并實現的分布式文件系統GFS (Google File System)和Apache開源社區的Hadoop中的分 布式文件系統是兩個主流的能夠實現圖形文件分布存儲的系統。
     
     
    圖 1.2 眼底彩照
    90201' k SPEC! *LRI C«BDIXC. PAPU"""XitAX
    圖 1.3 心電圖
    1.2.2國外個人健康信息管理研究現狀
    1956 年, 個人健康信息( Personal Health Record, PHR) 這一概念就被美國醫學協會 (American Medical Association, AMA)所提及,但當時個人的醫療和健康意識相對比較薄弱, 相對比較落后網絡技術也極大的限制了個人健康信息管理的研究工作。在21 世紀初,隨著互 聯網時代的到來,個人健康信息管理作為一種熱門的研究工作才逐漸得以展開[6]。美國國立生 物技術信息中心(National Center for Biotechnology Information, NCBI)指出個人健康信息管 理是指用戶自行管理健康信息數據的健康信息管理服務模式。個人健康信息和電子病歷
    (Electronic Medical Record, EMR)大不一樣,電子病歷的數據是由醫療機構產生,例如醫院、 康復中心和療養院等,主要用于存儲患者進入醫院后所產生的疾病數據和電子賬單,而個人 健康信息是一種可以在線獲取的醫療史及實時的個人健康數據[7]。
    歐美等西方發達國家早于 20世紀 70年代就提出了健康管理的概念[8],之后在不同國家 及歷史背景下健康管理也被賦予了不同的內容和意義,并逐漸引起了人們的關注。巨大的市 場需求有力地推動著健康管理的發展,并慢慢形成了一個獨立的行業[9]。
    美國有著較為完善的個人健康信息管理體系,且在個人健康信息的處理、存儲和共享方 面的研究與應用工作都要優先于其他國家。美國政府早在 2002年便提出要建立健全國家衛生 信息基礎設施(National Health Information Infrastructure , NHII)。美國政府希望通過建立和完 善國家衛生信息基礎設施,逐步實現個人健康信息的共享體系。美國總統布什在 2006年便提 出要建立基于互聯網的個人健康記錄,為患者、醫生和醫療機構提供必要的幫助[10]。
    Google 公司推出的 GoogleHealth 健康病例管理平臺是一個較為典型的企業涉及醫療信息 化建設的事例。 GoogleHealth 的使用邏輯非常簡單,用戶可以自愿將病歷交給 Google Health 進行管理,以便隨時隨地的在線取回。不過遺憾是,由于平臺的知名度并不高,使用人數少, 該平臺在 2012年 1月 1日已經全面關閉。
     
    1.2.3國內個人健康信息管理研究現狀
    近年來,我國加快了醫療信息化建設的步伐,但是由于起步時間相對較晚,使得符合我 國國情的健康信息管理服務模式尚未確立[11]。 2009 年出臺的新醫療衛生體制改革方案[11-12], 特別強調加快醫療衛生信息化的建設。方案明確指出充分發揮互聯網信息技術優勢,建立健 全醫療衛生信息系統,提升疾病預防、居民健康檔案建立和體檢報告分析等能力。 2010 年成 立的“浙江省數字衛生標準化技術委員會”為浙江省醫療信息化制定相關標準,醫療信息化 標準的統一有利于加快健康醫療信息化的建設[13]。
    隨著政策的寬松與支持,國內涌現出專注于醫療健康的互聯網公司和機構。這些公司和 機構以提高民眾健康意識和狀態為出發點,專注于健身、飲食、醫療常識科普和慢性疾病預 防等。"咕咚網"是一家以“快樂運動,健康生活”為理念的互聯網公司。它通過手機或可 穿戴設備對用戶運動步數進行采集和分析,并給出比較合理的健身和飲食建議,同時提供了 網絡社區、運動減排慈善等樂趣功能,使用戶運動健身的同時能夠分享運動、分享快樂。作 為國內 IT 行業“三巨頭”,百度、阿里巴巴和騰訊三家大型互聯網公司也都在醫療信息化建 設中有所部署,并有多項醫療相關產業的計劃。廣大的個人開發愛好者同樣開發了許多新穎、 有趣、好用的醫療健康相關應用,深受廣大使用者歡迎。但就目前而言,我國現階段的互聯 網醫療健康信息類應用或網站還比較混亂,嚴重缺乏高可信度、高品質的相關應用或網站, 有關個人健康信息管理的門戶更是少之又少,所以,我國在互聯網醫療健康管理的道路上還 有很長的路要走。
    1.3主要研究內容
    本文在深入研究系統開發相關技術的基礎上,設計并實現了一個基于 Java EE 平臺的個 人健康信息管理系統。論文主要研究內容包括:
    (1)個人健康信息管理系統的需求分析
    作為個人健康信息管理系統設計開發的起點,系統需求必須要足夠的明確,只有這樣才 能開發出滿足當前社會需求的個人健康信息管理系統。需求分析過程中以用戶為出發點進行 功能性分析,要求做到系統功能全面、操作簡單、體驗優異。此外,在對個人健康信息管理 系統需求進行充分調研的基礎上,為最大程度的減少開發的代價并縮短開發時間,還對個人 健康信息管理系統進行了可行性分析,包括技術可行性、經濟可行性和操作可行性。
    (2)個人健康信息管理系統的設計
    首先對個人健康信息管理系統進行總體規劃,并對技術框架進行詳細地介紹,充分說明 系統的設計流程和設計思想。系統功能的設計是系統設計過程的重點,具體了系統的各功能 模塊的工作流程,并詳細設計系統數據庫中各功能的數據庫表。
    (3)個人健康信息管理系統的實現 根據個人健康信息管理系統的需求分析和功能設計,開發并實現個人健康信息管理系統, 并詳盡介紹各功能模塊的開發過程和技術細節,展示系統主體功能的運行效果。
    1.4論文章節安掃乍
    全文共分六章。
    第一章:緒論。介紹個人健康信息管理系統的開發背景和發展前景。綜合國內外相關課 題研究及應用情況確定本文的研究內容和研究意義,并規劃文章總體結構。
    第二章:系統開發相關技術。確定個人健康信息管理系統開始所需要的主要技術和實施 方案,確保所選技術可以滿足系統設計與實施的要求。
    第三章:個人健康信息管理系統需求分析。分析個人健康信息管理系統實際需求,明確 系統建設的總體目標,并劃分個人健康信息管理系統的業務功能模塊。
    第四章:個人健康信息管理系統設計。完成系統設備選擇工作,實現對系統的整體部署 規劃。實現個人健康信息管理系統的各項功能模塊和數據庫模型設計,并對系統的外部接口 和用戶界面進行分析和設計。
    第五章:個人健康信息管理系統實現。介紹個人健康信息管理系統的實現過程,完成系 統程序編碼,并展示系統主體部分的運行效果和功能界面。 最后對個人健康信息管理系統進 行功能測試和性能測試。
    第六章:總結與展望。歸納總結全文研究內容,展望下一步研究方向。
     
     
    第二章 系統開發相關技術
    2」B/S結構框架技術
    B/S ( Browser/Server ) 結構, 即瀏覽器/服務器結構。 隨著互聯網技術的興起,
    C/S(Client/Server)結構弊端日益凸顯,B/S結構作為一種C/S結構變化和改進的結構優勢明顯, 其原理如圖 2.1 所示。
     
    1負載均衡服務器J |服務端系統
    I 1/ ! I
    圖 2.1 B/S 模型的基本架構圖
    B/S 結構實現的思想是利用萬維網瀏覽器技術,使得一部分簡單的事務邏輯優先在前端 實現,服務器負責更為主要的事務邏輯。當用戶需要對數據庫訪問時,僅需要通過瀏覽器向 Web 服務器發送訪問請求,服務器接收到請求后,將訪問結果信息響應到瀏覽器,瀏覽器把 數據再呈現給用戶,這便是 B/S 結構的主要工作過程。
    目前所有的 C/S 結構客戶端都需要以安裝到本地的形式才能使用的,它大量占用用戶的 存儲空間,造成磁盤、內存等資源的浪費。而B/S架構的用戶操作都是通過通用瀏覽器來實 現的,其主要的業務邏輯都是在服務器端完成,僅僅一少部分事務需要瀏覽器處理,這樣的 處理過程可以減輕用戶電腦負擔,減少系統開發、維護、升級的成本。 就目前的技術而言, B/S 結構的廣泛應用,在某種程度上實現了全球數據共享。 B/S 架構作為一種優勢突出的軟 件系統構造技術,使原本需要獨立的專用軟件才能實現的功能,現在僅需要使用通用瀏覽器 便可完成[15]。
    2.2 Java EE平臺概述
    Java EE是一個開發分布式企業級應用的規范和標準。Java EE平臺為開發人員提供了一
    組功能強大的API方便用戶進行網絡應用程序開發。開發人員通過此平臺可以建立可重用且 靈活的 Web 應用程序,目前, Java EE 平臺已經成為全球企業級應用信息系統使用最廣泛的 Web 程序開發技術之一。
    隨著應用體量的增大和系統的業務邏輯復雜度增長,客戶端界面代碼量將會非常大且邏 輯臃腫,不容易進行維護與升級,然而 Java EE 使用分布式多層應用模型,將應用邏輯按功 能劃分為不同的組件,將兩層模型分為四層,層與層之間相互獨立,且每層分配特定的服務。 分層的思想使得客戶端僅需要解決數據的接收和數據的顯示兩個問題。典型結構如圖 2.2 所
    示。
     
     
     
     
    圖 2.2 Java EE 體系多層結構圖
    客戶層:與系統用戶直接進行交互的一層。客戶層將服務器后臺處理的結果數據信息呈 現給用戶, Java EE 平臺支持多類型用戶,如 HTML、Java Applet 等,通常是瀏覽器。
    表示層:主要由 Web 容器管理,用于接收用戶請求。表示層將接收到的數據傳遞給業務 邏輯層,并將業務邏輯層處理的結果返回給客戶層。通常表示層的功能由 JSP 頁面或者
    Servlet 等實現。
    業務邏輯層:為表示層提供服務,用于處理業務邏輯,提供必要的接口。業務邏輯層將
    表示層提供的數據進行相應的處理后存入企業信息系統層,同時也將處理的結果返回給表示 層。
    企業信息系統層:企業信息系統服務主要在這一層實現,例如數據庫系統。
    眾所周知, Java 是平臺無關的語言,所以基于 Java EE 平臺的產品在市面可以在任何操 作系統和硬件配置上運行,因此,Java EE平臺開發的產品可以減少因平臺升級、項目移植而 造成的二次開發。Java EE平臺為軟件應用開發人員開發高效率、高靈活性和易用性的Web應 用提供了一個優秀的平臺。經過近此年的努力發展,Java EE在企業級應用程序部署平臺中始 終保持領先地位。Java EE平臺同時不斷為開發人員提供新興用法、模式和框架技術來提高應 用程序的安全性與再用價值[16]。
    2.3時序圖
    UML(Unified Modeling Language)是 OMG 組織(Object Management Group)發布的統 一建模語言["J UML通過使用一套標準的建模符號,使開發人員在開發、設計軟件應用時使 用標準、通用、規范的設計語言。軟件設計開發人員可以像看土木設計圖紙一樣對軟件系統 的框架和開發設計規劃進行保存交流。
    UML 建模系列中的時序圖是一種能夠詳細表達對象與對象之間或對象與系統外部的參 與者之間交互關系的UML。它強調對象間消息傳輸的順序,所以可以認為時序圖是由一組協 作對象以及它們之間傳輸的消息組成,也可是看成是一種詳細表達對象之間產生動態聯系的 圖形說明文檔。時序圖還可以詳細直觀地描述一組對象的行為依賴關系,既詳細又直觀表達 出操作和消息的時序關系。時序圖包含以下四種元素:
    ( 1)對象
    應用系統參與者是時序圖中的對象,同時任何有效的應用系統對象也可以作為時序圖中 的對象。對象和對象的“生命線”分別使用矩形框和矩形框正下方的垂直虛線來標記。
    ( 2)生命線 對象正下方的虛線代表著對象在這一時間內的生命線,表示對象的存在,也可以說成生 命線表現了對象在系統中存在的時段。在時序圖中要求每個對象都有生命線,并且要求生命 線要從時序圖的頂端延伸到底部,代表著對象的出現就有生命。
    ( 3 )激活 時序圖中對象和生命線的綁定說明對象生來就有生命,但對象的激活狀態與生命線無關, 也就是說對象并非生來就是激活狀態。激活是對象操作的執行,表示對象之間執行操作的過 程,是對執行的持續時間和控制關系的建模。生命線上的矩形框表示激活狀態,矩形框的頂 端和底端分別表示著激活時間和完成時間。
    (4)消息
    消息表示著對象間傳輸的信號。消息可以是一個發送者對象向另一個或幾個接收者對象 發送的信號,或對象自身方法的操作。
    在應用開發建模時時序圖主要有以下三種特點:
    (1)時序圖展示對象與對象間交互的次序,將信息傳遞以對象與對象間的交互進行建模, 通過描述消息在對象與對象間傳輸關系(發送和接收)來動態展示對象與對象間的交互。
    (2)UML圖分成五類,時序圖作為UML圖中的一種,它更加強調對象與對象間交互的 時間次序。
    (3)因為時序圖是以時間為基礎描述對象與對象間的交互次序,所以時序圖可以更加直 觀的表示出并發進程。
    時序圖通過對動態行為建模,強調了信息展開的時間次序,提供了清晰并且可視的軌跡, 可以極大的簡化軟件系統框架和開發設計規劃的保存和交流。
    2 4 MVC模式
    MVC 模式是開發交互式應用系統的一個優秀的設計模式,受到廣大開發者的普遍歡迎。
    MVC,即模型、視圖、控制器的首字母,它把應用程序抽象為功能截然不同的三部分[18]°MVC 結構如圖 2.3 所示。
     
    圖 2.3 MVC 結構圖
    模型層主要負責封裝數據、提供接口和執行操作等。在 MVC 的三個部件中,模型需要 處理的任務最多,并且模型與數據格式無關,所以它可以為多個視圖提供數據,做到一次獲 取便可以被多個視圖重用,減少重復代碼、提高可重用性。
    視圖層主要負責將模型層的數據傳達給用戶,并實現用戶與系統的交互。視圖作為一種 輸出數據并允許用戶操縱的方式,并不會有真正的處理發生。當模型產生變化時會通知視圖, 視圖便可以得到模型的數據,但不能改變數據,一個模型匹配多個視圖,同樣一個視圖也可 以與不同的模型有關聯。
    控制層主要負責連接視圖層與模型層,如模型的選擇、視圖的選擇等。控制層不會處理 任何數據,它只把用戶在界面中進行操作所產生的信息,如點擊按鈕、輸入文本等傳遞給模 型,告訴模型做什么,另外決定呈現給用戶哪些界面。
    MVC 模式被推薦為 SUN 公司的 Java EE 平臺的設計模式, JSP 和 Servlet 兩種技術 可以協同工作充分發揮MVC的優勢。JSP作為顯示(視圖)層技術,不處理任何業務邏輯,只 是將用戶在界面操作所產生數據傳給Servlet處理,并接收Servlet處理返回的數據用于界面 顯示。使用 MVC 模式的首要目的是實現系統的控制器和視圖分離。模型層與視圖層分離優 勢十分明顯,它使系統擁有不同表達形式,假如其中一層需要改動,其他各層基本沒有進行 大范圍修改的必要,如此就可以提高系統的可維護性。在頁面和邏輯中不出現決策的特性同 時可以提高應用的性能和擴展性。 MVC 模式在交互式應用系統開發的強大的優勢,使其成 為Java EE應用,特別是Web應用中一個非常重要的設計模式凹。
    2.5 Shiro安全控制
    Apache Shiro是一款簡單易用但功能依舊強大的Java安全框架,Shiro提供了認證、授權、 加密和會話管理等全面的安全管理服務功能[20]。Shiro有三個核心組件:Subject、Security Manager 和 Realms, 如圖 2.4 所示。
     
     
    圖 2.4 Shiro 控制流程
    Subject:即“主體”,代表了當前“當前操作用戶”。但是,在Shiro中,Subject這一概念 并不一定是一個具體的人,也可是進程、后臺或其他類似事物,如網絡爬蟲,機器人等。 Subject 僅僅表示“當前應用交互的任何東西”,表示當前用戶的安全操作。 SecurityManager 是所有用 戶安全操作實際的執行者。 .
    SecurityManager: Shiro 框架的核心。 Shiro 通過 SecurityManager 來管理所有 Subject, 所有與安全有關的操作都會與SecurityManager交互。SecurityManager負責與后邊介紹的其他 組件進行交互。
    Realm: Realm是Shiro與安全數據間的“通道”,Shiro如果想要獲取安全數據,例如用 戶、角色、權限等,必須通過Realm。也就是說,當對用戶執行認證(登錄)和授權(訪問控 制)驗證時, SecurityManager 用以確定用戶身份是否合法的數據需要從 Realm 獲取, SecurityManager 驗證用戶是否能進行操作的角色/權限數據同樣需要從 Realm 得到。從這個意 義上講, Realm 更像是對安全數據進行操作的 DAO 類,可以把 Realm 看成安全數據源。 Shiro 基本的功能如圖 2.5 所示。
     
    Authentication :認證。驗證用戶的身份是否合法有效。
    Authorization:授權。用于判定當前已認證的用戶是否對特定的資源擁有某個權限。常見 的如:粗粒度的驗證當前用戶是否是基于某個角色進行授權的,或者細粒度的驗證用戶是否 是基于資源進行授權的。
    Session Manager:會話管理。一次用戶登錄訪問就是一次會話,在沒有退出之前,會話會 保存用戶特定信息。會話不僅可以在 Web 環境中使用,還可以在普通 JavaSE 環境出現。
    Cryptography:加密。保護數據的安全性,如密碼加密存儲,Shiro提供了常用的加密算 法。
    Caching:緩存。緩存數據量大且經常被使用的信息可以提高效率,例如用戶、角色和權 限等信息。緩存后,不用每次都去訪問數據庫便可以獲取信息,減小數據庫服務器的壓力。
    Concurrency: Shiro 可以完成線程間權限的同步,如在當前線程中開啟另一線程,權限自 動傳播。
    Run As:允許使用其他身份(在授權情況下)訪問。
    Remember Me:記住我。即一次登錄后,下次再訪問的話不用輸入賬號和密碼便可直接 進行訪問。
    Apache Shiro 是一款簡單易用但功能依舊強大的開源 Java 安全框架,開源的特性使得
    Shiro可以很好的與其他優秀的第三方框架耦合,并且可以在大多數應用環境中使用,增加軟 件的開發效率[21]。
    第三章 個人健康信息管理系統需求分析
    作為個人健康信息管理系統設計開發的起點,系統需求必須要足夠的明確,只有這樣才 能開發出滿足當前社會需求的個人健康信息管理系統。
    3.1系統實現目標
    個人健康信息管理系統的目標用戶群體是普通大眾,所以設計開發本系統過程中以用戶 個體為研究對象,充分利用先進的計算機、網絡通信技術理論知識,確保所開發的個人健康 信息管理系統能較為全面的滿足不同用戶的業務需求。同時要求系統具有一定的簡單易用性、 經濟實用性和安全可靠性[22]。因此,對個人健康信息管理系統要實現如下目標:
    (1) 所設計開發的個人健康信息管理系統應以用戶為中心、簡化操作流程、豐富功能模 塊、優化用戶體檢。
    (2) 所設計開發的個人健康信息管理系統應實現簡明的權利授予與管理體系,要求個人 用戶對自身健康信息數據具有絕對處理權限。用戶可通過權限授予的方式來實現健康信息數 據的共享,以便醫護人員能在了解用戶的特定健康信息后對其進行有效治療。
    (3) 所設計開發的個人健康信息管理系統應具備較為強大的數據存儲能力,要求系統能 夠安全快捷的管理用戶個人信息和健康數據,并對用戶個人健康數據實現快速的查詢、篩選 和呈現。
    (4) 所設計開發的個人健康信息管理系統應減少系統管理人員的勞動強度、強化系統的
    自動化管理、建立健全維護體制、提高工作效率、降低人工成本。
    3.2系統可行性分析
    (1) 技術可行性
    個人健康信息管理系統采用Java EE作為系統的開發平臺、采用MySQL數據庫作為系統 的主存儲數據庫、采用 SSH 開源框架作為系統開發主框架,這些技術在軟件系統的開發方面 已經相當成熟,并且完全能夠滿足本系統的開發需求,因此開發技術可行[23]。
    (2) 經濟可行性
    由于本系統開發過程中所要求的計算機及相關硬件市場上都容易購買,所要求的軟件環 境都是開源的,均可從相關網站下載,所以開發前籌備工作經濟支出不大。本系統采用B/S架 構作為系統開發的整體架構,用戶只需擁有一臺可上網的設備即可使用,對用戶不造成過重 的經濟負擔。因此本系統成本主要集中在系統的開發與維護上,而本系統開發的周期較短, 人員經濟支出不大,一旦投入使用,開發的個人健康信息管理系統可以為用戶提高健康信息 管理效率、減輕工作負擔,效益明顯,所以從經濟方面講是可行的。
    ( 3)操作可行性 個人健康信息管理系統的開發過程中以用戶為中心,在充分分析用戶需求及操作習慣的 前提下對系統進行了明確的模塊劃分,使得個人健康信息管理系統層次清晰。個人健康信息 管理系統采用菜單式的功能選擇和圖表式的數據呈現方式來實現用戶與數據的交互,界面簡 潔友好、操作簡單方便。用戶只需對系統的操作流程和業務邏輯有簡單的了解即可,不需要 掌握與開發技術相關的知識,因此,系統操作可行。
    3.3系統總體需求分析
    在當前階段,我國健康醫療信息化建設的問題還比較多,如數據結構標準不統一、部門 之間的管理業務缺乏聯系、系統開發沒有考慮繼承性等[24-26]。加強對個人健康信息管理系統 的研究,有利于解決健康醫療信息化建設所面臨的諸多問題[27-28]。對個人健康信息管理系統 總體需求如下:
    (1)系統應具備長時間運作的穩定性。個人健康信息管理系統作為一個面向大眾的健康 信息管理系統,系統的穩定性是系統為用戶提供服務的基礎。數據信息的穩定關系著整個個 人健康信息管理系統的用戶體驗,因此系統應具備長時間運作的穩定性。
    (2)系統應具備一定的可伸縮性。在系統開發擴展成長過程中,要求系統擁有足夠旺盛 的生命力,要求降低系統處理能力增長的難度,做到簡單的硬件添置就能實現系統性能的線 性增長,因此系統應具備一定的可伸縮性。
    (3)系統設計開發過程中應遵循高內聚低耦合的設計原則[29]。為了提高開發的效率,降 低維護的成本,在系統開發過程中應盡量降低模塊間聯系,做到單一模塊單一職責,減少“牽 一發而動全身”的出現幾率,從而提高軟件質量。
    (4)系統應保證數據安全[30]。個人隱私數據丟失可能會導致嚴重的后果,因此在系統運 行期間,應當保證用戶數據安全,一旦出現數據操作異常,應當及時做出數據回滾、備份恢 復或垃圾數據清理等操作予以補救。
    (5)系統應具有權限管理功能[31]。不同用戶應具備不同的訪問權限,對系統的操作權限 也有所不同,同時,系統管理員作為系統最高權限擁有者應該可對用戶進行權限分配和更改。
     
    3.4系統功能需求分析
    3.4.1系統管理功能分析
    系統管理人員通過使用個人健康信息管理系統的系統管理功能完成對本系統的數據庫、
    用戶組、用戶、角色、模塊的管理。系統管理模塊功能結構如圖 3.1 所示。
     
    圖 3.1 系統管理模塊功能結構圖
    系統管理功能除實現對用戶組、用戶、角色和模塊進行修改更新等操作外,還需要實現 如下功能:
    1) 家庭組成員信息維護
    家庭組作為最小用戶群體單位,它記錄著整個家庭成員健康信息,極大的便利了個人用 戶對家中年長和年幼成員健康信息的維護。
    2) 用戶角色的分配
    不同用戶應具備不同的訪問權限,對系統的操作權限也有所不同,系統管理員應可以對 其他用戶進行權限管理,使得不同用戶擁有不同的職責、行使不同的權利。
    (3)角色權限的管理 以角色管理權限的方式實現用戶的權限分配,用不同角色擁有不同權利、不同用戶擁有 不同角色的方式實現用戶和權限的關聯,可以提高開發的效率、降低維護的成本。
    3.4.2信息管理功能分析
    信息管理功能是用戶直接使用的功能模塊,主要包括個人檔案管理、健康數據管理、健
    康服務管理三大功能模塊。信息管理模塊功能結構如圖 3.2 所示。
    新建報告「 刪除報告「
    就診報告 共享報告〕
    導入報告「
    打印報告〕
    個人檔案管理* 新建檔案]
    修改檔案] 健康檔案 刪除檔案')
    檔案共享] 檔案導入「 檔案打印〕
    數據接入〕
    ]信息管理 體征數據 數據刪除]
    圖形顯示「 健康數據管理、
    數據接入〕 心血管數據 數據刪除〕
    圖形顯亍
    醫療保健知識科普)
    健康服務管理 就診信息推薦
    個人健康信息共享
    圖 3.2 信息管理模塊功能結構圖
    個人檔案管理主要包括就診報告和健康檔案兩種檔案管理分類,其中就診報告應以文件
    管理的形式管理用戶的就診信息記錄,如就診醫院信息、科室信息、醫務人員信息、檢查報
    告等。個人健康信息管理系統還需要為個人用戶維護最基本的和完善的健康檔案信息,健康
    檔案應該符合國家標準、信息覆蓋全面、實現全生命的特性管理。
    健康數據管理模塊主要實現對個人體征數據、心血管數據和其它健康數據進行分類管理。 個人體征數據和心血管數據作為個人健康特征明顯的信息數據,同時擁有數據測量技術相對 成熟、數據變化相對穩定、數據異常對身體健康影響比較嚴重等特征,被廣泛應用于健康檢 查和慢性疾病的預防。
    除了健康信息的管理等核心功能外,系統還應為如下健康服務:
    (1) 醫療保健知識科普 針對常見的健康問題,系統可為用戶推薦醫療保健知識科普,提高用戶醫療、健康、保
    健知識水平,同時要求醫療保健知識庫的內容簡單易懂,嚴謹可靠。
    (2) 就診信息推薦 系統應可以根據已有用戶健康信息和已接入醫療機構的基本信息、科室特長、醫療綜合
    能力等綜合推薦給用戶特定的就診機構信息,同時還應該以電子地圖的形式為用戶提供就診 機構的地理位置信息。
    (3) 個人健康信息共享 用戶可以通過系統授權其他用戶查閱自己的健康檔案、就診報告和健康數據等。
    (4) 投訴與建議
    系統除為用戶提供對個人健康信息管理系統平臺的投訴與建議功能外,還應給用戶提供 對醫療機構和醫務人員進行評價和投訴的能力,用戶的評價和投訴建議可以作為一項醫療機 構和醫務人員綜合能力的考核指標。
    3.5系統非功能性需求分析
    3.5.1質量可靠性需求分析
    質量可靠性作為個人健康信息管理系統正常運行的基礎,必須對其進行需求分析 [32],要 求如下:
    (1) 個人健康信息管理系統的網絡域名要求簡短易記。
    (2) 用戶操作錯誤,系統應彈出錯誤信息,避免出現錯誤頁面的跳轉給用戶造不愉快的 使用體驗。
    (3) 系統對軟硬件環境的依賴要足夠小。
    (4)系統對不良操作給予警示及必要預防。
    3.5.2安全性需求分析
    個人健康信息管理系統存儲著大量的用戶個人隱私信息,系統的安全性是系統設計時所 要著重考慮的問題[34-36]。本文在設計系統時,系統安全考慮如下幾個方面:
    (1)對注冊用戶進行嚴格的身份認證。
    ( 2)遵守相關數據通信協議。
    (3) 科學的進行權限設置。
    (4) 依據用戶權限限制訪問的范圍。
    (5) 確保網絡系統服務連續。
    3.6本章小結
    本章對個人健康信息管理系統進行了充分的需求分析。分析過程中以用戶為中心,充分 考慮用戶使用習慣,明確了系統的實現目標、設計了需要實現的各功能模塊、指出了各部分 工作內容。最后簡要地介紹了系統非功能性的需求,包括可靠性和安全性。
    第四章 個人健康信息管理系統設計
    4.1系統設計原則
    為確保系統的成功建設與可持續發展,在個人健康信息管理系統的設計時需要遵循軟件 系統相關設計原則[37]。設計個人健康信息管理系統時應遵循以下原則:
    (1) 統一設計原則
    從全局出發,從長遠角度考慮,使設計的系統建設結構、數據模型結構、數據存儲結構 均符合軟件系統設計行業規范。
    (2) 可擴展性原則
    個人健康信息管理系統作為一個面向大眾的健康信息管理系統,在系統設計過程中應該 考慮到業務未來的發展需要,盡可能的降低模塊間的耦合度,充分考慮兼容性。
    (3) 實用性原則 在滿足用戶需求的大前提下,盡量降低建設成本,盡量使系統簡單實用、便于維護。
    (4) 開放性原則
    設計開發的系統應采用標準數據接口,使得個人健康信息管理系統能夠和其他信息系統 進行數據交換和共享[38],同時要求系統能夠支持多種硬件設備和網絡系統[39-40]。
    4.2系統整體架構設計
    結合個人健康信息管理系統的需求分析,依據國家衛生部醫療信息系統規范,為保證系 統后期的擴展及維護,本系統采用基于 Java EE 平臺的 MVC 模式開發,從而達到降低應用 程序耦合性的目的。為了有利于系統的開發、維護、部署和擴展,個人健康信息管理系統采 用標準的三層架構,及表示層、業務層和數據層[41],三層之間密切聯系,相互依存。分層的 中心思想是“高內聚、低耦合”,拆分大問題為若干個小問題并逐個解決。
    (1)表示層
    表示層直接與用戶交互,完成數據錄入、數據顯示等與外觀顯示有關的工作。通過表示 層用戶能夠使用瀏覽器對個人健康信息管理系統進行訪問,當用戶身份信息驗證成功后方可 進入業務層,完成各項功能操作。
    (2)業務層
    業務層除了完成一些有效性驗證工作來保證程序運行的健壯性外,還需要對表示層的信 息進行收集、整理、分析和存儲等操作,并關聯表現層和數據層。
    在個人健康信息管理系統中,業務層通過對用戶權限的識別為不同用戶提供不同的功能, 如系統管理人員可以使用系統管理功能,完成對本系統數據庫、用戶組、用戶、角色、模塊 的管理。同時,健康類移動設備的接入,數據格式的轉換,健康數據的統計處理等功能均在 業務層完成。
    ( 3)數據層
    數據層是專門與數據庫進行數據交互的一層,提供數據庫連接、數據庫命令操作、返回 數據等功能。數據層最主要的業務功能是通過響應業務層的 SQL 語句實現數據的讀取和寫 入。在數據層中使用對象模型到數據庫表的映射來實現數據操作,所以設計簡單的數據表結 構便于類屬性和類之間關系的確定[42-43]。對象模型向數據庫表映射應滿足如下規則:
    1.一個對象類映射一張數據庫表。
    2.當類之間有一對多關系時,以類屬性的方式實現,一張數據表不對應多個類。
    3.超類僅提供類共同屬性,不定義父類表。
    4.一張數據表至少應有三個字段。
    分層設計思想的采用明確了個人健康信息管理系統的各個功能結構,不僅能加快系統的 開發進程,還能降低系統的開發維護成本。
    4.3數據庫設計
    4.3.1數據庫的選擇
    數據庫是個人健康信息管理系統的底層基礎,其應用水平的高低直接影響著系統的綜合 表現,本文選用開源關系型數據庫 MySQL 數據庫作為系統開發和運行的數據庫[44-45]。選取 理由如下:
    ( 1)普及性
    權威調查機構 Evans 數據公司最近一項調查顯示, MySQL 過去兩年在數據庫大家庭里已 經獲得了超過25%的市場份額。MySQL數據庫的普及證實了 MySQL是一個可靠的關系型數 據庫系統,無論是在嵌入式系統、大型群集系統,還是在基于 Web 的應用程序領域均是如此。
    ( 2)簡單性
    MySQL數據庫減少了一些使用頻率相對較小的功能,從而降低了 MySQL的維護和管理 難度,這也直接節省了人力成本。MySQL數據庫的普及使得市面上有著大量強大的工具可供 使用,每一個新手都可輕松地使用 MySQL 數據庫完成開發方面或支持方面的工作。
    (3) 低成本
    MySQL 數據庫有一個開源社區版可以免費下載。 MySQL 對硬件的要求較低,在常見的 硬件上就可以輕松實現安裝和配置,所以 MySQL 數據庫可以從硬件配置上減少前期準備的 成本。正如上文所提到的, MySQL 數據庫易學、易用、易管理和維護,所以,使用 MySQL 還可以降低系統開發維護成本。
    (4) 靈活性和擴展性
    MySQL 中有眾多存儲引擎可以選擇,可以依據系統需求選擇最適合的一個,并且可以根 據需要來對其進行性能或大小上的擴展。同時, MySQL 數據庫支持不同后端的多線程 SQL 服務,并提供了如 mysqlclient、obdc 和 jdbc 數據庫連接池等多種鏈接方式[46]。
    4.3.2設計原則和技巧
    (1) 命名符合規范
    命名規則要統一,并進行必要說明。 所有表名都小寫,單詞之間用下劃線分開,單詞都 用單數形式,不使用駝峰式命名[47]。
    (2) 分類拆分數據量大的表
    對于使用頻率較高的表應盡量減少表中的字段個數,從而可以大大提高查詢效率 。例如, 個人健康信息管理系統中的用戶信息表主要用于記錄用戶名和密碼等關鍵的用戶認證信息, 使用十分頻繁,如果把記錄著用戶基本信息和基本健康信息的用戶信息拓展表和用戶信息表 進行合并,雖然可以方便程序的設計與維護,但由于表中數據量太大,會對數據的操作有很 大影響[48]。
    (3) 避免采用自增長主鍵
    在對數據庫做分庫分表操作時,自增長主鍵可能會導致主鍵重復的問題,在對數據庫做 數據庫導入操作時,也可能會因為自增長主鍵出現一些無法導入的情況出現[49-50]。
    (4) 適當的冗余
    數據庫設計需要有前瞻性,考慮未來發展。但也不可過分冗余,過分冗余使數據庫性能
    降低,還可能帶來數據不一致等一系列問題的出現。
    4.3.3 數據庫表設計
    數據模型設計的好壞直接影響著軟件的生命周期。個人健康信息管理系統采用 Power
    Designer 進行了數據庫建模設計[51],健康檔案模塊數據庫概念模型和用戶信息模塊數據庫概
    念模型分別如圖4.1和圖4.2所示。
    醫生
    waruhBLr (40) < varchar (2 9 ) vaichar (39) vaichar (39) vELrchar (29) var char (3S) date
    姓名 學厲 年齡 科室 畢業學校 畢業時間 就職醫隆varchar (29) 評勞導聶varchar (29)
    生活方式
    箱號 varchar (40F<
    體曹霰煉麺率int _
    體曹鍛煉時也int
    隹直霰驟方金varchar (3S) 飲食習慣 varchar (3S)
    毆曲情況 varchar (29)
    日囁煙墾 迪亡
     
    膽務功能
    甘aruhar 陸心 <pk>
    C^fS況 varchar ::29) 運歹ll 情況 varchar (29) 咽部皤況varchar (29) 左眼視力int
    右眼視力
    一般狀況
     
    uhar [4D;」<口舫
     
    病莊關丟
    waruhar (40) 5
    病癥第予 varchar(40) <f 體檢蕭號 varchar (40) <f
    Thar [401) char (40)
    治療建議varchar (2253 備注 varchajr (225)
    箱虧 HBurhBLr 恣弓)
    低檢第號 var char (225)
    住隆惜視箱予varchar (225)
    足背動毬搏動
    肺桶狀.胸 肺呼吸音
    査體
    vajizhar :43.:
    varchar (29) varchar(39) varchar (39) boolean b&olean varchar(39) int varchar (29) varchar (29) varchar (39) varchar t29) varchar(29)
    主豈圧藥情況 鶴毎稱 用法 甲垂 甬藥時間 丟藥依從性
    Haruhar {40〕 var char' (40) varchsLr (40) int date int
    箱號 yBLruhar ISO;1
    體植第弓 var char (40)
    住隆怙視箱號varchar (40)
    婦科外陰 婦科審道 i工•】卄并
    varchar f39) varchar f29) varchar (29) varchar (39) varchar i'39) varchar (29) t no X
    住隆治療情況
    第■=r
    戀日朝
    岀廃日期
    原® 醫療機掏罷稱
    varuhar 陸0】 date date var char (225) varchar f225) varchar(40)
    圖 4.1
    箱-=r
    氧t性卒中 腦出血 姝網膜下腔出血
    後暫性曲云血芨作boolean 其他腦血管疾病 其他腎班疾病 其他心貯疾病 其他眼部疾癘 禪徑丟透疾病 心肌梗死
    varuhELr (40) boo]man boolean b-oclean
    var char (225; var char (2255 varchar (2253 varchar (22 5 J var char (225) bcxjlean b-oclean
    充血性匕力袞竭 心前區疼滿
    其他罷遜疾病
    夾疾動趾魏 動腿閉塞性疾病 其他血管疾病
    bdiolean bcxjlean var char (2253 boolean troolBan b-oclean 丨 agn
    健康檔案模塊數據庫概念模型圖
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
    家験:病史
     
    殘疾類型
    箱 W ¥eli••匸har 恣弓) 名稱 varchar (225: 級別 varchar (225)
    圖 4.2 用戶信息模塊數據庫概念模型圖
    考慮到文章篇幅,此處只給出面向用戶版本的用戶基本信息和健康檔案模塊的數據庫設 計[52]。結合數據庫設計原則,根據系統需求,詳細設計了用戶基本信息模塊和健康檔案模塊 兩個主要模塊的數據表,其中用戶基本信息模塊主要包括用戶信息、用戶信息拓展、病史記 錄、家庭病史、疾病類型、殘疾類型、支付方式等數據表,具體內容如下:
    (1)用戶信息表
    用于存儲全部用戶基本信息資料,包括用戶名和密碼等用于登錄認證的信息(如表 4.1 所 示)。
    表 4.1 用戶信息表
    描述名 字段名 數據類型 是否主鍵
    編號 user id varchar(40)
    用戶名 User n ame varchar(38)
    密碼 password varchar(38)
    郵箱 email varchar(38)
    創建人員 Create by varchar(40)
    創建時間 Create time date
    最近更新時間 Update time date
    最近更新人員 Update by varchar(40)
    用戶狀態 State int
     
     
    (2)用戶信息拓展表
    用于存儲用戶的拓展信息資料,包括血型、病史、過敏原等基本健康類信息(如表 4.2 所 示)。
    表 4.2 用戶信息拓展表
    描述名 字段名 數據類型 是否主鍵
    編號 userI nfo id varchar(40)
    用戶編號 user id varchar(40)
    性別 sex int
    出生日期 birthday date
    身份證號 ID umber varchar(38)
    工作單位 compa ny varchar(225)
    本人電話 teleph one varchar(38)
    聯系人 con tact varchar(38)
    聯系人電話 con tact ph one varchar(38)
    常住類型 type of reside nt varchar(38)
    民 族 eth ni c groups varchar(38)
    血型 blood type int
    文化程度 degree of educati on int
    family n ame varchar(38)
    give n n ame varchar(38)
    戶籍地址 perma nen t address varchar(225)
    現居住址 prese nt address varchar(225)
    職業 occupati on varchar(38)
    婚姻狀況 marital status int
    醫療費用支付方式 mode of payme n varchar(40)
    既往病史 anamn esis varchar(40)
    家族病史 family med history varchar(40)
    遺傳病史 heredity varchar(40)
    殘疾情況 disability int
    ( 3 )病史記錄表
    用于存儲用戶的病史記錄資料,包括疾病類型、確診時間、嚴重程度等重要信息。對于 慢性病和全身性疾病而言,病史記錄十分重要(如表 4.3 所示)。
    表 4.3 病史記錄表
    描述名 字段名 數據類型 是否主鍵
    編號 id varchar(40)
    疾病類型 diseaseId varchar(40)
    確診時間 diag no sis date
    最近治療時間 rece nt_treatme nt date
    嚴重程度 severity varchar(38)
    備注 remarks varchar(225)
     
     
    (4)家族病史表 用于存儲用戶的家族病史資料,包括母親病史、父親病史、子女病史和兄弟姐妹病史信 息,有利于推算用戶或其所生育子女的患病概率(如表4.4所示)。
    表 4.4 家族病史表
    描述名 字段名 數據類型 是否主鍵
    編號 family history id varchar(40)
    母親病史 mother varchar(40)
    父親病史 father varchar(40)
    子女病史 childre n varchar(40)
    兄弟姐妹病史 brothers a nd sisters varchar(40)
    (5)疾病類型表 用于存儲全部疾病類型資料,包括疾病名稱、危險系數、治療建議等信息(如表 4.5 所 示)。
    表 4.5 疾病類型表
    描述名 字段名 數據類型 是否主鍵
    編號 disease id varchar(40)
    名稱 n ame varchar(38)
    分類 classify varchar(40)
    危險系數 coefficie nt int
    治療建議 advice varchar(225)
    備注 remarks varchar(225)
    6)支付方式表
    用于存儲用戶所能夠使用的支付方式,比如:現金、銀行卡、信用卡和網絡銀行等(如 表 4.6 所示)。
    表 4.6 支付方式表
    描述名 字段名 數據類型 是否主鍵
    編號 pay id varchar(40)
    名稱 n ame varchar(40)
    說明鏈接 expla in li nk varchar(225)
    最大額度 max_amo unt int
    備注 remarks varchar(225)
    個人健康信息管理系統有別于其它信息管理類系統,在系統中把血型、病史、殘疾情況、 過敏原記錄等和個人健康息息相關的健康類信息作為用戶基本信息進行管理,極大的方便用 戶了解自身醫療健康信息、降低醫護人員獲取用戶醫療信息的難度。
    個人健康信息管理系統同時擁有PHR的管理功能,系統需要為個人用戶維護基本和完善 的健康檔案信息,健康檔案應該符合國家標準、信息覆蓋全面。在設計健康檔案數據庫表的 過程中,根據系統需求,采用主從拆分的方式把健康檔案分成癥狀、一般狀況、生活方式、 臟器功能、查體、輔助檢查、現存主要健康問題等功能模塊,具體數據表內容如下:
     
    (7)健康檔案表 用于存儲用戶健康檔案信息,健康檔案管理的理想目標是以建檔日期為軸線實現覆蓋個 人全生命周期的健康信息管理(如表 4.7 所示)。
    表 4.7 健康檔案表
    描述名 字段名 數據類型 是否主鍵
    編號 record id varchar(40)
    用戶編號 user id varchar(40)
    建檔日期 create time Date
    責任醫生 doctor id varchar(40)
    癥狀 symptom varchar(40)
    一般狀況 con ditio n id varchar(40)
    生活方式 lifestyle id varchar(40)
    臟器功能 orga n varchar(40)
    查體 physical id varchar(40)
    輔助檢查 accessory id varchar(40)
    中醫體質辨識 TCMCI varchar(225)
    現存主要健康問題 problem id varchar(40)
    住院治療情況 hospital course varchar(40)
    主要用藥情況 drug use varchar(40)
    非免疫規劃預防接種 史 history_of_vaccination varchar(225)
    健康評價 health evaluati on varchar(225)
    健康指導 health guida nee varchar(225)
    8)一般狀況表
     
    用于存儲用戶基本生理健康信息,包括體溫、脈率、血壓等較能快速反應健康情況的數
    據,對于緊急就診的用戶有較大的使用價值(如表 4.8 所示)。
    表 4.8 一般狀況表
    描述名 字段名 數據類型 是否主鍵
    編號 con ditio n id varchar(40)
    體溫 temperature int
    脈率 pulse rate int
    呼吸頻率 breath in g rate int
    血壓左側 feft blood pressure int
    血壓右側 right blood pressure int
    身高 heigth int
    體重 weight int
    腰圍 waist int
    體質指數 con stituti on int
    臀圍 hipli ne int
    腰臀圍比值 waist to hip ratio int
    老年人認知功能 cog nitive varchar(38)
    老年人情感狀態 emoti on al state varchar(38)
     
     
    (9)生活方式表
    用于存儲用戶生活方式信息,包括身體體育情況、飲食習慣、吸煙情況和飲酒情況等, 對身體健康有較為直接影響的生活習慣,對用戶的健康評估和建議有一定參考價值(如表4.9 所示)。
    表 4.9 生活方式表
    描述名 字段名 數據類型 是否主鍵
    編號 lifestyle id varchar(40)
    體育鍛煉頻率 exerci se frequ ency int
    體育鍛煉時長 exercise time int
    體育鍛煉方式 exercise type varchar(38)
    飲食習慣 eati ng habits varchar(38)
    吸煙情況 smoki ng status varchar(38)
    日吸煙量 daily smok ing int
    開始吸煙時間 start smok in g time date
    戒煙時間 quit smoki ng time date
    飲酒頻率 dri nkin g freque ncy int
    日飲酒量 daily dr in k volume int
    開始飲酒時間 start dr inkin g time date
    飲酒種類 type of w ine varchar(38)
    戒酒時間 abst inen ce time date
    職業暴露情況 expose varchar(38)
    職業暴露毒物種類 pois on varchar(38)
    10)現存主要健康問題表
    用于存儲用戶現存主要健康問題,包括腎臟疾病、心臟疾病、眼部疾病、血管疾病等較 為常見的內科疾病(如表4.10所示)。
    表 4.10 現存主要健康問題表
    描述名 字段名 數據類型 是否主鍵
    編號 problem id varchar(40)
    缺血性卒中 ischemic stroke boolea n
    腦出血 en cephalorrhagia boolea n
    蛛網膜下腔出血 sub hemorrhage boolea n
    短暫性腦缺血發作 tra n ischemic boolea n
    其他腦血管疾病 other cerebr diseases varchar(225)
    其他腎臟疾病 other re nal diseases varchar(225)
    其他心臟疾病 other heart diseases varchar(225)
    其他眼部疾病 other ocular diseases varchar(225)
    神經系統疾病 n er system disease boolea n
    心肌梗死 myocardial i nfarcti on boolea n
    心絞痛 angin a pectoris boolea n
    冠狀動脈血運重建 cor revascularizati on boolea n
    充血性心力衰竭 con gestive heartFailure boolea n
     
    南京郵電大學專業學位碩士研究生學位論文 第四章 個人健康信息管理系統設計
    心前區疼痛 precordialgia boolea n
    其他系統疾病 other_systemic_disease
    s varchar(225)
    夾層動脈瘤 dissecting aneurysm boolea n
    動脈閉塞性疾病 arterial occlusive boolea n
    其他血管疾病 other vascular disease boolea n
    慢性腎炎 chronic nephritis boolea n
    視網膜出血或滲出 RH boolea n
    視乳頭水腫 choked disc boolea n
    白內障 cataract boolea n
    急性腎炎 croupous nephritis boolea n
    腎功能衰竭 renal failure boolea n
    糖尿病腎病 diabetic nephropathy boolea n
    ( 11)查體記錄表 用于存儲用戶體檢查體情況,包括皮膚、鞏膜、肺部、心臟等重要部位的檢查情況(如 表 4.11 所示)。
    表 4.11 查體記錄表
    描述名 字段名 數據類型 是否主鍵
    編號 physical id varchar(40)
    皮膚 ski n varchar(38)
    鞏膜 sclera varchar(38)
    淋巴結 lymph gla nd varchar(38)
    肺桶狀胸 barrel chest boolea n
    肺呼吸音 pulm on ary respirati on boolea n
    肺羅音 pulm on ary ales varchar(38)
    心臟心率 hart rate int
    心臟雜音 crdiac sffle varchar(38)
    腹部壓痛 abdom in al te nder ness varchar(38)
    腹部包塊 abdomi nal mass varchar(38)
    腹部肝大 hepatomegaly varchar(38)
    腹部脾大 sple nomegaly varchar(38)
    腹部移動性濁音 shift in g dull ness varchar(38)
    下肢水腫 edema_of_lower_extremit
    y varchar(38)
    足背動脈搏動 dorsalis pedis varchar(38)
    肛門指診 digtal exam varchar(38)
    乳腺 breast varchar(38)
    婦科外陰 vulva varchar(38)
    婦科陰道 vag ina varchar(38)
    婦科宮頸 cervical varchar(38)
    婦科宮體 palace varchar(38)
    婦科附件 en closure varchar(38)
    其他 other varchar(225)
     
     
    南京郵電大學專業學位碩士研究生學位論文 第四章個 人健康信息管理系統設計
    備注 remarks varchar(225)
     
    (12)主治醫生表 用于存儲主治醫生資料,包括科室、畢業學校、就職醫院、學歷等信息(如表 4.12 所示)。
    表 4.12 主治醫生表
    描述名 字段名 數據類型 是否主鍵
    編號 doctor id varchar(40)
    姓名 n ame varchar(38)
    學歷 educati on varchar(38)
    年齡 age varchar(38)
    科室 departme nt varchar(38)
    畢業學校 graduate school varchar(38)
    畢業時間 graduate time date
    就職醫院 hospital varchar(38)
    評分等級 grade varchar(38)
    備注 remarks varchar(38)
    (13)查體記錄表 用于存儲用戶臟器功能情況,包括口唇、齒列、咽部、聽力等檢查情況(如表 4.13 所示)。
    表 4.13 臟器功能表
    描述名 字段名 數據類型 是否主鍵
    編號 orga n id varchar(40)
    口唇情況 lips varchar(38)
    齒列情況 den titi on varchar(38)
    咽部情況 pharynx varchar(38)
    左眼視力 left visio n int
    右眼視力 right visio n int
    聽力情況 hear ing boolea n
    運動功能情況 motor varchar(38)
     
    4.4系統模塊設計
    4.4.1用戶登錄模塊
    用戶登錄模塊為用戶提供進入系統的端口,用戶的角色在登錄模塊中自動進行識別。根 據角色類型不同,用戶會進入不同的頁面,使用不同的功能模塊。為提高了系統的安全性, 同一賬號和密碼在同一時間只能有一個用戶登陸該系統[53]。用戶登錄系統時序圖如圖 4.3 所 示。
     
    8.發起獲取請求一
    《-9.返回數據響應--
    n
    10•驗證用戶注冊信息丨
    11.發起存儲請求一
    ^---12,操作響應---
    圖 4.3 用戶登錄系統時序圖
    個人健康信息管理系統的用戶登錄模塊還提供用戶注冊功能,初次登錄用戶選擇注冊選 項后跳轉至注冊頁面,需將用戶名稱、用戶真實姓名、身份證號、郵箱、以及其它個人基本 信息等錄入系統中。業務層會判斷用戶注冊信息完整性,并與之前的用戶名對比,確保用戶 名的唯一性。經后臺管理員的審核后,用戶將會收到來自后臺的用戶信息確認郵件,及賬號 密碼,用戶可使用已經擁有的用戶名和密碼進入系統[54]。
    圖 4.4 登錄處理流程圖
    如圖 4.4 所示,用戶登錄流程分為兩部分:
     
    (1) 用戶在登錄頁面提交用戶名和密碼進行系統登錄,系統對用戶名和密碼同數據庫進 行比對驗證,審核成功后用戶直接進入個人健康信息管理系統的個人頁面,同時在系統業務 層中主動生成token,并把用戶信息保存起來,當前會話標記為“已授權”的狀態。
    (2) 當用戶每次請求受保護資源時都會檢查會話對象中的登錄狀態,只有“已授權”會話 才能訪問,如果會話驗證成功則返回請求頁面,否則跳轉到用戶登錄界面。
    4.4.2系統管理模塊
    對個人健康信息管理系統中的系統管理功能模塊進一步細分設置了用戶安全性管理和系 統安全性管理,其中用戶安全性管理包括用戶組管理,用戶管理,角色管理,模塊管理等子 模塊,角色的權限分配和用戶的角色分配分別在角色管理和用戶管理中實現。系統數據安全 性管理包括系統備份、系統恢復、日志管理等子模塊。下面從用戶安全性管理和系統數據安 全性管理兩方面介紹系統管理模塊的總體設計情況[55]。
    ( 1)用戶安全性管理
    用戶安全性管理最為關鍵的作用就是用戶管理及權限設置。用戶管理主要實現用戶注冊 信息審核,用戶基礎信息維護,如添加用戶、刪除用戶、用戶修改密碼等。用戶注冊信息審 核時序圖如圖 4.5 所示。
     
     
    當用戶提交注冊信息后,系統業務層對信息進行初步檢查,包括基本信息的格式是否正 確,用戶名、手機號碼、郵箱信息和身份證號是否和已注冊用戶重復。通過系統檢查的用戶 信息會保存到待審核用戶列表,等待系統管理員進行人工審核。通過人工審核后,系統會通 過郵件發送模塊向用戶發送一封郵件并附帶用戶的初始密碼,用戶可使用已經擁有的用戶名 和密碼進入系統。系統檢查加人工審核的雙重檢驗在一定程度上保證了用戶信息和系統的安 全性。
    權限設置主要實現用戶權限的管理、權限設置開發設計過程中使用基于角色的訪問控制 (Role-Based Access Control, RBAC)的思想,用戶通過使用角色與權限進行關聯,構造成"用 戶-角色-權限”的授權模型。當用戶量大到一定程度時,給系統每位用戶逐一授權是一件非常 大的工程。為減少工作量,通過把用戶進行分組,再給用戶組授權,這樣一來,用戶同時還 擁有所在用戶組的權限。權限設置主要包括用戶組權限分配、角色的權限分配和用戶的角色 分配等功能,權限設置時序圖如圖 4.6 所示。
    1.管理用戶組一>1
    -2•用戶組添加用戶I
     
    < 3•返回,
    —4.用戶組添加權限一
    -5.返回--
    6.存儲用戶組信息
    7.返回 --
    8•管理用戶
    —9.用戶添加角色
    10.角色添加權限
     
    一13 .存儲用戶信息T
    14.返回
    圖 4.6 權限設置時序圖
    (2)系統數據安全性管理
    系統管理員作為個人健康信息管理系統的維護人員需要定期對系統的數據庫數據進行備 份,保障數據安全。系統管理員進入個人健康信息管理系統的系統管理模塊后點擊"數據備份 "選項,完成對系統全部數據庫的備份工作,當然系統管理員也可以根據時間、數據類型等選 擇需要備份的數據表完成備份工作。個人健康信息管理系統提供數據庫備份文件列表,方便 系統管理員查看已備份數據,同時可以對已備份數據進行恢復操作。系統管理員通過個人健 康信息管理系統的日志管理功能可以查看到所有用戶操作歷史,根據用戶操作歷史進行違規
    操作篩選,以此排查違規人員,并對違規人員進行封號處理,保證系統的安全性和數據的安 全性。系統管理員可對日志進行刪除、備份和查詢等操作,實現對日志的管理。該子模塊的 流程圖、時序圖與系統用戶安全性管理的子模塊類似,基于篇幅考慮,在此不再贅述。
    4.4.3信息管理模塊
    信息管理功能是用戶直接使用的功能模塊,主要包括個人檔案管理、健康數據管理、健 康服務管理三大功能模塊。
    個人檔案管理主要包括就診報告和健康檔案兩種檔案管理分類,其中就診報告以文件管 理的形式管理用戶的就診信息記錄,如就診醫院信息、科室信息、醫務人員信息、檢查報告 等。個人健康信息管理系統作為一個 PHR 的管理平臺需要為個人用戶維護最基本和完善的健 康檔案信息。健康檔案應該符合國家標準、信息覆蓋全面、實現全生命的特性管理[56],健康 檔案管理時序圖如圖 4.7 所示。
     
     
     
    7•數據校驗
     
     
    12.發起獲取請求
    13.返回數據響應
    圖 4.7 健康檔案管理時序圖
    健康檔案以檔案建立時間為軸線進行排序展示,用戶選取需要打印的健康檔案進行打印 操作后,系統對打印機運行狀態進行判斷,打印機運行正常則進行健康檔案打印操作,否則 以 pdf 文件格式進行文件下載操作。
    健康數據管理模塊主要實現對個人體征數據、心血管數據和其它相關健康數據進行分類 管理。個人體征數據和心血管數據擁有數據測量技術相對成熟、數據變化相對穩定、數據異 常對身體健康影響比較嚴重等共同特征,被廣泛應用于健康檢查和慢性疾病的預防。
    除了健康信息管理幾個核心功能外,個人健康信息管理系統還為用戶提供周到細致的健 康服務[57-58]。例如:醫療保健知識科普、就診信息推薦 、個人健康信息共享、投訴與建議, 個人健康信息共享時序圖如圖 4.8 所示。
    用戶 健康信息列表 醫護人員 數據庫
     
     
     
    用戶進入個人健康信息管理系統的信息管理模塊點擊信息共享功能按鈕后,進入可共享 健康信息列表,可共享健康信息列表羅列了包括用戶基本信息,用戶健康檔案,就診報告和 體征類健康數據在內的多種可共享健康信息。用戶選取需要共享的健康數據信息后,系統提 供可供選擇醫護人員列表,用戶選取一名或多名醫護人員點擊保存便可完成個人健康信息共 享操作。
    4.5本章小結
    在本章中,為了確保個人健康信息管理系統的成功建設與可持續發展,論文明確了系統 設計過程中需要遵循的相關設計原則,并采用分層的思想對系統整體架構進行了設計。緊接 著進行了系統數據庫設計,說明了數據庫選擇的理由,指出了數據庫表設計過程中需要遵循 的原則,并對健康檔案和用戶信息兩大核心模塊進行了詳細的數據庫表設計。最后,對用戶 登錄、系統管理和信息管理三大功能模塊進行了詳細的功能設計,給出了處理流程及其各功 能的時序圖,便于直觀地了解對象間行為依賴關系,加快開發進程。
    第五章 個人健康信息管理系統實現與測試
    5」開發框架選擇與集成
    基于Java EE平臺的個人健康信息管理系統采用B/S結構,同時選用SSH集成框架進 行開發實現 [59]。 SSH 是 Struts, Spring 和 Hibernate 三個開源框架名稱首字母的縮寫, SSH 集成框架能夠簡化開發流程,縮短開發周期,是目前較為主流的 WEB 應用程序開發框架。其 中Struts是一種實現了 MVC模式的開源框架,模型(Model)由實現業務邏輯的Java Bean 組件構成,視圖(View)由一組JSP文件組成,控制器(Contro 1)主要由Action Servlet與 Action 共同完成。 Struts 用以聯系各層應用組件,降低耦合度,提高程序的可維護性和擴展 性, Struts 的基本原理如圖 5.1 所示。
     
    圖 5.1 Struts 的基本原理圖
    Spring 是為了解決企業應用程序開發復雜性而創建的開源框架。 Spring 只需基本的 Java Bean 即可達成系統開發目標。 Spring 重點是在多層方案的融合上,這個特點使得利用 spring 開發的應用各層之間的一致性相對較高。
    Hibernate是一款對JDBC做了輕量封裝的開源持久化框架。Hibernate采用ORM映射 機制,實現對象和數據庫之間的映射,把數據庫結果封裝成對象o Hibernate用對象操作數據, 避免了數據庫間差異造成的不利后果,提高了開發效率。SSH訪問執行流程如圖5.2所示。
     
     
    圖 5.2 訪問執行流程圖
    Jsp頁面觸發一個action交給Struts處理oStruts在struts.xml配置文件中找到響應的action 交給Spring,Spring讀取容器的配置文件applicationContext.xml,找到對應類,由Spring容器 依賴注入。執行結果會在action對應的方法中以字符串的形式給出。然后Strut會根據配置文 件中的result找到下一步要執行的動作,是跳轉到頁面顯示還是繼續交給其他的action處理。
    同時為了避免系統交互界面與業務邏輯混在一起,系統開發過程中還大量使用了 JavaScript與Ajax技術和輕量級數據交換格式JSON實現了頁面的動態加載。無刷新動態顯 示技術可以提高頁面響應速度,縮減用戶等待的時間,請求流程如圖5.3所示。
     
    圖 5.3 Ajax Web 應用請求流程
    5.2系統基礎功能實現
    5.2.1登錄功能實現
    系統登錄界面如圖5.4所示。
    個人健康信息管理系統
    登錄 注冊
    密碼:
    請輸入用戶名和密碼
    圖 5.4 系統登錄界面
    ( 1 ) 功能描述
    登錄功能提供用戶登錄的入口,是進入系統首頁的唯一方式,僅有通過登錄驗證的用戶 才可以使用系統。登錄界面還為新用戶提供了注冊功能入口。
    ( 2) 業務流程
    用戶進入系統登錄界面后,會看到“請輸入用戶名和密碼”提示。用戶在登錄頁面提交 用戶名和密碼,系統對用戶名和密碼同數據庫進行比對驗證,驗證成功后用戶直接進入個人 健康信息管理系統的個人頁面,同時在系統業務層中主動生成token,并把用戶信息保存起來, 當前會話標記為“已授權”的狀態。驗證失敗則給予“對不起,用戶名或密碼錯誤”的提示。
    ( 3) 主要程序實現
    public String login() throws Exception {
    Subject subject = SecurityUtils.getSubject();
    if (!subject.isAuthenticated()) {
    try {
    if (UtilFuns.isEmpty(username)) {
    request.put("errorInfo", "請輸入用戶名和密碼");
    return "login";
    }
    UsernamePasswordToken t = new
    UsernamePasswordToken(usern, passw); token.setRememberMe(true);
    subject.login(t);
    User u = (User) subject.getPrincipal(); super.push(u);
    session.put(SysC.C_U_INFO, u);
    } catch (Exception e) { request.put("errorInformation ", "對不起,用戶名或密碼錯誤"); return "login";
    }
    }
    return SUCCESS;
    }
    (4) 實現說明
    登錄功能實現過程中使用了 Shiro提供的RememberMe功能,實現了同一用戶在登錄后, 下次訪問時無需再登錄即可訪問。在判斷沒有登錄記錄的情況下,對用戶提交的用戶名和密 碼進行驗證,同樣使用了 Shiro 提供的 Authentication 功能,驗證失敗則向前臺發送驗證失敗 信息。
    5.2.2注冊功能實現
    系統注冊界面圖5.5所示。
     
     
    1) 功能描述
    注冊功能是新用戶申請系統用戶名和密碼的方式之一,通過注冊的用戶會獲得系統的用 戶名和密碼,從而可以登錄系統首頁,完成相關操作。
    (2) 業務流程
    用戶進入系統注冊界面后,會看到“請如實填寫下列信息”提示。當用戶填寫并提交注 冊信息后,系統業務層會對信息進行初步檢查,包括基本信息的格式正確性,用戶名、手機 號碼、郵箱信息、身份證號是否和已注冊用戶重復。通過系統檢查的用戶信息會保存到待審 核用戶列表,等待系統管理員進行人工審核。
    (3)主要程序實現
    public String signUpSave() throws Exception { boolean flag = checkInfo();
    if (flag) { saveFile(); model.setState(0); userService.saveOrUpdate(model); return "logout";
    } else {
    return "signUp";
    }
    }
    private void saveFile() throws IOException { imageName = UUID. randomUUID() + imageName; ServletContext servletContext = (ServletContext) ActionContext.getContext() .get(ServletActionContext.SERVLET_CONTEXT);
    String path = servletContext.getRealPath("/"); path = path + "image";
    model.getUserinfoC().setiDAddress("/" + "image" + "/" + imageName);
    File file = new File(realPath);
    if (!file.exists()) { file.mkdir();
    } OutputStream outputStream = new FileOutputStream(new File(path, imageName)); InputStream inputStream = new FileInputStream(image);
    byte[] buf = new byte[2048]; int l = 0;
    while (-1 != (l = is.read(buf))) { os.write(buf, 0, l);
    } inputStream.close(); outputStream.close();
    }
    ( 4) 實現說明 用戶信息數據庫表在創建時把用戶名、手機號碼、郵箱信息和身份證號都設置為唯一索 引,但仍需在信息存儲前進行唯一性判斷,確保用戶信息的唯一性,加強用戶信息的安全性。
    5.3系統管理功能實現
     
     
    5.3.1用戶組管理功能實現
    用戶組管理功能界面如圖5.7所示。
     
    圖 5.7 用戶組管理功能界面
    (1) 功能描述
    用戶組管理包括用戶組的查看、新增、修改、刪除和用戶五項子功能。用戶組主要作用 是通過把用戶組和權限進行關聯、把用戶和用戶組進行關聯從而實現用戶與權限間的批量處 理。
    (2) 業務流程
    系統管理員進入系統用戶組管理功能界面后,會看到查看、新增、修改、刪除和用戶五 項子功能選擇按鍵及已建立的用戶組列表。系統管理員在用戶組列表中選擇用戶組,可對其 進行修改、刪除、用戶分配和權限分配等操作。在系統擴展需要時,系統管理員還可以建立 全新的用戶組,更加細致的實現用戶權限的批量處理。
    (3) 主要程序實現
    public String list() throws Exception { groupService.findPage("from Group", page, Group.class, null); page.setUrl("groupAction_list");
    super.push(page);
    return "list";
    }
    public String insert() throws Exception { if(UtilFuns.isEmpty(model.getParent().getId())){ model.setParent(null);
    } groupService.saveOrUpdate(model);
    return "alist";
    }
    public String update() throws Exception {
    Group group = groupService.get(Group.class, model.getId());
    if(UtilFuns.isEmpty(model.getParent().getId())){
    group.setParent(null);
    }else{
    group.setParent(model.getParent());
    }
    group.setGroupName(model.getGroupName());
    groupService.saveOrUpdate(group);
    return "alist";
    }
    (4)實現說明 用戶組管理功能實現過程中采用上級用戶組中的用戶擁有下級用戶組中用戶所有權限的 級別管理方式,該級別管理方式進一步簡化了用戶權限的處理工作。
    5.3.2用戶管理功能實現
     
     
     
     
     
     
     
    圖 5.10 用戶審核界面
    (1)功能描述
    用戶管理功能模塊包括用戶的審核、新增、修改、停用、角色分配五項子功能。些外, 系統會把通過系統檢查的用戶信息保存到待審核用戶列表中,等待系統管理員對注冊用戶身 份信息和證件信息匹配情況進行審核。
    (2)業務流程
    系統管理員進入系統用戶管理功能界面后,會看到審核、新增、修改、角色和停用五項 子功能選擇按鍵及已通過審核的用戶列表。系統管理員在用戶列表中選擇用戶,可對其進行 修改、停用、角色分配等操作。系統管理員通過審核按鈕進入待審核用戶列表后,可以選擇 一名用戶并對該用戶身份信息和證件信息匹配情況進行人工審核。
    (3)主要程序實現
    public String update() throws Exception {
    User user = userServiceImpl.get(User.class, model.getId());
    Dept dept = deptService.get(Dept.class, model.getDept().getId()); user.setDept(dept);
    user.setUserName(model.getUserName()); user.setState(model.getState());
    if(null==user.getUserinfoC()){
    UserinfoC userinfoC = new UserinfoC(); userinfoC.setId(user.getId());
    user.setUserinfoC(userinfoC);
    } userServiceImpl.saveOrUpdate(user);
    return "alist";
    }
    public String torole() throws Exception {
    User user = userServiceImpl.get(User.class, model.getId());
    super.push(user);
    List<Role> lists = roleServiceImpl.find("from Role", Role.class, null); ActionContext. getContext ().put("roleList", lists);
    // 頁面上有一個字符串來判斷當前用戶的角色,因此拼接一個字符串 StringBuilder sbString = new StringBuilder();
    Set<Role> roles = user.getRoles();
    for (Role role : roles) { sbString.append(role.getName()).append(",");
    }
    ActionContext. getContext ().put("userRoleStr", sbString); return "torole";
    }
    (4)實現說明 用戶管理功能模塊實現過程中,新注冊用戶通過人工審核后,系統會通過郵件發送模塊 向用戶發送一封郵件并附帶用戶的初始密碼,用戶可使用已經擁有的用戶名和密碼進入系統。 郵件發送采用全新的線程,避免郵件發送過程中因網絡或郵件服務器延遲造成的用戶界面響 應緩慢問題的出現。
    5.3.3角色管理功能實現
    角色管理功能界面如圖 5.11 所示。
     
     
     
    圖 5.11 角色管理界面
     
    圖 5.12 角色權限配置界面
     
    1) 功能描述
    角色管理包括角色的查看、新增、修改、刪除和權限五項子功能,主要對系統角色進行
    管理。些外,系統管理員還可以在權限配置功能內完成角色與權限的關聯。
    (2) 業務流程
    系統管理員進入角色管理功能界面后,會看到查看、新增、修改、刪除和權限五項子功
    能選擇按鍵及已建立的角色列表。系統管理員在角色列表中選擇角色,可對其進行查看、修
    改、刪除和權限配置等操作。系統管理員選擇一個角色進入其相應的權限配置界面,對角色 配置相關模塊從而完成“用戶-角色-權限”的授權模型,擁有某個模塊權限的用戶即可對該模塊 進行訪問操作。
    (3) 主要程序實現
    public void roleModuleJsonStr() throws Exception {
    Role role = roleService.get(Role.class, model.getId());
    Set<Module> moduleList = role.getModules();
    List<Module> allModuleList = moduleService.find("from Module", Module.class, null); int size = allModuleList.size();
    StringBuilder sb = new StringBuilder(); sb.append("[");
    for (Module module : allModuleList) {
    size--; sb.append("{\"id\":\"").append(module.getId()); sb.append("\",\"pId\":\"").append(module.getParentId()); sb.append("\",\"name\":\"").append(module.getName()); sb.append("\",\"checked\":\"");
    if (moduleList.contains(module)) {
    sb.append("true");
    } else {
    sb.append("false");
    } sb.append("\"}");
    if (size > 0) { sb.append(",");
    }
    } sb.append("]");
    System. out .println(sb.toString());
    HttpServletResponse response = ServletActionContext.getResponse(); response.setContentType("application/json;charset=UTF-8"); response.setHeader("Cache-Control", "no-cache"); response.getWriter().write(sb.toString());
    }
    (4)實現說明 權限配置開發設計過程中使用基于角色的權限訪問控制的思想。用戶通過角色與權限關 聯,構造成“用戶-角色-權限”的授權模型。訪問權限的控制交由 Shiro 提供的 Authorization 和
    Caching完成,Caching緩存用戶、角色和權限信息,使得訪問獲取這些信息時不用每次都去 數據庫獲取,減小數據庫壓力。模塊關系以樹形結構呈現,直觀明了,方便用戶操作。
    5.4信息管理功能實現
    信息管理功能介紹界面如圖 5.13 所示。
    圖 5.13 信息管理功能介紹界面
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
    5.4.1就診報告管理
    就診報告管理界面如圖 5.14 所示。
    圖 5.14 就診報告管理界面
     
    2017-10-30 10:20:00.0
     
     
     
     
     
     
     
     
     
     
     
     
     
    個人健康信息管理系統
    1) 功能描述
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
    就診報告管理包括記錄的查看、新增、修改、刪除、打印和導入六項子功能,主要記錄
    就診過程產生的報告。記錄信息包括就診時間、就診醫院、就診科室、就診過程中檢查的項 目以及其產生的報告等。
    (2) 業務流程
    用戶進入就診報告管理功能界面后,會看到查看、新增、修改、刪除、打印和導入六項
    子功能選擇按鍵及已建立的就診記錄列表。就診記錄列表以就診時間倒序排列,方便用戶更 直觀的查找就診記錄執行查看或打印操作。用戶在就診記錄列表中選擇記錄,可對其進行查
    看、修改、刪除和打印等操作。用戶選擇一條就診記錄點擊查看功能按鈕,可以進入就診報 告列表頁面,頁面包括返回、查看、新增、修改、刪除、打印和導入六項子功能及已記錄的
    就診報告列表。選擇其中一條報告就可以查看報告詳情,如果檢查報告有異常項目,系統會 以醒目的紅色進行標記提醒。
     
    (3) 主要程序實現
    public String list() throws Exception {
    User curUser = (User)session.get(SysConstant.CURRENT_USER_INFO);
    medicalService.findPage("from Medical WHERE user = ?",
    page, Medical.class, new Object[]{curUser});
    page.setUrl("medicalAction_list");
    super.push(page);
    return "list";
    }
    public String toView() throws Exception {
    Medical medical = medicalService.get(Medical.class, model.getId());
    Set<Report> reportList = medical.getReports();
    ActionContext.getContext().put("reportList", reportList);
    return "toView";
    }
    ( 4) 實現說明
    系統設計開發過程中以文件管理的形式管理用戶的就診信息記錄,充分發揮文件管理方 式的優勢使就診報告條例清晰、查看方便。用戶選取需要打印的就診報告進行打印操作后, 系統對打印機運行狀態進行判斷,打印機運行正常則進行就診報告的打印操作,否則以 pdf 文 件格式進行文件下載操作,批量打印則以壓縮文件的形式提供下載。
    5.4.2體征數據管理
     
     
    圖 5.18 體重數值圖形界面
    1) 功能描述
     
    體征數據管理包括體征的查看、新增、修改、刪除和圖形五項子功能,主要實現體征數
    據的記錄及體征數據圖形化的展示。用戶可以添加比較關心的體征做數值記錄,系統會為用 戶生成體征數據的圖形,方便用戶了解在指定時間內自身身體特征的變化情況。
    (2) 業務流程
    用戶進入體征數據功能界面后,會看到查看、新增、修改、刪除和圖形五項子功能選擇 按鍵及用戶已經建立的體征列表。體征列表記錄著體征的名稱、單位、最近值以及更新時間, 方便用戶更直觀的了解體征數據記錄的情況。用戶通過選擇需要查看的體征數據記錄,進入 相應的數據記錄列表,可以對數據記錄進行操作,比如:異常數據的修改、補充數據、重復 數據刪除等。用戶通過選擇需要圖形化展示的體征數據記錄,查看相應的數值圖形。
    (3) 主要程序實現
    public String list() throws Exception {
    User curUser = (User) session.get(SysConstant. CURRENT_USER_INFO);
    if (UtilFuns. isEmpty(signID)) {
    signService.findPage("from Sign WHERE user = ? AND state=0",
    page, Sign.class, new Object]] { curUser });
    } else {
    Sign sign = signService.get(Sign.class, signID);
    if (sign.getState() == 1) { signService.findPage("from Sign WHERE user = ? AND state=1", page, Sign.class,
    new Object[] { curUser });
    } else if (sign.getState() == 0) { signService.findPage("from Sign WHERE user = ? AND state=0", page, Sign.class,
    new Object[] { curUser });
    }
    page.setUrl("SignAction_list");
    super.push(page);
    return "list";
    }
    ( 4) 實現說明
    系統設計開發過程中,考慮到體征數據多以單一值為主,采用折線圖進行圖形展示。因 為體征數據量相對較大,為了降低數據傳輸的數量,提高頁面響應速度,減輕服務器的負載, 故采用輕量級數據交換格式 JSON 進行數據的傳輸。
    5.4.3心血管數據管理
    心血管數據管理界面如圖 5.19 所示。
     
    圖 5.19 心血管數據管理界面
     
     
    圖 5.20 心率數值圖形界面
     
     
    圖 5.21 血壓數值圖形界面
    (1 ) 功能描述
    心血管數據管理同體征數據管理一樣包括查看、新增、修改、刪除和圖形五項子功能, 主要實現心血管數據的記錄及心血管數據圖形化的展示。同樣,用戶可以添加目前可以容易 獲取的心血管數值記錄,系統會依據心血管數據特征為用戶生成不同的心血管數據圖形。
    (2)業務流程
    用戶進入心血管數據功能界面后,會看到查看、新增、修改、刪除和圖形五項子功能選 擇按鍵及用戶已經建立的心血管選項列表。心血管列表記錄著最新數值以及更新時間,時刻 提醒著用戶當前心血管健康狀況。用戶通過選擇需要查看的心血管數據記錄,進入相應的數 據記錄列表,可以對數據記錄進行異常數據修改、空缺數據補充、重復數據刪除等操作,進 一步保證記錄數據的準確性。用戶可通過選擇需要圖形化展示的心血管數據記錄,查看相應 的數值圖形。
    (3)主要程序實現
    private void toBloodViewLine(Sign sign) throws Exception {
    super.push(sign);
    List<SignValue> signValueList =
    signValueService.find("from SignValue where sign = ? ", SignValue.class,
    new Object]] { sign });
    Collections.sort(signValueList, new Comparator<SignValue>() {
    @Override
    public int compare(SignValue o1, SignValue o2) {
    return o1.getTime().compareTo(o2.getTime());
    }
    });
    ;
    StringBuilder sb = new StringBuilder();
    Integer max = -1;
    Integer min = 1000000;
    if (null != signValueList && signValueList.size() > 0) {
    int size = signValueList.size();
    sb.append("[");
    for (SignValue s : signValueList) {
    size--;
    sb.append("{\"date\":\"").append(s.getTime());
    if (s.getMaxValue() > max) {
    max = s.getMaxValue();
    }
    if (s.getMinValue() < min) {
    min = s.getMinValue();
    }
    sb.append("\",\"maxValue\":").append(s.getMaxValue()); sb.append(",\"minValue\":").append(s.getMinValue());
    sb.append("}");
    if (size > 0) {
    sb.append(",");
    }
    }
    sb.append("]");
    }
    max = (int) (Math. ceil(max / 10.0) * 10);
    min = (int) (Math. floor(min / 10.0) * 10);
    System.out.println(sb.toString());
    ActionContext.getContext().put("result", sb.toString());
    ActionContext.getContext().put("max", max);
    ActionContext.getContext().put("min", min);
    }
    ( 4) 實現說明
    系統設計開發過程中,考慮到心血管數值種類豐富,采用單一折線圖進行圖形展示不再 可行,所以心血管數據采用多種圖形化展示方法,依據不同的心血管數值特點選擇不同的圖 形化展示方法,比如雙拆線圖展示的血壓數據圖形和矩形圖展示的心率數據圖形。心血管數 據圖形化展示同樣采用輕量級數據交換格式 JSON 進行數據的傳輸。
    5.4.4 其他功能界面
    圖 5.22 健康檔案管理界面
    圖 5.23 用戶信息共享授權界面
    圖 5.24 健康知識科普界面
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
    5.5系統測試
    測試環境如下表 5.1 所示。
    表 5.1 測試環境
    測試環境 應用服務器 數據庫服務器 客戶端
    CPU Intel 至強 L5520 Intel 至強 L5520 Intel(R) CoreTM i5-3210
    內存 金士頓2G 金士頓2G 金士頓8G
    操作系統 Cen tOS-6.5 Ce ntOS-6.5 Win dows 10
    中間件 Apache Tomcat 7.0.79 - -
    數據庫 - MySQL 5.5.28 -
    5.5.1功能測試
    系統實現后,首先進行系統功能性測試,測試結果表明該個人健康信息管理系統能滿足
    個人健康信息管理的需要。主要測試用例如表 5.2 所示。
    表 5.2 個人健康信息管理系統測試用例列表
    測試項目 測試輸入 測試輸出 測試結果 備注
    系統注冊 輸入合法數據項 注冊成功 注冊成功 正常
    系統注冊 輸入數據至少一項非法 注冊失敗! 注冊失敗 正常
    系統登錄 合法用戶名、密碼 登錄成功 登錄成功 正常
    系統登錄 用戶名、密碼至少一項 非法 登錄失敗,請檢查輸 入信息正確性! 登錄失敗 正常
    用戶審核 用戶信息合法 審核成功 審核成功 正常
    用戶組管理 對用戶組進行增刪改查 操作 數據庫中用戶組數據 做相應更改 功能正常 正常
    用戶組權限配置 對用戶組進行權限配置 用戶組中所有用戶擁 有相應權限 權限配置成 功 正常
    用戶管理 對用戶進行增刪改查操 作 數據庫中用戶數據做 相應更改 功能正常 正常
    用戶角色配置 對用戶進行角色配置 用戶擁有相應角色 角色配置成 功 正常
    角色權限配置 對角色進行權限配置 用戶擁有相應權限 權限配置成 功 正常
    就診報告管理 對就診報告進行增刪改 查操作 數據庫中就診報告數 據做相應更改 功能正常 正常
    體征數據管理 對體征數據進行增刪改 查操作 數據庫中體征數據做 相應更改 功能正常 正常
    體征數據管理 體征數據圖形化展示 數據圖形展示正常 展示正常 正常
    心血管數據管理 對心血管數據進行增刪 改查操作 數據庫中心血管數據 做相應更改 功能正常 正常
    心血管數據管理 心血管數據圖形化展示 數據圖形展示正常 展示正常 正常
     
    5.5.2性能測試
    在系統性能測試過程中,利用系統響應時間和丟包率兩個指標來對系統的并發性能、響 應客戶的性能進行測試。限于網絡環境和服務器性能對性能指標有較大影響,測試過程中的 網絡環境選定為學校內部網絡,服務器為擁有全新系統的單機服務器和具有兩個單機服務器 的集群,測試工具為Mercury LoadRunner。利用Mercury LoadRunner制造并發訪問,對單服 務器環境下的系統和集群環境下的系統分別進行性能測試,對記錄數據進行整理得到如圖 5.25 和圖 5.26 所示結果。
     
     
     
    25
     
    20
    15
    10
    5
    由測試結果可以看出,在單機服務器環境下最接近該系統的并發服務數量為400,在具 有兩個服務器的集群環境下最接近該系統的并發服務數量為 700。測試結果表明該系統性能 能夠滿足需求,并在多系統環境下可以復用,通過后期擴展還可以進一步提升性能。
    5.6本章小結
    在本章中,對具體實現個人健康信息管理系統所使用的技術框架進行了簡要的說明。之 后,分別對個人健康信息管理系統的基本功能、系統管理功能和信息管理功能進行了展示, 并對各功能模塊進行了簡單的功能介紹,同時還給出了各功能模塊的業務邏輯、主要程序實 現和實現說明。最后對系統進行了功能測試和性能測試,測試結果表明該個人健康信息管理 系統滿足了功能需求,可以投入使用。
    第六章 總結與展望
    本文設計并開發了一個基于 Java EE 平臺的個人健康信息管理系統。依托互聯網優勢, 利用 B/S 架構實現的個人健康信息管理系統,在用戶通過注冊審核后,便可以使用瀏覽器登 錄系統,完成對個人健康信息的管理,同時還可以輕松便捷的與他人共享個人健康信息。
    本文首先介紹了個人健康信息管理系統的開發背景和發展前景,并分析了國內外健康信 息管理的研究現狀及應用情況。針對我國的醫療健康管理服務水平,結合我國實際國情,最 終確定開發一個面向大眾、功能豐富的個人健康信息管理系統。
    在系統的設計與實現之前,對系統進行了充分的需求分析。需求分析過程中以用戶為出 發點進行功能性分析,要求系統功能全面、操作簡單、體驗優異。此外,在對個人健康信息 管理系統需求進行充分調研的基礎上,為最大程度的減少開發的代價并縮短開發時間,還對 個人健康信息管理系統進行了可行性分析,包括技術可行性,經濟可行性和操作可行性。
    個人健康信息管理系統功能的詳細設計是系統設計過程的重點,具體規劃了系統的各功 能模塊的工作流程,并詳細設計了系統數據庫中各功能的數據庫表。最后,根據個人健康信 息管理系統的需求分析和功能設計,開發實現了個人健康信息管理系統,并詳盡介紹了各功 能模塊的開發過程和技術細節,同時還展示了系統主體部分的運行效果。
    本系統可能取得的創新及優勢主要體現如下幾點:
    (1)良好的交互界面。Ajax、JQuery、JFreeChart等前端技術的使用極大的提升了用戶 的體驗效果,使得各功能模塊操作十分簡單。其中部分功能模塊還實現了無刷新動態顯示, 不僅縮減了用戶等待的時間,還減輕了系統服務器的響應負擔。
    (2)開發效率高,性能優良。系統采用了目前主流的開源框架技術,如:Spring、Struts2、 Shiro、Hibernate 等,減少了代碼的復雜程度、實現了應用的各層之間的解耦、提高了系統開 發的效率。同時數據庫連接池等成熟技術的使用進一步提升了系統的性能。
    (3)本文設計開發的個人健康信息管理系統面向大眾,使個人用戶能夠自行管理健康信 息數據。目前國內外的健康信息管理產品大多應用于醫院、康復中心和療養院等醫療機構, 而針對大眾的健康信息管理產品較少,并且大多數健康信息管理產品的用戶只能被動的查詢 個人健康相關信息。而在本系統中,用戶可以自由查看或共享個人健康信息,系統還為用戶 提供了基本的體檢檔案管理、體檢報告管理與分析、異常健康預警的功能,為充分利用體檢 檔案資料進行數據挖掘做好了準備工作。
    (4)可移植性、可維護性及可擴展性強。本系統基于 Java EE 平臺實現,具有平臺無關 的高可移植性特點。同時,系統采用的分層應用框架具有松耦合特性,進一步降低了系統維 護的復雜度,而且這種分層的模塊化設計方式,也有利于后期功能的擴展。
    本文設計實現的個人健康信息管理系統雖然取得了一定的成功,但任何技術都不是完美 無缺的,系統還有需要進一步的研究和改進,不足總結如下:
    (1) 由于目前市面上瀏覽器種類較多,系統僅對主流的瀏覽器進行了適配的工作,日后 還需要進一步對其他瀏覽器進行適配。
    (2) 系統開發過程中雖然引入了 Shiro 等比較成熟的權限管理框架,但還是需要進一步 加強保護個人隱私。例如將權限管理從功能樹劃分到數據庫字段劃分的轉化,進一步細化權 限。
    (3) 由于時間有限,還有很多健康管理的功能沒能實現,如慢性疾病的評估、養老保險 和健康預測等功能沒去設計與實現,這將是以后必須考慮和開發的方向。
    參考文獻
    [1]倪紅梅,徐麗,沈紅藝,等.中國八省市居民亞健康狀態的職業特征分析比較[J].中華中醫藥學刊, 2012(9):1934-1937.
    [2]中國疾病預防控制中心. 中國慢性病及其危險因素監測報告: 2010[M]. 軍事醫學科學出版社, 2012.
    [3]汪偉.人口老齡化、生育政策調整與中國經濟增長[J].經濟學(季刊),2017(1):67-96.
    [4]畢四嶺,水黎明,勵濤.社區居民健康管理工作實踐探索與對策研究[J].中國全科醫學,2013, 16(16):1893-1897.
    [5]中國共產黨中央委員會,中華人民共和國國務院."健康中國2030"規劃綱要[J].中國實用鄉村醫生雜 志, 2017, 24(7).
    [6]Kaelber D, Pan EC. The value of personal health record (PHR) systems[J]. AMIA Annu Symp Proc. 2008, 2008:343-347.
    [7]李新超,孟月莉,劉立煌,等.我國電子病歷的應用現狀[J].中華醫學圖書情報雜志,2016, 25(8):15-1&
    [8]Chaulagai C N, Moyo C M, Koot J, et al. Design and implementation of a health management information system in Malawi: issues, innovations and results[J]. Health Policy & Planning, 2005, 20(6):375-384.
    [9]Health Services: Changing the U. S. Health Care System: Key Issues in Health Services, Policy, and Management[J]. Journal of the American Medical Association, 2001, 286.
    [10]Yun S K. International standards for building Electronic Health Record (EHR)[C]// International Workshop on Enterprise NETWORKING and Computing in Healthcare Industry, 2005. Healthcom. IEEE, 2005:18-23.
    [11]李磊.探究區域醫療信息化建設[J].廣州醫藥,2009, 22(4):1134-1136.
    [12]醫藥衛生體制改革近期重點實施方案(2009—2011年)[N].人民日報,2009-04-08(001).
    [13]任菁菁,鄒智豪,陳文富,等.浙江省建立標準化規范化的“數字衛生”[J].中國數字醫學, 2009(11x):50-52.
    [14]張馨心.醫療圖像存儲及傳輸系統的設計與實現[D].大連海事大學,2014.
    [15]吳大剛,肖榮榮.C/S結構與B/S結構的信息系統比較分析[J].情報科學,2003, 21(3):313-315.
    [16]彭望龍.基于J2EE的移動存儲設備電子文件安全管理系統的設計與實現[D].南京理工大學,2012.
    [17]Object Management Group Inc. OMG Unified Modeling Language Specification, version 1.3
    [18]Li H, Zhou M, Xu G J, et al. Aspect-Oriented Programming for MVC Framework[C]// International Conference on Biomedical Engineering and Computer Science. IEEE, 2010:1-4.
    [19]陳樂,楊小虎.MVC模式在分布式環境下的應用研究[J].計算機工程,2006, 32(19):62-64.
    [20]Nathan A. Good. Apache Shiro 簡介[J]. 2011.
    [21]徐孝成.基于Shiro的Web應用安全框架的設計與實現[J].電腦知識與技術,2015(16):93-95.
    [22]張亦.健康體檢管理系統的設計與實現[D].東南大學,2014.
    [23]胡雯,李燕.MySQL數據庫存儲引擎探析[J].軟件導刊,2012, 11(12):129-131.
    [24]李磊.探究區域醫療信息化建設[J].醫學信息,2009, 40(4):1134-1136.
    [25]戴云云,何國平.健康管理在中國的發展現狀趨勢及挑戰[J].中國預防醫學雜志,2011(5):452-454.
    [26]呂海燕,葉光群.淺談健康管理從建立個人健康檔案開始[J].中醫藥管理雜志,2010, 18(1):76-77.
    [27]劉帥,謝笑,謝陽群,等.個人健康信息管理研究初探[J].現代情報,2014, 34(9):43-50.
    [28]盧建華,吳建國,吳靜娜,等.構建適合中國國情的健康管理體系[J].中國全科醫學,2009, 12(3):212- 215.
    [29]程春蕊,劉萬軍.高內聚低耦合軟件架構的構建[J].計算機系統應用,2009, 18(7):19-22.
    [30]金暉,黃晟,曹飚,等.醫院信息系統數據安全防范及其策略[J].現代預防醫學,2007, 34(14):2698- 2699.
    [31]劉鵬遠.一種角色權限管理方案的算法設計[J].計算機系統應用,2010,19(10):228-232.
    [32]何國偉.論軟件項目管理的質量(上)[J].質量與可靠性,2004(2):35-39.
    [33]黃浪.企業級的B/S模式應用軟件非功能性需求分析與研究[D].廈門大學,2008.
    [34]Jurjens J. Secure Systems Development with UML[J]. 2003, 20(4):46—51.
    [35]Guttorm Sindre, Andreas L. Opdahl. Eliciting security requirements with misuse cases[J]. Requirements Engineering, 2005, 10(1):34-44.
    [36]Mitchell J C. Programming language methods in computer security[C]// ACM Sigplan-Sigact Symposium on Principles of Programming Languages. ACM, 2001:1-26.
    [37]冉朝霞.檔案管理軟件的開發原則和系統設計[J].檔案管理,2008(3):45-47.
    [38]史紀強,宋建.基于REST風格的專業軟件資源共享系統架構設計[J].計算機與應用化學,2011, 28(8):1035-1038.
    [39]Gross C. Ajax and REST Recipes: A Problem-Solution Approach[J]. Industrial Chocolate Manufacture & Use, 2006.
    [40]Mao L R, Cai H M, Bo-Yi X U, et al. Resource-oriented Enterprise Integration Platform Framework Based on REST[J]. Computer Engineering, 2010, 36(2):254-256.
    [41]王茜,鄒悅臨.B/S三層架構模式的使用分析[J].企業技術開發:下,2009, 28(6):108-10&
    [42]Jia N Y. Mapping Objects to Relational Database[J]. Journal of Yuxi Teachers College, 2005.
    [43]黎子晨.在集群環境中對象關系模型緩存一致性設計[J].物聯網技術,2017, 7(8):44-46.
    [44]Tummalapalli S, Machavarapu V R. Managing Mysql Cluster Data Using Cloudera Impala ☆[J]. Procedia Computer Science, 2016, 85:463-474.
    [45]Linksvayer T, Mikheyev A. Data tables from MySQL database for gene expression analysis[J]. Development, 2015, 130(25):6221-31.
    [46]Srivastava R. JDBC monitoring and diagnostics enhancements: US, US 7784033 B2[P]. 2010.
    [47]楊靖祎.規范和設計技巧在數據庫設計中的研究[J].中國衛生產業,2017(29):70-71.
    [48]董獻倫.基于關系型數據庫的數據切分問題研究[D].山東大學,2016.
    [49]栗增光, 周訓波. Serial number applying method and system of relational database:, CN 103020268 A[P]. 2013.
    [50]唐凌遙. Method and device for mapping entity object into database:, CN 102156717 A[P]. 2011.
    [51]Liang J, Zhao W D, Chu B X. Database Design Forward Engineering and its Application based on Power Designer[J]. Computer Knowledge & Technology, 2016.
    [52]沈偉珍,龔幼龍,王光榮,等.居民電子健康檔案的建立與作用[J].中華醫院管理雜志,2006, 22(8):519-521.
    [53]南相浩, 陳華平. Generation method of composite public key:, CN 101340282 B[P]. 2011.
    [54]Mladenov V, Mainka C, Krautwald J, et al. On the security of modern Single Sign-On Protocols: OpenID Connect 1.0[J]. Computer Science, 2015.
    [55]Chen W.Enterprise information management system based on J2EE and MVC mode[C] // Proceedings of the 9th International Symposium on Linear Drives for Industry Applications.2014,3:427-433.
    [56]Menachemi N, Matthews M C, Ford E W, et al. The influence of payer mix on electronic health record adoption by physicians[J]. Health Care Management Review, 2015, 32(2):111.
    [57]Civan A, Skeels M M, Stolyar A, et al. Personal health information management: consumers' perspectives.[J]. 2017, 49(1):156-160.
    [58]胡玉寧,金新政.社區衛生服務健康管理信息系統綜述[J].中國衛生質量管理,2009, 16(4):76-79.
    [59]Chen X Q, Wen-Hui D I, Sun D. Application of Java web based on SSH and AJAX[J]. Computer Engineering & Design, 2009, 30(10):2590-2589.
    【本文地址:http://www.bzhlmm.com//guanlilei/gongshangguanli/xixinguanli/8940.html

    上一篇:山區生態資源空間信息管理及可視化

    下一篇:沒有了

    相關標簽: