Skip to content

Commit

Permalink
Merge pull request #609 from shpringman/master
Browse files Browse the repository at this point in the history
FHIR-45645
  • Loading branch information
isaacvetter authored Dec 30, 2024
2 parents abe1aa2 + cdea27e commit ad700d3
Show file tree
Hide file tree
Showing 6 changed files with 79 additions and 39 deletions.
9 changes: 1 addition & 8 deletions input/pagecontent/2-10-ContentSharing.md
Original file line number Diff line number Diff line change
Expand Up @@ -90,14 +90,7 @@ If the event recipient does not support update events outside of the current con

### Content Creation and Reopen Scenario

{% include infonote.html text='Implementer feedback on the generation and general handling of a resource\'s identifiers, including its logical `id` is requested. As the result of a content sharing session, a new FHIR resource could be persisted to a clinical database, such that it\'s available even after the session ends. Should the logical id associated with that resource during the FHIRcast session also persist? If so, how should id conflicts be resolved? Additionally, would this impact the ability of Subscribers who participated in a content sharing session to [reopen](2-10-1-ContentSharingFHIRcastMessaging.html#content-creation-and-reopen-scenario) a content sharing session including the state of content at the time of the prior close of the session?' %}

When a Subscriber creates a FHIR resource which it asks be added to the anchor context's content, it SHALL create an `id` for the resource (see: [Resource.id](http://hl7.org/fhir/resource.html)). Two approaches to populating the resource's `id` are possible:

1. The Subscriber persists the resource in a FHIR server prior to adding the resource to the anchor context's content. Since the FHIR server provides an `id` for the resource this `id` SHOULD be used for the resource's `id` in addition to the resource's entry in the update bundle's `fullUrl` attribute when adding the resource to the anchor context's content.
2. The resource has not yet been persisted in a FHIR server or will never be persisted in a FHIR server by the Subscriber adding the resource to the anchor context's content. In this case, the Subscriber SHOULD use a mechanism to generate the `id` such that it will be globally unique (e.g., a [UUID](https://en.wikipedia.org/wiki/Universally_unique_identifier)).

