erledigt

FQL on Depencencies don't work

Redering Profiles from Dependencies work:

{ {render:https://gematik.de/fhir/isik/v3/Dokumentenaustausch/StructureDefinition/ISiKDokumentenSuchergebnisse}}

typeFixed Value
total1..
fullUrl1..
resource1..ISiKDokumentenMetadaten

FQLs from Dependencies don't work

Udate: fixed in Version 2024.5.3!!

"using closure" in FQL hinzufügen

using closure
from
	StructureDefinition
where
	url = 'https://gematik.de/fhir/isik/v3/Dokumentenaustausch/StructureDefinition/ISiKDokumentenSuchergebnisse'
select
	Canonical: url, Status: status, Version: version, Basis: baseDefinition
Canonicalhttps://gematik.de/fhir/isik/v3/Dokumentenaustausch/StructureDefinition/ISiKDokumentenSuchergebnisse
Statusactive
Version3.0.0
Basishttp://hl7.org/fhir/StructureDefinition/Bundle

subject Variable in FQL

  • Is it even possible?
  • What's the correct syntax?

non condition (no subject filter is applied)

CanonicalStatusVersionBasis
https://gematik.de/fhir/isik/v3/Dokumentenaustausch/StructureDefinition/ISiKDokumentenMetadatenactive3.0.0http://hl7.org/fhir/StructureDefinition/DocumentReference
http://example.org/StructureDefinition/MeineExtensionactivehttp://hl7.org/fhir/StructureDefinition/Extension
http://fhir.de/test/StructureDefinition/MeineExtensiondraft4.0.1http://hl7.org/fhir/StructureDefinition/Extension
http://example.org/StructureDefinition/MeinPatientProfilhttp://hl7.org/fhir/StructureDefinition/Patient
http://fhir.de/test/StructureDefinition/MeinPatientProfildraft4.0.1http://hl7.org/fhir/StructureDefinition/Patient

Plain

$

Query syntax is not valid. Location: url = |$subject

%

Error: Invocation of operator '=' failed: Unknown symbol 'subject'

Ticked

Double Curls

Query syntax is not valid. Location: url = |
There is no placeholder called 'subject'

Single Curls

Query syntax is not valid. Location: url = |{subject}

Extension Trees in inactive Tabs don't show

This works

id0..1string
extensionI0..0Extension
url1..1uriFixed Value
valueStringstring
<StructureDefinition xmlns="http://hl7.org/fhir">
    <id value="MeineExtension" />
    <url value="http://example.org/StructureDefinition/MeineExtension" />
    <name value="MeineExtension" />
    <status value="active" />
    <description value="Extension f&#252;r IG Template" />
    <fhirVersion value="4.0.1" />
    <mapping>
        <identity value="rim" />
        <uri value="http://hl7.org/v3" />
        <name value="RIM Mapping" />
    </mapping>
    <kind value="complex-type" />
    <abstract value="false" />
    <context>
        <type value="element" />
        <expression value="Patient" />
    </context>
    <type value="Extension" />
    <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Extension" />
    <derivation value="constraint" />
    <differential>
        <element id="Extension">
            <path value="Extension" />
            <definition value="Extension f&#252;r IG Template" />
        </element>
        <element id="Extension.extension">
            <path value="Extension.extension" />
            <max value="0" />
        </element>
        <element id="Extension.url">
            <path value="Extension.url" />
            <fixedUri value="http://example.org/StructureDefinition/MeineExtension" />
        </element>
        <element id="Extension.value[x]">
            <path value="Extension.value[x]" />
            <type>
                <code value="string" />
            </type>
        </element>
    </differential>
</StructureDefinition>
{
    "resourceType": "StructureDefinition",
    "id": "MeineExtension",
    "url": "http://example.org/StructureDefinition/MeineExtension",
    "name": "MeineExtension",
    "status": "active",
    "description": "Extension für IG Template",
    "fhirVersion": "4.0.1",
    "mapping":  [
        {
            "identity": "rim",
            "uri": "http://hl7.org/v3",
            "name": "RIM Mapping"
        }
    ],
    "kind": "complex-type",
    "abstract": false,
    "context":  [
        {
            "type": "element",
            "expression": "Patient"
        }
    ],
    "type": "Extension",
    "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Extension",
    "derivation": "constraint",
    "differential": {
        "element":  [
            {
                "id": "Extension",
                "path": "Extension",
                "definition": "Extension für IG Template"
            },
            {
                "id": "Extension.extension",
                "path": "Extension.extension",
                "max": "0"
            },
            {
                "id": "Extension.url",
                "path": "Extension.url",
                "fixedUri": "http://example.org/StructureDefinition/MeineExtension"
            },
            {
                "id": "Extension.value[x]",
                "path": "Extension.value[x]",
                "type":  [
                    {
                        "code": "string"
                    }
                ]
            }
        ]
    }
}

This works

<StructureDefinition xmlns="http://hl7.org/fhir">
    <id value="MeineExtension" />
    <url value="http://example.org/StructureDefinition/MeineExtension" />
    <name value="MeineExtension" />
    <status value="active" />
    <description value="Extension f&#252;r IG Template" />
    <fhirVersion value="4.0.1" />
    <mapping>
        <identity value="rim" />
        <uri value="http://hl7.org/v3" />
        <name value="RIM Mapping" />
    </mapping>
    <kind value="complex-type" />
    <abstract value="false" />
    <context>
        <type value="element" />
        <expression value="Patient" />
    </context>
    <type value="Extension" />
    <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Extension" />
    <derivation value="constraint" />
    <differential>
        <element id="Extension">
            <path value="Extension" />
            <definition value="Extension f&#252;r IG Template" />
        </element>
        <element id="Extension.extension">
            <path value="Extension.extension" />
            <max value="0" />
        </element>
        <element id="Extension.url">
            <path value="Extension.url" />
            <fixedUri value="http://example.org/StructureDefinition/MeineExtension" />
        </element>
        <element id="Extension.value[x]">
            <path value="Extension.value[x]" />
            <type>
                <code value="string" />
            </type>
        </element>
    </differential>
</StructureDefinition>
{
    "resourceType": "StructureDefinition",
    "id": "MeineExtension",
    "url": "http://example.org/StructureDefinition/MeineExtension",
    "name": "MeineExtension",
    "status": "active",
    "description": "Extension für IG Template",
    "fhirVersion": "4.0.1",
    "mapping":  [
        {
            "identity": "rim",
            "uri": "http://hl7.org/v3",
            "name": "RIM Mapping"
        }
    ],
    "kind": "complex-type",
    "abstract": false,
    "context":  [
        {
            "type": "element",
            "expression": "Patient"
        }
    ],
    "type": "Extension",
    "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Extension",
    "derivation": "constraint",
    "differential": {
        "element":  [
            {
                "id": "Extension",
                "path": "Extension",
                "definition": "Extension für IG Template"
            },
            {
                "id": "Extension.extension",
                "path": "Extension.extension",
                "max": "0"
            },
            {
                "id": "Extension.url",
                "path": "Extension.url",
                "fixedUri": "http://example.org/StructureDefinition/MeineExtension"
            },
            {
                "id": "Extension.value[x]",
                "path": "Extension.value[x]",
                "type":  [
                    {
                        "code": "string"
                    }
                ]
            }
        ]
    }
}
id0..1string
extensionI0..0Extension
url1..1uriFixed Value
valueStringstring

This doesn't work (tree doesn't render)

<StructureDefinition xmlns="http://hl7.org/fhir">
    <id value="MeineExtension" />
    <url value="http://example.org/StructureDefinition/MeineExtension" />
    <name value="MeineExtension" />
    <status value="active" />
    <description value="Extension f&#252;r IG Template" />
    <fhirVersion value="4.0.1" />
    <mapping>
        <identity value="rim" />
        <uri value="http://hl7.org/v3" />
        <name value="RIM Mapping" />
    </mapping>
    <kind value="complex-type" />
    <abstract value="false" />
    <context>
        <type value="element" />
        <expression value="Patient" />
    </context>
    <type value="Extension" />
    <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Extension" />
    <derivation value="constraint" />
    <differential>
        <element id="Extension">
            <path value="Extension" />
            <definition value="Extension f&#252;r IG Template" />
        </element>
        <element id="Extension.extension">
            <path value="Extension.extension" />
            <max value="0" />
        </element>
        <element id="Extension.url">
            <path value="Extension.url" />
            <fixedUri value="http://example.org/StructureDefinition/MeineExtension" />
        </element>
        <element id="Extension.value[x]">
            <path value="Extension.value[x]" />
            <type>
                <code value="string" />
            </type>
        </element>
    </differential>
</StructureDefinition>
{
    "resourceType": "StructureDefinition",
    "id": "MeineExtension",
    "url": "http://example.org/StructureDefinition/MeineExtension",
    "name": "MeineExtension",
    "status": "active",
    "description": "Extension für IG Template",
    "fhirVersion": "4.0.1",
    "mapping":  [
        {
            "identity": "rim",
            "uri": "http://hl7.org/v3",
            "name": "RIM Mapping"
        }
    ],
    "kind": "complex-type",
    "abstract": false,
    "context":  [
        {
            "type": "element",
            "expression": "Patient"
        }
    ],
    "type": "Extension",
    "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Extension",
    "derivation": "constraint",
    "differential": {
        "element":  [
            {
                "id": "Extension",
                "path": "Extension",
                "definition": "Extension für IG Template"
            },
            {
                "id": "Extension.extension",
                "path": "Extension.extension",
                "max": "0"
            },
            {
                "id": "Extension.url",
                "path": "Extension.url",
                "fixedUri": "http://example.org/StructureDefinition/MeineExtension"
            },
            {
                "id": "Extension.value[x]",
                "path": "Extension.value[x]",
                "type":  [
                    {
                        "code": "string"
                    }
                ]
            }
        ]
    }
}
id0..1string
extensionI0..0Extension
url1..1uriFixed Value
valueStringstring

This doesn't work (tree doesn't render)

