"""Handle lab results queries."""
import json
from ..data import PatientDataLoader
def handle_list_labs(patient_id: str, loader: PatientDataLoader) -> str:
"""List patient lab results (summary with IDs, test names, and dates only)."""
if not loader.patient_exists(patient_id):
return json.dumps({"error": f"Patient {patient_id} not found"})
labs = loader.get_lab_results(patient_id)
summary = [
{
"id": lab.id,
"date": str(lab.date),
"test_name": lab.test_name,
"ordering_provider": lab.ordering_provider
}
for lab in labs
]
return json.dumps(summary, indent=2)
def handle_get_lab_details(patient_id: str, lab_id: str, loader: PatientDataLoader) -> str:
"""Get detailed information for a specific lab result."""
if not loader.patient_exists(patient_id):
return json.dumps({"error": f"Patient {patient_id} not found"})
labs = loader.get_lab_results(patient_id)
for lab in labs:
if lab.id == lab_id:
return json.dumps(lab.model_dump(mode='json'), indent=2, default=str)
return json.dumps({"error": f"Lab result {lab_id} not found for patient {patient_id}"})