Операция получения отовариваний ЭР за период

POST MedicationDispense/$by-period?_count=[MedicationDispense count per page]&_page=[Page number]

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

  • Если входящие параметры указаны не верно, то возвращается статус 400 Bad Request и OperationOutcome с описанием проблемы.
  • Если по указанным параметрам не найдено ресурсов MedicationDispense, то возвращается статус 200 OK и пустой Bundle.
  • Порядок передачи параметров может быть любым.
  • Для периода обязательно указывать интервал дат, т.е. Period.start и Period.end. В случае, если необходимо получить рецепты за 1 день, то дата начала периода и дата конца периода должны совпадать.
  • Дата начала и/или конца периода не может быть больше текущей даты.
  • Возвращаются только ресурсы MedicationDispense в статусе completed и Claim для отоваренных льготных рецептов за запрашиваемый период.
  • Возвращаются только ресурсы MedicationDispense, у которых есть связанный ресурс MedicationPrescription в любом статусе.
  • Принадлежность рецепта к организации определяется следующим образом: рецепт принадлежит организации, если в ресурсе Practitioner в поле managingOrganization обнаружено совпадение идентификатора с запрашиваемым в Parameter[0].Resource.Organization.

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

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

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

ParameterName Structure Cardinality Type Documentation
Parameters 1..1 Parameters
Organization Parameter[0].Resource.Organization 1..1 Organization Идентификатор организации здравоохранения, для которой необходимо осуществить выборку отовариваний. Считать, что рецепт принадлежит организации, если в ресурсе Practitioner в поле managingOrganization обнаружено совпадение идентификатора с запрашиваемым.
Period Parameter[1].Resource.Period 1..1 Period Дата отоваривания. В запросе указывается интервал дат. В случае, если необходимо получить рецепты за 1 день, то дата начала интервала и дата конца интервала должны совпадать. Дата отоваривания берется из ресурса MedicationDispense поле whenHandedOver. Дату необходимо передавать без указания времени и часового пояса.
_count URL 0..1 int Количество MedicationDispense получаемых одним запросом. По умолчанию этот параметр равен 100. Максимальное значение = 1000, минимальное = 1
_page URL 0..1 int Идентификатор страницы. Нумерация страниц начинается со значения "0"

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

Пример тела запроса JSON

{
  "resourceType":"Parameters",
  "parameter":[
    {
    "name": "Organization",
    "valueReference": {   "reference": "Organization/{{id_organization2}}"    }
    },
    {
    "name": "Period",
    "valuePeriod": {"start": "2021-01-01", "end": "2022-08-29"} 
    }
    ]
}

Пример тела запроса XML 

<Parameters xmlns="http://hl7.org/fhir">
<parameter>
<name value="Organization"/>
<valueReference>
<reference> value="Organization/f06ae472-eb83-31f8-8b8b-4d65f332b34e" />
</valueReference>
</parameter>
<parameter>
<name value="Period"/>
<valuePeriod>
<start value="2022-08-01" />
<end value="2022-08-20" />
</valuePeriod>
</parameter>
</Parameters>

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

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

Name Cardinality Type Documentation
Bundle 0..* Агрегированная информация об одном отоваривании, его счёте для оплаты, связанный с отовариванием электронный рецепт (1 ресурс MedicationDispense + 1 MedicationPrescription + 1 Claim при наличии)
Bundle.MedicationDispense 0..* MedicationDispense Отоваривание по электронному рецепту
Bundle.MedicationPrescription 1..1 MedicationPrescription Электронный рецепт, связанный с отовариванием
Bundle.Claim 0..1 Claim Счет к льготному электронному рецепту (при наличии)

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

  • HttpStatusCode 200 OK - при успешном получении информации
  • HttpStatusCode 400 BadRequest - если входящие параметры не прошли правила валидации
  • HttpStatusCode 401 Unauthorized - если клиент не авторизован (токен не валиден\истек\запрос без авторизации)
  • HttpStatusCode 403 Forbidden - если у клиента нет права на выполнение операции scope EHR.MedicationDispense.$by-period
  • HttpStatusCode 422 Unprocessable Entity - невозможно выполнить синтаксический разбор ресурса, либо он не проходит базовые правила валидации FHIR (не корректно составлена структура тела запроса)

Операция получения отовариваний ЭР за период.docx, 20Кб