FHIR Resource分類為五大項,分別是(1) Foundation (2) Base (3) Clinical (4) Financial (5) Specialized。各大項又有自己的小分項。
茫茫Resource海,應該要從那邊下手呢?這就是要問問自己要扮演什麼角色,若您是系統實作者,其實你就不要管這麼多了,他們就是JSON不就是XML。唯一需要看懂的是Profile。當然這個大前提時,有人寫好Profile給你參考。否則,您還是要根據你的「問題領域」去學習香對應的Resource。若你是標準制定者,說實在你也不可能/不需要把所有的Resource的詳細的研究過一遍,除非您跟我一樣有點變態。只要搞懂結構,再依據「問題領域」找出適合的Resource來套用。怎麼套才是正確的,哈~就國內而言,好像也不是那麼重要。似乎就是想盡辦法找到一個地方來放值就好。
講這麼多,就是要來告訴你,拿哪一個Resource來學習結構呢?是的,如標題所指,Basic。而學習這個Resouce所需要的背景知識,可參考HL7 FHIR 核心觀念 - 根元素。
至於其他的資源,則只討論應用情境、元素結構還有Profile & Extensions。
文件結構
所有Resource文件,都會有下列個章節。- Content:是主要內容,會詳細描述這部份。尤其是Scope and Usage這節,對標準制定者來說,必須要給清楚這個Resource的適用情境。否則說實在的,任何需求都可以用任何Resource來完成,因為就是硬找欄位來放就好。當然,正常的標準制定不能這樣子作,人家定義這個Resource一定有他的目的與意義。
- Examples:提供這個Resource的範例內容。有分為JSON與XML格式。
- Detailed Descriptions:當我們「問題領域」覺得適合用這個Resource來制定時,身為標準制定者,就得好好把每一個欄位弄清楚他的定義,避免造成後續交換的問題。
- Mappings:針對某幾個重要欄位,與其他標準間的關係。目前主要是對應到RIM的部分,已經FHIR本身制定的FiveWs的模型中。
- Profiles & Extension:列出由此Resource所產生的Profile與衍生的Extension。背景知識可參考連結。
- R3 Conversions:描述R4與R3之間轉換關係與方法。
2.34 Resource Basic - Content
首先映入眼簾的是這個Resource的制定狀態。
- 這個Resource是由哪個Work Group提出與維護的。此Basic是由FHIR Infrastructure負責。HL7還有很多Work Group。
- 此Resource成熟度。總共分成5階段,再加上正式成為規範階段(Normative)。原則上,採用Resource是要到規範階段(會標註N),現在也沒什麼人在意吧。
- 此標準發展到什麼程度。這個與前者的思維角度不同,我們比較在意的是這個。他分成Draft(草稿不對外), Trial Use(交付外部測試使用), Normative(受保護正式規範文件), Informative(受保護支援性文件), Deprecated(已廢棄不用)。
- 這個是定義此Resource所攜帶的資料其隱私層級。Basic當然無所謂。若是Patient就會被定義屬Patient的隱私層級。國內當然有意識到這塊,但我覺得還沒有具體作法。
- Compartments是定義Resource的打包組合。這個概念跟使用Bundle是不一樣的。Compartments是伺服器端資源如何建構存取打包。這塊會影響伺服器的效能,所以並不開放制定。國內也沒有討論伺服器之建制,這塊也就不受關心。目前定義的有Patient、Encounter、RelatedPerson、Practitioner與Device。
- Foundation Module
接著就是這個Resource Basic的簡單描述。身為標準制定者,這段文字一定要看。尤其是理解「問題領域」的需求後,要找對Resource來支援。
Basic is used for handling concepts not yet defined in FHIR, narrative-only resources that don't map to an existing resource, and custom resources not appropriate for inclusion in the FHIR specification.
Basic當你找不到適合的Resource時,也許可以考慮用Basic先頂著。正常應用環境應該不會使用,不過,拿來教學練習倒是很合適。
2.34.1 Scope and Usage
這節內容對標準制定者是非常重要的。總之,參考這些重要資訊可協助選擇正確適用的Resource。
從這節文字可知Basic跟其他的Resource不一樣,他沒有綁定預先定義好特定的HL7 Concept。那他的存在是用在三種特定狀況。
- 所要應用的情境在未來HL7會的確會納入規範,可惜目前還沒有。
- 要傳遞以敘述內容為主的資源,而且還要結合數個Resource,或者要置入的敘述性內容很彈性,難以掌控。
- 或者其他以上情況,Basic可以提供作簡易的支援。尤其是某些特定情境,為了保持規範的可管理性,不能夠自己亂掰Resource。
簡單地說,當你的「問題領域」實在無法找到適合的Resource時,那就用Basic吧。
2.34.2 Background and Context
這邊描述此Resource的背景資訊與結構問題。
Basic只定義了一些簡單的元素,足以支持Compartment的應用(不過,Encounter與Device沒有包含Basic)。
若有不足之處,就透過Extension機制來擴充。
也就是說,應用情境就僅需要narrative, subject與code,那就用Basic,畢竟所有系統都可接受Basic。
2.34.3 Resource Content
這區塊就是元素結構圖與各種格式之描述。若不熟悉這個,請參考HL7 FHIR 資源格式篇 - 說明與結構
2.34.3.1 Terminology Bindings
定義相關編碼綁定的資訊。還有,Basic只有一個元素需綁定。
Path | Definition | Type | Reference |
---|---|---|---|
Basic.code | Codes for identifying types of resources not yet defined by FHIR. | Example | BasicResourceTypes |
2.34.4 Why not custom resources?
2.34.5 Documents and narrative-only resources
2.34.6 Best practices for using 'Basic'
2.34.7 Referencing Basic resources
這些節是Basic特有的。當然,不同的Resource都有可能會有自己特定的說明章節。
2.34.8 Search Parameters
這節內容對實作者而言非常重要,此Resource能夠支援的搜尋參數。當然common parameters 沒有列在這邊。對查詢有興趣可參考HL7 FHIR Server初體驗的內容。
Name | Type | Description | Expression | In Common |
author | reference | Who created | Basic.author (Practitioner, Organization, Patient, PractitionerRole, RelatedPerson) | |
code | token | Kind of Resource | Basic.code | |
created | date | When created | Basic.created | |
identifier | token | Business identifier | Basic.identifier | |
patient | reference | Identifies the focus of this resource | Basic.subject.where(resolve() is Patient) (Patient) | |
subject | reference | Identifies the focus of this resource | Basic.subject (Any) |
透過範例可以給我們一些應用發想。
這節是把所有元素都詳細介紹一遍。說實在的,除了遇到問題,或有疑惑時才會來這邊查看。
此Resource對應到其他標準的參考。目前描述內容分別針對
FiveWs Pattern Mapping (http://hl7.org/fhir/fivews)與RIM Mapping (http://hl7.org/v3)2.34.12 Resource Basic - Extensions & Profiles
列出目前已註冊與此Resource有關之Profiles與Extensions。
說明此Resource在R3與R4之間的對應關係。
沒有留言:
張貼留言