简体   繁体   English

在 EPIC FHIR 上搜索患者

[英]search Patient on EPIC FHIR

I'm trying to figure out how the patient searching on EPIC FHIR is working.我试图弄清楚在 EPIC FHIR 上搜索的患者是如何工作的。 Testing all on the sandbox here: https://fhir.epic.com/Documentation?docId=testpatients .在此处的沙盒上测试所有内容: https://fhir.epic.com/Documentation?docId=testpatients

The docs:文档:

Starting in May 2019, Patient.Search requests require one of the following minimum data sets by > default in order to match and return a patient record:从 2019 年 5 月开始,Patient.Search 请求默认需要以下最小数据集之一才能匹配并返回患者记录:

  • FHIR ID FHIR ID
  • {IDType}|{ID} {IDType}|{ID}
  • SSN identifier SSN 标识符
  • Given name, family name, and birthdate名字、姓氏和出生日期
  • Given name, family name, legal sex, and phone number/email名字、姓氏、法定性别和电话号码/电子邮件

This is working correctly (returning one patient):这工作正常(返回一名患者):

/api/FHIR/R4/Patient?family=Lin&given=Derrick&birthdate=1973-06-03

But this is also returning same record (extra character in family, wrong gender):但这也返回了相同的记录(家庭中的额外角色,错误的性别):

/api/FHIR/R4/Patient?family=Lina&given=Derrick&birthdate=1973-06-03&gender=female

Also this one is returning one record (extra character in family, no given name):这也是返回一个记录(家庭中的额外字符,没有名字):

/api/FHIR/R4/Patient?family=Lina&birthdate=1973-06-03

Not sure what I am doing wrong, or is it expected behaviour?不确定我做错了什么,还是预期的行为?

There is a bunch of history here, but Epic's current Patient.search behaves more like Patient.$match.这里有很多历史记录,但 Epic 当前的 Patient.search 行为更像 Patient.$match。 Specifically, the criteria provided to Patient.search are combined using (approximately) OR logic rather than AND logic.具体来说,提供给 Patient.search 的标准使用(近似)OR 逻辑而不是 AND 逻辑进行组合。 Behind the scenes, it is actually more of weighted score, but ultimately, the more criteria you provide, the more possible results you might get.在幕后,它实际上更多的是加权分数,但最终,您提供的标准越多,您可能获得的结果就越多。 This is often counterintuitive if you are used to how REST API query params normally work.如果您习惯于 REST API 查询参数的正常工作方式,这通常是违反直觉的。 Technically it is spec legal though, since FHIR has a blurb in there about servers being able to return other appropriate results as it sees fit.但从技术上讲,它是规范合法的,因为 FHIR 在其中有一个关于服务器能够返回它认为合适的其他适当结果的宣传。

https://build.fhir.org/search.html#Introduction https://build.fhir.org/search.html#Introduction

However, the server has the prerogative to return additional search results if it believes them to be relevant.但是,如果服务器认为它们是相关的,则它有权返回额外的搜索结果。

We don't have any specific updates right now, but there may be changes coming in Soon(tm).我们现在没有任何具体的更新,但很快(tm)可能会有变化。

I'm surprised the last one is returning any results, but regarding the first two searches, this is quite possible or even expected with Epic.我很惊讶最后一个返回任何结果,但关于前两个搜索,这在 Epic 中是完全可能的,甚至是预期的。 Epic has special logic in the background that evaluates the parameter values you pass in against certain criteria, such as whether the name matches exactly, the name is similar, the birthdate matches exactly, etc. As a result, oftentimes not only exact matches but also similar matches will be returned by the Patient.Search API. Epic 在后台具有特殊的逻辑,可以根据某些条件评估您传入的参数值,例如名称是否完全匹配、名称是否相似、出生日期是否完全匹配等。因此,通常不仅完全匹配,而且Patient.Search API 将返回类似的匹配项。 The weighting of the criteria is customizable by Epic customer, so some may have stricter logic than others.标准的权重可由 Epic 客户自定义,因此有些可能比其他的具有更严格的逻辑。

I'd recommend always validating the returned result against your input parameters to verify you are working with an exact match.我建议始终根据您的输入参数验证返回的结果,以验证您正在使用完全匹配。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM