Spaces:
Sleeping
Sleeping
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 | |