iT邦幫忙

2026 iThome 鐵人賽

DAY 16
0
自我挑戰組

Vscode 實作:用 HTML/CSS/JS 打造醫藥健康小工具箱系列 第 16 篇

【Day 16】【Tool 2 實作】兒科劑量演算法:揚氏公式與克拉克公式的 JS 計算與結果渲染

  • 分享至 

  • xImage
  •  

本篇文章目錄

  1. 前言:將臨床公式轉化為程式邏輯
  2. 兩大核心演算法拆解:揚氏公式與克拉克公式
  3. 實戰 JS 開發:劑量算式與結果渲染
  4. 程式碼重點與體驗細節解析
  5. 結語

一、 前言:將臨床公式轉化為程式邏輯

在 Day 14 與 Day 15 中,我們建立了完整的雙欄介面與動態欄位切換。今天我們要為這個工具注入「大腦」——撰寫計算邏輯。

醫療資訊工具的關鍵在於計算精確與結果清晰。今天我們將透過點擊按鈕事件,抓取使用者輸入的成人劑量與兒童參數(年齡或體重),並依據選定的算式導出建議的兒童單次劑量(mg)。

二、 兩大核心演算法拆解

在進入程式碼之前,我們再次複習這兩大藥學經典公式的數學表示式:

  1. 揚氏公式(Young's Rule,依年齡):

    兒童劑量= 成人劑量 × 年齡/(年齡+12)

  2. 克拉克公式(Clark's Rule,依體重):

    兒童劑量= 成人劑量 × 體重 (kg)/70 kg (或 150 lbs)

三、 實戰 JS 開發:劑量算式與結果渲染

我們為 #btn-calc 按鈕綁定 click 事件監聽器,根據 #type 的選項進行分支計算:

/tool2-dosage.js
https://ithelp.ithome.com.tw/upload/images/20260929/20184266zQu9Yqxf5l.png

四、 程式碼重點與體驗細節解析

1. toFixed(1) 數值精確度控制

藥物劑量通常不需要太多位小數,過長的浮點數(例如 166.66666666666666)會大幅降低 UI 的可讀性。使用 .toFixed(1) 能將結果四捨五入至小數點後第 1 位,更貼近臨床實際給藥的判定需求。

2. 動態顯現結果區塊

計算結果區塊 #result-tool2 在初始時擁有 .hidden Class。當使用者輸入資料並順利通過驗證後,執行 resultBox.classList.remove("hidden"),就能順暢且自然地將計算結果呈現給使用者!

3. 衛語句 Guard Clause

在取得年齡或體重時,我們第一時間進行空值與非正數檢查(!age || age <= 0),一旦資料不合規立刻跳出提示並中斷(return),確保後續算式不被無效數字干擾。

五、 結語

今天我們成功實作了 [Tool 2] 的核心兒科劑量演算法,讓工具正式具備了精準計算與結果呈現的能力。

在明天的 [Day 17] 中,我們將進行 [Tool 2 劑量邊界防呆與無障礙 Alert 提示],針對兒童年齡上限(如 >18 歲不適用兒科公式)、極端體重輸入以及無障礙警示進行全方位的防禦強化。


上一篇
【Day 15】【JS 語法】下拉選單連動:change 事件監聽與動態隱藏/顯示輸入欄位(display: none)
下一篇
【Day 17】【Tool 2 實作】劑量安全上限警示:邏輯判斷與模組化 Function 拆解
系列文
Vscode 實作:用 HTML/CSS/JS 打造醫藥健康小工具箱 共 18 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言