id - ID приема admission_date - Дата приема description - Описание client_id - ID клиента patient_id - ID питомца user_id - ID доктора type_id - Цель обращения на прием admission_length - Продолжительность приема status - статус приема clinic_id - ID клиники creator_id - ID пользователя создавшего прием create_date - Дата создания приема reception_write_channel - канал записи на прием is_auto_create - Признак, что прием был создан автоматически invoices_sum - сумма счетов confirmation - подтверждение, перенос или отмена приема (обратная связь от клиента)
Значение поля invoices_sum - это сумма счетов, которые созданы на этого клиента и в тот же день, на который назначен прием.
Значение поля status
Значение поля confirmation:
Значение данного поля по дефолту установленно null, оно формируется в зависимости от того, что выбрал клиент, когда к нему пришло сообщение о приеме на телефон от сервиса Квикби. У клиента есть 3 варианта ответа: подтвердить приём, отменить или перенести. В зависимости от того, что он нажмёт сформируется одно из 3х вариантов:
Все записи на прием, созданные через REST API, будут иметь статус ‘not_confirmed’, а значение reception_write_channel по умолчанию ‘website’
Поле «status» при создании приема отправлять не нужно. Прием будет создан со статусом «not_confirmed»
type_id — это значение поля «value» из модели ComboManualItem
curl --location --request POST 'https://{DOMAIN NAME}/rest/api/Admission' \ --header 'Content-Type: application/json' \ --header 'X-REST-API-KEY: {REST API KEY}' \ --data-raw '{ "reception_write_channel":"vetmanager", "type_id":"4", "admission_date":"2021-09-17 16:45:00", "clinic_id":"1", "client_id":"6", "patient_id":"3", "description":"", "admission_length":"00:15:00", "user_id":"1" }'
*admission_date - дата, на которую назначен прием (Y-m-d H:i:s) *clinic_id - id клиники *client_id - id клиента patient_id - id питомца сreator_id - id пользователя, создавшего прием user_id - id врача, на которого назначен прием type_id - тип приема admission_length - длительность приема (H:i:s) description - примечание к приему reception_write_channel - канал создания записи (vk/fb/website) * - обязательные параметры
Ответ сервера
{ "success": true, "message": "Record(s) Created", "data": { "totalCount": 1, "admission": [ { "id": "30", "admission_date": "2021-09-17 16:45:00", "description": "", "client_id": "6", "patient_id": "3", "user_id": "1", "type_id": "4", "admission_length": "00:15:00", "status": "not_confirmed", "clinic_id": "1", "direct_direction": "0", "creator_id": "0", "create_date": "2021-09-17 13:22:58", "escorter_id": "0", "reception_write_channel": "vetmanager", "is_auto_create": "0", "pet": { "id": "3", "owner_id": "6", "type_id": "13", "alias": "Pet001", "sex": "unknown", "date_register": "2021-09-09 14:37:54", "birthday": null, "note": "", "breed_id": "444", "old_id": null, "color_id": "0", "deathnote": null, "deathdate": null, "chip_number": "", "lab_number": "", "status": "alive", "picture": null, "weight": "0.0000000000" }, "client": { "id": "6", "address": "", "home_phone": "", "work_phone": "", "note": "", "type_id": null, "how_find": null, "balance": "0.0000000000", "email": "", "city": "", "city_id": "145", "date_register": "2021-09-09 14:37:37", "cell_phone": "0957778899", "zip": "", "registration_index": null, "vip": "0", "last_name": "Client001", "first_name": "Client001", "middle_name": "Client001", "status": "ACTIVE", "discount": "0", "passport_series": "", "lab_number": "", "street_id": "0", "apartment": "", "unsubscribe": "0", "in_blacklist": "0", "last_visit_date": "0000-00-00 00:00:00", "number_of_journal": "", "phone_prefix": "38" }, "doctor_data": { "id": "1", "last_name": "admin", "first_name": "", "middle_name": "", "login": "admin", "passwd": "9205814c8bc98857f5e07f3bae30ad68", "position_id": "8", "email": "email1@mail.ru", "phone": "00000000000", "cell_phone": "0000000000", "address": "Address 1", "role_id": "7", "is_active": "1", "calc_percents": "1", "nickname": "admin", "youtrack_login": "", "youtrack_password": "", "last_change_pwd_date": "0000-00-00", "is_limited": "0", "carrotquest_id": "two:1", "sip_number": "", "user_inn": "" } } ] } }
В программе появится запись о запланированном визите, которую необходимо подтвердить.
curl --location -g --request GET 'https://{DOMAIN NAME}/rest/api/ComboManualName?filter=[{"property": "title","value": "Тип приема","operator": "="}]' \ --header 'Content-Type: application/json' \ --header 'X-REST-API-KEY: {REST API KEY}' \ --data-raw '{ "filter": [ { "property": "title", "value": "Тип приема", "operator": "=" } ] }'
Ответ сервера
В поле comboManualItems будет список — это цели обращения на прием. В запросе на создание приема в поле type_id нужно подставлять значение поля value из этого списка
{ "success": true, "message": "Records Retrieved Successfully", "data": { "totalCount": "1", "comboManualName": [ { "id": "1", "title": "Тип приема", "is_readonly": "0", "comboManualItems": [ { "id": "1", "combo_manual_id": "1", "title": "Вакцинация", "value": "1", "dop_param1": "00:15:00", "dop_param2": "09:00:00", "dop_param3": "", "is_active": "1" }, { "id": "3", "combo_manual_id": "1", "title": "Первичный", "value": "3", "dop_param1": "00:00:00", "dop_param2": "00:00:00", "dop_param3": "", "is_active": "1" }, { "id": "4", "combo_manual_id": "1", "title": "Вторичный", "value": "4", "dop_param1": "00:00:00", "dop_param2": "00:00:00", "dop_param3": "", "is_active": "1" } ] } ] } }
Редактирование информации о приеме
curl -XPUT -H 'X-REST-API-KEY: {REST API KEY}' -H "Content-type: application/json" -d '{ "clinic_id":1, "start":"2020-04-20 14:30:00", "end":"2020-04-20 15:00:00", }' 'https://{DOMAIN NAME}/rest/api/Admission/{id}' } *clinic_id - ИД клиники *start - Начало приема *end - Окончание приема admission_date - Дата приема type_id - Цель обращения user_id - ИД доктора client_id - ИД клиента patient_id - ИД питомца description - "Описание причины направления" заметка к приему without_checking - если передать этот параметр со значением 1, то проверки на занятое время не будет * - обязательные параметры поле status может быть с таким значением: save - запланированный directed - ожидает/направлен на прием in_treatment - "у врача" accepted - принятый delayed - просроченный not_confirmed - не подтвержденный прием, приемы с таким статусом создаются через сторонние сервисы not_approved - не подтвержденный прием, приемы с таким статусом создаются в приложении vetmanager, если не указаны цель обращения или или доктор или пациент или клиент. deleted - удаленные приемы
Подтверждение приема
Все поля в запросе обязательные. Если не указать поле description, то поле будет сохранено с пустым значением.
curl --location --request POST 'https://{DOMAIN NAME}/rest/api/Admission/ConfirmAdmission' \ --header 'Content-Type: application/json' \ --header 'X-REST-API-KEY: {REST API KEY}' \ --data-raw '{ "id": 30, "user_id": 1, "client_id": 6, "patient_id": 3, "admission_date": "2021-09-17 15:45:00", "admission_type": 4, "description": "Заметка к приему", "clinic_id": 1 }'
Пример запроса получения списка приемов
Если прием со статусом «accepted», то у приема будет поле invoices — счета связанные с приемом.
curl --location -g --request GET 'https://{DOMAIN NAME}/rest/api/Admission?offset=0&limit=50sort=[{"property":"admission_date","direction":"DESC"}]&filter=[{"property":"clinic_id","value":1,"operator":"="},{"property":"admission_date","value":"2021-09-01","operator":">="},{"property":"admission_date","value":"2021-09-03","operator":"<="}]' \ --header 'Content-Type: application/json' \ --header 'X-REST-API-KEY: {REST API KEY}'
Ответ сервера
{ "success": true, "message": "Records Retrieved Successfully", "data": { "totalCount": "1", "admission": [ { "id": "31", "admission_date": "2021-09-01 17:00:00", "description": "", "client_id": "6", "patient_id": "3", "user_id": "1", "type_id": "4", "admission_length": "00:01:00", "status": "save", "clinic_id": "1", "direct_direction": "0", "creator_id": "1", "create_date": "2021-09-17 16:54:04", "escorter_id": "0", "reception_write_channel": "vetmanager", "is_auto_create": "0", "pet": { "id": "3", "owner_id": "6", "type_id": "13", "alias": "Pet001", "sex": "unknown", "date_register": "2021-09-09 14:37:54", "birthday": null, "note": "", "breed_id": "444", "old_id": null, "color_id": "0", "deathnote": null, "deathdate": null, "chip_number": "", "lab_number": "", "status": "alive", "picture": null, "weight": "0.0000000000", "pet_type_data": { "id": "13", "title": "Кошачий", "picture": "cat", "type": "cat" }, "breed_data": { "id": "444", "title": "Ангорская", "pet_type_id": "13" } }, "client": { "id": "6", "address": "", "home_phone": "", "work_phone": "", "note": "", "type_id": null, "how_find": null, "balance": "0.0000000000", "email": "", "city": "", "city_id": "145", "date_register": "2021-09-09 14:37:37", "cell_phone": "0957778899", "zip": "", "registration_index": null, "vip": "0", "last_name": "Client001", "first_name": "Client001", "middle_name": "Client001", "status": "ACTIVE", "discount": "0", "passport_series": "", "lab_number": "", "street_id": "0", "apartment": "", "unsubscribe": "0", "in_blacklist": "0", "last_visit_date": "0000-00-00 00:00:00", "number_of_journal": "", "phone_prefix": "38" }, "wait_time": "" } ] } }
Пример запроса получения данных по приему
curl --location --request GET 'https://{DOMAIN NAME}/rest/api/Admission/30' \ --header 'Content-Type: application/json' \ --header 'X-REST-API-KEY: {REST API KEY}'
Ответ сервера
{ "success": true, "message": "Record Retrieved Successfully", "data": { "totalCount": 1, "admission": { "id": "30", "admission_date": "2021-09-17 15:45:00", "description": "Заметка к приему", "client_id": "6", "patient_id": "3", "user_id": "1", "type_id": "4", "admission_length": "00:15:00", "status": "save", "clinic_id": "1", "direct_direction": "0", "creator_id": "1", "create_date": "2021-09-17 13:22:58", "escorter_id": "0", "reception_write_channel": "vetmanager", "is_auto_create": "0", "pet": { "id": "3", "owner_id": "6", "type_id": "13", "alias": "Pet001", "sex": "unknown", "date_register": "2021-09-09 14:37:54", "birthday": null, "note": "", "breed_id": "444", "old_id": null, "color_id": "0", "deathnote": null, "deathdate": null, "chip_number": "", "lab_number": "", "status": "alive", "picture": null, "weight": "0.0000000000", "pet_type_data": { "id": "13", "title": "Кошачий", "picture": "cat", "type": "cat" }, "breed_data": { "id": "444", "title": "Ангорская", "pet_type_id": "13" } }, "client": { "id": "6", "address": "", "home_phone": "", "work_phone": "", "note": "", "type_id": null, "how_find": null, "balance": "0.0000000000", "email": "", "city": "", "city_id": "145", "date_register": "2021-09-09 14:37:37", "cell_phone": "0957778899", "zip": "", "registration_index": null, "vip": "0", "last_name": "Client001", "first_name": "Client001", "middle_name": "Client001", "status": "ACTIVE", "discount": "0", "passport_series": "", "lab_number": "", "street_id": "0", "apartment": "", "unsubscribe": "0", "in_blacklist": "0", "last_visit_date": "0000-00-00 00:00:00", "number_of_journal": "", "phone_prefix": "38", "unisender_phone_pristavka": "" }, "doctor_data": { "id": "1", "last_name": "admin", "first_name": "", "middle_name": "", "login": "admin", "passwd": "9205814c8bc98857f5e07f3bae30ad68", "position_id": "8", "email": "email1@mail.ru", "phone": "00000000000", "cell_phone": "0000000000", "address": "Address 1", "role_id": "7", "is_active": "1", "calc_percents": "1", "nickname": "admin", "youtrack_login": "", "youtrack_password": "", "last_change_pwd_date": "0000-00-00", "is_limited": "0", "carrotquest_id": "two:1", "sip_number": "", "user_inn": "" }, "wait_time": "" } } }
Обязательное поле id приема.
curl --location --request POST 'https://[DOMAIN NAME]/rest/api/Admission/CancelAdmission' \ --header 'Content-Type: application/json' \ --header 'X-REST-API-KEY: [REST API KEY]' \ --data-raw '{ "id": 1 }
Пример ответа сервера
{ "data": { "canceladmission": { "admission_id": 1 } }, "success": true }
Метод для подтверждения приема
Неподтвержденные приемы имеют статус not_confirmed
Обязательные поля:
id - ИД приема user_id - ИД доктора client_id - ИД пациента patient_id - ИД питомца admission_type - ИД цель обращения (тип приема) clinic_id - ИД клиники admission_date - Дата приема
curl --location --request POST 'https://[DOMAIN NAME]/rest/api/Admission/ConfirmAdmission' \ --header 'Content-Type: application/json' \ --header 'X-REST-API-KEY: [REST API KEY]' \ --data-raw '{ "id": 1, "user_id": 1, "client_id": 5, "patient_id": 3, "admission_type": 4, "clinic_id": 1, "admission_date": "2023-06-08 21:00:00" }'
Пример ответа сервера
{ "data": { "confirmadmission": { "admission_id": "1" } }, "success": true }
@property integer $id @property integer $admission_id @property string $action @property string $dt_start @property string $dt_end @property integer $length
Запрос к admissionJournal
curl --location -g --request GET 'http://one.localhost:8080/rest/api/admissionJournal?filter=[{'\''property'\'':'\''action'\'', '\''value'\'':'\''directed'\'', '\''operator'\'':'\''!='\''}]' \ --header 'X-REST-API-KEY: 4063b63ecba0792541c3bca8cf5e556a'
Пример ответа
{ "success": true, "message": "Records Retrieved Successfully", "data": { "totalCount": 1, "admissionJournal": [ { "id": 1, "admission_id": 1, "action": "planned", "dt_start": "2023-11-14 11:11:10", "dt_end": "2023-11-14 11:14:30", "length": 3, "admission": { "id": 1, "admission_date": "2023-11-14 12:15:00", "description": "", "client_id": 5, "patient_id": 2, "user_id": 32, "type_id": 12, "admission_length": "00:15:00", "status": "directed", "clinic_id": 1, "direct_direction": 0, "creator_id": 1, "create_date": "2023-11-14 11:11:10", "escorter_id": 0, "reception_write_channel": "vetmanager", "is_auto_create": 0, "invoices_sum": "0.0000000000" } } ] } }
Запрос одной записи
curl --location --request GET 'http://one.localhost:8080/rest/api/admissionJournal/1' \ --header 'X-REST-API-KEY: 4063b63ecba0792541c3bca8cf5e556a'
{ "success": true, "message": "Record Retrieved Successfully", "data": { "totalCount": 1, "admissionJournal": { "id": 1, "admission_id": 1, "action": "planned", "dt_start": "2023-11-14 11:11:10", "dt_end": "2023-11-14 11:14:30", "length": 3, "admission": { "id": 1, "admission_date": "2023-11-14 12:15:00", "description": "", "client_id": 5, "patient_id": 2, "user_id": 32, "type_id": 12, "admission_length": "00:15:00", "status": "directed", "clinic_id": 1, "direct_direction": 0, "creator_id": 1, "create_date": "2023-11-14 11:11:10", "escorter_id": 0, "reception_write_channel": "vetmanager", "is_auto_create": 0, "invoices_sum": "0.0000000000" } } } }