eRezept App Build with swift

eRezept App

Prescriptions for medicines that are only available in pharmacies can be issued as electronic prescriptions (e-prescriptions resp. E-Rezepte) for people with public health insurance from 1 July 2021. The official gematik E-Rezept App (electronic prescription app) is available to receive and redeem prescriptions digitally. Anyone can download the app for free:

and login with the health card of the public health insurance. In July 2021, the e-prescription will start with a test phase, initially in the focus region Berlin-Brandenburg. The nationwide rollout will follow three month later in the fourth quarter.

The e-prescriptions are stored in the telematics infrastructure, for which gematik is responsible.

Visit our FAQ page for more information about the e-prescription.

Support & Feedback

For endusers and insurant:



Members of the health-industrie with functional questions

IT specialists


Data Privacy

You can find the privacy policy for the app at: https://www.das-e-rezept-fuer-deutschland.de/app/datenschutz

Contributors

We plan to enable contribution to the E-Rezept App in the near future.

Licensing

The E-Rezept App is licensed under the European Union Public Licence (EUPL); every use of the E-Rezept App Sourcecode must be in compliance with the EUPL.

You will find more details about the EUPL here: https://joinup.ec.europa.eu/collection/eupl

Unless required by applicable law or agreed to in writing, software distributed under the EUPL is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the EUPL for the specific language governing permissions and limitations under the License.

Development

Getting started

run $ make setup to start developing locally. This will make sure all the dependencies are put in place and the Xcode-project will be generated and/or overwritten.

You'll need a running implementation of IDP and FD. A reference implementation for IDP and FD is available.

Documentation for setting up the entire system will be available at a later date.

Project setup

Dependencies are a mix of SPM (Swift Package Manager) and Carthage right now. The Xcode-project is generated using xcodegen.
The more complex build configuration(s) is done with the help of Fastlane. See the ./fastlane directory for full setup.

The App uses Apple's Combine.framework for operation scheduling. The UI-Layer is built with The Composable Architecture ♥️ and SwiftUI ♥️.
Minimum platform requirements are: MacOS 11 and iOS 14.0

Modularization

The app is composed of several modules:

  • eRpApp is the iOS front-end (consumer facing) eRezept App.
  • eRpKit bundles all non platform specific business logic.
  • eRpLocalStorage and eRpRemoteStorage serve as the FHIR communication module to send and request all the eRezept resources and store them locally.
  • Pharmacy handles communication with the Pharmacy API.
  • FHIRClient powers eRpRemoteStorage and Pharmacy by providing a generic FHIR interface (see FHIR for more information about the FHIR standard).
  • HTTPClient provides the interface for HTTP communication within the project.
  • IDP is used for authentication against the eHealth network.
  • VAU provides an encrypted communication channel with the eHealth network.
  • TrustStore validates trust with a given trust anchor and handles ocsp responses.

You can find more documentation about each module here.

Generated Source

We use sourcery to generate some data structures. Run $ sourcery to update generated code. The compiler will tell you, if you need to update the generated code by running sourcery in most cases. As sourcery is used as a weak (generated code is checked in, CI is not executing sourcery) dependency, you have to install sourcery manually by running $ brew install sourcery.

Build iOS app for release

Run $ make build

Note: make sure you've ran $ make setup before and have code-signing setup for your local (or ci-build) build.

Functional Requirements

The underlying requirements can be found within the Gematik Fachportal. Search for "E-Rezept Frontend des Versicherten".

A mapping of these requirements can be found within the documentation. To generate the mapping from requirements to implementation run bundle exec fastlane list_requirements.

GitHub

https://github.com/gematik/E-Rezept-App-iOS