Qp/Qs比計算機
飽和度が98、70、99、85%ならQp/Qsは2で、肺には体循環の2倍の血液が流れる左右短絡です。4つの酸素飽和度を入れると、肺血流と体血流を比べられます。ブラウザで無料で使えます。
- 無料
- ブラウザで動作
- 登録不要
- データは端末の外に出ません
無料で実行
計算例
- 体動脈血酸素飽和度
- 98
- 混合静脈血酸素飽和度
- 70
- 肺静脈血酸素飽和度
- 99
- 肺動脈血酸素飽和度
- 85
- 分子
- 28 ratio
- 分母
- 14
- Qp qs
- 2
- Qp/Qs (丸め後)
- 2
Qp/Qs比は肺血流量と体血流量を比べる値で、先天性心疾患、心臓カテーテル、生理学の授業で標準的に教えられます。本計算機はFickの酸素飽和度の恒等式を用います。肺対体の流量は、体動脈飽和度から混合静脈飽和度を引いた値を、肺静脈飽和度から肺動脈飽和度を引いた値で割ったものです。0から100までの百分率として4つの酸素飽和度を送ります。エンジンは無次元のQp/Qs比、除算の分子と分母、小数第2位の表示値、教育用の短絡方向ラベルを返します。
Qp/Qsが測るものと4つの飽和度から比が出る仕組み
Qp/Qs比は肺血流量を体血流量で割った値です。短絡のない循環では両流量は等しく、比は1になります。左→右短絡は余分な容量を肺へ送り、肺流量が体流量を上回り、Qp/Qsは1より大きくなります。
右→左短絡は肺を迂回し、肺流量が体流量を下回り、Qp/Qsは1より小さくなります。直接の容積流量は教室・ワークシート・教育用カテーテルデータでは必ずしも得られませんが、4部位の酸素飽和度は得られます。Fickの原理は、酸素消費量が流量×動静脈酸素含量差に等しいと述べます。
肺回路と体回路の間で消費量を相殺し、ヘモグロビンと溶存酸素を共有とみなして含量の代わりに飽和度パーセントを入れると、ここで使う古典的恒等式になります。Qp/Qsは (SaO2 マイナス SvO2) を (SpvO2 マイナス SpaO2) で割った値です。SaO2は体動脈飽和度で、通常は大動脈または左室から採取します。
SvO2は混合静脈飽和度で、通常は上大静脈または上下大静脈の混合推定です。SpvO2は肺静脈飽和度で、肺静脈から採取するか、未測定なら約98パーセントと仮定します。SpaO2は肺動脈飽和度です。
入力は4つのパーセント、出力は無次元の比のみで、画像もヘモグロビン補正も、病変型や手術閾値についての診断的主張もありません。
Qp/Qs比が役立つ場面と限界
循環器の授業、先天性心疾患の単元、生理学実習では、表計算のゼロ除算が静かに起きる式を広げずにFickの算術を確認できるよう、Qp/Qs比計算機を使います。試験ジェネレータとLMSプラグインは、0から100の外の飽和度を拒否し比を捏造しない決定的オラクルを必要とします。期待は教育用に保ってください。
計算と学習の道具であり診断用医療機器ではなく、カテーテル報告書・心臓MRI流量マッピング・臨床判断の代替ではありません。既知の先天性病変、チアノーゼ、原因不明の心雑音がある方は、自動化された単一の比ではなく専門的な医学助言に従ってください。
活用例
先天性循環器の授業
学生に4部位の飽和度を送らせ、授業で使うFickの恒等式に対してQp/Qsと短絡方向を確認させます。
カテーテルワークシートとシミュレーション
大動脈・混合静脈・肺静脈・肺動脈の飽和度を既に持つ実習シミュレータが、局所の式フォークなしでQp/Qsを計算します。
生理学課題のLMS自動採点
0–100の外の飽和度を拒否し、分母ゼロで Infinity を返さない決定的オラクルでQp/Qsの宿題を採点します。
よくある質問
酸素飽和度からQp/Qs比はどう計算しますか?
Qp/Qs = (SaO2 − SvO2) / (SpvO2 − SpaO2)。
Qp/Qs比にはどの飽和度が必要ですか?
パーセントの酸素飽和度が4つです。体動脈(大動脈)、混合静脈(通常はSVC)、肺静脈(未採取なら約98%と仮定することが多い)、肺動脈です。
飽和度が0から100の外だとどうなりますか?
酸素飽和度は0から100(両端を含む)である必要があり、その範囲外は課金されません。
Qp/Qsが2とはどういう意味ですか?
肺血流が体血流の2倍で、左右短絡を示します。1なら短絡がないときと同じく両者が等しく、1未満なら右左短絡を示します。
肺静脈の飽和度を測っていない場合はどうしますか?
肺静脈から採血していないときは98%前後と仮定することが多く、教材の症例でもよく使われます。比が合うよう、症例や報告書に書かれた値を入れてください。
関連ツール
開発者向け — APIアクセス
このページの機能はすべてAPIからも利用できます。自社システムに組み込みたいチーム向けのセクションです。それ以外の方は上のツールをそのままお使いください。
エンドポイント
Bearerトークンで認証し、POST1回でタスクをキューに登録します。結果はWebhookまたは署名付きリンクで受け取れます。
お使いのスタックから呼び出す
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)リクエスト例
{
"sat_systemic_arterial": 98,
"sat_mixed_venous": 70,
"sat_pulmonary_venous": 99,
"sat_pulmonary_arterial": 85
}レスポンス例
{
"task_id": "tsk_a1b2c3d4e5f6a1b2c3d4e5f6",
"type": "health.qp_qs_ratio",
"status": "queued",
"_links": {
"result": "/tasks/tsk_…/result"
}
}非同期APIです。task_idは即時に返ります。ポーリングは1秒あたり1リクエストまでです。
料金
単価はすべて公開しています。トークン換算や独自クレジットはありません。失敗したタスクは課金されません。
エラー
| HTTP | コード | 意味 |
|---|---|---|
401 | unauthorized | APIキーが無効か、指定されていません。Authorizationヘッダーを確認してください。 |
402 | insufficient_balance | 残高が不足しています。チャージ後に再度お試しください。 |
404 | unknown_type | 指定されたタスクタイプは存在しません。タイプ名を確認してください。 |
429 | rate_limited | リクエストが多すぎます。しばらく待ってから再度お試しください。 |
技術的な注記
0から100の範囲外の飽和度、欠落フィールド、非有限値、分母ゼロは invalid_input で失敗し課金されません。
Qp/Qsが測るものと4つの飽和度から比が出る仕組み
本エンドポイントはその恒等式だけを実装します。
入力契約・応答の形・エラーの扱い
肺静脈飽和度と肺動脈飽和度が等しいと分母がゼロになり、Infinity を返す代わりに要求は失敗します。例:98、70、99、85パーセントなら分子28、分母14、Qp/Qsは2です。0から100まで(両端を含む)の酸素飽和度パーセントである有限数4つを必須とするJSON本体をPOSTしてください。sat_systemic_arterial は SaO2(別名 sao2、aortic_sat、sat_ao、systemic_arterial、ao_sat)です。sat_mixed_venous は SvO2(別名 svo2、mv_sat、sat_mv、mixed_venous、mixed_venous_sat)です。sat_pulmonary_venous は SpvO2(別名 spvo2、pv_sat、sat_pv、pulmonary_venous、pulmonary_vein_sat)です。sat_pulmonary_arterial は SpaO2(別名 spao2、pa_sat、sat_pa、pulmonary_arterial、pulmonary_artery_sat)です。各フィールドはJSON数値でも数値文字列でも構いません。欠落フィールド、空文字、非有限値はフィールド名を付けて invalid_input になります。0未満または100超の飽和度も invalid_input です。これが本製品の硬い範囲です。成功時は4つの飽和度をエコーし、numerator と denominator、安定丸めの比 qp_qs、表示用2桁の qp_qs_rounded、比が1より大きいとき left_to_right、1のとき balanced、0以上1未満のとき right_to_left、符号が負のとき inverted の shunt_direction、さらに unit・formula・method の文字列を返します。図が必要ならご自身の作図とJSONを組み合わせてください。本エンドポイントは比の計算のみです。
Qp/Qs APIが役立つ場面、料金、正直な限界
4部位の飽和度を既に持つシミュレーションやカテーテルワークシートのバックエンドは、言語ごとに恒等式を再実装せず小さなparse APIを呼べます。実装は純粋なparseのティアAなので、成功した呼び出しは公開の基本料金$0.002で、モデルトークンも外向きネットワークもなく、検証失敗は残高を消費しません。テストでは qp_qs を固定し、shunt_direction は手術カットオフではなく教材ラベルとして扱い、パルスオキシメータの読みは呼び出す前に同じパーセント尺度へ合わせ、水銀柱ミリメートルの分圧はご自身で飽和度へ変換してから送ってください。
技術的な質問
Qp/Qsが1より大きいとは何を意味しますか?
教育上、Qp/Qs > 1 は left_to_right(肺流量が体流量を上回る)とラベルされます。Qp/Qs = 1 は balanced、0 ≤ Qp/Qs < 1 は right_to_left です。教材の補助であり、診断や手術閾値ではありません。
Qp/Qs比計算機の料金はいくらですか?
ブラウザの道具は無料です。API要求は成功した呼び出しごとに前払いKIT残高を$0.002で使い、無効な入力は課金されません。