為避免困擾,本篇只講FHIR所提供的內容為主。
==========
首先一些背景知識還是得知道:
1. 依據 REST Maturity model,FHIR僅支援到Level 2。
2. HTTP/1.1定義了八種方法:GET、HEAD、POST、PUT、DELETE、TRACE、OPTIONS、CONNECT。而RESTful取用其中四個方法(紅色字)來與CRUD作對應。
3. 但是FHIR又根據這四個法略加擴充機制。請參考下表
例如說Get他是對應到R(read)的部分。Get也不是這麼簡單,你是要讀一筆,還是要讀一整批。那要不要下條件呢?
再來,FHIR有支援版控,那又要如何處理之。
把這張表的每一個方法搞清楚了,也許就大概略知一二了。
雖然方法定義不同,但可以歸納成一個式子:
VERB [base]/[type]/[id] {?_format=[mime-type]}
- VERB就是只上表中的某一個方法。
- []是必要;{}是可選。
- base是Server的路徑。大概是這樣子。server可能包含Domain Name,也許還會有port的資訊。path就得看實作情境了。有些可能會在依據某些分類法則,例如namespace,或者project。
- type是指資源。
- id是叫Logic Id,他是由FHIR Server所給予的。當你新增一筆Resource案例到Server時,FHIR Server會給一個ID,後續要讀取這筆Resource案例,就要靠這個ID。記得他可不是資料庫的資料表中所定義的ID。
- id只會給一次,當有內容更新時,會影響的是vid。當我們要讀取一筆Resource案例的歷史資料時,整個語法公式就變成下列:
- mime-type是要求Resource案例的格式。目前FHIR標準支援三種。
- XML:
application/fhir+xml
- JSON:
application/fhir+json
- RDF:
application/fhir+turtle
(only the Turtle format is supported)
http{s}://server{/path}
GET [base]/[type]/[id]/_history/[vid] {?_format=[mime-type]}
沒有留言:
張貼留言