Руководство к использованию стандарта FHIR в ЦИСЗ
0.2.6803 - ci-build

Регистр медицинских работников

Поскольку вся структурированная медицинская информация, передаваемая из других информационных систем (ресурсов) в здравоохранении, должна соответствовать содержимому регистров, справочников и классификаторов подсистемы нормативно-справочной информации, происходит валидация пакета медицинских данных (Bundle) на соответствие регистру медицинских работников.

Регистр медицинских работников содержит актуальную информацию о медицинских работниках сферы здравоохранения Республики Беларусь.

МИС обращается для получения актуальной информации о медицинском работнике в модуль «Регистр медицинских работников» (модуль является составной частью подсистемы НСИ).

Регистр медицинских работников содержит информацию о медицинском работнике, как о физическом лице, в виде ресурса, соответствующего профилю Медицинский работник. В этом ресурсе представлены персональные данные медицинского работника (ФИО, дата рождения, адрес регистрации), данные об образовании и другая информация. Не может существовать несколько ресурсов Медицинский работник для одного физического лица. Также в регистре размещены ресурсы, соответствующие профилю Роль медицинского работника. В этих ресурсах представлена информация о должности, занимаемой медицинским работником в конкретной организации, в конкретный промежуток времени, с указанием должностных обязанностей, информацией о занимаемой ставке. Ресурс Роль медработника всегда связан с ресурсом Медицинский работник. Для одного физического лица может быть несколько ресурсов Роль медработника. Для ресурсов, использующихся в обмене с ЦИСЗ в большинстве случаев применяется ресурс Роль медицинского работника для точного указания специалиста и его роли в конкретный момент оказания медицинской помощи.

Отправлять данные в ЦИСЗ может сотрудник, у которого в Регистре медицинских работников создана карточка в виде ресурса Медицинский работник и как минимум одного ресурса Роль медицинского работника.

Правила, описывающие применения ссылок на ресурсы из Регистра медицинских работников, размещены в этом руководстве в полных схемах для профилей ресурсов.

Для взаимодействия с регистром медицинских работников клиентам доступны следующие методы:

  • метод получения информации о медицинском работнике или роли медицинского работника в организации здравоохранения;
  • метод поиска медицинского работника или поиска роли медицинского работника в организации здравоохранения по заданным поисковым параметрам.

Для взаимодействия с регистром медицинских работников необходимо пройти аутентификацию одним из способов, описанных на странице

Способы взаимодействия МИС-ИЭМК-НСИ

Медицинский работник вносит в МИС набор медицинских данных о пациенте, включая сведения о медицинском наблюдении за пациентом и оказанных услугах. На основе данной информации МИС формирует пакет медицинских данных в виде ресурса Bundle.

После формирования пакета медицинских данных о пациенте выполняется его передача в ЦИСЗ с помощью метода импорта пакета медицинской информации о пациенте. Пакет медицинских данных о пациенте передается в подсистему интегрированной электронной медицинской карты пациента (ИЭМК), где выполняется валидация на соответствие профилям ЦИСЗ, включая проверку на соответствие переданных из МИС значений справочников подсистеме нормативно-справочной информации (НСИ).

При успешной валидации информация сохраняется в подсистеме ИЭМК и используется другими подсистемами ЦИСЗ.

Если в процессе валидации были обнаружены ошибки при проверке соответствия переданных из МИС значений справочников подсистеме НСИ, то пакет медицинской информации о пациенте отклоняется и передача информации из МИС в ЦИСЗ считается неуспешной.

img


Синтаксис метода получения информации о медицинском работнике

Метод получения обеспечивает доступ к текущему содержимому ресурса c информацией о медицинском работнике. Взаимодействие выполняется с помощью HTTP GET команды:

GET [FHIR_BASE]/Practitioner/[id]

Метод возвращает один экземпляр ресурса.

Возможные значения логического идентификатора («id») описаны в типе Id

При попытке доступа к несуществующему ресурсу будет возвращен HTTP статус код - 404 Not Found

Синтаксис метода получения информации о роли медицинского работника

Метод получения обеспечивает доступ к текущему содержимому ресурса c информацией о роли медицинского работника. Взаимодействие выполняется с помощью HTTP GET команды:

GET [FHIR_BASE]/PractitionerRole/[id]

Метод возвращает один экземпляр ресурса.

Возможные значения логического идентификатора («id») описаны в типе Id

