L'API Extraction permet d'extraire l'ensemble des informations contenues dans une ordonnance et de les formater pour les insérer dans les SIL des laboratoires d'analyse médicale.
[POST] /prescription
Request
curl --location --request POST 'https://api.querco.co/v1/prescription' \
--header 'Authorization: Api-Key <your-api-key />' \
--form 'file=@"<file />"' \
--form 'formMode="<form-mode />"'Les champs à renseigner :
<your-api-key />: la clé API. Elle est rattachée à une table de correspondance : c'est elle qui détermine la table utilisée pour traduire les examens en codes.<file />: l'ordonnance que vous voulez extraire (PNG / JPEG / PDF, maximum 10 Mo)<form-mode />: par défaut àfalse; si vous souhaitez extraire une ordonnance formulaire (seules les cases cochées sont extraites), passez ce champ àtrue
Response - 200
{
"ok": true,
"data": {
"_id": "000000000000",
"collection": "querco",
"date": "2024-01-24",
"acts": [
{
"codes": ["NF"],
"text": "NFS",
"offset": 388,
"length": 3,
"polygon": [
{ "x": 0.2205, "y": 0.4131 },
{ "x": 0.3413, "y": 0.4131 },
{ "x": 0.3413, "y": 0.4675 },
{ "x": 0.2205, "y": 0.4675 }
],
"type": "DEFAULT",
"ALD": false,
"warning": true,
"isCrossedOut": false,
"isHandwritten": true,
"missingCode": false,
"isAdded": false,
"isDeleted": false
},
{
"codes": [],
"text": "T60",
"offset": 415,
"length": 3,
"polygon": [
{ "x": 0.2181, "y": 0.5285 },
{ "x": 0.3416, "y": 0.5285 },
{ "x": 0.3416, "y": 0.5667 },
{ "x": 0.2181, "y": 0.5667 }
],
"type": "DEFAULT",
"ALD": false,
"warning": true,
"isCrossedOut": false,
"isHandwritten": true,
"missingCode": true,
"isAdded": false,
"isDeleted": false
}
],
"doctor": {
"ADELI": "00000000",
"firstName": "Jean",
"lastName": "DOLL",
"RPPS": "10000000000"
},
"patient": {
"INS": "277010115400329",
"OID": "1.2.220.1.223.1.4.8",
"firstName": ["Sarah-Lou", "Anna"],
"lastName": "Garcia-Hammadi",
"sexe": "F",
"birthdate": "1977-01-21",
"birthCityCode": "01154"
},
"createdAt": "2024-01-25T10:46:30.731Z",
"updatedAt": "2024-01-25T10:46:34.262Z",
"content": "Médecine Générale \n [...]",
"isHandwritten": true,
"isForm": false,
"externalId": null,
"highlightedPrescription": "/9j/2wBDAAYEBQYFBAY [...]",
"highlightedPrescriptionMimeType": "image/jpeg"
}
}Toutes les dates sont au format ISO 8601 : YYYY-MM-DD pour les dates seules, YYYY-MM-DDTHH:mm:ss.sssZ pour les horodatages.
Les attributs retournés sont :
_id: identifiant de l'ordonnancecollection: nom de la table de correspondance utilisée pour transformer les examens en codesdate: date de l'ordonnance au formatYYYY-MM-DD; absente si aucune date n'a été lueacts: tableau contenant l'ensemble des actes identifiés dans l'ordonnancecodes: codes correspondant à l'examentext: texte identifié comme examenoffset: offset du texte dans le champcontentlength: longueur du textepolygon: position de l'examen dans l'image, en coordonnées relatives (0 à 1) à la largeur et à la hauteurtype: nature du prélèvement déduite du contexte de l'ordonnance :DEFAULT(aucun contexte, ou contexte sanguin),URINE(urine sans précision),ECHANTILLON(urine sur échantillon),H24(urines des 24 heures),SEROLOGIE,PCRALD: type de remboursement de l'examenwarning:falsepar défaut,truesi une relecture est requiseisCrossedOut: examen détecté comme barré (bêta)isHandwritten: examen écrit à la mainmissingCode: l'examen n'a pas pu être traduit en codeisAdded/isDeleted: examen ajouté ou retiré par une action configurée dans la table (toujoursfalsepour une extraction sans action)
doctor: objet contenant les informations concernant le médecinADELI: code ADELIfirstName: prénom du médecinlastName: nom de famille du médecinRPPS: code RPPS
patient: objet contenant les informations concernant le patient, lues dans le datamatrix INS quand l'ordonnance en porte un (le champINSpeut aussi être lu dans le texte)INS: code INSOID: code OID de la datamatrix INSfirstName: tableau contenant la liste des prénoms de naissancelastName: nom de naissancesexe:F | M, sexe du patientbirthdate: date de naissance au formatYYYY-MM-DDbirthCityCode: COG-INSEE de la ville de naissance pour les personnes nées en France, ou code INSEE du pays de naissance pour les autres
createdAt: date de création du documentupdatedAt: date de la dernière modification du documentcontent: texte contenu dans l'ordonnanceisHandwritten: l'ordonnance contient du texte manuscritisForm: extraction réalisée en mode formulaireexternalId: identifiant de la demande côté SIL, lorsqu'il est connuhighlightedPrescription: image de l'ordonnance encodée en base64, avec les examens identifiés mis en évidence : vert pour un examen non-ALD, violet pour un examen ALD, orange pour un examen sans codehighlightedPrescriptionMimeType: type MIME de l'image de l'ordonnance
Response - 400
Aucun fichier dans la requête :
{ "ok": false, "data": {}, "message": "No file found. Please include a file in your request." }Response - 200 sans contenu
Le fichier a été reçu mais aucun texte n'a pu y être lu. La réponse est en HTTP 200 avec ok: false : testez ok plutôt que le code HTTP.
{ "ok": false, "data": {}, "code": "NO_CONTENT" }Response - 500
{ "ok": false, "code": "An error occurred while processing your request. Please try again later." }