From 6c69ab37ae74e31cc35e40f80434dfecce01877f Mon Sep 17 00:00:00 2001 From: Louis Mazin Date: Thu, 10 Jul 2025 19:07:20 +0200 Subject: [PATCH] it works --- .gitignore | 6 +-- build.bat | 3 +- config.json | 2 +- core/theme.py | 106 +++++++++++++++++++++++++++++++++++++++++++++ core/verifier.py | 83 +++++++++++++++++++++++++++++++++++ data/truth.json | 20 +++++++++ main.py | 58 +++++-------------------- open.bat | 10 ++--- toTest.csv | 76 ++++++++++++++++++++++++++++++++ ui/windows/main.py | 78 +++++++++++++++++++++++++++++++++ utils/paths.py | 8 +++- 11 files changed, 389 insertions(+), 61 deletions(-) create mode 100644 core/theme.py create mode 100644 core/verifier.py create mode 100644 data/truth.json create mode 100644 toTest.csv create mode 100644 ui/windows/main.py diff --git a/.gitignore b/.gitignore index a6f7071..1d59c89 100644 --- a/.gitignore +++ b/.gitignore @@ -20,9 +20,9 @@ desktop.ini .env.development .env.test .env.production -LINenv/ -WINenv/ -MACenv/ +LINenv*/ +WINenv*/ +MACenv*/ # Fichiers de dépendances /node_modules/ diff --git a/build.bat b/build.bat index f92a097..d120d42 100644 --- a/build.bat +++ b/build.bat @@ -4,7 +4,6 @@ setlocal enabledelayedexpansion REM === PATH SETUP === set PARENT_DIR=%~dp0 set BUILD_DIR=%~dp0.. -set VENV_PATH=%PARENT_DIR%\WINenv set PYTHON_IN_VENV=%VENV_PATH%\Scripts\python.exe set ICON_PATH=data/assets/icon.ico set CONFIG_FILE=%PARENT_DIR%\config.json @@ -16,7 +15,7 @@ for /f "delims=" %%i in ('powershell -NoProfile -Command ^ "Get-Content '%CONFIG_FILE%' | ConvertFrom-Json | Select-Object -ExpandProperty app_name"') do set APP_NAME=%%i for /f "delims=" %%i in ('powershell -NoProfile -Command ^ "Get-Content '%CONFIG_FILE%' | ConvertFrom-Json | Select-Object -ExpandProperty architecture"') do set ARCHITECTURE=%%i - +set VENV_PATH=%PARENT_DIR%\WINenv_%ARCHITECTURE% set EXE_NAME=%APP_NAME%-Windows-%ARCHITECTURE% REM === Construct full python path from config.json === diff --git a/config.json b/config.json index 2149b6c..d302a1d 100644 --- a/config.json +++ b/config.json @@ -3,5 +3,5 @@ "python_version": "3.11.7", "app_os": "Windows", "app_version": "1.0.0", - "architecture": "x64" + "architecture": "x32" } \ No newline at end of file diff --git a/core/theme.py b/core/theme.py new file mode 100644 index 0000000..3e0e16e --- /dev/null +++ b/core/theme.py @@ -0,0 +1,106 @@ +def get_element_color(element: str) -> str: + if element == "background": + return "#FFFFFF" + if element == "background2": + return "#F5F5F5" + if element == "background3": + return "#E0E0E0" + if element == "color": + return "#5D5A5A" + if element == "text": + return "#000000" + else: + return "#000000" +def get_sheet() -> str: + return f""" + QWidget {{ + background-color: {get_element_color("background")}; + color: {get_element_color("text")}; + }} + QPushButton {{ + background-color: #0A84FF; + color: {get_element_color("text")}; + border-radius: 8px; + font-size: 16px; + padding: 10px 20px; + border: none; + }} + QPushButton:hover {{ + background-color: #007AFF; + }} + QLineEdit {{ + border: 1px solid #3C3C3E; + border-radius: 8px; + padding: 10px; + font-size: 14px; + background-color: {get_element_color("background2")}; + color: {get_element_color("text")}; + }} + QLabel {{ + color: {get_element_color("text")}; + }} + QProgressBar {{ + border: 1px solid #3C3C3E; + border-radius: 5px; + background-color: {get_element_color("background2")}; + text-align: center; + color: {get_element_color("text")}; + }} + QProgressBar::chunk {{ + background-color: #0A84FF; + border-radius: 3px; + }} + QFrame {{ + background-color: {get_element_color("background2")}; + border: none; + }} + QFrame#indicator_bar {{ + background-color: #0A84FF; + }} + QScrollBar:vertical {{ + border: none; + background: #E0E0E0; + width: 8px; + margin: 0px; + }} + QScrollBar::handle:vertical {{ + background: #0A84FF; + border-radius: 4px; + min-height: 20px; + }} + QScrollBar::handle:vertical:hover {{ + background: #3B9CFF; + }} + QScrollBar::add-line:vertical, QScrollBar::sub-line:vertical {{ + border: none; + background: none; + height: 0px; + }} + QScrollBar::add-page:vertical, QScrollBar::sub-page:vertical {{ + background: none; + }} + #drag_area {{ + border: 2px dashed #3498db; border-radius: 10px; + }} + QSlider::groove:horizontal {{ + border: 1px solid #3a9bdc; + height: 10px; + background: transparent; + border-radius: 5px; + }} + QSlider::sub-page:horizontal {{ + background: #3a9bdc; + border-radius: 5px; + }} + QSlider::add-page:horizontal {{ + background: {get_element_color("background3")}; + border-radius: 5px; + }} + QSlider::handle:horizontal {{ + background: white; + border: 2px solid #3a9bdc; + width: 14px; + margin: -4px 0; + border-radius: 7px; + }} + """ \ No newline at end of file diff --git a/core/verifier.py b/core/verifier.py new file mode 100644 index 0000000..9f65285 --- /dev/null +++ b/core/verifier.py @@ -0,0 +1,83 @@ +import json, csv +from utils.paths import resource_path + +class Patient: + def __init__(self, json_data : dict): + self.json_data = json_data + + def get_value(self, key): + return self.json_data.get(key, None) + + def compare_value(self, key, value): + return self.get_value(key) == value + + def __str__(self): + return f"Patient({self.json_data})" +class Patients: + def __init__(self, patients_data : list[dict]): + self.patients = [Patient(data) for data in patients_data] + + def get_patients(self): + return self.patients + + def trouver(self, to_find): + for patient in self.patients: + if patient.get_value("Numéro de correspondance") == to_find.get_value("Numéro de correspondance"): + return patient + return None + +class Verifier: + def __init__(self): + try: + truth_file_path = resource_path("data/truth.json") + with open(truth_file_path, 'r', encoding='utf-8') as file: + truth_data = json.load(file) + self.truth = Patients(truth_data["patients"]) + except Exception: + self.truth = Patients([]) + + def verify(self, patients_csv: str): + # Read CSV file and convert to list of dictionaries + patients_data = [] + try: + with open(patients_csv, 'r', encoding='utf-8') as file: + csv_reader = csv.reader(file, delimiter=';') + rows = list(csv_reader) + + if not rows: + return "CSV file is empty" + + # First row contains column names + headers = rows[0] + # Convert each subsequent row to a dictionary + for row in rows[1:]: + patient_dict = {headers[i]: row[i] for i in range(len(headers))} + patients_data.append(patient_dict) + except FileNotFoundError: + return f"Error: File {patients_csv} not found" + except Exception as e: + return f"Error reading CSV file: {e}" + + self.patients = Patients(patients_data) + + # Check if we have truth data + if not self.truth.get_patients(): + return ["Erreur: Aucune donnée de vérité n'a pu être chargée"] + + key_to_test = self.truth.get_patients()[0].json_data.keys() + issues = [] + + for patient in self.patients.get_patients(): + issue_founded = False + truth_patient = self.truth.trouver(patient) + if truth_patient: + for key in key_to_test: + if not patient.compare_value(key, truth_patient.get_value(key)): + issue_founded = True + issues.append(f"Le patient avec le numéro de correspondance n°{patient.get_value('Numéro de correspondance')} a une discordance avec {key}. Attendu : {truth_patient.get_value(key)}, Trouvé : {patient.get_value(key)}") + else: + issue_founded = True + issues.append(f"Le patient avec le numéro de correspondance n°{patient.get_value('Numéro de correspondance')} n'a pas été trouvé dans les données de vérité") + if issue_founded: + issues.append("") + return issues \ No newline at end of file diff --git a/data/truth.json b/data/truth.json new file mode 100644 index 0000000..505757a --- /dev/null +++ b/data/truth.json @@ -0,0 +1,20 @@ +{ + "patients": [ + { + "Numéro de correspondance": "0", + "date_de_la_pose_de_l_endoprothese": "2023-10-01" + }, + { + "Numéro de correspondance": "1", + "date_de_la_pose_de_l_endoprothese": "2023-10-02" + }, + { + "Numéro de correspondance": "2", + "date_de_la_pose_de_l_endoprothese": "2023-10-03" + }, + { + "Numéro de correspondance": "3", + "date_de_la_pose_de_l_endoprothese": "2023-10-04" + } + ] +} \ No newline at end of file diff --git a/main.py b/main.py index 77dce1e..5cf31bb 100644 --- a/main.py +++ b/main.py @@ -1,53 +1,15 @@ -## Interface with only a path widget (combo of QLineEdit and QPushButton to explore the file system) -## and a button : verify (call a temp verify function) -from PyQt5.QtWidgets import QApplication, QWidget, QVBoxLayout, QPushButton, QLineEdit, QFileDialog import sys -import os -import tempfile +from PyQt5.QtWidgets import QApplication +from ui.windows.main import Main +from core.theme import get_sheet -def verify_path(path): - # Temporary verification function - if os.path.exists(path): - print(f"Path '{path}' exists.") - else: - print(f"Path '{path}' does not exist.") +def main(): + app = QApplication(sys.argv) + app.setStyleSheet(get_sheet()) + window = Main() -class PathWidget(QWidget): - def __init__(self): - super().__init__() - self.init_ui() - - def init_ui(self): - self.layout = QVBoxLayout() - - # Create a QLineEdit for the path input - self.path_input = QLineEdit(self) - self.path_input.setPlaceholderText("Enter or select a path") - self.layout.addWidget(self.path_input) - - # Create a QPushButton to open the file dialog - self.browse_button = QPushButton("Browse", self) - self.browse_button.clicked.connect(self.open_file_dialog) - self.layout.addWidget(self.browse_button) - - # Create a QPushButton to verify the path - self.verify_button = QPushButton("Verify", self) - self.verify_button.clicked.connect(self.verify_path) - self.layout.addWidget(self.verify_button) - - self.setLayout(self.layout) - self.setWindowTitle("Path Widget Example") - - def open_file_dialog(self): - path, _ = QFileDialog.getExistingDirectory(self, "Select Directory") - if path: - self.path_input.setText(path) - - def verify_path(self): - verify_path(self.path_input.text()) + window.show() + return app.exec() if __name__ == "__main__": - app = QApplication(sys.argv) - widget = PathWidget() - widget.show() - sys.exit(app.exec_()) \ No newline at end of file + sys.exit(main()) \ No newline at end of file diff --git a/open.bat b/open.bat index 9ef8c21..1c57649 100644 --- a/open.bat +++ b/open.bat @@ -4,8 +4,6 @@ setlocal enabledelayedexpansion REM Set file paths set CONFIG_FILE=%~dp0config.json set REQUIREMENTS=requirements.txt -set ENV_NAME=WINenv -set ENV_PATH=%~dp0%ENV_NAME% REM Extract config.json fields using PowerShell for /f "delims=" %%i in ('powershell -NoProfile -Command ^ @@ -16,7 +14,8 @@ for /f "delims=" %%i in ('powershell -NoProfile -Command ^ REM Construct python executable path set PYTHON_EXEC=C:\Logiciels\Python\%ARCHITECTURE%\%PYTHON_VERSION%\python.exe - +set ENV_NAME=WINenv_%ARCHITECTURE% +set ENV_PATH=%~dp0%ENV_NAME% if not exist "%PYTHON_EXEC%" ( echo [ERROR] Python introuvable à: %PYTHON_EXEC% echo Veuillez vérifier votre config.json ou le dossier d'installation. @@ -32,10 +31,9 @@ REM Check if virtual environment exists if not exist "%ENV_PATH%\Scripts\activate.bat" ( echo [INFO] Environnement virtuel introuvable, création... "%PYTHON_EXEC%" -m venv "%ENV_NAME%" - call "%ENV_PATH%\Scripts\activate.bat" echo [INFO] Installation des dépendances... - pip install --upgrade pip - pip install -r "%REQUIREMENTS%" + "%ENV_PATH%\Scripts\pip" install --upgrade pip + "%ENV_PATH%\Scripts\pip" install -r "%REQUIREMENTS%" ) else ( echo [INFO] Environnement virtuel trouvé. ) diff --git a/toTest.csv b/toTest.csv new file mode 100644 index 0000000..fca4ca5 --- /dev/null +++ b/toTest.csv @@ -0,0 +1,76 @@ +gender;date_de_la_pose_de_l_endoprothese;death_date;last_follow_up_date;follow_up_duration_months;age_today;age_at_inclusion_years;age_at_last_consultation;age_at_death_years;progress;"Numéro de correspondance";"Numéro de correspondance.comment";Poids;Poids.comment;Taille;Taille.comment;"Indice de masse corporelle";"Indice de masse corporelle.comment";Tabagisme;Tabagisme.comment;"Maladie pulmonaire obstructive chronique";"Maladie pulmonaire obstructive chronique.comment";Diabète;Diabète.comment;"Hypertension artérielle";"Hypertension artérielle.comment";Dyslipidémie;Dyslipidémie.comment;Coronaropathie;Coronaropathie.comment;"Accident vasculaire cérébral ischémique";"Accident vasculaire cérébral ischémique.comment";"Insuffisance cardiaque";"Insuffisance cardiaque.comment";"Artériopathie oblitérante des membres inférieurs";"Artériopathie oblitérante des membres inférieurs.comment";"Insuffisance rénale chronique";"Insuffisance rénale chronique.comment";Dialyse;Dialyse.comment;"Réparation aortique antérieure";"Réparation aortique antérieure.comment";"Maladie aortique d'origine génétique";"Maladie aortique d'origine génétique.comment";"Etat de l'anévrisme";"Etat de l'anévrisme.comment";"Classe ASA (American Society of Anesthesiologists)";"Classe ASA (American Society of Anesthesiologists).comment";Créatinine;Créatinine.comment;"Débit de filtration glomérulaire calculé (MDRD)";"Débit de filtration glomérulaire calculé (MDRD).comment";"Fraction d’éjection du ventricule gauche";"Fraction d’éjection du ventricule gauche.comment";"Date du scanner préopératoire";"Date du scanner préopératoire.comment";"Présence de l'artère mésentérique supérieure";"Présence de l'artère mésentérique supérieure.comment";"Présence de l’artère mésentérique inférieure";"Présence de l’artère mésentérique inférieure.comment";"Diamètre artère mésentérique supérieure";"Diamètre artère mésentérique supérieure.comment";"Diamètre artère mésentérique inférieure";"Diamètre artère mésentérique inférieure.comment";"Présence d'un thrombus";"Présence d'un thrombus.comment";"Canal circulant";"Canal circulant.comment";"Aortique sus rénal";"Aortique sus rénal.comment";"Aortique sous rénal";"Aortique sous rénal.comment";"Iliaque primitive droite";"Iliaque primitive droite.comment";"Iliaque primitive gauche";"Iliaque primitive gauche.comment";"Iliaque externe droite";"Iliaque externe droite.comment";"Iliaque externe gauche";"Iliaque externe gauche.comment";"Hypogastrique droite";"Hypogastrique droite.comment";"Hypogastrique gauche";"Hypogastrique gauche.comment";"Diamètre antéro postérieur";"Diamètre antéro postérieur.comment";"Diamètre transverse";"Diamètre transverse.comment";"Diamètre antéro postérieur";"Diamètre antéro postérieur.comment";"Diamètre transverse";"Diamètre transverse.comment";Diamètre;Diamètre.comment;Diamètre;Diamètre.comment;Diamètre;Diamètre.comment;Diamètre;Diamètre.comment;Diamètre;Diamètre.comment;Diamètre;Diamètre.comment;"En dehors de la liste ci-dessus";"En dehors de la liste ci-dessus.comment";"Date de pose de l'endoprothèse";"Date de pose de l'endoprothèse.comment";"Type d’endoprothèse";"Type d’endoprothèse.comment";"Référence endoprothèse sur CRO";"Référence endoprothèse sur CRO.comment";"Extension iliaque gauche jusqu'à l'iliaque externe";"Extension iliaque gauche jusqu'à l'iliaque externe.comment";"Extension iliaque droite jusqu'à l'iliaque externe";"Extension iliaque droite jusqu'à l'iliaque externe.comment";"Sac anévrismal";"Sac anévrismal.comment";"Artères lombaires";"Artères lombaires.comment";"Artère rénale gauche";"Artère rénale gauche.comment";"Artère rénale droite";"Artère rénale droite.comment";"Artère mésentérique inférieure";"Artère mésentérique inférieure.comment";"Artère hypogastrique droite";"Artère hypogastrique droite.comment";"Artère hypogastrique gauche";"Artère hypogastrique gauche.comment";Aucune;Aucune.comment;"Durée moyenne de séjour hospitalier";"Durée moyenne de séjour hospitalier.comment";"Date du dernier scanner à 2 ans de la pose d'endoprothèse";"Date du dernier scanner à 2 ans de la pose d'endoprothèse.comment";"Taille du sac selon un diamètre antéro-postérieur";"Taille du sac selon un diamètre antéro-postérieur.comment";"Signes scanographiques d’endo-tension";"Signes scanographiques d’endo-tension.comment";"Date de l'événement";"Date de l'événement.comment";"Type d'événement";"Type d'événement.comment";"Si autre, lequel ?";"Si autre, lequel ?.comment";"Type d'endofuite";"Type d'endofuite.comment";"Si type I";"Si type I.comment";"Si type II";"Si type II.comment";"Si type III";"Si type III.comment";"Embolisation de l'endofuite ?";"Embolisation de l'endofuite ?.comment";"Besoin d'un œil expert";"Besoin d'un œil expert.comment";"Date de l'événement";"Date de l'événement.comment";"Type d'événement";"Type d'événement.comment";"Si autre, lequel ?";"Si autre, lequel ?.comment";"Type d'endofuite";"Type d'endofuite.comment";"Si type I";"Si type I.comment";"Si type II";"Si type II.comment";"Si type III";"Si type III.comment";"Embolisation de l'endofuite ?";"Embolisation de l'endofuite ?.comment";"Besoin d'un œil expert";"Besoin d'un œil expert.comment" +M;2019-11-21;NC;2021-10-08;22.57;68.81;63.22;65.101;NC;93.8;61;NC;90;NC;1.7;NC;31.141869;NC;"Ancien fumeur";NC;Yes;NC;Yes;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;2;NC;95;NC;69;NC;N/A;NC;2019-10-25;NC;Yes;NC;Yes;NC;6.5;NC;3;NC;Yes;NC;30;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;52;NC;51.5;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2019-11-21;NC;Gore;NC;NC;NC;Yes;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Yes;NC;5;NC;2021-10-07;NC;38;NC;No;NC;NC;NC;NC;NC;NC;NC;"Type II";NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2022-06-07;N/A;2025-04-10;34.1;65.73;62.683;65.525;NC;93.8;153;NC;70;NC;1.7;NC;24.221453;NC;"Fumeur actuel";NC;No;NC;No;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;2;NC;74;NC;93;NC;N/A;NC;2021-12-24;NC;Yes;NC;Yes;NC;8;NC;2;NC;Yes;NC;15.5;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;23.7;NC;30;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2022-06-07;NC;Gore;NC;NC;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Yes;NC;4;NC;2025-04-03;NC;22;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2018-01-05;2021-07-27;2021-04-02;38.86;NC;69.514;72.753;73.07;96.9;1;NC;82;NC;1.73;NC;27.398176;NC;"Fumeur actuel";NC;Yes;NC;No;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;3;NC;86;NC;76;NC;N/A;NC;2017-12-31;NC;Yes;NC;Yes;NC;8.5;NC;3;NC;Yes;NC;14.5;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;48.5;NC;45.5;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2018-01-05;NC;Medtronic;NC;NC;NC;Yes;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Yes;NC;18;NC;2020-05-01;NC;26;NC;No;NC;2021-07-27;NC;Décès;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2018-01-12;NC;2025-03-04;85.68;56.39;48.945;56.085;NC;93.8;2;NC;97;NC;1.75;NC;31.673469;NC;"Non fumeur";NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;N/A;NC;86;NC;82;NC;53;NC;2018-01-06;NC;Yes;NC;Yes;NC;9.5;NC;3;NC;Yes;NC;47.5;NC;No;NC;Yes;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;79.8;NC;80.1;NC;36.5;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2018-01-12;NC;Medtronic;NC;ETBF3220C166;NC;No;NC;Yes;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;Yes;NC;No;NC;No;NC;14;NC;2021-01-07;NC;65;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +W;2018-01-20;2020-06-12;2018-10-19;8.94;NC;87.138;87.882;89.53;96.9;3;NC;61;NC;1.58;NC;24.435187;NC;"Ancien fumeur";NC;Yes;NC;Yes;NC;Yes;NC;Yes;NC;No;NC;No;NC;No;NC;Yes;NC;Yes;NC;No;NC;No;NC;No;NC;Symptomatique;NC;N/A;NC;177;NC;23;NC;N/A;NC;2018-01-20;NC;Yes;NC;Yes;NC;7;NC;4;NC;Yes;NC;49;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;74;NC;55;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2018-01-20;NC;N/A;NC;N/A;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Yes;NC;16;NC;2018-10-10;NC;60;NC;No;NC;2020-06-12;NC;Décès;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +W;2018-01-31;NC;2019-09-02;19.02;92.39;84.997;86.582;NC;97;4;NC;93;NC;1.6;NC;36.328125;NC;"Non fumeur";NC;No;NC;No;NC;Yes;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Symptomatique;NC;3;NC;N/A;NC;N/A;NC;N/A;NC;N/A;NC;N/A;NC;N/A;NC;N/A;NC;N/A;NC;N/A;NC;NC;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;N/A;NC;N/A;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2018-01-31;NC;N/A;NC;N/A;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Yes;NC;9;NC;2019-08-14;NC;79;NC;Yes;NC;2018-04-13;NC;Endofuite;NC;NC;NC;"Type I";NC;Ia;NC;NC;NC;NC;NC;No;NC;No;NC;NC;NC;NC;NC;"Occlusion sur bride";NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2018-02-06;NC;2023-07-12;65.11;57.32;49.936;55.362;NC;93.7;5;NC;65;NC;1.75;NC;21.22449;NC;"Ancien fumeur";NC;No;NC;No;NC;Yes;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;2;NC;N/A;NC;N/A;NC;N/A;NC;2017-10-03;NC;N/A;NC;N/A;NC;N/A;NC;N/A;NC;N/A;NC;NC;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;N/A;NC;N/A;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2018-02-06;NC;Gore;NC;"RLT311415 +";NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Yes;NC;7;NC;2019-05-23;NC;32;NC;Yes;NC;NC;NC;NC;NC;NC;NC;"Type II";NC;NC;NC;NC;NC;NC;NC;No;NC;Yes;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2018-02-27;2019-05-30;2019-04-29;13.99;NC;73.908;75.075;75.159;96.9;6;NC;90;NC;1.74;NC;29.726516;NC;"Ancien fumeur";NC;Yes;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;3;NC;139;NC;43;NC;N/A;NC;2017-11-26;NC;Yes;NC;Yes;NC;7.5;NC;2.5;NC;Yes;NC;24.4;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;50;NC;49;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2018-02-27;NC;Medtronic;NC;" ETBF 32-16-C-166 +";NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Yes;NC;No;NC;No;NC;14;NC;2018-09-06;NC;50;NC;No;NC;2019-05-30;NC;Décès;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;"Carcinome épidermoide lobaire inférieur gauche";NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2018-02-28;2019-03-22;2018-10-04;7.16;NC;65.577;66.174;66.637;96.9;7;NC;120;NC;1.8;NC;37.037037;NC;"Ancien fumeur";NC;No;NC;No;NC;Yes;NC;Yes;NC;No;NC;Yes;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;3;NC;81;NC;83;NC;N/A;NC;2018-01-09;NC;Yes;NC;Yes;NC;7;NC;3;NC;Yes;NC;21.4;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;48;NC;49;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2018-02-28;NC;Medtronic;NC;"ETBF 32-20-c 166 +";NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Yes;NC;No;NC;No;NC;9;NC;N/A;NC;N/A;NC;N/A;NC;2019-03-22;NC;Décès;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;"Carcinome épidermoide corde vocale gauche";NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2018-03-01;NC;2024-05-23;74.74;90.57;83.247;89.476;NC;97;8;NC;78;NC;1.77;NC;24.89706;NC;"Non fumeur";NC;No;NC;No;NC;Yes;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;3;NC;N/A;NC;N/A;NC;N/A;NC;2018-01-15;NC;Yes;NC;Yes;NC;6;NC;3;NC;Yes;NC;24.6;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;51;NC;52;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2018-03-01;NC;Gore;NC;NC;NC;Yes;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Yes;NC;7;NC;2021-02-11;NC;58;NC;Yes;NC;2021-02-11;NC;Endofuite;NC;NC;NC;"Type II";NC;NC;NC;IIb;NC;NC;NC;No;NC;No;NC;NC;NC;NC;NC;NC;NC;"Type II";NC;NC;NC;NC;NC;NC;NC;No;NC;No;NC +M;2018-04-23;NC;2024-08-18;75.85;81.32;74.144;80.465;NC;97;9;NC;69;NC;1.68;NC;24.447279;NC;"Non fumeur";NC;No;NC;No;NC;Yes;NC;No;NC;Yes;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;3;NC;136;NC;44;NC;N/A;NC;2017-12-13;NC;Yes;NC;Yes;NC;9;NC;4.5;NC;No;NC;NC;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;40;NC;40.5;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2018-04-23;NC;Gore;NC;NC;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Yes;NC;6;NC;2020-07-07;NC;50;NC;Yes;NC;2018-06-01;NC;Endofuite;NC;NC;NC;"Type II";NC;NC;NC;IIa;NC;NC;NC;No;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2018-05-07;NC;2024-01-18;68.4;80.23;73.098;78.798;NC;93.8;10;NC;98;NC;1.76;NC;31.637397;NC;"Fumeur actuel";NC;Yes;NC;Yes;NC;Yes;NC;No;NC;Yes;NC;No;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;3;NC;N/A;NC;N/A;NC;N/A;NC;2018-03-23;NC;Yes;NC;Yes;NC;7;NC;3.5;NC;Yes;NC;60;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;76;NC;76;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2018-05-07;NC;Gore;NC;NC;NC;Yes;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Yes;NC;6;NC;2020-01-15;NC;58;NC;No;NC;NC;NC;NC;NC;"Amputation transmetatarsienne droite";NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;"Endarteriectomie MI gauche";NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2018-05-09;NC;2022-01-28;44.68;73.82;66.686;70.409;NC;93.8;11;NC;68;NC;1.73;NC;22.720438;NC;"Fumeur actuel";NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;2;NC;N/A;NC;N/A;NC;N/A;NC;2017-11-02;NC;Yes;NC;Yes;NC;8;NC;2.5;NC;Yes;NC;25.5;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;52.5;NC;52.5;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2018-05-09;NC;Medtronic;NC;NC;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Yes;NC;6;NC;2020-02-21;NC;35;NC;No;NC;NC;NC;NC;NC;"Nodule prostatique";NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2018-05-14;NC;2020-08-10;26.91;76.23;69.117;71.359;NC;93;12;NC;86;NC;1.82;NC;25.963048;NC;"Non fumeur";NC;No;NC;No;NC;No;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;3;NC;79;NC;84;NC;N/A;NC;2018-02-22;NC;Yes;NC;Yes;NC;6.5;NC;4.5;NC;Yes;NC;39.6;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;55.8;NC;58.5;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2018-05-14;NC;Medtronic;NC;NC;NC;Yes;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;5;NC;2018-12-04;NC;53;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +W;2018-05-23;2022-09-23;2020-07-09;25.56;NC;84.389;86.519;88.726;96.4;13;NC;65;NC;1.6;NC;25.390625;NC;"Non fumeur";NC;No;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;2;NC;128;NC;34;NC;N/A;NC;N/A;NC;N/A;NC;N/A;NC;N/A;NC;N/A;NC;N/A;NC;NC;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;N/A;NC;N/A;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2018-05-23;NC;Gore;NC;NC;NC;Yes;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;6;NC;N/A;NC;N/A;NC;N/A;NC;2022-09-23;NC;Décès;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;AVC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2018-05-29;NC;2024-12-05;78.25;73.4;66.322;72.843;NC;96.7;14;NC;99;NC;1.76;NC;31.960227;NC;"Fumeur actuel";NC;No;NC;Yes;NC;Yes;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;3;NC;73;NC;93;NC;N/A;NC;2018-01-25;NC;Yes;NC;Yes;NC;7.8;NC;4;NC;Yes;NC;41;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;63.5;NC;59.5;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2018-05-29;NC;Medtronic;NC;NC;NC;No;NC;Yes;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;9;NC;2018-12-24;NC;63;NC;No;NC;2019-02-11;NC;Endofuite;NC;"Pontage fémoro-fémoral gauche";NC;"Type II";NC;NC;NC;IIb;NC;NC;NC;Yes;NC;No;NC;NC;NC;NC;NC;NC;NC;"Type II";NC;NC;NC;NC;NC;NC;NC;Yes;NC;NC;NC +M;2018-06-07;NC;2024-10-18;76.38;80.65;73.596;79.962;NC;93.3;15;NC;83;NC;1.72;NC;28.055706;NC;"Ancien fumeur";NC;No;NC;Yes;NC;Yes;NC;Yes;NC;Yes;NC;No;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;3;NC;95;NC;67;NC;N/A;NC;2018-05-04;NC;Yes;NC;NC;NC;9;NC;NC;NC;Yes;NC;39.2;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;68;NC;70;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2018-06-07;NC;Medtronic;NC;NC;NC;No;NC;Yes;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;5;NC;2021-01-08;NC;63;NC;Yes;NC;2022-06-07;NC;Endofuite;NC;"Embolisation iliaque interne gauche + extension de jambage";NC;"Type II";NC;NC;NC;IIb;NC;NC;NC;Yes;NC;No;NC;NC;NC;NC;NC;NC;NC;"Type II";NC;NC;NC;NC;NC;NC;NC;Yes;NC;Yes;NC +M;2018-06-14;2022-05-24;2025-06-05;83.71;NC;72.364;79.34;76.307;96.5;16;NC;90;NC;1.7;NC;31.141869;NC;"Fumeur actuel";NC;No;NC;No;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;3;NC;100;NC;64;NC;N/A;NC;2018-04-05;NC;Yes;NC;Yes;NC;9.5;NC;3.5;NC;Yes;NC;34;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;50;NC;62;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2018-06-14;NC;Gore;NC;NC;NC;Yes;NC;Yes;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;5;NC;2020-02-22;NC;55;NC;No;NC;2022-05-24;NC;Décès;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;"Mélanome malin multimétastatique";NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2018-08-06;2022-10-30;2022-10-24;50.59;NC;67.433;71.65;71.666;100;17;NC;88;NC;1.78;NC;27.774271;NC;"Ancien fumeur";NC;No;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;3;NC;111;NC;57;NC;N/A;NC;2018-06-21;NC;Yes;NC;Yes;NC;8;NC;3.5;NC;Yes;NC;64;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;65;NC;58.2;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2018-08-06;NC;Medtronic;NC;NC;NC;No;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;5;NC;2020-07-13;NC;45;NC;No;NC;2022-10-30;NC;Décès;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2022-10-18;NC;Endofuite;NC;NC;NC;"Type I";NC;Ia;NC;NC;NC;NC;NC;No;NC;No;NC +M;2018-08-30;NC;2024-06-24;69.81;62.23;55.414;61.232;NC;96.7;18;NC;89;NC;1.68;NC;31.533447;NC;"Non fumeur";NC;No;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;2;NC;95;NC;71;NC;N/A;NC;2018-07-10;NC;Yes;NC;Yes;NC;8;NC;4.5;NC;Yes;NC;40;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;43.6;NC;47.2;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2018-08-30;NC;Medtronic;NC;NC;NC;Yes;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;5;NC;2019-04-26;NC;42;NC;Yes;NC;2019-05-02;NC;Endofuite;NC;NC;NC;"Type II";NC;NC;NC;IIa;NC;NC;NC;No;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2018-09-17;NC;2019-05-02;7.46;71.9;65.128;65.749;NC;93;19;NC;94;NC;1.71;NC;32.146643;NC;"Ancien fumeur";NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;2;NC;N/A;NC;N/A;NC;N/A;NC;2018-08-24;NC;Yes;NC;Yes;NC;7.7;NC;3.5;NC;Yes;NC;44.2;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;61.7;NC;55;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2018-09-17;NC;Medtronic;NC;NC;NC;No;NC;Yes;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;5;NC;2019-04-26;NC;55;NC;No;NC;NC;NC;NC;NC;"Lymphocèle scarpa gauche volumineux";NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2018-09-24;2019-03-16;2019-03-12;5.55;NC;81.481;81.944;81.955;100;20;NC;98;NC;1.78;NC;30.930438;NC;"Ancien fumeur";NC;Yes;NC;No;NC;Yes;NC;Yes;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;3;NC;127;NC;47;NC;N/A;NC;2017-10-06;NC;Yes;NC;Yes;NC;8;NC;3.5;NC;Yes;NC;40.8;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;56.5;NC;60;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2018-09-24;NC;Medtronic;NC;NC;NC;No;NC;Yes;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;6;NC;2019-01-09;NC;54;NC;Yes;NC;2018-10-12;NC;"Occlusion de jambage";NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2018-10-12;NC;Endofuite;NC;NC;NC;"Type II";NC;NC;NC;IIb;NC;NC;NC;No;NC;No;NC +M;2018-10-01;2024-08-18;2023-08-08;58.21;NC;76.747;81.599;82.628;96.7;22;NC;93;NC;1.75;NC;30.367347;NC;"Non fumeur";NC;No;NC;No;NC;Yes;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;2;NC;87;NC;74;NC;62;NC;2018-09-14;NC;Yes;NC;Yes;NC;7;NC;2.5;NC;Yes;NC;40.6;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;44;NC;46.5;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2018-10-01;NC;Medtronic;NC;"ETBF2516C124 +";NC;Yes;NC;Yes;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;5;NC;2020-04-30;NC;46;NC;No;NC;2018-11-08;NC;Endofuite;NC;NC;NC;"Type II";NC;NC;NC;IIb;NC;NC;NC;No;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2018-10-08;2022-04-10;2022-03-21;41.39;NC;84.438;87.888;87.943;96.6;23;NC;85;NC;1.72;NC;28.731747;NC;"Non fumeur";NC;No;NC;No;NC;Yes;NC;No;NC;Yes;NC;No;NC;No;NC;Yes;NC;Yes;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;3;NC;136;NC;84;NC;N/A;NC;2018-09-13;NC;Yes;NC;No;NC;9.5;NC;N/A;NC;Yes;NC;45;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;"Aorte thoracique descendante";NC;2018-10-08;NC;Gore;NC;NC;NC;No;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;8;NC;2020-11-20;NC;75;NC;Yes;NC;2020-11-20;NC;Endofuite;NC;NC;NC;"Type I";NC;Ib;NC;NC;NC;NC;NC;No;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2018-11-06;NC;2024-07-12;68.17;82.4;75.762;81.443;NC;93.1;24;NC;90;NC;1.79;NC;28.089011;NC;"Ancien fumeur";NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;2;NC;N/A;NC;N/A;NC;N/A;NC;2018-10-03;NC;Yes;NC;Yes;NC;8.5;NC;2.5;NC;Yes;NC;21.85;NC;No;NC;Yes;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;44.5;NC;62.6;NC;NC;NC;45.8;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2018-11-07;NC;Gore;NC;NC;NC;Yes;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;6;NC;2020-06-30;NC;62;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2018-11-06;NC;2018-12-19;1.41;73.4;66.762;66.88;NC;96.8;25;NC;90;NC;1.78;NC;28.405504;NC;"Ancien fumeur";NC;Yes;NC;Yes;NC;Yes;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;3;NC;87;NC;76;NC;38;NC;2018-06-20;NC;Yes;NC;Yes;NC;8.5;NC;2.5;NC;Yes;NC;40;NC;No;NC;Yes;NC;Yes;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;52.9;NC;58;NC;19.6;NC;23.5;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2018-11-06;NC;Medtronic;NC;"ETBF 3216 C145 EE";NC;Yes;NC;Yes;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;7;NC;2018-11-08;NC;53;NC;Yes;NC;2018-11-08;NC;Endofuite;NC;NC;NC;"Type II";NC;NC;NC;IIa;NC;NC;NC;No;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2018-11-19;2023-05-15;2022-07-04;43.46;NC;89.3;92.923;93.785;96.6;26;NC;92;NC;1.65;NC;33.79247;NC;"Non fumeur";NC;No;NC;Yes;NC;Yes;NC;No;NC;Yes;NC;No;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;3;NC;90;NC;69;NC;N/A;NC;N/A;NC;N/A;NC;N/A;NC;N/A;NC;N/A;NC;N/A;NC;NC;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;N/A;NC;N/A;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2018-11-19;NC;Gore;NC;NC;NC;Yes;NC;Yes;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;6;NC;2020-07-10;NC;46;NC;No;NC;2022-07-04;NC;Endofuite;NC;NC;NC;"Type II";NC;NC;NC;IIa;NC;NC;NC;No;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2018-11-28;2022-11-13;2025-06-06;78.25;NC;74.576;81.098;78.535;94.8;27;NC;90;NC;1.81;NC;27.471689;NC;"Fumeur actuel";NC;Yes;NC;Yes;NC;No;NC;No;NC;No;NC;Yes;NC;No;NC;Yes;NC;No;NC;No;NC;Yes;NC;No;NC;Asymptomatique;NC;2;NC;N/A;NC;N/A;NC;67;NC;2018-11-09;NC;Yes;NC;Yes;NC;8;NC;4;NC;Yes;NC;30;NC;No;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;42.2;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2018-11-28;NC;N/A;NC;N/A;NC;N/A;NC;N/A;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;8;NC;2019-01-02;NC;38;NC;No;NC;NC;NC;Autre;NC;"Pose d'une endoprothèse anévrisme aortique sous rénal";NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;"Endartériectomie bifurcation carotidienne gauche";NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2018-12-12;NC;2023-08-28;56.5;54.9;48.364;53.073;NC;93;28;NC;98;NC;1.7;NC;33.910035;NC;"Fumeur actuel";NC;No;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;3;NC;N/A;NC;N/A;NC;N/A;NC;2018-04-12;NC;Yes;NC;Yes;NC;7;NC;2.5;NC;Yes;NC;29;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;56;NC;50;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2018-12-12;NC;Gore;NC;NC;NC;Yes;NC;Yes;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;6;NC;2021-08-30;NC;35;NC;No;NC;NC;NC;NC;NC;"Pontage aorto coronarien";NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2019-01-02;NC;2025-05-20;76.54;73.98;67.507;73.886;NC;93;29;NC;116;NC;1.8;NC;35.802469;NC;"Ancien fumeur";NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;2;NC;N/A;NC;N/A;NC;40;NC;2018-11-27;NC;Yes;NC;Yes;NC;8.3;NC;3.7;NC;Yes;NC;28;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;61.5;NC;60;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2019-01-02;NC;Medtronic;NC;ETBF3616C145;NC;No;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;6;NC;2020-10-17;NC;58;NC;No;NC;NC;NC;NC;NC;NC;NC;"Type II";NC;NC;NC;NC;NC;NC;NC;No;NC;Yes;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2019-01-28;N/A;2022-05-19;39.65;83.9;77.492;80.797;NC;98.4;30;NC;86;NC;1.78;NC;27.143037;NC;"Ancien fumeur";NC;No;NC;No;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;2;NC;N/A;NC;N/A;NC;N/A;NC;2018-11-19;NC;Yes;NC;Yes;NC;8.5;NC;4.2;NC;Yes;NC;25.7;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;54;NC;51.2;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2019-01-28;NC;NC;NC;ETBF3216C166;NC;Yes;NC;Yes;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;6;NC;2020-12-03;NC;57;NC;Yes;NC;2019-03-05;NC;Endofuite;NC;NC;NC;"Type II";NC;NC;NC;IIb;NC;NC;NC;No;NC;No;NC;2020-07-08;NC;Endofuite;NC;NC;NC;"Type II";NC;NC;NC;IIb;NC;NC;NC;Yes;NC;No;NC +M;2019-01-14;NC;2023-01-16;48.06;89.57;83.121;87.127;NC;93;31;NC;65;NC;1.6;NC;25.390625;NC;"Non fumeur";NC;No;NC;No;NC;Yes;NC;Yes;NC;No;NC;No;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;3;NC;N/A;NC;N/A;NC;61;NC;2018-12-18;NC;Yes;NC;Yes;NC;7.5;NC;3;NC;Yes;NC;18;NC;No;NC;No;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;Yes;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;40;NC;NC;NC;NC;NC;NC;NC;31.5;NC;NC;NC;2019-01-14;NC;Medtronic;NC;NC;NC;Yes;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;5;NC;2023-01-16;NC;24.4;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2020-01-16;NC;2024-02-15;48.98;76.56;71.124;75.206;NC;93;32;NC;95;NC;1.74;NC;31.377989;NC;"Fumeur actuel";NC;No;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;2;NC;N/A;NC;N/A;NC;N/A;NC;2019-12-04;NC;Yes;NC;Yes;NC;9;NC;2.7;NC;Yes;NC;31.3;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;53;NC;49.5;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2020-01-16;NC;Medtronic;NC;NC;NC;Yes;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;4;NC;2021-08-19;NC;48;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2019-01-21;2022-10-31;2022-08-29;43.23;NC;81.558;85.161;85.333;96.5;33;NC;100;NC;1.7;NC;34.602076;NC;"Fumeur actuel";NC;Yes;NC;Yes;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;3;NC;N/A;NC;N/A;NC;N/A;NC;2018-03-27;NC;Yes;NC;Yes;NC;7;NC;2;NC;Yes;NC;40;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;49.5;NC;46.8;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2019-01-21;NC;Medtronic;NC;ETBF2516C166;NC;No;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;5;NC;2022-07-04;NC;40.3;NC;No;NC;2022-10-31;NC;Décès;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +W;2019-01-23;NC;2022-10-12;44.61;77.07;70.645;74.363;NC;92.9;34;NC;72;NC;1.6;NC;28.125;NC;"Ancien fumeur";NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;2;NC;N/A;NC;N/A;NC;60;NC;2018-12-27;NC;Yes;NC;Yes;NC;6;NC;2.5;NC;No;NC;NC;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;13;NC;19.5;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2019-01-23;NC;Gore;NC;NC;NC;No;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;6;NC;2019-10-13;NC;13;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2019-02-04;NC;2024-09-06;67.05;82.98;76.597;82.185;NC;92.9;35;NC;63;NC;1.67;NC;22.589551;NC;"Non fumeur";NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;3;NC;75;NC;88;NC;N/A;NC;2018-12-09;NC;Yes;NC;Yes;NC;7;NC;3.5;NC;Yes;NC;17;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Yes;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;43.5;NC;NC;NC;NC;NC;2019-02-04;NC;Medtronic;NC;NC;NC;Yes;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;5;NC;2020-11-23;NC;49.5;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2019-02-06;NC;2024-07-05;64.91;80.48;74.097;79.507;NC;96.7;36;NC;111;NC;1.93;NC;29.799458;NC;"Ancien fumeur";NC;No;NC;No;NC;Yes;NC;No;NC;Yes;NC;No;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;3;NC;N/A;NC;N/A;NC;47;NC;2018-11-29;NC;Yes;NC;Yes;NC;8.5;NC;2.5;NC;Yes;NC;36;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;51;NC;49;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2019-02-06;NC;Medtronic;NC;ETBF2820-C166E;NC;Yes;NC;Yes;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;5;NC;2021-06-08;NC;52;NC;No;NC;2019-02-28;NC;Endofuite;NC;NC;NC;"Type II";NC;NC;NC;IIa;NC;NC;NC;No;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2019-02-13;NC;2023-05-04;50.62;60.23;53.87;58.089;NC;93.1;37;NC;70;NC;1.7;NC;24.221453;NC;"Ancien fumeur";NC;No;NC;No;NC;Yes;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;2;NC;61;NC;120;NC;45;NC;2018-11-19;NC;Yes;NC;Yes;NC;9;NC;3;NC;Yes;NC;17.5;NC;No;NC;Yes;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;42;NC;39;NC;NC;NC;20;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2019-02-13;NC;Medtronic;NC;NC;NC;Yes;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;6;NC;2021-07-21;NC;44.3;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;No;NC;Yes;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2019-02-18;NC;2022-06-30;40.34;80.15;73.802;77.164;NC;93;38;NC;100;NC;1.77;NC;31.919308;NC;"Non fumeur";NC;No;NC;No;NC;No;NC;Yes;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;3;NC;86;NC;76;NC;N/A;NC;2019-01-25;NC;Yes;NC;Yes;NC;6.6;NC;3.5;NC;Yes;NC;37;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;50;NC;51;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2019-02-18;NC;Medtronic;NC;"ETBF3220C 145";NC;Yes;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;5;NC;2022-06-28;NC;39.5;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2019-03-01;NC;2024-07-01;64.03;65.82;59.496;64.832;NC;90.9;39;NC;N/A;NC;N/A;NC;NC;NC;"Ancien fumeur";NC;N/A;NC;N/A;NC;Yes;NC;N/A;NC;N/A;NC;N/A;NC;N/A;NC;N/A;NC;N/A;NC;N/A;NC;N/A;NC;Yes;NC;N/A;NC;N/A;NC;N/A;NC;N/A;NC;N/A;NC;N/A;NC;N/A;NC;N/A;NC;N/A;NC;N/A;NC;N/A;NC;NC;NC;N/A;NC;N/A;NC;N/A;NC;N/A;NC;N/A;NC;N/A;NC;N/A;NC;N/A;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2019-03-01;NC;N/A;NC;N/A;NC;N/A;NC;N/A;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;N/A;NC;N/A;NC;28;NC;N/A;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2019-03-04;NC;2022-09-08;42.18;67.39;61.084;64.6;NC;93.1;40;NC;92;NC;1.79;NC;28.713211;NC;"Ancien fumeur";NC;No;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;2;NC;N/A;NC;N/A;NC;80;NC;2018-11-26;NC;Yes;NC;Yes;NC;9;NC;4;NC;Yes;NC;27;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;42;NC;37;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2019-03-04;NC;N/A;NC;N/A;NC;Yes;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;6;NC;2020-08-31;NC;39.5;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2019-02-07;NC;2022-07-20;41.36;94.9;88.52;91.967;NC;93.2;41;NC;60;NC;1.63;NC;22.582709;NC;"Ancien fumeur";NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Symptomatique;NC;N/A;NC;43;NC;162;NC;61;NC;2019-02-07;NC;Yes;NC;NC;NC;10.5;NC;NC;NC;No;NC;NC;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;64.7;NC;70;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2019-02-07;NC;Medtronic;NC;NC;NC;Yes;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;21;NC;2020-11-10;NC;73;NC;Yes;NC;2019-03-14;NC;Endofuite;NC;NC;NC;"Type II";NC;NC;NC;IIb;NC;NC;NC;No;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2019-03-08;2024-09-17;2021-07-16;28.29;NC;82.264;84.621;87.795;100;42;NC;82;NC;1.69;NC;28.710479;NC;"Ancien fumeur";NC;No;NC;No;NC;Yes;NC;Yes;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Symptomatique;NC;N/A;NC;92;NC;68;NC;62;NC;2019-03-06;NC;Yes;NC;Yes;NC;9.5;NC;3.5;NC;Yes;NC;78;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;80;NC;80;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2019-03-08;NC;Medtronic;NC;ETBF3220;NC;Yes;NC;Yes;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;16;NC;2021-06-23;NC;92;NC;Yes;NC;2024-09-17;NC;Décès;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2021-07-16;NC;Endofuite;NC;NC;NC;"Type II";NC;NC;NC;IIb;NC;NC;NC;No;NC;No;NC +M;2019-04-03;NC;2025-04-01;71.94;84.81;78.585;84.58;NC;96.7;43;NC;65;NC;1.69;NC;22.758307;NC;"Ancien fumeur";NC;No;NC;Yes;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;2;NC;N/A;NC;N/A;NC;N/A;NC;2019-02-07;NC;Yes;NC;Yes;NC;9.5;NC;3.7;NC;Yes;NC;30.5;NC;No;NC;Yes;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;50.5;NC;50.5;NC;NC;NC;33;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2019-04-03;NC;Medtronic;NC;" ETBF 2516 C145";NC;Yes;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;6;NC;2021-05-05;NC;49;NC;No;NC;2019-05-23;NC;Endofuite;NC;NC;NC;"Type II";NC;NC;NC;IIa;NC;NC;NC;No;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2019-04-17;NC;2023-02-24;46.29;66.32;60.129;63.986;NC;93;44;NC;72;NC;1.7;NC;24.913495;NC;"Fumeur actuel";NC;No;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;2;NC;N/A;NC;N/A;NC;55;NC;2018-11-27;NC;Yes;NC;Yes;NC;8;NC;3.5;NC;Yes;NC;25;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;40;NC;50;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2019-04-17;NC;Gore;NC;NC;NC;Yes;NC;Yes;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;5;NC;2021-07-29;NC;35;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2019-04-17;2022-02-21;2021-02-10;21.85;NC;83.71;85.53;86.56;100;45;NC;78;NC;1.65;NC;28.650138;NC;"Ancien fumeur";NC;No;NC;Yes;NC;Yes;NC;No;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Symptomatique;NC;N/A;NC;229;NC;24;NC;N/A;NC;2019-04-17;NC;Yes;NC;Yes;NC;6.7;NC;2.5;NC;Yes;NC;31.5;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;41;NC;64;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2019-04-17;NC;Medtronic;NC;NC;NC;No;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;15;NC;2019-06-18;NC;41;NC;No;NC;2019-04-19;NC;Endofuite;NC;NC;NC;"Type II";NC;NC;NC;IIb;NC;NC;NC;No;NC;Yes;NC;2022-02-21;NC;Décès;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2019-04-29;2022-10-20;2022-05-13;36.47;NC;65.238;68.277;68.715;96.5;46;NC;70;NC;1.73;NC;23.388687;NC;"Fumeur actuel";NC;Yes;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;3;NC;97;NC;67;NC;N/A;NC;2018-12-17;NC;Yes;NC;Yes;NC;7;NC;3.5;NC;Yes;NC;25;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;42;NC;48;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2019-04-29;NC;Medtronic;NC;ETBF2816C145;NC;No;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;7;NC;2021-12-27;NC;32;NC;No;NC;2022-10-20;NC;Décès;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2019-05-06;NC;2025-04-14;71.29;72.81;66.675;72.616;NC;96.7;47;NC;80;NC;1.74;NC;26.42357;NC;"Fumeur actuel";NC;No;NC;Yes;NC;Yes;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;3;NC;89;NC;74;NC;48;NC;2019-03-28;NC;Yes;NC;Yes;NC;9;NC;2.5;NC;Yes;NC;35;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;70;NC;64;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2019-05-06;NC;Gore;NC;NC;NC;No;NC;Yes;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;4;NC;2021-10-18;NC;65;NC;No;NC;2019-05-28;NC;Endofuite;NC;NC;NC;"Type I";NC;Ib;NC;IIa;NC;NC;NC;No;NC;Yes;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +W;2019-06-03;2025-03-18;2022-09-19;39.55;NC;76.753;80.049;82.543;93;48;NC;50;NC;1.5;NC;22.222222;NC;"Ancien fumeur";NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;"Rupture contenue";NC;2;NC;N/A;NC;N/A;NC;N/A;NC;2019-03-18;NC;Yes;NC;NC;NC;7;NC;NC;NC;Yes;NC;25;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;40;NC;39;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2019-06-03;NC;Medtronic;NC;NC;NC;No;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;6;NC;2020-07-30;NC;34;NC;No;NC;2025-03-18;NC;Décès;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2019-06-05;NC;2023-08-01;49.87;88.48;82.423;86.579;NC;93;49;NC;58;NC;1.69;NC;20.307412;NC;"Non fumeur";NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;2;NC;N/A;NC;82;NC;N/A;NC;2019-05-16;NC;Yes;NC;Yes;NC;7;NC;2.2;NC;Yes;NC;36;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;53;NC;54;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2019-06-05;NC;Medtronic;NC;NC;NC;Yes;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;9;NC;N/A;NC;N/A;NC;N/A;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2019-06-24;NC;2024-06-18;59.82;95.15;89.147;94.133;NC;96.7;50;NC;80;NC;1.73;NC;26.729927;NC;"Ancien fumeur";NC;Yes;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;2;NC;114;NC;55;NC;N/A;NC;2019-05-02;NC;Yes;NC;Yes;NC;7;NC;3.5;NC;Yes;NC;29;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;60;NC;59;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2019-06-24;NC;Medtronic;NC;NC;NC;Yes;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;6;NC;2019-08-09;NC;59;NC;Yes;NC;2019-08-09;NC;Endofuite;NC;NC;NC;"Type II";NC;NC;NC;IIb;NC;NC;NC;No;NC;Yes;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2019-07-01;2025-06-02;2025-05-20;70.63;NC;80.411;86.297;86.333;100;51;NC;90;NC;1.8;NC;27.777778;NC;"Ancien fumeur";NC;Yes;NC;No;NC;Yes;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;3;NC;N/A;NC;N/A;NC;N/A;NC;2019-05-28;NC;Yes;NC;Yes;NC;9.5;NC;3.5;NC;Yes;NC;37.5;NC;No;NC;Yes;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;55.8;NC;45;NC;37;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2019-07-01;NC;Medtronic;NC;NC;NC;No;NC;Yes;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;6;NC;2021-07-09;NC;58;NC;Yes;NC;2021-07-09;NC;Endofuite;NC;NC;NC;"Type III";NC;NC;NC;IIb;NC;NC;NC;No;NC;Yes;NC;2025-06-02;NC;Décès;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2019-09-06;NC;2024-09-24;60.61;62.98;57.183;62.234;NC;95.1;52;NC;N/A;NC;N/A;NC;NC;NC;N/A;NC;N/A;NC;N/A;NC;N/A;NC;N/A;NC;N/A;NC;N/A;NC;N/A;NC;N/A;NC;N/A;NC;N/A;NC;No;NC;No;NC;Symptomatique;NC;N/A;NC;N/A;NC;N/A;NC;N/A;NC;2019-08-31;NC;Yes;NC;Yes;NC;8;NC;3;NC;Yes;NC;43;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;50;NC;45;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2019-09-06;NC;N/A;NC;N/A;NC;Yes;NC;Yes;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;11;NC;2021-05-05;NC;56;NC;Yes;NC;2019-09-30;NC;Endofuite;NC;NC;NC;"Type II";NC;NC;NC;IIa;NC;NC;NC;No;NC;Yes;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2019-10-02;2025-01-06;2020-10-23;12.71;NC;82.253;83.313;87.518;96.5;53;NC;72;NC;1.7;NC;24.913495;NC;"Ancien fumeur";NC;No;NC;No;NC;Yes;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;2;NC;124;NC;48;NC;N/A;NC;2019-07-26;NC;Yes;NC;Yes;NC;7.5;NC;2.5;NC;Yes;NC;23;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;52;NC;48;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2019-10-02;NC;Gore;NC;NC;NC;Yes;NC;Yes;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;6;NC;2020-10-16;NC;49;NC;No;NC;2025-01-06;NC;Décès;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2019-10-10;NC;2025-01-07;62.94;84.98;79.274;84.52;NC;93;56;NC;87;NC;1.75;NC;28.408163;NC;"Non fumeur";NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;2;NC;92;NC;69;NC;N/A;NC;2019-08-14;NC;Yes;NC;Yes;NC;7.5;NC;2.5;NC;Yes;NC;23;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;54;NC;52;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2019-10-10;NC;Gore;NC;NC;NC;Yes;NC;Yes;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;5;NC;2022-11-15;NC;39;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2019-10-14;NC;2025-04-14;66;74.57;68.868;74.368;NC;96.8;57;NC;74;NC;1.74;NC;24.441802;NC;"Fumeur actuel";NC;Yes;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;3;NC;104;NC;62;NC;N/A;NC;2019-08-19;NC;Yes;NC;Yes;NC;7.5;NC;2;NC;Yes;NC;39;NC;No;NC;Yes;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;49;NC;48;NC;NC;NC;28;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2019-10-14;NC;N/A;NC;N/A;NC;Yes;NC;Yes;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;5;NC;2020-12-01;NC;44;NC;Yes;NC;2020-12-01;NC;Endofuite;NC;NC;NC;"Type I";NC;Ib;NC;NC;NC;NC;NC;No;NC;Yes;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2019-10-28;NC;2021-05-20;18.73;65.32;59.658;61.218;NC;93;58;NC;75;NC;1.69;NC;26.259585;NC;"Ancien fumeur";NC;Yes;NC;No;NC;Yes;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;2;NC;N/A;NC;N/A;NC;N/A;NC;2019-09-09;NC;Yes;NC;Yes;NC;6;NC;2.1;NC;Yes;NC;19;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;51;NC;49;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2019-10-28;NC;Medtronic;NC;NC;NC;Yes;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;4;NC;2019-11-20;NC;49;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2019-10-31;2023-02-04;2022-08-26;33.84;NC;85.829;88.649;89.092;92.9;59;NC;69;NC;1.7;NC;23.875433;NC;"Non fumeur";NC;No;NC;No;NC;Yes;NC;No;NC;Yes;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Symptomatique;NC;N/A;NC;86;NC;73;NC;N/A;NC;N/A;NC;N/A;NC;N/A;NC;N/A;NC;N/A;NC;N/A;NC;NC;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;96;NC;91;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2019-10-31;NC;Medtronic;NC;NC;NC;Yes;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;7;NC;2021-07-19;NC;68;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2019-10-03;NC;2024-08-08;58.18;85.32;79.589;84.438;NC;93;54;NC;77;NC;1.8;NC;23.765432;NC;"Fumeur actuel";NC;No;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;3;NC;N/A;NC;N/A;NC;N/A;NC;2019-08-06;NC;Yes;NC;Yes;NC;7;NC;2.3;NC;Yes;NC;33;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;52.5;NC;52;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2019-10-03;NC;Medtronic;NC;NC;NC;Yes;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;6;NC;2019-11-08;NC;46;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2019-10-07;2024-01-29;2019-12-10;2.1;NC;74.015;74.19;78.327;94.7;55;NC;104;NC;1.71;NC;35.566499;NC;"Ancien fumeur";NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;3;NC;72;NC;93;NC;N/A;NC;2019-07-22;NC;Yes;NC;Yes;NC;9;NC;4;NC;No;NC;NC;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;46;NC;77.5;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2019-10-07;NC;NC;NC;"Montée à droite du corps prothétique à l'intérieur d'un introducteur dryseal, référence du corps 28-14-12. +Mise en place des jambages droit et gauche, plc 23 10 00 et plc 23 12 00. ";NC;Yes;NC;Yes;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;6;NC;2019-12-21;NC;50;NC;No;NC;2024-01-29;NC;Décès;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2019-11-14;NC;2024-05-02;53.58;85.65;80.036;84.501;NC;93.2;60;NC;63;NC;1.71;NC;21.545091;NC;"Non fumeur";NC;Yes;NC;No;NC;Yes;NC;No;NC;No;NC;Yes;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;3;NC;N/A;NC;N/A;NC;N/A;NC;2019-09-27;NC;Yes;NC;NC;NC;8;NC;NC;NC;Yes;NC;27;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Yes;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;53;NC;NC;NC;2019-11-14;NC;Gore;NC;NC;NC;No;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;7;NC;2020-08-27;NC;52;NC;Yes;NC;2019-12-09;NC;Endofuite;NC;NC;NC;"Type II";NC;NC;NC;NC;NC;NC;NC;No;NC;Yes;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2019-12-18;NC;2024-02-27;50.33;76.48;70.96;75.154;NC;89.5;62;NC;72;NC;1.78;NC;22.724403;NC;"Fumeur actuel";NC;No;NC;No;NC;Yes;NC;No;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;2;NC;N/A;NC;N/A;NC;78;NC;2019-10-04;NC;Yes;NC;NC;NC;7.5;NC;NC;NC;Yes;NC;30;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;44.5;NC;47;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2019-12-18;NC;Medtronic;NC;NC;NC;No;NC;Yes;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;6;NC;2021-08-06;NC;38;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +W;2020-01-15;NC;2023-08-28;43.4;71.48;66.037;69.654;NC;93;63;NC;60;NC;1.57;NC;24.341758;NC;"Fumeur actuel";NC;No;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;2;NC;N/A;NC;N/A;NC;N/A;NC;2019-11-29;NC;Yes;NC;Yes;NC;5.2;NC;2;NC;Yes;NC;25;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;47;NC;45;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2020-01-15;NC;Gore;NC;NC;NC;Yes;NC;Yes;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;5;NC;2022-06-09;NC;34;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2020-01-22;NC;2025-06-24;65.05;73.82;68.392;73.812;NC;96.7;64;NC;97;NC;1.71;NC;33.1726;NC;"Ancien fumeur";NC;No;NC;No;NC;Yes;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;3;NC;N/A;NC;N/A;NC;N/A;NC;2019-10-10;NC;Yes;NC;Yes;NC;8;NC;3.5;NC;Yes;NC;34;NC;No;NC;Yes;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;51;NC;47;NC;33;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2020-01-22;NC;Gore;NC;NC;NC;No;NC;Yes;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;5;NC;2022-03-17;NC;56;NC;Yes;NC;2020-02-27;NC;Endofuite;NC;NC;NC;"Type II";NC;NC;NC;IIb;NC;NC;NC;Yes;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2020-01-22;NC;2020-09-24;8.08;78.15;72.728;73.402;NC;93.1;65;NC;80;NC;1.76;NC;25.826446;NC;"Fumeur actuel";NC;Yes;NC;No;NC;Yes;NC;No;NC;No;NC;Yes;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;2;NC;67;NC;101;NC;N/A;NC;2019-11-29;NC;Yes;NC;Yes;NC;6.5;NC;2.5;NC;Yes;NC;22;NC;No;NC;Yes;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;40;NC;41;NC;42;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2020-01-22;NC;Gore;NC;NC;NC;No;NC;Yes;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;6;NC;2020-02-27;NC;40;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2020-02-10;2021-06-03;2021-04-08;13.9;NC;71.023;72.181;72.334;100;66;NC;53;NC;1.82;NC;16.000483;NC;"Ancien fumeur";NC;Yes;NC;No;NC;Yes;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;3;NC;N/A;NC;N/A;NC;70;NC;2019-12-13;NC;Yes;NC;Yes;NC;8;NC;2.7;NC;Yes;NC;16;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;56;NC;65;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2020-02-10;NC;Gore;NC;NC;NC;No;NC;Yes;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;10;NC;2020-12-16;NC;50;NC;No;NC;2021-04-08;NC;Endofuite;NC;NC;NC;"Type II";NC;NC;NC;IIa;NC;NC;NC;No;NC;No;NC;2021-06-03;NC;Décès;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2020-02-13;NC;2025-03-27;61.4;82.32;76.956;82.073;NC;96.6;68;NC;78;NC;1.78;NC;24.618104;NC;"Fumeur actuel";NC;No;NC;No;NC;Yes;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;3;NC;163;NC;36;NC;N/A;NC;2019-12-02;NC;Yes;NC;Yes;NC;8;NC;3.4;NC;N/A;NC;NC;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;50;NC;48;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2020-02-13;NC;Gore;NC;NC;NC;Yes;NC;Yes;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;6;NC;2023-10-03;NC;68;NC;Yes;NC;2023-10-03;NC;Endofuite;NC;NC;NC;"Type II";NC;NC;NC;IIb;NC;NC;NC;Yes;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2020-02-26;2022-11-02;2022-06-02;27.17;NC;74.905;77.169;77.588;90;70;NC;65;NC;1.68;NC;23.030045;NC;"Ancien fumeur";NC;No;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;3;NC;N/A;NC;N/A;NC;N/A;NC;2019-08-02;NC;NC;NC;NC;NC;NC;NC;NC;NC;Yes;NC;NC;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;51;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2020-02-26;NC;Gore;NC;NC;NC;No;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;7;NC;2020-07-23;NC;53;NC;Yes;NC;2022-11-02;NC;Décès;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2020-07-23;NC;Endofuite;NC;NC;NC;"Type II";NC;NC;NC;IIa;NC;NC;NC;No;NC;No;NC +M;2020-05-18;NC;2025-04-04;58.54;79.15;74.048;78.927;NC;91.2;71;NC;95;NC;1.82;NC;28.680111;NC;"Fumeur actuel";NC;No;NC;Yes;NC;Yes;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;Asymptomatique;NC;3;NC;N/A;NC;N/A;NC;N/A;NC;2020-02-27;NC;Yes;NC;Yes;NC;9.3;NC;NC;NC;Yes;NC;37;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;51;NC;56;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2020-05-18;NC;Gore;NC;NC;NC;No;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;6;NC;2023-02-14;NC;50;NC;No;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC +M;2020-06-08;2023-04-07;2025-06-24;60.51;NC;79.105;84.148;81.933;48.1;72;NC;95;NC;1.73;NC;31.741789;NC;"Ancien fumeur";NC;Yes;NC;No;NC;Yes;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;No;NC;NC;NC;NC;NC;NC;NC;3;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;2020-06-08;NC;Medtronic;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;5;NC;NC;NC;NC;NC;NC;NC;2023-04-07;NC;Décès;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC;NC diff --git a/ui/windows/main.py b/ui/windows/main.py new file mode 100644 index 0000000..63d34a0 --- /dev/null +++ b/ui/windows/main.py @@ -0,0 +1,78 @@ +from PyQt5.QtGui import QIcon +import utils.paths as paths +from PyQt5.QtWidgets import QVBoxLayout, QHBoxLayout, QPushButton, QLineEdit, QFileDialog, QMainWindow, QWidget, QTextEdit +from core.verifier import Verifier # Assuming Verifier is defined in core.verifier +class Main(QMainWindow): + def __init__(self): + super().__init__() + self.verifier = Verifier() + + # Configurer la fenêtre avant de créer les widgets + self.setMinimumSize(1000, 600) + self.setWindowTitle("HoDA_Verifier") + self.setWindowIcon(QIcon(paths.get_asset_path("icon"))) + self.setup_ui() + + def setup_ui(self): + # Create a central widget + central_widget = QWidget() + + self.main_layout = QVBoxLayout(central_widget) + self.main_layout.setSpacing(20) + + self.browse_layout = QHBoxLayout() + self.browse_layout.setSpacing(10) + # Create a QLineEdit for the path input + self.path_input = QLineEdit(self) + self.path_input.setPlaceholderText("Sélectionnes le fichier csv ->") + self.browse_layout.addWidget(self.path_input) + + # Create a QPushButton to open the file dialog + self.browse_button = QPushButton("Parcourir", self) + self.browse_button.clicked.connect(self.open_file_dialog) + self.browse_layout.addWidget(self.browse_button) + + # Create a QPushButton to verify the path + self.verify_button = QPushButton("Vérifier", self) + self.verify_button.clicked.connect(self.verify_file) + + self.main_layout.addLayout(self.browse_layout) + + # Create a QTextEdit for displaying verification results + self.results_display = QTextEdit(self) + self.results_display.setPlaceholderText("Les résultats de la vérification apparaîtront ici...") + self.results_display.setReadOnly(True) # Make it read-only + self.results_display.setMinimumHeight(200) # Set minimum height + self.main_layout.addWidget(self.results_display) + + self.main_layout.addWidget(self.verify_button) + + # Set the layout on the central widget + central_widget.setLayout(self.main_layout) + # Set the central widget + self.setCentralWidget(central_widget) + + def open_file_dialog(self): + path, _ = QFileDialog.getOpenFileName(self, "Select File", "", "CSV Files (*.csv)") + if path: + self.path_input.setText(path) + + def verify_file(self): + file_path = self.path_input.text() + if not file_path: + self.results_display.setText("Veuillez sélectionner un fichier CSV d'abord.") + return + + result = self.verifier.verify(file_path) + + # Clear previous results + self.results_display.clear() + + if isinstance(result, list): + if result: # If there are issues + # Join the list of issues with newlines + self.results_display.setText("\n".join(result)) + else: # No issues found + self.results_display.setText("✅ Aucune discordance trouvée ! Toutes les données correspondent.") + else: # If result is a string (error message) + self.results_display.setText(result) \ No newline at end of file diff --git a/utils/paths.py b/utils/paths.py index c8203f1..9812df8 100644 --- a/utils/paths.py +++ b/utils/paths.py @@ -13,4 +13,10 @@ def resource_path(relative_path: str) -> Path: except AttributeError: base_path = Path(__file__).parent.parent # Dev environment: source/ folder - return path.join(base_path, relative_path) \ No newline at end of file + return path.join(base_path, relative_path) + +def get_data_dir() -> Path: + return resource_path("data") + +def get_asset_path(asset: str) -> Path: + return path.join(get_data_dir(), "assets", f"{asset}.png") \ No newline at end of file