RDC Interoperability Guide
1.1.0

Subscription

Official URL: https://roche.com/fhir/iop/StructureDefinition/rdc-Subscription Version: 1.1.0
Parent:

http://hl7.org/fhir/StructureDefinition/Subscription

Computable Name:

RdcSubscription

RDC Subscription profile describes custom rules how to create a valid Subscription resource to be able to subscribe to receive notifications about created/updated resources from Roche.

It is mandatory to include this and only this profile url in the meta.profile section of the Subscription JSON (see the examples).

Formal Views of Profile Content

name
contact..0
end..0
managingEntity..0
reason
filterParameterBinding
value
system..0
version..0
display..0
userSelected..0
endpoint1..
heartbeatPeriod..0
timeout
contentType1..
content1..Fixed Value
maxCount

Subscription.name
Comments

Cannot exceed 255 characters in size

Subscription.contact
Cardinality..0
Subscription.end
Cardinality..0
Subscription.managingEntity
Cardinality..0
Subscription.reason
Comments

Cannot exceed 2048 characters in size

Subscription.filterBy
Cardinality1..1
Subscription.filterBy.filterParameter
Binding

Can be either "patient" or "organization"

(unbound) (required)

Subscription.filterBy.value
ShortID of the resource
Definition

For filterParameter having value "organization", the value must correspond to the ID of the managing organization. For filterParameter having value "patient", the value must correspond to ID of a patient within the managing organization.

Subscription.channelType
Definition

The type of channel to send notifications on. Only rest-hook is allowed.

Fixed Value
{
  "code": "rest-hook"
}
Subscription.channelType.system
Cardinality..0
Subscription.channelType.version
Cardinality..0
Subscription.channelType.display
Cardinality..0
Subscription.channelType.userSelected
Cardinality..0
Subscription.endpoint
Cardinality1
Comments

Absolute URL to the endpoint to receive notifications. Must start with https://

Subscription.heartbeatPeriod
Cardinality..0
Subscription.timeout
Comments

Number between 10 and 20. Default is 10.

Subscription.contentType
Definition

The MIME type to send the payload in . Only values application/json and application/fhir+json are allowed.

Cardinality1
Subscription.content
Definition

How much of the resource content to deliver in the notification payload. Only id-only is supported

Cardinality1
Fixed Value
id-only
Subscription.maxCount
Comments

By default this value is set to 100. You can change the value to a number higher than 100.

