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

Кадровые системы

Описанные в данном разделе API методы позволяют кадровой системе организации здравоохранения (далее – ОЗ) взаимодействовать с подсистемой нормативно-справочной информации (далее – НСИ) ЦИСЗ в части добавления данных о медицинских работниках и актуализации (обновления) данных о медицинских работниках, уже внесенных в модуль «Регистр медицинских работников» подсистемы НСИ.

Описанные API методы позволяют выполнять синхронизацию данных между кадровыми системами ОЗ и модулем «Регистр медицинских работников» ЦИСЗ.

Методы обеспечивают:

  • создание карточки медицинского работника в регистре медицинских работников;
  • актуализацию сведений о медицинском работнике в части персональных данных;
  • актуализацию сведений об основном и дополнительных местах работы медицинского работника;
  • актуализацию сведений об образовании медицинского работника;
  • актуализацию сведений о дополнительном образовании медицинского работника (интернатуре, ординатуре, курсах повышения квалификации и т.д.);
  • актуализацию сведений об аттестации и квалификации медицинского работника;
  • актуализацию иных сведений о медицинском работнике.

Способы актуализации (обновления) данных о медицинских работниках в модуле «Регистр медицинских работников» подсистемы НСИ ЦИСЗ

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

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

Актуализация данных посредством API методов

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

Ответственность за актуализацию сведений в модуле «Регистр медицинских работников» подсистемы НСИ возложена на специалиста по кадрам в рамках штатной структуры его юридического лица. После актуализации (обновления) данных о медицинских работниках посредством API методов специалисту по кадрам необходимо проверить и, если требуется, внести правки в карточки сотрудников с использованием графического интерфейса.

img

Актуализация данных посредством графического интерфейса модуля «Регистр медицинских работников»

Актуализация данных посредством графического интерфейса доступна только авторизованному в модуле «Регистр медицинских работников» пользователю. Пользователь посредством графического интерфейса вносит изменения в необходимые карточки медицинских работников. При сохранении изменений происходит актуализация сведений карточек медицинских работников.
МИС ОЗ и другие подсистемы ЦИСЗ получают необходимые актуальные сведения о работнике посредством FHIR API.

img

Метод API для создания/актуализации карточки медицинского работника в части персональных данных

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

Вызов метода осуществляется с помощью HTTP POST команды:

POST [PRACTITIONER_IMPORT_BASE]/GeneralDataImport

Аутентификация производится аналогично Правилам аутентификации для МИС.

Авторизация производится по следующему алгоритму:

Программные интерфейсы ЦИСЗ защищены сервером авторизации с использованием технологии OAuth 2.0. Доступ к защищенным ресурсам и функциям системы предоставляется только авторизованным пользователям. При каждом вызове метода актуализации (обновления) персональных данных клиентское приложение (кадровая система) должно передавать токен доступа организации в заголовке запроса.

Актуализация (обновление) сведений о медицинском работнике в части персональных данных доступна только для организации, указанной в карточке медицинского работника в качестве основного или дополнительного места работы. Актуализация сведений осуществляется по следующему алгоритму:

  • если уникальный идентификатор (ID) организации, указанный в токене доступа, не совпадает с ID организации, указанным в основном или дополнительном месте работы в карточке медицинского работника, то актуализация персональных данных не производится и метод возвращает HTTP-статус «403»;
  • если ID организации, указанный в токене доступа, совпадает с ID организации, указанным в основном или дополнительном месте работы в карточке медицинского работника, то актуализация персональных данных производится и метод возвращает HTTP-статус «200 ОК»;
  • если в карточке медицинского работника информация об основном и дополнительных местах работы отсутствует, то актуализация персональных данных производится и метод возвращает HTTP-статус «200 ОК».

Формат данных

Импорт данных осуществляется в формате JSON.

Обработка записей

  • Метод поддерживает импорт сведений как об одном сотруднике, так и о группе сотрудников.
  • При актуализации (обновлении) сведений существующих карточек сотрудников используется уникальный ID (личный идентификационный номер) по следующему алгоритму:
    • если сотрудник с указанным в запросе (JSON) ID отсутствует в модуле «Регистр медицинских работников», то создается новая карточка. По умолчанию карточка создается со статусом «Активный»;
    • если сотрудник с указанным в запросе ID уже существует в модуле «Регистр медицинских работников», то актуализация (обновление) сведений в карточке медицинского работника производится только в части данных (свойств), которые указаны в запросе (JSON);
    • если сотрудник с указанным в запросе ID уже существует в модуле «Регистр медицинских работников» и в запросе (JSON) указано значение «null», то в карточке сотрудника значение обновляется на «null». При этом, если свойство указано в запросе, то оно обновляется, а если свойство не указано, то значение этого свойства остается прежним;
    • актуализация (обновление) сведений существующих карточек сотрудников возможна только для карточек со статусом «Активный». Если статус карточки «Неактивный», то необходимо изменить статус карточки посредством соответствующего метода API.
  • Значения справочников могут передаваться в виде code или display name.

Статус импорта

При успешном импорте сведений возвращается HTTP-статус «200 ОК».

Поддержка связанных данных

Метод поддерживает импорт связанных данных: полей «Должность» и «Должностная группа».

Валидация

Проверка валидности формата данных
Метод поддерживает проверку валидности формата данных перед импортом. Если формат данных не соответствует установленным требованиям, то:

  • импорт данных не производится;
  • метод возвращает HTTP-статус «400 Bad Request»;
  • отображается соответствующее сообщение об ошибке.

Сообщение об ошибке содержит:

  • уникальный ID (личный идентификационный номер или practitioner.id);
  • наименование поля с ошибкой;
  • описание ошибки.

Проверка валидности заполнения обязательных полей
Метод поддерживает проверку валидности заполнения обязательных полей перед импортом. Если значения обязательных полей не соответствуют установленным требованиям, то:

  • импорт данных не производится;
  • метод возвращает HTTP-статус «400 Bad Request»;
  • отображается соответствующее сообщение об ошибке.

Сообщение об ошибке содержит:

  • уникальный ID (личный идентификационный номер или practitioner.id);
  • наименование поля с ошибкой;
  • описание ошибки.

Проверка валидности значений передаваемых данных
Метод поддерживает проверку валидности значений передаваемых данных перед импортом. Проверка осуществляется путем валидации значений передаваемых данных со справочниками модуля подсистемы НСИ «Реестр справочников». Если значения передаваемых данных не соответствуют установленным требованиям, то:

  • импорт данных не производится;
  • метод возвращает HTTP-статус «400 Bad Request»;
  • отображается соответствующее сообщение об ошибке.

Сообщение об ошибке содержит:

  • уникальный ID (личный идентификационный номер или practitioner.id);
  • наименование поля с ошибкой;
  • описание ошибки с указанием ссылки на необходимый справочник (ValueSet).

Входящие параметры метода:

Название Описание Обязательное поле Правила валидации
family Фамилия Нет Поле должно содержать только буквы кириллицы. Допустимо использование дефисов, пробелов, апострофов. Максимально допустимая длина – 100 символов.
firstName Имя Нет Поле должно содержать только буквы кириллицы. Допустимо использование дефисов, пробелов, апострофов. Максимально допустимая длина – 100 символов
patronymic Отчество Нет Поле должно содержать только буквы кириллицы. Допустимо использование дефисов, пробелов, апострофов. Максимально допустимая длина – 100 символов.
identificationNumber Личный (идентификационный) номер Да Поле может содержать идентификационный номер паспорта или иного документа, удостоверяющего личность (для иностранных граждан без ВНЖ -комбинации полей “номер иностранного документа” и “код страны, выдавшей документ”) или логический идентификатор медицинского работника (practitioner.id). Идентификационный номер должен содержать только буквы латинского алфавита верхнего регистра и цифры. Максимально допустимая длина – 15 символов. В случае, если переданное значение «идентификационный номер» не найдено в модуле подсистемы НСИ «Регистр медицинских работников», то производится поиск переданного значения practitioner.id. Если переданное значение не найдено ни одним способом, то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке. При этом, если передан идентификационный номер паспорта или иного документа, удостоверяющего личность, то возможно как создание, так и актуализация карточек медицинского работника. Если передан practitioner.id, то возможна только актуализация карточек медицинского работника.
gender Пол Нет Поле может содержать только соответствующие справочнику «Пол» значения code или text. Если передано значение code, то производится поиск значения в кодах соответствующего справочника. В случае, если переданное значение не найдено в кодах справочника, то производится поиск переданного значения text в display name соответствующего справочника. Если переданное значение не найдено ни в code, ни в display name, то метод возвращает HTTP-статус «400 Bad Request» и соответствующее сообщение об ошибке.
birthDate Дата рождения Нет Формат даты должен соответствовать международному стандарту ISO 8601. Дата не должна быть раньше 01.01.1900 и не должна превышать текущую дату.
birthPlace Место рождения Нет Поле может содержать буквы и цифры. Допустимо использование специальных символов. Максимально допустимая длина – 250 символов.
citizenship Гражданство Нет Поле может содержать только соответствующие справочнику «Коды гражданства» значения code или text. Если передано значение code, то производится поиск значения в кодах соответствующего справочника. В случае, если переданное значение не найдено в кодах справочника, то производится поиск переданного значения text в display name соответствующего справочника. Если переданное значение не найдено ни в code, ни в display name, то метод возвращает HTTP-статус «400 Bad Request» и соответствующее сообщение об ошибке.
foreignDocumentCountry Страна, выдавшая документ Да, если сотрудник является иностранным гражданином без ВНЖ Поле может содержать только соответствующие справочнику «Коды гражданства» значения code или text. Если передано значение code, то производится поиск значения в кодах соответствующего справочника. В случае, если переданное значение не найдено в кодах справочника, то производится поиск переданного значения text в display name соответствующего справочника. Если переданное значение не найдено ни в code, ни в display name, то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке.
registrationAddress Адрес регистрации Нет Поле может содержать только соответствующие справочнику «StreetGeoRegistry» значения code или text. Если передано значение code, то производится поиск значения в кодах соответствующего справочника. В случае, если переданное значение не найдено в кодах справочника, то производится поиск переданного значения text в display name соответствующего справочника. Если переданное значение не найдено ни в code, ни в display name, то метод возвращает HTTP-статус «400 Bad Request» и соответствующее сообщение об ошибке.
apartment Квартира Нет Поле может содержать буквы и цифры. Максимально допустимая длина – 10 символов.
registrationDate Дата регистрации Нет Формат даты должен соответствовать международному стандарту ISO 8601. Дата не должна быть раньше 01.01.1900 и не должна превышать текущую дату.
documentType Тип документа, удостоверяющего личность Нет Поле может содержать только соответствующие справочнику «Тип документа, удостоверяющего личность» значения code или text. Если передано значение code, то производится поиск значения в кодах соответствующего справочника. В случае, если переданное значение не найдено в кодах справочника, то производится поиск переданного значения text в display name соответствующего справочника. Если переданное значение не найдено ни в code, ни в display name, то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке.
documentNumber Серия и номер документа, удостоверяющего личность Нет Поле должно содержать только буквы латинского алфавита и цифры. Максимально допустимая длина – 11 символов.
documentIssuedBy Кем выдан документ, удостоверяющий личность Нет Поле может содержать только соответствующие справочнику «Справочник ОГИМ» значения code или text. Если передано значение code, то производится поиск значения в кодах соответствующего справочника. В случае, если переданное значение не найдено в кодах справочника, то производится поиск переданного значения text в display name соответствующего справочника. Если переданное значение не найдено ни в code, ни в display name, то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке.
documentIssuedDate Когда выдан документ, удостоверяющий личность Нет Формат даты должен соответствовать международному стандарту ISO 8601. Дата не должна быть раньше 01.01.1900 и не должна превышать текущую дату.
documentTerm Срок действия документа, удостоверяющего личность Нет Формат даты должен соответствовать международному стандарту ISO 8601. Дата не должна быть раньше 01.01.1900.
phone Номер контактного телефона Нет Поле должно содержать только цифры. Допустимо использование пробелов, дефисов, скобок и знака плюс. Максимально допустимая длина – 20 символов.
email Электронная почта Нет Поле должно содержать буквы только латинского алфавита. Допустимо использование специальных символов и цифр. Максимально допустимая длина – 25 символов.
giftedYouthBoolean Состоит в банке данных одаренной молодежи Нет Поле должно содержать только значение типа Boolean (да/нет).
giftedYouthDate Дата включения в банк данных одаренной молодежи Нет Формат даты должен соответствовать международному стандарту ISO 8601. Дата не должна быть раньше 01.01.1900 и не должна превышать текущую дату.
personnelReserveBoolean Состоит в перспективном кадровом резерве Нет Поле должно содержать только значение типа Boolean (да/нет).
personnelReserveDate Дата включения в перспективный кадровый резерв Нет Формат даты должен соответствовать международному стандарту ISO 8601. Дата не должна быть раньше 01.01.1900 и не должна превышать текущую дату.
headPersonnelReserveBoolean Состоит в резерве руководящих кадров Нет Поле должно содержать только значение типа Boolean (да/нет).
headPersonnelReserveDate Дата включения в резерв руководящих кадров Нет Формат даты должен соответствовать международному стандарту ISO 8601. Дата не должна быть раньше 01.01.1900 и не должна превышать текущую дату.
specialFundOfPresidentBoolean Состоит в специальном фонде Президента Республики Беларусь Нет Поле должно содержать только значение типа Boolean (да/нет).
specialFundOfPresidentDate Дата включения в специальный фонд Президента Республики Беларусь Нет Формат даты должен соответствовать международному стандарту ISO 8601. Дата не должна быть раньше 01.01.1900 и не должна превышать текущую дату.

Пример запроса JSON на создание карточки медицинского работника:

[ { "family": "Серезкин", "firstName": "Михаил", "patronymic": "Михайлович", "identificationNumber": "1211489F445PB2", "gender": "male", "birthDate": "1994-02-11", "birthPlace": "Минск", "citizenship": "Беларусь", "registrationAddress": "Брестская область, Барановичский район, Крошинский с/с, д. Подлесейки, Улица Тихая, д.15А", "apartment": "13", "registrationDate": "1994-02-11", "documentType": "Паспорт гражданина Республики Беларусь", "documentNumber": "VD1234567", "documentIssuedBy": "УВД Брестского облисполкома", "documentIssuedDate": "2010-01-01", "documentTerm": "2020-11-01", "phone": "+375 (29) 123-67", "email": "person@example.com", "giftedYouthBoolean": true, "giftedYouthDate": "2000-01-01T00:00:00", "personnelReserveBoolean": true, "personnelReserveDate": "2000-01-01T00:00:00", "headPersonnelReserveBoolean": true, "headPersonnelReserveDate": "2000-01-01T00:00:00", "specialFundOfPresidentBoolean": true, "specialFundOfPresidentDate": "2000-01-01T00:00:00" } ]

Примеры запросов для обновления информации о медицинском работнике

Полный запрос JSON:

[ { "family": "Серезкин", "firstName": "Михаил", "patronymic": "Михайлович", "identificationNumber": "1211489F445PB2", "gender": "male", "birthDate": "1994-02-11", "birthPlace": "Минск", "citizenship": "Беларусь", "registrationAddress": "Брестская область, Барановичский район, Крошинский с/с, д. Подлесейки, Улица Тихая, д.15А", "apartment": "13А", "registrationDate": "1994-02-11", "documentType": "Паспорт гражданина Республики Беларусь", "documentNumber": "VD1234567", "documentIssuedBy": "УВД Брестского облисполкома", "documentIssuedDate": "2010-01-01", "documentTerm": "2020-11-01", "phone": "+375 (29) 123-67", "email": "person@example.com", "giftedYouthBoolean": true, "giftedYouthDate": "2000-01-01T00:00:00", "personnelReserveBoolean": true, "personnelReserveDate": "2000-01-01T00:00:00", "headPersonnelReserveBoolean": true, "headPersonnelReserveDate": "2000-01-01T00:00:00", "specialFundOfPresidentBoolean": true, "specialFundOfPresidentDate": "2000-01-01T00:00:00" } ]

Частичный запрос JSON:

[ { "firstName": "Олег", "family": "Петров", "patronymic": "Олегович", "identificationNumber": "1234567D222XX1" } ]

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

{ "practitionerIds": [ "be6fbf7a-d8a1-11ef-a1f1-c7389903ce7c" ] }

Пример ответа в случае неуспешного импорта (проверку валидности значений передаваемых данных):

{ "errors": { "practitioner.1234567D222XX1.Citizenship": [ "Значение должно соответствовать справочнику. «Коды гражданства» https://fhir.by/ValueSet/CitizenshipCode" ] } }

Метод API для создания/актуализации карточки медицинского работника, являющегося иностранным гражданином без ВНЖ

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

Вызов метода осуществляется с помощью HTTP POST команды:

POST [PRACTITIONER_IMPORT_BASE]/ForeignGeneralDataImport

Авторизация производится по следующему алгоритму:
Программные интерфейсы ЦИСЗ защищены сервером авторизации с использованием технологии OAuth 2.0. Доступ к защищенным ресурсам и функциям системы предоставляется только авторизованным пользователям. При каждом вызове метода актуализации (обновления) персональных данных клиентское приложение (кадровая система) должно передавать токен доступа организации в заголовке запроса.

Актуализация (обновление) сведений о медицинском работнике в части персональных данных доступна только для организации, указанной в карточке медицинского работника в качестве основного или дополнительного места работы. Актуализация сведений осуществляется по следующему алгоритму:

  • если уникальный идентификатор (ID) организации, указанный в токене доступа, не совпадает с ID организации, указанным в основном или дополнительном месте работы в карточке медицинского работника, то актуализация персональных данных не производится и метод возвращает HTTP-статус «403»;

  • если ID организации, указанный в токене доступа, совпадает с ID организации, указанным в основном или дополнительном месте работы в карточке медицинского работника, то актуализация персональных данных производится и метод возвращает HTTP-статус «200 ОК»;

  • если в карточке медицинского работника информация об основном и дополнительных местах работы отсутствует, то актуализация персональных данных производится и метод возвращает HTTP-статус «200 ОК».

Формат данных

Импорт данных осуществляется в формате JSON.

Обработка записей

  • Метод поддерживает импорт сведений как об одном сотруднике, так и о группе сотрудников.

  • При актуализации (обновлении) сведений существующих карточек сотрудников используется уникальный ID (комбинация полей «номер иностранного документа» и «код страны, выдавшей документ») по следующему алгоритму:
    • если сотрудник с указанным в запросе (JSON) ID отсутствует в модуле «Регистр медицинских работников», то создается новая карточка. По умолчанию карточка создается со статусом «Активный»;
    • если сотрудник с указанным в запросе ID уже существует в модуле «Регистр медицинских работников», то актуализация (обновление) сведений в карточке медицинского работника производится только в части данных (свойств), которые указаны в запросе (JSON);
    • если сотрудник с указанным в запросе ID уже существует в модуле «Регистр медицинских работников» и в запросе (JSON) указано значение «null», то в карточке сотрудника значение обновляется на «null». При этом, если свойство указано в запросе, то оно обновляется, а если свойство не указано, то значение этого свойства остается прежним;
    • актуализация (обновление) сведений существующих карточек сотрудников возможна только для карточек со статусом «Активный». Если статус карточки «Неактивный», то необходимо изменить статус карточки посредством соответствующего метода API.
  • Значения справочников могут передаваться в виде code или display name.
  • В качестве уникального ID для медицинских работников, являющихся иностранными гражданами без ВНЖ, используется комбинация полей «номер иностранного документа» и «код страны, выдавшей документ» для создания новой карточки в регистре медицинских работников и для актуализации (обновлении) сведений существующих карточек сотрудников.

