Aller au contenu principal

Obtenir un DiagnosticReport

La fonctionnalité la plus importante de l'intégration de l'API est de recevoir un DiagnosticReport avec les informations créées par l'intelligence artificielle.

Nous fournissons un terminal pour récupérer un DiagnosticReport déjà présent dans le système. Vous n'avez besoin que de l'identifiant interne du DiagnosticReport dans Legit.Health. Cet identifiant est reçu dans le format JSON que nous envoyons à votre serveur chaque fois qu'un DiagnosticReport est créé.

Pour obtenir un DiagnosticReport, vous devez utiliser le terminal getDiagnosticReport.

Un DiagnosticReport contient toutes les informations relatives à une image téléchargée pour un patient et les données de résultat correspondantes générées par nos algorithmes dotés de l'IA.

Statut : préliminaire

Notez que le statut du rapport est étiqueté comme préliminaire, tel que défini par la norme FHIR.

Structure JSON

La structure JSON typique que nous enverrons à vos serveurs est la suivante :

{
"id": "5194dae6-ab96-11ec-9c18-06ef9b8b6824",
"previousDiagnosticReportId": "9c511e48-fab4-11eb-9382-06ef9b8b6824",
"nextDiagnosticReportId": null,
"patient": {
"id": "054724e4-e4b5-11eb-979a-06ef9b8b6824",
"externalId": "2"
},
"encounters": [
{
"id": "054724e4-ab96-11eb-9c18-06ef9b8b6824",
"externalId": "3"
},
{
"id": "86753241-ab96-11eb-9c18-06ef9b8b6824",
"externalId": null
}
],
"condition": {
"id": 704,
"pathology": {
"name": "Psoriasis",
"code": "Psoriasis"
},
"bodySite": {
"code": "HEAD_FRONT",
"name": "Face and neck"
}
},
"originalMedia": {
"type": "Image",
"modality": "Clinical",
"diqaScore": 74,
"url": "https://legit-app-pre.s3.eu-west-3.amazonaws.com/signedPath"
},
"result": {
"id": "5194dd48-ab96-11ec-aead-06ef9b8b6824",
"metrics": {
"sensitivity": 82.69,
"specificity": 97.46
},
"preliminaryFindings": {
"isMalignantSuspicion": 0,
"hasConditionSuspicion": 100,
"isPreMalignantSuspicion": 0,
"adjustedIsPreMalignantSuspicion": null,
"needsBiopsySuspicion": 0,
"needsSpecialistsAttention": 100
},
"iaSeconds": 2.6534740924835,
"explainabilityMedia": {
"type": "Image",
"url": "https://legit-app-pre.s3.eu-west-3.amazonaws.com/diagnostic-report-medias/2afcd009-3eef-4af1-8665-52e91cd7d4da-5178993a-ab96-11ec-84b5-06ef9b8b6824.jpg?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIA52A2ZCZF32OWDLDS%2F20220330%2Feu-west-3%2Fs3%2Faws4_request&X-Amz-Date=20220330T094629Z&X-Amz-SignedHeaders=host&X-Amz-Expires=1800&X-Amz-Signature=127b72c450ab94979a467fbba8b250fc11a5e6905c1f568944635c5b6dfa9459"
},
"observations": [
{
"originalMedia": {
"type": "Image",
"modality": "Clinical",
"diqaScore": 86,
"url": "https://legit-dev.s3.eu-west-3.amazonaws.com/diagnostic-report-medias/bbb.png"
},
"explainabilityMedia": {
"url": "https://legit-dev.s3.eu-west-3.amazonaws.com/diagnostic-report-medias/ccc.png"
}
},
{
"originalMedia": {
"type": "Image",
"modality": "Clinical",
"diqaScore": 86,
"url": "https://legit-dev.s3.eu-west-3.amazonaws.com/diagnostic-report-medias/bbb.png"
},
"explainabilityMedia": null
}
],
"conclusions": [
{
"pathology": {
"name": "Psoriasis",
"code": "Psoriasis"
},
"probability": 45.13
},
{
"pathology": {
"name": "Psoriasis inversa",
"code": "Psoriasis inversa"
},
"probability": 4.46
},
{
"pathology": {
"name": "Lichen simplex chronicus",
"code": "Lichen simplex chronicus"
},
"probability": 2.18
},
{
"pathology": {
"name": "Erythema multiforme",
"code": "Erythema multiforme"
},
"probability": 1.3
},
{
"pathology": {
"name": "Angiokeratoma",
"code": "Angiokeratoma"
},
"probability": 1.27
}
],
"scoringSystems": [
{
"scoringSystem": {
"name": "Local automatic psoriasis area and severity index",
"code": "APASI"
},
"score": 0.7,
"scoreCategory": "Moderate",
"scoreCategories": [
{
"code": "None",
"min": 0,
"max": 0,
"severity": 1,
"severityAsString": "low",
"category": "None"
},
{
"code": "Mild",
"min": 0,
"max": 2.8,
"severity": 1,
"severityAsString": "low",
"category": "Mild"
},
{
"code": "Moderate",
"min": 2.8,
"max": 6,
"severity": 2,
"bodySite": "LEG_LEFT",
"severityAsString": "moderate",
"category": "Moderate"
},
{
"code": "Severe",
"min": 6,
"max": 28.8,
"severity": 3,
"bodySite": "LEG_LEFT",
"severityAsString": "high",
"category": "Severe"
}
],
"resultScoringSystemFacets": [
{
"facet": {
"name": "Affected area",
"description": "This value corresponds to the percentage of involvement of the specific area of the body you are reporting"
},
"valueToDisplay": "10% (1)",
"rawValue": 1
},
{
"facet": {
"name": "Redness",
"description": "This value corresponds to the redness intensity of the lesion"
},
"valueToDisplay": "Moderate (3)",
"rawValue": 3
},
{
"facet": {
"name": "Induration",
"description": "This value corresponds to the hardening intensity of the lesion"
},
"valueToDisplay": "Moderate (2)",
"rawValue": 2
},
{
"facet": {
"name": "Desquamation",
"description": "This value corresponds to the shedding intensity of the outermost layer of skin of the affected zone"
},
"valueToDisplay": "Moderate (2)",
"rawValue": 2
}
],
"history": [
{
"date": "2021-07-14T15:09:38+00:00",
"score": 2.4,
"scoreCategory": "Severe"
},
{
"date": "2021-08-05T10:49:13+00:00",
"score": 1.6,
"scoreCategory": "Severe"
},
{
"date": "2021-08-11T14:58:38+00:00",
"score": 10,
"scoreCategory": "Severe"
},
{
"date": "2022-03-24T17:17:22+00:00",
"score": 0.7,
"scoreCategory": "Moderate"
}
],
"reduction": 0.70833333333333
},
{
"scoringSystem": {
"name": "Psoriatic arthritis UnclutteRed screening Evaluation",
"code": "PURE4"
},
"score": 2,
"scoreCategory": "Possible psoriatic arthritis",
"resultScoringSystemFacets": [
{
"facet": {
"name": "Have you ever had a globally swollen and painful finger or toe?",
"description": null
},
"valueToDisplay": "Yes (1)"
},
{
"facet": {
"name": "Have you ever had heel pain as soon as you stand up in the morning?",
"description": null
},
"valueToDisplay": "No (0)"
},
{
"facet": {
"name": "Have you ever had left and right buttock pain, at the same time or not?",
"description": null
},
"valueToDisplay": "Yes (1)"
},
{
"facet": {
"name": "Have you ever had a swollen and painful joint? (hands, feet, knees, or ankles, for example)",
"description": null
},
"valueToDisplay": "No (0)"
}
],
"history": [
{
"date": "2021-08-05T10:49:13+00:00",
"score": 1,
"scoreCategory": "Possible psoriatic arthritis"
},
{
"date": "2021-08-11T14:58:38+00:00",
"score": 1,
"scoreCategory": "Possible psoriatic arthritis"
},
{
"date": "2022-03-24T17:17:22+00:00",
"score": 2,
"scoreCategory": "Possible psoriatic arthritis"
}
],
"reduction": 0
}
]
},
"helpDiagnoseQuestionnaireAnswers": [
{
"question": "Do hives/welts appear with associated itching?",
"answer": "Yes",
"text": "Considera urticaria"
},
{
"question": "Do individual hives or welts disappear within 1-24 hours without leaving any marks?",
"answer": "Yes",
"text": "Consider urticaria"
},
{
"question": "Does the patient present angioedema or swelling of any part of the body (e.g., face, hands, feet...) accompanied by itch/pain that disappears within 72 hours without leaving any marks?",
"answer": "No",
"text": "Rule out angioedema associated with urticaria"
},
{
"question": "The patient has experienced these episodes more or less continuously for a period of:",
"answer": "≥6 weeks",
"text": "Consider chronic Urticaria"
}
],
"isPriority": true,
"isReviewed": false,
"createdAt": "2022-03-24T17:17:22+00:00",
"presentedForm": {
"practitioner": {
"url": "https://app.legit.legit/u/patients/xxx/diagnotic-report/yyy"
},
"patient": {
"url": "https://app.legit.legit/u/diagnostic-report/xxxx"
}
}
}

