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]