При актуализации (обновлении) сведений существующих карточек медицинских работников, являющихся иностранными гражданами без ВНЖ в части сведений о получении сотрудников ВНЖ используется метод ForeignGeneralDataImport. При этом в запросе (JSON) необходимо:

  • добавить поле identificationNumber, где указать идентификационный номер ВНЖ или паспорта гражданина РБ в соответствии с требованиями валидации личного (идентификационного) номера;
  • в поле documentType указать значение, отличное от «FDN.vs»;
  • в полях foreignDocumentNumber и foreignDocumentCountry указать данные иностранного гражданина, который получил ВНЖ;
  • убрать из запроса поля foreignDocumentDate и foreignDocumentOrganization.

Статус импорта

При успешном импорте возвращается HTTP-статус «200 ОК».

Валидация

Проверка валидности формата данных
Метод поддерживает проверку валидности формата данных перед импортом. Если формат данных не соответствует установленным требованиям, то:

  • импорт данных не производится;
  • метод возвращает НТТР-статус «400 Bad Request»;
  • отображается соответствующее сообщение об ошибке.

Сообщение об ошибке содержит:

  • уникальный ID (поле «номер иностранного документа»);
  • наименование поля с ошибкой.

Проверка валидности заполнения обязательных полей
Метод поддерживает проверку валидности заполнения обязательных полей перед импортом. Если значения обязательных полей не соответствуют установленным требованиям, то:

  • импорт данных не производится;
  • метод возвращает НТТР-статус «400 Bad Request»;
  • отображается соответствующее сообщение об ошибке.

Сообщение об ошибке содержит:

  • уникальный ID (поле «номер иностранного документа»);
  • наименование поля с ошибкой;
  • описание ошибки.

Проверка валидности значений передаваемых данных
Метод поддерживает проверку валидности значений передаваемых данных перед импортом. Проверка осуществляется путем валидации значений передаваемых данных со справочниками модуля подсистемы НСИ «Реестр справочников». Если значения передаваемых данных не соответствуют установленным требованиям, то:

  • импорт данных не производится;
  • метод возвращает НТТР-статус «400 Bad Request»;
  • отображается соответствующее сообщение об ошибке.

Сообщение об ошибке содержит:

  • уникальный ID (поле «номер иностранного документа»);
  • наименование поля с ошибкой;
  • описание ошибки с указанием ссылки на необходимый справочник (ValueSet).

Входящие параметры метода:

Название Описание Обязательное поле Правила валидации
family Фамилия Нет Поле должно содержать только буквы кириллицы. Допустимо использование дефисов, пробелов, апострофов. Максимально допустимая длина – 100 символов.
firstName Имя Нет Поле должно содержать только буквы кириллицы. Допустимо использование дефисов, пробелов, апострофов. Максимально допустимая длина – 100 символов.
patronymic Отчество Нет Поле должно содержать только буквы кириллицы. Допустимо использование дефисов, пробелов, апострофов. Максимально допустимая длина – 100 символов.
identificationNumber Личный (идентификационный) номер Да, для актуализации существующей карточки Поле должно содержать буквы только латинского алфавита в верхнем регистре и цифры. Недопустимо использование специальных символов и пробелов.
foreignDocumentNumber Номер иностранного документа, подтверждающего личность Да, для создания новой карточки Поле должно содержать буквы только латинского алфавита в верхнем регистре и цифры. Недопустимо использование специальных символов и пробелов. Максимально допустимая длина – 20 символов.
foreignDocumentCountry Страна, выдавшая документ Да Поле может содержать только соответствующие справочнику «Коды гражданства» значения code или text. Если передано значение code, то производится поиск значения в кодах соответствующего справочника. В случае, если переданное значение не найдено в кодах справочника, то производится поиск переданного значения text в display name соответствующего справочника. Если переданное значение не найдено ни в code, ни в display name, то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке.
documentType Тип документа, удостоверяющего личность Нет Поле может содержать только соответствующее справочнику «Тип документа, удостоверяющего личность» значение c code «FDN.vs» или text «Национальный паспорт иностранца».
foreignDocumentOrganization Кем выдан документ, удостоверяющий личность Нет Поле может содержать буквы и цифры. Допустимо использование специальных символов. Максимально допустимая длина – 150 символов.
documentIssuedDate Когда выдан документ, удостоверяющий личность Нет Формат даты должен соответствовать международному стандарту ISO 8601. Дата не должна быть раньше 01.01.1900 и не должна превышать текущую дату.
documentTerm Срок действия документа, удостоверяющего личность Нет Формат даты должен соответствовать международному стандарту ISO 8601. Дата не должна быть раньше 01.01.1900.
gender Пол Нет Поле может содержать только соответствующие справочнику «Пол» значения code или text. Если передано значение code, то производится поиск значения в кодах соответствующего справочника. В случае, если переданное значение не найдено в кодах справочника, то производится поиск переданного значения text в display name соответствующего справочника. Если переданное значение не найдено ни в code, ни в display name, то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке.
birthDate Дата рождения Нет Формат даты должен соответствовать международному стандарту ISO 8601. Дата не должна быть раньше 01.01.1900 и не должна превышать текущую дату.
birthPlace Место рождения Нет Поле может содержать буквы и цифры. Допустимо использование специальных символов. Максимально допустимая длина – 250 символов.
citizenship Гражданство Нет Поле может содержать только соответствующие справочнику «Коды гражданства» значения code или text. Если передано значение code, то производится поиск значения в кодах соответствующего справочника. В случае, если переданное значение не найдено в кодах справочника, то производится поиск переданного значения text в display name соответствующего справочника. Если переданное значение не найдено ни в code, ни в display name, то метод возвращает статус НТТР-«400 Bad Request» и соответствующее сообщение об ошибке.
registrationAddress Адрес регистрации Нет Поле может содержать только соответствующие справочнику «StreetGeoRegistry» значения code или text. Если передано значение code, то производится поиск значения в кодах соответствующего справочника. В случае, если переданное значение не найдено в кодах справочника, то производится поиск переданного значения text в display name соответствующего справочника. Если переданное значение не найдено ни в code, ни в display name, то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке.
apartment Квартира Нет Поле может содержать буквы и цифры. Максимально допустимая длина – 10 символов.
registrationDate Дата регистрации Нет Формат даты должен соответствовать международному стандарту ISO 8601. Дата не должна быть раньше 01.01.1900 и не должна превышать текущую дату.
phone Номер контактного телефона Нет Поле должно содержать только цифры. Допустимо использование пробелов, дефисов, скобок и знака плюс. Максимально допустимая длина – 20 символов.
email Электронная почта Нет Поле должно содержать буквы только латинского алфавита. Допустимо использование специальных символов и цифр. Максимально допустимая длина – 25 символов.
giftedYouthBoolean Состоит в банке данных одаренной молодежи Нет Поле должно содержать только значение типа Boolean (да/нет).
giftedYouthDate Дата включения в банк данных одаренной молодежи Нет Формат даты должен соответствовать международному стандарту ISO 8601. Дата не должна быть раньше 01.01.1900 и не должна превышать текущую дату.
personnelReserveBoolean Состоит в перспективном кадровом резерве Нет Поле должно содержать только значение типа Boolean (да/нет).
personnelReserveDate Дата включения в перспективный кадровый резерв Нет Формат даты должен соответствовать международному стандарту ISO 8601. Дата не должна быть раньше 01.01.1900 и не должна превышать текущую дату.
headPersonnelReserveBoolean Состоит в резерве руководящих кадров Нет Поле должно содержать только значение типа Boolean (да/нет).
headPersonnelReserveDate Дата включения в резерв руководящих кадров Нет Формат даты должен соответствовать международному стандарту ISO 8601. Дата не должна быть раньше 01.01.1900 и не должна превышать текущую дату.
specialFundOfPresidentBoolean Состоит в специальном фонде Президента Республики Беларусь Нет Поле должно содержать только значение типа Boolean (да/нет).
specialFundOfPresidentDate Дата включения в специальный фонд Президента Республики Беларусь Нет Формат даты должен соответствовать международному стандарту ISO 8601. Дата не должна быть раньше 01.01.1900 и не должна превышать текущую дату.

Пример запроса JSON на создание карточки медицинского работника, являющегося иностранным гражданином без ВНЖ:

[ {"family": "Малорин", "firstName": "Игнат", "patronymic": "Альбертович", "gender": "male", "birthDate": "1994-02-11", "birthPlace": "Москва", "citizenship": "Россия", "foreignDocumentNumber": "44456524", "foreignDocumentCountry": "RU", "foreignDocumentOrganization": "Организация, выдавшая документ", "foreignDocumentDate": "1994-02-15", "documentType": "FDN.vs", "documentTerm": "2015-11-01", "registrationAddress": null, "apartment": null, "registrationDate": null, "phone": "+375 (29) 123-44-67", "email": "person@example.com", "giftedYouthBoolean": true, "giftedYouthDate": "2000-01-01T00:00:00", "personnelReserveBoolean": true, "personnelReserveDate": "2000-01-01T00:00:00", "headPersonnelReserveBoolean": true, "headPersonnelReserveDate": "2000-01-01T00:00:00", "specialFundOfPresidentBoolean": true, "specialFundOfPresidentDate": "2000-01-01T00:00:00" } ]

Примеры запросов для обновления информации о медицинском работнике Полный запрос JSON:

[ {"family": "Малорин", "firstName": "Игнат", "patronymic": "Альбертович", "gender": "male", "birthDate": "1994-02-11", "birthPlace": "Москва", "citizenship": "Россия", "foreignDocumentNumber": "44456524", "foreignDocumentCountry": "RU", "foreignDocumentOrganization": "Организация, выдавшая документ", "foreignDocumentDate": "1994-02-15", "documentType": "FDN.vs", "documentTerm": "1994-02-15", "registrationAddress": null, "apartment": null, "registrationDate": null, "phone": "+375 (29) 123-44-67", "email": "person@example.com", "giftedYouthBoolean": true, "giftedYouthDate": "2000-01-01T00:00:00", "personnelReserveBoolean": true, "personnelReserveDate": "2000-01-01T00:00:00", "headPersonnelReserveBoolean": true, "headPersonnelReserveDate": "2000-01-01T00:00:00", "specialFundOfPresidentBoolean": true, "specialFundOfPresidentDate": "2000-01-01T00:00:00" } ]

Частичный запрос JSON:

[ {"family": "Малорин", "firstName": "Игнат", "patronymic": "Альбертович", "gender": "male", "birthDate": "1994-02-11", "citizenship": "Россия", "foreignDocumentNumber": "44456524", "foreignDocumentCountry": "RU", "foreignDocumentOrganization": "Организация, выдавшая документ", "foreignDocumentDate": "1994-02-20", "documentType": "FDN.vs", "documentTerm": "1994-02-15", "phone": "+375 (29) 123-44-67", "email": "person@example.com" } ]

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

[ { "practitionerIds": [ "13669cbc-fce6-11f0-b44c-17749ffc8ddb" ] } ]

Пример запроса JSON для актуализации карточки медицинского работника, являющегося иностранным гражданином без ВНЖ части сведений о получении сотрудником ВНЖ

[ {"family": "Малорин", "firstName": "Игнат", "patronymic": "Альбертович", "gender": "male", "birthDate": "1994-02-11", "birthPlace": "Москва", "citizenship": "Россия", "foreignDocumentNumber": "44456524", "foreignDocumentCountry": "RU", "documentType": "Паспорт гражданина Республики Беларусь", "identificationNumber": "7811489F445PB2", "documentTerm": "1994-02-15", "registrationAddress": null, "apartment": null, "registrationDate": null, "phone": "+375 (29) 123-44-67", "email": "person@example.com", "giftedYouthBoolean": true, "giftedYouthDate": "2000-01-01T00:00:00", "personnelReserveBoolean": true, "personnelReserveDate": "2000-01-01T00:00:00", "headPersonnelReserveBoolean": true, "headPersonnelReserveDate": "2000-01-01T00:00:00", "specialFundOfPresidentBoolean": true, "specialFundOfPresidentDate": "2000-01-01T00:00:00" } ]

Пример ответа в случае успешного импорта части сведений о получении сотрудником ВНЖ:

[ { "practitionerIds": [ "13669cbc-fce6-11f0-b44c-17749ffc8ddb" ] } ]

Пример ответа в случае неуспешного импорта (использование неправильного метода импорта):

[ { "errors": { "generalDataImport": [ "Тело запроса содержит не корректные поля" ] } } ]

Метод API для актуализации статуса карточки медицинского работника

Метод предназначен для актуализации статуса карточки медицинского работника в модуле «Регистр медицинских работников» подсистемы НСИ.

Вызов метода осуществляется с помощью HTTP POST команды:

POST [PRACTITIONER_IMPORT_BASE]/StatusDataImport

Аутентификация производится аналогично Правилам аутентификации для МИС.

Авторизация производится по следующему алгоритму:

Программные интерфейсы ЦИСЗ защищены сервером авторизации с использованием технологии OAuth 2.0. Доступ к защищенным ресурсам и функциям системы предоставляется только авторизованным пользователям. При каждом вызове метода актуализации (обновления) статуса карточки медицинского работника клиентское приложение (кадровая система) должно передавать токен доступа организации в заголовке запроса. Актуализация (обновление) статуса карточки медицинского работника доступна только для организации, указанной в карточке медицинского работника в качестве основного или дополнительного места работы.

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

  • если уникальный идентификатор (ID) организации, указанный в токене доступа, не совпадает с ID организации, указанным в основном месте работы в карточке медицинского работника, то актуализация статуса карточки медицинского работника не производится и метод возвращает HTTP-статус «403 Forbidden». При этом, если в карточке медицинского работника информация об основном месте работы отсутствует (ID организации= «null»), то проверка осуществляется по ID организации, указанному в дополнительных местах работы по тем же правилам;
  • если в карточке медицинского работника информация об основном и дополнительных местах работы отсутствует, то производится актуализация статуса карточки медицинского работника, и метод возвращает HTTP-статус «200 ОК»;
  • если ID организации, указанный в токене доступа, совпадает с ID организации, указанным в карточке медицинского работника в основном или дополнительном месте работы, то производится актуализация статуса карточки медицинского работника и метод возвращает HTTP-статус «200 ОК».

Формат данных

Импорт данных осуществляется в формате JSON.

Обработка записей

  • Метод поддерживает импорт сведений как об одном сотруднике, так и о группе сотрудников.
  • При актуализации (обновлении) сведений существующих карточек сотрудников используется уникальный ID по следующему алгоритму:
    • если сотрудник с указанным в запросе ID уже существует в модуле «Регистр медицинских работников», то актуализация (обновление) сведений в карточке медицинского работника производится только в части данных (свойств), которые указаны в запросе (JSON);
    • если сотрудник с указанным в запросе ID уже существует в модуле «Регистр медицинских работников» и в запросе (JSON) указано значение «null», то в карточке сотрудника значение обновляется на «null». При этом, если свойство указано в запросе, то оно обновляется, а если свойство не указано, то значение этого свойства остается прежним.
  • Значения справочников могут передаваться в виде code или display name.

  • В качестве уникального ID для медицинских работников, являющихся иностранными гражданами без ВНЖ, используется комбинация полей «номер иностранного документа» и «код страны, выдавшей документ» для создания новой карточки в регистре медицинских работников и для актуализации (обновления) сведений существующих карточек сотрудников.
  • В качестве уникального ID для медицинских работников, являющихся гражданами РБ или имеющих ВНЖ, могут использоваться:
    • личный идентификационный номер – для создания новой карточки и для актуализации (обновления) сведений существующих карточек сотрудников;
    • ID practitioner - для актуализации (обновления) сведений существующих карточек сотрудников.

Статус импорта

При успешном импорте сведений возвращается НТТР-статус «200 ОК».

Валидация

Проверка валидности формата данных
Метод поддерживает проверку валидности формата данных перед импортом. Если формат данных не соответствует установленным требованиям, то:

  • импорт данных не производится;
  • метод возвращает НТТР-статус «400 Bad Request»;
  • отображается соответствующее сообщение об ошибке.

Сообщение об ошибке содержит:

  • уникальный ID (личный идентификационный номер или номер иностранного документа для сотрудников без ВНЖ);
  • наименование поля с ошибкой;
  • описание ошибки.

Проверка валидности заполнения обязательных полей
Метод поддерживает проверку валидности заполнения обязательных полей перед импортом. Если значения обязательных полей не соответствуют установленным требованиям, то:

  • импорт данных не производится;
  • метод возвращает НТТР-статус «400 Bad Request»;
  • отображается соответствующее сообщение об ошибке.

Сообщение об ошибке содержит:

  • уникальный ID (личный идентификационный номер или номер иностранного документа для сотрудников без ВНЖ);
  • наименование поля с ошибкой;
  • описание ошибки.

Проверка валидности значений передаваемых данных
Метод поддерживает проверку валидности значений передаваемых данных перед импортом. Проверка осуществляется путем валидации значений передаваемых данных со справочниками модуля подсистемы НСИ «Реестр справочников». Если значения передаваемых данных не соответствуют установленным требованиям, то:

  • импорт данных не производится;
  • метод возвращает НТТР-статус «400 Bad Request»;
  • отображается соответствующее сообщение об ошибке.

Сообщение об ошибке содержит:

  • уникальный ID (личный идентификационный номер или номер иностранного документа для сотрудников без ВНЖ);
  • наименование поля с ошибкой;
  • описание ошибки с указанием ссылки на необходимый справочник (ValueSet).

Входящие параметры метода:

Название Описание Обязательное поле Правила валидации
identificationNumber Личный (идентификационный) номер Да Поле может содержать идентификационный номер паспорта или иного документа, удостоверяющего личность (для иностранных граждан без ВНЖ - комбинации полей “номер иностранного документа” и “код страны, выдавшей документ”) или логический идентификатор медицинского работника (practitioner.id). Идентификационный номер должен содержать только буквы латинского алфавита верхнего регистра и цифры. Максимально допустимая длина – 15 символов. В случае, если переданное значение “идентификационный номер” не найдено в модуле подсистемы НСИ «Регистр медицинских работников», то производится поиск переданного значения practitioner.id. Если переданное значение не найдено ни одним способом, то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке. При этом, если передан идентификационный номер паспорта или иного документа, удостоверяющего личность, то возможно как создание, так и актуализация карточек медицинского работника. Если передан practitioner.id, то возможна только актуализация карточек медицинского работника.
foreignDocumentCountry Страна, выдавшая документ Да, если сотрудник является иностранным гражданином без ВНЖ Поле может содержать только соответствующие справочнику «Коды гражданства» значения code или text. Если передано значение code, то производится поиск значения в кодах соответствующего справочника. В случае, если переданное значение не найдено в кодах справочника, то производится поиск переданного значения text в display name соответствующего справочника. Если переданное значение не найдено ни в code, ни в display name, то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке.
active Статус Нет Если карточка сотрудника с указанным в запросе ID отсутствует в регистре медицинских работников, то создается новая карточка сотрудника. По умолчанию карточка создается со статусом «Активный». Если в запросе значение статуса не указано, то в регистре медицинских работников статус остается прежним. Если в запросе значение отлично от установленного в регистре медицинских работников, то, в соответствии с целю запроса, обязательно указываются нижеперечисленные поля: «причина закрытия и дата закрытия» или «причина повторного открытия и дата повторного открытия».
notActiveReasonKind Причина закрытия Да, если переданное в запросе значение поля «Статус» не соответствует установленному в регистре медицинских работников активному статусу Поле может содержать только соответствующие справочнику «Виды причин неактивности аккаунта» значения code или text. Если передано значение code, то производится поиск значения в кодах соответствующего справочника. В случае, если переданное значение не найдено в кодах справочника, то производится поиск переданного значения text в display name соответствующего справочника. Если переданное значение не найдено ни в code, ни в display name, то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке.
notActiveReasonString Иная причина закрытия карты Да, если переданное в запросе значение поля «Причина закрытия» передано значение «Иное» Поле может содержать буквы и цифры. Допустимо использование специальных символов. Максимально допустимая длина – 50 символов.
deceaseDate Дата смерти сотрудника Да, если переданное в запросе значение поля «Причина закрытия» передано значение «Смерть» Формат даты должен соответствовать международному стандарту ISO 8601. Дата не должна быть раньше 01.01.1900.
activeReasonKind Причина повторного открытия Да, если переданное в запросе значение поля «Статус» соответствует активному статусу Поле может содержать только соответствующие справочнику «Причины повторного открытия карточки медицинского работника» значения code или text. Если передано значение code, то производится поиск значения в кодах соответствующего справочника. В случае, если переданное значение не найдено в кодах справочника, то производится поиск переданного значения text в display name соответствующего справочника. Если переданное значение не найдено ни в code, ни в display name, то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке.
activeReasonString Иная причина повторного открытия карты Да, если переданное в запросе значение поля «Причина повторного открытия карты» передано значение «Иное» Поле может содержать буквы и цифры. Допустимо использование специальных символов. Максимально допустимая длина – 50 символов.

