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

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

Модель MedicalCards — Медкарты

Разрешены запросы:
получение списка записей, получение одной записи, создание и обновление данных записи

*@property integer $patient_id // ID питомца
*@property integer $doctor_id // ID доктора
*@property integer $clinic_id // ID клиники
@property string $date_create // дата создания медкарты (формат Y-m-d H:i:s 2019-12-31 14:26:30)
@property integer $admission_type // ID цель обращения
*@property string $description // текст описание лечения
@property string $recomendation // текст рекомендации и лечение
@property integer $meet_result_id // ID результат посещения
@property float $weight // вес питомца (кг)
@property float $temperature // температура питомца
@property string $diagnos // диагнозы пример: '[{"id":"32","type":1},{"id":"11","type":1}]' - id - ID диагноза, type - всегда равен 1

Создание медкарты
Список обязательных полей

создание медкарты
patient_id
doctor_id
clinic_id
admission_type
description
recomendation
meet_result_id
weight
temperature
date_create <- это поле обязательное, но без него подставит текущую дату
curl --location --request POST 'https://{DOMAIN NAME}/rest/api/MedicalCards' \
--header 'Content-Type: application/json' \
--header 'X-REST-API-KEY: {REST API KEY}' \
--data-raw '{
"patient_id":"1",
"doctor_id":"1",
"clinic_id":"1",
"date_create":"2019-07-06 14:00:01",
"admission_type":"7",
"description":"текст описание лечения",
"recomendation":"текст рекомендаций по лечению",
"meet_result_id":0,
"weight":0.00,
"temperature":0.00,
"diagnos":'\''[{"id":"32","type":1},{"id":"11","type":1}]'\''
}'


Ответ сервера

{
     "success": true,
     "message": "Record(s) Created",
     "data": {
          "totalCount": 1,
          "medicalCards": [
     {
          "id": "3",
          "patient_id": "1",
          "date_create": "2019-07-06 14:00:01",
          "date_edit": "2019-07-06 14:00:01",
          "diagnos": "[{\"id\":\"32\",\"type\":1},{\"id\":\"11\",\"type\": 1}]",
          "recomendation": "текст рекомендаций по лечению",
          "invoice": null,
          "admission_type": "7",
          "weight": "0.0000000000",
          "temperature": "0.0000000000",
          "meet_result_id": "0",
          "description": "текст описание лечения",
          "next_meet_id": "0",
          "doctor_id": "1",
          "creator_id": "1",
          "status": "active",
          "calling_id": "0",
          "admission_id": "0",
          "diagnos_text": "",
          "diagnos_type_text": null,
          "clinic_id": "1",
          "patient": {
               "id": "1",
               "owner_id": "3",
               "type_id": null,
               "alias": "Гость",
               "sex": null,
               "date_register": "2013-01-17 09:17:53",
               "birthday": null,
               "note": "Питомец создан для реализации функционала создания
               счетов вет-аптеки",
               "breed_id": null,
               "old_id": null,
               "color_id": null,
               "deathnote": null,
               "deathdate": null,
               "chip_number": null,
               "lab_number": null,
               "status": "alive",
               "picture": null,
               "weight": "0.0000000000"
             }
          }
      ]
    }
}


Обновление медкарты
Список обязательных полей:

patient_id
doctor_id
clinic_id

curl --location --request PUT 'https://{DOMAIN NAME}/rest/api/MedicalCards/4' \
--header 'Content-Type: application/json' \
--header 'X-REST-API-KEY: {REST API KEY}' \
--data-raw '{
"patient_id":"1",
"doctor_id":"1",
"clinic_id":"1",
"date_create":"2019-07-06 14:00:01",
"admission_type":"7",
"description":"текст описание лечения",
"recomendation":"",
"meet_result_id":0,
"weight":0.00,
"temperature":0.00,
"diagnos":""
}'

Ответ сервера

{
     "success": true,
     "data": {
          "medicalcards": {
          "patient_id": "1",
               "doctor_id": "1",
               "clinic_id": "1",
               "date_create": "2019-07-06 14:00:01",
               "admission_type": "7",
               "description": "текст описание лечения",
               "recomendation": "",
               "meet_result_id": 0,
               "weight": 0,
               "temperature": 0,
               "diagnos": "",
               "client_id": 3
          }
     }
}


Получение списка диагнозов

curl --location --request GET 'https://{DOMAIN NAME}/rest/api/Diagnoses' \
--header 'Content-Type: application/json' \
--header 'X-REST-API-KEY: {REST API KEY}'

