File size: 10,757 Bytes
6830eb0
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
from __future__ import annotations
from pydantic import BaseModel, Field

from typing import Optional, List
from pydantic import BaseModel, Field

class SOAPNote(BaseModel):
    """
    A SOAP note is structured into four sections: Subjective, Objective, Assessment, and Plan.
    These fields help track the client's self-reported experiences, observable data, the clinician's assessment, and the future treatment plan.
    """
    Subjective: Optional[str] = Field(None, description="Client's self-reported symptoms, emotions, concerns, and relevant personal history.")
    Objective: Optional[str] = Field(None, description="Observable and measurable data, such as behavior, affect, test results, or vital signs.")
    Assessment: Optional[str] = Field(None, description="Clinician's interpretation of the subjective and objective data, including diagnosis and progress.")
    Plan: Optional[str] = Field(None, description="Outline of next steps, changes to treatment, referrals, and any planned interventions.")

class DAPNote(BaseModel):
    """
    A DAP note includes Data, Assessment, and Plan. It condenses subjective and objective info into a single 'Data' section.
    """
    Data: Optional[str] = Field(None, description="Combined subjective and objective information: client's statements, therapist observations, relevant tests.")
    Assessment: Optional[str] = Field(None, description="Therapist's interpretation of the data, clinical impressions, and identified issues.")
    Plan: Optional[str] = Field(None, description="Next steps, goals for future sessions, and recommended interventions or activities.")

class BIRPNote(BaseModel):
    """
    A BIRP note includes Behavior, Intervention, Response, and Plan, emphasizing the therapist's interventions and the client's reaction.
    """
    Behavior: Optional[str] = Field(None, description="Client's behavior during the session (verbal/non-verbal) and any observations made by the therapist.")
    Intervention: Optional[str] = Field(None, description="Specific techniques, methods, or therapies used by the clinician during the session.")
    Response: Optional[str] = Field(None, description="How the client responded to the interventions, including changes in affect, participation, or symptom relief.")
    Plan: Optional[str] = Field(None, description="Follow-up steps, homework assignments, referrals, or next session focus.")

class PIRPNote(BaseModel):
    """
    A PIRP note is Problem, Intervention, Response, and Plan, focusing on a particular client problem.
    """
    Problem: Optional[str] = Field(None, description="The client's presenting problem, symptoms, or reason for seeking therapy.")
    Intervention: Optional[str] = Field(None, description="Actions taken by the therapist to address the identified problem.")
    Response: Optional[str] = Field(None, description="Client's reaction or changes after the intervention was applied.")
    Plan: Optional[str] = Field(None, description="Next steps for addressing the problem, including future sessions, techniques, or referrals.")

class GIRPNote(BaseModel):
    """
    A GIRP note focuses on Goals, Intervention, Response, and Plan, centering around client-defined goals.
    """
    Goals: Optional[str] = Field(None, description="The client's short-term and long-term therapy goals or objectives.")
    Intervention: Optional[str] = Field(None, description="Therapeutic interventions used to help the client work toward these goals.")
    Response: Optional[str] = Field(None, description="How the client responded to the interventions and their progress toward goals.")
    Plan: Optional[str] = Field(None, description="Plan for future sessions, homework, referrals, or adjustments to help achieve goals.")

class SIRPNote(BaseModel):
    """
    A SIRP note organizes notes by Situation, Intervention, Response, and Plan, emphasizing the client's current situation.
    """
    Situation: Optional[str] = Field(None, description="The client's presenting situation, including current symptoms, concerns, and background info.")
    Intervention: Optional[str] = Field(None, description="Interventions, assessments, and recommendations made during the session.")
    Response: Optional[str] = Field(None, description="Client's response to the intervention, observed changes or feedback.")
    Plan: Optional[str] = Field(None, description="Next steps, follow-up appointments, referrals, and any planned adjustments.")

class FAIRFDARPNote(BaseModel):
    """
    A FAIR/F-DARP note includes Focus, Assessment, Intervention, Response (FAIR) 
    or Focus, Data, Action, Response, Plan (F-DARP). 
    Here we combine them: Focus, Data, Action, Response, (and optionally Plan).
    """
    Focus: Optional[str] = Field(None, description="Focus of the note, such as a nursing diagnosis, event, or primary concern.")
    Data: Optional[str] = Field(None, description="Subjective and objective data about the client/patient condition.")
    Action: Optional[str] = Field(None, description="Actions taken by the provider in response to the data (e.g., treatments, education).")
    Response: Optional[str] = Field(None, description="Client's response to the actions taken.")
    Plan: Optional[str] = Field(None, description="Future steps or follow-up if using the full F-DARP format.")