Примеры запросов для актуализации статуса карточки медицинского работника:
Полный запрос JSON для изменения статуса карточки на «Неактивная» по причине «Иное»:

[ { "identificationNumber": "1234567D222XV4", "active": false, "notActiveReasonKind": "other", "notActiveReasonString": "временная нетрудоспособность" } ]

Полный запрос JSON для изменения статуса карточки на «Активная» по причине «Ошибочно закрыт»:

[ { "identificationNumber": "1234567D222XV4", "active": true, "activeReasonKind": "Ошибочно закрыт" } ]

Полный запрос JSON для изменения статуса карточки на «Активная» по причине «Ошибочно закрыт» для карточки иностранного сотрудника без ВНЖ:

[ { "identificationNumber": "44456524", "foreignDocumentCountry": "RU", "active": true, "activeReasonKind": "сlosed-by-mistake", "activeReasonDate": "2000-01-01" } ]

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

{ "practitionerIds": [ "be6fbf7a-d8a1-11ef-a1f1-c7389903ce7c" ] }

Пример ответа в случае неуспешного импорта (проверку валидности значений передаваемых данных):

{ "errors": { "practitioner.1234567D222XV4.ActiveReasonDate": [ "Значение не может быть пустым", "Введённая дата должна быть больше 01.01.1900 и не должна превышать текущую дату" ], "practitioner.1234567D222XV4.ActiveReasonKind": [ "Значение не может быть пустым" ], "practitioner.1234567D222XV4.NotActiveReasonDate": [ "Поле не соответствует переданному статусу" ], "practitioner.1234567D222XV4.NotActiveReasonKind": [ "Поле не соответствует переданному статусу" ], "practitioner.1234567D222XV4.NotActiveReasonString": [ "Поле не соответствует переданному статусу или причине" ] } }

Метод API для актуализации карточки медицинского работника в части сведений об основном месте работы

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

Вызов метода осуществляется с помощью HTTP POST команды:

POST [PRACTITIONER_IMPORT_BASE]/MainWorkDataImport

Аутентификация производится аналогично Правилам аутентификации для МИС.

Авторизация производится по следующему алгоритму:

Программные интерфейсы ЦИСЗ защищены сервером авторизации с использованием технологии OAuth 2.0. Доступ к защищенным ресурсам и функциям системы предоставляется только авторизованным пользователям. При каждом вызове метода актуализации (обновления) информации о месте работы (основное место работы) клиентское приложение (кадровая система) должно передавать токен доступа организации в заголовке запроса.

Организация имеет право актуализировать (обновлять) сведения о местах работы исключительно в пределах своей структуры. Актуализация сведений осуществляется по следующему алгоритму:

  • если уникальный идентификатор (ID) организации, указанный в токене доступа, не совпадает с ID организации, переданном в запросе (JSON) на актуализацию сведений об основном месте работы, то актуализация сведений не производится и метод возвращает HTTP-статус «403 Forbidden»;
  • если ID организации, указанный в токене доступа, совпадает с ID организации, переданном в запросе (JSON) на актуализацию сведений об основном месте работы, то актуализация сведений производится и метод возвращает HTTP-статус «200 ОК»;
  • если в карточке медицинского работника информация об основном месте работы отсутствует, то производится актуализация сведений, указанных в запросе (JSON), и метод возвращает HTTP-статус «200 ОК».

Формат данных

Импорт данных осуществляется в формате JSON.

Обработка записей:

  • Метод поддерживает импорт сведений как об одном сотруднике, так и о группе сотрудников.
  • При актуализации (обновлении) сведений существующих карточек сотрудников используется уникальный ID по следующему алгоритму:
    • если сотрудник с указанным в запросе ID уже существует в модуле «Регистр медицинских работников», то актуализация (обновление) сведений в карточке медицинского работника производится только в части данных (свойств), которые указаны в запросе (JSON);
    • если сотрудник с указанным в запросе ID уже существует в модуле «Регистр медицинских работников» и в запросе (JSON) указано значение «null», то в карточке сотрудника значение обновляется на «null». При этом, если свойство указано в запросе, то оно обновляется, а если свойство не указано, то значение этого свойства остается прежним;
    • если сотрудник с указанным в запросе (JSON) ID отсутствует в модуле «Регистр медицинских работников», то метод возвращает НТТР-статус «400 Bad Request» и отображается соответствующее сообщение об ошибке.
  • Метод поддерживает проверку количества основных мест работы:
    • если в карточке сотрудника уже указано основное место работы, то оно автоматически перемещается в раздел «Предыдущие места работы». При этом, если дата увольнения не была указана, то она автоматически устанавливается равной дате приема на новое место работы;
    • новое место работы автоматически устанавливается как основное место работы;
    • если в запросе (JSON) указана организация находящаяся в разделе «Предыдущие места работы» (т.е. указана дата увольнения), то информация о данном месте работы не обновляется. Создается новое место работы с данными, которые были указаны в запросе;
    • актуализация (обновление) сведений существующих карточек сотрудников возможна только для карточек со статусом «Активный». Если статус карточки «Неактивный», то необходимо изменить статус карточки посредством соответствующего метода API.
  • Значения справочников могут передаваться в виде code или display name.
  • В качестве уникального ID для медицинских работников, являющихся иностранными гражданами без ВНЖ, используется комбинация полей «номер иностранного документа» и «код страны, выдавшей документ» для создания новой карточки в регистре медицинских работников и для актуализации (обновления) сведений существующих карточек сотрудников.
  • В качестве уникального ID для медицинских работников, являющихся гражданами РБ или имеющих ВНЖ, могут использоваться:
    • личный идентификационный номер – для создания новой карточки и для актуализации (обновления) сведений существующих карточек сотрудников;
    • ID practitioner - для актуализации (обновления) сведений существующих карточек сотрудников.

Статус импорта

При успешном импорте возвращается НТТР-статус «200 ОК».

Поддержка связанных данных

Метод поддерживает импорт связанных данных: полей «Должность» и «Должностная группа», «Место работы» и «Структурное подразделение ОЗ».

Валидация

Проверка валидности формата данных
Метод поддерживает проверку валидности формата данных перед импортом. Если формат данных не соответствует установленным требованиям, то:

  • импорт данных не производится;
  • метод возвращает НТТР-статус «400 Bad Request»;
  • отображается соответствующее сообщение об ошибке.

Сообщение об ошибке содержит:

  • уникальный ID (личный идентификационный номер или номер иностранного документа для сотрудников без ВНЖ);
  • наименование поля с ошибкой;
  • описание ошибки.

Проверка валидности заполнения обязательных полей
Метод поддерживает проверку валидности заполнения обязательных полей перед импортом. Если значения обязательных полей не соответствуют установленным требованиям, то:

  • импорт данных не производится;
  • метод возвращает НТТР-статус «400 Bad Request»;
  • отображается соответствующее сообщение об ошибке.

Сообщение об ошибке содержит:

  • уникальный ID (личный идентификационный номер или номер иностранного документа для сотрудников без ВНЖ);
  • наименование поля с ошибкой;
  • описание ошибки.

Проверка валидности значений передаваемых данных
Метод поддерживает проверку валидности значений передаваемых данных перед импортом. Проверка осуществляется путем валидации значений передаваемых данных со справочниками модуля подсистемы НСИ «Реестр справочников». Если значения передаваемых данных не соответствуют установленным требованиям, то:

  • импорт данных не производится;
  • метод возвращает НТТР-статус «400 Bad Request»;
  • отображается соответствующее сообщение об ошибке.

Сообщение об ошибке содержит:

  • уникальный ID (личный идентификационный номер или номер иностранного документа для сотрудников без ВНЖ);
  • наименование поля с ошибкой;
  • описание ошибки с указанием ссылки на необходимый справочник (ValueSet).

Входящие параметры метода:

Название Описание Обязательное поле Правила валидации
identificationNumber Личный (идентификационный) номер Да Поле может содержать идентификационный номер паспорта или иного документа, удостоверяющего личность (для иностранных граждан без ВНЖ - полей “номер иностранного документа” и “код страны, выдавшей документ”) или логический идентификатор медицинского работника (practitioner.id). Идентификационный номер должен содержать только буквы латинского алфавита верхнего регистра и цифры. Максимально допустимая длина – 15 символов. В случае, если переданное значение идентификационный номер не найдено в модуле подсистемы НСИ «Регистр медицинских работников», то производится поиск переданного значения practitioner.id. Если переданное значение не найдено ни одним способом, то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке. При этом, если передан идентификационный номер паспорта или иного документа, удостоверяющего личность, то возможно как создание, так и актуализация карточек медицинского работника. Если передан practitioner.id, то возможна только актуализация карточек медицинского работника.
foreignDocumentCountry Страна, выдавшая документ Да, если сотрудник является иностранным гражданином без ВНЖ Поле может содержать только соответствующие справочнику «Коды гражданства» значения code или text. Если передано значение code, то производится поиск значения в кодах соответствующего справочника. В случае, если переданное значение не найдено в кодах справочника, то производится поиск переданного значения text в display name соответствующего справочника. Если переданное значение не найдено ни в code, ни в display name, то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке.
positionGroup Должностная группа Да Поле может содержать только соответствующие справочнику «Должностные группы и должности медицинских работников» значения code или text. Если передано значение code, то производится поиск значения в кодах соответствующего справочника. В случае, если переданное значение не найдено в кодах справочника, то производится поиск переданного значения text в display name соответствующего справочника. Если переданное значение не найдено ни в code, ни в display name, то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке.
positionType Должность, на которую принят на работу Да Поддерживается импорт связанных данных полей «Должность» и «Должностная группа». Поле может содержать только соответствующие справочнику «Должностные группы и должности медицинских работников» значения code или text. Если передано значение code, то производится поиск значения в кодах соответствующего справочника. В случае, если переданное значение не найдено в кодах справочника, то производится поиск переданного значения text в display name соответствующего справочника. Если переданное значение не найдено ни в code, ни в display name, то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке.
positionCodeNCRB Код категории должности Да Поле может содержать только соответствующие справочнику «Коды категорий должностей ОКРБ 014-2017» значения code или text. Если передано значение code, то производится поиск значения в кодах соответствующего справочника. В случае, если переданное значение не найдено в кодах справочника, то производится поиск переданного значения text в display name соответствующего справочника. Если переданное значение не найдено ни в code, ни в display name, то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке.
organization Место работы Да Поле может содержать только уникальный идентификатор организации. К ним относятся: ОКПО и fhir id organization cisz. Если переданное значение не найдено в карточках организаций, находящихся в модуле подсистемы НСИ «Регистр медицинских организаций», то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке. Получить список организаций можно, используя методы API, указанные в Правилах работы с ресурсом Organization.
location Структурное подразделение ОЗ Да Поддерживается импорт связанных данных полей «Место работы» и «Структурное подразделение ОЗ». Поле может содержать только значения, соответствующие модулю подсистемы НСИ «Регистр медицинских организаций»: значение text или fhir id location cisz. В случае, если переданное значение fhir id location cisz не найдено в модуле подсистемы НСИ «Регистр медицинских организаций», то производится поиск переданного значения text. Если переданное значение не найдено ни одним способом, то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке.
dutyCodes Функциональные обязанности Нет Поле может содержать только соответствующие справочнику «Функциональные обязанности» значения code или text. Если передано значение code, то производится поиск значения в кодах соответствующего справочника. В случае, если переданное значение не найдено в кодах справочника, то производится поиск переданного значения text в display name соответствующего справочника. Если переданное значение не найдено ни в code, ни в display name, то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке. Допустима передача нескольких значений справочника.
positionRate Ставка Нет Поле может содержать только соответствующие справочнику «Перечень количества ставок» значения code или text. Если передано значение code, то производится поиск значения в кодах соответствующего справочника. В случае, если переданное значение не найдено в кодах справочника, то производится поиск переданного значения text в display name соответствующего справочника. Если переданное значение не найдено ни в code, ни в display name, то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке.
partTimeWork Тип дополнительного места работы Да Поле может содержать только соответствующие справочнику «Основная позиция или совместительство» значения code или text. Если передано значение code, то производится поиск значения в кодах соответствующего справочника. В случае, если переданное значение не найдено в кодах справочника, то производится поиск переданного значения text в display name соответствующего справочника. Если переданное значение не найдено ни в code, ни в display name, то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке.
startDate Дата приема на работу Да Формат даты должен соответствовать международному стандарту ISO 8601. Дата не должна быть раньше 01.01.1900.
endDate Дата увольнения Нет Формат даты должен соответствовать международному стандарту ISO 8601. Дата не должна быть раньше 01.01.1900 и не должна быть раньше даты, указанной в поле «Дата приема на работу». Если значение указано (не «null»), то данное место работы автоматически переносится в раздел «Предыдущие места работы».

Пример запроса JSON на актуализацию (обновление) сведений об основном месте работы медицинского работника

Полный запрос JSON:

[ { "identificationNumber": "9111111A111AA3", "positionType": "Управляющий", "positionRate": "3", "partTimeWork": "1", "positionGroup": "руководители", "organization": "21527f29-1c49-4810-83b3-25e9b9f78ff9", "positionCodeNCRB": "1120-002", "location": "307a0a67-31b3-4fe0-bdd7-c7cfd050ee9a", "startDate": "2010-01-01", "endDate": null, "reasonString": "примечание", "dutyCodes": [ "Руководство в соответствии с законодательством лечебно-диагностической деятельностью", "Принятие мер по обеспечению организации квалифицированными кадрами" ] } ]

Частичный запрос JSON:

[ { "identificationNumber": "1234567D222XX4", "positionType": "head", "positionRate": null, "partTimeWork": "1", "positionGroup": "heads-of-divisions", "organization": "90b02bf8-97c7-4e23-9e3e-5451303e2c27", "location": "f23eb98c-7a96-489a-8c3c-9704f7d7cc1a", "startDate": "2010-01-01T00:00:00", "endDate": null, "dutyCodes": null } ]

Пример запроса JSON на актуализацию (обновление) сведений об основном месте работы медицинского работника для карточки иностранного сотрудника без ВНЖ:

[ { "identificationNumber": "44456524", "foreignDocumentCountry": "RU", "positionType": "allergist-immunologist", "positionRate": "4", "partTimeWork": "1", "positionGroup": "doctors", "organization": "14736518-cc34-4e2e-8d60-204955589577", "location": "75d7dcc2-f5a8-43b0-8a8d-fb2b2f6918f9", "startDate": "2010-01-01", "positionCodeNCRB": "2423-002", "endDate": null, "reasonString": "примечание", "dutyCodes": [ "Руководство в соответствии с законодательством лечебно-диагностической деятельностью", "Принятие мер по обеспечению организации квалифицированными кадрами" ] } ]

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

{ "practitionerId": "92c13e26-da51-11ef-a70f-b9fe2d88d7e4" }

Пример ответа в случае неуспешного импорта (указан неверный тип основного места работы):

[ { "identificationNumber": "1234567D222XX4", "positionType": "head", "positionRate": "1", "partTimeWork": "internal", "positionGroup": "heads-of-divisions", "organization": "Учреждение здравоохранения \"3-я городская клиническая больница", "location": "СП №1. Каб. 1", "startDate": "2017-01-01T00:00:00", "endDate": null, "dutyCodes": [ "11", "13" ] } ]

Метод API для актуализации карточки медицинского работника в части сведений о дополнительных местах работы

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

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

Вызов метода осуществляется с помощью HTTP POST команды:

POST [PRACTITIONER_IMPORT_BASE]/AdditionalWorkDataImport

Аутентификация производится аналогично Правилам аутентификации для МИС.

Авторизация производится по следующему алгоритму:

Программные интерфейсы ЦИСЗ защищены сервером авторизации с использованием технологии OAuth 2.0. Доступ к защищенным ресурсам и функциям системы предоставляется только авторизованным пользователям. При каждом вызове метода актуализации (обновления) информации о месте работы (дополнительное место работы) клиентское приложение (кадровая система) должно передавать токен доступа организации в заголовке запроса.

Организация имеет право актуализировать (обновлять) сведения о местах работы исключительно в пределах своей структуры. Актуализация сведений осуществляется по следующему алгоритму:

  • если уникальный идентификатор (ID) организации, указанный в токене доступа, не совпадает с ID организации, переданном в запросе (JSON) на актуализацию сведений о дополнительном месте работы, то актуализация сведений не производится и метод возвращает HTTP-статус «403 Forbidden»;
  • если ID организации, указанный в токене доступа, совпадает с ID организации, переданном в запросе (JSON) на актуализацию сведений о дополнительном месте работы, то актуализация сведений производится и метод возвращает HTTP-статус «200 ОК»;
  • если в карточке медицинского работника информация о дополнительном месте работы отсутствует, то производится актуализация сведений, указанных в запросе (JSON), и метод возвращает HTTP-статус «200 ОК».

Формат данных

Импорт данных осуществляется в формате JSON.

Обработка записей:

  • Метод поддерживает импорт сведений как об одном сотруднике, так и о группе сотрудников.
  • При актуализации (обновлении) сведений существующих карточек сотрудников используется уникальный ID по следующему алгоритму:
    • если сотрудник с указанным в запросе ID уже существует в модуле «Регистр медицинских работников», то актуализация (обновление) сведений в карточке медицинского работника производится только в части данных (свойств), которые указаны в запросе (JSON);
    • если сотрудник с указанным в запросе ID уже существует в модуле «Регистр медицинских работников» и в запросе (JSON) указано значение «null», то в карточке сотрудника значение обновляется на «null». При этом, если свойство указано в запросе, то оно обновляется, а если свойство не указано, то значение этого свойства остается прежним;
    • если сотрудник с указанным в запросе (JSON) ID отсутствует в модуле «Регистр медицинских работников», то метод возвращает НТТР-статус «400 Bad Request» и отображается соответствующее сообщение об ошибке.
  • Метод поддерживает проверку количества основных мест работы:
    • если в карточке сотрудника уже указано основное место работы, то оно автоматически перемещается в раздел «Предыдущие места работы». При этом, если дата увольнения не была указана, то она автоматически устанавливается равной дате приема на новое место работы;
    • новое место работы автоматически устанавливается как основное место работы;
    • если в запросе (JSON) указана организация, находящаяся в разделе «Предыдущие места работы» (т.е. указана дата увольнения), то информация о данном месте работы не обновляется. Создается новое место работы с данными, которые были указаны в запросе;
    • актуализация (обновление) сведений существующих карточек сотрудников возможна только для карточек со статусом «Активный». Если статус карточки «Неактивный», то необходимо изменить статус карточки посредством соответствующего метода API.
  • Значения справочников могут передаваться в виде code или display name.
  • В качестве уникального ID для медицинских работников, являющихся иностранными гражданами без ВНЖ, используется комбинация полей «номер иностранного документа» и «код страны, выдавшей документ» для создания новой карточки в регистре медицинских работников и для актуализации (обновления) сведений существующих карточек сотрудников.
  • В качестве уникального ID для медицинских работников, являющихся гражданами РБ или имеющих ВНЖ, могут использоваться:
    • личный идентификационный номер – для создания новой карточки и для актуализации (обновления) сведений существующих карточек сотрудников;
    • ID practitioner - для актуализации (обновления) сведений существующих карточек сотрудников.

