我们正在尝试为我们的应用程序实现FHIR Rest服务器。在我们当前的数据模型(以及实时数据)中,几个FHIR资源由多个表表示,例如,什么都是观察结果存储在表格中,用于生命值,实验室价值和诊断。每个表都有一个独立的自动递增主ID,因此在不同的表中存在具有相同ID的条目。但是对于FHIR服务器的GET或DELETE调用,需要一个唯一的ID。处理这个问题的最明智的方法是什么?
搜索没有揭示这样做的固有方式,所以我正在考虑这两个选项:
两者都有缺点:第一个需要ID解析器,第二个需要多个数据库调用来识别正确的记录。
是否存在允许将资源拆分为多个子资源的FHIR方式,即使在Rest URL中也是如此?理想情况下,我会得到类似GET服务器的东西:port / Observation / laboratory / 123
答案 0 :(得分:0)
服务器系统将根据内部数据的存储方式提供各种不同的数据分区。 FHIR所做的是提供一个试图隐藏这些变化的界面。因此,观察/实验室/ 123将违背我们正在尝试做的事情 - 因为每个系统都会有不同的划分,并且很难实现互操作性。
您提出的任何一个选项都可以使用。我略微倾向于第一个选项,因为它不涉及更改持久层,而且它是一个相对直接的转换,可以在外部/ fhir和内部之间进行转换。
答案 1 :(得分:0)
是否存在允许将资源拆分为多个的FHIR方式 子资源,即使在Rest URL中?理想情况下,我会得到类似的东西 GET服务器:端口/观察/实验室/ 123
这对搜索意味着什么?那么,什么会/ Obervation?code = xxx搜索通过?将搜索实验室,生命体征等组合在一起,还是只允许访问/观察/实验室?
如果这些是真正的"筒仓",也许您可以使用http://servername/lab/Observation(因此交换最后两个路径部分),这表明您的服务器有多个"端点"对于不同的观察。我认为更多的客户将能够处理该网址而不是您建议的网址。
最好,仍然,我认为你有两个其他选择之一,第一个确实是最容易实现的。