戴海偉 譚碧竹
用戶層的主要任務(wù)是提供可視界面,以便用戶可以通過這個(gè)界面錄入和觀察數(shù)據(jù)。
用瀏覽器作為客戶端,其優(yōu)點(diǎn)在于客戶端界面統(tǒng)一,便于熟悉和操作,又不需要對(duì)軟件進(jìn)行配置,對(duì)于開發(fā)人員來說,可以撇開前臺(tái)的繁瑣工作,集中精力處理后臺(tái)的關(guān)鍵事務(wù),從而減少了工作量,節(jié)約了整個(gè)系統(tǒng)的開發(fā)時(shí)間。
在醫(yī)院設(shè)備、物資信息資料管理系統(tǒng)中,包括立項(xiàng)建議、購買論證(包括招標(biāo)式競爭采購)、項(xiàng)目實(shí)施、儀器安裝和驗(yàn)收、儀器維修和保養(yǎng)、儀器報(bào)廢處理等,由于每個(gè)人只負(fù)責(zé)項(xiàng)目流程的一部分,考慮到客戶端工作人員的可擴(kuò)展性,因此采用瀏覽器模式。
醫(yī)院設(shè)備、物資信息資料項(xiàng)目系統(tǒng)的數(shù)據(jù)錄入界面顯著特點(diǎn)是在輸入、修改時(shí)采用了目前較為流行的樹型結(jié)構(gòu)顯示條,輸入情況一目了然,修改時(shí)很容易找到相應(yīng)的記錄,從而節(jié)約工作時(shí)間,提高工作效率。樹型結(jié)構(gòu)層次清晰,能方便的反映工作分解結(jié)構(gòu)的各個(gè)層次。
在設(shè)計(jì)客戶端界面時(shí),還注意了風(fēng)格的統(tǒng)一問題,比如:窗體的位置、大小、字體的選擇等,如用灰色表示只讀,不能修改。特別是對(duì)于某些必須填寫的字段,用醒目的紅色表示,加以提醒。對(duì)于某些不能重復(fù)的關(guān)鍵字段,在設(shè)計(jì)上采用自動(dòng)校驗(yàn)的功能,當(dāng)輸入重復(fù)值時(shí),自動(dòng)彈出提示框,直到輸入不重復(fù)值時(shí)才能繼續(xù)輸入下一字段。
業(yè)務(wù)邏輯層完成的是“數(shù)據(jù)中轉(zhuǎn)站”的功能,它響應(yīng)用戶服務(wù)層的請(qǐng)求,一方面從數(shù)據(jù)服務(wù)層為用戶層取得所需的數(shù)據(jù),回送給用戶層顯示;另一方面對(duì)用戶層提交的數(shù)據(jù)進(jìn)行業(yè)務(wù)規(guī)則的校驗(yàn),符合規(guī)則的數(shù)據(jù)才被二次提交給數(shù)據(jù)服務(wù)層存儲(chǔ)。因此,業(yè)務(wù)層是溝通用戶服務(wù)層與數(shù)據(jù)服務(wù)層的邏輯橋梁,其主要功能是完成業(yè)務(wù)規(guī)則的校驗(yàn)和數(shù)據(jù)的提供。
選擇三層結(jié)構(gòu)是為了減少客戶端的維護(hù)、配置工作,把它從前臺(tái)移到中間業(yè)務(wù)層來實(shí)現(xiàn)。業(yè)務(wù)層為用戶層提供數(shù)據(jù),在業(yè)務(wù)層配置了和數(shù)據(jù)服務(wù)層的連接,不需要為每一臺(tái)客戶端應(yīng)用程序再重新配置。
2.1 業(yè)務(wù)層組件的劃分
將數(shù)據(jù)的錄入、修改和數(shù)據(jù)的查詢、統(tǒng)計(jì)劃分為不同的兩類組件,這是因?yàn)橐环矫嫠鼈兊氖褂萌藛T和場合有較大的差異,另一方面,從后臺(tái)數(shù)據(jù)庫來看,數(shù)據(jù)錄入、修改是在表的基礎(chǔ)上進(jìn)行的,查詢則主要借助于存儲(chǔ)過程來完成。它們的數(shù)據(jù)提供者不同。所以,參照上面的第一條原則,我們把中間業(yè)務(wù)層首先劃分為資料維護(hù)類和查詢統(tǒng)計(jì)類。再根據(jù)業(yè)務(wù)功能特點(diǎn),進(jìn)行業(yè)務(wù)功能的詳細(xì)劃分。
2.2 提供業(yè)務(wù)規(guī)則
提供業(yè)務(wù)規(guī)則的組件和提供數(shù)據(jù)的組件是不可分的。在邏輯上它們是中間業(yè)務(wù)層提供的兩種功能,在物理上存在于相同的組件上。規(guī)則只有依附在數(shù)據(jù)上才有意義,對(duì)數(shù)據(jù)起過濾、計(jì)算的作用。把數(shù)據(jù)從后臺(tái)數(shù)據(jù)庫服務(wù)器牽引到中間業(yè)務(wù)層的同時(shí),可以選擇把數(shù)據(jù)庫本身的約束也引進(jìn)來,但不需要把所有的業(yè)務(wù)規(guī)則都集中在中間業(yè)務(wù)層實(shí)現(xiàn),在設(shè)計(jì)系統(tǒng)時(shí),實(shí)際上在三個(gè)層面中都分布了業(yè)務(wù)規(guī)則,只是數(shù)量和性質(zhì)各不相同。
2.2.1 在客戶端實(shí)現(xiàn)了一些非常簡單的業(yè)務(wù)規(guī)則。
某些字段不能為空,或者必須大于零之類的限制,通過設(shè)置數(shù)據(jù)感應(yīng)控件的屬性可以完成,不用額外添加代碼,沒有必要把這個(gè)錯(cuò)誤送到業(yè)務(wù)規(guī)則層,甚至數(shù)據(jù)服務(wù)層再被退回,反而增加了處理錯(cuò)誤的代碼。
2.2.2 在業(yè)務(wù)規(guī)則層實(shí)現(xiàn)了一些邏輯依賴關(guān)系。
只有當(dāng)貨幣安置字段的值為0時(shí),才能在安置類型字段中選擇一次性安置或過渡安置。
2.2.3 在數(shù)據(jù)服務(wù)層,利用數(shù)據(jù)庫本身提供的主外鍵約束、觸發(fā)器、存儲(chǔ)過程等完成了數(shù)據(jù)完整性校驗(yàn)和大量的查詢工作。這些工作可以在業(yè)務(wù)層自己編寫代碼完成,但專業(yè)的DBMS系統(tǒng)處理起來更方便、快捷,還能針對(duì)存儲(chǔ)過程進(jìn)行專門的優(yōu)化,提供系統(tǒng)的執(zhí)行效率,減少網(wǎng)絡(luò)流量。
數(shù)據(jù)服務(wù)層主要用來完成數(shù)據(jù)庫相關(guān)服務(wù)。從數(shù)據(jù)完整性、索引、并發(fā)性方面對(duì)數(shù)據(jù)庫進(jìn)行了設(shè)計(jì)。
3.1 數(shù)據(jù)完整性
為了保證數(shù)據(jù)質(zhì)量,有必要加強(qiáng)數(shù)據(jù)庫的數(shù)據(jù)完整性。數(shù)據(jù)庫的數(shù)據(jù)完整性包括以下三個(gè)方面:
3.1.1 實(shí)體完整性
必須確保表中的每一行都是獨(dú)立的。每一行都能夠被設(shè)置指針,并且能夠在不干擾其他行的情況下被訪問。獨(dú)立形式的實(shí)體完整性是通過建立主關(guān)鍵字約束,唯一索引、唯一約束或 IDENTITY 特征來實(shí)現(xiàn)的。
主關(guān)鍵字是表中的一列或多列,其所具有的值對(duì)表格中的其他各行而言必須是唯一的。每個(gè)表格只能有一個(gè)主關(guān)鍵字,并且主關(guān)鍵字不允許是空值。主關(guān)鍵字被創(chuàng)建后,通過主關(guān)鍵字建立唯一索引來實(shí)現(xiàn)表格的唯一性。通過給表格設(shè)定主關(guān)鍵字,不僅實(shí)現(xiàn)了表格中行的獨(dú)立,而且訪問設(shè)有主關(guān)鍵字的表格,其數(shù)據(jù)的檢索也更加快捷。
創(chuàng)建一個(gè)IDENTITY列是一種更為復(fù)雜、更為先進(jìn)的強(qiáng)化獨(dú)立性的方式。主關(guān)鍵字列用 IDENTITY屬性來定義,這樣的好處是:當(dāng)用戶插入行時(shí),數(shù)據(jù)庫會(huì)同時(shí)自動(dòng)給被插入行的每列賦值,用戶不必知道插入行的每個(gè)值,也無須存儲(chǔ)。當(dāng)索引是整數(shù)時(shí),數(shù)據(jù)的訪問更加快捷,因而功能也相應(yīng)增強(qiáng)。
每個(gè)表格只允許有一個(gè)主關(guān)鍵字,而有時(shí)需要非主關(guān)鍵字段中的唯一值。這種情況下,可以使用UNIQUE 約束來給非主關(guān)鍵字段建立唯一索引。如果用戶插入一個(gè)已經(jīng)在表格中存在的行,數(shù)據(jù)庫將給出錯(cuò)誤提示,告訴用戶一個(gè)相同的行已經(jīng)存在,以此防止相同的行插入。
3.1.2 域完整性
域完整性,是指對(duì)一個(gè)給定的列而言,只有一定范圍內(nèi)的數(shù)值是有效的。通過規(guī)定數(shù)據(jù)類型、使用CHECK 約束和規(guī)則、使用缺省值、非空定義以及外鍵約束,可以限定有效值的范圍。
數(shù)據(jù)類型用于定義可以放置于列、局部變量和存儲(chǔ)過程參數(shù)中的數(shù)據(jù)類型,可以直接使用數(shù)據(jù)庫提供的數(shù)據(jù)類型,也可以自己定義數(shù)據(jù)類型。數(shù)據(jù)類型對(duì)填入某列的數(shù)據(jù)加以限制。例如,字符型數(shù)據(jù)不能插入到以數(shù)字型數(shù)據(jù)創(chuàng)建的列中。
CHECK 約束可對(duì)插入某列的數(shù)值加以限制。表格中的一列可以有多個(gè) CHECK約束。用戶也可以隨時(shí)給新創(chuàng)建的或已經(jīng)存在的表格增加限制。
有時(shí),用戶可能不知道確切的數(shù)字,或者數(shù)據(jù)中帶有空值,而表格中的該列不允許使用空值,或者用戶本身不希望出現(xiàn)空值。在這些情況下,可以使用缺省值。缺省值可以在創(chuàng)建或變更表格時(shí)用 DEFAULT關(guān)鍵字來定義。例如,用戶想對(duì)某列中的數(shù)值取平均值,此時(shí),如列中出現(xiàn)空值,則該命令不能被執(zhí)行。在此情況下,可以給每行中的每一列空值上賦一缺省值0。這樣平均運(yùn)算既有效,又包含了表格中每一行的數(shù)字。
在創(chuàng)建表格的同時(shí)定義某一列為 NOT NULL,能夠防止該列被賦以 NULL值。這是確保數(shù)據(jù)完整性,特別是域的完整性的另一種方式。列中的 NULL意味著該值是未知的。NULL 的運(yùn)行方式不同于0 值或空值,因?yàn)樗鼈儾荒芟嗷ケ容^而且也不相等。在使用 SQL 命令時(shí),NULL 將引起許多麻煩,因?yàn)樵谟龅?NULL值時(shí),每條命令都將不能正常運(yùn)行。
外鍵約束與主關(guān)鍵字或唯一約束共同使用,可以確保被插入列中的值也被包含在另一個(gè)表中的主關(guān)鍵字之中。它不僅被用以確保域的完整性,而且對(duì)參照完整性也很重要。
3.1.3 參照完整性
使用參照完整性意味著要維持兩個(gè)表格之間的關(guān)系,并且數(shù)據(jù)庫中不允許孤立行的存在。數(shù)據(jù)庫不允許用戶在從表中添加主表中不具備的行。同時(shí),如果對(duì)應(yīng)于主表的某行在從表中有記錄時(shí),也不允許對(duì)該主表行進(jìn)行刪除和修改。在數(shù)據(jù)庫中通過上文講述的外鍵約束和 CHECK 約束來實(shí)現(xiàn)參照完整性。
3.2 并發(fā)性
并發(fā)性是指在多用戶同時(shí)訪問數(shù)據(jù)時(shí),通過鎖定保持事務(wù)完整性的功能。為大量并發(fā)用戶開發(fā)的系統(tǒng),最好能在一段時(shí)間內(nèi)保持事務(wù)。排他型鎖可以起到這一作用,它可以阻止其他事務(wù)讀取表中的數(shù)據(jù),直到當(dāng)前的事務(wù)被確認(rèn)或回滾時(shí)為止。
4.1 總體原則
4.1.1 全局統(tǒng)一規(guī)劃、統(tǒng)一標(biāo)準(zhǔn)、統(tǒng)一建設(shè)、統(tǒng)一維護(hù)。
4.1.2 在流程控制方面增加一些輔助表。
4.1.3 樹立用戶數(shù)據(jù)是最重要的思想,數(shù)據(jù)的安全、完整性是整個(gè)數(shù)據(jù)庫設(shè)計(jì)必須遵守的原則,任何發(fā)生的信息都要永久備份存檔。
4.2 數(shù)據(jù)庫的優(yōu)化和性能保障
4.2.1 作為一個(gè)網(wǎng)絡(luò)環(huán)境下的數(shù)據(jù)庫應(yīng)用,應(yīng)重視后臺(tái)數(shù)據(jù)庫的管理工作。
4.2.2 該系統(tǒng)的性能主要與程序和數(shù)據(jù)庫配置有關(guān),程序主要是復(fù)雜的SQL數(shù)據(jù)庫,部分對(duì)性能影響較大,復(fù)雜的查詢將進(jìn)行嚴(yán)格的壓力測(cè)試。
4.2 數(shù)據(jù)庫的優(yōu)化和性能調(diào)整是一個(gè)很大的課題,可以通過交流、培訓(xùn)等方式逐步加強(qiáng)這方面工作。
對(duì)流行的數(shù)據(jù)庫的管理簡單比較,ORACLE對(duì)數(shù)據(jù)庫系統(tǒng)的前期規(guī)劃比較重視,手工調(diào)整的要求比較高,當(dāng)然管理工具也較強(qiáng)大;SYBASE 的管理工具較弱,需在命令行做很多工作,而且在 NT 平臺(tái)上的產(chǎn)品性能不佳;相對(duì)來說,SQL SERVER 自動(dòng)適應(yīng)功能較好,比較適合。
5.1 運(yùn)行環(huán)境及開發(fā)工具
5.2 開發(fā)工具
.NET、SQL Server 2000基于Windows編程
5.3 設(shè)備
服務(wù)器端:
(1)處理器CPU:PIII500(含)以上;
(2)內(nèi)存RAM:256MB(含)以上;
(3)硬盤HD:500MB空間(含)以上;
(4)顯示設(shè)備:800x600真彩(含)以上。
客戶端:
(1)處理器CPU:Celeron300(含)以上;
(2)內(nèi)存RAM:64MB(含)以上;
(3)硬盤HD:100MB空間(含)以上;
(4)顯示設(shè)備:800x600真彩(含)以上。
5.4 支持軟件
以下給出系統(tǒng)運(yùn)行的軟件支撐環(huán)境:
服務(wù)器端:
Win2000 Server 操作系統(tǒng);
SQL Server 2000 數(shù)據(jù)庫系統(tǒng);
IIS4.0(含)以上。
客戶端:
Windows Me/Windows 98/Windows 2000 Professional/Windows XP;
具有IE5.0以上功能的瀏覽器。
6.1 測(cè)試步驟
軟件的測(cè)試是貫穿整個(gè)開發(fā)過程的,在系統(tǒng)完成后再把整個(gè)系統(tǒng)作為一個(gè)單獨(dú)的實(shí)體來測(cè)試是不現(xiàn)實(shí)的。經(jīng)過以下幾個(gè)步驟對(duì)系統(tǒng)進(jìn)行測(cè)試:
6.1.1 模塊測(cè)試
在設(shè)計(jì)階段劃分的功能模塊,明確地規(guī)定了它應(yīng)完成的功能、提供的接口,而且都相對(duì)比較獨(dú)立,測(cè)試起來比較簡單。首先必須先通過編譯程序檢查并且改正所有語法錯(cuò)誤,排除編碼引起的錯(cuò)誤。然后再對(duì)重要的執(zhí)行通路進(jìn)行測(cè)試以便發(fā)現(xiàn)模塊內(nèi)部的錯(cuò)誤。模塊測(cè)試的目的是保證每個(gè)模塊作為一個(gè)單元能夠正確運(yùn)行。
6.1.2 子系統(tǒng)測(cè)試
子系統(tǒng)測(cè)試是把經(jīng)過單元測(cè)試的模塊放在一起形成一個(gè)子系統(tǒng)來測(cè)試。模塊相互間的協(xié)調(diào)和通信是這個(gè)測(cè)試過程中的主要問題。
6.1.3 系統(tǒng)測(cè)試
系統(tǒng)測(cè)試是把經(jīng)過測(cè)試的子系統(tǒng)裝配成一個(gè)完整的系統(tǒng)來測(cè)試。在這個(gè)過程中應(yīng)該驗(yàn)證系統(tǒng)是否提供了需求說明書中指定的功能,可能會(huì)有一些設(shè)計(jì)和編碼的上的錯(cuò)誤暴露出來。
6.1.4 系統(tǒng)試運(yùn)行
系統(tǒng)在完成初步測(cè)試工作后并沒有立即投入使用,而是經(jīng)過了一段時(shí)間的試運(yùn)行,對(duì)系統(tǒng)產(chǎn)生的關(guān)鍵數(shù)據(jù)進(jìn)行演算檢查。在確信系統(tǒng)具有良好的穩(wěn)定性、正確性后才正式運(yùn)行。
7.1 整個(gè)系統(tǒng)的開發(fā)有以下幾個(gè)特點(diǎn):
(1)安全保密性:在系統(tǒng)的安全性方面有較高的安全防護(hù),基本的安全防護(hù)為靜態(tài)式密碼,并且嚴(yán)格管理用戶密碼,只有在特定用戶狀態(tài)下才能對(duì)用戶的信息資料進(jìn)行訪問查詢。對(duì)用戶進(jìn)行嚴(yán)格的授權(quán)管理。
(2)易用性:由于項(xiàng)目資料管理針對(duì)醫(yī)院設(shè)備處與其他業(yè)務(wù)部門,在其立項(xiàng)、任務(wù)管理、計(jì)劃、執(zhí)行、檢查等業(yè)務(wù)都屬于日常工作。因此,系統(tǒng)以易用作為設(shè)計(jì)依據(jù),使系統(tǒng)盡可能簡便、易用。采用靈活通用的表單定義方式,由用戶自定義表單界面,以滿足不斷變化的業(yè)務(wù)需要。
(3)B/S結(jié)構(gòu):使系統(tǒng)在可擴(kuò)展性、易維護(hù)性等方面有很大的優(yōu)勢(shì)。
7.2 故障處理:
當(dāng)發(fā)現(xiàn)運(yùn)行異?,F(xiàn)象時(shí),具有報(bào)警信息提示,并將出現(xiàn)的異常記錄在日志文件中,方便查閱。
7.3 由于醫(yī)院設(shè)備、物資信息資料管理系統(tǒng)最終運(yùn)行的結(jié)果是加強(qiáng)了文檔管理,預(yù)先規(guī)定活動(dòng)需要登記的文檔類型,活動(dòng)在執(zhí)行時(shí),根據(jù)這些文檔類型上載文件,并作為最后檢查的依據(jù)。同時(shí)文檔管理全面、靈活,文檔之間可以繼承、借鑒,方便了用戶查閱、使用,對(duì)文檔進(jìn)行了嚴(yán)格的版本管理。
7.4 醫(yī)院設(shè)備、物資項(xiàng)目管理信息系統(tǒng)不同于其他產(chǎn)品的制造,醫(yī)院設(shè)備、物資信息項(xiàng)目管理系統(tǒng)的整個(gè)過程都是設(shè)計(jì)過程,沒有制造過程,且具有使用周期長、不可預(yù)見因素多等特點(diǎn),因此加強(qiáng)了審驗(yàn)的管理,在不同階段定義審驗(yàn)標(biāo)準(zhǔn),在實(shí)施過程中強(qiáng)調(diào)審驗(yàn),以及時(shí)了解工作進(jìn)展情況,對(duì)使用的中間過程進(jìn)行監(jiān)控,以確保進(jìn)度,以保證醫(yī)院設(shè)備、物資信息資料項(xiàng)目管理系統(tǒng)的質(zhì)量。
[1] 黃志球. 數(shù)據(jù)庫應(yīng)用技術(shù)基礎(chǔ)[M].北京:機(jī)械工業(yè)出版社,2003.
[2]陳勇強(qiáng). 項(xiàng)目采購管理[M].北京:機(jī)械工業(yè)出版社,2004.
[3]Paul C. Dinsmore. Creating the Project Office: A Manager's Guide to Leading Organizational Change[M].北京:清華大學(xué)出版社,2004.
[4]美國項(xiàng)目管理協(xié)會(huì).項(xiàng)目管理知識(shí)體系指南(第3版)[M].北京:電子工業(yè)出版社,2006.
[5]馬麗春,陳校云,夏磊,等.項(xiàng)目管理在醫(yī)院行政后勤管理中的實(shí)踐與體會(huì)[J].中國衛(wèi)生事業(yè)管理,2009(7):454-455.
[6]戴海偉,張亞琦.非形式下適用于醫(yī)學(xué)物件庫管理的模型設(shè)計(jì)[J].中國醫(yī)學(xué)裝備,2010,7(1):4.