Ответ сервера

{
     "success": true,
     "message": "Records Retrieved Successfully",
     "data": {
          "totalCount": "131",
          "diagnoses": [
          {
               "id": "1",
               "title": "Воспаление кишечника хроническое",
               "status": "ACTIVE"
          },
          {
               "id": "2",
               "title": "Гастроэнтерит",
               "status": "ACTIVE"
          },
          *********
          {
               "id": "100",
               "title": "Пиодермия",
               "status": "ACTIVE"
          }
     ]
   }
}

Получение списка медкарт по клиенту

curl --location --request GET 'https://{DOMAIN NAME}/rest/api/MedicalCards/MedicalcardsDataByClient?client_id=6&pet_id=3&offset=0&limit=10' \
--header 'Content-Type: application/json' \
--header 'X-REST-API-KEY: {REST API KEY}'
{
     "data": {
     "medicalcards": [
     {
          "medical_card_id": "2",
          "date_edit": "2021-09-20 11:33:00",
          "diagnos": "[{\"id\":32,\"type\":1}]",
               "doctor_id": "1",
               "medical_card_status": "active",
               "healing_process": "
               ",
               "recomendation": "",
               "weight": "0.0000000000",
               "temperature": "0.0000000000",
               "meet_result_id": "0",
               "admission_type": "4",
               "pet_id": "3",
               "alias": "Pet001",
               "birthday": null,
               "sex": "unknown",
               "note": "",
               "pet_type": "cat",
               "breed": "Ангорская",
               "client_id": "6",
               "first_name": "Client001",
               "last_name": "Client001",
               "middle_name": "Client001",
               "phone": "0957778899",
               "doctor_nickname": "admin",
               "doctor_first_name": "",
               "doctor_last_name": "admin",
               "doctor_middle_name": "",
               "editable": "1",
               "meet_result_title": "",
               "admission_type_title": "Вторичный",
               "diagnos_data": [
                    {
                         "diagnos_id": "32",
                         "title": "Анемия"
                    }
               ]
          }
     ]
},
"success": true
}

Параметры запроса:

@property integer $client_id // ID клиента
@property integer $pet_id // ID питомца
@property integer $offset // сколько пропустить записей для выборки
@property integer $limit // сколько записей выбрать

Получение данных медкарты

curl --location --request GET 'https://{DOMAIN NAME}/rest/api/MedicalCards/MedicalcardItemByClient?client_id=6&medcard_id=2' \
--header 'Content-Type: application/json' \
--header 'X-REST-API-KEY: {REST API KEY}'

Ответ сервера

