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 (не корректно составлена структура тела запроса)