于一高并發(fā)檢索系統(tǒng),該系統(tǒng)包括一個或多個應(yīng)用服務(wù)器和后端數(shù)據(jù)庫,每個應(yīng)用服務(wù)器均作為前端用戶端,包括關(guān)鍵字錄入單元、藥品檢索單元、數(shù)據(jù)緩存單元和結(jié)果集處理單元;其中,關(guān)鍵字錄入單元的輸出端與藥品檢索單元的輸入端連接,藥品檢索單元的輸出端分別與數(shù)據(jù)緩存單元和后端數(shù)據(jù)庫連接,后端數(shù)據(jù)庫通過結(jié)果集處理單元與數(shù)據(jù)緩存單元連接。
[0018]進一步的,前端用戶端還包括定時同步單元,定時同步單元的輸出端與數(shù)據(jù)緩存單元連接,用于實現(xiàn)各個應(yīng)用服務(wù)器的數(shù)據(jù)緩存單元完成緩存同步,定時同步數(shù)據(jù)緩存單元中的數(shù)據(jù)。
[0019]如圖2所示,一種實現(xiàn)醫(yī)院HIS系統(tǒng)中藥品的高并發(fā)檢索方法,所述方法包括步驟S1:在用戶端及關(guān)鍵字錄入單元輸入待查詢藥品的關(guān)鍵字,觸發(fā)查詢,藥品檢索單元首先在數(shù)據(jù)緩存單元中,根據(jù)該關(guān)鍵字查找是否有對應(yīng)的value值。
[0020]SlOl:若存在,則將查詢結(jié)果數(shù)據(jù)轉(zhuǎn)換為一定格式的字符串的結(jié)果集返至用戶端。
[0021]S102:若不存在,則再到數(shù)據(jù)庫中進行模糊查詢,并將結(jié)果集返至用戶端,同時以鍵值對的形式緩存到數(shù)據(jù)緩存單元,并記錄該關(guān)鍵字,通過結(jié)果集處理單元將該結(jié)果集中的字符串作為value值,下次再輸入同樣的關(guān)鍵字時即可直接從數(shù)據(jù)緩存單元獲取,而不必再到數(shù)據(jù)庫中查詢。
[0022]其中,所述關(guān)鍵字包括藥品的兩位拼音碼和藥品編碼。所述一定格式包括JSON格式。
[0023]進一步的,所述方法還包括步驟S2:當(dāng)在用戶端繼續(xù)輸入關(guān)鍵字時,用戶端直接在返回的結(jié)果集中通過腳本進行快速過濾,不會再與數(shù)據(jù)庫進行交互。
[0024]進一步的,所述方法還包括步驟S3:當(dāng)藥品庫存量變化時,數(shù)據(jù)庫通過觸發(fā)器將庫存表中對應(yīng)的藥品數(shù)據(jù)記錄一個時間戳。
[0025]進一步的,所述方法還包括步驟S4:通過定時同步單元按預(yù)設(shè)周期自動查詢庫存量變化的藥品信息,根據(jù)步驟S3中的時間戳和當(dāng)前時間的比較來判斷藥品信息是否變化,然后刷新數(shù)據(jù)緩存單元中的對應(yīng)的藥品庫存量信息。
[0026]其中,預(yù)設(shè)周期可根據(jù)具體情況來自定義,如根據(jù)用戶規(guī)模等,一般可設(shè)置為30秒。
[0027]進一步的,所述方法還包括步驟S5:在集群環(huán)境下,存在多個應(yīng)用服務(wù)器多個用戶端,此時,通過緩存同步機制使得各個應(yīng)用服務(wù)器所擁有的藥品緩存數(shù)據(jù)保持一致,一個應(yīng)用服務(wù)器的數(shù)據(jù)緩存單元中的緩存數(shù)據(jù)變化,將同步至集群中的其他應(yīng)用服務(wù)器的數(shù)據(jù)緩存單元中。通過引入分布式緩存機制,大大提高了高并發(fā)情況下的藥品庫存檢索效率,提供高了 HIS系統(tǒng)穩(wěn)定性。
【主權(quán)項】
1.一種實現(xiàn)醫(yī)院His系統(tǒng)中藥品的高并發(fā)檢索方法,其特征在于所述方法包括步驟S1:在用戶端輸入待查詢藥品的關(guān)鍵字,觸發(fā)查詢,藥品檢索單元首先在數(shù)據(jù)緩存單元中,根據(jù)該關(guān)鍵字查找是否有對應(yīng)的value值; 5101:若存在,則將查詢結(jié)果數(shù)據(jù)轉(zhuǎn)換為一定格式的字符串的結(jié)果集返至用戶端; 5102:若不存在,則再到數(shù)據(jù)庫中進行模糊查詢,并將結(jié)果集返至用戶端,同時以鍵值對的形式緩存到數(shù)據(jù)緩存單元,并記錄該關(guān)鍵字,將該結(jié)果集中的字符串作為value值,下次再輸入同樣的關(guān)鍵字時即可直接從數(shù)據(jù)緩存單元獲取,而不必再到數(shù)據(jù)庫中查詢。2.根據(jù)權(quán)利要求1所述的一種實現(xiàn)醫(yī)院HIS系統(tǒng)中藥品的高并發(fā)檢索方法,其特征在于:所述關(guān)鍵字包括藥品的兩位拼音碼和藥品編碼。3.根據(jù)權(quán)利要求1所述的一種實現(xiàn)醫(yī)院HIS系統(tǒng)中藥品的高并發(fā)檢索方法,其特征在于:所述一定格式包括JSON格式。4.根據(jù)權(quán)利要求1所述的一種實現(xiàn)醫(yī)院HIS系統(tǒng)中藥品的高并發(fā)檢索方法,其特征在于:所述方法還包括步驟S2:當(dāng)在用戶端繼續(xù)輸入關(guān)鍵字時,用戶端直接在返回的結(jié)果集中通過腳本進行快速過濾,不會再與數(shù)據(jù)庫進行交互。5.根據(jù)權(quán)利要求1所述的一種實現(xiàn)醫(yī)院HIS系統(tǒng)中藥品的高并發(fā)檢索方法,其特征在于:所述方法還包括步驟S3:當(dāng)藥品庫存量變化時,數(shù)據(jù)庫通過觸發(fā)器將庫存表中對應(yīng)的藥品數(shù)據(jù)記錄一個時間戳。6.根據(jù)權(quán)利要求5所述的一種實現(xiàn)醫(yī)院HIS系統(tǒng)中藥品的高并發(fā)檢索方法,其特征在于:所述方法還包括步驟S4:通過定時同步單元按預(yù)設(shè)周期自動查詢庫存量變化的藥品信息,根據(jù)步驟S3中的時間戳和當(dāng)前時間的比較來判斷藥品信息是否變化,然后刷新數(shù)據(jù)緩存單元中的對應(yīng)的藥品庫存量信息。7.根據(jù)權(quán)利要求1所述的一種實現(xiàn)醫(yī)院HIS系統(tǒng)中藥品的高并發(fā)檢索方法,其特征在于:所述方法還包括步驟S5:在集群環(huán)境下,通過緩存同步機制使得各個應(yīng)用服務(wù)器所擁有的藥品緩存數(shù)據(jù)保持一致,一個應(yīng)用服務(wù)器的數(shù)據(jù)緩存單元中的緩存數(shù)據(jù)變化,將同步至集群中的其他應(yīng)用服務(wù)器的數(shù)據(jù)緩存單元中。
【專利摘要】本發(fā)明公開了一種實現(xiàn)醫(yī)院HIS系統(tǒng)中藥品的高并發(fā)檢索方法,所述方法包括步驟S1:在用戶端輸入待查詢藥品的關(guān)鍵字,觸發(fā)查詢,藥品檢索單元首先在數(shù)據(jù)緩存單元中,根據(jù)該關(guān)鍵字查找是否有對應(yīng)的value值;S101:若存在,則將查詢結(jié)果數(shù)據(jù)轉(zhuǎn)換為一定格式的字符串的結(jié)果集返至用戶端;S102:若不存在,則再到數(shù)據(jù)庫中進行模糊查詢,并將結(jié)果集返至用戶端,同時以鍵值對的形式緩存到數(shù)據(jù)緩存單元,并記錄該關(guān)鍵字,將該結(jié)果集中的字符串作為value值,下次再輸入同樣的關(guān)鍵字時即可直接從數(shù)據(jù)緩存單元獲取,而不必再到數(shù)據(jù)庫中查詢。本發(fā)明克服了高并發(fā)下檢索時速度慢、數(shù)據(jù)不夠精確、對客服端壓力過大的問題,使用戶的操作能夠流暢進行,且保證數(shù)據(jù)的準(zhǔn)確性。
【IPC分類】G06F17/30
【公開號】CN105095424
【申請?zhí)枴緾N201510421419
【發(fā)明人】詹開明, 林隆永, 李丁
【申請人】四川久遠(yuǎn)銀海軟件股份有限公司
【公開日】2015年11月25日
【申請日】2015年7月17日