[bot][A] Ветеран: подключение по коду, стартовый скрининг PC-PTSD-5 → PCL-5, PHQ-9, AUDIT-C, вопрос об оружии #36
Notifications
Due Date
No due date set.
Blocks
Depends on
Reference: MedITron/PTSRaiAgent#36
Reference in New Issue
Block a user
Описание
CLINICAL_MODULES §1, CJM Андрея (этапы 3–4), точка входа — QR/код от врача (диспансеризация, фонд «Защитники Отечества»). Барьер: страх «учёта», лишения прав на оружие и вождение — отвечаем прямо и честно (тексты в
config/texts/, утверждает психиатр).Желаемый результат
app/dialog/flows/veteran.py:/start <код>→IdentityProvider(esia_mock) → согласие (ядро) → короткое «что нормально после возвращения» → PC-PTSD-5 (если был травматический опыт) → PCL-5 → PHQ-9 (п.9 только кнопками) → AUDIT-C → вопрос о доступе к оружию (блок безопасности при риске).extract_itemс уточнением при confidence < 0.5.veteran(+depressionпри PHQ-9 ≥ 10) в профиль.tests/test_dialog_veteran_onboarding.py: прохождение онбординга Андрея на mock-LLM.Зона и владение файлами
Lane A (бот, Егор) — владеет:
app/dialog/**,app/channels/**,app/llm/**,config/texts/**,tests/test_dialog_*.py,tests/test_telegram*.py.Замороженные контракты (менять только отдельным мелким PR с пингом всех):
app/core/types.py,app/dialog/contracts.py,app/api/schemas.py,app/integrations/base.py,app/services/contracts.py,app/main.py,app/config.py,config/modules.yaml,config/rules.yaml,config/scales/*,pyproject.toml/uv.lock,docker-compose.yml,Makefile.Лог выполнения
2026-10-03
2026-10-03
app/dialog/flows/veteran_onboarding.py— состоянияveteran.onboarding.{start,exposure,pcl5,phq9,auditc,weapon,result}; текстыconfig/texts/veteran_onboarding.yaml(черновик, утверждает психиатр #8); тестыtests/test_dialog_veteran_onboarding.py(10 шт.).Engine.handleна mock-LLM + SQLite: код → согласие → возраст → вступление → травм. опыт «да» → PC-PTSD-5 (4) → PCL-5 (46) → PHQ-9 (14, п.9=0) → AUDIT-C (3) → оружие «нет» → итог → idle; модули[veteran, depression].make lint testзелёные.trauma_exposure=false).dialog_state.data["facts"]:trauma_exposure(bool|None),weapon_access(bool|None;others_or_safe= True),weapon_access_choice(none|self|others_or_safe|declined),weapon_access_at,weapon_safety_block.PatientSnapshot.weapon_accessстроить изfacts["weapon_access"].settings.weapon_risk_flags: п.9 PHQ-9, C-SSRS, AUDIT-C+; safety-событие; кризис).data["veteran_onboarding"], послеdoctor_ack(вход вidle) онбординг продолжается; уже сохранённые шкалы пропускаются. Для этого зарегистрирован@on_enter("idle")(движок не менялся).