丁士富 徐然 劉大龍
摘要:對(duì)于電子病歷的使用者,不管是增、刪、修改,或是審閱電子病歷,系統(tǒng)均會(huì)留下記錄和修改前的原始版本,便于事后追蹤。在這個(gè)過(guò)程中,數(shù)字證書的重點(diǎn)建設(shè)至關(guān)重要。數(shù)字證書作為一種電子簽名機(jī)制,其概念是根據(jù)檔案內(nèi)容進(jìn)行運(yùn)算,生成一個(gè)加密后的散列驗(yàn)證值,以供接收端驗(yàn)證,可以確保檔案具有正確的來(lái)源(避免身份偽冒)和完整傳遞的內(nèi)容。本文以某醫(yī)院數(shù)據(jù)驗(yàn)簽建設(shè)方案為例,詳細(xì)介紹了電子病歷數(shù)字簽名業(yè)務(wù)流程邏輯、后臺(tái)建設(shè)方案及前臺(tái)使用的整套流程,該案例取得了良好的社會(huì)效益與經(jīng)濟(jì)效益,對(duì)國(guó)內(nèi)大型綜合醫(yī)院具有廣泛適用性。
關(guān)鍵詞:數(shù)據(jù)安全;高質(zhì)量發(fā)展;數(shù)字簽名
一、引言
根據(jù)國(guó)家衛(wèi)健委《公立醫(yī)院高質(zhì)量發(fā)展促進(jìn)行動(dòng)(2021—2025年)》文件要求,建設(shè)“三位一體”智慧醫(yī)院已成為國(guó)內(nèi)各大型三甲綜合醫(yī)院信息化業(yè)務(wù)的發(fā)展方向。以作者所在醫(yī)院為例,在信息系統(tǒng)不斷建設(shè)完善過(guò)程中,首先需要完善系統(tǒng)并補(bǔ)充短板。其次,就是要將醫(yī)院各個(gè)環(huán)節(jié)中業(yè)務(wù)系統(tǒng)打通,進(jìn)一步發(fā)揮信息化價(jià)值。在這一過(guò)程中,電子病歷已逐漸成為各系統(tǒng)集成交互的中心[1]。所謂的電子病歷,即是以數(shù)字化的方式記錄病患病歷中的內(nèi)容,取代原有的紙本病歷記錄的方式[2]。相較于傳統(tǒng)的紙本病歷,電子病歷有以下的優(yōu)點(diǎn)。
①促進(jìn)院際交換。病歷電子化以后,病患資料在患者同意下,可以直接傳輸至轉(zhuǎn)診的醫(yī)院,方便患者就醫(yī),也減少醫(yī)療資源的浪費(fèi)。
②高效率。紙本病歷書寫后僅能在一個(gè)地方取用相當(dāng)不便。而電子病歷生成后,符合規(guī)定的醫(yī)療人員都可立即取用,提高了獲取病患及時(shí)病況的效率。
③準(zhǔn)確性。手寫的紙本病歷,醫(yī)療人員會(huì)出現(xiàn)難以辨識(shí)書寫者筆跡的情況;而電子病歷不僅清晰易讀,也便于理解。
④法律文件。電子病歷有嚴(yán)格的監(jiān)控規(guī)范,簽署后只有原作者可以進(jìn)行修改,無(wú)論是增加、刪除、修改、復(fù)制還是查閱文檔,系統(tǒng)都會(huì)有記錄,避免篡改病歷的發(fā)生。
⑤永久儲(chǔ)存:紙本病歷保存困難,而電子病歷可以很容易地永久保存,同時(shí)也節(jié)省空間。
⑥環(huán)保。在醫(yī)院實(shí)施電子病歷后,除非必要情況下,可以不再打印紙質(zhì)病歷,有效減少紙張浪費(fèi)。
以下詳細(xì)介紹我院數(shù)據(jù)驗(yàn)簽建設(shè)方案:
二、業(yè)務(wù)流程邏輯說(shuō)明
①醫(yī)生在醫(yī)生工作站完成手術(shù)同意書的錄入和生成,并向患方講述;
②患方對(duì)知情文書內(nèi)容認(rèn)可、無(wú)問(wèn)題,直接在簽名屏上簽名、采集指紋信息;
③信手書PC客戶端簽名控件發(fā)送知情同意書數(shù)據(jù)摘要、患者簽名圖片、指紋信息到信手書服務(wù)器,申請(qǐng)患者事件簽名證書(認(rèn)證本次簽署事件的專用證書);
④信手書服務(wù)器簽發(fā)患者事件簽名證書;
⑤使用簽發(fā)的患者事件簽名證書對(duì)知情同意書進(jìn)行數(shù)字簽名;
⑥將簽名信息(患者簽名值、簽名圖片、患者指紋信息)發(fā)送給EMR系統(tǒng);
⑦實(shí)現(xiàn)醫(yī)生USB Key簽名及其他后續(xù)業(yè)務(wù)。
三、業(yè)務(wù)場(chǎng)景實(shí)現(xiàn)方案
(一)證書注冊(cè)綁定
在系統(tǒng)用戶表中增加“用戶唯一標(biāo)識(shí)”字段,用于建立業(yè)務(wù)系統(tǒng)用戶與用戶KEY的對(duì)應(yīng)關(guān)系,證書用戶唯一標(biāo)識(shí):SF+18身份證號(hào)。在應(yīng)用系統(tǒng)【用戶維護(hù)】功能增加“用戶唯一標(biāo)識(shí)”界面元素,對(duì)于該內(nèi)容信息需提供兩種方式進(jìn)行維護(hù):手工錄入、通過(guò)讀取USB Key獲取。
讀取當(dāng)前插入KEY的證書用戶唯一標(biāo)識(shí)(用戶綁定時(shí)調(diào)用):
StringstrUserCert=axXTXApp_Client.SOF_ExportUserCert(strCertId);//導(dǎo)出用戶證書
StringstrUserCertID=axXTXApp_Client.SOF_GetCertInfoByOid(strUserCert, oid);//獲取身份證號(hào)
(二)證書登錄
常見有進(jìn)入系統(tǒng)時(shí)登錄和簽名時(shí)登錄兩種方式。需增加顯示用戶列表的代碼修改登錄界面,用戶名采用下拉列表,從USB key中讀取
StringstrUserList =axXTXApp_Client.SOF_GetUserList();
列表格式:姓名||Certid
服務(wù)器端產(chǎn)生隨機(jī)數(shù),并用服務(wù)器證書對(duì)隨機(jī)數(shù)簽名
string strRandom = svs.GenRandom(16);//獲取服務(wù)器隨機(jī)數(shù)
(三)服務(wù)端驗(yàn)證客戶端證書有效性
int ret V_cert = svs. ValidateAndSaveCertificate (strUserCert);switch (retV_cert)case 0: break;case 1: break;
case -1: MessageBox.Show("不是所信任的根", "提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return;
case -2: MessageBox.Show(“超過(guò)有效期,請(qǐng)更換證書“提示”MessageBoxButtons.OK, MessageBoxIcon.Warning); return.
(四)業(yè)務(wù)系統(tǒng)獲取證書唯一標(biāo)識(shí),并與數(shù)據(jù)庫(kù)比對(duì),比對(duì)成功時(shí)登錄成功
// 獲取“證書用戶唯一標(biāo)識(shí)”,默認(rèn)為SM2證書
strUserID=XTXAPP.SOF_GetCertInfoByOid(strClientCert,strCertOIDSM2)
業(yè)務(wù)系統(tǒng)根據(jù)“證書用戶唯一標(biāo)識(shí)”與數(shù)據(jù)庫(kù)進(jìn)行匹配;匹配成功后,檢查當(dāng)前用戶是否已保存了電子簽章,若沒(méi)保存,讀取當(dāng)前KEY中的電子簽章進(jìn)行保存,若已保存不做操作。查詢用戶權(quán)限,成功進(jìn)入業(yè)務(wù)系
統(tǒng)。
MessageBox(“提示”,“登錄成功!”)
(五)簽名加蓋時(shí)間戳
1.對(duì)原文數(shù)據(jù)數(shù)字簽名
客戶端簽名,利用私鑰對(duì)簽名原文簽名,簽名時(shí)必須插上Key而且必須已經(jīng)登錄
string strOrgData = rTxtOrgData.Text;//獲取簽名原文
if (strOrgData == null || strOrgData == "")
{MessageBox.Show(“簽名原文為空”,“提示”, MessageBoxButtons.OK, MessageBoxIcon.Warning);return;}
2.驗(yàn)證數(shù)字簽名
業(yè)務(wù)系統(tǒng)從數(shù)據(jù)庫(kù)中獲取簽名證書、簽名原文、簽名值,調(diào)用驗(yàn)證接口進(jìn)行驗(yàn)證。
根據(jù)簽名證書驗(yàn)證簽名 0 表示驗(yàn)證成功
int resSVS = svs.VerifySignatureBySN(certSn, strOrgData, strSignValue);
3.驗(yàn)證時(shí)間戳
業(yè)務(wù)系統(tǒng)從數(shù)據(jù)庫(kù)取出時(shí)間戳值進(jìn)行驗(yàn)證。
// VerifyTS,參數(shù)1:時(shí)間戳值;參數(shù)2:原文,若原文為空,則不驗(yàn)證原文。
三、電子病歷系統(tǒng)中的醫(yī)囑電子簽名顯示規(guī)則
(一)臨時(shí)醫(yī)囑電子簽名顯示規(guī)則:
①處理醫(yī)囑。護(hù)士校對(duì)醫(yī)囑后,即在簽名處顯示校對(duì)護(hù)士手寫姓名。責(zé)任或值班護(hù)士在PDA端執(zhí)行醫(yī)囑后,該條醫(yī)囑“執(zhí)行/確認(rèn)時(shí)間”欄由實(shí)際執(zhí)行醫(yī)囑時(shí)間替換原來(lái)的校對(duì)醫(yī)囑時(shí)間,同時(shí)將“執(zhí)行/確認(rèn)簽名”欄由執(zhí)行護(hù)士手寫體簽名替換校對(duì)護(hù)士的手寫簽名。
②實(shí)行電子簽名后,對(duì)于檢查、病理、內(nèi)鏡等非本科室護(hù)士執(zhí)行的醫(yī)囑,默認(rèn)校對(duì)醫(yī)囑護(hù)士宋體簽名,責(zé)任護(hù)士不需要在PDA中手動(dòng)執(zhí)行該醫(yī)囑。
③目前需要跨科室執(zhí)行的醫(yī)囑,例如術(shù)中用藥、術(shù)前抗生素等,屬于手術(shù)室護(hù)士、DSA護(hù)士、血透室護(hù)士操作的醫(yī)囑,病房護(hù)士無(wú)需操作PDA。(不需要點(diǎn)執(zhí)行或者取消)。稍后,執(zhí)行完畢后會(huì)顯示跨科室護(hù)士的電子簽名。
(二)長(zhǎng)期醫(yī)囑簽名顯示規(guī)則
所有醫(yī)囑校對(duì)都要顯示校對(duì)人的手寫簽名。護(hù)士務(wù)必在停止醫(yī)囑之前進(jìn)行審核,然后患者才能出院,這樣護(hù)士的電子簽名才能顯示(否則顯示為空白)。
四、某份電子病歷入院記錄后臺(tái)數(shù)據(jù)驗(yàn)簽報(bào)告
(一)數(shù)字證書片段截取
MIIEmzCCBEKgAwIBAgIKGhAAAAAIOGEWIDTjENMASGA1UECgwEOkpDQTENMASGA1UECwwEQkpDOTEXMBIMDAwWhcNMTkwODIOMTU10
(二)電子簽名值
:MEYCIQD5++9k5H2ie2sQxFSaJk2ulcvMkOGAIhAKzs39YPUDuP2oP7CBE/CQnQ6+ckHAiy5ZtoH3C+2dF0
(三)電子簽名數(shù)據(jù)原文片段截取