Identifiants

"id": "5194dae6-ab96-11ec-9c18-06ef9b8b6824",
"previousDiagnosticReportId": "9c511e48-fab4-11eb-9382-06ef9b8b6824",
"nextDiagnosticReportId": null,

Le format json inclut 3 identifiants :

  • identifiant. L'identifiant interne du DiagnosticReport dans la base de données de Legit.Health.

  • previousDiagnosticReportId est l'identifiant du DiagnosticReport immédiatement antérieur pour cette pathologie selon l'ordre chronologique. Il pourrait être nul si le DiagnosticReport actuel est le premier.

  • nextDiagnosticReportId est l'identifiant du DiagnosticReport immédiatement postérieur pour cette pathologie selon l'ordre chronologique. Il pourrait être nul si le DiagnosticReport actuel est le dernier.

Patient

"patient": {
"id": "054724e4-e4b5-11eb-979a-06ef9b8b6824",
"externalId": "2"
},

Nous incluons les informations suivantes sur le patient associé au DiagnosticReport :

  • identifiant. L'identifiant interne du patient dans la base de données de Legit.Health.
  • externalId. L'identifiant du patient dans votre système.

Rencontres

"encounters": [
{
"id": "054724e4-ab96-11eb-9c18-06ef9b8b6824",
"externalId": "3"
},
{
"id": "86753241-ab96-11eb-9c18-06ef9b8b6824",
"externalId": null
}
],