{
     "data": {
          "medicalcards": [
          {
               "medical_card_id": "2",
               "date_edit": "2021-09-20 11:33:00",
               "diagnos": "[{\"id\":32,\"type\":1}]",
               "doctor_id": "1",
               "medical_card_status": "active",
               "healing_process": "
               ",
               "recomendation": "",
               "weight": "0.0000000000",
               "temperature": "0.0000000000",
               "meet_result_id": "0",
               "admission_type": "4",
               "admission_id": "33",
               "pet_id": "3",
               "alias": "Pet001",
               "birthday": null,
               "sex": "unknown",
               "note": "",
               "pet_type": "cat",
               "breed": "Ангорская",
               "client_id": "6",
               "first_name": "Client001",
               "last_name": "Client001",
               "middle_name": "Client001",
               "phone": "0957778899",
               "doctor_nickname": "admin",
               "doctor_first_name": "",
               "doctor_last_name": "admin",
               "doctor_middle_name": "",
               "editable": "1",
               "meet_result_title": "",
               "admission_type_title": "Вторичный",
               "diagnos_data": [
          {
               "diagnos_id": "32",
               "title": "Анемия"
          }
          ],
               "basis_for_admission": "Вторичный на 11:34 к admin (№33)",
               "admission_data": {
                    "id": "33",
                    "admission_date": "2021-09-20 11:34:44",
                    "description": "На основании медкарты",
                    "client_id": "6",
                    "patient_id": "3",
                    "user_id": "1",
                    "type_id": "4",
                    "admission_length": "00:00:00",
                    "status": "accepted",
                    "clinic_id": "1",
                    "direct_direction": "1",
                    "creator_id": "1",
                    "create_date": "2021-09-20 11:34:44",
                    "escorter_id": "0",
                    "reception_write_channel": "vetmanager",
                    "is_auto_create": "1",
                    "wait_time": ""
               }
          }
     },
    "success": true
}

                

Параметры запроса:

@property integer $client_id // ID клиента
@property integer $medcard_id // ID медкарты

Получение списка вакцинаций

curl --location --request GET 'https://{DOMAIN NAME}/rest/api/MedicalCards/Vaccinations?pet_id=3' \
--header 'Content-Type: application/json' \
--header 'X-REST-API-KEY: {REST API KEY}'

Ответ сервера

{
     "data": {
     "medicalcards": [
          {
               "id": "1",
               "name": "Биовак DPAL",
               "pet_id": "3",
               "date": "2021-09-20 00:00:00",
               "date_nexttime": "0000-00-00",
               "vaccine_id": "2727",
               "birthday": null,
               "birthday_at_time": "",
               "medcard_id": "5",
               "doza_type_id": "0",
               "doza_value": "1.0000000000",
               "sale_param_id": "288",
               "vaccine_type": "2",
               "vaccine_description": "",
               "vaccine_type_title": "Вторичная",
               "next_admission_id": "0",
               "next_visit_time: "",
               "pet_age_at_time_vaccination": "не указано"
          }
     ]
},
"success": true
}

Описание полей: 

  • "name" - наименование
  • "pet_id" - питомец
  • "date" - дата вакцинации
  • "date_nexttime" - дата повторной вакцинации
  • "vaccine_id" - вакцина
  • "birthday" - дата рождения
  • "birthday_at_time" - время рождения
  • "medcard_id" - медкарта
  • "doza_type_id" - доза, ед. измерения
  • "doza_value" - доза
  • "sale_param_id" - ID параметра продажи
  • "vaccine_type" - тип вакцинации
  • "vaccine_description" - примечание
  • "vaccine_type_title" - тип вакцинации
  • "next_admission_id" - следующий прием
  • "next_visit_time" - время повторного визита
  • "pet_age_at_time_vaccination" - возраст питомца во время вакцинации


Получение списка текстовых шаблонов для медкарты

В параметре tpls_for могут быть значения 1 — шаблоны для описания медкарты, 2 — шаблоны для рекомендаций медкарты

curl --location --request GET 'https://{DOMAIN NAME}/rest/api/MedicalCards/MedcardsTextTemplates?tpls_for=1' \
--header 'Content-Type: application/json' \
--header 'X-REST-API-KEY: {REST API KEY}'

Ответ сервера

{
     "data": {
          "medicalcards": [
     {
          "id": "1",
          "title": "test",
          "full_text": "
          1. ?глаза
          2. лапы
          3. хвост
          "
     },
     {
          "id": "2",
          "title": "шаблон тест",
          "full_text": "
          1. ?глаза
          2. уши
          3. хвост
          4. лапы
          "
     }
     ****
  ]
},
"success": true
}

Добавление вакцинации в медкарту

curl --location --request POST 'https://{DOMAIN NAME}/rest/api/MedicalCards/AddVaccination' \
--header 'Content-Type: application/json' \
--header 'X-REST-API-KEY: {REST API KEY}' \
--data-raw '{
"medcard_id":5,
"clinic_id":1,
"pet_id":3,
"doctor_id":1,
"vaccine_id":"2727_288",
"vaccine_type":2,
"doza_value":1,
"vaccine_date":"2019-09-01 14:57",
"delete_vaccine_nextdates":0,
"plane_next_visit_by_repead_vaccine_date":0,
"action":"add",
"vaccine_description":"",
"pet_weight":0,
"pet_temperature":0,
"next_date":"2019-12-31",
"next_visit_time":"15:00"
}'

Ответ сервера

{
     "data": {
          "vaccine": {
               "medcard_id": 5,
               "clinic_id": 1,
               "pet_id": 3,
               "doctor_id": 1,
               "vaccine_id": "2727_288",
               "vaccine_type": 2,
               "doza_value": 1,
               "vaccine_date": "2019-09-01 14:57",
               "delete_vaccine_nextdates": 0,
               "plane_next_visit_by_repead_vaccine_date": 0,
               "action": "add",
               "vaccine_description": "",
               "pet_weight": 0,
               "pet_temperature": 0,
               "next_date": "2019-12-31",
               "next_visit_time": "15:00",
               "id": 2
          }
          },
               "success": true
          }

Параметры запроса

