• 沒有找到結果。

P-III 1.1G 256RAM WINXP IE6.0 NOTEBOOK 一台 P-III 850 128RAM WIN2K IE6.0 NOTEBOOK 一台 K6-2 500 256RAM WINME IE5.X PC 一台

我們要達到的效果是,醫院有不同的部門,每個部門也有數名醫 生,而每位病人一份病歷,這份病例上面有該病人在數個部門的病歷 資料,而透過 Access Cotrol 可以使不同部門的醫生看同一位病人時 所看到的病歷是他們責任範圍內的病歷。

4-2 系統檔案規劃

<?xml version="1.0" encoding="BIG5"?>

<!DOCTYPE Employee SYSTEM "employee.dtd">

<Employee>

<Name SSN="A3456">mary</Name>

<Address POSTALCODE="123">

<Country>中華民國 </Country>

<City>台中市 </City>

<Street>

<Road>文華路 </Road>

<Number>100 號</Number>

<Floor>1F</Floor>

</Street>

</Address>

<Phone>28825252</Phone>

<Phone>0911111111</Phone>

<Birthday>

<Year>2002</Year>

<Month>1</Month>

<Day>1</Day>

</Birthday>

<Department>內科 </Department>

<Sex> 女 </Sex>

<Role>內科醫生

</Role>

</Employee>

而下圖是我們所定義的醫生個人資料的 DTD 用來協助我們達到 XML 資料 WELL_FORM 統一規格,我們用一套 XML SPY 軟體來表現:

圖 4-1employee.dtd

4-2-2 病人病歷與個人資料檔案規劃

<?xml version="1.0" encoding="Big5"?>

<PEOPLE>

<PERSON PERSONID="p001">

<NAME>病人 A</NAME>

<ADDRESS>8 Fl.-3, #118, Guangfu S. Rd., Taipei, Taiwan 106, R.O.C.</ADDRESS>

<TEL>(02)2123 4567</TEL>

<EMAIL>eric@hotweb.net</EMAIL>

</PERSON>

<PERSON PERSONID="p002">

<NAME>病人 B</NAME>

<ADDRESS>5 Fl.-3, No. 111, Dahu St., Taipei, Taiwan 107, R.O.C.</ADDRESS>

<TEL>(02)2623 4567</TEL>

<EMAIL>alex@mail.com</EMAIL>

</PERSON>

</PEOPLE>

這裡則是我們設計的病人第一部分的 DTD

圖 4-2 patient.dtd

而下面則是病人 A 的病歷部分:

<?xml version="1.0" encoding="BIG5"?>

<!DOCTYPE Case SYSTEM "case.dtd">

<Case>

<num>P001</num>

<phy>

<Condition>外科病況 1</Condition>

<Prescription>外科病況 1 之處方</Prescription>

</phy>

<phy>

<Condition>外科病況 2</Condition>

<Prescription>外科病況 2 之處方</Prescription>

</phy>

<bone>

<Condition>骨科病況 1</Condition>

<Prescription>骨科病況 1 之處方</Prescription>

</bone>

<bone>

<Condition>骨科病況 2</Condition>

<Prescription>骨科病況 2 之處方</Prescription>

</bone>

<Condition>骨科病況 3</Condition>

<Prescription>骨科病況 3 之處方</Prescription>

</bone>

<thr>

<Condition>內科病況 1</Condition>

<Prescription>內科病況 1 之處方</Prescription>

</thr>

</Case>

這是我們第二部分病歷的 DTD

圖 4-3 case.dtd

4-3 系統架構

目前網站的製作還是以 ASP、PHP 配上 SQL、MYSQL 等的結合去製 作較佔多數,但是實際上使用 XML 去做網站的人並不多,原因不外乎 是 XML 並未完全普及,還有 XML 再製作上所需要花費的時間成本會比 就多,首先會用 XML 的人就已經算少數的了,而 XML 在實作時資料與 畫面要分開處理,如果又要去使用 DOM 或 SAX 等 API 來實做又缺乏良 好的編譯器幫忙 debug,整個系統在實作上所要花費的時間就跟著延 長,但是我們還是可以先歸納出大部分的做法,如下圖:

圖 4-4 一般架構圖

早期 DOM 跟 SAX 等 API 尚未問世時,XML 的資料處理並不靈活,

