CH UMZH Connect IG (R4)
1.0.0-ballot - ballot
This page is part of the CH UMZH Connect (v1.0.0-ballot: DSTU 1 Ballot 1) based on FHIR (HL7® FHIR® Standard) R4. This is the current published version. For a full list of available versions, see the Directory of published versions
The CoordinationTask lifecycle is governed by two complementary fields:
Task.status — the FHIR base state machine (Task state machine); reflects the overall lifecycle of the taskTask.businessStatus — a domain-specific qualifier that sits alongside Task.status to convey sub-states meaningful to the workflow; codes are drawn from COW business status codesThis IG follows the COW Workflow State Overview with the constraints documented below. Note that COW's received state is intentionally omitted in this version of the IG: a Task transitions directly from requested to accepted or in-progress.
Rules:
Task.status — it is not patchable by the Placer (see Workflow oriented API design)Task.owner references the Placer organizationowner, businessStatus, input, and focusTask.businessStatus must only contain domain-specific workflow codes; Task.status codes must never be used as businessStatus valuesrejected (Fulfiller declines before starting) and failed (accepted but not completed) rather than COW's cancelled + statusReason; COW's cancelled ("not selected") pattern assumes a multi-Fulfiller selection flow that is out of scope herestateDiagram-v2
direction LR
[*] --> requested : Placer POSTs Task to Fulfiller
requested --> in_progress : Fulfiller accepts & starts
requested --> accepted : Fulfiller explicitly accepts\n(request-with-acceptance pattern)
requested --> rejected : Fulfiller declines
accepted --> in_progress : Fulfiller starts work
state "in-progress\n[awaiting-information]" as awaiting
in_progress --> awaiting : Fulfiller needs more info\n(owner → Placer)
awaiting --> in_progress : Placer provides info\n(owner → Fulfiller)
in_progress --> completed : Fulfiller completes
in_progress --> failed : Fulfiller unable to complete
completed --> [*]
rejected --> [*]
failed --> [*]
| State label | Task.status |
Task.businessStatus |
Task.owner |
Who sets this | Notes |
|---|---|---|---|---|---|
| Requested | requested |
— | Fulfiller org | Placer | Initial state when Task is POSTed to Fulfiller |
| Accepted | accepted |
— | Fulfiller org | Fulfiller | Explicit acceptance; may be skipped in pre-agreed flows |
| In progress | in-progress |
— | Fulfiller org | Fulfiller | Fulfiller has started work |
| Awaiting information | in-progress |
awaiting-information |
Placer org | Fulfiller | Fulfiller has added Questionnaire to Task.output; owner shifted to Placer |
| Information received | in-progress |
— | Fulfiller org | Placer | Placer has PATCHed Task with QuestionnaireResponse in Task.input, cleared businessStatus, and shifted owner back to Fulfiller |
| Completed | completed |
— | Fulfiller org | Fulfiller | Results referenced in Task.output |
| Rejected | rejected |
— | — | Fulfiller | Fulfiller declines; Placer may approach another Fulfiller |
| Failed | failed |
— | — | Fulfiller | Fulfiller accepted but could not complete |