*@property integer $medcard_id // ID медкарты
*@property integer $clinic_id // ID клиники
*@property integer $pet_id // ID питомца
*@property integer $doctor_id // ID доктора
*@property string $vaccine_id // ID вакцины
*@property integer $vaccine_type // ID типа вакцинации
*@property integer $doza_value // кол-во
@property string $vaccine_date // дата вакцинации (формат Y-m-d H:i 2019-12-31 14:57)
@property integer $delete_vaccine_nextdates // Удалить предыдущие даты повторов значения: 0/1
@property integer $plane_next_visit_by_repead_vaccine_date // Запланировать визит на дату повтора значения: 0/1
@property string $action значения: "add"
@property string $vaccine_description // примечание к вакцинации
@property float $pet_weight // вес питомца
@property float $pet_temperature // температура питомца
@property string $next_date // дата следующей вакцинации (формат Y-m-d 2019-12-31)
@property string $next_visit_time // время следующего визита (формат H:i 15-00)

Редактирование вакцинации

curl --location --request POST 'https://{DOMAIN NAME}/rest/api/MedicalCards/AddVaccination' \
--header 'Content-Type: application/json' \
--header 'X-REST-API-KEY: {REST API KEY}'
--data-raw '{
"id":2,
"medcard_id":5,
"clinic_id":1,
"pet_id":3,
"doctor_id":1,
"vaccine_id":"2727_288",
"vaccine_type":2,
"doza_value":1,
"vaccine_date":"2019-09-01 14:57",
"delete_vaccine_nextdates":0,
"plane_next_visit_by_repead_vaccine_date":0,
"action":"edit",
"vaccine_description":"",
"pet_weight":0,
"pet_temperature":0,
"next_date":"2019-12-31",
"next_visit_time":"15:00"
}'

Примечания:

  • если указана дата следующей вакцинации $next_date, тогда можно параметру $plane_next_visit_by_repead_vaccine_date выставить значение  1 иначе должен быть равен 0
  • если параметр $plane_next_visit_by_repead_vaccine_date равен 1, тогда можно указать время повторного визита $next_visit_time

Ответ сервера

{
     "data": {
          "vaccine": {
          "id": 2,
          "medcard_id": 5,
          "clinic_id": 1,
          "pet_id": 3,
          "doctor_id": 1,
          "vaccine_id": "2727_288",
          "vaccine_type": 2,
          "doza_value": 1,
          "vaccine_date": "2019-09-01 14:57",
          "delete_vaccine_nextdates": 0,
          "plane_next_visit_by_repead_vaccine_date": 0,
          "action": "edit",
          "vaccine_description": "",
          "pet_weight": 0,
          "pet_temperature": 0,
          "next_date": "2019-12-31",
          "next_visit_time": "15:00"
     }
     },
     "success": true
}


Загрузка файлов для медкарты

curl --location --request POST 'https://{DOMAIN NAME}/rest/api/MedicalCards/UploadFiles' \
--header 'Content-Type: application/json' \
--header 'X-REST-API-KEY: {REST API KEY}' \
--form 'request_files=@"/home/siriussl/DOWNLOADS/1234.png"' \
--form 'client_id="6"' \
--form 'pet_id="3"' \
--form 'medcard_id="2"'

Параметры запроса

request_files[] - массив файлов, как при обычной форме аплода файлов
*@property integer $client_id // ID клиента
*@property integer $pet_id // ID питомца
*@property integer $medcard_id // ID медкарты


Ответ сервера

{
     "success": true,
     "data": {
          "upload_data": {
               "msg": "Файлы успешно загружены",
               "params": {
                    "url": "https://vetmanager-public-user-files.s3.amazonaws.com/one/var/downloads/2021.09.20/0320fc2707e3835.png",
"filename": "https://vetmanager-public-user-files.s3.amazonaws.com/one/var/downloads/2021.09.20/0320fc2707e3835.png",
                    "filetype": "image",
                    "filesize": 291660,
                    "filetitle": "filename",
                    "image_resolution": {
                         "width": 300,
                         "height": 143.7
                    },
                    "msg": "Файлы успешно загружены"
                   }
          }
     }
}


Как получить текстовое значение admission_type?

Чтобы узнать текстовое значение для admission_type, можно выполнить запрос

{{Domain URL}}/rest/api/ComboManualName/

найти справочник с именем: Тип Приема, у него в свойстве comboManualItems найти item у которого значение поля value = значение поля admission_type в медкарте.  

Powered by