我试图从引用(名称“资源”)类派生所有资源来解决问题(例如,在组资源中 - > 成员:资源(患者|从业者|设备| 药物|物质)0 .. *)。
我已将标识符作为引用类中的数据成员,并使用.NET从此类派生所有资源。但问题在于,资源“物质和药物”中的标识符缺失。如何解决这个问题?请帮忙
问候
答案 0 :(得分:1)
标识符不在基础资源中,因此您要做的事情无法完成,因为正如您所说,物质和药物不具备标识符。
答案 1 :(得分:1)
在FHIR中,我们有两个标识符: business 标识符(如患者编号,订单编号)等,以及基础结构REST标识符,它看起来像http://someserver.org/Patient/3AF334-5,用于标识特定实例特定服务器上的资源。您可以将其视为“技术”或“数据库”密钥,这些标识符由服务器生成,可能通过生成增量数字。
如果查看规范中的参考资料的内容,它们将只显示业务标识符(如果资源有一个)。当然,资源的每个实例都有技术ID,特别是如果它是使用REST发布的。此ID未显示在资源上,因为它被视为“元数据”,就像资源的上次更新日期和在服务器上创建资源的登录一样。
如果您正在执行REST,则Resource的技术ID是您使用GET检索资源的URL。当您执行POST时,您将在Location标头中收到此ID。这意味着您必须将资源的数据(在正文中)和资源REST位置保持在一起。
一种方法是使用参考实现中的ResourceEntry类(资源+元数据)。
答案 2 :(得分:1)
您将Identifier
与logical ID.
Identifier
是某个组织为第一类实体指定的唯一名称。它有两个主要组件system
和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资源的数据模型和序列化/反序列化。然后你可以专注于业务问题。