Référence de l’API partenaires
Documents
Lire les documents du dossier d'un animal ou d'une consultation (comptes rendus, ordonnances, certificats, fichiers déposés…), les télécharger, et déposer un PDF (compte rendu de laboratoire, d'imagerie…) dans le dossier d'un animal. Un document déposé par l'API naît interne : c'est la clinique qui décide de le montrer au propriétaire. Seuls les documents des sites ouverts à l'application sont visibles ; un autre répond 404, jamais 403. Aucun antivirus n'analyse les fichiers déposés : seuls le type déclaré et la signature PDF des octets sont vérifiés.
Lister les documents d'une consultation
GET/api/partner/v1/consultations/{id}/documents#
Rend les documents rattachés à la consultation et situés sur un site ouvert à l'application, en une seule page (nextCursor vaut toujours null). Métadonnées seulement : le contenu se télécharge par GET /documents/{id}/download.
Paramètres
| idchemin · uuidrequis | Identifiant de la consultation. |
Réponse
200Les documents de la consultation.
Champs de la réponse (2)
| itemsDocument[] | |
| iduuid | Identifiant du document. |
| siteIduuid | Site du document. |
| patientIduuid | Animal du document. Nul pour un document du seul dossier client. peut être null |
| consultationIduuid | Consultation à laquelle le document est rattaché, s'il l'est. peut être null |
| typeenum | Nature : synthèse, ordonnance, facture, certificat, dossier médical, carnet de vaccination, devis, consentement, bon de livraison, fichier déposé ( SUMMARYPRESCRIPTIONINVOICECERTIFICATEMEDICAL_RECORDVACCINATION_CARDQUOTECONSENT_FORMDELIVERY_NOTEUPLOADCREDIT_NOTEHOSPITALIZATION_REPORTCONSULTATION_REPORT |
| categoryenum | Rubrique du dossier : imagerie, chirurgie, certificats, consentements, information, résultats de laboratoire, administratif, autre. IMAGERIECHIRURGIECERTIFICATSCONSENTEMENTSINFORMATIONRESULTATS_LABOADMINISTRATIFAUTREpeut être null |
| titlestring | Titre du document. peut être null |
| statusenum |
GENERATEDDRAFTVALIDATEDSIGNEDSENT |
| visibilityenum |
INTERNALOWNERASV_ONLY |
| createdAtdate-time | Date de création ou de dépôt. |
| updatedAtdate-time | Dernière modification. peut être null |
| validatedAtdate-time | Date de validation, s'il a été validé. peut être null |
| signedAtdate-time | Date de signature, s'il a été signé. peut être null |
| nextCursorstring | Curseur opaque de la page suivante, à repasser tel quel dans |
Erreurs propres à cette opération
| 404 CONSULTATION_NOT_FOUND | Consultation inconnue, d'une autre organisation ou d'un site non ouvert à l'application. |
Et les erreurs communes à toutes les opérations : erreurs et limites.
Lire les métadonnées d'un document
GET/api/partner/v1/documents/{id}#
Rend les métadonnées d'un document d'un site ouvert à l'application : nature, rubrique, titre, statut, visibilité, dates. Jamais son contenu ni ses notes internes : le contenu se télécharge par GET /documents/{id}/download.
Paramètres
| idchemin · uuidrequis | Identifiant du document. |
Réponse
200Le document.
Champs de la réponse (13)
| iduuid | Identifiant du document. |
| siteIduuid | Site du document. |
| patientIduuid | Animal du document. Nul pour un document du seul dossier client. peut être null |
| consultationIduuid | Consultation à laquelle le document est rattaché, s'il l'est. peut être null |
| typeenum | Nature : synthèse, ordonnance, facture, certificat, dossier médical, carnet de vaccination, devis, consentement, bon de livraison, fichier déposé ( SUMMARYPRESCRIPTIONINVOICECERTIFICATEMEDICAL_RECORDVACCINATION_CARDQUOTECONSENT_FORMDELIVERY_NOTEUPLOADCREDIT_NOTEHOSPITALIZATION_REPORTCONSULTATION_REPORT |
| categoryenum | Rubrique du dossier : imagerie, chirurgie, certificats, consentements, information, résultats de laboratoire, administratif, autre. IMAGERIECHIRURGIECERTIFICATSCONSENTEMENTSINFORMATIONRESULTATS_LABOADMINISTRATIFAUTREpeut être null |
| titlestring | Titre du document. peut être null |
| statusenum |
GENERATEDDRAFTVALIDATEDSIGNEDSENT |
| visibilityenum |
INTERNALOWNERASV_ONLY |
| createdAtdate-time | Date de création ou de dépôt. |
| updatedAtdate-time | Dernière modification. peut être null |
| validatedAtdate-time | Date de validation, s'il a été validé. peut être null |
| signedAtdate-time | Date de signature, s'il a été signé. peut être null |
Erreurs propres à cette opération
| 404 DOCUMENT_NOT_FOUND | Document inconnu, d'une autre organisation ou d'un site non ouvert à l'application. |
Et les erreurs communes à toutes les opérations : erreurs et limites.
Télécharger le contenu d'un document
GET/api/partner/v1/documents/{id}/content#
Rend les octets du document, après le même contrôle du site à chaque appel. Un fichier déposé est rendu avec son propre type (application/pdf pour tout dépôt par l'API ; une image ou un autre fichier déposé par la clinique garde le sien). Un document composé dans Treats est rendu en PDF à la demande. En-têtes Content-Disposition: attachment (nom d'origine d'un fichier déposé ; titre suivi de .pdf pour un document composé) et Cache-Control: private, no-store : ne pas mettre ce contenu en cache partagé. C'est l'adresse que rend GET /documents/{id}/download quand requiresAuthorization vaut true.
Paramètres
| idchemin · uuidrequis | Identifiant du document. |
Réponse
200Le contenu du document (PDF le plus souvent ; le type d'origine pour un fichier déposé par la clinique). · fichier application/pdf
Erreurs propres à cette opération
| 404 DOCUMENT_NOT_FOUND | Document inconnu, d'une autre organisation ou d'un site non ouvert à l'application. |
Et les erreurs communes à toutes les opérations : erreurs et limites.
Obtenir l'adresse de téléchargement d'un document
GET/api/partner/v1/documents/{id}/download#
Rend l'adresse où télécharger le contenu du document, produite seulement après le contrôle du site. Pour un fichier stocké, en production : une adresse pré-signée du stockage, valable 15 minutes, à suivre SANS en-tête d'autorisation (requiresAuthorization: false). Pour un document composé dans Treats (compte rendu, ordonnance… rendus en PDF à la demande), ou si le stockage ne pré-signe pas : la route GET /documents/{id}/content de l'API, à appeler avec le jeton (requiresAuthorization: true). Lire requiresAuthorization plutôt que de deviner à l'adresse. Une adresse pré-signée expirée se redemande ici.
Paramètres
| idchemin · uuidrequis | Identifiant du document. |
Réponse
200L'adresse de téléchargement.
Champs de la réponse (3)
| urlstring | Adresse du contenu. |
| expiresAtdate-time | Fin de validité de l'adresse pré-signée (15 minutes après l'appel). Nulle pour la route de l'API, qui ne périme pas. peut être null |
| requiresAuthorizationboolean |
|
Erreurs propres à cette opération
| 404 DOCUMENT_NOT_FOUND | Document inconnu, d'une autre organisation ou d'un site non ouvert à l'application. |
Et les erreurs communes à toutes les opérations : erreurs et limites.
Lister les documents d'un animal
GET/api/partner/v1/patients/{id}/documents#
Rend les documents du dossier de l'animal situés sur un site ouvert à l'application, en une seule page (nextCursor vaut toujours null). Le dossier d'un animal est commun aux sites de l'organisation : un document d'un site non ouvert n'est pas rendu. Métadonnées seulement : le contenu se télécharge par GET /documents/{id}/download.
Paramètres
| idchemin · uuidrequis | Identifiant de l'animal. |
Réponse
200Les documents de l'animal.
Champs de la réponse (2)
| itemsDocument[] | |
| iduuid | Identifiant du document. |
| siteIduuid | Site du document. |
| patientIduuid | Animal du document. Nul pour un document du seul dossier client. peut être null |
| consultationIduuid | Consultation à laquelle le document est rattaché, s'il l'est. peut être null |
| typeenum | Nature : synthèse, ordonnance, facture, certificat, dossier médical, carnet de vaccination, devis, consentement, bon de livraison, fichier déposé ( SUMMARYPRESCRIPTIONINVOICECERTIFICATEMEDICAL_RECORDVACCINATION_CARDQUOTECONSENT_FORMDELIVERY_NOTEUPLOADCREDIT_NOTEHOSPITALIZATION_REPORTCONSULTATION_REPORT |
| categoryenum | Rubrique du dossier : imagerie, chirurgie, certificats, consentements, information, résultats de laboratoire, administratif, autre. IMAGERIECHIRURGIECERTIFICATSCONSENTEMENTSINFORMATIONRESULTATS_LABOADMINISTRATIFAUTREpeut être null |
| titlestring | Titre du document. peut être null |
| statusenum |
GENERATEDDRAFTVALIDATEDSIGNEDSENT |
| visibilityenum |
INTERNALOWNERASV_ONLY |
| createdAtdate-time | Date de création ou de dépôt. |
| updatedAtdate-time | Dernière modification. peut être null |
| validatedAtdate-time | Date de validation, s'il a été validé. peut être null |
| signedAtdate-time | Date de signature, s'il a été signé. peut être null |
| nextCursorstring | Curseur opaque de la page suivante, à repasser tel quel dans |
Erreurs propres à cette opération
| 404 PATIENT_NOT_FOUND | Animal inconnu, d'une autre organisation, ou dont le client n'est pas rattaché à un site ouvert à l'application. |
Et les erreurs communes à toutes les opérations : erreurs et limites.
Déposer un PDF dans le dossier d'un animal
POST/api/partner/v1/patients/{id}/documents#
Dépose un PDF (compte rendu de laboratoire, d'imagerie…) dans le dossier de l'animal, en multipart/form-data. Seul le PDF est accepté : type déclaré application/pdf ET contenu qui commence par la signature %PDF-. 20 Mo au plus par fichier ; un envoi plus gros est arrêté pendant la réception, même sans Content-Length. Le document naît de type UPLOAD, statut GENERATED, visibilité INTERNAL : la clinique décide de le montrer au propriétaire. Il est signé par le compte d'intégration de l'application.
Avec consultationId, le document est rattaché à cette consultation et naît sur son site. Sans, il naît sur site_id (ou Treats-Site-Id), ou sur le seul site ouvert à l'application. Idempotency-Key est obligatoire ; un même envoi est reconnu à son type et à sa taille : utiliser une clé par dépôt, sans quoi deux fichiers différents de même taille sous la même clé rendraient le premier.
Paramètres
| idchemin · uuidrequis | Identifiant de l'animal. |
| site_idrequête · uuid | Site du document, sans |
| Treats-Site-Iden-tête · uuid | Équivalent de |
| Idempotency-Keyen-tête · stringrequis | Clé unique de l'envoi (un UUID). Le même envoi répété avec la même clé n'est appliqué qu'une fois pendant 24 h. |
Corps de la requête multipart/form-data
| filefichierrequis | Le PDF, partie déclarée |
| titlestring | Titre du document, de 1 à 200 caractères. Absent : le nom du fichier. |
| categoryenum | Rubrique du dossier. RESULTATS_LABOIMAGERIEAUTREdéfaut "AUTRE" |
| consultationIduuid | Consultation de ce même animal à laquelle rattacher le document, sur un site ouvert à l'application. |
Réponse
201Le document créé.
Champs de la réponse (13)
| iduuid | Identifiant du document. |
| siteIduuid | Site du document. |
| patientIduuid | Animal du document. Nul pour un document du seul dossier client. peut être null |
| consultationIduuid | Consultation à laquelle le document est rattaché, s'il l'est. peut être null |
| typeenum | Nature : synthèse, ordonnance, facture, certificat, dossier médical, carnet de vaccination, devis, consentement, bon de livraison, fichier déposé ( SUMMARYPRESCRIPTIONINVOICECERTIFICATEMEDICAL_RECORDVACCINATION_CARDQUOTECONSENT_FORMDELIVERY_NOTEUPLOADCREDIT_NOTEHOSPITALIZATION_REPORTCONSULTATION_REPORT |
| categoryenum | Rubrique du dossier : imagerie, chirurgie, certificats, consentements, information, résultats de laboratoire, administratif, autre. IMAGERIECHIRURGIECERTIFICATSCONSENTEMENTSINFORMATIONRESULTATS_LABOADMINISTRATIFAUTREpeut être null |
| titlestring | Titre du document. peut être null |
| statusenum |
GENERATEDDRAFTVALIDATEDSIGNEDSENT |
| visibilityenum |
INTERNALOWNERASV_ONLY |
| createdAtdate-time | Date de création ou de dépôt. |
| updatedAtdate-time | Dernière modification. peut être null |
| validatedAtdate-time | Date de validation, s'il a été validé. peut être null |
| signedAtdate-time | Date de signature, s'il a été signé. peut être null |
Erreurs propres à cette opération
| 400 MULTIPART_REQUIRED | Corps qui n'est pas en |
| 400 MULTIPART_INVALID | Envoi multipart illisible. |
| 400 FILE_REQUIRED | Partie |
| 400 FILE_EMPTY | Fichier vide. |
| 400 FILE_TOO_LARGE | Fichier de plus de 20 Mo (ou envoi total trop gros), détecté sur la taille annoncée ou pendant la réception. |
| 400 FILE_UNREADABLE | Fichier illisible à la réception. |
| 400 FILE_TYPE_NOT_ALLOWED | Partie non déclarée |
| 400 INVALID_FIELD |
|
| 400 CONSULTATION_OTHER_PATIENT |
|
| 400 SITE_ID_REQUIRED | Sans |
| 404 PATIENT_NOT_FOUND | Animal inconnu, d'une autre organisation, ou dont le client n'est pas rattaché à un site ouvert à l'application. |
| 404 CONSULTATION_NOT_FOUND |
|
| 404 SITE_NOT_FOUND |
|
Et les erreurs communes à toutes les opérations : erreurs et limites.