id0..1string
extensionI0..0Extension
url1..1uriFixed Value
valueStringstring
<StructureDefinition xmlns="http://hl7.org/fhir">
    <id value="MeineExtension" />
    <url value="http://example.org/StructureDefinition/MeineExtension" />
    <name value="MeineExtension" />
    <status value="active" />
    <description value="Extension f&#252;r IG Template" />
    <fhirVersion value="4.0.1" />
    <mapping>
        <identity value="rim" />
        <uri value="http://hl7.org/v3" />
        <name value="RIM Mapping" />
    </mapping>
    <kind value="complex-type" />
    <abstract value="false" />
    <context>
        <type value="element" />
        <expression value="Patient" />
    </context>
    <type value="Extension" />
    <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Extension" />
    <derivation value="constraint" />
    <differential>
        <element id="Extension">
            <path value="Extension" />
            <definition value="Extension f&#252;r IG Template" />
        </element>
        <element id="Extension.extension">
            <path value="Extension.extension" />
            <max value="0" />
        </element>
        <element id="Extension.url">
            <path value="Extension.url" />
            <fixedUri value="http://example.org/StructureDefinition/MeineExtension" />
        </element>
        <element id="Extension.value[x]">
            <path value="Extension.value[x]" />
            <type>
                <code value="string" />
            </type>
        </element>
    </differential>
</StructureDefinition>
{
    "resourceType": "StructureDefinition",
    "id": "MeineExtension",
    "url": "http://example.org/StructureDefinition/MeineExtension",
    "name": "MeineExtension",
    "status": "active",
    "description": "Extension für IG Template",
    "fhirVersion": "4.0.1",
    "mapping":  [
        {
            "identity": "rim",
            "uri": "http://hl7.org/v3",
            "name": "RIM Mapping"
        }
    ],
    "kind": "complex-type",
    "abstract": false,
    "context":  [
        {
            "type": "element",
            "expression": "Patient"
        }
    ],
    "type": "Extension",
    "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Extension",
    "derivation": "constraint",
    "differential": {
        "element":  [
            {
                "id": "Extension",
                "path": "Extension",
                "definition": "Extension für IG Template"
            },
            {
                "id": "Extension.extension",
                "path": "Extension.extension",
                "max": "0"
            },
            {
                "id": "Extension.url",
                "path": "Extension.url",
                "fixedUri": "http://example.org/StructureDefinition/MeineExtension"
            },
            {
                "id": "Extension.value[x]",
                "path": "Extension.value[x]",
                "type":  [
                    {
                        "code": "string"
                    }
                ]
            }
        ]
    }
}

Profile Trees in inactive tabs don't show