Статус импорта

При успешном импорте возвращается статус НТТР-«200 ОК».

Поддержка связанных данных

Метод поддерживает импорт связанных данных: полей «Должность» и «Должностная группа», «Место работы» и «Структурное подразделение ОЗ».

Валидация

Проверка валидности формата данных
Метод поддерживает проверку валидности формата данных перед импортом. Если формат данных не соответствует установленным требованиям, то:

  • импорт данных не производится;
  • метод возвращает НТТР-статус «400 Bad Request»;
  • отображается соответствующее сообщение об ошибке.

Сообщение об ошибке содержит:

  • уникальный ID (личный идентификационный номер или номер иностранного документа для сотрудников без ВНЖ);
  • наименование поля с ошибкой;
  • описание ошибки.

Проверка валидности заполнения обязательных полей
Метод поддерживает проверку валидности заполнения обязательных полей перед импортом. Если значения обязательных полей не соответствуют установленным требованиям, то:

  • импорт данных не производится;
  • метод возвращает НТТР-статус «400 Bad Request»;
  • отображается соответствующее сообщение об ошибке.

Сообщение об ошибке содержит:

  • уникальный ID (личный идентификационный номер или номер иностранного документа для сотрудников без ВНЖ);
  • наименование поля с ошибкой;
  • описание ошибки.

Проверка валидности значений передаваемых данных
Метод поддерживает проверку валидности значений передаваемых данных перед импортом. Проверка осуществляется путем валидации значений передаваемых данных со справочниками модуля подсистемы НСИ «Реестр справочников». Если значения передаваемых данных не соответствуют установленным требованиям, то:

  • импорт данных не производится;
  • метод возвращает НТТР-статус «400 Bad Request»;
  • отображается соответствующее сообщение об ошибке.

Сообщение об ошибке содержит:

  • уникальный ID (личный идентификационный номер или номер иностранного документа для сотрудников без ВНЖ);
  • наименование поля с ошибкой;
  • описание ошибки с указанием ссылки на необходимый справочник (ValueSet).

Входящие параметры метода:

Название Описание Обязательное поле Правила валидации
identificationNumber Личный (идентификационный) номер Да Поле может содержать идентификационный номер паспорта или иного документа, удостоверяющего личность (для иностранных граждан без ВНЖ - комбинации полей “номер иностранного документа” и “код страны, выдавшей документ”) или логический идентификатор медицинского работника (practitioner.id). Идентификационный номер должен содержать только буквы латинского алфавита верхнего регистра и цифры. Максимально допустимая длина – 15 символов. В случае, если переданное значение “идентификационный номер” не найдено в модуле подсистемы НСИ «Регистр медицинских работников», то производится поиск переданного значения practitioner.id. Если переданное значение не найдено ни одним способом, то метод возвращает статус НТТР-«400 Bad Request» и соответствующее сообщение об ошибке. При этом, если передан идентификационный номер паспорта или иного документа, удостоверяющего личность, то возможно как создание, так и актуализация карточек медицинского работника. Если передан practitioner.id, то возможна только актуализация карточек медицинского работника.
foreignDocumentCountry Страна, выдавшая документ Да, если сотрудник является иностранным гражданином без ВНЖ Поле может содержать только соответствующие справочнику «Коды гражданства» значения code или text. Если передано значение code, то производится поиск значения в кодах соответствующего справочника. В случае, если переданное значение не найдено в кодах справочника, то производится поиск переданного значения text в display name соответствующего справочника. Если переданное значение не найдено ни в code, ни в display name, то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке.
positionGroup Должностная группа Да Поле может содержать только соответствующие справочнику «Должностные группы и должности медицинских работников» значения code или text. Если передано значение code, то производится поиск значения в кодах соответствующего справочника. В случае, если переданное значение не найдено в кодах справочника, то производится поиск переданного значения text в display name соответствующего справочника. Если переданное значение не найдено ни в code, ни в display name, то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке.
positionType Должность, на которую принят на работу Да Поддерживается импорт связанных данных полей «Должность» и «Должностная группа». Поле может содержать только соответствующие справочнику «Должностные группы и должности медицинских работников» значения code или text. Если передано значение code, то производится поиск значения в кодах соответствующего справочника. В случае, если переданное значение не найдено в кодах справочника, то производится поиск переданного значения text в display name соответствующего справочника. Если переданное значение не найдено ни в code, ни в display name, то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке.
positionCodeNCRB Код категории должности Да Поле может содержать только соответствующие справочнику «Коды категорий должностей ОКРБ 014-2017» значения code или text. Если передано значение code, то производится поиск значения в кодах соответствующего справочника. В случае, если переданное значение не найдено в кодах справочника, то производится поиск переданного значения text в display name соответствующего справочника. Если переданное значение не найдено ни в code, ни в display name, то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке.
organization Место работы Да Поле может содержать только уникальный идентификатор организации. К ним относятся: ОКПО и fhir id organization cisz. Если переданное значение не найдено в карточках организаций, находящихся в модуле подсистемы НСИ «Регистр медицинских организаций», то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке. Получить список организаций можно, используя методы API, указанные в Правилах работы с ресурсом Organization.
location Структурное подразделение ОЗ Да Поддерживается импорт связанных данных полей «Место работы» и «Структурное подразделение ОЗ». Поле может содержать только значения, соответствующее модулю подсистемы НСИ «Регистр медицинских организаций»: значение text или fhir id location cisz. В случае, если переданное значение fhir id location cisz не найдено в модуле подсистемы НСИ «Регистр медицинских организаций», то производится поиск переданного значения text. Если переданное значение не найдено ни одним способом, то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке.
dutyCodes Функциональные обязанности нет Поле может содержать только соответствующие справочнику «Функциональные обязанности» значения code или text. Если передано значение code, то производится поиск значения в кодах соответствующего справочника. В случае, если переданное значение не найдено в кодах справочника, то производится поиск переданного значения text в display name соответствующего справочника. Если переданное значение не найдено ни в code, ни в display name, то метод возвращает НТТР-статус «400 Bad Request» и соответствующеесообщение об ошибке. Допустима передача нескольких значений справочника.
positionRate Ставка Нет Поле может содержать только соответствующие справочнику «Перечень количества ставок» значения code или text. Если передано значение code, то производится поиск значения в кодах соответствующего справочника. В случае, если переданное значение не найдено в кодах справочника, то производится поиск переданного значения text в display name соответствующего справочника. Если переданное значение не найдено ни в code, ни в display name, то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке.
partTimeWork Тип дополнительного места работы Да Поле может содержать только соответствующие справочнику «Основная позиция или совместительство» значения code или text. Если передано значение code, то производится поиск значения в кодах соответствующего справочника. В случае, если переданное значение не найдено в кодах справочника, то производится поиск переданного значения text в display name соответствующего справочника. Если переданное значение не найдено ни в code, ни в display name, то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке.
startDate Дата приема на работу Да Формат даты должен соответствовать международному стандарту ISO 8601. Дата не должна быть раньше 01.01.1900.
endDate Дата увольнения Нет Формат даты должен соответствовать международному стандарту ISO 8601. Дата не должна быть раньше 01.01.1900 и не должна быть раньше даты, указанной в поле «Дата приема на работу». Если значение указано (не «null»), то данное место работы автоматически переносится в раздел «Предыдущие места работы».

Пример запроса JSON на актуализацию (обновление) сведений о дополнительном месте работы медицинского работника

Полный запрос JSON:

[ { "identificationNumber": "9111111A111AA3", "positionType": "Главный врач", "positionRate": "1", "partTimeWork": "external", "positionGroup": "руководители", "organization": "21527f29-1c49-4810-83b3-25e9b9f78ff9", "positionCodeNCRB": "1120-002", "location": "3ab13c0a-a36b-49f1-abab-8e6164694f25", "startDate": "2010-01-05", "endDate": null, "reasonString": "примечание", "dutyCodes": [ "Руководство в соответствии с законодательством лечебно-диагностической деятельностью", "Принятие мер по обеспечению организации квалифицированными кадрами" ] } ]

Пример запроса JSON на актуализацию (обновление) сведений о дополнительном месте работы медицинского работника, являющегося иностранным гражданином без ВНЖ

Полный запрос JSON:

[ { "identificationNumber": "44456524", "foreignDocumentCountry": "RU", "positionType": "deputy-chief-physician", "positionRate": "0,25", "partTimeWork": "external", "positionGroup": "chiefs", "organization": "14736518-cc34-4e2e-8d60-204955589577", "location": "75d7dcc2-f5a8-43b0-8a8d-fb2b2f6918f9", "startDate": "2015-01-05", "endDate": "2015-01-05", "positionCodeNCRB": "1120-023", "reasonString": "супер примечание", "dutyCodes": [ "Руководство в соответствии с законодательством лечебно-диагностической деятельностью", "Принятие мер по обеспечению организации квалифицированными кадрами" ] } ]

Полный запрос JSON для добавления нескольких дополнительных мест работы:

[ { "identificationNumber": "9111111A111AA3", "positionType": "Врач-кардиолог", "positionRate": "1", "partTimeWork": "external", "positionGroup": "врачи", "organization": "21527f29-1c49-4810-83b3-25e9b9f78ff9", "positionCodeNCRB": "1120-002", "location": "307a0a67-31b3-4fe0-bdd7-c7cfd050ee9a", "startDate": "2010-01-05", "endDate": null, "reasonString": "Принят по распределению", "dutyCodes": [ "3", "23" ] }, { "identificationNumber": "9111111A111AA3", "positionType": "Управляющий", "positionRate": "3", "partTimeWork": "internal", "positionGroup": "руководители", "organization": "21527f29-1c49-4810-83b3-25e9b9f78ff9", "positionCodeNCRB": "1120-023", "location": "307a0a67-31b3-4fe0-bdd7-c7cfd050ee9a", "startDate": "2012-01-01", "endDate": null, "dutyCodes": [ "Руководство в соответствии с законодательством лечебно-диагностической деятельностью", "Принятие мер по обеспечению организации квалифицированными кадрами" ] } ]

Частичный запрос JSON:

[ { "identificationNumber": "1234567D222XX4", "positionType": "head", "partTimeWork": "internal", "positionGroup": "heads-of-divisions", "organization": "90b02bf8-97c7-4e23-9e3e-5451303e2c27", "location": "f23eb98c-7a96-489a-8c3c-9704f7d7cc1a", "startDate": "2010-01-01T00:00:00" } ]

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

{ "affectedPractitioners": "92c13e26-da51-11ef-a70f-b9fe2d88d7e4" }

Пример ответа в случае успешного импорта для карточки иностранного сотрудника без ВНЖ:

{ "affectedPractitioners": [ "2214d5f0-fcf5-11f0-b44c-17749ffc8ddb" ]}

Пример ответа в случае неуспешного импорта (указан неверный тип основного места работы):

[ { "identificationNumber": "1234567D222XX4", "positionType": "head", "positionRate": "1", "partTimeWork": "internal", "positionGroup": "heads-of-divisions", "organization": "Учреждение здравоохранения \"3-я городская клиническая больница", "location": "СП №1. Каб. 1", "startDate": "2017-01-01T00:00:00", "endDate": null, "dutyCodes": [ "11", "13" ] } ]

Пример ответа в случае неуспешного импорта (указан неверный тип места работы):

[ { "identificationNumber": "1234567D222XX4", "positionType": "Врач-кардиолог", "positionRate": "1", "partTimeWork": "1", "positionGroup": "врачи", "organization": "Учреждение здровоохранение \"МИНСКИЙ ОБЛАСТНОЙ ПРОТИВОТУБЕРКУЛЕЗНЫЙ ДИСПАНСЕР\"", "location": "МО СП 2", "startDate": "2017-01-01T00:00:00", "endDate": null, "dutyCodes": [ "11", "21" ] } ]

Метод API для актуализации карточки медицинского работника в части сведений об основном образовании медицинского работника

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

Вызов метода осуществляется с помощью HTTP POST команды:

POST [PRACTITIONER_IMPORT_BASE]/EducationDataImport

Аутентификация производится аналогично Правилам аутентификации для МИС.

Авторизация производится по следующему алгоритму:

Программные интерфейсы ЦИСЗ защищены сервером авторизации с использованием технологии OAuth 2.0. Доступ к защищенным ресурсам и функциям системы предоставляется только авторизованным пользователям. При каждом вызове метода актуализации (обновления) сведений об образовании/интернатуре и др. клиентское приложение (кадровая система) должно передавать токен доступа организации в заголовке запроса. Актуализация (обновление) сведений об образовании/интернатуре и т.д. медицинского работника доступна только для организации, указанной в карточке медицинского работника в качестве основного или дополнительного места работы.

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

  • если уникальный идентификатор (ID) организации, указанный в токене доступа, не совпадает с ID организации, указанным в основном месте работы в карточке медицинского работника, то актуализация сведений об образовании/интернатуре и т.д. не производится и метод возвращает HTTP-статус «403 Forbidden». При этом, если в карточке медицинского работника информация об основном месте работы отсутствует (ID организации = «null»), то проверка осуществляется по ID организации, указанному в дополнительных местах работы по тем же правилам;
  • если в карточке медицинского работника информация об основном и дополнительных местах работы отсутствует , то производится актуализация сведений об образовании/интернатуре и т.д., и метод возвращает HTTP-статус «200 ОК»;
  • если ID организации, указанный в токене доступа, совпадает с ID организации, указанным в карточке медицинского работника в основном или дополнительном месте работы, то производится актуализация сведений и метод возвращает HTTP-статус «200 ОК».

Формат данных

Импорт данных осуществляется в формате JSON.

Обработка записей

  • Метод поддерживает импорт сведений как об одном сотруднике, так и о группе сотрудников.
  • При актуализации (обновлении) сведений существующих карточек сотрудников используется уникальный ID по следующему алгоритму:
    • если сотрудник с указанным в запросе ID уже существует в модуле «Регистр медицинских работников», то актуализация (обновление) сведений в карточке медицинского работника производится только в части данных (свойств), которые указаны в запросе (JSON);
    • если сотрудник с указанным в запросе ID уже существует в модуле «Регистр медицинских работников» и в запросе (JSON) указано значение «null», то в карточке сотрудника значение обновляется на «null». При этом, если свойство указано в запросе, то оно обновляется, а если свойство не указано, то значение этого свойства остается прежним;
    • актуализация (обновление) сведений существующих карточек сотрудников возможна только для карточек со статусом «Активный». Если статус карточки «Неактивный», то необходимо изменить статус карточки посредством соответствующего метода API;
    • если сотрудник с указанным в запросе (JSON) ID отсутствует в модуле «Регистр медицинских работников», то метод возвращает НТТР-статус «400 Bad Request» и отображается соответствующее сообщение об ошибке.
  • Значения справочников могут передаваться в виде code или display name.
  • Метод поддерживает проверку наличия записи об образовании по следующему алгоритму:
    • если запись об образовании с данными, указанными в поле «Номер диплома» отсутствует в карточке сотрудника, то автоматически создается новая запись об образовании;
    • если запись об образовании с данными, указанными в поле «Номер диплома», существует в карточке сотрудника, то актуализация (обновление) сведений об образовании производится только в части данных (свойств), которые указаны в запросе (JSON);
    • если запись об образовании с данными, указанными в поле «Номер диплома», существует в карточке сотрудника и в запросе (JSON) указано значение «null», то в карточке сотрудника значение обновляется на «null». При этом, если свойство указано в запросе, то оно обновляется, а если свойство не указано, то значение этого свойства остается прежним.
  • В качестве уникального ID для медицинских работников, являющихся иностранными гражданами без ВНЖ, используется комбинация полей «номер иностранного документа» и «код страны, выдавшей документ» для создания новой карточки в регистре медицинских работников и для актуализации (обновления) сведений существующих карточек сотрудников.
  • В качестве уникального ID для медицинских работников, являющихся гражданами РБ или имеющих ВНЖ, могут использоваться:
    • личный идентификационный номер – для создания новой карточки и для актуализации (обновления) сведений существующих карточек сотрудников;
    • ID practitioner - для актуализации (обновления) сведений существующих карточек сотрудников.

Статус импорта

При успешном импорте возвращается НТТР-статус «200 ОК».

Валидация

Проверка валидности формата данных
Метод поддерживает проверку валидности формата данных перед импортом. Если формат данных не соответствует установленным требованиям, то:

  • импорт данных не производится;
  • метод возвращает НТТР-статус «400 Bad Request»;
  • отображается соответствующее сообщение об ошибке.

Сообщение об ошибке содержит:

  • уникальный ID (личный идентификационный номер или номер иностранного документа для сотрудников без ВНЖ);
  • наименование поля с ошибкой;
  • описание ошибки.

Проверка валидности заполнения обязательных полей
Метод поддерживает проверку валидности заполнения обязательных полей перед импортом. Если значения обязательных полей не соответствуют установленным требованиям, то:

  • импорт данных не производится;
  • метод возвращает НТТР-статус «400 Bad Request»;
  • отображается соответствующее сообщение об ошибке.

Сообщение об ошибке содержит:

  • уникальный ID (личный идентификационный номер или номер иностранного документа для сотрудников без ВНЖ);
  • наименование поля с ошибкой;
  • описание ошибки.

Проверка валидности значений передаваемых данных
Метод поддерживает проверку валидности значений передаваемых данных перед импортом. Проверка осуществляется путем валидации значений передаваемых данных со справочниками модуля подсистемы НСИ «Реестр справочников». Если значения передаваемых данных не соответствуют установленным требованиям, то:

  • импорт данных не производится;
  • метод возвращает НТТР-статус «400 Bad Request»;
  • отображается соответствующее сообщение об ошибке.

Сообщение об ошибке содержит:

  • уникальный ID (личный идентификационный номер или номер иностранного документа для сотрудников без ВНЖ);
  • наименование поля с ошибкой;
  • описание ошибки с указанием ссылки на необходимый справочник (ValueSet).

Входящие параметры метода:

