CDS Hook API responses currently include null values for all optional fields, making responses verbose and harder to read. This is especially noticeable in example scripts and documentation.
Example current output:
{
"cards": [{
"summary": "Sepsis Risk: 0.1",
"indicator": "info",
"source": {
"label": "ML prediction",
"url": null,
"icon": null,
"topic": null
},
"uuid": null,
"detail": "No action required.",
"suggestions": null,
"selectionBehavior": null,
"overrideReasons": null,
"links": null
}],
"systemActions": null
}
Desired output:
{
"cards": [{
"summary": "Sepsis Risk: 0.1",
"indicator": "info",
"source": {
"label": "ML prediction"
},
"detail": "No action required."
}]
}
Files to check:
scripts/predict_example.py (confirmed issue)
- Any file calling
.model_dump() on CDS models
healthchain/gateway/cds/ (CDS service implementations)
- Example scripts in
cookbook/
Goal:
Configure Pydantic serialization to exclude None values from API responses.
Acceptance Criteria:
Implementation:
Card(...).model_dump(exclude_none=True)
Resources:
- Pydantic serialization docs
healthchain/models/responses/cdsresponse.py for model definitions
- Test with:
python scripts/predict_example.py and check http://localhost:8000/docs
CDS Hook API responses currently include null values for all optional fields, making responses verbose and harder to read. This is especially noticeable in example scripts and documentation.
Example current output:
{ "cards": [{ "summary": "Sepsis Risk: 0.1", "indicator": "info", "source": { "label": "ML prediction", "url": null, "icon": null, "topic": null }, "uuid": null, "detail": "No action required.", "suggestions": null, "selectionBehavior": null, "overrideReasons": null, "links": null }], "systemActions": null }Desired output:
{ "cards": [{ "summary": "Sepsis Risk: 0.1", "indicator": "info", "source": { "label": "ML prediction" }, "detail": "No action required." }] }Files to check:
scripts/predict_example.py(confirmed issue).model_dump()on CDS modelshealthchain/gateway/cds/(CDS service implementations)cookbook/Goal:
Configure Pydantic serialization to exclude
Nonevalues from API responses.Acceptance Criteria:
.model_dump())exclude_none=Trueparameter to serialization callsImplementation:
Resources:
healthchain/models/responses/cdsresponse.pyfor model definitionspython scripts/predict_example.pyand checkhttp://localhost:8000/docs