FHIR R4 的搜索参数为 HealthLake - AWS HealthLake

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

FHIR R4 的搜索参数为 HealthLake

使用 FHIR search交互根据某些筛选条件在 HealthLake 数据存储中搜索一组 FHIR 资源。可以使用GETPOST请求执行search交互。对于涉及个人身份信息 (PII) 或受保护的健康信息 (PHI) 的搜索,建议使用POST请求,因为 PII 和 PHI 已添加为请求正文的一部分,并在传输过程中进行加密。

注意

本章中描述的 FHIR search 交互符合 HL7 FHIR R4 的医疗保健数据交换标准。由于它代表 HL7 FHIR 服务,因此不是通过 AWS CLI 和 AWS SDKs提供的。有关更多信息,请参阅 FHIR R4 RESTful API 文档search中的。

您也可以使用 Amazon Athena 使用 SQL 查询 HealthLake 数据存储。有关更多信息,请参阅集成。

HealthLake 支持以下 FHIR R4 搜索参数子集。有关更多信息,请参阅 FHIR R4 的搜索参数为 HealthLake。

支持的搜索参数类型

下表显示了中支持的搜索参数类型 HealthLake。

支持的搜索参数类型
搜索参数 说明
_id 资源 ID(不是完整网址)
_last Upd 上次更新日期。服务器可以自行决定边界精度。
_tag 按资源标签搜索。
_个人资料 搜索所有标有个人资料的资源。
_安全 搜索应用于此资源的安全标签。
_来源 搜索资源来源。
_text 搜索资源的叙述。
createdAt 在自定义扩展程序上搜索 createdAt。
注意

以下搜索参数仅适用于 2023 年 12 月 9 日之后创建的数据存储:_security、_source、_text、createAt。

下表显示了如何根据给定资源类型的指定数据类型修改查询字符串的示例。为清楚起见,示例列中的特殊字符未经过编码。要成功进行查询,请确保查询字符串已正确编码。

搜索参数示例
搜索参数类型 详细信息 示例

数字

在指定资源中搜索数值。可以观察到重要的数字。有效位数是按搜索参数值确定的,不包括前导零。允许使用比较前缀。

[parameter]=100

[parameter]=1e2

[parameter]=lt100

日期/ DateTime

搜索特定的日期或时间。预期的格式是,yyyy-mm-ddThh:mm:ss[Z|(+|-)hh:mm]但可能有所不同。

接受以下数据类型:datedateTimeinstantPeriod、和Timing。有关在搜索中使用这些数据类型的更多详细信息,请参阅 FHIR R4 RESTful API 文档中的日期

允许使用比较前缀。

[parameter]=eq2013-01-14

[parameter]=gt2013-01-14T10:00

[parameter]=ne2013-01-14

字符串

以区分大小写的方式搜索字符序列。

同时支持HumanNameAddress类型。有关更多详细信息,请参阅 FHIR R4 文档中的Address数据类型条目和数据类型条目。HumanName

使用:text修饰符支持高级搜索。

[base]/Patient?given=eve

[base]/Patient?given:contains=eve

令牌

搜索 close-to-exact与一串字符的匹配项,通常与一对医疗代码值进行比较。

区分大小写与创建查询时使用的代码系统有关。基于Subsumption的查询可以帮助减少与区分大小写有关的问题。为清楚起见|,尚未编码。

[parameter]=[system]|[code]: 这里[system]指的是编码系统,[code]指的是在该特定系统中找到的代码值。

[parameter]=[code]: 在这里,您的输入将匹配代码或系统。

[parameter]=|[code]: 此处您的输入将与代码匹配,并且系统属性没有标识符。

复合键

使用修饰符$,运算在单个资源类型中搜索多个参数。

允许使用比较前缀。

/Patient?language=FR,NL&language=EN

Observation?component-code-value-quantity=http://loinc.org|8480-6$lt60

[base]/Group?characteristic-value=gender$mixed

Quantity

搜索数字、系统和代码作为值。必须输入数字,但系统和代码是可选的。基于数量数据类型。有关更多详细信息,请参阅 FHIR R4 文档中的数量

使用以下假设语法 [parameter]=[prefix][number]|[system]|[code]

[base]/Observation?value-quantity=5.4|http://unitsofmeasure.org|mg

[base]/Observation?value-quantity=5.4|http://unitsofmeasure.org|mg

