From da6b98c08ba43f07d250acd9bbb2856795a0875d Mon Sep 17 00:00:00 2001 From: Michela Iannaccone Date: Wed, 21 Feb 2024 15:15:24 -0500 Subject: [PATCH] create hpi command --- canvas_sdk/commands/__init__.py | 17 +++++++--- canvas_sdk/commands/{assess => }/assess.py | 0 .../commands/{diagnose => }/diagnose.py | 0 canvas_sdk/commands/{goal => }/goal.py | 0 .../commands/history_present_illness.py | 12 +++++++ canvas_sdk/commands/{plan => }/plan.py | 0 canvas_sdk/commands/tests.py | 33 +++++++++++++++++-- 7 files changed, 54 insertions(+), 8 deletions(-) rename canvas_sdk/commands/{assess => }/assess.py (100%) rename canvas_sdk/commands/{diagnose => }/diagnose.py (100%) rename canvas_sdk/commands/{goal => }/goal.py (100%) create mode 100644 canvas_sdk/commands/history_present_illness.py rename canvas_sdk/commands/{plan => }/plan.py (100%) diff --git a/canvas_sdk/commands/__init__.py b/canvas_sdk/commands/__init__.py index 3a370bd2..76aa21bf 100644 --- a/canvas_sdk/commands/__init__.py +++ b/canvas_sdk/commands/__init__.py @@ -1,6 +1,13 @@ -from canvas_sdk.commands.assess.assess import AssessCommand -from canvas_sdk.commands.diagnose.diagnose import DiagnoseCommand -from canvas_sdk.commands.goal.goal import GoalCommand -from canvas_sdk.commands.plan.plan import PlanCommand +from canvas_sdk.commands.assess import AssessCommand +from canvas_sdk.commands.diagnose import DiagnoseCommand +from canvas_sdk.commands.goal import GoalCommand +from canvas_sdk.commands.history_present_illness import HistoryOfPresentIllnessCommand +from canvas_sdk.commands.plan import PlanCommand -__all__ = ("PlanCommand", "AssessCommand", "DiagnoseCommand", "GoalCommand") +__all__ = ( + "PlanCommand", + "AssessCommand", + "DiagnoseCommand", + "GoalCommand", + "HistoryOfPresentIllnessCommand", +) diff --git a/canvas_sdk/commands/assess/assess.py b/canvas_sdk/commands/assess.py similarity index 100% rename from canvas_sdk/commands/assess/assess.py rename to canvas_sdk/commands/assess.py diff --git a/canvas_sdk/commands/diagnose/diagnose.py b/canvas_sdk/commands/diagnose.py similarity index 100% rename from canvas_sdk/commands/diagnose/diagnose.py rename to canvas_sdk/commands/diagnose.py diff --git a/canvas_sdk/commands/goal/goal.py b/canvas_sdk/commands/goal.py similarity index 100% rename from canvas_sdk/commands/goal/goal.py rename to canvas_sdk/commands/goal.py diff --git a/canvas_sdk/commands/history_present_illness.py b/canvas_sdk/commands/history_present_illness.py new file mode 100644 index 00000000..e43a30a6 --- /dev/null +++ b/canvas_sdk/commands/history_present_illness.py @@ -0,0 +1,12 @@ +from canvas_sdk.commands.base import _BaseCommand + + +class HistoryOfPresentIllnessCommand(_BaseCommand): + """A class for managing a HPI command within a specific note.""" + + narrative: str + + @property + def values(self) -> dict: + """The HPI command's field values.""" + return {"narrative": self.narrative} diff --git a/canvas_sdk/commands/plan/plan.py b/canvas_sdk/commands/plan.py similarity index 100% rename from canvas_sdk/commands/plan/plan.py rename to canvas_sdk/commands/plan.py diff --git a/canvas_sdk/commands/tests.py b/canvas_sdk/commands/tests.py index 50fee876..0ab6a7e8 100644 --- a/canvas_sdk/commands/tests.py +++ b/canvas_sdk/commands/tests.py @@ -3,7 +3,13 @@ import pytest from pydantic import ValidationError -from canvas_sdk.commands import AssessCommand, DiagnoseCommand, GoalCommand, PlanCommand +from canvas_sdk.commands import ( + AssessCommand, + DiagnoseCommand, + GoalCommand, + HistoryOfPresentIllnessCommand, + PlanCommand, +) @pytest.mark.parametrize( @@ -189,10 +195,24 @@ "1 validation error for GoalCommand\nprogress\n Input should be a valid string [type=string_type, input_value=1, input_type=int]", {"user_id": 5, "goal_statement": "do some stuff!"}, ), + ( + HistoryOfPresentIllnessCommand, + {"user_id": 5}, + "1 validation error for HistoryOfPresentIllnessCommand\nnarrative\n Field required [type=missing, input_value={'user_id': 5}, input_type=dict]", + {"user_id": 1, "narrative": "hiya"}, + ), + ( + HistoryOfPresentIllnessCommand, + {"user_id": 5, "narrative": None}, + "1 validation error for HistoryOfPresentIllnessCommand\nnarrative\n Input should be a valid string [type=string_type, input_value=None, input_type=NoneType]", + {"user_id": 1, "narrative": "hiya"}, + ), ], ) def test_command_raises_error_when_kwarg_given_incorrect_type( - Command: PlanCommand | AssessCommand | DiagnoseCommand | GoalCommand, + Command: ( + PlanCommand | AssessCommand | DiagnoseCommand | GoalCommand | HistoryOfPresentIllnessCommand + ), err_kwargs: dict, err_msg: str, valid_kwargs: dict, @@ -308,10 +328,17 @@ def test_command_raises_error_when_kwarg_given_incorrect_type( {"user_id": 1, "goal_statement": "get out there!", "progress": "hi"}, {"user_id": 1, "goal_statement": "get out there!", "progress": None}, ), + ( + HistoryOfPresentIllnessCommand, + {"user_id": 1, "narrative": "hi!"}, + {"user_id": 1, "narrative": "hows your day!"}, + ), ], ) def test_command_allows_kwarg_with_correct_type( - Command: PlanCommand | AssessCommand | DiagnoseCommand | GoalCommand, + Command: ( + PlanCommand | AssessCommand | DiagnoseCommand | GoalCommand | HistoryOfPresentIllnessCommand + ), test_init_kwarg: dict, test_updated_value: dict, ) -> None: