PREFIX fhir: PREFIX fhirvs: PREFIX xsd: BASE start=@ AND {fhir:nodeRole [fhir:treeRoot]} # The definition of a specific topic for triggering events within the Subscriptions framework CLOSED { a [fhir:SubscriptionTopic]; fhir:nodeRole [fhir:treeRoot]?; fhir:Resource.id id?; # Logical id of this artifact fhir:Resource.meta @?; # Metadata about the resource fhir:Resource.implicitRules @?; # A set of rules under which this # content was created fhir:Resource.language @?; # Language of the resource content fhir:DomainResource.text @?; # Text summary of the resource, for # human interpretation fhir:DomainResource.contained @*; # Contained, inline Resources fhir:DomainResource.extension @*; # Additional content defined by # implementations fhir:DomainResource.modifierExtension @*; # Extensions that cannot be ignored fhir:SubscriptionTopic.url @; # Canonical identifier for this # subscription topic definition, # represented as a URI (globally # unique) fhir:SubscriptionTopic.identifier @*; # Business Identifier for this # subscription topic fhir:SubscriptionTopic.version @?; # Business version of the # subscription topic fhir:SubscriptionTopic.title @?; # Name for this subscription topic # (Human friendly) fhir:SubscriptionTopic.derivedFrom @*; # Based on FHIR protocol or # definition fhir:SubscriptionTopic.status @ AND {fhir:value @fhirvs:publication-status}; # draft | active | retired | unknown fhir:SubscriptionTopic.experimental @?; # If for testing purposes, not real # usage fhir:SubscriptionTopic.date @?; # Date status first applied fhir:SubscriptionTopic.publisher @?; # The name of the individual or # organization that published the # SubscriptionTopic fhir:SubscriptionTopic.contact @*; # Contact details for the publisher fhir:SubscriptionTopic.description @?; # Natural language description of # the SubscriptionTopic fhir:SubscriptionTopic.useContext @*; # Content intends to support these # contexts fhir:SubscriptionTopic.jurisdiction @*; # Intended jurisdiction of the # SubscriptionTopic (if applicable) fhir:SubscriptionTopic.purpose @?; # Why this SubscriptionTopic is # defined fhir:SubscriptionTopic.copyright @?; # Use and/or publishing restrictions fhir:SubscriptionTopic.approvalDate @?; # When SubscriptionTopic is/was # approved by publisher fhir:SubscriptionTopic.lastReviewDate @?; # Date the Subscription Topic was # last reviewed by the publisher fhir:SubscriptionTopic.effectivePeriod @?; # The effective date range for the # SubscriptionTopic fhir:SubscriptionTopic.resourceTrigger @*; # Definition of a resource-based # trigger for the subscription topic fhir:SubscriptionTopic.eventTrigger @*; # Event definitions the # SubscriptionTopic fhir:SubscriptionTopic.canFilterBy @*; # Properties by which a Subscription # can filter notifications from the # SubscriptionTopic fhir:SubscriptionTopic.notificationShape @*; # Properties for describing the # shape of notifications generated # by this topic fhir:index xsd:integer? # Relative position in a list } # Properties by which a Subscription can filter notifications from the SubscriptionTopic CLOSED { fhir:Element.id string?; # Unique id for inter-element # referencing fhir:Element.extension @*; # Additional content defined by # implementations fhir:BackboneElement.modifierExtension @*; # Extensions that cannot be ignored # even if unrecognized fhir:SubscriptionTopic.canFilterBy.description @?; # Description of this filter # parameter fhir:SubscriptionTopic.canFilterBy.resource @?; # URL of the triggering Resource # that this filter applies to fhir:SubscriptionTopic.canFilterBy.filterParameter @; # Human-readable and # computation-friendly name for a # filter parameter usable by # subscriptions on this topic, via # Subscription.filterBy.filterPara- # meter fhir:SubscriptionTopic.canFilterBy.filterDefinition @?; # Canonical URL for a # filterParameter definition fhir:SubscriptionTopic.canFilterBy.modifier @ AND {fhir:value @fhirvs:subscription-search-modifier}*; # = | eq | ne | gt | lt | ge | le | # sa | eb | ap | above | below | in # | not-in | of-type fhir:index xsd:integer? # Relative position in a list } # Event definitions the SubscriptionTopic CLOSED { fhir:Element.id string?; # Unique id for inter-element # referencing fhir:Element.extension @*; # Additional content defined by # implementations fhir:BackboneElement.modifierExtension @*; # Extensions that cannot be ignored # even if unrecognized fhir:SubscriptionTopic.eventTrigger.description @?; # Text representation of the event # trigger fhir:SubscriptionTopic.eventTrigger.event @; # Event which can trigger a # notification from the # SubscriptionTopic fhir:SubscriptionTopic.eventTrigger.resource @; # Data Type or Resource (reference # to definition) for this trigger # definition fhir:index xsd:integer? # Relative position in a list } # Definition of a resource-based trigger for the subscription topic CLOSED { fhir:Element.id string?; # Unique id for inter-element # referencing fhir:Element.extension @*; # Additional content defined by # implementations fhir:BackboneElement.modifierExtension @*; # Extensions that cannot be ignored # even if unrecognized fhir:SubscriptionTopic.resourceTrigger.description @?; # Text representation of the # resource trigger fhir:SubscriptionTopic.resourceTrigger.resource @; # Data Type or Resource (reference # to definition) for this trigger # definition fhir:SubscriptionTopic.resourceTrigger.supportedInteraction @ AND {fhir:value @fhirvs:interaction-trigger}*; # create | update | delete fhir:SubscriptionTopic.resourceTrigger.queryCriteria @?; # Query based trigger rule fhir:SubscriptionTopic.resourceTrigger.fhirPathCriteria @?; # FHIRPath based trigger rule fhir:index xsd:integer? # Relative position in a list } # Properties for describing the shape of notifications generated by this topic CLOSED { fhir:Element.id string?; # Unique id for inter-element # referencing fhir:Element.extension @*; # Additional content defined by # implementations fhir:BackboneElement.modifierExtension @*; # Extensions that cannot be ignored # even if unrecognized fhir:SubscriptionTopic.notificationShape.resource @; # URL of the Resource that is the # focus (main) resource in a # notification shape fhir:SubscriptionTopic.notificationShape.include @*; # Include directives, rooted in the # resource for this shape fhir:SubscriptionTopic.notificationShape.revInclude @*; # Reverse include directives, rooted # in the resource for this shape fhir:index xsd:integer? # Relative position in a list } # Query based trigger rule CLOSED { fhir:Element.id string?; # Unique id for inter-element # referencing fhir:Element.extension @*; # Additional content defined by # implementations fhir:BackboneElement.modifierExtension @*; # Extensions that cannot be ignored # even if unrecognized fhir:SubscriptionTopic.resourceTrigger.queryCriteria.previous @?; # Rule applied to previous resource # state fhir:SubscriptionTopic.resourceTrigger.queryCriteria.resultForCreate @ AND {fhir:value @fhirvs:subscriptiontopic-cr-behavior}?; # test-passes | test-fails fhir:SubscriptionTopic.resourceTrigger.queryCriteria.current @?; # Rule applied to current resource # state fhir:SubscriptionTopic.resourceTrigger.queryCriteria.resultForDelete @ AND {fhir:value @fhirvs:subscriptiontopic-cr-behavior}?; # test-passes | test-fails fhir:SubscriptionTopic.resourceTrigger.queryCriteria.requireBoth @?; # Both must be true flag fhir:index xsd:integer? # Relative position in a list } #---------------------- Data Types ------------------- # Primitive Type dateTime CLOSED { fhir:Element.id string?; # xml:id (or equivalent in JSON) fhir:Element.extension @*; # Additional content defined by # implementations fhir:value dateTime?; # Primitive value for dateTime fhir:index xsd:integer? # Relative position in a list } # Primitive Type date CLOSED { fhir:Element.id string?; # xml:id (or equivalent in JSON) fhir:Element.extension @*; # Additional content defined by # implementations fhir:value date?; # Primitive value for date fhir:index xsd:integer? # Relative position in a list } # Metadata about a resource CLOSED { fhir:Element.id id?; # Unique id for inter-element # referencing fhir:Element.extension @*; # Additional content defined by # implementations fhir:Meta.versionId @?; # Version specific identifier fhir:Meta.lastUpdated @?; # When the resource version last # changed fhir:Meta.source @?; # Identifies where the resource # comes from fhir:Meta.profile @*; # Profiles this resource claims to # conform to fhir:Meta.security @*; # Security Labels applied to this # resource fhir:Meta.tag @*; # Tags applied to this resource fhir:index xsd:integer? # Relative position in a list } # Primitive Type code CLOSED { fhir:Element.id string?; # xml:id (or equivalent in JSON) fhir:Element.extension @*; # Additional content defined by # implementations fhir:value code?; # Primitive value for code fhir:index xsd:integer? # Relative position in a list } # Primitive Type string CLOSED { fhir:Element.id string?; # xml:id (or equivalent in JSON) fhir:Element.extension @*; # Additional content defined by # implementations fhir:value string MAXLENGTH 1048576?; # Primitive value for string fhir:index xsd:integer? # Relative position in a list } # Base Resource {a .+; fhir:Resource.id id?; # Logical id of this artifact fhir:Resource.meta @?; # Metadata about the resource fhir:Resource.implicitRules @?; # A set of rules under which this # content was created fhir:Resource.language @?; # Language of the resource content fhir:index xsd:integer? } # Time range defined by start and end date/time CLOSED { fhir:Element.id id?; # Unique id for inter-element # referencing fhir:Element.extension @*; # Additional content defined by # implementations fhir:Period.start @?; # Starting time with inclusive # boundary fhir:Period.end @?; # End time with inclusive boundary, # if not ongoing fhir:index xsd:integer? # Relative position in a list } # Primitive Type canonical CLOSED { fhir:Element.id string?; # xml:id (or equivalent in JSON) fhir:Element.extension @*; # Additional content defined by # implementations fhir:value canonical?; # Primitive value for canonical fhir:index xsd:integer? # Relative position in a list } # Primitive Type uri CLOSED { fhir:Element.id string?; # xml:id (or equivalent in JSON) fhir:Element.extension @*; # Additional content defined by # implementations fhir:value uri?; # Primitive value for uri fhir:index xsd:integer? # Relative position in a list } # Optional Extensions Element CLOSED { fhir:Element.id id?; fhir:Element.extension @*; fhir:Extension.url uri; ( fhir:Extension.valueBase64Binary @ | fhir:Extension.valueBoolean @ | fhir:Extension.valueCanonical @ | fhir:Extension.valueCode @ | fhir:Extension.valueDate @ | fhir:Extension.valueDateTime @ | fhir:Extension.valueDecimal @ | fhir:Extension.valueId @ | fhir:Extension.valueInstant @ | fhir:Extension.valueInteger @ | fhir:Extension.valueMarkdown @ | fhir:Extension.valueOid @ | fhir:Extension.valuePositiveInt @ | fhir:Extension.valueString @ | fhir:Extension.valueTime @