This works (tree tab is first in sequence and active by default)

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionI0..*Extension
modifierExtension?! I0..*Extension
identifierΣ0..*Identifier
activeΣ ?!0..1boolean
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
textΣ0..1string
familyS Σ I1..1string
givenS Σ1..*string
prefixS Σ0..*string
suffixΣ0..*string
periodΣ I0..1Period
telecomΣ I0..*ContactPoint
genderΣ0..1codeBinding
birthDateΣ0..1date
deceasedBooleanboolean
deceasedDateTimedateTime
addressΣ0..*Address
maritalStatus0..1CodeableConceptBinding
multipleBirthBooleanboolean
multipleBirthIntegerinteger
photoI0..*Attachment
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
relationship0..*CodeableConceptBinding
name0..1HumanName
telecomI0..*ContactPoint
address0..1Address
gender0..1codeBinding
organizationI0..1Reference(Organization)
periodI0..1Period
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
language1..1CodeableConceptBinding
preferred0..1boolean
generalPractitionerI0..*Reference(Organization | Practitioner | PractitionerRole)
managingOrganizationΣ I0..1Reference(Organization)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
otherΣ I1..1Reference(Patient | RelatedPerson)
typeΣ1..1codeBinding
<StructureDefinition xmlns="http://hl7.org/fhir">
    <id value="MeinPatientProfil" />
    <url value="http://example.org/StructureDefinition/MeinPatientProfil" />
    <name value="MeinPatientProfil" />
    <title value="Mein Patienten-Profil" />
    <description value="Beispielprofil f&#252;r IG Template. Mit noch mehr Text zu Testzwecken: Hier ist ein [link](http://gefyra.de), und eine \n  # &#220;berschrift \n  sowie \n  * eine \n  * Aufz&#228;hlung" />
    <fhirVersion value="4.0.1" />
    <mapping>
        <identity value="rim" />
        <uri value="http://hl7.org/v3" />
        <name value="RIM Mapping" />
    </mapping>
    <mapping>
        <identity value="cda" />
        <uri value="http://hl7.org/v3/cda" />
        <name value="CDA (R2)" />
    </mapping>
    <mapping>
        <identity value="w5" />
        <uri value="http://hl7.org/fhir/fivews" />
        <name value="FiveWs Pattern Mapping" />
    </mapping>
    <mapping>
        <identity value="v2" />
        <uri value="http://hl7.org/v2" />
        <name value="HL7 v2 Mapping" />
    </mapping>
    <mapping>
        <identity value="loinc" />
        <uri value="http://loinc.org" />
        <name value="LOINC code for the element" />
    </mapping>
    <mapping>
        <identity value="meinErstesPatientenMapping" />
        <uri value="Meine Datenbank" />
        <comment value="Mapping der Patientenressource auf meine Datenbank" />
    </mapping>
    <mapping>
        <identity value="meinZweitesPatientenMapping" />
        <uri value="Meine andere Datenbank" />
        <comment value="Mapping der Patientenressource auf meine andere Datenbank" />
    </mapping>
    <kind value="resource" />
    <abstract value="false" />
    <type value="Patient" />
    <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Patient" />
    <derivation value="constraint" />
    <differential>
        <element id="Patient.name">
            <path value="Patient.name" />
            <short value="Name" />
            <comment value="Der Name muss angegeben werden, um die Identit&#228;t des Patienten verifizieren zu k&#246;nnen" />
            <min value="1" />
            <mustSupport value="true" />
        </element>
        <element id="Patient.name.family">
            <path value="Patient.name.family" />
            <short value="Nachnname" />
            <comment value="Der Nachname des Patienten mit allen Bestandteilen (Vorsatzwort, Namenszusatz, Postfix etc.) muss stets asl ein *vollst&#228;ndiger* [String](http://hl7.org/fhir/datatypes.html#string) angegeben werden. **MARKDOWN-TEST!!!**" />
            <min value="1" />
            <constraint>
                <key value="nachname-check" />
                <severity value="warning" />
                <human value="Der Nachname sollte nicht l&#228;nger sein als 50 Zeichen!" />
                <expression value="length() &lt; 50" />
                <source value="http://example.org/StructureDefinition/MeinPatientProfil" />
            </constraint>
            <mustSupport value="true" />
            <mapping>
                <identity value="meinErstesPatientenMapping" />
                <map value="Person.Nachname" />
            </mapping>
            <mapping>
                <identity value="meinZweitesPatientenMapping" />
                <map value="Person.Nachname" />
            </mapping>
        </element>
        <element id="Patient.name.given">
            <path value="Patient.name.given" />
            <short value="Vorname" />
            <comment value="Der Vorname des Patienten muss stets angegeben werden. Sollte der Vorname in Ausnahmef&#228;llen nicht bekannt sein, kann die data-absent-reason-Extension verwendet werden" />
            <min value="1" />
            <mustSupport value="true" />
            <mapping>
                <identity value="meinErstesPatientenMapping" />
                <map value="Person.Vorname" />
                <comment value="Meine DB kann nur einen Vornamen speichern" />
            </mapping>
            <mapping>
                <identity value="meinZweitesPatientenMapping" />
                <map value="Person.Vorname" />
                <comment value="Meine DB kann nur einen Vornamen speichern" />
            </mapping>
        </element>
        <element id="Patient.name.prefix">
            <path value="Patient.name.prefix" />
            <short value="Titel" />
            <comment value="Die Angabe eines Titels ist optional, muss jedoch &#252;bermittelt werden, sofern bekannt." />
            <mustSupport value="true" />
            <mapping>
                <identity value="meinErstesPatientenMapping" />
                <map value="Person.Titel" />
                <comment value="In meiner DB ist nur Dr. oder Prof. erlaubt!" />
            </mapping>
            <mapping>
                <identity value="meinZweitesPatientenMapping" />
                <map value="Person.Titel" />
                <comment value="In meiner DB ist nur Dr. oder Prof. erlaubt!" />
            </mapping>
        </element>
        <element id="Patient.birthDate">
            <path value="Patient.birthDate" />
            <mapping>
                <identity value="meinErstesPatientenMapping" />
                <map value="Person.Geburtsdatum" />
                <comment value="muss in das Format DD.MM.YYYY konvertiert werden" />
            </mapping>
            <mapping>
                <identity value="meinZweitesPatientenMapping" />
                <map value="Person.Geburtsdatum" />
                <comment value="muss in das Format DD.MM.YYYY konvertiert werden" />
            </mapping>
        </element>
    </differential>
</StructureDefinition>
{
    "resourceType": "StructureDefinition",
    "id": "MeinPatientProfil",
    "url": "http://example.org/StructureDefinition/MeinPatientProfil",
    "name": "MeinPatientProfil",
    "title": "Mein Patienten-Profil",
    "description": "Beispielprofil für IG Template. Mit noch mehr Text zu Testzwecken: Hier ist ein [link](http://gefyra.de), und eine \n  # Überschrift \n  sowie \n  * eine \n  * Aufzählung ",
    "fhirVersion": "4.0.1",
    "mapping":  [
        {
            "identity": "rim",
            "uri": "http://hl7.org/v3",
            "name": "RIM Mapping"
        },
        {
            "identity": "cda",
            "uri": "http://hl7.org/v3/cda",
            "name": "CDA (R2)"
        },
        {
            "identity": "w5",
            "uri": "http://hl7.org/fhir/fivews",
            "name": "FiveWs Pattern Mapping"
        },
        {
            "identity": "v2",
            "uri": "http://hl7.org/v2",
            "name": "HL7 v2 Mapping"
        },
        {
            "identity": "loinc",
            "uri": "http://loinc.org",
            "name": "LOINC code for the element"
        },
        {
            "identity": "meinErstesPatientenMapping",
            "uri": "Meine Datenbank",
            "comment": "Mapping der Patientenressource auf meine Datenbank"
        },
        {
            "identity": "meinZweitesPatientenMapping",
            "uri": "Meine andere Datenbank",
            "comment": "Mapping der Patientenressource auf meine andere Datenbank"
        }
    ],
    "kind": "resource",
    "abstract": false,
    "type": "Patient",
    "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Patient",
    "derivation": "constraint",
    "differential": {
        "element":  [
            {
                "id": "Patient.name",
                "path": "Patient.name",
                "short": "Name",
                "comment": "Der Name muss angegeben werden, um die Identität des Patienten verifizieren zu können",
                "min": 1,
                "mustSupport": true
            },
            {
                "id": "Patient.name.family",
                "path": "Patient.name.family",
                "short": "Nachnname",
                "comment": "Der Nachname des Patienten mit allen Bestandteilen (Vorsatzwort, Namenszusatz, Postfix etc.) muss stets asl ein *vollständiger* [String](http://hl7.org/fhir/datatypes.html#string) angegeben werden. **MARKDOWN-TEST!!!**",
                "min": 1,
                "constraint":  [
                    {
                        "key": "nachname-check",
                        "severity": "warning",
                        "human": "Der Nachname sollte nicht länger sein als 50 Zeichen!",
                        "expression": "length() < 50",
                        "source": "http://example.org/StructureDefinition/MeinPatientProfil"
                    }
                ],
                "mustSupport": true,
                "mapping":  [
                    {
                        "identity": "meinErstesPatientenMapping",
                        "map": "Person.Nachname"
                    },
                    {
                        "identity": "meinZweitesPatientenMapping",
                        "map": "Person.Nachname"
                    }
                ]
            },
            {
                "id": "Patient.name.given",
                "path": "Patient.name.given",
                "short": "Vorname",
                "comment": "Der Vorname des Patienten muss stets angegeben werden. Sollte der Vorname in Ausnahmefällen nicht bekannt sein, kann die data-absent-reason-Extension verwendet werden",
                "min": 1,
                "mustSupport": true,
                "mapping":  [
                    {
                        "identity": "meinErstesPatientenMapping",
                        "map": "Person.Vorname",
                        "comment": "Meine DB kann nur einen Vornamen speichern"
                    },
                    {
                        "identity": "meinZweitesPatientenMapping",
                        "map": "Person.Vorname",
                        "comment": "Meine DB kann nur einen Vornamen speichern"
                    }
                ]
            },
            {
                "id": "Patient.name.prefix",
                "path": "Patient.name.prefix",
                "short": "Titel",
                "comment": "Die Angabe eines Titels ist optional, muss jedoch übermittelt werden, sofern bekannt.",
                "mustSupport": true,
                "mapping":  [
                    {
                        "identity": "meinErstesPatientenMapping",
                        "map": "Person.Titel",
                        "comment": "In meiner DB ist nur Dr. oder Prof. erlaubt!"
                    },
                    {
                        "identity": "meinZweitesPatientenMapping",
                        "map": "Person.Titel",
                        "comment": "In meiner DB ist nur Dr. oder Prof. erlaubt!"
                    }
                ]
            },
            {
                "id": "Patient.birthDate",
                "path": "Patient.birthDate",
                "mapping":  [
                    {
                        "identity": "meinErstesPatientenMapping",
                        "map": "Person.Geburtsdatum",
                        "comment": "muss in das Format DD.MM.YYYY konvertiert werden"
                    },
                    {
                        "identity": "meinZweitesPatientenMapping",
                        "map": "Person.Geburtsdatum",
                        "comment": "muss in das Format DD.MM.YYYY konvertiert werden"
                    }
                ]
            }
        ]
    }
}

