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

更新

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

我的收藏

接口描述

用于更新指定资源 ID 对应的资源实例。该接口遵循标准 FHIR Update 操作,客户端通过 HTTP PUT 方法向指定资源地址提交完整资源内容,服务端更新成功后返回最新版本的资源数据及版本信息。
注意:
PUT 更新为全量替换操作,提交的请求体将完整覆盖目标资源的现有内容。若需要在原有资源基础上新增或修改部分字段,请求体中必须包含资源的全部字段(已有字段 + 新增字段);若仅提交部分字段,未包含的已有字段将被清除。如需仅更新局部字段而保留其余内容不变,请使用 补丁 接口(PATCH 方法 + application/json-patch+json)。
本示例展示了更新 Patient 资源的调用方式,在原有患者信息基础上新增地址信息(请求体中包含完整的患者信息及新增的地址字段)。

输入参数

参数名称
类型
是否必填
说明
HTTP Method
String
固定为 PUT
URL
String
资源更新地址,格式为 [baseUrl]/[resourceType]/[id]
Authorization
String
身份认证令牌,格式为 Bearer <AccessToken>,AccessToken 通过 调用方式 中的 GetAccessToken 接口获取(实例控制台场景可通过 GetWebAccessToken 接口获取)。
Content-Type
String
请求体 MIME 类型,写入类请求通常为 application/fhir+json;未指定时服务端将根据请求内容自动推断。
Request Body
JSON Object
待更新的完整 FHIR 资源内容,需包含与 URL 一致的资源 ID。PUT 为全量替换操作,请求体中未包含的字段将被清除。
请求 URL 示例
https://HOSTNAME/INSTANCE_ID/fhir/Patient/id
请求体示例字段说明
字段
类型
是否必填
说明
resourceType
String
FHIR 资源类型,本示例为 Patient。当前实例实际支持的全部资源类型,请通过 GET /INSTANCE_ID/fhir/metadata 调用 CapabilityStatement 接口,在返回的 rest[].resource[].type 中查看(实例支持的资源类型可在创建时通过 supported_resource_types 配置裁剪,不同实例可能不同)。各资源类型的字段定义可参见 FHIR Resource Types
id
String
资源唯一 ID。为服务端创建资源时自动分配的逻辑 ID,可通过以下方式获取:
调用 创建接口(POST)创建资源,从响应头 Content-Location 或响应体 id 字段获取。
调用 搜索接口(GET /[resourceType]?_id=/[resourceType]?identifier=)查询已有资源 ID。
identifier
Array
患者标识信息。
name
Array
姓名信息。
gender
String
性别。合法取值为 male(男)、female(女)、other(其他)、unknown(未知),详见 FHIR Patient.gender
birthDate
String
出生日期,格式为 YYYY-MM-DD
address
Array
地址信息。
address[].line
Array
街道地址。
address[].city
String
城市。
address[].state
String
省/州。
address[].postalCode
String
邮政编码。

输出参数

接口调用成功后,通常返回 HTTP 状态码 200 OK,并在响应头中包含资源版本信息与最新版本地址,响应体中返回更新后的完整资源内容。部分实例可能配置为更新时不返回响应体,此时可通过响应头中的 Content-Location 地址调用 Read 接口获取完整资源内容。
响应头示例说明:
参数名称
类型
说明
Status Code
Integer
成功时返回 200 OK
ETag
String
资源版本标识,例如 W/"2"
Content-Location
String
更新后资源的历史版本地址。
x-request-id
String
请求追踪 ID。
响应体主要字段说明:
字段
类型
说明
resourceType
String
资源类型。
id
String
被更新资源的唯一 ID。
meta.versionId
String
当前资源版本号。
meta.lastUpdated
String
资源最后更新时间。
meta.source
String
资源来源标识,格式为 #<哈希值>。仅在资源创建或更新时指定过该字段时才返回。可通过请求头 X-Source(需服务端启用 CaptureResourceSourceFromHeaderInterceptor)或客户端直接写入 meta.source 设置,详见 FHIR Meta.source
meta.profile
Array
资源遵循的 FHIR StructureDefinition profile 列表。
identifier
Array
资源标识信息。
name
Array
资源姓名信息。
gender
String
性别。
birthDate
String
出生日期。
address
Array
更新后的地址信息。
说明:
text 为 FHIR 资源的 Narrative(人类可读摘要)字段,包含 statusdiv 两个子字段。服务端默认不自动生成 Narrative,响应体中通常不包含 text 字段;仅当客户端在请求体中主动提供 text 字段时,服务端会将其保留并返回。text.status 的合法取值为 generated(由系统生成)、extensions(仅包含扩展信息)和 additional(包含额外内容),详见 FHIR NarrativeStatus

示例

请求示例

PUT /INSTANCE_ID/fhir/Patient/id HTTP/1.1
Host: HOSTNAME
Authorization: Bearer YOUR_ACCESS_TOKEN
Content-Type: application/fhir+json
{
"resourceType": "Patient",
"id": "id",
"identifier": [
{
"system": "urn:oid:1.2.36.146.595.217.0.1",
"value": "12345"
}
],
"name": [
{
"family": "Chalmers",
"given": [
"Peter",
"James"
]
}
],
"gender": "male",
"birthDate": "1974-12-25",
"address": [
{
"line": [
"534 Erewhon St"
],
"city": "PleasantVille",
"state": "Vic",
"postalCode": "3999"
}
]
}

响应示例

HTTP/1.1 200 OK
ETag: W/"2"
Content-Location: https://HOSTNAME/INSTANCE_ID/fhir/Patient/id/_history/2
x-request-id: faiRG8M5xyXBhbvf
{
"resourceType": "Patient",
"id": "id",
"meta": {
"versionId": "2",
"lastUpdated": "2022-10-10T07:51:04.607-04:00",
"source": "#oYcdS7hlfUBnsSlX",
"profile": [
"http://hl7.org/fhir/StructureDefinition/Patient"
]
},
"identifier": [
{
"system": "urn:oid:1.2.36.146.595.217.0.1",
"value": "12345"
}
],
"name": [
{
"family": "Chalmers",
"given": [
"Peter",
"James"
]
}
],
"gender": "male",
"birthDate": "1974-12-25",
"address": [
{
"line": [
"534 Erewhon St"
],
"city": "PleasantVille",
"state": "Vic",
"postalCode": "3999"
}
]
}

错误码

常见错误码如下,更多错误码请参见 错误码
错误码
说明
400 Bad Request
请求参数错误,或提交的资源内容不符合 JSON/FHIR 结构要求
401 Unauthorized
未认证,缺少有效身份凭证
403 Forbidden
已认证但无更新该资源的权限
404 Not Found
指定资源不存在
409 Conflict
资源状态冲突,例如版本冲突
415 Unsupported Media Type
Content-Type 不受支持,例如未使用 application/fhir+json
422 Unprocessable Entity
资源内容通过语法校验但未通过业务或 FHIR 规则校验
500 Internal Server Error
服务端内部处理异常