【发布时间】:2014-03-24 06:27:15
【问题描述】:
我是 FHIR 的新手,我想用 C# 开发 FHIR 的服务器,请帮助我如何处理 Resource 中的资源。例如在遭遇资源中,(partOf:Resource(Encounter)),类似地在组织资源中有组织等,我正在尝试但它进入无限循环。不继续下一课。我暂时从数据库中检索数据...提前谢谢
【问题讨论】:
标签: hl7-fhir
我是 FHIR 的新手,我想用 C# 开发 FHIR 的服务器,请帮助我如何处理 Resource 中的资源。例如在遭遇资源中,(partOf:Resource(Encounter)),类似地在组织资源中有组织等,我正在尝试但它进入无限循环。不继续下一课。我暂时从数据库中检索数据...提前谢谢
【问题讨论】:
标签: hl7-fhir
当您查看资源的定义时,您会看到数据类型为 Resource(X) 的元素(如您提到的示例,partOf: Resource(Encounter)),这意味着资源引用 另一个资源(在本例中为遭遇)。 'partOf' 元素实际上是一个 URL(或者更确切地说,是一个 uri),它指向同一个 RESTful 端点上其他地方的另一个资源(或者如果您使用这些结构,则在同一个消息或文档中)。所以,这更像是“传统”数据库技术中的“外键”。
所以,是的,Organizations 可以引用 Organizations,Encounters 可以引用 Encounters! 在我关于 FHIR 的教程(可在http://www.slideshare.net/ewoutkramer/fhir-tutorial-morning 获得)中,您可以从幻灯片 29 中找到一些示例和背景。基本上,这是参考的样子:
<partOf>
<reference value='http://spark.furore.com/fhir/Organizaiton/4433EF-33'/>
<display value="Some other organization"/>
</partOf>
请注意,这与收容有很大不同。如果您查看相同的 Encounter 资源(http://www.hl7.org/implement/standards/fhir/encounter.html),您会看到一个组件“Hospitalization”,该组件嵌套在资源中(因此 no 引用),如以下所示UML 中的“封闭菱形”形状。
如果您需要如何实现 .NET FHIR 服务器的示例,请在此处查看我们的开源实现:http://www.github.com/furore-fhir/spark。此外,请务必通过 NuGet 获取 .NET 帮助程序 API(只需查找 FHIR)。
【讨论】:
关于无限循环,引用完全有可能循环回初始资源。虽然资源通常不直接指向自身,但遍历资源链并在起始资源处回卷是很有可能的。遍历链接的系统需要考虑这种潜在的循环。
【讨论】: