Ressourcen-Profile

Hinweis Diese Box bitte entfernen!
Information Diese Seite ist ein Template, das bei Verwendung für ein konkretes Projekt angepasst werden muss! Dieses Banner kann verwendet werden, um zu kennzeichnen, welche Seiten noch nicht bearbeitet wurden, sich gerade in Arbeit befinden oder um auf offene Punkte hinzuweisen.
Um das Template an ein konkretes Ressourcenprofil anzupassen, müssen dessen Canonical sowie der Ressourcentyp im Seitenheader angepasst werden! Die Seite muss umbenannt werden von Template -> Profilname
Wenn ein CapabilityStatement vorhanden ist und der Abschnitt RESTful-API gefüllt werden soll, muss im Header zusätlich die Canoncial des CapabilityStatements angeben werden. Falls nicht, sollte der Abschnitt RESTFul-API durch eine geeignete Beschreibung des verwendeten Paradigmas ersetzt werden.

Metadaten

Canonicalhttp://fhir.de/test/StructureDefinition/MeinPatientProfil
Statusdraft
Version4.0.1
Basishttp://hl7.org/fhir/StructureDefinition/Patient

Inhalt

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

Beispielprofil für IG Template. Mit noch mehr Text zu Testzwecken: Hier ist ein link, und eine

Überschrift

sowie

  • eine
  • Aufzählung
FeldnameKurzbeschreibungHinweise
Patient.nameName

Der Name muss angegeben werden, um die Identität des Patienten verifizieren zu können

Patient.name.familyNachnname

Der Nachname des Patienten mit allen Bestandteilen (Vorsatzwort, Namenszusatz, Postfix etc.) muss stets asl ein vollständiger String angegeben werden. MARKDOWN-TEST!!!

Patient.name.givenVorname

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

Patient.name.prefixTitel

Die Angabe eines Titels ist optional, muss jedoch übermittelt werden, sofern bekannt.

<StructureDefinition xmlns="http://hl7.org/fhir">
    <id value="MeinPatientProfil" />
    <url value="http://fhir.de/test/StructureDefinition/MeinPatientProfil" />
    <version value="4.0.1" />
    <name value="MeinPatientProfil" />
    <title value="Mein Patienten-Profil" />
    <status value="draft" />
    <experimental value="true" />
    <date value="2024-10-22" />
    <publisher value="HL7 Deutschland e.V." />
    <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="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://fhir.de/test/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://fhir.de/test/StructureDefinition/MeinPatientProfil",
    "version": "4.0.1",
    "name": "MeinPatientProfil",
    "title": "Mein Patienten-Profil",
    "status": "draft",
    "experimental": true,
    "date": "2024-10-22",
    "publisher": "HL7 Deutschland e.V.",
    "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": "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",
                        "human": "Der Nachname sollte nicht länger sein als 50 Zeichen!",
                        "source": "http://fhir.de/test/StructureDefinition/MeinPatientProfil",
                        "severity": "warning",
                        "expression": "length() < 50"
                    }
                ],
                "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"
                    }
                ]
            }
        ]
    }
}

Terminology-Bindings

Constraints/Invarianten

NameSchweregradBeschreibungAusdruck
nachname-checkwarningDer Nachname sollte nicht länger sein als 50 Zeichen!length() < 50

RestFul API

Hier sollte eine Erläuterung stehen, wie und wofür die konkrete Ressource verwendet wird und ggf. warum deren Implementierung verpflichtend ist.

InteraktionHinweiseVerbindlichkeit
read

Hier können Hinweise zu der Interaktion stehen.

SHALL
search-type

Hier können Hinweise zu der Interaktion stehen.

SHALL
ParameterTypVerbindlichkeitHinweise
identifiertokenSHALL

Beispiel:
GET [base]/Patient?identifier=http://fhir.krankenhaus.example|1032702
GET [base]/Patient?identifier=1032702

familystringSHALL

Beispiel:
GET [base]/Patient?family=Musterfrau

givenstringSHALL

Beispiel:
GET [base]/Patient?given=Erika

birthdatedateSHALL

Beispiel:
GET [base]/Patient?birthdate=1964-12-08

gendertokenSHALL

Beispiel:
GET [base]/Patient?gender=female

namestringMAY

Beispiel:
GET [base]/Patient?name=Erika

addressstringMAY

Beispiel:
GET [base]/Patient?address=Berlin

address-countrystringMAY

Beispiel:
GET [base]/Patient?address-country=DE

address-postalcodestringMAY

Beispiel:
GET [base]/Patient?address-postalcode=10117

activetokenMAY

Beispiel:
GET [base]/Patient?active=true

telecomtokenMAY

Beispiel:
GET [base]/Patient?telecom=phone|+49152236898

(Reverse-)Include

ReverseInclude
Composition:patient; Composition:subject; Composition:author; Condition:patient; Condition:subject; Procedure:patient; Procedure:subject; Encounter:patient; Encounter:subject; Coverage:beneficiary; Coverage:subscriber; Coverage:patient; Coverage:payor; Account:subject; Account:patient; AllergyIntolerance:patient; Observation:patient

Beispiele

Command 'page' could not render: Page not found.
Command 'page' could not render: Page not found.

Mappings

FHIRmeineDatenbankHinweisIdentitaet
Patient.name.familyPerson.NachnamemeinErstesPatientenMapping
Patient.name.givenPerson.VornameMeine DB kann nur einen Vornamen speichernmeinErstesPatientenMapping
Patient.name.prefixPerson.TitelIn meiner DB ist nur Dr. oder Prof. erlaubt!meinErstesPatientenMapping
Patient.birthDatePerson.Geburtsdatummuss in das Format DD.MM.YYYY konvertiert werdenmeinErstesPatientenMapping
FHIRmeineDatenbankHinweisIdentitaet
Patient.name.familyPerson.NachnamemeinZweitesPatientenMapping
Patient.name.givenPerson.VornameMeine DB kann nur einen Vornamen speichernmeinZweitesPatientenMapping
Patient.name.prefixPerson.TitelIn meiner DB ist nur Dr. oder Prof. erlaubt!meinZweitesPatientenMapping
Patient.birthDatePerson.Geburtsdatummuss in das Format DD.MM.YYYY konvertiert werdenmeinZweitesPatientenMapping