...
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 Informationen | RED 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ätze. Select your current terminal (marked by ICH) and navigate down to the Schnittstelle FHIR section.
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.
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.
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 | ||
---|---|---|
| ||
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 | ||
---|---|---|
| ||
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 | ||
---|---|---|
| ||
<Bundle xmlns="http://hl7.org/fhir | ||
Code Block | ||
| ||
<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 | ||
---|---|---|
| ||
<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.
...
title | Example 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.
...