Операция регистрации отпуска по электронному рецепту
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 - если один из ресурсов, необходимых для выполнения операции, не найден