Название Описание Обязательное поле Правила валидации
identificationNumber Личный(идентификационный)номер Да Поле может содержать идентификационный номер паспорта или иного документа, удостоверяющего личность (для иностранных граждан без ВНЖ - комбинации полей “номер иностранного документа” и “код страны, выдавшей документ”) или логический идентификатор медицинского работника (practitioner.id). Идентификационный номер должен содержать только буквы латинского алфавита верхнего регистра и цифры. Максимально допустимая длина – 15 символов. В случае, если переданное значение “идентификационный номер” не найдено в модуле подсистемы НСИ «Регистр медицинских работников», то производится поиск переданного значения practitioner.id. Если переданное значение не найдено ни одним способом, то метод возвращает HТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке. При этом, если передан идентификационный номер паспорта или иного документа, удостоверяющего личность, то возможно как создание, так и актуализация карточек медицинского работника. Если передан practitioner.id, то возможна только актуализация карточек медицинского работника.
foreignDocumentCountry Страна, выдавшая документ Да, если сотрудник является иностранным гражданином без ВНЖ Поле может содержать только соответствующие справочнику «Коды гражданства» значения code или text. Если передано значение code, то производится поиск значения в кодах соответствующего справочника. В случае, если переданное значение не найдено в кодах справочника, то производится поиск переданного значения text в display name соответствующего справочника. Если переданное значение не найдено ни в code, ни в display name, то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке.
educationOrganization Наименование учебного заведения Да, если переданное в запросе значение поля «Иное учебное заведение» соответствует значению «false» Поле может содержать только уникальный идентификатор организации, у которой Министерство образования – вышестоящая организация. К ним относятся: УНП и fhir id organization cisz. Если переданное значение не найдено в карточках организаций, находящихся в модуле подсистемы НСИ «Регистр медицинских организаций», то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке. Получить список организаций можно, используя методы API, указанные в Правилах работы с ресурсом Organization.
otherEduInstitution Иное учебное заведение Да Поле должно содержать только значение типа Boolean (true/false).
otherEduInstitutionName Наименование иного учебного заведения Да, если переданное в запросе значение поля «Иное учебное заведение» соответствует значению «true» Поле может содержать буквы и цифры. Допустимо использование специальных символов. Максимально допустимая длина – 250 символов.
educationStage Тип образования Да Поле может содержать только соответствующие справочнику «Образование» значения code или text. Если передано значение code, то производится поиск значения в кодах соответствующего справочника. В случае, если переданное значение не найдено в кодах справочника, то производится поиск переданного значения text в display name соответствующего справочника. Если переданное значение не найдено ни в code, ни в display name, то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке.
educationSpecialization Специальность Нет Поле может содержать только соответствующие справочнику «Специальность по диплому» значения code или text. Если передано значение code, то производится поиск значения в кодах соответствующего справочника. В случае, если переданное значение не найдено в кодах справочника, то производится поиск переданного значения text в display name соответствующего справочника. Если переданное значение не найдено ни в code, ни в display name, то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке.
educationQualification Квалификация Нет Поле может содержать только соответствующие справочнику «Квалификация по диплому» значения code или text. Если передано значение code, то производится поиск значения в кодах соответствующего справочника. В случае, если переданное значение не найдено в кодах справочника, то производится поиск переданного значения text в display name соответствующего справочника. Если переданное значение не найдено ни в code, ни в display name, то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке.
startDate Дата поступления в учебное заведение Нет Формат даты должен соответствовать международному стандарту ISO 8601. Дата не должна быть раньше 01.01.1900.
endDate Дата окончания Нет Формат даты должен соответствовать международному стандарту ISO 8601. Дата не должна быть раньше 01.01.1900 и не должна быть раньше даты, указанной в поле «Дата поступления в учебное заведение».
degreeNumber Номер диплома Да Поле может содержать буквы и цифры. Допустимо использование специальных символов. Максимально допустимая длина – 20 символов.
educationDegreeIssued Дата выдачи диплома Нет Формат даты должен соответствовать международному стандарту ISO 8601. Дата не должна быть раньше 01.01.1900 и не должна быть раньше даты, указанной в поле «Дата поступления в учебное заведение».

Пример запроса JSON на актуализацию (обновление) сведений об основном образовании медицинского работника

Полный запрос JSON (указано ссылочное значение для поля «Наименование учебного заведения»):

[ { "identificationNumber": "7594167A951BH2", "degreeNumber": "1", "educationCountry": "BY", "foreignDocument": "null", "hasForeignDocument": "null", "educationOrganization": "21df3396-5ef7-473c-aeeb-93a77a1aaabf", "otherEduInstitution": "false", "otherEduInstitutionName": "null", "educationStage": "Высшее", "educationSpecialization": "dentistry", "educationQualification": "dentist", "startDate": "2025-05-02", "endDate": "2025-06-02", "degreeIssued": "2025-06-02" } ]

Полный запрос JSON (указано «Иное учебное заведение»):

[ { "identificationNumber": "7594167A951BH2", "degreeNumber": "1", "educationCountry": "BY", "foreignDocument": "null", "hasForeignDocument": "null", "educationOrganization": "null", "otherEduInstitution": "true", "otherEduInstitutionName": "BSU", "educationStage": "Высшее", "educationSpecialization": "dentistry", "educationQualification": "dentist", "startDate": "2025-05-02", "endDate": "2025-06-02", "degreeIssued": "2025-06-02" } ]

Полный запрос JSON для добавления нескольких образований:

[ { "identificationNumber": "7594167A951BH2", "degreeNumber": "1", "educationCountry": "BY", "foreignDocument": "null", "hasForeignDocument": "null", "educationOrganization": "21df3396-5ef7-473c-aeeb-93a77a1aaabf", "otherEduInstitution": "false", "otherEduInstitutionName": "null", "educationStage": "Высшее", "educationSpecialization": "dentistry", "educationQualification": "dentist", "startDate": "2025-05-02", "endDate": "2025-06-02", "degreeIssued": "2025-06-02" } ]
[ { "identificationNumber": "7594167A951BH2", "degreeNumber": "1", "educationCountry": "BY", "foreignDocument": "null", "hasForeignDocument": "null", "educationOrganization": "null", "otherEduInstitution": "true", "otherEduInstitutionName": "BSU", "educationStage": "Высшее", "educationSpecialization": "dentistry", "educationQualification": "dentist", "startDate": "2025-05-02", "endDate": "2025-06-02", "degreeIssued": "2025-06-02" } ]

Частичный запрос JSON:

[ { "identificationNumber": "1234567D222XV4", "degreeNumber": "12345678", "educationStage": "Без медицинского образования" } ]

Пример запроса JSON на актуализацию (обновление) сведений об основном образовании медицинского работника. Для карточки медицинского работника, являющегося иностранным гражданином без ВНЖ:

[{ "identificationNumber": "44456524", "foreignDocumentCountry": "RU", "degreeNumber": "1", "educationCountry": "RU", "foreignDocument": "Документ", "hasForeignDocument": true, "educationOrganization": null, "otherEduInstitution": true, "otherEduInstitutionName": "БГУ", "educationStage": "Высшее", "educationSpecialization": "dentistry", "educationQualification": "dentist", "startDate": "2025-05-02", "endDate": "2025-05-02", "degreeIssued": "2025-05-02" } ]

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

{ "affectedPractitioners": "c7d18bbe-e477-11ef-bc09-67d9f38c794a" }

Пример ответа в случае неуспешного импорта (ошибка валидации поля даты):

{ "errors": { "practitioner.1234567D222XV4": [ "Дата начала обучения должна быть раньше или равняться дате окончания обучения" ] } }

Пример ответа в случае неуспешного импорта (ошибка валидации поля даты). Для карточки медицинского работника, являющегося иностранным гражданином без ВНЖ:

{ "errors": { "educationDataImport": [ "endDate. Ошибка десериализации" ] } }

Пример ответа в случае неуспешного импорта (ошибка валидности значений передаваемых данных):

{ "errors": { "educations.12345678.EducationStage": [ "Значение должно соответствовать справочнику. «Образование» https://fhir.by/ValueSet/EducationStage.html" ] } }

Метод API для актуализации карточки медицинского работника в части сведений о прохождении интернатуры медицинским работником

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

Вызов метода осуществляется с помощью HTTP POST команды:

POST [PRACTITIONER_IMPORT_BASE]/InternshipDataImport

Аутентификация производится аналогично Правилам аутентификации для МИС.

Авторизация производится аналогично Правилам.

Формат данных

Импорт данных осуществляется в формате JSON.

Обработка записей

  • Метод поддерживает импорт сведений как об одном сотруднике, так и о группе сотрудников.
  • При актуализации (обновлении) сведений существующих карточек сотрудников используется уникальный ID по следующему алгоритму:
    • если сотрудник с указанным в запросе ID уже существует в модуле «Регистр медицинских работников», то актуализация (обновление) сведений в карточке медицинского работника производится только в части данных (свойств), которые указаны в запросе (JSON);
    • если сотрудник с указанным в запросе ID уже существует в модуле «Регистр медицинских работников» и в запросе (JSON) указано значение «null», то в карточке сотрудника значение обновляется на «null». При этом, если свойство указано в запросе, то оно обновляется, а если свойство не указано, то значение этого свойства остается прежним;
    • актуализация (обновление) сведений существующих карточек сотрудников возможна только для карточек со статусом «Активный». Если статус карточки «Неактивный», то необходимо изменить статус карточки посредством соответствующего метода API;
    • если сотрудник с указанным в запросе (JSON) ID отсутствует в модуле «Регистр медицинских работников», то метод возвращает НТТР-статус «400 Bad Request» и отображается соответствующее сообщение об ошибке.
  • Значения справочников могут передаваться в виде code или display name.
  • Метод поддерживает проверку наличия записи о прохождении интернатуры по следующему алгоритму:
    • если запись о прохождении интернатуры с данными, указанными в поле «Регистрационный номер сертификата» отсутствует в карточке сотрудника, то автоматически создается новая запись об образовании;
    • если запись о прохождении интернатуры с данными, указанными в поле «Регистрационный номер сертификата», существует в карточке сотрудника, то актуализация (обновление) сведений об образовании производится только в части данных ( свойств), которые указаны в запросе (JSON);
    • если запись о прохождении интернатуры с данными, указанными в поле «Регистрационный номер сертификата», существует в карточке сотрудника и в запросе (JSON) указано значение «null», то в карточке сотрудника значение обновляется на «null». При этом, если свойство указано в запросе, то оно обновляется, а если свойство не указано, то значение этого свойства остается прежним.
  • В качестве уникального ID для медицинских работников, являющихся иностранными гражданами без ВНЖ, используется комбинация полей «номер иностранного документа» и «код страны, выдавшей документ» для создания новой карточки в регистре медицинских работников и для актуализации (обновления) сведений существующих карточек сотрудников.
  • В качестве уникального ID для медицинских работников, являющихся гражданами РБ или имеющих ВНЖ, могут использоваться:
    • личный идентификационный номер – для создания новой карточки и для актуализации (обновления) сведений существующих карточек сотрудников;
    • ID practitioner - для актуализации (обновления) сведений существующих карточек сотрудников.

Статус импорта

При успешном импорте возвращается статус НТТР-«200 ОК».

Валидация

Проверка валидности формата данных: Метод поддерживает проверку валидности формата данных перед импортом. Если формат данных не соответствует установленным требованиям, то:

  • импорт данных не производится;
  • метод возвращает статус НТТР-«400 Bad Request»;
  • отображается соответствующее сообщение об ошибке.

Сообщение об ошибке содержит:

  • уникальный ID (личный идентификационный номер или номер иностранного документа для сотрудников без ВНЖ);
  • наименование поля с ошибкой;
  • описание ошибки.

Проверка валидности заполнения обязательных полей: Метод поддерживает проверку валидности заполнения обязательных полей перед импортом. Если значения обязательных полей не соответствуют установленным требованиям, то:

  • импорт данных не производится;
  • метод возвращает статус НТТР-«400 Bad Request»;
  • отображается соответствующее сообщение об ошибке.

Сообщение об ошибке содержит:

  • уникальный ID (личный идентификационный номер или номер иностранного документа для сотрудников без ВНЖ);
  • наименование поля с ошибкой;
  • описание ошибки.

Проверка валидности значений передаваемых данных:

Метод поддерживает проверку валидности значений передаваемых данных перед импортом. Проверка осуществляется путем валидации значений передаваемых данных со справочниками модуля подсистемы НСИ «Реестр справочников». Если значения передаваемых данных не соответствуют установленным требованиям, то:

  • импорт данных не производится;
  • метод возвращает статус НТТР-«400 Bad Request»;
  • отображается соответствующее сообщение об ошибке.

Сообщение об ошибке содержит:

  • уникальный ID (личный идентификационный номер или номер иностранного документа для сотрудников без ВНЖ);
  • наименование поля с ошибкой;
  • описание ошибки с указанием ссылки на необходимый справочник (ValueSet).

Входящие параметры метода:

Название Описание Обязательное поле Правила валидации
identificationNumber Личный(идентификационный)номер Да Поле может содержать идентификационный номер паспорта или иного документа, удостоверяющего личность (для иностранных граждан без ВНЖ - комбинации полей “номер иностранного документа” и “код страны, выдавшей документ”) или логический идентификатор медицинского работника (practitioner.id). Идентификационный номер должен содержать только буквы латинского алфавита верхнего регистра и цифры. Максимально допустимая длина – 15 символов. В случае, если переданное значение идентификационный номер не найдено в модуле подсистемы НСИ «Регистр медицинских работников», то производится поиск переданного значения practitioner.id. Если переданное значение не найдено ни одним способом, то метод возвращает статус НТТР-«400 Bad Request» и соответствующее сообщение об ошибке. При этом, если передан идентификационный номер паспорта или иного документа, удостоверяющего личность, то возможно как создание, так и актуализация карточек медицинского работника. Если передан practitioner.id, то возможна только актуализация карточек медицинского работника.
foreignDocumentCountry Страна, выдавшая документ Да, если сотрудник является иностранным гражданином без ВНЖ Поле может содержать только соответствующие справочнику «Коды гражданства» значения code или text. Если передано значение code, то производится поиск значения в кодах соответствующего справочника. В случае, если переданное значение не найдено в кодах справочника, то производится поиск переданного значения text в display name соответствующего справочника. Если переданное значение не найдено ни в code, ни в display name, то метод возвращает статус НТТР-«400 Bad Request» и соответствующее сообщение об ошибке.
internshipCertificateNumber Регистрационный номер сертификата Да Поле может содержать буквы и цифры. Допустимо использование специальных символов. Максимально допустимая длина – 10 символов.
startDate Дата начала Нет Формат даты должен соответствовать международному стандарту ISO 8601. Дата не должна быть раньше 01.01.1900.
endDate Дата окончания Нет Формат даты должен соответствовать международному стандарту ISO 8601. Дата не должна быть раньше 01.01.1900 не должна быть раньше даты, указанной в поле «Дата начала».
internshipPlace Место прохождения Нет Поле может содержать буквы и цифры. Допустимо использование специальных символов. Максимально допустимая длина – 150 символов.
internshipSpecialty Специальность Нет Поле может содержать только соответствующие справочнику «Специальности интернатуры, клинической ординатуры и переподготовки» значения code или text. Если передано значение code, то производится поиск значения в кодах соответствующего справочника. В случае, если переданное значение не найдено в кодах справочника, то производится поиск переданного значения text в display name соответствующего справочника. Если переданное значение не найдено ни в code, ни в display name, то метод возвращает статус НТТР-«400 Bad Request» и соответствующее сообщение об ошибке.
internshipQualification Квалификация Нет Поле может содержать только соответствующие справочнику «Квалификации интернатуры, клинической ординатуры и переподготовки» значения code или text. Если передано значение code, то производится поиск значения в кодах соответствующего справочника. В случае, если переданное значение не найдено в кодах справочника, то производится поиск переданного значения text в display name соответствующего справочника. Если переданное значение не найдено ни в code, ни в display name, то метод возвращает статус НТТР-«400 Bad Request» и соответствующее сообщение об ошибке.
internshipIssued Дата выдачи сертификата Да Формат даты должен соответствовать международному стандарту ISO 8601. Дата не должна быть раньше 01.01.1900.
internshipIssuedBy Кем выдан сертификат Да, если переданное в запросе значение поля «Иное учебное заведение» соответствует значению «false» Поле может содержать только уникальный идентификатор организации, у которой Министерство образования – вышестоящая организация. К ним относятся: УНП и fhir id organization cisz. Если переданное значение не найдено в карточках организаций, находящихся в модуле подсистемы НСИ «Регистр медицинских организаций», то метод возвращает статус НТТР-«400 Bad Request» и соответствующее сообщение об ошибке. Получить список организаций можно, используя методы API, указанные в Правилах работы с ресурсом Organization.
otherEduInstitution Иное учебное заведение Да Поле должно содержать только значение типа Boolean (true/false).
otherEduInstitutionName Наименование иного учебного заведения Да, если переданное в запросе значение поля «Иное учебное заведение» соответствует значению «true» Поле может содержать буквы и цифры. Допустимо использование специальных символов. Максимально допустимая длина – 250 символов.

Пример запроса JSON на актуализацию (обновление) сведений о прохождении интернатуры медицинским работником

Полный запрос JSON (указано ссылочное значение для поля «Кем выдан сертификат»):

[ { "identificationNumber": "7594167A951BH2", "internshipPlace": "Больница №1", "internshipSpecialty": "Аллергология и иммунология", "internshipQualification": "Врач-бактериолог", "internshipCertificateNumber": "123456789", "internshipIssued": "2016-01-01T00:00:00", "internshipIssuedBy": "21df3396-5ef7-473c-aeeb-93a77a1aaabf", "otherEduInstitution": "false", "otherEduInstitutionName": "null", "startDate": "2011-01-01T00:00:00", "endDate": "2015-01-01T00:00:00" } ]

Полный запрос JSON (указано «Иное учебное заведение»):

[ { "identificationNumber": "7594167A951BH2", "internshipPlace": "Больница №1", "internshipSpecialty": "Аллергология и иммунология", "internshipQualification": "Врач-бактериолог", "internshipCertificateNumber": "123456789", "internshipIssued": "2016-01-01T00:00:00", "internshipIssuedBy": "null", "otherEduInstitution": "true", "otherEduInstitutionName": "БГУ", "startDate": "2011-01-01T00:00:00", "endDate": "2015-01-01T00:00:00" } ]

Частичный запрос JSON:

[ { "identificationNumber": "1234567D222XV4", "internshipSpecialty": "endocrinology-adult-pediatric", "internshipQualification": "9-08-0911-06", "internshipCertificateNumber": "123456789", "internshipIssued": "2016-01-01T00:00:00", "startDate": "2011-01-01T00:00:00", "endDate": "2015-01-01T00:00:00" } ]

Пример запроса JSON на актуализацию (обновление) сведений о прохождении интернатуры медицинским работником. Для карточки медицинского работника, являющегося иностранным гражданином без ВНЖ

{ "identificationNumber": "44456524", "foreignDocumentCountry": "RU", "internshipPlace": "Больница №1", "internshipSpecialty": "Аллергология и иммунология", "internshipQualification": "Врач-бактериолог", "internshipCertificateNumber": "123456789", "internshipIssued": "2015-01-01T00:00:00", "internshipIssuedBy": "21df3396-5ef7-473c-aeeb-93a77a1aaabf", "otherEduInstitution": false, "otherEduInstitutionName": null, "startDate": "2015-01-01T00:00:00", "endDate": "2015-01-01T00:00:00" }

Для карточки медицинского работника, являющегося иностранным гражданином без ВНЖ.
Полный запрос JSON (указано «Иное учебное заведение»):

{ "identificationNumber": "44456524", "foreignDocumentCountry": "RU", "internshipPlace": "Больница №1", "internshipSpecialty": "Аллергология и иммунология", "internshipQualification": "Врач-бактериолог", "internshipCertificateNumber": "123456789", "internshipIssued": "2015-01-01T00:00:00", "internshipIssuedBy": null, "otherEduInstitution": true, "otherEduInstitutionName": "БГМУ", "startDate": "2015-01-01T00:00:00", "endDate": "2015-01-01T00:00:00" }

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

{ "affectedPractitioners": "c7d18bbe-e477-11ef-bc09-67d9f38c794a" }

Для карточки медицинского работника, являющегося иностранным гражданином без ВНЖ Пример ответа в случае успешного импорта:

{ "affectedPractitioners": "2214d5f0-fcf5-11f0-b44c-17749ffc8ddb" }

Пример ответа в случае неуспешного импорта (ошибка валидации поля «Дата»):

{ "errors": { "practitioner.1234567D222XV4": [ "Дата начала обучения должна быть раньше или равняться дате окончания обучения" ] } }

Пример ответа в случае неуспешного импорта (ошибка валидации значений передаваемых данных):

{ "errors": { "internship.123456789.InternshipQualification": [ "Значение должно соответствовать справочнику. «Квалификации интернатуры, клинической ординатуры и переподготовки» https://fhir.by/ValueSet/QualificationPostgraduate.html" ] } }

Метод API для актуализации карточки медицинского работника в части сведений о прохождении клинической ординатуры медицинским работником

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

Вызов метода осуществляется с помощью HTTP POST команды:

POST [PRACTITIONER_IMPORT_BASE]/ResidencyDataImport

Аутентификация производится аналогично Правилам аутентификации для МИС.

Авторизация производится аналогично Правилам.

Формат данных

Импорт данных осуществляется в формате JSON.

Обработка записей

  • Метод поддерживает импорт сведений как об одном сотруднике, так и о группе сотрудников.
  • При актуализации (обновлении) сведений существующих карточек сотрудников используется уникальный ID по следующему алгоритму:
    • если сотрудник с указанным в запросе ID уже существует в «Регистре медицинских работников», то актуализация (обновление) сведений в карточке медицинского работника производится только в части данных (свойств), которые указаны в запросе (JSON);
    • если сотрудник с указанным в запросе ID уже существует в «Регистре медицинских работников» и в запросе (JSON) указано значение «null», то в карточке сотрудника значение обновляется на «null». При этом, если свойство указано в запросе, то оно обновляется, а если свойство не указано, то значение этого свойства остается прежним;
    • актуализация (обновление) сведений существующих карточек сотрудников возможна только для карточек со статусом «Активный». Если статус карточки «Неактивный», то необходимо изменить статус карточки посредством соответствующего метода API;
    • если сотрудник с указанным в запросе (JSON) ID отсутствует в «Регистре медицинских работников», то метод возвращает статус НТТР-«400 Bad Request» и отображается соответствующее сообщение об ошибке.
  • Метод поддерживает проверку наличия записи о прохождении клинической ординатуры по следующему алгоритму:
    • если запись о прохождении клинической ординатуры с данными, указанными в поле «Регистрационный номер свидетельства» отсутствует в карточке сотрудника, то автоматически создается новая запись о клинической ординатуре;
    • если запись о прохождении клинической ординатуры с данными, указанными в поле «Регистрационный номер свидетельства», существует в карточке сотрудника, то актуализация (обновление) сведений о клинической ординатуре производится только в части данных (свойств), которые указаны в запросе (JSON);
    • если запись о прохождении клинической ординатуры с данными, указанными в поле «Регистрационный номер свидетельства», существует в карточке сотрудника и в запросе (JSON) указано значение «null», то в карточке сотрудника значение обновляется на «null». При этом, если свойство указано в запросе, то оно обновляется, а если свойство не указано, то значение этого свойства остается прежним.
  • Значения справочников могут передаваться в виде code или display name.
  • В качестве уникального ID для медицинских работников, являющихся иностранными гражданами без ВНЖ, используется комбинация полей «номер иностранного документа» и «код страны, выдавшей документ» для создания новой карточки в регистре медицинских работников и для актуализации (обновления) сведений существующих карточек сотрудников.
  • В качестве уникального ID для медицинских работников, являющихся гражданами РБ или имеющих ВНЖ, могут использоваться:
    • личный идентификационный номер – для создания новой карточки и для актуализации (обновления) сведений существующих карточек сотрудников;
    • ID practitioner - для актуализации (обновления) сведений существующих карточек сотрудников.

Статус импорта

При успешном импорте возвращается НТТР-статус «200 ОК».

Валидация

Проверка валидности формата данных
Метод поддерживает проверку валидности формата данных перед импортом. Если формат данных не соответствует установленным требованиям, то:

  • импорт данных не производится;
  • метод возвращает НТТР-статус «400 Bad Request»;
  • отображается соответствующее сообщение об ошибке.

Сообщение об ошибке содержит:

  • уникальный ID (личный идентификационный номер или номер иностранного документа для сотрудников без ВНЖ);
  • наименование поля с ошибкой;
  • описание ошибки.

Проверка валидности заполнения обязательных полей
Метод поддерживает проверку валидности заполнения обязательных полей перед импортом. Если значения обязательных полей не соответствуют установленным требованиям, то:

  • импорт данных не производится;
  • метод возвращает НТТР-статус «400 Bad Request»;
  • отображается соответствующее сообщение об ошибке.

Сообщение об ошибке содержит:

  • уникальный ID (личный идентификационный номер или номер иностранного документа для сотрудников без ВНЖ);
  • наименование поля с ошибкой;
  • описание ошибки.

Проверка валидности значений передаваемых данных
Метод поддерживает проверку валидности значений передаваемых данных перед импортом. Проверка осуществляется путем валидации значений передаваемых данных со справочниками модуля подсистемы НСИ «Реестр справочников». Если значения передаваемых данных не соответствуют установленным требованиям, то:

  • импорт данных не производится;
  • метод возвращает НТТР-статус «400 Bad Request»;
  • отображается соответствующее сообщение об ошибке.

Сообщение об ошибке содержит:

  • уникальный ID (личный идентификационный номер или номер иностранного документа для сотрудников без ВНЖ);
  • наименование поля с ошибкой;
  • описание ошибки с указанием ссылки на необходимый справочник (ValueSet).

Входящие параметры метода:

Название Описание Обязательное поле Правила валидации
identificationNumber Личный(идентификационный)номер Да Поле может содержать идентификационный номер паспорта или иного документа, удостоверяющего личность (для иностранных граждан без ВНЖ - комбинации полей “номер иностранного документа” и “код страны, выдавшей документ”) или логический идентификатор медицинского работника (practitioner.id). Идентификационный номер должен содержать только буквы латинского алфавита верхнего регистра и цифры. Максимально допустимая длина – 15 символов. В случае, если переданное значение “идентификационный номер” не найдено в модуле подсистемы НСИ «Регистр медицинских работников», то производится поиск переданного значения practitioner.id. Если переданное значение не найдено ни одним способом, то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке. При этом, если передан идентификационный номер паспорта или иного документа, удостоверяющего личность, то возможно как создание, так и актуализация карточек медицинского работника. Если передан practitioner.id, то возможна только актуализация карточек медицинского работника.
foreignDocumentCountry Страна, выдавшая документ Да, если сотрудник является иностранным гражданином без ВНЖ Поле может содержать только соответствующие справочнику «Коды гражданства» значения code или text. Если передано значение code, то производится поиск значения в кодах соответствующего справочника. В случае, если переданное значение не найдено в кодах справочника, то производится поиск переданного значения text в display name соответствующего справочника. Если переданное значение не найдено ни в code, ни в display name, то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке.
residencyCertificateNumber Регистрационный номер сертификата Да Поле может содержать буквы и цифры. Допустимо использование специальных символов. Максимально допустимая длина – 10 символов.
startDate Дата начала Нет Формат даты должен соответствовать международному стандарту ISO 8601. Дата не должна быть раньше 01.01.1900.
endDate Дата окончания Нет Формат даты должен соответствовать международному стандарту ISO 8601. Дата не должна быть раньше 01.01.1900 и не должна быть раньше даты, указанной в поле «Дата начала».
residencyPlace Место прохождения Нет Поле может содержать буквы и цифры. Допустимо использование специальных символов. Максимально допустимая длина – 150 символов.
residencySpecialty Специальность Нет Поле может содержать только соответствующие справочнику «Специальности интернатуры, клинической ординатуры и переподготовки» значения code или text. Если передано значение code, то производится поиск значения в кодах соответствующего справочника. В случае, если переданное значение не найдено в кодах справочника, то производится поиск переданного значения text в display name соответствующего справочника. Если переданное значение не найдено ни в code, ни в display name, то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке.
residencyQualification Квалификация Нет Поле может содержать только соответствующие справочнику «Квалификации интернатуры, клинической ординатуры и переподготовки» значения code или text. Если передано значение code, то производится поиск значения в кодах соответствующего справочника. В случае, если переданное значение не найдено в кодах справочника, то производится поиск переданного значения text в display name соответствующего справочника. Если переданное значение не найдено ни в code, ни в display name, то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке.
residencyIssued Дата выдачи свидетельства Да Формат даты должен соответствовать международному стандарту ISO 8601. Дата не должна быть раньше 01.01.1900.
residencyIssuedBy Кем выдано свидетельство Да, если переданное в запросе значение поля «Иное учебное заведение» соответствует значению «false» Поле может содержать только уникальный идентификатор организации, у которой Министерство образования – вышестоящая организация. К ним относятся: УНП и fhir id organization cisz. Если переданное значение не найдено в карточках организаций, находящихся в модуле подсистемы НСИ «Регистр медицинских организаций», то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке. Получить список организаций можно, используя методы API, указанные в Правилах работы с ресурсом Organization.
otherEduInstitution Иное учебное заведение Да Поле должно содержать только значение типа Boolean (true/false).
otherEduInstitutionName Наименование иного учебного заведения Да, если переданное в запросе значение поля «Иное учебное заведение» соответствует значению «true» Поле может содержать буквы и цифры. Допустимо использование специальных символов. Максимально допустимая длина – 250 символов.

Пример запроса JSON на актуализацию (обновление) сведений о прохождении клинической ординатуры медицинским работником

Полный запрос JSON (указано ссылочное значение для поля «Наименование учебного заведения»):

[ { "identificationNumber": "7594167A951BH2", "residencyPlace": "Больница №37", "residencySpecialty": "Аллергология и иммунология", "residencyQualification": "Врач-бактериолог", "residencyCertificateNumber": "1234567890", "residencyIssued": "2015-01-01", "residencyIssuedBy": "21df3396-5ef7-473c-aeeb-93a77a1aaabf", "otherEduInstitution": "false", "otherEduInstitutionName": "null", "startDate": "2010-01-01", "endDate": "2015-01-01" } ]

Полный запрос JSON (указано «Иное учебное заведение»):

[ { "identificationNumber": "7594167A951BH2", "residencyPlace": "Больница №37", "residencySpecialty": "Аллергология и иммунология", "residencyQualification": "Врач-бактериолог", "residencyCertificateNumber": "1234567890", "residencyIssued": "2015-01-01", "residencyIssuedBy": "null", "otherEduInstitution": "true", "otherEduInstitutionName": "БГУ", "startDate": "2010-01-01", "endDate": "2015-01-01" } ]

Частичный запрос JSON:

[ { "identificationNumber": "1234567D222XV4", "residencyPlace": "Больница №1", "residencyCertificateNumber": "1234567890", "residencyIssuedBy": "Учреждение образования \"Оршанский государственный медицинский колледж\"" } ]

Пример запроса JSON на актуализацию (обновление) сведений о прохождении клинической ординатуры медицинским работником. Для карточки медицинского работника, являющегося иностранным гражданином без ВНЖ:

{ "identificationNumber": "44456524", "foreignDocumentCountry": "RU", "residencyPlace": "Больница №37", "residencySpecialty": "Аллергология и иммунология", "residencyQualification": "Врач-бактериолог", "residencyCertificateNumber": "1234567890", "residencyIssued": "2010-01-01", "residencyIssuedBy": "21df3396-5ef7-473c-aeeb-93a77a1aaabf", "otherEduInstitution": false, "otherEduInstitutionName": null, "startDate": "2010-01-01", "endDate": "2010-01-01" }

Для карточки медицинского работника, являющегося иностранным гражданином без ВНЖ
Полный запрос (указано «Иное учебное заведение»):

{ "identificationNumber": "44456524", "foreignDocumentCountry": "RU", "residencyPlace": "Больница №37", "residencySpecialty": "Аллергология и иммунология", "residencyQualification": "Врач-бактериолог", "residencyCertificateNumber": "1234567890", "residencyIssued": "2010-01-01", "residencyIssuedBy": null, "otherEduInstitution": true, "otherEduInstitutionName": "БГМУ", "startDate": "2010-01-01", "endDate": "2010-01-01" }

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

{ "affectedPractitioners": "c7d18bbe-e477-11ef-bc09-67d9f38c794a" }

Пример ответа в случае неуспешного импорта (превышено количество допустимых символов):

{ "errors": { "residency.1234567890111.ResidencyCertificateNumber": [ "Длинна не должна превышать 10 символов." ] } }

Пример ответа в случае неуспешного импорта (ошибка валидации поля «Дата получения сертификата»):

{ "errors": { "residency.1234567D222XV4": [ "Дата получения сертификата должна быть позже даты начала и окончания обучения" ] } }

Метод API для актуализации карточки медицинского работника в части сведений о квалификационной категории медицинского работника

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

Вызов метода осуществляется с помощью HTTP POST команды:

POST [PRACTITIONER_IMPORT_BASE]/QualificationCategoryDataImport

Аутентификация производится аналогично Правилам аутентификации для МИС.

Авторизация производится аналогично Правилам.

Формат данных

Импорт данных осуществляется в формате JSON.

Обработка записей

  • Метод поддерживает импорт сведений как об одном сотруднике, так и о группе сотрудников.
  • При актуализации (обновлении) сведений существующих карточек сотрудников используется уникальный ID по следующему алгоритму:
    • если сотрудник с указанным в запросе ID уже существует в модуле «Регистр медицинских работников», то актуализация (обновление) сведений в карточке медицинского работника производится только в части данных (свойств), которые указаны в запросе (JSON);
    • если сотрудник с указанным в запросе ID уже существует в модуле «Регистр медицинских работников» и в запросе (JSON) указано значение «null», то в карточке сотрудника значение обновляется на «null». При этом, если свойство указано в запросе, то оно обновляется, а если свойство не указано, то значение этого свойства остается прежним;
    • актуализация (обновление) сведений существующих карточек сотрудников возможна только для карточек со статусом «Активный». Если статус карточки «Неактивный», то необходимо изменить статус карточки посредством соответствующего метода API;
    • если сотрудник с указанным в запросе (JSON) ID отсутствует в модуле «Регистр медицинских работников», то метод возвращает НТТР-статус «400 Bad Request» и отображается соответствующее сообщение об ошибке.
  • Метод поддерживает проверку наличия записи о квалификационной категории по следующему алгоритму:
    • если запись о квалификационной категории с датой, указанной в поле «Дата присвоения» отсутствует в карточке сотрудника, то автоматически создается новая запись о квалификационной категории;
    • если запись о квалификационной категории с датой, указанной в поле «Дата присвоения», существует в карточке сотрудника, то актуализация (обновление) сведений о квалификационной категории производится только в части данных (свойств), которые указаны в запросе (JSON);
    • если запись о квалификационной категории с датой, указанной в поле «Дата присвоения», существует в карточке сотрудника и в запросе (JSON) указано значение «null», то в карточке сотрудника значение обновляется на «null». При этом, если свойство указано в запросе, то оно обновляется, а если свойство не указано, то значение этого свойства остается прежним.
  • Значения справочников могут передаваться в виде code или display name.
  • В качестве уникального ID для медицинских работников, являющихся иностранными гражданами без ВНЖ, используется комбинация полей «номер иностранного документа» и «код страны, выдавшей документ» для создания новой карточки в регистре медицинских работников и для актуализации (обновления) сведений существующих карточек сотрудников.
  • В качестве уникального ID для медицинских работников, являющихся гражданами РБ или имеющих ВНЖ, могут использоваться:
    • личный идентификационный номер – для создания новой карточки и для актуализации (обновления) сведений существующих карточек сотрудников;
    • ID practitioner - для актуализации (обновления) сведений существующих карточек сотрудников.

Статус импорта

При успешном импорте возвращается НТТР-статус «200 ОК».

Валидация

Проверка валидности формата данных
Метод поддерживает проверку валидности формата данных перед импортом. Если формат данных не соответствует установленным требованиям, то:

  • импорт данных не производится;
  • метод возвращает НТТР-статус «400 Bad Request»;
  • отображается соответствующее сообщение об ошибке.

Сообщение об ошибке содержит:

  • уникальный ID (личный идентификационный номер или номер иностранного документа для сотрудников без ВНЖ);
  • наименование поля с ошибкой;
  • описание ошибки.

Проверка валидности заполнения обязательных полей
Метод поддерживает проверку валидности заполнения обязательных полей перед импортом. Если значения обязательных полей не соответствуют установленным требованиям, то:

  • импорт данных не производится;
  • метод возвращает НТТР-статус «400 Bad Request»;
  • отображается соответствующее сообщение об ошибке.

Сообщение об ошибке содержит:

  • уникальный ID (личный идентификационный номер или номер иностранного документа для сотрудников без ВНЖ);
  • наименование поля с ошибкой;
  • описание ошибки.

Проверка валидности значений передаваемых данных
Метод поддерживает проверку валидности значений передаваемых данных перед импортом. Проверка осуществляется путем валидации значений передаваемых данных со справочниками модуля подсистемы НСИ «Реестр справочников». Если значения передаваемых данных не соответствуют установленным требованиям, то:

  • импорт данных не производится;
  • метод возвращает НТТР-статус «400 Bad Request»;
  • отображается соответствующее сообщение об ошибке.

Сообщение об ошибке содержит:

  • уникальный ID (личный идентификационный номер или номер иностранного документа для сотрудников без ВНЖ);
  • наименование поля с ошибкой;
  • описание ошибки с указанием ссылки на необходимый справочник (ValueSet).

Входящие параметры метода:

Название Описание Обязательное поле Правила валидации
identificationNumber Личный(идентификационный)номер Да Поле может содержать идентификационный номер паспорта или иного документа, удостоверяющего личность (для иностранных граждан без ВНЖ - комбинации полей “номер иностранного документа” и “код страны, выдавшей документ”) или логический идентификатор медицинского работника (practitioner.id). Идентификационный номер должен содержать только буквы латинского алфавита верхнего регистра и цифры. Максимально допустимая длина – 15 символов. В случае, если переданное значение “идентификационный номер” не найдено в модуле подсистемы НСИ «Регистр медицинских работников», то производится поиск переданного значения practitioner.id. Если переданное значение не найдено ни одним способом, то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке. При этом, если передан идентификационный номер паспорта или иного документа, удостоверяющего личность, то возможно как создание, так и актуализация карточек медицинского работника. Если передан practitioner.id, то возможна только актуализация карточек медицинского работника.
foreignDocumentCountry Страна, выдавшая документ Да, если сотрудник является иностранным гражданином без ВНЖ Поле может содержать только соответствующие справочнику «Коды гражданства» значения code или text. Если передано значение code, то производится поиск значения в кодах соответствующего справочника. В случае, если переданное значение не найдено в кодах справочника, то производится поиск переданного значения text в display name соответствующего справочника. Если переданное значение не найдено ни в code, ни в display name, то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке.
qualificationCategoryIssued Дата присвоения Да Формат даты должен соответствовать международному стандарту ISO 8601. Дата не должна быть раньше 01.01.1900.
qualificationCategoryReason Основание Нет Поле может содержать буквы и цифры. Допустимо использование специальных символов. Максимально допустимая длина – 100 символов.
qualificationCategoryType Квалификация Нет Поле может содержать только соответствующие справочнику «Квалификации интернатуры, клинической ординатуры и переподготовки» значения code или text. Если передано значение code, то производится поиск значения в кодах соответствующего справочника. В случае, если переданное значение не найдено в кодах справочника, то производится поиск переданного значения text в display name соответствующего справочника. Если переданное значение не найдено ни в code, ни в display name, то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке.
qualificationCategoryGrade Присвоена категория Нет Поле может содержать только соответствующие справочнику «Квалификационные категории» значения code или text. Если передано значение code, то производится поиск значения в кодах соответствующего справочника. В случае, если переданное значение не найдено в кодах справочника, то производится поиск переданного значения text в display name соответствующего справочника. Если переданное значение не найдено ни в code, ни в display name, то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке.

Пример запроса JSON на актуализацию (обновление) сведений о квалификационной категории медицинского работника

Полный запрос JSON:

[ { "identificationNumber": "1234567D222XV4", "qualificationCategoryReason": "Основание", "qualificationCategoryType": "Врач-бактериолог", "qualificationCategoryGrade": "Первая категория", "qualificationCategoryIssued": "2015-01-01T00:00:00" } ]

Частичный запрос JSON:

[ { "identificationNumber": "1234567D222XV4", "qualificationCategoryReason": "Основание", "qualificationCategoryType": null, "qualificationCategoryGrade": null, "qualificationCategoryIssued": "2012-01-01T00:00:00" } ]

Пример запроса JSON на актуализацию (обновление) сведений о квалификационной категории медицинского работника. Для карточки медицинского работника, являющегося иностранным гражданином без ВНЖ:

[ {"identificationNumber": "44456524", "foreignDocumentCountry": "RU", "qualificationCategoryReason": "Основание", "qualificationCategoryType": "Врач-бактериолог", "qualificationCategoryGrade": "Первая категория", "qualificationCategoryIssued": "2025-01-01" }]

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

