• 
    

    
    

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

      醫(yī)院信息系統(tǒng)業(yè)務(wù)單據(jù)查詢的性能優(yōu)化與實(shí)現(xiàn)

      2023-05-17 03:17:18唐山李娟
      電子技術(shù)與軟件工程 2023年5期
      關(guān)鍵詞:序列化字段單據(jù)

      唐山 李娟

      (四川省計(jì)算機(jī)研究院 四川省成都市 610041)

      隨著醫(yī)院信息系統(tǒng)(Hospital Information System,以下簡(jiǎn)稱HIS 系統(tǒng))使用年份的增長(zhǎng),用戶數(shù)據(jù)的不斷積累,病人處方清單數(shù)據(jù)的不斷增加,若不對(duì)HIS 系統(tǒng)中的業(yè)務(wù)單據(jù)查詢采取進(jìn)一步的優(yōu)化措施,則在使用過(guò)程中,HIS 系統(tǒng)可能會(huì)出現(xiàn)業(yè)務(wù)單據(jù)數(shù)據(jù)查詢時(shí)間等待過(guò)長(zhǎng)、頁(yè)面無(wú)反應(yīng)、功能使用出現(xiàn)“卡死”等現(xiàn)象,嚴(yán)重影響醫(yī)院用戶在相關(guān)單據(jù)處理環(huán)節(jié)的使用體驗(yàn)。

      本文主要根據(jù)醫(yī)院業(yè)務(wù)單據(jù)數(shù)據(jù)存儲(chǔ)和檢索的實(shí)際情況,并結(jié)合業(yè)務(wù)單據(jù)相關(guān)特點(diǎn)(單據(jù)主要由單據(jù)整體信息和明細(xì)信息構(gòu)成),設(shè)計(jì)出一種“業(yè)務(wù)單據(jù)包”的業(yè)務(wù)單據(jù)查詢的優(yōu)化方法,用于提升HIS 系統(tǒng)業(yè)務(wù)單據(jù)數(shù)據(jù)查詢性能和頁(yè)面加載效率。

      本文中使用的名詞定義:

      退藥單:門診或住院患者,退藥的單據(jù),該單據(jù)包括單據(jù)整體信息(如:病人信息、藥品信息、費(fèi)用總額信息、制單信息、審核信息等)和明細(xì)信息(藥品名稱、規(guī)格、劑型、數(shù)量、單價(jià)、小計(jì)等),且具有審核流程。

      退費(fèi)單:門診患者退費(fèi)的業(yè)務(wù)單據(jù),該單據(jù)包括單據(jù)整體信息(如:病人信息、藥品信息、費(fèi)用總額信息、制單信息、審核信息等)和明細(xì)信息(藥品名稱、規(guī)格、劑型、數(shù)量、單價(jià)、小計(jì)等),且具有審核流程。同時(shí)門診退費(fèi)單可由退藥單直接生成(庫(kù)房未發(fā)藥時(shí))。

      住院沖銷單:針對(duì)診療服務(wù)進(jìn)行沖銷的單據(jù)。該單據(jù)包括單據(jù)整體信息(如:病人信息、診療服務(wù)信息、費(fèi)用總額信息、制單信息、審核信息等)和明細(xì)信息(診療服務(wù)名稱、數(shù)量、單價(jià)、小計(jì)等),且具有審核流程。

      統(tǒng)領(lǐng)單:護(hù)士每日一次性領(lǐng)取多位住院病人的藥品的單據(jù)。該單據(jù)包括單據(jù)整體信息(如:病人信息、費(fèi)用總額信息、制單信息等)和明細(xì)信息(藥品名稱、規(guī)格、劑型、數(shù)量等)。病人費(fèi)用清單:病人本次住院或門診就診過(guò)程中產(chǎn)生的費(fèi)用清單。

      1 常規(guī)優(yōu)化措施

      1.1 業(yè)務(wù)單據(jù)查詢語(yǔ)句的優(yōu)化

      在SQL 查詢語(yǔ)句的規(guī)范、嚴(yán)謹(jǐn)撰寫,能夠有效提升數(shù)據(jù)查詢速度,主要具有以下優(yōu)化SQL 語(yǔ)句措施:

      (1)避免在條件語(yǔ)句中對(duì)索引使用函數(shù);

      (2)適當(dāng)減少子查詢及其臨時(shí)表的使用能夠有效的提高查詢語(yǔ)句的性能;

      (3)盡量不要使用select *這種方式提取字段列,而要指定查詢的列名;

      (4)當(dāng)模糊匹配以%開頭時(shí),該列索引將失效,若不以%開頭,該列索引有效[1];

      (5)優(yōu)先使用union all,避免使用union。

      1.2 索引優(yōu)化

      為了提升表數(shù)據(jù)的檢索效率,減少磁盤I/O,有效避免全盤的表掃描,在創(chuàng)建表或表數(shù)據(jù)量過(guò)大時(shí),一般會(huì)在合適的字段上建立索引。建立索引時(shí)需注意:

      (1)條件語(yǔ)句中使用的字段應(yīng)盡量是索引中的字段[1];

      (2)很少在where 子句中出現(xiàn)的列,不宜建立索引[1];

      (3)多表關(guān)聯(lián)查詢時(shí),關(guān)聯(lián)字段需建立索引;

      (4)對(duì)經(jīng)常需要更新、刪除和插入的列(主鍵及外鍵除外)不宜建立索引[1];

      (5)表中的索引不宜過(guò)多。索引固然可以提高相應(yīng)查詢的效率,但由于數(shù)據(jù)插入或更新時(shí)可能導(dǎo)致重建索引,導(dǎo)致表中數(shù)據(jù)插入及數(shù)據(jù)更新的執(zhí)行效率。所以如何建索引需要視具體情況而定。

      1.3 數(shù)據(jù)歸檔

      對(duì)不活躍的數(shù)據(jù)并將其從生產(chǎn)系統(tǒng)遷移到長(zhǎng)期存儲(chǔ)系統(tǒng)中。針對(duì)醫(yī)院業(yè)務(wù)情況,可以對(duì)2 年及其以上的醫(yī)療數(shù)據(jù),如:費(fèi)用清單、處方清單、病案首頁(yè)等歷史數(shù)據(jù)按年度、醫(yī)療機(jī)構(gòu)(如:若一個(gè)區(qū)縣具有多個(gè)相互獨(dú)立的醫(yī)療機(jī)構(gòu),則可按縣域進(jìn)行部署,各機(jī)構(gòu)使用同一套HIS 系統(tǒng))進(jìn)行數(shù)據(jù)歸檔,便于保障當(dāng)前生產(chǎn)系統(tǒng)性能最優(yōu)。

      1.4 業(yè)務(wù)分區(qū)

      針對(duì)醫(yī)院的掛號(hào)、門診、住院、體檢等業(yè)務(wù)類型,進(jìn)行數(shù)據(jù)庫(kù)表分區(qū)創(chuàng)建,便于精準(zhǔn)定位分區(qū)查詢數(shù)據(jù),而不需要全表的掃描查詢,便能提高數(shù)據(jù)檢索效率。特別是醫(yī)院處方清單存在數(shù)據(jù)量較大的情況下,在查詢某住院病人處方清單時(shí),只需要傳入住院分區(qū)對(duì)應(yīng)的字段標(biāo)識(shí),即可從掛號(hào)、門診、住院、體檢等處方中快速檢索出該病人的處方明細(xì)情況。

      1.5 服務(wù)器端緩存技術(shù)

      通過(guò)服務(wù)器端緩存技術(shù),將HIS 系統(tǒng)的熱點(diǎn)數(shù)據(jù)、常用數(shù)據(jù)進(jìn)行緩存,讓用戶請(qǐng)求通過(guò)緩存服務(wù)器進(jìn)行處理(緩存中有此請(qǐng)求數(shù)據(jù),則無(wú)需從數(shù)據(jù)庫(kù)中提取數(shù)據(jù)),能夠有效降低數(shù)據(jù)庫(kù)訪問(wèn)壓力,提高整個(gè)系統(tǒng)的訪問(wèn)性能。

      2“業(yè)務(wù)單據(jù)包”的設(shè)計(jì)與實(shí)現(xiàn)

      2.1 應(yīng)用場(chǎng)景

      針對(duì)HIS 系統(tǒng)中的常用單據(jù),如:退藥單、退費(fèi)單、住院沖銷單、統(tǒng)領(lǐng)單、病人費(fèi)用清單等單據(jù),此類單據(jù)在數(shù)據(jù)量過(guò)大(如:加載退藥單時(shí),從上億條處方清單檢索出該單據(jù)的處方)且關(guān)聯(lián)多張業(yè)務(wù)表(如關(guān)聯(lián)醫(yī)生表、病人信息表、庫(kù)存表、費(fèi)用表等)后,可能會(huì)出現(xiàn)數(shù)據(jù)項(xiàng)加載過(guò)于緩慢、功能頁(yè)面“卡死”等情況,且此類單據(jù)的內(nèi)容項(xiàng)在后期變化較小,則可進(jìn)行“業(yè)務(wù)單據(jù)包”的方式實(shí)現(xiàn),便于業(yè)務(wù)單據(jù)數(shù)據(jù)的加載和查詢效率。

      2.2 定義

      “業(yè)務(wù)單據(jù)包”是指將特定的、不經(jīng)常修改的業(yè)務(wù)個(gè)體實(shí)例數(shù)據(jù),以json、xml 等方式進(jìn)行序列化,序列化后的數(shù)據(jù)視為一個(gè)整體的業(yè)務(wù)單據(jù)包,并存儲(chǔ)于“業(yè)務(wù)單據(jù)包”表中,表中的主鍵與業(yè)務(wù)單據(jù)表中的主鍵進(jìn)行關(guān)聯(lián)(如:退藥單中主鍵ID 與“業(yè)務(wù)單據(jù)包”表中主鍵ID 一致)。查詢對(duì)應(yīng)的某個(gè)業(yè)務(wù)單據(jù)時(shí),先從“業(yè)務(wù)單據(jù)包”表以唯一索引的方式來(lái)對(duì)該整體對(duì)象(單據(jù))進(jìn)行檢索并反序列化,最終完成單據(jù)加載。

      2.3 表結(jié)構(gòu)設(shè)計(jì)

      2.3.1 處方清單表(T_HIS_PRESCRIPTION_LIST)

      處方清單表主要用于存儲(chǔ)病人處方信息,如醫(yī)生信息、處方信息、藥品庫(kù)存信息、費(fèi)用信息等,為了考慮到在統(tǒng)計(jì)退藥、退費(fèi)、費(fèi)用結(jié)算等信息的便利,故此表的外鍵關(guān)聯(lián)字段較多,詳見表1。

      表1: 處方清單表

      2.3.2 業(yè)務(wù)單據(jù)表(T_HIS_BILL)

      業(yè)務(wù)單據(jù)表主要用于存儲(chǔ)單據(jù)信息,其具體設(shè)計(jì),詳見表2。

      表2: 業(yè)務(wù)單據(jù)表

      2.3.3“業(yè)務(wù)單據(jù)包”表(T_HIS_BILL_BAG)

      “業(yè)務(wù)單據(jù)包”表用于存儲(chǔ)業(yè)務(wù)單據(jù)的整體和明細(xì)數(shù)據(jù),詳見表3。

      2.3.4 處方清單表、業(yè)務(wù)單據(jù)表與“業(yè)務(wù)單據(jù)包”表之前的關(guān)系

      如圖1 所示。

      圖1: “業(yè)務(wù)單據(jù)包”表與單據(jù)表之間的關(guān)系圖

      2.4 實(shí)現(xiàn)流程設(shè)計(jì)

      在實(shí)現(xiàn)“業(yè)務(wù)單據(jù)包”存儲(chǔ)及查詢過(guò)程中,主要包括生成單據(jù)結(jié)果集、存儲(chǔ)單據(jù)結(jié)果集、查詢單據(jù)結(jié)果集、單據(jù)結(jié)果集反序列化等環(huán)節(jié),如圖2 所示。

      圖2: “業(yè)務(wù)單據(jù)包”實(shí)現(xiàn)流程圖

      2.5 實(shí)現(xiàn)過(guò)程

      2.5.1 生成單據(jù)結(jié)果集

      當(dāng)業(yè)務(wù)單據(jù)處于待審核狀態(tài)時(shí)(此時(shí)已不能修改單據(jù)明細(xì)數(shù)據(jù)),則將業(yè)務(wù)單據(jù)進(jìn)行json 或xml 格式處理。

      以退藥單為示例:

      2.5.2 存儲(chǔ)單據(jù)結(jié)果集

      將格式化的業(yè)務(wù)單據(jù)數(shù)據(jù)存儲(chǔ)于“業(yè)務(wù)單據(jù)包”表中,并將該條數(shù)據(jù)與業(yè)務(wù)單據(jù)表進(jìn)行關(guān)聯(lián)。關(guān)鍵代碼如下:

      2.5.3 單據(jù)查詢結(jié)果集

      查詢某單據(jù)時(shí),根據(jù)關(guān)聯(lián)的業(yè)務(wù)單據(jù)ID 進(jìn)行“業(yè)務(wù)單據(jù)包”表的數(shù)據(jù)查詢,判斷“業(yè)務(wù)單據(jù)包”表中是否已存儲(chǔ)業(yè)務(wù)單據(jù)(兼容歷史數(shù)據(jù)沒有存儲(chǔ)單據(jù)結(jié)果集的情況),關(guān)鍵代碼如下:

      2.5.4 單據(jù)結(jié)果集反序列化

      將查詢到的結(jié)果集進(jìn)行反序列化,生成單據(jù)對(duì)象,為數(shù)據(jù)應(yīng)用提供支持。

      3 結(jié)束語(yǔ)

      綜上所述,本文主要分析了當(dāng)前醫(yī)療信息系統(tǒng)中關(guān)于業(yè)務(wù)單據(jù)查詢存在的問(wèn)題,并較為詳細(xì)的敘述了當(dāng)前常規(guī)使用的優(yōu)化方法,同時(shí)提出了一種“業(yè)務(wù)單據(jù)包”的優(yōu)化方案,并給出了優(yōu)化方案從定義到設(shè)計(jì)實(shí)現(xiàn)的全過(guò)程,此優(yōu)化方案能夠減少業(yè)務(wù)表之間的關(guān)聯(lián),有效提高業(yè)務(wù)單據(jù)數(shù)據(jù)查詢和加載效率。

      猜你喜歡
      序列化字段單據(jù)
      圖書館中文圖書編目外包數(shù)據(jù)質(zhì)量控制分析
      如何建構(gòu)序列化閱讀教學(xué)
      甘肅教育(2020年14期)2020-09-11 07:58:36
      第三方單據(jù)辨析
      匯票在信用證項(xiàng)下單據(jù)融資中的作用
      重視單據(jù)的寄送
      Java 反序列化漏洞研究
      作文訓(xùn)練微格化、序列化初探
      CNMARC304字段和314字段責(zé)任附注方式解析
      嘜頭導(dǎo)致單據(jù)“不清潔”?
      無(wú)正題名文獻(xiàn)著錄方法評(píng)述
      洛浦县| 芒康县| 长泰县| 美姑县| 延边| 吉林市| 樟树市| 青田县| 翁源县| 大英县| 米脂县| 甘谷县| 永清县| 萍乡市| 台前县| 朝阳市| 临颍县| 甘洛县| 香格里拉县| 大荔县| 天祝| 五指山市| 汉中市| 普定县| 灌南县| 南开区| 吴忠市| 临城县| 昌都县| 枣强县| 嘉兴市| 类乌齐县| 汨罗市| 宁国市| 蒲城县| 田林县| 新宁县| 巫溪县| 承德县| 沭阳县| 杂多县|