{"id":18985620,"url":"https://github.com/gematik/ref-erp-client-cs","last_synced_at":"2026-03-16T22:01:56.242Z","repository":{"id":44634920,"uuid":"366094980","full_name":"gematik/ref-erp-client-cs","owner":"gematik","description":"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.","archived":false,"fork":false,"pushed_at":"2024-02-20T13:01:05.000Z","size":235,"stargazers_count":9,"open_issues_count":1,"forks_count":3,"subscribers_count":18,"default_branch":"master","last_synced_at":"2025-04-19T21:28:30.515Z","etag":null,"topics":["e-rezept","reference-implementation"],"latest_commit_sha":null,"homepage":"","language":"C#","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"other","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/gematik.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2021-05-10T15:44:12.000Z","updated_at":"2024-05-14T20:52:52.000Z","dependencies_parsed_at":"2024-11-08T16:34:25.377Z","dependency_job_id":"262922bd-5763-47e1-b151-2f4fef9ac558","html_url":"https://github.com/gematik/ref-erp-client-cs","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/gematik/ref-erp-client-cs","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gematik%2Fref-erp-client-cs","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gematik%2Fref-erp-client-cs/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gematik%2Fref-erp-client-cs/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gematik%2Fref-erp-client-cs/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/gematik","download_url":"https://codeload.github.com/gematik/ref-erp-client-cs/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/gematik%2Fref-erp-client-cs/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":269728771,"owners_count":24465710,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-10T02:00:08.965Z","response_time":71,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["e-rezept","reference-implementation"],"created_at":"2024-11-08T16:27:26.451Z","updated_at":"2026-03-16T22:01:56.237Z","avatar_url":"https://github.com/gematik.png","language":"C#","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cimg align=\"right\" width=\"250\" height=\"47\" src=\"Gematik_Logo_Flag_With_Background.png\"/\u003e \u003cbr/\u003e\n[![No Maintenance Intended](http://unmaintained.tech/badge.svg)](http://unmaintained.tech/)\n[![Maintenance](https://img.shields.io/badge/Maintained%3F-no-red.svg)](https://bitbucket.org/lbesson/ansi-colors)\n[![License](https://img.shields.io/badge/License-Apache%202.0-blue.svg)](https://opensource.org/licenses/Apache-2.0)\n# ref-erp-client-cs\n\n\u003cdetails\u003e\n  \u003csummary\u003eTable of Contents\u003c/summary\u003e\n  \u003col\u003e\n    \u003cli\u003e\u003ca href=\"#motivation\"\u003eMotivation\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#funktionsumfang\"\u003eFunktionsumfang\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#konfiguration\"\u003eKonfiguration\u003c/a\u003e\u003c/li\u003e\n    \u003cli\u003e\u003ca href=\"#xsds-ordner\"\u003exsds-Ordner\u003c/a\u003e\u003c/li\u003e\n  \u003c/ol\u003e\n\u003c/details\u003e\n\n## Motivation\n\nDer Beispiel-Code zeigt exemplarisch die Ansteuerung von IDP und ERezept-Fachdienst aus Arzt- und Apothekensystemen in C# mit Hilfe der ***TITUS-Demoumgebung***.\u003cbr\u003e\nDer Beispielcode versucht viele Aspekte der Spezifikation umzusetzen, ist aber nicht geeignet 1:1 in einer Produktivumgebung eingesetzt zu werden, weil vor allem\nRobustheit und Fehlertoleranz nicht ausreichend umgesetzt sind. Weiterhin ist die Prüfung der Signatur- und Verschlüsselungs-Zertifikate vom\nIDP und vom E-Rezept-Fachdienst nur ansatzweise dargestellt. Es fehlt die Prüfung der Zertifikate gemäß [gemSpec_PKI#TUK_PKI_018].\n\n## Funktionsumfang\n\n- Beispiel zur Verschlüsselung für die VAU gemäß [gemSpec_Krypt#7]\n\n- Arzt: E-Rezept erstellen\n  - `TestCreateERezeptInPraxis();`\n  - führt die Authentifizierung als Arzt-Praxis mit dem IDP durch und lädt das Access_Token als BearerToken vom IDP (300s gültig!)\n  - erzeugt mittels FHIR-Operation `$create` des E-Rezept-Fachdienstes eine Task-Ressource, um die RezeptID zu erzeugen.\n    Der Request wird verschlüsselt und an die VAU verschickt\u003cbr/\u003e\n    siehe https://github.com/gematik/api-erp/blob/master/docs/authentisieren.adoc\n  - der Vorgang wird ein 2. mal wiederholt um zu demonstrieren, wie mit der VAU und deren Nutzer-Pseudonym ab dem 2. Call umzugehen ist\n  - das macht das Bsp **nicht**:\n    - auf ähnliche Weise kann dann der mit dem Konnektor signierte FHIR-Datensatz (Rezept-Bundle) als Rezept angelegt werden (`$activate`-Operation).\n\n- Apotheke: E-Rezept abholen\n  - führt die Authentifizierung als Apotheke mit dem IDP durch und lädt das Access_Token als BearerToken vom IDP\n  - Beispiel lädt ein ERezept in die Apotheke unter Angabe von Access_Token, taskid und accesscode (unter Nutzung von IDP und VAU).\u003cbr\u003e\n    `TestAcceptRezeptInApotheke(taskid : \"19b56423-201c-11b2-804f-df8a779f13bd\", accesscode : \"c8a8086dc855bd7fb19630bfaae254b86068eca45131f32382cb6b27d75841ee\");`\u003cbr\u003e\n    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)\n  - bildet den `$accept`-Request zum E-Rezept-Fachdienst, um ein E-Rezept abzurufen und auszugeben.\n  - Der Request wird verschlüsselt an die VAU verschickt.\u003cbr/\u003e\n    siehe https://github.com/gematik/api-erp/blob/master/docs/authentisieren.adoc\n\n**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**\n\n## Konfiguration\n\nIn `Program.cs` sind alle URLs, und variablen Einstellungsparameter für den Konnektorkontext, IDP als Konstanten angelegt und so konfiguriert, dass man nur\neinen Parmameter zwingend anpassen muss: \u003cbr\u003e\n\n\t/// Client-Zertifikat für die Kommunikation mit dem lokalen Konnektor des PS\n\t/// kann aus Download aus TITUS unter Mandanteninformation heruntergeladen werden\n\tstatic readonly X509Certificate2 KonnektorCommunikationCert = new(File.ReadAllBytes(@\"C:\\work\\ps_erp_aps_01.p12\"), \"00\");\n\n**Ersetzen Sie `C:\\work\\ps_erp_aps_01.p12` durch das Client-Zertifikat aus Ihrem TITUS-Account!**\n\n## xsds-Ordner\nenthält die für die Generierung der Konnektor-Webserviceendpunkt nötigen WDSL Dateien\u003cbr\u003e\n`VS2029 -\u003e Add Service Reference ...`\u003cbr\u003e\nDownload 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\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgematik%2Fref-erp-client-cs","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fgematik%2Fref-erp-client-cs","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fgematik%2Fref-erp-client-cs/lists"}