https://github.com/gematik/ref-erp-client-cs
shows an example of how to control IDP and e-prescription specialist services from doctor and pharmacy systems in C# using the TITUS demo environment.
https://github.com/gematik/ref-erp-client-cs
e-rezept reference-implementation
Last synced: 4 months ago
JSON representation
shows an example of how to control IDP and e-prescription specialist services from doctor and pharmacy systems in C# using the TITUS demo environment.
- Host: GitHub
- URL: https://github.com/gematik/ref-erp-client-cs
- Owner: gematik
- License: other
- Created: 2021-05-10T15:44:12.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-02-20T13:01:05.000Z (almost 2 years ago)
- Last Synced: 2025-04-19T21:28:30.515Z (8 months ago)
- Topics: e-rezept, reference-implementation
- Language: C#
- Homepage:
- Size: 229 KB
- Stars: 9
- Watchers: 18
- Forks: 3
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- License: LICENSE
- Security: SECURITY.md
Awesome Lists containing this project
README
# ref-erp-client-cs
Table of Contents
## Motivation
Der Beispiel-Code zeigt exemplarisch die Ansteuerung von IDP und ERezept-Fachdienst aus Arzt- und Apothekensystemen in C# mit Hilfe der ***TITUS-Demoumgebung***.
Der Beispielcode versucht viele Aspekte der Spezifikation umzusetzen, ist aber nicht geeignet 1:1 in einer Produktivumgebung eingesetzt zu werden, weil vor allem
Robustheit und Fehlertoleranz nicht ausreichend umgesetzt sind. Weiterhin ist die Prüfung der Signatur- und Verschlüsselungs-Zertifikate vom
IDP und vom E-Rezept-Fachdienst nur ansatzweise dargestellt. Es fehlt die Prüfung der Zertifikate gemäß [gemSpec_PKI#TUK_PKI_018].
## Funktionsumfang
- Beispiel zur Verschlüsselung für die VAU gemäß [gemSpec_Krypt#7]
- Arzt: E-Rezept erstellen
- `TestCreateERezeptInPraxis();`
- führt die Authentifizierung als Arzt-Praxis mit dem IDP durch und lädt das Access_Token als BearerToken vom IDP (300s gültig!)
- erzeugt mittels FHIR-Operation `$create` des E-Rezept-Fachdienstes eine Task-Ressource, um die RezeptID zu erzeugen.
Der Request wird verschlüsselt und an die VAU verschickt
siehe https://github.com/gematik/api-erp/blob/master/docs/authentisieren.adoc
- der Vorgang wird ein 2. mal wiederholt um zu demonstrieren, wie mit der VAU und deren Nutzer-Pseudonym ab dem 2. Call umzugehen ist
- das macht das Bsp **nicht**:
- auf ähnliche Weise kann dann der mit dem Konnektor signierte FHIR-Datensatz (Rezept-Bundle) als Rezept angelegt werden (`$activate`-Operation).
- Apotheke: E-Rezept abholen
- führt die Authentifizierung als Apotheke mit dem IDP durch und lädt das Access_Token als BearerToken vom IDP
- Beispiel lädt ein ERezept in die Apotheke unter Angabe von Access_Token, taskid und accesscode (unter Nutzung von IDP und VAU).
`TestAcceptRezeptInApotheke(taskid : "19b56423-201c-11b2-804f-df8a779f13bd", accesscode : "c8a8086dc855bd7fb19630bfaae254b86068eca45131f32382cb6b27d75841ee");`
Dieses Rezept sollte vor jedem Lauf in Titus unter Rezeptverwaltung neu erzeugt werden, da derzeit jedes ERezept nur genau einmal geladen werden kann. (Sonst gibt es einen Fehler)
- bildet den `$accept`-Request zum E-Rezept-Fachdienst, um ein E-Rezept abzurufen und auszugeben.
- Der Request wird verschlüsselt an die VAU verschickt.
siehe https://github.com/gematik/api-erp/blob/master/docs/authentisieren.adoc
**Derzeit sind im Code noch einige Stellen mit `TITUS BUG` markiert, die in den nächsten TITUS-Releases behoben werden und dann in diesem Projekt korrigiert werden können**
## Konfiguration
In `Program.cs` sind alle URLs, und variablen Einstellungsparameter für den Konnektorkontext, IDP als Konstanten angelegt und so konfiguriert, dass man nur
einen Parmameter zwingend anpassen muss:
/// Client-Zertifikat für die Kommunikation mit dem lokalen Konnektor des PS
/// kann aus Download aus TITUS unter Mandanteninformation heruntergeladen werden
static readonly X509Certificate2 KonnektorCommunikationCert = new(File.ReadAllBytes(@"C:\work\ps_erp_aps_01.p12"), "00");
**Ersetzen Sie `C:\work\ps_erp_aps_01.p12` durch das Client-Zertifikat aus Ihrem TITUS-Account!**
## xsds-Ordner
enthält die für die Generierung der Konnektor-Webserviceendpunkt nötigen WDSL Dateien
`VS2029 -> Add Service Reference ...`
Download unter: https://fachportal.gematik.de/fileadmin/Fachportal/Downloadcenter/Schemata-_und_WSDL-Dateien/Schema-_und_WSDL-Dateien/OPB3.1_Schemadateien_R3.1.2_Kon_PTV3_20191002.zip