Доступ к приемам

Доступ к приемам по АПИ

Поля модели Admission

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

  • save - запланированный
  • directed - ожидает/направлен на прием
  • in_treatment - направлен на прием и находится у врача
  • accepted - принятый
  • delayed - просроченный
  • not_confirmed - не подтвержденный прием, приемы с таким статусом создаются через сторонние сервисы
  • not_approved - не подтвержденный прием, приемы с таким статусом создаются в приложении vetmanager, если не указаны цель обращения или или доктор или пациент или клиент.
  • deleted - удаленные приемы

Значение поля confirmation:  

Значение данного поля по дефолту установленно null, оно формируется в зависимости от того, что выбрал клиент, когда к нему пришло сообщение о приеме на телефон от сервиса Квикби. У клиента есть 3 варианта ответа: подтвердить приём, отменить или перенести. В зависимости от того, что он нажмёт сформируется одно из 3х вариантов: 

  • confirmed -  подтверждение 
  • cancelled -  отмена 
  • postponed -  перенос 

Все записи на прием, созданные через 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
}
 


Модель AdmissionJournal

@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"
            }
        }
    }
}



Powered by