Skip to content

ere-health/architecture

Repository files navigation

Requirements ere.health virtual E-Rezept printer

Vision: Enable as many doctors and clinics as possible to prescribe E-Rezepts to patients so that the patients don't need to fetch the prescriptions anymore from a physical location.

Mission: Develop an open source solution that is commercially supported together with typical actors around the E-Rezept and interested parties.

Architecture

  1. The ere.health software should have two parts:
    1.1. a virtual printer based on the IPP procotol RFC 8010 and RFC 8011
    1.2. a browser application to review the E-Rezept and sign them in a batch run containing 1 and up to 100 E-Rezepts
  2. It should require as little installation on the client PCs as possible at most a browser application and some configuration
  3. It should be compatible with all systems that can print a Muster 16 Formular
  4. It should be done at 2021-07-01

E-Rezept process

The image above shows the technical process of how the different components are working together and how the ere-health solution creates an e prescription. It uses the BPMN notation.

Backend

The diagram above shows the backend application which is a single quarkus jar communicating via a WebSocket with the frontend and via the SOAP interface with the connector (The IdP is missing on the picture)

Backend - Internal structure

The diagram above shows the internal structure of the whole systems. There are 3 ways to get data in:

  1. Using the VOS interface of the PVS systems
  2. Putting a PDF file in a folder where is it automatically detected
  3. Directly printing into the system using an IPP printer interface

Backend - Document Service

Above the document service is shown. This will in the end generate the following pdf document that includes the prescription as an attachement:

Scanning with Gematik E-Rezept App

The image above shows how the Gematik E-Rezept app scans a data matrix code produced by the ere.health document service.

E-Rezept Fachdienst

The image above shows the two steps to create an e-prescription in the Fachdienst:

  1. Create a Task using the $create method
  2. Attach a signed KBV Bundle to the task using the $activate method

E-Rezept Workflow

The image above shows how the E-Rezept service internally works.

VAU Channel

The image above shows how the ere.health system implements the vau channel based on:

E-Rezept Workflow communication with titus

The image above shows the communication with titus.

Telematik API

The image above shows how the JAX-WS classes are generated from the official gematik api-telematik code. Which is forked by ere-health and a pom.xml is added.

Card terminal

The image above shows how the certificates are saved on the different cards.

Multi Connector Management

The image above shows how the solution is managing multiple connectors.

IdP

The image above shows how the IdP dance works. Details here: https://github.com/gematik/api-erp/blob/master/docs/authentisieren.adoc#ablauf-des-authentifizierungsprotokolls

Frontend

The diagram above shows how to distribute the different components to BElement.

  1. Use the lean framework BCE Design from Adam Bien
    1.1. lit-html
    1.2. redux toolkit
    1.3. vaadin router (suggestion / optional)
    1.4. rollup (for updates / optional)

The image above shows a screenshot of the frontend.

VOS Frontend

The diagram above shows how the VOS interface defined by the KBV is integrated into the ere.health front end:

Video

Here is a german YouTube video that shows how this works:

Deployment

The diagram above shows the deployment options. In the first generation we are planning to deploy the ere.health software as normal installable service on the doctors personal computer.

The second generation is fully hostable in a specially secured data center with a site-2-site VPN connection. This makes it possible to also sign prescriptions from anywhere in the world as long as the card reader is connected somewhere to the internet and the Komfortsignatur is enabled.

SVG Extractor

The image above shows the implementation details of the SVG extractor. It takes a SVG file and extracts all the text that is contained by a rectangle on the fields layer into a java map.

Debug view

The above image shows a generated debug pdf to see what text is extracted.

Inkscape view

The above image shows how the template can be modified in inkscape.

Links:

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published