Profiles

Viktor's Test Patient

Tree
valueAddress
system1..Fixed Value
value1..
system1..Fixed Value
value1..
family1..
given1..
gender1..
birthDate1..
useI
periodI
valueCode1..Binding

Textual representation
Patient.extension
SlicingUnordered, Open, by url(Value)
Patient.extension:birthPlace
TypeExtension
Patient.extension:birthPlace.valueAddress:valueAddress
Patient.identifier
Cardinality1
SlicingUnordered, Open, by system(Value)
Patient.identifier:nationalPersonIdentifier
Cardinality1...1
Patient.identifier:nationalPersonIdentifier.system
DefinitionSwedish national OID for person identifiers
Cardinality1
Fixed Value

urn:oid:1.2.752.129.2.1.3.1

Patient.identifier:nationalPersonIdentifier.value
Cardinality1
Patient.identifier:hospitalPatientIdentifier
Cardinality...1
Patient.identifier:hospitalPatientIdentifier.system
DefinitionSwedish National OID for local system IDs
Cardinality1
Fixed Value

urn:oid:1.2.752.129.2.1.2.1

Patient.identifier:hospitalPatientIdentifier.value
Cardinality1
Patient.name
Cardinality1...1
Patient.name.family
Cardinality1
Patient.name.given
Cardinality1
Patient.gender
Cardinality1
Patient.birthDate
Cardinality1
Patient.address
Invariants
  • VJ-1: If the patient has a temporary address, the period this address is in use should be filled in
    (use='temp') implies period.exists()
Patient.address.use
Patient.address.period
Patient.communication.extension
SlicingUnordered, Open, by url(Value)
Patient.communication.extension:communicationMethod
Cardinality...1
TypeExtension(code)
Patient.communication.extension:communicationMethod.valueCode:valueCode
Cardinality1
BindingWrittenSpokenBoth (required)

Table
Patient..
Patient.extension..
Patient.extensionExtension..
Patient.extension.valueAddress..
Patient.identifier1..
Patient.identifier1..1
Patient.identifier.system1..
Patient.identifier.value1..
Patient.identifier..1
Patient.identifier.system1..
Patient.identifier.value1..
Patient.name1..1
Patient.name.family1..
Patient.name.given1..
Patient.gender1..
Patient.birthDate1..
Patient.address..
Patient.address.use..
Patient.address.period..
Patient.communication..
Patient.communication.extension..
Patient.communication.extensionExtension..1
Patient.communication.extension.valueCode1..

JSON
{
    "resourceType": "StructureDefinition",
    "id": "cba34a83-f0e8-4647-84ea-4dccdb85af8c",
    "meta": {
        "lastUpdated": "10/25/2018 13:12:53"
    },
    "url": "http://inera.se/fhir/dstu3/StructureDefinition/ViktorTestPatient",
    "name": "ViktorTestPatient",
    "status": "draft",
    "date": "10/25/2018 13:12:51",
    "description": "Test resource used as part of the FHIR Profiling training course",
    "fhirVersion": "3.0.1",
    "kind": "resource",
    "abstract": false,
    "type": "Patient",
    "baseDefinition": "http://hl7.org/fhir/StructureDefinition/Patient",
    "derivation": "constraint",
    "differential": {
        "element":  [
            {
                "id": "Patient.extension",
                "path": "Patient.extension",
                "slicing": {
                    "discriminator":  [
                        {
                            "type": "value",
                            "path": "url"
                        }
                    ],
                    "rules": "open"
                }
            },
            {
                "id": "Patient.extension:birthPlace",
                "path": "Patient.extension",
                "sliceName": "birthPlace",
                "type":  [
                    {
                        "code": "Extension",
                        "profile": "http://hl7.org/fhir/StructureDefinition/birthPlace"
                    }
                ]
            },
            {
                "id": "Patient.extension:birthPlace.valueAddress:valueAddress",
                "path": "Patient.extension.valueAddress",
                "sliceName": "valueAddress"
            },
            {
                "id": "Patient.identifier",
                "path": "Patient.identifier",
                "slicing": {
                    "discriminator":  [
                        {
                            "type": "value",
                            "path": "system"
                        }
                    ],
                    "rules": "open"
                },
                "min": 1
            },
            {
                "id": "Patient.identifier:nationalPersonIdentifier",
                "path": "Patient.identifier",
                "sliceName": "nationalPersonIdentifier",
                "min": 1,
                "max": "1"
            },
            {
                "id": "Patient.identifier:nationalPersonIdentifier.system",
                "path": "Patient.identifier.system",
                "definition": "Swedish national OID for person identifiers",
                "min": 1,
                "fixedUri": "urn:oid:1.2.752.129.2.1.3.1"
            },
            {
                "id": "Patient.identifier:nationalPersonIdentifier.value",
                "path": "Patient.identifier.value",
                "min": 1
            },
            {
                "id": "Patient.identifier:hospitalPatientIdentifier",
                "path": "Patient.identifier",
                "sliceName": "hospitalPatientIdentifier",
                "max": "1"
            },
            {
                "id": "Patient.identifier:hospitalPatientIdentifier.system",
                "path": "Patient.identifier.system",
                "definition": "Swedish National OID for local system IDs",
                "min": 1,
                "fixedUri": "urn:oid:1.2.752.129.2.1.2.1"
            },
            {
                "id": "Patient.identifier:hospitalPatientIdentifier.value",
                "path": "Patient.identifier.value",
                "min": 1
            },
            {
                "id": "Patient.name",
                "path": "Patient.name",
                "min": 1,
                "max": "1"
            },
            {
                "id": "Patient.name.family",
                "path": "Patient.name.family",
                "min": 1
            },
            {
                "id": "Patient.name.given",
                "path": "Patient.name.given",
                "min": 1
            },
            {
                "id": "Patient.gender",
                "path": "Patient.gender",
                "min": 1
            },
            {
                "id": "Patient.birthDate",
                "path": "Patient.birthDate",
                "min": 1
            },
            {
                "id": "Patient.address",
                "path": "Patient.address",
                "constraint":  [
                    {
                        "key": "VJ-1",
                        "severity": "warning",
                        "human": "If the patient has a temporary address, the period this address is in use should be filled in",
                        "expression": "(use='temp') implies period.exists()"
                    }
                ]
            },
            {
                "id": "Patient.address.use",
                "path": "Patient.address.use",
                "condition":  [
                    "VJ-1"
                ]
            },
            {
                "id": "Patient.address.period",
                "path": "Patient.address.period",
                "condition":  [
                    "VJ-1"
                ]
            },
            {
                "id": "Patient.communication.extension",
                "path": "Patient.communication.extension",
                "slicing": {
                    "discriminator":  [
                        {
                            "type": "value",
                            "path": "url"
                        }
                    ],
                    "rules": "open"
                }
            },
            {
                "id": "Patient.communication.extension:communicationMethod",
                "path": "Patient.communication.extension",
                "sliceName": "communicationMethod",
                "max": "1",
                "type":  [
                    {
                        "code": "Extension",
                        "profile": "http://inera.se/fhir/dstu3/StructureDefinition/CommunicationMedium"
                    }
                ]
            },
            {
                "id": "Patient.communication.extension:communicationMethod.valueCode:valueCode",
                "path": "Patient.communication.extension.valueCode",
                "sliceName": "valueCode",
                "min": 1,
                "binding": {
                    "strength": "required",
                    "valueSetReference": {
                        "reference": "http://inera.se/fhir/dstu3/valueSet/human-communication-methods"
                    }
                }
            }
        ]
    }
}

