在 HAPI-FHIR 中更改搜索 URL

Change search URL in HAPI-FHIR

我目前正在做一个 Hapi-FHIR 项目。 在那里,我想实施 collection 的患者问卷调查。 collection 返回具有给定 PatientId 的患者的所有 QuestionnaireResponses。 这没有问题,但我也想坚持 REST Resource Naming Conventions。 所以我的 Collection 的搜索 URL 应该看起来像 https://example.com/patient/{id}/questionnaireresponses。 现在我的搜索 URL 看起来像这样: https://example.com/QuestionnaireResponse?patient={id} 我已经尝试用 @Path("/patient/{id}/questionnaireresponses") 设置我自己的搜索 Url 但 HAPI-FHIR 似乎忽略了这一点。 我已经搜索了 HAPI-FHIR 文档,但没有找到任何相关内容。

我的问题是搜索 url 的命名发生在 HAPI-FHIR 中,我如何更改搜索 url 的名称?

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

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

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

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