Medplum · Schema
Subscription
The subscription resource is used to define a push-based subscription from a server to another system. Once a subscription is registered with the server, the server checks every resource that is created or updated, and if the resource matches the given criteria, it sends a message on the defined "channel" so that another system can take an appropriate action.
HealthcareFHIROpen SourceDeveloper PlatformHIPAASMART on FHIRClinicalInteroperability
Properties
| Name | Type | Description |
|---|---|---|
| resourceType | string | This is a Subscription resource |
| id | object | The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes. |
| meta | object | The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource. |
| implicitRules | object | A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that |
| language | object | The base language in which the resource is written. |
| text | object | A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is re |
| contained | array | These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope |
| extension | array | May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied |
| modifierExtension | array | May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of |
| status | object | The status of the subscription, which marks the server state for managing the subscription. |
| contact | array | Contact details for a human to contact about the subscription. The primary use of this for system administrator troubleshooting. |
| end | object | The time for the server to turn the subscription off. |
| reason | object | A description of why this subscription is defined. |
| criteria | object | The rules that the server should use to determine when to generate notifications for this subscription. |
| error | object | A record of the last error that occurred when the server processed a notification. |
| channel | object | Details where to send notifications when resources are received that meet the criteria. |
JSON Schema
{
"$schema": "https://json-schema.org/draft/2020-12/schema",
"title": "Subscription",
"description": "The subscription resource is used to define a push-based subscription from a server to another system. Once a subscription is registered with the server, the server checks every resource that is created or updated, and if the resource matches the given criteria, it sends a message on the defined \"channel\" so that another system can take an appropriate action.",
"x-source": "https://api.medplum.com/openapi.json",
"properties": {
"resourceType": {
"description": "This is a Subscription resource",
"type": "string"
},
"id": {
"description": "The logical id of the resource, as used in the URL for the resource. Once assigned, this value never changes.",
"$ref": "#/components/schemas/id"
},
"meta": {
"description": "The metadata about the resource. This is content that is maintained by the infrastructure. Changes to the content might not always be associated with version changes to the resource.",
"$ref": "#/components/schemas/Meta"
},
"implicitRules": {
"description": "A reference to a set of rules that were followed when the resource was constructed, and which must be understood when processing the content. Often, this is a reference to an implementation guide that defines the special rules along with other profiles etc.",
"$ref": "#/components/schemas/uri"
},
"language": {
"description": "The base language in which the resource is written.",
"$ref": "#/components/schemas/code"
},
"text": {
"description": "A human-readable narrative that contains a summary of the resource and can be used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it \"clinically safe\" for a human to just read the narrative. Resource definitions may define what content should be represented in the narrative to ensure clinical safety.",
"$ref": "#/components/schemas/Narrative"
},
"contained": {
"description": "These resources do not have an independent existence apart from the resource that contains them - they cannot be identified independently, and nor can they have their own independent transaction scope.",
"items": {
"$ref": "#/components/schemas/ResourceList"
},
"type": "array"
},
"extension": {
"description": "May be used to represent additional information that is not part of the basic definition of the resource. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer can define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.",
"items": {
"$ref": "#/components/schemas/Extension"
},
"type": "array"
},
"modifierExtension": {
"description": "May be used to represent additional information that is not part of the basic definition of the resource and that modifies the understanding of the element that contains it and/or the understanding of the containing element's descendants. Usually modifier elements provide negation or qualification. To make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension. Applications processing a resource are required to check for modifier extensions.\n\nModifier extensions SHALL NOT change the meaning of any elements on Resource or DomainResource (including cannot change the meaning of modifierExtension itself).",
"items": {
"$ref": "#/components/schemas/Extension"
},
"type": "array"
},
"status": {
"description": "The status of the subscription, which marks the server state for managing the subscription.",
"enum": [
"requested",
"active",
"error",
"off"
]
},
"contact": {
"description": "Contact details for a human to contact about the subscription. The primary use of this for system administrator troubleshooting.",
"items": {
"$ref": "#/components/schemas/ContactPoint"
},
"type": "array"
},
"end": {
"description": "The time for the server to turn the subscription off.",
"$ref": "#/components/schemas/instant"
},
"reason": {
"description": "A description of why this subscription is defined.",
"$ref": "#/components/schemas/string"
},
"criteria": {
"description": "The rules that the server should use to determine when to generate notifications for this subscription.",
"$ref": "#/components/schemas/string"
},
"error": {
"description": "A record of the last error that occurred when the server processed a notification.",
"$ref": "#/components/schemas/string"
},
"channel": {
"description": "Details where to send notifications when resources are received that meet the criteria.",
"$ref": "#/components/schemas/Subscription_Channel"
}
},
"additionalProperties": false,
"required": [
"channel",
"resourceType"
]
}