При попытке доступа к несуществующему ресурсу будет возвращен HTTP статус код - 404 Not Found

Синтаксис метода поиска медицинского работника

Во всех поисковых взаимодействиях в этом руководстве используется HTTP GET команда со следующим синтаксисом:

GET [FHIR_BASE]/[Resource-type]?[parameter1]{:m1|m2|...}={c1|c2|...}[value1{,value2,...}]{&[parameter2]{:m1|m2|...}={c1|c2|...}[value1{,value2,...}]&...}

  • GET — это HTTP метод, используемый для получения ресурса.

  • Переменные указанные в «[]», обязательны для предоставления клиентом и будут заменены указанным строковым литералом.

  • Переменные указанные в «{}», не являются обязательными для предоставления клиентом и будут заменены указанным строковым литералом.

  • FHIR_BASE: URL-адрес сервера

  • Resource-type: имя типа ресурса (например, “Practitioner”).

  • parameter: параметры поиска, определенные для конкретного взаимодействия (например, «?practitioner=Practitioner/01»).

  • value: значение параметра поиска

  • {:m1 m2 …}: модификатор параметра поиска

  • {c1 c2 …}: компаратор параметра поиска

  • {,value2,…}: логическое ИЛИ

  • {&parameter2={:m1 m2 …}={c1 c2 …}[value1{,value2,…}]&…}: логическое И

Простой пример запроса поиска в RESTful с использованием HTTP GET команды:

GET [FHIR_BASE]/Practitioner?name=value&...

Поддерживаемые параметры поиска медицинского работника

Параметр поиска Тип Описание Выражение Пример
_id token По логическому идентификатору Practitioner.id GET [FHIR_BASE]/Practitioner?_id=123456
_profile reference По профилю медицинского работника Practitioner.meta.profile GET [FHIR_BASE]/Practitioner?_profile=https://fhir.by/StructureDefinition/PractitionerBy
active token Активна ли запись о медицинском работнике Practitioner.active GET [FHIR_BASE]/Practitioner?_id=123456&active=true
address string Определенный сервером поиск, который может соответствовать любому из строковых полей адреса, включая строку, город, район, область, страну, почтовый индекс и/или текст Practitioner.address GET [FHIR_BASE]/Practitioner?address=Минск
death-date date Дата смерти, которая удовлетворяет данному параметру поиска (Practitioner.deceased.ofType(dateTime)) GET [FHIR_BASE]/Practitioner?death-date=1997-09-09
deceased token Этот практикующий врач был отмечен как умерший или у него была указана дата смерти Practitioner.deceased.exists() and Practitioner.deceased != false GET [FHIR_BASE]/Practitioner?deceased=true
email token Значение в контакте по электронной почте Practitioner.telecom.where(system=’email’) GET [FHIR_BASE]/Practitioner?email=doc@mail.by
family string Часть фамилии Practitioner.name.family GET [FHIR_BASE]/Practitioner?family=Иванов
gender token Пол практикующего врача Practitioner.gender GET [FHIR_BASE]/Practitioner?gender=female
given string Имя и/или отчество врача Practitioner.name.given GET [FHIR_BASE]/Practitioner?given=Петр Васильевич
identifier token Идентификационный номер практикующего врача Practitioner.identifier | Practitioner.qualification.identifier GET [FHIR_BASE]/Practitioner?identifier=14405А58957
name string Определенный сервером поиск, который может соответствовать любому из строковых полей в имени пользователя, включая семейство, имя, префикс, суффикс-приставку и/или текст Practitioner.name GET [FHIR_BASE]/Practitioner?name=Юдин Дмитрий Олегович
phone token Значение в телефонном контакте Practitioner.telecom.where(system=’phone’) GET [FHIR_BASE]/Practitioner?phone=8025289098989
phonetic string Часть фамилии или имени, использующая какой-либо алгоритм фонетического сопоставления Practitioner.name GET [FHIR_BASE]/Practitioner?phonetic=Иванов
telecom token Значение любого рода контактов Practitioner.telecom GET [FHIR_BASE]/Practitioner?telecom=doc@mail.by

Поиск по логическому идентификатору

GET [FHIR_BASE]/Practitioner?_id=123- возвращает медицинского работника с логическим идентификатором 123

GET [FHIR_BASE]/Practitioner?_id=123,321- возвращает медицинского работника с логическими идентификаторами 123 ИЛИ 321

