PackagesCanonicalsLogsProblems
    Packages
    hl7.fhir.r6.core@6.0.0-ballot4
    http://hl7.org/fhir/StructureDefinition/ExampleScenario
description: A walkthrough of a workflow showing the interaction between systems and the instances shared, possibly including the evolution of instances over time.
package_name: hl7.fhir.r6.core
derivation: specialization
name: ExampleScenario
type: ExampleScenario
elements:
  description: {isModifier: false, short: Natural language description of the ExampleScenario, type: markdown, mustSupport: false, isSummary: true, index: 14}
  date: {isModifier: false, short: Date last changed, type: dateTime, mustSupport: false, isSummary: true, index: 11}
  publisher: {isModifier: false, short: Name of the publisher/steward (organization or individual), type: string, mustSupport: false, isSummary: true, index: 12}
  instance:
    constraint:
      exs-2: {human: instance.content is only allowed if there are no instance.versions, source: 'http://hl7.org/fhir/StructureDefinition/ExampleScenario', severity: error, expression: content.exists() implies version.empty()}
      exs-20: {human: Instance should be referenced in at least one location, source: 'http://hl7.org/fhir/StructureDefinition/ExampleScenario', severity: warning, expression: '%resource.process.descendants().select(instanceReference).where($this=%context.key).exists()'}
      exs-1: {human: StructureVersion is required if structureType is not FHIR (but may still be present even if FHIR), source: 'http://hl7.org/fhir/StructureDefinition/ExampleScenario', severity: error, expression: 'structureType.exists() and structureType.memberOf(''http://hl7.org/fhir/ValueSet/resource-types'').not() implies structureVersion.exists()'}
      exs-11: {human: Version titles must be unique within an instance, source: 'http://hl7.org/fhir/StructureDefinition/ExampleScenario', severity: error, expression: version.title.count() = version.title.distinct().count()}
      exs-10: {human: Version keys must be unique within an instance, source: 'http://hl7.org/fhir/StructureDefinition/ExampleScenario', severity: error, expression: version.key.count() = version.key.distinct().count()}
      exs-21: {human: Instance version should be referenced in at least one operation, source: 'http://hl7.org/fhir/StructureDefinition/ExampleScenario', severity: warning, expression: version.exists() implies version.key.intersect(%resource.process.descendants().where(instanceReference = %context.key).versionReference).exists()}
    isModifier: false
    short: Data used in the scenario
    index: 26
    type: BackboneElement
    mustSupport: false
    array: true
    elements:
      description: {isModifier: false, short: Human-friendly description of the instance, type: markdown, mustSupport: false, isSummary: false, index: 35}
      key: {isModifier: false, short: ID or acronym of the instance, type: string, mustSupport: false, isSummary: false, index: 27}
      containedInstance:
        constraint:
          exs-15: {human: versionReference must be specified if the referenced instance defines versions, source: 'http://hl7.org/fhir/StructureDefinition/ExampleScenario', severity: error, expression: versionReference.empty() implies %resource.instance.where(key=%context.instanceReference).version.empty()}
          exs-14: {human: InstanceReference must be a key of an instance defined in the ExampleScenario, source: 'http://hl7.org/fhir/StructureDefinition/ExampleScenario', severity: error, expression: '%resource.instance.where(key=%context.instanceReference).exists()'}
          exs-16: {human: versionReference must be a key of a version within the instance pointed to by instanceReference, source: 'http://hl7.org/fhir/StructureDefinition/ExampleScenario', severity: error, expression: versionReference.exists() implies %resource.instance.where(key=%context.instanceReference).version.where(key=%context.versionReference).exists()}
        isModifier: false
        short: Resources contained in the instance
        index: 42
        type: BackboneElement
        mustSupport: false
        array: true
        elements:
          instanceReference: {isModifier: false, short: Key of contained instance, type: string, mustSupport: false, isSummary: false, index: 43}
          versionReference: {isModifier: false, short: Key of contained instance version, type: string, mustSupport: false, isSummary: false, index: 44}
        required: [instanceReference]
        isSummary: false
      content: {isModifier: false, short: Example instance data, type: Reference, mustSupport: false, isSummary: false, index: 36}
      structureType:
        isModifier: false
        short: Data structure for example
        type: Coding
        mustSupport: false
        binding: {strength: extensible, valueSet: 'http://hl7.org/fhir/ValueSet/examplescenario-instance-type'}
        isSummary: false
        index: 28
      title: {isModifier: false, short: Label for instance, type: string, mustSupport: false, isSummary: false, index: 34}
      structureVersion: {isModifier: false, short: E.g. 4.0.1, type: string, mustSupport: false, meaningWhenMissing: 'If the structureType is a FHIR resource, then the version is the same FHIR version this ExampleScenario is expressed in.', isSummary: false, index: 29}
      structureProfileUri: {isModifier: false, short: Rules instance adheres to, type: uri, mustSupport: false, choiceOf: structureProfile, isSummary: false, index: 33}
      structureProfile:
        isModifier: false
        short: Rules instance adheres to
        mustSupport: false
        choices: [structureProfileCanonical, structureProfileUri]
        isSummary: false
        index: 31
      structureProfileCanonical: {isModifier: false, short: Rules instance adheres to, type: canonical, mustSupport: false, choiceOf: structureProfile, isSummary: false, index: 32}
      version:
        isModifier: false
        short: Snapshot of instance that changes
        index: 37
        type: BackboneElement
        mustSupport: false
        array: true
        elements:
          key: {isModifier: false, short: ID or acronym of the version, type: string, mustSupport: false, isSummary: false, index: 38}
          title: {isModifier: false, short: Label for instance version, type: string, mustSupport: false, isSummary: false, index: 39}
          description: {isModifier: false, short: Details about version, type: markdown, mustSupport: false, isSummary: false, index: 40}
          content: {isModifier: false, short: Example instance version data, type: Reference, mustSupport: false, isSummary: false, index: 41}
        required: [key, title]
        isSummary: false
    required: [key, title, structureType]
    isSummary: false
  jurisdiction:
    isModifier: false
    short: Jurisdiction of the authority that maintains the example scenario (if applicable)
    type: CodeableConcept
    mustSupport: false
    array: true
    binding: {strength: extensible, valueSet: 'http://terminology.hl7.org/ValueSet/jurisdiction'}
    isSummary: true
    index: 16
  purpose: {isModifier: false, short: 'The purpose of the example, e.g. to illustrate a scenario', type: markdown, mustSupport: false, isSummary: false, index: 17}
  name: {isModifier: false, short: Name for this example scenario (computer friendly), type: string, mustSupport: false, isSummary: true, index: 7}
  process:
    constraint:
      exs-5: {human: Processes must have steps if ExampleScenario status is active or required, source: 'http://hl7.org/fhir/StructureDefinition/ExampleScenario', severity: error, expression: '%resource.status=''active'' or %resource.status=''retired'' implies step.exists()'}
    isModifier: false
    short: Major process within scenario
    index: 45
    type: BackboneElement
    mustSupport: false
    array: true
    elements:
      title: {isModifier: false, short: Label for procss, type: string, mustSupport: false, isSummary: true, index: 46}
      description: {isModifier: false, short: Human-friendly description of the process, type: markdown, mustSupport: false, isSummary: false, index: 47}
      preConditions: {isModifier: false, short: Status before process starts, type: markdown, mustSupport: false, isSummary: false, index: 48}
      postConditions: {isModifier: false, short: Status after successful completion, type: markdown, mustSupport: false, isSummary: false, index: 49}
      step:
        constraint:
          exs-22: {human: 'Can have a process, a workflow, one or more operations or none of these, but cannot have a combination', source: 'http://hl7.org/fhir/StructureDefinition/ExampleScenario', severity: error, expression: (process.exists() implies workflow.empty() and operation.empty()) and (workflow.exists() implies operation.empty())}
          exs-13: {human: Alternative titles must be unique within a step, source: 'http://hl7.org/fhir/StructureDefinition/ExampleScenario', severity: error, expression: alternative.title.count() = alternative.title.distinct().count()}
        isModifier: false
        short: Event within of the process
        index: 50
        type: BackboneElement
        mustSupport: false
        array: true
        elements:
          number: {isModifier: false, short: Sequential number of the step, type: string, mustSupport: false, isSummary: false, index: 51}
          process:
            elementReference: ['http://hl7.org/fhir/StructureDefinition/ExampleScenario', elements, process]
            isModifier: false
            short: Step is nested process
            mustSupport: false
            orderMeaning: The order in which these elements appear is the order in which they are expected to be rendered (in a table, in a diagram, etc.)
            isSummary: false
            index: 52
          workflow: {isModifier: false, short: Step is nested workflow, type: canonical, mustSupport: false, isSummary: false, index: 53}
          operation:
            constraint:
              exs-17: {human: 'If specified, initiator must be a key of an actor within the ExampleScenario', source: 'http://hl7.org/fhir/StructureDefinition/ExampleScenario', severity: error, expression: initiator.exists() implies initiator = 'OTHER' or %resource.actor.where(key=%context.initiator).exists()}
              exs-18: {human: 'If specified, receiver must be a key of an actor within the ExampleScenario', source: 'http://hl7.org/fhir/StructureDefinition/ExampleScenario', severity: error, expression: receiver.exists() implies receiver = 'OTHER' or %resource.actor.where(key=%context.receiver).exists()}
            isModifier: false
            short: Step is simple action
            index: 54
            type: BackboneElement
            mustSupport: false
            elements:
              response:
                elementReference: ['http://hl7.org/fhir/StructureDefinition/ExampleScenario', elements, instance, elements, containedInstance]
                isModifier: false
                short: Instance transmitted on invocation response
                mustSupport: false
                isSummary: false
                index: 63
              description: {isModifier: false, short: Human-friendly description of the operation, type: markdown, mustSupport: false, isSummary: false, index: 59}
              request:
                elementReference: ['http://hl7.org/fhir/StructureDefinition/ExampleScenario', elements, instance, elements, containedInstance]
                isModifier: false
                short: Instance transmitted on invocation
                mustSupport: false
                isSummary: false
                index: 62
              initiator: {isModifier: false, short: Who starts the operation, type: string, mustSupport: false, isSummary: false, index: 57}
              type:
                isModifier: false
                short: Kind of action
                type: Coding
                mustSupport: false
                binding: {strength: extensible, valueSet: 'http://hl7.org/fhir/ValueSet/examplescenario-operation-codes'}
                isSummary: false
                index: 55
              receiverActive: {isModifier: false, short: 'Receiver stays active?', type: boolean, mustSupport: false, isSummary: false, index: 61}
              title: {isModifier: false, short: Label for step, type: string, mustSupport: false, isSummary: false, index: 56}
              initiatorActive: {isModifier: false, short: 'Initiator stays active?', type: boolean, mustSupport: false, isSummary: false, index: 60}
              receiver: {isModifier: false, short: Who receives the operation, type: string, mustSupport: false, isSummary: false, index: 58}
            required: [title]
            isSummary: false
          alternative:
            isModifier: false
            short: Alternate non-typical step action
            index: 64
            type: BackboneElement
            mustSupport: false
            array: true
            elements:
              title: {isModifier: false, short: Label for alternative, type: string, mustSupport: false, isSummary: false, index: 65}
              description: {isModifier: false, short: Human-readable description of option, type: markdown, mustSupport: false, isSummary: false, index: 66}
              step:
                elementReference: ['http://hl7.org/fhir/StructureDefinition/ExampleScenario', elements, process, elements, step]
                isModifier: false
                short: Alternative action(s)
                mustSupport: false
                array: true
                orderMeaning: The order in which these elements appear is the order in which they are expected to be rendered (in a table, in a diagram, etc.).  It also indicates the order in which the events occur.
                isSummary: false
                index: 67
            orderMeaning: The order in which these elements appear is the order in which they are expected to be rendered (in a table, in a diagram, etc.)
            required: [title]
            isSummary: false
          pause: {isModifier: false, short: 'Pause in the flow?', type: boolean, mustSupport: false, isSummary: false, index: 68}
        orderMeaning: The order in which these elements appear is the order in which they are expected to be rendered (in a table, in a diagram, etc.).  It also indicates the order in which the events occur.
        isSummary: false
    orderMeaning: The order in which these elements appear is the order in which they are expected to be rendered (in a table, in a diagram, etc.)
    required: [title]
    isSummary: false
  copyrightLabel: {isModifier: false, short: Copyright holder and year(s), type: string, mustSupport: false, isSummary: false, index: 19}
  useContext: {isModifier: false, short: The context that the content is intended to support, type: UsageContext, mustSupport: false, array: true, isSummary: true, index: 15}
  copyright: {isModifier: false, short: 'Notice about intellectual property ownership, can include restrictions on use', type: markdown, mustSupport: false, isSummary: false, index: 18}
  versionAlgorithm:
    isModifier: false
    short: How to compare versions
    mustSupport: false
    choices: [versionAlgorithmString, versionAlgorithmCoding]
    isSummary: true
    index: 4
  experimental: {isModifier: false, short: For testing only - never for real usage, type: boolean, mustSupport: false, meaningWhenMissing: 'If absent, this resource is treated as though it is not experimental.', isSummary: true, index: 10}
  title: {isModifier: false, short: Name for this example scenario (human friendly), type: string, mustSupport: false, isSummary: true, index: 8}
  versionAlgorithmCoding: {isModifier: false, short: How to compare versions, type: Coding, mustSupport: false, choiceOf: versionAlgorithm, isSummary: true, index: 6}
  status:
    isModifier: true
    short: draft | active | retired | unknown
    index: 9
    type: code
    mustSupport: false
    binding: {strength: required, valueSet: 'http://hl7.org/fhir/ValueSet/publication-status|6.0.0-ballot4'}
    isModifierReason: This is labeled as "Is Modifier" because applications should not use a retired ExampleScenario without due consideration
    isSummary: true
  url:
    constraint:
      cnl-1: {human: 'URL should not contain | or # - these characters make processing canonical references problematic', source: 'http://hl7.org/fhir/StructureDefinition/ExampleScenario', severity: warning, expression: 'exists() implies matches(''^[^|# ]+$'')'}
    isModifier: false
    short: Canonical identifier for this example scenario, represented as a URI (globally unique)
    type: uri
    mustSupport: false
    isSummary: true
    index: 0
  identifier: {isModifier: false, short: Additional identifier for the example scenario, type: Identifier, mustSupport: false, array: true, isSummary: true, index: 1}
  versionAlgorithmString: {isModifier: false, short: How to compare versions, type: string, mustSupport: false, choiceOf: versionAlgorithm, isSummary: true, index: 5}
  version: {isModifier: false, short: Business version of the example scenario, type: string, mustSupport: false, isSummary: true, index: 2}
  contact: {isModifier: false, short: Contact details for the publisher, type: ContactDetail, mustSupport: false, array: true, isSummary: true, index: 13}
  actor:
    constraint:
      exs-24: {human: actor SHALL have either a type or a definition but not both, source: 'http://hl7.org/fhir/StructureDefinition/ExampleScenario', severity: error, expression: type.exists() xor definition.exists()}
      exs-23: {human: actor.key canot be 'OTHER', source: 'http://hl7.org/fhir/StructureDefinition/ExampleScenario', severity: error, expression: key != 'OTHER'}
      exs-19: {human: Actor should be referenced in at least one operation, source: 'http://hl7.org/fhir/StructureDefinition/ExampleScenario', severity: warning, expression: '%resource.process.descendants().select(operation).where(initiator=%context.key or receiver=%context.key).exists()'}
    isModifier: false
    short: Individual involved in exchange
    index: 20
    type: BackboneElement
    mustSupport: false
    array: true
    elements:
      key: {isModifier: false, short: ID or acronym of the actor, type: string, mustSupport: false, isSummary: false, index: 21}
      type:
        isModifier: false
        short: person | system | collective | other
        type: code
        mustSupport: false
        binding: {strength: required, valueSet: 'http://hl7.org/fhir/ValueSet/actordefinition-actor-type|6.0.0-ballot4'}
        isSummary: false
        index: 22
      title: {isModifier: false, short: Label for actor when rendering, type: string, mustSupport: false, isSummary: false, index: 23}
      description: {isModifier: false, short: Details about actor, type: markdown, mustSupport: false, isSummary: false, index: 24}
      definition: {isModifier: false, short: Formal definition of actor, type: canonical, mustSupport: false, isSummary: false, index: 25}
    orderMeaning: The order in which these elements appear is the order in which they are expected to be rendered (in a table, in a diagram, etc.)
    required: [key, title]
    isSummary: false
package_version: 6.0.0-ballot4
class: resource
kind: resource
url: http://hl7.org/fhir/StructureDefinition/ExampleScenario
base: http://hl7.org/fhir/StructureDefinition/DomainResource
version: 6.0.0-ballot4
required: [status]