ApiBorne
Sommaire du guide

Contenu d'un document (aperçu)

Le patient vient de scanner son ordonnance : la page de synthèse de la borne lui propose « Voir » pour vérifier ce qui a été déposé. Cette route sert les pages du document — c'est la seule route optionnelle du contrat.

GET/appointments/{appointmentId}/documents/{documentId}/content
Base : {editorBaseUrl}/api/apiborneIntegrationService/v1Auth : X-Kiosk-Auth-Key + X-Kiosk-Device-IdRoute optionnelle

Pourquoi cette route existe

Après un dépôt, la borne affiche une synthèse du dossier documentaire. Pour que le patient puisse vérifier son scan (page floue, mauvais document) avant de valider, elle lui propose un aperçu — et pour cela, elle doit relire le document chez vous. La symétrie avec l'upload est volontaire : même encodage, même découpage en pages.

Une route optionnelle

C'est la seule route optionnelle des routes de communication (contrat 1.1). Un éditeur qui ne sert pas les contenus implémente la forme minimale conforme : 404 UNKNOWN_DOCUMENT systématique. La borne dégrade proprement en masquant le bouton « Voir » — aucune erreur affichée au patient, rien à déclarer dans la configuration ApiBorne.

Sémantique

  • documentId est l'identifiant renvoyé par la liste (documents[].id) ou par l'upload (documentId). Inconnu, ou rattaché à un autre RDV → 404 UNKNOWN_DOCUMENT ;
  • les pages sont renvoyées dans l'ordre de lecture, encodées en base64 sans préfixe data: ;
  • mimeType ∈ image/jpeg, image/png, application/pdf : vous êtes libre de votre stockage — les images telles qu'uploadées, ou une page unique PDF si vous avez converti le document ;
  • la route est authentifiée par les headers habituels : elle ne doit pas reposer sur un jeton à usage unique dans l'URL, un aperçu peut être rechargé plusieurs fois ;
  • documents[].pageCount et documents[].mimeType de la liste sont indicatifs : la borne se fie au contenu réellement renvoyé ici.

Requête et réponse

bash
curl -sS "$BASE/appointments/apt-1001/documents/doc-15/content" "${AUTH[@]}"
200
{
  "pages": [
    { "contentBase64": "/9j/4AAQSkZJRg…", "mimeType": "image/jpeg" },
    { "contentBase64": "/9j/4AAQSkZJRg…", "mimeType": "image/jpeg" }
  ]
}

Implémentation de référence

src/app/api/apiborneIntegrationService/v1/appointments/[appointmentId]/documents/[documentId]/content/route.ts → — relit les pages stockées à l'upload, vérifie l'appartenance du document au RDV, 404 typé sinon.