Giter VIP home page Giter VIP logo

e-rezept-app-android's Introduction

E-Rezept App

Introduction

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:

Download E-Rezept on the App StoreDownload E-Rezept on the PlayStoreDownload E-Rezept on the App Gallery

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

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:

E-Rezept Webseite eMail E-Rezept E-Rezept Support Telephone

Members of the health-industry with functional questions

eMail E-Rezept Team

IT specialists

eMail E-Rezept Fachportal eMail E-Rezept Team

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

To get started, build one of the *Pu* variants. Currently, the Google and Huawei variants differ only in configuration. The code is identical. This is likely to change soon.

This repository is an Kotlin Multiplatform Project unifying the upcoming E-Rezept App for desktop and the Android App.

Structure

|-- app
|   `-- android
|       `-- src
|           |-- androidTest
|           |-- main
|           `-- test
|   `-- android-mock
|       `-- src
|           |-- androidTest
|           |-- main
|           `-- test
|   `-- demo-mode
|       `-- src
|           |-- main
|   `-- features
|       `-- src
|           |-- debug
|           |-- release
|           |-- androidTest
|           |-- main
|           `-- test
|   `-- shared-test
|       `-- src
|           |-- main  
|-- common
|   `-- src
|       |-- androidMain
|       |-- androidTest
|       |-- commonMain
|       |-- commonTest
|       |-- desktopMain
|       `-- desktopTest
|-- desktop
|   `-- src
|       |-- jvmMain
|       `-- jvmTest
`-- plugins
    `-- dependencies

plugins/dependencies is a composed build required by any of the other modules (android, common and desktop) managing the dependencies in one place.

The gradle.properties file contains all pre-defined properties required to communicate with the FD (FachDienst), IDP (IDentity Provider) and the pharmacy lookup service. Unfortunately the actual values are not meant to be public.

Android

To build the Android App choose one variant (e.g. gradle :android:assembleGooglePuExternalDebug -Pbuildkonfig.flavor=googlePuExternal):

gradle :android:assemble(Google|Huawei)Pu(External|Internal)(Debug|Release) -Pbuildkonfig.flavor=(google|huawei)Pu(External|Internal)

Note: Currently the android build variant is derived from the buildkonfig.flavor property.

APK

The resulting .apk can be found in e.g. app/android/build/outputs/apk/googlePuExternal/debug/.

Additionally, you can find the latest apk here

Visualize Test Tags

See Visualize Test Tags

Links Sourcecode

e-rezept-app-android's People

Contributors

gematik-entwicklung avatar tjpo avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

e-rezept-app-android's Issues

setInvalidatedByBiometricEnrollment(true) without effect due to positive validity duration

During the registration of the alternative authentication means (alternatePairingFlowWithSecureElement), the private key is generated with a validity duration of 60 seconds. Because of this, the key is not invalidated on biometric enrollment. The initial call to setInvalidatedByBiometricEnrollment(true) does not cause the intended effect (or any effect at all) as it "applies only to keys [...] if no positive validity duration has been set" according to the Android API reference.

Therefore, the following code should be removed:

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.R) {
setUserAuthenticationParameters(60, KeyProperties.AUTH_BIOMETRIC_STRONG)
} else {
setUserAuthenticationValidityDurationSeconds(60)
}

Feature request: implement updater so that the app can update itself when it was installed from the APK on the github releases page

In #1 it was commented:

Instead of releasing on F-Droid or other stores besides Google Play and Huawei AppGallery, we decided to publish the APK for each released version here on Gihub starting with the 1.2.1 release. We think this is a good solution.

Unfortunately, that means that users who cannot or do not want to use Google services have to manually check for and install any updates.

I think that an F-Droid release would still be the better option - @Gematik-Entwicklung could also setup their own F-Droid repository, like e.g. Corona Contact Tracing Germany did.

But as long as there is no F-Droid release, an intermediate solution might be to implement an updater directly in the app. Several other apps like Signal already do that (I think Threema does it, too).

Auto-update should be opt-in for the user (= disabled by default)

Test: generalAuthenticate für tagNo 5 nicht implementiert und Daten fehlerhaft

Mir ist aufgefallen, dass der Anwendungsfall, generalAuthenticate command mit tagNo=5 keinen Test hat.
Er hat jedoch TestResource Einträge, die jedoch fehlerhaft sind.
Die dort eingetragene APDU ist nicht korrekt.

10860000877C81848181
Die Länge nc stimmt nicht (0x08) und es ist kein gültiger DER Datensatz, es fehlt das ne byte (0x00)

Diese Fall wird jedoch im Schritte step4VerifyPcdAndPiccMac des secure channel handshakes benötigt.

Was ist der Stand mit diesen Tests? Wird er noch korrigiert?

Freigabe e-rezept-App auf weiterem Smartphone

Angemeldet auf dem iphone mit erezept + epa-App.

Bei Anmeldung auf dem Androidphone muss ich die Anmeldung auf dem Iphone in der ePA-App freigeben.

Ist dies erfolgt, werde ich auf dem Android-Phone auf eine Website von das-e-rezept-fuer-deutschland.de/extauth?code=... weitergeleitet. Dieses endet auf einer 404-Page und eine Anmeldung ist somit nicht möglich.

Use of OpenStreetMap (OSM) instead of Google Maps (Gmaps)

TL;DR Please make sure that Gematik makes it at least once to deliver a good digital health app - take responsibility!

Personally, I would urge that the integration of Google Maps (GMaps; especially since without obtaining consent....) from the e-prescription app for Android be replaced AS FAST AS POSSIBLE(!) with a local integration of OpenStreetMap (OSM).

From my point of view, in view of the "Telecommunications Telemedia Data Protection Act" (TTDSG) and the General Data Protection Regulation, there is no leeway whether, but it is essential to include a local and offline available integration of a digital map.

Tasks

Current Release fails to install

Hi the current apk-file from github is not installable.

When I download the apk and try to install it, the process starts and than aborts within a second.

If you guide me, I am able to provide some logs.

In addition I tried to install the app from the playstore and that works.

Maybe solving #18 also helps.

Thanks in advance

Improve developer instructions

Running gradle :android:assembleGooglePuExternalDebug -Pbuildkonfig.flavor=googlePuExternal fails

  • due to missing file ci-overrides.properties
  • due to missing values for MAPS_API_KEY
  • due to missing values for PHARMACY_SERVICE_URI_PU

Gradle Build fails

Hallo,

ich wollte wie in der Readme beschrieben mit dem Befehl gradle :android:assembleGooglePuExternalDebug -Pbuildkonfig.flavor=googlePuExternal die .apk erzeugen und bekomme dann ein Build failed with exception:
task 'assembleGooglePuExternalDebug' not found in project ':android'

grafik

Falls ich probiere auf gradle :android:assembleGoogleTuInternalDebug -Pbuildkonfig.flavor=googleTuInternal zu wechseln bekomme ich wieder ein Build failed with exception: Task '.flavor=googleTuInternal' not found in root project 'E-Rezept' and its subprojects.

grafik

Couple findings in English texts

  1. Page title and navigation link for Orders page is written lowercase "orders"
  2. lowercase "courier service" on Pharmacies page
  3. Settings entries are mixing title case ("Privacy Policy") vs all lowercase ("device security") vs first upercase ("Order new card")
  4. Order page has German text for link "Verbinden"

UX: Privacy consent button almost invisible

Just the first contact with the app must be an exercise in frustration for anyone with low contrast eyesight.
You know, older people for example.

image

If they don't understand that they need to flip the switch, they won't be able to use this app.

Full context:
Screenshot_1706142037

Similar issue in light mode.

image

How did this pass QA until v1.19.1?!

Screenshots were taken on an Android AVD.
This is even worse on an actual Pixel 6 device.

I strongly recommend you read the Material UX Guidelines, especially the section on Accessibility.
Even better, hire a capable UX designer that catches basic mistakes like these.

Oh, while you're rebuilding - you might want to sanity check your translations. You're mixing languages.

Screenshot_1706142097

Pharmacies page does not open as top leve page but as Dialog

When opening the Pharmacies page through the bottom navigation it will open up as a Dialog. This kind of behavior is not intended with a bottom navigation. Instead it should open a top level page such as correctly done on orders page for example.

Side note: Also the Settings page opens with a different animation. Looks like only Prescription and Orders pages are working correctly.

Tasks

Error when i run the app

i got this error:
C:\Users\jcai\StudioProjects\E-Rezept-App-Android\app\features\build\generated\source\buildConfig\debug\de\gematik\ti\erp\app\features\BuildConfig.java:31: error: ';' expected public static final String orggradlejvmargs = "-Xmx4g -Dkotlin.daemon.jvm.options="-Xmx4g" -XX:+UseParallelGC";

Tasks

Release newest build

Please release the newest version of this app through github.

And please considered improving the workflow through github so the release in the google play store and here are up-to-date. As you can see in issue #10 it is not the first time this happened

Cannot build project because ci-overrides.properties is missing

I tried to clone the project and build it locally but compilation failed with

A problem occurred configuring project ':android'.
> java.io.FileNotFoundException: The file '...\E-Rezept-App-Android\ci-overrides.properties' could not be found

I see it is not tracked by default on .gitignore so It would be great if the README provided information on how to mock that file.

APK in GitHub release 1.20.0 has a different signature

The APK in the assets of the 1.20.0 release has a different signature than the previous releases (e.g. 1.19.1).

This can be validated with different tools including apksigner & AppVerifier.


Via AppVerifier I see these signatures:

1.19.1:

de.gematik.ti.erp.app
B4:63:DF:B0:59:76:99:64:DD:74:97:21:48:0E:20:5A:52:D8:F0:F2:40:08:47:A9:E2:31:C3:55:8C:A2:D8:48

1.20.0:

de.gematik.ti.erp.app
76:D9:7E:A0:62:E7:25:F8:36:0B:E2:42:3D:D7:63:88:BD:E6:54:BF:B6:A8:CE:72:D2:0E:D3:40:9B:CC:72:A5

F-Droid release

Please consider to release this app also on F-Droid.
For not excluding degoogled Android users who either do not have, or (for privacy/trust etc. reasons) don't want to have access to the play store.
Thanks a lot for choosing the way to open source this app.

Alternative Zuweisung v1.11.0-RC1

Hallo,
ich habe die neue Version 1.11.0-RC1-konnektathon-RU installiert,
im Debug - Menü "RedeemWithoutTI" aktiviert,
ein Token gescannt und versucht der Arcaden ApothekeTEST-ONLY zuzuweisen.

Direkt beim Zuweisen beendet sich die Anwendung.
Aktuell habe ich keinen Zugriff auf die Logs des Endpoints um zu kontrollieren, ob dort etwas angekommen ist.

Müsste die Zuweisung schon funktionieren?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.