Nous incluons les informations suivantes sur les rencontres associées au DiagnosticReport.

Il s'agit d'une liste, car un DiagnosticReport peut être associé à plusieurs rencontres, par exemple une créée par le médecin et une autre créée automatiquement par l'algorithme de suivi. Dans ce cas, si le patient télécharge une image qui répond aux deux rencontres, le DiagnosticReport généré sera associé à ces deux rencontres.

Chaque rencontre de la liste est un objet possédant les propriétés suivantes :

  • identifiant. L'identifiant interne de la rencontre dans la base de données de Legit.Health.
  • externalId. L'identifiant de la rencontre dans votre système.

Affection

"condition": {
"id": 704,
"pathology": {
"name": "Psoriasis",
"code": "Psoriasis"
},
"bodySite": {
"code": "HEAD_FRONT",
"name": "Face and neck"
}
}

Nous incluons les informations relatives à l'affection du DiagnosticReport donné.

Dans le cadre de notre dispositif, une affection représente une pathologie d'un patient, située sur une zone du corps.

L'affection possède les propriétés suivantes :

  • identifiant. L'identifiant interne de l'affection dans la base de données de Legit.Health.

  • pathologie. Les informations sur la pathologie pour laquelle le DiagnosticReport a été généré. Elles pourraient être nulles si le DiagnosticReport n'a pas encore été diagnostiqué.

  • Zone du corps. Contient des informations sur la zone du corps sur laquelle l'image a été prise.

