Clinical reports query filters
Summary
The Public API clinicalReports query now accepts an optional filters
argument so integrations can narrow results by patient, clinical pathway,
report type, and status — without paginating the full practice list and
filtering client-side.
Draft reports are never returned.
filters.status: Draft is accepted but ignored (same as omitting status).
This change is additive: omitting filters behaves as before.
What changed
| Argument | Description |
|---|---|
filters.patientId | Reports for a single patient |
filters.clinicalPathwayId | Reports linked to a clinical pathway |
filters.reportType | InitialReport, RFATReport, or DischargeReport |
filters.status | Any ClinicalReportStatus; Draft is ignored |
Filters may be combined. Malformed ObjectId values return a GraphQL validation
error (BAD_USER_INPUT), consistent with other ID filter arguments.
Example
query PatientPathwayReports($patientId: ID!, $pathwayId: ID!) {
clinicalReports(
pagination: { page: 1, pageSize: 30 }
filters: {
patientId: $patientId
clinicalPathwayId: $pathwayId
reportType: InitialReport
status: PendingApproval
}
) {
data {
id
reportType
status
clinicalPathway {
id
}
}
pageInfo {
page
pageSize
hasMore
}
}
}
Integration guidance
- Prefer server-side filters instead of client-side filtering of the unfiltered list when you only need a subset of reports.
- Combine with pagination as usual; page size remains capped at 100.
- Use
clinicalReport(id:)when you need the PDF download URL for a single report.
See also
- Release notes: Clinical pathway ID list filters
- Release notes: Pathway clinical report webhooks