Azure API for FHIR导入旧数据时如何自定义指定资源ID?
Azure API for FHIR 自定义ID创建资源操作方案
- 你之前的操作不符合FHIR的标准请求规范:向服务根路径
/发送PUT请求不属于合法的资源创建操作,向根路径发送POST请求时,服务默认会忽略请求体中的ID字段、自动生成服务端ID,属于FHIR标准的默认行为。
正确操作方式
单个资源创建时直接按以下规则发送请求即可:
- 请求方法使用
PUT,不要用根路径,请求路径指定为/<FHIR资源类型>/<你自定义的资源ID>
示例:假设你的FHIR服务地址为https://xxx.fhir.azurehealthcareapis.com,要创建ID为local-pat-001的Patient资源,完整请求地址为https://xxx.fhir.azurehealthcareapis.com/Patient/local-pat-001 - 请求头配置:携带正常的访问授权Token,
Content-Type设置为application/fhir+json - 请求体规则:可以不带
id字段,如果携带必须和路径中的自定义ID完全一致,否则服务会返回参数错误
批量导入场景适配
如果需要批量导入带自定义ID的资源,使用FHIR标准的Transaction类型Bundle即可:
- Bundle内每个资源对应的
entry.request字段,指定method为PUT,url为<资源类型>/<自定义ID>,提交整个Bundle到服务根路径的POST接口即可批量完成带自定义ID的资源创建
后续切换自动生成ID的方法
遗留数据导入完成后,不需要修改任何服务配置,只需要把创建资源的请求调整为向/<FHIR资源类型>路径发送POST请求,服务就会自动生成ID,和你正常运营的需求完全匹配
内容的提问来源于stack exchange,提问作者tscrip
相关产品推荐
相关产品推荐

