VB.NET使用Hl7.Fhir库构建符合德国基础Profile的FHIR资源问题求解
问题根因
该问题不属于FHIR R4与德国基础Profile的兼容问题,是API使用错误导致:
- Hl7.Fhir库中
Address.Line的实际类型为IEnumerable<Hl7.Fhir.Model.FhirString>,并非原生.NET字符串集合 - 原生
string没有存储FHIR扩展的相关属性,只有FHIR封装的基础类型(如FhirString)继承了Element基类的Extension集合属性,支持挂载扩展
解决方案
你需要将地址行内容封装为FhirString对象,再为对应FhirString添加扩展即可,修改后的参考代码如下:
' 初始化Organization与Address对象 Dim organization As New Organization() Dim adr As New Address() ' 调用你已封装好的扩展生成方法 Dim ext As Extension = FunctionBuildExtension(url, value) ' 将地址行内容封装为FhirString对象,不要直接使用原生字符串 Dim streetLine As New FhirString(street) ' 为该地址行添加扩展 streetLine.Extension.Add(ext) Dim cityLine As New FhirString(city) ' 若其他地址行需要加扩展,重复上述操作即可 ' 给Address.Line赋值封装后的FhirString集合 adr.Line = New List(Of FhirString) From {streetLine, cityLine} organization.Address.Add(adr)
验证方式
完成上述修改后重新序列化资源,即可看到地址行元素下已携带你添加的扩展字段,符合对应Profile的校验要求。
内容的提问来源于stack exchange,提问作者Mino
相关产品推荐
相关产品推荐

