Quick summary
Treat Patient Summary as a production workflow. Ingest FHIR data into CKG before generation, poll asynchronously, handle empty clinical states clearly, and keep identifiers consistent across ingestion, generation, and retrieval.
- FHIR data is in CKG before summary generation starts.
- Generation does not block clinician login or chart open.
- Polling is bounded and stops on terminal statuses.
- Failures are logged and visible to your team.
- Empty clinical states are clear in the UI.
Decide before you build
Before you wire Patient Summary into production, align on a few product decisions. Agree where clinicians see the summary, when generation runs, and how your UI handles missing appointments or missing history.Define Your Pre-Visit Use Case
Define Your Pre-Visit Use Case
Be clear about where clinicians see Patient Summary and when they need it. Common examples include:
- Morning schedule prep.
- Patient profile chart review.
- Appointment detail screens before the visit starts.
Plan CKG Ingestion
Plan CKG Ingestion
Before you build your ingestion path, decide:
- Which patients and schedule data you upload each day.
- How often you refresh problems, medications, and prior-visit history.
- How you keep
fhir_encounter_idandfhir_practitioner_idconsistent across ingestion, generation, and retrieval. - How you log
organization_id,transaction_id, andcorrelation_idfor support.
Authentication
Use the authentication model your partnership already follows for Suki Partner APIs.- Keep
partner_tokenand signing material on your backend only. - Use
sdp_suki_tokenfor Patient Summary generation, status, and retrieval calls. - Use the required SDP JWT bearer token for CKG Data Ingestion endpoints.
- Refresh tokens before expiry instead of waiting for unauthorized failures during clinic hours.
- Scope credentials by environment. Do not reuse staging secrets in production.
Polling recommendations
Patient Summary has two polling surfaces:- CKG ingestion status after upload.
- Summary job status after generation.
- Poll about every 5 seconds at first.
- Add backoff if a job is still running after the first minute.
- Set a maximum polling window so a stuck job cannot loop forever.
- Stop immediately on terminal statuses such as
COMPLETED,FAILED,ABORTED, orARCHIVED. - For scheduled bulk generation, update each appointment as it completes instead of waiting for the entire schedule.
Retry strategies
Retry only when retrying is safe and useful.Handling failures
Separate system failures from clinical empty states.- No upcoming appointment is not an API failure. Show that an appointment is required to view the summary.
- No prior record found is a valid clinical state. Show About this visit and Problems, and state that no record was found under Summary and Previous visits.
- Ingestion failed and generation failed are system failures. Log them, alert on them, and provide a fallback such as manual chart review.
Logging
Log enough to reconstruct one appointment path through the system. Capture at least:organization_idtransaction_idfor ingestioncorrelation_idwhen providedfhir_encounter_idfhir_practitioner_idpatient_summary_idwhen returned- HTTP status code and error response body
- Job status transitions and timestamps
Monitoring
Monitor both technical health and clinic readiness. Useful signals:- Ingestion success rate and time to complete
- Generation success rate and time per appointment
- Count of appointments still preparing at clinic open
- Rate of empty prior-history summaries
- Rate of “no upcoming appointment” views versus true generation failures
- Retry volume and repeated failures for the same encounter
Performance considerations
- Ingest once per morning for the day’s schedule where possible.
- Pre-generate summaries before peak login instead of generating only when a patient is opened.
- Skip generation when a summary already exists for the appointment.
- Retrieve pre-visit sections for dense schedule UIs, and full summaries for chart review.
- Cache completed summary payloads for the appointment lifetime when your product and privacy rules allow it.
- Generation can take roughly 20 seconds per appointment after the request is accepted. Design loading states around that expectation, especially for bulk schedule runs.
- Summary content, lookback period, and length depend on your implementation and configured requirements.
Voice-first clinician UI
If your product supports voice commands, design Patient Summary so clinicians can open and navigate sections quickly during busy clinic flow.- Keep section names stable.
- Keep empty states clear and easy to speak.
- Avoid hiding “no appointment” or “no prior record” messages behind nested menus.
- Make it easy to open, reread, and move between About this visit, Summary, Previous visits, and Problems.
Security considerations
- Keep all Patient Summary and CKG credentials server-side.
- Transmit clinical data only over HTTPS.
- Limit access to summary content to authorized clinical users for the relevant patient and encounter.
- Avoid writing full PHI-rich request and response bodies into unrestricted logs.
- Retain support identifiers without copying more clinical text than your security policy allows.
- Rotate credentials according to your organization policy.
- Validate that
fhir_encounter_idandfhir_practitioner_idmatch the authenticated clinical context your application already trusts.
Next steps
Continue with the following guides:- Patient Summary basic usage to implement the end-to-end API workflow.
- Patient Summary API quickstart to validate the flow on staging.
- Error messages to interpret Patient Summary API errors.