Задача: определить профиль для ресурса Пациент, добавив для атрибута Пол расширение для кодирования по справочнику ФНСИ.
Как добавлять расширения элементам примитивного типа данных - см.[2.6.2.3 JSON representation of primitive elements](https://build.fhir.org/json.html#primitive)..
Почему NamingSystem, а не CodeSystem - см. Отличие NamingSystem от CodeSystem.
docs/systems создаем файл, название которого соответствует пункту "терминологии" соглашения conventions.{
"id": "core-ns-nsi-gender",
"resourceType": "NamingSystem",
"status": "active",
"kind": "codesystem",
"name": "CoreNsiGender",
"description": "НСИ Минздрава Пол пациента",
"text": {
"div": "CodeSystem: НСИ Минздрава Пол пациента,
может быть известен под следующими идентификаторами:\n - OID: 1.2.643.5.1.13.13.11.1040
\n
- [предпочтительно] URI: http://fhir.ru/core/systems/gender
\n
\n",
"status": "generated"
},
"uniqueId": [
{
"type": "oid",
"value": "1.2.643.5.1.13.13.11.1040"
},
{
"type": "uri",
"preferred": true,
"value": "http://fhir.ru/core/cs/core-cs-nsi-gender",
}
]
}{
"resourceType": "ValueSet",
"id": "core-vs-nsi-gender",
"name": "CoreVsNsiGender",
"title": "Core ValueSet Пол пациента",
"url" : "http://fhir.ru/core/vs/core-vs-nsi-gender",
"status": "active",
"compose": {
"include": [
{
"system": "http://fhir.ru/core/systems/nsi-gender",
"concept": [
{
"code": "1",
"display": "Мужской"
},
{
"code": "2",
"display": "Женский"
},
{
"code": "3",
"display": "Неопределенный"
}
]
}
]
}
}и соответствующую zen-схему
{ns fhir.ru.core.vs-nsi-gender
import #{fhir zen.fhir}
CoreVsNsiGender
{:zen/tags #{zen.fhir/value-set}
:zen/desc "Справочник НСИ Минздрава Пол пациента"
:zen.fhir/version "0.5.8"
:fhir/code-systems
#{{:fhir/url "https://nsi.rosminzdrav.ru/#!/refbook/1.2.643.5.1.13.13.11.1040",
:zen.fhir/content :not-present}},
:uri "http://fhir.ru/core/vs/core-vs-nsi-gender"
:version "2.1"
:zendoc "artifacts.valuesets.core-vs-nsi-gender"}}{ns fhir.ru.core.ext-nsi-gender
import #{fhir zen.fhir fhir.ru.core.vs-nsi-gender/CoreVsNsiGender}
CoreNsiGender
{:zen/tags #{zen/schema zen.fhir/structure-schema zen.fhir/extension}
:zen.fhir/type "Coding"
:zen.fhir/profileUri "http://fhir.ru/core/sd/core-ex-nsi-gender"
:type zen/map
:zen/desc "Кодирование пола по справочнику ФНСИ"
:zen.fhir/version "0.5.8"
:confirms #{fhir/Coding}
:zen.fhir/value-set
{:symbol fhir.ru.core.vs-nsi-gender/CoreVsNsiGender
:strength :required}
:zendoc "artifacts.extensions.ext-nsi-gender"}}docs/artifacts/extensions создаем файл с расширением .zd, название которого соответствует пункту "терминологии" соглашения support.conventions| Название | Флаги | Кол-во | Тип | Описание |
|---|---|---|---|---|
CoreNsiGender | 0..1 | Extension | Кодирование пола по справочнику ФНСИ | |
url | 0..1 | uri | http://fhir.ru/core/sd/core-ex-nsi-gender | |
valueCoding | 0..1 | Coding | Значение из справочника https://nsi.rosminzdrav.ru/#!/refbook/1.2.643.5.1.13.13.11.1040 | |
system | 1..1 | uri | Система Fixed value: http://fhir.ru/core/systems/nsi-gender | |
code | 1..1 | code | Код | |
display | 1..1 | string | Значение для отображения |
| Название | Флаги | Кол-во | Тип | Описание |
|---|---|---|---|---|
CoreNsiGender | 0..1 | Extension | Кодирование пола по справочнику ФНСИ | |
url | 0..1 | uri | http://fhir.ru/core/sd/core-ex-nsi-gender | |
valueCoding | 0..1 | Coding | Значение из справочника https://nsi.rosminzdrav.ru/#!/refbook/1.2.643.5.1.13.13.11.1040 | |
system | 1..1 | uri | Система Fixed value: http://fhir.ru/core/systems/nsi-gender | |
code | 1..1 | code | Код | |
display | 1..1 | string | Значение для отображения |
Пациент с добавленным расширением для кодирования пола пациента по справочнику ФНСИ:{ns fhir.ru.core.tutorial-patient
import #{fhir
zen.fhir
fhir.ru.core.ext-nsi-gender}
TutorialPatient
{:zen/tags #{zen.fhir/profile-schema zen/schema}
:zen/desc "Пациент"
:zen.fhir/version "0.5.8"
:confirms #{fhir/Patient}
:zen.fhir/id "tutorial-patient"
:zen.fhir/name "TutorialPatient"
:zen.fhir/type "Patient"
:zen.fhir/profileUri "http://fhir.ru/core/sd/tutorial-patient"
:type zen/map
:keys {:_gender {:zen/desc "Пол пациента по справочнику НСИ"
:type zen/map
:confirms #{fhir/Element}
:keys {:nsiGender {:confirms #{fhir.ru.core.ext-nsi-gender/CoreNsiGender}
:type zen/map
:zen/desc "Расширение: Пол пациента по справочнику НСИ, vs:http://fhir.ru/core/vs/core-vs-nsi-gender"
:fhir/extensionUri "http://fhir.ru/core/sd/core-ex-nsi-gender"}}}}}}результат - https://docs.miramedix.ru/fhir/IG/StructureDefinition-fhir-ru-patient-gender.html
{
"name": [
{
"use": "official",
"given": [
"BARBARA",
"A"
],
"family": "KENNEDY"
}
],
"gender": "female",
"_gender": {
"nsiGender": {
"system": "http://fhir.ru/core/systems/nsi-gender",
"code": "2",
"display": "Женский"
}
},
"birthDate": "1961-03-03",
"address": [
{
"city": "Москва",
"line": [
"Арбат"
],
"state": "MO",
"country": "РФ",
"postalCode": "64083"
}
]
}name:
- use: official
given:
- BARBARA
- A
family: KENNEDY
gender: female
_gender:
nsiGender:
system: "http://fhir.ru/core/systems/nsi-gender"
code: "2"
display: Женский
birthDate: "1961-03-03"
address:
- city: Москва
line:
- Арбат
state: MO
country: РФ
postalCode: "64083"результат - https://docs.miramedix.ru/fhir/IG/Patient-fhir-ru-patient-instance-konstantinopolskaya-gender.html
| Название | Флаги | Кол-во | Тип | Описание |
|---|---|---|---|---|
TutorialPatient | 0..* | Patient | Пример профиля Пациент | |
_gender | 0..1 | Element | Пол пациента по справочнику НСИ | |
nsiGender | 0..1 | Extension | Расширение: Пол пациента по справочнику НСИ, vs:http://fhir.ru/core/vs/core-vs-nsi-gender |
| Название | Флаги | Кол-во | Тип | Описание |
|---|---|---|---|---|
TutorialPatient | 0..* | Patient | Пример профиля Пациент |