DSTU2 Ballot Source

This page is part of the FHIR Specification (v0.5.0: DSTU 2 Ballot 2). The current version which supercedes this version is 5.0.0. For a full list of available versions, see the Directory of published versions

Conformance.profile.xml

Raw XML (canonical form)

StructureDefinition for conformance

Raw XML

<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="Conformance"/>
  <meta>
    <lastUpdated value="2015-04-03T14:24:32.000+11:00"/>
  </meta>
  <text>
    <status value="generated"/>
    <div xmlns="http://www.w3.org/1999/xhtml"><!-- Snipped for brevity --></div>
  </text>
  <url value="http://hl7.org/fhir/StructureDefinition/Conformance"/>
  <name value="Conformance"/>
  <publisher value="HL7 FHIR Project (FHIR Management Group)"/>
  <contact>
    <telecom>
      <system value="url"/>
      <value value="http://hl7.org/fhir"/>
    </telecom>
  </contact>
  <contact>
    <telecom>
      <system value="url"/>
      <value value="http://www.hl7.org/Special/committees/fhirmg/index.cfm"/>
    </telecom>
  </contact>
  <description value="Base StructureDefinition for Conformance Resource"/>
  <status value="draft"/>
  <date value="2015-04-03T14:24:32+11:00"/>
  <mapping>
    <identity value="rim"/>
    <uri value="http://hl7.org/v3"/>
    <name value="RIM"/>
  </mapping>
  <type value="resource"/>
  <abstract value="true"/>
  <snapshot>
    <element>
      <path value="Conformance"/>
      <short value="A conformance statement"/>
      <definition value="A conformance statement is a set of requirements for a desired implementation or a description
       of how a target application fulfills those requirements in a particular implementation."/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="DomainResource"/>
      </type>
      <constraint>
        <key value="cnf-1"/>
        <name value="Content Required"/>
        <severity value="error"/>
        <human value="A Conformance statement SHALL have at least one of rest, messaging or document"/>
        <xpath value="exists(f:rest) or exists(f:messaging) or exists(f:document)"/>
      </constraint>
      <constraint>
        <key value="cnf-2"/>
        <name value="Details"/>
        <severity value="error"/>
        <human value="A Conformance statement SHALL have at least one of description, software, or implementation"/>
        <xpath value="count(f:software | f:implementation | f:description) &gt; 0"/>
      </constraint>
      <constraint>
        <key value="cnf-4"/>
        <name value="End point populated when multiple"/>
        <severity value="error"/>
        <human value="If there is more than one messaging element, endpoint must be specified for each one"/>
        <xpath value="count(f:messaging)&lt;=1 or not(f:messaging[not(f:endpoint)])"/>
      </constraint>
      <constraint>
        <key value="cnf-5"/>
        <name value="Messaging endpoints unique"/>
        <severity value="error"/>
        <human value="The set of end points listed for messaging must be unique"/>
        <xpath value="count(f:messaging/f:endpoint)=count(distinct-values(f:messaging/f:endpoint/@value))"/>
      </constraint>
      <constraint>
        <key value="cnf-7"/>
        <name value="Document unique"/>
        <severity value="error"/>
        <human value="The set of documents must be unique by the combination of profile &amp; mode"/>
        <xpath value="count(f:document[f:mode='producer'])=count(distinct-values(f:document[f:mode='producer']/f:profile/@
        value)) and count(f:document[f:mode='consumer'])=count(distinct-values(f:document[f:mode='consumer']/
        f:profile/@value))"/>
      </constraint>
      <constraint>
        <key value="cnf-8"/>
        <name value="Rest unique by mode"/>
        <severity value="error"/>
        <human value="There can only be one REST declaration per mode"/>
        <xpath value="count(f:rest)=count(distinct-values(f:rest/f:mode/@value))"/>
      </constraint>
    </element>
    <element>
      <path value="Conformance.id"/>
      <short value="Logical id of this artefact"/>
      <definition value="The logical id of the resource, as used in the url for the resoure. Once assigned, this
       value never changes."/>
      <comments value="The only time that a resource does not have an id is when it is being submitted to the
       server using a create operation. Bundles always have an id, though it is usually a generated
       UUID."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="id"/>
      </type>
    </element>
    <element>
      <path value="Conformance.meta"/>
      <short value="Metadata about the resource"/>
      <definition value="The metadata about the resource. This is content that is maintained by the infrastructure.
       Changes to the content may not always be associated with version changes to the resource."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="Meta"/>
      </type>
    </element>
    <element>
      <path value="Conformance.implicitRules"/>
      <short value="A set of rules under which this content was created"/>
      <definition value="A reference to a set of rules that were followed when the resource was constructed, and
       which must be understood when processing the content."/>
      <comments value="Asserting this rule set restricts the content to be only understood by a limited set of
       trading partners. This inherently limits the usefulness of the data in the long term.
       However the existing health eco-system is highly fractured, and not yet ready to define,
       collect, and exchange data in a generally computable sense. Wherever possible, implementers
       and/or specification writers should avoid using this element as much as possible."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="uri"/>
      </type>
      <isModifier value="true"/>
    </element>
    <element>
      <path value="Conformance.language"/>
      <short value="Language of the resource content"/>
      <definition value="The base language in which the resource is written."/>
      <comments value="Language is provided to support indexing and accessibility (typically, services such as
       text to speech use the language tag). The html language tag in the narrative applies 
       to the narrative. The language tag on the resource may be used to specify the language
       of other presentations generated from the data in the resource  Not all the content has
       to be in the base language. The Resource.language should not be assumed to apply to the
       narrative automatically. If a language is specified, it should it also be specified on
       the div element in the html (see rules in HTML5 for information about the relationship
       between xml:lang and the html lang attribute)."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="code"/>
      </type>
      <binding>
        <name value="Language"/>
        <strength value="required"/>
        <description value="A human language"/>
        <valueSetUri value="http://tools.ietf.org/html/bcp47"/>
      </binding>
    </element>
    <element>
      <path value="Conformance.text"/>
      <short value="Text summary of the resource, for human interpretation"/>
      <definition value="A human-readable narrative that contains a summary of the resource, and may be 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. Resource definitions may define what
       content should be represented in the narrative to ensure clinical safety."/>
      <comments value="Contained resources do not have narrative. Resources that are not contained SHOULD have
       a narrative."/>
      <alias value="narrative"/>
      <alias value="html"/>
      <alias value="xhtml"/>
      <alias value="display"/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="Narrative"/>
      </type>
      <condition value="dom-1"/>
      <mapping>
        <identity value="rim"/>
        <map value="Act.text?"/>
      </mapping>
    </element>
    <element>
      <path value="Conformance.contained"/>
      <short value="Contained, inline Resources"/>
      <definition value="These resources do not have an independent existence apart from the resource that contains
       them - they cannot be identified independently, and nor can they have their own independent
       transaction scope."/>
      <comments value="This should never be done when the content can be identified properly, as once identification
       is lost, it is extremely difficult (and context dependent) to restore it again."/>
      <alias value="inline resources"/>
      <alias value="anonymous resources"/>
      <alias value="contained resources"/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Resource"/>
      </type>
      <mapping>
        <identity value="rim"/>
        <map value="N/A"/>
      </mapping>
    </element>
    <element>
      <path value="Conformance.extension"/>
      <short value="Additional Content defined by implementations"/>
      <definition value="May be used to represent additional information that is not part of the basic definition
       of the resource. In order to make the use of extensions safe and manageable, there is
       a strict set of governance  applied to the definition and use of extensions. Though any
       implementer is allowed to define an extension, there is a set of requirements that SHALL
       be met as part of the definition of the extension."/>
      <comments value="There can be no stigma associated with the use of extensions by any application, project,
       or standard - regardless of the institution or jurisdiction that uses or defines the extensions.
        The use of extensions is what allows the FHIR specification to retain a core level of
       simplicity for everyone."/>
      <alias value="extensions"/>
      <alias value="user content"/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Extension"/>
      </type>
      <mapping>
        <identity value="rim"/>
        <map value="N/A"/>
      </mapping>
    </element>
    <element>
      <path value="Conformance.modifierExtension"/>
      <short value="Extensions that cannot be ignored"/>
      <definition value="May be used to represent additional information that is not part of the basic definition
       of the resource, and that modifies the understanding of the element that contains it.
       Usually modifier elements provide negation or qualification. In order to make the use
       of extensions safe and manageable, there is a strict set of governance applied to the
       definition and use of extensions. Though any implementer is allowed to define an extension,
       there is a set of requirements that SHALL be met as part of the definition of the extension.
       Applications processing a resource are required to check for modifier extensions."/>
      <comments value="There can be no stigma associated with the use of extensions by any application, project,
       or standard - regardless of the institution or jurisdiction that uses or defines the extensions.
        The use of extensions is what allows the FHIR specification to retain a core level of
       simplicity for everyone."/>
      <alias value="extensions"/>
      <alias value="user content"/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Extension"/>
      </type>
      <isModifier value="true"/>
      <mapping>
        <identity value="rim"/>
        <map value="N/A"/>
      </mapping>
    </element>
    <element>
      <path value="Conformance.url"/>
      <short value="Logical uri to reference this statement"/>
      <definition value="An absolute uri that is used to identify this conformance statement when it is referenced
       in a specification, model, design or an instance (should be globally unique URI, and an
       be urn:uuid: or urn:oid:)."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="uri"/>
      </type>
      <isSummary value="true"/>
    </element>
    <element>
      <path value="Conformance.version"/>
      <short value="Logical id for this version of the statement"/>
      <definition value="The identifier that is used to identify this version of the conformance statement when
       it is referenced in a specification, model, design or instance. This is an arbitrary value
       managed by the profile author manually and the value should be a timestamp."/>
      <comments value="There may be multiple different instances of a conformance statement that have the same
       identifier but different versions."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
      <isSummary value="true"/>
    </element>
    <element>
      <path value="Conformance.name"/>
      <short value="Informal name for this conformance statement"/>
      <definition value="A free text natural language name identifying the conformance statement."/>
      <comments value="The name is not expected to be globally unique."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
      <isSummary value="true"/>
    </element>
    <element>
      <path value="Conformance.publisher"/>
      <short value="Name of the publisher (Organization or individual)"/>
      <definition value="The name of the individual or organization that published the conformance."/>
      <comments value="Usually an organization, but may be an individual. This item SHOULD be populated unless
       the information is available from context."/>
      <requirements value="Helps establish the &quot;authority/credibility&quot; of the conformance.  May also allow
       for contact."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
      <isSummary value="true"/>
    </element>
    <element>
      <path value="Conformance.contact"/>
      <short value="Contact details of the publisher"/>
      <definition value="Contacts to assist a user in finding and communicating with the publisher."/>
      <comments value="May be a web site, an email address, a telephone number (tel:), etc."/>
      <min value="0"/>
      <max value="*"/>
      <isSummary value="true"/>
    </element>
    <element>
      <path value="Conformance.contact.id"/>
      <representation value="xmlAttr"/>
      <short value="xml:id (or equivalent in JSON)"/>
      <definition value="unique id for the element within a resource (for internal references)."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="id"/>
      </type>
      <mapping>
        <identity value="rim"/>
        <map value="n/a"/>
      </mapping>
    </element>
    <element>
      <path value="Conformance.contact.extension"/>
      <short value="Additional Content defined by implementations"/>
      <definition value="May be used to represent additional information that is not part of the basic definition
       of the element. In order to make the use of extensions safe and manageable, there is a
       strict set of governance  applied to the definition and use of extensions. Though any
       implementer is allowed to define an extension, there is a set of requirements that SHALL
       be met as part of the definition of the extension."/>
      <comments value="There can be no stigma associated with the use of extensions by any application, project,
       or standard - regardless of the institution or jurisdiction that uses or defines the extensions.
        The use of extensions is what allows the FHIR specification to retain a core level of
       simplicity for everyone."/>
      <alias value="extensions"/>
      <alias value="user content"/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Extension"/>
      </type>
      <mapping>
        <identity value="rim"/>
        <map value="n/a"/>
      </mapping>
    </element>
    <element>
      <path value="Conformance.contact.modifierExtension"/>
      <short value="Extensions that cannot be ignored"/>
      <definition value="May be used to represent additional information that is not part of the basic definition
       of the element, and that modifies the understanding of the element that contains it. Usually
       modifier elements provide negation or qualification. In order to make the use of extensions
       safe and manageable, there is a strict set of governance applied to the definition and
       use of extensions. Though any implementer is allowed to define an extension, there is
       a set of requirements that SHALL be met as part of the definition of the extension. Applications
       processing a resource are required to check for modifier extensions."/>
      <comments value="There can be no stigma associated with the use of extensions by any application, project,
       or standard - regardless of the institution or jurisdiction that uses or defines the extensions.
        The use of extensions is what allows the FHIR specification to retain a core level of
       simplicity for everyone."/>
      <alias value="extensions"/>
      <alias value="user content"/>
      <alias value="modifiers"/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Extension"/>
      </type>
      <isModifier value="true"/>
      <mapping>
        <identity value="rim"/>
        <map value="N/A"/>
      </mapping>
    </element>
    <element>
      <path value="Conformance.contact.name"/>
      <short value="Name of a individual to contact"/>
      <definition value="The name of an individual to contact regarding the conformance."/>
      <comments value="If there is no named individual, the telecom is for the organization as a whole."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
      <isSummary value="true"/>
    </element>
    <element>
      <path value="Conformance.contact.telecom"/>
      <short value="Contact details for individual or publisher"/>
      <definition value="Contact details for individual (if a name was provided) or the publisher."/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="ContactPoint"/>
      </type>
      <isSummary value="true"/>
    </element>
    <element>
      <path value="Conformance.description"/>
      <short value="Human description of the conformance statement"/>
      <definition value="A free text natural language description of the conformance statement and its use. Typically,
       this is used when the conformance statement describes a desired rather than an actual
       solution, for example as a formal expression of requirements as part of an RFP."/>
      <comments value="This field cmay include the purpose of this conformance statement, comments about its
       context etc. This does not need to be populated if the description is adequately implied
       by the software or implementation details."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
      <condition value="cnf-2"/>
      <isSummary value="true"/>
    </element>
    <element>
      <path value="Conformance.requirements"/>
      <short value="Why is this needed?"/>
      <definition value="Explains why this conformance statement is needed and why it's been constrained as it
       has."/>
      <comments value="This element does not describe the usage of the conformance statement (that's done in
       comments), rather it's for traceability of *why* the element is either needed or why the
       constraints exist as they do.  This may be used to point to source materials or specifications
       that drove the structure of this data element."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
    </element>
    <element>
      <path value="Conformance.copyright"/>
      <short value="Use and/or Publishing restrictions"/>
      <definition value="A copyright statement relating to the conformamce statement and/or its contents. Copyright
       statements are generally legal restrictions on the use and publishing of the details of
       the system described by the conformance statement."/>
      <alias value="License"/>
      <alias value="Restrictions"/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
    </element>
    <element>
      <path value="Conformance.status"/>
      <short value="draft | active | retired"/>
      <definition value="The status of this conformance statement."/>
      <comments value="This is not intended for use with actual conformance statements, but where conformance
       statements are used to describe possible or desired systems."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="code"/>
      </type>
      <isModifier value="true"/>
      <isSummary value="true"/>
      <binding>
        <name value="ConformanceResourceStatus"/>
        <strength value="required"/>
        <description value="The lifecycle status of a Value Set or Concept Map"/>
        <valueSetReference>
          <reference value="http://hl7.org/fhir/vs/conformance-resource-status"/>
        </valueSetReference>
      </binding>
    </element>
    <element>
      <path value="Conformance.experimental"/>
      <short value="If for testing purposes, not real usage"/>
      <definition value="A flag to indicate that this conformance statement is authored for testing purposes (or
       education/evaluation/marketing), and is not intended to be used for genuine usage."/>
      <comments value="Allows filtering of conformance statements that are appropriate for use vs. not."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="boolean"/>
      </type>
      <isSummary value="true"/>
    </element>
    <element>
      <path value="Conformance.date"/>
      <short value="Publication Date(/time)"/>
      <definition value="The date  (and optionally time) when the conformance statement was published."/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="dateTime"/>
      </type>
      <isSummary value="true"/>
    </element>
    <element>
      <path value="Conformance.software"/>
      <short value="Software that is covered by this conformance statement"/>
      <definition value="Software that is covered by this conformance statement.  It is used when the conformance
       statement describes the capabilities of a particular software version, independent of
       an installation."/>
      <min value="0"/>
      <max value="1"/>
      <condition value="cnf-2"/>
      <isSummary value="true"/>
    </element>
    <element>
      <path value="Conformance.software.id"/>
      <representation value="xmlAttr"/>
      <short value="xml:id (or equivalent in JSON)"/>
      <definition value="unique id for the element within a resource (for internal references)."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="id"/>
      </type>
      <mapping>
        <identity value="rim"/>
        <map value="n/a"/>
      </mapping>
    </element>
    <element>
      <path value="Conformance.software.extension"/>
      <short value="Additional Content defined by implementations"/>
      <definition value="May be used to represent additional information that is not part of the basic definition
       of the element. In order to make the use of extensions safe and manageable, there is a
       strict set of governance  applied to the definition and use of extensions. Though any
       implementer is allowed to define an extension, there is a set of requirements that SHALL
       be met as part of the definition of the extension."/>
      <comments value="There can be no stigma associated with the use of extensions by any application, project,
       or standard - regardless of the institution or jurisdiction that uses or defines the extensions.
        The use of extensions is what allows the FHIR specification to retain a core level of
       simplicity for everyone."/>
      <alias value="extensions"/>
      <alias value="user content"/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Extension"/>
      </type>
      <mapping>
        <identity value="rim"/>
        <map value="n/a"/>
      </mapping>
    </element>
    <element>
      <path value="Conformance.software.modifierExtension"/>
      <short value="Extensions that cannot be ignored"/>
      <definition value="May be used to represent additional information that is not part of the basic definition
       of the element, and that modifies the understanding of the element that contains it. Usually
       modifier elements provide negation or qualification. In order to make the use of extensions
       safe and manageable, there is a strict set of governance applied to the definition and
       use of extensions. Though any implementer is allowed to define an extension, there is
       a set of requirements that SHALL be met as part of the definition of the extension. Applications
       processing a resource are required to check for modifier extensions."/>
      <comments value="There can be no stigma associated with the use of extensions by any application, project,
       or standard - regardless of the institution or jurisdiction that uses or defines the extensions.
        The use of extensions is what allows the FHIR specification to retain a core level of
       simplicity for everyone."/>
      <alias value="extensions"/>
      <alias value="user content"/>
      <alias value="modifiers"/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Extension"/>
      </type>
      <isModifier value="true"/>
      <mapping>
        <identity value="rim"/>
        <map value="N/A"/>
      </mapping>
    </element>
    <element>
      <path value="Conformance.software.name"/>
      <short value="A name the software is known by"/>
      <definition value="Name software is known by."/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
      <isSummary value="true"/>
    </element>
    <element>
      <path value="Conformance.software.version"/>
      <short value="Version covered by this statement"/>
      <definition value="The version identifier for the software covered by this statement."/>
      <comments value="If possible, version should be specified, as statements are likely to be different for
       different versions of software."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
      <isSummary value="true"/>
    </element>
    <element>
      <path value="Conformance.software.releaseDate"/>
      <short value="Date this version released"/>
      <definition value="Date this version of the software released."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="dateTime"/>
      </type>
      <isSummary value="true"/>
    </element>
    <element>
      <path value="Conformance.implementation"/>
      <short value="If this describes a specific instance"/>
      <definition value="Identifies a specific implementation instance that is described by the conformance statement
       - i.e. a particular installation, rather than the capabilities of a software program."/>
      <min value="0"/>
      <max value="1"/>
      <condition value="cnf-2"/>
      <isSummary value="true"/>
    </element>
    <element>
      <path value="Conformance.implementation.id"/>
      <representation value="xmlAttr"/>
      <short value="xml:id (or equivalent in JSON)"/>
      <definition value="unique id for the element within a resource (for internal references)."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="id"/>
      </type>
      <mapping>
        <identity value="rim"/>
        <map value="n/a"/>
      </mapping>
    </element>
    <element>
      <path value="Conformance.implementation.extension"/>
      <short value="Additional Content defined by implementations"/>
      <definition value="May be used to represent additional information that is not part of the basic definition
       of the element. In order to make the use of extensions safe and manageable, there is a
       strict set of governance  applied to the definition and use of extensions. Though any
       implementer is allowed to define an extension, there is a set of requirements that SHALL
       be met as part of the definition of the extension."/>
      <comments value="There can be no stigma associated with the use of extensions by any application, project,
       or standard - regardless of the institution or jurisdiction that uses or defines the extensions.
        The use of extensions is what allows the FHIR specification to retain a core level of
       simplicity for everyone."/>
      <alias value="extensions"/>
      <alias value="user content"/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Extension"/>
      </type>
      <mapping>
        <identity value="rim"/>
        <map value="n/a"/>
      </mapping>
    </element>
    <element>
      <path value="Conformance.implementation.modifierExtension"/>
      <short value="Extensions that cannot be ignored"/>
      <definition value="May be used to represent additional information that is not part of the basic definition
       of the element, and that modifies the understanding of the element that contains it. Usually
       modifier elements provide negation or qualification. In order to make the use of extensions
       safe and manageable, there is a strict set of governance applied to the definition and
       use of extensions. Though any implementer is allowed to define an extension, there is
       a set of requirements that SHALL be met as part of the definition of the extension. Applications
       processing a resource are required to check for modifier extensions."/>
      <comments value="There can be no stigma associated with the use of extensions by any application, project,
       or standard - regardless of the institution or jurisdiction that uses or defines the extensions.
        The use of extensions is what allows the FHIR specification to retain a core level of
       simplicity for everyone."/>
      <alias value="extensions"/>
      <alias value="user content"/>
      <alias value="modifiers"/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Extension"/>
      </type>
      <isModifier value="true"/>
      <mapping>
        <identity value="rim"/>
        <map value="N/A"/>
      </mapping>
    </element>
    <element>
      <path value="Conformance.implementation.description"/>
      <short value="Describes this specific instance"/>
      <definition value="Information about the specific installation that this conformance statement relates to."/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
      <isSummary value="true"/>
    </element>
    <element>
      <path value="Conformance.implementation.url"/>
      <short value="Base URL for the installation"/>
      <definition value="An absolute base URL for the implementation.  This forms the base for REST interfaces
       as well as the mailbox and document interfaces."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="uri"/>
      </type>
      <isSummary value="true"/>
    </element>
    <element>
      <path value="Conformance.fhirVersion"/>
      <short value="FHIR Version"/>
      <definition value="The version of the FHIR specification on which this conformance statement is based."/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="id"/>
      </type>
      <isSummary value="true"/>
    </element>
    <element>
      <path value="Conformance.acceptUnknown"/>
      <short value="True if application accepts unknown elements"/>
      <definition value="A flag that indicates whether the application accepts unknown elements as part of a resource."/>
      <comments value="This is not about extensions, but about unknown elements in a resource - these can only
       arise as later versions of the specification are published, because this is the only place
       where such elements can be defined. Hence this element is about inter-version compatibility."/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="boolean"/>
      </type>
      <isSummary value="true"/>
    </element>
    <element>
      <path value="Conformance.format"/>
      <short value="formats supported (xml | json | mime type)"/>
      <definition value="A list of the formats supported by this implementation using their content types."/>
      <comments value="&quot;xml&quot; or &quot;json&quot; are allowed, which describe the simple encodings described
       in the specification (and imply appropriate bundle support). Otherwise, mime types are
       legal here."/>
      <min value="1"/>
      <max value="*"/>
      <type>
        <code value="code"/>
      </type>
      <binding>
        <name value="MimeType"/>
        <strength value="required"/>
        <description value="The mime type of an attachment"/>
        <valueSetUri value="http://www.rfc-editor.org/bcp/bcp13.txt"/>
      </binding>
    </element>
    <element>
      <path value="Conformance.profile"/>
      <short value="Profiles supported by the system"/>
      <definition value="A list of profiles supported by the system. For a server, &quot;supported by the system&quot;
       means the system hosts/produces a set of resources, conformant to a particular profile,
       and allows its clients to search using this profile and to find appropriate data. For
       a client, it means the system will search by this profile and process data according to
       the guidance implicit in the profile."/>
      <comments value="Supported profiles are different to the profiles that apply to a particular resource in
       rest.resource.profile. The resource profile is a general statement of what features of
       the resource are supported overall by the system - the sum total of the facilities it
       supports. A supported profile is a deeper statement about the functionality of the data
       and services provided by the server (or used by the client). A typical case is a laboratory
       system that produces a set of different reports- this is the list of types of data that
       it publishes. A key aspect of declaring profiles here is the question of how the client
       converts knowledge that the server publishes this data into working with the data; the
       client can inspect individual resources to determine whether they conform to a particular
       profile, but how does it find the ones that does? It does so by searching using the _profile
       parameter, so any resources listed here must be valid values for the _profile resource
       (using the identifier in the target profile).  Typical supported profiles cross resource
       types to describe a network of related resources, so they are listed here rather than
       by resource. However they do not need to describe more than one resource."/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Reference"/>
        <profile value="http://hl7.org/fhir/StructureDefinition/StructureDefinition"/>
      </type>
    </element>
    <element>
      <path value="Conformance.rest"/>
      <short value="If the endpoint is a RESTful one"/>
      <definition value="A definition of the restful capabilities of the solution, if any."/>
      <comments value="Multiple repetitions allow definition of both client and / or server behaviors or possibly
       behaviors under different configuration settings (for software or requirements statements)."/>
      <min value="0"/>
      <max value="*"/>
      <condition value="cnf-1"/>
      <constraint>
        <key value="cnf-10"/>
        <name value="Query unique in rest mode"/>
        <severity value="error"/>
        <human value="A given query can only be described once per RESTful mode"/>
        <xpath value="count(f:query)=count(distinct-values(f:query/f:name/@value))"/>
      </constraint>
      <constraint>
        <key value="cnf-9"/>
        <name value="Resource unique in rest mode"/>
        <severity value="error"/>
        <human value="A given resource can only be described once per RESTful mode"/>
        <xpath value="count(f:resource)=count(distinct-values(f:resource/f:type/@value))"/>
      </constraint>
    </element>
    <element>
      <path value="Conformance.rest.id"/>
      <representation value="xmlAttr"/>
      <short value="xml:id (or equivalent in JSON)"/>
      <definition value="unique id for the element within a resource (for internal references)."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="id"/>
      </type>
      <mapping>
        <identity value="rim"/>
        <map value="n/a"/>
      </mapping>
    </element>
    <element>
      <path value="Conformance.rest.extension"/>
      <short value="Additional Content defined by implementations"/>
      <definition value="May be used to represent additional information that is not part of the basic definition
       of the element. In order to make the use of extensions safe and manageable, there is a
       strict set of governance  applied to the definition and use of extensions. Though any
       implementer is allowed to define an extension, there is a set of requirements that SHALL
       be met as part of the definition of the extension."/>
      <comments value="There can be no stigma associated with the use of extensions by any application, project,
       or standard - regardless of the institution or jurisdiction that uses or defines the extensions.
        The use of extensions is what allows the FHIR specification to retain a core level of
       simplicity for everyone."/>
      <alias value="extensions"/>
      <alias value="user content"/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Extension"/>
      </type>
      <mapping>
        <identity value="rim"/>
        <map value="n/a"/>
      </mapping>
    </element>
    <element>
      <path value="Conformance.rest.modifierExtension"/>
      <short value="Extensions that cannot be ignored"/>
      <definition value="May be used to represent additional information that is not part of the basic definition
       of the element, and that modifies the understanding of the element that contains it. Usually
       modifier elements provide negation or qualification. In order to make the use of extensions
       safe and manageable, there is a strict set of governance applied to the definition and
       use of extensions. Though any implementer is allowed to define an extension, there is
       a set of requirements that SHALL be met as part of the definition of the extension. Applications
       processing a resource are required to check for modifier extensions."/>
      <comments value="There can be no stigma associated with the use of extensions by any application, project,
       or standard - regardless of the institution or jurisdiction that uses or defines the extensions.
        The use of extensions is what allows the FHIR specification to retain a core level of
       simplicity for everyone."/>
      <alias value="extensions"/>
      <alias value="user content"/>
      <alias value="modifiers"/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Extension"/>
      </type>
      <isModifier value="true"/>
      <mapping>
        <identity value="rim"/>
        <map value="N/A"/>
      </mapping>
    </element>
    <element>
      <path value="Conformance.rest.mode"/>
      <short value="client | server"/>
      <definition value="Identifies whether this portion of the statement is describing ability to initiate or
       receive restful operations."/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="code"/>
      </type>
      <binding>
        <name value="RestfulConformanceMode"/>
        <strength value="required"/>
        <description value="The mode of a RESTful conformance statement"/>
        <valueSetReference>
          <reference value="http://hl7.org/fhir/vs/restful-conformance-mode"/>
        </valueSetReference>
      </binding>
    </element>
    <element>
      <path value="Conformance.rest.documentation"/>
      <short value="General description of implementation"/>
      <definition value="Information about the system's restful capabilities that apply across all applications,
       such as security."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
    </element>
    <element>
      <path value="Conformance.rest.security"/>
      <short value="Information about security of implementation"/>
      <definition value="Information about security implementation from an interface perspective - what a client
       needs to know."/>
      <min value="0"/>
      <max value="1"/>
    </element>
    <element>
      <path value="Conformance.rest.security.id"/>
      <representation value="xmlAttr"/>
      <short value="xml:id (or equivalent in JSON)"/>
      <definition value="unique id for the element within a resource (for internal references)."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="id"/>
      </type>
      <mapping>
        <identity value="rim"/>
        <map value="n/a"/>
      </mapping>
    </element>
    <element>
      <path value="Conformance.rest.security.extension"/>
      <short value="Additional Content defined by implementations"/>
      <definition value="May be used to represent additional information that is not part of the basic definition
       of the element. In order to make the use of extensions safe and manageable, there is a
       strict set of governance  applied to the definition and use of extensions. Though any
       implementer is allowed to define an extension, there is a set of requirements that SHALL
       be met as part of the definition of the extension."/>
      <comments value="There can be no stigma associated with the use of extensions by any application, project,
       or standard - regardless of the institution or jurisdiction that uses or defines the extensions.
        The use of extensions is what allows the FHIR specification to retain a core level of
       simplicity for everyone."/>
      <alias value="extensions"/>
      <alias value="user content"/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Extension"/>
      </type>
      <mapping>
        <identity value="rim"/>
        <map value="n/a"/>
      </mapping>
    </element>
    <element>
      <path value="Conformance.rest.security.modifierExtension"/>
      <short value="Extensions that cannot be ignored"/>
      <definition value="May be used to represent additional information that is not part of the basic definition
       of the element, and that modifies the understanding of the element that contains it. Usually
       modifier elements provide negation or qualification. In order to make the use of extensions
       safe and manageable, there is a strict set of governance applied to the definition and
       use of extensions. Though any implementer is allowed to define an extension, there is
       a set of requirements that SHALL be met as part of the definition of the extension. Applications
       processing a resource are required to check for modifier extensions."/>
      <comments value="There can be no stigma associated with the use of extensions by any application, project,
       or standard - regardless of the institution or jurisdiction that uses or defines the extensions.
        The use of extensions is what allows the FHIR specification to retain a core level of
       simplicity for everyone."/>
      <alias value="extensions"/>
      <alias value="user content"/>
      <alias value="modifiers"/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Extension"/>
      </type>
      <isModifier value="true"/>
      <mapping>
        <identity value="rim"/>
        <map value="N/A"/>
      </mapping>
    </element>
    <element>
      <path value="Conformance.rest.security.cors"/>
      <short value="Adds CORS Headers (http://enable-cors.org/)"/>
      <definition value="Server adds CORS headers when responding to requests - this enables javascript applications
       to use the server."/>
      <comments value="The easiest CORS headers to add are Access-Control-Allow-Origin: * &amp; Access-Control-Request-Meth
      od: GET, POST, PUT, DELETE. All servers SHOULD support CORS."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="boolean"/>
      </type>
    </element>
    <element>
      <path value="Conformance.rest.security.service"/>
      <short value="OAuth | OAuth2 | NTLM | Basic | Kerberos"/>
      <definition value="Types of security services are supported/required by the system."/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="CodeableConcept"/>
      </type>
      <binding>
        <name value="RestfulSecurityService"/>
        <strength value="required"/>
        <description value="Types of security services used with FHIR"/>
        <valueSetReference>
          <reference value="http://hl7.org/fhir/vs/restful-security-service"/>
        </valueSetReference>
      </binding>
    </element>
    <element>
      <path value="Conformance.rest.security.description"/>
      <short value="General description of how security works"/>
      <definition value="General description of how security works."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
    </element>
    <element>
      <path value="Conformance.rest.security.certificate"/>
      <short value="Certificates associated with security profiles"/>
      <definition value="Certificates associated with security profiles."/>
      <min value="0"/>
      <max value="*"/>
    </element>
    <element>
      <path value="Conformance.rest.security.certificate.id"/>
      <representation value="xmlAttr"/>
      <short value="xml:id (or equivalent in JSON)"/>
      <definition value="unique id for the element within a resource (for internal references)."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="id"/>
      </type>
      <mapping>
        <identity value="rim"/>
        <map value="n/a"/>
      </mapping>
    </element>
    <element>
      <path value="Conformance.rest.security.certificate.extension"/>
      <short value="Additional Content defined by implementations"/>
      <definition value="May be used to represent additional information that is not part of the basic definition
       of the element. In order to make the use of extensions safe and manageable, there is a
       strict set of governance  applied to the definition and use of extensions. Though any
       implementer is allowed to define an extension, there is a set of requirements that SHALL
       be met as part of the definition of the extension."/>
      <comments value="There can be no stigma associated with the use of extensions by any application, project,
       or standard - regardless of the institution or jurisdiction that uses or defines the extensions.
        The use of extensions is what allows the FHIR specification to retain a core level of
       simplicity for everyone."/>
      <alias value="extensions"/>
      <alias value="user content"/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Extension"/>
      </type>
      <mapping>
        <identity value="rim"/>
        <map value="n/a"/>
      </mapping>
    </element>
    <element>
      <path value="Conformance.rest.security.certificate.modifierExtension"/>
      <short value="Extensions that cannot be ignored"/>
      <definition value="May be used to represent additional information that is not part of the basic definition
       of the element, and that modifies the understanding of the element that contains it. Usually
       modifier elements provide negation or qualification. In order to make the use of extensions
       safe and manageable, there is a strict set of governance applied to the definition and
       use of extensions. Though any implementer is allowed to define an extension, there is
       a set of requirements that SHALL be met as part of the definition of the extension. Applications
       processing a resource are required to check for modifier extensions."/>
      <comments value="There can be no stigma associated with the use of extensions by any application, project,
       or standard - regardless of the institution or jurisdiction that uses or defines the extensions.
        The use of extensions is what allows the FHIR specification to retain a core level of
       simplicity for everyone."/>
      <alias value="extensions"/>
      <alias value="user content"/>
      <alias value="modifiers"/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Extension"/>
      </type>
      <isModifier value="true"/>
      <mapping>
        <identity value="rim"/>
        <map value="N/A"/>
      </mapping>
    </element>
    <element>
      <path value="Conformance.rest.security.certificate.type"/>
      <short value="Mime type for certificate"/>
      <definition value="Mime type for certificate."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="code"/>
      </type>
      <binding>
        <name value="MimeType"/>
        <strength value="required"/>
        <description value="The mime type of an attachment"/>
        <valueSetUri value="http://www.rfc-editor.org/bcp/bcp13.txt"/>
      </binding>
    </element>
    <element>
      <path value="Conformance.rest.security.certificate.blob"/>
      <short value="Actual certificate"/>
      <definition value="Actual certificate."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="base64Binary"/>
      </type>
    </element>
    <element>
      <path value="Conformance.rest.resource"/>
      <short value="Resource served on the REST interface"/>
      <definition value="A specification of the restful capabilities of the solution for a specific resource type."/>
      <comments value="Max of one repetition per resource type."/>
      <min value="1"/>
      <max value="*"/>
      <constraint>
        <key value="cnf-12"/>
        <name value="SearchParam unique in resource"/>
        <severity value="error"/>
        <human value="Search parameter names must be unique in the context of a resource"/>
        <xpath value="count(f:searchParam)=count(distinct-values(f:searchParam/f:name/@value))"/>
      </constraint>
      <constraint>
        <key value="cnf-11"/>
        <name value="Operation unique in resource"/>
        <severity value="error"/>
        <human value="Operation codes must be unique in the context of a resource"/>
        <xpath value="count(f:operation)=count(distinct-values(f:operation/f:code/@value))"/>
      </constraint>
    </element>
    <element>
      <path value="Conformance.rest.resource.id"/>
      <representation value="xmlAttr"/>
      <short value="xml:id (or equivalent in JSON)"/>
      <definition value="unique id for the element within a resource (for internal references)."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="id"/>
      </type>
      <mapping>
        <identity value="rim"/>
        <map value="n/a"/>
      </mapping>
    </element>
    <element>
      <path value="Conformance.rest.resource.extension"/>
      <short value="Additional Content defined by implementations"/>
      <definition value="May be used to represent additional information that is not part of the basic definition
       of the element. In order to make the use of extensions safe and manageable, there is a
       strict set of governance  applied to the definition and use of extensions. Though any
       implementer is allowed to define an extension, there is a set of requirements that SHALL
       be met as part of the definition of the extension."/>
      <comments value="There can be no stigma associated with the use of extensions by any application, project,
       or standard - regardless of the institution or jurisdiction that uses or defines the extensions.
        The use of extensions is what allows the FHIR specification to retain a core level of
       simplicity for everyone."/>
      <alias value="extensions"/>
      <alias value="user content"/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Extension"/>
      </type>
      <mapping>
        <identity value="rim"/>
        <map value="n/a"/>
      </mapping>
    </element>
    <element>
      <path value="Conformance.rest.resource.modifierExtension"/>
      <short value="Extensions that cannot be ignored"/>
      <definition value="May be used to represent additional information that is not part of the basic definition
       of the element, and that modifies the understanding of the element that contains it. Usually
       modifier elements provide negation or qualification. In order to make the use of extensions
       safe and manageable, there is a strict set of governance applied to the definition and
       use of extensions. Though any implementer is allowed to define an extension, there is
       a set of requirements that SHALL be met as part of the definition of the extension. Applications
       processing a resource are required to check for modifier extensions."/>
      <comments value="There can be no stigma associated with the use of extensions by any application, project,
       or standard - regardless of the institution or jurisdiction that uses or defines the extensions.
        The use of extensions is what allows the FHIR specification to retain a core level of
       simplicity for everyone."/>
      <alias value="extensions"/>
      <alias value="user content"/>
      <alias value="modifiers"/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Extension"/>
      </type>
      <isModifier value="true"/>
      <mapping>
        <identity value="rim"/>
        <map value="N/A"/>
      </mapping>
    </element>
    <element>
      <path value="Conformance.rest.resource.type"/>
      <short value="A resource type that is supported"/>
      <definition value="A type of resource exposed via the restful interface."/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="code"/>
      </type>
      <binding>
        <name value="ResourceType"/>
        <strength value="required"/>
        <description value="One of the resource types defined as part of FHIR"/>
        <valueSetReference>
          <reference value="http://hl7.org/fhir/vs/resource-types"/>
        </valueSetReference>
      </binding>
    </element>
    <element>
      <path value="Conformance.rest.resource.profile"/>
      <short value="What structural features are supported"/>
      <definition value="A specification of the profile that describes the solution's support for the resource,
       including any constraints on cardinality, bindings, lengths or other limitations."/>
      <comments value="The profile applies to all  resources of this type - i.e. it is the superset of what is
       supported by the system."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="Reference"/>
        <profile value="http://hl7.org/fhir/StructureDefinition/StructureDefinition"/>
      </type>
    </element>
    <element>
      <path value="Conformance.rest.resource.interaction"/>
      <short value="What operations are supported?"/>
      <definition value="Identifies a restful operation supported by the solution."/>
      <min value="1"/>
      <max value="*"/>
    </element>
    <element>
      <path value="Conformance.rest.resource.interaction.id"/>
      <representation value="xmlAttr"/>
      <short value="xml:id (or equivalent in JSON)"/>
      <definition value="unique id for the element within a resource (for internal references)."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="id"/>
      </type>
      <mapping>
        <identity value="rim"/>
        <map value="n/a"/>
      </mapping>
    </element>
    <element>
      <path value="Conformance.rest.resource.interaction.extension"/>
      <short value="Additional Content defined by implementations"/>
      <definition value="May be used to represent additional information that is not part of the basic definition
       of the element. In order to make the use of extensions safe and manageable, there is a
       strict set of governance  applied to the definition and use of extensions. Though any
       implementer is allowed to define an extension, there is a set of requirements that SHALL
       be met as part of the definition of the extension."/>
      <comments value="There can be no stigma associated with the use of extensions by any application, project,
       or standard - regardless of the institution or jurisdiction that uses or defines the extensions.
        The use of extensions is what allows the FHIR specification to retain a core level of
       simplicity for everyone."/>
      <alias value="extensions"/>
      <alias value="user content"/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Extension"/>
      </type>
      <mapping>
        <identity value="rim"/>
        <map value="n/a"/>
      </mapping>
    </element>
    <element>
      <path value="Conformance.rest.resource.interaction.modifierExtension"/>
      <short value="Extensions that cannot be ignored"/>
      <definition value="May be used to represent additional information that is not part of the basic definition
       of the element, and that modifies the understanding of the element that contains it. Usually
       modifier elements provide negation or qualification. In order to make the use of extensions
       safe and manageable, there is a strict set of governance applied to the definition and
       use of extensions. Though any implementer is allowed to define an extension, there is
       a set of requirements that SHALL be met as part of the definition of the extension. Applications
       processing a resource are required to check for modifier extensions."/>
      <comments value="There can be no stigma associated with the use of extensions by any application, project,
       or standard - regardless of the institution or jurisdiction that uses or defines the extensions.
        The use of extensions is what allows the FHIR specification to retain a core level of
       simplicity for everyone."/>
      <alias value="extensions"/>
      <alias value="user content"/>
      <alias value="modifiers"/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Extension"/>
      </type>
      <isModifier value="true"/>
      <mapping>
        <identity value="rim"/>
        <map value="N/A"/>
      </mapping>
    </element>
    <element>
      <path value="Conformance.rest.resource.interaction.code"/>
      <short value="read | vread | update | delete | history-instance | validate | history-type | create |
       search-type"/>
      <definition value="Coded identifier of the operation, supported by the system resource."/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="code"/>
      </type>
      <binding>
        <name value="TypeRestfulInteraction"/>
        <strength value="required"/>
        <description value="Operations supported by REST at the type or instance level"/>
        <valueSetReference>
          <reference value="http://hl7.org/fhir/vs/type-restful-interaction"/>
        </valueSetReference>
      </binding>
    </element>
    <element>
      <path value="Conformance.rest.resource.interaction.documentation"/>
      <short value="Anything special about operation behavior"/>
      <definition value="Guidance specific to the implementation of this operation, such as 'delete is a logical
       delete' or 'updates are only allowed with version id' or 'creates permitted from pre-authorized
       certificates only'."/>
      <requirements value="REST allows a degree of variability in the implementation of RESTful solutions that is
       useful for exchange partners to be aware of."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
    </element>
    <element>
      <path value="Conformance.rest.resource.versioning"/>
      <short value="no-version | versioned | versioned-update"/>
      <definition value="Thi field is set to true to specify that the system does not support (server) or use (client)
       versioning for this resource type. If this is not set to true, the server must at least
       correctly track and populate the versionId meta-property on resources."/>
      <comments value="If a server supports versionIds correctly, it should support vread too, but is not required
       to do so."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="code"/>
      </type>
      <binding>
        <name value="ResourceVersionPolicy"/>
        <strength value="required"/>
        <description value="How the system supports versioning for a resource"/>
        <valueSetReference>
          <reference value="http://hl7.org/fhir/vs/versioning-policy"/>
        </valueSetReference>
      </binding>
    </element>
    <element>
      <path value="Conformance.rest.resource.readHistory"/>
      <short value="Whether vRead can return past versions"/>
      <definition value="A flag for whether the server is able to return past versions as part of the vRead operation."/>
      <comments value="It is useful to support the vRead operation for current operations, even if past versions
       aren't available."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="boolean"/>
      </type>
    </element>
    <element>
      <path value="Conformance.rest.resource.updateCreate"/>
      <short value="If update can commit to a new identity"/>
      <definition value="A flag to indicate that the server allows or needs to allow the client to create new identities
       on the server (e.g. that is, the client PUTs to a location where there is no existing
       resource). Allowing this operation means that the server allows the client to create new
       identities on the server."/>
      <comments value="Allowing the clients to create new identities on the server means that the system administrator
       needs to have confidence that the clients do not create clashing identities between them.
       Obviously, if there is only one client, this won't happen. While creating identities on
       the client means that the clients need to be managed, it's much more convenient for many
       scenarios if such management can be put in place."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="boolean"/>
      </type>
    </element>
    <element>
      <path value="Conformance.rest.resource.conditionalCreate"/>
      <short value="If allows/uses conditional create"/>
      <definition value="A flag that indicates that the server supports conditional create."/>
      <comments value="Conditional Create is mainly appropriate for interface engine scripts converting from
       other formats, such as v2."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="boolean"/>
      </type>
    </element>
    <element>
      <path value="Conformance.rest.resource.conditionalUpdate"/>
      <short value="If allows/uses conditional update"/>
      <definition value="A flag that indicates that the server supports conditional update."/>
      <comments value="Conditional Update is mainly appropriate for interface engine scripts converting from
       other formats, such as v2."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="boolean"/>
      </type>
    </element>
    <element>
      <path value="Conformance.rest.resource.conditionalDelete"/>
      <short value="If allows/uses conditional delete"/>
      <definition value="A flag that indicates that the server supports conditional delete."/>
      <comments value="Conditional Delete is mainly appropriate for interface engine scripts converting from
       other formats, such as v2."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="boolean"/>
      </type>
    </element>
    <element>
      <path value="Conformance.rest.resource.searchInclude"/>
      <short value="_include values supported by the server"/>
      <definition value="A list of _include values supported by the server."/>
      <comments value="If this list is empty, the server does not support includes."/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="string"/>
      </type>
    </element>
    <element>
      <path value="Conformance.rest.resource.searchParam"/>
      <short value="Search params supported by implementation"/>
      <definition value="Search parameters for implementations to support and/or make use of - either references
       to ones defined in the specification, or additional ones defined for/by the implementation."/>
      <min value="0"/>
      <max value="*"/>
    </element>
    <element>
      <path value="Conformance.rest.resource.searchParam.id"/>
      <representation value="xmlAttr"/>
      <short value="xml:id (or equivalent in JSON)"/>
      <definition value="unique id for the element within a resource (for internal references)."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="id"/>
      </type>
      <mapping>
        <identity value="rim"/>
        <map value="n/a"/>
      </mapping>
    </element>
    <element>
      <path value="Conformance.rest.resource.searchParam.extension"/>
      <short value="Additional Content defined by implementations"/>
      <definition value="May be used to represent additional information that is not part of the basic definition
       of the element. In order to make the use of extensions safe and manageable, there is a
       strict set of governance  applied to the definition and use of extensions. Though any
       implementer is allowed to define an extension, there is a set of requirements that SHALL
       be met as part of the definition of the extension."/>
      <comments value="There can be no stigma associated with the use of extensions by any application, project,
       or standard - regardless of the institution or jurisdiction that uses or defines the extensions.
        The use of extensions is what allows the FHIR specification to retain a core level of
       simplicity for everyone."/>
      <alias value="extensions"/>
      <alias value="user content"/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Extension"/>
      </type>
      <mapping>
        <identity value="rim"/>
        <map value="n/a"/>
      </mapping>
    </element>
    <element>
      <path value="Conformance.rest.resource.searchParam.modifierExtension"/>
      <short value="Extensions that cannot be ignored"/>
      <definition value="May be used to represent additional information that is not part of the basic definition
       of the element, and that modifies the understanding of the element that contains it. Usually
       modifier elements provide negation or qualification. In order to make the use of extensions
       safe and manageable, there is a strict set of governance applied to the definition and
       use of extensions. Though any implementer is allowed to define an extension, there is
       a set of requirements that SHALL be met as part of the definition of the extension. Applications
       processing a resource are required to check for modifier extensions."/>
      <comments value="There can be no stigma associated with the use of extensions by any application, project,
       or standard - regardless of the institution or jurisdiction that uses or defines the extensions.
        The use of extensions is what allows the FHIR specification to retain a core level of
       simplicity for everyone."/>
      <alias value="extensions"/>
      <alias value="user content"/>
      <alias value="modifiers"/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Extension"/>
      </type>
      <isModifier value="true"/>
      <mapping>
        <identity value="rim"/>
        <map value="N/A"/>
      </mapping>
    </element>
    <element>
      <path value="Conformance.rest.resource.searchParam.name"/>
      <short value="Name of search parameter"/>
      <definition value="The name of the search parameter used in the interface."/>
      <comments value="Parameter names cannot overlap with standard parameter names, and standard parameters
       cannot be redefined."/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
    </element>
    <element>
      <path value="Conformance.rest.resource.searchParam.definition"/>
      <short value="Source of definition for parameter"/>
      <definition value="An absolute URI that is a formal reference to where this parameter was first defined,
       so that a client can be confident of the meaning of the search parameter (a reference
       to [[[SearchParameter.url]]])."/>
      <comments value="This SHOULD be present, and matches SearchParameter.url."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="uri"/>
      </type>
    </element>
    <element>
      <path value="Conformance.rest.resource.searchParam.type"/>
      <short value="number | date | string | token | reference | composite | quantity | uri"/>
      <definition value="The type of value a search parameter refers to, and how the content is interpreted."/>
      <comments value="While this can be looked up from the definition, it is included here as a convenience
       for systems that auto-generate a query interface based on the server conformance statement.
        It SHALL be the same as the type in the search parameter definition."/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="code"/>
      </type>
      <binding>
        <name value="SearchParamType"/>
        <strength value="required"/>
        <description value="Data types allowed to be used for search parameters"/>
        <valueSetReference>
          <reference value="http://hl7.org/fhir/vs/search-param-type"/>
        </valueSetReference>
      </binding>
    </element>
    <element>
      <path value="Conformance.rest.resource.searchParam.documentation"/>
      <short value="Server-specific usage"/>
      <definition value="This allows documentation of any distinct behaviors about how the search parameter is
       used.  For example, text matching algorithms."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
    </element>
    <element>
      <path value="Conformance.rest.resource.searchParam.target"/>
      <short value="Types of resource (if a resource reference)"/>
      <definition value="Types of resource (if a resource is referenced)."/>
      <comments value="This SHALL be the same as or a proper subset of the resources listed in the search parameter
       definition."/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="code"/>
      </type>
      <binding>
        <name value="ResourceType"/>
        <strength value="required"/>
        <description value="One of the resource types defined as part of FHIR"/>
        <valueSetReference>
          <reference value="http://hl7.org/fhir/vs/resource-types"/>
        </valueSetReference>
      </binding>
    </element>
    <element>
      <path value="Conformance.rest.resource.searchParam.chain"/>
      <short value="Chained names supported"/>
      <definition value="Chained names supported."/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="string"/>
      </type>
    </element>
    <element>
      <path value="Conformance.rest.interaction"/>
      <short value="What operations are supported?"/>
      <definition value="A specification of restful operations supported by the system."/>
      <min value="0"/>
      <max value="*"/>
    </element>
    <element>
      <path value="Conformance.rest.interaction.id"/>
      <representation value="xmlAttr"/>
      <short value="xml:id (or equivalent in JSON)"/>
      <definition value="unique id for the element within a resource (for internal references)."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="id"/>
      </type>
      <mapping>
        <identity value="rim"/>
        <map value="n/a"/>
      </mapping>
    </element>
    <element>
      <path value="Conformance.rest.interaction.extension"/>
      <short value="Additional Content defined by implementations"/>
      <definition value="May be used to represent additional information that is not part of the basic definition
       of the element. In order to make the use of extensions safe and manageable, there is a
       strict set of governance  applied to the definition and use of extensions. Though any
       implementer is allowed to define an extension, there is a set of requirements that SHALL
       be met as part of the definition of the extension."/>
      <comments value="There can be no stigma associated with the use of extensions by any application, project,
       or standard - regardless of the institution or jurisdiction that uses or defines the extensions.
        The use of extensions is what allows the FHIR specification to retain a core level of
       simplicity for everyone."/>
      <alias value="extensions"/>
      <alias value="user content"/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Extension"/>
      </type>
      <mapping>
        <identity value="rim"/>
        <map value="n/a"/>
      </mapping>
    </element>
    <element>
      <path value="Conformance.rest.interaction.modifierExtension"/>
      <short value="Extensions that cannot be ignored"/>
      <definition value="May be used to represent additional information that is not part of the basic definition
       of the element, and that modifies the understanding of the element that contains it. Usually
       modifier elements provide negation or qualification. In order to make the use of extensions
       safe and manageable, there is a strict set of governance applied to the definition and
       use of extensions. Though any implementer is allowed to define an extension, there is
       a set of requirements that SHALL be met as part of the definition of the extension. Applications
       processing a resource are required to check for modifier extensions."/>
      <comments value="There can be no stigma associated with the use of extensions by any application, project,
       or standard - regardless of the institution or jurisdiction that uses or defines the extensions.
        The use of extensions is what allows the FHIR specification to retain a core level of
       simplicity for everyone."/>
      <alias value="extensions"/>
      <alias value="user content"/>
      <alias value="modifiers"/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Extension"/>
      </type>
      <isModifier value="true"/>
      <mapping>
        <identity value="rim"/>
        <map value="N/A"/>
      </mapping>
    </element>
    <element>
      <path value="Conformance.rest.interaction.code"/>
      <short value="transaction | search-system | history-system"/>
      <definition value="A coded identifier of the operation, supported by the system."/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="code"/>
      </type>
      <binding>
        <name value="SystemRestfulInteraction"/>
        <strength value="required"/>
        <description value="Operations supported by REST at the system level"/>
        <valueSetReference>
          <reference value="http://hl7.org/fhir/vs/system-restful-interaction"/>
        </valueSetReference>
      </binding>
    </element>
    <element>
      <path value="Conformance.rest.interaction.documentation"/>
      <short value="Anything special about operation behavior"/>
      <definition value="Guidance specific to the implementation of this operation, such as limitations on the
       kind of transactions allowed, or information about system wide search is implemented."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
    </element>
    <element>
      <path value="Conformance.rest.operation"/>
      <short value="Definition of an operation or a custom query"/>
      <definition value="Definition of an operation or a named query and with its parameters and their meaning
       and type."/>
      <min value="0"/>
      <max value="*"/>
    </element>
    <element>
      <path value="Conformance.rest.operation.id"/>
      <representation value="xmlAttr"/>
      <short value="xml:id (or equivalent in JSON)"/>
      <definition value="unique id for the element within a resource (for internal references)."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="id"/>
      </type>
      <mapping>
        <identity value="rim"/>
        <map value="n/a"/>
      </mapping>
    </element>
    <element>
      <path value="Conformance.rest.operation.extension"/>
      <short value="Additional Content defined by implementations"/>
      <definition value="May be used to represent additional information that is not part of the basic definition
       of the element. In order to make the use of extensions safe and manageable, there is a
       strict set of governance  applied to the definition and use of extensions. Though any
       implementer is allowed to define an extension, there is a set of requirements that SHALL
       be met as part of the definition of the extension."/>
      <comments value="There can be no stigma associated with the use of extensions by any application, project,
       or standard - regardless of the institution or jurisdiction that uses or defines the extensions.
        The use of extensions is what allows the FHIR specification to retain a core level of
       simplicity for everyone."/>
      <alias value="extensions"/>
      <alias value="user content"/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Extension"/>
      </type>
      <mapping>
        <identity value="rim"/>
        <map value="n/a"/>
      </mapping>
    </element>
    <element>
      <path value="Conformance.rest.operation.modifierExtension"/>
      <short value="Extensions that cannot be ignored"/>
      <definition value="May be used to represent additional information that is not part of the basic definition
       of the element, and that modifies the understanding of the element that contains it. Usually
       modifier elements provide negation or qualification. In order to make the use of extensions
       safe and manageable, there is a strict set of governance applied to the definition and
       use of extensions. Though any implementer is allowed to define an extension, there is
       a set of requirements that SHALL be met as part of the definition of the extension. Applications
       processing a resource are required to check for modifier extensions."/>
      <comments value="There can be no stigma associated with the use of extensions by any application, project,
       or standard - regardless of the institution or jurisdiction that uses or defines the extensions.
        The use of extensions is what allows the FHIR specification to retain a core level of
       simplicity for everyone."/>
      <alias value="extensions"/>
      <alias value="user content"/>
      <alias value="modifiers"/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Extension"/>
      </type>
      <isModifier value="true"/>
      <mapping>
        <identity value="rim"/>
        <map value="N/A"/>
      </mapping>
    </element>
    <element>
      <path value="Conformance.rest.operation.name"/>
      <short value="Name by which the operation/query is invoked"/>
      <definition value="The name of a query, which is used in the _query parameter when the query is called."/>
      <comments value="The name here SHOULD be the same as the name in the definition, unless there is a name
       clash and the name cannot be used."/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
    </element>
    <element>
      <path value="Conformance.rest.operation.definition"/>
      <short value="The defined operation/query"/>
      <definition value="Where the formal definition can be found."/>
      <comments value="This can be used to build ah HTML form to invoke the operation, for instance."/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="Reference"/>
        <profile value="http://hl7.org/fhir/StructureDefinition/OperationDefinition"/>
      </type>
    </element>
    <element>
      <path value="Conformance.rest.documentMailbox"/>
      <short value="How documents are accepted in /Mailbox"/>
      <definition value="A list of absolute URIs that identify profiles that this server implements for accepting
       documents in the mailbox. If this list is empty, then documents are not accepted. The
       base specification has the profile identifier &quot;http://hl7.org/fhir/documents/mailbox&quot;.
       Other specifications can declare their own identifier for this purpose."/>
      <comments value="If a server accepts messages on the /Mailbox end-point, it declares this in the messaging
       elements."/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="uri"/>
      </type>
    </element>
    <element>
      <path value="Conformance.rest.compartment"/>
      <short value="Compartments served/used by system"/>
      <definition value="An absolute URI which is a reference to the definition of a compartment hosted by the
       system."/>
      <comments value="At present, the only defined compartments are at [[extras.html]]."/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="uri"/>
      </type>
    </element>
    <element>
      <path value="Conformance.messaging"/>
      <short value="If messaging is supported"/>
      <definition value="A description of the messaging capabilities of the solution."/>
      <comments value="Multiple repetitions allow the documentation of multiple endpoints per solution."/>
      <min value="0"/>
      <max value="*"/>
      <condition value="cnf-1"/>
      <constraint>
        <key value="cnf-3"/>
        <name value="End points for Implementations"/>
        <severity value="error"/>
        <human value="Messaging end point is required (and is only permitted) when statement is for an implementation"/>
        <xpath value="exists(f:endpoint) = exists(parent::f:Conformance/f:implementation)"/>
      </constraint>
      <constraint>
        <key value="cnf-6"/>
        <name value="Event unique"/>
        <severity value="error"/>
        <human value="The set of events per messaging endpoint must be unique by the combination of code &amp;
         mode"/>
        <xpath value="count(f:event[f:mode='sender'])=count(distinct-values(f:event[f:mode='sender']/f:code/@value))
         and count(f:event[f:mode='receiver'])=count(distinct-values(f:event[f:mode='receiver']/f:code/@value
        ))"/>
      </constraint>
    </element>
    <element>
      <path value="Conformance.messaging.id"/>
      <representation value="xmlAttr"/>
      <short value="xml:id (or equivalent in JSON)"/>
      <definition value="unique id for the element within a resource (for internal references)."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="id"/>
      </type>
      <mapping>
        <identity value="rim"/>
        <map value="n/a"/>
      </mapping>
    </element>
    <element>
      <path value="Conformance.messaging.extension"/>
      <short value="Additional Content defined by implementations"/>
      <definition value="May be used to represent additional information that is not part of the basic definition
       of the element. In order to make the use of extensions safe and manageable, there is a
       strict set of governance  applied to the definition and use of extensions. Though any
       implementer is allowed to define an extension, there is a set of requirements that SHALL
       be met as part of the definition of the extension."/>
      <comments value="There can be no stigma associated with the use of extensions by any application, project,
       or standard - regardless of the institution or jurisdiction that uses or defines the extensions.
        The use of extensions is what allows the FHIR specification to retain a core level of
       simplicity for everyone."/>
      <alias value="extensions"/>
      <alias value="user content"/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Extension"/>
      </type>
      <mapping>
        <identity value="rim"/>
        <map value="n/a"/>
      </mapping>
    </element>
    <element>
      <path value="Conformance.messaging.modifierExtension"/>
      <short value="Extensions that cannot be ignored"/>
      <definition value="May be used to represent additional information that is not part of the basic definition
       of the element, and that modifies the understanding of the element that contains it. Usually
       modifier elements provide negation or qualification. In order to make the use of extensions
       safe and manageable, there is a strict set of governance applied to the definition and
       use of extensions. Though any implementer is allowed to define an extension, there is
       a set of requirements that SHALL be met as part of the definition of the extension. Applications
       processing a resource are required to check for modifier extensions."/>
      <comments value="There can be no stigma associated with the use of extensions by any application, project,
       or standard - regardless of the institution or jurisdiction that uses or defines the extensions.
        The use of extensions is what allows the FHIR specification to retain a core level of
       simplicity for everyone."/>
      <alias value="extensions"/>
      <alias value="user content"/>
      <alias value="modifiers"/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Extension"/>
      </type>
      <isModifier value="true"/>
      <mapping>
        <identity value="rim"/>
        <map value="N/A"/>
      </mapping>
    </element>
    <element>
      <path value="Conformance.messaging.endpoint"/>
      <short value="Actual endpoint being described"/>
      <definition value="An address to which messages and/or replies are to be sent."/>
      <comments value="For solutions that do not use network addresses for routing, it can be just an identifier."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="uri"/>
      </type>
      <condition value="cnf-3"/>
    </element>
    <element>
      <path value="Conformance.messaging.reliableCache"/>
      <short value="Reliable Message Cache Length (min)"/>
      <definition value="Length if the receiver's reliable messaging cache in minutes (if a receiver) or how long
       the cache length on the receiver should be (if a sender)."/>
      <comments value="If this value is missing then the application does not implement (receiver) or depend
       on (sender) reliable messaging."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="unsignedInt"/>
      </type>
    </element>
    <element>
      <path value="Conformance.messaging.documentation"/>
      <short value="Messaging interface behavior details"/>
      <definition value="Documentation about the system's messaging capabilities for this endpoint not otherwise
       documented by the conformance statement.  For example, process for becoming an authorized
       messaging exchange partner."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
    </element>
    <element>
      <path value="Conformance.messaging.event"/>
      <short value="Declare support for this event"/>
      <definition value="A description of the solution's support for an event at this end point."/>
      <comments value="The same event may be listed up to two times - once as sender and once as receiver."/>
      <min value="1"/>
      <max value="*"/>
    </element>
    <element>
      <path value="Conformance.messaging.event.id"/>
      <representation value="xmlAttr"/>
      <short value="xml:id (or equivalent in JSON)"/>
      <definition value="unique id for the element within a resource (for internal references)."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="id"/>
      </type>
      <mapping>
        <identity value="rim"/>
        <map value="n/a"/>
      </mapping>
    </element>
    <element>
      <path value="Conformance.messaging.event.extension"/>
      <short value="Additional Content defined by implementations"/>
      <definition value="May be used to represent additional information that is not part of the basic definition
       of the element. In order to make the use of extensions safe and manageable, there is a
       strict set of governance  applied to the definition and use of extensions. Though any
       implementer is allowed to define an extension, there is a set of requirements that SHALL
       be met as part of the definition of the extension."/>
      <comments value="There can be no stigma associated with the use of extensions by any application, project,
       or standard - regardless of the institution or jurisdiction that uses or defines the extensions.
        The use of extensions is what allows the FHIR specification to retain a core level of
       simplicity for everyone."/>
      <alias value="extensions"/>
      <alias value="user content"/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Extension"/>
      </type>
      <mapping>
        <identity value="rim"/>
        <map value="n/a"/>
      </mapping>
    </element>
    <element>
      <path value="Conformance.messaging.event.modifierExtension"/>
      <short value="Extensions that cannot be ignored"/>
      <definition value="May be used to represent additional information that is not part of the basic definition
       of the element, and that modifies the understanding of the element that contains it. Usually
       modifier elements provide negation or qualification. In order to make the use of extensions
       safe and manageable, there is a strict set of governance applied to the definition and
       use of extensions. Though any implementer is allowed to define an extension, there is
       a set of requirements that SHALL be met as part of the definition of the extension. Applications
       processing a resource are required to check for modifier extensions."/>
      <comments value="There can be no stigma associated with the use of extensions by any application, project,
       or standard - regardless of the institution or jurisdiction that uses or defines the extensions.
        The use of extensions is what allows the FHIR specification to retain a core level of
       simplicity for everyone."/>
      <alias value="extensions"/>
      <alias value="user content"/>
      <alias value="modifiers"/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Extension"/>
      </type>
      <isModifier value="true"/>
      <mapping>
        <identity value="rim"/>
        <map value="N/A"/>
      </mapping>
    </element>
    <element>
      <path value="Conformance.messaging.event.code"/>
      <short value="Event type"/>
      <definition value="A coded identifier of a supported messaging event."/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="Coding"/>
      </type>
      <binding>
        <name value="MessageEvent"/>
        <strength value="preferred"/>
        <description value="One of the message events defined as part of FHIR"/>
        <valueSetReference>
          <reference value="http://hl7.org/fhir/vs/message-events"/>
        </valueSetReference>
      </binding>
    </element>
    <element>
      <path value="Conformance.messaging.event.category"/>
      <short value="Consequence | Currency | Notification"/>
      <definition value="The impact of the content of the message."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="code"/>
      </type>
      <binding>
        <name value="MessageSignificanceCategory"/>
        <strength value="required"/>
        <description value="The impact of the content of a message"/>
        <valueSetReference>
          <reference value="http://hl7.org/fhir/vs/message-significance-category"/>
        </valueSetReference>
      </binding>
    </element>
    <element>
      <path value="Conformance.messaging.event.mode"/>
      <short value="sender | receiver"/>
      <definition value="The mode of this event declaration - whether application is sender or receiver."/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="code"/>
      </type>
      <binding>
        <name value="ConformanceEventMode"/>
        <strength value="required"/>
        <description value="The mode of a message conformance statement"/>
        <valueSetReference>
          <reference value="http://hl7.org/fhir/vs/message-conformance-event-mode"/>
        </valueSetReference>
      </binding>
    </element>
    <element>
      <path value="Conformance.messaging.event.protocol"/>
      <short value="http | ftp | mllp +"/>
      <definition value="A list of the messaging transport protocol(s) identifiers, supported by this endpoint."/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Coding"/>
      </type>
      <binding>
        <name value="MessageTransport"/>
        <strength value="required"/>
        <description value="The protocol used for message transport"/>
        <valueSetReference>
          <reference value="http://hl7.org/fhir/vs/message-transport"/>
        </valueSetReference>
      </binding>
    </element>
    <element>
      <path value="Conformance.messaging.event.focus"/>
      <short value="Resource that's focus of message"/>
      <definition value="A resource associated with the event.  This is the resource that defines the event."/>
      <comments value="This SHALL be provided if the event type supports multiple different resource types."/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="code"/>
      </type>
      <binding>
        <name value="ResourceType"/>
        <strength value="required"/>
        <description value="One of the resource types defined as part of FHIR"/>
        <valueSetReference>
          <reference value="http://hl7.org/fhir/vs/resource-types"/>
        </valueSetReference>
      </binding>
    </element>
    <element>
      <path value="Conformance.messaging.event.request"/>
      <short value="Profile that describes the request"/>
      <definition value="Information about the request for this event."/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="Reference"/>
        <profile value="http://hl7.org/fhir/StructureDefinition/StructureDefinition"/>
      </type>
    </element>
    <element>
      <path value="Conformance.messaging.event.response"/>
      <short value="Profile that describes the response"/>
      <definition value="Information about the response for this event."/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="Reference"/>
        <profile value="http://hl7.org/fhir/StructureDefinition/StructureDefinition"/>
      </type>
    </element>
    <element>
      <path value="Conformance.messaging.event.documentation"/>
      <short value="Endpoint-specific event documentation"/>
      <definition value="Guidance on how this event is handled, such as internal system trigger points, business
       rules, etc."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
    </element>
    <element>
      <path value="Conformance.document"/>
      <short value="Document definition"/>
      <definition value="A document definition."/>
      <min value="0"/>
      <max value="*"/>
      <condition value="cnf-1"/>
    </element>
    <element>
      <path value="Conformance.document.id"/>
      <representation value="xmlAttr"/>
      <short value="xml:id (or equivalent in JSON)"/>
      <definition value="unique id for the element within a resource (for internal references)."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="id"/>
      </type>
      <mapping>
        <identity value="rim"/>
        <map value="n/a"/>
      </mapping>
    </element>
    <element>
      <path value="Conformance.document.extension"/>
      <short value="Additional Content defined by implementations"/>
      <definition value="May be used to represent additional information that is not part of the basic definition
       of the element. In order to make the use of extensions safe and manageable, there is a
       strict set of governance  applied to the definition and use of extensions. Though any
       implementer is allowed to define an extension, there is a set of requirements that SHALL
       be met as part of the definition of the extension."/>
      <comments value="There can be no stigma associated with the use of extensions by any application, project,
       or standard - regardless of the institution or jurisdiction that uses or defines the extensions.
        The use of extensions is what allows the FHIR specification to retain a core level of
       simplicity for everyone."/>
      <alias value="extensions"/>
      <alias value="user content"/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Extension"/>
      </type>
      <mapping>
        <identity value="rim"/>
        <map value="n/a"/>
      </mapping>
    </element>
    <element>
      <path value="Conformance.document.modifierExtension"/>
      <short value="Extensions that cannot be ignored"/>
      <definition value="May be used to represent additional information that is not part of the basic definition
       of the element, and that modifies the understanding of the element that contains it. Usually
       modifier elements provide negation or qualification. In order to make the use of extensions
       safe and manageable, there is a strict set of governance applied to the definition and
       use of extensions. Though any implementer is allowed to define an extension, there is
       a set of requirements that SHALL be met as part of the definition of the extension. Applications
       processing a resource are required to check for modifier extensions."/>
      <comments value="There can be no stigma associated with the use of extensions by any application, project,
       or standard - regardless of the institution or jurisdiction that uses or defines the extensions.
        The use of extensions is what allows the FHIR specification to retain a core level of
       simplicity for everyone."/>
      <alias value="extensions"/>
      <alias value="user content"/>
      <alias value="modifiers"/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Extension"/>
      </type>
      <isModifier value="true"/>
      <mapping>
        <identity value="rim"/>
        <map value="N/A"/>
      </mapping>
    </element>
    <element>
      <path value="Conformance.document.mode"/>
      <short value="producer | consumer"/>
      <definition value="Mode of this document declaration - whether application is producer or consumer."/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="code"/>
      </type>
      <binding>
        <name value="DocumentMode"/>
        <strength value="required"/>
        <description value="Whether the application produces or consumes documents"/>
        <valueSetReference>
          <reference value="http://hl7.org/fhir/vs/document-mode"/>
        </valueSetReference>
      </binding>
    </element>
    <element>
      <path value="Conformance.document.documentation"/>
      <short value="Description of document support"/>
      <definition value="A description of how the application supports or uses the specified document profile.
        For example, when are documents created, what action is taken with consumed documents,
       etc."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
    </element>
    <element>
      <path value="Conformance.document.profile"/>
      <short value="Constraint on a resource used in the document"/>
      <definition value="A constraint on a resource used in the document."/>
      <comments value="The first resource is the document resource."/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="Reference"/>
        <profile value="http://hl7.org/fhir/StructureDefinition/StructureDefinition"/>
      </type>
    </element>
  </snapshot>
  <differential>
    <element>
      <path value="Conformance"/>
      <short value="A conformance statement"/>
      <definition value="A conformance statement is a set of requirements for a desired implementation or a description
       of how a target application fulfills those requirements in a particular implementation."/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="DomainResource"/>
      </type>
      <constraint>
        <key value="cnf-1"/>
        <name value="Content Required"/>
        <severity value="error"/>
        <human value="A Conformance statement SHALL have at least one of rest, messaging or document"/>
        <xpath value="exists(f:rest) or exists(f:messaging) or exists(f:document)"/>
      </constraint>
      <constraint>
        <key value="cnf-2"/>
        <name value="Details"/>
        <severity value="error"/>
        <human value="A Conformance statement SHALL have at least one of description, software, or implementation"/>
        <xpath value="count(f:software | f:implementation | f:description) &gt; 0"/>
      </constraint>
      <constraint>
        <key value="cnf-4"/>
        <name value="End point populated when multiple"/>
        <severity value="error"/>
        <human value="If there is more than one messaging element, endpoint must be specified for each one"/>
        <xpath value="count(f:messaging)&lt;=1 or not(f:messaging[not(f:endpoint)])"/>
      </constraint>
      <constraint>
        <key value="cnf-5"/>
        <name value="Messaging endpoints unique"/>
        <severity value="error"/>
        <human value="The set of end points listed for messaging must be unique"/>
        <xpath value="count(f:messaging/f:endpoint)=count(distinct-values(f:messaging/f:endpoint/@value))"/>
      </constraint>
      <constraint>
        <key value="cnf-7"/>
        <name value="Document unique"/>
        <severity value="error"/>
        <human value="The set of documents must be unique by the combination of profile &amp; mode"/>
        <xpath value="count(f:document[f:mode='producer'])=count(distinct-values(f:document[f:mode='producer']/f:profile/@
        value)) and count(f:document[f:mode='consumer'])=count(distinct-values(f:document[f:mode='consumer']/
        f:profile/@value))"/>
      </constraint>
      <constraint>
        <key value="cnf-8"/>
        <name value="Rest unique by mode"/>
        <severity value="error"/>
        <human value="There can only be one REST declaration per mode"/>
        <xpath value="count(f:rest)=count(distinct-values(f:rest/f:mode/@value))"/>
      </constraint>
    </element>
    <element>
      <path value="Conformance.url"/>
      <short value="Logical uri to reference this statement"/>
      <definition value="An absolute uri that is used to identify this conformance statement when it is referenced
       in a specification, model, design or an instance (should be globally unique URI, and an
       be urn:uuid: or urn:oid:)."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="uri"/>
      </type>
      <isSummary value="true"/>
    </element>
    <element>
      <path value="Conformance.version"/>
      <short value="Logical id for this version of the statement"/>
      <definition value="The identifier that is used to identify this version of the conformance statement when
       it is referenced in a specification, model, design or instance. This is an arbitrary value
       managed by the profile author manually and the value should be a timestamp."/>
      <comments value="There may be multiple different instances of a conformance statement that have the same
       identifier but different versions."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
      <isSummary value="true"/>
    </element>
    <element>
      <path value="Conformance.name"/>
      <short value="Informal name for this conformance statement"/>
      <definition value="A free text natural language name identifying the conformance statement."/>
      <comments value="The name is not expected to be globally unique."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
      <isSummary value="true"/>
    </element>
    <element>
      <path value="Conformance.publisher"/>
      <short value="Name of the publisher (Organization or individual)"/>
      <definition value="The name of the individual or organization that published the conformance."/>
      <comments value="Usually an organization, but may be an individual. This item SHOULD be populated unless
       the information is available from context."/>
      <requirements value="Helps establish the &quot;authority/credibility&quot; of the conformance.  May also allow
       for contact."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
      <isSummary value="true"/>
    </element>
    <element>
      <path value="Conformance.contact"/>
      <short value="Contact details of the publisher"/>
      <definition value="Contacts to assist a user in finding and communicating with the publisher."/>
      <comments value="May be a web site, an email address, a telephone number (tel:), etc."/>
      <min value="0"/>
      <max value="*"/>
      <isSummary value="true"/>
    </element>
    <element>
      <path value="Conformance.contact.name"/>
      <short value="Name of a individual to contact"/>
      <definition value="The name of an individual to contact regarding the conformance."/>
      <comments value="If there is no named individual, the telecom is for the organization as a whole."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
      <isSummary value="true"/>
    </element>
    <element>
      <path value="Conformance.contact.telecom"/>
      <short value="Contact details for individual or publisher"/>
      <definition value="Contact details for individual (if a name was provided) or the publisher."/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="ContactPoint"/>
      </type>
      <isSummary value="true"/>
    </element>
    <element>
      <path value="Conformance.description"/>
      <short value="Human description of the conformance statement"/>
      <definition value="A free text natural language description of the conformance statement and its use. Typically,
       this is used when the conformance statement describes a desired rather than an actual
       solution, for example as a formal expression of requirements as part of an RFP."/>
      <comments value="This field cmay include the purpose of this conformance statement, comments about its
       context etc. This does not need to be populated if the description is adequately implied
       by the software or implementation details."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
      <condition value="cnf-2"/>
      <isSummary value="true"/>
    </element>
    <element>
      <path value="Conformance.requirements"/>
      <short value="Why is this needed?"/>
      <definition value="Explains why this conformance statement is needed and why it's been constrained as it
       has."/>
      <comments value="This element does not describe the usage of the conformance statement (that's done in
       comments), rather it's for traceability of *why* the element is either needed or why the
       constraints exist as they do.  This may be used to point to source materials or specifications
       that drove the structure of this data element."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
    </element>
    <element>
      <path value="Conformance.copyright"/>
      <short value="Use and/or Publishing restrictions"/>
      <definition value="A copyright statement relating to the conformamce statement and/or its contents. Copyright
       statements are generally legal restrictions on the use and publishing of the details of
       the system described by the conformance statement."/>
      <alias value="License"/>
      <alias value="Restrictions"/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
    </element>
    <element>
      <path value="Conformance.status"/>
      <short value="draft | active | retired"/>
      <definition value="The status of this conformance statement."/>
      <comments value="This is not intended for use with actual conformance statements, but where conformance
       statements are used to describe possible or desired systems."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="code"/>
      </type>
      <isModifier value="true"/>
      <isSummary value="true"/>
      <binding>
        <name value="ConformanceResourceStatus"/>
        <strength value="required"/>
        <description value="The lifecycle status of a Value Set or Concept Map"/>
        <valueSetReference>
          <reference value="http://hl7.org/fhir/vs/conformance-resource-status"/>
        </valueSetReference>
      </binding>
    </element>
    <element>
      <path value="Conformance.experimental"/>
      <short value="If for testing purposes, not real usage"/>
      <definition value="A flag to indicate that this conformance statement is authored for testing purposes (or
       education/evaluation/marketing), and is not intended to be used for genuine usage."/>
      <comments value="Allows filtering of conformance statements that are appropriate for use vs. not."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="boolean"/>
      </type>
      <isSummary value="true"/>
    </element>
    <element>
      <path value="Conformance.date"/>
      <short value="Publication Date(/time)"/>
      <definition value="The date  (and optionally time) when the conformance statement was published."/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="dateTime"/>
      </type>
      <isSummary value="true"/>
    </element>
    <element>
      <path value="Conformance.software"/>
      <short value="Software that is covered by this conformance statement"/>
      <definition value="Software that is covered by this conformance statement.  It is used when the conformance
       statement describes the capabilities of a particular software version, independent of
       an installation."/>
      <min value="0"/>
      <max value="1"/>
      <condition value="cnf-2"/>
      <isSummary value="true"/>
    </element>
    <element>
      <path value="Conformance.software.name"/>
      <short value="A name the software is known by"/>
      <definition value="Name software is known by."/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
      <isSummary value="true"/>
    </element>
    <element>
      <path value="Conformance.software.version"/>
      <short value="Version covered by this statement"/>
      <definition value="The version identifier for the software covered by this statement."/>
      <comments value="If possible, version should be specified, as statements are likely to be different for
       different versions of software."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
      <isSummary value="true"/>
    </element>
    <element>
      <path value="Conformance.software.releaseDate"/>
      <short value="Date this version released"/>
      <definition value="Date this version of the software released."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="dateTime"/>
      </type>
      <isSummary value="true"/>
    </element>
    <element>
      <path value="Conformance.implementation"/>
      <short value="If this describes a specific instance"/>
      <definition value="Identifies a specific implementation instance that is described by the conformance statement
       - i.e. a particular installation, rather than the capabilities of a software program."/>
      <min value="0"/>
      <max value="1"/>
      <condition value="cnf-2"/>
      <isSummary value="true"/>
    </element>
    <element>
      <path value="Conformance.implementation.description"/>
      <short value="Describes this specific instance"/>
      <definition value="Information about the specific installation that this conformance statement relates to."/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
      <isSummary value="true"/>
    </element>
    <element>
      <path value="Conformance.implementation.url"/>
      <short value="Base URL for the installation"/>
      <definition value="An absolute base URL for the implementation.  This forms the base for REST interfaces
       as well as the mailbox and document interfaces."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="uri"/>
      </type>
      <isSummary value="true"/>
    </element>
    <element>
      <path value="Conformance.fhirVersion"/>
      <short value="FHIR Version"/>
      <definition value="The version of the FHIR specification on which this conformance statement is based."/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="id"/>
      </type>
      <isSummary value="true"/>
    </element>
    <element>
      <path value="Conformance.acceptUnknown"/>
      <short value="True if application accepts unknown elements"/>
      <definition value="A flag that indicates whether the application accepts unknown elements as part of a resource."/>
      <comments value="This is not about extensions, but about unknown elements in a resource - these can only
       arise as later versions of the specification are published, because this is the only place
       where such elements can be defined. Hence this element is about inter-version compatibility."/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="boolean"/>
      </type>
      <isSummary value="true"/>
    </element>
    <element>
      <path value="Conformance.format"/>
      <short value="formats supported (xml | json | mime type)"/>
      <definition value="A list of the formats supported by this implementation using their content types."/>
      <comments value="&quot;xml&quot; or &quot;json&quot; are allowed, which describe the simple encodings described
       in the specification (and imply appropriate bundle support). Otherwise, mime types are
       legal here."/>
      <min value="1"/>
      <max value="*"/>
      <type>
        <code value="code"/>
      </type>
      <binding>
        <name value="MimeType"/>
        <strength value="required"/>
        <description value="The mime type of an attachment"/>
        <valueSetUri value="http://www.rfc-editor.org/bcp/bcp13.txt"/>
      </binding>
    </element>
    <element>
      <path value="Conformance.profile"/>
      <short value="Profiles supported by the system"/>
      <definition value="A list of profiles supported by the system. For a server, &quot;supported by the system&quot;
       means the system hosts/produces a set of resources, conformant to a particular profile,
       and allows its clients to search using this profile and to find appropriate data. For
       a client, it means the system will search by this profile and process data according to
       the guidance implicit in the profile."/>
      <comments value="Supported profiles are different to the profiles that apply to a particular resource in
       rest.resource.profile. The resource profile is a general statement of what features of
       the resource are supported overall by the system - the sum total of the facilities it
       supports. A supported profile is a deeper statement about the functionality of the data
       and services provided by the server (or used by the client). A typical case is a laboratory
       system that produces a set of different reports- this is the list of types of data that
       it publishes. A key aspect of declaring profiles here is the question of how the client
       converts knowledge that the server publishes this data into working with the data; the
       client can inspect individual resources to determine whether they conform to a particular
       profile, but how does it find the ones that does? It does so by searching using the _profile
       parameter, so any resources listed here must be valid values for the _profile resource
       (using the identifier in the target profile).  Typical supported profiles cross resource
       types to describe a network of related resources, so they are listed here rather than
       by resource. However they do not need to describe more than one resource."/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Reference"/>
        <profile value="http://hl7.org/fhir/StructureDefinition/StructureDefinition"/>
      </type>
    </element>
    <element>
      <path value="Conformance.rest"/>
      <short value="If the endpoint is a RESTful one"/>
      <definition value="A definition of the restful capabilities of the solution, if any."/>
      <comments value="Multiple repetitions allow definition of both client and / or server behaviors or possibly
       behaviors under different configuration settings (for software or requirements statements)."/>
      <min value="0"/>
      <max value="*"/>
      <condition value="cnf-1"/>
      <constraint>
        <key value="cnf-10"/>
        <name value="Query unique in rest mode"/>
        <severity value="error"/>
        <human value="A given query can only be described once per RESTful mode"/>
        <xpath value="count(f:query)=count(distinct-values(f:query/f:name/@value))"/>
      </constraint>
      <constraint>
        <key value="cnf-9"/>
        <name value="Resource unique in rest mode"/>
        <severity value="error"/>
        <human value="A given resource can only be described once per RESTful mode"/>
        <xpath value="count(f:resource)=count(distinct-values(f:resource/f:type/@value))"/>
      </constraint>
    </element>
    <element>
      <path value="Conformance.rest.mode"/>
      <short value="client | server"/>
      <definition value="Identifies whether this portion of the statement is describing ability to initiate or
       receive restful operations."/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="code"/>
      </type>
      <binding>
        <name value="RestfulConformanceMode"/>
        <strength value="required"/>
        <description value="The mode of a RESTful conformance statement"/>
        <valueSetReference>
          <reference value="http://hl7.org/fhir/vs/restful-conformance-mode"/>
        </valueSetReference>
      </binding>
    </element>
    <element>
      <path value="Conformance.rest.documentation"/>
      <short value="General description of implementation"/>
      <definition value="Information about the system's restful capabilities that apply across all applications,
       such as security."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
    </element>
    <element>
      <path value="Conformance.rest.security"/>
      <short value="Information about security of implementation"/>
      <definition value="Information about security implementation from an interface perspective - what a client
       needs to know."/>
      <min value="0"/>
      <max value="1"/>
    </element>
    <element>
      <path value="Conformance.rest.security.cors"/>
      <short value="Adds CORS Headers (http://enable-cors.org/)"/>
      <definition value="Server adds CORS headers when responding to requests - this enables javascript applications
       to use the server."/>
      <comments value="The easiest CORS headers to add are Access-Control-Allow-Origin: * &amp; Access-Control-Request-Meth
      od: GET, POST, PUT, DELETE. All servers SHOULD support CORS."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="boolean"/>
      </type>
    </element>
    <element>
      <path value="Conformance.rest.security.service"/>
      <short value="OAuth | OAuth2 | NTLM | Basic | Kerberos"/>
      <definition value="Types of security services are supported/required by the system."/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="CodeableConcept"/>
      </type>
      <binding>
        <name value="RestfulSecurityService"/>
        <strength value="required"/>
        <description value="Types of security services used with FHIR"/>
        <valueSetReference>
          <reference value="http://hl7.org/fhir/vs/restful-security-service"/>
        </valueSetReference>
      </binding>
    </element>
    <element>
      <path value="Conformance.rest.security.description"/>
      <short value="General description of how security works"/>
      <definition value="General description of how security works."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
    </element>
    <element>
      <path value="Conformance.rest.security.certificate"/>
      <short value="Certificates associated with security profiles"/>
      <definition value="Certificates associated with security profiles."/>
      <min value="0"/>
      <max value="*"/>
    </element>
    <element>
      <path value="Conformance.rest.security.certificate.type"/>
      <short value="Mime type for certificate"/>
      <definition value="Mime type for certificate."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="code"/>
      </type>
      <binding>
        <name value="MimeType"/>
        <strength value="required"/>
        <description value="The mime type of an attachment"/>
        <valueSetUri value="http://www.rfc-editor.org/bcp/bcp13.txt"/>
      </binding>
    </element>
    <element>
      <path value="Conformance.rest.security.certificate.blob"/>
      <short value="Actual certificate"/>
      <definition value="Actual certificate."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="base64Binary"/>
      </type>
    </element>
    <element>
      <path value="Conformance.rest.resource"/>
      <short value="Resource served on the REST interface"/>
      <definition value="A specification of the restful capabilities of the solution for a specific resource type."/>
      <comments value="Max of one repetition per resource type."/>
      <min value="1"/>
      <max value="*"/>
      <constraint>
        <key value="cnf-12"/>
        <name value="SearchParam unique in resource"/>
        <severity value="error"/>
        <human value="Search parameter names must be unique in the context of a resource"/>
        <xpath value="count(f:searchParam)=count(distinct-values(f:searchParam/f:name/@value))"/>
      </constraint>
      <constraint>
        <key value="cnf-11"/>
        <name value="Operation unique in resource"/>
        <severity value="error"/>
        <human value="Operation codes must be unique in the context of a resource"/>
        <xpath value="count(f:operation)=count(distinct-values(f:operation/f:code/@value))"/>
      </constraint>
    </element>
    <element>
      <path value="Conformance.rest.resource.type"/>
      <short value="A resource type that is supported"/>
      <definition value="A type of resource exposed via the restful interface."/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="code"/>
      </type>
      <binding>
        <name value="ResourceType"/>
        <strength value="required"/>
        <description value="One of the resource types defined as part of FHIR"/>
        <valueSetReference>
          <reference value="http://hl7.org/fhir/vs/resource-types"/>
        </valueSetReference>
      </binding>
    </element>
    <element>
      <path value="Conformance.rest.resource.profile"/>
      <short value="What structural features are supported"/>
      <definition value="A specification of the profile that describes the solution's support for the resource,
       including any constraints on cardinality, bindings, lengths or other limitations."/>
      <comments value="The profile applies to all  resources of this type - i.e. it is the superset of what is
       supported by the system."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="Reference"/>
        <profile value="http://hl7.org/fhir/StructureDefinition/StructureDefinition"/>
      </type>
    </element>
    <element>
      <path value="Conformance.rest.resource.interaction"/>
      <short value="What operations are supported?"/>
      <definition value="Identifies a restful operation supported by the solution."/>
      <min value="1"/>
      <max value="*"/>
    </element>
    <element>
      <path value="Conformance.rest.resource.interaction.code"/>
      <short value="read | vread | update | delete | history-instance | validate | history-type | create |
       search-type"/>
      <definition value="Coded identifier of the operation, supported by the system resource."/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="code"/>
      </type>
      <binding>
        <name value="TypeRestfulInteraction"/>
        <strength value="required"/>
        <description value="Operations supported by REST at the type or instance level"/>
        <valueSetReference>
          <reference value="http://hl7.org/fhir/vs/type-restful-interaction"/>
        </valueSetReference>
      </binding>
    </element>
    <element>
      <path value="Conformance.rest.resource.interaction.documentation"/>
      <short value="Anything special about operation behavior"/>
      <definition value="Guidance specific to the implementation of this operation, such as 'delete is a logical
       delete' or 'updates are only allowed with version id' or 'creates permitted from pre-authorized
       certificates only'."/>
      <requirements value="REST allows a degree of variability in the implementation of RESTful solutions that is
       useful for exchange partners to be aware of."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
    </element>
    <element>
      <path value="Conformance.rest.resource.versioning"/>
      <short value="no-version | versioned | versioned-update"/>
      <definition value="Thi field is set to true to specify that the system does not support (server) or use (client)
       versioning for this resource type. If this is not set to true, the server must at least
       correctly track and populate the versionId meta-property on resources."/>
      <comments value="If a server supports versionIds correctly, it should support vread too, but is not required
       to do so."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="code"/>
      </type>
      <binding>
        <name value="ResourceVersionPolicy"/>
        <strength value="required"/>
        <description value="How the system supports versioning for a resource"/>
        <valueSetReference>
          <reference value="http://hl7.org/fhir/vs/versioning-policy"/>
        </valueSetReference>
      </binding>
    </element>
    <element>
      <path value="Conformance.rest.resource.readHistory"/>
      <short value="Whether vRead can return past versions"/>
      <definition value="A flag for whether the server is able to return past versions as part of the vRead operation."/>
      <comments value="It is useful to support the vRead operation for current operations, even if past versions
       aren't available."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="boolean"/>
      </type>
    </element>
    <element>
      <path value="Conformance.rest.resource.updateCreate"/>
      <short value="If update can commit to a new identity"/>
      <definition value="A flag to indicate that the server allows or needs to allow the client to create new identities
       on the server (e.g. that is, the client PUTs to a location where there is no existing
       resource). Allowing this operation means that the server allows the client to create new
       identities on the server."/>
      <comments value="Allowing the clients to create new identities on the server means that the system administrator
       needs to have confidence that the clients do not create clashing identities between them.
       Obviously, if there is only one client, this won't happen. While creating identities on
       the client means that the clients need to be managed, it's much more convenient for many
       scenarios if such management can be put in place."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="boolean"/>
      </type>
    </element>
    <element>
      <path value="Conformance.rest.resource.conditionalCreate"/>
      <short value="If allows/uses conditional create"/>
      <definition value="A flag that indicates that the server supports conditional create."/>
      <comments value="Conditional Create is mainly appropriate for interface engine scripts converting from
       other formats, such as v2."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="boolean"/>
      </type>
    </element>
    <element>
      <path value="Conformance.rest.resource.conditionalUpdate"/>
      <short value="If allows/uses conditional update"/>
      <definition value="A flag that indicates that the server supports conditional update."/>
      <comments value="Conditional Update is mainly appropriate for interface engine scripts converting from
       other formats, such as v2."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="boolean"/>
      </type>
    </element>
    <element>
      <path value="Conformance.rest.resource.conditionalDelete"/>
      <short value="If allows/uses conditional delete"/>
      <definition value="A flag that indicates that the server supports conditional delete."/>
      <comments value="Conditional Delete is mainly appropriate for interface engine scripts converting from
       other formats, such as v2."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="boolean"/>
      </type>
    </element>
    <element>
      <path value="Conformance.rest.resource.searchInclude"/>
      <short value="_include values supported by the server"/>
      <definition value="A list of _include values supported by the server."/>
      <comments value="If this list is empty, the server does not support includes."/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="string"/>
      </type>
    </element>
    <element>
      <path value="Conformance.rest.resource.searchParam"/>
      <short value="Search params supported by implementation"/>
      <definition value="Search parameters for implementations to support and/or make use of - either references
       to ones defined in the specification, or additional ones defined for/by the implementation."/>
      <min value="0"/>
      <max value="*"/>
    </element>
    <element>
      <path value="Conformance.rest.resource.searchParam.name"/>
      <short value="Name of search parameter"/>
      <definition value="The name of the search parameter used in the interface."/>
      <comments value="Parameter names cannot overlap with standard parameter names, and standard parameters
       cannot be redefined."/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
    </element>
    <element>
      <path value="Conformance.rest.resource.searchParam.definition"/>
      <short value="Source of definition for parameter"/>
      <definition value="An absolute URI that is a formal reference to where this parameter was first defined,
       so that a client can be confident of the meaning of the search parameter (a reference
       to [[[SearchParameter.url]]])."/>
      <comments value="This SHOULD be present, and matches SearchParameter.url."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="uri"/>
      </type>
    </element>
    <element>
      <path value="Conformance.rest.resource.searchParam.type"/>
      <short value="number | date | string | token | reference | composite | quantity | uri"/>
      <definition value="The type of value a search parameter refers to, and how the content is interpreted."/>
      <comments value="While this can be looked up from the definition, it is included here as a convenience
       for systems that auto-generate a query interface based on the server conformance statement.
        It SHALL be the same as the type in the search parameter definition."/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="code"/>
      </type>
      <binding>
        <name value="SearchParamType"/>
        <strength value="required"/>
        <description value="Data types allowed to be used for search parameters"/>
        <valueSetReference>
          <reference value="http://hl7.org/fhir/vs/search-param-type"/>
        </valueSetReference>
      </binding>
    </element>
    <element>
      <path value="Conformance.rest.resource.searchParam.documentation"/>
      <short value="Server-specific usage"/>
      <definition value="This allows documentation of any distinct behaviors about how the search parameter is
       used.  For example, text matching algorithms."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
    </element>
    <element>
      <path value="Conformance.rest.resource.searchParam.target"/>
      <short value="Types of resource (if a resource reference)"/>
      <definition value="Types of resource (if a resource is referenced)."/>
      <comments value="This SHALL be the same as or a proper subset of the resources listed in the search parameter
       definition."/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="code"/>
      </type>
      <binding>
        <name value="ResourceType"/>
        <strength value="required"/>
        <description value="One of the resource types defined as part of FHIR"/>
        <valueSetReference>
          <reference value="http://hl7.org/fhir/vs/resource-types"/>
        </valueSetReference>
      </binding>
    </element>
    <element>
      <path value="Conformance.rest.resource.searchParam.chain"/>
      <short value="Chained names supported"/>
      <definition value="Chained names supported."/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="string"/>
      </type>
    </element>
    <element>
      <path value="Conformance.rest.interaction"/>
      <short value="What operations are supported?"/>
      <definition value="A specification of restful operations supported by the system."/>
      <min value="0"/>
      <max value="*"/>
    </element>
    <element>
      <path value="Conformance.rest.interaction.code"/>
      <short value="transaction | search-system | history-system"/>
      <definition value="A coded identifier of the operation, supported by the system."/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="code"/>
      </type>
      <binding>
        <name value="SystemRestfulInteraction"/>
        <strength value="required"/>
        <description value="Operations supported by REST at the system level"/>
        <valueSetReference>
          <reference value="http://hl7.org/fhir/vs/system-restful-interaction"/>
        </valueSetReference>
      </binding>
    </element>
    <element>
      <path value="Conformance.rest.interaction.documentation"/>
      <short value="Anything special about operation behavior"/>
      <definition value="Guidance specific to the implementation of this operation, such as limitations on the
       kind of transactions allowed, or information about system wide search is implemented."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
    </element>
    <element>
      <path value="Conformance.rest.operation"/>
      <short value="Definition of an operation or a custom query"/>
      <definition value="Definition of an operation or a named query and with its parameters and their meaning
       and type."/>
      <min value="0"/>
      <max value="*"/>
    </element>
    <element>
      <path value="Conformance.rest.operation.name"/>
      <short value="Name by which the operation/query is invoked"/>
      <definition value="The name of a query, which is used in the _query parameter when the query is called."/>
      <comments value="The name here SHOULD be the same as the name in the definition, unless there is a name
       clash and the name cannot be used."/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
    </element>
    <element>
      <path value="Conformance.rest.operation.definition"/>
      <short value="The defined operation/query"/>
      <definition value="Where the formal definition can be found."/>
      <comments value="This can be used to build ah HTML form to invoke the operation, for instance."/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="Reference"/>
        <profile value="http://hl7.org/fhir/StructureDefinition/OperationDefinition"/>
      </type>
    </element>
    <element>
      <path value="Conformance.rest.documentMailbox"/>
      <short value="How documents are accepted in /Mailbox"/>
      <definition value="A list of absolute URIs that identify profiles that this server implements for accepting
       documents in the mailbox. If this list is empty, then documents are not accepted. The
       base specification has the profile identifier &quot;http://hl7.org/fhir/documents/mailbox&quot;.
       Other specifications can declare their own identifier for this purpose."/>
      <comments value="If a server accepts messages on the /Mailbox end-point, it declares this in the messaging
       elements."/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="uri"/>
      </type>
    </element>
    <element>
      <path value="Conformance.rest.compartment"/>
      <short value="Compartments served/used by system"/>
      <definition value="An absolute URI which is a reference to the definition of a compartment hosted by the
       system."/>
      <comments value="At present, the only defined compartments are at [[extras.html]]."/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="uri"/>
      </type>
    </element>
    <element>
      <path value="Conformance.messaging"/>
      <short value="If messaging is supported"/>
      <definition value="A description of the messaging capabilities of the solution."/>
      <comments value="Multiple repetitions allow the documentation of multiple endpoints per solution."/>
      <min value="0"/>
      <max value="*"/>
      <condition value="cnf-1"/>
      <constraint>
        <key value="cnf-3"/>
        <name value="End points for Implementations"/>
        <severity value="error"/>
        <human value="Messaging end point is required (and is only permitted) when statement is for an implementation"/>
        <xpath value="exists(f:endpoint) = exists(parent::f:Conformance/f:implementation)"/>
      </constraint>
      <constraint>
        <key value="cnf-6"/>
        <name value="Event unique"/>
        <severity value="error"/>
        <human value="The set of events per messaging endpoint must be unique by the combination of code &amp;
         mode"/>
        <xpath value="count(f:event[f:mode='sender'])=count(distinct-values(f:event[f:mode='sender']/f:code/@value))
         and count(f:event[f:mode='receiver'])=count(distinct-values(f:event[f:mode='receiver']/f:code/@value
        ))"/>
      </constraint>
    </element>
    <element>
      <path value="Conformance.messaging.endpoint"/>
      <short value="Actual endpoint being described"/>
      <definition value="An address to which messages and/or replies are to be sent."/>
      <comments value="For solutions that do not use network addresses for routing, it can be just an identifier."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="uri"/>
      </type>
      <condition value="cnf-3"/>
    </element>
    <element>
      <path value="Conformance.messaging.reliableCache"/>
      <short value="Reliable Message Cache Length (min)"/>
      <definition value="Length if the receiver's reliable messaging cache in minutes (if a receiver) or how long
       the cache length on the receiver should be (if a sender)."/>
      <comments value="If this value is missing then the application does not implement (receiver) or depend
       on (sender) reliable messaging."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="unsignedInt"/>
      </type>
    </element>
    <element>
      <path value="Conformance.messaging.documentation"/>
      <short value="Messaging interface behavior details"/>
      <definition value="Documentation about the system's messaging capabilities for this endpoint not otherwise
       documented by the conformance statement.  For example, process for becoming an authorized
       messaging exchange partner."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
    </element>
    <element>
      <path value="Conformance.messaging.event"/>
      <short value="Declare support for this event"/>
      <definition value="A description of the solution's support for an event at this end point."/>
      <comments value="The same event may be listed up to two times - once as sender and once as receiver."/>
      <min value="1"/>
      <max value="*"/>
    </element>
    <element>
      <path value="Conformance.messaging.event.code"/>
      <short value="Event type"/>
      <definition value="A coded identifier of a supported messaging event."/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="Coding"/>
      </type>
      <binding>
        <name value="MessageEvent"/>
        <strength value="preferred"/>
        <description value="One of the message events defined as part of FHIR"/>
        <valueSetReference>
          <reference value="http://hl7.org/fhir/vs/message-events"/>
        </valueSetReference>
      </binding>
    </element>
    <element>
      <path value="Conformance.messaging.event.category"/>
      <short value="Consequence | Currency | Notification"/>
      <definition value="The impact of the content of the message."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="code"/>
      </type>
      <binding>
        <name value="MessageSignificanceCategory"/>
        <strength value="required"/>
        <description value="The impact of the content of a message"/>
        <valueSetReference>
          <reference value="http://hl7.org/fhir/vs/message-significance-category"/>
        </valueSetReference>
      </binding>
    </element>
    <element>
      <path value="Conformance.messaging.event.mode"/>
      <short value="sender | receiver"/>
      <definition value="The mode of this event declaration - whether application is sender or receiver."/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="code"/>
      </type>
      <binding>
        <name value="ConformanceEventMode"/>
        <strength value="required"/>
        <description value="The mode of a message conformance statement"/>
        <valueSetReference>
          <reference value="http://hl7.org/fhir/vs/message-conformance-event-mode"/>
        </valueSetReference>
      </binding>
    </element>
    <element>
      <path value="Conformance.messaging.event.protocol"/>
      <short value="http | ftp | mllp +"/>
      <definition value="A list of the messaging transport protocol(s) identifiers, supported by this endpoint."/>
      <min value="0"/>
      <max value="*"/>
      <type>
        <code value="Coding"/>
      </type>
      <binding>
        <name value="MessageTransport"/>
        <strength value="required"/>
        <description value="The protocol used for message transport"/>
        <valueSetReference>
          <reference value="http://hl7.org/fhir/vs/message-transport"/>
        </valueSetReference>
      </binding>
    </element>
    <element>
      <path value="Conformance.messaging.event.focus"/>
      <short value="Resource that's focus of message"/>
      <definition value="A resource associated with the event.  This is the resource that defines the event."/>
      <comments value="This SHALL be provided if the event type supports multiple different resource types."/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="code"/>
      </type>
      <binding>
        <name value="ResourceType"/>
        <strength value="required"/>
        <description value="One of the resource types defined as part of FHIR"/>
        <valueSetReference>
          <reference value="http://hl7.org/fhir/vs/resource-types"/>
        </valueSetReference>
      </binding>
    </element>
    <element>
      <path value="Conformance.messaging.event.request"/>
      <short value="Profile that describes the request"/>
      <definition value="Information about the request for this event."/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="Reference"/>
        <profile value="http://hl7.org/fhir/StructureDefinition/StructureDefinition"/>
      </type>
    </element>
    <element>
      <path value="Conformance.messaging.event.response"/>
      <short value="Profile that describes the response"/>
      <definition value="Information about the response for this event."/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="Reference"/>
        <profile value="http://hl7.org/fhir/StructureDefinition/StructureDefinition"/>
      </type>
    </element>
    <element>
      <path value="Conformance.messaging.event.documentation"/>
      <short value="Endpoint-specific event documentation"/>
      <definition value="Guidance on how this event is handled, such as internal system trigger points, business
       rules, etc."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
    </element>
    <element>
      <path value="Conformance.document"/>
      <short value="Document definition"/>
      <definition value="A document definition."/>
      <min value="0"/>
      <max value="*"/>
      <condition value="cnf-1"/>
    </element>
    <element>
      <path value="Conformance.document.mode"/>
      <short value="producer | consumer"/>
      <definition value="Mode of this document declaration - whether application is producer or consumer."/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="code"/>
      </type>
      <binding>
        <name value="DocumentMode"/>
        <strength value="required"/>
        <description value="Whether the application produces or consumes documents"/>
        <valueSetReference>
          <reference value="http://hl7.org/fhir/vs/document-mode"/>
        </valueSetReference>
      </binding>
    </element>
    <element>
      <path value="Conformance.document.documentation"/>
      <short value="Description of document support"/>
      <definition value="A description of how the application supports or uses the specified document profile.
        For example, when are documents created, what action is taken with consumed documents,
       etc."/>
      <min value="0"/>
      <max value="1"/>
      <type>
        <code value="string"/>
      </type>
    </element>
    <element>
      <path value="Conformance.document.profile"/>
      <short value="Constraint on a resource used in the document"/>
      <definition value="A constraint on a resource used in the document."/>
      <comments value="The first resource is the document resource."/>
      <min value="1"/>
      <max value="1"/>
      <type>
        <code value="Reference"/>
        <profile value="http://hl7.org/fhir/StructureDefinition/StructureDefinition"/>
      </type>
    </element>
  </differential>
</StructureDefinition>

Usage note: every effort has been made to ensure that the examples are correct and useful, but they are not a normative part of the specification.