Mobile access to Health Documents (MHD)
4.2.0 - Trial-Implementation International flag

This page is part of the IHE Mobile Access to Health Documents (v4.2.0: Publication) based on FHIR R4. This is the current published version. For a full list of available versions, see the Directory of published versions

Resource Profile: MHD DocumentReference Comprehensive

Official URL: https://profiles.ihe.net/ITI/MHD/StructureDefinition/IHE.MHD.Comprehensive.DocumentReference Version: 4.2.0
Active as of 2022-12-07 Computable Name: ComprehensiveDocumentReference

A profile on the DocumentReference resource for MHD Comprehensive Option with Contained (not UnContained), compatible with XDS-on-FHIR and XCA use.

Usage:

Formal Views of Profile Content

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

NameFlagsCard.TypeDescription & Constraintsdoco
.. DocumentReference C0..*UnContainedComprehensiveDocumentReferenceA reference to a document
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... masterIdentifier 1..1UniqueIdIdentifierAn identifier intended for computation
... Slices for identifier SΣ0..*IdentifierOther identifiers for the document
Slice: Unordered, Open by value:use
.... identifier:entryUUID 0..*EntryUUIDIdentifierAn identifier intended for computation
... status ?!Σ1..1codecurrent | superseded | entered-in-error
Binding: MHD DocumentReference status codes (required)
... type SΣ1..1CodeableConceptKind of document (LOINC if possible)
Binding: DocumentTypeValueSet (preferred): Precise type of clinical document.

... category SΣ1..1CodeableConceptCategorization of document
Binding: DocumentClassValueSet (example): High-level kind of a clinical document at a macro level.


... subject SΣ1..1Reference(Patient)Who/what is the subject of the document
... date SΣ0..1instantWhen this document reference was created
... author SΣ0..*Reference(Practitioner | PractitionerRole | Organization | Device | Patient | RelatedPerson) {c}Who and/or what authored the document
... authenticator 0..1Reference(Practitioner | PractitionerRole | Organization) {c}Who/what authenticated the document
... relatesTo SΣ0..*BackboneElementRelationships to other documents
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... code Σ1..1codereplaces | transforms | signs | appends
Binding: DocumentRelationshipType (required): The type of relationship between documents.

.... target Σ1..1Reference(DocumentReference)Target of the relationship
... securityLabel SΣ1..*CodeableConceptDocument security-tags
Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.


... content Σ1..1BackboneElementDocument referenced
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... attachment Σ1..1AttachmentWhere to access the document
..... contentType Σ1..1codeMime type of the content, with charset etc.
Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed.


Example General: text/plain; charset=UTF-8, image/png
..... language SΣ1..1codeHuman language of the content (BCP-47)
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguagesMax Binding

Example General: en-AU
..... url Σ1..1urlUri where the data can be found
Example General: http://www.acme.com/logo-small.png
..... creation SΣ1..1dateTimeDate attachment was first created
.... format SΣ1..1CodingFormat/content rules for the document
Binding: IHE ValueSet of Format Codes for use with Document Sharing (preferred)
... context Σ1..1BackboneElementClinical context of document
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... period SΣ0..1PeriodTime of service that is being documented
.... facilityType S1..1CodeableConceptKind of facility where patient was seen
Binding: FacilityTypeCodeValueSet (example): XDS Facility Type.

.... practiceSetting S1..1CodeableConceptAdditional details about where the content was created (e.g. clinical specialty)
Binding: PracticeSettingCodeValueSet (example): Additional details about where the content was created (e.g. clinical specialty).

