API de chargement de patients

Chargez des dossiers patients directement dans votre espace Arkangel via API

par Arkangel AI Team•2 min de lecture

L'API de chargement de patients permet aux établissements d'envoyer des dossiers patients directement dans leur espace Arkangel de façon programmatique, sans intervention manuelle. Une fois chargés, les fichiers sont traités automatiquement et les résultats apparaissent dans l'espace Pandora de votre équipe.

Prérequis

Contactez Arkangel pour obtenir :

  • Clé API — utilisée pour authentifier chaque requête
  • Team ID — identifie votre organisation au sein d'Arkangel

Formats supportés

Format Description Notes
PDF Dossiers cliniques, comptes-rendus de sortie, rapports de laboratoire 1 fichier = 1 patient
TXT Notes cliniques en texte brut 1 fichier = 1 patient
CSV Données structurées de patients ou d'événements Voir format CSV ci-dessous

Taille maximale par fichier : 3 Mo.

Format CSV

Les fichiers CSV doivent avoir patient_id comme en-tête de la première colonne. L'en-tête de la deuxième colonne détermine le type de fichier :

Fichier patients (1 ligne = 1 patient)

La deuxième colonne peut être quelconque ou absente.

patient_id,nom,date_naissance,diagnostic
p-001,Marie Dupont,1980-03-12,BPCO
p-002,Jean Martin,1975-07-22,Asthme

Fichier événements (plusieurs lignes = 1 patient)

La deuxième colonne doit s'appeler event_id. Toutes les lignes ayant le même patient_id sont regroupées en un seul dossier patient.

patient_id,event_id,date,type_evenement,valeur,unite
p-001,e-001,2026-01-10,SpO2,94,%
p-001,e-002,2026-01-10,frequence_cardiaque,88,bpm
p-002,e-001,2026-01-11,SpO2,97,%

Charger un fichier

Endpoint

POST /api/pandora/upload-v2/upload

En-têtes

Authorization: Bearer votre_cle_api

Champs du formulaire

Champ Requis Description
file Oui Le fichier à charger (PDF, TXT ou CSV)
teamId Oui Votre Team ID
groupId Oui ID du groupe Pandora dans lequel ajouter les patients
anonymize Non Envoyez true pour anonymiser les dossiers après extraction (par défaut : false)

Requête

curl -X POST https://api.arkangel.ai/api/pandora/upload-v2/upload \
  -H "Authorization: Bearer votre_cle_api" \
  -F "file=@patients.csv" \
  -F "teamId=votre_team_id" \
  -F "groupId=votre_group_id" \
  -F "anonymize=false"

Exemple JavaScript

const formData = new FormData();
formData.append('file', file);
formData.append('teamId', 'votre_team_id');
formData.append('groupId', 'votre_group_id');
formData.append('anonymize', 'false');

const response = await fetch('https://api.arkangel.ai/api/pandora/upload-v2/upload', {
  method: 'POST',
  headers: {
    'Authorization': 'Bearer votre_cle_api'
  },
  body: formData
});

const result = await response.json();

Réponse

{
  "success": true,
  "patientCount": 3
}

patientCount indique le nombre de patients ingérés avec succès. Pour PDF et TXT c'est toujours 1. Pour CSV cela correspond au nombre de lignes (fichier patients) ou de valeurs uniques de patient_id (fichier événements).

Si certains patients n'ont pas pu être ingérés en raison d'une erreur de stockage, expectedCount est également retourné pour détecter l'écart et resoumettre les lignes manquantes :

{
  "success": true,
  "patientCount": 2,
  "expectedCount": 3
}

Gestion des erreurs

Code Erreur Description
400 invalid_file_type Format de fichier non supporté
400 file_too_large Le fichier dépasse la limite de 3 Mo
400 invalid_csv_format La première colonne n'est pas patient_id
400 missing_patient_id Une ou plusieurs lignes ont un patient_id vide
401 unauthorized Clé API absente ou invalide
403 forbidden La clé API n'a pas accès à cette équipe
413 payload_too_large Le corps de la requête dépasse la limite du serveur
500 internal_error Erreur serveur inattendue — contactez le support

Résultat

Aucun appel supplémentaire n'est nécessaire. Une fois chargées, les données des patients sont traitées et disponibles automatiquement dans l'espace Pandora de votre équipe.

Étapes suivantes