feat(core): scale engine with YAML schema and deterministic scoring
CI / ruff · pytest (pull_request) Successful in 23s
CI / ruff · pytest (pull_request) Successful in 23s
Pydantic schema for config/scales/*.yaml, cached loader, score() with severity bands (sex-specific for AUDIT-C), rule-based C-SSRS triage, flags (PHQ-9 item 9, PCL-5 >= 33, PHQ-4 subscales) and delta(). Starting literature thresholds for phq9, gad7, pcl5, auditc, pcptsd5, cssrs_screen, phq4; final values are approved by the psychiatrist (#8). Refs #3 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,31 @@
|
||||
# Стартовые пороги из литературы, финальные утверждает психиатр (issue #8).
|
||||
# PHQ-4 (Kroenke et al., 2009) = GAD-2 (п.1–2) + PHQ-2 (п.3–4). Модуль family.
|
||||
# Общий балл: 0–2 норма, 3–5 лёгкая, 6–8 умеренная, 9–12 тяжёлая.
|
||||
# Подшкалы: GAD-2 ≥ 3 и PHQ-2 ≥ 3 — положительный скрининг → полный GAD-7 / PHQ-9.
|
||||
id: phq4
|
||||
title: "Опросник здоровья пациента (PHQ-4)"
|
||||
recall_period: "последние 2 недели"
|
||||
instruction: "Как часто за последние 2 недели Вас беспокоили следующие проблемы?"
|
||||
license_note: "PHQ-4 (Pfizer) — свободное использование, разрешения не требуется."
|
||||
translation_note: "Пункты из стандартных русских версий GAD-7 и PHQ-9. Финальную формулировку утверждает психиатр."
|
||||
options:
|
||||
- {value: 0, label: "Ни разу"}
|
||||
- {value: 1, label: "Несколько дней"}
|
||||
- {value: 2, label: "Более половины дней"}
|
||||
- {value: 3, label: "Почти каждый день"}
|
||||
items:
|
||||
- {id: phq4_1, text: "Вы нервничали, тревожились или были на грани срыва"}
|
||||
- {id: phq4_2, text: "Вы были не в состоянии остановить или контролировать своё беспокойство"}
|
||||
- {id: phq4_3, text: "Вам не хотелось ничего делать"}
|
||||
- {id: phq4_4, text: "У Вас было плохое настроение, Вы были подавлены или испытывали чувство безысходности"}
|
||||
range: {min: 0, max: 12}
|
||||
severity:
|
||||
- {min: 0, max: 2, code: normal, label: "Норма"}
|
||||
- {min: 3, max: 5, code: mild, label: "Лёгкая"}
|
||||
- {min: 6, max: 8, code: moderate, label: "Умеренная"}
|
||||
- {min: 9, max: 12, code: severe, label: "Тяжёлая"}
|
||||
flags:
|
||||
- code: phq4_anxiety_positive
|
||||
when: {sum_of: [phq4_1, phq4_2], op: ">=", value: 3}
|
||||
- code: phq4_depression_positive
|
||||
when: {sum_of: [phq4_3, phq4_4], op: ">=", value: 3}
|
||||
Reference in New Issue
Block a user