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

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

Модель 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 'http://{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 'http://{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 'http://{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 'http://{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 'http://{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 'http://{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_date": "",
                    "pet_age_at_time_vaccination": "не указано"
               }
          ]
     },
     "success": true
}

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

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

curl --location --request GET 'http://{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 'http://{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 'http://{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 'http://{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": "Файлы успешно загружены"
               }
          }
     }
}


👆 На этом пока всё