根据FHIR规范,id数据类型支持以下字符 - 'A'..'Z'和'a'..'z',数字('0'...'9'),' - '和' “。
但是,当从我们的SoR生成FHIR响应时,我们通过使用SoR中使用的关键字/术语动态地创建某些资源的“id”值(resource.id),其中一些关键字包含“_”字符。这导致生成的“id”值也包含“_”字符。对此类资源的后续URL调用或引用URL中包含“_”字符(“..resource / {id}”代码段中的“id”)。
虽然RFC3986表示'_'可以在URL中使用,但有没有理由'F'被限制在FHIR中的“id”值中使用?
我们在FHIR ID中允许的字符与URL中允许的字符之间没有深层连接 - 除了FHIR的设计确保FHIR ID始终是有效的路径段。
我们从FHIR ID中允许的字符中省略_
的一个原因是为了避免在以下情况下出现歧义:
GET /Patient/_search
... http://hl7.org/fhir/http.html#search确保_search
是一个保留字。通过从有效的FHIR ID中省略_
(和$
),我们确保_search
永远不会被意外地解析为资源ID。