diff --git a/dev/flat_insert_data_ars.Rmd b/dev/flat_insert_data_ars.Rmd
new file mode 100644
index 0000000000000000000000000000000000000000..02ff6038dba0577e3176118be7e15563e5d547d5
--- /dev/null
+++ b/dev/flat_insert_data_ars.Rmd
@@ -0,0 +1,162 @@
+---
+title: "Insertion des pr\u00e9l\u00e8vements et analyses ARS ARS"
+output: html_document
+editor_options: 
+  chunk_output_type: console
+---
+
+```{r development, include=FALSE}
+library(testthat)
+library(yaml)
+library(datalibaba)
+library(dplyr)
+library(stringr)
+library(glue)
+library(DBI)
+library(RPostgres)
+
+```
+
+```{r development-load}
+# Load already included functions if relevant
+pkgload::load_all(export_all = FALSE)
+
+```
+
+```{r config, eval=FALSE}
+# Lire le fichier de configuration
+config <- yaml::read_yaml("config.yml")
+
+# Accéder à la valeur pour version
+version <- config$version
+
+```
+
+# Consolidation et insertion des données de l'ARS dans la table des prélèvements
+
+## Chargement des données ARS brutes et des stations ESO
+
+La table des données brutes Nitrates de l'ARS est chargée :
+```{r load_nitrate_data_analyse_ars, eval=FALSE}
+nitrate_data_analyse_ars <- datalibaba::importer_data(
+  table = "nitrate_data_analyse_ars",
+  schema = "nitrates",
+  db = "si_eau",
+  user = "admin"
+)
+
+```
+
+La table des stations est chargée afin de remplacer ultérieurement le code SISE-EAUX par le code BSS pour les prélèvements ESO :
+```{r load-nitrate_station_eso, eval=FALSE}
+r_station_mesure_p_2024_r52 <- datalibaba::importer_data(
+  table = "r_station_mesure_p_2024_r52",
+  schema = "stations",
+  db = "si_eau",
+  user = "admin"
+)
+
+```
+
+## Consolidation des données ARS
+
+On ajoute les variables `source` et `code_support` :
+```{r add_source_code_support, eval=FALSE}
+# Ajouter les variables source et code_support
+nitrate_data_analyse_ars <- nitrate_data_analyse_ars |>
+  dplyr::mutate(
+    source = "ARS",
+    code_support = 3
+  )
+```
+
+On remplace "h" par ":" dans la variable `plv_heure` :
+```{r replace_in_plv_heure, eval=FALSE}
+# Remplacer "h" par ":" dans la colonne plv_heure
+nitrate_data_analyse_ars <- nitrate_data_analyse_ars |>
+  dplyr::mutate(plv_heure = stringr::str_replace_all(plv_heure, "h", ":"))
+```
+
+On supprime les enregistrements correspondants à des totaux :
+```{r filter_param_nom_ars, eval=FALSE}
+# Supprimer les lignes ne correspondant pas à une analyse
+nitrate_analyse_ars <- nitrate_data_analyse_ars |>
+  dplyr::filter(!stringr::str_starts(param_nom, "Total"))
+
+```
+
+On remplace les chaînes de caractère par NA dans la variable `ana_param_alpha_resultat` :
+```{r replace_strings_with_na, eval=FALSE}
+# Remplacer chaînes de caractère dans la colonne ana_param_alpha_resultat
+nitrate_analyse_ars <- nitrate_analyse_ars |>
+  dplyr::mutate(
+    ana_param_alpha_resultat = dplyr::case_when(
+      ana_param_alpha_resultat %in% c("TRACES", "PRESENCE", "SEUIL", "ILLISIBL", "N.M.", "O", "?", ",", " ") ~ NA_character_,
+      TRUE ~ ana_param_alpha_resultat
+    )
+  )
+
+```
+
+On remplace des valeurs dans ana_param_alpha_resultat et param_code:
+```{r replace_dot_ana_param_alpha_resultat, eval=FALSE}
+# Remplacer les valeurs dans les colonnes ana_param_alpha_resultat et param_code
+nitrate_analyse_ars <- nitrate_analyse_ars |>
+  dplyr::mutate(
+    ana_param_alpha_resultat = stringr::str_replace(ana_param_alpha_resultat, "\\,", "."),
+    param_code = stringr::str_replace(param_code, "NO3", "1340")
+    )
+
+```
+
+On affecte le code_remarque et la valeur des variables resultat_analyse et  limite_quantification :
+```{r mutate_from_ana_param_alpha_resultat, eval=FALSE}
+# Ajouter les colonnes code_remarque, resultat_analyse et limite_quantification
+nitrate_analyse_ars <- nitrate_analyse_ars |>
+  dplyr::mutate(
+    # Ajout de la colonne code_remarque selon la condition spécifiée
+    code_remarque = dplyr::case_when(
+      stringr::str_starts(ana_param_alpha_resultat, "<") ~ 10,
+      TRUE ~ 1
+    ),
+    # Renommage conditionnel des colonnes
+    resultat_analyse = dplyr::case_when(
+      stringr::str_starts(ana_param_alpha_resultatdev, "<") ~ as.character(ana_param_valeur_traduite),
+      TRUE ~ ana_param_alpha_resultat
+    ),
+    limite_quantification = dplyr::case_when(
+      stringr::str_starts(ana_param_alpha_resultat, "<") ~ ana_param_alpha_resultat,
+      TRUE ~ NA_character_  # Utilisation de NA pour les valeurs non pertinentes
+    )
+  )
+
+```
+
+On sélectionne les champs utiles à la table des prélèvements et analyse :
+```{r select_variables, eval=FALSE}
+# Sélectionner les variables
+nitrate_data_analyse_ars <- nitrate_data_analyse_ars |>
+  dplyr::select(code_intervenant = geo_dept_ddass_gest_code,
+                source,
+                code_station = ins_code_national,
+                date_prelevement = plv_date,
+                heure_prelevement = plv_heure,
+                code_support,
+                nature_eau,
+                id_usage = usage,
+                id_prelevement_motif = plv_motif,
+                nom_parametre = param_nom,
+                date_analyse = anl_date_fin_analyse,
+                resultat_analyse,
+                code_parametre = param_code,
+                code_remarque,
+                limite_quantification)
+
+```
+
+```{r development-inflate, eval=FALSE}
+# Run but keep eval=FALSE to avoid infinite loop
+# Execute in the console directly
+fusen::inflate(flat_file = "dev/flat_insert_data_ars.Rmd", vignette_name = "Go further")
+```
+