FHIR 资源的 id 和标识符有什么区别?
What's the difference between id and identifier for a FHIR resource?
Resource
实体将 id
属性定义为 "Logical id of this artifact"。同时对于像MedicationRequest
这样的资源也定义了一个名为identifier
的属性。描述为 "External identifier" 或 "Business identifier"。
我想知道这两个属性有什么区别?从 RESTful API 定义如 update
,id
可用于唯一定位资源,如 POST [base]/[resource]/[id]
。在 POST
之后,另一个 GET
应该能够使用 GET [base]/[resource]/[id]
检索该资源。它更像是类似于存储标识符的东西。那identifier
呢?
.id 由本地服务器控制。当资源从服务器处理到服务器时,它会发生变化。它基本上是对象的内部主键,完全由 FHIR 服务器本身控制(或者更准确地说,由客户端和服务器之间的交互控制)。所以它不是一个可移植的标识符。
但几乎所有资源都对应于(某种程度上)真实世界的实体,这些实体也记录在其他系统中,并分配有可移植的标识符,用于跨多个系统跟踪实体。随着资源(或现实世界实体的其他形式的表示)被复制并从一个地方移动到另一个地方,这些标识符是不变的。一些标识符由外部(政府)机构分配。标识符包括患者 MRN、提供者编号等。通常,由于分布式记录处理,实体有许多标识符要携带,并且整个业务都在它们之间进行仲裁。
Resource
实体将 id
属性定义为 "Logical id of this artifact"。同时对于像MedicationRequest
这样的资源也定义了一个名为identifier
的属性。描述为 "External identifier" 或 "Business identifier"。
我想知道这两个属性有什么区别?从 RESTful API 定义如 update
,id
可用于唯一定位资源,如 POST [base]/[resource]/[id]
。在 POST
之后,另一个 GET
应该能够使用 GET [base]/[resource]/[id]
检索该资源。它更像是类似于存储标识符的东西。那identifier
呢?
.id 由本地服务器控制。当资源从服务器处理到服务器时,它会发生变化。它基本上是对象的内部主键,完全由 FHIR 服务器本身控制(或者更准确地说,由客户端和服务器之间的交互控制)。所以它不是一个可移植的标识符。
但几乎所有资源都对应于(某种程度上)真实世界的实体,这些实体也记录在其他系统中,并分配有可移植的标识符,用于跨多个系统跟踪实体。随着资源(或现实世界实体的其他形式的表示)被复制并从一个地方移动到另一个地方,这些标识符是不变的。一些标识符由外部(政府)机构分配。标识符包括患者 MRN、提供者编号等。通常,由于分布式记录处理,实体有许多标识符要携带,并且整个业务都在它们之间进行仲裁。