This doesn't work (tree tab is not first in sequence and hence not active by default, tree only renders after toggeling buttons)

<StructureDefinition xmlns="http://hl7.org/fhir">
    <id value="MeinPatientProfil" />
    <url value="http://example.org/StructureDefinition/MeinPatientProfil" />
    <name value="MeinPatientProfil" />
    <title value="Mein Patienten-Profil" />
    <description value="Beispielprofil f&#252;r IG Template. Mit noch mehr Text zu Testzwecken: Hier ist ein [link](http://gefyra.de), und eine \n  # &#220;berschrift \n  sowie \n  * eine \n  * Aufz&#228;hlung" />
    <fhirVersion value="4.0.1" />
    <mapping>
        <identity value="rim" />
        <uri value="http://hl7.org/v3" />
        <name value="RIM Mapping" />
    </mapping>
    <mapping>
        <identity value="cda" />
        <uri value="http://hl7.org/v3/cda" />
        <name value="CDA (R2)" />
    </mapping>
    <mapping>
        <identity value="w5" />
        <uri value="http://hl7.org/fhir/fivews" />
        <name value="FiveWs Pattern Mapping" />
    </mapping>
    <mapping>
        <identity value="v2" />
        <uri value="http://hl7.org/v2" />
        <name value="HL7 v2 Mapping" />
    </mapping>
    <mapping>
        <identity value="loinc" />
        <uri value="http://loinc.org" />
        <name value="LOINC code for the element" />
    </mapping>
    <mapping>
        <identity value="meinErstesPatientenMapping" />
        <uri value="Meine Datenbank" />
        <comment value="Mapping der Patientenressource auf meine Datenbank" />
    </mapping>
    <mapping>
        <identity value="meinZweitesPatientenMapping" />
        <uri value="Meine andere Datenbank" />
        <comment value="Mapping der Patientenressource auf meine andere Datenbank" />
    </mapping>
    <kind value="resource" />
    <abstract value="false" />
    <type value="Patient" />
    <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Patient" />
    <derivation value="constraint" />
    <differential>
        <element id="Patient.name">
            <path value="Patient.name" />
            <short value="Name" />
            <comment value="Der Name muss angegeben werden, um die Identit&#228;t des Patienten verifizieren zu k&#246;nnen" />
            <min value="1" />
            <mustSupport value="true" />
        </element>
        <element id="Patient.name.family">
            <path value="Patient.name.family" />
            <short value="Nachnname" />
            <comment value="Der Nachname des Patienten mit allen Bestandteilen (Vorsatzwort, Namenszusatz, Postfix etc.) muss stets asl ein *vollst&#228;ndiger* [String](http://hl7.org/fhir/datatypes.html#string) angegeben werden. **MARKDOWN-TEST!!!**" />
            <min value="1" />
            <constraint>
                <key value="nachname-check" />
                <severity value="warning" />
                <human value="Der Nachname sollte nicht l&#228;nger sein als 50 Zeichen!" />
                <expression value="length() &lt; 50" />
                <source value="http://example.org/StructureDefinition/MeinPatientProfil" />
            </constraint>
            <mustSupport value="true" />
            <mapping>
                <identity value="meinErstesPatientenMapping" />
                <map value="Person.Nachname" />
            </mapping>
            <mapping>
                <identity value="meinZweitesPatientenMapping" />
                <map value="Person.Nachname" />
            </mapping>
        </element>
        <element id="Patient.name.given">
            <path value="Patient.name.given" />
            <short value="Vorname" />
            <comment value="Der Vorname des Patienten muss stets angegeben werden. Sollte der Vorname in Ausnahmef&#228;llen nicht bekannt sein, kann die data-absent-reason-Extension verwendet werden" />
            <min value="1" />
            <mustSupport value="true" />
            <mapping>
                <identity value="meinErstesPatientenMapping" />
                <map value="Person.Vorname" />
                <comment value="Meine DB kann nur einen Vornamen speichern" />
            </mapping>
            <mapping>
                <identity value="meinZweitesPatientenMapping" />
                <map value="Person.Vorname" />
                <comment value="Meine DB kann nur einen Vornamen speichern" />
            </mapping>
        </element>
        <element id="Patient.name.prefix">
            <path value="Patient.name.prefix" />
            <short value="Titel" />
            <comment value="Die Angabe eines Titels ist optional, muss jedoch &#252;bermittelt werden, sofern bekannt." />
            <mustSupport value="true" />
            <mapping>
                <identity value="meinErstesPatientenMapping" />
                <map value="Person.Titel" />
                <comment value="In meiner DB ist nur Dr. oder Prof. erlaubt!" />
            </mapping>
            <mapping>
                <identity value="meinZweitesPatientenMapping" />
                <map value="Person.Titel" />
                <comment value="In meiner DB ist nur Dr. oder Prof. erlaubt!" />
            </mapping>
        </element>
        <element id="Patient.birthDate">
            <path value="Patient.birthDate" />
            <mapping>
                <identity value="meinErstesPatientenMapping" />
                <map value="Person.Geburtsdatum" />
                <comment value="muss in das Format DD.MM.YYYY konvertiert werden" />
            </mapping>
            <mapping>
                <identity value="meinZweitesPatientenMapping" />
                <map value="Person.Geburtsdatum" />
                <comment value="muss in das Format DD.MM.YYYY konvertiert werden" />
            </mapping>
        </element>
    </differential>
</StructureDefinition>
{
    "resourceType": "StructureDefinition",
    "id": "MeinPatientProfil",
    "url": "http://example.org/StructureDefinition/MeinPatientProfil",
    "name": "MeinPatientProfil",
    "title": "Mein Patienten-Profil",
    "description": "Beispielprofil für IG Template. Mit noch mehr Text zu Testzwecken: Hier ist ein [link](http://gefyra.de), und eine \n  # Überschrift \n  sowie \n  * eine \n  * Aufzählung ",
    "fhirVersion": "4.0.1",
    "mapping":  [
        {
            "identity": "rim",
            "uri": "http://hl7.org/v3",
            "name": "RIM Mapping"
        },
        {
            "identity": "cda",
            "uri": "http://hl7.org/v3/cda",
            "name": "CDA (R2)"
        },
        {
            "identity": "w5",
            "uri": "http://hl7.org/fhir/fivews",
            "name": "FiveWs Pattern Mapping"
        },
        {
            "identity": "v2",
            "uri": "http://hl7.org/v2",
            "name": "HL7 v2 Mapping"
        },
        {
            "identity": "loinc",
            "uri": "http://loinc.org",
            "name": "LOINC code for the element"
        },
        {
            "identity": "meinErstesPatientenMapping",
            "uri": "Meine Datenbank",
            "comment": "Mapping der Patientenressource auf meine Datenbank"
        },
        {
            "identity": "meinZweitesPatientenMapping",
            "uri": "Meine andere Datenbank",
            "comment": "Mapping der Patientenressource auf meine andere Datenbank"
        }
    ],
    "kind": "resource",
    "abstract": false,
    "type": "Patient",
    "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Patient",
    "derivation": "constraint",
    "differential": {
        "element":  [
            {
                "id": "Patient.name",
                "path": "Patient.name",
                "short": "Name",
                "comment": "Der Name muss angegeben werden, um die Identität des Patienten verifizieren zu können",
                "min": 1,
                "mustSupport": true
            },
            {
                "id": "Patient.name.family",
                "path": "Patient.name.family",
                "short": "Nachnname",
                "comment": "Der Nachname des Patienten mit allen Bestandteilen (Vorsatzwort, Namenszusatz, Postfix etc.) muss stets asl ein *vollständiger* [String](http://hl7.org/fhir/datatypes.html#string) angegeben werden. **MARKDOWN-TEST!!!**",
                "min": 1,
                "constraint":  [
                    {
                        "key": "nachname-check",
                        "severity": "warning",
                        "human": "Der Nachname sollte nicht länger sein als 50 Zeichen!",
                        "expression": "length() < 50",
                        "source": "http://example.org/StructureDefinition/MeinPatientProfil"
                    }
                ],
                "mustSupport": true,
                "mapping":  [
                    {
                        "identity": "meinErstesPatientenMapping",
                        "map": "Person.Nachname"
                    },
                    {
                        "identity": "meinZweitesPatientenMapping",
                        "map": "Person.Nachname"
                    }
                ]
            },
            {
                "id": "Patient.name.given",
                "path": "Patient.name.given",
                "short": "Vorname",
                "comment": "Der Vorname des Patienten muss stets angegeben werden. Sollte der Vorname in Ausnahmefällen nicht bekannt sein, kann die data-absent-reason-Extension verwendet werden",
                "min": 1,
                "mustSupport": true,
                "mapping":  [
                    {
                        "identity": "meinErstesPatientenMapping",
                        "map": "Person.Vorname",
                        "comment": "Meine DB kann nur einen Vornamen speichern"
                    },
                    {
                        "identity": "meinZweitesPatientenMapping",
                        "map": "Person.Vorname",
                        "comment": "Meine DB kann nur einen Vornamen speichern"
                    }
                ]
            },
            {
                "id": "Patient.name.prefix",
                "path": "Patient.name.prefix",
                "short": "Titel",
                "comment": "Die Angabe eines Titels ist optional, muss jedoch übermittelt werden, sofern bekannt.",
                "mustSupport": true,
                "mapping":  [
                    {
                        "identity": "meinErstesPatientenMapping",
                        "map": "Person.Titel",
                        "comment": "In meiner DB ist nur Dr. oder Prof. erlaubt!"
                    },
                    {
                        "identity": "meinZweitesPatientenMapping",
                        "map": "Person.Titel",
                        "comment": "In meiner DB ist nur Dr. oder Prof. erlaubt!"
                    }
                ]
            },
            {
                "id": "Patient.birthDate",
                "path": "Patient.birthDate",
                "mapping":  [
                    {
                        "identity": "meinErstesPatientenMapping",
                        "map": "Person.Geburtsdatum",
                        "comment": "muss in das Format DD.MM.YYYY konvertiert werden"
                    },
                    {
                        "identity": "meinZweitesPatientenMapping",
                        "map": "Person.Geburtsdatum",
                        "comment": "muss in das Format DD.MM.YYYY konvertiert werden"
                    }
                ]
            }
        ]
    }
}
idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionI0..*Extension
modifierExtension?! I0..*Extension
identifierΣ0..*Identifier
activeΣ ?!0..1boolean
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
textΣ0..1string
familyS Σ I1..1string
givenS Σ1..*string
prefixS Σ0..*string
suffixΣ0..*string
periodΣ I0..1Period
telecomΣ I0..*ContactPoint
genderΣ0..1codeBinding
birthDateΣ0..1date
deceasedBooleanboolean
deceasedDateTimedateTime
addressΣ0..*Address
maritalStatus0..1CodeableConceptBinding
multipleBirthBooleanboolean
multipleBirthIntegerinteger
photoI0..*Attachment
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
relationship0..*CodeableConceptBinding
name0..1HumanName
telecomI0..*ContactPoint
address0..1Address
gender0..1codeBinding
organizationI0..1Reference(Organization)
periodI0..1Period
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
language1..1CodeableConceptBinding
preferred0..1boolean
generalPractitionerI0..*Reference(Organization | Practitioner | PractitionerRole)
managingOrganizationΣ I0..1Reference(Organization)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
otherΣ I1..1Reference(Patient | RelatedPerson)
typeΣ1..1codeBinding

This works (tree tab is fixed to snapshot view, works in any tab order)

<StructureDefinition xmlns="http://hl7.org/fhir">
    <id value="MeinPatientProfil" />
    <url value="http://example.org/StructureDefinition/MeinPatientProfil" />
    <name value="MeinPatientProfil" />
    <title value="Mein Patienten-Profil" />
    <description value="Beispielprofil f&#252;r IG Template. Mit noch mehr Text zu Testzwecken: Hier ist ein [link](http://gefyra.de), und eine \n  # &#220;berschrift \n  sowie \n  * eine \n  * Aufz&#228;hlung" />
    <fhirVersion value="4.0.1" />
    <mapping>
        <identity value="rim" />
        <uri value="http://hl7.org/v3" />
        <name value="RIM Mapping" />
    </mapping>
    <mapping>
        <identity value="cda" />
        <uri value="http://hl7.org/v3/cda" />
        <name value="CDA (R2)" />
    </mapping>
    <mapping>
        <identity value="w5" />
        <uri value="http://hl7.org/fhir/fivews" />
        <name value="FiveWs Pattern Mapping" />
    </mapping>
    <mapping>
        <identity value="v2" />
        <uri value="http://hl7.org/v2" />
        <name value="HL7 v2 Mapping" />
    </mapping>
    <mapping>
        <identity value="loinc" />
        <uri value="http://loinc.org" />
        <name value="LOINC code for the element" />
    </mapping>
    <mapping>
        <identity value="meinErstesPatientenMapping" />
        <uri value="Meine Datenbank" />
        <comment value="Mapping der Patientenressource auf meine Datenbank" />
    </mapping>
    <mapping>
        <identity value="meinZweitesPatientenMapping" />
        <uri value="Meine andere Datenbank" />
        <comment value="Mapping der Patientenressource auf meine andere Datenbank" />
    </mapping>
    <kind value="resource" />
    <abstract value="false" />
    <type value="Patient" />
    <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Patient" />
    <derivation value="constraint" />
    <differential>
        <element id="Patient.name">
            <path value="Patient.name" />
            <short value="Name" />
            <comment value="Der Name muss angegeben werden, um die Identit&#228;t des Patienten verifizieren zu k&#246;nnen" />
            <min value="1" />
            <mustSupport value="true" />
        </element>
        <element id="Patient.name.family">
            <path value="Patient.name.family" />
            <short value="Nachnname" />
            <comment value="Der Nachname des Patienten mit allen Bestandteilen (Vorsatzwort, Namenszusatz, Postfix etc.) muss stets asl ein *vollst&#228;ndiger* [String](http://hl7.org/fhir/datatypes.html#string) angegeben werden. **MARKDOWN-TEST!!!**" />
            <min value="1" />
            <constraint>
                <key value="nachname-check" />
                <severity value="warning" />
                <human value="Der Nachname sollte nicht l&#228;nger sein als 50 Zeichen!" />
                <expression value="length() &lt; 50" />
                <source value="http://example.org/StructureDefinition/MeinPatientProfil" />
            </constraint>
            <mustSupport value="true" />
            <mapping>
                <identity value="meinErstesPatientenMapping" />
                <map value="Person.Nachname" />
            </mapping>
            <mapping>
                <identity value="meinZweitesPatientenMapping" />
                <map value="Person.Nachname" />
            </mapping>
        </element>
        <element id="Patient.name.given">
            <path value="Patient.name.given" />
            <short value="Vorname" />
            <comment value="Der Vorname des Patienten muss stets angegeben werden. Sollte der Vorname in Ausnahmef&#228;llen nicht bekannt sein, kann die data-absent-reason-Extension verwendet werden" />
            <min value="1" />
            <mustSupport value="true" />
            <mapping>
                <identity value="meinErstesPatientenMapping" />
                <map value="Person.Vorname" />
                <comment value="Meine DB kann nur einen Vornamen speichern" />
            </mapping>
            <mapping>
                <identity value="meinZweitesPatientenMapping" />
                <map value="Person.Vorname" />
                <comment value="Meine DB kann nur einen Vornamen speichern" />
            </mapping>
        </element>
        <element id="Patient.name.prefix">
            <path value="Patient.name.prefix" />
            <short value="Titel" />
            <comment value="Die Angabe eines Titels ist optional, muss jedoch &#252;bermittelt werden, sofern bekannt." />
            <mustSupport value="true" />
            <mapping>
                <identity value="meinErstesPatientenMapping" />
                <map value="Person.Titel" />
                <comment value="In meiner DB ist nur Dr. oder Prof. erlaubt!" />
            </mapping>
            <mapping>
                <identity value="meinZweitesPatientenMapping" />
                <map value="Person.Titel" />
                <comment value="In meiner DB ist nur Dr. oder Prof. erlaubt!" />
            </mapping>
        </element>
        <element id="Patient.birthDate">
            <path value="Patient.birthDate" />
            <mapping>
                <identity value="meinErstesPatientenMapping" />
                <map value="Person.Geburtsdatum" />
                <comment value="muss in das Format DD.MM.YYYY konvertiert werden" />
            </mapping>
            <mapping>
                <identity value="meinZweitesPatientenMapping" />
                <map value="Person.Geburtsdatum" />
                <comment value="muss in das Format DD.MM.YYYY konvertiert werden" />
            </mapping>
        </element>
    </differential>
</StructureDefinition>
{
    "resourceType": "StructureDefinition",
    "id": "MeinPatientProfil",
    "url": "http://example.org/StructureDefinition/MeinPatientProfil",
    "name": "MeinPatientProfil",
    "title": "Mein Patienten-Profil",
    "description": "Beispielprofil für IG Template. Mit noch mehr Text zu Testzwecken: Hier ist ein [link](http://gefyra.de), und eine \n  # Überschrift \n  sowie \n  * eine \n  * Aufzählung ",
    "fhirVersion": "4.0.1",
    "mapping":  [
        {
            "identity": "rim",
            "uri": "http://hl7.org/v3",
            "name": "RIM Mapping"
        },
        {
            "identity": "cda",
            "uri": "http://hl7.org/v3/cda",
            "name": "CDA (R2)"
        },
        {
            "identity": "w5",
            "uri": "http://hl7.org/fhir/fivews",
            "name": "FiveWs Pattern Mapping"
        },
        {
            "identity": "v2",
            "uri": "http://hl7.org/v2",
            "name": "HL7 v2 Mapping"
        },
        {
            "identity": "loinc",
            "uri": "http://loinc.org",
            "name": "LOINC code for the element"
        },
        {
            "identity": "meinErstesPatientenMapping",
            "uri": "Meine Datenbank",
            "comment": "Mapping der Patientenressource auf meine Datenbank"
        },
        {
            "identity": "meinZweitesPatientenMapping",
            "uri": "Meine andere Datenbank",
            "comment": "Mapping der Patientenressource auf meine andere Datenbank"
        }
    ],
    "kind": "resource",
    "abstract": false,
    "type": "Patient",
    "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Patient",
    "derivation": "constraint",
    "differential": {
        "element":  [
            {
                "id": "Patient.name",
                "path": "Patient.name",
                "short": "Name",
                "comment": "Der Name muss angegeben werden, um die Identität des Patienten verifizieren zu können",
                "min": 1,
                "mustSupport": true
            },
            {
                "id": "Patient.name.family",
                "path": "Patient.name.family",
                "short": "Nachnname",
                "comment": "Der Nachname des Patienten mit allen Bestandteilen (Vorsatzwort, Namenszusatz, Postfix etc.) muss stets asl ein *vollständiger* [String](http://hl7.org/fhir/datatypes.html#string) angegeben werden. **MARKDOWN-TEST!!!**",
                "min": 1,
                "constraint":  [
                    {
                        "key": "nachname-check",
                        "severity": "warning",
                        "human": "Der Nachname sollte nicht länger sein als 50 Zeichen!",
                        "expression": "length() < 50",
                        "source": "http://example.org/StructureDefinition/MeinPatientProfil"
                    }
                ],
                "mustSupport": true,
                "mapping":  [
                    {
                        "identity": "meinErstesPatientenMapping",
                        "map": "Person.Nachname"
                    },
                    {
                        "identity": "meinZweitesPatientenMapping",
                        "map": "Person.Nachname"
                    }
                ]
            },
            {
                "id": "Patient.name.given",
                "path": "Patient.name.given",
                "short": "Vorname",
                "comment": "Der Vorname des Patienten muss stets angegeben werden. Sollte der Vorname in Ausnahmefällen nicht bekannt sein, kann die data-absent-reason-Extension verwendet werden",
                "min": 1,
                "mustSupport": true,
                "mapping":  [
                    {
                        "identity": "meinErstesPatientenMapping",
                        "map": "Person.Vorname",
                        "comment": "Meine DB kann nur einen Vornamen speichern"
                    },
                    {
                        "identity": "meinZweitesPatientenMapping",
                        "map": "Person.Vorname",
                        "comment": "Meine DB kann nur einen Vornamen speichern"
                    }
                ]
            },
            {
                "id": "Patient.name.prefix",
                "path": "Patient.name.prefix",
                "short": "Titel",
                "comment": "Die Angabe eines Titels ist optional, muss jedoch übermittelt werden, sofern bekannt.",
                "mustSupport": true,
                "mapping":  [
                    {
                        "identity": "meinErstesPatientenMapping",
                        "map": "Person.Titel",
                        "comment": "In meiner DB ist nur Dr. oder Prof. erlaubt!"
                    },
                    {
                        "identity": "meinZweitesPatientenMapping",
                        "map": "Person.Titel",
                        "comment": "In meiner DB ist nur Dr. oder Prof. erlaubt!"
                    }
                ]
            },
            {
                "id": "Patient.birthDate",
                "path": "Patient.birthDate",
                "mapping":  [
                    {
                        "identity": "meinErstesPatientenMapping",
                        "map": "Person.Geburtsdatum",
                        "comment": "muss in das Format DD.MM.YYYY konvertiert werden"
                    },
                    {
                        "identity": "meinZweitesPatientenMapping",
                        "map": "Person.Geburtsdatum",
                        "comment": "muss in das Format DD.MM.YYYY konvertiert werden"
                    }
                ]
            }
        ]
    }
}
idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionI0..*Extension
modifierExtension?! I0..*Extension
identifierΣ0..*Identifier
activeΣ ?!0..1boolean
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
textΣ0..1string
familyS Σ I1..1string
givenS Σ1..*string
prefixS Σ0..*string
suffixΣ0..*string
periodΣ I0..1Period
telecomΣ I0..*ContactPoint
genderΣ0..1codeBinding
birthDateΣ0..1date
deceasedBooleanboolean
deceasedDateTimedateTime
addressΣ0..*Address
maritalStatus0..1CodeableConceptBinding
multipleBirthBooleanboolean
multipleBirthIntegerinteger
photoI0..*Attachment
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
relationship0..*CodeableConceptBinding
name0..1HumanName
telecomI0..*ContactPoint
address0..1Address
gender0..1codeBinding
organizationI0..1Reference(Organization)
periodI0..1Period
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
language1..1CodeableConceptBinding
preferred0..1boolean
generalPractitionerI0..*Reference(Organization | Practitioner | PractitionerRole)
managingOrganizationΣ I0..1Reference(Organization)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
otherΣ I1..1Reference(Patient | RelatedPerson)
typeΣ1..1codeBinding

This works (tree tab is last in sequence but forced active)

