更改 HAPI-FHIR 中的搜索 URL

问题描述

我目前正在开展一个 Hapi-FHIR 项目。 在那里,我想通过患者实施一系列问卷回答。该集合返回具有给定 PatientId 的 Patient 的所有 QuestionnaireResponses。 这没有问题,但我也想遵守 REST Resource Naming Conventions。 所以我的收藏的搜索 URL 应该看起来像 https://example.com/patient/{id}/questionnaireresponses。 现在我的搜索 URL 如下所示: https://example.com/QuestionnaireResponse?patient={id} 我已经尝试使用 @Path("/patient/{id}/questionnaireresponses") 设置我自己的搜索网址,但 HAPI-FHIR 似乎忽略了这一点。 我已经搜索了 HAPI-FHIR 文档,但没有找到任何相关内容

我的问题是在 HAPI-FHIR 中搜索 url 的命名发生在哪里以及如何更改搜索 url 的名称

解决方法

虽然我也发现 FHIR 命名和语法选择有点烦人,但它们是 FHIR 规范的组成部分,并非特定于 Hapi。如果您更改它们,那么期待标准化 FHIR API 的客户端将无法使用您的服务器。哪一种打败了使用 FHIR 的意义,不是吗?

在 Hapi 服务器请求(患者到患者或患者)中更改资源名称可能很简单,但由于它实际上没有多大意义,因此可能不是。因此,从技术上讲,您可能会被迫预先处理请求以支持语法的那部分。

对于您想要的那种分层询问(患者/{id}/questionnaireresponses),即使在纯语义上,事情也更加复杂,因为两种资源类型之间可能存在不止一种关系。即使对于您的示例,患者/{id}/questionnaireresponses 是否仅返回患者为主题的回答,还是仅返回他为作者的回答?你将如何只检索他创作的那些? FHIR 旨在尽可能明确,以避免可能导致发送错误信息的不同解释。

,

HapiFhir 提供了一种将两种资源组合在一起的机制。 使用 compartments 解决了我的问题。

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...