Skip to main content

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

ArgumentDescription
filters.patientIdReports for a single patient
filters.clinicalPathwayIdReports linked to a clinical pathway
filters.reportTypeInitialReport, RFATReport, or DischargeReport
filters.statusAny 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