<StructureDefinition xmlns="http://hl7.org/fhir">
    <id value="MeinPatientProfil" />
    <url value="http://example.org/StructureDefinition/MeinPatientProfil" />
    <name value="MeinPatientProfil" />
    <title value="Mein Patienten-Profil" />
    <description value="Beispielprofil f&#252;r IG Template. Mit noch mehr Text zu Testzwecken: Hier ist ein [link](http://gefyra.de), und eine \n  # &#220;berschrift \n  sowie \n  * eine \n  * Aufz&#228;hlung" />
    <fhirVersion value="4.0.1" />
    <mapping>
        <identity value="rim" />
        <uri value="http://hl7.org/v3" />
        <name value="RIM Mapping" />
    </mapping>
    <mapping>
        <identity value="cda" />
        <uri value="http://hl7.org/v3/cda" />
        <name value="CDA (R2)" />
    </mapping>
    <mapping>
        <identity value="w5" />
        <uri value="http://hl7.org/fhir/fivews" />
        <name value="FiveWs Pattern Mapping" />
    </mapping>
    <mapping>
        <identity value="v2" />
        <uri value="http://hl7.org/v2" />
        <name value="HL7 v2 Mapping" />
    </mapping>
    <mapping>
        <identity value="loinc" />
        <uri value="http://loinc.org" />
        <name value="LOINC code for the element" />
    </mapping>
    <mapping>
        <identity value="meinErstesPatientenMapping" />
        <uri value="Meine Datenbank" />
        <comment value="Mapping der Patientenressource auf meine Datenbank" />
    </mapping>
    <mapping>
        <identity value="meinZweitesPatientenMapping" />
        <uri value="Meine andere Datenbank" />
        <comment value="Mapping der Patientenressource auf meine andere Datenbank" />
    </mapping>
    <kind value="resource" />
    <abstract value="false" />
    <type value="Patient" />
    <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Patient" />
    <derivation value="constraint" />
    <differential>
        <element id="Patient.name">
            <path value="Patient.name" />
            <short value="Name" />
            <comment value="Der Name muss angegeben werden, um die Identit&#228;t des Patienten verifizieren zu k&#246;nnen" />
            <min value="1" />
            <mustSupport value="true" />
        </element>
        <element id="Patient.name.family">
            <path value="Patient.name.family" />
            <short value="Nachnname" />
            <comment value="Der Nachname des Patienten mit allen Bestandteilen (Vorsatzwort, Namenszusatz, Postfix etc.) muss stets asl ein *vollst&#228;ndiger* [String](http://hl7.org/fhir/datatypes.html#string) angegeben werden. **MARKDOWN-TEST!!!**" />
            <min value="1" />
            <constraint>
                <key value="nachname-check" />
                <severity value="warning" />
                <human value="Der Nachname sollte nicht l&#228;nger sein als 50 Zeichen!" />
                <expression value="length() &lt; 50" />
                <source value="http://example.org/StructureDefinition/MeinPatientProfil" />
            </constraint>
            <mustSupport value="true" />
            <mapping>
                <identity value="meinErstesPatientenMapping" />
                <map value="Person.Nachname" />
            </mapping>
            <mapping>
                <identity value="meinZweitesPatientenMapping" />
                <map value="Person.Nachname" />
            </mapping>
        </element>
        <element id="Patient.name.given">
            <path value="Patient.name.given" />
            <short value="Vorname" />
            <comment value="Der Vorname des Patienten muss stets angegeben werden. Sollte der Vorname in Ausnahmef&#228;llen nicht bekannt sein, kann die data-absent-reason-Extension verwendet werden" />
            <min value="1" />
            <mustSupport value="true" />
            <mapping>
                <identity value="meinErstesPatientenMapping" />
                <map value="Person.Vorname" />
                <comment value="Meine DB kann nur einen Vornamen speichern" />
            </mapping>
            <mapping>
                <identity value="meinZweitesPatientenMapping" />
                <map value="Person.Vorname" />
                <comment value="Meine DB kann nur einen Vornamen speichern" />
            </mapping>
        </element>
        <element id="Patient.name.prefix">
            <path value="Patient.name.prefix" />
            <short value="Titel" />
            <comment value="Die Angabe eines Titels ist optional, muss jedoch &#252;bermittelt werden, sofern bekannt." />
            <mustSupport value="true" />
            <mapping>
                <identity value="meinErstesPatientenMapping" />
                <map value="Person.Titel" />
                <comment value="In meiner DB ist nur Dr. oder Prof. erlaubt!" />
            </mapping>
            <mapping>
                <identity value="meinZweitesPatientenMapping" />
                <map value="Person.Titel" />
                <comment value="In meiner DB ist nur Dr. oder Prof. erlaubt!" />
            </mapping>
        </element>
        <element id="Patient.birthDate">
            <path value="Patient.birthDate" />
            <mapping>
                <identity value="meinErstesPatientenMapping" />
                <map value="Person.Geburtsdatum" />
                <comment value="muss in das Format DD.MM.YYYY konvertiert werden" />
            </mapping>
            <mapping>
                <identity value="meinZweitesPatientenMapping" />
                <map value="Person.Geburtsdatum" />
                <comment value="muss in das Format DD.MM.YYYY konvertiert werden" />
            </mapping>
        </element>
    </differential>
