"""Handle medication queries."""
import json
from typing import Optional
from ..data import PatientDataLoader
def handle_list_medications(
patient_id: str,
loader: PatientDataLoader,
status: Optional[str] = None
) -> str:
"""List patient medications (summary with IDs, status, and dates only)."""
if not loader.patient_exists(patient_id):
return json.dumps({"error": f"Patient {patient_id} not found"})
medications = loader.get_medications(patient_id, status=status)
summary = [
{
"id": med.id,
"name": med.name,
"status": med.status,
"start_date": str(med.start_date),
"end_date": str(med.end_date) if med.end_date else None
}
for med in medications
]
return json.dumps(summary, indent=2)
def handle_get_medication_details(patient_id: str, medication_id: str, loader: PatientDataLoader) -> str:
"""Get detailed information for a specific medication."""
if not loader.patient_exists(patient_id):
return json.dumps({"error": f"Patient {patient_id} not found"})
medications = loader.get_medications(patient_id)
for med in medications:
if med.id == medication_id:
return json.dumps(med.model_dump(mode='json'), indent=2, default=str)
return json.dumps({"error": f"Medication {medication_id} not found for patient {patient_id}"})