避免在创建资源时重复 Patient
Avoid duplicate Patient on resource create
多次发送此请求时,我创建了多个患者。
{
"resourceType": "Patient",
"identifier": [
{
"use": "usual",
"system": "urn:oid:2.16.840.1.113883.19.5",
"value": "12345"
}
],
"active": true,
"name": [
{
"family": "Levin",
"given": [
"Omri"
]
}
],
"gender": "male",
"birthDate": "1980-09-24"
}
我的假设是,当我提供 identifier
时,它会拒绝第二次调用,因为 PAtient 已经存在。但似乎并非如此?我如何避免这些重复?
(在 Azure 和 Google 云上都试过了 - 结果相同)
我不得不更深入地研究文档。答案就在这里 - https://www.hl7.org/fhir/http.html#ccreate
在我的例子中,添加 header If-None-Exist: identifier=urn:oid:2.16.840.1.113883.19.5|12345
在 Azure 上成功了。但是,在 Google 云上,如果尝试使用 API 的 V1,我们会收到添加 header:
的错误
{
"issue": [
{
"code": "value",
"details": {
"text": "invalid_query"
},
"diagnostics": "conditional operations are not supported in API version v1",
"severity": "error"
}
],
"resourceType": "OperationOutcome"
}
为了克服这个问题,我们需要使用 v1beta1
。所以 URL 应该改变
- https://healthcare.googleapis.com/v1/projects/...
+ https://healthcare.googleapis.com/v1beta1/projects/...
详细了解“v1”和“新 v1beta1”的区别here
多次发送此请求时,我创建了多个患者。
{
"resourceType": "Patient",
"identifier": [
{
"use": "usual",
"system": "urn:oid:2.16.840.1.113883.19.5",
"value": "12345"
}
],
"active": true,
"name": [
{
"family": "Levin",
"given": [
"Omri"
]
}
],
"gender": "male",
"birthDate": "1980-09-24"
}
我的假设是,当我提供 identifier
时,它会拒绝第二次调用,因为 PAtient 已经存在。但似乎并非如此?我如何避免这些重复?
(在 Azure 和 Google 云上都试过了 - 结果相同)
我不得不更深入地研究文档。答案就在这里 - https://www.hl7.org/fhir/http.html#ccreate
在我的例子中,添加 header If-None-Exist: identifier=urn:oid:2.16.840.1.113883.19.5|12345
在 Azure 上成功了。但是,在 Google 云上,如果尝试使用 API 的 V1,我们会收到添加 header:
{
"issue": [
{
"code": "value",
"details": {
"text": "invalid_query"
},
"diagnostics": "conditional operations are not supported in API version v1",
"severity": "error"
}
],
"resourceType": "OperationOutcome"
}
为了克服这个问题,我们需要使用 v1beta1
。所以 URL 应该改变
- https://healthcare.googleapis.com/v1/projects/...
+ https://healthcare.googleapis.com/v1beta1/projects/...
详细了解“v1”和“新 v1beta1”的区别here