單機版電子病歷在使用時,由於所在的醫療機構不變,不需要考慮醫療機構信息的問題,但是當在雲端使用電子病歷時,各個醫療機構的數據保存在相同的數據庫中,如果沒有醫療機構的信息,則無法分辨數據的來源,給存儲和查詢帶來混亂,因此必須加以處理。
原則上,給每個醫療機構創建一個數據表,可以保證數據的不混淆,但是隨着用戶的增加,數據庫需要增加大量的數據表,數據表的維護也比較麻煩,增加了許多工作量。考慮到雲端使用的醫療機構一般都是相對較小的醫療機構,產生的數據量並不是很大,單獨建表一方面佔用數據庫資源,另一方面給維護帶來許多困難,因此最後決定採用增加醫療機構ID字段的方式來區分數據的來源。
由於初期設計電子病歷過程中,大量的基礎數據表已經創建完畢,一個一個的人工修改非常繁瑣,所有找了一個將所有表增加同一個字段的方法,如下:
use mydatabase
declare @sql varchar(200),@name varchar(40)
declare my_cursor scroll cursor for select name from sysobjects where type='u'
open my_cursor
fetch next from my_cursor into @name
while(@@fetch_status==0)
begin
print 'processing' + @name
set @sql=N'alter table' +@name +' add hospitalId bigint'
exec(@sql)
print 'finished'
fetch next from my_cursor into @name
end
close my_cursor
deallocate my_cursor