I am new in FHIR, I want to develop FHIR's Server in C#, Please help me how to handle Resource within Resource. For Example in Encounter Resource, (partOf : Resource(Encounter)), similarly in Organization resource there is Organization etc, I am trying but it goes to Infinite LOOP. Not proceed to next classes.I am retrieving data from Database for time being... Thanks in advance
2 回答
当您查看资源的定义时,您会看到数据类型为 Resource(X) 的元素(如您提到的示例 partOf: Resource(Encounter)),这意味着资源引用了另一个资源(在本例中为 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”,该组件嵌套在资源中(所以没有参考),如 UML 中的“闭合菱形”形状所示。
如果您需要一个如何实现 .NET FHIR 服务器的示例,请在此处查看我们的开源实现:http: //www.github.com/furore-fhir/spark。此外,请务必通过 NuGet 获取 .NET 帮助程序 API(只需查找 FHIR)。
关于无限循环,引用完全有可能循环回初始资源。虽然资源通常不直接指向自己,但遍历资源链并在起始资源处回卷是很有可能的。遍历链接的系统需要考虑这种潜在的循环。