</StructureDefinition>
{
    "resourceType": "StructureDefinition",
    "id": "MeinPatientProfil",
    "url": "http://example.org/StructureDefinition/MeinPatientProfil",
    "name": "MeinPatientProfil",
    "title": "Mein Patienten-Profil",
    "description": "Beispielprofil für IG Template. Mit noch mehr Text zu Testzwecken: Hier ist ein [link](http://gefyra.de), und eine \n  # Überschrift \n  sowie \n  * eine \n  * Aufzählung ",
    "fhirVersion": "4.0.1",
    "mapping":  [
        {
            "identity": "rim",
            "uri": "http://hl7.org/v3",
            "name": "RIM Mapping"
        },
        {
            "identity": "cda",
            "uri": "http://hl7.org/v3/cda",
            "name": "CDA (R2)"
        },
        {
            "identity": "w5",
            "uri": "http://hl7.org/fhir/fivews",
            "name": "FiveWs Pattern Mapping"
        },
        {
            "identity": "v2",
            "uri": "http://hl7.org/v2",
            "name": "HL7 v2 Mapping"
        },
        {
            "identity": "loinc",
            "uri": "http://loinc.org",
            "name": "LOINC code for the element"
        },
        {
            "identity": "meinErstesPatientenMapping",
            "uri": "Meine Datenbank",
            "comment": "Mapping der Patientenressource auf meine Datenbank"
        },
        {
            "identity": "meinZweitesPatientenMapping",
            "uri": "Meine andere Datenbank",
            "comment": "Mapping der Patientenressource auf meine andere Datenbank"
        }
    ],
    "kind": "resource",
    "abstract": false,
    "type": "Patient",
    "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Patient",
    "derivation": "constraint",
    "differential": {
        "element":  [
            {
                "id": "Patient.name",
                "path": "Patient.name",
                "short": "Name",
                "comment": "Der Name muss angegeben werden, um die Identität des Patienten verifizieren zu können",
                "min": 1,
                "mustSupport": true
            },
            {
                "id": "Patient.name.family",
                "path": "Patient.name.family",
                "short": "Nachnname",
                "comment": "Der Nachname des Patienten mit allen Bestandteilen (Vorsatzwort, Namenszusatz, Postfix etc.) muss stets asl ein *vollständiger* [String](http://hl7.org/fhir/datatypes.html#string) angegeben werden. **MARKDOWN-TEST!!!**",
                "min": 1,
                "constraint":  [
                    {
                        "key": "nachname-check",
                        "severity": "warning",
                        "human": "Der Nachname sollte nicht länger sein als 50 Zeichen!",
                        "expression": "length() < 50",
                        "source": "http://example.org/StructureDefinition/MeinPatientProfil"
                    }
                ],
                "mustSupport": true,
                "mapping":  [
                    {
                        "identity": "meinErstesPatientenMapping",
                        "map": "Person.Nachname"
                    },
                    {
                        "identity": "meinZweitesPatientenMapping",
                        "map": "Person.Nachname"
                    }
                ]
            },
            {
                "id": "Patient.name.given",
                "path": "Patient.name.given",
                "short": "Vorname",
                "comment": "Der Vorname des Patienten muss stets angegeben werden. Sollte der Vorname in Ausnahmefällen nicht bekannt sein, kann die data-absent-reason-Extension verwendet werden",
                "min": 1,
                "mustSupport": true,
                "mapping":  [
                    {
                        "identity": "meinErstesPatientenMapping",
                        "map": "Person.Vorname",
                        "comment": "Meine DB kann nur einen Vornamen speichern"
                    },
                    {
                        "identity": "meinZweitesPatientenMapping",
                        "map": "Person.Vorname",
                        "comment": "Meine DB kann nur einen Vornamen speichern"
                    }
                ]
            },
            {
                "id": "Patient.name.prefix",
                "path": "Patient.name.prefix",
                "short": "Titel",
                "comment": "Die Angabe eines Titels ist optional, muss jedoch übermittelt werden, sofern bekannt.",
                "mustSupport": true,
                "mapping":  [
                    {
                        "identity": "meinErstesPatientenMapping",
                        "map": "Person.Titel",
                        "comment": "In meiner DB ist nur Dr. oder Prof. erlaubt!"
                    },
                    {
                        "identity": "meinZweitesPatientenMapping",
                        "map": "Person.Titel",
                        "comment": "In meiner DB ist nur Dr. oder Prof. erlaubt!"
                    }
                ]
            },
            {
                "id": "Patient.birthDate",
                "path": "Patient.birthDate",
                "mapping":  [
                    {
                        "identity": "meinErstesPatientenMapping",
                        "map": "Person.Geburtsdatum",
                        "comment": "muss in das Format DD.MM.YYYY konvertiert werden"
                    },
                    {
                        "identity": "meinZweitesPatientenMapping",
                        "map": "Person.Geburtsdatum",
                        "comment": "muss in das Format DD.MM.YYYY konvertiert werden"
                    }
                ]
            }
        ]
    }
}
idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionI0..*Extension
modifierExtension?! I0..*Extension
identifierΣ0..*Identifier
activeΣ ?!0..1boolean
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
textΣ0..1string
familyS Σ I1..1string
givenS Σ1..*string
prefixS Σ0..*string
suffixΣ0..*string
periodΣ I0..1Period
telecomΣ I0..*ContactPoint
genderΣ0..1codeBinding
birthDateΣ0..1date
deceasedBooleanboolean
deceasedDateTimedateTime
addressΣ0..*Address
maritalStatus0..1CodeableConceptBinding
multipleBirthBooleanboolean
multipleBirthIntegerinteger
photoI0..*Attachment
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
relationship0..*CodeableConceptBinding
name0..1HumanName
telecomI0..*ContactPoint
address0..1Address
gender0..1codeBinding
organizationI0..1Reference(Organization)
periodI0..1Period
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
language1..1CodeableConceptBinding
preferred0..1boolean
generalPractitionerI0..*Reference(Organization | Practitioner | PractitionerRole)
managingOrganizationΣ I0..1Reference(Organization)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
otherΣ I1..1Reference(Patient | RelatedPerson)
typeΣ1..1codeBinding

render/tree expansion for examples

Neither form changes the expand level if subject is an instance instead of a profile

render command

page default expand level

Patient

expand: 1

Patient

expand: 3

Patient

tree command

page default expand level

Patient

expand: 1

Patient

expand: 3

Patient

render/tree expansion for profiles

Neither form changes the expand level if subject is an instance instead of a profile

render command

page default expand level

familyS I1..
givenS1..
prefixS
birthDate

expand: 1

familyS I1..
givenS1..
prefixS
birthDate

expand: 3

familyS I1..
givenS1..
prefixS
birthDate

tree command

page default expand level

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionI0..*Extension
modifierExtension?! I0..*Extension
identifierΣ0..*Identifier
activeΣ ?!0..1boolean
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
textΣ0..1string
familyS Σ I1..1string
givenS Σ1..*string
prefixS Σ0..*string
suffixΣ0..*string
periodΣ I0..1Period
telecomΣ I0..*ContactPoint
genderΣ0..1codeBinding
birthDateΣ0..1date
deceasedBooleanboolean
deceasedDateTimedateTime
addressΣ0..*Address
maritalStatus0..1CodeableConceptBinding
multipleBirthBooleanboolean
multipleBirthIntegerinteger
photoI0..*Attachment
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
relationship0..*CodeableConceptBinding
name0..1HumanName
telecomI0..*ContactPoint
address0..1Address
gender0..1codeBinding
organizationI0..1Reference(Organization)
periodI0..1Period
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
language1..1CodeableConceptBinding
preferred0..1boolean
generalPractitionerI0..*Reference(Organization | Practitioner | PractitionerRole)
managingOrganizationΣ I0..1Reference(Organization)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
otherΣ I1..1Reference(Patient | RelatedPerson)
typeΣ1..1codeBinding

expand: 1

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionI0..*Extension
modifierExtension?! I0..*Extension
identifierΣ0..*Identifier
activeΣ ?!0..1boolean
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
textΣ0..1string
familyS Σ I1..1string
givenS Σ1..*string
prefixS Σ0..*string
suffixΣ0..*string
periodΣ I0..1Period
telecomΣ I0..*ContactPoint
genderΣ0..1codeBinding
birthDateΣ0..1date
deceasedBooleanboolean
deceasedDateTimedateTime
addressΣ0..*Address
maritalStatus0..1CodeableConceptBinding
multipleBirthBooleanboolean
multipleBirthIntegerinteger
photoI0..*Attachment
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
relationship0..*CodeableConceptBinding
name0..1HumanName
telecomI0..*ContactPoint
address0..1Address
gender0..1codeBinding
organizationI0..1Reference(Organization)
periodI0..1Period
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
language1..1CodeableConceptBinding
preferred0..1boolean
generalPractitionerI0..*Reference(Organization | Practitioner | PractitionerRole)
managingOrganizationΣ I0..1Reference(Organization)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
otherΣ I1..1Reference(Patient | RelatedPerson)
typeΣ1..1codeBinding

expand: 3

idΣ0..1string
metaΣ0..1Meta
implicitRulesΣ ?!0..1uri
language0..1codeBinding
text0..1Narrative
contained0..*Resource
extensionI0..*Extension
modifierExtension?! I0..*Extension
identifierΣ0..*Identifier
activeΣ ?!0..1boolean
id0..1string
extensionI0..*Extension
useΣ ?!0..1codeBinding
textΣ0..1string
familyS Σ I1..1string
givenS Σ1..*string
prefixS Σ0..*string
suffixΣ0..*string
periodΣ I0..1Period
telecomΣ I0..*ContactPoint
genderΣ0..1codeBinding
birthDateΣ0..1date
deceasedBooleanboolean
deceasedDateTimedateTime
addressΣ0..*Address
maritalStatus0..1CodeableConceptBinding
multipleBirthBooleanboolean
multipleBirthIntegerinteger
photoI0..*Attachment
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
relationship0..*CodeableConceptBinding
name0..1HumanName
telecomI0..*ContactPoint
address0..1Address
gender0..1codeBinding
organizationI0..1Reference(Organization)
periodI0..1Period
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
language1..1CodeableConceptBinding
preferred0..1boolean
generalPractitionerI0..*Reference(Organization | Practitioner | PractitionerRole)
managingOrganizationΣ I0..1Reference(Organization)
id0..1string
extensionI0..*Extension
modifierExtensionΣ ?! I0..*Extension
otherΣ I1..1Reference(Patient | RelatedPerson)
typeΣ1..1codeBinding