Guia de Implementação do Registro de Atendimento Clínico (RAC) da RNDS
0.1.0 - CI Build Brazil flag

Guia de Implementação do Registro de Atendimento Clínico (RAC) da RNDS - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions

Resource Profile: Medida Observada

Official URL: http://www.saude.gov.br/fhir/r4/StructureDefinition/BRMedidaObservada Version: 0.1.0
Standards status: Informative Maturity Level: 1 Computable Name: BRMedidaObservada

Registra as informações relacionadas a um tipo de observação.

Usage:

Formal Views of Profile Content

Description of Profiles, Differentials, Snapshots and how the different presentations work.

This structure is derived from Observation

NameFlagsCard.TypeDescription & Constraintsdoco
.. Observation 0..*ObservationMeasurements and simple assertions
... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... measurementOrigin 0..1CodeableConceptOrigem da Medição Corpórea
URL: http://www.saude.gov.br/fhir/r4/StructureDefinition/BROrigemMedida
Binding: Origem de Medição (required): Origem da Medição Corpórea

... usedClothes 0..1CodeableConceptRoupas Usadas na Medição
URL: http://www.saude.gov.br/fhir/r4/StructureDefinition/BRRoupasUsadasMedicao
Binding: Roupas Usadas na Medição (required): Roupas Usadas na Medição Corpórea

... identifier 0..0
... basedOn 0..0
... partOf 0..0
... status 1..1codefinal | entered-in-error
Binding: Estado da Observação (required): Código do Estado da Observação.

... category 0..0
... code 1..1CodeableConceptTipo de Observação
Binding: Tipo de Observação (required): Código do Tipo de Observação.

