Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

After a user has logged in successfully and obtained his cryptographic keys a local FHIR server is started by RED on the users machine. If the FHIR server is running RED will act as recipient and listen to POST and GET requests from the sending third-party application.


Setup in RED

In order to To use the RED Interchange API you will need an account in RED. Please contact us for an offer and help. If you have a RED account open RED in your web browser it must be set up for each RED terminal (Arbeitsplatz)For development and testing the tool Postman (https://redclientwww.redmedicalpostman.decom/redclient/index.html and log in using your user credentials. If you log in on a machine for the first time you will be prompted to install RED commander. RED commander is a local application enabling RED to access the local resources and to execute the FHIR server. Download and install the RED commander using the installation wizard. RED commander - Technische InformationenRED commander - Installation

The FHIR interface is disable by default. If it is to be used the FHIR server must be enabled for each machine. Log in as an administrator user and navigate to management of terminals (search for #b arbeits and select ArbeitsplätzeSelect your current terminal (marked by ICH) and navigate down to the Schnittstelle FHIR section. 

Image Removed

RED shows a list of all FHIR interfaces defined for this terminal. A FHIR interface may be active or paused. Active FHIR interfaces are marked by Aktiv. Click on FHIR-Schnittstelle hinzufügen to create a new FHIR interface or FHIR-Schnittstelle bearbeiten to modify an existing definition.

Image Removed

Schnittstelle verwenden: allows to activate and deactivate the interface (e.g. for testing purposes)

Bezeichnung: name of this interface

Typ der Schnittstelle: for RED Interchange API select the option “FHIR-Schnittstelle”

Sichere Verbindung: if set to “Nein” a http-connection is used, if set to “Ja”, https is used

Anwendungsadresse: path to the application that is to be opened by RED

Erweiterte Optionen: options string to send to the application when opened (not required)

Save the setting with the orange Speichern button. The interface is set up and FHIR server will be started automatically during the next login.

For testing purposes on a local environment the interface can be reached at: http://localhost:29221/{tenantID}. The tenantID is the internal ID of the RED instance. You will find your tenant ID by clicking on the user name (next to the house icon) in the top panel. The tenant ID is shown as ID.

Image Removed

Receiving data from RED - Search and Get

For development and testing the tool Postman (https://www.postman.com/downloads/) can be used as sending application. Please contact us to receive a Postman collection with sample requests.

Search requests

To query for data items stored in the RED database GET requests are sent to RED. A search requests uses GET and contains 

  • address of the system (base URL)
  • RED tenant ID
  • type of data to fetch (e.g Patient) with attributes
  • page set to restrict amount of data to fetch
  • optional further parameters to restrict the search

Search requests will return all data items matching the given search criteria. Please note that search for patients is available on request only.

Code Block
titleExample for a SEARCH request to search for a patients diagnoses
http://localhost:29221/alexanderwilms_7788/Condition?page=1&subject=Patient/6006

Example of a search request for all Conditions (=diagnoses) of patient with patient-ID 6006. In this example

  • base URL is localhost:29221
  • RED tenant ID is alexanderwilms_7788
  • type of data to fetch is Condition (=diagnoses)

A successful search request will be responded with a FHIR-Bundle. In this example two diagnoses are found for the given patient. The FHIR bundle has a wrapper with two entries. For detailed description of an entry see below.

downloads/) can be used as sending application. Please contact us to receive a Postman collection with sample requests. 


Receiving data from RED - Search and Get

Search requests

To query for data items stored in the RED database GET requests are sent to RED. A search requests uses GET and contains 

  • address of the system (base URL)
  • RED tenant ID
  • type of data to fetch (e.g Patient) with attributes
  • page set to restrict amount of data to fetch
  • optional further parameters to restrict the search


Search requests will return all data items matching the given search criteria. Please note that search for patients is available on request only.

Code Block
titleExample for a SEARCH request to search for a patients diagnoses
http://localhost:29221/alexanderwilms_7788/Condition?page=1&subject=Patient/6006

Example of a search request for all Conditions (=diagnoses) of patient with patient-ID 6006. In this example

  • base URL is localhost:29221
  • RED tenant ID is alexanderwilms_7788
  • type of data to fetch is Condition (=diagnoses)


A successful search request will be responded with a FHIR-Bundle. In this example two diagnoses are found for the given patient. The FHIR bundle has a wrapper with two entries. For detailed description of an entry see below.

Code Block
titleExample for the SEARCH result FHIR bundle wrapper
<Bundle xmlns="http://hl7.org/fhir
Code Block
titleExample for the SEARCH result FHIR bundle wrapper
<Bundle xmlns="http://hl7.org/fhir">
    <id value="3548c21b-28e2-b29e-1f83-9a9658909dd6"/>
    <meta>
        <lastUpdated value="2022-06-24T19:39:11+00:00"/> // date-timestamp of request
    </meta>
    <type value="searchset"/>
    <total value="2"/> // number of results found and returned as <entry>
    <entry>
        <fullUrl value="/Condition/IEG6VfAE0uw0AuYyzQtx2oIsXLFbUslA"/>
        <resource>
            <Condition xmlns="http://hl7.org/fhir">
                <id value="IEG6VfAE0uw0AuYyzQtx2oIsXLFbUslA"/>         
				...
		 	</Condition>
        </resource>
    </entry>
    <entry>
        <fullUrl value="/Condition/ROAG8t8Bz7MO8yHXAZOA5y2Tc5zVR8RA"/>
        <resource>
            <Condition xmlns="http://hl7.org/fhir">
                <id value="ROAG8t8Bz7MO8yHXAZOA5y2Tc5zVR8RA"/>
				...
			</Condition>
		</resource>
    </entry>
</Bundle>

...

Code Block
titleExample for an entry in the FHIR bundle of search or result of read request
<Condition xmlns="http://hl7.org/fhir">
    <id value="IEG6VfAE0uw0AuYyzQtx2oIsXLFbUslA"/>
    <meta>
        <versionId value="1"/>
        <lastUpdated value="2022-04-27T00:00:00+00:00"/>. // date of creation / last update in RED
        <profile value="https://fhir.kbv.de/StructureDefinition/KBV_PR_AW_Diagnose|1.2.0"/>
    </meta>
    <text> // text contains a human-readable description of its content
        <status value="extensions"/>
        <div xmlns="http://www.w3.org/1999/xhtml">Diagnose von Patient Luca Fink</div>
    </text>
    <extension url="https://fhir.kbv.de/StructureDefinition/KBV_EX_AW_Diagnose_istDauerdiagnose">
        <valueBoolean value="true"/>
    </extension>
    <extension url="https://fhir.kbv.de/StructureDefinition/KBV_EX_AW_istAbrechnungsrelevant">
        <valueBoolean value="false"/>
    </extension
    <clinicalStatus>
        <coding>
            <system value="http://terminology.hl7.org/CodeSystem/condition-clinical"/>
            <code value="active"/>
        </coding>
    </clinicalStatus>
    <verificationStatus>
        <coding>
            <system value="http://terminology.hl7.org/CodeSystem/condition-ver-status"/>
            <code value="confirmed"/>
        </coding>
    </verificationStatus>
    <code>
        <coding>
            <system value="http://fhir.de/CodeSystem/dimdi/icd-10-gm"/>
            <version value="2017"/>
            <code value="I20.9"/>
            <display value="Angina pectoris"/>
        </coding>
    </code>
    <subject>
        <reference value="Patient/6tVbNJZq1buNwKmp6UKpd8CpLceNDlRF/_history/1"/>
    </subject>
    <encounter>
        <reference value="Encounter/P2U6P2J9K53tahcsGALfMyXA1wEAAroy/_history/1"/>
    </encounter>
    <recordedDate value="2022-04-27"/>
</Condition>


Search and read requests can retrieve data for these data types

Claims

A claim represents a chargecode for statutory or private billing (Leistungsziffer EBM oder GOÄ). Claims are assigned to a patient and may be searched using a search request. If the search request contains pagination but no patient reference it will return all claims stored in RED. In order to retrieve all claims for a given person the patient ID must be added. The patient ID is either defined by the 3rd-party-system when creating a patient via POST request (see below) or must be retrieved by a previous search.

...

titleExample for a SEARCH request for all claims of a given patient

...

and read requests can retrieve data for these data types




Encounters

Encounters represent a patient visit or consultation. Each time a patient record is created for a patient there will be corresponding encounter. Encounters are assignetd to a patient and may be searched.

...