HAPI FHIR中,用來做FHIR Validation的工具為Instance Validator。最基本的Instance Vlidator如下:
和其他的功能類似,FhirContext為基礎,第一步為產生一validtor,然後生成一validation module並註冊於剛建立的validator。這樣就建立了一個可以實現基本的FHIR Validation。使用方法為呼叫validator.validateWithResult()
由於相關資源都來自基本的FhirContext,可以預期這樣的validator可以做的驗證工作就受限於FHIR標準。
除了使用標準的FhirContext外,也可以使用validation support chain,舉例如下:
和前面的範例比較可知,validation support chain可以視為"客製化"vlidation module的方式,也就是說,驗證的標準(包含StructureDefinition、CodeSystem、Terminology)可以依照使用者的實際需要彈性定義(範例還是以FhirContext為基礎,拆分profiles與Terminology)。
validation suport chain是由IValidationSupport
所組成,換句話說,StructureDefinition和Terminology都可以實作對應的IValidationSupport
。
NpmPackageValidationSupport
和LocalFileValidationSupport
都是Validation Support Modules的實作案例。Validation Support Modules可以找到相關參考資料。
舉例來說,如果我們要開發一個使用TW Core IG的Validator,我們就要使用NpmPackageValidationSupport
相關程式範例如下:
程式邏輯其實完全一樣,唯一的差別在於使用NpmPackageValidationSupport
產生適用於TW Core IG的Validation Support Modules。