{ "affectedPractitioners": "c7d18bbe-e477-11ef-bc09-67d9f38c794a" }

Пример ответа в случае неуспешного импорта (ошибки валидации полей):

{ "errors": { "practitioner.1234567D222XV24.IdentificationNumber": [ "Идентификационный номер должен соответствовать шаблону 1111111A111AA1" ], "qualificationCategory.1234567D222XV24.QualificationCategoryType": [ "Значение должно соответствовать справочнику. «Квалификации интернатуры, клинической ординатуры и переподготовки» https://fhir.by/ValueSet/QualificationPostgraduate.html" ], "qualificationCategory.1234567D222XV24.QualificationCategoryGrade": [ "Значение должно соответствовать справочнику. «Квалификационные категории» https://fhir.by/ValueSet/QualificationCategoryGrade.html" ], "qualificationCategory.1234567D222XV24.QualificationCategoryIssued": [ "Введённая дата должна быть больше 01.01.1900 и не должна превышать текущую дату" ], "qualificationCategory.1234567D222XV24.QualificationCategoryReason": [ "Длинна не должна превышать 100 символов." ] } }

Метод API для актуализации карточки медицинского работника в части сведений о дополнительном образовании медицинского работника

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

Вызов метода осуществляется с помощью HTTP POST команды:

POST [PRACTITIONER_IMPORT_BASE]/TrainingDataImport

Аутентификация производится аналогично Правилам аутентификации для МИС.

Авторизация производится аналогично Правилам.

Формат данных

Импорт данных осуществляется в формате JSON.

Обработка записей

  • Метод поддерживает импорт сведений как об одном сотруднике, так и о группе сотрудников.
  • При актуализации (обновлении) сведений существующих карточек сотрудников используется уникальный ID по следующему алгоритму:
    • если сотрудник с указанным в запросе ID уже существует в модуле «Регистр медицинских работников», то актуализация (обновление) сведений в карточке медицинского работника производится только в части данных (свойств), которые указаны в запросе (JSON);
    • если сотрудник с указанным в запросе ID уже существует в модуле «Регистр медицинских работников» и в запросе (JSON) указано значение «null», то в карточке сотрудника значение обновляется на «null». При этом, если свойство указано в запросе, то оно обновляется, а если свойство не указано, то значение этого свойства остается прежним;
    • актуализация (обновление) сведений существующих карточек сотрудников возможна только для карточек со статусом «Активный». Если статус карточки «Неактивный», то необходимо изменить статус карточки посредством соответствующего метода API;
    • если сотрудник с указанным в запросе (JSON) ID отсутствует в модуле «Регистр медицинских работников», то метод возвращает НТТР-статус «400 Bad Request» и отображается соответствующее сообщение об ошибке.
  • Метод поддерживает проверку наличия записи о прохождении курсов по следующему алгоритму:
    • если запись о прохождении курсов с данными, указанными в поле «Номер свидетельства» отсутствует в карточке сотрудника, то автоматически создается новая запись о прохождении курсов;
    • если запись о прохождении курсов с данными, указанными в поле «Номер свидетельства», существует в карточке сотрудника, то актуализация (обновление) сведений о курсах производится только в части данных (свойств), которые указаны в запросе (JSON);
    • если запись о прохождении курсов с данными, указанными в поле «Номер свидетельства», существует в карточке сотрудника и в запросе (JSON) указано значение «null», то в карточке сотрудника значение обновляется на «null». При этом, если свойство указано в запросе, то оно обновляется, а если свойство не указано, то значение этого свойства остается прежним.
  • Значения справочников могут передаваться в виде code или display name.
  • В качестве уникального ID для медицинских работников, являющихся иностранными гражданами без ВНЖ, используется комбинация полей «номер иностранного документа» и «код страны, выдавшей документ» для создания новой карточки в регистре медицинских работников и для актуализации (обновления) сведений существующих карточек сотрудников.
  • В качестве уникального ID для медицинских работников, являющихся гражданами РБ или имеющих ВНЖ, могут использоваться:
    • личный идентификационный номер – для создания новой карточки и для актуализации (обновления) сведений существующих карточек сотрудников;
    • ID practitioner - для актуализации (обновления) сведений существующих карточек сотрудников.

Статус импорта

При успешном импорте возвращается НТТР-статус «200 ОК».

Валидация

Проверка валидности формата данных
Метод поддерживает проверку валидности формата данных перед импортом. Если формат данных не соответствует установленным требованиям, то:

  • импорт данных не производится;
  • метод возвращает НТТР-статус «400 Bad Request»;
  • отображается соответствующее сообщение об ошибке.

Сообщение об ошибке содержит:

  • уникальный ID (личный идентификационный номер или номер иностранного документа для сотрудников без ВНЖ);
  • наименование поля с ошибкой;
  • описание ошибки.

Проверка валидности заполнения обязательных полей
Метод поддерживает проверку валидности заполнения обязательных полей перед импортом. Если значения обязательных полей не соответствуют установленным требованиям, то:

  • импорт данных не производится;
  • метод возвращает НТТР-статус «400 Bad Request»;
  • отображается соответствующее сообщение об ошибке.

Сообщение об ошибке содержит:

  • уникальный ID (личный идентификационный номер или номер иностранного документа для сотрудников без ВНЖ);
  • наименование поля с ошибкой;
  • описание ошибки.

Проверка валидности значений передаваемых данных
Метод поддерживает проверку валидности значений передаваемых данных перед импортом. Проверка осуществляется путем валидации значений передаваемых данных со справочниками модуля подсистемы НСИ «Реестр справочников». Если значения передаваемых данных не соответствуют установленным требованиям, то:

  • импорт данных не производится;
  • метод возвращает НТТР-статус «400 Bad Request»;
  • отображается соответствующее сообщение об ошибке.

Сообщение об ошибке содержит:

  • уникальный ID (личный идентификационный номер или номер иностранного документа для сотрудников без ВНЖ);
  • наименование поля с ошибкой;
  • описание ошибки с указанием ссылки на необходимый справочник (ValueSet).

Входящие параметры метода:

Название Описание Обязательное поле Правила валидации
identificationNumber Личный(идентификационный)номер Да Поле может содержать идентификационный номер паспорта или иного документа, удостоверяющего личность (для иностранных граждан без ВНЖ - комбинации полей “номер иностранного документа” и “код страны, выдавшей документ”) или логический идентификатор медицинского работника (practitioner.id). Идентификационный номер должен содержать только буквы латинского алфавита верхнего регистра и цифры. Максимально допустимая длина – 15 символов. В случае, если переданное значение “идентификационный номер” не найдено в модуле подсистемы НСИ «Регистр медицинских работников», то производится поиск переданного значения practitioner.id. Если переданное значение не найдено ни одним способом, то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке. При этом, если передан идентификационный номер паспорта или иного документа, удостоверяющего личность, то возможно как создание, так и актуализация карточек медицинского работника. Если передан practitioner.id, то возможна только актуализация карточек медицинского работника.
foreignDocumentCountry Страна, выдавшая документ Да, если сотрудник является иностранным гражданином без ВНЖ Поле может содержать только соответствующие справочнику «Коды гражданства» значения code или text. Если передано значение code, то производится поиск значения в кодах соответствующего справочника. В случае, если переданное значение не найдено в кодах справочника, то производится поиск переданного значения text в display name соответствующего справочника. Если переданное значение не найдено ни в code, ни в display name, то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке.
trainingCertificateNumber Номер документа Да Поле может содержать буквы и цифры. Допустимо использование специальных символов. Максимально допустимая длина – 10 символов.
trainingType Тип обучения Нет Поле может содержать только соответствующие справочнику «Тип дополнительного обучения» значения code или text. Если передано значение code, то производится поиск значения в кодах соответствующего справочника. В случае, если переданное значение не найдено в кодах справочника, то производится поиск переданного значения text в display name соответствующего справочника. Если переданное значение не найдено ни в code, ни в display name, то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке.
trainingTheme Тематика Нет Поле может содержать буквы и цифры. Допустимо использование специальных символов. Максимально допустимая длина – 150 символов.
trainingDuration Продолжительность курсов в часах Нет Поле должно содержать только цифры.Максимально допустимая длина - 10 символов.
startDate Дата начала курсов Нет Формат даты должен соответствовать международному стандарту ISO 8601. Дата не должна быть раньше 01.01.1900.
endDate Дата окончания курсов Нет Формат даты должен соответствовать международному стандарту ISO 8601. Дата не должна быть раньше 01.01.1900 и не должна быть раньше даты, указанной в поле «Дата начала курсов».
trainingBudgetFunds Основа обучения Нет Поле может содержать только соответствующие справочнику «Формы обучения» значения code или text. Если передано значение code, то производится поиск значения в кодах соответствующего справочника. В случае, если переданное значение не найдено в кодах справочника, то производится поиск переданного значения text в display name соответствующего справочника. Если переданное значение не найдено ни в code, ни в display name, то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке.
trainingOrganization Название организации, на базе которой проводилось обучение Нет Поле может содержать буквы и цифры. Допустимо использование специальных символов. Максимально допустимая длина – 150 символов.
trainingPlace Место (страна, город) Нет Поле может содержать буквы и цифры. Допустимо использование специальных символов. Максимально допустимая длина – 100 символов.
trainingIssued Дата выдачи документа Нет Формат даты должен соответствовать международному стандарту ISO 8601. Дата не должна быть раньше 01.01.1900.

Пример запроса JSON на актуализацию (обновление) сведений о прохождении дополнительного образования медицинским работником

Полный запрос JSON:

[ { "identificationNumber": "1234567D222XV4", "trainingCertificateNumber": "1234567890", "trainingType": "конференция", "trainingPlace": "Минск", "trainingOrganization": "Организация обучения", "trainingTheme": "Невралгия", "trainingDuration": "150", "trainingIssued": "2016-01-01T00:00:00", "trainingBudgetFunds": "Бюджетная основа", "startDate": "2010-01-01T00:00:00", "endDate": "2015-01-01T00:00:00" } ]

Частичный запрос JSON:

[ { "identificationNumber": "1234567D222XV4", "trainingCertificateNumber": "1234567890", "trainingType": "конференция", "trainingPlace": "Минск", "trainingOrganization": "Организация обучения" } ]

Пример запроса JSON на актуализацию (обновление) сведений о прохождении дополнительного образования медицинским работником. Для карточки медицинского работника, являющегося иностранным гражданином без ВНЖ

Полный запрос JSON:

[ {"identificationNumber": "44456524", "foreignDocumentCountry": "RU", "trainingCertificateNumber": "6565", "trainingType": "конференция", "trainingPlace": "Минск", "trainingOrganization": "Организация обучения", "trainingTheme": "УЗИ", "trainingDuration": "16", "trainingIssued": "2025-01-01", "trainingBudgetFunds": "Бюджетная основа", "startDate": "2025-01-01", "endDate": "2025-01-01" }]

Частичный запрос JSON:

[ {"identificationNumber": "44456524", "foreignDocumentCountry": "RU", "trainingCertificateNumber": "6565", "trainingType": "конференция", "trainingTheme": "УЗИ", "trainingDuration": "16", "trainingIssued": "2025-01-01", "trainingBudgetFunds": "Бюджетная основа", "startDate": "2025-01-01", "endDate": "2025-01-01" }]

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

{ "affectedPractitioners": "c7d18bbe-e477-11ef-bc09-67d9f38c794a" }

Пример ответа в случае неуспешного импорта (ошибки валидации полей):

{ "errors": { "training.123456789220.StartDate": [ "Введённая дата должна быть больше 01.01.1900 и не должна превышать текущую дату" ], "training.123456789220.TrainingType": [ "Значение должно соответствовать справочнику. «Тип дополнительного обучения» https://fhir.by/ValueSet/TrainingType.html" ], "training.123456789220.TrainingPlace": [ "Длинна не должна превышать 100 символов." ], "training.123456789220.TrainingCertificateNumber": [ "Номер сертификата обязателен не должен превышать 10 символов." ] } }

Метод API для актуализации карточки медицинского работника в части сведений об аттестации медицинского работника

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

Вызов метода осуществляется с помощью HTTP POST команды:

POST [PRACTITIONER_IMPORT_BASE]/AttestationDataImport

Аутентификация производится аналогично Правилам аутентификации для МИС.

Авторизация производится аналогично Правилам.

Формат данных

Импорт данных осуществляется в формате JSON.

Обработка записей

  • Метод поддерживает импорт сведений как об одном сотруднике, так и о группе сотрудников.
  • При актуализации (обновлении) сведений существующих карточек сотрудников используется уникальный ID по следующему алгоритму:
    • если сотрудник с указанным в запросе ID уже существует в модуле «Регистр медицинских работников», то актуализация (обновление) сведений в карточке медицинского работника производится только в части данных (свойств), которые указаны в запросе (JSON);
    • если сотрудник с указанным в запросе ID уже существует в модуле «Регистре медицинских работников» и в запросе (JSON) указано значение «null», то в карточке сотрудника значение обновляется на «null». При этом, если свойство указано в запросе, то оно обновляется, а если свойство не указано, то значение этого свойства остается прежним;
    • актуализация (обновление) сведений существующих карточек сотрудников возможна только для карточек со статусом «Активный». Если статус карточки «Неактивный», то необходимо изменить статус карточки посредством соответствующего метода API;
    • если сотрудник с указанным в запросе (JSON) ID отсутствует в модуле «Регистре медицинских работников», то метод возвращает НТТР-статус «400 Bad Request» и отображается соответствующее сообщение об ошибке.
  • Метод поддерживает проверку наличия записи об аттестации по следующему алгоритму:
    • если запись об аттестации с датой, указанной в поле «Дата аттестации» отсутствует в карточке сотрудника, то автоматически создается новая запись об аттестации;
    • если запись об аттестации с датой, указанной в поле «Дата аттестации», существует в карточке сотрудника, то актуализация (обновление) сведений об аттестации производится только в части данных (свойств), которые указаны в запросе (JSON);
    • если запись об аттестации с датой, указанной в поле «Дата аттестации», существует в карточке сотрудника и в запросе (JSON) указано значение «null», то в карточке сотрудника значение обновляется на «null». При этом, если свойство указано в запросе, то оно обновляется, а если свойство не указано, то значение этого свойства остается прежним.
  • Значения справочников могут передаваться в виде code или display name.
  • В качестве уникального ID для медицинских работников, являющихся иностранными гражданами без ВНЖ, используется комбинация полей «номер иностранного документа» и «код страны, выдавшей документ» для создания новой карточки в регистре медицинских работников и для актуализации (обновления) сведений существующих карточек сотрудников.
  • В качестве уникального ID для медицинских работников, являющихся гражданами РБ или имеющих ВНЖ, могут использоваться:
    • личный идентификационный номер – для создания новой карточки и для актуализации (обновления) сведений существующих карточек сотрудников;
    • ID practitioner - для актуализации (обновления) сведений существующих карточек сотрудников.

Статус импорта

При успешном импорте возвращается НТТР-статус «200 ОК».

Валидация

Проверка валидности формата данных
Метод поддерживает проверку валидности формата данных перед импортом. Если формат данных не соответствует установленным требованиям, то:

  • импорт данных не производится;
  • метод возвращает НТТР-статус «400 Bad Request»;
  • отображается соответствующее сообщение об ошибке.

Сообщение об ошибке содержит:

  • уникальный ID (личный идентификационный номер или номер иностранного документа для сотрудников без ВНЖ);
  • наименование поля с ошибкой;
  • описание ошибки.

Проверка валидности заполнения обязательных полей
Метод поддерживает проверку валидности заполнения обязательных полей перед импортом. Если значения обязательных полей не соответствуют установленным требованиям, то:

  • импорт данных не производится;
  • метод возвращает НТТР-статус «400 Bad Request»;
  • отображается соответствующее сообщение об ошибке.

Сообщение об ошибке содержит:

  • уникальный ID (личный идентификационный номер или номер иностранного документа для сотрудников без ВНЖ);
  • наименование поля с ошибкой;
  • описание ошибки.

Проверка валидности значений передаваемых данных
Метод поддерживает проверку валидности значений передаваемых данных перед импортом. Проверка осуществляется путем валидации значений передаваемых данных со справочниками модуля подсистемы НСИ «Реестр справочников». Если значения передаваемых данных не соответствуют установленным требованиям, то:

  • импорт данных не производится;
  • метод возвращает НТТР-статус «400 Bad Request»;
  • отображается соответствующее сообщение об ошибке.

Сообщение об ошибке содержит:

  • уникальный ID (личный идентификационный номер или номер иностранного документа для сотрудников без ВНЖ);
  • наименование поля с ошибкой;
  • описание ошибки с указанием ссылки на необходимый справочник (ValueSet).

Входящие параметры метода:

Название Описание Обязательное поле Правила валидации
identificationNumber Личный(идентификационный)номер Да Поле может содержать идентификационный номер паспорта или иного документа, удостоверяющего личность (для иностранных граждан без ВНЖ - комбинации полей “номер иностранного документа” и “код страны, выдавшей документ”) или логический идентификатор медицинского работника (practitioner.id). Идентификационный номер должен содержать только буквы латинского алфавита верхнего регистра и цифры. Максимально допустимая длина – 15 символов. В случае, если переданное значение “идентификационный номер” не найдено в модуле подсистемы НСИ «Регистр медицинских работников», то производится поиск переданного значения practitioner.id. Если переданное значение не найдено ни одним способом, то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке. При этом, если передан идентификационный номер паспорта или иного документа, удостоверяющего личность, то возможно как создание, так и актуализация карточек медицинского работника. Если передан practitioner.id, то возможна только актуализация карточек медицинского работника.
foreignDocumentCountry Страна, выдавшая документ Да, если сотрудник является иностранным гражданином без ВНЖ Поле может содержать только соответствующие справочнику «Коды гражданства» значения code или text. Если передано значение code, то производится поиск значения в кодах соответствующего справочника. В случае, если переданное значение не найдено в кодах справочника, то производится поиск переданного значения text в display name соответствующего справочника. Если переданное значение не найдено ни в code, ни в display name, то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке.
attestationDate Дата аттестации Да Формат даты должен соответствовать международному стандарту ISO 8601. Дата не должна быть раньше 01.01.1900.
attestationDecision Решение аттестационной комиссии Нет Поле может содержать только соответствующие справочнику «Решение аттестационной комиссии» значения code или text. Если передано значение code, то производится поиск значения в кодах соответствующего справочника. В случае, если переданное значение не найдено в кодах справочника, то производится поиск переданного значения text в display name соответствующего справочника. Если переданное значение не найдено ни в code, ни в display name, то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке.
nextAttestation Дата планируемой аттестации Нет Формат даты должен соответствовать международному стандарту ISO 8601. Дата не должна быть раньше 01.01.1900 и не должна быть раньше даты, указанной в поле «Дата аттестации».
attestationReasonToDecision Основание Нет Поле может содержать буквы и цифры. Допустимо использование специальных символов. Максимально допустимая длина – 100 символов.

Пример запроса JSON на актуализацию (обновление) сведений об аттестации медицинского работника

Полный запрос JSON:

[ { "identificationNumber": "1234567D222XV4", "attestationDate": "2018-01-01T00:00:00", "attestationDecision": "соответствует занимаемой должности", "nextAttestation": "2028-01-01T00:00:00", "attestationReasonToDecision": "Просто так" } ]

Частичный запрос JSON:

[ { "identificationNumber": "1234567D222XV4", "attestationDate": "2018-01-01T00:00:00", "attestationDecision": "соответствует занимаемой должности", "nextAttestation": null, "attestationReasonToDecision": null } ]

Пример запроса JSON на актуализацию (обновление) сведений об аттестации медицинского работника. Для карточки медицинского работника, являющегося иностранным гражданином без ВНЖ

Полный запрос JSON:

