Операция получения электронных рецептов пациента

GET MedicationPrescription/$by-card?patientIdentifier=[id card]&status=[MedicationPrescription Status]

Ограничения и логика работы операции:

  • Если пациент с указанным идентификатором не найден, то возвращается статус 404 и OperationOutcome.
  • Если пациент с указанным идентификатором найден, но у него установлен флаг Patient.active = false, то возвращается статус 404 и OperationOutcome.
  • Возвращаются только рецепты с активным сроком действия, т.е. сегодняшняя дата попадает в период MedicationPrescription.Dispense.validityPeriod.

Аутентификация

При работе с FHIR-сервером для получения валидного токена аутентификации необходимо запрашивать scope "EHR.MedicationPrescription.$by-card"

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

Name Cardinality Type Documentation
patientIdentifier 1..1 string Идентификатор карточки для медицинского обслуживания пациента/ идентификационный (личный) номер из паспорта/ вид на жительство/ индивидуальный документ учащегося.
status 0..1 string Если этот параметр не указан, то возвращаются только активные рецепты (MedicationPrescription.status = active). В остальных случаях возвращаются MedicationPrescription со статусом, указанным в параметре. Для логики ИЛИ следует перечислять статусы через запятую. Предполагается что будет нужен при использовании операции отмены отоваривания, для получения идентификатора [Справочник статусов] (http://hl7.org/fhir/2015May/medication-prescription-status.html) интересующего отоваривания в уже закрытом рецепте.
_count 0..1 int Количество рецептов получаемых одним запросом. Максимальное количество - 100
_page 0..1 int Идентификатор страницы

Параметры операции должны быть переданы в URL

Возвращаемый результат

Name Cardinality Type Documentation
Patient 1..1 Patient Краткая информация о пациенте: ФИО, пол, год рождения, номер карты мед.обслуживания, индивидуальный документ учащегося (если есть)
Bundle 0..* Агрегированная информация о рецепте
Bundle.MedicationPrescription 1..1 MedicationPrescription Электронный рецепт
Bundle.Organization 1..1 Organization Организация, в которой выписали рецепт
Bundle.Practitioner 1..1 Practitioner Врач, выписавший рецепт
Bundle.Provenance 0..1 Provenance Ресурс, содержащий ЭЦП
Bundle.MedicationDispense 0..* MedicationDispense Отоваривания по электронному рецепту
Bundle.Claim 0..* Claim Счет к льготному электронному рецепту

Результат возвращается в виде ресурса Bundle

Возвращаемые коды состояния HTTP:

  • HttpStatusCode 200 OK - при успешной регистрации отоваривания.
  • HttpStatusCode 400 BadRequest - если входящие параметры не прошли правила валидации.
  • HttpStatusCode 404 NotFound - если один из ресурсов, необходимых для выполнения операции, не найден

Операция регистрации отпуска по электронному рецепту

POST MedicationDispense/$register

Ограничения и логика работы операции:

  • В ресурсах MedicationDispense и Claim НЕ надо указывать идентификаторы, в ресурсе Claim НЕ надо устанавливать связь на ресурс MedicationDispense (параметр Claim.extension.dispense заполнится автоматически), в ресурсах MedicationDispense и Claim НЕ надо указывать ссылку на организацию (параметры MedicationDispense.Location.managingOrganization и Claim.payee.organization заполнятся автоматически).
  • Если у электронного рецепта статус не активный (MedicationPrescription.status <> active) или не активный срок действия (сегодняшняя дата не попадает в период MedicationPrescription.Dispense.validityPeriod), то нельзя зарегистрировать отоваривание, возвращается статус 400.
  • Если ресурс Patient.active = false, то нельзя зарегистрировать отоваривание на любые его электронные рецепты, возвращается статус 400.
  • Можно зарегистрировать только ресурс MedicationDispense с параметром status = completed.
  • В теле запроса должен быть передан один ресурс MedicationDispense.
  • Если электронный рецепт, на который регистрируется отоваривание, является льготным (указано значение MedicationPrescription.extension:factor И MedicationPrescription.extension:factor>=0 И MedicationPrescription.extension:factor<1), то в теле запроса может быть передан один ресурс Claim. Claim должен отсутствовать в случае, если выписан льготный рецепт, но оплата производилась полностью за средства пациента.
  • Если электронный рецепт, на который регистрируется отоваривание, не является льготным, то Claim должен отсутствовать.
  • Если электронный рецепт, на который регистрируется отоваривание, является льготным (указано значение MedicationPrescription.extension:factor И MedicationPrescription.extension:factor>=0 И MedicationPrescription.extension:factor<1), то Claim.item.factor должен быть равен MedicationPrescription.extension:factor - 1.
  • Если отоваривание последнее по электронному рецепту (MedicationDispense.finalDispense = true), то рецепт закрывается (т.е. автоматически устанавливается MedicationPrescription.status = completed).

Аутентификация

При работе с FHIR-сервером для получения валидного токена аутентификации необходимо запрашивать scope "EHR.MedicationDispense.$register"

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

Name Cardinality Type Documentation
Parameters 1..1 Parameters
medicationDispense 1..1 MedicationDispense Отоваривания по электронному рецепту
claim 0..1 Claim Счет к льготному электронному рецепту

Параметры операции передаются в Body в виде ресурса Parameters

Возвращаемый результат

Name Cardinality Type Documentation
MedicationDispense 1..1 MedicationDispense Отоваривания по электронному рецепту
Claim 0..1 Claim Счет к льготному электронному рецепту

Результат возвращается в виде ресурса Bundle

Возвращаемые коды состояния HTTP:

  • HttpStatusCode 200 OK - при успешной регистрации отоваривания.
  • HttpStatusCode 400 BadRequest - если входящие параметры не прошли правила валидации.
  • HttpStatusCode 404 NotFound - если один из ресурсов, необходимых для выполнения операции, не найден

Операция отметки об ошибочности отпуска по электронному рецепту

POST MedicationDispense\{id}\$set-as-error

Ограничения и логика работы операции:

  • Отменить отоваривание можно только у активного (MedicationPrescription.status = active) или завершенного (MedicationPrescription.status = completed) электронного рецепта. Если это условие не выполняется, то возвращается статус 400.
  • Отменить отоваривание можно только у электронного рецепта с активным сроком действия (сегодняшняя дата попадает в период MedicationPrescription.Dispense.validityPeriod). Если это условие не выполняется, то возвращается статус 400.
  • Можно отменить отоваривание, только если ресурс MedicationDispense.status = completed ИЛИ MedicationDispense.status = in-progress. Если это условие не выполняется, то возвращается статус 400.
  • Происходит установка статуса MedicationDispense.status = entered-in-error.
  • У всех отовариваний электронного рецепта отменяется флаг последнего отпуска (т.е. устанавливается MedicationDispense.extension:finalDispense = false).
  • Электронный рецепт указанного отоваривания становится активным (MedicationPrescription.status = active).
  • Если с указанным отовариванием связан ресурс Claim, то он удаляется.
  • Отменять отоваривание может только та организация, которая его создала.

Аутентификация

При работе с FHIR-сервером для получения валидного токена аутентификации необходимо запрашивать scope "EHR.MedicationDispense.$set-as-error"

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

Name Cardinality Type Documentation
id 1..1 id Идентификатор отоваривания по электронному рецепту, которое следует отменить

Параметры операции должны быть переданы в URL

Возвращаемый результат

Name Cardinality Type Documentation
MedicationDispense 1..1 MedicationDispense Отоваривания по электронному рецепту

Возвращаемые коды состояния HTTP:

  • HttpStatusCode 200 OK - при успешной отметке об ошибочности.
  • HttpStatusCode 400 BadRequest - если входящие параметры не прошли правила валидации.
  • HttpStatusCode 404 NotFound - если один из ресурсов, необходимых для выполнения операции, не найден

Примеры использования операций

Для использования примеров надо обратится в РНПЦ МТ и получить параметры авторизации.

Примеры выполнены как коллекции к программному обеспечению Postman

Инструкция по работе с примерами