.... coding 0..1CodingCode defined by a terminology system
... subject 0..1Reference(http://www.saude.gov.br/fhir/r4/StructureDefinition/BRIndividuo-1.0)Who and/or what the observation is about
.... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
.... unidentifiedPatient S0..*(Complex)Dados do Indivíduo Não Identificado
URL: http://www.saude.gov.br/fhir/r4/StructureDefinition/BRIndividuoNaoIdentificado-1.0
..... Slices for extension 3..*ExtensionExtension
Slice: Unordered, Open by value:url
..... extension:gender S1..1ExtensionExtension
..... extension:birthYear S1..1ExtensionExtension
..... extension:reason S1..1ExtensionExtension
.... reference 0..0
.... type 0..0
.... identifier
..... use 0..0
..... value 1..1stringThe value that is unique
..... period 0..0
..... assigner 0..0
.... display 0..0
... focus 0..0
... encounter 0..0
... effective[x] 0..1TimingClinically relevant time/time-period for observation
.... code 0..1CodeableConceptBID | TID | QID | AM | PM | QD | QOD | +
Binding: Frequência de Uso da Substância (required): Frequência do uso de substância nos últimos 3 meses

... issued 0..0
... performer 0..0
... value[x] 0..1Actual result
.... valueQuantityQuantity
.... valueCodeableConceptCodeableConcept
.... valueDateTimedateTime
... dataAbsentReason 0..0
... interpretation 0..0
... note 0..1AnnotationComments about the observation
... bodySite 0..1CodeableConceptObserved body part
Binding: Local de Aferição (required): Local de Aferição

... method 0..1CodeableConceptHow it was done
Binding: Posição do Indivíduo (required): Posição em relação à gravidade.

.... coding 0..1CodingCode defined by a terminology system
... specimen 0..0
... device 0..0
... referenceRange 0..0
... hasMember 0..0
... derivedFrom 0..0
... component 0..1BackboneElementComponent results

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSetURI
Observation.statusrequiredBREstadoObservacao
http://www.saude.gov.br/fhir/r4/ValueSet/BREstadoObservacao-1.0
from this IG
Observation.coderequiredBRTipoObservacao
http://www.saude.gov.br/fhir/r4/ValueSet/BRTipoObservacao-1.0
from this IG
Observation.effective[x].coderequiredBRFrequenciaUsoSubstancia
http://www.saude.gov.br/fhir/r4/ValueSet/BRFrequenciaUsoSubstancia
from this IG
Observation.bodySiterequiredBRLocalAfericao (a valid code from Local de Aferição)
http://www.saude.gov.br/fhir/r4/ValueSet/BRLocalAfericao-1.0
from this IG
Observation.methodrequiredBRPosicaoIndividuo
http://www.saude.gov.br/fhir/r4/ValueSet/BRPosicaoIndividuo
from this IG
NameFlagsCard.TypeDescription & Constraintsdoco
.. Observation C0..*ObservationMeasurements and simple assertions
obs-6: dataAbsentReason SHALL only be present if Observation.value[x] is not present
obs-7: If Observation.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... measurementOrigin 0..1CodeableConceptOrigem da Medição Corpórea
URL: http://www.saude.gov.br/fhir/r4/StructureDefinition/BROrigemMedida
Binding: Origem de Medição (required): Origem da Medição Corpórea


... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... status ?!Σ1..1codefinal | entered-in-error
Binding: Estado da Observação (required): Código do Estado da Observação.

... code Σ1..1CodeableConceptTipo de Observação
Binding: Tipo de Observação (required): Código do Tipo de Observação.

.... coding Σ0..1CodingCode defined by a terminology system
... subject Σ0..1Reference(http://www.saude.gov.br/fhir/r4/StructureDefinition/BRIndividuo-1.0)Who and/or what the observation is about
.... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
.... unidentifiedPatient S0..*(Complex)Dados do Indivíduo Não Identificado
URL: http://www.saude.gov.br/fhir/r4/StructureDefinition/BRIndividuoNaoIdentificado-1.0
..... Slices for extension 3..*ExtensionExtension
Slice: Unordered, Open by value:url
..... extension:gender S1..1ExtensionExtension
...... url 1..1uri"gender"
...... value[x] 1..1codeValue of extension
..... extension:birthYear S1..1ExtensionExtension
...... url 1..1uri"birthYear"
...... value[x] 1..1dateValue of extension
..... extension:reason S1..1ExtensionExtension
...... url 1..1uri"reason"
...... value[x] 1..1CodeableConceptValue of extension
..... url 1..1uri"http://www.saude.gov.br/fhir/r4/StructureDefinition/BRIndividuoNaoIdentificado-1.0"
... effective[x] Σ0..1TimingClinically relevant time/time-period for observation
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... code Σ0..1CodeableConceptBID | TID | QID | AM | PM | QD | QOD | +
Binding: Frequência de Uso da Substância (required): Frequência do uso de substância nos últimos 3 meses

... value[x] ΣC0..1Actual result
.... valueQuantityQuantity
.... valueCodeableConceptCodeableConcept
.... valueDateTimedateTime
... note 0..1AnnotationComments about the observation
... bodySite 0..1CodeableConceptObserved body part
Binding: Local de Aferição (required): Local de Aferição

... method 0..1CodeableConceptHow it was done
Binding: Posição do Indivíduo (required): Posição em relação à gravidade.

.... coding Σ0..1CodingCode defined by a terminology system
... component Σ0..1BackboneElementComponent results
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... code Σ1..1CodeableConceptType of component observation (code / type)
Binding: LOINCCodes (example): Codes identifying names of simple observations.


doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Observation.statusrequiredBREstadoObservacao
http://www.saude.gov.br/fhir/r4/ValueSet/BREstadoObservacao-1.0
from this IG
Observation.coderequiredBRTipoObservacao
http://www.saude.gov.br/fhir/r4/ValueSet/BRTipoObservacao-1.0
from this IG
Observation.effective[x].coderequiredBRFrequenciaUsoSubstancia
http://www.saude.gov.br/fhir/r4/ValueSet/BRFrequenciaUsoSubstancia
from this IG
Observation.bodySiterequiredBRLocalAfericao (a valid code from Local de Aferição)
http://www.saude.gov.br/fhir/r4/ValueSet/BRLocalAfericao-1.0
from this IG
Observation.methodrequiredBRPosicaoIndividuo
http://www.saude.gov.br/fhir/r4/ValueSet/BRPosicaoIndividuo
from this IG
Observation.component.codeexampleLOINCCodes (a valid code from LOINC)
http://hl7.org/fhir/ValueSet/observation-codes
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorObservationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorObservationIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
: contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorObservationIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5errorObservationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceObservationA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
obs-6errorObservationdataAbsentReason SHALL only be present if Observation.value[x] is not present
: dataAbsentReason.empty() or value.empty()
obs-7errorObservationIf Observation.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present
: value.empty() or component.code.where(coding.intersect(%resource.code.coding).exists()).empty()
NameFlagsCard.TypeDescription & Constraintsdoco
.. Observation C0..*ObservationMeasurements and simple assertions
obs-6: dataAbsentReason SHALL only be present if Observation.value[x] is not present
obs-7: If Observation.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... measurementOrigin 0..1CodeableConceptOrigem da Medição Corpórea
URL: http://www.saude.gov.br/fhir/r4/StructureDefinition/BROrigemMedida
Binding: Origem de Medição (required): Origem da Medição Corpórea


... usedClothes 0..1CodeableConceptRoupas Usadas na Medição
URL: http://www.saude.gov.br/fhir/r4/StructureDefinition/BRRoupasUsadasMedicao
Binding: Roupas Usadas na Medição (required): Roupas Usadas na Medição Corpórea


... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... status ?!Σ1..1codefinal | entered-in-error
Binding: Estado da Observação (required): Código do Estado da Observação.

... code Σ1..1CodeableConceptTipo de Observação
Binding: Tipo de Observação (required): Código do Tipo de Observação.

.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... coding Σ0..1CodingCode defined by a terminology system
.... text Σ0..1stringPlain text representation of the concept
... subject Σ0..1Reference(http://www.saude.gov.br/fhir/r4/StructureDefinition/BRIndividuo-1.0)Who and/or what the observation is about
.... id 0..1stringUnique id for inter-element referencing
.... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
.... unidentifiedPatient S0..*(Complex)Dados do Indivíduo Não Identificado
URL: http://www.saude.gov.br/fhir/r4/StructureDefinition/BRIndividuoNaoIdentificado-1.0
..... id 0..1stringUnique id for inter-element referencing
..... Slices for extension 3..*ExtensionExtension
Slice: Unordered, Open by value:url
..... extension:gender S1..1ExtensionExtension
...... id 0..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
...... url 1..1uri"gender"
...... value[x] 1..1codeValue of extension
..... extension:birthYear S1..1ExtensionExtension
...... id 0..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
...... url 1..1uri"birthYear"
...... value[x] 1..1dateValue of extension
..... extension:reason S1..1ExtensionExtension
...... id 0..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
...... url 1..1uri"reason"
...... value[x] 1..1CodeableConceptValue of extension
..... url 1..1uri"http://www.saude.gov.br/fhir/r4/StructureDefinition/BRIndividuoNaoIdentificado-1.0"
.... identifier Σ0..1IdentifierLogical reference, when literal reference is not known
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... type Σ0..1CodeableConceptDescription of identifier
Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

..... system Σ0..1uriThe namespace for the identifier value
Example General: http://www.acme.com/identifiers/patient
..... value Σ1..1stringThe value that is unique
Example General: 123456
... effective[x] Σ0..1TimingClinically relevant time/time-period for observation
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... event Σ0..*dateTimeWhen the event occurs
.... repeat ΣC0..1ElementWhen the event is to occur
tim-1: if there's a duration, there needs to be duration units
tim-2: if there's a period, there needs to be period units
tim-4: duration SHALL be a non-negative value
tim-5: period SHALL be a non-negative value
tim-6: If there's a periodMax, there must be a period
tim-7: If there's a durationMax, there must be a duration
tim-8: If there's a countMax, there must be a count
tim-9: If there's an offset, there must be a when (and not C, CM, CD, CV)
tim-10: If there's a timeOfDay, there cannot be a when, or vice versa
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... bounds[x] Σ0..1Length/Range of lengths, or (Start and/or end) limits
...... boundsDurationDuration
...... boundsRangeRange
...... boundsPeriodPeriod
..... count Σ0..1positiveIntNumber of times to repeat
..... countMax Σ0..1positiveIntMaximum number of times to repeat
..... duration Σ0..1decimalHow long when it happens
..... durationMax Σ0..1decimalHow long when it happens (Max)
..... durationUnit Σ0..1codes | min | h | d | wk | mo | a - unit of time (UCUM)
Binding: UnitsOfTime (required): A unit of time (units from UCUM).

..... frequency Σ0..1positiveIntEvent occurs frequency times per period
..... frequencyMax Σ0..1positiveIntEvent occurs up to frequencyMax times per period
..... period Σ0..1decimalEvent occurs frequency times per period
..... periodMax Σ0..1decimalUpper limit of period (3-4 hours)
..... periodUnit Σ0..1codes | min | h | d | wk | mo | a - unit of time (UCUM)
Binding: UnitsOfTime (required): A unit of time (units from UCUM).

..... dayOfWeek Σ0..*codemon | tue | wed | thu | fri | sat | sun
Binding: DaysOfWeek (required)
..... timeOfDay Σ0..*timeTime of day for action
..... when Σ0..*codeCode for time period of occurrence
Binding: EventTiming (required): Real world event relating to the schedule.


..... offset Σ0..1unsignedIntMinutes from event (before or after)
.... code Σ0..1CodeableConceptBID | TID | QID | AM | PM | QD | QOD | +
Binding: Frequência de Uso da Substância (required): Frequência do uso de substância nos últimos 3 meses

... value[x] ΣC0..1Actual result
.... valueQuantityQuantity
.... valueCodeableConceptCodeableConcept
.... valueDateTimedateTime
... note 0..1AnnotationComments about the observation
... bodySite 0..1CodeableConceptObserved body part
Binding: Local de Aferição (required): Local de Aferição

... method 0..1CodeableConceptHow it was done
Binding: Posição do Indivíduo (required): Posição em relação à gravidade.

.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... coding Σ0..1CodingCode defined by a terminology system
.... text Σ0..1stringPlain text representation of the concept
... component Σ0..1BackboneElementComponent results
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... code Σ1..1CodeableConceptType of component observation (code / type)
Binding: LOINCCodes (example): Codes identifying names of simple observations.

.... value[x] Σ0..1Actual component result
..... valueQuantityQuantity
..... valueCodeableConceptCodeableConcept
..... valueStringstring
..... valueBooleanboolean
..... valueIntegerinteger
..... valueRangeRange
..... valueRatioRatio
..... valueSampledDataSampledData
..... valueTimetime
..... valueDateTimedateTime
..... valuePeriodPeriod
.... dataAbsentReason C0..1CodeableConceptWhy the component result is missing
Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing.

.... interpretation 0..*CodeableConceptHigh, low, normal, etc.
Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations.


.... referenceRange 0..*See referenceRange (Observation)Provides guide for interpretation of component result

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Observation.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
Observation.statusrequiredBREstadoObservacao
http://www.saude.gov.br/fhir/r4/ValueSet/BREstadoObservacao-1.0
from this IG
Observation.coderequiredBRTipoObservacao
http://www.saude.gov.br/fhir/r4/ValueSet/BRTipoObservacao-1.0
from this IG
Observation.subject.identifier.typeextensibleIdentifier Type Codes
http://hl7.org/fhir/ValueSet/identifier-type
from the FHIR Standard
Observation.effective[x].repeat.durationUnitrequiredUnitsOfTime
http://hl7.org/fhir/ValueSet/units-of-time|4.0.1
from the FHIR Standard
Observation.effective[x].repeat.periodUnitrequiredUnitsOfTime
http://hl7.org/fhir/ValueSet/units-of-time|4.0.1
from the FHIR Standard
Observation.effective[x].repeat.dayOfWeekrequiredDaysOfWeek
http://hl7.org/fhir/ValueSet/days-of-week|4.0.1
from the FHIR Standard
Observation.effective[x].repeat.whenrequiredEventTiming
http://hl7.org/fhir/ValueSet/event-timing|4.0.1
from the FHIR Standard
Observation.effective[x].coderequiredBRFrequenciaUsoSubstancia
http://www.saude.gov.br/fhir/r4/ValueSet/BRFrequenciaUsoSubstancia
from this IG
Observation.bodySiterequiredBRLocalAfericao (a valid code from Local de Aferição)
http://www.saude.gov.br/fhir/r4/ValueSet/BRLocalAfericao-1.0
from this IG
Observation.methodrequiredBRPosicaoIndividuo
http://www.saude.gov.br/fhir/r4/ValueSet/BRPosicaoIndividuo
from this IG
Observation.referenceRange.typepreferredObservationReferenceRangeMeaningCodes
http://hl7.org/fhir/ValueSet/referencerange-meaning
from the FHIR Standard
Observation.referenceRange.appliesToexampleObservationReferenceRangeAppliesToCodes
http://hl7.org/fhir/ValueSet/referencerange-appliesto
from the FHIR Standard
Observation.component.codeexampleLOINCCodes (a valid code from LOINC)
http://hl7.org/fhir/ValueSet/observation-codes
from the FHIR Standard
Observation.component.dataAbsentReasonextensibleDataAbsentReason
http://hl7.org/fhir/ValueSet/data-absent-reason
from the FHIR Standard
Observation.component.interpretationextensibleObservationInterpretationCodes
http://hl7.org/fhir/ValueSet/observation-interpretation
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorObservationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorObservationIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
: contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorObservationIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5errorObservationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceObservationA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
obs-6errorObservationdataAbsentReason SHALL only be present if Observation.value[x] is not present
: dataAbsentReason.empty() or value.empty()
obs-7errorObservationIf Observation.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present
: value.empty() or component.code.where(coding.intersect(%resource.code.coding).exists()).empty()
tim-1errorObservation.effective[x].repeatif there's a duration, there needs to be duration units
: duration.empty() or durationUnit.exists()
tim-2errorObservation.effective[x].repeatif there's a period, there needs to be period units
: period.empty() or periodUnit.exists()
tim-4errorObservation.effective[x].repeatduration SHALL be a non-negative value
: duration.exists() implies duration >= 0
tim-5errorObservation.effective[x].repeatperiod SHALL be a non-negative value
: period.exists() implies period >= 0
tim-6errorObservation.effective[x].repeatIf there's a periodMax, there must be a period
: periodMax.empty() or period.exists()
tim-7errorObservation.effective[x].repeatIf there's a durationMax, there must be a duration
: durationMax.empty() or duration.exists()
tim-8errorObservation.effective[x].repeatIf there's a countMax, there must be a count
: countMax.empty() or count.exists()
tim-9errorObservation.effective[x].repeatIf there's an offset, there must be a when (and not C, CM, CD, CV)
: offset.empty() or (when.exists() and ((when in ('C' | 'CM' | 'CD' | 'CV')).not()))
tim-10errorObservation.effective[x].repeatIf there's a timeOfDay, there cannot be a when, or vice versa
: timeOfDay.empty() or when.empty()

This structure is derived from Observation

Summary

Mandatory: 0 element (4 nested mandatory elements)
Must-Support: 4 elements
Prohibited: 21 elements

Structures

This structure refers to these other structures:

  • unable to summarise profile http://www.saude.gov.br/fhir/r4/StructureDefinition/BRIndividuo-1.0 (no profile found)

Extensions

This structure refers to these extensions:

Maturity: 1

Differential View

This structure is derived from Observation

NameFlagsCard.TypeDescription & Constraintsdoco
.. Observation 0..*ObservationMeasurements and simple assertions
... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... measurementOrigin 0..1CodeableConceptOrigem da Medição Corpórea
URL: http://www.saude.gov.br/fhir/r4/StructureDefinition/BROrigemMedida
Binding: Origem de Medição (required): Origem da Medição Corpórea

... usedClothes 0..1CodeableConceptRoupas Usadas na Medição
URL: http://www.saude.gov.br/fhir/r4/StructureDefinition/BRRoupasUsadasMedicao
Binding: Roupas Usadas na Medição (required): Roupas Usadas na Medição Corpórea

... identifier 0..0
... basedOn 0..0
... partOf 0..0
... status 1..1codefinal | entered-in-error
Binding: Estado da Observação (required): Código do Estado da Observação.

... category 0..0
... code 1..1CodeableConceptTipo de Observação
Binding: Tipo de Observação (required): Código do Tipo de Observação.

.... coding 0..1CodingCode defined by a terminology system
... subject 0..1Reference(http://www.saude.gov.br/fhir/r4/StructureDefinition/BRIndividuo-1.0)Who and/or what the observation is about
.... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
.... unidentifiedPatient S0..*(Complex)Dados do Indivíduo Não Identificado
URL: http://www.saude.gov.br/fhir/r4/StructureDefinition/BRIndividuoNaoIdentificado-1.0
..... Slices for extension 3..*ExtensionExtension
Slice: Unordered, Open by value:url
..... extension:gender S1..1ExtensionExtension
..... extension:birthYear S1..1ExtensionExtension
..... extension:reason S1..1ExtensionExtension
.... reference 0..0
.... type 0..0
.... identifier
..... use 0..0
..... value 1..1stringThe value that is unique
..... period 0..0
..... assigner 0..0
.... display 0..0
... focus 0..0
... encounter 0..0
... effective[x] 0..1TimingClinically relevant time/time-period for observation
.... code 0..1CodeableConceptBID | TID | QID | AM | PM | QD | QOD | +
Binding: Frequência de Uso da Substância (required): Frequência do uso de substância nos últimos 3 meses

... issued 0..0
... performer 0..0
... value[x] 0..1Actual result
.... valueQuantityQuantity
.... valueCodeableConceptCodeableConcept
.... valueDateTimedateTime
... dataAbsentReason 0..0
... interpretation 0..0
... note 0..1AnnotationComments about the observation
... bodySite 0..1CodeableConceptObserved body part
Binding: Local de Aferição (required): Local de Aferição

... method 0..1CodeableConceptHow it was done
Binding: Posição do Indivíduo (required): Posição em relação à gravidade.

.... coding 0..1CodingCode defined by a terminology system
... specimen 0..0
... device 0..0
... referenceRange 0..0
... hasMember 0..0
... derivedFrom 0..0
... component 0..1BackboneElementComponent results

doco Documentation for this format

Terminology Bindings (Differential)

PathConformanceValueSetURI
Observation.statusrequiredBREstadoObservacao
http://www.saude.gov.br/fhir/r4/ValueSet/BREstadoObservacao-1.0
from this IG
Observation.coderequiredBRTipoObservacao
http://www.saude.gov.br/fhir/r4/ValueSet/BRTipoObservacao-1.0
from this IG
Observation.effective[x].coderequiredBRFrequenciaUsoSubstancia
http://www.saude.gov.br/fhir/r4/ValueSet/BRFrequenciaUsoSubstancia
from this IG
Observation.bodySiterequiredBRLocalAfericao (a valid code from Local de Aferição)
http://www.saude.gov.br/fhir/r4/ValueSet/BRLocalAfericao-1.0
from this IG
Observation.methodrequiredBRPosicaoIndividuo
http://www.saude.gov.br/fhir/r4/ValueSet/BRPosicaoIndividuo
from this IG

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Observation C0..*ObservationMeasurements and simple assertions
obs-6: dataAbsentReason SHALL only be present if Observation.value[x] is not present
obs-7: If Observation.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... measurementOrigin 0..1CodeableConceptOrigem da Medição Corpórea
URL: http://www.saude.gov.br/fhir/r4/StructureDefinition/BROrigemMedida
Binding: Origem de Medição (required): Origem da Medição Corpórea


... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... status ?!Σ1..1codefinal | entered-in-error
Binding: Estado da Observação (required): Código do Estado da Observação.

... code Σ1..1CodeableConceptTipo de Observação
Binding: Tipo de Observação (required): Código do Tipo de Observação.

.... coding Σ0..1CodingCode defined by a terminology system
... subject Σ0..1Reference(http://www.saude.gov.br/fhir/r4/StructureDefinition/BRIndividuo-1.0)Who and/or what the observation is about
.... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
.... unidentifiedPatient S0..*(Complex)Dados do Indivíduo Não Identificado
URL: http://www.saude.gov.br/fhir/r4/StructureDefinition/BRIndividuoNaoIdentificado-1.0
..... Slices for extension 3..*ExtensionExtension
Slice: Unordered, Open by value:url
..... extension:gender S1..1ExtensionExtension
...... url 1..1uri"gender"
...... value[x] 1..1codeValue of extension
..... extension:birthYear S1..1ExtensionExtension
...... url 1..1uri"birthYear"
...... value[x] 1..1dateValue of extension
..... extension:reason S1..1ExtensionExtension
...... url 1..1uri"reason"
...... value[x] 1..1CodeableConceptValue of extension
..... url 1..1uri"http://www.saude.gov.br/fhir/r4/StructureDefinition/BRIndividuoNaoIdentificado-1.0"
... effective[x] Σ0..1TimingClinically relevant time/time-period for observation
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... code Σ0..1CodeableConceptBID | TID | QID | AM | PM | QD | QOD | +
Binding: Frequência de Uso da Substância (required): Frequência do uso de substância nos últimos 3 meses

... value[x] ΣC0..1Actual result
.... valueQuantityQuantity
.... valueCodeableConceptCodeableConcept
.... valueDateTimedateTime
... note 0..1AnnotationComments about the observation
... bodySite 0..1CodeableConceptObserved body part
Binding: Local de Aferição (required): Local de Aferição

... method 0..1CodeableConceptHow it was done
Binding: Posição do Indivíduo (required): Posição em relação à gravidade.

.... coding Σ0..1CodingCode defined by a terminology system
... component Σ0..1BackboneElementComponent results
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... code Σ1..1CodeableConceptType of component observation (code / type)
Binding: LOINCCodes (example): Codes identifying names of simple observations.


doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Observation.statusrequiredBREstadoObservacao
http://www.saude.gov.br/fhir/r4/ValueSet/BREstadoObservacao-1.0
from this IG
Observation.coderequiredBRTipoObservacao
http://www.saude.gov.br/fhir/r4/ValueSet/BRTipoObservacao-1.0
from this IG
Observation.effective[x].coderequiredBRFrequenciaUsoSubstancia
http://www.saude.gov.br/fhir/r4/ValueSet/BRFrequenciaUsoSubstancia
from this IG
Observation.bodySiterequiredBRLocalAfericao (a valid code from Local de Aferição)
http://www.saude.gov.br/fhir/r4/ValueSet/BRLocalAfericao-1.0
from this IG
Observation.methodrequiredBRPosicaoIndividuo
http://www.saude.gov.br/fhir/r4/ValueSet/BRPosicaoIndividuo
from this IG
Observation.component.codeexampleLOINCCodes (a valid code from LOINC)
http://hl7.org/fhir/ValueSet/observation-codes
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorObservationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorObservationIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
: contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorObservationIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5errorObservationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceObservationA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
obs-6errorObservationdataAbsentReason SHALL only be present if Observation.value[x] is not present
: dataAbsentReason.empty() or value.empty()
obs-7errorObservationIf Observation.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present
: value.empty() or component.code.where(coding.intersect(%resource.code.coding).exists()).empty()

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. Observation C0..*ObservationMeasurements and simple assertions
obs-6: dataAbsentReason SHALL only be present if Observation.value[x] is not present
obs-7: If Observation.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
... measurementOrigin 0..1CodeableConceptOrigem da Medição Corpórea
URL: http://www.saude.gov.br/fhir/r4/StructureDefinition/BROrigemMedida
Binding: Origem de Medição (required): Origem da Medição Corpórea


... usedClothes 0..1CodeableConceptRoupas Usadas na Medição
URL: http://www.saude.gov.br/fhir/r4/StructureDefinition/BRRoupasUsadasMedicao
Binding: Roupas Usadas na Medição (required): Roupas Usadas na Medição Corpórea


... modifierExtension ?!0..*ExtensionExtensions that cannot be ignored
... status ?!Σ1..1codefinal | entered-in-error
Binding: Estado da Observação (required): Código do Estado da Observação.

... code Σ1..1CodeableConceptTipo de Observação
Binding: Tipo de Observação (required): Código do Tipo de Observação.

.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... coding Σ0..1CodingCode defined by a terminology system
.... text Σ0..1stringPlain text representation of the concept
... subject Σ0..1Reference(http://www.saude.gov.br/fhir/r4/StructureDefinition/BRIndividuo-1.0)Who and/or what the observation is about
.... id 0..1stringUnique id for inter-element referencing
.... Slices for extension 0..*ExtensionExtension
Slice: Unordered, Open by value:url
.... unidentifiedPatient S0..*(Complex)Dados do Indivíduo Não Identificado
URL: http://www.saude.gov.br/fhir/r4/StructureDefinition/BRIndividuoNaoIdentificado-1.0
..... id 0..1stringUnique id for inter-element referencing
..... Slices for extension 3..*ExtensionExtension
Slice: Unordered, Open by value:url
..... extension:gender S1..1ExtensionExtension
...... id 0..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
...... url 1..1uri"gender"
...... value[x] 1..1codeValue of extension
..... extension:birthYear S1..1ExtensionExtension
...... id 0..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
...... url 1..1uri"birthYear"
...... value[x] 1..1dateValue of extension
..... extension:reason S1..1ExtensionExtension
...... id 0..1stringUnique id for inter-element referencing
...... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
...... url 1..1uri"reason"
...... value[x] 1..1CodeableConceptValue of extension
..... url 1..1uri"http://www.saude.gov.br/fhir/r4/StructureDefinition/BRIndividuoNaoIdentificado-1.0"
.... identifier Σ0..1IdentifierLogical reference, when literal reference is not known
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... type Σ0..1CodeableConceptDescription of identifier
Binding: Identifier Type Codes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose.

..... system Σ0..1uriThe namespace for the identifier value
Example General: http://www.acme.com/identifiers/patient
..... value Σ1..1stringThe value that is unique
Example General: 123456
... effective[x] Σ0..1TimingClinically relevant time/time-period for observation
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... event Σ0..*dateTimeWhen the event occurs
.... repeat ΣC0..1ElementWhen the event is to occur
tim-1: if there's a duration, there needs to be duration units
tim-2: if there's a period, there needs to be period units
tim-4: duration SHALL be a non-negative value
tim-5: period SHALL be a non-negative value
tim-6: If there's a periodMax, there must be a period
tim-7: If there's a durationMax, there must be a duration
tim-8: If there's a countMax, there must be a count
tim-9: If there's an offset, there must be a when (and not C, CM, CD, CV)
tim-10: If there's a timeOfDay, there cannot be a when, or vice versa
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... bounds[x] Σ0..1Length/Range of lengths, or (Start and/or end) limits
...... boundsDurationDuration
...... boundsRangeRange
...... boundsPeriodPeriod
..... count Σ0..1positiveIntNumber of times to repeat
..... countMax Σ0..1positiveIntMaximum number of times to repeat
..... duration Σ0..1decimalHow long when it happens
..... durationMax Σ0..1decimalHow long when it happens (Max)
..... durationUnit Σ0..1codes | min | h | d | wk | mo | a - unit of time (UCUM)
Binding: UnitsOfTime (required): A unit of time (units from UCUM).

..... frequency Σ0..1positiveIntEvent occurs frequency times per period
..... frequencyMax Σ0..1positiveIntEvent occurs up to frequencyMax times per period
..... period Σ0..1decimalEvent occurs frequency times per period
..... periodMax Σ0..1decimalUpper limit of period (3-4 hours)
..... periodUnit Σ0..1codes | min | h | d | wk | mo | a - unit of time (UCUM)
Binding: UnitsOfTime (required): A unit of time (units from UCUM).

..... dayOfWeek Σ0..*codemon | tue | wed | thu | fri | sat | sun
Binding: DaysOfWeek (required)
..... timeOfDay Σ0..*timeTime of day for action
..... when Σ0..*codeCode for time period of occurrence
Binding: EventTiming (required): Real world event relating to the schedule.


..... offset Σ0..1unsignedIntMinutes from event (before or after)
.... code Σ0..1CodeableConceptBID | TID | QID | AM | PM | QD | QOD | +
Binding: Frequência de Uso da Substância (required): Frequência do uso de substância nos últimos 3 meses

... value[x] ΣC0..1Actual result
.... valueQuantityQuantity
.... valueCodeableConceptCodeableConcept
.... valueDateTimedateTime
... note 0..1AnnotationComments about the observation
... bodySite 0..1CodeableConceptObserved body part
Binding: Local de Aferição (required): Local de Aferição

... method 0..1CodeableConceptHow it was done
Binding: Posição do Indivíduo (required): Posição em relação à gravidade.

.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... coding Σ0..1CodingCode defined by a terminology system
.... text Σ0..1stringPlain text representation of the concept
... component Σ0..1BackboneElementComponent results
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... code Σ1..1CodeableConceptType of component observation (code / type)
Binding: LOINCCodes (example): Codes identifying names of simple observations.

.... value[x] Σ0..1Actual component result
..... valueQuantityQuantity
..... valueCodeableConceptCodeableConcept
..... valueStringstring
..... valueBooleanboolean
..... valueIntegerinteger
..... valueRangeRange
..... valueRatioRatio
..... valueSampledDataSampledData
..... valueTimetime
..... valueDateTimedateTime
..... valuePeriodPeriod
.... dataAbsentReason C0..1CodeableConceptWhy the component result is missing
Binding: DataAbsentReason (extensible): Codes specifying why the result (Observation.value[x]) is missing.

.... interpretation 0..*CodeableConceptHigh, low, normal, etc.
Binding: ObservationInterpretationCodes (extensible): Codes identifying interpretations of observations.


.... referenceRange 0..*See referenceRange (Observation)Provides guide for interpretation of component result

doco Documentation for this format

Terminology Bindings

PathConformanceValueSetURI
Observation.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
http://hl7.org/fhir/ValueSet/languages
from the FHIR Standard
Observation.statusrequiredBREstadoObservacao
http://www.saude.gov.br/fhir/r4/ValueSet/BREstadoObservacao-1.0
from this IG
Observation.coderequiredBRTipoObservacao
http://www.saude.gov.br/fhir/r4/ValueSet/BRTipoObservacao-1.0
from this IG
Observation.subject.identifier.typeextensibleIdentifier Type Codes
http://hl7.org/fhir/ValueSet/identifier-type
from the FHIR Standard
Observation.effective[x].repeat.durationUnitrequiredUnitsOfTime
http://hl7.org/fhir/ValueSet/units-of-time|4.0.1
from the FHIR Standard
Observation.effective[x].repeat.periodUnitrequiredUnitsOfTime
http://hl7.org/fhir/ValueSet/units-of-time|4.0.1
from the FHIR Standard
Observation.effective[x].repeat.dayOfWeekrequiredDaysOfWeek
http://hl7.org/fhir/ValueSet/days-of-week|4.0.1
from the FHIR Standard
Observation.effective[x].repeat.whenrequiredEventTiming
http://hl7.org/fhir/ValueSet/event-timing|4.0.1
from the FHIR Standard
Observation.effective[x].coderequiredBRFrequenciaUsoSubstancia
http://www.saude.gov.br/fhir/r4/ValueSet/BRFrequenciaUsoSubstancia
from this IG
Observation.bodySiterequiredBRLocalAfericao (a valid code from Local de Aferição)
http://www.saude.gov.br/fhir/r4/ValueSet/BRLocalAfericao-1.0
from this IG
Observation.methodrequiredBRPosicaoIndividuo
http://www.saude.gov.br/fhir/r4/ValueSet/BRPosicaoIndividuo
from this IG
Observation.referenceRange.typepreferredObservationReferenceRangeMeaningCodes
http://hl7.org/fhir/ValueSet/referencerange-meaning
from the FHIR Standard
Observation.referenceRange.appliesToexampleObservationReferenceRangeAppliesToCodes
http://hl7.org/fhir/ValueSet/referencerange-appliesto
from the FHIR Standard
Observation.component.codeexampleLOINCCodes (a valid code from LOINC)
http://hl7.org/fhir/ValueSet/observation-codes
from the FHIR Standard
Observation.component.dataAbsentReasonextensibleDataAbsentReason
http://hl7.org/fhir/ValueSet/data-absent-reason
from the FHIR Standard
Observation.component.interpretationextensibleObservationInterpretationCodes
http://hl7.org/fhir/ValueSet/observation-interpretation
from the FHIR Standard

Constraints

IdGradePath(s)DetailsRequirements
dom-2errorObservationIf the resource is contained in another resource, it SHALL NOT contain nested Resources
: contained.contained.empty()
dom-3errorObservationIf the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource
: contained.where((('#'+id in (%resource.descendants().reference | %resource.descendants().as(canonical) | %resource.descendants().as(uri) | %resource.descendants().as(url))) or descendants().where(reference = '#').exists() or descendants().where(as(canonical) = '#').exists() or descendants().where(as(canonical) = '#').exists()).not()).trace('unmatched', id).empty()
dom-4errorObservationIf a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated
: contained.meta.versionId.empty() and contained.meta.lastUpdated.empty()
dom-5errorObservationIf a resource is contained in another resource, it SHALL NOT have a security label
: contained.meta.security.empty()
dom-6best practiceObservationA resource should have narrative for robust management
: text.`div`.exists()
ele-1error**ALL** elementsAll FHIR elements must have a @value or children
: hasValue() or (children().count() > id.count())
ext-1error**ALL** extensionsMust have either extensions or value[x], not both
: extension.exists() != value.exists()
obs-6errorObservationdataAbsentReason SHALL only be present if Observation.value[x] is not present
: dataAbsentReason.empty() or value.empty()
obs-7errorObservationIf Observation.code is the same as an Observation.component.code then the value element associated with the code SHALL NOT be present
: value.empty() or component.code.where(coding.intersect(%resource.code.coding).exists()).empty()
tim-1errorObservation.effective[x].repeatif there's a duration, there needs to be duration units
: duration.empty() or durationUnit.exists()
tim-2errorObservation.effective[x].repeatif there's a period, there needs to be period units
: period.empty() or periodUnit.exists()
tim-4errorObservation.effective[x].repeatduration SHALL be a non-negative value
: duration.exists() implies duration >= 0
tim-5errorObservation.effective[x].repeatperiod SHALL be a non-negative value
: period.exists() implies period >= 0
tim-6errorObservation.effective[x].repeatIf there's a periodMax, there must be a period
: periodMax.empty() or period.exists()
tim-7errorObservation.effective[x].repeatIf there's a durationMax, there must be a duration
: durationMax.empty() or duration.exists()
tim-8errorObservation.effective[x].repeatIf there's a countMax, there must be a count
: countMax.empty() or count.exists()
tim-9errorObservation.effective[x].repeatIf there's an offset, there must be a when (and not C, CM, CD, CV)
: offset.empty() or (when.exists() and ((when in ('C' | 'CM' | 'CD' | 'CV')).not()))
tim-10errorObservation.effective[x].repeatIf there's a timeOfDay, there cannot be a when, or vice versa
: timeOfDay.empty() or when.empty()

This structure is derived from Observation

Summary

Mandatory: 0 element (4 nested mandatory elements)
Must-Support: 4 elements
Prohibited: 21 elements

Structures

This structure refers to these other structures:

  • unable to summarise profile http://www.saude.gov.br/fhir/r4/StructureDefinition/BRIndividuo-1.0 (no profile found)

Extensions

This structure refers to these extensions:

Maturity: 1

 

Other representations of profile: CSV, Excel, Schematron