.... sourcePatientInfo S1..1Reference(Patient) {c}Patient demographics from source

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
DocumentReference.statusrequiredDocumentReferenceStats
DocumentReference.typepreferredDocumentTypeValueSet
DocumentReference.categoryexampleDocumentClassValueSet
DocumentReference.relatesTo.coderequiredDocumentRelationshipType
DocumentReference.securityLabelextensibleAll Security Labels
DocumentReference.content.attachment.contentTyperequiredMime Types (a valid code from urn:ietf:bcp:13)
DocumentReference.content.attachment.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
DocumentReference.content.formatpreferredIHE_FormatCode_vs
DocumentReference.context.facilityTypeexampleFacilityTypeCodeValueSet
DocumentReference.context.practiceSettingexamplePracticeSettingCodeValueSet
NameFlagsCard.TypeDescription & Constraintsdoco
.. DocumentReference C0..*UnContainedComprehensiveDocumentReferenceA reference to a document
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... versionId Σ0..1idVersion specific identifier
.... lastUpdated Σ0..1instantWhen the resource version last changed
.... source Σ0..1uriIdentifies where the resource comes from
.... profile Σ0..*canonical(StructureDefinition)Profiles this resource claims to conform to
.... security Σ0..*CodingSecurity Labels applied to this resource
Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.


.... tag Σ0..*CodingTags applied to this resource
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".


... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguagesMax Binding
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional content defined by implementations
... masterIdentifier 1..1UniqueIdIdentifierAn identifier intended for computation
... Slices for identifier SΣ0..*IdentifierOther identifiers for the document
Slice: Unordered, Open by value:use
.... identifier:entryUUID 0..*EntryUUIDIdentifierAn identifier intended for computation
... status ?!Σ1..1codecurrent | superseded | entered-in-error
Binding: MHD DocumentReference status codes (required)
... type SΣ1..1CodeableConceptKind of document (LOINC if possible)
Binding: DocumentTypeValueSet (preferred): Precise type of clinical document.

... category SΣ1..1CodeableConceptCategorization of document
Binding: DocumentClassValueSet (example): High-level kind of a clinical document at a macro level.


... subject SΣ1..1Reference(Patient)Who/what is the subject of the document
... date SΣ0..1instantWhen this document reference was created
... author SΣ0..*Reference(Practitioner | PractitionerRole | Organization | Device | Patient | RelatedPerson) {c}Who and/or what authored the document
... authenticator 0..1Reference(Practitioner | PractitionerRole | Organization) {c}Who/what authenticated the document
... custodian 0..1Reference(Organization)Organization which maintains the document
... relatesTo SΣ0..*BackboneElementRelationships to other documents
.... 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..1codereplaces | transforms | signs | appends
Binding: DocumentRelationshipType (required): The type of relationship between documents.

.... target Σ1..1Reference(DocumentReference)Target of the relationship
... description Σ0..1stringHuman-readable description
... securityLabel SΣ1..*CodeableConceptDocument security-tags
Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.


... content Σ1..1BackboneElementDocument referenced
.... 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
.... attachment Σ1..1AttachmentWhere to access the document
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... contentType Σ1..1codeMime type of the content, with charset etc.
Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed.


Example General: text/plain; charset=UTF-8, image/png
..... language SΣ1..1codeHuman language of the content (BCP-47)
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguagesMax Binding

Example General: en-AU
..... url Σ1..1urlUri where the data can be found
Example General: http://www.acme.com/logo-small.png
..... size Σ0..1unsignedIntNumber of bytes of content (if url provided)
..... hash Σ0..1base64BinaryHash of the data (sha-1, base64ed)
..... title Σ0..1stringLabel to display in place of the data
Example General: Official Corporate Logo
..... creation SΣ1..1dateTimeDate attachment was first created
.... format SΣ1..1CodingFormat/content rules for the document
Binding: IHE ValueSet of Format Codes for use with Document Sharing (preferred)
... context Σ1..1BackboneElementClinical context of document
.... 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
.... encounter 0..*Reference(Encounter | EpisodeOfCare)Context of the document content
.... event 0..*CodeableConceptMain clinical acts documented
Binding: v3 Code System ActCode (example): This list of codes represents the main clinical acts being documented.


.... period SΣ0..1PeriodTime of service that is being documented
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... start ΣC0..1dateTimeStarting time with inclusive boundary
..... end ΣC0..1dateTimeEnd time with inclusive boundary, if not ongoing
.... facilityType S1..1CodeableConceptKind of facility where patient was seen
Binding: FacilityTypeCodeValueSet (example): XDS Facility Type.

