Hm, ich glaube nicht, dass ich die Problemfälle den Daten zuordnen kann, da ich die Zuordnung von SERIAL und E-Mail-Adresse nicht habe. Ich sehe zwar über die Adressliste den Tag, an dem der Opt-In-Fragebogen versendet worden ist (für alle Problemfälle am gleichen Tag), allerdings kann ich nicht definitiv sagen, ob diese TN ihre Anmeldung auch an diesem Tag bestätigt und somit den Fragebogen aufgerufen haben. Für den entsprechenden Tag sind jedenfalls 11 aufgerufene Opt-In-Fragebögen vorhanden, von denen max. 2 den gleichen Code vom Zufallsgenerator bekommen haben. Aber wie gesagt, ob die 5 Problemfälle wirklich darunter sind, weiß ich nicht. Oder haben Sie noch eine Idee, wie ich das bei pseudonymisierten Daten herausfinden kann?
Der php-Code für den randomisierten Versand der SMS sah prinzipiell wie folgt aus:
// scheduler für Woche 1: 12.04.2021 - 18.04.2021
// Bestimme Startzeitpunkt für jeden Beep der Woche
// 1. Tag: 12.04.
// beep 1
$d1b1 = strtotime('2021-04-12 9:00:00') + random(0, 7140); // = ziehe Zeitpunkt zwischen 9:00 Uhr + 1 Std. 59 (: 7140 Sek.)
// beep 2
// Schritt 1: bestimme frühstmöglichen Startzeitpunkt für beep 2
// = der spätere Zeitpunkt von
// a) Versandzeitpunkt beep 1 (=$d1b1) + 45 Minuten (2700 Sek.) oder
// b) Startpunkt des Zeitfensters von beep 2 (= 11 Uhr)
// da beeps immer mind. 45 Minuten auseinander liegen sollen
$t1 = max($d1b1 + 2700, strtotime('2021-04-12 11:00:00'));
// Schritt 2: Berechne die Zeitspanne, in der für beep 2 ein zufälliger Zeitpunkt gezogen werden kann
// = Endzeitpunkt Zeitspanne beep 2 (= 12:59) minus frühster Startzeitpunkt beep 2 (= t1)
$t2 = strtotime('2021-04-12 12:59:00');
$t3 = $t2 - $t1;
// Schritt 3: Definiere Zeitspanne, in der Mail für beep 2 versendet werden kann
$d1b2 = $t1 + random(0, $t3);
// beep 3
$t4 = max($d1b2 + 2700, strtotime('2021-04-12 13:00:00'));
$t5 = strtotime('2021-04-12 14:59:00');
$t6 = $t5 - $t4;
$d1b3 = $t4 + random(0, $t6);
// beep 4
$t7 = max($d1b3 + 2700, strtotime('2021-04-12 15:00:00'));
$t8 = strtotime('2021-04-12 16:59:00');
$t9 = $t8 - $t7;
$d1b4 = $t7 + random(0, $t9);
// beep 5
$t10 = max($d1b4 + 2700, strtotime('2021-04-12 17:00:00'));
$t11 = strtotime('2021-04-12 18:59:00');
$t12 = $t11 - $t10;
$d1b5 = $t10 + random(0, $t12);
// beep 6: eod survey --> fester Zeitpunkt
$d1b6 = strtotime('2021-04-12 21:00:00');
// Versenden der SMS zum randomisierten Zeitpunkt
// Woche 1 Tag 1
mailSchedule(false, 5, $d1b1);
mailSchedule(false, 6, $d1b2);
mailSchedule(false, 7, $d1b3);
mailSchedule(false, 8, $d1b4);
mailSchedule(false, 9, $d1b5);
mailSchedule(false, 10, $d1b6);
(...)
Ich habe hier jetzt mal die ersten Zeilen des php-Codes für den Code 1 vom Zufallsgenerator gewählt. Das Ganze geht munter so weiter bis beep 6 an Tag 14. Da das extrem lang ist, wusste ich nicht, ob das wirklich zielführend ist, das hier zu posten. Falls Sie es doch brauchen, geben Sie gerne noch einmal Bescheid.
Insgesamt gab es 7 Codes beim Zufallsgenerator, da ändern sich aber eigentlich nur die Datumsangaben für die Wochentage.
Der php-Code für den Versand des ersten Fragebogens für Studienteil 1 war auf der gleichen Seite (noch vor dem Code für die SMS):
// E-Mail für Baseline FB in 10 Sekunden verschicken
mailSchedule(false, 3, 10);
// Erinnerung Baseline FB März
mailSchedule(false, 4, strtotime('2021-04-09 10:00:00'), array(
'status' => 'no-response'));
Sagen Sie gerne Bescheid, wenn Sie noch weitere Infos brauchen! Und nochmals herzlichen Dank!