2024年10月27日 星期日

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

也許應該要感謝DotNet平台提供了Reflection機制,讓程式結構可以做到簡化,但要能發揮他的功效,需要抽象概念轉換,吃了不少苦頭。

=====SetupPropertyValue=====




54-55:首先要先取得這個Complex有哪些欄位。還記得這個T是在宣告類別時,從子類別定義來的。

56-143:就是分別對這個欄位進行資料轉換作業。因為欄位的性質不同,處理的方式也就要不同。

58-60:先把來源資料與欄位關係確立好。

63:順便把可能是Primitie Element那塊的json資料Key準備好。

64-103:如果這個欄位定義為[0..*]時;在類別宣告上,當為多時都用List<T>。

66:得先知道這個多的欄位他的資訊型態是什麼?

68-84:如果是Choice Type,那就走Choice Type流程。

85-102:如果是Complex或Primitive的話,就走這邊。奇怪,這邊怎們不分開處理?因為是多,逐一執行時,還是會回到單一一筆的流程,那邊就會分了。

106-141:如果欄位宣告是[0..1]時。就依據資料型態個別處理吧。


=====SetupJsonObject=====


就根據欄位產生JsonObject,其中SetupPropertyValue函數也是用到Reflection,這邊就不贅述了。

沒有留言:

張貼留言