R6 Ballot (2nd Draft)

Publish-box (todo)

Example SubscriptionTopic/example (JSON)

FHIR Infrastructure Work GroupMaturity Level: N/AStandards Status: InformativeCompartments: No defined compartments

Raw JSON (canonical form + also see JSON Format Specification)

Example Topic with Modifiers

{
  "resourceType" : "SubscriptionTopic",
  "id" : "example",
  "extension" : [{
    "url" : "http://hl7.org/fhir/StructureDefinition/structuredefinition-wg",
    "valueCode" : "fhir"
  }],
  "url" : "http://example.org/FHIR/R5/SubscriptionTopic/example",
  "identifier" : [{
    "system" : "urn:ietf:rfc:3986",
    "value" : "urn:uuid:1caa02ba-051b-4602-8856-65921748ae76"
  }],
  "version" : "1.0.0-beta.1",
  "title" : "example",
  "status" : "draft",
  "date" : "2019-01-01",
  "publisher" : "HL7 International / FHIR Infrastructure",
  "contact" : [{
    "telecom" : [{
      "system" : "url",
      "value" : "http://www.hl7.org/Special/committees/fiwg"
    }]
  }],
  "description" : "Example topic for completed encounters",
  "trigger" : [{
    "description" : "An Encounter has been completed",
    "resource" : "http://hl7.org/fhir/StructureDefinition/Encounter",
    "supportedInteraction" : ["update"],
    "queryCriteria" : {
      "previous" : "status:not=completed",
      "resultForCreate" : "test-passes",
      "current" : "status=completed",
      "resultForDelete" : "test-fails",
      "requireBoth" : true
    },
    "fhirPathCriteria" : "(%previous.empty() | (%previous.status != 'completed')) and (%current.status = 'completed')",
    "canFilterBy" : [{
      "description" : "Filter based on the subject of an encounter.",
      "resource" : "Encounter",
      "filterParameter" : "subject"
    },
    {
      "description" : "Filter based on the group membership of the subject of an encounter.",
      "resource" : "Encounter",
      "filterParameter" : "_in"
    },
    {
      "description" : "Filter based on the length of an encounter.",
      "resource" : "Encounter",
      "filterParameter" : "length",
      "comparator" : ["gt",
      "lt",
      "ge",
      "le"]
    },
    {
      "description" : "Filter based on the account for billing an encounter.",
      "resource" : "Encounter",
      "filterParameter" : "account",
      "modifier" : ["missing",
      "not",
      "identifier"]
    }],
    "notificationShape" : [{
      "resource" : "Encounter",
      "include" : ["Encounter:patient&iterate=Patient.link",
      "Encounter:practitioner",
      "Encounter:service-provider",
      "Encounter:account",
      "Encounter:diagnosis",
      "Encounter:observation",
      "Encounter:location"],
      "relatedQuery" : [{
        "query" : "Patient?_include:iterate=Patient:link"
      },
      {
        "query" : "$current-providers"
      }]
    }]
  }]
}

Usage note: every effort has been made to ensure that the examples are correct and useful, but they are not a normative part of the specification.