【发布时间】:2022-08-24 03:52:20
【问题描述】:
我们为患者实现了 $match 操作,该操作采用搜索条件获取 FHIR 参数。当参数中的患者资源包含多个给定名称时,此搜索应如何工作?我们在 FHIR 中看不到任何与此相关的内容。我们最好的猜测是,在尝试匹配系统中的给定名称时,我们将其视为 OR。
我们确实看到复合参数可以在查询字符串中用作 AND 或 OR,但不确定在使用 $match 操作时这如何等同。
标签: hl7-fhir
我们为患者实现了 $match 操作,该操作采用搜索条件获取 FHIR 参数。当参数中的患者资源包含多个给定名称时,此搜索应如何工作?我们在 FHIR 中看不到任何与此相关的内容。我们最好的猜测是,在尝试匹配系统中的给定名称时,我们将其视为 OR。
我们确实看到复合参数可以在查询字符串中用作 AND 或 OR,但不确定在使用 $match 操作时这如何等同。
标签: hl7-fhir
$match 本质上是一个“模糊”搜索。不同的服务器会以不同的方式实现它。许多将允许替代拼写、常见的短名称(例如“Richard”的“Dick”)等。它们还可能允许转换月份和日期以及各种类似的数据输入错误。比赛的“接近性”反映在比赛的得分中。完全有可能找回一个不匹配的匹配候选人任何如果其他元素的分数足够高,则完全可以使用给定名称。
【讨论】:
所以从技术上讲,我认为它是这样工作的:
和 /Patient?given name=John Givenname=Jacobs Givenname=Jingleheimer
上面是一个 AND 子句。有(可能)一个人有多个名字“John”、“Jacob”、“Jingerheimer”。
旁注,我实际上在这里报告了 MS-FHIR-Server 的一个错误(团队很快修复了该错误):
https://github.com/microsoft/fhir-server/issues/760
"name": [
{
"use": "official",
"family": "Kirk",
"given": [
"James",
"Tiberious"
]
},
边注:
表示这个的 Hapi-Fhir 对象是“ca.uhn.fhir.rest.param.TokenAndListParam”
但患者匹配是一门“艺术”。小心,“误报”(具有高“分数”)是/可能是一个非常大的问题。
【讨论】: