一、30 天,從一個想法開始
終於來到最後一天!
回顧這 30 天的「從零打造醫療資訊小系統」,一開始,我們只是希望建立一個可以管理病患基本資料的簡單網站。
但真正開始動手後才發現,一個看似簡單的網頁,背後其實包含許多不同的技術:前端畫面、後端請求處理、資料庫操作、登入驗證、錯誤處理,以及不同功能之間的整合。
這次的練習,讓我有機會把課堂上學到的知識,逐步串接成一個可以操作的 Web 系統。
二、回顧這 30 天學到的內容
整個開發過程,可以分成幾個階段。
第一階段:建立開發環境與前端頁面
一開始,我們先準備開發環境,建立 HTML 頁面,再使用 CSS 調整版面。
這個階段讓我理解,網頁不只是文字與按鈕的組合,也需要考慮畫面結構、使用者操作方式與資訊呈現。
第二階段:使用 Servlet 與 JSP
接著,我們開始認識 Java Web 開發。
透過 Servlet 接收表單資料、處理 HTTP 請求,再將資料傳送到 JSP 顯示,逐步建立前端與後端之間的互動。
也透過 GET 與 POST 的比較,理解不同 HTTP 方法在資料傳送與操作流程中的用途。
第三階段:連接 MySQL 資料庫
當網頁可以接收資料後,下一步就是讓資料能夠保存。
我們建立資料表,透過 JDBC 連接 MySQL,並使用 SQL 完成新增、查詢、修改、刪除與搜尋。
這讓系統不再只是展示靜態內容,而是能夠操作資料庫中的紀錄。
第四階段:補上實際系統需要的功能
功能逐漸增加後,我們又加入了病患詳細資料頁面、表單驗證、DAO 程式結構、登入與 Session 管理。
最後再調整介面、整理錯誤處理,並透過整合測試確認各項功能是否能正常合作。
三、目前的系統可以做什麼?
整理到最後,我們的教學型系統已涵蓋以下功能:
功能 主要用途
登入與登出 練習基本的使用者狀態管理
病患清單 查看多筆病患測試資料
新增資料 將表單資料寫入資料庫
詳細資料 查看單筆紀錄
修改資料 更新既有紀錄
刪除資料 移除指定的測試紀錄
姓名搜尋 查詢符合條件的資料
表單驗證 降低不合法資料進入系統的機會
錯誤處理 避免直接將內部錯誤顯示給使用者
基本介面設計 讓主要功能更容易操作
這是一個以學習為目的的小型原型,並不代表已經達到正式醫療資訊系統的安全或品質要求。
四、這次開發讓我重新理解什麼?
我認為最大的收穫,不是記住某一段 Java 程式碼,而是理解一個系統需要不同層次互相配合。
例如,當使用者按下「新增」按鈕時,背後可能經過以下流程:
使用者填寫表單 → 前端驗證 → Servlet 接收資料 → 後端再次驗證 → DAO 執行 SQL → MySQL 保存資料 → Servlet 回傳結果 → JSP 顯示畫面。
只要其中一個環節出錯,使用者就可能無法完成操作。
因此,開發系統時不能只關注單一功能,而要理解整個資料流向,以及每個元件應該負責的工作。
五、如果繼續開發,我還想加入什麼?
這個版本仍有許多可以改進的地方。未來如果繼續開發,我希望加入以下功能。
將使用者帳號、密碼雜湊、角色與權限管理整合起來,讓不同角色只能執行被授權的操作。
除了基本欄位驗證,也要加強輸出編碼、存取控制、HTTPS、日誌管理與敏感資料保護。
可以增加分頁、依日期篩選、排序與更清楚的搜尋結果提示,讓資料量增加時仍能方便使用。
未來可以學習單元測試與整合測試,將常見的操作流程自動化,減少每次修改程式後都要手動重測的工作。
若要進一步擴充,可以研究 HL7 FHIR 等醫療資料交換標準,了解病患、就診與觀察紀錄等資料如何以較一致的方式表示與交換。
不過,真正的醫療系統還需要專業的需求分析、資安評估、法規遵循與嚴謹的測試,不能只靠這個練習版本直接投入實際醫療環境。
六、30 天系列正式結束
完成這次的練習後,我更加理解,打造一個系統並不是一次就能完成,而是從最小的功能開始,不斷測試、修正與擴充。
從最初的 HTML 頁面,到後來能夠透過 Servlet、JSP 與 MySQL 管理測試資料,每一個階段都讓我更熟悉 Web 開發的基本流程。
這 30 天也讓我看見自己還有很多需要繼續學習的地方。接下來,我希望能把這次建立的基礎,延伸到更完整的醫療資訊應用。
30 天不是終點,而是我開始打造醫療資訊系統的第一步。
感謝一路看到這裡的讀者,也謝謝自己願意把這個想法一步一步實作出來。
系列到此告一段落,但學習還會繼續。