Support d'origine (obsolète)

Ce champ apparaît maintenant sous observations

"originalMedia": {
"type": "Image",
"modality": "Clinical",
"diqaScore": 74,
"url": "https://legit-app-pre.s3.eu-west-3.amazonaws.com/signedPath"
}

Puisqu'un DiagnosticReport correspond à une image, nous incluons également les données suivantes sur l'image.

  • modalité. Nos algorithmes peuvent faire la distinction entre les images cliniques et dermatoscopiques.

  • diqaScore est le score dermatologique mesurant la validité de l'image d'un point de vue clinique.

  • url. Lien vers l'image. Étant donné que nous avons mis en place un système de sécurité solide pour protéger l'accès aux images, ce lien n'est valable que 5 minutes, vous devez donc le traiter avant son expiration.

Résultat

Cet objet contient le résultat émis par notre dispositif.

identifiant

L'identifiant interne du résultat dans notre base de données.

mesure

"metrics": {
"sensitivity": 82.69,
"specificity": 97.46
},

Contient les valeurs de « spécificité » et de « sensibilité » de l'image.

preliminaryFindings

"preliminaryFindings": {
"hasConditionSuspicion": 100,
"isMalignantSuspicion": 0,
"isPreMalignantSuspicion": 0,
"adjustedIsPreMalignantSuspicion": null,
"needsBiopsySuspicion": 0,
"needsSpecialistsAttention": 100
},

Contient des informations préliminaires sur l'image, généralement utiles à des fins de flux de travail. Chaque champ est un nombre représentant une probabilité de 0 à 100.

  • isPreMalignantSuspicion et isMalignantSuspicion contiennent les valeurs calculées par l'algorithme liées à la malignité et à la pré-malignité.

  • adjustedIsPreMalignantSuspicion contient la valeur estimée par le médecin au cas où il déciderait d'écraser la précédente.

explainabilityMedia (obsolète)

Ce champ apparaît maintenant sous observations

"explainabilityMedia": {
"type": "Image",
"url": "https://legit-app-pre.s3.eu-west-3.amazonaws.com/diagnostic-report-medias/2afcd009-3eef-4af1-8665-52e91cd7d4da-5178993a-ab96-11ec-84b5-06ef9b8b6824.jpg?X-Amz-Content-Sha256=UNSIGNED-PAYLOAD&X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=AKIA52A2ZCZF32OWDLDS%2F20220330%2Feu-west-3%2Fs3%2Faws4_request&X-Amz-Date=20220330T094629Z&X-Amz-SignedHeaders=host&X-Amz-Expires=1800&X-Amz-Signature=127b72c450ab94979a467fbba8b250fc11a5e6905c1f568944635c5b6dfa9459"
}

Il s'agit de l'image traitée par le dispositif. Elle contient des couches supplémentaires d'informations, indiquant où se trouvent les lésions et quelle est la surface affectée.

  • url. Lien vers l'image analysée. Étant donné que nous avons mis en place un système de sécurité pour protéger l'accès aux images, ce lien n'est valable que 5 minutes, vous devez donc le traiter avant son expiration.

conclusions

"conclusions": [
{
"pathology": {
"name": "Psoriasis",
"code": "Psoriasis"
},
"probability": 45.13
}
]

