in progress
Инструкция по оформлению системы именования
NamingSystem — курируемое пространство имен, назначающее уникальные в этом пространстве имен символы для идентификации людей, понятий, устройств. Представляет собой "систему" в типах данных Identifier и Coding.
Определяет конкретную систему кодирования или систему идентификации, чтобы её можно было внести в реестр, где другие информационные системы смогут её найти и понять идентификатор.
Ресурс CodeSystem определяет содержимое системы кодирования и её предпочтительный идентификатор. Ресурс NamingSystem декларирует существование системы кодирования или системы идентификации, а также её возможные и предпочтительный идентификатор. Ключевое различие между этими ресурсами заключается в том, кто создаёт и управляет ими. Ресурсами CodeSystem управляет владелец системы кодирования, который может должным образом определять функции и содержимое системы кодирования.
Ресурсы NamingSystem часто создаются третьими сторонами, которые сталкиваются с использованием системы кодирования и хотят описать её применение, но не имеют полномочий определять её функции и содержимое. Кроме того, для одной системы кодирования может быть создано несколько ресурсов NamingSystem, но должен быть только один ресурс CodeSystem.
Экземпляр ресурса Naming System определяет возможные значения атрибутов identifier.system и coding.system.
1. Рекомендации по написанию Naming System
1.1. Описывается в виде экземпляра ресурса
Instance: core-ns-fias-houseguid
InstanceOf: NamingSystem1.2. Идентификатор (название) экземпляра состоит из следующих частей, разделяемых дефисом, в нижнем регистре: 1.2.1. Код руководства, в рамках которого определен артефакт 1.2.2. Ns 1.2.3. Имя присвоенное автором, латиницей, с соединением слов через дефис
1.3. Атрибут kind = definition для идентификаторов и = codesystem для систем кодирования
1.4. Атрибут name lowerCamelCase с теми же элементами, что в идентификатор экземпляра: 1.4.1. Код руководства, в рамках которого определен артефакт 1.4.2. Ns 1.4.3. Имя присвоенное автором, латиницей, с соединением слов через нижнее подчеркивание
Пример:
* name = "Core_Ns_Nsi_Confidentiality"1.5. Атрибут date содержит дату последнего изменения; тем самым для систем, содержащих ссылку на внешний интернет-ресурс, фиксирует дату, на которую ссылка была проверена
1.6. Атрибут uniqueId описывает коллекцию идентификаторов, используемых как возможные значения identifier.system и coding.system в других ресурсах 1.6.1. Один из uniqueId должен быть отмечен как предпочтительный путем указания uniqueId.preferred = true, в том числе и в случае, когда это единственный идентификатор в коллекции 1.6.2. Сообщество не приняло решение об ограничении рекомендуемых типов идентификаторов uniqueId.type, при этом были высказаны плюсы и минусы типов url, oid, urn: https://github.com/fhir-ru/core/discussions/61 1.6.3. В случае использования типа url, значение идентификатора uniqueId.value должно включать следующие части, соединяемые косой чертой: - https://fhir.ru/ - Код руководства - NamingSystem - Имя, данное автором, латиницей, с соединением слов через дефис - Пример: uniqueId.value = "https://fhir.ru/core/NamingSystem/birth-registry-number"
1.7. В атрибуте description рекомендуется дать текстовые пояснения об организации, ответственной за выдачу идентификаторов в данном пространстве, и условиях уникальности, например, есть ли ограничение по сроку уникальности.
2. Рекомендации по размещению Naming System в файлах руководств 2.1. Naming System для систем кодирования размещаются в файле с системой кодирования – ресурсом CodeSystem 2.2. Naming System для идентификаторов размещается в отдельном файле. В случае описания нескольких связанных по смыслу систем именования можно размещать их в одном файле, например – системы именования по справочнику ФИАС.