帮你快速理解、总结文档立即下载

日期时间搜索接口

最近更新时间:2026-07-28 16:18:01

我的收藏

接口描述

用于基于日期或时间字段对资源进行条件检索。客户端可通过 HTTP GET 方法,在 URL 中传入日期类搜索参数,以筛选满足指定日期、年份、时间范围或更新时间条件的资源记录。
本示例展示了常见的日期时间搜索场景,包括:
按指定生日检索患者。
按指定年份检索患者。
按日期范围检索就诊记录。
按资源最后更新时间检索数据。

输入参数

参数名称
类型
是否必填
说明
HTTP Method
String
固定为 GET
URL
String
搜索地址,格式为 [baseUrl]/[resourceType]?[searchParams]
Authorization
String
访问令牌,格式为 Bearer <AccessToken>。获取方式详见 调用方式
Accept
String
响应格式,建议使用 application/fhir+json
birthdate
String
按出生日期检索,支持完整日期(如 1974-02-13)或部分日期(如仅传年份 1974)。
date
String
按日期字段检索,可与 gele 等比较前缀组合。
_lastUpdated
String
按资源最后更新时间检索,取值通常为 ISO 8601 日期时间。
subject
String
引用搜索参数,可与日期参数组合使用,如 Patient/{id}
说明:
日期参数支持完整日期,也支持部分日期,例如仅传年份。
日期范围通常通过多个带比较前缀的同名参数组合实现。
_lastUpdated 可用于任意资源类型,筛选在指定时间点之后或之前更新的数据。
常见比较前缀包括 gegtlelteq 等。

输出参数

接口调用成功后,通常返回 HTTP 状态码 200 OK,响应体一般为 Bundle 资源,其中包含符合条件的资源列表及分页信息。
响应体主要字段说明:
字段
类型
说明
resourceType
String
返回资源类型,通常为 Bundle
id
String
Bundle 资源的唯一 ID,通常为 UUID。
meta
Object
Bundle 元数据,包含 lastUpdated 等字段。
meta.lastUpdated
String
Bundle 生成时间。
type
String
Bundle 类型,搜索场景通常为 searchset
total
Integer
命中的总记录数。仅在请求中传入 _total=accurate 时返回;未传该参数时可能不包含此字段。
link
Array
分页链接信息,包含 relationurl
link[].relation
String
链接关系类型,如 selfnextprevious
link[].url
String
对应分页的完整请求地址。
entry
Array
搜索结果列表。
entry[].fullUrl
String
资源的完整访问地址。
entry[].resource
Object
匹配到的资源内容。
entry[].resource.id
String
资源的唯一 ID。
entry[].resource.meta
Object
资源元数据,包含 versionIdlastUpdated 等。
entry[].search.mode
String
搜索命中模式,如 match
说明:
total 字段默认可能不返回。若需获取命中总数,请在请求参数中传入 _total=accurate;此时服务端会统计并返回 total。未传入 _total 参数时,响应体中可能不包含 total 字段。

示例

请求示例

示例一:查询生日为指定日期的患者。
GET /INSTANCE_ID/fhir/Patient?birthdate=1974-02-13 HTTP/1.1
Host: HOSTNAME
Authorization: Bearer <AccessToken>
Accept: application/fhir+json
示例二:查询出生于指定年份的患者。
GET /INSTANCE_ID/fhir/Patient?birthdate=1974 HTTP/1.1
Host: HOSTNAME
Authorization: Bearer <AccessToken>
Accept: application/fhir+json
示例三:查询指定日期范围内的就诊记录。
GET /INSTANCE_ID/fhir/Encounter?subject=Patient/ef2c19c4-ea06-473d-8781-368e4441c5c0&date=ge2009-06-01&date=le2009-07-31 HTTP/1.1
Host: HOSTNAME
Authorization: Bearer <AccessToken>
Accept: application/fhir+json
示例四:查询在指定时间点之后更新的患者资源。
GET /INSTANCE_ID/fhir/Patient?_lastUpdated=ge2017-01-01T00:00:00Z HTTP/1.1
Host: HOSTNAME
Authorization: Bearer <AccessToken>
Accept: application/fhir+json

响应示例

{
"resourceType": "Bundle",
"id": "180f7368-790e-4f2b-b24a-550eb027d747",
"meta": {
"lastUpdated": "2022-10-10T07:07:33.086-04:00"
},
"type": "searchset",
"link": [
{
"relation": "self",
"url": "https://HOSTNAME/INSTANCE_ID/fhir/Patient?birthdate=1974-02-13"
}
],
"entry": [
{
"fullUrl": "https://HOSTNAME/INSTANCE_ID/fhir/Patient/199963",
"resource": {
"resourceType": "Patient",
"id": "199963",
"meta": {
"versionId": "1",
"lastUpdated": "2022-10-10T07:07:33.086-04:00"
},
"birthDate": "1974-02-13"
},
"search": {
"mode": "match"
}
}
]
}

错误码

常见错误码如下,更多错误码请参见 错误码
错误码
说明
400 Bad Request
日期参数格式错误,或比较前缀使用不合法
401 Unauthorized
未认证,缺少有效身份凭证
403 Forbidden
已认证但无搜索该资源的权限
404 Not Found
指定资源类型不存在
422 Unprocessable Entity
搜索参数语法正确,但未通过业务或规则校验
500 Internal Server Error
服务端内部处理异常