FHIR 標準在此:
https://www.hl7.org/fhir/
他定義的是: 資料在跨平台交換時的格式和標準.
至於資料庫裏面怎麼儲存? 那是你自己這個平台決定的. 他只定義: 資料拿出來跟別人交換時的樣子, 不管你自己在內部儲存是長得甚麼樣子.
我的疑問是, 安裝 HAPI FHIR 之後應該要在資料庫中建立對應的資料庫物件例如: table/index/sequence 才能使這個 HAPI FHIR Server 正常動作,不然徒有 web server 沒有對應的 database .
HAPI 是一層 Middle Ware, 他對 Client 建立抽象層 API, 所以你的 Client 不需要知道詳細的 DB Schema, 只要打 API 過去, 就可以取得資料. 例如:
http://localhost:8080/example02/Patient/1
就可以取得病患 #1 的資料
同樣的, 你要塞資料進去, 就用 POST 把資料傳進去. 或者人工上傳你自建好的 FHIR 病歷:
./hapi-fhir-cli upload-examples --data examples-json.zip -t http://localhost:8080/baseDstu3
她不會預先建立 Schema, 要等你的 API 打進來之後才會開始建. 一但用了 HAPI 之後, 你也不應該自己去存取 db schema, 要完全放手讓他去管理, 不要再去使用 db 裡面原生的功能, 只能透過 HL7 的 API 協定去讀寫他; 如果又插手自己去直接連線存取 db 的話, 可能會造成 HAPI 內部的結構損壞.
HAPI FHIR 已經把絕大多數臨床醫療照護情境應用都幫你規畫好了
以最常見的兩個 resource 為例
https://hl7.org/fhir/patient.html#resource
https://hl7.org/fhir/observation.html#resource
可以參考慈濟大學蕭嘉宏副教授的資料
https://mos2718.github.io/FHIRspec/Spec/FHIR_Observation.pptx
https://mos2718.github.io/FHIRspec/Index.html
所以架構 HAPI FHIR 後系統會自動建立所需 table 至資料庫中嗎?
何時建立的?
透過什麼機制建立的?
HAPI FHIR 系統架構:
最底層的 db 可以有幾種選擇:
說明在此:
https://hapifhir.io/hapi-fhir/docs/server_jpa/get_started.html
外部資料庫的支援種類:
https://hapifhir.io/hapi-fhir/docs/server_jpa/database_support.html
HAPI 資料庫內部的 Schema:
https://hapifhir.io/hapi-fhir/docs/server_jpa/schema.html
以上資訊, 都來自 HAPI 官方的文件庫:
https://hapifhir.io/hapi-fhir/docs
文件庫也告訴你, 可以去看他 Github 上的 Starter Module, 裡面會告訴你, 透過 JDBC 使用資料庫的設定方法:
https://github.com/hapifhir/hapi-fhir-jpaserver-starter