[base]/Observation?value-quantity=5.4|http://unitsofmeasure.org|mg

[base]/Observation?value-quantity=le5.4|http://unitsofmeasure.org|mg

参考

搜索对其他资源的引用。

[base]/Observation?subject=Patient/23

test

URI

搜索可明确标识特定资源的字符串。

[base]/ValueSet?url=http://acme.org/fhir/ValueSet/123

特殊

基于集成的医疗 NLP 扩展进行搜索。

支持的高级搜索参数 HealthLake

HealthLake 支持以下高级搜索参数。

名称 说明 示例 能力
_include 用于请求在搜索请求中返回其他资源。它返回目标资源实例引用的资源。 Encounter?_include=Encounter:subject
_revinclude 用于请求在搜索请求中返回其他资源。它返回引用主资源实例的资源。 Patient?_id=patient-identifier&_revinclude=Encounter:patient
_summary 摘要可用于请求资源的子集。 Patient?_summary=text 支持以下摘要参数:_summary=true_summary=false_summary=text_summary=data
_elements 请求在搜索结果中将一组特定的元素作为资源的一部分返回。 Patient?_elements=identifier,active,link
_total 返回与搜索参数匹配的资源数量。 Patient?_total=accurate Supp _total=accurate ort,_total=none
_sort 使用逗号分隔的列表表示返回的搜索结果的排序顺序。该-前缀可用于逗号分隔列表中的任何排序规则,以表示降序。 Observation?_sort=status,-date Support 支持按带有类型的字段进行排序Number, String, Quantity, Token, URI, ReferenceDate仅在 2023 年 12 月 9 日之后创建的数据存储支持排序依据。Support 最多支持 5 个排序规则。
_count 控制搜索包中每页返回多少资源。 Patient?_count=100 最大页面大小为 100。
chaining 搜索引用资源的元素。将链接搜索.定向到引用资源中的元素。 DiagnosticReport?subject:Patient.name=peter
reverse chaining (_has) 根据引用资源的元素搜索资源。 Patient?_has:Observation:patient:code=1234-5

_include

_include在搜索查询中使用还允许返回其他指定的 FHIR 资源。用于包括_include向前链接的资源。

例 — 用于_include查找被诊断为咳嗽的患者或患者群体

你可以在指定咳嗽诊断代码的Condition资源类型上进行搜索,然后使用_include指定也要返回该诊断subject的代码。在Condition资源类型中,subject指的是患者资源类型或组资源类型。

为清楚起见,示例中的特殊字符未经过编码。要成功查询,请确保查询字符串已正确编码。

GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/ Condition?code=49727002&_include=Condition:subject

_revinclude

_revinclude在搜索查询中使用还允许返回其他指定的 FHIR 资源。用于包含_revinclude向后链接的资源。

例 — 用于包括_revinclude与特定患者关联的相关遭遇和观察资源类型

要进行此搜索,首先要Patient通过在_id搜索参数中指定个人的标识符来定义个人。然后,您可以使用结构Encounter:patientObservation:patient来指定其他 FHIR 资源。

为清楚起见,示例中的特殊字符未经过编码。要成功查询,请确保查询字符串已正确编码。

GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/ Patient?_id=patient-identifier&_revinclude=Encounter:patient&_revinclude=Observation:patient

_summary

_summary在搜索查询中使用允许用户请求 FHIR 资源的子集。它可以包含以下值之一:true, text, data, false. 任何其他值都将被视为无效。返回的资源将在 meta.tag 'SUBSETTED' 中标记,以表示资源不完整。

  • true:返回所有在资源基本定义中标记为 “摘要” 的受支持元素。

  • text: 仅返回 “文本”、“id”、“meta” 元素,仅返回顶级必填元素。

  • data: 返回除'文本'元素之外的所有部分。

  • false: 返回资源的所有部分

在单个搜索请求中,_summary=text不能与_include_revinclude搜索参数组合使用。

例 — 获取数据存储中患者资源的 “文本” 元素。
GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient?_summary=text

_elements

_elements在搜索查询中使用允许请求特定的 FHIR 资源元素。返回的资源将在 meta.tag 'SUBSETTED' 中标记,以表示资源不完整。

_elements参数由以逗号分隔的基本元素名称列表组成,例如在资源中根级别定义的元素。只有列出的元素才会被返回。如果_elements参数值包含无效元素,服务器将忽略它们并返回必需元素和有效元素。

