Calculateur ACR TI-RADS
Un nodule solide, hypoéchogène, plus large que haut, à contours lisses et sans foyer échogène totalise 4 points, TR4 : ponction dès 1,5 cm, surveillance dès 1,0 cm. Cinq critères échographiques selon la grille ACR de 2017. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Composition
- Solid
- Échogénicité
- Hypoechoic
- Forme
- Wider than tall
- Marge
- Smooth
- Foyers échogènes
- None or large comet tail
- Points
- 4
- Niveau TR
- TR4
- Risque
- moderately_suspicious
- Seuil de cytoponction (cm)
- 1,5
ACR TI-RADS, le Thyroid Imaging Reporting and Data System de l'American College of Radiology, attribue des points entiers à un nodule thyroïdien à partir de cinq descripteurs échographiques : composition, échogénicité, forme, contours et foyers échogènes. Ce calculateur applique le tableau de l'article blanc de Tessler de 2017, additionne ces points et situe le total de TR1 à TR5, avec le libellé de risque et les seuils de FNA ou de surveillance selon la taille qui accompagnent chaque catégorie. C'est une aide pédagogique de compte rendu, non un diagnostic ni un substitut du radiologue.
Les cinq caractéristiques échographiques ACR et le barème de chacune
Envoyez une valeur pour chacune des cinq caractéristiques. La composition est kystique ou presque entièrement kystique (zéro point), spongiforme (zéro), mixte kystique et solide (un), ou solide ou presque entièrement solide (deux). L'échogénicité est anéchogène (zéro), hyperéchogène ou isoéchogène (un), hypoéchogène (deux), ou très hypoéchogène par rapport au muscle préthyroïdien antérieur (trois).
La forme est plus large que haute sur une coupe axiale (zéro) ou plus haute que large (trois). Le contour est lisse (zéro), mal défini (zéro), lobulé ou irrégulier (deux), ou extension extra-thyroïdienne (trois). Les foyers échogènes sont absents ou artefacts en queue de comète de grande taille (zéro), macrocalcifications (un), calcifications périphériques ou en rim (deux), ou foyers échogènes ponctués (trois).
Lorsque plusieurs types de foyers sont présents, l'article blanc additionne les points ; ce calculateur accepte un array ou une chaîne séparée par des virgules et les somme, en écartant un jeton none si de vraies calcifications figurent aussi. Des entrées identiques donnent toujours le même total entier, car le chemin est une consultation pure de table, sans réseau, sans modèle, sans graine aléatoire et sans horloge murale.
Comment le total de points devient TR1 à TR5, et quand l'entrée est rejetée
Chaque caractéristique apporte un entier publié ; le total ACR TI-RADS est leur somme. Zéro ou un point correspond à TR1, étiqueté bénin, sans FNA sur le tableau de l'article blanc. Deux points correspondent à TR2, non suspect, également sans FNA.
Trois points correspondent à TR3, légèrement suspect : FNA si le nodule mesure au moins 2.5 centimètres, surveillance s'il mesure au moins 1.5 centimètres. Quatre à six points correspondent à TR4, modérément suspect : FNA à 1.5 centimètres, surveillance à 1.0 centimètre. Sept points ou plus correspondent à TR5, hautement suspect : FNA à 1.0 centimètre, surveillance à 0.5 centimètre.
Un nodule à un point est peu fréquent ; le comité le classe en TR1 plutôt que de laisser un trou dans l'échelle, et ce calculateur fait de même. Ne traitez pas un total élevé comme un diagnostic, un motif de biopsie sans regarder la taille et le contexte clinique, ni un substitut du radiologue.
Cas d’usage
Devoirs TI-RADS en radiologie et échographie
Les étudiants envoient composition, échogénicité, forme, contours et foyers d'un nodule de dossier pédagogique, puis figent les points et le niveau TR attendus dans des correcteurs automatiques.
Laboratoires de simulation échographique et comptes rendus structurés
Les cas sur mannequin et d'apprentissage en ligne ont besoin d'un oracle ACR TI-RADS déterministe pour que les cinq mêmes descripteurs donnent toujours le même total entier et la même catégorie TR.
Questions fréquentes
Comment le score ACR TI-RADS est-il calculé ?
ACR TI-RADS additionne des points publiés de cinq caractéristiques échographiques : composition, échogénicité, forme, contours et foyers échogènes. Si plusieurs types de foyers sont présents, les points s'additionnent. Le total entier se situe de TR1 à TR5.
Que se passe-t-il si une caractéristique manque ?
Un total TI-RADS sans les cinq descripteurs n'est pas un total TI-RADS, et cet échec n'est pas facturé.
Comment les niveaux TR se relient-ils aux seuils de taille pour la FNA ?
TR1 et TR2 n'ont pas de recommandation de FNA. TR3 utilise FNA à 2.5 cm et surveillance à 1.5 cm ; TR4 utilise 1.5 cm et 1.0 cm ; TR5 utilise 1.0 cm et 0.5 cm. Le diamètre du nodule n'est pas une entrée ici.
Puis-je envoyer plus d'un type de foyers échogènes ?
Oui. Envoyez un array ou une chaîne séparée par des virgules ; les points des macrocalcifications, des calcifications périphériques et des foyers ponctués s'additionnent, comme dans l'article blanc de 2017.
Est-ce un diagnostic, et que coûte le calculateur TI-RADS ?
Non. C'est une aide pédagogique de compte rendu, non un dispositif médical. L'outil du navigateur s'exécute gratuitement sur votre appareil.
Outils associés
Pour les développeurs — accès API
Tout sur cette page est disponible par programmation. Cette section s'adresse aux équipes qui veulent l'intégrer à leurs systèmes ; les autres peuvent simplement utiliser l'outil ci-dessus.
Endpoint
Authentification par jeton Bearer : un seul POST met la tâche en file d’attente, et le résultat vous parvient par webhook ou lien signé.
Appeler depuis votre stack
curl -X POST https://api.kit.forhosting.com/health/tirads \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"composition":"solid","echogenicity":"hypoechoic","shape":"wider_than_tall","margin":"smooth","echogenic_foci":"none_or_large_comet_tail"}'const res = await fetch("https://api.kit.forhosting.com/health/tirads", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"composition": "solid",
"echogenicity": "hypoechoic",
"shape": "wider_than_tall",
"margin": "smooth",
"echogenic_foci": "none_or_large_comet_tail"
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/health/tirads",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"composition": "solid",
"echogenicity": "hypoechoic",
"shape": "wider_than_tall",
"margin": "smooth",
"echogenic_foci": "none_or_large_comet_tail"
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/health/tirads", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"composition":"solid","echogenicity":"hypoechoic","shape":"wider_than_tall","margin":"smooth","echogenic_foci":"none_or_large_comet_tail"}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"composition":"solid","echogenicity":"hypoechoic","shape":"wider_than_tall","margin":"smooth","echogenic_foci":"none_or_large_comet_tail"}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/health/tirads", body)
req.Header.Set("Authorization", "Bearer "+os.Getenv("KIT_KEY"))
req.Header.Set("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)Exemple de requête
{
"composition": "solid",
"echogenicity": "hypoechoic",
"shape": "wider_than_tall",
"margin": "smooth",
"echogenic_foci": "none_or_large_comet_tail"
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "health.tirads",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}L’API est asynchrone : chaque appel renvoie un task_id immédiatement, puis vous interrogez l’état à raison d’une requête par seconde.
Tarifs
Le prix est publié, sans tokens ni crédits. Une tâche qui échoue n’est pas facturée.
Erreurs
| HTTP | Code | Signification |
|---|---|---|
401 | unauthorized | Clé API absente ou invalide : vérifiez l’en-tête Authorization. |
402 | insufficient_balance | Solde insuffisant : rechargez votre compte pour lancer cette tâche. |
404 | unknown_type | Type de tâche inconnu : vérifiez le champ type de votre requête. |
429 | rate_limited | Trop de requêtes : ralentissez la cadence, puis réessayez. |
Notes techniques
Chaque caractéristique est obligatoire ; une valeur manquante ou non reconnue échoue avec invalid_input au lieu d'inventer un score. Les éléments API réussis coûtent $0.002.
Les cinq caractéristiques échographiques ACR et le barème de chacune
ACR TI-RADS est un lexique de cinq items pour les nodules thyroïdiens en échographie en niveaux de gris, publié par Tessler, Middleton, Grant et leurs collègues en 2017 afin que composition, echogenicity, shape, margin et echogenic foci soient cotés de la même façon dans chaque compte rendu. Cet endpoint n'implémente que ce tableau : il ne lit pas d'images, ne mesure pas le plus grand diamètre et ne convertit pas le total en pourcentage de malignité. Champs manquants, chaînes vides, booléens dans des emplacements lexicaux et jetons hors du vocabulaire publié échouent avec invalid_input en nommant le champ.
Comment le total de points devient TR1 à TR5, et quand l'entrée est rejetée
En cas de succès, le corps renvoie les cinq valeurs canoniques, liste les points par item dans breakdown et fournit points comme total entier, tr_level de TR1 à TR5, risk comme libellé en snake-case, recommendation comme la phrase de FNA ou de surveillance, method acr_tirads et une chaîne formula qui reformule le tableau de 2017. De TR3 à TR5 la charge inclut aussi fna_threshold_cm et follow_threshold_cm ; ces clés sont omises pour TR1 et TR2 plutôt qu'envoyées à null. Utilisez points pour une pastille, tr_level pour un titre de compte rendu et recommendation pour une légende pédagogique. Une requête qui omet l'une des cinq caractéristiques, ou qui envoie une valeur que le lexique ne reconnaît pas, échoue avec invalid_input et n'est pas facturée.
Usage de l'API, tarif, flux produit et limites pédagogiques
Appelez le calculateur ACR TI-RADS gratuit dans le navigateur pour les devoirs de radiologie, les dossiers d'enseignement échographique et les laboratoires de relecture de comptes rendus, sans réimplémenter les bandes de 2017 dans chaque tableur. Gardez des attentes pédagogiques : un nodule solide plus haut que large, très hypoéchogène, avec foyers ponctués, a besoin d'un radiologue, pas d'une étiquette automatique isolée. Le produit ne contacte jamais une archive d'imagerie, n'invente jamais un score aléatoire et n'empreint jamais une horloge dans la charge. Envoyez un corps JSON avec composition, echogenicity, shape, margin et echogenic_foci obligatoires. Les jetons canoniques sont cystic, spongiform, mixed_cystic_and_solid, solid ; anechoic, hyperechoic_or_isoechoic, hypoechoic, very_hypoechoic ; wider_than_tall, taller_than_wide ; smooth, ill_defined, lobulated_or_irregular, extra_thyroidal_extension ; et none_or_large_comet_tail, macrocalcifications, peripheral_calcifications, punctate_echogenic_foci. Les alias documentés tels que comp, echo, nodule_shape, margins et foci sont acceptés, de même que des synonymes cliniques courants comme isoechoic, irregular et microcalcifications. Utilisez l'API prépayée lorsqu'un SaaS d'éducation sanitaire, un prototype de compte rendu structuré ou un LMS scolaire a besoin d'un contrat stable sous solde KIT à $0.002 par élément réussi ; les échecs de validation ne consomment jamais de solde après le rejet du moteur. Couplez cet endpoint à votre propre logique de taille et d'antécédents si vous avez besoin d'une décision FNA complète : ce calculateur renvoie les seuils publiés en centimètres, mais ne prend pas le diamètre du nodule en entrée. Stockez points, tr_level et breakdown auprès des descripteurs bruts pour des tableaux de bord, et exportez des colonnes pour les cinq caractéristiques, chaque bande de points et le total.
Cas d'intégration
Backends SaaS d'éducation sanitaire
Les pipelines serveur qui stockent déjà les champs du lexique échographique appellent un endpoint prépayé au lieu de dupliquer le tableau de points de Tessler de 2017 dans chaque langage.