le champ conclusions est un tableau qui contient une liste avec les différentes probabilités des pathologies que l'image peut présenter. La somme totale des probabilités indiquées ici est de 100. Chaque objet a un tableau qui contient les éléments suivants :

  • pathologie : objet avec les informations sur la pathologie détectée.

  • probabilité : la valeur de probabilité estimée pour cette pathologie.

Observations

Le champ observations est un tableau de supports, chacun contenant deux champs : originalMedia et explainabilityMedia.

originalMedia: le support envoyé à l'algorithme pour être analysé. Il inclut :

  • type : le format de l'image.
  • modalité: Le contexte ou la manière de la capture d'image.
  • diqaScore: Le score d'évaluation de la qualité des images dermatologiques (DIQA).
  • url: L'URL S3 directe vers l'image. Il s'agit d'une URL signée et limitée dans le temps ; téléchargez-la dans les 30 minutes suivant sa création si vous prévoyez de l'utiliser plus tard.

explainabilityMedia: l'image traitée mettant en évidence la zone de la lésion analysée par l'IA. Comme l'image d'origine, il s'agit également d'une URL S3 limitée dans le temps, alors n'oubliez pas de la télécharger dans les 30 minutes si nécessaire. Le champ explainabilityMedia soit ne contient rien, soit contient l'URL d'une image qui démontre ce que leurs algorithmes d'estimation de la gravité ont « vu ». Voici une explication détaillée :

  • S'il n'y a pas de diagnostic concluant pour l'image analysée, ce champ est défini sur nul.
  • S'il existe un diagnostic concluant pour l'image analysée, mais qu'il appartient à un groupe de pathologies dont la gravité n'est pas encore mesurée, ce champ est à nouveau nul.
  • Enfin, s'il existe un diagnostic concluant pour l'image analysée et un algorithme entraîné pour mesurer la gravité, ce champ contient l'URL vers une image qui montre les signes analysés.
"observations": [
{
"originalMedia": {
"type": "Image",
"modality": "Clinical",
"diqaScore": 86,
"url": "https://legit-dev.s3.eu-west-3.amazonaws.com/diagnostic-report-medias/bbb.png"
},
"explainabilityMedia": {
"url": "https://legit-dev.s3.eu-west-3.amazonaws.com/diagnostic-report-medias/ccc.png"
}
},
{
"originalMedia": {
"type": "Image",
"modality": "Clinical",
"diqaScore": 86,
"url": "https://legit-dev.s3.eu-west-3.amazonaws.com/diagnostic-report-medias/bbb.png"
},
"explainabilityMedia": null
}
]

Systèmes de notation

Qu'est-ce qu'un système de notation ?

Pour qu'un médecin puisse suivre une pathologie, certaines affections ont une série de questionnaires associés appelés Systèmes de notation.

Par exemple :

AffectionSystème de notation
PsoriasisPASI
Dermatite atopiqueSCORAD
UrticaireUAS
Hidrosadénite suppuréeISH4

Pour plus d'informations, consultez :

