Compare commits

...

14 Commits

8 changed files with 171 additions and 498052 deletions

6
.gitignore vendored
View File

@@ -195,3 +195,9 @@ Endobest Reporting/
jsons history/
nul
# Ignore all json, exe, log and xlsx files
*.json
*.exe
*.log
/*.xlsx
!eb_org_center_mapping.xlsx

View File

Binary file not shown.

View File

@@ -21,7 +21,7 @@
# identification, and support for complex data extraction using JSON path expressions.
import json
import logging
import msvcrt
import os
import re
import sys
@@ -118,6 +118,9 @@ access_token = ""
refresh_token = ""
threads_list = []
_token_refresh_lock = threading.Lock()
on_retry_exhausted = "ask" # "ask" | "ignore" | "abort" — set at startup
_stored_username = "" # Credentials stored at login for automatic re-login
_stored_password = ""
_threads_list_lock = threading.Lock()
global_pbar = None
_global_pbar_lock = threading.Lock()
@@ -186,8 +189,10 @@ def new_token():
finally:
if attempt < ERROR_MAX_RETRY - 1:
sleep(WAIT_BEFORE_RETRY)
logging.critical("Persistent error in refresh_token")
raise httpx.RequestError(message="Persistent error in refresh_token")
# Refresh token exhausted — attempt full re-login with stored credentials
logging.warning("Refresh token exhausted. Attempting re-login with stored credentials.")
_do_login(_stored_username, _stored_password)
logging.info("Re-login successful. New tokens acquired.")
def api_call_with_retry(func):
@@ -212,7 +217,10 @@ def api_call_with_retry(func):
if isinstance(exc, httpx.HTTPStatusError) and exc.response.status_code == 401:
logging.info(f"Token expired for {func_name}. Refreshing token.")
try:
new_token()
except (httpx.RequestError, httpx.HTTPStatusError) as token_exc:
logging.warning(f"Token refresh/re-login failed for {func_name}: {token_exc}")
if attempt < ERROR_MAX_RETRY - 1:
sleep(WAIT_BEFORE_RETRY)
@@ -225,8 +233,18 @@ def api_call_with_retry(func):
sleep(WAIT_BEFORE_NEW_BATCH_OF_RETRIES)
break # Exit for loop to restart batch in while True
else:
# All automatic batches exhausted, ask the user
# All automatic batches exhausted — apply on_retry_exhausted policy
with _user_interaction_lock:
if on_retry_exhausted == "ignore":
ctx = getattr(thread_local_storage, "current_patient_context", {"id": "Unknown", "pseudo": "Unknown"})
logging.warning(f"[AUTO-IGNORE] Skipping {func_name} for Patient {ctx['id']} ({ctx['pseudo']}). Error: {exc}")
return None
elif on_retry_exhausted == "abort":
logging.critical(f"[AUTO-ABORT] Stopping script after persistent error in {func_name}. Error: {exc}")
raise httpx.RequestError(message=f"Persistent error in {func_name} (auto-aborted)")
else: # "ask" — display error then interactive prompt
console.print(f"\n[bold red]Persistent error in {func_name} after {batch_count} batches ({total_attempts} attempts).[/bold red]")
console.print(f"[red]Exception: {exc}[/red]")
@@ -244,7 +262,6 @@ def api_call_with_retry(func):
batch_count = 1 # Reset batch counter for the next interactive round
break # Exit for loop to restart batch in while True
elif choice == "Ignore (return None and continue)":
# Retrieve context if available
ctx = getattr(thread_local_storage, "current_patient_context", {"id": "Unknown", "pseudo": "Unknown"})
logging.warning(f"[IGNORE] User opted to skip {func_name} for Patient {ctx['id']} ({ctx['pseudo']}). Error: {exc}")
return None
@@ -259,51 +276,56 @@ def api_call_with_retry(func):
# BLOCK 3: AUTHENTICATION
# ============================================================================
def login():
def _do_login(username, password):
"""Performs the two-step authentication (IAM → RC) with the given credentials.
Updates global access_token and refresh_token on success.
Raises httpx.RequestError or httpx.HTTPStatusError on failure.
Must NOT acquire _token_refresh_lock (caller's responsibility).
"""
global access_token, refresh_token
client = get_httpx_client()
client.base_url = IAM_URL
response = client.post(API_AUTH_LOGIN_ENDPOINT,
json={"username": username, "password": password},
timeout=20)
response.raise_for_status()
master_token = response.json()["access_token"]
user_id = response.json()["userId"]
client = get_httpx_client()
client.base_url = RC_URL
response = client.post(API_AUTH_CONFIG_TOKEN_ENDPOINT,
headers={"Authorization": f"Bearer {master_token}"},
json={"userId": user_id, "clientId": RC_APP_ID,
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36"},
timeout=20)
response.raise_for_status()
access_token = response.json()["access_token"]
refresh_token = response.json()["refresh_token"]
def login():
global _stored_username, _stored_password
user_name = (questionary.text("login :", default=DEFAULT_USER_NAME).ask())
password = (questionary.password("password :", default=DEFAULT_PASSWORD).ask())
if not (user_name and password):
return "Exit"
try:
client = get_httpx_client()
client.base_url = IAM_URL
response = client.post(API_AUTH_LOGIN_ENDPOINT, json={"username": user_name, "password": password},
timeout=20)
response.raise_for_status()
master_token = response.json()["access_token"]
user_id = response.json()["userId"]
_do_login(user_name, password)
except httpx.RequestError as exc:
print(f"Login Error : {exc}")
logging.warning(f"Login Error : {exc}")
return "Error"
except httpx.HTTPStatusError as exc:
print(f"Login Error : {exc.response.status_code} for Url {exc.request.url}")
logging.warning(
f"Login Error : {exc.response.status_code} for Url {exc.request.url}")
return "Error"
try:
client = get_httpx_client()
client.base_url = RC_URL
response = client.post(API_AUTH_CONFIG_TOKEN_ENDPOINT, headers={"Authorization": f"Bearer {master_token}"},
json={"userId": user_id, "clientId": RC_APP_ID,
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/137.0.0.0 Safari/537.36"},
timeout=20)
response.raise_for_status()
access_token = response.json()["access_token"]
refresh_token = response.json()["refresh_token"]
except httpx.RequestError as exc:
print(f"Login Error : {exc}")
logging.warning(f"Login Error : {exc}")
return "Error"
except httpx.HTTPStatusError as exc:
print(f"Login Error : {exc.response.status_code} for Url {exc.request.url}")
logging.warning(f"Login Error : {exc}")
logging.warning(f"Login Error : {exc.response.status_code} for Url {exc.request.url}")
return "Error"
_stored_username = user_name
_stored_password = password
print()
print("Login Success")
return "Success"
@@ -313,6 +335,87 @@ def login():
# BLOCK 3B: FILE UTILITIES
# ============================================================================
def ask_on_retry_exhausted():
"""Asks the user what to do when all API retry batches are exhausted."""
global on_retry_exhausted
choice = questionary.select(
"On retry exhausted :",
choices=[
"Ask (interactive prompt)",
"Ignore (return None and continue)",
"Abort (stop script)"
]
).ask()
if choice is None or choice == "Ask (interactive prompt)":
on_retry_exhausted = "ask"
elif choice == "Ignore (return None and continue)":
on_retry_exhausted = "ignore"
else:
on_retry_exhausted = "abort"
def wait_for_scheduled_launch():
"""Asks the user when to start the processing and waits if needed.
Options: Immediately / In X minutes / At HH:MM
"""
choice = questionary.select(
"When to start processing ?",
choices=["Immediately", "In X minutes", "At HH:MM"]
).ask()
if choice is None or choice == "Immediately":
return
if choice == "In X minutes":
minutes_str = questionary.text(
"Number of minutes :",
validate=lambda x: x.isdigit() and int(x) > 0
).ask()
if not minutes_str:
return
target_time = datetime.now() + timedelta(minutes=int(minutes_str))
else: # "At HH:MM"
time_str = questionary.text(
"Start time (HH:MM) :",
validate=lambda x: bool(re.match(r'^\d{2}:\d{2}$', x)) and
0 <= int(x.split(':')[0]) <= 23 and
0 <= int(x.split(':')[1]) <= 59
).ask()
if not time_str:
return
now = datetime.now()
h, m = int(time_str.split(':')[0]), int(time_str.split(':')[1])
target_time = now.replace(hour=h, minute=m, second=0, microsecond=0)
if target_time <= now:
console.print("[yellow]⚠ Specified time is already past. Starting immediately.[/yellow]")
return
print()
try:
while True:
remaining = target_time - datetime.now()
if remaining.total_seconds() <= 0:
break
total_secs = int(remaining.total_seconds())
h = total_secs // 3600
m = (total_secs % 3600) // 60
s = total_secs % 60
target_str = target_time.strftime('%H:%M:%S')
print(f"\r Starting in {h:02d}:{m:02d}:{s:02d}... (at {target_str}) — Ctrl+C to cancel ",
end="", flush=True)
sleep(1)
# Flush keyboard buffer to prevent stray keystrokes from polluting subsequent prompts
while msvcrt.kbhit():
msvcrt.getwch()
print()
console.print("[green]✓ Starting processing.[/green]")
except KeyboardInterrupt:
print()
console.print("[bold red]Launch cancelled by user.[/bold red]")
raise SystemExit(0)
def load_json_file(filename):
"""
Load a JSON file from disk.
@@ -1236,6 +1339,12 @@ def main():
number_of_threads = int((questionary.text("Number of threads :", default="12",
validate=lambda x: x.isdigit() and 0 < int(x) <= MAX_THREADS).ask()))
print()
ask_on_retry_exhausted()
print()
wait_for_scheduled_launch()
print()
load_inclusions_mapping_config()
load_organizations_mapping_config()

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,704 +0,0 @@
[
{
"id": "5703b3d6-e415-40b0-90ea-b168835fd720",
"name": "HOPITAL PRIVE NATECIA",
"Center_Name": "Hôpital Privé Natécia",
"patients_count": 169,
"preincluded_count": 0,
"included_count": 167,
"prematurely_terminated_count": 2
},
{
"id": "1de71a30-840b-4c4b-84fc-281ce1b4a5e1",
"name": "SANTE ATLANTIQUE",
"Center_Name": "Clinique Santé Atlantique",
"patients_count": 159,
"preincluded_count": 1,
"included_count": 157,
"prematurely_terminated_count": 1
},
{
"id": "5e6d7afa-6532-495f-a84a-34f644aeaa0f",
"name": "CLINIQUE BELLEDONNE",
"Center_Name": "Clinique Belledonne",
"patients_count": 158,
"preincluded_count": 4,
"included_count": 153,
"prematurely_terminated_count": 1
},
{
"id": "026a6d39-552f-44b9-8a2d-1ecd705f9e08",
"name": "HOPITAL AMERICAIN",
"Center_Name": "Hôpital Américain de Paris",
"patients_count": 158,
"preincluded_count": 1,
"included_count": 157,
"prematurely_terminated_count": 0
},
{
"id": "bf0f96c1-8bbc-4f2c-b360-4a5b27995a12",
"name": "SA CLINIQUE TIVOLI-DUCOS",
"Center_Name": "Clinique TIVOLI",
"patients_count": 155,
"preincluded_count": 1,
"included_count": 154,
"prematurely_terminated_count": 0
},
{
"id": "aba63d11-0dd7-40e8-a652-384c311bb358",
"name": "HOPITAL LYON SUD - HOSPICES CIVILS DE LYON",
"Center_Name": "Hôpital Lyon Sud - Hospices Civils de Lyon",
"patients_count": 127,
"preincluded_count": 0,
"included_count": 127,
"prematurely_terminated_count": 0
},
{
"id": "8488229d-f426-4bdd-923c-f638041b223c",
"name": "HOPITAL JEANNE DE FLANDRE DU CHU DE LILLE",
"Center_Name": "CHU de Lille - Hôpital Jeanne de Flandre",
"patients_count": 91,
"preincluded_count": 1,
"included_count": 90,
"prematurely_terminated_count": 0
},
{
"id": "31665f8d-0f46-44dc-931f-e3aed8879965",
"name": "HOPITAL MAISON BLANCHE CHU REIMS",
"Center_Name": "CHU de Reims - Hôpital Maison Blanche",
"patients_count": 88,
"preincluded_count": 0,
"included_count": 88,
"prematurely_terminated_count": 0
},
{
"id": "b77b301c-10fa-4eca-bb5b-51506766e158",
"name": "HOPITAL CHARLES NICOLLE CHU ROUEN",
"Center_Name": "CHU de Rouen Normandie - Hôpital Charles-Nicolle",
"patients_count": 84,
"preincluded_count": 1,
"included_count": 83,
"prematurely_terminated_count": 0
},
{
"id": "743d0a1a-7edf-4fe6-9d65-0c14363f2153",
"name": "CENTRE HOSPITALIER UNIVERSITAIRE JEAN MINJOZ BESANCON",
"Center_Name": "CHU Jean Minjoz Besançon - Pôle Mère-Femme",
"patients_count": 81,
"preincluded_count": 0,
"included_count": 81,
"prematurely_terminated_count": 0
},
{
"id": "855d7aab-9736-40b7-b9ff-dcc6438890ef",
"name": "HOPITAL CROIX-ROUSSE - HOSPICES CIVILS DE LYON",
"Center_Name": "Hôpital Croix-Rousse - Hospices Civils de Lyon",
"patients_count": 68,
"preincluded_count": 5,
"included_count": 62,
"prematurely_terminated_count": 1
},
{
"id": "74a05936-8fb6-4662-8e95-fd1c91621bf2",
"name": "GHU APHP SORBONNE UNIVERSITE SITE TENON",
"Center_Name": "GHU APHP - Hôpital Tenon",
"patients_count": 62,
"preincluded_count": 5,
"included_count": 56,
"prematurely_terminated_count": 1
},
{
"id": "76d2ebcd-5482-4c5d-8221-c94d1de7261e",
"name": "CENTRE HOSPITALIER ANNECY-GENEVOIS SITE ANNECY",
"Center_Name": "CH Annecy Genevois Site dAnnecy",
"patients_count": 60,
"preincluded_count": 0,
"included_count": 60,
"prematurely_terminated_count": 0
},
{
"id": "006740fa-696c-4ffb-8b77-7a60d0e23617",
"name": "HOPITAL PRIVÉ LE BOIS",
"Center_Name": "Hôpital Privé le Bois - Lille",
"patients_count": 60,
"preincluded_count": 1,
"included_count": 59,
"prematurely_terminated_count": 0
},
{
"id": "a4b3dfea-1220-4987-b287-f58fde1d0ee5",
"name": "CENTRE HOSPITALIER UNIVERSITAIRE COTE DE NACRE",
"Center_Name": "CHU de Caen",
"patients_count": 59,
"preincluded_count": 0,
"included_count": 59,
"prematurely_terminated_count": 0
},
{
"id": "4aef30cb-778b-409a-b6e2-898bfd91c850",
"name": "CENTRE HOSPITALIER GENERAL DE VALENCIENNES",
"Center_Name": "CH de Valenciennes",
"patients_count": 57,
"preincluded_count": 3,
"included_count": 54,
"prematurely_terminated_count": 0
},
{
"id": "f7d3526b-18d6-43af-b52c-5ca23bac798e",
"name": "CENTRE HOSPITALIER REGIONAL D ANGERS",
"Center_Name": "CHR dAngers",
"patients_count": 50,
"preincluded_count": 0,
"included_count": 50,
"prematurely_terminated_count": 0
},
{
"id": "1fd6c63b-d909-45d8-8c70-ecb12501c1d1",
"name": "HOPITAL DE HAUTEPIERRE",
"Center_Name": "CHRU Strasbourg - Hôpital de Hautepierre",
"patients_count": 44,
"preincluded_count": 2,
"included_count": 42,
"prematurely_terminated_count": 0
},
{
"id": "d17ddcc4-64db-4cf5-83c5-146f9a060254",
"name": "CENTRE HOSPITALIER DE CALAIS.",
"Center_Name": "CH de Calais",
"patients_count": 42,
"preincluded_count": 0,
"included_count": 42,
"prematurely_terminated_count": 0
},
{
"id": "f6665185-b1ae-4847-a378-652d35158cee",
"name": "CLINIQUE BELHARRA",
"Center_Name": "Clinique Belharra",
"patients_count": 40,
"preincluded_count": 0,
"included_count": 40,
"prematurely_terminated_count": 0
},
{
"id": "fe25553c-4894-4291-b303-c19d2a1c6f0f",
"name": "CHU SITE FELIX GUYON (SAINT DENIS)",
"Center_Name": "CHU la Réunion - Site Félix Guyon (SAINT DENIS)",
"patients_count": 39,
"preincluded_count": 6,
"included_count": 33,
"prematurely_terminated_count": 0
},
{
"id": "12daafee-970b-4781-9121-994d06e3a766",
"name": "CHU DE NICE HOPITAL DE L'ARCHET",
"Center_Name": "CHU Nice Archet",
"patients_count": 38,
"preincluded_count": 0,
"included_count": 38,
"prematurely_terminated_count": 0
},
{
"id": "f07a7374-d731-4fcf-86e9-2f36e5faf342",
"name": "CHU MONTPELLIER HOPITAL ARNAUD DE VILLENEUVE",
"Center_Name": "CHU Montpellier - Hôpital Arnaud de Villeneuve",
"patients_count": 38,
"preincluded_count": 0,
"included_count": 38,
"prematurely_terminated_count": 0
},
{
"id": "9c64545a-b622-4ef9-be0f-f5cc21b9cd66",
"name": "HOPITAL NORD - CHU DE GRENOBLE ALPES",
"Center_Name": "CHU de Grenoble - Hôpital Nord",
"patients_count": 36,
"preincluded_count": 0,
"included_count": 35,
"prematurely_terminated_count": 1
},
{
"id": "c03b88b5-3cd2-4336-9048-19c239baf5ec",
"name": "CHRU DE RENNES SITE HOPITAL SUD",
"Center_Name": "CHU Rennes",
"patients_count": 34,
"preincluded_count": 0,
"included_count": 34,
"prematurely_terminated_count": 0
},
{
"id": "b0ba921e-e24a-41c2-b769-a2aa108cdd58",
"name": "CENTRE HOSPITALIER LES ESCARTONS A BRIANCON",
"Center_Name": "CH des Escartons de Briançon",
"patients_count": 32,
"preincluded_count": 1,
"included_count": 31,
"prematurely_terminated_count": 0
},
{
"id": "b5f30dc5-da3f-4f8b-9a39-33f0fefb7196",
"name": "SCM RX TOULOUSE CLINIQUE PASTEUR",
"Center_Name": "Clinique Pasteur Toulouse",
"patients_count": 32,
"preincluded_count": 2,
"included_count": 30,
"prematurely_terminated_count": 0
},
{
"id": "817429dd-0d7c-4df9-ad70-2f19c205e05a",
"name": "CENTRE HOSPITALIER - FALCONAJA - BASTIA",
"Center_Name": "CH Bastia",
"patients_count": 29,
"preincluded_count": 4,
"included_count": 25,
"prematurely_terminated_count": 0
},
{
"id": "4f943b00-9306-418a-a853-1d97dff71172",
"name": "HOPITAL EUROPEEN",
"Center_Name": "Hôpital Européen Marseille",
"patients_count": 28,
"preincluded_count": 0,
"included_count": 28,
"prematurely_terminated_count": 0
},
{
"id": "002312ec-69fb-4582-9e8f-7c266e5479d2",
"name": "HOPITAL NORD - CHU DE SAINT-ETIENNE",
"Center_Name": "CHU de Saint-Étienne - Hôpital Nord",
"patients_count": 27,
"preincluded_count": 2,
"included_count": 25,
"prematurely_terminated_count": 0
},
{
"id": "0ce39aac-6b5a-418b-8430-c4432e6cd78f",
"name": "HOPITAL DE RANGUEIL CHU TOULOUSE",
"Center_Name": "CHU de Toulouse - Hôpital Rangueil",
"patients_count": 24,
"preincluded_count": 1,
"included_count": 23,
"prematurely_terminated_count": 0
},
{
"id": "8ef8564e-836c-4c03-b4ec-8e28fa76c3c0",
"name": "HOPITAL ESTAING - CHU CLERMONT-FERRAND",
"Center_Name": "CHU Clermont-Ferrand - Site Estaing",
"patients_count": 23,
"preincluded_count": 1,
"included_count": 22,
"prematurely_terminated_count": 0
},
{
"id": "546f981f-6f7d-40c8-9b97-a1a3c46e6674",
"name": "GROUPE HOSPITALIER DE LA REGION DE MULHOUSE ET SUD ALSACE",
"Center_Name": "GHR Mulhouse Sud Alsace",
"patients_count": 20,
"preincluded_count": 0,
"included_count": 20,
"prematurely_terminated_count": 0
},
{
"id": "eb9c561d-37b6-485c-b351-9e19515cb98d",
"name": "GROUPE HOSPITALIER PELLEGRIN - CHU",
"Center_Name": "CHU de Bordeaux - GH Pellegrin",
"patients_count": 20,
"preincluded_count": 0,
"included_count": 20,
"prematurely_terminated_count": 0
},
{
"id": "d1ef2ced-0206-4725-a08c-454d71e823ec",
"name": "HOPITAL DE LA MERE ET DE L'ENFANT",
"Center_Name": "CHU Limoges - Hôpital de la Mère et de l'Enfant",
"patients_count": 20,
"preincluded_count": 0,
"included_count": 20,
"prematurely_terminated_count": 0
},
{
"id": "7f43a297-b156-4fec-8ecf-d8d008b1a1d2",
"name": "HOPITAL PRIVE DIJON BOURGOGNE",
"Center_Name": "Centre Evidens - Hôpital privé Dijon Bourgogne",
"patients_count": 19,
"preincluded_count": 4,
"included_count": 15,
"prematurely_terminated_count": 0
},
{
"id": "d767fcd0-3f4c-4cdf-9cda-b829156d2f95",
"name": "HOPITAL PRIVE SUD CORSE",
"Center_Name": "Hôpital Privé Sud Corse",
"patients_count": 18,
"preincluded_count": 0,
"included_count": 18,
"prematurely_terminated_count": 0
},
{
"id": "58d5b536-b326-4713-9137-bb6f852df0be",
"name": "CENTRE HOSPITALIER METROPOLE SAVOIE - CHAMBERY NH",
"Center_Name": "CH Métropole Savoie - Site Chambéry",
"patients_count": 16,
"preincluded_count": 0,
"included_count": 16,
"prematurely_terminated_count": 0
},
{
"id": "b4b35661-87c8-4333-bfb1-3ce4f1c77565",
"name": "CENTRE HOSPITALIER REGIONAL UNIVERSITAIRE BRETONNEAU",
"Center_Name": "CHRU Bretonneau",
"patients_count": 16,
"preincluded_count": 2,
"included_count": 14,
"prematurely_terminated_count": 0
},
{
"id": "454313d9-c624-43de-a8e3-84989d526403",
"name": "CLINIQUE MUTUALISTE LA SAGESSE RENNES",
"Center_Name": "Clinique la Sagesse - Rennes",
"patients_count": 15,
"preincluded_count": 0,
"included_count": 15,
"prematurely_terminated_count": 0
},
{
"id": "d981c078-189e-4831-a063-778733f7e582",
"name": "HOPITAL FOCH",
"Center_Name": "Hôpital Foch",
"patients_count": 15,
"preincluded_count": 1,
"included_count": 12,
"prematurely_terminated_count": 0
},
{
"id": "940c8425-fe53-45ac-a750-3e195df990e3",
"name": "HOPITAL PRIVE D'EURE ET LOIR",
"Center_Name": "Hôpital Privé d'Eure et Loir",
"patients_count": 14,
"preincluded_count": 1,
"included_count": 13,
"prematurely_terminated_count": 0
},
{
"id": "98cbbefe-920a-495a-981d-02093bd2253d",
"name": "CHU LA MILETRIE",
"Center_Name": "CHU de Poitiers La Miletrie",
"patients_count": 13,
"preincluded_count": 0,
"included_count": 13,
"prematurely_terminated_count": 0
},
{
"id": "38e9ef8a-5073-471a-a3df-14d834db2d12",
"name": "GHBS-SITE HÔPITAL DU SCORFF",
"Center_Name": "Groupe Hospitalier Bretagne Sud Lorient - GHBS - Lorient (SCORFF)",
"patients_count": 13,
"preincluded_count": 0,
"included_count": 13,
"prematurely_terminated_count": 0
},
{
"id": "6316db1a-4a90-4e45-a518-0095d63f7c36",
"name": "HOPITAL LE BOCAGE CHRU DIJON",
"Center_Name": "CHU Dijon",
"patients_count": 12,
"preincluded_count": 1,
"included_count": 10,
"prematurely_terminated_count": 1
},
{
"id": "f790c171-9523-48b6-a246-fdb26628eb6c",
"name": "CHRU NANCY - MATERNITE",
"Center_Name": "CHRU de Nancy - Maternité",
"patients_count": 11,
"preincluded_count": 1,
"included_count": 10,
"prematurely_terminated_count": 0
},
{
"id": "7b8c5362-7c7a-4d93-8b12-58b8e56020d1",
"name": "HOPITAL JACQUES MONOD CH LE HAVRE",
"Center_Name": "GH du Havre - Hôpital Jacques Monod",
"patients_count": 11,
"preincluded_count": 0,
"included_count": 11,
"prematurely_terminated_count": 0
},
{
"id": "6953af68-e30e-437f-93cf-19ed0932c350",
"name": "CHRU D'ORLEANS - HOPITAL DE LA SOURCE",
"Center_Name": "CHU d'Orléans",
"patients_count": 10,
"preincluded_count": 0,
"included_count": 10,
"prematurely_terminated_count": 0
},
{
"id": "f13560a8-3bf6-4322-bdae-332ee3bf0366",
"name": "POLYCLINIQUE JEAN VILLAR",
"Center_Name": "Polyclinique Jean Villar",
"patients_count": 10,
"preincluded_count": 0,
"included_count": 10,
"prematurely_terminated_count": 0
},
{
"id": "da67fb6e-2ccc-4994-8fde-cc2ee2a8e9ca",
"name": "GHU AP-HP UNIVERSITE PARIS SACLAY SITE KREMLIN BICETRE",
"Center_Name": "GHU APHP - Hôpital Bicêtre",
"patients_count": 9,
"preincluded_count": 0,
"included_count": 7,
"prematurely_terminated_count": 0
},
{
"id": "56f427f0-be35-493b-8049-46b747c0105e",
"name": "CHU AMIENS SUD",
"Center_Name": "CHU Amiens Sud",
"patients_count": 7,
"preincluded_count": 3,
"included_count": 4,
"prematurely_terminated_count": 0
},
{
"id": "f784ee6f-27b5-4afe-ba23-4f839d96535c",
"name": "APHM HOPITAL NORD",
"Center_Name": "APHM Hôpital Nord",
"patients_count": 5,
"preincluded_count": 0,
"included_count": 5,
"prematurely_terminated_count": 0
},
{
"id": "1ac60b10-08de-4639-9a49-67167f85844e",
"name": "CENTRE HOSPITALIER DE LENS",
"Center_Name": "CH de Lens",
"patients_count": 5,
"preincluded_count": 2,
"included_count": 3,
"prematurely_terminated_count": 0
},
{
"id": "9ba321be-65d0-4767-9865-a547905e647e",
"name": "HOPITAL DE LA CROIX SAINT SIMON",
"Center_Name": "GH Diaconesses Croix Saint-Simon",
"patients_count": 5,
"preincluded_count": 1,
"included_count": 4,
"prematurely_terminated_count": 0
},
{
"id": "cab5b1e9-d93a-46eb-ae35-a449ea719c65",
"name": "GRAND HOSP EST FRANCILIEN MARNE LA VALLEE SITE JOSSIGNY",
"Center_Name": "Grand Hôpital de l'Est Francilien - Site de Marne-la-Vallée",
"patients_count": 4,
"preincluded_count": 0,
"included_count": 4,
"prematurely_terminated_count": 0
},
{
"id": "96519108-b0b2-4a5f-999f-cccc4e4059c9",
"name": "CHU DE NANTES SITE HOTEL DIEU HOPITAL MERE ENFANT",
"Center_Name": "CHU de Nantes - Site Hôtel Dieu Hôpital Mère Enfant",
"patients_count": 3,
"preincluded_count": 0,
"included_count": 3,
"prematurely_terminated_count": 0
},
{
"id": "fe7548b7-75a1-4e13-97a9-6dc865b04b25",
"name": "CHU SITE SUD ( SAINT PIERRE)",
"Center_Name": "CHU la Réunion - Site Sud (SAINT PIERRE)",
"patients_count": 3,
"preincluded_count": 0,
"included_count": 3,
"prematurely_terminated_count": 0
},
{
"id": "e68c76de-33e8-49e3-978d-c5fb408e7fd5",
"name": "CLINIQUE AXIUM",
"Center_Name": "Clinique Axium",
"patients_count": 3,
"preincluded_count": 0,
"included_count": 3,
"prematurely_terminated_count": 0
},
{
"id": "af09eaa0-7e08-48e3-990c-24ca2fbc3fdc",
"name": "SCP GYNECOLOGIE RIVE GAUCHE",
"Center_Name": "SCP Gynécologie Clinique Rive Gauche",
"patients_count": 3,
"preincluded_count": 0,
"included_count": 3,
"prematurely_terminated_count": 0
},
{
"id": "0466558d-077c-4a51-9d25-2e15e00fabaf",
"name": "CENTRE HOSPITALIER DE CANNES SIMONE VEIL",
"Center_Name": "CH de Cannes Simone Veil",
"patients_count": 2,
"preincluded_count": 0,
"included_count": 2,
"prematurely_terminated_count": 0
},
{
"id": "aa3e8684-07e0-45d9-9cee-144df2e4b430",
"name": "CENTRE HOSPITALIER DE PAU",
"Center_Name": "CH de Pau",
"patients_count": 2,
"preincluded_count": 0,
"included_count": 2,
"prematurely_terminated_count": 0
},
{
"id": "13306b61-7ea6-4d60-b89c-b0df2d9d1605",
"name": "CENTRE HOSPITALIER VICTOR PROVO ROUBAIX",
"Center_Name": "CH Victor Provo Roubaix",
"patients_count": 2,
"preincluded_count": 0,
"included_count": 2,
"prematurely_terminated_count": 0
},
{
"id": "8c27716f-edfe-4a4e-9189-09f39cc64395",
"name": "CHI DE MONT DE MARSAN ET DU PAYS DES SOURCES",
"Center_Name": "CHI Mont de Marsan",
"patients_count": 2,
"preincluded_count": 0,
"included_count": 2,
"prematurely_terminated_count": 0
},
{
"id": "b74c365a-fc63-4763-b57d-abb609debd3b",
"name": "CTRE HOSPITALIER INTERCOMMUNAL POISSY ST GERMAIN SITE POISSY",
"Center_Name": "CHI Poissy St Germain en Laye - Site Poissy",
"patients_count": 2,
"preincluded_count": 1,
"included_count": 1,
"prematurely_terminated_count": 0
},
{
"id": "4d271322-7945-42e8-801b-a3b25fc570be",
"name": "GROUPE HOSPITALIER PARIS SAINT JOSEPH",
"Center_Name": "Groupe Hospitalier Paris Saint-Joseph",
"patients_count": 2,
"preincluded_count": 0,
"included_count": 2,
"prematurely_terminated_count": 0
},
{
"id": "d82d64eb-a1cf-4635-a99f-23def12c7cb5",
"name": "CHRU BREST SITE HOPITAL MORVAN",
"Center_Name": "CHRU Brest - Site Hôpital Morvan",
"patients_count": 1,
"preincluded_count": 0,
"included_count": 1,
"prematurely_terminated_count": 0
},
{
"id": "a47dc8c0-dfea-4a4c-9bcc-1370616ff9c8",
"name": "CHU DE MARTINIQUE SITE MFME",
"Center_Name": "CHU de Martinique - Site MFME",
"patients_count": 1,
"preincluded_count": 0,
"included_count": 1,
"prematurely_terminated_count": 0
},
{
"id": "384d3b28-f33e-43a6-9043-394aa88aead7",
"name": "CLINIQUE BOUCHARD",
"Center_Name": "Clinique Bouchard - Marseille",
"patients_count": 1,
"preincluded_count": 0,
"included_count": 1,
"prematurely_terminated_count": 0
},
{
"id": "0f78459f-b598-4faa-81a1-085a439e8c0e",
"name": "HOPITAUX PRIVES ROUENNAIS MATHILDE",
"Center_Name": "Hôpitaux Privés Rouennais - Mathilde",
"patients_count": 1,
"preincluded_count": 0,
"included_count": 1,
"prematurely_terminated_count": 0
},
{
"id": "02e42e01-56ab-418d-95df-cb53a7ef17b3",
"name": "APHM HOPITAL DE LA CONCEPTION",
"Center_Name": "APHM Hôpital de la Conception",
"patients_count": 0,
"preincluded_count": 0,
"included_count": 0,
"prematurely_terminated_count": 0
},
{
"id": "2ba1f179-425e-4d88-97a7-88a097e639ab",
"name": "CENTRE HOSPITALIER DE CAYENNE",
"Center_Name": "CHU de Guyane - Site de Cayenne",
"patients_count": 0,
"preincluded_count": 0,
"included_count": 0,
"prematurely_terminated_count": 0
},
{
"id": "3e8887e1-7608-40a6-b6f5-87c6fa5a0bd0",
"name": "CENTRE HOSPITALIER DE VERSAILLES ANDRE MIGNOT",
"Center_Name": "CH de Versailles",
"patients_count": 0,
"preincluded_count": 0,
"included_count": 0,
"prematurely_terminated_count": 0
},
{
"id": "6af3784d-5d57-47c3-b924-0d13008ebd88",
"name": "CENTRE HOSPITALIER UNIVERSITAIRE DE POINTE-A-PITRE",
"Center_Name": "CHU de Guadeloupe - Pointe-à-Pitre",
"patients_count": 0,
"preincluded_count": 0,
"included_count": 0,
"prematurely_terminated_count": 0
},
{
"id": "aa6af654-2cf2-4714-885d-a0e40b6f6f0a",
"name": "CHR METZ - THIONVILLE - HOPITAL DE MERCY",
"Center_Name": "CHR Metz - Thionville - Hôpital de Mercy",
"patients_count": 0,
"preincluded_count": 0,
"included_count": 0,
"prematurely_terminated_count": 0
},
{
"id": "8441f339-4dd3-4c8c-bd2d-7751dc7fe43b",
"name": "CLINIQUE DU TERTRE ROUGE - POLE SANTE SUD",
"Center_Name": "Clinique du Tertre Rouge - Pôle Santé Sud",
"patients_count": 0,
"preincluded_count": 0,
"included_count": 0,
"prematurely_terminated_count": 0
},
{
"id": "09c785f2-3deb-4a4a-a1a8-adbca5b767d7",
"name": "GHU APHP CENTRE-UNIVERSITE PARIS CITE SITE COCHIN PORT ROYAL",
"Center_Name": "APHP Site Cochin",
"patients_count": 0,
"preincluded_count": 0,
"included_count": 0,
"prematurely_terminated_count": 0
},
{
"id": "5847c4fa-4025-4303-80eb-deaa07b80c0b",
"name": "GHU APHP SORBONNE UNIVERSITE SITE PITIE SALPETRIERE",
"Center_Name": "APHP Site Pitié Salpêtriere",
"patients_count": 0,
"preincluded_count": 0,
"included_count": 0,
"prematurely_terminated_count": 0
},
{
"id": "dacc94bd-89b0-4cc4-b334-f684360abbe5",
"name": "HOPITAL PRIVE D ANTONY",
"Center_Name": "Hôpital Privé d'Antony",
"patients_count": 0,
"preincluded_count": 0,
"included_count": 0,
"prematurely_terminated_count": 0
}
]

View File

@@ -1,704 +0,0 @@
[
{
"id": "5703b3d6-e415-40b0-90ea-b168835fd720",
"name": "HOPITAL PRIVE NATECIA",
"Center_Name": "Hôpital Privé Natécia",
"patients_count": 169,
"preincluded_count": 0,
"included_count": 167,
"prematurely_terminated_count": 2
},
{
"id": "1de71a30-840b-4c4b-84fc-281ce1b4a5e1",
"name": "SANTE ATLANTIQUE",
"Center_Name": "Clinique Santé Atlantique",
"patients_count": 159,
"preincluded_count": 1,
"included_count": 157,
"prematurely_terminated_count": 1
},
{
"id": "5e6d7afa-6532-495f-a84a-34f644aeaa0f",
"name": "CLINIQUE BELLEDONNE",
"Center_Name": "Clinique Belledonne",
"patients_count": 158,
"preincluded_count": 4,
"included_count": 153,
"prematurely_terminated_count": 1
},
{
"id": "026a6d39-552f-44b9-8a2d-1ecd705f9e08",
"name": "HOPITAL AMERICAIN",
"Center_Name": "Hôpital Américain de Paris",
"patients_count": 158,
"preincluded_count": 1,
"included_count": 157,
"prematurely_terminated_count": 0
},
{
"id": "bf0f96c1-8bbc-4f2c-b360-4a5b27995a12",
"name": "SA CLINIQUE TIVOLI-DUCOS",
"Center_Name": "Clinique TIVOLI",
"patients_count": 155,
"preincluded_count": 1,
"included_count": 154,
"prematurely_terminated_count": 0
},
{
"id": "aba63d11-0dd7-40e8-a652-384c311bb358",
"name": "HOPITAL LYON SUD - HOSPICES CIVILS DE LYON",
"Center_Name": "Hôpital Lyon Sud - Hospices Civils de Lyon",
"patients_count": 127,
"preincluded_count": 0,
"included_count": 127,
"prematurely_terminated_count": 0
},
{
"id": "8488229d-f426-4bdd-923c-f638041b223c",
"name": "HOPITAL JEANNE DE FLANDRE DU CHU DE LILLE",
"Center_Name": "CHU de Lille - Hôpital Jeanne de Flandre",
"patients_count": 91,
"preincluded_count": 1,
"included_count": 90,
"prematurely_terminated_count": 0
},
{
"id": "31665f8d-0f46-44dc-931f-e3aed8879965",
"name": "HOPITAL MAISON BLANCHE CHU REIMS",
"Center_Name": "CHU de Reims - Hôpital Maison Blanche",
"patients_count": 88,
"preincluded_count": 0,
"included_count": 88,
"prematurely_terminated_count": 0
},
{
"id": "b77b301c-10fa-4eca-bb5b-51506766e158",
"name": "HOPITAL CHARLES NICOLLE CHU ROUEN",
"Center_Name": "CHU de Rouen Normandie - Hôpital Charles-Nicolle",
"patients_count": 84,
"preincluded_count": 1,
"included_count": 83,
"prematurely_terminated_count": 0
},
{
"id": "743d0a1a-7edf-4fe6-9d65-0c14363f2153",
"name": "CENTRE HOSPITALIER UNIVERSITAIRE JEAN MINJOZ BESANCON",
"Center_Name": "CHU Jean Minjoz Besançon - Pôle Mère-Femme",
"patients_count": 81,
"preincluded_count": 0,
"included_count": 81,
"prematurely_terminated_count": 0
},
{
"id": "855d7aab-9736-40b7-b9ff-dcc6438890ef",
"name": "HOPITAL CROIX-ROUSSE - HOSPICES CIVILS DE LYON",
"Center_Name": "Hôpital Croix-Rousse - Hospices Civils de Lyon",
"patients_count": 68,
"preincluded_count": 5,
"included_count": 62,
"prematurely_terminated_count": 1
},
{
"id": "74a05936-8fb6-4662-8e95-fd1c91621bf2",
"name": "GHU APHP SORBONNE UNIVERSITE SITE TENON",
"Center_Name": "GHU APHP - Hôpital Tenon",
"patients_count": 62,
"preincluded_count": 5,
"included_count": 56,
"prematurely_terminated_count": 1
},
{
"id": "76d2ebcd-5482-4c5d-8221-c94d1de7261e",
"name": "CENTRE HOSPITALIER ANNECY-GENEVOIS SITE ANNECY",
"Center_Name": "CH Annecy Genevois Site dAnnecy",
"patients_count": 60,
"preincluded_count": 0,
"included_count": 60,
"prematurely_terminated_count": 0
},
{
"id": "006740fa-696c-4ffb-8b77-7a60d0e23617",
"name": "HOPITAL PRIVÉ LE BOIS",
"Center_Name": "Hôpital Privé le Bois - Lille",
"patients_count": 60,
"preincluded_count": 1,
"included_count": 59,
"prematurely_terminated_count": 0
},
{
"id": "a4b3dfea-1220-4987-b287-f58fde1d0ee5",
"name": "CENTRE HOSPITALIER UNIVERSITAIRE COTE DE NACRE",
"Center_Name": "CHU de Caen",
"patients_count": 59,
"preincluded_count": 0,
"included_count": 59,
"prematurely_terminated_count": 0
},
{
"id": "4aef30cb-778b-409a-b6e2-898bfd91c850",
"name": "CENTRE HOSPITALIER GENERAL DE VALENCIENNES",
"Center_Name": "CH de Valenciennes",
"patients_count": 57,
"preincluded_count": 3,
"included_count": 54,
"prematurely_terminated_count": 0
},
{
"id": "f7d3526b-18d6-43af-b52c-5ca23bac798e",
"name": "CENTRE HOSPITALIER REGIONAL D ANGERS",
"Center_Name": "CHR dAngers",
"patients_count": 50,
"preincluded_count": 0,
"included_count": 50,
"prematurely_terminated_count": 0
},
{
"id": "1fd6c63b-d909-45d8-8c70-ecb12501c1d1",
"name": "HOPITAL DE HAUTEPIERRE",
"Center_Name": "CHRU Strasbourg - Hôpital de Hautepierre",
"patients_count": 44,
"preincluded_count": 2,
"included_count": 42,
"prematurely_terminated_count": 0
},
{
"id": "d17ddcc4-64db-4cf5-83c5-146f9a060254",
"name": "CENTRE HOSPITALIER DE CALAIS.",
"Center_Name": "CH de Calais",
"patients_count": 42,
"preincluded_count": 0,
"included_count": 42,
"prematurely_terminated_count": 0
},
{
"id": "f6665185-b1ae-4847-a378-652d35158cee",
"name": "CLINIQUE BELHARRA",
"Center_Name": "Clinique Belharra",
"patients_count": 40,
"preincluded_count": 0,
"included_count": 40,
"prematurely_terminated_count": 0
},
{
"id": "fe25553c-4894-4291-b303-c19d2a1c6f0f",
"name": "CHU SITE FELIX GUYON (SAINT DENIS)",
"Center_Name": "CHU la Réunion - Site Félix Guyon (SAINT DENIS)",
"patients_count": 39,
"preincluded_count": 6,
"included_count": 33,
"prematurely_terminated_count": 0
},
{
"id": "12daafee-970b-4781-9121-994d06e3a766",
"name": "CHU DE NICE HOPITAL DE L'ARCHET",
"Center_Name": "CHU Nice Archet",
"patients_count": 38,
"preincluded_count": 0,
"included_count": 38,
"prematurely_terminated_count": 0
},
{
"id": "f07a7374-d731-4fcf-86e9-2f36e5faf342",
"name": "CHU MONTPELLIER HOPITAL ARNAUD DE VILLENEUVE",
"Center_Name": "CHU Montpellier - Hôpital Arnaud de Villeneuve",
"patients_count": 38,
"preincluded_count": 0,
"included_count": 38,
"prematurely_terminated_count": 0
},
{
"id": "9c64545a-b622-4ef9-be0f-f5cc21b9cd66",
"name": "HOPITAL NORD - CHU DE GRENOBLE ALPES",
"Center_Name": "CHU de Grenoble - Hôpital Nord",
"patients_count": 36,
"preincluded_count": 0,
"included_count": 35,
"prematurely_terminated_count": 1
},
{
"id": "c03b88b5-3cd2-4336-9048-19c239baf5ec",
"name": "CHRU DE RENNES SITE HOPITAL SUD",
"Center_Name": "CHU Rennes",
"patients_count": 34,
"preincluded_count": 0,
"included_count": 34,
"prematurely_terminated_count": 0
},
{
"id": "b0ba921e-e24a-41c2-b769-a2aa108cdd58",
"name": "CENTRE HOSPITALIER LES ESCARTONS A BRIANCON",
"Center_Name": "CH des Escartons de Briançon",
"patients_count": 32,
"preincluded_count": 1,
"included_count": 31,
"prematurely_terminated_count": 0
},
{
"id": "b5f30dc5-da3f-4f8b-9a39-33f0fefb7196",
"name": "SCM RX TOULOUSE CLINIQUE PASTEUR",
"Center_Name": "Clinique Pasteur Toulouse",
"patients_count": 32,
"preincluded_count": 2,
"included_count": 30,
"prematurely_terminated_count": 0
},
{
"id": "817429dd-0d7c-4df9-ad70-2f19c205e05a",
"name": "CENTRE HOSPITALIER - FALCONAJA - BASTIA",
"Center_Name": "CH Bastia",
"patients_count": 29,
"preincluded_count": 4,
"included_count": 25,
"prematurely_terminated_count": 0
},
{
"id": "4f943b00-9306-418a-a853-1d97dff71172",
"name": "HOPITAL EUROPEEN",
"Center_Name": "Hôpital Européen Marseille",
"patients_count": 28,
"preincluded_count": 0,
"included_count": 28,
"prematurely_terminated_count": 0
},
{
"id": "002312ec-69fb-4582-9e8f-7c266e5479d2",
"name": "HOPITAL NORD - CHU DE SAINT-ETIENNE",
"Center_Name": "CHU de Saint-Étienne - Hôpital Nord",
"patients_count": 27,
"preincluded_count": 2,
"included_count": 25,
"prematurely_terminated_count": 0
},
{
"id": "0ce39aac-6b5a-418b-8430-c4432e6cd78f",
"name": "HOPITAL DE RANGUEIL CHU TOULOUSE",
"Center_Name": "CHU de Toulouse - Hôpital Rangueil",
"patients_count": 24,
"preincluded_count": 1,
"included_count": 23,
"prematurely_terminated_count": 0
},
{
"id": "8ef8564e-836c-4c03-b4ec-8e28fa76c3c0",
"name": "HOPITAL ESTAING - CHU CLERMONT-FERRAND",
"Center_Name": "CHU Clermont-Ferrand - Site Estaing",
"patients_count": 23,
"preincluded_count": 1,
"included_count": 22,
"prematurely_terminated_count": 0
},
{
"id": "546f981f-6f7d-40c8-9b97-a1a3c46e6674",
"name": "GROUPE HOSPITALIER DE LA REGION DE MULHOUSE ET SUD ALSACE",
"Center_Name": "GHR Mulhouse Sud Alsace",
"patients_count": 20,
"preincluded_count": 0,
"included_count": 20,
"prematurely_terminated_count": 0
},
{
"id": "eb9c561d-37b6-485c-b351-9e19515cb98d",
"name": "GROUPE HOSPITALIER PELLEGRIN - CHU",
"Center_Name": "CHU de Bordeaux - GH Pellegrin",
"patients_count": 20,
"preincluded_count": 0,
"included_count": 20,
"prematurely_terminated_count": 0
},
{
"id": "d1ef2ced-0206-4725-a08c-454d71e823ec",
"name": "HOPITAL DE LA MERE ET DE L'ENFANT",
"Center_Name": "CHU Limoges - Hôpital de la Mère et de l'Enfant",
"patients_count": 20,
"preincluded_count": 0,
"included_count": 20,
"prematurely_terminated_count": 0
},
{
"id": "7f43a297-b156-4fec-8ecf-d8d008b1a1d2",
"name": "HOPITAL PRIVE DIJON BOURGOGNE",
"Center_Name": "Centre Evidens - Hôpital privé Dijon Bourgogne",
"patients_count": 19,
"preincluded_count": 4,
"included_count": 15,
"prematurely_terminated_count": 0
},
{
"id": "d767fcd0-3f4c-4cdf-9cda-b829156d2f95",
"name": "HOPITAL PRIVE SUD CORSE",
"Center_Name": "Hôpital Privé Sud Corse",
"patients_count": 18,
"preincluded_count": 0,
"included_count": 18,
"prematurely_terminated_count": 0
},
{
"id": "58d5b536-b326-4713-9137-bb6f852df0be",
"name": "CENTRE HOSPITALIER METROPOLE SAVOIE - CHAMBERY NH",
"Center_Name": "CH Métropole Savoie - Site Chambéry",
"patients_count": 16,
"preincluded_count": 0,
"included_count": 16,
"prematurely_terminated_count": 0
},
{
"id": "b4b35661-87c8-4333-bfb1-3ce4f1c77565",
"name": "CENTRE HOSPITALIER REGIONAL UNIVERSITAIRE BRETONNEAU",
"Center_Name": "CHRU Bretonneau",
"patients_count": 16,
"preincluded_count": 2,
"included_count": 14,
"prematurely_terminated_count": 0
},
{
"id": "454313d9-c624-43de-a8e3-84989d526403",
"name": "CLINIQUE MUTUALISTE LA SAGESSE RENNES",
"Center_Name": "Clinique la Sagesse - Rennes",
"patients_count": 15,
"preincluded_count": 0,
"included_count": 15,
"prematurely_terminated_count": 0
},
{
"id": "d981c078-189e-4831-a063-778733f7e582",
"name": "HOPITAL FOCH",
"Center_Name": "Hôpital Foch",
"patients_count": 15,
"preincluded_count": 1,
"included_count": 12,
"prematurely_terminated_count": 0
},
{
"id": "940c8425-fe53-45ac-a750-3e195df990e3",
"name": "HOPITAL PRIVE D'EURE ET LOIR",
"Center_Name": "Hôpital Privé d'Eure et Loir",
"patients_count": 14,
"preincluded_count": 1,
"included_count": 13,
"prematurely_terminated_count": 0
},
{
"id": "98cbbefe-920a-495a-981d-02093bd2253d",
"name": "CHU LA MILETRIE",
"Center_Name": "CHU de Poitiers La Miletrie",
"patients_count": 13,
"preincluded_count": 0,
"included_count": 13,
"prematurely_terminated_count": 0
},
{
"id": "38e9ef8a-5073-471a-a3df-14d834db2d12",
"name": "GHBS-SITE HÔPITAL DU SCORFF",
"Center_Name": "Groupe Hospitalier Bretagne Sud Lorient - GHBS - Lorient (SCORFF)",
"patients_count": 13,
"preincluded_count": 0,
"included_count": 13,
"prematurely_terminated_count": 0
},
{
"id": "6316db1a-4a90-4e45-a518-0095d63f7c36",
"name": "HOPITAL LE BOCAGE CHRU DIJON",
"Center_Name": "CHU Dijon",
"patients_count": 12,
"preincluded_count": 1,
"included_count": 10,
"prematurely_terminated_count": 1
},
{
"id": "f790c171-9523-48b6-a246-fdb26628eb6c",
"name": "CHRU NANCY - MATERNITE",
"Center_Name": "CHRU de Nancy - Maternité",
"patients_count": 11,
"preincluded_count": 1,
"included_count": 10,
"prematurely_terminated_count": 0
},
{
"id": "7b8c5362-7c7a-4d93-8b12-58b8e56020d1",
"name": "HOPITAL JACQUES MONOD CH LE HAVRE",
"Center_Name": "GH du Havre - Hôpital Jacques Monod",
"patients_count": 11,
"preincluded_count": 0,
"included_count": 11,
"prematurely_terminated_count": 0
},
{
"id": "6953af68-e30e-437f-93cf-19ed0932c350",
"name": "CHRU D'ORLEANS - HOPITAL DE LA SOURCE",
"Center_Name": "CHU d'Orléans",
"patients_count": 10,
"preincluded_count": 0,
"included_count": 10,
"prematurely_terminated_count": 0
},
{
"id": "f13560a8-3bf6-4322-bdae-332ee3bf0366",
"name": "POLYCLINIQUE JEAN VILLAR",
"Center_Name": "Polyclinique Jean Villar",
"patients_count": 10,
"preincluded_count": 0,
"included_count": 10,
"prematurely_terminated_count": 0
},
{
"id": "da67fb6e-2ccc-4994-8fde-cc2ee2a8e9ca",
"name": "GHU AP-HP UNIVERSITE PARIS SACLAY SITE KREMLIN BICETRE",
"Center_Name": "GHU APHP - Hôpital Bicêtre",
"patients_count": 9,
"preincluded_count": 0,
"included_count": 7,
"prematurely_terminated_count": 0
},
{
"id": "56f427f0-be35-493b-8049-46b747c0105e",
"name": "CHU AMIENS SUD",
"Center_Name": "CHU Amiens Sud",
"patients_count": 7,
"preincluded_count": 3,
"included_count": 4,
"prematurely_terminated_count": 0
},
{
"id": "f784ee6f-27b5-4afe-ba23-4f839d96535c",
"name": "APHM HOPITAL NORD",
"Center_Name": "APHM Hôpital Nord",
"patients_count": 5,
"preincluded_count": 0,
"included_count": 5,
"prematurely_terminated_count": 0
},
{
"id": "1ac60b10-08de-4639-9a49-67167f85844e",
"name": "CENTRE HOSPITALIER DE LENS",
"Center_Name": "CH de Lens",
"patients_count": 5,
"preincluded_count": 2,
"included_count": 3,
"prematurely_terminated_count": 0
},
{
"id": "9ba321be-65d0-4767-9865-a547905e647e",
"name": "HOPITAL DE LA CROIX SAINT SIMON",
"Center_Name": "GH Diaconesses Croix Saint-Simon",
"patients_count": 5,
"preincluded_count": 1,
"included_count": 4,
"prematurely_terminated_count": 0
},
{
"id": "cab5b1e9-d93a-46eb-ae35-a449ea719c65",
"name": "GRAND HOSP EST FRANCILIEN MARNE LA VALLEE SITE JOSSIGNY",
"Center_Name": "Grand Hôpital de l'Est Francilien - Site de Marne-la-Vallée",
"patients_count": 4,
"preincluded_count": 0,
"included_count": 4,
"prematurely_terminated_count": 0
},
{
"id": "96519108-b0b2-4a5f-999f-cccc4e4059c9",
"name": "CHU DE NANTES SITE HOTEL DIEU HOPITAL MERE ENFANT",
"Center_Name": "CHU de Nantes - Site Hôtel Dieu Hôpital Mère Enfant",
"patients_count": 3,
"preincluded_count": 0,
"included_count": 3,
"prematurely_terminated_count": 0
},
{
"id": "fe7548b7-75a1-4e13-97a9-6dc865b04b25",
"name": "CHU SITE SUD ( SAINT PIERRE)",
"Center_Name": "CHU la Réunion - Site Sud (SAINT PIERRE)",
"patients_count": 3,
"preincluded_count": 0,
"included_count": 3,
"prematurely_terminated_count": 0
},
{
"id": "e68c76de-33e8-49e3-978d-c5fb408e7fd5",
"name": "CLINIQUE AXIUM",
"Center_Name": "Clinique Axium",
"patients_count": 3,
"preincluded_count": 0,
"included_count": 3,
"prematurely_terminated_count": 0
},
{
"id": "af09eaa0-7e08-48e3-990c-24ca2fbc3fdc",
"name": "SCP GYNECOLOGIE RIVE GAUCHE",
"Center_Name": "SCP Gynécologie Clinique Rive Gauche",
"patients_count": 3,
"preincluded_count": 0,
"included_count": 3,
"prematurely_terminated_count": 0
},
{
"id": "0466558d-077c-4a51-9d25-2e15e00fabaf",
"name": "CENTRE HOSPITALIER DE CANNES SIMONE VEIL",
"Center_Name": "CH de Cannes Simone Veil",
"patients_count": 2,
"preincluded_count": 0,
"included_count": 2,
"prematurely_terminated_count": 0
},
{
"id": "aa3e8684-07e0-45d9-9cee-144df2e4b430",
"name": "CENTRE HOSPITALIER DE PAU",
"Center_Name": "CH de Pau",
"patients_count": 2,
"preincluded_count": 0,
"included_count": 2,
"prematurely_terminated_count": 0
},
{
"id": "13306b61-7ea6-4d60-b89c-b0df2d9d1605",
"name": "CENTRE HOSPITALIER VICTOR PROVO ROUBAIX",
"Center_Name": "CH Victor Provo Roubaix",
"patients_count": 2,
"preincluded_count": 0,
"included_count": 2,
"prematurely_terminated_count": 0
},
{
"id": "8c27716f-edfe-4a4e-9189-09f39cc64395",
"name": "CHI DE MONT DE MARSAN ET DU PAYS DES SOURCES",
"Center_Name": "CHI Mont de Marsan",
"patients_count": 2,
"preincluded_count": 0,
"included_count": 2,
"prematurely_terminated_count": 0
},
{
"id": "b74c365a-fc63-4763-b57d-abb609debd3b",
"name": "CTRE HOSPITALIER INTERCOMMUNAL POISSY ST GERMAIN SITE POISSY",
"Center_Name": "CHI Poissy St Germain en Laye - Site Poissy",
"patients_count": 2,
"preincluded_count": 1,
"included_count": 1,
"prematurely_terminated_count": 0
},
{
"id": "4d271322-7945-42e8-801b-a3b25fc570be",
"name": "GROUPE HOSPITALIER PARIS SAINT JOSEPH",
"Center_Name": "Groupe Hospitalier Paris Saint-Joseph",
"patients_count": 2,
"preincluded_count": 0,
"included_count": 2,
"prematurely_terminated_count": 0
},
{
"id": "d82d64eb-a1cf-4635-a99f-23def12c7cb5",
"name": "CHRU BREST SITE HOPITAL MORVAN",
"Center_Name": "CHRU Brest - Site Hôpital Morvan",
"patients_count": 1,
"preincluded_count": 0,
"included_count": 1,
"prematurely_terminated_count": 0
},
{
"id": "a47dc8c0-dfea-4a4c-9bcc-1370616ff9c8",
"name": "CHU DE MARTINIQUE SITE MFME",
"Center_Name": "CHU de Martinique - Site MFME",
"patients_count": 1,
"preincluded_count": 0,
"included_count": 1,
"prematurely_terminated_count": 0
},
{
"id": "384d3b28-f33e-43a6-9043-394aa88aead7",
"name": "CLINIQUE BOUCHARD",
"Center_Name": "Clinique Bouchard - Marseille",
"patients_count": 1,
"preincluded_count": 0,
"included_count": 1,
"prematurely_terminated_count": 0
},
{
"id": "0f78459f-b598-4faa-81a1-085a439e8c0e",
"name": "HOPITAUX PRIVES ROUENNAIS MATHILDE",
"Center_Name": "Hôpitaux Privés Rouennais - Mathilde",
"patients_count": 1,
"preincluded_count": 0,
"included_count": 1,
"prematurely_terminated_count": 0
},
{
"id": "02e42e01-56ab-418d-95df-cb53a7ef17b3",
"name": "APHM HOPITAL DE LA CONCEPTION",
"Center_Name": "APHM Hôpital de la Conception",
"patients_count": 0,
"preincluded_count": 0,
"included_count": 0,
"prematurely_terminated_count": 0
},
{
"id": "2ba1f179-425e-4d88-97a7-88a097e639ab",
"name": "CENTRE HOSPITALIER DE CAYENNE",
"Center_Name": "CHU de Guyane - Site de Cayenne",
"patients_count": 0,
"preincluded_count": 0,
"included_count": 0,
"prematurely_terminated_count": 0
},
{
"id": "3e8887e1-7608-40a6-b6f5-87c6fa5a0bd0",
"name": "CENTRE HOSPITALIER DE VERSAILLES ANDRE MIGNOT",
"Center_Name": "CH de Versailles",
"patients_count": 0,
"preincluded_count": 0,
"included_count": 0,
"prematurely_terminated_count": 0
},
{
"id": "6af3784d-5d57-47c3-b924-0d13008ebd88",
"name": "CENTRE HOSPITALIER UNIVERSITAIRE DE POINTE-A-PITRE",
"Center_Name": "CHU de Guadeloupe - Pointe-à-Pitre",
"patients_count": 0,
"preincluded_count": 0,
"included_count": 0,
"prematurely_terminated_count": 0
},
{
"id": "aa6af654-2cf2-4714-885d-a0e40b6f6f0a",
"name": "CHR METZ - THIONVILLE - HOPITAL DE MERCY",
"Center_Name": "CHR Metz - Thionville - Hôpital de Mercy",
"patients_count": 0,
"preincluded_count": 0,
"included_count": 0,
"prematurely_terminated_count": 0
},
{
"id": "8441f339-4dd3-4c8c-bd2d-7751dc7fe43b",
"name": "CLINIQUE DU TERTRE ROUGE - POLE SANTE SUD",
"Center_Name": "Clinique du Tertre Rouge - Pôle Santé Sud",
"patients_count": 0,
"preincluded_count": 0,
"included_count": 0,
"prematurely_terminated_count": 0
},
{
"id": "09c785f2-3deb-4a4a-a1a8-adbca5b767d7",
"name": "GHU APHP CENTRE-UNIVERSITE PARIS CITE SITE COCHIN PORT ROYAL",
"Center_Name": "APHP Site Cochin",
"patients_count": 0,
"preincluded_count": 0,
"included_count": 0,
"prematurely_terminated_count": 0
},
{
"id": "5847c4fa-4025-4303-80eb-deaa07b80c0b",
"name": "GHU APHP SORBONNE UNIVERSITE SITE PITIE SALPETRIERE",
"Center_Name": "APHP Site Pitié Salpêtriere",
"patients_count": 0,
"preincluded_count": 0,
"included_count": 0,
"prematurely_terminated_count": 0
},
{
"id": "dacc94bd-89b0-4cc4-b334-f684360abbe5",
"name": "HOPITAL PRIVE D ANTONY",
"Center_Name": "Hôpital Privé d'Antony",
"patients_count": 0,
"preincluded_count": 0,
"included_count": 0,
"prematurely_terminated_count": 0
}
]