GET [FHIR_BASE]/Practitioner?_id=123&_id=321- возвращает пустой список медицинских работников - применение логического И в данном случае не имеет смысла, но поддерживается системой

Учитывая, что логический идентификатор уникален, поиск по логическому идентификатору всегда приведет к нулю или единице записей. Во многих отношениях поиск функционально эквивалентен простому методу получения ресурса. Однако есть некоторые различия в использовании поиска вместо чтения:

  • Операции поиска всегда возвращают ресурс Bundle.

  • Если логический идентификатор существует и ресурс может быть возвращен, результатом будет Bundle, содержащий ресурс, а не сам ресурс.

  • Если логический идентификатор не существует или не может быть возвращен, результатом действительного поиска все равно будет Bundle. Bundle МОЖЕТ включать дополнительную информацию в форме OperationOutcome.

  • Доступен дополнительный функционал поиска. Например, запрос ресурса «Practitioner» по логическому идентификатору, а также установка критериев поиска identifier вернет медицинского работника только в том случае, если идентификатор совпал.

Поиск по профилю медицинского работника.

Параметр поиска _profile используется для сопоставления ресурсов на основе значений в элементе Resource.meta.profile

Параметр поиска _profile определяется как параметр ссылочного типа.

GET [FHIR_BASE]/Practitioner?_profile=http://fhir.by/StructureDefinition/PractitionerBy

НЕ допускается использование ТОЛЬКО параметра поиска _profile, ДОЛЖЕН использоваться ТОЛЬКО в комбинации с каким-либо другим параметром поиска (_id, name)

Поиск по идентификатору медицинского работника.

Параметр поиска identifier определяется как параметр типа token.

Примеры поиска по идентификатору:

GET [FHIR_BASE]/Practitioner?identifier:of-type=http://fhir.by/api/term/ValueSet/PersonalDocumentType|INP|4310587A055PB9 - возвращает медицинских работников у которых Идентификационный номер равен 4310587A055PB9

GET [FHIR_BASE]/Practitioner?identifier=4310587A055PB9 - возвращает медицинских работников у которых идентификатор любого типа равен 4310587A055PB9

Синтаксис поиска ролей медицинского работника

Во всех поисковых взаимодействиях в этом руководстве используется HTTP GET команда со следующим синтаксисом:

GET [FHIR_BASE]/[Resource-type]?[parameter1]{:m1|m2|...}={c1|c2|...}[value1{,value2,...}]{&[parameter2]{:m1|m2|...}={c1|c2|...}[value1{,value2,...}]&...}

  • GET — это HTTP метод, используемый для получения ресурса.

  • Переменные указанные в «[]», обязательны для предоставления клиентом и будут заменены указанным строковым литералом.

  • Переменные указанные в «{}», не являются обязательными для предоставления клиентом и будут заменены указанным строковым литералом.

  • Resource-type: имя типа ресурса (например, “PractitionerRole”).

  • parameter: параметры поиска, определенные для конкретного взаимодействия (например, «?practitionerRole=PractitionerRole/01»).

  • value: значение параметра поиска

  • {:m1 m2 …}: модификатор параметра поиска

  • {c1 c2 …}: компаратор параметра поиска

  • {,value2,…}: логическое ИЛИ

  • {&parameter2={:m1 m2 …}={c1 c2 …}[value1{,value2,…}]&…}: логическое И

Простой пример запроса поиска в RESTful с использованием HTTP GET команды:

GET [FHIR_BASE]/PractitionerRole?role=value&...

Поддерживаемые параметры поиска ролей медицинского работника

