diff --git a/docs/erp_abrufen.adoc b/docs/erp_abrufen.adoc index b9b950c0..75f97f44 100644 --- a/docs/erp_abrufen.adoc +++ b/docs/erp_abrufen.adoc @@ -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] diff --git a/docs_sources/erp_abrufen-source.adoc b/docs_sources/erp_abrufen-source.adoc index 8c1a9372..8c29543b 100644 --- a/docs_sources/erp_abrufen-source.adoc +++ b/docs_sources/erp_abrufen-source.adoc @@ -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]