<StructureDefinition xmlns="http://hl7.org/fhir">
<id value="rdc-Subscription" />
<url value="https://roche.com/fhir/iop/StructureDefinition/rdc-Subscription" />
<name value="RdcSubscription" />
<title value="RDC Subscription" />
<status value="active" />
<publisher value="F. Hoffmann-La Roche AG" />
<description value="RDC Subscription profile describes custom rules how to create a valid Subscription resource to be able to subscribe to receive notifications about created/updated resources from Roche." />
<copyright value="Copyright and related rights waived via CC0, https://creativecommons.org/publicdomain/zero/1.0/. This does not apply to information from third parties, for example a medical terminology system. The implementer alone is responsible for identifying and obtaining any necessary licenses or authorizations to utilize third party IP in connection with the specification or otherwise." />
<fhirVersion value="5.0.0" />
<kind value="resource" />
<abstract value="false" />
<type value="Subscription" />
<baseDefinition value="http://hl7.org/fhir/StructureDefinition/Subscription" />
<derivation value="constraint" />
<differential>
<element id="Subscription.name">
<path value="Subscription.name" />
<comment value="Cannot exceed 255 characters in size" />
</element>
<element id="Subscription.contact">
<path value="Subscription.contact" />
<max value="0" />
</element>
<element id="Subscription.end">
<path value="Subscription.end" />
<max value="0" />
</element>
<element id="Subscription.managingEntity">
<path value="Subscription.managingEntity" />
<max value="0" />
</element>
<element id="Subscription.reason">
<path value="Subscription.reason" />
<comment value="Cannot exceed 2048 characters in size" />
</element>
<element id="Subscription.filterBy">
<path value="Subscription.filterBy" />
<min value="1" />
<max value="1" />
</element>
<element id="Subscription.filterBy.filterParameter">
<path value="Subscription.filterBy.filterParameter" />
<binding>
<strength value="required" />
<description value="Can be either "patient" or "organization"" />
</binding>
</element>
<element id="Subscription.filterBy.value">
<path value="Subscription.filterBy.value" />
<short value="ID of the resource" />
<definition value="For filterParameter having value "organization", the value must correspond to the ID of the managing organization. For filterParameter having value "patient", the value must correspond to ID of a patient within the managing organization." />
</element>
<element id="Subscription.channelType">
<path value="Subscription.channelType" />
<definition value="The type of channel to send notifications on. Only rest-hook is allowed." />
<fixedCoding>
<code value="rest-hook" />
</fixedCoding>
</element>
<element id="Subscription.channelType.system">
<path value="Subscription.channelType.system" />
<max value="0" />
</element>
<element id="Subscription.channelType.version">
<path value="Subscription.channelType.version" />
<max value="0" />
</element>
<element id="Subscription.channelType.display">
<path value="Subscription.channelType.display" />
<max value="0" />
</element>
<element id="Subscription.channelType.userSelected">
<path value="Subscription.channelType.userSelected" />
<max value="0" />
</element>
<element id="Subscription.endpoint">
<path value="Subscription.endpoint" />
<comment value="Absolute URL to the endpoint to receive notifications. Must start with https://" />
<min value="1" />
</element>
<element id="Subscription.heartbeatPeriod">
<path value="Subscription.heartbeatPeriod" />
<max value="0" />
</element>
<element id="Subscription.timeout">
<path value="Subscription.timeout" />
<comment value="Number between 10 and 20. Default is 10." />
</element>
<element id="Subscription.contentType">
<path value="Subscription.contentType" />
<definition value="The MIME type to send the payload in . Only values `application/json` and `application/fhir+json` are allowed." />
<min value="1" />
</element>
<element id="Subscription.content">
<path value="Subscription.content" />
<definition value="How much of the resource content to deliver in the notification payload. Only id-only is supported" />
<min value="1" />
<fixedCode value="id-only" />
</element>
<element id="Subscription.maxCount">
<path value="Subscription.maxCount" />
<comment value="By default this value is set to 100. You can change the value to a number higher than 100." />
</element>
</differential>
</StructureDefinition>
{
"resourceType": "StructureDefinition",
"id": "rdc-Subscription",
"url": "https://roche.com/fhir/iop/StructureDefinition/rdc-Subscription",
"name": "RdcSubscription",
"title": "RDC Subscription",
"status": "active",
"publisher": "F. Hoffmann-La Roche AG",
"description": "RDC Subscription profile describes custom rules how to create a valid Subscription resource to be able to subscribe to receive notifications about created/updated resources from Roche.",
"copyright": "Copyright and related rights waived via CC0, https://creativecommons.org/publicdomain/zero/1.0/. This does not apply to information from third parties, for example a medical terminology system. The implementer alone is responsible for identifying and obtaining any necessary licenses or authorizations to utilize third party IP in connection with the specification or otherwise.",
"fhirVersion": "5.0.0",
"kind": "resource",
"abstract": false,
"type": "Subscription",
"baseDefinition": "http://hl7.org/fhir/StructureDefinition/Subscription",
"derivation": "constraint",
"differential": {
"element": [
{
"id": "Subscription.name",
"path": "Subscription.name",
"comment": "Cannot exceed 255 characters in size"
},
{
"id": "Subscription.contact",
"path": "Subscription.contact",
"max": "0"
},
{
"id": "Subscription.end",
"path": "Subscription.end",
"max": "0"
},
{
"id": "Subscription.managingEntity",
"path": "Subscription.managingEntity",
"max": "0"
},
{
"id": "Subscription.reason",
"path": "Subscription.reason",
"comment": "Cannot exceed 2048 characters in size"
},
{
"id": "Subscription.filterBy",
"path": "Subscription.filterBy",
"min": 1,
"max": "1"
},
{
"id": "Subscription.filterBy.filterParameter",
"path": "Subscription.filterBy.filterParameter",
"binding": {
"strength": "required",
"description": "Can be either \"patient\" or \"organization\""
}
},
{
"id": "Subscription.filterBy.value",
"path": "Subscription.filterBy.value",
"short": "ID of the resource",
"definition": "For filterParameter having value \"organization\", the value must correspond to the ID of the managing organization. For filterParameter having value \"patient\", the value must correspond to ID of a patient within the managing organization."
},
{
"id": "Subscription.channelType",
"path": "Subscription.channelType",
"definition": "The type of channel to send notifications on. Only rest-hook is allowed.",
"fixedCoding": {
"code": "rest-hook"
}
},
{
"id": "Subscription.channelType.system",
"path": "Subscription.channelType.system",
"max": "0"
},
{
"id": "Subscription.channelType.version",
"path": "Subscription.channelType.version",
"max": "0"
},
{
"id": "Subscription.channelType.display",
"path": "Subscription.channelType.display",
"max": "0"
},
{
"id": "Subscription.channelType.userSelected",
"path": "Subscription.channelType.userSelected",
"max": "0"
},
{
"id": "Subscription.endpoint",
"path": "Subscription.endpoint",
"comment": "Absolute URL to the endpoint to receive notifications. Must start with https://",
"min": 1
},
{
"id": "Subscription.heartbeatPeriod",
"path": "Subscription.heartbeatPeriod",
"max": "0"
},
{
"id": "Subscription.timeout",
"path": "Subscription.timeout",
"comment": "Number between 10 and 20. Default is 10."
},
{
"id": "Subscription.contentType",
"path": "Subscription.contentType",
"definition": "The MIME type to send the payload in . Only values `application/json` and `application/fhir+json` are allowed.",
"min": 1
},
{
"id": "Subscription.content",
"path": "Subscription.content",
"definition": "How much of the resource content to deliver in the notification payload. Only id-only is supported",
"min": 1,
"fixedCode": "id-only"
},
{
"id": "Subscription.maxCount",
"path": "Subscription.maxCount",
"comment": "By default this value is set to 100. You can change the value to a number higher than 100."
}
]
}
}

Attribute description

Attribute Description Terminology reference
identifier System/value pairs identifying the subscription. Not used by the server. Stored for the convenience of the subscriber.
name Name of the subscription
status Status of the subscription. For subscription creation, only the value requested is allowed. For subscription update, the allowed values are: active, requested, off. When fetching a subscription, server might also return subscription with status error. status
topic Canonical URL of the subscription topic. The subscription topic determines the resources about which the subscriber will be notified.
filterBy Enables to filter
channelType Only rest-hook is supported by the server.
endpoint URL to which the notifications will be sent by the server. Must start with https://
parameter Collection of name/value pairs to be added as the headers to the notification.
timeout The maximum amount of time (in seconds) a server will allow before failing a notification attempt. Default value is 10 seconds. Allowed values are integers between 10 and 20.
contentType application/json or application/fhir+json
content Only id-only is supported by the server.
maxCount Maximum amount of resources that can be bundled together in a single notification. Default is 100, the client can only increase this number.

Resource examples