description: This profile applies constraints to the Observation resource for CA Core+ to support structured pathology result reporting in the pan-Canadian context. package_name: ca.infoway.io.core derivation: constraint name: ObservationPathologyCACore type: Observation elements: category: type: CodeableConcept mustSupport: true index: 1 slicing: rules: open discriminator: - {path: $this, type: pattern} min: 1 slices: laboratory: match: coding: - {code: laboratory, system: 'http://terminology.hl7.org/CodeSystem/observation-category'} schema: mustSupport: true pattern: type: CodeableConcept value: coding: - {code: laboratory, system: 'http://terminology.hl7.org/CodeSystem/observation-category'} _required: true index: 2 min: 1 max: 1 hasMember: type: Reference refers: ['http://hl7.org/fhir/StructureDefinition/Observation'] index: 38 value[x]: elements: coding: {mustSupport: true, index: 16} encounter: type: Reference refers: ['http://fhir.infoway-inforoute.ca/cacore/StructureDefinition/encounter-ca-core'] index: 6 valueTime: type: time mustSupport: true choiceOf: value index: 37 slicing: slices: valueTime: match: {} schema: {type: time, mustSupport: true, choiceOf: value, index: 37} min: 0 max: 1 valueQuantity: type: Quantity mustSupport: true choiceOf: value index: 25 slicing: slices: valueQuantity: match: {} schema: {type: Quantity, mustSupport: true, choiceOf: value, index: 25} min: 0 max: 1 value: mustSupport: true choices: [valueTime] index: 36 slicing: slices: valueTime: match: {} schema: mustSupport: true choices: [valueTime] index: 36 min: 0 max: 1 valueString: type: string mustSupport: true choiceOf: value index: 34 slicing: slices: valueString: match: {} schema: {type: string, mustSupport: true, choiceOf: value, index: 34} min: 0 max: 1 valueRatio: type: Ratio mustSupport: true choiceOf: value index: 31 slicing: slices: valueRatio: match: {} schema: {type: Ratio, mustSupport: true, choiceOf: value, index: 31} min: 0 max: 1 valueDateTime: type: dateTime mustSupport: true choiceOf: value index: 19 slicing: slices: valueDateTime: match: {} schema: {type: dateTime, mustSupport: true, choiceOf: value, index: 19} min: 0 max: 1 effective[x]: extensions: data-absent-reason: {url: 'http://hl7.org/fhir/StructureDefinition/data-absent-reason', min: 0, max: 1, short: 'effective[x] absence reason', type: Extension, mustSupport: true, index: 9} elements: extension: short: effective[x] absence reason type: Extension mustSupport: true url: http://hl7.org/fhir/StructureDefinition/data-absent-reason index: 9 slicing: slices: data-absent-reason: match: {} schema: {short: 'effective[x] absence reason', type: Extension, mustSupport: true, url: 'http://hl7.org/fhir/StructureDefinition/data-absent-reason', index: 9} min: 0 max: 1 status: {mustSupport: true, index: 0} effective: mustSupport: true choices: [] index: 8 code: type: CodeableConcept binding: {strength: example, valueSet: 'http://fhir.infoway-inforoute.ca/io/cacore/ValueSet/pCLOCD'} mustSupport: true index: 3 valueCodeableConcept: type: CodeableConcept mustSupport: true choiceOf: value index: 15 slicing: slices: valueCodeableConcept: match: {} schema: {type: CodeableConcept, mustSupport: true, choiceOf: value, index: 15} min: 0 max: 1 valuePeriod: type: Period mustSupport: true choiceOf: value index: 22 slicing: slices: valuePeriod: match: {} schema: {type: Period, mustSupport: true, choiceOf: value, index: 22} min: 0 max: 1 valueRange: type: Range mustSupport: true choiceOf: value index: 28 slicing: slices: valueRange: match: {} schema: {type: Range, mustSupport: true, choiceOf: value, index: 28} min: 0 max: 1 subject: type: Reference mustSupport: true refers: ['http://fhir.infoway-inforoute.ca/cacore/StructureDefinition/patient-ca-core'] index: 4 elements: reference: {mustSupport: true, index: 5} required: [reference] performer: {mustSupport: true, index: 10} package_version: 1.0.0-dft-preballot-beta2 class: profile kind: resource url: http://fhir.infoway-inforoute.ca/cacore/StructureDefinition/observation-pathologyresult-ca-core base: http://hl7.org/fhir/StructureDefinition/Observation version: null required: [subject, category, effective, performer]