Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

FHIR 40566 Added version support #585

Open
wants to merge 1 commit into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Binary file modified ebnf/diagram/ContentSharingEventName.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified ebnf/diagram/ContextEventName.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified ebnf/diagram/EventName.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified ebnf/diagram/SelectionEventName.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
2 changes: 1 addition & 1 deletion ebnf/input/contextchange.ebnf
Original file line number Diff line number Diff line change
@@ -1 +1 @@
ContextEventName ::= ( FHIRresource ) '-' ( 'open' | 'close' )
ContextEventName ::= ( FHIRresource ) '-' ( 'open' | 'close' ) ( '.v' Version | '*')?
2 changes: 1 addition & 1 deletion ebnf/input/events.ebnf
Original file line number Diff line number Diff line change
@@ -1 +1 @@
EventName ::= (FHIRresource ) ('-') ( 'open' | 'close' | 'update' | 'select' )
EventName ::= (FHIRresource | '*') ('-') ( 'open' | 'close' | 'update' | 'select' | '*' ) ( '.v' Version | '*')?
2 changes: 1 addition & 1 deletion ebnf/input/selection.ebnf
Original file line number Diff line number Diff line change
@@ -1 +1 @@
SelectionEventName ::= ( FHIRresource ) '-' ( select )
SelectionEventName ::= ( FHIRresource ) '-' ( select ) ( '.v' Version | '*')?
2 changes: 1 addition & 1 deletion ebnf/input/update.ebnf
Original file line number Diff line number Diff line change
@@ -1 +1 @@
ContentSharingEventName ::= ( FHIRresource ) '-' ( update )
ContentSharingEventName ::= ( FHIRresource ) '-' ( update ) ( '.v' Version | '*')?
Binary file modified input/images/ContentSharingEventName.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified input/images/ContextEventName.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified input/images/EventName.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file modified input/images/SelectionEventName.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
11 changes: 5 additions & 6 deletions input/pagecontent/2-3-Events.md
Original file line number Diff line number Diff line change
Expand Up @@ -30,12 +30,12 @@ The event name defines the event. Most FHIRcast events conform to an extensible
Patterned after the SMART on FHIR scope syntax and expressed in EBNF notation, the FHIRcast syntax for context change related events is:

```ebnf
EventName ::= (FHIRresource) ('-') ( 'open' | 'close' | 'update' | 'select' )
EventName ::= (FHIRresource | '*') ('-') ( 'open' | 'close' | 'update' | 'select' | '*' ) (('.v') Version)?
```

{% include img.html img="EventName.png" caption="Figure: Event-name specification" %}

The `FHIRresource` indicates the focus of the event; the `suffix` defines the type of event.
The `FHIRresource` indicates the focus of the event. The next part defines the type of event. The optional `Version` field allows specifying the version of the event. When this field is omitted, it refers to the most recent version of the event supported by the Hub. Hubs are RECOMMENDED to at least support the most recent version of the events defined in the [standard event catalog](3_Events.html).