"scoringSystems": [
{
"scoringSystem": {
"name": "Local automatic psoriasis area and severity index",
"code": "APASI"
},
"score": 0.7,
"scoreCategory": "Moderate",
"scoreCategories": [
{
"code": "None",
"min": 0,
"max": 0,
"severity": 1,
"severityAsString": "low",
"category": "None"
},
{
"code": "Mild",
"min": 0,
"max": 2.8,
"severity": 1,
"severityAsString": "low",
"category": "Mild"
},
{
"code": "Moderate",
"min": 2.8,
"max": 6,
"severity": 2,
"bodySite": "LEG_LEFT",
"severityAsString": "moderate",
"category": "Moderate"
},
{
"code": "Severe",
"min": 6,
"max": 28.8,
"severity": 3,
"bodySite": "LEG_LEFT",
"severityAsString": "high",
"category": "Severe"
}
],
"resultScoringSystemFacets": [
{
"facet": {
"name": "Affected area",
"description": "This value corresponds to the percentage of involvement of the specific area of the body you are reporting"
},
"valueToDisplay": "10% (1)",
"rawValue": 1
},
{
"facet": {
"name": "Redness",
"description": "This value corresponds to the redness intensity of the lesion"
},
"valueToDisplay": "Moderate (3)",
"rawValue": 3
},
{
"facet": {
"name": "Induration",
"description": "This value corresponds to the hardening intensity of the lesion"
},
"valueToDisplay": "Moderate (2)",
"rawValue": 2
},
{
"facet": {
"name": "Desquamation",
"description": "This value corresponds to the shedding intensity of the outermost layer of skin of the affected zone"
},
"valueToDisplay": "Moderate (2)",
"rawValue": 2
}
],
"history": [
{
"date": "2021-07-14T15:09:38+00:00",
"score": 2.4,
"scoreCategory": "Severe"
},
{
"date": "2021-08-05T10:49:13+00:00",
"score": 1.6,
"scoreCategory": "Severe"
},
{
"date": "2021-08-11T14:58:38+00:00",
"score": 10,
"scoreCategory": "Severe"
},
{
"date": "2022-03-24T17:17:22+00:00",
"score": 0.7,
"scoreCategory": "Moderate"
}
],
"reduction": 0.70833333333333
}

Systèmes de notation. Les questionnaires remplis pour l'image sont inclus dans ce tableau. Chaque élément de cette liste possède les propriétés suivantes.

  • resultScoringSystemFacets contient les réponses à chaque question du système de notation. Chaque élément de cette liste contient les informations suivantes :

    • une facette, qui est une question du système de notation.

    • la valeur à afficher, la réponse à la question.

  • le score est le score calculé du système de notation basé sur les réponses.

  • la catégorie de score est la gravité en fonction du score obtenu.

  • l'historique est les données historiques du système de notation.

  • la réduction représente de combien la valeur du système de notation a diminué depuis la dernière image. C'est une valeur comprise entre 0 et 1.

  • iaSeconds est le temps consommé par l'algorithme pour analyser l'image.

Questionnaire sur le diagnostic

"helpDiagnoseQuestionnaireAnswers": [
{
"question": "Do hives/welts appear with associated itching?",
"answer": "Yes",
"text": "Considera urticaria"
},
{
"question": "Do individual hives or welts disappear within 1-24 hours without leaving any marks?",
"answer": "Yes",
"text": "Consider urticaria"
},
{
"question": "Does the patient present angioedema or swelling of any part of the body (e.g., face, hands, feet...) accompanied by itch/pain that disappears within 72 hours without leaving any marks?",
"answer": "No",
"text": "Rule out angioedema associated with urticaria"
},
{
"question": "The patient has experienced these episodes more or less continuously for a period of:",
"answer": "≥6 weeks",
"text": "Consider chronic Urticaria"
}
],

Lors du diagnostic de certaines pathologies, comme le « mélanome », le médecin peut utiliser un questionnaire auxiliaire validé pour l'aider pendant ce processus.

Dans le cas où vous l'avez rempli, ce questionnaire apparaîtra dans cette propriété sous la forme de « question - réponse ».

presentedForm

Cette propriété contient deux liens directs vers le DiagnosticReport à l'intérieur de l'application, l'un pour les patients et l'autre pour les médecins.

Autres informations

"isPriority": true,
"isReviewed": false,
"createdAt": "2022-03-24T17:17:22+00:00"

Le JSON contient également les propriétés suivantes :

  • isPriority, indiquant si le DiagnosticReport a été marqué comme prioritaire. Cela peut se produire en raison d'une suspicion maligne élevée ou d'un score supérieur à un seuil établi.

  • isReviewed si le praticien a examiné le DiagnosticReport.

  • createdAt. Date du DiagnosticReport.