File size: 1,408 Bytes
b5897db
 
 
 
b690278
 
 
d7e3980
b690278
2568a5f
b690278
 
b5897db
a8cfd72
 
 
b690278
 
d7e3980
b690278
2568a5f
b690278
b5897db
 
 
 
 
 
 
 
 
a8cfd72
 
b5897db
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
from __future__ import annotations

from typing import Dict, List

from backend.core.analysis_knobs import (
    DEFAULT_BOTTOM_UP_INSTRUCTIONS,
    DEFAULT_BOTTOM_UP_ATTRIBUTES,
    DEFAULT_RUBRIC_INSTRUCTIONS,
    DEFAULT_RUBRIC_ATTRIBUTES,
    DEFAULT_TOP_DOWN_INSTRUCTIONS,
    DEFAULT_TOP_DOWN_ATTRIBUTES,
)

DEFAULT_ANALYSIS_TEMPLATE: Dict[str, object] = {
    "template_id": "analysis_default",
    "name": "Default Analysis",
    "bottom_up_instructions": DEFAULT_BOTTOM_UP_INSTRUCTIONS,
    "bottom_up_attributes": list(DEFAULT_BOTTOM_UP_ATTRIBUTES),
    "rubric_instructions": DEFAULT_RUBRIC_INSTRUCTIONS,
    "rubric_attributes": list(DEFAULT_RUBRIC_ATTRIBUTES),
    "top_down_instructions": DEFAULT_TOP_DOWN_INSTRUCTIONS,
    "top_down_attributes": list(DEFAULT_TOP_DOWN_ATTRIBUTES),
    "categories": [
        {"category_id": "symptoms_concerns", "label": "Symptoms/concerns"},
        {"category_id": "daily_management", "label": "Daily management"},
        {"category_id": "barriers_constraints", "label": "Barriers/constraints"},
        {"category_id": "support_resources", "label": "Support/resources"},
    ],
}


def default_analysis_categories() -> List[Dict[str, str]]:
    cats = DEFAULT_ANALYSIS_TEMPLATE.get("categories")  # type: ignore[assignment]
    if isinstance(cats, list):
        return [c for c in cats if isinstance(c, dict)]  # type: ignore[return-value]
    return []