[ {"identificationNumber": "44456524", "foreignDocumentCountry": "RU", "attestationDate": "2018-01-01", "attestationDecision": "соответствует занимаемой должности", "nextAttestation": "2030-01-01", "attestationReasonToDecision": "Решение аттестационной комиссии №1 от 01.01.2018" } ]

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

{ "affectedPractitioners": "c7d18bbe-e477-11ef-bc09-67d9f38c794a" }

Пример ответа в случае неуспешного импорта (ошибка валидации полей):

{ "errors": { "attestation.1234567D222XV4": [ "Дата планируемой аттестации должны быть больше даты текущей аттестации" ], "training.01/01/2026 00:00:00.AttestationDecision": [ "Значение должно соответствовать справочнику. «Решение аттестационной комиссии» https://fhir.by/ValueSet/AttestationDecision.html " ], "attestation.1234567D222XV4.AttestationDate": [ "Введённая дата должна быть больше 01.01.1900 и не должна превышать текущую дату" ], "attestation.1234567D222XV4.NextAttestation": [ "Введённая дата должна быть больше 01.01.1900" ], "attestation.1234567D222XV4.AttestationReasonToDecision": [ "Длинна не должна превышать 100 символов." ] } }

Метод API для актуализации карточки медицинского работника в части сведений о наградах и званиях медицинского работника

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

Вызов метода осуществляется с помощью HTTP POST команды:

POST [PRACTITIONER_IMPORT_BASE]/AwardsDataImport

Аутентификация производится аналогично Правилам аутентификации для МИС.

Авторизация производится аналогично Правилам.

Формат данных

Импорт данных осуществляется в формате JSON.

Обработка записей

  • Метод поддерживает импорт сведений как об одном сотруднике, так и о группе сотрудников.
  • При актуализации (обновлении) сведений существующих карточек сотрудников используется уникальный ID по следующему алгоритму:
    • если сотрудник с указанным в запросе ID уже существует в модуле «Регистр медицинских работников», то актуализация (обновление) сведений в карточке медицинского работника производится только в части данных (свойств), которые указаны в запросе (JSON);
    • если сотрудник с указанным в запросе ID уже существует в модуле «Регистр медицинских работников» и в запросе (JSON) указано значение «null», то в карточке сотрудника значение обновляется на «null». При этом, если свойство указано в запросе, то оно обновляется, а если свойство не указано, то значение этого свойства остается прежним;
    • актуализация (обновление) сведений существующих карточек сотрудников возможна только для карточек со статусом «Активный». Если статус карточки «Неактивный», то необходимо изменить статус карточки посредством соответствующего метода API;
    • если сотрудник с указанным в запросе (JSON) ID отсутствует в модуле «Регистр медицинских работников», то метод возвращает НТТР-статус «400 Bad Request» и отображается соответствующее сообщение об ошибке.
  • Метод поддерживает проверку наличия записи на основе поля «Дата получения награды» для наград, и на основе поля «Дата получения звания» для званий по следующему алгоритму:
    • если запись о награде/звании с датой, указанной в поле «Дата получения награды»/ «Дата получения звания» отсутствует в карточке сотрудника, то автоматически создается новая запись о награде/звании соответственно;
    • если запись о награде/звании с датой, указанной в поле «Дата получения награды»/ «Дата получения звания», существует в карточке сотрудника, то актуализация (обновление) сведений о награде/звании соответственно, производится только в части данных (свойств), которые указаны в запросе (JSON);
    • если запись о награде/звании с датой, указанной в поле «Дата получения награды»/«Дата получения звания», существует в карточке сотрудника и в запросе (JSON) указано значение «null», то в карточке сотрудника значение обновляется на «null». При этом, если свойство указано в запросе, то оно обновляется, а если свойство не указано, то значение этого свойства остается прежним.
  • Обязательными к заполнению являются поля:
    • «Личный (идентификационный) номер»;
    • «Вид наград» и/или «Вид званий».
  • Значения справочников могут передаваться в виде code или display name.
  • В качестве уникального ID для медицинских работников, являющихся иностранными гражданами без ВНЖ, используется комбинация полей «номер иностранного документа» и «код страны, выдавшей документ» для создания новой карточки в регистре медицинских работников и для актуализации (обновления) сведений существующих карточек сотрудников.
  • В качестве уникального ID для медицинских работников, являющихся гражданами РБ или имеющих ВНЖ, могут использоваться:
    • личный идентификационный номер – для создания новой карточки и для актуализации (обновления) сведений существующих карточек сотрудников;
    • ID practitioner - для актуализации (обновления) сведений существующих карточек сотрудников.

Статус импорта

При успешном импорте возвращается НТТР-статус «200 ОК».

Валидация

Проверка валидности формата данных
Метод поддерживает проверку валидности формата данных перед импортом. Если формат данных не соответствует установленным требованиям, то:

  • импорт данных не производится;
  • метод возвращает НТТР-статус «400 Bad Request»;
  • отображается соответствующее сообщение об ошибке.

Сообщение об ошибке содержит:

  • уникальный ID (личный идентификационный номер или номер иностранного документа для сотрудников без ВНЖ);
  • наименование поля с ошибкой;
  • описание ошибки.

Проверка валидности заполнения обязательных полей
Метод поддерживает проверку валидности заполнения обязательных полей перед импортом. Если значения обязательных полей не соответствуют установленным требованиям, то:

  • импорт данных не производится;
  • метод возвращает НТТР-статус «400 Bad Request»;
  • отображается соответствующее сообщение об ошибке.

Сообщение об ошибке содержит:

  • уникальный ID (личный идентификационный номер или номер иностранного документа для сотрудников без ВНЖ);
  • наименование поля с ошибкой;
  • описание ошибки.

Проверка валидности значений передаваемых данных
Метод поддерживает проверку валидности значений передаваемых данных перед импортом. Проверка осуществляется путем валидации значений передаваемых данных со справочниками модуля подсистемы НСИ «Реестр справочников». Если значения передаваемых данных не соответствуют установленным требованиям, то:

  • импорт данных не производится;
  • метод возвращает НТТР-статус «400 Bad Request»;
  • отображается соответствующее сообщение об ошибке.

Сообщение об ошибке содержит:

  • уникальный ID (личный идентификационный номер или номер иностранного документа для сотрудников без ВНЖ);
  • наименование поля с ошибкой;
  • описание ошибки с указанием ссылки на необходимый справочник (ValueSet).

Входящие параметры метода:

Название Описание Обязательное поле Правила валидации
identificationNumber Личный(идентификационный)номер Да Поле может содержать идентификационный номер паспорта или иного документа, удостоверяющего личность (для иностранных граждан без ВНЖ - комбинации полей “номер иностранного документа” и “код страны, выдавшей документ”) или логический идентификатор медицинского работника (practitioner.id). Идентификационный номер должен содержать только буквы латинского алфавита верхнего регистра и цифры. Максимально допустимая длина – 15 символов. В случае, если переданное значение “идентификационный номер” не найдено в модуле подсистемы НСИ «Регистр медицинских работников», то производится поиск переданного значения practitioner.id. Если переданное значение не найдено ни одним способом, то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке. При этом, если передан идентификационный номер паспорта или иного документа, удостоверяющего личность, то возможно как создание, так и актуализация карточек медицинского работника. Если передан practitioner.id, то возможна только актуализация карточек медицинского работника.
foreignDocumentCountry Страна, выдавшая документ Да, если сотрудник является иностранным гражданином без ВНЖ Поле может содержать только соответствующие справочнику «Коды гражданства» значения code или text. Если передано значение code, то производится поиск значения в кодах соответствующего справочника. В случае, если переданное значение не найдено в кодах справочника, то производится поиск переданного значения text в display name соответствующего справочника. Если переданное значение не найдено ни в code, ни в display name, то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке.
awardType Вид наград/Вид званий Да Поле может содержать только соответствующие справочнику «Награды»/«Звания» соответственно, значения code или text. Если передано значение code, то производится поиск значения в кодах соответствующего справочника. В случае, если переданное значение не найдено в кодах справочника, то производится поиск переданного значения text в display name соответствующего справочника. Если переданное значение не найдено ни в code, ни в display name, то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке.
awardIssued Дата получения награды Нет Формат даты должен соответствовать международному стандарту ISO 8601. Дата не должна быть раньше 01.01.1900.
awardIssued Дата получения звания Нет Формат даты должен соответствовать международному стандарту ISO 8601. Дата не должна быть раньше 01.01.1900.

Пример запроса JSON на актуализацию (обновление) сведений о наградах и званиях медицинского работника

Полный запрос JSON:

[ { "identificationNumber": "1234567D222XV4", "awardType": "орден Республики Беларусь", "awardIssued": "2024-01-11T00:00:00" }, { "identificationNumber": "1234567D222XV4", "awardType": "Заслуженный сотрудник органов прокуратуры Республики Беларусь", "awardIssued": "2024-01-11T00:00:00" } ]

Частичный запрос JSON:

[ { "identificationNumber": "1234567D222XV4", "awardType": "орден Республики Беларусь" } ]

Пример запроса JSON на актуализацию (обновление) сведений о наградах и званиях медицинского работника. Для карточки медицинского работника, являющегося иностранным гражданином без ВНЖ:

[ {"identificationNumber": "44456524", "foreignDocumentCountry": "RU", "awardType": "орден Республики Беларусь", "awardIssued": "2025-01-11T01:00:10" } ]
[ {"identificationNumber": "44456524", "foreignDocumentCountry": "RU", "awardType": "Заслуженный сотрудник органов прокуратуры Республики Беларусь", "awardIssued": "2025-01-11T01:00:10" } ]

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

{ "affectedPractitioners": "c7d18bbe-e477-11ef-bc09-67d9f38c794a" }

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

{ "errors": { "award.1234567D222XV4.AwardType": [ "Значение должно соответствовать справочнику. [«Награды»]( https://fhir.by/ValueSet/AwardType.html). [«Звания»](https://fhir.by/ValueSet/GovernmentalTitleType.html)." ], "award.1234567D222XV4.AwardIssued": [ "Введённая дата должна быть больше 01.01.1900 и не должна превышать текущую дату" ] } }

Метод API для актуализации карточки медицинского работника в части сведений об учёной степени/учёном звании у медицинского работника

Метод предназначен для актуализации карточки медицинского работника в модуле «Регистре медицинских работников» подсистемы НСИ в части сведений об учёной степени/учёном звании у медицинского работника.

Вызов метода осуществляется с помощью HTTP POST команды:

POST [PRACTITIONER_IMPORT_BASE]/ScientificTitleDataImport

Аутентификация производится аналогично Правилам аутентификации для МИС.

Авторизация производится аналогично Правилам.

Формат данных

Импорт данных осуществляется в формате JSON.

Обработка записей

  • Метод поддерживает импорт сведений как об одном сотруднике, так и о группе сотрудников.
  • При актуализации (обновлении) сведений существующих карточек сотрудников используется уникальный ID по следующему алгоритму:
    • если сотрудник с указанным в запросе ID уже существует в модуле «Регистр медицинских работников», то актуализация (обновление) сведений в карточке медицинского работника производится только в части данных (свойств), которые указаны в запросе (JSON);
    • если сотрудник с указанным в запросе ID уже существует в модуле «Регистр медицинских работников» и в запросе (JSON) указано значение «null», то в карточке сотрудника значение обновляется на «null». При этом, если свойство указано в запросе, то оно обновляется, а если свойство не указано, то значение этого свойства остается прежним;
    • актуализация (обновление) сведений существующих карточек сотрудников возможна только для карточек со статусом «Активный». Если статус карточки «Неактивный», то необходимо изменить статус карточки посредством соответствующего метода API;
    • если сотрудник с указанным в запросе (JSON) ID отсутствует в модуле «Регистр медицинских работников», то метод возвращает НТТР-статус «400 Bad Request» и отображается соответствующее сообщение об ошибке.
  • Метод поддерживает проверку наличия записи на основе поля «Дата выдачи учёной степени» для учёной степени, и на основе поля «Дата выдачи учёного звания» для учёного звания по следующему алгоритму:
    • если запись об учёной степени/учёном звании с датой, указанной в поле «Дата выдачи учёной степени»/ «Дата выдачи учёного звания» отсутствует в карточке сотрудника, то автоматически создается новая запись об учёной степени/учёном звании соответственно;
    • если запись об учёной степени/учёном звании с датой, указанной в поле «Дата выдачи учёной степени»/ «Дата выдачи учёного звания», существует в карточке сотрудника, то актуализация (обновление) сведений об учёной степени/учёном звании соответственно, производится только в части данных (свойств), которые указаны в запросе (JSON);
    • если запись об учёной степени/учёном звании с датой, указанной в поле «Дата выдачи учёной степени»/ «Дата выдачи учёного звания», существует в карточке сотрудника и в запросе (JSON) указано значение «null», то в карточке сотрудника значение обновляется на «null». При этом, если свойство указано в запросе, то оно обновляется, а если свойство не указано, то значение этого свойства остается прежним.
  • Обязательными к заполнению являются поля:
    • «Личный (идентификационный) номер»;
    • «Учёная степень» и/или «Учёное звание».
  • Значения справочников могут передаваться в виде code или display name.
  • В качестве уникального ID для медицинских работников, являющихся иностранными гражданами без ВНЖ, используется комбинация полей «номер иностранного документа» и «код страны, выдавшей документ» для создания новой карточки в регистре медицинских работников и для актуализации (обновления) сведений существующих карточек сотрудников.
  • В качестве уникального ID для медицинских работников, являющихся гражданами РБ или имеющих ВНЖ, могут использоваться:
    • личный идентификационный номер – для создания новой карточки и для актуализации (обновления) сведений существующих карточек сотрудников;
    • ID practitioner - для актуализации (обновления) сведений существующих карточек сотрудников.

Статус импорта

При успешном импорте возвращается НТТР-статус «200 ОК».

Валидация

Проверка валидности формата данных
Метод поддерживает проверку валидности формата данных перед импортом. Если формат данных не соответствует установленным требованиям, то:

  • импорт данных не производится;
  • метод возвращает НТТР-статус «400 Bad Request»;
  • отображается соответствующее сообщение об ошибке.

Сообщение об ошибке содержит:

  • уникальный ID (личный идентификационный номер или номер иностранного документа для сотрудников без ВНЖ);
  • наименование поля с ошибкой;
  • описание ошибки.

Проверка валидности заполнения обязательных полей
Метод поддерживает проверку валидности заполнения обязательных полей перед импортом. Если значения обязательных полей не соответствуют установленным требованиям, то:

  • импорт данных не производится;
  • метод возвращает НТТР-статус «400 Bad Request»;
  • отображается соответствующее сообщение об ошибке.

Сообщение об ошибке содержит:

  • уникальный ID (личный идентификационный номер или номер иностранного документа для сотрудников без ВНЖ);
  • наименование поля с ошибкой;
  • описание ошибки.

Проверка валидности значений передаваемых данных
Метод поддерживает проверку валидности значений передаваемых данных перед импортом. Проверка осуществляется путем валидации значений передаваемых данных со справочниками модуля подсистемы НСИ «Реестр справочников». Если значения передаваемых данных не соответствуют установленным требованиям, то:

  • импорт данных не производится;
  • метод возвращает НТТР-статус «400 Bad Request»;
  • отображается соответствующее сообщение об ошибке.

Сообщение об ошибке содержит:

  • уникальный ID (личный идентификационный номер или номер иностранного документа для сотрудников без ВНЖ);
  • наименование поля с ошибкой;
  • описание ошибки с указанием ссылки на необходимый справочник (ValueSet).

Входящие параметры метода:

Название Описание Обязательное поле Правила валидации
identificationNumber Личный(идентификационный)номер Да Поле может содержать идентификационный номер паспорта или иного документа, удостоверяющего личность (для иностранных граждан без ВНЖ - комбинации полей “номер иностранного документа” и “код страны, выдавшей документ”) или логический идентификатор медицинского работника (practitioner.id). Идентификационный номер должен содержать только буквы латинского алфавита верхнего регистра и цифры. Максимально допустимая длина – 15 символов. В случае, если переданное значение “идентификационный номер” не найдено в модуле подсистемы НСИ «Регистр медицинских работников», то производится поиск переданного значения practitioner.id. Если переданное значение не найдено ни одним способом, то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке. При этом, если передан идентификационный номер паспорта или иного документа, удостоверяющего личность, то возможно как создание, так и актуализация карточек медицинского работника. Если передан practitioner.id, то возможна только актуализация карточек медицинского работника.
foreignDocumentCountry Страна, выдавшая документ Да, если сотрудник является иностранным гражданином без ВНЖ Поле может содержать только соответствующие справочнику «Коды гражданства» значения code или text. Если передано значение code, то производится поиск значения в кодах соответствующего справочника. В случае, если переданное значение не найдено в кодах справочника, то производится поиск переданного значения text в display name соответствующего справочника. Если переданное значение не найдено ни в code, ни в display name, то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке.
scientificKind Учёная степень/Учёное звание Да Поле может содержать только соответствующие справочнику «Ученая степень»/«Ученое звание» соответственно, значения code или text. Если передано значение code, то производится поиск значения в кодах соответствующего справочника. В случае, если переданное значение не найдено в кодах справочника, то производится поиск переданного значения text в display name соответствующего справочника. Если переданное значение не найдено ни в code, ни в display name, то метод возвращает НТТР-статус «400 Bad Request» и соответствующее сообщение об ошибке.
scientificPlace Кем и где принято решение о присвоении учёной степени / присуждении учёного звания Нет Поле может содержать буквы и цифры. Допустимо использование специальных символов. Максимально допустимая длина – 255 символов.
scientificDate Дата выдачи документа Нет Формат даты должен соответствовать международному стандарту ISO 8601. Дата не должна быть раньше 01.01.1900.

Пример запроса JSON на актуализацию (обновление) сведений об учёной степени/учёном звании у медицинского работника

Полный запрос JSON:

[ { "identificationNumber": "1234567D222XV4", "scientificKind": "Доктор наук", "scientificPlace": "Место получения", "scientificDate": "2019-01-01T00:00:00" }, { "identificationNumber": "1234567D222XV4", "scientificKind": "профессор", "scientificPlace": "Место получения", "scientificDate": "2019-01-01T00:00:00" } ]

Частичный запрос JSON:

[ { "identificationNumber": "1234567D222XV4", "scientificKind": "Доктор наук", "scientificDate": "2019-01-01T00:00:00" } ]

Пример запроса JSON на актуализацию (обновление) сведений об учёной степени/учёном звании у медицинского работника. Для карточки медицинского работника, являющегося иностранным гражданином без ВНЖ:

[ {"identificationNumber": "44456524", "foreignDocumentCountry": "RU", "scientificKind": "Доктор наук", "scientificPlace": "Минск", "scientificDate": "2025-01-01", "scientificReason": "Примечание" } ]
[ {"identificationNumber": "44456524", "foreignDocumentCountry": "RU", "scientificKind": "профессор", "scientificPlace": "Минск", "scientificDate": "2025-01-01", "scientificReason": "Примечание" } ]

Частиный запрос JSON:

[ {"identificationNumber": "44456524", "foreignDocumentCountry": "RU", "scientificKind": "Доктор наук", "scientificPlace": "Москва", "scientificDate": "2025-01-01", "scientificReason": "Примечание" } ]

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

{ "affectedPractitioners": "c7d18bbe-e477-11ef-bc09-67d9f38c794a" }

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

{ "errors": { "scientific.1234567D222XV4.ScientificDate": [ "Введённая дата должна быть больше 01.01.1900 и не должна превышать текущую дату" ], "scientific.1234567D222XV4.ScientificKind": [ "Значение должно соответствовать справочнику. «Ученая степень» https://fhir.by/ValueSet/SciencificDegreeKind.html. «Ученое звание» https://fhir.by/ValueSet/SciencificTitleKind.html." ], "scientific.1234567D222XV4.ScientificPlace": [ "Длинна не должна превышать 255 символов." ] } }
▲ Вверх