PackagesCanonicalsLogsProblems
    Packages
    hl7.fhir.us.dapl@1.0.0-ballot
    http://hl7.org/fhir/us/dapl/StructureDefinition/dapl-clinical-result-observation
description: The profile establishes the core elements, extensions, vocabularies and value sets for representing deidentified or anonymized clinical result observations.
package_name: hl7.fhir.us.dapl
derivation: constraint
name: DAPLClinicalResultObservation
type: Observation
elements:
  category:
    binding: {strength: extensible, valueSet: 'http://hl7.org/fhir/us/core/ValueSet/us-core-clinical-result-observation-category'}
    mustSupport: true
    array: true
    min: 1
    index: 5
  encounter:
    type: Reference
    mustSupport: true
    refers: ['http://hl7.org/fhir/us/dapl/StructureDefinition/dapl-deidentified-encounter']
    index: 9
    elements:
      display: {mustSupport: false, index: 10}
  valueQuantity:
    type: Quantity
    constraint:
      dapl-res-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}
      dapl-res-6a: {human: All dateTime data elements should have valid year > 1900, severity: error, expression: $this is DateTime implies $this.toString() >= '1900'}
      dapl-res-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}
      dapl-res-7a: {human: All Period.start data elements should have valid year > 1900, severity: error, expression: $this is Period and Period.start.exists() implies $this.start.toString() >= '1900'}
      dapl-res-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}
      dapl-res-8a: {human: All Period.end data elements should have valid year > 1900, severity: error, expression: $this is Period and Period.end.exists() implies $this.end.toString() >= '1900'}
    mustSupport: true
    choiceOf: value
    index: 21
  value:
    constraint:
      dapl-res-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}
      dapl-res-6a: {human: All dateTime data elements should have valid year > 1900, severity: error, expression: $this is DateTime implies $this.toString() >= '1900'}
      dapl-res-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}
      dapl-res-7a: {human: All Period.start data elements should have valid year > 1900, severity: error, expression: $this is Period and Period.start.exists() implies $this.start.toString() >= '1900'}
      dapl-res-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}
      dapl-res-8a: {human: All Period.end data elements should have valid year > 1900, severity: error, expression: $this is Period and Period.end.exists() implies $this.end.toString() >= '1900'}
    mustSupport: true
    choices: [valueQuantity, valueCodeableConcept, valueString, valueBoolean, valueInteger, valueRange, valueRatio, valueSampledData, valueDateTime, valuePeriod]
    index: 20
  valueString:
    type: string
    constraint:
      dapl-res-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}
      dapl-res-6a: {human: All dateTime data elements should have valid year > 1900, severity: error, expression: $this is DateTime implies $this.toString() >= '1900'}
      dapl-res-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}
      dapl-res-7a: {human: All Period.start data elements should have valid year > 1900, severity: error, expression: $this is Period and Period.start.exists() implies $this.start.toString() >= '1900'}
      dapl-res-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}
      dapl-res-8a: {human: All Period.end data elements should have valid year > 1900, severity: error, expression: $this is Period and Period.end.exists() implies $this.end.toString() >= '1900'}
    mustSupport: true
    choiceOf: value
    index: 23
  valueRatio:
    type: Ratio
    constraint:
      dapl-res-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}
      dapl-res-6a: {human: All dateTime data elements should have valid year > 1900, severity: error, expression: $this is DateTime implies $this.toString() >= '1900'}
      dapl-res-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}
      dapl-res-7a: {human: All Period.start data elements should have valid year > 1900, severity: error, expression: $this is Period and Period.start.exists() implies $this.start.toString() >= '1900'}
      dapl-res-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}
      dapl-res-8a: {human: All Period.end data elements should have valid year > 1900, severity: error, expression: $this is Period and Period.end.exists() implies $this.end.toString() >= '1900'}
    mustSupport: true
    choiceOf: value
    index: 27
  valueBoolean:
    type: boolean
    constraint:
      dapl-res-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}
      dapl-res-6a: {human: All dateTime data elements should have valid year > 1900, severity: error, expression: $this is DateTime implies $this.toString() >= '1900'}
      dapl-res-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}
      dapl-res-7a: {human: All Period.start data elements should have valid year > 1900, severity: error, expression: $this is Period and Period.start.exists() implies $this.start.toString() >= '1900'}
      dapl-res-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}
      dapl-res-8a: {human: All Period.end data elements should have valid year > 1900, severity: error, expression: $this is Period and Period.end.exists() implies $this.end.toString() >= '1900'}
    mustSupport: true
    choiceOf: value
    index: 24
  valueDateTime:
    type: dateTime
    constraint:
      dapl-res-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}
      dapl-res-6a: {human: All dateTime data elements should have valid year > 1900, severity: error, expression: $this is DateTime implies $this.toString() >= '1900'}
      dapl-res-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}
      dapl-res-7a: {human: All Period.start data elements should have valid year > 1900, severity: error, expression: $this is Period and Period.start.exists() implies $this.start.toString() >= '1900'}
      dapl-res-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}
      dapl-res-8a: {human: All Period.end data elements should have valid year > 1900, severity: error, expression: $this is Period and Period.end.exists() implies $this.end.toString() >= '1900'}
    mustSupport: true
    choiceOf: value
    index: 29
  component:
    mustSupport: true
    array: true
    index: 33
    elements:
      valueQuantity:
        type: Quantity
        constraint:
          dapl-res-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}
          dapl-res-9a: {human: All dateTime data elements should have valid year > 1900, severity: error, expression: $this is DateTime implies $this.toString() >= '1900'}
          dapl-res-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}
          dapl-res-10a: {human: All Period.start data elements should have valid year > 1900, severity: error, expression: $this is Period and Period.start.exists() implies $this.start.toString() >= '1900'}
          dapl-res-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}
          dapl-res-11a: {human: All Period.end data elements should have valid year > 1900, severity: error, expression: $this is Period and Period.end.exists() implies $this.end.toString() >= '1900'}
        mustSupport: true
        choiceOf: value
        index: 37
      value:
        constraint:
          dapl-res-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}
          dapl-res-9a: {human: All dateTime data elements should have valid year > 1900, severity: error, expression: $this is DateTime implies $this.toString() >= '1900'}
          dapl-res-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}
          dapl-res-10a: {human: All Period.start data elements should have valid year > 1900, severity: error, expression: $this is Period and Period.start.exists() implies $this.start.toString() >= '1900'}
          dapl-res-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}
          dapl-res-11a: {human: All Period.end data elements should have valid year > 1900, severity: error, expression: $this is Period and Period.end.exists() implies $this.end.toString() >= '1900'}
        mustSupport: true
        choices: [valueQuantity, valueCodeableConcept, valueString, valueBoolean, valueInteger, valueRange, valueRatio, valueSampledData, valueDateTime, valuePeriod]
        index: 36
      valueString:
        type: string
        constraint:
          dapl-res-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}
          dapl-res-9a: {human: All dateTime data elements should have valid year > 1900, severity: error, expression: $this is DateTime implies $this.toString() >= '1900'}
          dapl-res-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}
          dapl-res-10a: {human: All Period.start data elements should have valid year > 1900, severity: error, expression: $this is Period and Period.start.exists() implies $this.start.toString() >= '1900'}
          dapl-res-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}
          dapl-res-11a: {human: All Period.end data elements should have valid year > 1900, severity: error, expression: $this is Period and Period.end.exists() implies $this.end.toString() >= '1900'}
        mustSupport: true
        choiceOf: value
        index: 39
      valueRatio:
        type: Ratio
        constraint:
          dapl-res-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}
          dapl-res-9a: {human: All dateTime data elements should have valid year > 1900, severity: error, expression: $this is DateTime implies $this.toString() >= '1900'}
          dapl-res-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}
          dapl-res-10a: {human: All Period.start data elements should have valid year > 1900, severity: error, expression: $this is Period and Period.start.exists() implies $this.start.toString() >= '1900'}
          dapl-res-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}
          dapl-res-11a: {human: All Period.end data elements should have valid year > 1900, severity: error, expression: $this is Period and Period.end.exists() implies $this.end.toString() >= '1900'}
        mustSupport: true
        choiceOf: value
        index: 43
      valueBoolean:
        type: boolean
        constraint:
          dapl-res-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}
          dapl-res-9a: {human: All dateTime data elements should have valid year > 1900, severity: error, expression: $this is DateTime implies $this.toString() >= '1900'}
          dapl-res-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}
          dapl-res-10a: {human: All Period.start data elements should have valid year > 1900, severity: error, expression: $this is Period and Period.start.exists() implies $this.start.toString() >= '1900'}
          dapl-res-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}
          dapl-res-11a: {human: All Period.end data elements should have valid year > 1900, severity: error, expression: $this is Period and Period.end.exists() implies $this.end.toString() >= '1900'}
        mustSupport: true
        choiceOf: value
        index: 40
      valueDateTime:
        type: dateTime
        constraint:
          dapl-res-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}
          dapl-res-9a: {human: All dateTime data elements should have valid year > 1900, severity: error, expression: $this is DateTime implies $this.toString() >= '1900'}
          dapl-res-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}
          dapl-res-10a: {human: All Period.start data elements should have valid year > 1900, severity: error, expression: $this is Period and Period.start.exists() implies $this.start.toString() >= '1900'}
          dapl-res-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}
          dapl-res-11a: {human: All Period.end data elements should have valid year > 1900, severity: error, expression: $this is Period and Period.end.exists() implies $this.end.toString() >= '1900'}
        mustSupport: true
        choiceOf: value
        index: 45
      valueSampledData:
        type: SampledData
        constraint:
          dapl-res-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}
          dapl-res-9a: {human: All dateTime data elements should have valid year > 1900, severity: error, expression: $this is DateTime implies $this.toString() >= '1900'}
          dapl-res-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}
          dapl-res-10a: {human: All Period.start data elements should have valid year > 1900, severity: error, expression: $this is Period and Period.start.exists() implies $this.start.toString() >= '1900'}
          dapl-res-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}
          dapl-res-11a: {human: All Period.end data elements should have valid year > 1900, severity: error, expression: $this is Period and Period.end.exists() implies $this.end.toString() >= '1900'}
        mustSupport: true
        choiceOf: value
        index: 44
      code:
        binding: {strength: extensible, valueSet: 'http://hl7.org/fhir/ValueSet/observation-codes'}
        mustSupport: true
        index: 34
      valueCodeableConcept:
        type: CodeableConcept
        constraint:
          dapl-res-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}
          dapl-res-9a: {human: All dateTime data elements should have valid year > 1900, severity: error, expression: $this is DateTime implies $this.toString() >= '1900'}
          dapl-res-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}
          dapl-res-10a: {human: All Period.start data elements should have valid year > 1900, severity: error, expression: $this is Period and Period.start.exists() implies $this.start.toString() >= '1900'}
          dapl-res-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}
          dapl-res-11a: {human: All Period.end data elements should have valid year > 1900, severity: error, expression: $this is Period and Period.end.exists() implies $this.end.toString() >= '1900'}
        mustSupport: true
        choiceOf: value
        index: 38
      valuePeriod:
        type: Period
        constraint:
          dapl-res-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}
          dapl-res-9a: {human: All dateTime data elements should have valid year > 1900, severity: error, expression: $this is DateTime implies $this.toString() >= '1900'}
          dapl-res-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}
          dapl-res-10a: {human: All Period.start data elements should have valid year > 1900, severity: error, expression: $this is Period and Period.start.exists() implies $this.start.toString() >= '1900'}
          dapl-res-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}
          dapl-res-11a: {human: All Period.end data elements should have valid year > 1900, severity: error, expression: $this is Period and Period.end.exists() implies $this.end.toString() >= '1900'}
        mustSupport: true
        choiceOf: value
        index: 46
      valueRange:
        type: Range
        constraint:
          dapl-res-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}
          dapl-res-9a: {human: All dateTime data elements should have valid year > 1900, severity: error, expression: $this is DateTime implies $this.toString() >= '1900'}
          dapl-res-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}
          dapl-res-10a: {human: All Period.start data elements should have valid year > 1900, severity: error, expression: $this is Period and Period.start.exists() implies $this.start.toString() >= '1900'}
          dapl-res-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}
          dapl-res-11a: {human: All Period.end data elements should have valid year > 1900, severity: error, expression: $this is Period and Period.end.exists() implies $this.end.toString() >= '1900'}
        mustSupport: true
        choiceOf: value
        index: 42
      valueInteger:
        type: integer
        constraint:
          dapl-res-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}
          dapl-res-9a: {human: All dateTime data elements should have valid year > 1900, severity: error, expression: $this is DateTime implies $this.toString() >= '1900'}
          dapl-res-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}
          dapl-res-10a: {human: All Period.start data elements should have valid year > 1900, severity: error, expression: $this is Period and Period.start.exists() implies $this.start.toString() >= '1900'}
          dapl-res-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}
          dapl-res-11a: {human: All Period.end data elements should have valid year > 1900, severity: error, expression: $this is Period and Period.end.exists() implies $this.end.toString() >= '1900'}
        mustSupport: true
        choiceOf: value
        index: 41
    required: [code]
  note: {mustSupport: false, index: 31}
  extension:
    type: Extension
    url: http://hl7.org/fhir/us/dapl/StructureDefinition/dapl-deidentified-instant-extension
    index: 3
    slicing:
      slices:
        deidentifiedIssuedTime:
          match: {}
          schema: {type: Extension, url: 'http://hl7.org/fhir/us/dapl/StructureDefinition/dapl-deidentified-instant-extension', index: 3}
          min: 0
          max: 1
  contained: {short: Cannot include any contained resources in the resource as part of the deidentified or anonymized data., mustSupport: false, index: 2}
  valueSampledData:
    type: SampledData
    constraint:
      dapl-res-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}
      dapl-res-6a: {human: All dateTime data elements should have valid year > 1900, severity: error, expression: $this is DateTime implies $this.toString() >= '1900'}
      dapl-res-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}
      dapl-res-7a: {human: All Period.start data elements should have valid year > 1900, severity: error, expression: $this is Period and Period.start.exists() implies $this.start.toString() >= '1900'}
      dapl-res-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}
      dapl-res-8a: {human: All Period.end data elements should have valid year > 1900, severity: error, expression: $this is Period and Period.end.exists() implies $this.end.toString() >= '1900'}
    mustSupport: true
    choiceOf: value
    index: 28
  effectiveDateTime:
    type: dateTime
    constraint:
      dapl-res-3: {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}
      dapl-res-3a: {human: All Period.end data elements should have valid year > 1900, severity: error, expression: $this is Period and Period.end.exists() implies $this.end.toString() >= '1900'}
      dapl-res-1a: {human: All dateTime data elements should have valid year > 1900, severity: error, expression: $this is DateTime implies $this.toString() >= '1900'}
      dapl-res-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}
      dapl-res-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}
      dapl-res-2a: {human: All Period.start data elements should have valid year > 1900, severity: error, expression: $this is Period and Period.start.exists() implies $this.start.toString() >= '1900'}
      uds-plus-res-5a: {human: All Timing data elements should have valid year > 1900, severity: error, expression: $this is Timing and Timing.event.exists() implies $this.event.first().toString() >= '1900'}
      dapl-res-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}
      dapl-res-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}
    mustSupport: true
    choiceOf: effective
    index: 13
  status: {mustSupport: true, index: 4}
  effective:
    constraint:
      dapl-res-3: {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}
      dapl-res-3a: {human: All Period.end data elements should have valid year > 1900, severity: error, expression: $this is Period and Period.end.exists() implies $this.end.toString() >= '1900'}
      dapl-res-1a: {human: All dateTime data elements should have valid year > 1900, severity: error, expression: $this is DateTime implies $this.toString() >= '1900'}
      dapl-res-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}
      dapl-res-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}
      dapl-res-2a: {human: All Period.start data elements should have valid year > 1900, severity: error, expression: $this is Period and Period.start.exists() implies $this.start.toString() >= '1900'}
      uds-plus-res-5a: {human: All Timing data elements should have valid year > 1900, severity: error, expression: $this is Timing and Timing.event.exists() implies $this.event.first().toString() >= '1900'}
      dapl-res-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}
      dapl-res-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}
    mustSupport: true
    choices: [effectiveDateTime, effectivePeriod, effectiveTiming]
    index: 12
  id: {short: The Observation identifier generated by the DARTS deidentification or anonymization service, mustSupport: true, index: 0}
  code:
    binding: {strength: extensible, valueSet: 'http://hl7.org/fhir/ValueSet/observation-codes'}
    mustSupport: true
    index: 6
  effectiveTiming:
    type: Timing
    constraint:
      dapl-res-3: {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}
      dapl-res-3a: {human: All Period.end data elements should have valid year > 1900, severity: error, expression: $this is Period and Period.end.exists() implies $this.end.toString() >= '1900'}
      dapl-res-1a: {human: All dateTime data elements should have valid year > 1900, severity: error, expression: $this is DateTime implies $this.toString() >= '1900'}
      dapl-res-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}
      dapl-res-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}
      dapl-res-2a: {human: All Period.start data elements should have valid year > 1900, severity: error, expression: $this is Period and Period.start.exists() implies $this.start.toString() >= '1900'}
      uds-plus-res-5a: {human: All Timing data elements should have valid year > 1900, severity: error, expression: $this is Timing and Timing.event.exists() implies $this.event.first().toString() >= '1900'}
      dapl-res-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}
      dapl-res-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}
    mustSupport: true
    choiceOf: effective
    index: 15
  valueCodeableConcept:
    type: CodeableConcept
    constraint:
      dapl-res-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}
      dapl-res-6a: {human: All dateTime data elements should have valid year > 1900, severity: error, expression: $this is DateTime implies $this.toString() >= '1900'}
      dapl-res-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}
      dapl-res-7a: {human: All Period.start data elements should have valid year > 1900, severity: error, expression: $this is Period and Period.start.exists() implies $this.start.toString() >= '1900'}
      dapl-res-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}
      dapl-res-8a: {human: All Period.end data elements should have valid year > 1900, severity: error, expression: $this is Period and Period.end.exists() implies $this.end.toString() >= '1900'}
    mustSupport: true
    choiceOf: value
    index: 22
  bodySite: {mustSupport: true, index: 32}
  issued: {mustSupport: true, index: 16}
  valuePeriod:
    type: Period
    constraint:
      dapl-res-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}
      dapl-res-6a: {human: All dateTime data elements should have valid year > 1900, severity: error, expression: $this is DateTime implies $this.toString() >= '1900'}
      dapl-res-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}
      dapl-res-7a: {human: All Period.start data elements should have valid year > 1900, severity: error, expression: $this is Period and Period.start.exists() implies $this.start.toString() >= '1900'}
      dapl-res-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}
      dapl-res-8a: {human: All Period.end data elements should have valid year > 1900, severity: error, expression: $this is Period and Period.end.exists() implies $this.end.toString() >= '1900'}
    mustSupport: true
    choiceOf: value
    index: 30
  valueRange:
    type: Range
    constraint:
      dapl-res-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}
      dapl-res-6a: {human: All dateTime data elements should have valid year > 1900, severity: error, expression: $this is DateTime implies $this.toString() >= '1900'}
      dapl-res-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}
      dapl-res-7a: {human: All Period.start data elements should have valid year > 1900, severity: error, expression: $this is Period and Period.start.exists() implies $this.start.toString() >= '1900'}
      dapl-res-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}
      dapl-res-8a: {human: All Period.end data elements should have valid year > 1900, severity: error, expression: $this is Period and Period.end.exists() implies $this.end.toString() >= '1900'}
    mustSupport: true
    choiceOf: value
    index: 26
  valueInteger:
    type: integer
    constraint:
      dapl-res-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}
      dapl-res-6a: {human: All dateTime data elements should have valid year > 1900, severity: error, expression: $this is DateTime implies $this.toString() >= '1900'}
      dapl-res-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}
      dapl-res-7a: {human: All Period.start data elements should have valid year > 1900, severity: error, expression: $this is Period and Period.start.exists() implies $this.start.toString() >= '1900'}
      dapl-res-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}
      dapl-res-8a: {human: All Period.end data elements should have valid year > 1900, severity: error, expression: $this is Period and Period.end.exists() implies $this.end.toString() >= '1900'}
    mustSupport: true
    choiceOf: value
    index: 25
  subject:
    type: Reference
    mustSupport: true
    refers: ['http://hl7.org/fhir/us/dapl/StructureDefinition/dapl-deidentified-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:
      dapl-res-3: {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}
      dapl-res-3a: {human: All Period.end data elements should have valid year > 1900, severity: error, expression: $this is Period and Period.end.exists() implies $this.end.toString() >= '1900'}
      dapl-res-1a: {human: All dateTime data elements should have valid year > 1900, severity: error, expression: $this is DateTime implies $this.toString() >= '1900'}
      dapl-res-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}
      dapl-res-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}
      dapl-res-2a: {human: All Period.start data elements should have valid year > 1900, severity: error, expression: $this is Period and Period.start.exists() implies $this.start.toString() >= '1900'}
      uds-plus-res-5a: {human: All Timing data elements should have valid year > 1900, severity: error, expression: $this is Timing and Timing.event.exists() implies $this.event.first().toString() >= '1900'}
      dapl-res-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}
      dapl-res-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}
    mustSupport: true
    choiceOf: effective
    index: 14
  text: {short: Cannot include any text in the resource as part of the deidentified or anonymized data., mustSupport: false, index: 1}
package_version: 1.0.0-ballot
extensions:
  deidentifiedIssuedTime: {url: 'http://hl7.org/fhir/us/dapl/StructureDefinition/dapl-deidentified-instant-extension', min: 0, max: 1, type: Extension, index: 3}
class: profile
kind: resource
url: http://hl7.org/fhir/us/dapl/StructureDefinition/dapl-clinical-result-observation
base: http://hl7.org/fhir/StructureDefinition/Observation
version: 1.0.0-ballot
required: [status, subject, category, code]