王興強(qiáng),劉長(zhǎng)興
(濟(jì)南軍區(qū)總醫(yī)院信息科,山東濟(jì)南,250031)
利用Oracle觸發(fā)器排除HIS系統(tǒng)故障2例
王興強(qiáng),劉長(zhǎng)興
(濟(jì)南軍區(qū)總醫(yī)院信息科,山東濟(jì)南,250031)
本文介紹了2例“軍衛(wèi)一號(hào)”系統(tǒng)故障的分析與利用Oracle觸發(fā)器的解決方法。
軍衛(wèi)一號(hào);數(shù)據(jù)庫(kù);觸發(fā)器
“軍衛(wèi)一號(hào)”醫(yī)院信息系統(tǒng)在我院已運(yùn)行十多年,系統(tǒng)穩(wěn)定,運(yùn)行良好。但隨著LIS、PACS、電子病歷、感染控制、手術(shù)麻醉、成本核算、移動(dòng)醫(yī)療、虛擬化等系統(tǒng)的上線,要求HIS系統(tǒng)提供接口,實(shí)現(xiàn)信息共享,甚至對(duì)HIS系統(tǒng)的數(shù)據(jù)還有嚴(yán)格要求,需要對(duì)“軍衛(wèi)一號(hào)”O(jiān)racle數(shù)據(jù)庫(kù)不斷升級(jí)改造[1-3],對(duì)HIS系統(tǒng)不斷完善及開發(fā)[4-8]。本文介紹2例通過(guò)Oracle觸發(fā)器排除HIS系統(tǒng)數(shù)據(jù)不規(guī)范引起的故障。
我院執(zhí)行全成本核算,全成本核算系統(tǒng)根據(jù)開單科室、執(zhí)行科室等多種因素計(jì)算成本分?jǐn)偂⑹杖敕殖傻葦?shù)據(jù),要求HIS系統(tǒng)數(shù)據(jù)完整規(guī)范,如數(shù)據(jù)不完整或不規(guī)范,無(wú)法核算或核算不準(zhǔn)確。
1.1 故障現(xiàn)象
成本核算系統(tǒng)試運(yùn)行期間,部分科室反映核算數(shù)據(jù)不準(zhǔn)確,成本分?jǐn)?、收入分成都比科室自行掌握的?shù)據(jù)少。
1.2 故障分析
在住院費(fèi)用明細(xì)表INP_BILL_DETAIL中,部分?jǐn)?shù)據(jù)開單科室字段ORDERED_BY為空。對(duì)不完整數(shù)據(jù)分析,為住院計(jì)價(jià)錄入時(shí)誤操作,未錄入開單科室或刪除。
1.3 故障排除
通過(guò)建立Oracle觸發(fā)器,從后臺(tái)解決此問(wèn)題。對(duì)住院費(fèi)用明細(xì)表INP_BILL_DETAIL,建立插入操作INSERT觸發(fā)器,如下:
CREATE OR REPLACE TRIGGER INPBILL.INP_BILL_DETAIL_INSERT_ORDERED //創(chuàng)建觸發(fā)器
計(jì)價(jià)錄入項(xiàng)目開單科室均為本科室,因此直接將患者所在病區(qū)代碼賦值給開單科室即可。這樣避免信息科工程師進(jìn)行后臺(tái)維護(hù),既減少維護(hù)工作量,又規(guī)范完善了數(shù)據(jù)。
在HIS系統(tǒng)中,患者需要轉(zhuǎn)科時(shí),轉(zhuǎn)出、轉(zhuǎn)入科室的醫(yī)生和護(hù)士都要進(jìn)行相應(yīng)轉(zhuǎn)科操作。首先應(yīng)該是轉(zhuǎn)出科室醫(yī)生將患者在住院醫(yī)生工作站中做“移出”操作,后轉(zhuǎn)出科室護(hù)士在護(hù)士工作站中做“轉(zhuǎn)科”操作,轉(zhuǎn)入科室護(hù)士在護(hù)士工作站做“轉(zhuǎn)入”操作,最后轉(zhuǎn)出科室醫(yī)生在醫(yī)生工作站做“移入”操作,完成整個(gè)轉(zhuǎn)科流程。
2.1 故障現(xiàn)象
科室醫(yī)生在醫(yī)生工作站的患者列表中看不到轉(zhuǎn)入患者信息,只能在全科患者列表中找到,也無(wú)法做“移入”操作,可能會(huì)造成主管醫(yī)生在集中處理患者醫(yī)囑或病歷時(shí)遺漏該患者。
2.2 故障分析
沒(méi)有按正常的轉(zhuǎn)科流程進(jìn)行操作,轉(zhuǎn)出科室醫(yī)生還沒(méi)有將患者“移出”,轉(zhuǎn)出科室護(hù)士就進(jìn)行了“轉(zhuǎn)科”操作,轉(zhuǎn)入科室繼續(xù)“轉(zhuǎn)入”,造成轉(zhuǎn)入科室醫(yī)生無(wú)法進(jìn)行“移入”操作,也無(wú)法在自己的患者列表中找到該患者。如果及時(shí)發(fā)現(xiàn)問(wèn)題,轉(zhuǎn)入科室護(hù)士做“取消入科”操作,重新按照正常的轉(zhuǎn)科流程進(jìn)行操作也可以進(jìn)行補(bǔ)救,但如果轉(zhuǎn)入科室醫(yī)生已經(jīng)下了醫(yī)囑,就不能再重新轉(zhuǎn)科,只能在后臺(tái)修改聯(lián)機(jī)病歷描述MR_ON_LINE中的REQUEST_DOCTOR_ID字段。
2.3 故障排除
轉(zhuǎn)出科室護(hù)士在進(jìn)行“轉(zhuǎn)出”操作時(shí),在后臺(tái)數(shù)據(jù)庫(kù)中生成一條患者轉(zhuǎn)科記錄PATS_IN_TRANSFERRING,對(duì)該表建立插入操作INSERT觸發(fā)器,判斷是否為醫(yī)生未做“移出”操作,如果沒(méi)有,則后臺(tái)修改數(shù)據(jù),將患者“移出”,具體如下:
CREATE OR REPLACE TRIGGER INPADM.”PATS_IN_TRANSFERRING_INSERT” //創(chuàng)建觸發(fā)器
BEFORE INSERT ON "INPADM"."PATS_IN_TRANSFERRING" FOR EACH ROW
WHEN (NEW.DEPT_TRANSFERED_FROM IS NOT NULL) //條件為轉(zhuǎn)出科室非空
DECLARE
醫(yī)生在做“移出”操作時(shí),將聯(lián)機(jī)病歷描述MR_ON_LINE的REQUEST_DOCTOR_ID字段置為“*”,STATUS字段也置為“*”。通過(guò)創(chuàng)建觸發(fā)器PATS_IN_TRANSFERRING_INSERT,提取轉(zhuǎn)科患者未移出病歷,后臺(tái)修改聯(lián)機(jī)病歷描述,置為移出狀態(tài)后,轉(zhuǎn)入科室醫(yī)生可將患者病歷“移入”,在自己的患者列表中即可看到該患者病歷。
上述故障是由操作人員非正常操作而引起的數(shù)據(jù)不規(guī)范、不完整的故障。通過(guò)對(duì)相應(yīng)的數(shù)據(jù)庫(kù)表創(chuàng)建觸發(fā)器,篩選執(zhí)行條件,實(shí)現(xiàn)后臺(tái)數(shù)據(jù)自動(dòng)修改,排除故障。通過(guò)觸發(fā)器排除故障,簡(jiǎn)單高效,但在正式服務(wù)器啟用觸發(fā)器時(shí)要進(jìn)行反復(fù)測(cè)試,一旦觸發(fā)器出現(xiàn)問(wèn)題,可能對(duì)整個(gè)系統(tǒng)帶來(lái)非常嚴(yán)重的后果,影響正常的系統(tǒng)運(yùn)行。
[1] 李志勇,崔珊珊,韓菲.“軍衛(wèi)一號(hào)”醫(yī)保結(jié)算中存在的問(wèn)題及解決辦法[J].中國(guó)醫(yī)療設(shè)備,2012,27(12):96-97.
[2] 王興強(qiáng),劉長(zhǎng)興,劉國(guó)偉. “軍衛(wèi)一號(hào)”數(shù)據(jù)庫(kù)從64位到32位的異地重建[J].醫(yī)療衛(wèi)生裝備,2014,35(4):61-62.
[3] 王興強(qiáng),劉長(zhǎng)興,劉國(guó)偉. “軍衛(wèi)一號(hào)”數(shù)據(jù)庫(kù)“瘦身”方法設(shè)計(jì)[J].醫(yī)療衛(wèi)生裝備,2014,35(8):67-68.
[4] 王興強(qiáng),劉長(zhǎng)興,劉國(guó)偉.改進(jìn)的藥品便捷輸入法在“軍衛(wèi)一號(hào)”上的應(yīng)用[J].醫(yī)療衛(wèi)生裝備,2011,32(6):55-56.
[5] 王興強(qiáng),劉長(zhǎng)興,劉國(guó)偉.“軍衛(wèi)一號(hào)”中出現(xiàn)“一號(hào)多人”問(wèn)題的分析與對(duì)策[J].中國(guó)醫(yī)療設(shè)備,2011,26(6):45-46.
[6] 王興強(qiáng),劉長(zhǎng)興,劉國(guó)偉.基于“軍衛(wèi)一號(hào)”工程的二次開發(fā)模式[J].中國(guó)醫(yī)療設(shè)備,2011,26(4):49-51.
[7] 王興強(qiáng),徐茂云.基于“軍衛(wèi)一號(hào)”的危急值警示功能的設(shè)計(jì)與實(shí)現(xiàn)[J].中國(guó)醫(yī)療設(shè)備,2012,27(3):98-99.
[8] 王興強(qiáng),劉長(zhǎng)興,劉國(guó)偉. 抗菌藥物聯(lián)用警示在“軍衛(wèi)一號(hào)”上的應(yīng)用[J].醫(yī)療衛(wèi)生裝備,2013,34(10):51-53.
Two Cases of Troubleshooting for HIS System’s Failure by Oracle Trigger
WANG Xing-qiang,LIU Chang-xing
(Department of Information, General Hospital of Jinan Military Region, Jinan 250031)
This paper introduces the analysis of the failure of 2 cases of "military health No. 1" system and the solution of the Oracle trigger.
No.1 Military Medical System; Database; Trigger
國(guó)家自然科學(xué)基金(81502896);山東省自然科學(xué)基金(BS2015YY022)
劉長(zhǎng)興,E-mail: xingqiangwang@163.com。