iT邦幫忙

2026 iThome 鐵人賽

DAY 16
0
Software Development

三十天轉職成「醫療軟體工程師」系列 第 16 篇

Day15 - 醫療資訊交換標準-FHIR(上)

  • 分享至 

  • xImage
  •  

在軟體設計中,資料格式一直是最重要的一環之一。當我們設計好一個軟體,需要設計資料型別儲存資料。
資料儲存後,我們可以存在本機端或是存在伺服器。如果只是在我們自己的伺服器裡面使用,跑的都是我們自己的服務,那格式定義什麼格式都沒問題,只要自己看得懂就可以了;但如果希望將這些軟體內的格式傳給其他人,我們就需要制定格式,才可以傳給其他人。

FHIR

在醫療軟體中,可以使用 FHIR 來作為軟體檔案的傳輸內容。FHIR(Fast Healthcare Interoperability Resources) 是醫療資訊交換的一套共同規格,由 HL7 制定。它幫不同系統約定資料如何表示、如何連結,讓接收方有依據理解收到的資訊。FHIR 可以用 JSON 來表示資料。JSON 是呈現的格式,FHIR 則是進一步規定資料的結構以及意義。

第一次認識 FHIR,可以先掌握三個概念:

  1. Resource(資源):FHIR 交換資料的基本單位。不同種類的 Resource 各有用途。
  2. Observation(觀察紀錄):Resource 的一種,用來記錄量測或觀察的資訊。例如爸爸某次量到的體溫、量測時間與單位。
  3. Reference(參照):用來指出資料之間的關係。例如一筆體溫 Observation,可以透過 subject 欄位中的 Reference,指向爸爸的 Patient Resource。

Resource

FHIR 使用 Resource 作為基本組成單位,我們可以先把它想成「一份有明確主題、規定欄位的資料」。以先前的範例,我們可以認識三種 Resource:

Resource 回答的問題 案例中的意思
Patient 這筆健康資料與誰有關? 量體溫的爸爸
Observation 觀察或量測到了什麼? 早上八點量到體溫 37.2 °C
Device 已知的量測裝置是什麼? 取得讀值的體溫計
從上面可以看到三個部分:
  1. Patient:就是描述接受照護或健康相關服務的對象。
  2. Observation:這就是我們要記錄觀察或是量測的內容。
  3. Device:也就是說我們在量測的時候,是使用什麼裝置來去量測。

Reference

讓一筆量測指向正確的人或裝置。

在前面我們透過 Resource 將人、量測結果以及裝置分開之後,接下來需要分別說明它們之間的關係。在 HL7 FHIR 中,是使用 Reference 來指向另外一個 Resource。
例如,我們可以使用 Observation.subject 寫下下面的範例,意思就是說,這筆 Observation 的量測對象指向 Patient/P-001

"subject": {
  "reference": "Patient/P-001"
}

如果有建立體溫計的 device,同一筆 Observation 也可以透過 device 指向它

"device": {
  "reference": "Device/DEV-001"
}

所以最後,我們可以把三份資料的關係組成一個關係圖,如下:

Observation(體溫 37.2 °C)
  ├─ subject → Patient/P-001(量測對象:爸爸)
  └─ device  → Device/DEV-001(量測裝置:體溫計1)

將全部的內容組合起來後,就會是下面的範例。請記住,現在的樣子還只是部分。

{
  "resourceType": "Observation",
  "id": "TEM-001",
  "status": "final",
  "subject": {
    "reference": "Patient/P-001"
  },
  "valueQuantity": {
    "value": 37.2,
    "unit": "°C",
    "system": "http://unitsofmeasure.org",
    "code": "Cel"
  },
  "device": {
    "reference": "Device/DEV-001"
  }
}

小結

今天先認識 FHIR 的基本組成:Patient 表示量測對象,Observation 表示這次量測,已知的體溫計可用 Device 表示。Observation 透過 subject 和 device 參照前兩者,讓接收資料的人知道這筆紀錄與誰、哪台裝置有關。

上面的 JSON 只示範部分欄位,還不能當作完整的 FHIR 生命徵象交換範例。接下來要補上「量到什麼」、量測時間、代碼及單位等資訊,再檢查整筆資料是否符合採用的 FHIR 版本與交換規則。


上一篇
Day14 - 醫療資料模型:一筆生命徵象紀錄由什麼組成?
下一篇
Day16 - 醫療資訊交換標準-FHIR(下)
系列文
三十天轉職成「醫療軟體工程師」 共 17 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言