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 → references ServiceRequest
  • Encounter.basedOn → references ServiceRequest
  • Composition.encounter → references Encounter

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 → references Patient
  • CarePlan.supportingInfo → references Consent
  • Observation.basedOn → references CarePlan
  • Composition.subject → references Patient; sections reference Observation entries

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.