napopravku / rta-api-service-client
Клиент для НаПоправку RTA API
Installs: 57
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
pkg:composer/napopravku/rta-api-service-client
Requires
- php: >=8.1
- ext-json: *
- guzzlehttp/guzzle: ^7.2
- illuminate/support: ^9.0
This package is not auto-updated.
Last update: 2025-10-17 16:35:44 UTC
README
Клиент для НаПоправку RTA API.
Установка
Рассмотрим установку и использование вне PHP проекта.
Для работы необходимы PHP версии 8.1 или новее и Composer. Вы можете использовать Docker окружение.
Настройка контейнера:
#Сборка и запуск контейнера
docker compose up -d --build
#Подключение к контейнеру docker compose exec php bash
Установите необходимые зависимости, выполнив команду:
composer i
Теперь библиотека готова к использованию.
Правила работы с сервисом
Сервис предназначен для передачи информации о врачах, клиниках, услугах и расписании, а также получении информации о записях.
Документация к API
| Данные | Частота передачи |
|---|---|
| Клиники | Раз в сутки или чаще |
| Врачи | Раз в сутки или чаще |
| Услуги | Раз в сутки до 19:00 по МСК |
| Слоты | Раз в 10 минут или чаще |
Перед передачей актуальных слотов нужно обработать записи. Хорошая периодичность обработки - раз в 2 минуты. Необработанные записи отменяются через 10 минут после создания.
Алгоритм:
- Выполняется запрос
getAppointmentsс параметромis_receivedравнымfalse. При использовании дополнительных параметров, таких какfromиtoважно учитывать, что нашеAPIработает вUTC. - Для каждой записи выполняется запрос
receiveAppointment, который помечает запись как обработанную на стороне МИС.
Если вы передаёте слот с duration отличным от null, при обработке произойдёт разделение на слоты заданной длительности.
Пример:
{
"from": "16:00",
"to": "17:00",
"duration": 15
}
Результат:
[
{
"from": "16:00",
"to": "16:15"
},
{
"from": "16:15",
"to": "16:30"
},
{
"from": "16:30",
"to": "16:45"
},
{
"from": "16:45",
"to": "17:00"
}
]
Инициализация клиента
<?php //index.php use Napopravku\RtaApiClient\RemoteRtaApiClient; require 'vendor/autoload.php'; $client = new RemoteRtaApiClient(token: 'your_token');
Обновление клиник
/** @var ClinicListUpdateDTO $clinicListUpdateDto */ $clinicListUpdateDto = ClinicListUpdateFactory::fromArray([ 'clinics' => [ [ 'mis_clinic_id' => 'a', 'name' => 'Клиника A', 'comment' => 'Клиника A', ], [ 'mis_clinic_id' => 'b', 'name' => 'Клиника B', 'comment' => 'Клиника B', ], [ 'mis_clinic_id' => 'c', 'name' => 'Клиника C', 'comment' => 'Клиника C', ], ], ]); $result = $client->updateClinics($clinicListUpdateDto);
Получение клиник
/** @var ClinicListDTO $clinicListDto */ $clinicListDto = ClinicListFactory::fromArray([ 'with_doctors' => false, ]); $clinicListDto->paging->perPage = PagingDTO::MAX_PER_PAGE; $clinicListDto->sorting->sortBy = 'mis_clinic_id'; $clinicListDto->sorting->sortDir = SortingDTO::SORT_DIR_DESC; $result = $client->getClinics($clinicListDto);
Для конкретного запроса фабрикой создаётся объект DTO, далее объект передаётся в соответствующий метод клиента.
Значения свойств DTO могут редактироваться после создания.
Остальные запросы выполняются аналогичным образом.