If the same anchor context is reopened and used for a content sharing session, the same [Resource.id](http://hl7.org/fhir/resource.html) used during the initial content sharing session should be used by any Subscriber adding the same resource to this reopened content sharing session. Hence, should any Subscriber participating in a content sharing session decide to persist a resource after the content sharing session is closed, it SHOULD ensure that the original [Resource.id](http://hl7.org/fhir/resource.html) and the `fullUrl` attribute of the resource's entry in the update bundle (if populated) is part of the persisted resource. This enables a Subscriber to add the resource to a reopened content sharing session with the original [Resource.id](http://hl7.org/fhir/resource.html) or to identify (match) resources added to a reopened content sharing session with the resource in the original content sharing session.
In order to enable use-cases requiring persistence of content created during a FHIRcast session, including "re-opened" FHIRcast sessions, persistent identifiers are needed. FHIR logical IDs specified during a FHIRcast session are typically not persisted. Subscribers that create new FHIR resources SHOULD specify a business `identifier` for the resource (see: [FHIR's identifier].

For further discussion on the reopening of content sharing sessions see Section [4.6 FHIRcast Event-based Content Sharing](4-6-fhircast-event-content-sharing.html).

13 changes: 13 additions & 0 deletions input/pagecontent/2-9-GetCurrentContext.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,13 @@ The following example shows a response to the get context request when the curre
"resource": {
"resourceType": "DiagnosticReport",
"id": "40012366",
"identifier" : [
{
"use" : "official",
"system" : "http://myhealthcare.example.org/reporting-system",
"value" : "GH339884.RPT.0001"
}
],
"status": "unknown",
"subject": {
"reference": "Patient/ewUbXT9RWEbSj5wPEdgRaBw3"
Expand Down Expand Up @@ -115,6 +122,12 @@ The following example shows a response to the get context request when the curre
"resource": {
"resourceType": "Observation",
"id": "435098234",
"identifier": [
{
"system":"http://hospital.example.org",
"value":"7611ffcd-f242-4738-b451-31995b660b90"
}
]
"partOf": {
"reference": "ImagingStudy/8i7tbu6fby5ftfbku6fniuf"
},
Expand Down
7 changes: 7 additions & 0 deletions input/pagecontent/3-6-1-DiagnosticReport-open.md
Original file line number Diff line number Diff line change
Expand Up @@ -49,6 +49,13 @@ The following example shows a report being opened that contains a single primary
"resource": {
"resourceType": "DiagnosticReport",
"id": "2402d3bd-e988-414b-b7f2-4322e86c9327",
"identifier" : [
{
"use" : "official",
"system" : "http://myhealthcare.example.org/reporting-system",
"value" : "GH339884.RPT.0001"
}
],
"status": "unknown",
"basedOn" : [
{
Expand Down
2 changes: 1 addition & 1 deletion input/pagecontent/3-6-2-DiagnosticReport-close.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ If a Hub supports content sharing, after it distributes the `DiagnosticReport-cl
"identifier" : [
{
"use" : "official",
"system" : "http://myhealthcare.com/reporting-system",
"system" : "http://myhealthcare.example.org/reporting-system",
"value" : "GH339884.RPT.0001"
}
],
Expand Down
33 changes: 33 additions & 0 deletions input/pagecontent/3-6-3-DiagnosticReport-update.md
Original file line number Diff line number Diff line change
Expand Up @@ -105,6 +105,12 @@ The following example shows adding an imaging study and a new observation to the
"resource": {
"resourceType": "Observation",
"id": "40afe766-3628-4ded-b5bd-925727c013b3",
"identifier": [
{
"system":"http://hospital.example.org",
"value":"7611ffcd-f242-4738-b451-31995b660b90"
}
]
"partOf": {
"reference": "ImagingStudy/7e9deb91-0017-4690-aebd-951cef34aba4"
},
Expand Down Expand Up @@ -133,6 +139,13 @@ The following example shows adding an imaging study and a new observation to the
"resource": {
"resourceType": "DiagnosticReport",
"id": "2402d3bd-e988-414b-b7f2-4322e86c9327",
"identifier" : [
{
"use" : "official",
"system" : "http://myhealthcare.example.org/reporting-system",
"value" : "GH339884.RPT.0001"
}
],
"imagingStudy": [
{
"reference": "ImagingStudy/7e9deb91-0017-4690-aebd-951cef34aba4"
Expand Down Expand Up @@ -223,6 +236,12 @@ The Hub distributes the corresponding event to all Subscribers. The Hub replaces
"resource": {
"resourceType": "Observation",
"id": "40afe766-3628-4ded-b5bd-925727c013b3",
"identifier": [
{
"system":"http://hospital.example.org",
"value":"7611ffcd-f242-4738-b451-31995b660b90"
}
]
"partOf": {
"reference": "ImagingStudy/7e9deb91-0017-4690-aebd-951cef34aba4"
},
Expand Down Expand Up @@ -251,6 +270,13 @@ The Hub distributes the corresponding event to all Subscribers. The Hub replaces
"resource": {
"resourceType": "DiagnosticReport",
"id": "2402d3bd-e988-414b-b7f2-4322e86c9327",
"identifier" : [
{
"use" : "official",
"system" : "http://myhealthcare.example.org/reporting-system",
"value" : "GH339884.RPT.0001"
}
],
"imagingStudy": [
{
"reference": "ImagingStudy/7e9deb91-0017-4690-aebd-951cef34aba4"
Expand Down Expand Up @@ -318,6 +344,13 @@ The following example shows a request to delete an observation from a content sh
"resource": {
"resourceType": "DiagnosticReport",
"id": "2402d3bd-e988-414b-b7f2-4322e86c9327",
"identifier" : [
{
"use" : "official",
"system" : "http://myhealthcare.example.org/reporting-system",
"value" : "GH339884.RPT.0001"
}
],
"imagingStudy": [
{
"reference": "ImagingStudy/7e9deb91-0017-4690-aebd-951cef34aba4"
Expand Down
54 changes: 24 additions & 30 deletions input/pagecontent/3-6-4-DiagnosticReport-select.md
Original file line number Diff line number Diff line change
Expand Up @@ -26,36 +26,30 @@ The following example shows the selection of a single Observation resource in an

```json
{
"timestamp": "2019-09-10T14:58:45.988Z",
"id": "78ef1125-7f8b-4cbc-bc59-a2a02f7e04",
"event": {
"hub.topic": "fdb2f928-5546-4f52-87a0-0648e9ded065",
"hub.event": "DiagnosticReport-select",
"context": [
{
"key": "report",
"resource": {
"resourceType": "DiagnosticReport",
"id": "2402d3bd-e988-414b-b7f2-4322e86c9327"
}
},
{
"key": "patient",
"resource": {
"resourceType": "Patient",
"id": "503824b8-fe8c-4227-b061-7181ba6c3926"
}
},
{
"key": "select",
"reference": [
{
"reference": "Observation/40afe766-3628-4ded-b5bd-925727c013b3"
}
]
}
]
}
"timestamp":"2019-09-10T14:58:45.988Z",
"id":"78ef1125-7f8b-4cbc-bc59-a2a02f7e04",
"event":{
"hub.topic":"fdb2f928-5546-4f52-87a0-0648e9ded065",
"hub.event":"DiagnosticReport-select",
"context":[
{
"key":"report",
"reference":[
{
"reference":"DiagnosticReport/2402d3bd-e988-414b-b7f2-4322e86c9327"
}
]
},
{
"key":"select",
"reference":[
{
"reference":"Observation/40afe766-3628-4ded-b5bd-925727c013b3"
}
]
}
]
}
}
```

Expand Down

0 comments on commit ad700d3

Please sign in to comment.