CLIILogiciel

Intégration, API et interopérabilité

API v1 · OpenAPI 3.1 · REST + OAuth 2 · HL7 v2.x · FHIR R4

Nos modules exposent une API REST sécurisée et des connecteurs HL7 / FHIR. Une sandbox est disponible pour vos équipes.

API REST

Authentification OAuth 2, documentation OpenAPI, webhooks sur les événements clés.

HL7 / FHIR

Messages ADT, ORM, ORU et ressources FHIR R4 pour le dialogue avec le SIH.

Sandbox

Un environnement de test avec des données fictives pour développer sans risque.

Accompagnement

Cadrage, développement de connecteurs spécifiques et recette avec vos équipes.

Authentification

Deux mécanismes selon le contexte : OAuth 2 client credentials pour les appels serveur à serveur, Pro Santé Connect (OpenID Connect) pour agir au nom d’un professionnel avec sa carte CPS ou son e-CPS. Le jeton porte les périmètres (dmp:write, mssante:send…).

Obtenir un jetoncURL
curl -X POST https://api.clii.example/oauth/token \
  -d grant_type=client_credentials \
  -d client_id=$CLIENT_ID -d client_secret=$CLIENT_SECRET \
  -d scope="ins:read dmp:write mssante:send"

Endpoints

MéthodeEndpointDescriptionModule
POST/v1/ins/qualifierRécupérer et qualifier l’INS (INSi)mod_insi
POST/v1/dmp/documentsDéposer un document CDA dans le DMPmod_dmp_alimentation
GET/v1/dmp/patients/{ins}/documentsLister les documents du DMPmod_dmp_consultation
GET/v1/dmp/documents/{id}Télécharger un document (CDA ou PDF)mod_dmp_consultation
POST/v1/dmp/patients/{ins}/autorisationRecueillir l’autorisation d’accèsmod_dmp_gestion
POST/v1/mssante/messagesEnvoyer un document par MSSantémod_mssante
GET/v1/mssante/inboxLire les documents reçus, rapprochés par INSmod_mssante
POST/v1/ordonnancesCréer une ordonnance numériquemod_ordonnance_numerique
POST/v1/fseCréer et signer une FSEmod_fse
GET/v1/patients/{ins}/droitsDroits AMO / AMC (ADRi)mod_adri
GET/v1/fluxÉtat des flux et alertesmod_supervision_des_flux

Exemple : déposer un compte rendu dans le DMP

Le patient doit avoir une INS qualifiée et une autorisation d’accès recueillie. Le document est fourni en CDA-R2, ou en JSON structuré si vous utilisez le générateur CI-SIS.

POST /v1/dmp/documents
curl -X POST https://api.clii.example/v1/dmp/documents \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{ "ins": "1 85 03 75 116 001 42", "type": "CR-CONSULT",
       "title": "Compte rendu de consultation", "cda": "<ClinicalDocument…>",
       "visible_patient": true }'

Webhooks

Chaque événement est envoyé en POST JSON, signé (X-Clii-Signature, HMAC-SHA256) et rejoué pendant 24 h en cas d’échec.

dmp.document.depositedDocument déposé dans le DMP
dmp.document.rejectedDépôt refusé (habilitation, INS non qualifiée, CDA invalide)
mssante.message.receivedNouveau document reçu par MSSanté
ins.qualifiedINS qualifiée pour un patient
fse.noemie.receivedRetour NOEMIE intégré
ordonnance.dispensedOrdonnance délivrée en pharmacie
Exemple de payloadJSON
{ "event": "dmp.document.deposited", "id": "evt_9c1…",
  "data": { "document": "doc_01j9x…", "ins": "1 85 03 75 116 001 42", "type": "CR-CONSULT" },
  "occurred_at": "2026-09-23T10:12:05Z" }

HL7 / FHIR

Pour les établissements, les modules s’alimentent directement depuis le SIH : un connecteur écoute les messages HL7 v2 (MLLP) ou expose un serveur FHIR R4.

ADT^A04 / A08Admission, mise à jour patient → qualification INS
ORU^R01Résultats → document CDA → DMP
MDM^T02Compte rendu → DMP + MSSanté
FHIR PatientIdentité et INS
FHIR DocumentReferenceDocuments DMP en lecture / écriture

Environnements

Sandboxhttps://sandbox.api.clii.exampleDonnées fictives, DMP de test, MSSanté de test
Recettehttps://staging.api.clii.exampleVos données de recette, environnements ANS de test
Productionhttps://api.clii.exampleEnvironnements réels, certificats de production

Codes d’erreur

400invalid_cdaLe document ne respecte pas le CI-SIS (détail dans errors[])
401unauthorizedJeton absent, expiré ou périmètre insuffisant
403ins_not_qualifiedL’INS du patient n’est pas qualifiée : appeler /v1/ins/qualifier
403dmp_no_authorizationAutorisation d’accès au DMP non recueillie
404dmp_not_foundLe patient n’a pas de DMP actif
429rate_limitedQuota dépassé, réessayer après Retry-After
503upstream_unavailableService national indisponible, dépôt mis en file