Параметр поиска Тип Описание Выражение Пример
_id token По логическому идентификатору PractitionerRole.id GET [FHIR_BASE]/PractitionerRole?_id=123456
_profile reference По профилю медицинского работника PractitionerRole.meta.profile GET [FHIR_BASE]/PractitionerRole?_profile=https://fhir.by/StructureDefinition/PractitionerRoleBy
active token Активно ли используется эта запись о роли практикующего врача PractitionerRole.active GET [FHIR_BASE]/PractitionerRole?active=true
date date Период, в течение которого практикующий специалист уполномочен выполнять эти функции PractitionerRole.period GET [FHIR_BASE]/PractitionerRole?date=2024-08-01
email token Адрес электронной почты PractitionerRole.contact.telecom.where(system=’email’) GET [FHIR_BASE]/PractitionerRole?email=practitioner@mail.by
location reference Одно из мест, где этот практикующий врач оказывает медицинскую помощь PractitionerRole.location(Location) GET [FHIR_BASE]/PractitionerRole?location=surgery.1
organization reference Название организации, которую представляет практикующий специалист или от имени которой он действует PractitionerRole.organization(Organization) GET [FHIR_BASE]/PractitionerRole?organization=Organization/12345678901234
phone token Номер телефона PractitionerRole.contact.telecom.where(system=’phone’) GET [FHIR_BASE]/PractitionerRole?phone=80298901234
practitioner reference Практикующий специалист, способный предоставлять определенные услуги для организации PractitionerRole.practitioner(Practitioner) GET [FHIR_BASE]/PractitionerRole?practitioner=Practitioner/0009
role token Практикующий специалист может выполнять эту роль в организации PractitionerRole.code GET [FHIR_BASE]/PractitionerRole?role=director
position-rate token Поисковый параметр для занимаемой ставки работника PractitionerRole.extension(‘https://fhir.by/StructureDefinition/PractitionerPosition’).extension(‘https://fhir.by/StructureDefinition/PractitionerPositionRate’).value.as(CodeableConcept).coding.code GET [FHIR_BASE]/PractitionerRole?position-rate=4
identifier token Идентификационный номер практикующего врача PractitionerRole.identifier GET [FHIR_BASE]/PractitionerRole?identifier=000001101

Поиск по логическому идентификатору

GET [FHIR_BASE]/PractitionerRole?_id=123- возвращает медицинского работника с логическим идентификатором 123

GET [FHIR_BASE]/PractitionerRole?_id=123,321- возвращает медицинского работника с логическими идентификаторами 123 ИЛИ 321

GET [FHIR_BASE]/PractitionerRole?_id=123&_id=321- возвращает пустой список медицинских работников - применение логического И в данном случае не имеет смысла, но поддерживается системой

Учитывая, что логический идентификатор уникален, поиск по логическому идентификатору всегда приведет к нулю или единице записей. Во многих отношениях поиск функционально эквивалентен простому методу получения ресурса. Однако есть некоторые различия в использовании поиска вместо чтения:

  • Операции поиска всегда возвращают ресурс Bundle.

  • Если логический идентификатор существует и ресурс может быть возвращен, результатом будет Bundle, содержащий ресурс, а не сам ресурс.

  • Если логический идентификатор не существует или не может быть возвращен, результатом действительного поиска все равно будет Bundle. Bundle МОЖЕТ включать дополнительную информацию в форме OperationOutcome.

  • Доступен дополнительный функционал поиска. Например, запрос ресурса «PractitionerRole» по логическому идентификатору, а также установка критериев поиска identifier вернет медицинского работника только в том случае, если идентификатор совпал.

Поиск по профилю роли медицинского работника.

Параметр поиска _profile используется для сопоставления ресурсов на основе значений в элементе Resource.meta.profile

Параметр поиска _profile определяется как параметр ссылочного типа.

GET [FHIR_BASE]/PractitionerRole?_profile=https://fhir.by/StructureDefinition/PractitionerRoleBy

НЕ допускается использование ТОЛЬКО параметра поиска _profile, ДОЛЖЕН использоваться ТОЛЬКО в комбинации с каким-либо другим параметром поиска (_id, name)

Поиск по роли роли медицинского работника.

Параметр поиска role определяется как параметр типа token.

Примеры поиска по роли роли медицинского работника:

GET [FHIR_BASE]/PractitionerRole?role=general-practitioner

Поиск по медицинскому работнику роли медицинского работника.

Параметр поиска practitioner определяется как параметр типа reference.

Примеры поиска по идентификатору:

GET [FHIR_BASE]/PractitionerRole?practitioner=93e9572a-6051-11ef-8116-f4e5db6d3a96 - возвращает роли медицинских работников, у которых медицинский работник имеет логический идентификатор 93e9572a-6051-11ef-8116-f4e5db6d3a96

GET [FHIR_BASE]/PractitionerRole?practitioner=93e9572a-6051-11ef-8116-f4e5db6d3a96,94783036-6051-11ef-8116-f4e5db6d3a96 - возвращает роли медицинских работников, у которых медицинские работники имеют логические идентификаторы 93e9572a-6051-11ef-8116-f4e5db6d3a96, 94783036-6051-11ef-8116-f4e5db6d3a96

▲ Вверх