Workflow Patterns
This page documents the standardised FHIR-based workflow patterns for SGCDI v2. Explicit workflow definitions replace the v1 approach of isolated document submission, enabling end-to-end orchestration across systems.
Referral Workflow
A referral from one care setting to another is modelled using a chain of FHIR resources:
ServiceRequest → Task → Encounter → Composition
| Step | Resource | Purpose |
|---|---|---|
| 1 | ServiceRequest |
Originating referral order, capturing clinical reason and destination |
| 2 | Task |
Tracks the fulfilment status of the referral (requested → accepted → completed) |
| 3 | Encounter |
The actual visit at the receiving institution, linked to the referral |
| 4 | Composition |
Clinical documentation produced from the encounter (e.g., Summary Notes) |
Key linkages:
Task.focus→ referencesServiceRequestEncounter.basedOn→ referencesServiceRequestComposition.encounter→ referencesEncounter
SGCDI profiles involved: profile-referral (ServiceRequest), profile-encounter, profile-summarynotes (Composition)
API Reference: ServiceRequest.Create · ServiceRequest.Read · Encounter.Create · Encounter.Read · Composition.$submit · Composition.$retrieve
Healthier SG Care Programme Workflow
The Healthier SG health programme lifecycle is modelled end-to-end:
Patient → Consent → CarePlan → Observation → CareReport
| Step | Resource | Purpose |
|---|---|---|
| 1 | Patient |
Patient enrolled in the programme |
| 2 | Consent |
Patient's consent to the programme |
| 3 | CarePlan |
Health plan defining goals, interventions, and follow-up schedule |
| 4 | Observation |
Clinical measurements and assessments during programme |
| 5 | Composition (CareReport) |
Periodic care report summarising progress |
Key linkages:
CarePlan.subject→ referencesPatientCarePlan.supportingInfo→ referencesConsentObservation.basedOn→ referencesCarePlanComposition.subject→ referencesPatient; sections referenceObservationentries
SGCDI profiles involved: profile-patient, profile-careplan, profile-observation, CareReport Composition (HealthierSG)
API Reference: CarePlan.Create · CarePlan.Read · Observation.Create · Observation.Read · Composition.$submit · Composition.$retrieve
Encounter Lifecycle
A patient encounter progresses through discrete states, each triggering data submissions to NEHR:
planned → arrived → in-progress → finished → discharged
| State | Typical Submissions |
|---|---|
in-progress |
Triage Observation, Vital Signs, MedicationAdministration |
finished |
ED Notes / OT Notes / Discharge Summary (Composition $submit) |
discharged |
Discharge Summary, Referral (if applicable) |
SGCDI profiles involved: profile-encounter, profile-ednotes, profile-dischargesummary
API Reference: Encounter.Create · Encounter.Read · Observation.Create · Composition.$submit · Composition.$retrieve
Workflow and Batch Integration
Batch integration (see Batch Integration) operates outside these real-time workflows. For batch scenarios, workflow linkages (e.g., Task, Encounter.basedOn) may be omitted, and resources are submitted as standalone NDJSON records conforming to their SGCDI profiles.