ApiBorne
Sommaire du guide

Téléverser un document

La borne scanne les documents du patient et vous les envoie page par page : images JPEG/PNG encodées en base64, dans l'ordre de lecture. Le stockage (PDF, compression…) est libre.

POST/appointments/{appointmentId}/documents
Base : {editorBaseUrl}/api/apiborneIntegrationService/v1Auth : X-Kiosk-Auth-Key + X-Kiosk-Device-IdRoute obligatoire

Pourquoi cette route existe

Le scanner de la borne ne sert à rien si les pages ne rejoignent pas le dossier chez vous : cette route reçoit chaque document que le patient numérise et le classe dans le dossier du RDV — ordonnance, carte mutuelle, questionnaire… Le dossier est ainsi complet avant l'installation en salle d'attente, au lieu d'être rattrapé au guichet ou en salle.

Route obligatoire — mais si vous servez des listes de documents requis vides (pas de gestion documentaire), la borne ne la sollicite jamais.

Sémantique

  • Pages en base64 sans préfixe data:, MIME image/jpeg ou image/png ;
  • rotationAngle est une indication de rotation (sens horaire) — vous pouvez l'ignorer ;
  • analysis.prescriberProposals (optionnel) : prévu par le contrat pour proposer des prescripteurs extraits de l'ordonnance — voir la note ci-dessous ;
  • remplacement d'un document : la borne fait DELETE de l'ancien puis POST du nouveau.

Requête et réponse

bash
curl -sS "$BASE/appointments/apt-1001/documents" "${AUTH[@]}" -d '{
  "documentType": "prescription",
  "rotationAngle": 0,
  "pages": [ { "contentBase64": "/9j/4AAQSkZJRg…", "mimeType": "image/jpeg" } ]
}'
# → 201 { "documentId": "doc-16",
#          "analysis": { "prescriberProposals": [ { "name": "MARTIN Paul", "rppsId": "10101010101" } ] } }

Points d'attention

Taille et délai : vous devez accepter au moins 10 Mo de corps de requête (413 UPLOAD_TOO_LARGE au-delà de votre limite) et répondre en moins de 60 secondes (timeout borne). Pensez à la limite de votre reverse proxy : un JSON base64 de 3 pages photo fait vite 5 à 8 Mo.
Analyse d'ordonnance : le flux analysis n'est pas activé pour les intégrations libres à ce stade — la borne ne sollicite pas l'analyse et vous n'avez rien à implémenter (l'IA a vocation à être portée par ApiBorne). Omettez simplement analysis dans votre réponse.

Implémentation de référence

src/app/api/apiborneIntegrationService/v1/appointments/[appointmentId]/documents/route.ts — validation des pages, cap de taille, et une analyse d'ordonnance factice qui exerce le sélecteur de prescripteur de la borne.