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

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

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).

Ресурс Basic формируется при успешном отоваривании льготного электронного рецепта, подписанного ЭЦП. При создании ресурса Basic ему присваивается статус active. В рамках операции отоваривания ЭР ресурс Basic не возвращается.

  • Если поле MedicationPrescription.meta.tag.display не заполнено, то при отоваривании клиент получит ошибку 500.
  • Если не указана ссылка на Location в ресурсе Claim (поле Claim.facility), то Bill не сформируется и это отоваривание не войдет в реестр.
  • В ресурсе Claim.facility должна быть указана ссылка на аптеку, которая принадлежит аптечной сети клиента. (В этом ресурсе Location.managingOrganization должен соответствовать данным клиента, выполняющим отоваривание).

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

При работе с 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, у которого указан тип запроса и его статус для каждого возвращенного ресурса в поле transactionResponse.status.

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

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