PackagesCanonicalsLogsProblems
    Packages
    fhir.hrsa.uds@plus-1.1.0
    http://fhir.org/guides/hrsa/uds-plus/StructureDefinition/uds-plus-observation
description: The UDS+ profile is based on the Observation resource and establishes the core elements, extensions, vocabularies and value sets for representing assessments, vitals and other social history observations for UDS+ program.
package_name: fhir.hrsa.uds
derivation: constraint
name: UDSPlusObservation
type: Observation
elements:
  category: {mustSupport: true, array: true, min: 1, index: 5}
  encounter:
    type: Reference
    mustSupport: true
    refers: ['http://fhir.org/guides/hrsa/uds-plus/StructureDefinition/uds-plus-encounter']
    index: 9
    elements:
      display: {mustSupport: false, index: 10}
  valueQuantity:
    type: Quantity
    constraint:
      uds-plus-obs-6: {human: All dateTime data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is dateTime implies $this.toString().length() = 4}
      uds-plus-obs-7: {human: All Period.start data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Period and Period.start.exists() implies $this.start.toString().length() = 4}
      uds-plus-obs-8: {human: All Period.end data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Period and Period.end.exists() implies $this.end.toString().length() = 4}
    mustSupport: true
    choiceOf: value
    index: 21
  value:
    constraint:
      uds-plus-obs-6: {human: All dateTime data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is dateTime implies $this.toString().length() = 4}
      uds-plus-obs-7: {human: All Period.start data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Period and Period.start.exists() implies $this.start.toString().length() = 4}
      uds-plus-obs-8: {human: All Period.end data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Period and Period.end.exists() implies $this.end.toString().length() = 4}
    mustSupport: true
    choices: [valueQuantity, valueCodeableConcept, valueString, valueBoolean, valueInteger, valueRange, valueRatio, valueSampledData, valueDateTime, valuePeriod]
    index: 20
  valueString:
    type: string
    constraint:
      uds-plus-obs-6: {human: All dateTime data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is dateTime implies $this.toString().length() = 4}
      uds-plus-obs-7: {human: All Period.start data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Period and Period.start.exists() implies $this.start.toString().length() = 4}
      uds-plus-obs-8: {human: All Period.end data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Period and Period.end.exists() implies $this.end.toString().length() = 4}
    mustSupport: true
    choiceOf: value
    index: 23
  valueRatio:
    type: Ratio
    constraint:
      uds-plus-obs-6: {human: All dateTime data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is dateTime implies $this.toString().length() = 4}
      uds-plus-obs-7: {human: All Period.start data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Period and Period.start.exists() implies $this.start.toString().length() = 4}
      uds-plus-obs-8: {human: All Period.end data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Period and Period.end.exists() implies $this.end.toString().length() = 4}
    mustSupport: true
    choiceOf: value
    index: 27
  valueBoolean:
    type: boolean
    constraint:
      uds-plus-obs-6: {human: All dateTime data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is dateTime implies $this.toString().length() = 4}
      uds-plus-obs-7: {human: All Period.start data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Period and Period.start.exists() implies $this.start.toString().length() = 4}
      uds-plus-obs-8: {human: All Period.end data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Period and Period.end.exists() implies $this.end.toString().length() = 4}
    mustSupport: true
    choiceOf: value
    index: 24
  valueDateTime:
    type: dateTime
    constraint:
      uds-plus-obs-6: {human: All dateTime data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is dateTime implies $this.toString().length() = 4}
      uds-plus-obs-7: {human: All Period.start data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Period and Period.start.exists() implies $this.start.toString().length() = 4}
      uds-plus-obs-8: {human: All Period.end data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Period and Period.end.exists() implies $this.end.toString().length() = 4}
    mustSupport: true
    choiceOf: value
    index: 29
  component:
    mustSupport: true
    array: true
    index: 33
    elements:
      valueQuantity:
        type: Quantity
        constraint:
          uds-plus-obs-9: {human: All dateTime data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is dateTime implies $this.toString().length() = 4}
          uds-plus-obs-10: {human: All Period.start data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Period and Period.start.exists() implies $this.start.toString().length() = 4}
          uds-plus-obs-11: {human: All Period.end data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Period and Period.end.exists() implies $this.end.toString().length() = 4}
        mustSupport: true
        choiceOf: value
        index: 37
      value:
        constraint:
          uds-plus-obs-9: {human: All dateTime data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is dateTime implies $this.toString().length() = 4}
          uds-plus-obs-10: {human: All Period.start data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Period and Period.start.exists() implies $this.start.toString().length() = 4}
          uds-plus-obs-11: {human: All Period.end data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Period and Period.end.exists() implies $this.end.toString().length() = 4}
        mustSupport: true
        choices: [valueQuantity, valueCodeableConcept, valueString, valueBoolean, valueInteger, valueRange, valueRatio, valueSampledData, valueDateTime, valuePeriod]
        index: 36
      valueString:
        type: string
        constraint:
          uds-plus-obs-9: {human: All dateTime data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is dateTime implies $this.toString().length() = 4}
          uds-plus-obs-10: {human: All Period.start data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Period and Period.start.exists() implies $this.start.toString().length() = 4}
          uds-plus-obs-11: {human: All Period.end data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Period and Period.end.exists() implies $this.end.toString().length() = 4}
        mustSupport: true
        choiceOf: value
        index: 39
      valueRatio:
        type: Ratio
        constraint:
          uds-plus-obs-9: {human: All dateTime data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is dateTime implies $this.toString().length() = 4}
          uds-plus-obs-10: {human: All Period.start data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Period and Period.start.exists() implies $this.start.toString().length() = 4}
          uds-plus-obs-11: {human: All Period.end data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Period and Period.end.exists() implies $this.end.toString().length() = 4}
        mustSupport: true
        choiceOf: value
        index: 43
      valueBoolean:
        type: boolean
        constraint:
          uds-plus-obs-9: {human: All dateTime data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is dateTime implies $this.toString().length() = 4}
          uds-plus-obs-10: {human: All Period.start data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Period and Period.start.exists() implies $this.start.toString().length() = 4}
          uds-plus-obs-11: {human: All Period.end data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Period and Period.end.exists() implies $this.end.toString().length() = 4}
        mustSupport: true
        choiceOf: value
        index: 40
      valueDateTime:
        type: dateTime
        constraint:
          uds-plus-obs-9: {human: All dateTime data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is dateTime implies $this.toString().length() = 4}
          uds-plus-obs-10: {human: All Period.start data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Period and Period.start.exists() implies $this.start.toString().length() = 4}
          uds-plus-obs-11: {human: All Period.end data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Period and Period.end.exists() implies $this.end.toString().length() = 4}
        mustSupport: true
        choiceOf: value
        index: 45
      valueSampledData:
        type: SampledData
        constraint:
          uds-plus-obs-9: {human: All dateTime data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is dateTime implies $this.toString().length() = 4}
          uds-plus-obs-10: {human: All Period.start data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Period and Period.start.exists() implies $this.start.toString().length() = 4}
          uds-plus-obs-11: {human: All Period.end data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Period and Period.end.exists() implies $this.end.toString().length() = 4}
        mustSupport: true
        choiceOf: value
        index: 44
      code:
        binding: {strength: preferred, valueSet: 'http://hl7.org/fhir/ValueSet/observation-codes'}
        mustSupport: true
        index: 34
      valueCodeableConcept:
        type: CodeableConcept
        constraint:
          uds-plus-obs-9: {human: All dateTime data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is dateTime implies $this.toString().length() = 4}
          uds-plus-obs-10: {human: All Period.start data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Period and Period.start.exists() implies $this.start.toString().length() = 4}
          uds-plus-obs-11: {human: All Period.end data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Period and Period.end.exists() implies $this.end.toString().length() = 4}
        mustSupport: true
        choiceOf: value
        index: 38
      valuePeriod:
        type: Period
        constraint:
          uds-plus-obs-9: {human: All dateTime data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is dateTime implies $this.toString().length() = 4}
          uds-plus-obs-10: {human: All Period.start data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Period and Period.start.exists() implies $this.start.toString().length() = 4}
          uds-plus-obs-11: {human: All Period.end data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Period and Period.end.exists() implies $this.end.toString().length() = 4}
        mustSupport: true
        choiceOf: value
        index: 46
      valueRange:
        type: Range
        constraint:
          uds-plus-obs-9: {human: All dateTime data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is dateTime implies $this.toString().length() = 4}
          uds-plus-obs-10: {human: All Period.start data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Period and Period.start.exists() implies $this.start.toString().length() = 4}
          uds-plus-obs-11: {human: All Period.end data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Period and Period.end.exists() implies $this.end.toString().length() = 4}
        mustSupport: true
        choiceOf: value
        index: 42
      valueInteger:
        type: integer
        constraint:
          uds-plus-obs-9: {human: All dateTime data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is dateTime implies $this.toString().length() = 4}
          uds-plus-obs-10: {human: All Period.start data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Period and Period.start.exists() implies $this.start.toString().length() = 4}
          uds-plus-obs-11: {human: All Period.end data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Period and Period.end.exists() implies $this.end.toString().length() = 4}
        mustSupport: true
        choiceOf: value
        index: 41
    required: [code]
  note: {mustSupport: false, index: 31}
  extension:
    type: Extension
    url: http://fhir.org/guides/hrsa/uds-plus/StructureDefinition/uds-plus-deidentified-instant-extension
    index: 3
    slicing:
      slices:
        deidentifiedIssuedTime:
          match: {}
          schema: {type: Extension, url: 'http://fhir.org/guides/hrsa/uds-plus/StructureDefinition/uds-plus-deidentified-instant-extension', index: 3}
          min: 0
          max: 1
  contained: {short: Cannot include any contained resources in the resource as part of the de-identified data., mustSupport: false, index: 2}
  valueSampledData:
    type: SampledData
    constraint:
      uds-plus-obs-6: {human: All dateTime data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is dateTime implies $this.toString().length() = 4}
      uds-plus-obs-7: {human: All Period.start data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Period and Period.start.exists() implies $this.start.toString().length() = 4}
      uds-plus-obs-8: {human: All Period.end data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Period and Period.end.exists() implies $this.end.toString().length() = 4}
    mustSupport: true
    choiceOf: value
    index: 28
  effectiveDateTime:
    type: dateTime
    constraint:
      uds-plus-obs-1: {human: All dateTime data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is DateTime implies $this.toString().length() = 4}
      uds-plus-obs-2: {human: All Period.start data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Period and Period.start.exists() implies $this.start.toString().length() = 4}
      uds-plus-obs-3: {human: All Period.emd data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Period and Period.end.exists() implies $this.end.toString().length() = 4}
      uds-plus-obs-4: {human: All Timing.event data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Timing and Timing.event.exists() implies $this.event.count() = 1}
      uds-plus-obs-5: {human: All Timing.event data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Timing and Timing.event.exists() implies $this.event.first().toString().length() = 4}
    mustSupport: true
    choiceOf: effective
    index: 13
  status: {mustSupport: true, index: 4}
  effective:
    constraint:
      uds-plus-obs-1: {human: All dateTime data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is DateTime implies $this.toString().length() = 4}
      uds-plus-obs-2: {human: All Period.start data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Period and Period.start.exists() implies $this.start.toString().length() = 4}
      uds-plus-obs-3: {human: All Period.emd data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Period and Period.end.exists() implies $this.end.toString().length() = 4}
      uds-plus-obs-4: {human: All Timing.event data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Timing and Timing.event.exists() implies $this.event.count() = 1}
      uds-plus-obs-5: {human: All Timing.event data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Timing and Timing.event.exists() implies $this.event.first().toString().length() = 4}
    mustSupport: true
    choices: [effectiveDateTime, effectivePeriod, effectiveTiming]
    index: 12
  id: {short: The de-identified Observation identifier created by the health center to send data to UDS+ Data Receiver, mustSupport: true, index: 0}
  code:
    binding: {strength: preferred, valueSet: 'http://hl7.org/fhir/ValueSet/observation-codes'}
    mustSupport: true
    index: 6
  effectiveTiming:
    type: Timing
    constraint:
      uds-plus-obs-1: {human: All dateTime data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is DateTime implies $this.toString().length() = 4}
      uds-plus-obs-2: {human: All Period.start data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Period and Period.start.exists() implies $this.start.toString().length() = 4}
      uds-plus-obs-3: {human: All Period.emd data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Period and Period.end.exists() implies $this.end.toString().length() = 4}
      uds-plus-obs-4: {human: All Timing.event data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Timing and Timing.event.exists() implies $this.event.count() = 1}
      uds-plus-obs-5: {human: All Timing.event data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Timing and Timing.event.exists() implies $this.event.first().toString().length() = 4}
    mustSupport: true
    choiceOf: effective
    index: 15
  valueCodeableConcept:
    type: CodeableConcept
    constraint:
      uds-plus-obs-6: {human: All dateTime data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is dateTime implies $this.toString().length() = 4}
      uds-plus-obs-7: {human: All Period.start data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Period and Period.start.exists() implies $this.start.toString().length() = 4}
      uds-plus-obs-8: {human: All Period.end data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Period and Period.end.exists() implies $this.end.toString().length() = 4}
    mustSupport: true
    choiceOf: value
    index: 22
  bodySite: {mustSupport: true, index: 32}
  issued: {mustSupport: false, index: 16}
  valuePeriod:
    type: Period
    constraint:
      uds-plus-obs-6: {human: All dateTime data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is dateTime implies $this.toString().length() = 4}
      uds-plus-obs-7: {human: All Period.start data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Period and Period.start.exists() implies $this.start.toString().length() = 4}
      uds-plus-obs-8: {human: All Period.end data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Period and Period.end.exists() implies $this.end.toString().length() = 4}
    mustSupport: true
    choiceOf: value
    index: 30
  valueRange:
    type: Range
    constraint:
      uds-plus-obs-6: {human: All dateTime data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is dateTime implies $this.toString().length() = 4}
      uds-plus-obs-7: {human: All Period.start data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Period and Period.start.exists() implies $this.start.toString().length() = 4}
      uds-plus-obs-8: {human: All Period.end data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Period and Period.end.exists() implies $this.end.toString().length() = 4}
    mustSupport: true
    choiceOf: value
    index: 26
  valueInteger:
    type: integer
    constraint:
      uds-plus-obs-6: {human: All dateTime data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is dateTime implies $this.toString().length() = 4}
      uds-plus-obs-7: {human: All Period.start data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Period and Period.start.exists() implies $this.start.toString().length() = 4}
      uds-plus-obs-8: {human: All Period.end data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Period and Period.end.exists() implies $this.end.toString().length() = 4}
    mustSupport: true
    choiceOf: value
    index: 25
  subject:
    type: Reference
    mustSupport: true
    refers: ['http://fhir.org/guides/hrsa/uds-plus/StructureDefinition/de-identified-uds-plus-patient']
    index: 7
    elements:
      display: {mustSupport: false, index: 8}
  performer:
    mustSupport: true
    array: true
    index: 17
    elements:
      display: {mustSupport: false, index: 18}
  effectivePeriod:
    type: Period
    constraint:
      uds-plus-obs-1: {human: All dateTime data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is DateTime implies $this.toString().length() = 4}
      uds-plus-obs-2: {human: All Period.start data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Period and Period.start.exists() implies $this.start.toString().length() = 4}
      uds-plus-obs-3: {human: All Period.emd data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Period and Period.end.exists() implies $this.end.toString().length() = 4}
      uds-plus-obs-4: {human: All Timing.event data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Timing and Timing.event.exists() implies $this.event.count() = 1}
      uds-plus-obs-5: {human: All Timing.event data elements should be truncated to a year only for de-identified resources., severity: error, expression: $this is Timing and Timing.event.exists() implies $this.event.first().toString().length() = 4}
    mustSupport: true
    choiceOf: effective
    index: 14
  text: {short: Cannot include any text in the resource as part of the de-identified data., mustSupport: false, index: 1}
package_version: plus-1.1.0
extensions:
  deidentifiedIssuedTime: {url: 'http://fhir.org/guides/hrsa/uds-plus/StructureDefinition/uds-plus-deidentified-instant-extension', min: 0, max: 1, type: Extension, index: 3}
class: profile
kind: resource
url: http://fhir.org/guides/hrsa/uds-plus/StructureDefinition/uds-plus-observation
base: http://hl7.org/fhir/StructureDefinition/Observation
version: 1.1.0
required: [status, subject, category, code]