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



Модель 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

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

создание медкарты:
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 '[email protected]"/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": "Файлы успешно загружены"
            }
        }
    }
}