.... practiceSetting S1..1CodeableConceptAdditional details about where the content was created (e.g. clinical specialty)
Binding: PracticeSettingCodeValueSet (example): Additional details about where the content was created (e.g. clinical specialty).

.... sourcePatientInfo S1..1Reference(Patient) {c}Patient demographics from source
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... reference ΣC0..1stringLiteral reference, Relative, internal or absolute URL
..... type Σ0..1uriType the reference refers to (e.g. "Patient")
Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).

..... identifier Σ0..1IdentifierLogical reference, when literal reference is not known
..... display Σ0..1stringText alternative for the resource
.... related 0..*Reference(Resource)Related identifiers or resources

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
DocumentReference.meta.securityextensibleAll Security Labels
DocumentReference.meta.tagexampleCommonTags
DocumentReference.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
DocumentReference.statusrequiredDocumentReferenceStats
DocumentReference.typepreferredDocumentTypeValueSet
DocumentReference.categoryexampleDocumentClassValueSet
DocumentReference.relatesTo.coderequiredDocumentRelationshipType
DocumentReference.securityLabelextensibleAll Security Labels
DocumentReference.content.attachment.contentTyperequiredMime Types (a valid code from urn:ietf:bcp:13)
DocumentReference.content.attachment.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
DocumentReference.content.formatpreferredIHE_FormatCode_vs
DocumentReference.context.eventexampleActCode
DocumentReference.context.facilityTypeexampleFacilityTypeCodeValueSet
DocumentReference.context.practiceSettingexamplePracticeSettingCodeValueSet
DocumentReference.context.sourcePatientInfo.typeextensibleResourceType

This structure is derived from UnContainedComprehensiveDocumentReference

Summary

Key Elements View

NameFlagsCard.TypeDescription & Constraintsdoco
.. DocumentReference C0..*UnContainedComprehensiveDocumentReferenceA reference to a document
... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... masterIdentifier 1..1UniqueIdIdentifierAn identifier intended for computation
... Slices for identifier SΣ0..*IdentifierOther identifiers for the document
Slice: Unordered, Open by value:use
.... identifier:entryUUID 0..*EntryUUIDIdentifierAn identifier intended for computation
... status ?!Σ1..1codecurrent | superseded | entered-in-error
Binding: MHD DocumentReference status codes (required)
... type SΣ1..1CodeableConceptKind of document (LOINC if possible)
Binding: DocumentTypeValueSet (preferred): Precise type of clinical document.

... category SΣ1..1CodeableConceptCategorization of document
Binding: DocumentClassValueSet (example): High-level kind of a clinical document at a macro level.


... subject SΣ1..1Reference(Patient)Who/what is the subject of the document
... date SΣ0..1instantWhen this document reference was created
... author SΣ0..*Reference(Practitioner | PractitionerRole | Organization | Device | Patient | RelatedPerson) {c}Who and/or what authored the document
... authenticator 0..1Reference(Practitioner | PractitionerRole | Organization) {c}Who/what authenticated the document
... relatesTo SΣ0..*BackboneElementRelationships to other documents
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... code Σ1..1codereplaces | transforms | signs | appends
Binding: DocumentRelationshipType (required): The type of relationship between documents.

.... target Σ1..1Reference(DocumentReference)Target of the relationship
... securityLabel SΣ1..*CodeableConceptDocument security-tags
Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.


... content Σ1..1BackboneElementDocument referenced
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... attachment Σ1..1AttachmentWhere to access the document
..... contentType Σ1..1codeMime type of the content, with charset etc.
Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed.


Example General: text/plain; charset=UTF-8, image/png
..... language SΣ1..1codeHuman language of the content (BCP-47)
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguagesMax Binding

Example General: en-AU
..... url Σ1..1urlUri where the data can be found
Example General: http://www.acme.com/logo-small.png
..... creation SΣ1..1dateTimeDate attachment was first created
.... format SΣ1..1CodingFormat/content rules for the document
Binding: IHE ValueSet of Format Codes for use with Document Sharing (preferred)
... context Σ1..1BackboneElementClinical context of document
.... modifierExtension ?!Σ0..*ExtensionExtensions that cannot be ignored even if unrecognized
.... period SΣ0..1PeriodTime of service that is being documented
.... facilityType S1..1CodeableConceptKind of facility where patient was seen
Binding: FacilityTypeCodeValueSet (example): XDS Facility Type.

