{"items":[{"type":"link","label":"QUBS Integrations API","link":"/openapi","routeSlug":"/openapi"},{"type":"link","label":"Getting started","link":"/openapi/section/getting-started","routeSlug":"/openapi/section/getting-started"},{"type":"link","label":"Base URL","link":"/openapi/section/base-url","routeSlug":"/openapi/section/base-url"},{"type":"link","label":"Authentication","link":"/openapi/section/authentication","routeSlug":"/openapi/section/authentication"},{"type":"link","label":"Example requests","link":"/openapi/section/example-requests","routeSlug":"/openapi/section/example-requests"},{"type":"link","label":"Reporting workflow (example)","link":"/openapi/section/reporting-workflow-(example)","routeSlug":"/openapi/section/reporting-workflow-(example)"},{"type":"link","label":"Conflict and pending-operation recovery","link":"/openapi/section/conflict-and-pending-operation-recovery","routeSlug":"/openapi/section/conflict-and-pending-operation-recovery"},{"type":"group","label":"Site Settings","link":"/openapi/site-settings","routeSlug":"/openapi/site-settings","items":[{"label":"List sites in the specified partner domain","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/site-settings/integrations_listsites","routeSlug":"/openapi/site-settings/integrations_listsites","metadata":{"seo":{"title":"List sites in the specified partner domain","description":"Returns the active sites a partner is allowed to access within a domain after authorization succeeds."}},"httpPath":"/integrations/v1/{domain}/sites"},{"label":"Get site settings summary by domain and site name","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/site-settings/integrations_getsitesettings_summary","routeSlug":"/openapi/site-settings/integrations_getsitesettings_summary","metadata":{"seo":{"title":"Get site settings summary by domain and site name","description":"Returns the site settings summary view for a specific site when the caller is authorized for the requested domain and site."}},"httpPath":"/integrations/v1/{domain}/sites/{siteName}"},{"label":"Get operational site settings by domain and site name","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/site-settings/integrations_getsitesettings_operational","routeSlug":"/openapi/site-settings/integrations_getsitesettings_operational","metadata":{"seo":{"title":"Get operational site settings by domain and site name","description":"Returns the operational site settings view for a specific site when the caller is authorized for the requested domain and site."}},"httpPath":"/integrations/v1/{domain}/sites/{siteName}/operational"}]},{"type":"group","label":"Exam Codes","link":"/openapi/exam-codes","routeSlug":"/openapi/exam-codes","items":[{"label":"List exam codes for a site","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/exam-codes/integrations_listexamcodes","routeSlug":"/openapi/exam-codes/integrations_listexamcodes","metadata":{"seo":{"title":"List exam codes for a site","description":"Returns exam codes for the specified domain and site when the caller is authorized."}},"httpPath":"/integrations/v1/{domain}/sites/{siteName}/exam-codes"}]},{"type":"group","label":"Staff Skills","link":"/openapi/staff-skills","routeSlug":"/openapi/staff-skills","items":[{"label":"Get staff skill grid for a site","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/staff-skills/integrations_getstaffskills","routeSlug":"/openapi/staff-skills/integrations_getstaffskills","metadata":{"seo":{"title":"Get staff skill grid for a site","description":"Returns the staff skills grid, exam mappings, and comments for the specified domain and site when authorized."}},"httpPath":"/integrations/v1/{domain}/sites/{siteName}/staff-skills"}]},{"type":"group","label":"Appointments","link":"/openapi/appointments","routeSlug":"/openapi/appointments","items":[{"label":"List operational appointments by status","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/appointments/integrations_listappointmentsbystatus_operational","routeSlug":"/openapi/appointments/integrations_listappointmentsbystatus_operational","metadata":{"seo":{"title":"List operational appointments by status","description":"Returns the operational appointment view filtered by status when the caller is authorized. Supports cursor-based pagination via pageSize and nextToken."}},"httpPath":"/integrations/v1/{domain}/appointments/operational/by-status/{status}"},{"label":"Get operational appointment by domain and appointment id","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/appointments/integrations_getappointment_operational","routeSlug":"/openapi/appointments/integrations_getappointment_operational","metadata":{"seo":{"title":"Get operational appointment by domain and appointment id","description":"Returns the operational appointment view for the specified domain and appointment id when the caller is authorized."}},"httpPath":"/integrations/v1/{domain}/appointments/operational/by-id/{appointmentId}"},{"label":"List operational appointments for a domain","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/appointments/integrations_listappointments_operational","routeSlug":"/openapi/appointments/integrations_listappointments_operational","metadata":{"seo":{"title":"List operational appointments for a domain","description":"Returns the operational appointment view for the specified domain when the caller is authorized. Supports optional filters via query string and offset paging via skip and take."}},"httpPath":"/integrations/v1/{domain}/appointments/operational"},{"label":"List operational appointments by status for referrers and specialists","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/appointments/integrations_listappointmentsbystatus_referreroperational","routeSlug":"/openapi/appointments/integrations_listappointmentsbystatus_referreroperational","metadata":{"seo":{"title":"List operational appointments by status for referrers and specialists","description":"Returns operational appointments filtered by provider number when the caller is authorized and scoped to referrer/specialist grants. Provider numbers are resolved from the authenticated principal's access grants and are not supplied as query parameters. Supports cursor-based pagination via pageSize and nextToken."}},"httpPath":"/integrations/v1/{domain}/appointments/referrer/operational/by-status/{status}"},{"label":"List operational appointments for referrers and specialists","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/appointments/integrations_listappointments_referreroperational","routeSlug":"/openapi/appointments/integrations_listappointments_referreroperational","metadata":{"seo":{"title":"List operational appointments for referrers and specialists","description":"Returns operational appointments filtered by provider number when the caller is authorized and scoped to referrer/specialist grants. Provider numbers are resolved from the authenticated principal's access grants and are not supplied as query parameters. Supports optional filters via query string and offset paging via skip and take."}},"httpPath":"/integrations/v1/{domain}/appointments/referrer/operational"},{"label":"List appointment summaries by status","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/appointments/integrations_listappointmentsbystatus_summary","routeSlug":"/openapi/appointments/integrations_listappointmentsbystatus_summary","metadata":{"seo":{"title":"List appointment summaries by status","description":"Returns the appointment summary view filtered by status when the caller is authorized. Supports cursor-based pagination via pageSize and nextToken."}},"httpPath":"/integrations/v1/{domain}/appointments/by-status/{status}"},{"label":"Get appointment summary by domain and appointment id","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/appointments/integrations_getappointment_summary","routeSlug":"/openapi/appointments/integrations_getappointment_summary","metadata":{"seo":{"title":"Get appointment summary by domain and appointment id","description":"Returns the appointment summary view for the specified domain and appointment id when the caller is authorized."}},"httpPath":"/integrations/v1/{domain}/appointments/{appointmentId}"},{"label":"List appointment summaries for a domain","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/appointments/integrations_listappointments_summary","routeSlug":"/openapi/appointments/integrations_listappointments_summary","metadata":{"seo":{"title":"List appointment summaries for a domain","description":"Returns the appointment summary view for the specified domain when the caller is authorized. Supports optional filters via query string and offset paging via skip and take."}},"httpPath":"/integrations/v1/{domain}/appointments"},{"label":"List appointment summaries by status for referrers and specialists","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/appointments/integrations_listappointmentsbystatus_referrer","routeSlug":"/openapi/appointments/integrations_listappointmentsbystatus_referrer","metadata":{"seo":{"title":"List appointment summaries by status for referrers and specialists","description":"Returns appointment summaries filtered by provider number when the caller is authorized and scoped to referrer/specialist grants. Provider numbers are resolved from the authenticated principal's access grants and are not supplied as query parameters. Supports cursor-based pagination via pageSize and nextToken."}},"httpPath":"/integrations/v1/{domain}/appointments/referrer/by-status/{status}"},{"label":"List appointment summaries for referrers and specialists","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/appointments/integrations_listappointments_referrer","routeSlug":"/openapi/appointments/integrations_listappointments_referrer","metadata":{"seo":{"title":"List appointment summaries for referrers and specialists","description":"Returns appointment summaries filtered by provider number when the caller is authorized and scoped to referrer/specialist grants. Provider numbers are resolved from the authenticated principal's access grants and are not supplied as query parameters. Supports optional filters via query string and offset paging via skip and take."}},"httpPath":"/integrations/v1/{domain}/appointments/referrer"},{"label":"Get appointment billing details by domain and appointment id","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/appointments/integrations_getappointment_billing","routeSlug":"/openapi/appointments/integrations_getappointment_billing","metadata":{"seo":{"title":"Get appointment billing details by domain and appointment id","description":"Returns billing and service item details for the specified appointment when the caller has appointments:read_billing access."}},"httpPath":"/integrations/v1/{domain}/appointments/{appointmentId}/billing"}]},{"type":"group","label":"Attachments","link":"/openapi/attachments","routeSlug":"/openapi/attachments","items":[{"label":"List attachments for an appointment","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/attachments/integrations_listappointmentattachments","routeSlug":"/openapi/attachments/integrations_listappointmentattachments","metadata":{"seo":{"title":"List attachments for an appointment","description":"Returns appointment attachments (e.g. referrals, worksheets) and a short-lived presigned URL for each attachment when available."}},"httpPath":"/integrations/v1/{domain}/appointments/{appointmentId}/attachments"},{"label":"Get a single attachment for an appointment","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/attachments/integrations_getappointmentattachment","routeSlug":"/openapi/attachments/integrations_getappointmentattachment","metadata":{"seo":{"title":"Get a single attachment for an appointment","description":"Returns a single appointment attachment and a short-lived presigned URL when available."}},"httpPath":"/integrations/v1/{domain}/appointments/{appointmentId}/attachments/{attachmentGuid}"}]},{"type":"group","label":"Comments","link":"/openapi/comments","routeSlug":"/openapi/comments","items":[{"label":"List comments for an appointment","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/comments/integrations_listappointmentcomments","routeSlug":"/openapi/comments/integrations_listappointmentcomments","metadata":{"seo":{"title":"List comments for an appointment","description":"Returns all appointment comments/alerts plus patient comments/alerts for the appointment's patient when the caller is authorized."}},"httpPath":"/integrations/v1/{domain}/appointments/{appointmentId}/comments"},{"label":"Get a single comment for an appointment","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/comments/integrations_getappointmentcomment","routeSlug":"/openapi/comments/integrations_getappointmentcomment","metadata":{"seo":{"title":"Get a single comment for an appointment","description":"Returns a single appointment comment/alert or patient comment/alert (for the appointment's patient) when the caller is authorized."}},"httpPath":"/integrations/v1/{domain}/appointments/{appointmentId}/comments/{commentGuid}"}]},{"type":"group","label":"Patients","link":"/openapi/patients","routeSlug":"/openapi/patients","items":[{"label":"Get patient summary by domain and patient id","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/patients/integrations_getpatient_summary","routeSlug":"/openapi/patients/integrations_getpatient_summary","metadata":{"seo":{"title":"Get patient summary by domain and patient id","description":"Returns the patient summary view for the specified domain and patient id when the caller is authorized."}},"httpPath":"/integrations/v1/{domain}/patients/{patientId}"},{"label":"List patient summaries for a domain","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/patients/integrations_listpatients_summary","routeSlug":"/openapi/patients/integrations_listpatients_summary","metadata":{"seo":{"title":"List patient summaries for a domain","description":"Returns the patient summary view for the specified domain when the caller is authorized. Supports optional filters via query string and offset paging via skip and take."}},"httpPath":"/integrations/v1/{domain}/patients"}]},{"type":"group","label":"Reporting","link":"/openapi/reporting","routeSlug":"/openapi/reporting","items":[{"label":"List pending reporting appointments","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/reporting/integrations_listpendingreportingappointments","routeSlug":"/openapi/reporting/integrations_listpendingreportingappointments","metadata":{"seo":{"title":"List pending reporting appointments","description":"Returns the tele reporting appointment view for appointments in the PENDING REPORTING status. Appointments enter this status after QUBS moves them to PENDING REPORTING, typically when the scan/study is ended; subscribe to appointment.status_changed webhooks for notification and use this endpoint for reconciliation. Supports cursor-based pagination via pageSize and nextToken."}},"httpPath":"/integrations/v1/{domain}/reporting/appointments/pending"},{"label":"Get a pending reporting appointment","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/reporting/integrations_getpendingreportingappointment","routeSlug":"/openapi/reporting/integrations_getpendingreportingappointment","metadata":{"seo":{"title":"Get a pending reporting appointment","description":"Returns the tele reporting appointment view for the specified opaque appointment id when it is in the PENDING REPORTING status."}},"httpPath":"/integrations/v1/{domain}/reporting/appointments/{appointmentId}"},{"label":"List attachments for a pending reporting appointment","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/reporting/integrations_listpendingreportingappointmentattachments","routeSlug":"/openapi/reporting/integrations_listpendingreportingappointmentattachments","metadata":{"seo":{"title":"List attachments for a pending reporting appointment","description":"Returns appointment attachments (e.g. referrals, worksheets) for the specified appointment when it is in the PENDING REPORTING status."}},"httpPath":"/integrations/v1/{domain}/reporting/appointments/{appointmentId}/attachments"},{"label":"Get a single attachment for a pending reporting appointment","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/reporting/integrations_getpendingreportingappointmentattachment","routeSlug":"/openapi/reporting/integrations_getpendingreportingappointmentattachment","metadata":{"seo":{"title":"Get a single attachment for a pending reporting appointment","description":"Returns a single appointment attachment for the specified appointment when it is in the PENDING REPORTING status."}},"httpPath":"/integrations/v1/{domain}/reporting/appointments/{appointmentId}/attachments/{attachmentGuid}"},{"label":"List comments for a pending reporting appointment","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/reporting/integrations_listpendingreportingappointmentcomments","routeSlug":"/openapi/reporting/integrations_listpendingreportingappointmentcomments","metadata":{"seo":{"title":"List comments for a pending reporting appointment","description":"Returns appointment comments/alerts plus patient comments/alerts for the specified appointment when it is in the PENDING REPORTING status."}},"httpPath":"/integrations/v1/{domain}/reporting/appointments/{appointmentId}/comments"},{"label":"Create a comment for a pending reporting appointment","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/reporting/integrations_creatependingreportingappointmentcomment","routeSlug":"/openapi/reporting/integrations_creatependingreportingappointmentcomment","metadata":{"seo":{"title":"Create a comment for a pending reporting appointment","description":"Creates an appointment comment/alert for a pending reporting appointment."}},"httpPath":"/integrations/v1/{domain}/reporting/appointments/{appointmentId}/comments"},{"label":"Get a single comment for a pending reporting appointment","deprecated":false,"httpVerb":"get","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/reporting/integrations_getpendingreportingappointmentcomment","routeSlug":"/openapi/reporting/integrations_getpendingreportingappointmentcomment","metadata":{"seo":{"title":"Get a single comment for a pending reporting appointment","description":"Returns a single appointment comment/alert or patient comment/alert (for the appointment's patient) when the appointment is in the PENDING REPORTING status."}},"httpPath":"/integrations/v1/{domain}/reporting/appointments/{appointmentId}/comments/{commentGuid}"},{"label":"Submit an editable draft or request normal report authorisation","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/reporting/integrations_submitpendingreportingappointmentreport","routeSlug":"/openapi/reporting/integrations_submitpendingreportingappointmentreport","metadata":{"seo":{"title":"Submit an editable draft or request normal report authorisation","description":"Requires an idempotency key and explicit delegation to an active QUBS clinician. Preliminary content enters the Typed worklist; final content follows normal authorisation. Accepts text/plain or strictly validated basic text/html report bodies for radiology appointments in PENDING REPORTING or TYPED. Unsupported HTML returns 400. Attachments are optional."}},"httpPath":"/integrations/v1/{domain}/reporting/appointments/{appointmentId}/report"},{"label":"Create upload URLs for pending reporting report attachments","deprecated":false,"httpVerb":"post","isAdditionalOperation":false,"isWebhook":false,"type":"link","link":"/openapi/reporting/integrations_creatependingreportingappointmentreportattachments","routeSlug":"/openapi/reporting/integrations_creatependingreportingappointmentreportattachments","metadata":{"seo":{"title":"Create upload URLs for pending reporting report attachments","description":"Creates optional attachment metadata and returns presigned upload URLs for report artifacts (PDF/DICOM SR) for a pending reporting appointment. Upload the raw file bytes with an HTTP PUT to uploadUrl; if contentType was provided, include the same Content-Type header in the upload. Constraints: max 20 items per request, fileName length <= 255 characters, and contentType must be application/pdf or application/dicom when provided. Uploads use a single PUT (supported size up to 2 MB; partners must enforce this limit because the presigned PUT does not enforce content length) and must complete before uploadUrlExpiresAtUtc (metadata is created immediately but content is available only after the PUT succeeds)."}},"httpPath":"/integrations/v1/{domain}/reporting/appointments/{appointmentId}/report/attachments"}]}]}