• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看 ?

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

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

      王越,李國(guó),葉珉銓,陳子鑫,王譯正

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

      0 引 言

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

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

      1 系統(tǒng)分析

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

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

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

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

      1.2 功能模塊分析

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

      圖1 功能模塊圖

      各個(gè)功能模塊的描述:

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

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

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

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

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

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

      (7)站點(diǎn)信息展示模塊。此功能模塊為展示本站的部分重要信息,其中包括:站點(diǎn)名稱、站點(diǎn)地址、站點(diǎn)簡(jiǎn)介、站點(diǎn)等級(jí)、入站數(shù)量、出站數(shù)量、隱藏?cái)?shù)量、未隱藏?cái)?shù)量。其中站點(diǎn)名稱、站點(diǎn)簡(jiǎn)介、站點(diǎn)等級(jí)可以通過(guò)下個(gè)功能來(lái)進(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ū)塊鏈公共平臺(tái)主要有以太坊和超級(jí)賬本兩種,都是開(kāi)源且具有智能合約功能。以太坊的概念在2013到2014年之間提出,并在2014年通過(guò)ico眾籌后得到巨大的發(fā)展,在2018年后,成了市值第二高的加密貨幣,僅次于以太幣。其設(shè)計(jì)原則為簡(jiǎn)潔、通用、模塊化、無(wú)歧視,更好地解決初代貨幣擴(kuò)展性不足的問(wèn)題。醫(yī)療樣品跟蹤系統(tǒng)采用的是以太坊平臺(tái),使用其自身加密貨幣以太幣提供的去中心化以太虛擬機(jī)來(lái)處理結(jié)點(diǎn)之間的合約。

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

      2.2 智能合約設(shè)計(jì)

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

      2.2.4 智能合約部署

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

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

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

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

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

      3 系統(tǒng)展示

      3.1 頁(yè)面整體框架

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

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

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

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

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

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

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

      前端界面先通過(guò)登錄成功,在賬戶地址認(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”),入站時(shí)間(可點(diǎn)擊日歷控件按鈕,選擇日歷上的時(shí)間作為醫(yī)療樣品入站時(shí)間)。

      圖8 樣品入站彈出框

      3.3 本站樣品界面

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

      4 結(jié) 論

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

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

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

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

      猜你喜歡
      本站合約站點(diǎn)
      維斯塔潘衛(wèi)冕F1總冠軍
      SKY微型氣象站對(duì)比觀測(cè)數(shù)據(jù)分析
      綠色科技(2021年2期)2021-03-11 00:37:38
      基于Web站點(diǎn)的SQL注入分析與防范
      電子制作(2019年14期)2019-08-20 05:43:42
      2017~2018年冬季西北地區(qū)某站點(diǎn)流感流行特征分析
      霜凍精細(xì)化預(yù)報(bào)模型
      首屆歐洲自行車共享站點(diǎn)協(xié)商會(huì)召開(kāi)
      怕被人認(rèn)出
      合約必守,誰(shuí)能例外!——對(duì)“情勢(shì)變更”制度不可寄于過(guò)高期望
      利用地面測(cè)報(bào)軟件制作氣壓簡(jiǎn)表
      黑龍江氣象(2010年4期)2010-12-25 09:38:22
      汾阳市| 斗六市| 大姚县| 五峰| 镇平县| 诸城市| 蕉岭县| 红桥区| 中牟县| 定边县| 江达县| 昆明市| 巧家县| 南华县| 慈溪市| 化德县| 青田县| 精河县| 蓬安县| 石首市| 平湖市| 武强县| 清徐县| 大石桥市| 南漳县| 永昌县| 宜兰县| 台北县| 隆回县| 建宁县| 西吉县| 宁夏| 三亚市| 武功县| 调兵山市| 大兴区| 陆丰市| 两当县| 韶关市| 建湖县| 新化县|