2024年10月27日 星期日

FHIR SDK(DotNet)- FHIR Type Framework - Complex Type - 1

 Complex Type這個字眼在R3之後,就不存在了,但我還是習慣用這個字眼。他代表著參考型態,是一堆欄位組合類別。現在是分成了General-Purpose DataTypes、Metadata Types與Special Purpose Datatypes。


目前SDK規劃了22個,未來應該還會增加,畢竟這塊FHIR也沒有穩定下來。

先舉個最簡單的範例Coding,下圖是其結構。


他繼承了Element,所以會有id與extension。(實際上他應該是繼承DataType,但他是空的,而FHIR文件都習慣寫繼承於Element)

他有五個欄位,所幸,所有欄位的資料型態都是Primitive。

其程式結構如下圖。


7: 他繼承了ComplexType<T>,其實所有Complex Type除了欄位結構不同外,所有行為模式都是一樣的。

9-13: 宣告Coding所用的欄位,其資料型態都是Primitive。

14-22: 公開屬性可以取值與設值。要注意的是20,他定義了當有屬性內容值變更時,要去呼叫OnPropertyChanged函數,目的是要去更新放在Base類別的_Properties屬性的內容。

23-51: 其他欄位的處理方式跟前者一樣。

60-62: 是建構元,原則上都是丟給父類別來處理。

看過Coding,應該會想到那CodeableConcept是長什麼樣子。其實,架構對了,都是同樣的處理手法。



沒有留言:

張貼留言