本系列最終回,完成醫生病患資料編輯表單與患者姓氏搜尋表單,實現醫生查看護士審核後的病患資料、新增診療紀錄(血壓、備註),並提供醫生與護士快速依姓氏查找病患的功能。
建立 doctorPatient.xhtml,在實例資料中新增 BPressure(血壓)與 Notes(備註)欄位,提交動作指向 doctor/update,載入動作指向 doctor/grab。表單包含症狀描述文字區、血壓輸入框、診療備註文字區與送出按鈕。
產生 Scaffold:
ruby script/generate scaffold patient doctor
定義 grab 方法:從 HTTP Referer 取得病患 ID,尋找記錄,若 XML 缺少 BPressure 或 Notes 節點則動態加入,確保表單顯示完整。
定義 update 方法:解析表單提交的 XML 參數,重建文件並儲存回資料庫,最後導向列表頁。
修改列表視圖 list.rhtml,僅顯示 approved="true" 的病患,解析 XML 取得姓名,提供「View/Add Notes」連結指向醫生表單。
建立 lookupPatient.xhtml,包含兩個實例:searchLastName(搜尋輸入)與 patients(載入所有病患 XML)。使用 xf:repeat 搭配 XPath 過濾 LastName 匹配輸入值的記錄,即時顯示結果(類似 Ajax 體驗)。每筆結果提供「View/Edit Doc」與「View/Edit Tri」按鈕,分別開啟醫生或護士編輯表單。
後端新增 graball 視圖與控制器方法,輸出包含所有病患 DbId、LastName 的 XML 文件,供前端表單載入。
最終醫生與搜尋表單畫面如下圖所示。
