徐浩愷 譚惠東 葉一陽 鄭桂鋒 石皓文
摘要:傳統(tǒng)聽診器受醫(yī)生臨床經(jīng)驗等主要因素影響嚴重且紙質化的病歷難攜帶、易丟失,存在局限性,大大影響醫(yī)療質量。針對這種情況,本文設計了一個基于區(qū)塊鏈的可視化聽診與電子病歷系統(tǒng)?;趨^(qū)塊鏈的可視化聽診與電子病歷系統(tǒng)可實現(xiàn)聽診可視化以及電子病歷的書寫和查看,采用區(qū)塊鏈技術可以實現(xiàn)醫(yī)療病歷的跨地區(qū)、跨平臺查閱,同時加密技術也為患者電子病歷的安全性提供了保障,有效幫助提高醫(yī)療效率。
關鍵詞:區(qū)塊鏈技術;可視化聽診;電子病歷;數(shù)據(jù)庫
Abstract: Traditional stethoscopes are severely affected by doctors clinical experience and other major factors, and the paper-based medical records are difficult to carry and easy to lose. There are limitations, which greatly affect the quality of medical care. In response to this situation, a visual auscultation and electronic medical record system based on blockchain was designed. The blockchain-based visual auscultation and electronic medical record system can realize the visualization of auscultation and the writing and viewing of electronic medical records. The use of blockchain technology can realize cross-regional and cross-platform access to medical medical records. At the same time, encryption technology also provides the security of patients' electronic medical records. Sex provides a guarantee and effectively helps improve medical efficiency.
Key words: blockchain technology; visual auscultation; electronic medical records; database
1 引言
目前,僅用耳朵聽的傳統(tǒng)聽診器,受醫(yī)生臨床經(jīng)驗等主觀因素影響嚴重,因此設計了可視化聽診器并增加了心率采集功能。同時紙質化的病歷存在局限性,它不僅使得患者難以攜帶,也容易丟失。因此設計了基于javaweb的電子病歷系統(tǒng)。然而該系統(tǒng)無法實現(xiàn)跨平臺的醫(yī)療病歷查閱,同時由于數(shù)據(jù)存儲在醫(yī)院的數(shù)據(jù)庫中,這種集中存儲容易受到黑客攻擊而導致大量病歷泄露,區(qū)塊鏈技術可用于解決這一問題。其去中心化特點可以實現(xiàn)醫(yī)療病歷的跨平臺查閱,同時加密技術也為患者電子病歷的安全性提供了保障,因此建立了基于區(qū)塊鏈的電子病歷系統(tǒng)。
2 設計方案
可視化聽診與電子病歷系統(tǒng)可實現(xiàn)聽診可視化以及電子病歷的書寫和查看??梢暬犜\部分以STM32主控板、呼吸音采集模塊、脈搏采集模塊、顯示模塊、硬件濾波與放大模塊共同組成,可實現(xiàn)數(shù)據(jù)的采集、軟硬件濾波、模數(shù)轉換、實時顯示等功能。在可視化聽診過程中,攝像頭通過opencv實時記錄。醫(yī)生通過可視化聽診端對病情做出判斷后,將病歷書寫到基于javaweb的電子病歷系統(tǒng)中。該系統(tǒng)包含前端、后端與數(shù)據(jù)庫端,將用戶區(qū)分為患者與醫(yī)生,并給予不同權限實現(xiàn)不同功能。在就診完成后,患者可以通過區(qū)塊鏈的以太幣給醫(yī)院支付看病費用。作為電子病歷系統(tǒng)的補充,同時設計了基于區(qū)塊鏈的電子病歷,并將其分為區(qū)塊鏈層與系統(tǒng)實現(xiàn)層,通過命令行可實現(xiàn)電子病歷的基本操作。其總體框圖如圖1所示。
3 硬件設計
3.1 信號采集及顯示總體設計
信號采集及顯示部分設計思路是以STM32F103C8T6作為主控,由傳感器模塊、硬件預處理電路、硬件放大電路、顯示模塊共同組成。由呼吸音傳感器采集的呼吸音數(shù)據(jù)、脈搏傳感器采集心率數(shù)據(jù),經(jīng)過濾波、放大以及AD芯片進行模數(shù)轉換后進行卡爾曼濾波、平均濾波、限幅濾波等處理,將處理完的數(shù)據(jù)實時在LCD顯示屏幕上顯示。信號采集即顯示部分框圖如圖2所示。
3.2 呼吸音傳感器
因為采集的是呼吸音信號,對傳感器靈敏度要求高,而HKY-06F呼吸音傳感器具有高可靠性、高靈敏度、具有良好的抗噪性等特點,能夠采集更為微弱的信號,同時自身對信號的處理能力更強,更適合用來采集呼吸音,因此選用HKY-06F呼吸音傳感器。
3.3 心率傳感器
傳統(tǒng)的脈搏測量共有三種方法:心電信號提取法、壓力傳感器波動計算法、光電容積法。心電信號提取法、壓力傳感器波動計算法采集會限制患者活動,患者身心的不適將因長時間的使用而出現(xiàn)。相較之下,光電容積法測量脈搏其佩戴簡單,因此本次設計采用了以光電容積法為基本原理的PULSE SENSOR傳感器,它是一款光電反射式模擬傳感器,通過硬件將信號放大了330倍。
3.4 信號采集與放大電路
信號放大電路如圖3所示,采用運放差分放大電路,在輸出端連接了一個減法器以及偏置電阻將負信號拉高。運放采用LM358芯片,該芯片是一個雙運放芯片,可以承受3V-30V電壓,因此不需要升壓。通過第一個LM358芯片的兩個運放,提升了信噪比。電路中的相關電阻均嚴格對稱,這使得電路對共模信號幾乎沒有放大作用,因此共模電壓增益為零。電路中R2=R3、R9=R10,兩級差模總增益為:
因為信號通過示波器測試幅值在50mv左右,因此對它進行11倍放大,即選取R2=R3=50K,R1=10K。
4 軟件設計
4.1基于區(qū)塊鏈的電子病歷設計
DApp的開發(fā)共設計有三層:用戶層、區(qū)塊鏈層以及系統(tǒng)實現(xiàn)層。其設計框圖如下圖4所示。由于自身技術的限制,僅實現(xiàn)了其中區(qū)塊鏈層以及系統(tǒng)實現(xiàn)層。
4.2私有鏈的建立
區(qū)塊鏈層包含用于用戶與在區(qū)塊鏈上運行的DApp交互的代碼或機制。以太坊官方提供了兩種網(wǎng)絡環(huán)境,包括主網(wǎng)絡以及測試網(wǎng)絡。測試網(wǎng)絡中又包含了Ropsten、Kovan、Rinkeby、Doerli等測試網(wǎng)絡,其網(wǎng)絡環(huán)境與主網(wǎng)絡相同,且均有大量交易信息,也有礦工進行義務的提供挖礦服務。主網(wǎng)絡是真正有價值的以太坊網(wǎng)絡,其具有全球化的特征,是部署在Internet上的。其智能合約的代碼,區(qū)塊的產(chǎn)生等都可以清晰地查到,但速度較慢。測試網(wǎng)絡專供用戶來開發(fā)、調試和測試使用。如果要進行智能合約的開發(fā),測試網(wǎng)絡足以應對。
本私有鏈的建立是基于以太坊最熱門的客戶端geth建立的。要運行私有鏈,首先要定義一個自己的創(chuàng)世區(qū)塊,并寫在一個json格式的配置文件中。其中定義有獨立的區(qū)塊鏈網(wǎng)絡ID,該ID不能為1,因為1是以太坊主網(wǎng)絡的ID號。本次的chainId設置為15。同時需要設置區(qū)塊鏈挖礦的難度,預置賬號以及賬號的以太幣數(shù)量,礦工的賬號、創(chuàng)世塊時間戳、上一個區(qū)塊的哈希值(因為是創(chuàng)世區(qū)塊,所以是0)以及對GAS消耗總量的限制。之后即可通過命令行啟動私有鏈,并將其挖礦信息輸出到日志中。在自己建立的私鏈中,我們可以通過person.newAccount(“password”)來創(chuàng)建賬戶與輸入密碼,創(chuàng)建完成后將返回一個賬戶的地址??梢酝ㄟ^getBalance接口查詢到用戶的余額。同時通過miner接口可以對礦工進行操作,如挖礦以及挖礦停止,同時我們還可以通過miner.setEtherbase來設置挖礦的賬戶。通過eth.sendTransaction接口,可以進行轉賬操作。但是一旦涉及轉賬操作,就需要對賬戶進行解鎖。
4.3 區(qū)塊鏈電子病歷智能合約設計
系統(tǒng)實施層主要做的是智能合約的開發(fā)。智能合約是DApp的重要組成部分,因為它們用于執(zhí)行基本操作。電子病歷智能合約中包含三個角色,患者、醫(yī)生以及醫(yī)院?;颊呖梢宰砸约靶薷淖陨硇畔?,在醫(yī)院看病時,可以給醫(yī)生授權,書寫自己的病歷,并在看病結束后,直接通過區(qū)塊鏈以太幣進行支付,將錢轉賬給醫(yī)院。
首先設置了兩個結構體,患者以及醫(yī)療病歷?;颊呓Y構體重包含用戶客戶端、全稱、年齡、密碼、性別、聯(lián)系方式等信息。
患者進入?yún)^(qū)塊鏈后,首先注冊患者賬戶。通過web3.eth.personal.newAccount()創(chuàng)建一個以太坊賬戶,之后通過調用智能合約中的SignupPatient注冊患者賬戶信息。輸入的信息,首先需要進行一層驗證,查看當前的輸入的人是不是當前的患者的以太坊用戶,這是因為我們的以太坊賬戶可以同時擁有好幾個賬戶,賬戶之間可以進行隨意的切換,如果當前的輸入信息的賬戶不是患者的賬戶,則會報錯并提示,如果是,則患者信息將存儲在患者的結構體中。
患者注冊好信息以后,可以通過patients來進行查詢。patients是定義的一個映射,輸入地址然后將映射到患者的結構體中,因為設置為public狀態(tài),所以solidity語言會自動為該變量定義一個get函數(shù),所以外部可以直接查看。如果患者發(fā)現(xiàn)輸入信息錯誤,可以通過PaitentUpdate函數(shù)直接更改患者的信息。之后患者可以通過SetAdministrator賦權給醫(yī)生的賬戶,這樣通過醫(yī)生的賬戶,就可以直接對患者的病歷進行更改了。同時患者的賬戶是無法對病歷進行更改的。醫(yī)生獲得了修改權限以后,通過醫(yī)生自己的賬戶,就可以輸入患者的病歷?;颊叩牟v也被定義成了一個結構體,其中包涵看病的時間,患者的癥狀以及給患者開的藥物。醫(yī)生登錄自己賬戶后,可以通過調用MedicalReportAdd函數(shù),輸入的信息后,首先會驗證醫(yī)生的賬戶是否是患者給予病歷書寫權利的人,如果是,則將輸入保存在患者病歷結構體中,如果不是,則報錯并提示只能有醫(yī)生才能輸入信息。之后可以通過medicalreports對病歷信息進行輸出,醫(yī)生、患者、醫(yī)院均可以看到該信息。medicalreports與patients一樣,都是一個映射,將地址映射為患者的賬戶,通過設置為public狀態(tài),自動生成了get函數(shù)以便外部調用。在看病完成以后,用戶通過kill函數(shù)注銷本次登錄。之后患者可以通過以太幣轉賬給醫(yī)院以實現(xiàn)患者的看病費用的支付。以太幣也是實際在國際市場上流通的數(shù)字貨幣,目前一個以太幣價值1200美元??梢酝ㄟ^sendTransaction函數(shù)來進行轉賬操作。
5 結束語
基于區(qū)塊鏈的可視化聽診與電子病歷系統(tǒng),在功能實現(xiàn)上,設計主要包括有兩個部分,信號采集及顯示端、基于區(qū)塊鏈的電子病歷端。采用可視化聽診,采集呼吸音信號以及心率信號,并對其進行可視化,安全、可靠、便攜、性價比高,能夠減少醫(yī)生的主觀因素影響?;趨^(qū)塊鏈的電子病歷設計解決了因不同醫(yī)院醫(yī)療系統(tǒng)不同,患者跨院診斷后數(shù)據(jù)無法進行查閱的情況,其具有維護成本低、義務連續(xù)性高等特點,同時可以保護患者隱私不被泄露。
參考文獻:
[1] 郭俊飛.基于STM32的可視化呼吸音聽診系統(tǒng)開發(fā)[D].大連:大連理工大學,2018.
[2] Technology - Blockchain Technology; Study Data from National University of Science and Technology Update Understanding of Blockchain Technology (Using Blockchain for Electronic Health Records).2020.
[3] 歐秀芳.區(qū)塊鏈技術在醫(yī)藥領域的應用分析[J].中國市場,2020(27):166-167.
[4] 韋智勇,周立廣.基于區(qū)塊鏈的電子病歷存證系統(tǒng)設計與實現(xiàn)[J].軟件工程,2020,23(9):56-58.
[5] 余海波.基于區(qū)塊鏈的數(shù)據(jù)分布式存儲安全機制研究[D].上海:華東師范大學,2020.
[6] 施劍鋒.心音呼吸音可視電子聽診系統(tǒng)[D].杭州:浙江大學,2007.
[7] 汪昱卿. 基于MVC的醫(yī)院信息管理系統(tǒng)設計與開發(fā)[D].上海:復旦大學,2012.
[8] Bijon Kumar Pramanik.Blockchain-based Application of Reward Point Exchange[D].北京:中國地質大學(北京),2019.
[9] Zhou L,F(xiàn)u A M,Mu Y,et al.Multicopy provable data possession scheme supporting data dynamics for cloud-based Electronic Medical Record system[J].Information Sciences,2021,545:254-276.
[10] 吉文帥,孫華妤.基于GIS的電子病例管理系統(tǒng)研究[J].信息技術與信息化,2016(11):82-83,86.
【通聯(lián)編輯:梁書】