Patsientide üldandmete teenus / Master Patient Index
1.0.0 - ballot
Patsientide üldandmete teenus / Master Patient Index - Local Development build (v1.0.0). See the Directory of published versions
Official URL: https://fhir.ee/StructureDefinition/ee-mpi-related-person | Version: 1.0.0 | |||
Active as of 2023-05-30 | Computable Name: MPIRelatedPerson |
Patsient ja tema kontakt- ja seotud isikud.
Usage:
Description of Profiles, Differentials, Snapshots and how the different presentations work.
This structure is derived from EEBaseRelatedPerson
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
RelatedPerson | 0..* | EEBaseRelatedPerson | A person that is related to a patient, but who is not a direct target of care | |
active | S | 1..1 | boolean | Whether this related person's record is in active use |
relationship | 1..* | CodeableConcept | Seosetüübid - kontaktisiku roll ja isiklik seos (sugulane, tuttav, ..). | |
relationship:class | S | 0..* | CodeableConcept | Association or legal relationship between two entities. Binding: Person Relationship Class (extensible) |
relationship:person | S | 0..* | CodeableConcept | Social relation to the patient Binding: Person Relationship (extensible) |
name | S | 0..1 | HumanName | Kontaktisiku nimi. |
telecom | 0..* | ContactPoint | Kontaktisiku kontaktandmed. | |
address | S | 0..* | EEBaseAddress | Kontaktisiku aadress. |
period | S | 1..1 | Period | Period of time that this relationship is considered valid |
communication | S | 0..* | BackboneElement | A language which may be used to communicate with the related person about the patient's health |
Documentation for this format |
Path | Conformance | ValueSet |
RelatedPerson.relationship:class | extensible | EEMPIPersonRelationshipClass |
RelatedPerson.relationship:person | extensible | EEMPIPersonRelationship |
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
RelatedPerson | 0..* | EEBaseRelatedPerson | A person that is related to a patient, but who is not a direct target of care | |
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created |
contained | 0..* | Resource | Contained, inline Resources | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored |
identifier | SΣ | 0..* | Identifier | Kontaktisiku identifikaatorid. |
use | ?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known . |
system | SΣ | 1..1 | uri | The namespace for the identifier value Binding: Person Identity System (extensible) Example General: http://www.acme.com/identifiers/patient |
value | SΣC | 1..1 | string | The value that is unique Example General: 123456 |
active | ?!SΣ | 1..1 | boolean | Whether this related person's record is in active use |
patient | SΣ | 1..1 | Reference(EEBase Patient) | The patient this person is related to |
Slices for relationship | SΣ | 1..* | CodeableConcept | Seosetüübid - kontaktisiku roll ja isiklik seos (sugulane, tuttav, ..). Slice: Unordered, Open by value:coding.system Binding: PatientRelationshipType (preferred): The nature of the relationship between a patient and the related person. |
relationship:class | SΣ | 0..* | CodeableConcept | Association or legal relationship between two entities. Binding: Person Relationship Class (extensible) |
relationship:person | SΣ | 0..* | CodeableConcept | Social relation to the patient Binding: Person Relationship (extensible) |
name | SΣ | 0..1 | HumanName | Kontaktisiku nimi. |
telecom | SΣ | 0..* | ContactPoint | Kontaktisiku kontaktandmed. |
address | S | 0..* | EEBaseAddress | Kontaktisiku aadress. |
period | S | 1..1 | Period | Period of time that this relationship is considered valid |
communication | S | 0..* | BackboneElement | A language which may be used to communicate with the related person about the patient's health |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
language | 1..1 | CodeableConcept | The language which can be used to communicate with the related person about the patient's health Binding: AllLanguages (required): IETF language tag for a human language | |
Documentation for this format |
Path | Conformance | ValueSet |
RelatedPerson.identifier.use | required | IdentifierUse |
RelatedPerson.identifier.system | extensible | EEBasePatientIdentity |
RelatedPerson.relationship | preferred | PatientRelationshipType |
RelatedPerson.relationship:class | extensible | EEMPIPersonRelationshipClass |
RelatedPerson.relationship:person | extensible | EEMPIPersonRelationship |
RelatedPerson.communication.language | required | AllLanguages |
Id | Grade | Path(s) | Details | Requirements |
dom-2 | error | RelatedPerson | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | RelatedPerson | 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().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty() | |
dom-4 | error | RelatedPerson | 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 | RelatedPerson | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | best practice | RelatedPerson | 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() |
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
RelatedPerson | 0..* | EEBaseRelatedPerson | A person that is related to a patient, but who is not a direct target of care | |
id | Σ | 0..1 | id | Logical id of this artifact |
meta | Σ | 0..1 | Meta | Metadata about the resource |
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created |
language | 0..1 | code | Language of the resource content Binding: AllLanguages (required): IETF language tag for a human language | |
text | 0..1 | Narrative | Text summary of the resource, for human interpretation | |
contained | 0..* | Resource | Contained, inline Resources | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored |
identifier | SΣ | 0..* | Identifier | Kontaktisiku identifikaatorid. |
id | 0..1 | id | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
use | ?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known . |
type | Σ | 0..1 | CodeableConcept | Description of identifier Binding: IdentifierTypeCodes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. |
system | SΣ | 1..1 | uri | The namespace for the identifier value Binding: Person Identity System (extensible) Example General: http://www.acme.com/identifiers/patient |
value | SΣC | 1..1 | string | The value that is unique Example General: 123456 |
period | Σ | 0..1 | Period | Time period when id is/was valid for use |
assigner | Σ | 0..1 | Reference(Organization) | Organization that issued id (may be just text) |
active | ?!SΣ | 1..1 | boolean | Whether this related person's record is in active use |
patient | SΣ | 1..1 | Reference(EEBase Patient) | The patient this person is related to |
Slices for relationship | SΣ | 1..* | CodeableConcept | Seosetüübid - kontaktisiku roll ja isiklik seos (sugulane, tuttav, ..). Slice: Unordered, Open by value:coding.system Binding: PatientRelationshipType (preferred): The nature of the relationship between a patient and the related person. |
relationship:class | SΣ | 0..* | CodeableConcept | Association or legal relationship between two entities. Binding: Person Relationship Class (extensible) |
id | 0..1 | id | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
coding | Σ | 0..* | Coding | Code defined by a terminology system |
id | 0..1 | id | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
system | Σ | 1..1 | uri | Identity of the terminology system Binding: RoleClass (extensible) Fixed Value: http://terminology.hl7.org/CodeSystem/v3-RoleClass |
version | Σ | 0..1 | string | Version of the system - if relevant |
code | ΣC | 0..1 | code | Symbol in syntax defined by the system |
display | ΣC | 0..1 | string | Representation defined by the system |
userSelected | Σ | 0..1 | boolean | If this coding was chosen directly by the user |
text | Σ | 0..1 | string | Plain text representation of the concept |
relationship:person | SΣ | 0..* | CodeableConcept | Social relation to the patient Binding: Person Relationship (extensible) |
id | 0..1 | id | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
coding | Σ | 0..* | Coding | Code defined by a terminology system |
id | 0..1 | id | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
system | Σ | 1..1 | uri | Identity of the terminology system Binding: Person Relationship (extensible) Fixed Value: http://snomed.info/sct |
version | Σ | 0..1 | string | Version of the system - if relevant |
code | ΣC | 0..1 | code | Symbol in syntax defined by the system |
display | ΣC | 0..1 | string | Representation defined by the system |
userSelected | Σ | 0..1 | boolean | If this coding was chosen directly by the user |
text | Σ | 0..1 | string | Plain text representation of the concept |
name | SΣ | 0..1 | HumanName | Kontaktisiku nimi. |
telecom | SΣ | 0..* | ContactPoint | Kontaktisiku kontaktandmed. |
gender | Σ | 0..1 | code | male | female | other | unknown Binding: AdministrativeGender (required): The gender of a person used for administrative purposes. |
birthDate | Σ | 0..1 | date | The date on which the related person was born |
address | S | 0..* | EEBaseAddress | Kontaktisiku aadress. |
photo | 0..* | Attachment | Image of the person | |
period | S | 1..1 | Period | Period of time that this relationship is considered valid |
communication | S | 0..* | BackboneElement | A language which may be used to communicate with the related person about the patient's health |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
language | 1..1 | CodeableConcept | The language which can be used to communicate with the related person about the patient's health Binding: AllLanguages (required): IETF language tag for a human language | |
preferred | 0..1 | boolean | Language preference indicator | |
Documentation for this format |
Path | Conformance | ValueSet / Code |
RelatedPerson.language | required | AllLanguages |
RelatedPerson.identifier.use | required | IdentifierUse |
RelatedPerson.identifier.type | extensible | IdentifierTypeCodes |
RelatedPerson.identifier.system | extensible | EEBasePatientIdentity |
RelatedPerson.relationship | preferred | PatientRelationshipType |
RelatedPerson.relationship:class | extensible | EEMPIPersonRelationshipClass |
RelatedPerson.relationship:class.coding.system | extensible | Fixed Value: http://terminology.hl7.org/CodeSystem/v3-RoleClass |
RelatedPerson.relationship:person | extensible | EEMPIPersonRelationship |
RelatedPerson.relationship:person.coding.system | extensible | Fixed Value: http://snomed.info/sct |
RelatedPerson.gender | required | AdministrativeGender |
RelatedPerson.communication.language | required | AllLanguages |
Id | Grade | Path(s) | Details | Requirements |
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 EEBaseRelatedPerson
Differential View
This structure is derived from EEBaseRelatedPerson
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
RelatedPerson | 0..* | EEBaseRelatedPerson | A person that is related to a patient, but who is not a direct target of care | |
active | S | 1..1 | boolean | Whether this related person's record is in active use |
relationship | 1..* | CodeableConcept | Seosetüübid - kontaktisiku roll ja isiklik seos (sugulane, tuttav, ..). | |
relationship:class | S | 0..* | CodeableConcept | Association or legal relationship between two entities. Binding: Person Relationship Class (extensible) |
relationship:person | S | 0..* | CodeableConcept | Social relation to the patient Binding: Person Relationship (extensible) |
name | S | 0..1 | HumanName | Kontaktisiku nimi. |
telecom | 0..* | ContactPoint | Kontaktisiku kontaktandmed. | |
address | S | 0..* | EEBaseAddress | Kontaktisiku aadress. |
period | S | 1..1 | Period | Period of time that this relationship is considered valid |
communication | S | 0..* | BackboneElement | A language which may be used to communicate with the related person about the patient's health |
Documentation for this format |
Path | Conformance | ValueSet |
RelatedPerson.relationship:class | extensible | EEMPIPersonRelationshipClass |
RelatedPerson.relationship:person | extensible | EEMPIPersonRelationship |
Key Elements View
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
RelatedPerson | 0..* | EEBaseRelatedPerson | A person that is related to a patient, but who is not a direct target of care | |
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created |
contained | 0..* | Resource | Contained, inline Resources | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored |
identifier | SΣ | 0..* | Identifier | Kontaktisiku identifikaatorid. |
use | ?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known . |
system | SΣ | 1..1 | uri | The namespace for the identifier value Binding: Person Identity System (extensible) Example General: http://www.acme.com/identifiers/patient |
value | SΣC | 1..1 | string | The value that is unique Example General: 123456 |
active | ?!SΣ | 1..1 | boolean | Whether this related person's record is in active use |
patient | SΣ | 1..1 | Reference(EEBase Patient) | The patient this person is related to |
Slices for relationship | SΣ | 1..* | CodeableConcept | Seosetüübid - kontaktisiku roll ja isiklik seos (sugulane, tuttav, ..). Slice: Unordered, Open by value:coding.system Binding: PatientRelationshipType (preferred): The nature of the relationship between a patient and the related person. |
relationship:class | SΣ | 0..* | CodeableConcept | Association or legal relationship between two entities. Binding: Person Relationship Class (extensible) |
relationship:person | SΣ | 0..* | CodeableConcept | Social relation to the patient Binding: Person Relationship (extensible) |
name | SΣ | 0..1 | HumanName | Kontaktisiku nimi. |
telecom | SΣ | 0..* | ContactPoint | Kontaktisiku kontaktandmed. |
address | S | 0..* | EEBaseAddress | Kontaktisiku aadress. |
period | S | 1..1 | Period | Period of time that this relationship is considered valid |
communication | S | 0..* | BackboneElement | A language which may be used to communicate with the related person about the patient's health |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
language | 1..1 | CodeableConcept | The language which can be used to communicate with the related person about the patient's health Binding: AllLanguages (required): IETF language tag for a human language | |
Documentation for this format |
Path | Conformance | ValueSet |
RelatedPerson.identifier.use | required | IdentifierUse |
RelatedPerson.identifier.system | extensible | EEBasePatientIdentity |
RelatedPerson.relationship | preferred | PatientRelationshipType |
RelatedPerson.relationship:class | extensible | EEMPIPersonRelationshipClass |
RelatedPerson.relationship:person | extensible | EEMPIPersonRelationship |
RelatedPerson.communication.language | required | AllLanguages |
Id | Grade | Path(s) | Details | Requirements |
dom-2 | error | RelatedPerson | If the resource is contained in another resource, it SHALL NOT contain nested Resources : contained.contained.empty() | |
dom-3 | error | RelatedPerson | 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().ofType(canonical) | %resource.descendants().ofType(uri) | %resource.descendants().ofType(url))) or descendants().where(reference = '#').exists() or descendants().where(ofType(canonical) = '#').exists() or descendants().where(ofType(canonical) = '#').exists()).not()).trace('unmatched', id).empty() | |
dom-4 | error | RelatedPerson | 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 | RelatedPerson | If a resource is contained in another resource, it SHALL NOT have a security label : contained.meta.security.empty() | |
dom-6 | best practice | RelatedPerson | 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() |
Snapshot View
Name | Flags | Card. | Type | Description & Constraints |
---|---|---|---|---|
RelatedPerson | 0..* | EEBaseRelatedPerson | A person that is related to a patient, but who is not a direct target of care | |
id | Σ | 0..1 | id | Logical id of this artifact |
meta | Σ | 0..1 | Meta | Metadata about the resource |
implicitRules | ?!Σ | 0..1 | uri | A set of rules under which this content was created |
language | 0..1 | code | Language of the resource content Binding: AllLanguages (required): IETF language tag for a human language | |
text | 0..1 | Narrative | Text summary of the resource, for human interpretation | |
contained | 0..* | Resource | Contained, inline Resources | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored |
identifier | SΣ | 0..* | Identifier | Kontaktisiku identifikaatorid. |
id | 0..1 | id | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
use | ?!Σ | 0..1 | code | usual | official | temp | secondary | old (If known) Binding: IdentifierUse (required): Identifies the purpose for this identifier, if known . |
type | Σ | 0..1 | CodeableConcept | Description of identifier Binding: IdentifierTypeCodes (extensible): A coded type for an identifier that can be used to determine which identifier to use for a specific purpose. |
system | SΣ | 1..1 | uri | The namespace for the identifier value Binding: Person Identity System (extensible) Example General: http://www.acme.com/identifiers/patient |
value | SΣC | 1..1 | string | The value that is unique Example General: 123456 |
period | Σ | 0..1 | Period | Time period when id is/was valid for use |
assigner | Σ | 0..1 | Reference(Organization) | Organization that issued id (may be just text) |
active | ?!SΣ | 1..1 | boolean | Whether this related person's record is in active use |
patient | SΣ | 1..1 | Reference(EEBase Patient) | The patient this person is related to |
Slices for relationship | SΣ | 1..* | CodeableConcept | Seosetüübid - kontaktisiku roll ja isiklik seos (sugulane, tuttav, ..). Slice: Unordered, Open by value:coding.system Binding: PatientRelationshipType (preferred): The nature of the relationship between a patient and the related person. |
relationship:class | SΣ | 0..* | CodeableConcept | Association or legal relationship between two entities. Binding: Person Relationship Class (extensible) |
id | 0..1 | id | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
coding | Σ | 0..* | Coding | Code defined by a terminology system |
id | 0..1 | id | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
system | Σ | 1..1 | uri | Identity of the terminology system Binding: RoleClass (extensible) Fixed Value: http://terminology.hl7.org/CodeSystem/v3-RoleClass |
version | Σ | 0..1 | string | Version of the system - if relevant |
code | ΣC | 0..1 | code | Symbol in syntax defined by the system |
display | ΣC | 0..1 | string | Representation defined by the system |
userSelected | Σ | 0..1 | boolean | If this coding was chosen directly by the user |
text | Σ | 0..1 | string | Plain text representation of the concept |
relationship:person | SΣ | 0..* | CodeableConcept | Social relation to the patient Binding: Person Relationship (extensible) |
id | 0..1 | id | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
coding | Σ | 0..* | Coding | Code defined by a terminology system |
id | 0..1 | id | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations Slice: Unordered, Open by value:url | |
system | Σ | 1..1 | uri | Identity of the terminology system Binding: Person Relationship (extensible) Fixed Value: http://snomed.info/sct |
version | Σ | 0..1 | string | Version of the system - if relevant |
code | ΣC | 0..1 | code | Symbol in syntax defined by the system |
display | ΣC | 0..1 | string | Representation defined by the system |
userSelected | Σ | 0..1 | boolean | If this coding was chosen directly by the user |
text | Σ | 0..1 | string | Plain text representation of the concept |
name | SΣ | 0..1 | HumanName | Kontaktisiku nimi. |
telecom | SΣ | 0..* | ContactPoint | Kontaktisiku kontaktandmed. |
gender | Σ | 0..1 | code | male | female | other | unknown Binding: AdministrativeGender (required): The gender of a person used for administrative purposes. |
birthDate | Σ | 0..1 | date | The date on which the related person was born |
address | S | 0..* | EEBaseAddress | Kontaktisiku aadress. |
photo | 0..* | Attachment | Image of the person | |
period | S | 1..1 | Period | Period of time that this relationship is considered valid |
communication | S | 0..* | BackboneElement | A language which may be used to communicate with the related person about the patient's health |
id | 0..1 | string | Unique id for inter-element referencing | |
extension | 0..* | Extension | Additional content defined by implementations | |
modifierExtension | ?!Σ | 0..* | Extension | Extensions that cannot be ignored even if unrecognized |
language | 1..1 | CodeableConcept | The language which can be used to communicate with the related person about the patient's health Binding: AllLanguages (required): IETF language tag for a human language | |
preferred | 0..1 | boolean | Language preference indicator | |
Documentation for this format |
Path | Conformance | ValueSet / Code |
RelatedPerson.language | required | AllLanguages |
RelatedPerson.identifier.use | required | IdentifierUse |
RelatedPerson.identifier.type | extensible | IdentifierTypeCodes |
RelatedPerson.identifier.system | extensible | EEBasePatientIdentity |
RelatedPerson.relationship | preferred | PatientRelationshipType |
RelatedPerson.relationship:class | extensible | EEMPIPersonRelationshipClass |
RelatedPerson.relationship:class.coding.system | extensible | Fixed Value: http://terminology.hl7.org/CodeSystem/v3-RoleClass |
RelatedPerson.relationship:person | extensible | EEMPIPersonRelationship |
RelatedPerson.relationship:person.coding.system | extensible | Fixed Value: http://snomed.info/sct |
RelatedPerson.gender | required | AdministrativeGender |
RelatedPerson.communication.language | required | AllLanguages |
Id | Grade | Path(s) | Details | Requirements |
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 EEBaseRelatedPerson
Other representations of profile: CSV, Excel, Schematron