PackagesCanonicalsLogsProblems
    Packages
    hl7.fhir.us.ecr@1.0.0
    http://hl7.org/fhir/us/ecr/StructureDefinition/ersd-plandefinition
description: 'This PlanDefinition profile defines the logic and rules around determining: whether or not a condition is reportable to public health, which jurisdiction(s) is/are responsible, which jurisdiction(s) need to be notified, and if the condition is reportable, gives timing information, next steps and condition information to the clinician.\n\nThe profile defines three timing-related parameters for initiating case reports from Electronic Health Records (the standard does not specify the hour value for the delay of the send - public health operations will determine the specific value appropriate for implementation) the standard conveys the parameters to clinical care but it does not require their implementation.\n\n* Delay initial eICR construction (for example 1 hour) - the time after start of the encounter when the trigger events would not immediately cause an eICR to be composed and sent. (This delay is intended to allow adequate data to be recorded in the EHR, but is not so long as to delay reporting in critical circumstances.)  If there is a trigger and the encounter is closed before the specified delay value (for example the encounter is closed in 30 minutes when the specified delay value is 1 hour) the eICR should be created and sent.\n* eICR periodic update (for example 24 hours) - the time after an initial eICR creation to send new eICRs as updates during long encounters. (These updates should only be produced until the end of the encounter).\n* eICR encounter close-out (for example 24 hours or 0 hours for no delay) - the time after the end of an encounter for a final eICR to be sent when there has been one or more trigger events in the encounter. (The close-out eICR is intended to provide the full data available at the end of an encounter.)\n\n'
package_name: hl7.fhir.us.ecr
derivation: constraint
name: Ersd_PlanDefinition
type: PlanDefinition
elements:
  date: {short: Date the eRSD was published, mustSupport: true, index: 4}
  publisher: {short: Name of the agency that published this eRSD, index: 5}
  name: {short: Name for this eRSD (computer friendly), mustSupport: true, index: 1}
  type: {short: Type of this eRSD, mustSupport: true, index: 3}
  title: {short: Title for this eRSD, mustSupport: true, index: 2}
  library: {mustSupport: true, index: 8}
  action:
    mustSupport: true
    index: 9
    slicing:
      rules: open
      ordered: true
      discriminator:
      - {path: id, type: value}
      min: 1
      slices:
        sliceMatchTrigger:
          match: {id: match-trigger}
          schema:
            short: Match trigger code
            mustSupport: true
            _required: true
            index: 10
            elements:
              id:
                pattern: {type: String, value: match-trigger}
                mustSupport: true
                index: 11
              description:
                short: Description of the "match-trigger" action.
                pattern: {type: String, value: This action represents the matching of a trigger code to one of the values in the eRSD value sets.}
                mustSupport: true
                index: 12
              textEquivalent:
                short: Text equivalent of the "match-trigger" action.
                pattern: {type: String, value: Match of a code to one of the values in the eRSD value sets.}
                mustSupport: true
                index: 13
              trigger:
                short: When the "match-trigger" action should be triggered.
                mustSupport: true
                index: 14
                elements:
                  type:
                    pattern: {type: Code, value: data-changed}
                    index: 15
                  data:
                    short: A triggering value set.
                    mustSupport: true
                    index: 16
                    elements:
                      type: {short: The type of trigger data., index: 17}
                      codeFilter:
                        short: Match based on code.
                        mustSupport: true
                        index: 18
                        elements:
                          path: {short: Path to the code to match, mustSupport: true, index: 19}
                          valueSet: {type: canonical, short: eRSD value set containing trigger codes., index: 20}
                        required: [valueSet, path]
                    required: [codeFilter]
                required: [data]
            required: [textEquivalent, id, trigger, description]
        sliceCreateEICR:
          match: {id: create-eicr}
          schema:
            short: Create eICR
            mustSupport: true
            _required: true
            index: 21
            elements:
              id:
                pattern: {type: String, value: create-eicr}
                mustSupport: true
                index: 22
              description:
                short: Description of the "create-eicr" action.
                pattern: {type: String, value: This action represents the initial creation of the eICR.}
                mustSupport: true
                index: 23
              textEquivalent:
                short: Text equivalent of the "create-ecir" action.
                pattern: {type: String, value: eICR construction delay (offsetDuration.value = x hours) - time after trigger event before an eICR should be created.}
                mustSupport: true
                index: 24
              relatedAction:
                mustSupport: true
                index: 25
                elements:
                  actionId:
                    pattern: {type: Id, value: match-trigger}
                    index: 26
                  relationship:
                    pattern: {type: Code, value: after}
                    mustSupport: false
                    index: 27
                  offset:
                    choices: [offsetDuration]
                    index: 29
                  offsetDuration: {type: Duration, choiceOf: offset, index: 30}
                  offset[x]:
                    elements:
                      value: {short: '[x - value]', mustSupport: true, index: 31}
                      unit:
                        pattern: {type: String, value: h}
                        mustSupport: true
                        index: 32
                    required: [value, unit]
            required: [relatedAction, textEquivalent, id, description]
        slicePeriodicUpdateEICR:
          match: {id: periodic-update-eicr}
          schema:
            short: Periodic Update of eICR
            mustSupport: true
            _required: true
            index: 33
            elements:
              id:
                pattern: {type: String, value: periodic-update-eicr}
                index: 34
              description:
                short: Description of the Periodic Update of eICR action.
                pattern: {type: String, value: This action represents the periodic update of the eICR.}
                mustSupport: true
                index: 35
              textEquivalent:
                pattern: {type: String, value: eICR periodic update (repeat.frequency = y hours) - the time after an initial eICR creation to send a new eICR as an update during long encounters.}
                mustSupport: true
                index: 36
              trigger:
                short: Trigger every y hours after first eICR creation.
                mustSupport: true
                index: 37
                elements:
                  type:
                    pattern: {type: Code, value: periodic}
                    index: 38
                  timing:
                    mustSupport: true
                    choices: [timingTiming]
                    index: 40
                  timingTiming: {type: Timing, mustSupport: true, choiceOf: timing, index: 41}
                  timing[x]:
                    elements:
                      repeat:
                        short: Repeat update of eICR every [y - period] hours.
                        mustSupport: true
                        index: 42
                        elements:
                          frequency:
                            mustSupport: true
                            pattern: {type: PositiveInt, value: 1}
                            index: 43
                          period: {short: '[y - period]', mustSupport: true, index: 44}
                          periodUnit:
                            short: Unit - hours
                            pattern: {type: Code, value: h}
                            mustSupport: true
                            index: 45
                        required: [periodUnit, period, frequency]
                    required: [repeat]
                required: [timingTiming, timing]
              condition:
                mustSupport: true
                array: true
                min: 1
                index: 46
                slicing:
                  rules: open
                  discriminator:
                  - {path: kind, type: value}
                  min: 1
                  slices:
                    sliceStartCondition:
                      match: {kind: start}
                      schema:
                        mustSupport: true
                        _required: true
                        index: 47
                        elements:
                          kind:
                            pattern: {type: Code, value: start}
                            index: 48
                          expression:
                            mustSupport: true
                            index: 49
                            elements:
                              description:
                                pattern: {type: String, value: Encounter is active.}
                                index: 50
                              language: {index: 51}
                              expression: {short: Encounter started., mustSupport: true, index: 52}
                            required: [expression]
                        required: [expression]
                    sliceStopCondition:
                      match: {kind: stop}
                      schema:
                        mustSupport: true
                        _required: true
                        index: 53
                        elements:
                          kind:
                            pattern: {type: Code, value: stop}
                            index: 54
                          expression:
                            mustSupport: true
                            index: 55
                            elements:
                              description:
                                pattern: {type: String, value: Encounter is closed.}
                                index: 56
                              language: {index: 57}
                              expression: {short: Encounter ended., mustSupport: true, index: 58}
                            required: [expression]
                        required: [expression]
              relatedAction:
                mustSupport: true
                index: 59
                elements:
                  actionId:
                    pattern: {type: Id, value: create-eicr}
                    index: 60
                  relationship:
                    pattern: {type: Code, value: after}
                    index: 61
            required: [relatedAction, textEquivalent, id, condition, trigger, description]
        sliceCloseOutEICR:
          match: {id: close-out-eicr}
          schema:
            short: Close Out eICR action
            mustSupport: true
            _required: true
            index: 62
            elements:
              id:
                pattern: {type: String, value: close-out-eicr}
                index: 63
              description:
                short: Description of the "close-out-eicr" action.
                pattern: {type: String, value: This action represents the close out of an eICR encounter.}
                mustSupport: true
                index: 64
              textEquivalent:
                pattern: {type: String, value: eICR encounter close out (timingTiming.repeat.duration = z hours) - the time after the end of the encounter to create the final eICR when there have been one or more trigger events.}
                mustSupport: true
                index: 65
              trigger:
                mustSupport: true
                index: 66
                elements:
                  type:
                    pattern: {type: Code, value: data-added}
                    index: 67
                  data:
                    short: Trigger when Encounter.period.end is added.
                    mustSupport: true
                    index: 68
                    elements:
                      type:
                        pattern: {type: Code, value: Encounter}
                        index: 69
                      profile:
                        mustSupport: true
                        pattern: {type: Canonical, value: 'http://hl7.org/fhir/us/ecr/StructureDefinition/eicr-encounter'}
                        index: 70
                      dateFilter:
                        mustSupport: true
                        index: 71
                        elements:
                          path:
                            pattern: {type: String, value: period.end}
                            mustSupport: true
                            index: 72
                        required: [path]
                    required: [dateFilter, profile]
                required: [data]
              relatedAction:
                mustSupport: true
                index: 73
                elements:
                  actionId:
                    pattern: {type: Id, value: create-eicr}
                    index: 74
                  relationship:
                    pattern: {type: Code, value: after}
                    index: 75
              timing:
                mustSupport: true
                choices: [timingTiming]
                index: 77
              timingTiming: {type: Timing, mustSupport: true, choiceOf: timing, index: 78}
              timing[x]:
                elements:
                  repeat:
                    short: Close out eICR [z] hours after end of encounter.
                    mustSupport: true
                    index: 79
                    elements:
                      count:
                        mustSupport: true
                        pattern: {type: PositiveInt, value: 1}
                        index: 80
                      duration: {short: '[z - duration]', mustSupport: true, index: 81}
                      durationUnit:
                        pattern: {type: Code, value: h}
                        mustSupport: true
                        index: 82
                      frequency:
                        mustSupport: true
                        pattern: {type: PositiveInt, value: 1}
                        index: 83
                    required: [count, durationUnit, duration, frequency]
                required: [repeat]
            required: [timingTiming, relatedAction, textEquivalent, id, trigger, description, timing]
        sliceValidateEICR:
          match: {id: validate-eicr}
          schema:
            short: Validate eICR
            mustSupport: true
            _required: true
            index: 84
            elements:
              id:
                pattern: {type: String, value: validate-eicr}
                mustSupport: true
                index: 85
              description:
                short: Description of the "validate-eicr" action.
                pattern: {type: String, value: This action represents the validation of an eICR.}
                mustSupport: true
                index: 86
              textEquivalent:
                pattern: {type: String, value: Validate eICR.}
                mustSupport: true
                index: 87
              trigger:
                short: Trigger when the eICR has been created.
                mustSupport: true
                index: 88
                elements:
                  type:
                    pattern: {type: Code, value: data-changed}
                    index: 89
                  name:
                    pattern: {type: String, value: eicr-created}
                    mustSupport: true
                    index: 90
                  data:
                    mustSupport: true
                    index: 91
                    elements:
                      type:
                        pattern: {type: Code, value: Composition}
                        mustSupport: true
                        index: 92
                      profile:
                        mustSupport: true
                        pattern: {type: Canonical, value: 'http://hl7.org/fhir/us/ecr/StructureDefinition/eicr-composition'}
                        index: 93
                    required: [profile]
                required: [name, data]
            required: [textEquivalent, id, trigger, description]
        sliceRouteAndSendEICR:
          match: {id: route-and-send-eicr}
          schema:
            short: Route and send eICR
            mustSupport: true
            _required: true
            index: 94
            elements:
              id:
                pattern: {type: String, value: route-and-send-eicr}
                mustSupport: true
                index: 95
              description:
                short: Description of the route and send action.
                pattern: {type: String, value: This action represents the routing and sending of an eICR.}
                mustSupport: true
                index: 96
              textEquivalent:
                pattern: {type: String, value: Route and send eICR}
                mustSupport: true
                index: 97
              relatedAction:
                mustSupport: true
                index: 98
                elements:
                  actionId:
                    pattern: {type: Id, value: validate-eicr}
                    index: 99
                  relationship:
                    pattern: {type: Code, value: after}
                    index: 100
            required: [relatedAction, textEquivalent, id, description]
  version: {short: Business version of the eRSD, mustSupport: true, index: 0}
  effectivePeriod:
    short: When the eRSD is expected to be used
    mustSupport: true
    index: 6
    elements:
      start: {short: The start of the time period when this eRSD goes in effect, index: 7}
    required: [start]
package_version: 1.0.0
class: profile
kind: resource
url: http://hl7.org/fhir/us/ecr/StructureDefinition/ersd-plandefinition
base: http://hl7.org/fhir/StructureDefinition/PlanDefinition
version: 1.0.0
required: [name, action, title, version, date]