.... practiceSetting S1..1CodeableConceptAdditional details about where the content was created (e.g. clinical specialty)
Binding: PracticeSettingCodeValueSet (example): Additional details about where the content was created (e.g. clinical specialty).

.... sourcePatientInfo S1..1Reference(Patient) {c}Patient demographics from source

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
DocumentReference.statusrequiredDocumentReferenceStats
DocumentReference.typepreferredDocumentTypeValueSet
DocumentReference.categoryexampleDocumentClassValueSet
DocumentReference.relatesTo.coderequiredDocumentRelationshipType
DocumentReference.securityLabelextensibleAll Security Labels
DocumentReference.content.attachment.contentTyperequiredMime Types (a valid code from urn:ietf:bcp:13)
DocumentReference.content.attachment.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
DocumentReference.content.formatpreferredIHE_FormatCode_vs
DocumentReference.context.facilityTypeexampleFacilityTypeCodeValueSet
DocumentReference.context.practiceSettingexamplePracticeSettingCodeValueSet

Snapshot View

NameFlagsCard.TypeDescription & Constraintsdoco
.. DocumentReference C0..*UnContainedComprehensiveDocumentReferenceA reference to a document
... id Σ0..1idLogical id of this artifact
... meta Σ0..1MetaMetadata about the resource
.... id 0..1stringUnique id for inter-element referencing
.... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
.... versionId Σ0..1idVersion specific identifier
.... lastUpdated Σ0..1instantWhen the resource version last changed
.... source Σ0..1uriIdentifies where the resource comes from
.... profile Σ0..*canonical(StructureDefinition)Profiles this resource claims to conform to
.... security Σ0..*CodingSecurity Labels applied to this resource
Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.


.... tag Σ0..*CodingTags applied to this resource
Binding: CommonTags (example): Codes that represent various types of tags, commonly workflow-related; e.g. "Needs review by Dr. Jones".


... implicitRules ?!Σ0..1uriA set of rules under which this content was created
... language 0..1codeLanguage of the resource content
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguagesMax Binding
... text 0..1NarrativeText summary of the resource, for human interpretation
... contained 0..*ResourceContained, inline Resources
... extension 0..*ExtensionAdditional content defined by implementations
... masterIdentifier 1..1UniqueIdIdentifierAn identifier intended for computation
... Slices for identifier SΣ0..*IdentifierOther identifiers for the document
Slice: Unordered, Open by value:use
.... identifier:entryUUID 0..*EntryUUIDIdentifierAn identifier intended for computation
... status ?!Σ1..1codecurrent | superseded | entered-in-error
Binding: MHD DocumentReference status codes (required)
... type SΣ1..1CodeableConceptKind of document (LOINC if possible)
Binding: DocumentTypeValueSet (preferred): Precise type of clinical document.

... category SΣ1..1CodeableConceptCategorization of document
Binding: DocumentClassValueSet (example): High-level kind of a clinical document at a macro level.


... subject SΣ1..1Reference(Patient)Who/what is the subject of the document
... date SΣ0..1instantWhen this document reference was created
... author SΣ0..*Reference(Practitioner | PractitionerRole | Organization | Device | Patient | RelatedPerson) {c}Who and/or what authored the document
... authenticator 0..1Reference(Practitioner | PractitionerRole | Organization) {c}Who/what authenticated the document
... custodian 0..1Reference(Organization)Organization which maintains the document
... relatesTo SΣ0..*BackboneElementRelationships to other documents
.... 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..1codereplaces | transforms | signs | appends
Binding: DocumentRelationshipType (required): The type of relationship between documents.

.... target Σ1..1Reference(DocumentReference)Target of the relationship
... description Σ0..1stringHuman-readable description
... securityLabel SΣ1..*CodeableConceptDocument security-tags
Binding: All Security Labels (extensible): Security Labels from the Healthcare Privacy and Security Classification System.