Event names are unique and case-insensitive. It is RECOMMENDED to use [Upper-Camel](https://en.wikipedia.org/wiki/Camel_case) case.

Expand Down Expand Up @@ -71,7 +71,7 @@ The FHIRcast specification supports many different events. These events are defi
FHIRcast context-change events that describe context changes SHALL conform to the following extensible syntax. Patterned after the SMART on FHIR scope syntax and expressed in EBNF notation, the FHIRcast syntax for context-change related event names is:

```ebnf
ContextChangeEventName ::= ( FHIRresource ) '-' ( 'open' | 'close' )
ContextChangeEventName ::= ( FHIRresource ) '-' ( 'open' | 'close' ) (('.v') Version)?
```

{% include img.html img="ContextEventName.png" caption="Figure: Context Event-name specification" %}
Expand Down Expand Up @@ -111,8 +111,7 @@ This event category contains events required to maintain a FHIRcast session. The
Content sharing events use the suffix `update`. The format of content sharing event names is:

```ebnf
ContentSharingEventName ::= ( FHIRresource ) '-' ( 'update' )
```
ContentSharingEventName ::= ( FHIRresource ) '-' ( 'update' ) (('.v') Version)?

{% include img.html img="ContentSharingEventName.png" caption="Figure: Content sharing event-name specification" %}

Expand All @@ -128,7 +127,7 @@ FHIRcast supports all events that follow this format. The most common events def
Selection events use the suffix `select`. The format of selection event names is:

```ebnf
SelectionEventName ::= ( FHIRresource ) '-' ( 'select' )
SelectionEventName ::= ( FHIRresource ) '-' ( 'select' ) (('.v') Version)?
```

{% include img.html img="SelectionEventName.png" caption="Figure: Selection Event-name specification" %}
Expand Down
2 changes: 1 addition & 1 deletion input/pagecontent/2-7-Conformance.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ A simple JSON document is returned using the `application/json` mime type, with
{:.grid}
Field | Optionality | Type | Description
------------------ | ----------- | ----- | ---
`eventsSupported` | Required | array | Array of FHIRcast events supported by the Hub.
`eventsSupported` | Required | array | Array of FHIRcast events supported by the Hub. This array SHALL include both the versioned as well as the unversioned version of the events.
`websocketSupport` | Required | boolean | SHALL have the static value: `true` - indicating support for websockets.
`fhircastVersion` | Optional | string | `STU1`, `STU2`, or `STU3` - indicating support for a specific version of FHIRcast. Hubs SHOULD indicate the version of FHIRcast supported.
`getCurrentSupport` | Optional | boolean | `true` or `false` - indicating support for the "[Get Current Context](2-9-GetCurrentContext.html)" API.
Expand Down
6 changes: 4 additions & 2 deletions input/pagecontent/3-1-1-template.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,10 @@
This section presents the template to use for defining new events.

### Event-name: [FHIR resource]-[suffix]
### Event-name: [FHIR resource]-[suffix]-[version]

eventMaturity | [0 - Draft](3-1-2-eventmaturitymodel.html)
{:.grid}
| Event-maturity | [0 - Draft](3-1-2-eventmaturitymodel.html) |
| Version | <current version> |

### Workflow

Expand Down
8 changes: 5 additions & 3 deletions input/pagecontent/3-2-1-SyncError.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
### Event-name: SyncError

eventMaturity | [2 - Tested](3-1-2-eventmaturitymodel.html)
{:.grid}
| Event-maturity | [2 - Tested](3-1-2-eventmaturitymodel.html) |
| Version | 2.1

### Workflow

Expand Down Expand Up @@ -80,6 +82,6 @@ The `context` array SHALL contain a single FHIR OperationOutcome based on the pr
{:.grid}
| Version | Description |
| ------- | ------------- |
| 1.0 | Initial Release |
| 2.0 | Require id of event syncerror is about, in `OperationOutcome.details.coding.code` |
| [1.0](https://fhircast.hl7.org/events/syncerror/) | Initial Release |
| [2.0](https://hl7.org/fhir/uv/fhircast/2022May/3-2-1-syncerror.html) | Require id of event syncerror is about, in `OperationOutcome.details.coding.code` |
| 2.1 | Clarify scenarios, make the OperationOutcome resource required, and specify explicit `severity` codes |
4 changes: 3 additions & 1 deletion input/pagecontent/3-2-2-UserLogout.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
### Event-name: UserLogout

eventMaturity | [1 - Submitted](3-1-2-eventmaturitymodel.html)
{:.grid}
| Event-maturity | [1 - Submitted](3-1-2-eventmaturitymodel.html) |
| Version | 1.0

### Workflow

Expand Down
4 changes: 3 additions & 1 deletion input/pagecontent/3-2-3-UserHibernate.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
### Event-name: UserHibernate

eventMaturity | [1 - Submitted](3-1-2-eventmaturitymodel.html)
{:.grid}
| Event-maturity | [1 - Submitted](3-1-2-eventmaturitymodel.html) |
| Version | 1.0

### Workflow

Expand Down
4 changes: 3 additions & 1 deletion input/pagecontent/3-2-5-Home-open.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
### Home-open

eventMaturity | [1 - Submitted](3-1-2-eventmaturitymodel.html)
{:.grid}
| Event-maturity | [1 - Submitted](3-1-2-eventmaturitymodel.html) |
| Version | 1.0

### Workflow

Expand Down
10 changes: 6 additions & 4 deletions input/pagecontent/3-3-1-Patient-open.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
### Event name: Patient-open

eventMaturity | [3 - Considered](3-1-2-eventmaturitymodel.html)
{:.grid}
| Event-maturity | [3 - Considered](3-1-2-eventmaturitymodel.html) |
| Version | 1.2

### Workflow

Expand Down Expand Up @@ -83,6 +85,6 @@ Other attributes of the Patient resource (or resource extensions) may be present
{:.grid}
| Version | Description
| ---- | ----
| 1.0 | Initial Release
| 1.1 | Deprecate encounter element in favor of dedicated `encounter-open` event
| 1.2 | Reference context resource profiles and update example to be compliant with the profiles
| [1.0](https://fhircast.hl7.org/events/patient-open/) | Initial Release
| [1.1](https://hl7.org/fhir/uv/fhircast/2022May/3-3-1-patient-open.html) | Deprecate encounter element in favor of dedicated `encounter-open` event
| [1.2](https://hl7.org/fhir/uv/fhircast/2024May/3-3-1-Patient-open.html) | Reference context resource profiles and update example to be compliant with the profiles
10 changes: 6 additions & 4 deletions input/pagecontent/3-3-2-Patient-close.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
### Event-name: Patient-close

eventMaturity | [3 - Considered](3-1-2-eventmaturitymodel.html)
{:.grid}
| Event-maturity | [3 - Considered](3-1-2-eventmaturitymodel.html) |
| Version | 1.0

### Workflow

Expand Down Expand Up @@ -65,6 +67,6 @@ Other attributes of the Patient resource (or resource extensions) may be present
{:.grid}
| Version | Description
| ---- | ----
| 1.0 | Initial Release
| 1.1 | Deprecate encounter element in favor of dedicated `encounter-close` event
| 1.2 | Reference context resource profiles and update example to be compliant with the profiles
| [1.0](https://fhircast.hl7.org/events/patient-close/) | Initial Release
| [1.1](https://hl7.org/fhir/uv/fhircast/2022May/3-3-1-patient-close.html) | Deprecate encounter element in favor of dedicated `encounter-close` event
| [1.2](https://hl7.org/fhir/uv/fhircast/2024May/3-3-1-Patient-close.html) | Reference context resource profiles and update example to be compliant with the profiles
6 changes: 4 additions & 2 deletions input/pagecontent/3-4-1-Encounter-open.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
### Event-name: Encounter-open

eventMaturity | [2 - Tested](3-1-2-eventmaturitymodel.html)
{:.grid}
| Event-maturity | [2 - Tested](3-1-2-eventmaturitymodel.html) |
| Version | 1.1

### Workflow

Expand Down Expand Up @@ -107,5 +109,5 @@ Other attributes of the Encounter and Patient resources (or resource extensions)
{:.grid}
| Version | Description
| ---- | ----
| 1.0 | Initial Release
| [1.0](https://hl7.org/fhir/uv/fhircast/2022May/3-4-1-encounter-open.html) | Initial Release
| 1.1 | Reference context resource profiles and update example to be compliant with the profiles
6 changes: 4 additions & 2 deletions input/pagecontent/3-4-2-Encounter-close.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
### Event-name: Encounter-close

eventMaturity | [2 - Tested](3-1-2-eventmaturitymodel.html)
{:.grid}
| Event-maturity | [2 - Tested](3-1-2-eventmaturitymodel.html) |
| Version | 1.1

### Workflow

Expand Down Expand Up @@ -89,5 +91,5 @@ Other attributes of the Encounter and Patient resources (or resource extensions)
{:.grid}
| Version | Description
| ---- | ----
| 1.0 | Initial Release
| [1.0](https://hl7.org/fhir/uv/fhircast/2022May/3-4-1-encounter-close.html) | Initial Release
| 1.1 | Reference context resource profiles and update example to be compliant with the profiles
6 changes: 4 additions & 2 deletions input/pagecontent/3-5-1-ImagingStudy-open.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
### Event-name: ImagingStudy-open

eventMaturity | [2 - Tested](3-1-2-eventmaturitymodel.html)
{:.grid}
| Event-maturity | [2-Tested](3-1-2-eventmaturitymodel.html) |
| Version | 1.1

### Workflow

Expand Down Expand Up @@ -217,5 +219,5 @@ This is an example for FHIR R5 using the basedOn array for the accession
{:.grid}
| Version | Description
| ------- | ----
| 1.0 | Initial Release
| [1.0](https://fhircast.hl7.org/events/imagingstudy-open/) | Initial Release
| 1.1 | Reference context resource profiles and update example to be compliant with the profiles
6 changes: 4 additions & 2 deletions input/pagecontent/3-5-2-ImagingStudy-close.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
### Event-name: ImagingStudy-close

eventMaturity | [2 - Tested](3-1-2-eventmaturitymodel.html)
{:.grid}
| Event-maturity | [2 - Tested](3-1-2-eventmaturitymodel.html) |
| Version | 1.1

### Workflow

Expand Down Expand Up @@ -182,5 +184,5 @@ This is an example for FHIR R5 using the basedOn array for the accession
{:.grid}
| Version | Description
| ------- | ----
| 1.0 | Initial Release
| [1.0](https://fhircast.hl7.org/events/imagingstudy-close/) | Initial Release
| 1.1 | Reference context resource profiles and update example to be compliant with the profiles
6 changes: 4 additions & 2 deletions input/pagecontent/3-6-1-DiagnosticReport-open.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
### Event-name: DiagnosticReport-open

eventMaturity | [2 - Tested](3-1-2-eventmaturitymodel.html)
{:.grid}
| Event-maturity | [2 - Tested](3-1-2-eventmaturitymodel.html) |
| Version | 1.0

### Workflow

Expand Down Expand Up @@ -201,6 +203,6 @@ The event distributed by the Hub includes a context version in the `context.vers
{:.grid}
| Version | Description
| ------- | ----
| 0.1 | Initial draft
| [0.1](https://hl7.org/fhir/uv/fhircast/2022May/3-6-1-diagnosticreport-open.html) | Initial draft
| 0.5 | Connectathon trials and initial fielded solutions based on draft STU3
| 1.0 | Reference context resource profiles and update example to be compliant with the profiles
6 changes: 4 additions & 2 deletions input/pagecontent/3-6-2-DiagnosticReport-close.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
### Event-name: DiagnosticReport-close

eventMaturity | [2 - Tested](3-1-2-eventmaturitymodel.html)
{:.grid}
| Event-maturity | [2 - Tested](3-1-2-eventmaturitymodel.html) |
| Version | 1.0

### Workflow

Expand Down Expand Up @@ -169,6 +171,6 @@ If a Hub supports content sharing, after it distributes the `DiagnosticReport-cl
{:.grid}
| Version | Description
| ------- | ----
| 0.1 | Initial draft
| [0.1](https://hl7.org/fhir/uv/fhircast/2022May/3-6-1-diagnosticreport-open.html) | Initial draft
| 0.5 | Connectathon trials and initial fielded solutions based on draft STU3
| 1.0 | Reference context resource profiles and update example to be compliant with the profiles
8 changes: 6 additions & 2 deletions input/pagecontent/3-6-3-DiagnosticReport-update.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
### Event-name: DiagnosticReport-update

eventMaturity | [2 - Tested](3-1-2-eventmaturitymodel.html)
{:.grid}
| Event-maturity | [2 - Tested](3-1-2-eventmaturitymodel.html) |
| Version | 1.0

#### Workflow

The `DiagnosticReport-update` event is used by Subscribers to support content sharing in communication with a Hub which also supports content sharing. A `DiagnosticReport-update` request will be posted to the Hub when a Subscriber desires to add, change, or remove exchanged information in the anchor context. For a `DiagnosticReport-update`, the [`anchor context`](5_glossary.html) is the `DiagnosticReport` context established by the corresponding `DiagnosticReport-open`. One or more update requests MAY occur while the anchor context is open.

Expand Down Expand Up @@ -292,5 +296,5 @@ The following example shows a request to delete an observation from a content sh
{:.grid}
| Version | Description
| ------- | ----
| 0.1 | Initial draft
| [0.1](https://hl7.org/fhir/uv/fhircast/2022May/3-6-1-diagnosticreport-open.html) | Initial draft
| 1.0 | Updated for STU3
6 changes: 4 additions & 2 deletions input/pagecontent/3-6-4-DiagnosticReport-select.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
### Event-name: DiagnosticReport-select

eventMaturity | [2 - Tested](3-1-2-eventmaturitymodel.html)
{:.grid}
| Event-maturity | [2 - Tested](3-1-2-eventmaturitymodel.html) |
| Version | 1.0

### Workflow
A `DiagnosticReport-select` request will be made to the Hub when a Subscriber desires to indicate that one or more FHIR resources contained in the DiagnosticReport context's content are to be made visible, in focus, or otherwise "selected". It is assumed that a FHIR resource (e.g., Observation) with the specified `id` is contained in the specified [`anchor context's`](5_glossary.html) content, the Hub MAY or MAY NOT provide validation of its presence.
Expand Down Expand Up @@ -71,5 +73,5 @@ The following example shows the selection of a single Observation resource in an
{:.grid}
| Version | Description
| ------- | ----
| 0.1 | Initial draft
| [0.1](https://hl7.org/fhir/uv/fhircast/2022May/3-6-1-diagnosticreport-open.html) | Initial draft
| 1.0 | Updated for STU3
6 changes: 5 additions & 1 deletion input/pagecontent/7_design-notes.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,8 +6,12 @@ Originally, FHIRcast supported a `webhook` channel (URL callbacks). As part of F

The field `hub.channel.type` was used to indicate the channel type to use for event notification. This field has been retained in order to support backward compatibility as well as facilitate potentially adding new channels in the future.

Similarly, the conformance statement related to WebSocketsupport was retained.
Similarly, the conformance statement related to WebSocket support was retained.

### Content sharing approach

Two base use cases for content-exchange were identified during use case analysis. One employs a transactional, event-based exchange mechanism while the second uses content sharing content persisted in a FHIR server. It is also possible to use both methods concurrently. A detailed description of these approaches is found in the content sharing section of the specification.

### FHIRcast event versioning

The event definitions can evolve independently of the specification. In some deployments, there might be a need to retain support of older event versions, especially in the case where there are breaking changes. In order to support deployments where older versions of events are used, a versioning scheme has been added to events.
Loading