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