... content Σ1..1BackboneElementDocument referenced
.... 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
.... attachment Σ1..1AttachmentWhere to access the document
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... contentType Σ1..1codeMime type of the content, with charset etc.
Binding: Mime Types (required): The mime type of an attachment. Any valid mime type is allowed.


Example General: text/plain; charset=UTF-8, image/png
..... language SΣ1..1codeHuman language of the content (BCP-47)
Binding: CommonLanguages (preferred): A human language.

Additional BindingsPurpose
AllLanguagesMax Binding

Example General: en-AU
..... url Σ1..1urlUri where the data can be found
Example General: http://www.acme.com/logo-small.png
..... size Σ0..1unsignedIntNumber of bytes of content (if url provided)
..... hash Σ0..1base64BinaryHash of the data (sha-1, base64ed)
..... title Σ0..1stringLabel to display in place of the data
Example General: Official Corporate Logo
..... creation SΣ1..1dateTimeDate attachment was first created
.... format SΣ1..1CodingFormat/content rules for the document
Binding: IHE ValueSet of Format Codes for use with Document Sharing (preferred)
... context Σ1..1BackboneElementClinical context of document
.... 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
.... encounter 0..*Reference(Encounter | EpisodeOfCare)Context of the document content
.... event 0..*CodeableConceptMain clinical acts documented
Binding: v3 Code System ActCode (example): This list of codes represents the main clinical acts being documented.


.... period SΣ0..1PeriodTime of service that is being documented
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... start ΣC0..1dateTimeStarting time with inclusive boundary
..... end ΣC0..1dateTimeEnd time with inclusive boundary, if not ongoing
.... facilityType S1..1CodeableConceptKind of facility where patient was seen
Binding: FacilityTypeCodeValueSet (example): XDS Facility Type.

.... practiceSetting S1..1CodeableConceptAdditional details about where the content was created (e.g. clinical specialty)
Binding: PracticeSettingCodeValueSet (example): Additional details about where the content was created (e.g. clinical specialty).

.... sourcePatientInfo S1..1Reference(Patient) {c}Patient demographics from source
..... id 0..1stringUnique id for inter-element referencing
..... extension 0..*ExtensionAdditional content defined by implementations
Slice: Unordered, Open by value:url
..... reference ΣC0..1stringLiteral reference, Relative, internal or absolute URL
..... type Σ0..1uriType the reference refers to (e.g. "Patient")
Binding: ResourceType (extensible): Aa resource (or, for logical models, the URI of the logical model).

..... identifier Σ0..1IdentifierLogical reference, when literal reference is not known
..... display Σ0..1stringText alternative for the resource
.... related 0..*Reference(Resource)Related identifiers or resources

doco Documentation for this format

Terminology Bindings

PathConformanceValueSet
DocumentReference.meta.securityextensibleAll Security Labels
DocumentReference.meta.tagexampleCommonTags
DocumentReference.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
DocumentReference.statusrequiredDocumentReferenceStats
DocumentReference.typepreferredDocumentTypeValueSet
DocumentReference.categoryexampleDocumentClassValueSet
DocumentReference.relatesTo.coderequiredDocumentRelationshipType
DocumentReference.securityLabelextensibleAll Security Labels
DocumentReference.content.attachment.contentTyperequiredMime Types (a valid code from urn:ietf:bcp:13)
DocumentReference.content.attachment.languagepreferredCommonLanguages
Additional Bindings Purpose
AllLanguages Max Binding
DocumentReference.content.formatpreferredIHE_FormatCode_vs
DocumentReference.context.eventexampleActCode
DocumentReference.context.facilityTypeexampleFacilityTypeCodeValueSet
DocumentReference.context.practiceSettingexamplePracticeSettingCodeValueSet
DocumentReference.context.sourcePatientInfo.typeextensibleResourceType

This structure is derived from UnContainedComprehensiveDocumentReference

Summary

 

Other representations of profile: CSV, Excel, Schematron