fix(api): доступ анонимных пациентов к врачу без идентифицирующих данных #95

Closed
opened 2026-10-04 16:47:43 +03:00 by Soyavo · 0 comments
Owner

Описание

Анонимный вход создавал профиль без врача, хотя анонимность должна ограничивать сбор идентифицирующих данных, а не доступ к помощи.

Желаемый результат

Новый профиль назначается существующему врачу прототипа и отображается под устойчивым условным номером. Старые профили подключаются по явному действию пациента. Запрос на связь виден в кабинете врача.

Подзадачи

  • Настроить маршрутизацию новых анонимных профилей без identity-записи.
  • Добавить явное подключение врача для прежних профилей.
  • Показать условные номера и запросы на связь врачу.
  • Добавить API доступности первичного опроса.
  • Проверить доступ к карточке только назначенного врача и общий первичный опрос.

Анализ

Затрагиваются app/api/patient_web.py, doctor_views.py, routes.py, app/services/anonymous_care.py, config/anonymous_care.yaml и tests/test_api_patient_web.py. Общие схемы не меняются.

Как проверить

make lint && make test. Создать анонимный профиль, пройти согласие/возраст и запросить связь; проверить список и карточку врача. При INTAKE_DEMO=1 и демо-часах после согласия открывается общий первичный опрос.

Ограничения и риски

Без ФИО, СНИЛС и полиса; clinical release gate и правила кризисной помощи не меняются. Старые профили не раскрываются врачу автоматически. Полноценная переписка не входит в эту правку — используется существующий запрос на контакт.

Лог выполнения

2026-10-04

Изменения подготовлены по запросу пользователя, затем перенесены на актуальный origin/dev без конфликтов. До переноса: 1035 тестов прошли, один пропущен; lint и сборка web успешны. После переноса на 079c300: lint успешен, 1042 теста прошли, один пропущен, сборка web успешна. Ветка feat/95-anonymous-care отправлена. Браузерная проверка заблокирована недоступностью административной проверки инструмента.

## Описание Анонимный вход создавал профиль без врача, хотя анонимность должна ограничивать сбор идентифицирующих данных, а не доступ к помощи. ## Желаемый результат Новый профиль назначается существующему врачу прототипа и отображается под устойчивым условным номером. Старые профили подключаются по явному действию пациента. Запрос на связь виден в кабинете врача. ## Подзадачи - [x] Настроить маршрутизацию новых анонимных профилей без identity-записи. - [x] Добавить явное подключение врача для прежних профилей. - [x] Показать условные номера и запросы на связь врачу. - [x] Добавить API доступности первичного опроса. - [x] Проверить доступ к карточке только назначенного врача и общий первичный опрос. ## Анализ Затрагиваются app/api/patient_web.py, doctor_views.py, routes.py, app/services/anonymous_care.py, config/anonymous_care.yaml и tests/test_api_patient_web.py. Общие схемы не меняются. ## Как проверить make lint && make test. Создать анонимный профиль, пройти согласие/возраст и запросить связь; проверить список и карточку врача. При INTAKE_DEMO=1 и демо-часах после согласия открывается общий первичный опрос. ## Ограничения и риски Без ФИО, СНИЛС и полиса; clinical release gate и правила кризисной помощи не меняются. Старые профили не раскрываются врачу автоматически. Полноценная переписка не входит в эту правку — используется существующий запрос на контакт. ## Лог выполнения ### 2026-10-04 Изменения подготовлены по запросу пользователя, затем перенесены на актуальный origin/dev без конфликтов. До переноса: 1035 тестов прошли, один пропущен; lint и сборка web успешны. После переноса на 079c300: lint успешен, 1042 теста прошли, один пропущен, сборка web успешна. Ветка feat/95-anonymous-care отправлена. Браузерная проверка заблокирована недоступностью административной проверки инструмента.
Soyavo added this to the Этап 1 · Ветераны СВО milestone 2026-10-04 16:47:43 +03:00
Soyavo added the lane/Bsize/1backendP1fix labels 2026-10-04 16:47:43 +03:00
Soyavo self-assigned this 2026-10-04 16:47:43 +03:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Reference: MedITron/PTSRaiAgent#95