_elements不适用于包含的资源(搜索模式为的返回资源include)。

在单个搜索请求中,_elements不能与_summary搜索参数组合使用。

例 — 获取 HealthLake 数据存储中患者资源的 “标识符”、“活动”、“链接” 元素。
GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient?_elements=identifier,active,link

_total

_total在搜索查询中使用将返回与请求的搜索参数相匹配的资源数量。 HealthLake 将返回 of search 响应中匹配资源的总数(搜索模式为Bundle.total的返回资源match)。

_total支持accuratenone参数值。 _total=estimate不支持。任何其他值都将被视为无效。 _total不适用于包含的资源(搜索模式为的返回资源include)。

例 — 获取数据存储中患者资源的总数:
GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient?_total=accurate

_sort

_sort在搜索查询中使用可按特定顺序排列结果。结果根据以逗号分隔的排序规则列表按优先级顺序排序。排序规则应该是有效的搜索参数。任何其他值都将被视为无效。

在单个搜索请求中,您最多可以使用 5 个排序搜索参数。您可以选择使用-前缀来表示降序。默认情况下,服务器将按升序排序。

支持的排序搜索参数类型为:Number, String, Date, Quantity, Token, URI, Reference. 如果搜索参数指的是嵌套的元素,则排序不支持此搜索参数。例如,在资源类型的 “名称” 上搜索患者指的是患者。 HumanName 数据类型的名称元素被视为嵌套。因此,不支持按 “姓名” 对患者资源进行排序。

例 — 在数据存储中获取患者资源,并按出生日期升序对其进行排序:
GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient?_sort=birthdate

_count

该参数_count被定义为向服务器发出的有关应在单个页面中返回多少资源的指令。

最大页面大小为 100。任何大于 100 的值均无效。 _count=0不支持。

例 — 搜索患者资源并将搜索页面大小设置为 25:
GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient?_count=25

Chaining and Reverse Chaining(_has)

FHIR 中的链接和反向链接提供了一种更高效、更紧凑的方式来获取相互关联的数据,从而减少了对多个单独查询的需求,并使开发人员和用户更方便地检索数据。

如果任何级别的递归返回的结果超过 100 个,则 HealthLake 将返回 4xx,以防止数据存储过载并导致多次分页。

例 — Chaining-获取所有 DiagnosticReport 指向患者姓名为 peter 的患者的内容。
GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/DiagnosticReport?subject:Patient.name=peter
例 — 反向链接-获取患者资源,其中患者资源由至少一个观察点引用,其中观察结果的代码为 1234,其中观察结果指患者搜索参数中的患者资源。

GET https://healthlake.region.amazonaws.com/datastore/datastoreId/r4/Patient?_has:Observation:patient:code=1234

支持的搜索修饰符

搜索修饰符用于基于字符串的字段。中的所有搜索修饰符都 HealthLake 使用基于布尔值的逻辑。例如,您可以指定:contains较大的字符串字段应包含一个小字符串,以便将其包含在搜索结果中。

支持的搜索修饰符
搜索修饰符 类型
:缺失 除外的所有参数 Composite
:精确 字符串
:包含 字符串
:不是 令牌
:文本 令牌
:标识符 参考
:以下 URI

支持的搜索比较器

您可以使用搜索比较器来控制搜索中匹配的性质。在搜索数字、日期和数量字段时,您可以使用比较器。下表列出了支持的搜索比较器及其定义。 HealthLake

支持的搜索比较器

搜索比较器

说明

eq 资源中参数的值等于提供的值。
没有 资源中参数的值不等于提供的值。
gt 资源中参数的值大于提供的值。
lt 资源中参数的值小于提供的值。
ge 资源中参数的值大于或等于提供的值。
le 资源中参数的值小于或等于提供的值。
sa 资源中参数的值从提供的值之后开始。
eb 资源中参数的值在提供的值之前结束。

不支持 FHIR 搜索参数 HealthLake

HealthLake 支持所有 FHIR 搜索参数,但下表中列出的参数除外。有关 FHIR 搜索参数的完整列表,请参阅 FHIR 搜索参数注册表。

不支持的搜索参数
捆绑包构成 位置-附近
捆绑包标识符 C onsent-source-reference
捆绑消息 合同患者
捆绑包类型 资源内容
捆绑包时间戳 资源查询