From 8ccc0a355553f47c881380a29fd4b0197488a32a Mon Sep 17 00:00:00 2001 From: Isaac Vetter Date: Fri, 10 Apr 2026 13:57:23 -0500 Subject: [PATCH 01/10] initial syncComplete jot down some ideas. --- input/pagecontent/3-2-6-syncComplete.md | 69 +++++++++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 input/pagecontent/3-2-6-syncComplete.md diff --git a/input/pagecontent/3-2-6-syncComplete.md b/input/pagecontent/3-2-6-syncComplete.md new file mode 100644 index 00000000..59519abc --- /dev/null +++ b/input/pagecontent/3-2-6-syncComplete.md @@ -0,0 +1,69 @@ +This section presents the template to use for defining new events. + +### Event-name: SyncComplete + +eventMaturity | [0 - Draft](3-1-2-eventmaturitymodel.html) + +### Workflow + +All subscribers have affirmatively acknowledged receipt of a context change and this is indicated to Subscribers. + +Unlike most of FHIRcast events, SyncComplete is an infrastructural event and does not follow the FHIR-resource-[open|close|update|select] syntax and is directly referenced in the [underlying specification](2_Specification.html). + + +A `SyncComplete` MAY be sent by the Hub when all subscribers have either: +1. Responded to a context change event with a 200. +2. Responded to a context change event with a 202, followed by a SyncComplete. +3. Responded to a context change event with a 202, followed by a SyncError containing an [OperationOutcome](StructureDefinition-fhircast-subscriber-operation-outcome-syncerrror.html) with a `severity` of merely `warning`. +`SyncComplete` is not used when a Subscriber responds to an `*-update` or `*-select` event. + +``` +OR + +A `SyncComplete` MAY be sent by the Hub when all subscribers have : +1. Responded to a context change event with a 200. + +`SyncComplete` is not used when a Subscriber responds to a context change event with an HTTP 202. +``` + +`SyncComplete` is not used when a Subscriber responds to an `*-update` or `*-select` event. + +### Context + +{:.grid} +Key | Cardinality | Type | Description +--------- | ----------- | --------- | -------------- +`operationoutcome` | 1..1 | resource | A FHIR OperationOutcome based on the profile [Operation outcome for SyncComplete](). + +### Examples + +```json +{ + "timestamp": "2018-01-08T01:37:05.14", + "id": "q9v3jubddqt63n1", + "event": { + "hub.topic": "7544fe65-ea26-44b5-835d-14287e46390b", + "hub.event": "synccomplete", + "context": +"context": [{ + "key": "parameters", + "resource": { + "resourceType": "Parameters", + "parameter": [{ + "name": "relatedEvent", + "valueIdentifier": { + "system": "http://hl7.org/fhir/uv/fhircast/eventid", + "value": "b9a4b2e1-3f4c-4d6a-8e7f-1a2b3c4d5e6f" + } + }] + } +}] + } +} +``` + +## Change Log +{:.grid} +Version | Description +------- | ---- +1.0 | Initial Release From 104d82a9af607fba49fe2785829a831389f2f4f3 Mon Sep 17 00:00:00 2001 From: Isaac Vetter Date: Fri, 10 Apr 2026 13:59:26 -0500 Subject: [PATCH 02/10] Update 3-2-6-syncComplete.md --- input/pagecontent/3-2-6-syncComplete.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/input/pagecontent/3-2-6-syncComplete.md b/input/pagecontent/3-2-6-syncComplete.md index 59519abc..4d356c68 100644 --- a/input/pagecontent/3-2-6-syncComplete.md +++ b/input/pagecontent/3-2-6-syncComplete.md @@ -33,7 +33,7 @@ A `SyncComplete` MAY be sent by the Hub when all subscribers have : {:.grid} Key | Cardinality | Type | Description --------- | ----------- | --------- | -------------- -`operationoutcome` | 1..1 | resource | A FHIR OperationOutcome based on the profile [Operation outcome for SyncComplete](). +`parameters` | 1..1 | resource | A FHIR OperationOutcome based on the profile ... ### Examples From 0c2d2f42d453ec63f7bd1709bd38d0da41ba5199 Mon Sep 17 00:00:00 2001 From: Isaac Vetter Date: Fri, 10 Apr 2026 14:02:02 -0500 Subject: [PATCH 03/10] Update 3-2-6-syncComplete.md --- input/pagecontent/3-2-6-syncComplete.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/input/pagecontent/3-2-6-syncComplete.md b/input/pagecontent/3-2-6-syncComplete.md index 4d356c68..f1fbdb80 100644 --- a/input/pagecontent/3-2-6-syncComplete.md +++ b/input/pagecontent/3-2-6-syncComplete.md @@ -1,15 +1,13 @@ -This section presents the template to use for defining new events. - ### Event-name: SyncComplete eventMaturity | [0 - Draft](3-1-2-eventmaturitymodel.html) ### Workflow -All subscribers have affirmatively acknowledged receipt of a context change and this is indicated to Subscribers. Unlike most of FHIRcast events, SyncComplete is an infrastructural event and does not follow the FHIR-resource-[open|close|update|select] syntax and is directly referenced in the [underlying specification](2_Specification.html). +A Subscriber is affirmatively acknowledging successful synchronization to a give context change. When generated by the Hub, all subscribers have affirmatively acknowledged a context change and this is indicated to Subscribers. A `SyncComplete` MAY be sent by the Hub when all subscribers have either: 1. Responded to a context change event with a 200. @@ -20,6 +18,8 @@ A `SyncComplete` MAY be sent by the Hub when all subscribers have either: ``` OR +All subscribers have affirmatively acknowledged receipt of a context change and this is indicated to Subscribers. + A `SyncComplete` MAY be sent by the Hub when all subscribers have : 1. Responded to a context change event with a 200. From 5f5822dbbdac2e47ec3247f14820e9b5d56f9127 Mon Sep 17 00:00:00 2001 From: Isaac Vetter Date: Mon, 13 Apr 2026 12:54:57 -0500 Subject: [PATCH 04/10] Update 3-2-6-syncComplete.md --- input/pagecontent/3-2-6-syncComplete.md | 29 ++++++++++++++----------- 1 file changed, 16 insertions(+), 13 deletions(-) diff --git a/input/pagecontent/3-2-6-syncComplete.md b/input/pagecontent/3-2-6-syncComplete.md index f1fbdb80..80c7584b 100644 --- a/input/pagecontent/3-2-6-syncComplete.md +++ b/input/pagecontent/3-2-6-syncComplete.md @@ -44,20 +44,23 @@ Key | Cardinality | Type | Description "event": { "hub.topic": "7544fe65-ea26-44b5-835d-14287e46390b", "hub.event": "synccomplete", - "context": -"context": [{ - "key": "parameters", - "resource": { - "resourceType": "Parameters", - "parameter": [{ - "name": "relatedEvent", - "valueIdentifier": { - "system": "http://hl7.org/fhir/uv/fhircast/eventid", - "value": "b9a4b2e1-3f4c-4d6a-8e7f-1a2b3c4d5e6f" + "context": [ + { + "key": "parameters", + "resource": { + "resourceType": "Parameters", + "parameter": [ + { + "name": "relatedEvent", + "valueIdentifier": { + "system": "http://hl7.org/fhir/uv/fhircast/eventid", + "value": "b9a4b2e1-3f4c-4d6a-8e7f-1a2b3c4d5e6f" + } + } + ] + } } - }] - } -}] + ] } } ``` From b266547bf776ec5fa50e7b7f204c37221de77da1 Mon Sep 17 00:00:00 2001 From: Isaac Vetter Date: Mon, 13 Apr 2026 12:57:00 -0500 Subject: [PATCH 05/10] Update sushi-config.yaml --- sushi-config.yaml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/sushi-config.yaml b/sushi-config.yaml index 01a5ab53..5c2b46ca 100644 --- a/sushi-config.yaml +++ b/sushi-config.yaml @@ -174,6 +174,13 @@ pages: valueCode: trial-use - url: http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm valueInteger: 3 + 3-2-6-syncComplete.md: + title: SyncComplete Event + extension: + - url: http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status + valueCode: trial-use + - url: http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm + valueInteger: 1 3-3-0-patientevents.md: title: Patient Events extension: From 6f5a783848c6a95aff4b10f6cb4fc27bf4b6fbdd Mon Sep 17 00:00:00 2001 From: Isaac Vetter Date: Tue, 7 Jul 2026 09:32:19 -0500 Subject: [PATCH 06/10] Update 3-2-6-syncComplete.md --- input/pagecontent/3-2-6-syncComplete.md | 23 +++++------------------ 1 file changed, 5 insertions(+), 18 deletions(-) diff --git a/input/pagecontent/3-2-6-syncComplete.md b/input/pagecontent/3-2-6-syncComplete.md index 80c7584b..b39756f6 100644 --- a/input/pagecontent/3-2-6-syncComplete.md +++ b/input/pagecontent/3-2-6-syncComplete.md @@ -1,30 +1,17 @@ -### Event-name: SyncComplete +### Event-name: SyncSuccess eventMaturity | [0 - Draft](3-1-2-eventmaturitymodel.html) ### Workflow -Unlike most of FHIRcast events, SyncComplete is an infrastructural event and does not follow the FHIR-resource-[open|close|update|select] syntax and is directly referenced in the [underlying specification](2_Specification.html). +Unlike most of FHIRcast events, SyncSuccess is an infrastructural event and does not follow the FHIR-resource-[open|close|update|select] syntax and is directly referenced in the [underlying specification](2_Specification.html). -A Subscriber is affirmatively acknowledging successful synchronization to a give context change. When generated by the Hub, all subscribers have affirmatively acknowledged a context change and this is indicated to Subscribers. +A Subscriber is affirmatively acknowledging successful synchronization to a given context change. When generated by the Hub, all subscribers have affirmatively acknowledged a context change and this is indicated to Subscribers. -A `SyncComplete` MAY be sent by the Hub when all subscribers have either: +A `SyncSuccess` MAY be sent by the Hub when all subscribers have either: 1. Responded to a context change event with a 200. 2. Responded to a context change event with a 202, followed by a SyncComplete. -3. Responded to a context change event with a 202, followed by a SyncError containing an [OperationOutcome](StructureDefinition-fhircast-subscriber-operation-outcome-syncerrror.html) with a `severity` of merely `warning`. -`SyncComplete` is not used when a Subscriber responds to an `*-update` or `*-select` event. - -``` -OR - -All subscribers have affirmatively acknowledged receipt of a context change and this is indicated to Subscribers. - -A `SyncComplete` MAY be sent by the Hub when all subscribers have : -1. Responded to a context change event with a 200. - -`SyncComplete` is not used when a Subscriber responds to a context change event with an HTTP 202. -``` `SyncComplete` is not used when a Subscriber responds to an `*-update` or `*-select` event. @@ -33,7 +20,7 @@ A `SyncComplete` MAY be sent by the Hub when all subscribers have : {:.grid} Key | Cardinality | Type | Description --------- | ----------- | --------- | -------------- -`parameters` | 1..1 | resource | A FHIR OperationOutcome based on the profile ... +`parameters` | 1..1 | resource | A FHIR Parameters resource containg the FHIRcast event id of the event that was successfully synchronized to. ### Examples From 5eba27ab7107077a1c966c9b1a76e97b24aa5f7b Mon Sep 17 00:00:00 2001 From: Isaac Vetter Date: Tue, 7 Jul 2026 11:53:56 -0500 Subject: [PATCH 07/10] Update 3-2-6-syncComplete.md --- input/pagecontent/3-2-6-syncComplete.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/input/pagecontent/3-2-6-syncComplete.md b/input/pagecontent/3-2-6-syncComplete.md index b39756f6..96618dff 100644 --- a/input/pagecontent/3-2-6-syncComplete.md +++ b/input/pagecontent/3-2-6-syncComplete.md @@ -11,9 +11,9 @@ A Subscriber is affirmatively acknowledging successful synchronization to a give A `SyncSuccess` MAY be sent by the Hub when all subscribers have either: 1. Responded to a context change event with a 200. -2. Responded to a context change event with a 202, followed by a SyncComplete. +2. Responded to a context change event with a 202, followed by a SyncSuccess. -`SyncComplete` is not used when a Subscriber responds to an `*-update` or `*-select` event. +`SyncSuccess` is not used when a Subscriber responds to an `*-update` or `*-select` event. ### Context @@ -30,7 +30,7 @@ Key | Cardinality | Type | Description "id": "q9v3jubddqt63n1", "event": { "hub.topic": "7544fe65-ea26-44b5-835d-14287e46390b", - "hub.event": "synccomplete", + "hub.event": "syncsuccess", "context": [ { "key": "parameters", From e801314b571dbf13d5c85899fd09d204e0890f92 Mon Sep 17 00:00:00 2001 From: Isaac Vetter Date: Tue, 7 Jul 2026 11:55:48 -0500 Subject: [PATCH 08/10] Rename 3-2-6-syncComplete.md to 3-2-6-syncSuccess.md --- input/pagecontent/{3-2-6-syncComplete.md => 3-2-6-syncSuccess.md} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename input/pagecontent/{3-2-6-syncComplete.md => 3-2-6-syncSuccess.md} (100%) diff --git a/input/pagecontent/3-2-6-syncComplete.md b/input/pagecontent/3-2-6-syncSuccess.md similarity index 100% rename from input/pagecontent/3-2-6-syncComplete.md rename to input/pagecontent/3-2-6-syncSuccess.md From 4988dce7b5434d88a3d0fa1cf3155aaf3d3fc41b Mon Sep 17 00:00:00 2001 From: Isaac Vetter Date: Tue, 7 Jul 2026 11:56:57 -0500 Subject: [PATCH 09/10] Update sushi-config.yaml --- sushi-config.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sushi-config.yaml b/sushi-config.yaml index 5c2b46ca..83b6517a 100644 --- a/sushi-config.yaml +++ b/sushi-config.yaml @@ -174,8 +174,8 @@ pages: valueCode: trial-use - url: http://hl7.org/fhir/StructureDefinition/structuredefinition-fmm valueInteger: 3 - 3-2-6-syncComplete.md: - title: SyncComplete Event + 3-2-6-syncSuccess.md: + title: SyncSuccess Event extension: - url: http://hl7.org/fhir/StructureDefinition/structuredefinition-standards-status valueCode: trial-use From 426627aaa944c8c5132d2a3615d420e7f4b91d9b Mon Sep 17 00:00:00 2001 From: Isaac Vetter Date: Tue, 7 Jul 2026 12:44:22 -0500 Subject: [PATCH 10/10] create Parameters profile for SyncSuccess --- input/fsh/FHIRcastSyncSuccessContext.fsh | 33 ++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 input/fsh/FHIRcastSyncSuccessContext.fsh diff --git a/input/fsh/FHIRcastSyncSuccessContext.fsh b/input/fsh/FHIRcastSyncSuccessContext.fsh new file mode 100644 index 00000000..465d6e6e --- /dev/null +++ b/input/fsh/FHIRcastSyncSuccessContext.fsh @@ -0,0 +1,33 @@ +Profile: FHIRcastSyncSuccessParameters +Parent: Parameters +Id: fhircast-parameters-syncsuccess +Title: "FHIRcast Parameters profile for syncSuccess events." +Description: "Contains the FHIRcast event id of the event that was successfully synchronized to." +* insert SetWorkgroupFmmAndStatusRule( #inm, 1, #active) +* ^experimental = false +* parameter 1..* MS +* parameter ^slicing.discriminator.type = #value +* parameter ^slicing.discriminator.path = "name" +* parameter ^slicing.rules = #open +* parameter ^slicing.ordered = false // can be omitted, since false is the default +* parameter ^slicing.description = "The related, successfully synchronized event." +* parameter contains relatedEvent 1..1 MS +* parameter[relatedEvent].name = "relatedEvent" +* parameter[relatedEvent] ^short = "The successfully synchronized event." +* parameter[relatedEvent] ^definition = "The FHIRcast event id of the event that was successfully synchronized to." +* parameter[relatedEvent].value[x] 1..1 +* parameter[relatedEvent].value[x] Identifier +* parameter[relatedEvent].value[x] ^short = "The FHIRcast event id of the related event." +* parameter[relatedEvent].valueIdentifier.system 1..1 MS +* parameter[relatedEvent].valueIdentifier.system = "http://hl7.org/fhir/uv/fhircast/eventid" (exactly) +* parameter[relatedEvent].valueIdentifier.system ^short = "The FHIRcast eventid identifier system." +* parameter[relatedEvent].valueIdentifier.value 1..1 MS + +Instance: FHIRcastSyncSuccessContext-Example +InstanceOf: FHIRcastSyncSuccessContext +Description: "Example FHIRcast syncSuccess event context." +Usage: #example +* parameter[relatedEvent] + * name = "relatedEvent" + * valueIdentifier.system = "http://hl7.org/fhir/uv/fhircast/eventid" + * valueIdentifier.value = "b9a4b2e1-3f4c-4d6a-8e7f-1a2b3c4d5e6f"