Skip to content

Commit

Permalink
Merge pull request #101 from gematik/feature/close-batch-verarbeitung
Browse files Browse the repository at this point in the history
Feature/close batch verarbeitung
  • Loading branch information
Hendrejvr authored Nov 27, 2023
2 parents afb36ae + 1a15545 commit 989c9c9
Show file tree
Hide file tree
Showing 2 changed files with 66 additions and 0 deletions.
33 changes: 33 additions & 0 deletions docs/erp_abrufen.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -725,6 +725,39 @@ Der Aufruf erfolgt als http-POST-Operation mit der FHIR-Operation `$close`. Im h
Im http-ResponseBody wird die serverseitig über den Task und das E-Rezept-Bundle erzeugte Signatur als `Quittungs-Bundle`-Ressource zurückgegeben, die dem Apotheker gegenüber der Krankenkasse als Quittung dient.
NOTE: Zurzeit kann die Signatur mit den Konnektor-Versionen PTV4, PTV4+ und PTV5 nicht geprüft werden.

=== Stapelverarbeitung
Die Apotheken können bis zum Ende des nächsten Werkstages warten, bevor sie ein E-Rezept abschließen. Es besteht die Möglichkeit, dies automatisch als Stapelverarbeitung zwischen 18:00 und 22:00 Uhr durchzuführen. Um die betriebliche Stabilität zu gewährleisten darf die Stapelverarbeitung nur durchgeführt werden, wenn der Startzeitpunkt durch einen Algorithmus zufällig bestimmt wird.

Der Algorithmus sollte eine zufällige Zahl zwischen 0 und 14.400 generieren. Diese Zahl entspricht den Sekunden nach 18:00 Uhr, zu denen die Stapelverarbeitung beginnen sollte.

Hinweis: Bitte verwenden Sie den kryptografischen Zufallsgenerator des Betriebssystems (zum Beispiel in link:https://learn.microsoft.com/en-us/dotnet/api/system.security.cryptography.randomnumbergenerator?view=net-8.0[.Net]).

.Beispielhafter Algorithmus zur Bestimmung eines zufälligen Zeitpunktes zwischen 18:00 und 22:00 Uhr (Klicken zum Ausklappen)
[%collapsible]

====
[source,code]
----
// Generiere einen zufälligen Offset zwischen 0 und 14.400 Sekunden, um die Zeit zwischen 18:00 und 22:00 zu repräsentieren
int vonWert = 0
int bisWert = 14400
int offset = random(vonWert, bisWert)
// Erhalte das aktuelle Datum und die aktuelle Uhrzeit
DateTime anfangsZeit= new DateTime()
// Setze die Uhrzeit auf 18:00 Uhr
anfangsZeit.setTime(18, 00)
// Füge den zufälligen Offset zur Startzeit hinzu
anfangsZeit.addSeconds(offset)
// Die Variable 'anfangsZeit' enthält jetzt DateTime mit der angepassten Anfangszeit
----
====

*Request*
[cols="h,a", separator=¦]
[%autowidth]
Expand Down
33 changes: 33 additions & 0 deletions docs_sources/erp_abrufen-source.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -201,6 +201,39 @@ Der Aufruf erfolgt als http-POST-Operation mit der FHIR-Operation `$close`. Im h
Im http-ResponseBody wird die serverseitig über den Task und das E-Rezept-Bundle erzeugte Signatur als `Quittungs-Bundle`-Ressource zurückgegeben, die dem Apotheker gegenüber der Krankenkasse als Quittung dient.
NOTE: Zurzeit kann die Signatur mit den Konnektor-Versionen PTV4, PTV4+ und PTV5 nicht geprüft werden.

=== Stapelverarbeitung
Die Apotheken können bis zum Ende des nächsten Werkstages warten, bevor sie ein E-Rezept abschließen. Es besteht die Möglichkeit, dies automatisch als Stapelverarbeitung zwischen 18:00 und 22:00 Uhr durchzuführen. Um die betriebliche Stabilität zu gewährleisten darf die Stapelverarbeitung nur durchgeführt werden, wenn der Startzeitpunkt durch einen Algorithmus zufällig bestimmt wird.

Der Algorithmus sollte eine zufällige Zahl zwischen 0 und 14.400 generieren. Diese Zahl entspricht den Sekunden nach 18:00 Uhr, zu denen die Stapelverarbeitung beginnen sollte.

Hinweis: Bitte verwenden Sie den kryptografischen Zufallsgenerator des Betriebssystems (zum Beispiel in link:https://learn.microsoft.com/en-us/dotnet/api/system.security.cryptography.randomnumbergenerator?view=net-8.0[.Net]).

.Beispielhafter Algorithmus zur Bestimmung eines zufälligen Zeitpunktes zwischen 18:00 und 22:00 Uhr (Klicken zum Ausklappen)
[%collapsible]

====
[source,code]
----
// Generiere einen zufälligen Offset zwischen 0 und 14.400 Sekunden, um die Zeit zwischen 18:00 und 22:00 zu repräsentieren
int vonWert = 0
int bisWert = 14400
int offset = random(vonWert, bisWert)
// Erhalte das aktuelle Datum und die aktuelle Uhrzeit
DateTime anfangsZeit= new DateTime()
// Setze die Uhrzeit auf 18:00 Uhr
anfangsZeit.setTime(18, 00)
// Füge den zufälligen Offset zur Startzeit hinzu
anfangsZeit.addSeconds(offset)
// Die Variable 'anfangsZeit' enthält jetzt DateTime mit der angepassten Anfangszeit
----
====

*Request*
[cols="h,a", separator=¦]
[%autowidth]
Expand Down

0 comments on commit 989c9c9

Please sign in to comment.