class DARENote(BaseModel):
    """
    A DARE note stands for Data, Action, Response, Education. Emphasizes client education and their response.
    """
    Data: Optional[str] = Field(None, description="Subjective and objective client information and therapist's observations.")
    Action: Optional[str] = Field(None, description="Specific actions, treatments, or interventions the therapist took.")
    Response: Optional[str] = Field(None, description="Client's response to those actions, improvements, or changes in symptoms.")
    Education: Optional[str] = Field(None, description="Education provided to the client about their condition, treatments, or coping strategies.")

class PIENote(BaseModel):
    """
    A PIE note: Problem, Intervention, Evaluation. It's similar to PIRP but focuses on evaluating interventions.
    """
    Problem: Optional[str] = Field(None, description="Client's identified problem, whether mental health symptom or behavior issue.")
    Intervention: Optional[str] = Field(None, description="What the therapist did to address the problem (techniques, strategies).")
    Evaluation: Optional[str] = Field(None, description="How effective the intervention was, changes in the client, and next steps.")

class SOAPIERNote(BaseModel):
    """
    A SOAPIER note expands SOAP by adding Intervention, Evaluation, and Revision sections for more comprehensive documentation.
    """
    Subjective: Optional[str] = Field(None, description="Client's subjective complaints, feelings, statements.")
    Objective: Optional[str] = Field(None, description="Observable, measurable data, test results, or observations.")
    Assessment: Optional[str] = Field(None, description="Therapist's interpretation, diagnosis, or clinical judgment.")
    Plan: Optional[str] = Field(None, description="Proposed interventions, follow-ups, or referrals.")
    Intervention: Optional[str] = Field(None, description="Specific interventions implemented during the session.")
    Evaluation: Optional[str] = Field(None, description="Client's response to interventions and progress made.")
    Revision: Optional[str] = Field(None, description="Adjustments to the treatment plan based on evaluation.")

class SOAPIENote(BaseModel):
    """
    A SOAPIE note is similar to SOAPIER but only adds Intervention and Evaluation to the standard SOAP note.
    """
    Subjective: Optional[str] = Field(None, description="Client's self-reported experiences and symptoms.")
    Objective: Optional[str] = Field(None, description="Observable data and measurable findings.")
    Assessment: Optional[str] = Field(None, description="Clinician's interpretation and clinical impressions.")
    Plan: Optional[str] = Field(None, description="Planned interventions, referrals, or changes.")
    Intervention: Optional[str] = Field(None, description="Interventions used during the session.")
    Evaluation: Optional[str] = Field(None, description="Client's response to interventions and progress toward goals.")

class POMRNote(BaseModel):
    """
    POMR: Problem-Oriented Medical Record. Focuses on organizing data around problems.
    """
    Database: Optional[str] = Field(None, description="Patient's history, exam findings, and relevant tests.")
    ProblemList: Optional[str] = Field(None, description="All identified problems, both active and resolved.")
    InitialPlan: Optional[str] = Field(None, description="Initial plan to address each problem, including diagnostics or treatments.")
    ProgressNotes: Optional[str] = Field(None, description="Ongoing progress, changes, and outcomes related to each problem.")

class NarrativeNote(BaseModel):
    """
    A Narrative note is a free-text record, providing flexibility for a descriptive, story-like documentation.
    """
    Narrative: Optional[str] = Field(None, description="A free-form description of the session, events, observations, and client interactions.")

class CBENote(BaseModel):
    """
    CBE: Charting By Exception. Only notes deviations from the norm.
    """
    Exceptions: Optional[str] = Field(None, description="Significant changes or unexpected findings from the norm, highlighting what differs.")

class SBARNote(BaseModel):
    """
    SBAR: Situation, Background, Assessment, and Recommendation. Used often in quick communication contexts.
    """
    Situation: Optional[str] = Field(None, description="Brief description of the patient's current situation or issue.")
    Background: Optional[str] = Field(None, description="Relevant background information, history, current meds, or past sessions.")
    Assessment: Optional[str] = Field(None, description="Clinician's assessment of the current condition or problem.")
    Recommendation: Optional[str] = Field(None, description="Suggested next steps, treatments, referrals, or actions.")

class ExtractedNotes(BaseModel):
    """Container for multiple note formats."""
    soap: SOAPNote | None = None
    dap: DAPNote | None = None
    birp: BIRPNote | None = None 
    pirp: PIRPNote | None = None
    girp: GIRPNote | None = None
    sirp: SIRPNote | None = None
    fairfdarp: FAIRFDARPNote | None = None
    dare: DARENote | None = None
    pie: PIENote | None = None
    soapiier: SOAPIERNote | None = None
    soapiie: SOAPIENote | None = None
    pomr: POMRNote | None = None
    narrative: NarrativeNote | None = None
    cbe: CBENote | None = None
    sbar: SBARNote | None = None