<StructureDefinition xmlns="http://hl7.org/fhir">
  <id value="shr-base-Author-extension" />
  <text>
    <status value="generated" />
    <div xmlns="http://www.w3.org/1999/xhtml">
      <p>
        <b>SHR Author Extension</b>
      </p>
      <p>The person or organization who created the entry and is responsible for (and may certify) the content.</p>
    </div>
  </text>
  <url value="http://standardhealthrecord.org/fhir/StructureDefinition/shr-base-Author-extension" />
  <identifier>
    <system value="http://standardhealthrecord.org" />
    <value value="shr.base.Author" />
  </identifier>
  <version value="0.0.1" />
  <name value="SHR Author Extension" />
  <title value="SHR Author Extension" />
  <status value="draft" />
  <date value="2017-12-20" />
  <publisher value="The MITRE Corporation: Standard Health Record Collaborative" />
  <contact>
    <telecom>
      <system value="url" />
      <value value="http://standardhealthrecord.org" />
    </telecom>
  </contact>
  <description value="The person or organization who created the entry and is responsible for (and may certify) the content." />
  <fhirVersion value="3.0.1" />
  <kind value="complex-type" />
  <abstract value="false" />
  <contextType value="resource" />
  <context value="*" />
  <type value="Extension" />
  <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Extension" />
  <derivation value="constraint" />
  <snapshot>
    <element id="Extension:author">
      <path value="Extension" />
      <short value="SHR Author Extension" />
      <definition value="The person or organization who created the entry and is responsible for (and may certify) the content." />
      <min value="0" />
      <max value="*" />
      <base>
        <path value="Extension" />
        <min value="0" />
        <max value="1" />
      </base>
      <condition value="ele-1" />
      <constraint>
        <key value="ele-1" />
        <severity value="error" />
        <human value="All FHIR elements must have a @value or children" />
        <expression value="children().count() &gt; id.count()" />
        <xpath value="@value|f:*|h:div" />
        <source value="Element" />
      </constraint>
      <constraint>
        <key value="ext-1" />
        <severity value="error" />
        <human value="Must have either extensions or value[x], not both" />
        <expression value="extension.exists() != value.exists()" />
        <xpath value="exists(f:extension)!=exists(f:*[starts-with(local-name(.), 'value')])" />
        <source value="Extension" />
      </constraint>
      <constraint>
        <key value="choice-1" />
        <severity value="error" />
        <human value="shr-base-Author-extension SHALL have either extension('string') or extension('patient') or extension('group') or extension('device') or extension('participant') or extension('relatedperson') or extension('organization')" />
        <expression value="( extension('string').url | extension('patient').url | extension('group').url | extension('device').url | extension('participant').url | extension('relatedperson').url | extension('organization').url ).distinct().count() == 1" />
      </constraint>
    </element>
    <element id="Extension:author.id">
      <path value="Extension.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). This may be any string value that does not contain spaces." />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="Element.id" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="string" />
      </type>
      <mapping>
        <identity value="rim" />
        <map value="N/A" />
      </mapping>
    </element>
    <element id="Extension:author.extension">
      <path value="Extension.extension" />
      <slicing id="1">
        <discriminator>
          <type value="value" />
          <path value="url" />
        </discriminator>
        <ordered value="false" />
        <rules value="open" />
      </slicing>
      <short value="Extension" />
      <definition value="An Extension" />
      <min value="0" />
      <max value="*" />
      <base>
        <path value="Element.extension" />
        <min value="0" />
        <max value="*" />
      </base>
      <type>
        <code value="Extension" />
      </type>
    </element>
    <element id="Extension:author.extension:string">
      <path value="Extension.extension" />
      <sliceName value="string" />
      <definition value="The person or organization who created the entry and is responsible for (and may certify) the content." />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="Extension.extension" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="Extension" />
        <profile value="http://standardhealthrecord.org/fhir/StructureDefinition/primitive-string-extension" />
      </type>
      <isModifier value="false" />
      <mapping>
        <identity value="rim" />
        <map value="N/A" />
      </mapping>
    </element>
    <element id="Extension:author.extension:patient">
      <path value="Extension.extension" />
      <sliceName value="patient" />
      <definition value="A person in the role of a patient, including extended demographic information about the subject of this health record." />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="Extension.extension" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="Extension" />
        <profile value="http://standardhealthrecord.org/fhir/StructureDefinition/shr-entity-Patient-extension" />
      </type>
      <isModifier value="false" />
      <mapping>
        <identity value="rim" />
        <map value="N/A" />
      </mapping>
    </element>
    <element id="Extension:author.extension:group">
      <path value="Extension.extension" />
      <sliceName value="group" />
      <definition value="A set of entities (personnel, material, or places) to be considered together. May be a pool of like-type resources, a team, or combination of personnel, material and places." />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="Extension.extension" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="Extension" />
        <profile value="http://standardhealthrecord.org/fhir/StructureDefinition/shr-entity-Group-extension" />
      </type>
      <isModifier value="false" />
      <mapping>
        <identity value="rim" />
        <map value="N/A" />
      </mapping>
    </element>
    <element id="Extension:author.extension:device">
      <path value="Extension.extension" />
      <sliceName value="device" />
      <definition value="A specific durable physical device used in diagnosis or treatment. The value is the coding for a type of device, for example, a CPAP machine. The same device might be used on multiple patients." />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="Extension.extension" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="Extension" />
        <profile value="http://standardhealthrecord.org/fhir/StructureDefinition/shr-device-Device-extension" />
      </type>
      <isModifier value="false" />
      <mapping>
        <identity value="rim" />
        <map value="N/A" />
      </mapping>
    </element>
    <element id="Extension:author.extension:participant">
      <path value="Extension.extension" />
      <sliceName value="participant" />
      <definition value="An object (usually a Person, Party, or Organization but potentially a device or other Entity) that participates in a task or activity." />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="Extension.extension" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="Extension" />
        <profile value="http://standardhealthrecord.org/fhir/StructureDefinition/shr-action-Participant-extension" />
      </type>
      <isModifier value="false" />
      <mapping>
        <identity value="rim" />
        <map value="N/A" />
      </mapping>
    </element>
    <element id="Extension:author.extension:relatedperson">
      <path value="Extension.extension" />
      <sliceName value="relatedperson" />
      <definition value="A person in a role defined in relationship to a patient" />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="Extension.extension" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="Extension" />
        <profile value="http://standardhealthrecord.org/fhir/StructureDefinition/shr-entity-RelatedPerson-extension" />
      </type>
      <isModifier value="false" />
      <mapping>
        <identity value="rim" />
        <map value="N/A" />
      </mapping>
    </element>
    <element id="Extension:author.extension:organization">
      <path value="Extension.extension" />
      <sliceName value="organization" />
      <definition value="A social or legal structure formed by human beings." />
      <min value="0" />
      <max value="1" />
      <base>
        <path value="Extension.extension" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="Extension" />
        <profile value="http://standardhealthrecord.org/fhir/StructureDefinition/shr-entity-Organization-extension" />
      </type>
      <isModifier value="false" />
      <mapping>
        <identity value="rim" />
        <map value="N/A" />
      </mapping>
    </element>
    <element id="Extension:author.url">
      <path value="Extension.url" />
      <representation value="xmlAttr" />
      <short value="identifies the meaning of the extension" />
      <definition value="Source of the definition for the extension code - a logical name or a URL." />
      <comment value="The definition may point directly to a computable or human-readable definition of the extensibility codes, or it may be a logical URI as declared in some other specification. The definition SHALL be a URI for the Structure Definition defining the extension." />
      <min value="1" />
      <max value="1" />
      <base>
        <path value="Extension.url" />
        <min value="1" />
        <max value="1" />
      </base>
      <type>
        <code value="uri" />
      </type>
      <fixedUri value="http://standardhealthrecord.org/fhir/StructureDefinition/shr-base-Author-extension" />
      <mapping>
        <identity value="rim" />
        <map value="N/A" />
      </mapping>
    </element>
    <element id="Extension:author.value[x]">
      <path value="Extension.value[x]" />
      <short value="Value of extension" />
      <definition value="Value of extension - may be a resource or one of a constrained set of the data types (see Extensibility in the spec for list)." />
      <min value="0" />
      <max value="0" />
      <base>
        <path value="Extension.value[x]" />
        <min value="0" />
        <max value="1" />
      </base>
      <type>
        <code value="base64Binary" />
      </type>
      <type>
        <code value="boolean" />
      </type>
      <type>
        <code value="code" />
      </type>
      <type>
        <code value="date" />
      </type>
      <type>
        <code value="dateTime" />
      </type>
      <type>
        <code value="decimal" />
      </type>
      <type>
        <code value="id" />
      </type>
      <type>
        <code value="instant" />
      </type>
      <type>
        <code value="integer" />
      </type>
      <type>
        <code value="markdown" />
      </type>
      <type>
        <code value="oid" />
      </type>
      <type>
        <code value="positiveInt" />
      </type>
      <type>
        <code value="string" />
      </type>
      <type>
        <code value="time" />
      </type>
      <type>
        <code value="unsignedInt" />
      </type>
      <type>
        <code value="uri" />
      </type>
      <type>
        <code value="Address" />
      </type>
      <type>
        <code value="Age" />
      </type>
      <type>
        <code value="Annotation" />
      </type>
      <type>
        <code value="Attachment" />
      </type>
      <type>
        <code value="CodeableConcept" />
      </type>
      <type>
        <code value="Coding" />
      </type>
      <type>
        <code value="ContactPoint" />
      </type>
      <type>
        <code value="Count" />
      </type>
      <type>
        <code value="Distance" />
      </type>
      <type>
        <code value="Duration" />
      </type>
      <type>
        <code value="HumanName" />
      </type>
      <type>
        <code value="Identifier" />
      </type>
      <type>
        <code value="Money" />
      </type>
      <type>
        <code value="Period" />
      </type>
      <type>
        <code value="Quantity" />
      </type>
      <type>
        <code value="Range" />
      </type>
      <type>
        <code value="Ratio" />
      </type>
      <type>
        <code value="Reference" />
      </type>
      <type>
        <code value="SampledData" />
      </type>
      <type>
        <code value="Signature" />
      </type>
      <type>
        <code value="Timing" />
      </type>
      <type>
        <code value="Meta" />
      </type>
      <mapping>
        <identity value="rim" />
        <map value="N/A" />
      </mapping>
    </element>
  </snapshot>
  <differential>
    <element id="Extension:author">
      <path value="Extension" />
      <short value="SHR Author Extension" />
      <definition value="The person or organization who created the entry and is responsible for (and may certify) the content." />
      <min value="0" />
      <max value="*" />
      <constraint>
        <key value="choice-1" />
        <severity value="error" />
        <human value="shr-base-Author-extension SHALL have either extension('string') or extension('patient') or extension('group') or extension('device') or extension('participant') or extension('relatedperson') or extension('organization')" />
        <expression value="( extension('string').url | extension('patient').url | extension('group').url | extension('device').url | extension('participant').url | extension('relatedperson').url | extension('organization').url ).distinct().count() == 1" />
      </constraint>
    </element>
    <element id="Extension:author.extension:string">
      <path value="Extension.extension" />
      <sliceName value="string" />
      <definition value="The person or organization who created the entry and is responsible for (and may certify) the content." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://standardhealthrecord.org/fhir/StructureDefinition/primitive-string-extension" />
      </type>
    </element>
    <element id="Extension:author.extension:patient">
      <path value="Extension.extension" />
      <sliceName value="patient" />
      <definition value="A person in the role of a patient, including extended demographic information about the subject of this health record." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://standardhealthrecord.org/fhir/StructureDefinition/shr-entity-Patient-extension" />
      </type>
    </element>
    <element id="Extension:author.extension:group">
      <path value="Extension.extension" />
      <sliceName value="group" />
      <definition value="A set of entities (personnel, material, or places) to be considered together. May be a pool of like-type resources, a team, or combination of personnel, material and places." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://standardhealthrecord.org/fhir/StructureDefinition/shr-entity-Group-extension" />
      </type>
    </element>
    <element id="Extension:author.extension:device">
      <path value="Extension.extension" />
      <sliceName value="device" />
      <definition value="A specific durable physical device used in diagnosis or treatment. The value is the coding for a type of device, for example, a CPAP machine. The same device might be used on multiple patients." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://standardhealthrecord.org/fhir/StructureDefinition/shr-device-Device-extension" />
      </type>
    </element>
    <element id="Extension:author.extension:participant">
      <path value="Extension.extension" />
      <sliceName value="participant" />
      <definition value="An object (usually a Person, Party, or Organization but potentially a device or other Entity) that participates in a task or activity." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://standardhealthrecord.org/fhir/StructureDefinition/shr-action-Participant-extension" />
      </type>
    </element>
    <element id="Extension:author.extension:relatedperson">
      <path value="Extension.extension" />
      <sliceName value="relatedperson" />
      <definition value="A person in a role defined in relationship to a patient" />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://standardhealthrecord.org/fhir/StructureDefinition/shr-entity-RelatedPerson-extension" />
      </type>
    </element>
    <element id="Extension:author.extension:organization">
      <path value="Extension.extension" />
      <sliceName value="organization" />
      <definition value="A social or legal structure formed by human beings." />
      <min value="0" />
      <max value="1" />
      <type>
        <code value="Extension" />
        <profile value="http://standardhealthrecord.org/fhir/StructureDefinition/shr-entity-Organization-extension" />
      </type>
    </element>
    <element id="Extension:author.url">
      <path value="Extension.url" />
      <type>
        <code value="uri" />
      </type>
      <fixedUri value="http://standardhealthrecord.org/fhir/StructureDefinition/shr-base-Author-extension" />
    </element>
    <element id="Extension:author.value[x]">
      <path value="Extension.value[x]" />
      <min value="0" />
      <max value="0" />
    </element>
  </differential>
</StructureDefinition>