我正在尝试从参考(名称“资源”)类中派生所有资源来解决问题(例如,在组资源->成员中:资源(患者|从业者|设备|药物|物质)0..*)。
我已将标识符作为引用类中的数据成员,并使用 .NET 从此类中派生所有资源。但是问题就在这里,资源“物质和药物”中缺少标识符。如何解决这个问题???请帮忙
问候
标识符不在基础资源中,因此您尝试做的事情无法完成,因为正如您所说,物质和药物没有标识符。
在 FHIR 中,我们有两个标识符:业务标识符(如患者编号、订单号)等和一个基础设施 REST 标识符,它看起来像http://someserver.org/Patient/3AF334-5,它标识了一个特定的实例特定服务器上的资源。您可以将其视为“技术”或“数据库”键,这些标识符是由服务器生成的,可能是通过产生增量数字。
如果您查看规范中 Resources 的内容,它们只会显示业务标识符(如果 Resource 有一个)。当然,资源的每个实例都有一个技术 ID,特别是如果它是使用 REST 发布的。此 ID 不会显示在资源上,因为它被视为“元数据”,就像资源的最后更新日期和在服务器上创建资源的登录名一样。
如果您正在执行 REST,则资源的技术 ID 是您使用 GET 检索资源的 URL。当您执行 POST 时,您将在 Location 标头中收到此 ID。这意味着您必须将资源的数据(在正文中)和资源 REST 位置保存在一起。
一种方法是使用参考实现中的类似 ResourceEntry 的类(即资源 + 元数据)。
你把 an 和 a 混淆Identifier
了logical ID.
AnIdentifier
是某个组织赋予第一类实体的唯一名称。它有两个主要组成部分 asystem
和 a value
,其中system
是组织,value
是组织内的唯一 ID。第一类实体总是可以有多个标识符。例如,患者可以有一个社会安全号码和一个护照号码(http:irs.gov|xxx-xx-xxxx
和http:travel.state.gov|xxxxxxx
)。
并非所有 FHIR 资源都具有标识符,例如不是第一类实体。
但是,所有 FHIR 资源都有一个logical ID.
这是服务器分配的 ID。它通常是一个GUID
或一些单调递增的整数。
我建议使用 @Ewout 的 C# 库 ( https://github.com/ewoutkramer/fhir-net-api ) 来处理 FHIR 资源的数据模型和序列化/反序列化。然后你就可以专注于业务问题。