跟已經成熟的 SQL、 ACCESS 等資料庫系統相比,功能遠遠不及,所 以大部分都是選擇利用既有的資料庫,而 XML 扮演的是中間資料傳輸 時負責傳遞訊息,也可以說是中間值,然後透過 XSLT 或 CSS 等技術 去顯示資料庫內的訊息。

這算是比較成熟的形式,因為這中間所使用的技術成熟度較高,

實作起來因為不需要使用 DOM 或 SAX,所以 XML 不需要負責處理資料 欄位的處理,XML 只要做到處理資料庫系統整理完的結果,透過 XSLT 或 CSS 傳遞給提出要求的使用者,或將使用者提出的訊息傳遞給資料 庫系統,總而言之,在這個體系下 XML 扮演的是中間媒介的角色。

但是隨著 DOM 跟 SAX 的出現及發展,XML 也漸漸的可以像一般資 料庫系統般作欄位的控制,資料的搜尋變更等的能力,雖然目前 DOM 跟 SAX 都還在成長階段,XML 在做同樣的動作時還是顯得有些笨拙,

功能也還未如那些資料庫系統般的健全,但是已經可以讓我們產生生 出如下的架構圖:

圖 4-5 本次架構圖

在這種架構下,我們將完全不使用資料庫系統,我們完全使用 XML

來取代資料庫系統,利用 DOM 或者是 SAX 來做搜尋等的動作,採用 這個架構比較沒網站那麼多,原因主要是必須使用 DOM 或 SAX 這些技 術支援,而這些技術的親合力還不是那麼的高,再加上表現的效能還 沒有到一定的程度,所以想要去用的人並不是那麼多,所以這個體系 的結構較少人使用,不過也不少人是不使用 DOM 或 SAX,他們只是將 XML 當做資料的存放,然後在使用 XML 資料時適用 XSLT 或 CSS 直接 呈現給使用者,因為這些動作並不需要使用負責的資料處理,也就不 需要 DOM 跟 SAX 來幫他們達到目的,所以他們可以很輕易的使用這種 結構,不過功能相當有限。

4-4 系統運作流程

大略敘述一下流程,首先使用者在登入系統時,我們會先要求使 用者輸入他的 ID 與我們給醫生的安全識別碼,在經過系統的驗證過 後,我們會去搜尋使用者的個人檔案,去搜尋他的 ROLE 欄位內容,

圖 4-6 登入首頁

圖 4-7 輸入 ID

圖 4-8 輸入驗證碼

接著根據不同的 ROLE,使用者會被分配到不同的頁面,在考慮病 人名稱可能會有重複的情況下我們還有規劃一個搜尋的頁面:

圖 4-9-1 總覽

圖 4-9-2 搜尋功能

接著輸入欲查詢之病人病歷,輸入病人編號

圖 4-10 查詢病歷

圖 4-11 mary 醫生查詢 p001 病歷畫面

圖 4-12 amy 醫生查詢 p001 病歷畫面

<Case>

<num>P001</num>

<phy>

<Condition>外科病況 1</Condition>

<Prescription>外科病況 1 之處方</Prescription>

</phy>

<phy>

<Condition>外科病況 2</Condition>

<Prescription>外科病況 2 之處方</Prescription>

</phy>

<bone>

<Condition>骨科病況 1</Condition>

<Prescription>骨科病況 1 之處方</Prescription>

</bone>

<bone>

<Condition>骨科病況 2</Condition>

<Prescription>骨科病況 2 之處方</Prescription>

</bone>

<bone>

<Condition>骨科病況 3</Condition>

<Prescription>骨科病況 3 之處方</Prescription>

</bone>

<thr>

<Condition>內科病況 1</Condition>

<Prescription>內科病況 1 之處方</Prescription>

</thr>

<thr>

<Condition>內科病況 2</Condition>

<Prescription>內科病況 2 之處方</Prescription>

</thr>

從圖 4-11 跟圖 4-12 相比我們可以發現不同的醫生查詢同樣的病 人所能看到雖是同一份病人檔,但是看到的內容卻是完全不同,上面 的程式碼就是病人 p001.xml 裡面病歷的紀錄。

而我們把整個的動作流程整理成如下圖所示:

圖 4-13 流程圖

4-5 系統檔案程式碼統計

此處我們將對本系統中所有的程式與檔案做統計:

XML 檔案---11 筆 ,行數 619

網頁---23 筆,程式碼 1183 行 DTD---3 筆, 行數 54 行

相關文件