blob: 8e5fa1a17fef025baa12ae51a77cbd8253e416c6 [file] [log] [blame]
<?xml version="1.0" encoding="UTF-8"?>
<!--
Copyright (c) 2011+, HL7, Inc.
All rights reserved.
Redistribution and use in source and binary forms, with or without modification,
are permitted provided that the following conditions are met:
* Redistributions of source code must retain the above copyright notice, this
list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright notice,
this list of conditions and the following disclaimer in the documentation
and/or other materials provided with the distribution.
* Neither the name of HL7 nor the names of its contributors may be used to
endorse or promote products derived from this software without specific
prior written permission.
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
POSSIBILITY OF SUCH DAMAGE.
Generated on Thu, Dec 27, 2018 22:37+1100 for FHIR v4.0.0
Note: the schemas &amp; schematrons do not contain all of the rules about what makes resources
valid. Implementers will still need to be familiar with the content of the specification and with
any profiles that apply to the resources in order to make a conformant implementation.
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://hl7.org/fhir" xmlns:xhtml="http://www.w3.org/1999/xhtml" targetNamespace="http://hl7.org/fhir" elementFormDefault="qualified" version="1.0">
<xs:include schemaLocation="fhir-base.xsd"/>
<xs:element name="Composition" type="Composition">
<xs:annotation>
<xs:documentation xml:lang="en">A set of healthcare-related information that is assembled together into a single logical package that provides a single coherent statement of meaning, establishes its own context and that has clinical attestation with regard to who is making the statement. A Composition defines the structure and narrative content necessary for a document. However, a Composition alone does not constitute a document. Rather, the Composition must be the first entry in a Bundle where Bundle.type=document, and any other resources referenced from Composition must be included as subsequent entries in the Bundle (for example Patient, Practitioner, Encounter, etc.).</xs:documentation>
</xs:annotation>
</xs:element>
<xs:complexType name="Composition">
<xs:annotation>
<xs:documentation xml:lang="en">A set of healthcare-related information that is assembled together into a single logical package that provides a single coherent statement of meaning, establishes its own context and that has clinical attestation with regard to who is making the statement. A Composition defines the structure and narrative content necessary for a document. However, a Composition alone does not constitute a document. Rather, the Composition must be the first entry in a Bundle where Bundle.type=document, and any other resources referenced from Composition must be included as subsequent entries in the Bundle (for example Patient, Practitioner, Encounter, etc.).</xs:documentation>
<xs:documentation xml:lang="en">If the element is present, it must have either a @value, an @id, or extensions</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="DomainResource">
<xs:sequence>
<xs:element name="identifier" minOccurs="0" maxOccurs="1" type="Identifier">
<xs:annotation>
<xs:documentation xml:lang="en">A version-independent identifier for the Composition. This identifier stays constant as the composition is changed over time.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="status" minOccurs="1" maxOccurs="1" type="CompositionStatus">
<xs:annotation>
<xs:documentation xml:lang="en">The workflow/clinical status of this composition. The status is a marker for the clinical standing of the document.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="type" minOccurs="1" maxOccurs="1" type="CodeableConcept">
<xs:annotation>
<xs:documentation xml:lang="en">Specifies the particular kind of composition (e.g. History and Physical, Discharge Summary, Progress Note). This usually equates to the purpose of making the composition.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="category" minOccurs="0" maxOccurs="unbounded" type="CodeableConcept">
<xs:annotation>
<xs:documentation xml:lang="en">A categorization for the type of the composition - helps for indexing and searching. This may be implied by or derived from the code specified in the Composition Type.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="subject" minOccurs="0" maxOccurs="1" type="Reference">
<xs:annotation>
<xs:documentation xml:lang="en">Who or what the composition is about. The composition can be about a person, (patient or healthcare practitioner), a device (e.g. a machine) or even a group of subjects (such as a document about a herd of livestock, or a set of patients that share a common exposure).</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="encounter" minOccurs="0" maxOccurs="1" type="Reference">
<xs:annotation>
<xs:documentation xml:lang="en">Describes the clinical encounter or type of care this documentation is associated with.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="date" minOccurs="1" maxOccurs="1" type="dateTime">
<xs:annotation>
<xs:documentation xml:lang="en">The composition editing time, when the composition was last logically changed by the author.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="author" minOccurs="1" maxOccurs="unbounded" type="Reference">
<xs:annotation>
<xs:documentation xml:lang="en">Identifies who is responsible for the information in the composition, not necessarily who typed it in.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="title" minOccurs="1" maxOccurs="1" type="string">
<xs:annotation>
<xs:documentation xml:lang="en">Official human-readable label for the composition.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="confidentiality" minOccurs="0" maxOccurs="1" type="vConfidentialityClassification">
<xs:annotation>
<xs:documentation xml:lang="en">The code specifying the level of confidentiality of the Composition.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="attester" type="Composition.Attester" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation xml:lang="en">A participant who has attested to the accuracy of the composition/document.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="custodian" minOccurs="0" maxOccurs="1" type="Reference">
<xs:annotation>
<xs:documentation xml:lang="en">Identifies the organization or group who is responsible for ongoing maintenance of and access to the composition/document information.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="relatesTo" type="Composition.RelatesTo" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation xml:lang="en">Relationships that this composition has with other compositions or documents that already exist.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="event" type="Composition.Event" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation xml:lang="en">The clinical service, such as a colonoscopy or an appendectomy, being documented.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="section" type="Composition.Section" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation xml:lang="en">The root of the sections that make up the composition.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="Composition.Attester">
<xs:annotation>
<xs:documentation xml:lang="en">A set of healthcare-related information that is assembled together into a single logical package that provides a single coherent statement of meaning, establishes its own context and that has clinical attestation with regard to who is making the statement. A Composition defines the structure and narrative content necessary for a document. However, a Composition alone does not constitute a document. Rather, the Composition must be the first entry in a Bundle where Bundle.type=document, and any other resources referenced from Composition must be included as subsequent entries in the Bundle (for example Patient, Practitioner, Encounter, etc.).</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="BackboneElement">
<xs:sequence>
<xs:element name="mode" minOccurs="1" maxOccurs="1" type="CompositionAttestationMode">
<xs:annotation>
<xs:documentation xml:lang="en">The type of attestation the authenticator offers.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="time" minOccurs="0" maxOccurs="1" type="dateTime">
<xs:annotation>
<xs:documentation xml:lang="en">When the composition was attested by the party.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="party" minOccurs="0" maxOccurs="1" type="Reference">
<xs:annotation>
<xs:documentation xml:lang="en">Who attested the composition in the specified way.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="Composition.RelatesTo">
<xs:annotation>
<xs:documentation xml:lang="en">A set of healthcare-related information that is assembled together into a single logical package that provides a single coherent statement of meaning, establishes its own context and that has clinical attestation with regard to who is making the statement. A Composition defines the structure and narrative content necessary for a document. However, a Composition alone does not constitute a document. Rather, the Composition must be the first entry in a Bundle where Bundle.type=document, and any other resources referenced from Composition must be included as subsequent entries in the Bundle (for example Patient, Practitioner, Encounter, etc.).</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="BackboneElement">
<xs:sequence>
<xs:element name="code" minOccurs="1" maxOccurs="1" type="DocumentRelationshipType">
<xs:annotation>
<xs:documentation xml:lang="en">The type of relationship that this composition has with anther composition or document.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:choice minOccurs="1" maxOccurs="1" >
<xs:annotation>
<xs:documentation xml:lang="en">The target composition/document of this relationship.</xs:documentation>
</xs:annotation>
<xs:element name="targetIdentifier" type="Identifier"/>
<xs:element name="targetReference" type="Reference"/>
</xs:choice>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="Composition.Event">
<xs:annotation>
<xs:documentation xml:lang="en">A set of healthcare-related information that is assembled together into a single logical package that provides a single coherent statement of meaning, establishes its own context and that has clinical attestation with regard to who is making the statement. A Composition defines the structure and narrative content necessary for a document. However, a Composition alone does not constitute a document. Rather, the Composition must be the first entry in a Bundle where Bundle.type=document, and any other resources referenced from Composition must be included as subsequent entries in the Bundle (for example Patient, Practitioner, Encounter, etc.).</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="BackboneElement">
<xs:sequence>
<xs:element name="code" minOccurs="0" maxOccurs="unbounded" type="CodeableConcept">
<xs:annotation>
<xs:documentation xml:lang="en">This list of codes represents the main clinical acts, such as a colonoscopy or an appendectomy, being documented. In some cases, the event is inherent in the typeCode, such as a &quot;History and Physical Report&quot; in which the procedure being documented is necessarily a &quot;History and Physical&quot; act.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="period" minOccurs="0" maxOccurs="1" type="Period">
<xs:annotation>
<xs:documentation xml:lang="en">The period of time covered by the documentation. There is no assertion that the documentation is a complete representation for this period, only that it documents events during this time.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="detail" minOccurs="0" maxOccurs="unbounded" type="Reference">
<xs:annotation>
<xs:documentation xml:lang="en">The description and/or reference of the event(s) being documented. For example, this could be used to document such a colonoscopy or an appendectomy.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="Composition.Section">
<xs:annotation>
<xs:documentation xml:lang="en">A set of healthcare-related information that is assembled together into a single logical package that provides a single coherent statement of meaning, establishes its own context and that has clinical attestation with regard to who is making the statement. A Composition defines the structure and narrative content necessary for a document. However, a Composition alone does not constitute a document. Rather, the Composition must be the first entry in a Bundle where Bundle.type=document, and any other resources referenced from Composition must be included as subsequent entries in the Bundle (for example Patient, Practitioner, Encounter, etc.).</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="BackboneElement">
<xs:sequence>
<xs:element name="title" minOccurs="0" maxOccurs="1" type="string">
<xs:annotation>
<xs:documentation xml:lang="en">The label for this particular section. This will be part of the rendered content for the document, and is often used to build a table of contents.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="code" minOccurs="0" maxOccurs="1" type="CodeableConcept">
<xs:annotation>
<xs:documentation xml:lang="en">A code identifying the kind of content contained within the section. This must be consistent with the section title.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="author" minOccurs="0" maxOccurs="unbounded" type="Reference">
<xs:annotation>
<xs:documentation xml:lang="en">Identifies who is responsible for the information in this section, not necessarily who typed it in.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="focus" minOccurs="0" maxOccurs="1" type="Reference">
<xs:annotation>
<xs:documentation xml:lang="en">The actual focus of the section when it is not the subject of the composition, but instead represents something or someone associated with the subject such as (for a patient subject) a spouse, parent, fetus, or donor. If not focus is specified, the focus is assumed to be focus of the parent section, or, for a section in the Composition itself, the subject of the composition. Sections with a focus SHALL only include resources where the logical subject (patient, subject, focus, etc.) matches the section focus, or the resources have no logical subject (few resources).</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="text" minOccurs="0" maxOccurs="1" type="Narrative">
<xs:annotation>
<xs:documentation xml:lang="en">A human-readable narrative that contains the attested content of the section, used to represent the content of the resource to a human. The narrative need not encode all the structured data, but is required to contain sufficient detail to make it &quot;clinically safe&quot; for a human to just read the narrative.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="mode" minOccurs="0" maxOccurs="1" type="ListMode">
<xs:annotation>
<xs:documentation xml:lang="en">How the entry list was prepared - whether it is a working list that is suitable for being maintained on an ongoing basis, or if it represents a snapshot of a list of items from another source, or whether it is a prepared list where items may be marked as added, modified or deleted.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="orderedBy" minOccurs="0" maxOccurs="1" type="CodeableConcept">
<xs:annotation>
<xs:documentation xml:lang="en">Specifies the order applied to the items in the section entries.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="entry" minOccurs="0" maxOccurs="unbounded" type="Reference">
<xs:annotation>
<xs:documentation xml:lang="en">A reference to the actual resource from which the narrative in the section is derived.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="emptyReason" minOccurs="0" maxOccurs="1" type="CodeableConcept">
<xs:annotation>
<xs:documentation xml:lang="en">If the section is empty, why the list is empty. An empty section typically has some text explaining the empty reason.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="section" type="Composition.Section" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation xml:lang="en">A nested sub-section within this section.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:simpleType name="vConfidentialityClassification-list">
<xs:restriction base="code-primitive">
<xs:enumeration value="U">
<xs:annotation>
<xs:documentation xml:lang="en">unrestricted</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="L">
<xs:annotation>
<xs:documentation xml:lang="en">low</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="M">
<xs:annotation>
<xs:documentation xml:lang="en">moderate</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="N">
<xs:annotation>
<xs:documentation xml:lang="en">normal</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="R">
<xs:annotation>
<xs:documentation xml:lang="en">restricted</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="V">
<xs:annotation>
<xs:documentation xml:lang="en">very restricted</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="vConfidentialityClassification">
<xs:annotation>
<xs:documentation xml:lang="en">Codes specifying the level of confidentiality of the composition.</xs:documentation>
<xs:documentation xml:lang="en">If the element is present, it must have either a @value, an @id, or extensions</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Element">
<xs:attribute name="value" type="vConfidentialityClassification-list" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:simpleType name="CompositionStatus-list">
<xs:restriction base="code-primitive">
<xs:enumeration value="preliminary">
<xs:annotation>
<xs:documentation xml:lang="en">Preliminary</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="final">
<xs:annotation>
<xs:documentation xml:lang="en">Final</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="amended">
<xs:annotation>
<xs:documentation xml:lang="en">Amended</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="entered-in-error">
<xs:annotation>
<xs:documentation xml:lang="en">Entered in Error</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="CompositionStatus">
<xs:annotation>
<xs:documentation xml:lang="en">The workflow/clinical status of the composition.</xs:documentation>
<xs:documentation xml:lang="en">If the element is present, it must have either a @value, an @id, or extensions</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Element">
<xs:attribute name="value" type="CompositionStatus-list" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:simpleType name="DocumentRelationshipType-list">
<xs:restriction base="code-primitive">
<xs:enumeration value="replaces">
<xs:annotation>
<xs:documentation xml:lang="en">Replaces</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="transforms">
<xs:annotation>
<xs:documentation xml:lang="en">Transforms</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="signs">
<xs:annotation>
<xs:documentation xml:lang="en">Signs</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="appends">
<xs:annotation>
<xs:documentation xml:lang="en">Appends</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="DocumentRelationshipType">
<xs:annotation>
<xs:documentation xml:lang="en">The type of relationship between documents.</xs:documentation>
<xs:documentation xml:lang="en">If the element is present, it must have either a @value, an @id, or extensions</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Element">
<xs:attribute name="value" type="DocumentRelationshipType-list" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:simpleType name="CompositionAttestationMode-list">
<xs:restriction base="code-primitive">
<xs:enumeration value="personal">
<xs:annotation>
<xs:documentation xml:lang="en">Personal</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="professional">
<xs:annotation>
<xs:documentation xml:lang="en">Professional</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="legal">
<xs:annotation>
<xs:documentation xml:lang="en">Legal</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="official">
<xs:annotation>
<xs:documentation xml:lang="en">Official</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="CompositionAttestationMode">
<xs:annotation>
<xs:documentation xml:lang="en">The way in which a person authenticated a composition.</xs:documentation>
<xs:documentation xml:lang="en">If the element is present, it must have either a @value, an @id, or extensions</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Element">
<xs:attribute name="value" type="CompositionAttestationMode-list" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:simpleType name="ListMode-list">
<xs:restriction base="code-primitive">
<xs:enumeration value="working">
<xs:annotation>
<xs:documentation xml:lang="en">Working List</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="snapshot">
<xs:annotation>
<xs:documentation xml:lang="en">Snapshot List</xs:documentation>
</xs:annotation>
</xs:enumeration>
<xs:enumeration value="changes">
<xs:annotation>
<xs:documentation xml:lang="en">Change List</xs:documentation>
</xs:annotation>
</xs:enumeration>
</xs:restriction>
</xs:simpleType>
<xs:complexType name="ListMode">
<xs:annotation>
<xs:documentation xml:lang="en">The processing mode that applies to this section.</xs:documentation>
<xs:documentation xml:lang="en">If the element is present, it must have either a @value, an @id, or extensions</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="Element">
<xs:attribute name="value" type="ListMode-list" use="optional"/>
</xs:extension>
</xs:complexContent>
</xs:complexType>
</xs:schema>