EHI Export Implementation Guide
0.1.0 - ci-build
EHI Export Implementation Guide - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
Official URL: https://ehi-export.pointclickcare.com//StructureDefinition/goal | Version: 0.1.0 | |||
Draft as of 2025-01-29 | Computable Name: EHIGoal |
Describes the intended objective(s) for a patient, group or organization care, for example, weight loss, restoring an activity of daily living, obtaining herd immunity via immunization, meeting a process improvement objective, etc.
Usage:
Description of Profiles, Differentials, Snapshots and how the different presentations work.
Name | Flags | Card. | Type | Description & Constraints![]() |
---|---|---|---|---|
![]() ![]() |
0..* | Goal | Describes the intended objective(s) for a patient, group or organization dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources dom-3: If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated dom-5: If a resource is contained in another resource, it SHALL NOT have a security label dom-6: A resource should have narrative for robust management | |
![]() ![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created ele-1: All FHIR elements must have a @value or children |
![]() ![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored ele-1: All FHIR elements must have a @value or children ext-1: Must have either extensions or value[x], not both |
![]() ![]() ![]() |
?!Σ | 1..1 | code | proposed | planned | accepted | active | on-hold | completed | cancelled | entered-in-error | rejected Binding: GoalLifecycleStatus (required): Codes that reflect the current state of a goal and whether the goal is still being targeted. ele-1: All FHIR elements must have a @value or children |
![]() ![]() ![]() |
Σ | 1..1 | CodeableConcept | Code or text describing goal Binding: SNOMEDCTClinicalFindings (example): Codes providing the details of a particular goal. This will generally be system or implementation guide-specific. In many systems, only the text element will be used. ele-1: All FHIR elements must have a @value or children |
![]() ![]() ![]() |
Σ | 1..1 | Reference(Patient | Group | Organization) | Who this goal is intended for ele-1: All FHIR elements must have a @value or children |
![]() |
Path | Conformance | ValueSet | URI |
Goal.lifecycleStatus | required | GoalLifecycleStatushttp://hl7.org/fhir/ValueSet/goal-status|4.0.1 from the FHIR Standard | |
Goal.description | example | SNOMEDCTClinicalFindingshttp://hl7.org/fhir/ValueSet/clinical-findings from the FHIR Standard |
Id | Grade | Path(s) | Details | Requirements |
dom-2 | error | Goal | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | Goal | If 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-4 | error | Goal | If 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-5 | error | Goal | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | best practice | Goal | A resource should have narrative for robust management : text.`div`.exists() | |
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both : extension.exists() != value.exists() |
This structure is derived from Goal
Name | Flags | Card. | Type | Description & Constraints![]() |
---|---|---|---|---|
![]() ![]() |
0..* | Goal | Describes the intended objective(s) for a patient, group or organization | |
![]() |
Name | Flags | Card. | Type | Description & Constraints![]() | ||||
---|---|---|---|---|---|---|---|---|
![]() ![]() |
0..* | Goal | Describes the intended objective(s) for a patient, group or organization | |||||
![]() ![]() ![]() |
Σ | 0..1 | id | Logical id of this artifact | ||||
![]() ![]() ![]() |
Σ | 0..1 | Meta | Metadata about the resource | ||||
![]() ![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
![]() ![]() ![]() |
0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||
![]() ![]() ![]() |
0..1 | Narrative | Text summary of the resource, for human interpretation | |||||
![]() ![]() ![]() |
0..* | Resource | Contained, inline Resources | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored | ||||
![]() ![]() ![]() |
0..* | Identifier | External Ids for this goal | |||||
![]() ![]() ![]() |
?!Σ | 1..1 | code | proposed | planned | accepted | active | on-hold | completed | cancelled | entered-in-error | rejected Binding: GoalLifecycleStatus (required): Codes that reflect the current state of a goal and whether the goal is still being targeted. | ||||
![]() ![]() ![]() |
Σ | 0..1 | CodeableConcept | in-progress | improving | worsening | no-change | achieved | sustaining | not-achieved | no-progress | not-attainable Binding: GoalAchievementStatus (preferred): Indicates the progression, or lack thereof, towards the goal against the target. | ||||
![]() ![]() ![]() |
Σ | 0..* | CodeableConcept | E.g. Treatment, dietary, behavioral, etc. Binding: GoalCategory (example): Codes for grouping and sorting goals. | ||||
![]() ![]() ![]() |
Σ | 0..1 | CodeableConcept | high-priority | medium-priority | low-priority Binding: GoalPriority (preferred): The level of importance associated with a goal. | ||||
![]() ![]() ![]() |
Σ | 1..1 | CodeableConcept | Code or text describing goal Binding: SNOMEDCTClinicalFindings (example): Codes providing the details of a particular goal. This will generally be system or implementation guide-specific. In many systems, only the text element will be used. | ||||
![]() ![]() ![]() |
Σ | 1..1 | Reference(Patient | Group | Organization) | Who this goal is intended for | ||||
![]() ![]() ![]() |
Σ | 0..1 | When goal pursuit begins Binding: GoalStartEvent (example): Codes describing events that can trigger the initiation of a goal. | |||||
![]() ![]() ![]() ![]() |
date | |||||||
![]() ![]() ![]() ![]() |
CodeableConcept | |||||||
![]() ![]() ![]() |
C | 0..* | BackboneElement | Target outcome for the goal gol-1: Goal.target.measure is required if Goal.target.detail is populated | ||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() |
ΣC | 0..1 | CodeableConcept | The parameter whose value is being tracked Binding: LOINCCodes (example): Codes to identify the value being tracked, e.g. body weight, blood pressure, or hemoglobin A1c level. | ||||
![]() ![]() ![]() ![]() |
ΣC | 0..1 | The target value to be achieved Binding Description (No ValueSet): (example): Codes to identify the target value of the focus to be achieved to signify the fulfillment of the goal. | |||||
![]() ![]() ![]() ![]() ![]() |
Quantity | |||||||
![]() ![]() ![]() ![]() ![]() |
Range | |||||||
![]() ![]() ![]() ![]() ![]() |
CodeableConcept | |||||||
![]() ![]() ![]() ![]() ![]() |
string | |||||||
![]() ![]() ![]() ![]() ![]() |
boolean | |||||||
![]() ![]() ![]() ![]() ![]() |
integer | |||||||
![]() ![]() ![]() ![]() ![]() |
Ratio | |||||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | Reach goal on or before | |||||
![]() ![]() ![]() ![]() ![]() |
date | |||||||
![]() ![]() ![]() ![]() ![]() |
Duration | |||||||
![]() ![]() ![]() |
Σ | 0..1 | date | When goal status took effect | ||||
![]() ![]() ![]() |
0..1 | string | Reason for current status | |||||
![]() ![]() ![]() |
Σ | 0..1 | Reference(Patient | Practitioner | PractitionerRole | RelatedPerson) | Who's responsible for creating Goal? | ||||
![]() ![]() ![]() |
0..* | Reference(Condition | Observation | MedicationStatement | NutritionOrder | ServiceRequest | RiskAssessment) | Issues addressed by this goal | |||||
![]() ![]() ![]() |
0..* | Annotation | Comments about the goal | |||||
![]() ![]() ![]() |
0..* | CodeableConcept | What result was achieved regarding the goal? Binding: SNOMEDCTClinicalFindings (example): The result of the goal; e.g. "25% increase in shoulder mobility", "Anxiety reduced to moderate levels". "15 kg weight loss sustained over 6 months". | |||||
![]() ![]() ![]() |
0..* | Reference(Observation) | Observation that resulted from goal | |||||
![]() |
Path | Conformance | ValueSet | URI | |||
Goal.language | preferred | CommonLanguageshttp://hl7.org/fhir/ValueSet/languages from the FHIR Standard
| ||||
Goal.lifecycleStatus | required | GoalLifecycleStatushttp://hl7.org/fhir/ValueSet/goal-status|4.0.1 from the FHIR Standard | ||||
Goal.achievementStatus | preferred | GoalAchievementStatushttp://hl7.org/fhir/ValueSet/goal-achievement from the FHIR Standard | ||||
Goal.category | example | GoalCategoryhttp://hl7.org/fhir/ValueSet/goal-category from the FHIR Standard | ||||
Goal.priority | preferred | GoalPriorityhttp://hl7.org/fhir/ValueSet/goal-priority from the FHIR Standard | ||||
Goal.description | example | SNOMEDCTClinicalFindingshttp://hl7.org/fhir/ValueSet/clinical-findings from the FHIR Standard | ||||
Goal.start[x] | example | GoalStartEventhttp://hl7.org/fhir/ValueSet/goal-start-event from the FHIR Standard | ||||
Goal.target.measure | example | LOINCCodes (a valid code from LOINC)http://hl7.org/fhir/ValueSet/observation-codes from the FHIR Standard | ||||
Goal.target.detail[x] | example | |||||
Goal.outcomeCode | example | SNOMEDCTClinicalFindingshttp://hl7.org/fhir/ValueSet/clinical-findings from the FHIR Standard |
Id | Grade | Path(s) | Details | Requirements |
dom-2 | error | Goal | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | Goal | If 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-4 | error | Goal | If 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-5 | error | Goal | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | best practice | Goal | A resource should have narrative for robust management : text.`div`.exists() | |
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
gol-1 | error | Goal.target | Goal.target.measure is required if Goal.target.detail is populated : (detail.exists() and measure.exists()) or detail.exists().not() |
This structure is derived from Goal
Key Elements View
Name | Flags | Card. | Type | Description & Constraints![]() |
---|---|---|---|---|
![]() ![]() |
0..* | Goal | Describes the intended objective(s) for a patient, group or organization dom-2: If the resource is contained in another resource, it SHALL NOT contain nested Resources dom-3: If the resource is contained in another resource, it SHALL be referred to from elsewhere in the resource or SHALL refer to the containing resource dom-4: If a resource is contained in another resource, it SHALL NOT have a meta.versionId or a meta.lastUpdated dom-5: If a resource is contained in another resource, it SHALL NOT have a security label dom-6: A resource should have narrative for robust management | |
![]() ![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created ele-1: All FHIR elements must have a @value or children |
![]() ![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored ele-1: All FHIR elements must have a @value or children ext-1: Must have either extensions or value[x], not both |
![]() ![]() ![]() |
?!Σ | 1..1 | code | proposed | planned | accepted | active | on-hold | completed | cancelled | entered-in-error | rejected Binding: GoalLifecycleStatus (required): Codes that reflect the current state of a goal and whether the goal is still being targeted. ele-1: All FHIR elements must have a @value or children |
![]() ![]() ![]() |
Σ | 1..1 | CodeableConcept | Code or text describing goal Binding: SNOMEDCTClinicalFindings (example): Codes providing the details of a particular goal. This will generally be system or implementation guide-specific. In many systems, only the text element will be used. ele-1: All FHIR elements must have a @value or children |
![]() ![]() ![]() |
Σ | 1..1 | Reference(Patient | Group | Organization) | Who this goal is intended for ele-1: All FHIR elements must have a @value or children |
![]() |
Path | Conformance | ValueSet | URI |
Goal.lifecycleStatus | required | GoalLifecycleStatushttp://hl7.org/fhir/ValueSet/goal-status|4.0.1 from the FHIR Standard | |
Goal.description | example | SNOMEDCTClinicalFindingshttp://hl7.org/fhir/ValueSet/clinical-findings from the FHIR Standard |
Id | Grade | Path(s) | Details | Requirements |
dom-2 | error | Goal | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | Goal | If 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-4 | error | Goal | If 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-5 | error | Goal | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | best practice | Goal | A resource should have narrative for robust management : text.`div`.exists() | |
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both : extension.exists() != value.exists() |
Differential View
This structure is derived from Goal
Name | Flags | Card. | Type | Description & Constraints![]() |
---|---|---|---|---|
![]() ![]() |
0..* | Goal | Describes the intended objective(s) for a patient, group or organization | |
![]() |
Snapshot View
Name | Flags | Card. | Type | Description & Constraints![]() | ||||
---|---|---|---|---|---|---|---|---|
![]() ![]() |
0..* | Goal | Describes the intended objective(s) for a patient, group or organization | |||||
![]() ![]() ![]() |
Σ | 0..1 | id | Logical id of this artifact | ||||
![]() ![]() ![]() |
Σ | 0..1 | Meta | Metadata about the resource | ||||
![]() ![]() ![]() |
?!Σ | 0..1 | uri | A set of rules under which this content was created | ||||
![]() ![]() ![]() |
0..1 | code | Language of the resource content Binding: CommonLanguages (preferred): A human language.
| |||||
![]() ![]() ![]() |
0..1 | Narrative | Text summary of the resource, for human interpretation | |||||
![]() ![]() ![]() |
0..* | Resource | Contained, inline Resources | |||||
![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() |
?! | 0..* | Extension | Extensions that cannot be ignored | ||||
![]() ![]() ![]() |
0..* | Identifier | External Ids for this goal | |||||
![]() ![]() ![]() |
?!Σ | 1..1 | code | proposed | planned | accepted | active | on-hold | completed | cancelled | entered-in-error | rejected Binding: GoalLifecycleStatus (required): Codes that reflect the current state of a goal and whether the goal is still being targeted. | ||||
![]() ![]() ![]() |
Σ | 0..1 | CodeableConcept | in-progress | improving | worsening | no-change | achieved | sustaining | not-achieved | no-progress | not-attainable Binding: GoalAchievementStatus (preferred): Indicates the progression, or lack thereof, towards the goal against the target. | ||||
![]() ![]() ![]() |
Σ | 0..* | CodeableConcept | E.g. Treatment, dietary, behavioral, etc. Binding: GoalCategory (example): Codes for grouping and sorting goals. | ||||
![]() ![]() ![]() |
Σ | 0..1 | CodeableConcept | high-priority | medium-priority | low-priority Binding: GoalPriority (preferred): The level of importance associated with a goal. | ||||
![]() ![]() ![]() |
Σ | 1..1 | CodeableConcept | Code or text describing goal Binding: SNOMEDCTClinicalFindings (example): Codes providing the details of a particular goal. This will generally be system or implementation guide-specific. In many systems, only the text element will be used. | ||||
![]() ![]() ![]() |
Σ | 1..1 | Reference(Patient | Group | Organization) | Who this goal is intended for | ||||
![]() ![]() ![]() |
Σ | 0..1 | When goal pursuit begins Binding: GoalStartEvent (example): Codes describing events that can trigger the initiation of a goal. | |||||
![]() ![]() ![]() ![]() |
date | |||||||
![]() ![]() ![]() ![]() |
CodeableConcept | |||||||
![]() ![]() ![]() |
C | 0..* | BackboneElement | Target outcome for the goal gol-1: Goal.target.measure is required if Goal.target.detail is populated | ||||
![]() ![]() ![]() ![]() |
0..1 | string | Unique id for inter-element referencing | |||||
![]() ![]() ![]() ![]() |
0..* | Extension | Additional content defined by implementations | |||||
![]() ![]() ![]() ![]() |
?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized | ||||
![]() ![]() ![]() ![]() |
ΣC | 0..1 | CodeableConcept | The parameter whose value is being tracked Binding: LOINCCodes (example): Codes to identify the value being tracked, e.g. body weight, blood pressure, or hemoglobin A1c level. | ||||
![]() ![]() ![]() ![]() |
ΣC | 0..1 | The target value to be achieved Binding Description (No ValueSet): (example): Codes to identify the target value of the focus to be achieved to signify the fulfillment of the goal. | |||||
![]() ![]() ![]() ![]() ![]() |
Quantity | |||||||
![]() ![]() ![]() ![]() ![]() |
Range | |||||||
![]() ![]() ![]() ![]() ![]() |
CodeableConcept | |||||||
![]() ![]() ![]() ![]() ![]() |
string | |||||||
![]() ![]() ![]() ![]() ![]() |
boolean | |||||||
![]() ![]() ![]() ![]() ![]() |
integer | |||||||
![]() ![]() ![]() ![]() ![]() |
Ratio | |||||||
![]() ![]() ![]() ![]() |
Σ | 0..1 | Reach goal on or before | |||||
![]() ![]() ![]() ![]() ![]() |
date | |||||||
![]() ![]() ![]() ![]() ![]() |
Duration | |||||||
![]() ![]() ![]() |
Σ | 0..1 | date | When goal status took effect | ||||
![]() ![]() ![]() |
0..1 | string | Reason for current status | |||||
![]() ![]() ![]() |
Σ | 0..1 | Reference(Patient | Practitioner | PractitionerRole | RelatedPerson) | Who's responsible for creating Goal? | ||||
![]() ![]() ![]() |
0..* | Reference(Condition | Observation | MedicationStatement | NutritionOrder | ServiceRequest | RiskAssessment) | Issues addressed by this goal | |||||
![]() ![]() ![]() |
0..* | Annotation | Comments about the goal | |||||
![]() ![]() ![]() |
0..* | CodeableConcept | What result was achieved regarding the goal? Binding: SNOMEDCTClinicalFindings (example): The result of the goal; e.g. "25% increase in shoulder mobility", "Anxiety reduced to moderate levels". "15 kg weight loss sustained over 6 months". | |||||
![]() ![]() ![]() |
0..* | Reference(Observation) | Observation that resulted from goal | |||||
![]() |
Path | Conformance | ValueSet | URI | |||
Goal.language | preferred | CommonLanguageshttp://hl7.org/fhir/ValueSet/languages from the FHIR Standard
| ||||
Goal.lifecycleStatus | required | GoalLifecycleStatushttp://hl7.org/fhir/ValueSet/goal-status|4.0.1 from the FHIR Standard | ||||
Goal.achievementStatus | preferred | GoalAchievementStatushttp://hl7.org/fhir/ValueSet/goal-achievement from the FHIR Standard | ||||
Goal.category | example | GoalCategoryhttp://hl7.org/fhir/ValueSet/goal-category from the FHIR Standard | ||||
Goal.priority | preferred | GoalPriorityhttp://hl7.org/fhir/ValueSet/goal-priority from the FHIR Standard | ||||
Goal.description | example | SNOMEDCTClinicalFindingshttp://hl7.org/fhir/ValueSet/clinical-findings from the FHIR Standard | ||||
Goal.start[x] | example | GoalStartEventhttp://hl7.org/fhir/ValueSet/goal-start-event from the FHIR Standard | ||||
Goal.target.measure | example | LOINCCodes (a valid code from LOINC)http://hl7.org/fhir/ValueSet/observation-codes from the FHIR Standard | ||||
Goal.target.detail[x] | example | |||||
Goal.outcomeCode | example | SNOMEDCTClinicalFindingshttp://hl7.org/fhir/ValueSet/clinical-findings from the FHIR Standard |
Id | Grade | Path(s) | Details | Requirements |
dom-2 | error | Goal | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | Goal | If 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-4 | error | Goal | If 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-5 | error | Goal | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | best practice | Goal | A resource should have narrative for robust management : text.`div`.exists() | |
ele-1 | error | **ALL** elements | All FHIR elements must have a @value or children : hasValue() or (children().count() > id.count()) | |
ext-1 | error | **ALL** extensions | Must have either extensions or value[x], not both : extension.exists() != value.exists() | |
gol-1 | error | Goal.target | Goal.target.measure is required if Goal.target.detail is populated : (detail.exists() and measure.exists()) or detail.exists().not() |
This structure is derived from Goal
Other representations of profile: CSV, Excel, Schematron