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

Регистр медицинских организаций

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

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

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

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

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

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

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

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

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

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

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

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

img

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

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

GET [FHIR_BASE]/Organization/[id]

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

GET [FHIR_BASE]/Organization?identifier=value&...

Поддерживаемые параметры поиска ресурса

Параметр поиска Тип Описание Выражение Пример
_count count Число элементов на странице   GET [FHIR_BASE]/Organization?_count=5
_format string Формат результата. json/xml (Обязательный)   GET [FHIR_BASE]/Organization?_format=json
_page number Номер страницы.   GET [FHIR_BASE]/Organization?_page=10
act_in_registr date Актуализация Organization.extension(‘https://fhir.by/StructureDefinition/OrganizationRegistration’)
.extension(‘https://fhir.by/StructureDefinition/OrganizationActInRegistr’)
GET [FHIR_BASE]/Organization?act-in-registr=2025-03-21
active token Активна ли медорганизация Organization.active GET [FHIR_BASE]/Organization?active=true
address string Адрес Organization.contact.address GET [FHIR_BASE]/Organization?address=Московский пр-т, 43а
address_geography WKT Организации, соответствующие координатам Organization.extension(‘https://fhir.by/StructureDefinition/OrganizationRegistration’) .extension(‘https://fhir.by/StructureDefinition/OrganizationAddressGeography’) GET [FHIR_BASE]/Organization?address-geography=POINT(23.8895787715608 52.09669689034364)
GET [FHIR_BASE]/Organization?address-geography=LINESTRING (28.56343440505112 55.55231845942615,28.56359228722506 55.55316693571787)
GET [FHIR_BASE]/Organization?address-geography=POLYGON ((24.992016 52.191400, 24.991452 52.191876, 24.990540 52.191694, 24.992016 52.191400))
alias string Краткое наименование Organization.alias GET [FHIR_BASE]/Organization?alias=Брестская ДОБ
email token Email Organization.contact.telecom.where(system=’email’) GET [FHIR_BASE]/Organization?email=clinic@bokb.by
fax token Факс Organization.contact.telecom.where(system=’fax’) GET [FHIR_BASE]/Organization?fax=80172224627
form_ownership token Форма собственности Organization.extension(‘https://fhir.by/StructureDefinition/FormOfOwnership’) GET [FHIR_BASE]/Organization?form-ownership=12
healthcare_level token Уровень оказания медицинской помощи Organization.extension(‘https://fhir.by/StructureDefinition/HealthCareLevel’) GET [FHIR_BASE]/Organization?healthcare-level=3
higher_organization token Вышестоящая (управляющая) организация Organization.extension(‘https://fhir.by/StructureDefinition/HigherLevelOrganization’) GET [FHIR_BASE]/Organization?higher-organization=5
identifier token Публичный код ресурса Organization.identifier GET [FHIR_BASE]/Organization?identifier=055615711000
name string Наименование ресурса Organization.name GET [FHIR_BASE]/Organization?name=Минская ордена Трудового Красного Знамени областная клиническая больница
org_structure token Подчиненность Organization.extension(‘https://fhir.by/StructureDefinition/OrganizationStructure’) GET [FHIR_BASE]/Organization?org-structure=1
partOf reference Код родительского ЮЛ Organization.partOf(Organization) GET [FHIR_BASE]/Organization?partOf=8c9aed4b-2c76-4fae-b2aa-0d21aacd4a25
phone token Телефон Organization.contact.telecom.where(system=’phone’) GET [FHIR_BASE]/Organization?phone=80222326677
postalCode string Почтовый код Organization.contact.address.postalCode GET [FHIR_BASE]/Organization?postalCode=220030
reason_close string Основание изменения статуса. Использование аргумента добавляет неявное условие status = 2 Organization.extension(‘https://fhir.by/StructureDefinition/OrganizationRegistration’)
.extension(‘https://fhir.by/StructureDefinition/OrganizationReasonClose’)
GET [FHIR_BASE]/Organization?reason-close=2
reg_in_registr date Дата регистрации в регистре Organization.extension(‘https://fhir.by/StructureDefinition/OrganizationRegistration’)
.extension(‘https://fhir.by/StructureDefinition/OrganizationRegInRegistr’)
GET [FHIR_BASE]/Organization?reg-in-registr=2025-02-07
registration_start date Дата регистрации медицинской организации Organization.extension(‘https://fhir.by/StructureDefinition/OrganizationRegistration’)
.extension(‘https://fhir.by/StructureDefinition/OrganizationRegistrationStart’)
GET [FHIR_BASE]/Organization?registration-start=2004-10-08
registration_end date Дата изменения статуса. Использование аргумента добавляет неявное условие status = 2 Organization.extension(‘https://fhir.by/StructureDefinition/OrganizationRegistration’)
.extension(‘https://fhir.by/StructureDefinition/OrganizationRegistrationEnd’)
GET [FHIR_BASE]/Organization?registration-end=2025-03-05
soato string СОАТО - GET [FHIR_BASE]/Organization?soato=3401383000
subordinated token Подчиненность Organization.extension(‘https://fhir.by/StructureDefinition/IsSubordinated’) GET [FHIR_BASE]/Organization?subordinated=3
terms_of_service token Условия оказания медицинской помощи Organization.extension(‘https://fhir.by/StructureDefinition/TermsOfService’) GET [FHIR_BASE]/Organization?terms-of-service=1
type token Тип ОЗ Organization.type GET [FHIR_BASE]/Organization?type=34
type_of_healthcare token Вид медицинской помощи Organization.extension(‘https://fhir.by/StructureDefinition/TypeOfHealthCare’) GET [FHIR_BASE]/Organization?type-of-healthcare=5
unp string УНП Organization.extension(‘https://fhir.by/StructureDefinition/CodeUNP’) GET [FHIR_BASE]/Organization?unp=700008090
url token Интернет-адрес Organization.contact.telecom.where(system=’url’) GET [FHIR_BASE]/Organization?url=mogilev-region.gov.by

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

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

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

GET [FHIR_BASE]/Organization?identifier=292884302000&_format=json возвращает организацию, у которой идентификатор любого типа равен 292884302000.

Поиск по названию

Параметр поиска name определяется как параметр типа string.

Примеры поиска по названию:

GET [FHIR_BASE]/Organization?name=Брестская областная клиническая больница&_format=json возвращает организацию с названием “Брестская областная клиническая больница”.

GET [FHIR_BASE]/Organization?name=Брестская областная клиническая больница,Могилевская областная детская больница&_format=json возвращает организации с названием “Брестская областная клиническая больница” ИЛИ “Могилевская областная детская больница”.

Поиск по адресу

Параметр поиска address определяется как параметр типа string.

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

GET [FHIR_BASE]/Organization?address=Московский пр-т, 43а&_format=json возвращает организации с адресом Московский пр-т, 43а.

Поиск по УНП

Параметр поиска unp определяется как параметр типа string.

Примеры поиска по УНП:

GET [FHIR_BASE]/Organization?unp=390380994&_format=json возвращает организации здравоохранения и их филиалы с УНП 390380994.

Поиск по координатам

Параметр поиска address_geography определяется как параметр типа WKT.

Примеры поиска по точке:

GET [FHIR_BASE]/Organization?address-geography=POINT (23.8895787715608 52.09669689034364).

Примеры поиска по точке с буфером (буфер указывается в метрах), максимальный/минимальный размер буфера от 1 до 5892000 метров. Буфер указывается через запятую после координат:

GET [FHIR_BASE]/Organization?address-geography=POINT (23.8895787715608 52.09669689034364),34615.

Примеры поиска по линии: GET [FHIR_BASE]/Organization?address-geography=LINESTRING (28.56343440505112 55.55231845942615,28.56359228722506 55.55316693571787).

Примеры поиска по линии с буфером:

GET [FHIR_BASE]/Organization?address-geography=LINESTRING (28.56343440505112 55.55231845942615,28.56359228722506 55.55316693571787),100.

Примеры поиска по полигону (полигон может содержать любое количество точек, но координаты первой и последней точек должны совпадать):

GET [FHIR_BASE]/Organization?address-geography=POLYGON ((24.992016 52.191400, 24.991452 52.191876, 24.990540 52.191694, 24.992016 52.191400)).

Примеры поиска по полигону с буфером:

GET [FHIR_BASE]/Organization?address-geography=POLYGON ((23.178 56.353, 23.484 53.912, 23.981 53.974, 24.451 53.906, 25.536 54.282, 25.768 54.847, 25.609 55.284, 24.315 55.369, 24.004 55.859, 23.484 56.006, 23.178 56.353)),100.

Пример мультипоиска по двум точкам:

GET [FHIR_BASE]/Organization?address-geography=MULTIPOINT ((28.56343440505112 55.55231845942615), (28.56359228722506 55.55316693571787)).

Пример мультипоиска по двум линиям:

GET [FHIR_BASE]/Organization?address-geography=MULTILINESTRING ((28.56343440505112 55.55231845942615,28.56359228722506 55.55316693571787), (23.484 56.006, 24.450 56.100)).

Пример мультипоиска по двум полигонам:

GET [FHIR_BASE]/ /Organization?address-geography=MULTIPOLYGON (((23.8892567715608 52.09649869034364,23.8899007715608 52.09649869034364,23.8899007715608 52.09689509034364,23.8892567715608 52.09689509034364,23.8892567715608 52.09649869034364)),((28.56324228722506 55.55296873571787,28.56394228722506 55.55296873571787,28.56394228722506 55.55336513571787,28.56324228722506 55.55336513571787,28.56324228722506 55.55296873571787))).

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

GET [FHIR_BASE]/Organization?address-geography=GEOMETRYCOLLECTION(POLYGON((23.889256771560820 52.09649869034364,23.8899007715608 52.09649869034364,23.8899007715608 52.09689509034364,23.8892567715608 52.09689509034364,23.8892567715608 52.09649869034364)),POINT(28.56359228722506 55.55316693571787)).

Пример мультипоиска по полигону и линии:

GET [FHIR_BASE]/Organization?address-geography=GEOMETRYCOLLECTION(POLYGON((23.8892567715608 52.09649869034364,23.8899007715608 52.09649869034364,23.8899007715608 52.09689509034364,23.8892567715608 52.09689509034364,23.8892567715608 52.09649869034364)),LINESTRING(28.56351334613809%2055.55274269757201,28.57000000000000 55.56000000000000)).

Негативные сценарии:

При отсутствии организаций, соответствующих координатам, возвращается пустой массив и HTTP статус код 200 ОК.

Если нарушен формат передачи данных (невалидный запрос), например, GET [FHIR_BASE]/Organization?address-geography=POINT(23.889578771560852.09669689034364), то возвращается HTTP статус код 400 Bad Request с текстом ошибки: «Неверный формат координат. Убедитесь, что введенные координаты соответствуют формату (X Y)».

Если для полигона указывается недостаточное количество точек, то возвращается HTTP статус код 400 Bad Request с текстом ошибки: «Полигон не замкнут. Убедитесь, что первая и последняя точки совпадают».

Валидный и невалидный форматы указания координат

Координата X - долгота, координата Y - широта.

Валидный формат координат Невалидный формат координат Описание
(X Y) (Y X) Валидная очередность указания координат – X, Y
(23.8895787715608 52.09669689034364) (23.889578771560852.09669689034364)
(23.8895787715608,52.09669689034364)
Координаты должны указываться через пробел
(23.8895787715608 52.09669689034364) (23,8895787715608 52,09669689034364) Для указания десятичных чисел используется точка
(23.8895787715608 52.09669689034364) [23.8895787715608 52.09669689034364]
{23.8895787715608 52.09669689034364}
Координаты должны указываться в скобках следующего формата: «(» «)»
▲ Вверх