XML
<StructureDefinition xmlns="http://hl7.org/fhir">
    <id value="cba34a83-f0e8-4647-84ea-4dccdb85af8c" />
    <meta>
        <lastUpdated value="2018-10-25T13:12:53.525+00:00" />
    </meta>
    <url value="http://inera.se/fhir/dstu3/StructureDefinition/ViktorTestPatient" />
    <name value="ViktorTestPatient" />
    <status value="draft" />
    <date value="2018-10-25T13:12:51.4859148+00:00" />
    <description value="Test resource used as part of the FHIR Profiling training course" />
    <fhirVersion value="3.0.1" />
    <kind value="resource" />
    <abstract value="false" />
    <type value="Patient" />
    <baseDefinition value="http://hl7.org/fhir/StructureDefinition/Patient" />
    <derivation value="constraint" />
    <differential>
        <element id="Patient.extension">
            <path value="Patient.extension" />
            <slicing>
                <discriminator>
                    <type value="value" />
                    <path value="url" />
                </discriminator>
                <rules value="open" />
            </slicing>
        </element>
        <element id="Patient.extension:birthPlace">
            <path value="Patient.extension" />
            <sliceName value="birthPlace" />
            <type>
                <code value="Extension" />
                <profile value="http://hl7.org/fhir/StructureDefinition/birthPlace" />
            </type>
        </element>
        <element id="Patient.extension:birthPlace.valueAddress:valueAddress">
            <path value="Patient.extension.valueAddress" />
            <sliceName value="valueAddress" />
        </element>
        <element id="Patient.identifier">
            <path value="Patient.identifier" />
            <slicing>
                <discriminator>
                    <type value="value" />
                    <path value="system" />
                </discriminator>
                <rules value="open" />
            </slicing>
            <min value="1" />
        </element>
        <element id="Patient.identifier:nationalPersonIdentifier">
            <path value="Patient.identifier" />
            <sliceName value="nationalPersonIdentifier" />
            <min value="1" />
            <max value="1" />
        </element>
        <element id="Patient.identifier:nationalPersonIdentifier.system">
            <path value="Patient.identifier.system" />
            <definition value="Swedish national OID for person identifiers" />
            <min value="1" />
            <fixedUri value="urn:oid:1.2.752.129.2.1.3.1" />
        </element>
        <element id="Patient.identifier:nationalPersonIdentifier.value">
            <path value="Patient.identifier.value" />
            <min value="1" />
        </element>
        <element id="Patient.identifier:hospitalPatientIdentifier">
            <path value="Patient.identifier" />
            <sliceName value="hospitalPatientIdentifier" />
            <max value="1" />
        </element>
        <element id="Patient.identifier:hospitalPatientIdentifier.system">
            <path value="Patient.identifier.system" />
            <definition value="Swedish National OID for local system IDs" />
            <min value="1" />
            <fixedUri value="urn:oid:1.2.752.129.2.1.2.1" />
        </element>
        <element id="Patient.identifier:hospitalPatientIdentifier.value">
            <path value="Patient.identifier.value" />
            <min value="1" />
        </element>
        <element id="Patient.name">
            <path value="Patient.name" />
            <min value="1" />
            <max value="1" />
        </element>
        <element id="Patient.name.family">
            <path value="Patient.name.family" />
            <min value="1" />
        </element>
        <element id="Patient.name.given">
            <path value="Patient.name.given" />
            <min value="1" />
        </element>
        <element id="Patient.gender">
            <path value="Patient.gender" />
            <min value="1" />
        </element>
        <element id="Patient.birthDate">
            <path value="Patient.birthDate" />
            <min value="1" />
        </element>
        <element id="Patient.address">
            <path value="Patient.address" />
            <constraint>
                <key value="VJ-1" />
                <severity value="warning" />
                <human value="If the patient has a temporary address, the period this address is in use should be filled in" />
                <expression value="(use=&#39;temp&#39;) implies period.exists()" />
            </constraint>
        </element>
        <element id="Patient.address.use">
            <path value="Patient.address.use" />
            <condition value="VJ-1" />
        </element>
        <element id="Patient.address.period">
            <path value="Patient.address.period" />
            <condition value="VJ-1" />
        </element>
        <element id="Patient.communication.extension">
            <path value="Patient.communication.extension" />
            <slicing>
                <discriminator>
                    <type value="value" />
                    <path value="url" />
                </discriminator>
                <rules value="open" />
            </slicing>
        </element>
        <element id="Patient.communication.extension:communicationMethod">
            <path value="Patient.communication.extension" />
            <sliceName value="communicationMethod" />
            <max value="1" />
            <type>
                <code value="Extension" />
                <profile value="http://inera.se/fhir/dstu3/StructureDefinition/CommunicationMedium" />
            </type>
        </element>
        <element id="Patient.communication.extension:communicationMethod.valueCode:valueCode">
            <path value="Patient.communication.extension.valueCode" />
            <sliceName value="valueCode" />
            <min value="1" />
            <binding>
                <strength value="required" />
                <valueSetReference>
                    <reference value="http://inera.se/fhir/dstu3/valueSet/human-communication-methods" />
                </valueSetReference>
            </binding>
        </element>
    </differential>
</StructureDefinition>