背景
隨著信息化技術的不斷發展,醫療體系越來越完善,健康一體機從理論到方法、從內容到載體都有所改變。人口老齡化加速、慢性非傳染性疾病肆虐等社會趨勢使得高質量的長期醫療護理逐漸成為全社會關注的焦點。傳統醫療系統背景下的醫療資源日漸緊缺,每年的與之相關的醫療費用居高不下,成為現代經濟與社會發展面臨的巨大挑戰之一 [1]。遠程醫療能大大減少對醫療資源的需求,但是目前大多數醫院信息系統還是采用有線網絡方式訪問數據庫 , 這就使得記錄病人的病況不太便利。基于 Android 系統的健康一體機 APP 構造了一個在 WIFI 或數據流量環境下 , 實時測量各項生理參數并同步保存數據的移動化醫療系統 , 極大的便利了人們的生活。
醫療數據表的邏輯設計
簡介
健康一體機 app 存取數據采用的是一種開源嵌入式數據庫,即 SQLite,SQLite 是以 C 語言作為開發語言,其源代碼具有開放性。由于 SQLite 生成的數據庫文件為普通的磁盤文件,因此可放置在任何目錄下,具有跨平臺性,應用范圍廣泛。在 Android 系統中集成了 SQLite 數據庫,所以
健康一體機 app 采用 SQLite 來存儲數據。在 Android 系統中主要由和 SQLiteOpenHelper 類對 SQLite 數據庫進行管理和操作 [2]。
需求分析
健康一體機共可以測量十二個醫療指標,每個測量指標都是當今醫療中測量最普遍的生理參數,通過這十二項醫療指標可以反應一個人的健康狀況。本數據庫需要記錄用戶的身份信息和
健康一體機測量出來的相關醫療數據。其中用戶的信息包括身份證號碼,姓名、性別、身份證頭像等信息,醫療數據包括心率,血氧,血壓,血糖,尿酸,總膽固醇,尿常規,健康指數,體溫,血紅蛋白,中醫體質,血脂等十二項指標。
概念結構設計
通過對需求分析進行歸納總結,根據
健康一體機數據表中實體的各種屬性及其之間的聯系,可得到具體的 DBMS 概念模型,其圖如圖 1 所示。
中用戶實體包含四個屬性,分別為用戶 ID,姓名、性別、身份照片。醫療數據實體包含十二個屬性,如心率、血壓、血糖等普通生理參數。這些用戶信息與醫療數據為個人健康檔案數據提供了基礎。
數據庫邏輯設計
本數據庫包含 user_info 和 data_info 兩張表,用以存儲用戶身份信息,data_info 用以存儲醫療數據。
具體如表 1 及表 2 所示:
數據庫基本操作
在建立好數據庫以及表之后,引用由
提供的操作數據庫的方法,對醫療數據記錄進行增刪改查等操作。增刪改查均用到 SQLite Database 對象中的方法,具體為:新增對應 insert()方法,刪除記錄對應 delete()方法,修改記錄對應 update() 方法,查詢記錄對應 query() 方法。
醫療數據的同步
在
健康一體機中,當用戶完成身體指標的測量之后,醫療數據會同步到服務器。這里的同步即按照了服務器端的數據接收協議,采用 Socket 通訊方式來實現。
簡介
所謂 Socket, 通常也稱作“套接字”, 實現服務器和客戶端之間的物理連接 , 并進行數據傳輸 , 主要有 UDP 和兩個協議 , 處于網絡協議的傳輸層 [3]。這里主要針對 TCP 協議的,在實現數據傳輸的過程中,Socket 分為了兩端,其中一端為 Client 端;另一端為 Sever 端。當 Client 端發起連接的請求之后,Sever 端會做出反應,與此同時返回一個對象,在之后的數據通信中,兩端的通信便可通過這個 Socket 對象進行。
基于 TCP 協議的 Socket 通信
若要進行通信,首先必須要有運行服務器端的主機地址(就像是打電話的時候要知道對方的電話號碼),再通過指定的端口和服務器建立連接,進行通信。
協議提出了協議端口的概念,
健康一體機用于標識通信的進程。當進程與某個端口綁定后,操作系統會將收到的給該端口的數據發往該進程 [4]。
客戶端可通過兩種途徑連接到服務器: