国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

面向醫(yī)療樣品跟蹤系統(tǒng)的智能合約設(shè)計與部署

2022-08-26 01:52王越李國葉珉銓陳子鑫王譯正
現(xiàn)代信息科技 2022年11期
關(guān)鍵詞:站點(diǎn)合約樣品

王越,李國,葉珉銓,陳子鑫,王譯正

(1. 中國民航大學(xué) 理學(xué)院,天津 300300;2. 中國民航大學(xué) 計算機(jī)科學(xué)與技術(shù)學(xué)院,天津 300300;3. 中國民航大學(xué) 空中交通管理學(xué)院 天津 300300)

0 引 言

隨著我國經(jīng)濟(jì)水平和科學(xué)技術(shù)的持續(xù)增長,我國人民的醫(yī)療水平也不斷提高,醫(yī)療樣品在整個醫(yī)療體系中的使用率也不斷地提高。由于相關(guān)系統(tǒng)和制度規(guī)劃的完整性不高,所以醫(yī)療樣品在運(yùn)輸過程中的安全性和真實(shí)性存在一定的風(fēng)險,保證醫(yī)療樣品在整個運(yùn)輸過程中的安全性也變得越來越重要。

通過醫(yī)療樣品的跟蹤可以了解到不同型號、不同種類、不同標(biāo)號的樣品經(jīng)過的醫(yī)院或防疫站、檢查站的詳細(xì)路徑信息以及單個樣品的詳細(xì)說明信息。但使用中心化數(shù)據(jù)庫技術(shù),很難保證醫(yī)療樣品跟蹤時信息不被篡改、能夠溯源等方面的問題,所以針對醫(yī)療樣品的跟蹤時,使用有著去中心化、不可篡改、可溯源、增強(qiáng)信用等特征的區(qū)塊鏈技術(shù)就顯得十分重要。

1 系統(tǒng)分析

系統(tǒng)的需求分析是項(xiàng)目開發(fā)規(guī)范中軟件定義的一個重要環(huán)節(jié),同時也是該系統(tǒng)軟件生存周期中的必要途徑。該階段首先站在用戶角度來全面客觀的了解該系統(tǒng)需要實(shí)現(xiàn)的功能,以及用戶可能遇到的系統(tǒng)問題。通過需求分析把用戶的要求理解的更加準(zhǔn)確、清晰和完整。系統(tǒng)需求分析清楚之后,就能夠更加快速、高效地實(shí)現(xiàn)系統(tǒng)的相應(yīng)功能。

1.1 系統(tǒng)功能需求點(diǎn)

登錄系統(tǒng)的賬戶為區(qū)塊鏈私鏈所創(chuàng)建的賬戶,每個賬戶都可以進(jìn)行以下操作:

(1)醫(yī)療樣品入站操作管理:可以填入樣品的相關(guān)信息,即可實(shí)現(xiàn)樣品的入站操作。(2)主界面查看所有賬戶中未隱藏的樣品信息:每一條在主界面的樣品信息都能點(diǎn)擊“查看詳情”,了解其樣品名稱、發(fā)起地址、入站時間、當(dāng)前狀態(tài)、樣品介紹。(3)本站樣品分出已進(jìn)站及已出站的樣品信息:登錄之后,可以點(diǎn)擊“本站樣品”,查看已進(jìn)站及已出站的兩欄信息。(4)本站樣品執(zhí)行出站、解除隱藏功能:在本站樣品界面點(diǎn)擊已入站的樣品信息中的“查看詳情”,對于狀態(tài)為“已進(jìn)站”的樣品可以進(jìn)行出站操作,對于隱藏狀態(tài)為“true”的樣品可以進(jìn)行解除隱藏操作。(5)查詢界面實(shí)現(xiàn)樣品查詢功能:可以通過樣品 ID 或者賬戶地址進(jìn)行查找相對應(yīng)的樣品信息。(6)查看本站個人信息:可以對本站信息有個大致預(yù)覽,了解本站的相關(guān)信息。(7)查看本站入站/出站、隱藏/未隱藏的樣品數(shù)量:可以在個人信息界面直觀地了解到入站/出站、隱藏/未隱藏的樣品數(shù)量。(8)修改本站相關(guān)信息的功能:通過填入需要修改的站點(diǎn)信息,完成對本站點(diǎn)信息的更改。

1.2 功能模塊分析

系統(tǒng)功能主要分為:展示未隱藏樣品信息、樣品入站操作、本站樣品顯示、樣品出站、解除隱藏、樣品查詢、站點(diǎn)信息展示、站點(diǎn)信息修改八個大功能模塊,如圖1所示。

圖1 功能模塊圖

各個功能模塊的描述:

(1)展示未隱藏樣品信息模塊。此功能模塊位于主界面“所有樣品”中,展示所有賬戶里未隱藏的部分站點(diǎn)信息,包括:樣品名稱、ID、入站出站時間、當(dāng)前狀態(tài)、查看詳情按鈕。點(diǎn)擊“查看詳情”可以跳轉(zhuǎn)至該樣品的詳細(xì)信息界面。

(2)樣品入站操作模塊。此功能模塊位于主界面“所有樣品”中,通過點(diǎn)擊“樣品入站”按鈕,填入相應(yīng)信息即可完成入站操作,填入的樣品信息包括樣品名稱、樣品ID、樣品介紹、是否隱藏(即是否允許入站的樣品被所有人看到)、入站時間。

(3)本站樣品顯示模塊。此功能模塊分為兩個欄目:1)已入站的樣品信息;2)已出站的樣品信息。每個欄目都包括部分樣品信息:樣品名稱、ID、入站出站時間、當(dāng)前狀態(tài)、查看詳情按鈕。

(4)樣品出站模塊。此功能模塊為針對已入站的醫(yī)療樣品,點(diǎn)擊已入站的樣品最后的“查看詳情”按鈕,進(jìn)入之后可以通過按鈕實(shí)現(xiàn)該樣品的出站操作,同時更改樣品狀態(tài)。

(5)解除隱藏模塊。此功能模塊為針對隱藏的醫(yī)療樣品,點(diǎn)擊隱藏的樣品最后的“查看詳情”按鈕,進(jìn)入之后可以通過按鈕實(shí)現(xiàn)該樣品的解除隱藏操作,同時更改樣品狀態(tài)。

(6)樣品查詢模塊。此功能模塊為通過輸入需要查詢的樣品 ID 或賬戶地址,點(diǎn)擊“查詢按鈕”,即可獲得符合查詢條件的樣品信息。

(7)站點(diǎn)信息展示模塊。此功能模塊為展示本站的部分重要信息,其中包括:站點(diǎn)名稱、站點(diǎn)地址、站點(diǎn)簡介、站點(diǎn)等級、入站數(shù)量、出站數(shù)量、隱藏數(shù)量、未隱藏數(shù)量。其中站點(diǎn)名稱、站點(diǎn)簡介、站點(diǎn)等級可以通過下個功能來進(jìn)行修改操作。

(8)站點(diǎn)信息修改模塊。此功能模塊為修改站點(diǎn)信息,點(diǎn)擊“修改信息”按鈕,填入需要修改的站點(diǎn)信息,點(diǎn)擊確定即可實(shí)現(xiàn)站點(diǎn)信息修改功能。

2 系統(tǒng)實(shí)現(xiàn)

2.1 以太坊與solidity

目前公認(rèn)的區(qū)塊鏈公共平臺主要有以太坊和超級賬本兩種,都是開源且具有智能合約功能。以太坊的概念在2013到2014年之間提出,并在2014年通過ico眾籌后得到巨大的發(fā)展,在2018年后,成了市值第二高的加密貨幣,僅次于以太幣。其設(shè)計原則為簡潔、通用、模塊化、無歧視,更好地解決初代貨幣擴(kuò)展性不足的問題。醫(yī)療樣品跟蹤系統(tǒng)采用的是以太坊平臺,使用其自身加密貨幣以太幣提供的去中心化以太虛擬機(jī)來處理結(jié)點(diǎn)之間的合約。

Solidity是專門用來編寫智能合約的高級程序語言,結(jié)合了 c++、 python、JavaScript等編程語言的優(yōu)點(diǎn),能夠更好地適應(yīng)以太坊虛擬機(jī)上運(yùn)行。Solidity是一門靜態(tài)語言,能夠支持繼承、庫和復(fù)雜用戶定義類型等特點(diǎn),大大提高了區(qū)塊鏈對復(fù)雜系統(tǒng)的處理能力。

2.2 智能合約設(shè)計

2.2.1 醫(yī)療樣品信息智能合約設(shè)計

通過對系統(tǒng)的分析的出需要設(shè)計兩種存儲信息結(jié)構(gòu)體,來滿足醫(yī)療樣品跟蹤系統(tǒng)數(shù)據(jù)的完整性。醫(yī)療樣品信息可以與流向信息公用,具體定義如表1所示。

表 1 醫(yī)療樣品信息數(shù)據(jù)結(jié)構(gòu)表

站點(diǎn)用戶信息具有對該站點(diǎn)進(jìn)行介紹的作用,在整個系統(tǒng)中也是必不可少的,具體定義如表2所示。

表2 站點(diǎn)信息數(shù)據(jù)結(jié)構(gòu)表

在組織上需要將每個站點(diǎn)的所有醫(yī)療信息組織起來,這里使用了solidity中的特殊類型mapping(A≥B),具有從A映射到B的邏輯功能。所以在系統(tǒng)中,使用了一個mapping變量,使每一個樣品信息都對應(yīng)一個阿拉伯?dāng)?shù)字,類似于java中的hasmap的作用。在尋找信息時,我們就可以通過遍歷的方式將所有的醫(yī)療樣品信息查詢出來。

所以還需要設(shè)計一個變量來記錄醫(yī)療樣品的數(shù)量,來保證我們可以統(tǒng)計到所有的醫(yī)療樣品。

2.2.2 醫(yī)療樣品操作信息智能合約設(shè)計

系統(tǒng)在實(shí)際使用中需要實(shí)現(xiàn)信息入庫、出庫、特殊信息隱藏、醫(yī)療樣品信息查詢以及站點(diǎn)信息維護(hù)等多種功能。智能合約功能主要通過solidity語言實(shí)現(xiàn),包括接口定義和接口實(shí)現(xiàn),以下各種接口都是由調(diào)用函數(shù)名稱和調(diào)用函數(shù)參數(shù)組成,在進(jìn)行操作時,調(diào)用對應(yīng)函數(shù)為相關(guān)結(jié)構(gòu)體的不同關(guān)鍵字段賦值,實(shí)現(xiàn)了信息上傳到區(qū)塊鏈的過程。

(1)醫(yī)療樣品信息入庫實(shí)現(xiàn),在發(fā)布醫(yī)療樣品相關(guān)信息時,前端通過web3調(diào)用該智能合約函數(shù)來實(shí)現(xiàn)信息入庫,并為不同字段賦值,入庫時需要進(jìn)行時間檢查,保證入庫時間為當(dāng)前時間,否則無法入庫,保證了信息時間的真實(shí)性。如圖2所示。

圖2 醫(yī)療樣品信息入站接口實(shí)現(xiàn)

(2)醫(yī)療樣品信息出庫功能,在信息入庫時,有一個入庫狀態(tài) 的關(guān)鍵字,入庫時設(shè)置為false,一鍵出庫調(diào)用一個智能合約函數(shù),將該樣品在映射中的鍵值傳入,尋找到該樣品信息即可修改該關(guān)鍵字實(shí)現(xiàn)出庫功能。如圖3所示。

圖3 醫(yī)療樣品信息出庫接口實(shí)現(xiàn)

(3)解除信息隱藏功能。在信息入庫時可以選擇是否隱藏該信息。隱藏信息后。結(jié)合實(shí)際應(yīng)用情況,可能會出現(xiàn)隱藏信息公開的情況,所以增加了這個功能,修改對應(yīng)關(guān)鍵字后,在前端使用Web3調(diào)用時即可對該信息進(jìn)行隱藏如圖4所示。

圖4 樣品信息取消隱藏接口實(shí)現(xiàn)

(4)樣品信息查詢功能,接口中的參數(shù)為樣品id,查詢時輸入id號即可。該接口會將滿足所有查詢條件的醫(yī)療樣品信息返回到Web端。接口參數(shù)包括樣品id和賬戶地址如圖5所示。

圖5 醫(yī)療信息查詢接口

(5)站點(diǎn)信息編輯功能,每個賬戶可以對信息進(jìn)行編輯并上傳到區(qū)塊鏈中。Web調(diào)用智能合約將對應(yīng)參數(shù)傳入,并賦值給對應(yīng)結(jié)構(gòu)體。如圖6所示。

圖6 站點(diǎn)信息修改接口

2.2.3 智能合約測試開發(fā)環(huán)境

項(xiàng)目測試開發(fā)環(huán)境為以太坊,通過安裝以太坊環(huán)境,可以通過Remix部署運(yùn)行智能樣品信息取消隱藏接口實(shí)現(xiàn)合約,并對該合約進(jìn)行測試。

(1)安裝從golang官網(wǎng)下載安裝go環(huán)境,并配置環(huán)境變量。以太坊由go語言開發(fā)而成。

(2)安裝geth環(huán)境,下載geth源碼文件并解壓,隨后配置環(huán)境變量。

(3)創(chuàng)建創(chuàng)世塊鏈并運(yùn)行節(jié)點(diǎn)。在官網(wǎng)下載創(chuàng)世塊文件源碼文件,通過配置文件中的 不同參數(shù)來選擇區(qū)塊鏈的配置,挖礦的難易程度、網(wǎng)絡(luò)節(jié)點(diǎn)id,以及時間戳等。

(4)創(chuàng)建賬戶并挖礦,運(yùn)行該以太坊。通過網(wǎng)頁版remix編譯環(huán)境對寫好的智能合約在該環(huán)境下進(jìn)行編譯測試。

2.2.4 智能合約部署

只有將智能合約部署到區(qū)塊鏈上,才可以執(zhí)行。本系統(tǒng)利用truffle框架將智能合約部署到ganache創(chuàng)建的本地私鏈上。創(chuàng)建項(xiàng)目文件夾進(jìn)行操作。在控制臺文件夾下執(zhí)行truffle init初始化項(xiàng)目配置后開始部署操作。

首先在contract目錄中新建sol文件,用來保存編寫好的智能合約,隨后進(jìn)入到migrations目錄下,新建一個js文件來配置項(xiàng)目,通過artifacts.require來確定哪些合約要部署到truffle框架中,并返回一個對象,為后面的操作使用。

第二步需要配置項(xiàng)目目錄下的truffle-config.js文件,來確定配置部署網(wǎng)絡(luò)和監(jiān)聽端口。配置后使用ganache打開該文件。

通過以上兩步操作就完成了框架使用的條件。之后在項(xiàng)目文件下使用 truffle compile編譯文件,可以檢查智能合約中的錯誤,防止無法運(yùn)行的智能合約部署到區(qū)塊鏈上。

編譯完成之后執(zhí)行truffle migrate命令,就可以將智能合約部署到區(qū)塊鏈上。使用框架將智能合約部署完成后,就可以使用ganache對鏈上的信息進(jìn)行操作和觀察。

3 系統(tǒng)展示

3.1 頁面整體框架

所有頁面都是設(shè)計成為上下兩層樣式,主要包括頂部的導(dǎo)航按鈕及登錄按鈕,以及中間部分的頁面展示詳情頁,如圖7所示。導(dǎo)航按鈕分為四項(xiàng):“所有樣品”“本站樣品”“查詢”“個人信息”:

圖7 導(dǎo)航及登錄界面

(1)“所有樣品”:在頁面中間部分展示所有區(qū)塊鏈賬戶未隱藏的醫(yī)療樣品信息,同時每條樣品信息都能點(diǎn)擊最后一項(xiàng)的“查看詳情”獲取更多的樣品信息。

(2)“本站樣品”:需在登錄后,才能看到樣品數(shù)據(jù),頁面分為兩欄,一欄為“已入站的樣品信息”,入站狀態(tài)為已入站的樣品顯示在該欄目中;另一欄為“已出站的樣品信息”,入站狀態(tài)為已出站的樣品顯示在該欄目中。

(3)“查詢”:點(diǎn)擊查詢按鈕,輸入需要查詢樣品的關(guān)鍵信息即可獲取與之匹配的樣品信息。

(4)“個人信息”:在頁面中能夠看到站點(diǎn)的詳細(xì)信息,包括站點(diǎn)名稱、站點(diǎn)地址、站點(diǎn)簡介、站點(diǎn)等級、入站數(shù)量、出站數(shù)量、隱藏數(shù)量、未隱藏數(shù)量。

3.2 實(shí)現(xiàn)樣品入站

前端界面先通過登錄成功,在賬戶地址認(rèn)證欄中顯示當(dāng)前區(qū)塊鏈賬戶進(jìn)入“所有樣品”界面,點(diǎn)擊“樣品入站”按鈕,彈出入站樣品信息輸入框,彈出框的名稱為“入 站登記”,如圖8所示。此彈框在輸入所有樣品信息后,點(diǎn)擊“入站”確定按鈕,將調(diào)用交互文件 中的新創(chuàng)建樣品信息newFunding方法。需要填寫的樣品信息為發(fā)起地址(當(dāng)前登錄的賬戶地址,不可修改),樣品名稱,樣品 ID,樣品介紹,是否隱藏(為選擇項(xiàng), 包括“true”和“false”),入站時間(可點(diǎn)擊日歷控件按鈕,選擇日歷上的時間作為醫(yī)療樣品入站時間)。

圖8 樣品入站彈出框

3.3 本站樣品界面

點(diǎn)擊導(dǎo)航欄的“本站樣品”鏈接,可以清晰地看到上下兩欄樣品界面,上一欄是本站已入站的樣品信息,狀態(tài)都是“已入站”;下一欄是本站已出站的樣品信息,狀態(tài)為“已出站”。在該界面代碼的編寫中,使用了通過樣品入站/出站狀態(tài)來劃分道不同結(jié)果集的getMyFunding 函數(shù)方法。每條樣品信息后都有“查看詳情”按鈕,可以進(jìn)一步查看樣品詳細(xì)信息介紹,也可以對入站的樣品進(jìn)行出站操作,或?qū)﹄[藏的樣品進(jìn)行解除隱藏操作。

4 結(jié) 論

通過對傳統(tǒng)醫(yī)療樣品信息系統(tǒng)進(jìn)行分析,找出其中存在的關(guān)鍵性問題。醫(yī)療樣品跟蹤系統(tǒng)的主要功能是實(shí)現(xiàn)可追溯性,從而保證信息的安全可靠,醫(yī)療站點(diǎn)可以通過訪問區(qū)塊鏈上的信息來跟蹤醫(yī)療樣品的真實(shí)性。利用區(qū)塊鏈不可篡改信息的特點(diǎn),來解決系統(tǒng)中存在的不足。同時根據(jù)分析結(jié)果,設(shè)計了對應(yīng)的智能合約,并將其部署到區(qū)塊鏈上。系統(tǒng)部署到運(yùn)行整個過程包括區(qū)塊鏈搭建、智能合約編寫、智能合約部署。具體工作為:

(1)基于醫(yī)療樣品跟蹤系統(tǒng)的發(fā)展現(xiàn)狀。利用區(qū)塊鏈的特殊優(yōu)勢,發(fā)展了以區(qū)塊鏈技術(shù)為基礎(chǔ)的跟蹤系統(tǒng)。有效地解決了醫(yī)療樣品跟蹤系統(tǒng)中存在的信息共享難、中心化嚴(yán)重、信息追溯難等問題。

(2)具體分析了醫(yī)療樣品跟蹤系統(tǒng)架構(gòu),詳細(xì)分析了該系統(tǒng)中數(shù)據(jù)結(jié)構(gòu)、功能需求,并完成智能合約的編寫,使用remix編譯器基于以太坊平臺對部署的智能合約進(jìn)行多種測試。

(3)結(jié)合最新的環(huán)境,使用了truffle框架在ganache上搭建區(qū)塊鏈運(yùn)行環(huán)境, 簡化了開發(fā)過程中重復(fù)進(jìn)行環(huán)境搭建過程,系統(tǒng)試錯成本低,方便數(shù)據(jù)測試。保證了整個開發(fā)過程高效、快捷。

猜你喜歡
站點(diǎn)合約樣品
完善樣品管理制度確保農(nóng)產(chǎn)品抽檢結(jié)果的準(zhǔn)確性
以“夏季百日攻堅”推進(jìn)遠(yuǎn)教工作拓展提升
地質(zhì)測試實(shí)驗(yàn)室樣品管理方案研究
實(shí)驗(yàn)室樣品管理
積極開展遠(yuǎn)程教育示范站點(diǎn)評比活動
質(zhì)檢機(jī)構(gòu)樣品管理的重要性
怕被人認(rèn)出
先進(jìn)站點(diǎn)應(yīng)與落后站點(diǎn)開展結(jié)對幫扶