Java fhir.executeBundle正在替换资源id…如何防止这种情况?
我正在使用它将资源上载到FHIRstore。 资源如下:Java fhir.executeBundle正在替换资源id…如何防止这种情况?,java,google-cloud-platform,google-cloud-firestore,google-cloud-storage,hl7-fhir,Java,Google Cloud Platform,Google Cloud Firestore,Google Cloud Storage,Hl7 Fhir,我正在使用它将资源上载到FHIRstore。 资源如下: { "resourceType": "Bundle", "id": "bundle-transaction", "meta": { "lastUpdated": "2018-03-11T11:22:16Z" }, "type": "transa
{
"resourceType": "Bundle",
"id": "bundle-transaction",
"meta": {
"lastUpdated": "2018-03-11T11:22:16Z"
},
"type": "transaction",
"entry": [
{
"resource": {
"resourceType": "Patient", "id" : 123456,
"name": [
{
"family": "Smith",
"given": [
"Darcy"
]
}
],
"gender": "female",
"address": [
{
"line": [
"123 Main St."
],
"city": "Anycity",
"state": "CA",
"postalCode": "12345"
}
]
},
"request": {
"method": "POST",
"url": "Patient"
}
}
]
}
但是我正在使用的id(123456)正在被十六进制数替换
使用时不会发生这种情况
有没有办法阻止executeBundle方法替换我的id…因为我想在我的资源中使用自定义id
任何帮助都将不胜感激。
谢谢当您执行事务时,效果将与您单独发布资源时相同。在文章中,服务器确定资源id。在常规文章中,该id被忽略或引发错误。在事务中,id用于管理整个事务中引用的解析,但服务器仍然选择持久化资源的id(并相应地更新所有引用)。如果要控制事务中的资源id值,请使用PUT而不是POST。(请注意,并非所有服务器都允许“upsert”-即在特定资源位置执行创建的PUT。)有关详细信息,请参阅。如果服务器不允许使用PUT进行upsert,我们是否没有其他方法来控制id值?否。服务器通常会控制id,以防止多个客户端意外地将不同的对象发布到同一个位置和/或因为它们的持久性技术依赖于特定的标识符模式(例如整数、GUID等)。您可以自由地将“您的”id包含为搜索服务器时可以使用的“标识符”,但是,除非服务器的设计和配置允许您升级,否则您无法控制它使用的id。Google Cloud Healthcare API允许您通过设置“启用更新创建”标志来选择每个FHIR存储是否允许升级。