Feat: Add quetiapine support to medication tracking

- Implement migration script to add quetiapine and quetiapine_doses columns to existing CSV data.
- Update DataManager to include quetiapine and quetiapine_doses in data handling.
- Modify MedTrackerApp to manage quetiapine entries and doses.
- Enhance UIManager to include quetiapine in the user interface for medication selection and display.
- Update tests to cover new quetiapine functionality, including sample data and DataManager tests.
This commit is contained in:
William Valentin
2025-07-29 13:22:35 -07:00
parent 1a6fb9fcd4
commit 2b037a83e8
7 changed files with 467 additions and 317 deletions
+11
View File
@@ -138,6 +138,8 @@ class MedTrackerApp:
full_row["gabapentin_doses"],
full_row["propranolol"],
full_row["propranolol_doses"],
full_row.get("quetiapine", 0),
full_row.get("quetiapine_doses", ""),
full_row["note"],
)
else:
@@ -166,6 +168,7 @@ class MedTrackerApp:
hydro: int,
gaba: int,
prop: int,
quet: int,
note: str,
dose_data: dict[str, str],
) -> None:
@@ -184,6 +187,8 @@ class MedTrackerApp:
dose_data.get("gabapentin", ""),
prop,
dose_data.get("propranolol", ""),
quet,
dose_data.get("quetiapine", ""),
note,
]
@@ -222,6 +227,7 @@ class MedTrackerApp:
hydroxyzine_doses = ""
gabapentin_doses = ""
propranolol_doses = ""
quetiapine_doses = ""
if today:
bup_doses = self.data_manager.get_today_medicine_doses(today, "bupropion")
@@ -232,6 +238,7 @@ class MedTrackerApp:
prop_doses = self.data_manager.get_today_medicine_doses(
today, "propranolol"
)
quet_doses = self.data_manager.get_today_medicine_doses(today, "quetiapine")
bupropion_doses = "|".join([f"{ts}:{dose}" for ts, dose in bup_doses])
hydroxyzine_doses = "|".join(
@@ -239,6 +246,7 @@ class MedTrackerApp:
)
gabapentin_doses = "|".join([f"{ts}:{dose}" for ts, dose in gaba_doses])
propranolol_doses = "|".join([f"{ts}:{dose}" for ts, dose in prop_doses])
quetiapine_doses = "|".join([f"{ts}:{dose}" for ts, dose in quet_doses])
entry: list[str | int] = [
self.date_var.get(),
@@ -254,6 +262,8 @@ class MedTrackerApp:
gabapentin_doses,
self.medicine_vars["propranolol"][0].get(),
propranolol_doses,
self.medicine_vars["quetiapine"][0].get(),
quetiapine_doses,
self.note_var.get(),
]
logger.debug(f"Adding entry: {entry}")
@@ -337,6 +347,7 @@ class MedTrackerApp:
"hydroxyzine",
"gabapentin",
"propranolol",
"quetiapine",
"note",
]