diff --git a/function_load.R b/function_load.R index 7fac15ce028d7748978ce3c2c981b2ffb3b3512a..97de32bb47682ff85ca7cc31f007afe0e8645f23 100644 --- a/function_load.R +++ b/function_load.R @@ -30,67 +30,71 @@ if (length(commandArgs(trailingOnly = TRUE)) > 0) { #create global variable for the readline-command choice <- T -function_create_validfrom <- function(combinedDataFrame){ - #nrow(cleaned_df) - # Format für validfrom - # 2023-10-23 08:02 - - #erhöht den Tag immer um 1, damit das Skript ab dem nächsten Tag startet. - date <- paste(year(Sys.time()),,,sep="-") - zyear <- year(Sys.time()) - zmonth <- month(Sys.time()) - zday <- day(Sys.time())+1 - list_for_hour <- c() - - for (i in 0:23){ - if(i<10){ - list_for_hour <- c(list_for_hour,paste0(zyear,"-",zmonth,"-",zday," ","0",i,":00")) - } else{ - list_for_hour <- c(list_for_hour,paste0(zyear,"-",zmonth,"-",zday," ",i,":00")) - } - } - print(list_for_hour) - - # es werden 300-500 Mails in einer Stunde versendet. - # bei 24h werden somit zwischen 7200 und 12000 Mails versendet. - # bei 100.000 werten und 7200 Mails muss ich also über 14 Tage gehen. - - # Erstelle einen leeren Vektor für die Datumswerte - date_values <- c() - - # Schleife von 0 bis 23 Stunden - for (i in 0:23) { - # Erhöhe das Datum um eine Stunde - current_date <- start_date + hours(i) - - # Füge das Datum zum Vektor hinzu - date_values <- c(date_values, current_date) - - # Wenn die Stunde 23 ist, erhöhe den Tag um eins und setze die Stunde auf 0 - if (i == 23) { - start_date <- start_date + days(1) # Erhöhe den Tag um eins - start_date <- start_date - hours(23) # Setze die Stunde auf 0 - } - } - - - anzahl_zeilen <- nrow(cleaned_df) - - # Schleife über die Anzahl der Zeilen - for (i in 1:anzahl_zeilen) { - # Schreibe den aktuellen Wert in die Spalte 'column_name' - cleaned_df$validfrom[i] <- date - - # Aktualisiere den Wert nach jeweils 300 Zyklen - if (i %% 300 == 0) { - date <- wert + 1 - } - } - - - - combined_token_with_download -} + +# Funktion findet keine Verwendung. -> nicht fertig geschrieben!! +# wird in Limesurvey über die Menge geregelt. +# function_create_validfrom <- function(combinedDataFrame){ +# # Probleme die bei der automatischen Datumssetzung entstehen: +# # Beim übergang auf den nächsten Monat muss aufgepasst werden. +# # Format für validfrom +# # 2023-10-23 08:02 +# +# #erhöht den Tag immer um 1, damit das Skript ab dem nächsten Tag startet. +# date <- paste(year(Sys.time()),,,sep="-") +# zyear <- year(Sys.time()) +# zmonth <- month(Sys.time()) +# zday <- day(Sys.time())+1 +# list_for_hour <- c() +# +# for (i in 0:23){ +# if(i<10){ +# list_for_hour <- c(list_for_hour,paste0(zyear,"-",zmonth,"-",zday," ","0",i,":00")) +# } else{ +# list_for_hour <- c(list_for_hour,paste0(zyear,"-",zmonth,"-",zday," ",i,":00")) +# } +# } +# print(list_for_hour) +# +# # es werden 300-500 Mails in einer Stunde versendet. +# # bei 24h werden somit zwischen 7200 und 12000 Mails versendet. +# # bei 100.000 werten und 7200 Mails muss ich also über 14 Tage gehen. +# +# # Erstelle einen leeren Vektor für die Datumswerte +# date_values <- c() +# +# # Schleife von 0 bis 23 Stunden +# for (i in 0:23) { +# # Erhöhe das Datum um eine Stunde +# current_date <- start_date + hours(i) +# +# # Füge das Datum zum Vektor hinzu +# date_values <- c(date_values, current_date) +# +# # Wenn die Stunde 23 ist, erhöhe den Tag um eins und setze die Stunde auf 0 +# if (i == 23) { +# start_date <- start_date + days(1) # Erhöhe den Tag um eins +# start_date <- start_date - hours(23) # Setze die Stunde auf 0 +# } +# } +# +# +# anzahl_zeilen <- nrow(cleaned_df) +# +# # Schleife über die Anzahl der Zeilen +# for (i in 1:anzahl_zeilen) { +# # Schreibe den aktuellen Wert in die Spalte 'column_name' +# cleaned_df$validfrom[i] <- date +# +# # Aktualisiere den Wert nach jeweils 300 Zyklen +# if (i %% 300 == 0) { +# date <- wert + 1 +# } +# } +# +# +# +# combined_token_with_download +# } #first: define all functions: @@ -143,15 +147,19 @@ function_start <- function(){ cat(" wird verwendet, wenn TN angeschrieben werden, bei denen in der Mail keine Haushalts-ID angegeben wird.\n") cat(" Tokenliste OHNE Haushald-ID erhält man von den wissenschaftlichen Mitarbeiter*innen\n") cat("-------------------------------------------------------------------------------------------------------------------\n") + cat("5 = Tokenaufbereiter CoPrep Radiologie:\n") + #cat(" wird verwendet, wenn TN angeschrieben werden, bei denen in der Mail keine Haushalts-ID angegeben wird.\n") + #cat(" Tokenliste OHNE Haushald-ID erhält man von den wissenschaftlichen Mitarbeiter*innen\n") + cat("-------------------------------------------------------------------------------------------------------------------\n") cat("9 = mir ist ein Fehler passiert. Es wird nichts gespeichert!\n") function_read_prompt() - if (!choice %in% c("1","2","3","4","9")){ + if (!choice %in% c("1","2","3","4","5","9")){ cat("\n") cat("\n") cat("##################\n") - cat("Ungültige Auswahl! Bitte verwende: 1, 2, 3, 4 oder 9. Danke.\n") + cat("Ungültige Auswahl! Bitte verwende: 1, 2, 3, 4, 5 oder 9. Danke.\n") cat("##################\n") cat("\n") cat("\n") @@ -168,13 +176,15 @@ function_start <- function(){ function_Tokenaufbereiter_MIT_HHID_als_firstname() } else if (choice == 4) { function_Tokenaufbereiter_OHNE_HHID() + } else if (choice == 5) { + function_Tokenaufbereiter_coprep_radiologie() } else { function_exit() } } } - +#Nummer 1 function_Tokenaufbereiter_alle_TN <- function() { cat("\n") cat("Tokenaufbereiter alle TN\n") @@ -192,7 +202,7 @@ function_Tokenaufbereiter_alle_TN <- function() { combined_token_with_download <- combined_token_with_download |> relocate(id, .before = firstname) #save the file - #setwd("H:/01_Limesurvey_TokenVergleich") + #setwd("P:/IMEBI/DigiHero_Teilnehmerdaten/Massenmails/tokenaufbereiter/erstellte_Dateien") write.csv(combined_token_with_download,paste0("./Umfrageteilnehmertabelle_",format(Sys.Date(), "%Y_%m_%d"),"_alle_TN.csv"), row.names = F) @@ -200,6 +210,7 @@ function_Tokenaufbereiter_alle_TN <- function() { } +#Nummer 2 function_Tokenaufbereiter_Newsletter <- function() { cat("\n") cat("Tokenaufbereiter Newsletter\n") @@ -241,7 +252,7 @@ function_Tokenaufbereiter_Newsletter <- function() { filter(!token %in% token_for_newsletter_to_remove$token) #save the file - #setwd("H:/01_Limesurvey_TokenVergleich") + #setwd("P:/IMEBI/DigiHero_Teilnehmerdaten/Massenmails/tokenaufbereiter/erstellte_Dateien") write.csv(combined_token_with_download,paste0("./Umfrageteilnehmertabelle_",format(Sys.Date(), "%Y_%m_%d"),"_Newsletter.csv"), row.names = F) function_end() @@ -252,7 +263,7 @@ function_Tokenaufbereiter_Newsletter <- function() { } } - +# Nummer 3 function_Tokenaufbereiter_MIT_HHID_als_firstname <- function() { cat("\n") cat("Tokenaufbereiter MIT HHID als firstname\n") @@ -303,17 +314,18 @@ function_Tokenaufbereiter_MIT_HHID_als_firstname <- function() { combined_token_with_download <- combined_token_with_download |> relocate(token, .after = emailstatus) #save the file - #setwd("H:/01_Limesurvey_TokenVergleich") + #setwd("P:/IMEBI/DigiHero_Teilnehmerdaten/Massenmails/tokenaufbereiter/erstellte_Dateien") write.csv(combined_token_with_download,paste0("./Umfrageteilnehmertabelle_",format(Sys.Date(), "%Y_%m_%d"),"_mit_HHID_as_firstname.csv"), row.names = F) function_end() } else{ - #Eingebe: irgenwas auser [ENTER] -> Abbruch + #Eingabe: irgendwas ausser [ENTER] -> Abbruch function_exit() } } +#Nummer 4 function_Tokenaufbereiter_OHNE_HHID <- function() { cat("\n") cat("Tokenaufbereiter OHNE HHID\n") @@ -332,6 +344,7 @@ function_Tokenaufbereiter_OHNE_HHID <- function() { if (choice == "y" || choice == ""){ #Eingabe: [ENTER] -> weiter gehts + #token_list <- read_xlsx(file.choose()) #laden und joinen token_list <- tryCatch({ read_xlsx(file.choose()) @@ -351,7 +364,7 @@ function_Tokenaufbereiter_OHNE_HHID <- function() { #save the file - setwd("H:/01_Limesurvey_TokenVergleich") + #setwd("P:/IMEBI/DigiHero_Teilnehmerdaten/Massenmails/tokenaufbereiter/erstellte_Dateien") write.csv(combined_token_with_download,paste0("./Umfrageteilnehmertabelle_",format(Sys.Date(), "%Y_%m_%d"),"_ohne_HHID.csv"), row.names = F) function_end() @@ -360,11 +373,71 @@ function_Tokenaufbereiter_OHNE_HHID <- function() { #Eingabe: irgenwas auser [ENTER] -> Abbruch function_exit() } +} + +#Coprep-Radiologie +#Nummer 5 _ Neu Eingefügt am 12.11.2024 nach Anfrage von Mareike + +function_Tokenaufbereiter_coprep_radiologie <- function() { + cat("\n") + cat("Tokenaufbereiter für CoPrep Radiologie\n") + cat("---------------------------------------\n") + if(use_powershell){ + cat("Hast du die Datei? Press [y + ENTER]. Ansonsten kann das Script mit Eingabe von [e + ENTER] beendet werden\n") + }else{ + cat("Hast du die Datei? Press [ENTER]. Ansonsten kann das Script mit Eingabe von [e + ENTER] beendet werden\n") + } + function_read_prompt() + if (choice == "y" || choice == ""){ + #Eingabe: [ENTER] -> weiter gehts + + #laden und joinen + token_list <- tryCatch({ + read_xlsx(file.choose()) + }, error = function(e) { + message("Failure: ",conditionMessage(e)) + NULL + function_exit() + }) + names(token_list) <- tolower(names(token_list)) + combined_token_with_download <- inner_join(token_list,cleaned_df, by=c("hhid"="token")) + + #rename + combined_token_with_download <- combined_token_with_download %>% + rename(first = firstname) + combined_token_with_download <- combined_token_with_download %>% + rename(last = lastname) + combined_token_with_download$lastname <- paste(combined_token_with_download$first, + combined_token_with_download$last, sep = " ") + combined_token_with_download <- combined_token_with_download %>% + rename(firstname = hhid) + combined_token_with_download$first <- NULL + combined_token_with_download$last <- NULL + + # zeilennummer erzeugen + combined_token_with_download <- combined_token_with_download %>% mutate(id = row_number()) + + #relocate + combined_token_with_download <- combined_token_with_download |> relocate(id, .before = firstname) + combined_token_with_download <- combined_token_with_download |> relocate(lastname, .after = firstname) + combined_token_with_download <- combined_token_with_download |> relocate(token, .after = emailstatus) + + #save the file + #setwd("P:/IMEBI/DigiHero_Teilnehmerdaten/Massenmails/tokenaufbereiter/erstellte_Dateien") + write.csv(combined_token_with_download,paste0("./Umfrageteilnehmertabelle_",format(Sys.Date(), "%Y_%m_%d"),"_CoPrep_Radiologie.csv"), row.names = F) + + function_end() + + } else{ + #Eingabe: irgendwas ausser [ENTER] -> Abbruch + function_exit() + } } + function_exit <- function() { cat("\n") cat("Script wird beendet. Es erfolgt keine Speicherung irgendwelcher Dateien.\n")