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
andeRpRemoteStorage
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
powerseRpRemoteStorage
andPharmacy
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
.