Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 12 Next »

The Patient resource is a central resource in the eHealth infrastructure. It plays a number of different roles:

  • Convey basic information about the patient (name, address, birth date, gender, civil registration number, demographics information, etc.)
  • Convey extended information about the patient
    • Contact information
    • Language / Need for an interpreter
    • Temporary addresses
    • General practitioner
  • Other resources are created with a reference to a Patient, e.g.
    • RelatedPerson (Pårørende)
    • CarePlan (Telemedicinsk pakke)
    • EpisodeOfCare (Tilbud om telemedicinsk pakke)
    • Etc.
  • A Patient resource refers to an Organization in the field ManagingOrganization. This organization is the custodian (Dataejer) of all data that is hooked up on that Patient resource. This also means that the patient-related data will be restricted, such that users from other organizations cannot read or update it, unless mandated by an associated CareTeam.

NOTE that different organizations should use different Patient resources for the same patient! Also the same organization should only use a single Patient resource, even if administering several CarePlans by separate CareTeams. Here "the same organization" means "the same organization Identifier" - so different departments of the same hospital may very well have separate Patient resources for the same patient, if they are identified by different Organization Identifiers. Organization Identifiers are generally governed by Sundhedsvæsenets Organisationsregister (SOR).

Instructions - in the current ("stub") version

In the current version of the Patient resource, patients are created using a custom operation. The current version is a stub and does NOT yet collect certain information from national registers (via NSP SCES, Stamdata CPR Enkeltopslag Service). This means that the returned Patient is only sparsely populated with a random name and a managing organization. The parameters needed to create a Patient is the social security number, a list of policies by which the patient care is acting under and a reference to the managing organization.

Java example:

Creation of a patient (Java) using defined operation using the HAPI FHIR client framework
	    Parameters in = new Parameters();
		in.addParameter().setName("ssn").setValue(new Identifier().setSystem("urn:oid:1.2.208.176.1.2").setValue("2810887020"));
        in.addParameter().setName("managingOrganization").setValue(new Identifier().setSystem("urn:oid:1.2.208.176.1.1").setValue("260481000016005"));
        in.addParameter().setName("policy").setValue(new UriType().setValue("https://danskelove.dk/sundhedsloven"));

        Parameters result = client.operation().onType(Patient.class).named("createPatient")
                .withParameters(in).execute();

Example HTTP request:

Patient create using operation
POST /Patient/$createPatient
Content-Type: text/xml; extended-operation-type
Accept: */*
Host: localhost:8080
accept-encoding: gzip, deflate
content-length: 689
<Parameters
    xmlns="http://hl7.org/fhir">
    <parameter>
        <name value="ssn" />
        <valueIdentifier>
            <system value="urn:oid:1.2.208.176.1.2" />
            <value value="0107729996" />
        </valueIdentifier>
    </parameter>
    <parameter>
        <name value="policy" />
        <valueUri value="https://danskelove.dk/sundhedsloven" />
    </parameter>
    <parameter>
        <name value="managingOrganization" />
        <valueReference>
            <identifier>
                <system value="urn:oid:1.2.208.176.1.1" />
                <value value="275891000016005" />
            </identifier>
        </valueReference>
    </parameter>
</Parameters>

Example HTTP response from current stub:

Server response
HTTP/1.1 200
status: 200
Date: Wed, 20 Feb 2019 09:00:35 GMT
X-Powered-By: Trifork
Content-Type: application/fhir+xml;charset=utf-8
Content-Encoding: gzip
Transfer-Encoding: chunked
Server: Jetty(9.4.14.v20181114)
<Parameters
    xmlns="http://hl7.org/fhir">
    <parameter>
        <resource>
            <Patient
                xmlns="http://hl7.org/fhir">
                <id value="9952"/>
                <meta>
                    <versionId value="1"/>
                    <lastUpdated value="2019-02-19T14:54:26.894+01:00"/>
                    <profile value="http://trifork.dk/fhir/StructureDefinition/dk-tm-patient"/>
                </meta>
                <text>
                    <status value="generated"/>
                    <div
                        xmlns="http://www.w3.org/1999/xhtml">
                        <div class="hapiHeaderText">Given Test 1615618386 
                            <b>FAMILY TEST 1592826680 </b>
                        </div>
                        <table class="hapiPropertyTable">
                            <tbody>
                                <tr>
                                    <td>Identifier</td>
                                    <td>0107729996</td>
                                </tr>
                            </tbody>
                        </table>
                    </div>
                </text>
                <identifier>
                    <system value="urn:oid:1.2.208.176.1.2"/>
                    <value value="0107729996"/>
                </identifier>
                <name>
                    <family value="Family Test 1592826680"/>
                    <given value="Given Test 1615618386"/>
                </name>
                <managingOrganization>
                    <identifier>
                        <system value="urn:oid:1.2.208.176.1.1"/>
                        <value value="275891000016005"/>
                    </identifier>
                </managingOrganization>
            </Patient>
        </resource>
    </parameter>
</Parameters>

Example HTTP response as intended:

Intended HTTP server response
HTTP/1.1 200
status: 200
Date: Wed, 20 Feb 2019 09:00:35 GMT
X-Powered-By: Trifork
Content-Type: application/fhir+xml;charset=utf-8
Content-Encoding: gzip
Transfer-Encoding: chunked
Server: Jetty(9.4.14.v20181114)
<Parameters
    xmlns="http://hl7.org/fhir">
    <parameter>
        <resource>
            <Patient
                xmlns="http://hl7.org/fhir">
				<id value="9952"/>
                <identifier>
                    <system value="urn:oid:1.2.208.176.1.2"/>
                    <value value="2810887020"/>
                </identifier>
                <name>
                    <family value="Møller"/>
                    <given value="Anne"/>
                    <given value="Holm"/>
                </name>
                <birthDate value="1988-10-28"/>
                <address>
                    <extension url="http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-municipality-code">
                        <valueCoding>
                            <system value="urn:oid:1.2.208.176.8.1.100"/>
                            <code value="370"/>
                            <display value="Næstved"/>
                        </valueCoding>
                    </extension>
                    <extension url="http://ehealth.sundhed.dk/fhir/StructureDefinition/ehealth-regional-subdivision-code">
                        <valueCoding>
                            <system value="urn:iso:std:iso:3166-2:DK"/>
                            <code value="085"/>
                            <display value="Region Sjælland"/>
                        </valueCoding>
                    </extension>
                    <line value="Bjergagervej 110"/>
                    <city value="Karrebæksminde"/>
                    <postalCode value="4736"/>
                </address>
                <managingOrganization>
                    <identifier>
                        <system value="urn:oid:1.2.208.176.1.1.2"/>
                        <value value="260481000016005"/>
                    </identifier>
                    <display value="Lungemedicinsk Ambulatorium"/>
                </managingOrganization>
            </Patient>
        </resource>
    </parameter>
</Parameters>



  • No labels