Что такое patient_key и как его получить
patient_key — это уникальный ключ авторизации пациента, который используется для получения информации о персональными медицинскими данными.
Основные способы получения:
- Через метод authPatient, если личный кабинет пациента уже создан
— Ввод логина и пароля пациента или
— Ввод подтверждённого номера телефона и кода из SMS
- Через authPatient + checkAuthCode, если включена двухфакторная авторизация
(при этом отправка SMS настраивается в клинике через интеграцию)
Пример:
- Пациент вводит логин/пароль или номер телефона
- Получает SMS-код
- Вводит код
- МИС вызывает authPatient или checkAuthCode
- Возвращается patient_key, с которым можно работать
После получения ключа его можно обновить через метод refreshPatientKey.
Время действия:
- Ключ действует 3 дня
- После истечения срока его можно:
— обновить через refreshPatientKey
— запросить заново через авторизацию
Обновление ключа (refreshPatientKey)
Если сессия пациента не должна завершиться — ключ можно продлить, не проходя авторизацию повторно:
Как создать и подключить личный кабинет пациента
Личный кабинет можно создать двумя способами:
- Вручную внутри МИС (админом)
- С помощью API через метод initPatient
Если в карточке пациента не проставлены чекбоксы отправки логина и пароля — данные сгенерируются, но не будут отправлены пациенту. Чтобы передать данные по SMS или email, отметьте их чекбоксом в карте пациента.
Обновление логина/пароля (updatePatientAuth)
Если нужно изменить логин или пароль пациента — или повторно отправить их — можно использовать:
POST /updatePatientAuth { "patient_key": "xxx", "login": "new_login", "password": "new_password", "send_sms": true, "send_email": false }
Авторизация пациента
Авторизация в личном кабинете происходит через метод authPatient.
Варианты:
- По логину и паролю
- По номеру телефона и коду из SMS
Если включена двухфакторная авторизация, потребуется ещё и checkAuthCode.
Только метод authPatient возвращает patient_key — именно его нужно использовать для дальнейшей работы с API.
Пример сценария: регистрация и вход
- Пациент регистрируется через сайт или в клинике
- В МИС вызывается initPatient — логин и пароль отправляются пациенту
- Пациент авторизуется через форму (ввод логина/пароля или телефона и кода)
- Вызов authPatient возвращает patient_key
- Все дальнейшие действия (просмотр записей, документов и пр.) выполняются с использованием patient_key
Связанные пациенты и работа с ними через API
В рамках личного кабинета пациента API предоставляет возможность не только получать данные по текущему пациенту, но и обращаться к информации по связанным пациентам (например, дети, пожилые родственники, доверенные лица).
Методы, поддерживающие связанных пациентов
Некоторые методы отдают список данных (документов, файлов и пр.) сразу по всем пациентам, к которым есть доступ:
- getPatientInfo
- getPatientDocuments
- getPatientDocumentDetails
- getPatientFiles
- getPatientLabResults
- getPatientPrograms
- getPatientConsultations
- getPatientProgramDetails
Методы возвращают список данных, включая записи по связанным пациентам — никаких дополнительных параметров не нужно.
Методы с параметром patient_id
Для методов, которые возвращают один элемент (файл, консультацию и т.п.), можно явно указать patient_id, чтобы получить данные по связанному пациенту:
- getPatientFileDetails
- getPatientLabResultDetails
- getPatientConsultationDetails
Если параметр не указан — данные вернутся по основному пациенту.
Загрузка файла в карту связанного пациента
Метод uploadPatientFile позволяет прикрепить файл как к текущему пациенту, так и к связанному:
- Если в теле запроса передан patient_id — файл загрузится в карту этого пациента
- Если параметр не указан — файл добавляется к основному пациенту
- Если доступа к указанному patient_id нет — API вернёт ошибку Пациент не найден