Calculateur du ratio Qp/Qs
Des saturations de 98, 70, 99 et 85 % donnent un Qp/Qs de 2 : les poumons reçoivent deux fois le débit systémique, soit un shunt gauche-droite. Saisissez les quatre saturations en oxygène pour comparer les deux débits. Gratuit dans votre navigateur.
- Gratuit
- Fonctionne dans votre navigateur
- Sans inscription
- Vos données restent sur votre appareil
Lancer gratuitement
Exemple résolu
- Saturation artérielle systémique
- 98
- Saturation veineuse mêlée
- 70
- Saturation veineuse pulmonaire
- 99
- Saturation artérielle pulmonaire
- 85
- Numérateur
- 28 ratio
- Dénominateur
- 14
- Qp qs
- 2
- Qp/Qs arrondi
- 2
Le ratio Qp/Qs compare le débit sanguin pulmonaire au débit sanguin systémique et constitue une grandeur d'enseignement classique en cardiologie congénitale, en cathétérisme cardiaque et dans les cours de physiologie. Ce calculateur applique l'identité de Fick par saturations d'oxygène : le débit pulmonaire rapporté au systémique égale la saturation artérielle systémique moins la veineuse mixte, divisée par la saturation veineuse pulmonaire moins l'artérielle pulmonaire. Vous envoyez quatre saturations d'oxygène en pourcentages de zéro à cent. Le moteur renvoie le ratio Qp/Qs sans dimension, le numérateur et le dénominateur de la division, une valeur d'affichage à deux décimales et une étiquette pédagogique simple de direction du shunt.
Ce que mesure Qp/Qs et comment quatre saturations donnent le ratio
Le ratio Qp/Qs est le débit sanguin pulmonaire divisé par le débit sanguin systémique. Dans une circulation sans shunt ces deux débits sont égaux, donc le ratio vaut un. Un shunt gauche-droite envoie un volume supplémentaire dans les poumons, le débit pulmonaire dépasse le systémique et Qp/Qs est supérieur à un.
Un shunt droite-gauche contourne les poumons, le débit pulmonaire tombe sous le systémique et Qp/Qs est inférieur à un. Le débit volumétrique direct n'est pas toujours disponible en salle, sur une feuille de travail ou dans un jeu de données de cathétérisme pédagogique, mais les saturations d'oxygène de quatre sites le sont. Le principe de Fick énonce que la consommation d'oxygène égale le débit fois la différence artérioveineuse de contenu en oxygène.
En annulant la consommation entre les circuits pulmonaire et systémique, et en substituant des pourcentages de saturation au contenu lorsque l'hémoglobine et l'oxygène dissous sont traités comme partagés, on obtient l'identité classique utilisée ici : Qp/Qs égale (SaO2 moins SvO2) divisé par (SpvO2 moins SpaO2). SaO2 est la saturation artérielle systémique, en général prélevée dans l'aorte ou le ventricule gauche. SvO2 est la saturation veineuse mixte, en général de la veine cave supérieure ou d'une estimation mixte des caves.
SpvO2 est la saturation veineuse pulmonaire, prélevée dans les veines pulmonaires ou supposée proche de quatre-vingt-dix-huit pour cent lorsqu'elle n'est pas mesurée. SpaO2 est la saturation artérielle pulmonaire. Ce point d'accès n'implémente que cette identité : quatre pourcentages en entrée, un ratio sans dimension en sortie, sans imagerie, sans correction d'hémoglobine et sans prétention diagnostique sur le type de lésion ni le seuil chirurgical.
À quoi sert le ratio Qp/Qs et ses limites
Les cours de cardiologie, les modules de cardiopathie congénitale et les laboratoires de physiologie utilisent un calculateur de ratio Qp/Qs pour que les apprenants vérifient l'arithmétique de Fick sans répandre une formule de tableur qui divise silencieusement par zéro. Les générateurs d'examens et les greffons LMS ont besoin d'un oracle déterministe qui refuse les saturations hors de zéro à cent au lieu d'inventer un ratio.
Conservez des attentes pédagogiques : il s'agit d'un outil de calcul et d'apprentissage, non d'un dispositif médical de diagnostic, et il ne remplace ni les comptes rendus de cathétérisme, ni la cartographie de débit par résonance cardiaque, ni le jugement clinique. Les personnes présentant des lésions congénitales connues, une cyanose ou un souffle inexpliqué doivent suivre un avis médical professionnel plutôt qu'un ratio automatisé isolé.
Cas d’usage
Enseignement de cardiologie congénitale
Permettez aux étudiants d'envoyer quatre saturations de site et de vérifier Qp/Qs ainsi que la direction du shunt par rapport à l'identité de Fick vue en cours.
Feuilles de cathétérisme et simulation
Les simulateurs de laboratoire qui stockent déjà les saturations aortique, veineuse mixte, veineuse pulmonaire et artérielle pulmonaire calculent Qp/Qs sans fourche locale de la formule.
Notation automatique LMS en physiologie
Notez les devoirs de Qp/Qs avec un oracle déterministe qui refuse les saturations hors de 0–100 et ne renvoie jamais Infinity sur un dénominateur nul.
Questions fréquentes
Comment calcule-t-on le ratio Qp/Qs à partir des saturations d'oxygène ?
Qp/Qs = (SaO2 − SvO2) / (SpvO2 − SpaO2).
De quelles saturations a-t-on besoin pour un ratio Qp/Qs ?
Quatre saturations d'oxygène en pourcentage : artérielle systémique (aorte), veineuse mixte (en général SVC), veineuse pulmonaire (souvent supposée proche de 98 % si non prélevée) et artérielle pulmonaire.
Que se passe-t-il si une saturation est hors de 0 à 100 ?
Les saturations d'oxygène doivent être comprises entre 0 et 100 inclus ; les valeurs hors de cet intervalle ne sont pas facturées.
Que signifie un Qp/Qs supérieur à un ?
Ce sont des aides d'enseignement, non un diagnostic ni un seuil chirurgical.
Que faire si la saturation veineuse pulmonaire n'a pas été mesurée ?
Sans prélèvement dans les veines pulmonaires, on suppose souvent une valeur proche de 98 %, et de nombreux cas d'enseignement utilisent ce chiffre. Saisissez la valeur indiquée par votre cas ou votre compte rendu pour que le ratio concorde.
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/qp-qs-ratio \
-H "Authorization: Bearer $KIT_KEY" \
-H "Content-Type: application/json" \
-d '{"sat_systemic_arterial":98,"sat_mixed_venous":70,"sat_pulmonary_venous":99,"sat_pulmonary_arterial":85}'const res = await fetch("https://api.kit.forhosting.com/health/qp-qs-ratio", {
method: "POST",
headers: {
"Authorization": `Bearer ${process.env.KIT_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
"sat_systemic_arterial": 98,
"sat_mixed_venous": 70,
"sat_pulmonary_venous": 99,
"sat_pulmonary_arterial": 85
})
});
const { task_id } = await res.json();import os, requests
res = requests.post(
"https://api.kit.forhosting.com/health/qp-qs-ratio",
headers={"Authorization": f"Bearer {os.environ['KIT_KEY']}"},
json={
"sat_systemic_arterial": 98,
"sat_mixed_venous": 70,
"sat_pulmonary_venous": 99,
"sat_pulmonary_arterial": 85
},
)
task_id = res.json()["task_id"]<?php
$res = file_get_contents("https://api.kit.forhosting.com/health/qp-qs-ratio", false, stream_context_create([
"http" => [
"method" => "POST",
"header" => "Authorization: Bearer " . getenv("KIT_KEY") . "\r\nContent-Type: application/json",
"content" => '{"sat_systemic_arterial":98,"sat_mixed_venous":70,"sat_pulmonary_venous":99,"sat_pulmonary_arterial":85}',
],
]));
$task = json_decode($res, true);body := bytes.NewBufferString(`{"sat_systemic_arterial":98,"sat_mixed_venous":70,"sat_pulmonary_venous":99,"sat_pulmonary_arterial":85}`)
req, _ := http.NewRequest("POST", "https://api.kit.forhosting.com/health/qp-qs-ratio", 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
{
"sat_systemic_arterial": 98,
"sat_mixed_venous": 70,
"sat_pulmonary_venous": 99,
"sat_pulmonary_arterial": 85
}Exemple de réponse
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "health.qp_qs_ratio",
"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
Les saturations hors de l'intervalle zéro à cent, les champs manquants, les valeurs non finies et un dénominateur nul échouent avec invalid_input et ne sont jamais facturés.
Contrat d'entrée, forme de la réponse et erreurs
Si la saturation veineuse pulmonaire égale l'artérielle pulmonaire le dénominateur est nul et la requête échoue au lieu de renvoyer Infinity. Exemple : quatre-vingt-dix-huit, soixante-dix, quatre-vingt-dix-neuf et quatre-vingt-cinq pour cent donnent un numérateur de vingt-huit, un dénominateur de quatorze et un Qp/Qs égal à deux. Envoyez en POST un corps JSON avec quatre nombres finis obligatoires, chacun un pourcentage de saturation d'oxygène de zéro à cent inclus. sat_systemic_arterial est SaO2 (alias sao2, aortic_sat, sat_ao, systemic_arterial, ao_sat). sat_mixed_venous est SvO2 (alias svo2, mv_sat, sat_mv, mixed_venous, mixed_venous_sat). sat_pulmonary_venous est SpvO2 (alias spvo2, pv_sat, sat_pv, pulmonary_venous, pulmonary_vein_sat). sat_pulmonary_arterial est SpaO2 (alias spao2, pa_sat, sat_pa, pulmonary_arterial, pulmonary_artery_sat). Chaque champ peut arriver comme nombre JSON ou comme chaîne numérique. Les champs manquants, les chaînes vides et les valeurs non finies échouent avec invalid_input en nommant le champ. Toute saturation strictement inférieure à zéro ou strictement supérieure à cent échoue avec invalid_input ; c'est la plage dure que ce produit impose. En cas de succès le corps renvoie en écho les quatre saturations, indique numerator et denominator, qp_qs comme ratio arrondi de façon stable, qp_qs_rounded à deux décimales pour l'affichage, shunt_direction comme left_to_right lorsque le ratio est supérieur à un, balanced lorsqu'il vaut un, right_to_left lorsqu'il est entre zéro et un, ou inverted lorsque le signe est négatif, plus les chaînes unit, formula et method. Associez le JSON à vos propres graphiques si vous avez besoin d'un tracé ; ce point d'accès calcule uniquement le ratio.
Où une API Qp/Qs justifie son coût, tarif et limites honnêtes
Les backends de simulation et de feuilles de cathétérisme qui stockent déjà quatre saturations de site peuvent appeler une petite API parse au lieu de réimplémenter l'identité dans chaque langage. Parce que l'implémentation est parse pure de niveau A, chaque appel réussi coûte le tarif de base publié $0.002 sans jetons de modèle et sans réseau sortant, et une validation échouée ne consomme pas le solde. Épinglez qp_qs dans les tests, traitez shunt_direction comme étiquette d'enseignement et non comme seuil chirurgical, convertissez les lectures d'oxymètre de pouls vers la même échelle de pourcentages avant d'appeler, et n'envoyez jamais de pressions partielles en millimètres de mercure sans une conversion de saturation de votre fait.
Questions techniques
Combien coûte le calculateur de ratio Qp/Qs ?
L'outil du navigateur est gratuit. Les requêtes API utilisent le solde KIT prépayé à $0.002 par appel réussi ; une entrée invalide n'est pas facturée.