A vérvizsgálat API végpontjai
Teljes hivatkozás az összes Kantesti vérvizsgálat API végponthoz, kódpéldákkal több nyelven.
Büszkén jelentjük be a Kantesti API három DNS-modulját. A DNS-teszt-értelmezés a nyers DNS-adatokból vagy egy genetikai leletből átfogó genetikai egészségjelentést készít, a DNS + vér egészségjelentés ezt egy vérvizsgálattal kapcsolja össze, az étrend-kiegészítő tanácsadó pedig személyre szabott étrend-kiegészítő tervet állít össze a klinikája saját termékeivel. Olvassa el a DNA Health API referenciát.
https://app.aibloodtestinterpret.com
Változásnapló
API-verziók, frissítések és migrációs információk követése. Új integrációkhoz használja az ajánlott végpontokat.
Mindhárom 2026-os frissítés az alább felsorolt összes API-verzióra alkalmazásra került. A verziószámok és a végpontútvonalak nem változtak, így nincs szükség migrációra.
- 2026. szeptember 8. AI-modell frissítése és platformszintű fejlesztések
- 2026. július 21. Átfogó fejlesztések és hibajavítások
- 2026. május 8. Átfogó fejlesztések és hibajavítások
Jelenlegi stabil végpontok
Ezek a végpontok éles használatra és új integrációkhoz ajánlottak.
| API | Végpont | Állapot |
|---|---|---|
| Vérvizsgálat-elemzés v12 | /api/v12/18-09-2026/analyze |
Ajánlott Új 2026.09.18. |
| Vérvizsgálat-elemzés (Egészségügyi pontszám) v12 | /api/v12/health-score/analyze |
Ajánlott Új 2026.09.18. |
| Testtérkép v1 | /api/v1/body-map/analyze |
Kiadva 2026.09.18. Új |
| Biológiai vérkor v1 | /api/v1/blood-age/analyze |
Kiadva 2026.09.18. Új |
| DNS-teszt-értelmezés v1 | /api/v1/dna-interpretation/analyze |
Kiadva 2026.09.23. Új |
| DNS + vér egészségjelentés v1 | /api/v1/dna-blood-report/analyze |
Kiadva 2026.09.23. Új |
| DNS-alapú étrend-kiegészítő tanácsadó v1 | /api/v1/dna-supplements/analyze |
Kiadva 2026.09.23. Új |
| Vérvizsgálat-elemzés v11 | /api/v11/01-06-2025/analyze |
Stabil Frissítve 2026.09.08. |
| Vérvizsgálat-elemzés (Egészségügyi pontszám) v11 | /api/v11/health-score/analyze |
Stabil Frissítve 2026.09.08. |
| Táplálkozási AI v1 | /api/v1/nutrition/diet-plan/analyze |
Stabil Frissítve 2026.09.08. |
| AI vérvizsgálat-összehasonlítás v1 | /api/v1/bloodtest/comparison/analyze |
Stabil Frissítve 2026.09.08. |
| Családi egészségkockázat-értékelés v1 | /api/v1/family-health/analyze |
Kiadva 2026.03.23. Frissítve 2026.09.08. |
| ICR - Intelligens karakterfelismerő v1 | /api/icr/v1/extract |
Kiadva 2026.02.14. Frissítve 2026.09.08. |
| ICR Kan - Vérvizsgálat kinyerés v1 | /api/icr/v1/kan |
Kiadva 2026.02.14. Frissítve 2026.09.08. |
| Trendelemzés v1 | /api/v1/analytics/trends/analyze |
Stabil Frissítve 2026.09.08. |
Verziótörténet
| Dátum | Verzió | Változások |
|---|---|---|
| 2026. szeptember 23. | DNS-teszt-értelmezés v1, DNS + vér egészségjelentés v1, DNS-alapú étrend-kiegészítő tanácsadó v1 | DNA Health API kiadva — DNS-teszt értelmezése nyers DNS-adatokból (23andMe, AncestryDNA, MyHeritage, FTDNA, LivingDNA, VCF) vagy genetikai leletfájlokból 334 válogatott marker alapján, kombinált DNS + vér egészségjelentés, valamint étrend-kiegészítő tanácsadó a klinika saját termékkatalógusával; aszinkron mód és sandbox |
| 2026. szeptember | Vérvizsgálat-elemzés v12 | Vérvizsgálat-elemzés v12 kiadva — több fájl feltöltése, jelentés 100 nyelven, opcionális egészségügyi pontszám és betegségkockázat-elemzés, sandbox mód |
| 2026. szeptember | Testtérkép v1, Biológiai vérkor v1 | Testtérkép API és Biológiai vérkor API kiadva — a tartományon kívüli eredmények szervszintű leképezése 13 anatómiai testtájékra, valamint PhenoAge biológiai kor akár 18 származtatott klinikai indexszel; mindkettő kínál determinisztikus módot és sandboxot |
| 2026. szeptember | Összes verzió | AI-modell frissítve és a legújabb modellverzióhoz rögzítve; átfogó fejlesztések és hibajavítások az összes API-verzióban; a verziószámok változatlanok; 98,89%-os pontosság orvosi kari vizsgákon (legújabb nyílt forráskódú benchmark) |
| 2026. július | Összes verzió | Átfogó fejlesztések és hibajavítások az összes API-verzióban; a verziószámok változatlanok |
| 2026. május | Összes verzió | Átfogó fejlesztések és hibajavítások az összes API-verzióban; a verziószámok változatlanok |
| 2026 március | Családegészség v1 | Családi egészségkockázat-értékelési API kiadva — AI-alapú örökletes kockázatelemzés, több mint 100 nyelv támogatása, családfa-elemzés, megelőző ellátási ütemterv, genetikai szűrési ajánlások, sandbox mód |
| 2026 február | ICR v1 | ICR (Intelligens karakterfelismerő) API kiadva — 79%-kal gyorsabb, mint az OCR, strukturált JSON kimenet, dokumentumtípus-felismerés, táblázat-kinyerés, Kan vérvizsgálat integráció |
| 2025 december | Legújabb | Továbbfejlesztett hibakezelés, 98,7%-os pontosság, 100 nyelv támogatása |
| 2025 június | v11 | v11 vérvizsgálat-elemzés, egészségügyi pontszám végpont, több fájl támogatása |
| 2025 április | v9 | api_parameters_v9 modell, továbbfejlesztett paraméter-kinyerés |
| 2025 március | v8 | Több fájl feltöltési támogatás, köteges feldolgozás |
Régi végpontok
Ezek a végpontok visszafelé kompatibilitás miatt vannak fenntartva, de nem ajánlottak új integrációkhoz.
| Verzió | Végpont | Állapot |
|---|---|---|
| v10 | /api/v10/health-score/analyze |
Régi |
| v9 | /api/v9/14-04-2025/analyze |
Régi |
| v8 | /api/v8/31-03-2025/analyze |
Régi |
| v6 | /api/v6-1/21-11-2024/analyze |
Régi |
| v3 | /api/v3/10-10-2024/analyze |
Régi |
A régi végpontok visszafelé kompatibilitás miatt vannak fenntartva, de új integrációkhoz nem ajánlottak. Kérjük, migráljon a jelenlegi stabil végpontokra a jobb teljesítmény és támogatás érdekében.
Támogatott nyelvek hivatkozás
A Kantesti API 100 nyelvet támogat a válasz lokalizációhoz. Használja a language paramétert az alábbi ISO 639-1 kódok bármelyikével. Ha nincs megadva, a válaszok alapértelmezés szerint angol nyelvűek (en).
Ha nincs megadva language paraméter, az API angol nyelven (en) adja vissza a válaszokat.
Fő világnyelvek
| Kód | Nyelv | Natív név |
|---|---|---|
en | Angol | English |
zh | Kínai | 中文 |
es | Spanyol | Español |
ar | Arab | العربية |
hi | Hindi | हिन्दी |
pt | Portugál | Português |
ru | Orosz | Русский |
ja | Japán | 日本語 |
fr | Francia | Français |
de | Német | Deutsch |
ko | Koreai | 한국어 |
tr | Török | Türkçe |
Európai nyelvek
| Kód | Nyelv | Natív név |
|---|---|---|
it | Olasz | Italiano |
nl | Holland | Nederlands |
pl | Lengyel | Polski |
el | Görög | Ελληνικά |
sv | Svéd | Svenska |
no | Norvég | Norsk |
da | Dán | Dansk |
fi | Finn | Suomi |
cs | Cseh | Čeština |
uk | Ukrán | Українська |
ro | Román | Română |
hu | Magyar | Magyar |
bg | Bolgár | Български |
hr | Horvát | Hrvatski |
sk | Szlovák | Slovenčina |
sl | Szlovén | Slovenščina |
sr | Szerb | Српски |
lt | Litván | Lietuvių |
lv | Lett | Latviešu |
et | Észt | Eesti |
ca | Katalán | Català |
eu | Baszk | Euskara |
gl | Galíciai | Galego |
cy | Walesi | Cymraeg |
ga | Ír | Gaeilge |
is | Izlandi | Íslenska |
mt | Máltai | Malti |
sq | Albán | Shqip |
mk | Macedón | Македонски |
bs | Bosnyák | Bosanski |
lb | Luxemburgi | Lëtzebuergesch |
be | Belarusz | Беларуская |
Közel-keleti és közép-ázsiai nyelvek
| Kód | Nyelv | Natív név |
|---|---|---|
he | Héber | עברית |
fa | Perzsa | فارسی |
az | Azerbajdzsáni | Azərbaycan |
ka | Grúz | ქართული |
hy | Örmény | Հայերdelays |
kk | Kazah | Қазақша |
uz | Üzbég | Oʻzbek |
tg | Tádzsik | Тоҷикӣ |
ky | Kirgiz | Кыргызча |
tk | Türkmén | Türkmen |
mn | Mongol | Монгол |
ps | Pastu | پښتو |
ku | Kurd | Kurdî |
Dél-ázsiai nyelvek
| Kód | Nyelv | Natív név |
|---|---|---|
bn | Bengáli | বাংলা |
ta | Tamil | தமிழ் |
te | Telugu | తెలుగు |
mr | Maráthi | मराठी |
gu | Gudzsaráti | ગુજરાતી |
kn | Kannada | ಕನ್ನಡ |
ml | Malajálam | മലയാളം |
pa | Pandzsábi | ਪੰਜਾਬੀ |
ur | Urdu | اردو |
ne | Nepáli | नेपाली |
si | Szingaléz | සිංහල |
sd | Szindhi | سنڌي |
as | Asszámi | অসমীয়া |
or | Odia | ଓଡ଼ିଆ |
Délkelet-ázsiai nyelvek
| Kód | Nyelv | Natív név |
|---|---|---|
id | Indonéz | Bahasa Indonesia |
th | Thai | ไทย |
vi | Vietnámi | Tiếng Việt |
ms | Maláj | Bahasa Melayu |
my | Mianmari (burmai) | မြန်မာ |
km | Khmer | ភាសាខ្មែរ |
lo | Laoszi | ລາວ |
fil | Filippínó | Filipino |
tl | Tagalog | Tagalog |
jv | Jávai | Basa Jawa |
su | Szundai | Basa Sunda |
Afrikai nyelvek
| Kód | Nyelv | Natív név |
|---|---|---|
af | Afrikánsz | Afrikaans |
sw | Szuahéli | Kiswahili |
am | Amhara | አማርኛ |
ha | Hausza | Hausa |
yo | Joruba | Yorùbá |
ig | Igbo | Igbo |
zu | Zulu | isiZulu |
xh | Hosza | isiXhosa |
so | Szomáli | Soomaali |
mg | Malgas | Malagasy |
Egyéb nyelvek
| Kód | Nyelv | Natív név |
|---|---|---|
la | Latin | Latina |
eo | Eszperantó | Esperanto |
yi | Jiddis | ייִדיש |
ht | Haiti kreol | Kreyòl Ayisyen |
mi | Maori | Te Reo Māori |
sm | Szamoai | Gagana Samoa |
to | Tongai | Lea Faka-Tonga |
haw | Hawaii | ʻŌlelo Hawaiʻi |
Vérvizsgálat-elemzési API
Elemezzen vérvizsgálati képeket vagy PDF-eket AI segítségével a paraméterek kinyeréséhez és átfogó orvosi értelmezések generálásához.
Éles végpont a vérvizsgálat elemzéséhez. Töltsön fel egy vagy több vérvizsgálati képet vagy egy PDF-et, és kapjon strukturált paramétereket, páciens- és laboratóriumi metaadatokat, valamint teljes klinikai értelmezést a 100 támogatott nyelv bármelyikén. Kérésenként 1 kreditet fogyaszt.
Kérés paraméterei
| Paraméter | Típus | Kötelező | Leírás |
|---|---|---|---|
username | string | Igen | Az Ön API felhasználóneve |
password | string | Igen | Az Ön API jelszava |
file | file | Igen | Vérvizsgálati kép (PNG, JPG, WEBP) vagy PDF. Max 20MB. Ismételje meg a mezőt több kép küldéséhez. |
language | string | Nem | Válasz nyelvkód (alapértelmezett: en). Lásd a támogatott nyelveket. |
pdf_password | string | Nem | Jelszó titkosított PDF-ekhez |
cURL példa
curl -X POST "https://app.aibloodtestinterpret.com/api/v12/18-09-2026/analyze" \
-F "username=YOUR_USERNAME" \
-F "password=YOUR_PASSWORD" \
-F "language=en" \
-F "file=@blood_test.pdf"
Python példa
import requests
def analyze_blood_test(file_paths, username, password, language="en"):
"""
Analyze a blood test with Kantesti Blood Test Analysis v12.
Args:
file_paths: One or more paths to blood test images, or a single PDF
username: API username
password: API password
language: Report language code (default: en)
Returns:
dict: Structured parameters, metadata and clinical interpretation
"""
url = "https://app.aibloodtestinterpret.com/api/v12/18-09-2026/analyze"
handles = [open(path, "rb") for path in file_paths]
try:
files = [("file", (path, handle)) for path, handle in zip(file_paths, handles)]
data = {"username": username, "password": password, "language": language}
response = requests.post(url, files=files, data=data, timeout=300)
response.raise_for_status()
return response.json()
finally:
for handle in handles:
handle.close()
# Használati példa
if __name__ == "__main__":
result = analyze_blood_test(
file_paths=["blood_test.pdf"],
username="your_username",
password="your_password",
language="en"
)
print(f"Status: {result['status']}")
for param in result["data"]["parameters"]:
print(f" {param['short_name']}: {param['result']} {param['unit']} ({param['evaluation']})")
Válasz példa
{
"status": "success",
"api_version": "v12",
"data": {
"metadata": {
"patient_name": "Jan Novak",
"patient_age": "45",
"patient_sex": "Male",
"lab_name": "BioLAB Medical Center",
"lab_city": "Prague",
"lab_country": "Czech Republic",
"lab_date": "2026-09-11",
"results_date": "2026-09-12"
},
"parameters": [
{"short_name": "Glucose", "long_name": "Fasting Blood Glucose", "result": "92", "unit": "mg/dL", "reference_range": "74 - 100", "range_normal_min": 74, "range_normal_max": 100, "type": "range", "evaluation": "normal"},
{"short_name": "ALT", "long_name": "Alanine aminotransferase", "result": "65", "unit": "U/L", "reference_range": "< 45", "range_normal_min": 7, "range_normal_max": 45, "type": "range", "evaluation": "high"},
{"short_name": "Creatinine", "long_name": "Creatinine", "result": "0.9", "unit": "mg/dL", "reference_range": "0.7 - 1.2", "range_normal_min": 0.7, "range_normal_max": 1.2, "type": "range", "evaluation": "normal"}
],
"interpretation": [
{"shortcode": "overview", "item": "Most parameters are within their reference ranges."},
{"shortcode": "key_findings", "item": "Alanine aminotransferase is above the reference range, which warrants a follow-up liver panel."}
]
},
"timestamp": "2026-09-18T10:30:00Z"
}
Éles végpont a vérvizsgálat elemzéséhez. Kérésenként 1 kreditet fogyaszt.
Kérés paraméterei
| Paraméter | Típus | Kötelező | Leírás |
|---|---|---|---|
username | string | Igen | Az Ön API felhasználóneve |
password | string | Igen | Az Ön API jelszava |
file | file | Igen | Vérvizsgálati kép (PNG, JPG, WEBP) vagy PDF. Max 20MB. |
language | string | Nem | Válasz nyelvkód (alapértelmezett: en). Lásd a támogatott nyelveket. |
cURL példa
curl -X POST "https://app.aibloodtestinterpret.com/api/v11/01-06-2025/analyze" \
-F "username=YOUR_USERNAME" \
-F "password=YOUR_PASSWORD" \
-F "language=en" \
-F "file=@blood_test.pdf"
Python példa
import requests
def analyze_blood_test(file_path: str, username: str, password: str, language: str = "en"):
"""
Analyze a blood test file using Kantesti API.
Args:
file_path: Path to the blood test PDF or image
username: API username
password: API password
language: Response language code (default: en)
Returns:
dict: API response with analysis results
"""
url = "https://app.aibloodtestinterpret.com/api/v11/01-06-2025/analyze"
with open(file_path, "rb") as f:
files = {"file": (file_path, f, "application/pdf")}
data = {
"username": username,
"password": password,
"language": language
}
response = requests.post(url, files=files, data=data, timeout=120)
response.raise_for_status()
return response.json()
# Használati példa
if __name__ == "__main__":
result = analyze_blood_test(
file_path="blood_test.pdf",
username="your_username",
password="your_password",
language="en"
)
print(f"Status: {result['status']}")
print(f"Parameters found: {len(result['data']['parameters'])}")
C++ példa (libcurl)
#include <iostream>
#include <string>
#include <curl/curl.h>
size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* userp) {
userp->append((char*)contents, size * nmemb);
return size * nmemb;
}
std::string analyzeBloodTest(const std::string& filePath,
const std::string& username,
const std::string& password,
const std::string& language = "en") {
CURL* curl = curl_easy_init();
std::string response;
if (curl) {
curl_mime* form = curl_mime_init(curl);
curl_mimepart* field;
// Add username
field = curl_mime_addpart(form);
curl_mime_name(field, "username");
curl_mime_data(field, username.c_str(), CURL_ZERO_TERMINATED);
// Add password
field = curl_mime_addpart(form);
curl_mime_name(field, "password");
curl_mime_data(field, password.c_str(), CURL_ZERO_TERMINATED);
// Add language
field = curl_mime_addpart(form);
curl_mime_name(field, "language");
curl_mime_data(field, language.c_str(), CURL_ZERO_TERMINATED);
// Add file
field = curl_mime_addpart(form);
curl_mime_name(field, "file");
curl_mime_filedata(field, filePath.c_str());
curl_easy_setopt(curl, CURLOPT_URL,
"https://app.aibloodtestinterpret.com/api/v11/01-06-2025/analyze");
curl_easy_setopt(curl, CURLOPT_MIMEPOST, form);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
curl_easy_setopt(curl, CURLOPT_TIMEOUT, 120L);
CURLcode res = curl_easy_perform(curl);
curl_mime_free(form);
curl_easy_cleanup(curl);
}
return response;
}
int main() {
std::string result = analyzeBloodTest("blood_test.pdf", "username", "password");
std::cout << result << std::endl;
return 0;
}
Postman konfiguráció
{
"info": {
"name": "Kantesti Blood Test API",
"schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json"
},
"item": [
{
"name": "Analyze Blood Test",
"request": {
"method": "POST",
"header": [],
"body": {
"mode": "formdata",
"formdata": [
{"key": "username", "value": "{{api_username}}", "type": "text"},
{"key": "password", "value": "{{api_password}}", "type": "text"},
{"key": "language", "value": "en", "type": "text"},
{"key": "file", "type": "file", "src": "/path/to/blood_test.pdf"}
]
},
"url": {
"raw": "https://app.aibloodtestinterpret.com/api/v11/01-06-2025/analyze",
"protocol": "https",
"host": ["app", "aibloodtestinterpret", "com"],
"path": ["api", "v11", "01-06-2025", "analyze"]
}
}
}
]
}
Válasz példa
{
"status": "success",
"data": {
"metadata": {
"patient_name": "Jan Novák",
"lab_name": "BioLAB Medical Center",
"lab_city": "Prague",
"lab_country": "Czech Republic",
"lab_date": "2025-05-11",
"patient_age": "45",
"patient_sex": "Male"
},
"parameters": [
{
"short_name": "WBC",
"long_name": "White Blood Cell Count",
"category": "Complete Blood Count",
"result": 7.2,
"unit": "10^9/L",
"evaluation": "normal",
"range_min": 2.0,
"range_max": 12.0,
"range_normal_min": 4.0,
"range_normal_max": 10.0,
"short_description": "Measures the total white blood cells in blood.",
"long_description": "White blood cells (leukocytes) are essential for immune function..."
},
{
"short_name": "HGB",
"long_name": "Hemoglobin",
"category": "Complete Blood Count",
"result": 14.5,
"unit": "g/dL",
"evaluation": "normal",
"range_min": 10.0,
"range_max": 18.0,
"range_normal_min": 13.5,
"range_normal_max": 17.5,
"short_description": "Protein in red blood cells that carries oxygen.",
"long_description": "Hemoglobin is the iron-containing protein responsible for oxygen transport..."
}
],
"interpretation": [
{
"title": "Overall Health Assessment",
"shortcode": "overall_health_assessment",
"subsections": [
{
"subtitle": "Comprehensive Overview",
"shortcode": "overall_health_assessment_overview",
"items": [
{"item": "The patient demonstrates preserved overall organ function with normal hematological parameters."},
{"item": "No significant abnormalities detected in the complete blood count."}
]
}
]
}
]
},
"api_version": "v11",
"timestamp": "2025-12-22T10:30:00Z"
}
Válasz mezői hivatkozás
Gyökérszint
| Mező | Típus | Leírás |
|---|---|---|
status | string | "success" vagy "error" |
data | object | Minden elemzési eredményt tartalmaz |
timestamp | string | Válasz ISO 8601 időbélyege |
api_version | string | Feldolgozáshoz használt API-verzió |
data.metadata objektum
| Mező | Típus | Leírás |
|---|---|---|
lab_date | string | Vérvétel dátuma (YYYY-MM-DD) |
results_date | string | Eredmények kiadási dátuma (YYYY-MM-DD) |
lab_name | string | Laboratórium neve |
lab_city | string | Laboratórium városa |
lab_country | string | Laboratórium országa |
patient_name | string | Páciens teljes neve (csak metaadat, nincs elküldve az értelmezéshez) |
patient_age | string | Páciens életkora |
patient_sex | string | "male", "female" vagy "other" |
data.parameters tömb elem
| Mező | Típus | Leírás |
|---|---|---|
category | string | Paraméter kategória (pl. "Complete Blood Count", "Lipid Panel") |
long_name | string | Teljes paraméternév |
short_name | string | Rövidített paraméternév |
result | string | Mért érték |
unit | string | Mértékegység |
range_min | string | Minimális referencia-tartomány |
range_max | string | Maximális referencia-tartomány |
evaluation | string | Eredmény állapota. Lásd az értékelési értékeket |
data.interpretation tömb elem
| Mező | Típus | Leírás |
|---|---|---|
title | string | Szakasz címe (pl. "Overall Health Assessment") |
content | string | AI-generált orvosi értelmezés |
Teljes válasz példa
{
"status": "success",
"data": {
"metadata": {
"patient_name": "Anna Müller",
"lab_name": "MedLab Diagnostics International",
"lab_city": "Munich",
"lab_country": "Germany",
"lab_date": "2025-12-15",
"results_date": "2025-12-16",
"patient_age": "38",
"patient_sex": "female"
},
"parameters": [
{
"short_name": "WBC",
"long_name": "White Blood Cell Count",
"category": "Complete Blood Count",
"result": "6.8",
"unit": "10^9/L",
"evaluation": "normal",
"range_min": "4.0",
"range_max": "11.0",
"range_normal_min": "4.5",
"range_normal_max": "10.0",
"short_description": "Measures the total number of white blood cells.",
"long_description": "White blood cells (leukocytes) are essential components of the immune system..."
},
{
"short_name": "RBC",
"long_name": "Red Blood Cell Count",
"category": "Complete Blood Count",
"result": "4.52",
"unit": "10^12/L",
"evaluation": "normal",
"range_min": "3.8",
"range_max": "5.8",
"range_normal_min": "4.0",
"range_normal_max": "5.5",
"short_description": "Measures the total number of red blood cells.",
"long_description": "Red blood cells (erythrocytes) carry oxygen from the lungs to body tissues..."
},
{
"short_name": "HGB",
"long_name": "Hemoglobin",
"category": "Complete Blood Count",
"result": "13.2",
"unit": "g/dL",
"evaluation": "normal",
"range_min": "11.5",
"range_max": "16.0",
"range_normal_min": "12.0",
"range_normal_max": "15.5",
"short_description": "Protein in red blood cells that carries oxygen.",
"long_description": "Hemoglobin is the iron-containing protein in red blood cells responsible for oxygen transport..."
},
{
"short_name": "HCT",
"long_name": "Hematocrit",
"category": "Complete Blood Count",
"result": "39.8",
"unit": "%",
"evaluation": "normal",
"range_min": "35.0",
"range_max": "47.0",
"range_normal_min": "36.0",
"range_normal_max": "44.0",
"short_description": "Percentage of blood volume occupied by red blood cells.",
"long_description": "Hematocrit measures the proportion of blood that consists of red blood cells..."
},
{
"short_name": "PLT",
"long_name": "Platelet Count",
"category": "Complete Blood Count",
"result": "245",
"unit": "10^9/L",
"evaluation": "normal",
"range_min": "150",
"range_max": "400",
"range_normal_min": "150",
"range_normal_max": "350",
"short_description": "Measures the number of platelets in blood.",
"long_description": "Platelets (thrombocytes) are essential for blood clotting and wound healing..."
},
{
"short_name": "GLU",
"long_name": "Fasting Glucose",
"category": "Metabolic Panel",
"result": "102",
"unit": "mg/dL",
"evaluation": "borderline_high",
"range_min": "70",
"range_max": "140",
"range_normal_min": "70",
"range_normal_max": "99",
"short_description": "Measures blood sugar level after fasting.",
"long_description": "Fasting glucose is a key indicator of how well the body metabolizes sugar..."
},
{
"short_name": "TC",
"long_name": "Total Cholesterol",
"category": "Lipid Panel",
"result": "218",
"unit": "mg/dL",
"evaluation": "borderline_high",
"range_min": "0",
"range_max": "300",
"range_normal_min": "0",
"range_normal_max": "200",
"short_description": "Measures total cholesterol in blood.",
"long_description": "Total cholesterol is the sum of HDL, LDL, and VLDL cholesterol levels..."
},
{
"short_name": "HDL",
"long_name": "HDL Cholesterol",
"category": "Lipid Panel",
"result": "58",
"unit": "mg/dL",
"evaluation": "normal",
"range_min": "35",
"range_max": "100",
"range_normal_min": "50",
"range_normal_max": "90",
"short_description": "Measures 'good' cholesterol level.",
"long_description": "HDL (high-density lipoprotein) cholesterol helps remove other forms of cholesterol..."
},
{
"short_name": "LDL",
"long_name": "LDL Cholesterol",
"category": "Lipid Panel",
"result": "142",
"unit": "mg/dL",
"evaluation": "high",
"range_min": "0",
"range_max": "200",
"range_normal_min": "0",
"range_normal_max": "100",
"short_description": "Measures 'bad' cholesterol level.",
"long_description": "LDL (low-density lipoprotein) cholesterol can build up in artery walls..."
},
{
"short_name": "TRIG",
"long_name": "Triglycerides",
"category": "Lipid Panel",
"result": "156",
"unit": "mg/dL",
"evaluation": "borderline_high",
"range_min": "0",
"range_max": "500",
"range_normal_min": "0",
"range_normal_max": "150",
"short_description": "Measures fat in the blood.",
"long_description": "Triglycerides are a type of fat found in the blood that stores excess energy..."
}
],
"interpretation": [
{
"title": "Overall Health Assessment",
"shortcode": "overall_health_assessment",
"subsections": [
{
"subtitle": "Comprehensive Overview",
"shortcode": "overall_health_assessment_overview",
"items": [
{"item": "The patient demonstrates generally healthy hematological parameters with all blood count values within normal ranges."},
{"item": "Complete blood count results indicate adequate oxygen-carrying capacity and immune function."},
{"item": "Lipid panel shows areas requiring attention, particularly LDL cholesterol levels."}
]
}
]
},
{
"title": "Metabolic Analysis",
"shortcode": "metabolic_analysis",
"subsections": [
{
"subtitle": "Blood Sugar Assessment",
"shortcode": "metabolic_analysis_glucose",
"items": [
{"item": "Fasting glucose at 102 mg/dL is slightly elevated, indicating pre-diabetic range."},
{"item": "Recommend lifestyle modifications including regular exercise and reduced simple carbohydrate intake."},
{"item": "Follow-up HbA1c testing recommended in 3 months to assess long-term glucose control."}
]
}
]
},
{
"title": "Cardiovascular Risk Assessment",
"shortcode": "cardiovascular_risk",
"subsections": [
{
"subtitle": "Lipid Profile Analysis",
"shortcode": "cardiovascular_risk_lipids",
"items": [
{"item": "LDL cholesterol at 142 mg/dL exceeds optimal levels and warrants intervention."},
{"item": "HDL cholesterol at 58 mg/dL provides moderate cardiovascular protection."},
{"item": "Triglycerides slightly elevated; consider dietary modifications to reduce saturated fat intake."},
{"item": "Total cholesterol to HDL ratio of 3.76 indicates moderate cardiovascular risk."}
]
}
]
},
{
"title": "Recommendations",
"shortcode": "recommendations",
"subsections": [
{
"subtitle": "Lifestyle Modifications",
"shortcode": "recommendations_lifestyle",
"items": [
{"item": "Increase aerobic physical activity to at least 150 minutes per week."},
{"item": "Adopt a Mediterranean-style diet rich in vegetables, fruits, and healthy fats."},
{"item": "Limit processed foods, saturated fats, and added sugars."},
{"item": "Consider consultation with a nutritionist for personalized dietary guidance."}
]
},
{
"subtitle": "Follow-up Testing",
"shortcode": "recommendations_followup",
"items": [
{"item": "Repeat lipid panel in 3 months after implementing lifestyle changes."},
{"item": "HbA1c test recommended to assess average blood glucose levels."},
{"item": "Annual comprehensive metabolic panel for ongoing monitoring."}
]
}
]
}
]
},
"api_version": "v11",
"timestamp": "2025-12-16T14:32:18Z"
}
Az evaluation mező szabványosított értékeket használ. Lásd az értékelési értékeket.
Éles végpont átfogó egészségügyi pontszám számítással és betegségkockázat-elemzéssel. Ugyanazt a kérést fogadja, mint az /api/v12/18-09-2026/analyze, és az alábbi mezőkkel egészíti ki a választ. Kérésenként 1 kreditet fogyaszt.
cURL példa
curl -X POST "https://app.aibloodtestinterpret.com/api/v12/health-score/analyze" \
-F "username=YOUR_USERNAME" \
-F "password=YOUR_PASSWORD" \
-F "language=en" \
-F "file=@blood_test.pdf"
További válasz mezők
{
"health_score": {
"overall": 78,
"optimal": 4,
"normal": 12,
"warning": 3,
"critical": 1,
"total_parameters": 20,
"score_interpretation": "good",
"recommendations": [
"Consider increasing vitamin D intake",
"Schedule follow-up for cholesterol levels"
]
},
"disease_risks": [
{"name": "Cardiovascular Disease", "percentage": "18%", "severity": "low"},
{"name": "Type 2 Diabetes", "percentage": "12%", "severity": "low"},
{"name": "Metabolic Syndrome", "percentage": "25%", "severity": "moderate"}
]
}
A score_interpretation mező szabványosított értékeket használ. Lásd az egészségügyi pontszám értékeit.
Éles végpont átfogó egészségügyi pontszám számítással és betegségkockázat-elemzéssel.
További válasz mezők
{
"health_score": {
"overall": 78,
"optimal": 4,
"normal": 12,
"warning": 3,
"critical": 1,
"total_parameters": 20,
"score_interpretation": "good",
"recommendations": [
"Consider increasing vitamin D intake",
"Schedule follow-up for cholesterol levels"
]
},
"disease_risks": [
{"name": "Cardiovascular Disease", "percentage": "18%", "severity": "low"},
{"name": "Type 2 Diabetes", "percentage": "12%", "severity": "low"},
{"name": "Metabolic Syndrome", "percentage": "25%", "severity": "moderate"}
]
}
A score_interpretation mező szabványosított értékeket használ. Lásd az egészségügyi pontszám értékeit.
Sandbox végpontok
A Sandbox végpontok valósághű teszt adatokat adnak vissza API kvóta fogyasztása nélkül. Használja őket fejlesztéshez és integrációteszteléshez.
- Nincs kvóta fogyasztás
- Valósághű teszt adatokat ad vissza
- Ugyanaz a kérésformátum, mint az éles rendszeren
- Tesztelje az integrációt az éles indítás előtt
- Minden API verzióhoz elérhető
| API | Sandbox végpont |
|---|---|
| Vérvizsgálat v12 | /api/v12/18-09-2026/sandbox |
| Vérvizsgálat v12-health | /api/v12/health-score/sandbox |
| Testtérkép | /api/v1/body-map/sandbox |
| Biológiai vérkor | /api/v1/blood-age/sandbox |
| DNS-teszt-értelmezés | /api/v1/dna-interpretation/sandbox |
| DNS + vér egészségjelentés | /api/v1/dna-blood-report/sandbox |
| DNS-alapú étrend-kiegészítő tanácsadó | /api/v1/dna-supplements/sandbox |
| Vérvizsgálat v11 | /api/v11/01-06-2025/sandbox |
| Vérvizsgálat v11-health | /api/v11/health-score/sandbox |
| Táplálkozási AI | /api/v1/nutrition/diet-plan/sandbox |
| Vérvizsgálat-összehasonlítás | /api/v1/bloodtest/comparison/sandbox |
| Trendelemzés | /api/v1/analytics/trends/sandbox |
| ICR kinyerés | /api/icr/v1/sandbox |
| ICR Kan (vérvizsgálat) | /api/icr/v1/kan/sandbox |
Válassza ki a megfelelő API-t a felhasználási esetéhez:
| Funkció | AI vérvizsgálat-összehasonlítás | Trendelemzés |
|---|---|---|
| Elsődleges fókusz | AI narratív összehasonlítás | Statisztikai trendelemzés |
| AI feldolgozás | Teljes AI narratíva | AI-javított + statisztikák |
| Kimeneti típus | Narratív összefoglalók | Diagramok, statisztikák, minták |
| Legjobb ehhez | Mi változott a vizsgálatok között | Hosszú távú paraméter-követés |
| Min. vizsgálatok | 2 | 2 |
| Max. vizsgálatok | 20 | 50 |
Trendelemzési API
Elemezze az egészségügyi paraméterek trendjeit idővel, AI-alapú mintafelismerés segítségével. Azonosítsa a javulásokat, romlásokat és gyakorlati betekintéseket a korábbi vérvizsgálati adatokból.
Elemzi a vérvizsgálati paraméter trendeket több vizsgálati dátumon át minták azonosítására és egészségügyi betekintések nyújtására.
Kérés paraméterei
| Paraméter | Típus | Kötelező | Leírás |
|---|---|---|---|
username | string | Igen | Az Ön API felhasználóneve |
password | string | Igen | Az Ön API jelszava |
language | string | Nem | Válasz nyelve (alapértelmezett: en). Lásd a támogatott nyelveket. |
blood_tests | array | Igen | Vérvizsgálati objektumok tömbje (min: 2, max: 50) |
analysis_type | string | Nem | Elemzés típusa. Lásd az értékeket. |
analysis_options | object | Nem | Elemzés konfigurációs beállítások |
analysis_options objektum
| Mező | Típus | Alapértelmezett | Leírás |
|---|---|---|---|
include_predictions | boolean | true | AI trend előrejelzések felvétele |
include_statistics | boolean | true | Statisztikai elemzés felvétele (átlag, min, max, szórás) |
include_charts | boolean | true | Diagram konfigurációs adatok felvétele megjelenítéshez |
blood_tests tömb szerkezete
- Minimum: 2 vérvizsgálat szükséges
- Maximum: 50 vérvizsgálat kérésenként
- Minden vizsgálatnak rendelkeznie kell
lab_dateVAGYresults_datemezővel - Használjon következetes paraméterneveket minden vizsgálatban a pontos trendkövetéshez
| Mező | Típus | Kötelező | Leírás |
|---|---|---|---|
lab_date | string | Igen* | Vizsgálat dátuma YYYY-MM-DD formátumban |
results_date | string | Igen* | Alternatíva a lab_date mezőhöz (YYYY-MM-DD) |
parameters | array | Igen | Vérvizsgálati paraméterek tömbje |
metadata | object | Nem | További metaadatok (lab_name, notes stb.) |
*Minden vérvizsgálathoz szükséges lab_date vagy results_date.
blood_tests[].parameters tömb szerkezete
| Mező | Típus | Kötelező | Leírás |
|---|---|---|---|
name | string | Igen | Paraméter neve (használjon következetes elnevezést minden vizsgálatban!) |
short_name | string | Nem | Rövid paraméterkód (pl. HGB, GLU, CHOL) |
value | number | Igen | Mért érték (a result mező is használható) |
unit | string | Igen | Mértékegység (pl. g/dL, mg/dL, %) |
range_min | number | Nem | Minimális referencia-tartomány érték |
range_max | number | Nem | Maximális referencia-tartomány érték |
category | string | Nem | Paraméter kategória (pl. "Lipid Panel", "Complete Blood Count") |
evaluation | string | Nem | Előre értékelt állapot. Lásd az értékelési értékeket |
cURL példa
curl -X POST "https://app.aibloodtestinterpret.com/api/v1/analytics/trends/analyze" \
-H "Content-Type: application/json" \
-d '{
"username": "YOUR_USERNAME",
"password": "YOUR_PASSWORD",
"language": "en",
"analysis_type": "comprehensive",
"analysis_options": {
"include_predictions": true,
"include_statistics": true,
"include_charts": true
},
"blood_tests": [
{
"lab_date": "2024-01-15",
"parameters": [
{"name": "Fasting Glucose", "short_name": "GLU", "value": 98, "unit": "mg/dL"},
{"name": "Hemoglobin A1c", "short_name": "HBA1C", "value": 5.6, "unit": "%"},
{"name": "Total Cholesterol", "short_name": "CHOL", "value": 185, "unit": "mg/dL"},
{"name": "LDL Cholesterol", "short_name": "LDL", "value": 110, "unit": "mg/dL"},
{"name": "HDL Cholesterol", "short_name": "HDL", "value": 52, "unit": "mg/dL"}
]
},
{
"lab_date": "2024-05-20",
"parameters": [
{"name": "Fasting Glucose", "short_name": "GLU", "value": 92, "unit": "mg/dL"},
{"name": "Hemoglobin A1c", "short_name": "HBA1C", "value": 5.4, "unit": "%"},
{"name": "Total Cholesterol", "short_name": "CHOL", "value": 178, "unit": "mg/dL"},
{"name": "LDL Cholesterol", "short_name": "LDL", "value": 102, "unit": "mg/dL"},
{"name": "HDL Cholesterol", "short_name": "HDL", "value": 55, "unit": "mg/dL"}
]
},
{
"lab_date": "2024-09-10",
"parameters": [
{"name": "Fasting Glucose", "short_name": "GLU", "value": 88, "unit": "mg/dL"},
{"name": "Hemoglobin A1c", "short_name": "HBA1C", "value": 5.3, "unit": "%"},
{"name": "Total Cholesterol", "short_name": "CHOL", "value": 168, "unit": "mg/dL"},
{"name": "LDL Cholesterol", "short_name": "LDL", "value": 92, "unit": "mg/dL"},
{"name": "HDL Cholesterol", "short_name": "HDL", "value": 58, "unit": "mg/dL"}
]
},
{
"lab_date": "2024-12-18",
"parameters": [
{"name": "Fasting Glucose", "short_name": "GLU", "value": 85, "unit": "mg/dL"},
{"name": "Hemoglobin A1c", "short_name": "HBA1C", "value": 5.2, "unit": "%"},
{"name": "Total Cholesterol", "short_name": "CHOL", "value": 162, "unit": "mg/dL"},
{"name": "LDL Cholesterol", "short_name": "LDL", "value": 85, "unit": "mg/dL"},
{"name": "HDL Cholesterol", "short_name": "HDL", "value": 62, "unit": "mg/dL"}
]
}
]
}'
Python példa
import requests
from typing import List, Dict, Optional
def analyze_trends(
username: str,
password: str,
blood_tests: List[Dict],
language: str = "en",
analysis_type: str = "comprehensive"
) -> Dict:
"""
Analyze blood test trends over time.
Args:
username: API username
password: API password
blood_tests: List of blood test objects with lab_date and parameters
language: Response language code
analysis_type: comprehensive, quick, or focused
Returns:
dict: Trend analysis results
"""
url = "https://app.aibloodtestinterpret.com/api/v1/analytics/trends/analyze"
payload = {
"username": username,
"password": password,
"language": language,
"analysis_type": analysis_type,
"blood_tests": blood_tests
}
response = requests.post(url, json=payload, timeout=120)
response.raise_for_status()
return response.json()
# Használati példa
if __name__ == "__main__":
blood_tests = [
{
"lab_date": "2025-01-15",
"parameters": [
{"short_name": "HGB", "result": 12.5, "unit": "g/dL"},
{"short_name": "CHOL", "result": 220, "unit": "mg/dL"}
]
},
{
"lab_date": "2025-06-15",
"parameters": [
{"short_name": "HGB", "result": 13.2, "unit": "g/dL"},
{"short_name": "CHOL", "result": 195, "unit": "mg/dL"}
]
},
{
"lab_date": "2025-12-01",
"parameters": [
{"short_name": "HGB", "result": 14.1, "unit": "g/dL"},
{"short_name": "CHOL", "result": 180, "unit": "mg/dL"}
]
}
]
result = analyze_trends(
username="your_username",
password="your_password",
blood_tests=blood_tests
)
print(f"Overall trend: {result['data']['overall_trend']}")
for trend in result['data']['parameter_trends']:
print(f"{trend['parameter']}: {trend['direction']} ({trend['change_percent']}%)")
C++ példa (libcurl + nlohmann/json)
#include <iostream>
#include <string>
#include <curl/curl.h>
#include <nlohmann/json.hpp>
using json = nlohmann::json;
size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* userp) {
userp->append((char*)contents, size * nmemb);
return size * nmemb;
}
std::string analyzeTrends(const std::string& username,
const std::string& password,
const json& bloodTests,
const std::string& language = "en") {
CURL* curl = curl_easy_init();
std::string response;
if (curl) {
json payload = {
{"username", username},
{"password", password},
{"language", language},
{"analysis_type", "comprehensive"},
{"blood_tests", bloodTests}
};
std::string jsonStr = payload.dump();
struct curl_slist* headers = nullptr;
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_URL,
"https://app.aibloodtestinterpret.com/api/v1/analytics/trends/analyze");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, jsonStr.c_str());
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
curl_easy_setopt(curl, CURLOPT_TIMEOUT, 120L);
CURLcode res = curl_easy_perform(curl);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return response;
}
int main() {
json bloodTests = json::array({
{{"lab_date", "2025-01-15"}, {"parameters", {{{"short_name", "HGB"}, {"result", 12.5}, {"unit", "g/dL"}}}}},
{{"lab_date", "2025-06-15"}, {"parameters", {{{"short_name", "HGB"}, {"result", 13.2}, {"unit", "g/dL"}}}}},
{{"lab_date", "2025-12-01"}, {"parameters", {{{"short_name", "HGB"}, {"result", 14.1}, {"unit", "g/dL"}}}}}
});
std::string result = analyzeTrends("username", "password", bloodTests);
std::cout << result << std::endl;
return 0;
}
Válasz mezői hivatkozás
| Mező | Típus | Leírás |
|---|---|---|
analysis_id | string | Egyedi azonosító ehhez az elemzéshez (formátum: TRD-XXXXXXXX) |
analysis_period | object | Időszak részletek: start_date, end_date, span_months, total_tests |
categories | array | Talált paraméter-kategóriák listája (pl. "Lipid Panel", "Complete Blood Count") |
chart_config | object | Diagramhoz kész adatok: dates, raw_dates, simple_dates a megjelenítéshez |
overall_health_trend | object | Összefoglaló, health_risks tömb és ajánlások |
parameter_trends | array | Részletes elemzés paraméterenként statisztikákkal |
risk_factors | array | Azonosított egészségügyi kockázati tényezők |
parameter_trends objektum szerkezete
| Mező | Típus | Leírás |
|---|---|---|
parameter | string | Szabványosított paraméternév |
short_name | string | Rövidített paraméternév |
category | string | Paraméter kategória (pl. "Lipid Panel") |
unit | string | Mértékegység |
trend_data | array | {date, value} objektumok tömbje a diagramhoz |
statistical_analysis | object | average, min, max, standard_deviation, trend_direction, trend_strength |
analysis | object | AI értelmezés: description, significant_variations, trend |
interpretation | string | Ember által olvasható paraméter leírás |
Válasz példa
{
"api_version": "1.0.0",
"status": "success",
"message": "Trend analysis completed successfully",
"timestamp": "2025-12-22T01:12:49.262700Z",
"data": {
"analysis_id": "TRD-49B4C616",
"analysis_period": {
"start_date": "2024-01-15",
"end_date": "2024-12-18",
"span_months": 11,
"total_tests": 4
},
"categories": [
"Metabolic Panel",
"Vitamins",
"Diabetes Markers",
"Iron Studies",
"Lipid Panel",
"Complete Blood Count"
],
"chart_config": {
"dates": ["Jan 2024", "May 2024", "Sep 2024", "Dec 2024"],
"raw_dates": ["2024-01-15", "2024-05-20", "2024-09-10", "2024-12-18"]
},
"language": "en",
"overall_health_trend": {
"summary": "Overall, the blood test parameters show positive trends with improvements in hemoglobin, lipid profile including LDL and HDL cholesterol, vitamin D status, and iron stores.",
"health_risks": [],
"recommendations": []
},
"parameter_trends": [
{
"parameter": "Hemoglobin (Hb)",
"short_name": "Hemoglobin",
"category": "Complete Blood Count",
"unit": "g/dL",
"original_names": ["Hemoglobin", "HGB"],
"trend_data": [
{"date": "2024-01-15", "value": 12.8},
{"date": "2024-05-20", "value": 13.5},
{"date": "2024-09-10", "value": 14.2},
{"date": "2024-12-18", "value": 14.8}
],
"statistical_analysis": {
"average": 13.82,
"min": 12.8,
"max": 14.8,
"standard_deviation": 0.87,
"trend_direction": "upward",
"trend_strength": "moderate"
},
"analysis": {
"description": "Hemoglobin measures the oxygen-carrying protein in red blood cells.",
"significant_variations": "Initially low at 12.8 g/dL, then gradually increased to 14.8 g/dL.",
"trend": "increasing",
"unit": "g/dL"
},
"interpretation": "Hemoglobin measures the oxygen-carrying protein in red blood cells."
},
{
"parameter": "Low-Density Lipoprotein Cholesterol (LDL-C)",
"short_name": "Low-Densit",
"category": "Lipid Panel",
"unit": "mg/dL",
"trend_data": [
{"date": "2024-01-15", "value": 110.0},
{"date": "2024-05-20", "value": 102.0},
{"date": "2024-09-10", "value": 92.0},
{"date": "2024-12-18", "value": 85.0}
],
"statistical_analysis": {
"average": 97.25,
"min": 85.0,
"max": 110.0,
"standard_deviation": 11.0,
"trend_direction": "downward",
"trend_strength": "strong"
},
"analysis": {
"description": "LDL-C is the 'bad' cholesterol associated with increased heart disease risk.",
"significant_variations": "LDL-C shifted from high (110 mg/dL) to normal (85 mg/dL).",
"trend": "decreasing"
}
}
],
"risk_factors": [],
"sandbox_mode": false
}
}
A válasz mezők szabványosított értékeket használnak: trend_direction (lásd az értékeket), trend_strength (lásd az értékeket).
Táplálkozási AI étrend-kiegészítőkkel
Készítsen személyre szabott táplálkozási terveket, étrendi ajánlásokat és étrend-kiegészítő javaslatokat vérvizsgálati elemzés alapján fejlett AI algoritmusokkal.
Átfogó táplálkozási és étrend-kiegészítő ajánlásokat generál vérvizsgálati paraméterek és páciensprofil alapján.
Kérés paraméterei
| Paraméter | Típus | Kötelező | Leírás |
|---|---|---|---|
username | string | Igen | Az Ön API felhasználóneve |
password | string | Igen | Az Ön API jelszava |
language | string | Nem | Válasz nyelve (alapértelmezett: en). Lásd a támogatott nyelveket. |
patient | object | Igen | Betegdemográfia és egészségügyi információk |
blood_test | object | Igen | Vérvizsgálati paraméterek |
health_goals | array | Nem | Egészségügyi célok. Lásd az értékeket. |
dietary_restrictions | array | Nem | Étrendi korlátozások. Lásd az értékeket. |
Beteg objektum séma
Betegdemográfiai objektum gender (lásd az értékeket) és activity_level (lásd az értékeket) mezőkkel.
| Mező | Típus | Kötelező | Alapértelmezett | Leírás |
|---|---|---|---|---|
age | integer | Igen | - | Beteg életkora években (18-120) |
gender | string | Igen | - | Páciens neme. Lásd az értékeket |
weight | number | Nem | null | Súly kg-ban (kalóriaszámításhoz) |
height | number | Nem | null | Magasság cm-ben (BMI számításhoz) |
conditions | array | Nem | [] | Orvosi állapotok (pl. ["diabetes", "hypertension"]) |
allergies | array | Nem | [] | Étel-/étrend-kiegészítő allergiák (pl. ["shellfish", "nuts"]) |
dietary_preferences | array | Nem | [] | Étrendi preferenciák. Lásd az értékeket |
activity_level | string | Nem | "moderate" | Fizikai aktivitási szint. Lásd az értékeket |
dietary_restrictions | array | Nem | [] | Étrendi korlátozások. Lásd az értékeket |
liked_foods | array | Nem | [] | Preferált ételek felvétele (pl. ["salmon", "spinach"]) |
disliked_foods | array | Nem | [] | Kerülendő ételek az ajánlásokban (pl. ["broccoli"]) |
meal_frequency | integer | Nem | 3 | Preferált étkezések naponta (2-6) |
budget | string | Nem | "moderate" | Költségkeret az ajánlásokhoz. Lásd az értékeket |
medications | array | Nem | [] | Jelenlegi gyógyszerek kölcsönhatás-ellenőrzéshez |
{
"age": 45,
"gender": "male",
"weight": 82,
"height": 178,
"activity_level": "moderate",
"medical_conditions": ["hypertension"],
"current_medications": ["lisinopril"],
"allergies": ["shellfish"]
}
cURL példa
curl -X POST "https://app.aibloodtestinterpret.com/api/v1/nutrition/diet-plan/analyze" \
-H "Content-Type: application/json" \
-d '{
"username": "YOUR_USERNAME",
"password": "YOUR_PASSWORD",
"language": "en",
"patient": {
"age": 45,
"gender": "male",
"weight": 82,
"height": 178,
"activity_level": "moderate",
"medical_conditions": ["hypertension"],
"allergies": ["shellfish"]
},
"blood_test": {
"lab_date": "2025-12-01",
"parameters": [
{"short_name": "VITD", "result": 18, "unit": "ng/mL"},
{"short_name": "FER", "result": 25, "unit": "ng/mL"},
{"short_name": "B12", "result": 280, "unit": "pg/mL"},
{"short_name": "CHOL", "result": 210, "unit": "mg/dL"},
{"short_name": "HDL", "result": 42, "unit": "mg/dL"},
{"short_name": "LDL", "result": 140, "unit": "mg/dL"}
]
},
"health_goals": ["lower_cholesterol", "increase_energy"],
"dietary_restrictions": ["low_sodium"]
}'
Python példa
import requests
from typing import Dict, List, Optional
def get_nutrition_plan(
username: str,
password: str,
patient: Dict,
blood_test: Dict,
health_goals: Optional[List[str]] = None,
dietary_restrictions: Optional[List[str]] = None,
language: str = "en"
) -> Dict:
"""
Get personalized nutrition and supplement recommendations.
Args:
username: API username
password: API password
patient: Patient demographics and health info
blood_test: Blood test parameters
health_goals: Optional health goals
dietary_restrictions: Optional dietary restrictions
language: Response language
Returns:
dict: Nutrition plan with supplements
"""
url = "https://app.aibloodtestinterpret.com/api/v1/nutrition/diet-plan/analyze"
payload = {
"username": username,
"password": password,
"language": language,
"patient": patient,
"blood_test": blood_test
}
if health_goals:
payload["health_goals"] = health_goals
if dietary_restrictions:
payload["dietary_restrictions"] = dietary_restrictions
response = requests.post(url, json=payload, timeout=120)
response.raise_for_status()
return response.json()
# Használati példa
if __name__ == "__main__":
patient = {
"age": 45,
"gender": "male",
"weight": 82,
"height": 178,
"activity_level": "moderate",
"medical_conditions": ["hypertension"],
"allergies": ["shellfish"]
}
blood_test = {
"lab_date": "2025-12-01",
"parameters": [
{"short_name": "VITD", "result": 18, "unit": "ng/mL"},
{"short_name": "FER", "result": 25, "unit": "ng/mL"},
{"short_name": "CHOL", "result": 210, "unit": "mg/dL"}
]
}
result = get_nutrition_plan(
username="your_username",
password="your_password",
patient=patient,
blood_test=blood_test,
health_goals=["lower_cholesterol", "increase_energy"]
)
# Print supplement recommendations
for supp in result['data']['supplements']:
print(f"{supp['name']}: {supp['dosage']} - {supp['reason']}")
Válasz példa
{
"status": "success",
"data": {
"nutrition_plan": {
"daily_calories": 2100,
"macros": {
"protein": {"grams": 105, "percentage": 20},
"carbohydrates": {"grams": 236, "percentage": 45},
"fats": {"grams": 82, "percentage": 35}
},
"meal_plan": {
"breakfast": {
"description": "Oatmeal with berries and walnuts",
"calories": 420,
"nutrients": ["fiber", "omega-3", "antioxidants"]
},
"lunch": {
"description": "Grilled salmon salad with olive oil dressing",
"calories": 550,
"nutrients": ["omega-3", "protein", "vitamin D"]
},
"dinner": {
"description": "Lean chicken with quinoa and steamed vegetables",
"calories": 580,
"nutrients": ["protein", "iron", "fiber"]
},
"snacks": [
{"description": "Greek yogurt with almonds", "calories": 180},
{"description": "Apple with almond butter", "calories": 200}
]
}
},
"supplements": [
{
"name": "Vitamin D3",
"dosage": "2000 IU daily",
"reason": "Blood levels at 18 ng/mL indicate deficiency (optimal: 30-50 ng/mL)",
"priority": "high",
"timing": "With breakfast (fat-containing meal)",
"duration": "3-6 months, then retest",
"interactions": []
},
{
"name": "Omega-3 Fish Oil",
"dosage": "1000mg EPA+DHA daily",
"reason": "Support cholesterol optimization and cardiovascular health",
"priority": "medium",
"timing": "With meals",
"duration": "Ongoing",
"interactions": []
},
{
"name": "Coenzyme Q10",
"dosage": "100mg daily",
"reason": "Support energy production and heart health",
"priority": "medium",
"timing": "With breakfast",
"duration": "Ongoing",
"interactions": []
}
],
"dietary_recommendations": [
{
"category": "increase",
"foods": ["fatty fish", "leafy greens", "nuts", "olive oil"],
"reason": "Support vitamin D levels and cardiovascular health"
},
{
"category": "decrease",
"foods": ["processed foods", "red meat", "saturated fats"],
"reason": "Help lower LDL cholesterol"
},
{
"category": "avoid",
"foods": ["shellfish", "high-sodium foods"],
"reason": "Patient allergies and hypertension management"
}
],
"lifestyle_recommendations": [
"30 minutes moderate exercise 5 days/week",
"Sun exposure 15-20 minutes daily for vitamin D",
"Stress management through meditation or yoga"
],
"follow_up": {
"retest_date": "2026-03-01",
"parameters_to_monitor": ["VITD", "CHOL", "HDL", "LDL"]
}
},
"api_version": "v1",
"timestamp": "2025-12-22T10:30:00Z"
}
Válasz mezői hivatkozás
nutrition_plan.educational_insights objektum
| Mező | Típus | Leírás |
|---|---|---|
blood_marker_education | array | Oktatási tartalom a vérmarkereket és jelentőségüket |
nutrition_principles | array | Az elemzésen alapuló alkalmazandó táplálkozási alapelvek |
blood_marker_education tömb elem
| Mező | Típus | Leírás |
|---|---|---|
marker | string | Marker név állapottal (pl. "Ferritin (Low)", "Vitamin D (Deficient)") |
explanation | string | A marker részletes oktatási magyarázata |
normal_range | string | Referencia-tartomány (nemspecifikus, ha alkalmazható) |
food_recommendations.power_foods tömb elem
| Mező | Típus | Leírás |
|---|---|---|
food | string | Étel neve (pl. "Salmon", "Spinach") |
nutrients | array | Fő tápanyagok listája (pl. ["omega-3", "vitamin D", "protein"]) |
serving | string | Ajánlott adag/gyakoriság (pl. "100g, 3x per week") |
why | string | Miért ajánlott ez az étel a vérmarkerek alapján |
supplement_recommendations tömb elem
| Mező | Típus | Leírás |
|---|---|---|
supplement | string | Étrend-kiegészítő neve (pl. "Vitamin D3", "Iron Bisglycinate") |
dosage | string | Ajánlott adagolás (pl. "2000 IU daily", "25mg twice daily") |
timing | string | Mikor vegye be (pl. "With breakfast", "On empty stomach") |
duration | string | Mennyi ideig szedje (pl. "3 months then retest", "Ongoing") |
reason | string | Miért ajánlott a vérmarkerek és egészségügyi célok alapján |
Teljes cURL példa válasszal
curl -X POST "https://app.aibloodtestinterpret.com/api/v1/nutrition/diet-plan/analyze" \
-H "Content-Type: application/json" \
-d '{
"username": "demo_user",
"password": "demo_pass",
"language": "en",
"patient": {
"age": 42,
"gender": "female",
"weight": 68,
"height": 165,
"activity_level": "moderate",
"conditions": ["iron_deficiency_anemia"],
"allergies": ["gluten"],
"dietary_preferences": ["mediterranean"],
"dietary_restrictions": ["gluten_free"],
"liked_foods": ["salmon", "spinach", "quinoa"],
"disliked_foods": ["liver"],
"meal_frequency": 4,
"budget": "moderate",
"medications": ["ferrous_sulfate"]
},
"blood_test": {
"lab_date": "2025-12-20",
"parameters": [
{"short_name": "FER", "result": 12, "unit": "ng/mL"},
{"short_name": "HGB", "result": 10.8, "unit": "g/dL"},
{"short_name": "VITD", "result": 22, "unit": "ng/mL"},
{"short_name": "B12", "result": 320, "unit": "pg/mL"},
{"short_name": "FOLATE", "result": 8.5, "unit": "ng/mL"}
]
},
"health_goals": ["increase_energy", "improve_iron_levels"]
}'
Válasz:
{
"status": "success",
"data": {
"nutrition_plan": {
"daily_calories": 1850,
"macros": {
"protein": {"grams": 92, "percentage": 20},
"carbohydrates": {"grams": 208, "percentage": 45},
"fats": {"grams": 72, "percentage": 35}
},
"educational_insights": {
"blood_marker_education": [
{
"marker": "Ferritin (Low)",
"explanation": "Ferritin is the storage form of iron in your body. Low levels indicate depleted iron stores, which can lead to fatigue, weakness, and anemia. Your current level of 12 ng/mL is below the optimal range.",
"normal_range": "Women: 20-200 ng/mL (optimal: 50-150 ng/mL)"
},
{
"marker": "Hemoglobin (Low)",
"explanation": "Hemoglobin carries oxygen in your red blood cells. Low hemoglobin confirms iron deficiency anemia and explains symptoms like fatigue and shortness of breath.",
"normal_range": "Women: 12.0-16.0 g/dL"
},
{
"marker": "Vitamin D (Insufficient)",
"explanation": "Vitamin D is essential for calcium absorption, immune function, and energy. Your level of 22 ng/mL is insufficient; optimal levels are 40-60 ng/mL.",
"normal_range": "30-100 ng/mL (optimal: 40-60 ng/mL)"
}
],
"nutrition_principles": [
"Pair iron-rich foods with vitamin C sources to enhance absorption",
"Avoid calcium-rich foods and tea/coffee within 2 hours of iron-rich meals",
"Focus on heme iron sources (meat, fish) which absorb better than plant sources",
"Include vitamin D-rich foods and consider sun exposure for synthesis"
]
},
"food_recommendations": {
"power_foods": [
{
"food": "Grass-fed Beef",
"nutrients": ["heme iron", "B12", "zinc", "protein"],
"serving": "120g, 3-4x per week",
"why": "Highest bioavailable iron source to address your ferritin deficiency"
},
{
"food": "Wild Salmon",
"nutrients": ["vitamin D", "omega-3", "protein", "B12"],
"serving": "150g, 2-3x per week",
"why": "Excellent vitamin D source plus omega-3s for inflammation reduction"
},
{
"food": "Spinach with Lemon",
"nutrients": ["non-heme iron", "folate", "vitamin C"],
"serving": "100g cooked, daily",
"why": "Iron plus vitamin C combination maximizes iron absorption"
},
{
"food": "Quinoa",
"nutrients": ["iron", "protein", "fiber", "magnesium"],
"serving": "1 cup cooked, daily",
"why": "Gluten-free grain with good iron content and complete protein"
},
{
"food": "Pumpkin Seeds",
"nutrients": ["iron", "zinc", "magnesium"],
"serving": "30g (2 tbsp), daily",
"why": "Concentrated iron source for snacking, supports energy production"
}
],
"foods_to_limit": [
{"food": "Coffee/Tea with meals", "reason": "Tannins block iron absorption by up to 60%"},
{"food": "Dairy with iron-rich meals", "reason": "Calcium competes with iron for absorption"}
]
}
},
"supplement_recommendations": [
{
"supplement": "Iron Bisglycinate",
"dosage": "25mg elemental iron",
"timing": "Take with vitamin C on empty stomach, 2 hours away from other supplements",
"duration": "3-6 months, retest ferritin after 3 months",
"reason": "Ferritin at 12 ng/mL requires supplementation; bisglycinate form is gentle on stomach",
"priority": "high"
},
{
"supplement": "Vitamin D3",
"dosage": "2000-4000 IU daily",
"timing": "With breakfast (fat-containing meal) for absorption",
"duration": "Ongoing, retest in 3 months to adjust dose",
"reason": "Level of 22 ng/mL is insufficient; goal is 40-60 ng/mL for optimal health",
"priority": "high"
},
{
"supplement": "Vitamin C",
"dosage": "500mg",
"timing": "Take with iron supplement to enhance absorption",
"duration": "While taking iron supplements",
"reason": "Enhances non-heme iron absorption by up to 6x",
"priority": "medium"
}
],
"meal_plan": {
"breakfast": {
"description": "Quinoa porridge with pumpkin seeds, berries, and coconut milk",
"calories": 420,
"key_nutrients": ["iron", "vitamin C", "fiber"]
},
"lunch": {
"description": "Grilled salmon with roasted vegetables and quinoa",
"calories": 520,
"key_nutrients": ["vitamin D", "omega-3", "protein"]
},
"snack": {
"description": "Orange slices with pumpkin seeds and dark chocolate",
"calories": 220,
"key_nutrients": ["vitamin C", "iron", "magnesium"]
},
"dinner": {
"description": "Grass-fed beef stir-fry with spinach and bell peppers",
"calories": 480,
"key_nutrients": ["heme iron", "vitamin C", "B12"]
}
},
"lifestyle_recommendations": [
"Take iron supplements on an empty stomach for best absorption",
"Get 15-20 minutes of midday sun exposure for vitamin D synthesis",
"Space iron supplements 2 hours away from coffee, tea, and calcium",
"Light exercise can help with energy; avoid intense workouts until iron improves"
],
"follow_up": {
"retest_date": "2026-03-20",
"parameters_to_monitor": ["FER", "HGB", "VITD", "iron saturation"],
"expected_improvements": "Ferritin should increase 20-30 ng/mL, hemoglobin normalize to 12+ g/dL"
}
},
"api_version": "v1",
"timestamp": "2025-12-20T14:45:22Z"
}
Vérvizsgálat-összehasonlítási API
Hasonlítson össze több vérvizsgálatot a változások, javulások és figyelmet igénylő területek azonosításához AI-alapú elemzéssel. Kapjon teljes AI narratív összefoglalókat arról, hogy mi változott a vizsgálatok között.
Elemez 2-20 vérvizsgálatot és részletes összehasonlítást nyújt AI által generált narratív betekintésekkel.
- Minimum 2 vérvizsgálat szükséges
- Maximum 20 vérvizsgálat kérésenként
- Minden vizsgálatnak tartalmaznia kell
lab_datevagyresults_datemezőt - Legalább egy közös paraméter a vizsgálatok között
Kérés paraméterei
| Paraméter | Típus | Kötelező | Alapértelmezett | Leírás |
|---|---|---|---|---|
username | string | Igen | - | Az Ön API felhasználóneve |
password | string | Igen | - | Az Ön API jelszava |
language | string | Nem | en | Válasz nyelve. Lásd a támogatott nyelveket |
blood_tests | array | Igen | - | Vérvizsgálati objektumok tömbje (2-20 vizsgálat) |
blood_tests tömb szerkezete
| Mező | Típus | Kötelező | Leírás |
|---|---|---|---|
lab_date | string | Igen* | Vizsgálat dátuma YYYY-MM-DD formátumban |
results_date | string | Igen* | Alternatíva a lab_date mezőhöz (YYYY-MM-DD) |
parameters | array | Igen | Vérvizsgálati paraméterek tömbje |
metadata | object | Nem | További metaadatok (lab_name, notes stb.) |
*Minden vérvizsgálathoz szükséges lab_date vagy results_date.
cURL példa
curl -X POST "https://app.aibloodtestinterpret.com/api/v1/bloodtest/comparison/analyze" \
-H "Content-Type: application/json" \
-d '{
"username": "YOUR_USERNAME",
"password": "YOUR_PASSWORD",
"language": "en",
"blood_tests": [
{
"lab_date": "2025-06-15",
"lab_name": "City Medical Lab",
"parameters": [
{"short_name": "HGB", "result": 12.8, "unit": "g/dL"},
{"short_name": "WBC", "result": 8.2, "unit": "10^9/L"},
{"short_name": "PLT", "result": 245, "unit": "10^9/L"}
]
},
{
"lab_date": "2025-12-15",
"lab_name": "City Medical Lab",
"parameters": [
{"short_name": "HGB", "result": 14.2, "unit": "g/dL"},
{"short_name": "WBC", "result": 7.1, "unit": "10^9/L"},
{"short_name": "PLT", "result": 238, "unit": "10^9/L"}
]
}
]
}'
Python példa
import requests
from typing import Dict, List
def compare_blood_tests(
username: str,
password: str,
blood_tests: List[Dict],
language: str = "en"
) -> Dict:
"""
Compare multiple blood tests with AI-powered narrative analysis.
Args:
username: API username
password: API password
blood_tests: List of blood test objects (2-20 tests)
language: Response language
Returns:
dict: Comparison results with AI narrative insights
"""
url = "https://app.aibloodtestinterpret.com/api/v1/bloodtest/comparison/analyze"
if len(blood_tests) < 2:
raise ValueError("Minimum 2 blood tests required")
if len(blood_tests) > 20:
raise ValueError("Maximum 20 blood tests allowed")
payload = {
"username": username,
"password": password,
"language": language,
"blood_tests": blood_tests
}
response = requests.post(url, json=payload, timeout=120)
response.raise_for_status()
return response.json()
# Használati példa
if __name__ == "__main__":
tests = [
{
"lab_date": "2024-06-15",
"parameters": [
{"short_name": "HGB", "result": 12.2, "unit": "g/dL"},
{"short_name": "CHOL", "result": 235, "unit": "mg/dL"},
{"short_name": "LDL", "result": 155, "unit": "mg/dL"}
]
},
{
"lab_date": "2024-12-15",
"parameters": [
{"short_name": "HGB", "result": 14.5, "unit": "g/dL"},
{"short_name": "CHOL", "result": 185, "unit": "mg/dL"},
{"short_name": "LDL", "result": 98, "unit": "mg/dL"}
]
}
]
result = compare_blood_tests("your_username", "your_password", tests)
print(f"Overall trend: {result['data']['comparison_summary']['overall_trend']}")
for param in result['data']['parameter_analysis']:
print(f"{param['parameter_name']}: {param['trend_assessment']}")
Válasz mezői hivatkozás
| Mező | Típus | Leírás |
|---|---|---|
comparison_id | string | Egyedi azonosító ehhez az összehasonlításhoz (formátum: CMP-XXXXXXXX) |
comparison_summary | object | Általános összefoglaló: key_findings, overall_trend, jelentés dátumok, time_interval |
parameter_analysis | array | Részletes elemzés paraméterenként változástípussal és klinikai jelentőséggel |
health_assessment | object | Aggodalomra okot adó területek, javulások, pozitív fejlemények, kockázati tényezők |
recommendations | object | Követő vizsgálatok, azonnali intézkedések, életmódbeli módosítások, szakorvosi beutalók |
detailed_interpretation | object | AI narratív szakaszok ügyvezetői összefoglalóval és klinikai ajánlásokkal |
parameter_analysis objektum szerkezete
| Mező | Típus | Leírás |
|---|---|---|
parameter_name | string | Paraméternév |
report1_value | string | Érték az első jelentésből egységgel |
report2_value | string | Érték a második jelentésből egységgel |
change_type | string | increased, decreased vagy stable |
change_magnitude | string | significant, moderate vagy minor |
clinical_significance | string | AI magyarázat a változás jelentéséről |
trend_assessment | string | positive, negative vagy neutral |
Válasz példa
{
"api_version": "1.0.0",
"status": "success",
"message": "Blood test comparison completed successfully",
"timestamp": "2025-12-22T01:12:43.057537Z",
"data": {
"comparison_id": "CMP-F4ACEE52",
"tests_compared": 2,
"date_range": {
"earliest": "2024-06-15",
"latest": "2024-12-15",
"span_days": 183
},
"comparison_summary": {
"overall_trend": "improved",
"report1_date": "2024-06-15",
"report2_date": "2024-12-15",
"time_interval": "183 days between reports",
"key_findings": [
"Hemoglobin and RBC levels normalized indicating resolution of anemia",
"Glucose and HbA1c improved to normal range suggesting better glycemic control",
"Lipid profile improved with total cholesterol, LDL, HDL, and triglycerides normalized"
]
},
"parameter_analysis": [
{
"parameter_name": "Hemoglobin",
"report1_value": "12.2 g/dL",
"report2_value": "14.5 g/dL",
"change_type": "increased",
"change_magnitude": "significant",
"clinical_significance": "Improvement from anemia to normal hemoglobin levels",
"trend_assessment": "positive"
},
{
"parameter_name": "LDL Cholesterol",
"report1_value": "155 mg/dL",
"report2_value": "98 mg/dL",
"change_type": "decreased",
"change_magnitude": "significant",
"clinical_significance": "LDL near optimal range, reducing atherosclerosis risk",
"trend_assessment": "positive"
},
{
"parameter_name": "HDL Cholesterol",
"report1_value": "38 mg/dL",
"report2_value": "55 mg/dL",
"change_type": "increased",
"change_magnitude": "significant",
"clinical_significance": "Improved HDL protective against heart disease",
"trend_assessment": "positive"
}
],
"health_assessment": {
"overall_health_trend": "improved",
"areas_of_improvement": [
"Anemia correction",
"Glycemic control",
"Lipid profile normalization",
"Vitamin D and iron status"
],
"areas_of_concern": [],
"positive_developments": [
"Resolution of anemia",
"Normal glucose and HbA1c",
"Improved cardiovascular risk profile"
],
"risk_factors": [
"Previous iron deficiency anemia",
"Prior dyslipidemia",
"History of impaired glucose metabolism"
]
},
"recommendations": {
"immediate_actions": [
"Continue current supplementation for iron and vitamin D",
"Maintain glycemic and lipid control with diet and exercise"
],
"follow_up_tests": [
"Repeat CBC and iron studies in 3 months",
"Monitor fasting glucose and HbA1c quarterly",
"Lipid panel recheck in 6 months"
],
"lifestyle_modifications": [
"Adopt heart-healthy diet low in saturated fats",
"Increase physical activity to maintain metabolic health"
],
"specialist_referrals": [
"Consult hematologist if anemia recurs",
"Endocrinologist referral if glucose control worsens"
],
"monitoring_frequency": "3 months"
},
"detailed_interpretation": {
"sections": [
{
"title": "Executive Summary",
"content": "The patient shows marked improvement in anemia, glucose metabolism, lipid profile, and vitamin status over 6 months."
},
{
"title": "Clinical Recommendations",
"content": "Continue supplementation and lifestyle measures. Monitor blood counts, iron, glucose, and lipids regularly."
}
]
},
"summary": {
"improved_parameters": 13,
"stable_parameters": 0,
"worsened_parameters": 0,
"overall_trend": "improved"
},
"sandbox_mode": false
}
}
A válasz mezők szabványosított értékeket használnak: overall_trend és trend_assessment (lásd a trendértékelést), change_type (increased, decreased, stable).
Kulcsszavak hivatkozás
Teljes hivatkozás a Kantesti API végpontokban használt összes bemeneti kulcsszó értékhez. API-kérések készítésekor pontosan ezeket az értékeket használja.
analysis_type Trendelemzési API
Meghatározza a végrehajtandó trendelemzés típusát.
| Érték | Alapértelmezett | Leírás |
|---|---|---|
comprehensive | ✓ | Teljes elemzés statisztikákkal, diagramokkal és AI értelmezéssel |
statistical | Csak statisztikai elemzés | |
summary | Csak magas szintű összefoglaló |
health_goals Táplálkozási API
Egészségügyi célok személyre szabott táplálkozási ajánlásokhoz. Több érték megadható tömbként.
| Érték | Leírás |
|---|---|
maintain | Jelenlegi egészségi állapot megőrzése (alapértelmezett) |
improve_energy | Fókusz az energiaszintre |
weight_management | Egészséges testsúly kezelés |
heart_health | Kardiovaszkuláris egészség |
immune_support | Immunrendszer támogatás |
digestive_health | Emésztési jóllét |
bone_health | Csont egészség |
mental_clarity | Kognitív funkció |
dietary_restrictions Táplálkozási API
Étrendi korlátozások és allergiák. Több érték megadható tömbként. Egyedi korlátozásokhoz szabad szöveg is elfogadott.
| Érték | Leírás |
|---|---|
low_sodium | Csökkentett nátriumbevitel |
low_sugar | Csökkentett cukorbevitel |
low_fat | Csökkentett zsírbevitel |
gluten_free | Nincs glutén |
dairy_free | Nincs tejtermék |
nut_free | Nincs dió |
soy_free | Nincs szója |
egg_free | Nincs tojás |
halal | Halal-kompatibilis |
kosher | Kóser-kompatibilis |
A fent nem szereplő egyedi étrendi korlátozásokhoz szabad szöveg is elfogadott.
dietary_preferences Táplálkozási API
Étrendi életmód preferenciák az étkezés tervezéséhez.
| Érték | Leírás |
|---|---|
omnivore | Nincs korlátozás (alapértelmezett) |
vegetarian | Nincs hús |
vegan | Nincs állati termék |
pescatarian | Vegetáriánus + hal |
keto | Ketogén diéta |
paleo | Paleolit diéta |
mediterranean | Mediterrán diéta |
activity_level Táplálkozási API
Fizikai aktivitás szintje kalória és táplálkozási számításokhoz.
| Érték | Leírás |
|---|---|
sedentary | Kevés vagy nincs testmozgás |
light | Könnyű edzés heti 1-3 nap |
moderate | Mérsékelt edzés 3-5 nap/hét (alapértelmezett) |
active | Kemény edzés heti 6-7 nap |
very_active | Nagyon kemény edzés vagy fizikai munka |
budget Táplálkozási API
Költségkeret az ételek és étrend-kiegészítők ajánlásaihoz.
| Érték | Leírás |
|---|---|
low | Költségtudatos opciók |
moderate | Kiegyensúlyozott beállítások (alapértelmezett) |
high | Prémium opciók |
gender Minden API
Beteg neme személyre szabott referencia-tartományokhoz és ajánlásokhoz.
| Érték | Leírás |
|---|---|
male | Férfi beteg |
female | Női beteg |
other | Egyéb vagy nem megadott |
Kimeneti kulcsszavak
A következő kulcsszavak jelennek meg az API válaszokban. Ezek értelmezése segít helyesen értelmezni és megjeleníteni az eredményeket.
evaluation Vérvizsgálat és összehasonlítási API-k
Paraméter kiértékelési állapot, jelzi, hogyan viszonyul az eredmény a referencia-tartományokhoz.
| Érték | Leírás |
|---|---|
normal | A normál referencia-tartományon belül |
low | Normális tartomány alatt |
high | Normális tartomány felett |
critical_low | Kritikusan alacsony (azonnali figyelem szükséges) |
critical_high | Kritikusan magas (azonnali figyelem szükséges) |
borderline_low | Enyhén a normál tartomány alatt |
borderline_high | Enyhén a normál tartomány felett |
trend_assessment Összehasonlítási és trend API-k
A paraméter-trendek általános értékelése a vizsgálatok között.
| Érték | Leírás |
|---|---|
positive | Javult (a normál tartomány felé közelít) |
negative | Romlott (eltávolodik a normál tartománytól) |
stable | Viszonylag változatlan a vizsgálatok között |
improving | Általános javuló tendencia |
worsening | Általános romló tendencia |
trend_direction Trendelemzési API
A paraméter értékek változásának iránya az idő múlásával.
| Érték | Leírás |
|---|---|
upward | Az értékek növekednek az idő múlásával |
downward | Az értékek csökkennek az idő múlásával |
stable | Minimális változás az idő múlásával |
trend_strength Trendelemzési API
A megfigyelt trend mértéke.
| Érték | Leírás |
|---|---|
strong | >15% változás az időszakok között |
moderate | 5-15% változás az időszakok között |
mild | <5% változás az időszakok között |
health_score / score_interpretation Egészségügyi pontszám API
Általános egészségügyi pontszám értelmezése az elemzett paraméterek alapján.
| Érték | Leírás |
|---|---|
excellent | Minden marker az optimális tartományon belül |
good | A legtöbb marker a normál tartományban |
fair | Néhány marker figyelmet igényel |
poor | Több marker figyelmet igényel |
Segédprogram végpontok
API platform információkat, elérhető verziókat és támogatott funkciókat ad vissza. Hitelesítés nem szükséges.
Válasz példa
{
"platform": "Kantesti Blood Test Analysis API",
"versions": ["v6", "v8", "v9", "v10", "v11"],
"latest_version": "v11",
"supported_languages": 100,
"documentation": "https://www.kantesti.net/docs/",
"status": "operational"
}
Állapot-ellenőrzés végpont monitorozáshoz. Szolgáltatás állapotát adja vissza. Hitelesítés nem szükséges.
Válasz példa
{
"status": "healthy",
"timestamp": "2025-12-22T10:30:00Z",
"uptime": "99.99%"
}
Ellenőrizze fennmaradó API kvótáját. Hitelesítés szükséges.
cURL példa
curl -X POST "https://app.aibloodtestinterpret.com/api/quota/check" \
-H "Content-Type: application/json" \
-d '{"username": "YOUR_USERNAME", "password": "YOUR_PASSWORD"}'
Válasz példa
{
"status": "success",
"quota": {
"remaining": 847,
"total": 1000,
"reset_date": "2026-01-01",
"plan": "professional"
}
}
Családi egészségkockázat-értékelési API
A Kantesti családi egészségkockázat-értékelési API egy AI-alapú örökletes egészségkockázat-elemző platform. Átfogó családi egészségügyi jelentéseket generál a családi kórtörténet, a páciens egészségügyi profiljainak és a vérvizsgálati adatok elemzésével, hogy azonosítsa az örökletes kockázati tényezőket és személyre szabott megelőző ellátási ajánlásokat nyújtson.
AI-alapú örökletes kockázatelemzés
A Családi egészségügyi API fejlett AI modelleket használ a családi kórtörténet és a páciens vérvizsgálati adatainak kereszthivatkozására, azonosítva az örökletes kockázati mintákat a kardiovaszkuláris, metabolikus, rákos, neurológiai, légzőszervi, autoimmun, genetikai, mentális egészségügyi és vese/máj állapot kategóriákban. A jelentések kockázati pontszámokat, megelőző ellátási ütemterveket, genetikai szűrési ajánlásokat és életmódbeli útmutatást tartalmaznak — mindezt több mint 100 nyelven lokalizálva.
- Örökletes kockázat-elemzés — Magas, közepes és alacsony kockázati besorolás részletes pontozással
- Családfa elemzés — Apai és anyai vonalbeli kockázati feltérképezés kombinált kockázati tényezőkkel
- Vérvizsgálat korreláció — A családi kórtörténet kereszthivatkozása a vérvizsgálati paraméterekkel
- Genetikai szűrési ajánlások — Személyre szabott genetikai vizsgálati javaslatok
- Megelőző ellátás ütemterv — Életkorhoz igazított szűrési ütemtervek a családi kockázat alapján
- Gyógyszer-elemzés — Gyógyszerkölcsönhatás és örökletes érzékenység értékelése
- Több mint 100 nyelv támogatása — Teljes jelentés lokalizáció több mint 100 nyelven
- Sandbox mód — Integráció tesztelése kreditek fogyasztása nélkül
- 9 állapot kategória — Kardiovaszkuláris, metabolikus, rákos, neurológiai, légzőszervi, autoimmun, genetikai, mentális egészségügyi, vese/máj
- 14 családi kapcsolat — Apa, anya, testvérek, nagyszülők, nagybácsik, nagynénik, gyermekek
Végpontok összefoglalója
| Végpont | Metódus | Leírás | Auth |
|---|---|---|---|
/api/v1/family-health/analyze |
POST | Átfogó családi egészségkockázati értékelési jelentés készítése | Kötelező (1 kredit) |
/api/v1/family-health/validate |
POST | Érvényesítse a kérés adatait az elemzés előtt (nincs kvóta fogyasztás) | Kötelező (ingyenes) |
/api/v1/family-health/supported-languages |
GET | Az összes támogatott nyelv (100+) listázása | Nem kötelező |
/api/v1/family-health/condition-categories |
GET | Az összes orvosi állapot-kategória listázása | Nem kötelező |
/api/v1/family-health/family-relations |
GET | Az összes támogatott családi kapcsolat típus listázása | Nem kötelező |
/api/v1/family-health/sandbox/analyze |
POST | Sandbox tesztelés mock adatokkal (nincs kvóta fogyasztás) | Kötelező (ingyenes) |
Átfogó AI-alapú családi egészségkockázat-értékelési jelentést generál. Elemzi a családi kórtörténetet, a páciens egészségügyi profiljait és a vérvizsgálati adatokat az örökletes kockázati tényezők azonosítására, személyre szabott megelőző ellátási ajánlásokkal.
Kérés paraméterei (JSON törzs)
| Paraméter | Típus | Kötelező | Leírás |
|---|---|---|---|
username | string | Igen | Az Ön API felhasználóneve |
password | string | Igen | Az Ön API jelszava |
patient_data | object | Igen | Betegadatok (lásd lent) |
family_members | array | Igen* | Családtag objektumok tömbje (max. 100). *Kötelező, ha health_profile hiányzik |
health_profile | object | Igen* | Páciens egészségügyi profil. *Kötelező, ha family_members hiányzik |
blood_test_data | array | Nem | Vérvizsgálati adat objektumok tömbje korrelációs elemzéshez |
language | string | Nem | Válasz nyelvkód (alapértelmezett: en). Több mint 100 nyelv támogatott |
patient_data objektum
| Mező | Típus | Kötelező | Leírás |
|---|---|---|---|
name | string | Nem | Beteg teljes neve |
age | integer | Igen | Beteg életkora években |
gender | string | Igen | male, female vagy other |
dob | string | Nem | Születési dátum (YYYY-MM-DD) |
family_members tömb elem
| Mező | Típus | Kötelező | Leírás |
|---|---|---|---|
relation | string | Igen | Kapcsolat típusa: father, mother, brother, sister, paternal_grandfather, paternal_grandmother, maternal_grandfather, maternal_grandmother, paternal_uncle, paternal_aunt, maternal_uncle, maternal_aunt, son, daughter |
age | integer | Nem | Családtag életkora |
conditions | array | Nem | Ismert egészségi állapotok tömbje (stringek) |
age_at_diagnosis | integer | Nem | Életkor az állapot diagnosztizálásakor |
deceased | boolean | Nem | A családtag elhunyt-e |
age_at_death | integer | Nem | Halálkor elért életkor (ha elhunyt) |
cause_of_death | string | Nem | Halál oka (ha elhunyt) |
cURL példa
curl -X POST "https://app.aibloodtestinterpret.com/api/v1/family-health/analyze" \
-H "Content-Type: application/json" \
-d '{
"username": "YOUR_USERNAME",
"password": "YOUR_PASSWORD",
"patient_data": {
"name": "Jane Doe",
"age": 42,
"gender": "female",
"dob": "1984-03-15"
},
"family_members": [
{
"relation": "father",
"age": 70,
"conditions": ["hypertension", "type2_diabetes"],
"deceased": false
},
{
"relation": "mother",
"age": 67,
"conditions": ["breast_cancer", "osteoporosis"],
"deceased": false
},
{
"relation": "paternal_grandfather",
"conditions": ["coronary_artery_disease"],
"deceased": true,
"age_at_death": 72,
"cause_of_death": "heart_attack"
}
],
"health_profile": {
"current_medications": ["metformin"],
"allergies": ["penicillin"],
"chronic_conditions": ["prediabetes"],
"lifestyle_factors": ["sedentary", "non_smoker"]
},
"blood_test_data": [
{"parameter": "glucose", "value": 110, "unit": "mg/dL"},
{"parameter": "HbA1c", "value": 5.9, "unit": "%"},
{"parameter": "total_cholesterol", "value": 220, "unit": "mg/dL"}
],
"language": "en"
}'
Python példa
import requests
def family_health_analyze(username: str, password: str, patient_data: dict,
family_members: list = None, health_profile: dict = None,
blood_test_data: list = None, language: str = "en"):
"""
Generate a family health risk assessment report using Kantesti API.
AI-powered hereditary risk analysis with 100+ language support.
Args:
username: API username
password: API password
patient_data: Patient info dict with 'age' and 'gender' (required)
family_members: List of family member dicts with medical history
health_profile: Patient health profile dict
blood_test_data: Optional blood test data for correlation
language: Report language code (default: en)
Returns:
dict: Full family health risk assessment report
"""
url = "https://app.aibloodtestinterpret.com/api/v1/family-health/analyze"
payload = {
"username": username,
"password": password,
"patient_data": patient_data,
"language": language
}
if family_members:
payload["family_members"] = family_members
if health_profile:
payload["health_profile"] = health_profile
if blood_test_data:
payload["blood_test_data"] = blood_test_data
response = requests.post(url, json=payload, timeout=120)
response.raise_for_status()
return response.json()
# Használati példa
if __name__ == "__main__":
result = family_health_analyze(
username="your_username",
password="your_password",
patient_data={"name": "Jane Doe", "age": 42, "gender": "female"},
family_members=[
{"relation": "father", "age": 70, "conditions": ["hypertension", "type2_diabetes"]},
{"relation": "mother", "age": 67, "conditions": ["breast_cancer"]},
],
health_profile={"chronic_conditions": ["prediabetes"]},
blood_test_data=[{"parameter": "glucose", "value": 110, "unit": "mg/dL"}],
language="en"
)
print(f"Status: {result['status']}")
report = result["data"]["report_data"]
print(f"Risk Level: {report['risk_assessment']['overall_risk_level']}")
for category, risk in report["risk_assessment"].items():
if isinstance(risk, dict):
print(f" {category}: {risk.get('level', 'N/A')} (score: {risk.get('score', 'N/A')})")
C++ példa (libcurl)
#include <iostream>
#include <string>
#include <curl/curl.h>
size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* userp) {
userp->append((char*)contents, size * nmemb);
return size * nmemb;
}
std::string familyHealthAnalyze(const std::string& username,
const std::string& password,
const std::string& jsonPayload) {
CURL* curl = curl_easy_init();
std::string response;
if (curl) {
struct curl_slist* headers = NULL;
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_URL,
"https://app.aibloodtestinterpret.com/api/v1/family-health/analyze");
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, jsonPayload.c_str());
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
curl_easy_setopt(curl, CURLOPT_TIMEOUT, 120L);
CURLcode res = curl_easy_perform(curl);
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
return response;
}
int main() {
std::string payload = R"({
"username": "your_username",
"password": "your_password",
"patient_data": {"name": "Jane Doe", "age": 42, "gender": "female"},
"family_members": [
{"relation": "father", "age": 70, "conditions": ["hypertension"]},
{"relation": "mother", "age": 67, "conditions": ["breast_cancer"]}
],
"language": "en"
})";
std::string result = familyHealthAnalyze("user", "pass", payload);
std::cout << result << std::endl;
return 0;
}
Postman példa
Method: POST
URL: https://app.aibloodtestinterpret.com/api/v1/family-health/analyze
Headers:
Content-Type: application/json
Body (raw JSON):
{
"username": "YOUR_USERNAME",
"password": "YOUR_PASSWORD",
"patient_data": {
"age": 42,
"gender": "female"
},
"family_members": [
{"relation": "father", "age": 70, "conditions": ["hypertension"]}
],
"language": "en"
}
Válasz példa
{
"status": "success",
"data": {
"report_data": {
"report_title": "Family Health Risk Assessment Report",
"executive_summary": "Based on family medical history analysis...",
"hereditary_risk_analysis": {
"high_risk": [
{
"condition": "Cardiovascular Disease",
"risk_score": 75,
"contributing_factors": ["Paternal hypertension", "Grandfather coronary artery disease"],
"recommendation": "Regular cardiac screening recommended"
}
],
"moderate_risk": [
{
"condition": "Type 2 Diabetes",
"risk_score": 60,
"contributing_factors": ["Paternal type 2 diabetes", "Elevated glucose levels"],
"recommendation": "Annual HbA1c and fasting glucose monitoring"
}
],
"low_risk": []
},
"medication_analysis": {
"current_medications": ["metformin"],
"hereditary_sensitivities": [],
"recommendations": ["Continue metformin for prediabetes management"]
},
"blood_test_family_correlation": {
"correlated_findings": [
"Elevated glucose (110 mg/dL) correlates with paternal diabetes history",
"Cholesterol level (220 mg/dL) warrants monitoring given cardiovascular family history"
]
},
"genetic_screening_recommendations": [
"BRCA1/BRCA2 genetic testing (maternal breast cancer history)",
"Cardiovascular genetic panel (strong paternal cardiac history)"
],
"lifestyle_recommendations": [
"Adopt heart-healthy Mediterranean diet",
"150 minutes weekly moderate aerobic exercise",
"Maintain healthy BMI (18.5-24.9)"
],
"family_tree_summary": {
"paternal_lineage": {"risk_factors": ["hypertension", "type2_diabetes", "coronary_artery_disease"]},
"maternal_lineage": {"risk_factors": ["breast_cancer", "osteoporosis"]},
"combined_risk_factors": ["cardiovascular", "metabolic", "oncological"]
},
"preventive_care_timeline": [
{"age_range": "40-45", "screenings": ["Annual mammogram", "Cardiac stress test", "HbA1c every 6 months"]},
{"age_range": "45-50", "screenings": ["Colonoscopy baseline", "Bone density scan", "Lipid panel annually"]},
{"age_range": "50+", "screenings": ["Biennial mammogram", "Annual cardiac checkup", "Diabetes screening"]}
]
}
},
"message": "Családi egészségkockázat-értékelés sikeresen befejezve",
"timestamp": "2026-03-23T10:30:00Z",
"api_version": "1.0.0"
}
Családegészség API hibakódok
| Hibakód | HTTP állapot | Leírás |
|---|---|---|
AUTH_1001 | 401 | Hiányzó hitelesítési adatok |
AUTH_1002 | 401 | Érvénytelen felhasználónév vagy jelszó |
QUOTA_1101 | 403 | Elégtelen API kvóta |
QUOTA_1103 | 429 | Sebességkorlát túllépve |
VAL_2001 | 400 | Hiányzó kötelező mező (patient_data.age, patient_data.gender) |
VAL_2002 | 400 | Érvénytelen adatformátum |
VAL_2003 | 400 | Nem támogatott nyelvkód |
VAL_2005 | 400 | A kérés adatai nem lehetnek üresek |
VAL_2006 | 400 | A tömb meghaladja a maximális méretet (max 100 családtag) |
VAL_2007 | 400 | Érvénytelen páciensadat-struktúra |
PROC_3001 | 500 | Jelentés generálása sikertelen |
PROC_3003 | 500 | AI feldolgozási hiba |
SRV_5001 | 500 | Belső szerverhiba |
Ellenőrizze a kérés adatait az elemzésre való benyújtás előtt. Nem fogyaszt kvótát. Használja ezt a végpontot a terhelés szerkezetének ellenőrzésére az /analyze hívása előtt.
cURL példa
curl -X POST "https://app.aibloodtestinterpret.com/api/v1/family-health/validate" \
-H "Content-Type: application/json" \
-d '{
"username": "YOUR_USERNAME",
"password": "YOUR_PASSWORD",
"patient_data": {"age": 42, "gender": "female"},
"family_members": [{"relation": "father", "conditions": ["hypertension"]}],
"language": "en"
}'
Válasz példa
{
"status": "success",
"data": {
"validation": {
"valid": true,
"data_validation": {"valid": true, "error": null},
"language_valid": true
}
},
"message": "Érvényesítés befejezve",
"timestamp": "2026-03-23T10:30:00Z",
"api_version": "1.0.0"
}
Családegészség Sandbox végpont
Tesztelje a családegészség API integrációját kreditek fogyasztása nélkül. A sandbox végpont valósághű minta-jelentés adatokat ad vissza.
| API | Sandbox végpont | Leírás |
|---|---|---|
| Családegészség elemzés | /api/v1/family-health/sandbox/analyze | Mintaadatokat ad vissza a családi egészségkockázati értékelési jelentéshez |
Referencia végpontok (nem szükséges hitelesítés)
Ezek a végpontok referencia-adatokat biztosítanak az integráció építéséhez. Hitelesítés nem szükséges.
| Végpont | Metódus | Leírás |
|---|---|---|
/api/v1/family-health/supported-languages |
GET | Visszaadja az összes támogatott (100+) nyelvkódot és nevet |
/api/v1/family-health/condition-categories |
GET | Visszaadja mind a 9 állapot kategóriát a hozzájuk tartozó állapotokkal (kardiovaszkuláris, metabolikus, rákos, neurológiai, légzőszervi, autoimmun, genetikai, mentális egészségügyi, vese/máj) |
/api/v1/family-health/family-relations |
GET | Visszaadja mind a 14 támogatott családi kapcsolat típust |
Testtérkép API
A Kantesti Testtérkép API anatómiává alakítja a laboratóriumi panelt. Minden tartományon kívüli és határértékű eredmény a 13 testtájék egyikére kerül, az API pedig visszaadja a jelmagyarázatot — melyik testtájék, milyen súlyos, mely markerek miatt — és egy hozzá tartozó testábra URL-jét.
Alapértelmezetten determinisztikus
A markerneveket 39 leletnyelvet lefedő többnyelvű alias-táblák alapján azonosítjuk, beleértve a nem latin írásrendszereket is — pontosan úgy küldheti be az analitneveket, ahogyan a laboratóriuma kinyomtatta őket, bármilyen nyelven. Külön kérés nélkül semmilyen modell nem fut le és ábra sem készül, így az alapértelmezett kérés AI-költség nélküli, és ugyanarra a panelre mindig ugyanazt az eredményt adja.
- 13 anatómiai testtájék — Agy és idegek, pajzsmirigy, szív és erek, máj, hasnyálmirigy, mellékvesék, vesék, bélrendszer, reproduktív szervek, vér, immunrendszer, csontok, izmok
- Súlyossági szintek — 2-es szint a tartományon kívüli, 1-es szint a határértékű eredményekhez, így a jelmagyarázat további logika nélkül színezhető
- Marker-hozzárendelés — Minden testtájék felsorolja a hozzá vezető markereket, a legsúlyosabbal kezdve
- Nyelvfüggetlen kimenet — Testtájék-kulcsok és az Ön saját markernevei; az ábra nem tartalmaz szöveget, így egyetlen kép minden nyelvet kiszolgál
- Aláírt ábra-URL-ek — Minden ábra URL-je HMAC-aláírást hordoz, így senki sem tudja őket végigpróbálni vagy hamisítani
- Őszinte üres állapotok — A tiszta panel a közös "minden rendben" testábrát adja vissza; az a panel viszont, amelynek megjelölt markerei nem helyezhetők el, hibát ad megtévesztő zöld testábra helyett
- Determinisztikus mód — Alapértelmezett. Nincs modellhívás, nincs képkredit, reprodukálható kimenet
- Sandbox mód — Integráció tesztelése kreditek fogyasztása nélkül
Végpontok összefoglalója
| Végpont | Metódus | Leírás | Auth |
|---|---|---|---|
/api/v1/body-map/analyze |
POST | Testtérkép készítése laboratóriumi panelből | Kötelező (1 kredit) |
/api/v1/body-map/validate |
POST | A kérés adatainak érvényesítése és a felismert markerek megtekintése (nincs kvóta fogyasztás) | Kötelező (ingyenes) |
/api/v1/body-map/sandbox |
POST | Sandbox tesztelés mintaadatokkal (nincs kvóta fogyasztás) | Kötelező (ingyenes) |
/api/v1/body-map/regions |
GET | Mind a 13 testtájék és a súlyossági szintek listázása | Nem kötelező |
/api/v1/body-map/info |
GET | Képesség-metaadatok, korlátok és hitelesítési részletek | Nem kötelező |
A laboratóriumi panel minden megjelölt eredményét elhelyezi a testen. Sikeres kérésenként 1 kreditet fogyaszt. Az érvényesítésen elbukó kérés, illetve az, amelynek megjelölt markerei nem helyezhetők el, nem kerül kiszámlázásra.
Kérés paraméterei
| Paraméter | Típus | Kötelező | Leírás |
|---|---|---|---|
username | string | Igen | Az Ön API felhasználóneve |
password | string | Igen | Az Ön API jelszava |
parameters | array | Igen | Laboratóriumi eredményobjektumok. Max. 500. Mindegyikhez kell egy analitnév és egy evaluation mező. |
interpretation | array | Nem | Klinikai értelmezés, csak akkor használt kontextusként, ha az ai_assist be van kapcsolva |
ai_assist | boolean | Nem | Engedje, hogy a modell elhelyezze az alias-táblák által nem felismert markereket (alapértelmezett: false) |
include_image | boolean | Nem | Kérje a megrajzolt ábrát (alapértelmezett: false) |
image_wait | integer | Nem | Másodpercek száma, ameddig egy frissen generált ábrára vár, 0-30 (alapértelmezett: 0) |
A paraméterobjektum mezői
| Mező | Típus | Kötelező | Leírás |
|---|---|---|---|
short_name | string | Igen* | Az analit neve úgy, ahogyan a laboratórium kinyomtatta. *A short_name, long_name, name, parameter_name vagy parameter mezők közül legalább egy kötelező. |
long_name | string | Nem | Az analit teljes neve; javítja a rövidítések felismerését |
evaluation | string | Nem | A high, low, bad, slightly_high, slightly_low, normal értékek egyike. Csak a megjelölt értékek jelennek meg a térképen. |
result | string|number | Nem | A mért érték; a megrajzolt testtájékok rangsorolásához használt |
unit | string | Nem | Az eredmény mértékegysége, bármilyen írásmóddal |
range_normal_min | number | Nem | A referenciatartomány alsó határa |
range_normal_max | number | Nem | A referenciatartomány felső határa |
category | string | Nem | Laboratóriumi kategória; tartalékként használt, ha az analitnév ismeretlen |
cURL példa
curl -X POST "https://app.aibloodtestinterpret.com/api/v1/body-map/analyze" \
-H "Content-Type: application/json" \
-d '{
"username": "YOUR_USERNAME",
"password": "YOUR_PASSWORD",
"parameters": [
{"short_name": "ALT", "long_name": "Alanine aminotransferase", "result": "65", "unit": "U/L", "range_normal_min": 7, "range_normal_max": 45, "evaluation": "high"},
{"short_name": "AST", "long_name": "Aspartate aminotransferase", "result": "48", "unit": "U/L", "range_normal_min": 8, "range_normal_max": 40, "evaluation": "slightly_high"},
{"short_name": "TSH", "long_name": "Thyrotropin", "result": "6.2", "unit": "mIU/L", "range_normal_min": 0.4, "range_normal_max": 4.0, "evaluation": "high"}
]
}'
Python példa
import requests
def build_body_map(parameters, username, password, include_image=False):
"""
Map out-of-range blood test results onto the body.
Args:
parameters: List of laboratory result objects
username: API username
password: API password
include_image: Request the rendered illustration (spends image credit)
Returns:
dict: Body map block with regions, legend and illustration URLs
"""
url = "https://app.aibloodtestinterpret.com/api/v1/body-map/analyze"
response = requests.post(url, json={
"username": username,
"password": password,
"parameters": parameters,
"include_image": include_image,
}, timeout=60)
response.raise_for_status()
return response.json()
# Használati példa
if __name__ == "__main__":
result = build_body_map(
parameters=[
{"short_name": "ALT", "result": "65", "unit": "U/L",
"range_normal_min": 7, "range_normal_max": 45, "evaluation": "high"},
{"short_name": "TSH", "result": "6.2", "unit": "mIU/L",
"range_normal_min": 0.4, "range_normal_max": 4.0, "evaluation": "high"},
],
username="your_username",
password="your_password",
)
body_map = result["data"]["body_map"]
if result["data"]["all_clear"]:
print("All clear — nothing flagged.")
for region in body_map["regions"]:
severity = "out of range" if region["level"] == 2 else "borderline"
print(f" {region['key']}: {severity} ({', '.join(region['markers'])})")
print(f"Illustration: {body_map['image_url'] or body_map['fallback_url']}")
Válasz példa
{
"status": "success",
"api_version": "1.0.0",
"message": "Body map generated successfully",
"data": {
"body_map": {
"v": 4,
"spec": "v4-thy2-liv2",
"unmapped": 0,
"image_url": "/static/body_maps/v4-thy2-liv2.webp",
"fallback_url": "/body-map/v4-thy2-liv2.0123456789abcdef.webp",
"regions": [
{"key": "thyroid", "level": 2, "drawn": true, "markers": ["TSH"]},
{"key": "liver", "level": 2, "drawn": true, "markers": ["ALT", "AST"]}
]
},
"engine_version": 4,
"region_keys": ["brain_nerves", "thyroid", "heart_vessels", "liver", "pancreas", "adrenals", "kidneys", "gut", "reproductive", "blood", "immune", "bones", "muscles"],
"mode": "deterministic",
"all_clear": false
},
"timestamp": "2026-09-18T10:30:00Z"
}
Válasz mezői hivatkozás
| Mező | Típus | Leírás |
|---|---|---|
body_map.spec | string | A testtájékok és súlyossági szintek e kombinációjának kanonikus azonosítója. Az azonos panelek ugyanazt a spec értéket kapják, így közös gyorsítótárazott ábrán osztoznak. |
body_map.regions[].key | string | A 13 testtájék-kulcs egyike |
body_map.regions[].level | integer | 2 = tartományon kívüli, 1 = határértékű |
body_map.regions[].drawn | boolean | Megjelenik-e ez a testtájék az ábrán. A jelmagyarázat mindig felsorolja az összes testtájékot; legfeljebb hat kerül megrajzolásra. |
body_map.regions[].markers | array | Azon markerek nevei, amelyek e testtájékot a térképre tették, a legsúlyosabbal kezdve |
body_map.unmapped | integer | Megjelölt markerek, amelyeket egyetlen testtájékhoz sem lehetett rendelni |
body_map.image_url | string|null | Gyorsítótárazott ábra. null, amíg a fájl nem létezik — ilyenkor használja a fallback_url értéket. |
body_map.fallback_url | string | Aláírt, generáló URL. Mindig jelen van. 503 választ ad Retry-After fejléccel, amíg az ábra még készül. |
all_clear | boolean | true, ha semmi nem lett megjelölve; ilyenkor a közös "minden rendben" testábra érvényes |
mode | string | deterministic vagy ai_assisted |
A válasz tervezetten nyelvfüggetlen: testtájék-kulcsokat és az Ön laboratóriumának saját markerneveit tartalmazza. Fordítsa le a 13 testtájék-kulcsot a saját kliensében, és a jelmagyarázatot részesítse előnyben az ábrával szemben — ha a képmodell valaha rossz szervet színezne, a mellette álló jelmagyarázat akkor is helyes marad.
Ellenőrzi a kérés adatait az elemzés futtatása nélkül, és jelzi, hogy az Ön analitnevei közül melyeket ismeri fel a motor. Hitelesítés szükséges; kvótát nem fogyaszt, és a végpont kredit nélküli fiókon is működik.
cURL példa
curl -X POST "https://app.aibloodtestinterpret.com/api/v1/body-map/validate" \
-H "Content-Type: application/json" \
-d '{
"username": "YOUR_USERNAME",
"password": "YOUR_PASSWORD",
"parameters": [
{"short_name": "ALT", "result": "65", "evaluation": "high"},
{"short_name": "Unobtainium", "result": "9", "evaluation": "high"}
]
}'
Válasz példa
{
"status": "success",
"api_version": "1.0.0",
"message": "Payload is valid",
"data": {
"valid": true,
"errors": [],
"parameter_count": 2,
"flagged_count": 2,
"recognised": [
{"name": "ALT", "region": "liver", "level": 2}
],
"unrecognised": [
{"name": "Unobtainium", "region": null, "level": 2}
]
},
"timestamp": "2026-09-18T10:30:00Z"
}
Hivatkozási végpontok
Mindkét hivatkozási végpont hitelesítés nélküli és ingyenes.
Felsorolja a 13 testtájékot kanonikus sorrendben, a súlyossági szintekkel együtt. Használja saját jelmagyarázat-fordításainak elkészítéséhez.
cURL példa
curl "https://app.aibloodtestinterpret.com/api/v1/body-map/regions"
Válasz példa
{
"status": "success",
"data": {
"regions": [
{"key": "brain_nerves", "code": "brn", "order": 0},
{"key": "thyroid", "code": "thy", "order": 1},
{"key": "heart_vessels", "code": "hrt", "order": 2},
{"key": "liver", "code": "liv", "order": 3}
],
"region_keys": ["brain_nerves", "thyroid", "heart_vessels", "liver", "pancreas", "adrenals", "kidneys", "gut", "reproductive", "blood", "immune", "bones", "muscles"],
"levels": {
"0": "within range — not shown",
"1": "borderline (slightly high / slightly low)",
"2": "out of range (high / low / abnormal)"
},
"count": 13
}
}
Képesség-metaadatok: engedélyezve van-e a motor ezen a telepítésen, a kéréskorlátok, a hitelesítési séma és a teljes végpontlista.
cURL példa
curl "https://app.aibloodtestinterpret.com/api/v1/body-map/info"
Sandbox
A POST /api/v1/body-map/sandbox pontosan olyan formájú mintaválaszt ad vissza, amilyet az /analyze állít elő, így a sandboxra írt kliens változtatás nélkül működik élesben is. Hitelesítés szükséges, hogy a hívás egyben a hitelesítő adatait is igazolja, de kvótát nem fogyaszt, és elemzés sem történik.
| Hibakód | HTTP | Jelentés |
|---|---|---|
AUTH_1001 | 401 | Hiányzó hitelesítő adatok |
AUTH_1002 | 401 | Érvénytelen felhasználónév vagy jelszó |
AUTH_1004 | 400 | Hibás formátumú hitelesítő adatok (rossz típus vagy túl nagy méret) |
QUOTA_1101 | 403 | Nem elegendő API kvóta |
VAL_2001 | 400 | A parameters mező hiányzik |
VAL_2002 | 400 | Érvénytelen adatformátum |
VAL_2005 | 400 | A parameters mező üres |
VAL_2006 | 400 | Több mint 500 paraméter |
VAL_2008 | 400 | Egy paramétersor hibás formátumú vagy névtelen |
RES_4004 | 422 | Vannak megjelölt eredmények, de egyik sem képezhető le testtájékra |
RES_4005 | 503 | A testtérkép motor le van tiltva ezen a telepítésen |
Biológiai vérkor API
A Kantesti Biológiai vérkor API arra a kérdésre válaszol, amire a referenciatartomány nem tud: hány évesnek látszik ez a vér? A biológiai kort egy rutinpanelből számítja ki a publikált Levine PhenoAge modell alapján, és emellett akár 18 klinikai indexet is levezet — FIB-4, HOMA-IR, TyG, eGFR, AIP, NLR, anionrés és továbbiak —, amelyeket egy laboratóriumi lelet ritkán tüntet fel.
Eredmény részleges panelből is
A PhenoAge kilenc markert igényel, a legtöbb panel viszont kevesebbet tartalmaz. Ha mind a kilenc rendelkezésre áll, az API változtatás nélkül a publikált képletet adja vissza. Ha nem, a hiányzó bemeneteket populációs mediánokból tölti ki, és az eredményt source: "partial" jelöléssel adja vissza, így mindig tudja, melyiket kapta. Mindkét út determinisztikus: nincs modellhívás, nincs többletköltség, és ugyanarra a panelre mindig ugyanaz az eredmény.
- Levine PhenoAge — A publikált modell, változtatás nélkül számolva, ha mind a kilenc marker jelen van
- Fokozatos visszalépés — A részleges panel is ad eredményt, egyértelműen megjelölve, a hiányzó markerek felsorolásával
- 18 klinikai index — FIB-4, De Ritis, A/G arány, HOMA-IR, TyG, eAG, eGFR, anionrés, BUN/kreatinin, non-HDL, TG/HDL, AIP, TC/HDL, reziduális koleszterin, NLR, Mentzer, transzferrin-telítettség, korrigált kalcium
- Automatikus mértékegység-átváltás — SI és hagyományos mértékegységek bármilyen írásmóddal, élettani hihetőségi ellenőrzéssel, amely elutasítja a lehetetlen értékeket
- Többnyelvű marker-felismerés — Analitnevek 39 leletnyelven, a nem latin írásrendszereket is beleértve; belső kulcsokat soha nem kell küldenie
- Determinisztikus mód — Alapértelmezett. Nincs hálózati hívás, nincs AI-költség, reprodukálható kimenet
- Opcionális modellrétegek — Sorazonosítás, javított becslés és személyes megjegyzés, mindegyik saját kapcsolóval. A teljes, kilenc markeres PhenoAge eredményt a modell soha nem írja felül.
- 100 nyelv — Az opcionális személyes megjegyzéshez
- Sandbox mód — Integráció tesztelése kreditek fogyasztása nélkül
Végpontok összefoglalója
| Végpont | Metódus | Leírás | Auth |
|---|---|---|---|
/api/v1/blood-age/analyze |
POST | Biológiai vérkor és származtatott klinikai indexek számítása | Kötelező (1 kredit) |
/api/v1/blood-age/validate |
POST | A kérés adatainak érvényesítése és a panel által tartalmazott markerek megtekintése (nincs kvóta fogyasztás) | Kötelező (ingyenes) |
/api/v1/blood-age/sandbox |
POST | Sandbox tesztelés mintaadatokkal (nincs kvóta fogyasztás) | Kötelező (ingyenes) |
/api/v1/blood-age/biomarkers |
GET | A motor által olvasott markerek és célmértékegységeik listázása | Nem kötelező |
/api/v1/blood-age/info |
GET | Képesség-metaadatok, korlátok és hitelesítési részletek | Nem kötelező |
Kiszámítja a biológiai vérkort és a származtatott indexeket egy laboratóriumi panelből. Sikeres kérésenként 1 kreditet fogyaszt. Az érvényesítésen elbukó kérés, illetve az, amelynek paneljéből semmi sem számítható, nem kerül kiszámlázásra.
Kérés paraméterei
| Paraméter | Típus | Kötelező | Leírás |
|---|---|---|---|
username | string | Igen | Az Ön API felhasználóneve |
password | string | Igen | Az Ön API jelszava |
parameters | array | Igen | Laboratóriumi eredményobjektumok. Max. 500. Mindegyikhez kell egy analitnév és egy eredmény. |
metadata | object | Nem | Lelet fejléce. Erősen ajánlott: a PhenoAge képletnek van életkor-tagja. A patient_age, patient_sex, dob, lab_date mezőket olvassa. |
patient | object | Nem | {"age": 42, "gender": "female"} — akkor használt, ha a metaadatok nem tartalmazzák ezeket |
interpretation | array | Nem | Klinikai értelmezés, kizárólag modellkontextusként használt |
language | string | Nem | Az opcionális személyes megjegyzés nyelve (alapértelmezett: en). Lásd a támogatott nyelveket. |
ai_assist | boolean | Nem | Engedje, hogy a modell azonosítsa a szokatlan analitneveket (alapértelmezett: false) |
ai_estimate | boolean | Nem | Engedje, hogy a modell javítsa a részleges kort (alapértelmezett: false) |
ai_note | boolean | Nem | Kérjen személyes megjegyzést a language nyelvén (alapértelmezett: false) |
A kilenc PhenoAge marker
Küldje be őket azon a néven, ahogyan a laboratóriuma kinyomtatta — az azonosítás név alapján történik, a 39 támogatott leletnyelv bármelyikén, a mértékegységek pedig automatikusan átváltásra kerülnek.
| Marker | Tipikus név | Célmértékegység |
|---|---|---|
albumin | Albumin | g/L |
creatinine | Kreatinin | µmol/L |
glucose | Glükóz / Éhomi vércukor | mmol/L |
crp | C-reaktív fehérje | mg/L |
lymph | Limfociták | % |
mcv | Átlagos vörösvérsejt-térfogat | fL |
rdw | Vörösvérsejt-eloszlási szélesség | % |
alp | Alkalikus foszfatáz | U/L |
wbc | Fehérvérsejtszám | 10⁹/L |
cURL példa
curl -X POST "https://app.aibloodtestinterpret.com/api/v1/blood-age/analyze" \
-H "Content-Type: application/json" \
-d '{
"username": "YOUR_USERNAME",
"password": "YOUR_PASSWORD",
"metadata": {"patient_age": "40", "patient_sex": "Male", "lab_date": "2026-09-11"},
"parameters": [
{"short_name": "Albumin", "result": 4.4, "unit": "g/dL", "range_normal_min": 3.5, "range_normal_max": 5.0},
{"short_name": "Creatinine", "result": 0.9, "unit": "mg/dL", "range_normal_min": 0.6, "range_normal_max": 1.2},
{"short_name": "Glucose", "result": 90, "unit": "mg/dL", "range_normal_min": 70, "range_normal_max": 99},
{"short_name": "CRP", "result": 1.0, "unit": "mg/L", "range_normal_min": 0, "range_normal_max": 5},
{"short_name": "Lymphocytes", "result": 30, "unit": "%", "range_normal_min": 20, "range_normal_max": 40},
{"short_name": "MCV", "result": 90, "unit": "fL", "range_normal_min": 80, "range_normal_max": 100},
{"short_name": "RDW", "result": 13, "unit": "%", "range_normal_min": 11.5, "range_normal_max": 14.5},
{"short_name": "ALP", "result": 70, "unit": "U/L", "range_normal_min": 40, "range_normal_max": 130},
{"short_name": "WBC", "result": 6.0, "unit": "10^9/L", "range_normal_min": 4, "range_normal_max": 11}
]
}'
Python példa
import requests
def biological_blood_age(parameters, metadata, username, password):
"""
Compute biological blood age from a routine blood panel.
Args:
parameters: List of laboratory result objects
metadata: Report header carrying patient_age and patient_sex
username: API username
password: API password
Returns:
dict: Blood age block, derived indices, and a flat summary
"""
url = "https://app.aibloodtestinterpret.com/api/v1/blood-age/analyze"
response = requests.post(url, json={
"username": username,
"password": password,
"parameters": parameters,
"metadata": metadata,
}, timeout=60)
response.raise_for_status()
return response.json()
# Használati példa
if __name__ == "__main__":
result = biological_blood_age(
parameters=[
{"short_name": "Albumin", "result": 4.4, "unit": "g/dL"},
{"short_name": "Creatinine", "result": 0.9, "unit": "mg/dL"},
{"short_name": "Glucose", "result": 90, "unit": "mg/dL"},
{"short_name": "CRP", "result": 1.0, "unit": "mg/L"},
{"short_name": "Lymphocytes", "result": 30, "unit": "%"},
{"short_name": "MCV", "result": 90, "unit": "fL"},
{"short_name": "RDW", "result": 13, "unit": "%"},
{"short_name": "ALP", "result": 70, "unit": "U/L"},
{"short_name": "WBC", "result": 6.0, "unit": "10^9/L"},
],
metadata={"patient_age": "40", "patient_sex": "Male"},
username="your_username",
password="your_password",
)
summary = result["data"]["summary"]
if summary["status"] != "ok":
print(f"No age computed: {summary['status']}")
else:
print(f"Chronological: {summary['chronological_age']}")
print(f"Biological: {summary['biological_age']} ({summary['source']})")
print(f"Difference: {summary['delta_years']:+} years")
for index in result["data"]["blood_age"]["indices"]:
print(f" {index['key']}: {index['value']} {index['unit']} [{index['band']}]")
Válasz példa
{
"status": "success",
"api_version": "1.0.0",
"message": "Biological blood age computed successfully",
"data": {
"blood_age": {
"version": 1,
"age": {
"status": "ok",
"source": "formula",
"chrono": 40,
"pheno": 35.1,
"delta": -4.9,
"sex": "m",
"found": ["albumin", "creatinine", "glucose", "crp", "lymph", "mcv", "rdw", "alp", "wbc"],
"missing": [],
"labels": {"albumin": "Albumin", "creatinine": "Creatinine", "glucose": "Glucose"},
"inputs": {"albumin": 44.0, "creatinine": 79.56, "glucose": 5.0}
},
"indices": [
{"key": "fib4", "group": "liver", "value": 1.12, "unit": "", "band": "ok", "from": ["AST", "ALT", "PLT"]},
{"key": "egfr", "group": "kidneys", "value": 98.0, "unit": "mL/min/1.73m2", "band": "ok", "from": ["Creatinine"]},
{"key": "nlr", "group": "immune", "value": 1.8, "unit": "", "band": "ok", "from": ["Neutrophils", "Lymphocytes"]}
]
},
"engine_version": 1,
"mode": "deterministic",
"summary": {
"status": "ok",
"source": "formula",
"chronological_age": 40,
"biological_age": 35.1,
"delta_years": -4.9,
"sex": "m",
"markers_found": 9,
"markers_missing": [],
"indices_count": 3
}
},
"timestamp": "2026-09-18T10:30:00Z"
}
Válasz mezői hivatkozás
| Mező | Típus | Leírás |
|---|---|---|
summary.status | string | ok, missing_age, missing_markers, needs_markers vagy unavailable |
summary.source | string | formula (mind a kilenc marker), partial (mediánokkal pótolva) vagy ai (modellbecslés, csak ai_estimate esetén) |
summary.chronological_age | integer|null | A metaadatokból vagy a páciensobjektumból kiolvasott életkor |
summary.biological_age | number|null | A kiszámított vérkor, években |
summary.delta_years | number|null | Biológiai mínusz naptári életkor. A negatív érték a naptárinál fiatalabbat jelent. |
summary.markers_missing | array | A kilenc PhenoAge marker közül melyeket nem tartalmazta a panel |
blood_age.age.inputs | object | A ténylegesen felhasznált átváltott értékek, a célmértékegységekben |
blood_age.age.labels | object | Az Ön laboratóriumának saját neve minden azonosított markerhez |
blood_age.indices[].band | string | ok, borderline, high, low vagy info |
blood_age.indices[].from | array | Azok a laboratóriumi sorok, amelyekből ez az index származik |
mode | string | deterministic vagy ai_assisted |
A PhenoAge képletnek van életkor-tagja, ezért naptári életkor nélkül a válasz status: "missing_age" értékkel és eredmény nélkül érkezik. Küldje be a metadata.patient_age vagy a patient.age mezőben, illetve születési dátumként a patient.dob mezőben. A képlet 18 és 100 éves kor között alkalmazható.
Ellenőrzi a kérés adatait az elemzés futtatása nélkül, és jelzi, hogy a kilenc PhenoAge marker közül melyeket tartalmazza a panelje, valamint hogy sikerült-e naptári életkort kiolvasni — ez a két dolog dönti el, hogy a teljes képletet vagy a részleges becslést kapja. Hitelesítés szükséges; kvótát nem fogyaszt, és a végpont kredit nélküli fiókon is működik.
cURL példa
curl -X POST "https://app.aibloodtestinterpret.com/api/v1/blood-age/validate" \
-H "Content-Type: application/json" \
-d '{
"username": "YOUR_USERNAME",
"password": "YOUR_PASSWORD",
"metadata": {"patient_age": "40", "patient_sex": "Male"},
"parameters": [
{"short_name": "MCV", "result": 90, "unit": "fL"},
{"short_name": "WBC", "result": 6.0, "unit": "10^9/L"},
{"short_name": "Lymphocytes", "result": 30, "unit": "%"}
]
}'
Válasz példa
{
"status": "success",
"api_version": "1.0.0",
"message": "Payload is valid",
"data": {
"valid": true,
"errors": [],
"parameter_count": 3,
"looks_like_blood_panel": true,
"chronological_age": 40,
"sex": "m",
"phenoage_markers_found": ["lymph", "mcv", "wbc"],
"phenoage_markers_missing": ["albumin", "creatinine", "glucose", "crp", "rdw", "alp"],
"expected_source": "partial",
"recognised_markers": ["lymph_pct", "mcv", "wbc"]
},
"timestamp": "2026-09-18T10:30:00Z"
}
Hivatkozási végpontok
Mindkét hivatkozási végpont hitelesítés nélküli és ingyenes.
Felsorolja a kilenc PhenoAge bemenetet, a motor által olvasható összes markert a célmértékegységével együtt, valamint azt az életkori tartományt, amelyre a képlet vonatkozik.
cURL példa
curl "https://app.aibloodtestinterpret.com/api/v1/blood-age/biomarkers"
Válasz példa
{
"status": "success",
"data": {
"phenoage_inputs": ["albumin", "creatinine", "glucose", "crp", "lymph", "mcv", "rdw", "alp", "wbc"],
"phenoage_age_range": {"min": 18, "max": 100},
"markers": [
{"key": "albumin", "target_unit": "g/l"},
{"key": "alp", "target_unit": "u/l"},
{"key": "alt", "target_unit": "u/l"}
],
"marker_count": 33,
"name_matching": "Markers are matched by the analyte name your laboratory printed, in any of the supported report languages. You never send these keys."
}
}
Képesség-metaadatok: engedélyezve van-e a motor ezen a telepítésen, a két mód és azok költsége, a kéréskorlátok, a hitelesítési séma és a támogatott nyelvek.
cURL példa
curl "https://app.aibloodtestinterpret.com/api/v1/blood-age/info"
Sandbox
A POST /api/v1/blood-age/sandbox pontosan olyan formájú mintaválaszt ad vissza, amilyet az /analyze állít elő, így a sandboxra írt kliens változtatás nélkül működik élesben is. Hitelesítés szükséges, hogy a hívás egyben a hitelesítő adatait is igazolja, de kvótát nem fogyaszt, és elemzés sem történik.
| Hibakód | HTTP | Jelentés |
|---|---|---|
AUTH_1001 | 401 | Hiányzó hitelesítő adatok |
AUTH_1002 | 401 | Érvénytelen felhasználónév vagy jelszó |
AUTH_1004 | 400 | Hibás formátumú hitelesítő adatok (rossz típus vagy túl nagy méret) |
QUOTA_1101 | 403 | Nem elegendő API kvóta |
VAL_2001 | 400 | A parameters mező hiányzik |
VAL_2002 | 400 | Érvénytelen adatformátum |
VAL_2003 | 400 | Nem támogatott nyelvkód |
VAL_2005 | 400 | A parameters mező üres |
VAL_2006 | 400 | Több mint 500 paraméter |
VAL_2007 | 400 | Érvénytelen patient objektum |
VAL_2008 | 400 | Egy paramétersor hibás formátumú vagy névtelen |
VAL_2009 | 400 | Nem támogatott patient.gender érték |
RES_4004 | 422 | Ezekből a paraméterekből semmi sem számítható |
RES_4005 | 503 | A vérkor motor le van tiltva ezen a telepítésen |
DNA Health API: DNS-teszt-értelmezés, DNS + vér jelentés és étrend-kiegészítő tanácsadó
Büszkén mutatjuk be a Kantesti DNA Health API három új AI-modulját, amelyek a beteg DNS-tesztjéből klinikai jelentéseket készítenek. A DNS-teszt-értelmezés beolvas egy nyers genotípusfájlt vagy egy genetikai leletet, és átfogó genetikai egészségjelentést készít belőle. A DNS + vér egészségjelentés ezt a jelentést egy értelmezett vérvizsgálattal kapcsolja össze, és megmutatja, hol erősítik meg, és hol mondanak ellent egymásnak a gének és a laborértékek. Az étrend-kiegészítő tanácsadó a DNS-ből, a vérvizsgálatból és egy rövid kérdőívből személyre szabott étrend-kiegészítő tervet állít össze, a klinikája saját termékeire építve.
Az Ön fájljával összevetve
A nyers genotípusfájlt a szerver dolgozza fel, és egy 20 kategóriába sorolt, 334 markerből álló, gondosan összeállított panellel veti össze — a metilációs, szív- és érrendszeri, valamint lipidanyagcsere-génektől a farmakogenomikán, a tápanyag-anyagcserén és a hordozói státuszon át a hosszú élettartamig. Az AI által írt minden megállapítást összevetünk a feltöltött fájllal: a fájlban nem szereplő rsID-t elvetjük, és minden genotípust a fájlban rögzített értékhez kötünk, így a jelentés nem találhat ki eredményt.
- Minden elterjedt DNS-forrás — Nyers fájlok a 23andMe, AncestryDNA, MyHeritage, FTDNA és LivingDNA szolgáltatásból, VCF-fájlok, akár
.zipvagy.gzarchívumban is; beillesztett rsID-sorok; vagy genetikai lelet legfeljebb 6 PDF, JPG vagy PNG fájlként - Átfogó genetikai jelentés — Megállapítások egészségügyi területenként, betegségkockázatok, hordozói státusz, farmakogenomika (várható metabolizáló fenotípusok és érintett gyógyszercsoportok), nutrigenomika, tulajdonságok, javasolt további vizsgálatok és figyelmeztető jelek
- Gének és laborértékek együtt — A DNS + vér jelentés a genetikai lelet és a laboreredmény közötti minden kapcsolatot
confirms,contradicts,neutralvagywatchbesorolással jelöl, kockázati mátrixszal, kiemelt teendőkkel és monitorozási tervvel - Étrend-kiegészítő tervek biztonsági szabályokkal — Adag, forma, időzítés, időtartam, kölcsönhatások és kontrollvizsgálati időpontok; az adagok a tolerálható felső beviteli szinten belül maradnak, terhességben is biztonságos határértékek érvényesek, és minden, ami a gyógyszert rendelő orvos döntését igényli, a
clinician_review_requiredlistába kerül - Saját termékkatalógus — A tanácsadó a klinikája által forgalmazott termékeket ajánlja, ezeket
clinic_libraryjelöléssel látja el, „csak a klinika termékei” módban pedig felsorolja azokat a szükségleteket, amelyeket a katalógusa nem fed le - Láncolható és állapotmentes — Az 1. modul jelentését közvetlenül továbbküldheti a 2. és a 3. modulnak. Semmi sem kerül tárolásra a beteghez rendelve, a nyers genotípusfájlokat pedig a feldolgozás után töröljük
- 100+ jelentésnyelv — A jelentés a kért nyelven készül el
- Aszinkron mód — Adja hozzá a
?async=1paramétert, és kérdezze le a/api/jobs/<job_id>végpontot, így a hosszú elemzés sem ütközik átjáró-időtúllépésbe - Sandbox mód — Integráció tesztelése kreditek fogyasztása nélkül
1. A DNS-fájllal küldött POST /api/v1/dna-interpretation/analyze kérés a data.report objektumot adja vissza. 2. Küldje el ezt a jelentést egy értelmezett vérvizsgálattal együtt a /api/v1/dna-blood-report/analyze végpontra. 3. Küldje el ugyanezt a jelentést, a kérdőív válaszait és opcionálisan a vérvizsgálatot a /api/v1/dna-supplements/analyze végpontra. A 2. és a 3. modul a DNS-jelentést abban a formában fogadja, ahogyan visszaérkezett: a report objektumot, a teljes data objektumot vagy a teljes választ.
Végpontok összefoglalója
| Végpont | Metódus | Leírás | Auth |
|---|---|---|---|
/api/v1/dna-interpretation/analyze | POST | DNS-fájl, beillesztett rsID-sorok vagy leletoldalak → átfogó genetikai egészségjelentés | Kötelező (1 kredit) |
/api/v1/dna-interpretation/validate | POST | A feltöltés feldolgozása és a talált adatok megjelenítése AI-hívás nélkül | Kötelező (ingyenes) |
/api/v1/dna-interpretation/sandbox | POST | Minta genetikai jelentés | Kötelező (ingyenes) |
/api/v1/dna-interpretation/info | GET | Elfogadott bemenetek, korlátok és jelentésnyelvek | Nem kötelező |
/api/v1/dna-blood-report/analyze | POST | DNS-jelentés + értelmezett vérvizsgálat → kombinált egészségjelentés | Kötelező (1 kredit) |
/api/v1/dna-blood-report/validate | POST | A kérés adatainak ellenőrzése AI-hívás nélkül | Kötelező (ingyenes) |
/api/v1/dna-blood-report/sandbox | POST | Minta kombinált jelentés | Kötelező (ingyenes) |
/api/v1/dna-blood-report/info | GET | Kérésmezők és korlátok | Nem kötelező |
/api/v1/dna-supplements/analyze | POST | DNS-jelentés + vérvizsgálat (opcionális) + kérdőív → étrend-kiegészítő terv | Kötelező (1 kredit) |
/api/v1/dna-supplements/validate | POST | A kérés adatainak és a válaszoknak az ellenőrzése AI-hívás nélkül | Kötelező (ingyenes) |
/api/v1/dna-supplements/sandbox | POST | Minta étrend-kiegészítő terv | Kötelező (ingyenes) |
/api/v1/dna-supplements/questionnaire | GET | A 25 kérdés és az engedélyezett válaszaik | Nem kötelező |
/api/v1/dna-supplements/settings | GET PUT | A klinika termékkatalógusának és a tanácsadó beállításainak lekérdezése vagy frissítése | Kötelező (ingyenes) |
/api/v1/dna-supplements/info | GET | Kérésmezők és korlátok | Nem kötelező |
Egy DNS-tesztet értelmez, és átfogó genetikai egészségjelentést ad vissza. Fájlt multipart/form-data formátumban, beillesztett genotípussorokat pedig JSON-ként küldhet. A feltöltés feldolgozása még a kérés során megtörténik, így az olvashatatlan fájlra azonnal 400 válasz érkezik, és nem kerül semmibe. Az 1 kreditet csak a jelentés elkészülte után számoljuk fel.
Kérés paraméterei
| Paraméter | Típus | Kötelező | Leírás |
|---|---|---|---|
username | string | Igen | Az Ön API felhasználóneve (vagy használjon HTTP Basic hitelesítést) |
password | string | Igen | Az Ön API jelszava |
file | file | Igen* | Egy nyers genotípusfájl (.txt, .csv, .tsv, .vcf, .zip, .gz, legfeljebb 80 MB) vagy legfeljebb 6 leletfájl (PDF legfeljebb 20 MB, JPG/PNG egyenként legfeljebb 10 MB). *A file vagy a genotype_text mező közül az egyiket kell elküldeni. |
genotype_text | string | Igen* | Beillesztett genotípussorok (rsID, kromoszóma, pozíció, genotípus), legfeljebb 2 000 000 karakter |
language | string | Nem | A jelentés nyelvkódja, pl. en, de, ar (alapértelmezett: en). Lásd a támogatott nyelveket. |
patient | object | Nem | age, sex, diagnoses, comorbidities, medications, treatments, notes. Multipart kérésben JSON-karakterláncként küldje el. |
source_label | string | Nem | A forrás saját elnevezése, legfeljebb 120 karakter |
cURL példa
curl -X POST "https://app.aibloodtestinterpret.com/api/v1/dna-interpretation/analyze?async=1" \
-u "YOUR_USERNAME:YOUR_PASSWORD" \
-F "file=@genome_raw_data.txt" \
-F "language=en" \
-F 'patient={"age": 41, "sex": "female", "medications": "clopidogrel"}'
# 202 Accepted: {"status": "pending", "job_id": "...", "poll_url": "/api/jobs/...", ...}
curl -u "YOUR_USERNAME:YOUR_PASSWORD" "https://app.aibloodtestinterpret.com/api/jobs/JOB_ID"
Python példa
import time
import requests
BASE = "https://app.aibloodtestinterpret.com"
AUTH = ("YOUR_USERNAME", "YOUR_PASSWORD")
def run(path, poll=True, **kwargs):
"""POST in async mode, then poll /api/jobs/<id> until the report is ready."""
resp = requests.post(f"{BASE}{path}?async=1", auth=AUTH, timeout=60, **kwargs)
body = resp.json()
if resp.status_code != 202:
return body # hiba vagy szinkron válasz
while True:
time.sleep(body.get("poll_interval_ms", 3000) / 1000)
job = requests.get(f"{BASE}{body['poll_url']}", auth=AUTH, timeout=30).json()
if job["status"] in ("completed", "failed"):
return job["result"]["response"]
# 1) DNS-teszt értelmezése
with open("genome_raw_data.txt", "rb") as fh:
dna = run("/api/v1/dna-interpretation/analyze",
files={"file": fh},
data={"language": "en", "patient": '{"age": 41, "sex": "female"}'})
report = dna["data"]["report"]
print(report["executive_summary"])
for section in report["sections"]:
print(section["title"], "-", section["risk_level"])
Válasz példa
{
"status": "success",
"api_version": "1.0.0",
"message": "DNA test interpretation completed successfully",
"data": {
"analysis_id": "DNA-3F9A1C07B2",
"module": "dna_interpretation",
"generated_at": "2026-09-23T10:30:00Z",
"language": "en",
"source": {
"kind": "raw", "format": "23andme", "build": "GRCh37",
"total_records": 638463, "called": 631022, "no_call_rate": 0.0117,
"inferred_sex": "female", "panel_total": 334, "panel_found": 291,
"filename": "genome_raw_data.txt", "warnings": []
},
"report": {
"report_type": "dna",
"title": "Genetic health report",
"executive_summary": "Array genotyping with good coverage of the clinical panel...",
"overall_assessment": {"level": "slightly_elevated", "summary": "Mostly typical findings with a few actionable ones."},
"data_quality": {"source": "23andMe v5 raw file", "markers_analyzed": 291, "coverage_note": "...", "limitations": "..."},
"sections": [
{
"key": "nutrigenomics", "title": "Nutrient metabolism", "risk_level": "slightly_elevated",
"summary": "Reduced folate cycle activity...",
"findings": [
{"gene": "MTHFR", "rsid": "rs1801133", "genotype": "AG", "phenotype": "C677T heterozygous",
"risk_level": "slightly_elevated", "evidence": "established",
"explanation": "About 65% of typical enzyme activity.", "recommendation": "Check homocysteine."}
]
}
],
"pharmacogenomics": [
{"gene": "CYP2C19", "rsids": ["rs4244285"], "predicted_phenotype": "Intermediate metabolizer",
"affected_drugs": ["clopidogrel", "omeprazole"], "recommendation": "Review before prescribing clopidogrel."}
],
"disease_risks": [], "carrier_status": [], "nutrigenomics": [], "traits": [],
"lifestyle_recommendations": ["..."], "recommended_tests": [{"test": "Homocysteine", "reason": "MTHFR C677T"}],
"red_flags": [], "limitations": "Consumer arrays miss rare variants.",
"disclaimer": "AI-generated clinical decision support for clinician review; not a diagnosis."
}
},
"timestamp": "2026-09-23T10:30:00Z"
}
Válasz mezői hivatkozás
| Mező | Típus | Leírás |
|---|---|---|
source | object | Mi került beolvasásra: kind (raw, text vagy document), a felismert formátum és genomverzió, a rekordok és a meghatározott genotípusok száma, a 334 panelmarker közül talált markerek száma, valamint a feldolgozó figyelmeztetései |
report.overall_assessment.level | string | typical, slightly_elevated, elevated vagy high |
report.sections[] | array | Egészségügyi területenként egy bejegyzés, risk_level értékkel és a hozzá tartozó findings listával |
report.sections[].findings[] | array | gene, rsid, genotype, phenotype, risk_level (protective, typical, informational, slightly_elevated, elevated, high), evidence (established, probable, preliminary), explanation, recommendation |
report.pharmacogenomics[] | array | Génenként a várható metabolizáló fenotípus és azok a gyógyszercsoportok, amelyeket érinthet. A jelentés soha nem ad meg vényköteles gyógyszeradagokat. |
report.carrier_status[] | array | carrier, not_detected, affected_pattern vagy inconclusive; minden esetben klinikai genetikai vizsgálattal kell megerősíteni |
report.disease_risks[], nutrigenomics[], traits[] | array | Betegségkockázatok, tápanyagokkal kapcsolatos megállapítások és tulajdonságok a mögöttük álló génekkel |
report.recommended_tests[], red_flags[] | array | További vizsgálatok indoklással, valamint azonnali figyelmet igénylő megállapítások |
Pontosan úgy dolgozza fel a feltöltést, mint az /analyze, és AI-hívás nélkül jelzi, mit talált. Hitelesítés szükséges; kreditet nem fogyaszt. Használja arra, hogy egy fájlt még a kredit felhasználása előtt ellenőrizzen.
Válasz példa
{
"status": "success",
"message": "Payload is valid",
"data": {
"valid": true,
"language": "en",
"source": {"kind": "raw", "format": "ancestrydna", "build": "GRCh37", "panel_total": 334, "panel_found": 287, "warnings": []}
}
}
Egy DNS-jelentést és egy értelmezett vérvizsgálatot egyetlen egészségjelentésbe egyesít. A genetikai lelet és a laborérték közötti minden kapcsolatot besorolja, majd kockázati mátrixot, kiemelt teendőket és monitorozási tervet ad. Sikeres kérésenként 1 kreditet fogyaszt.
Kérés paraméterei
| Paraméter | Típus | Kötelező | Leírás |
|---|---|---|---|
dna_report | object | Igen | A /api/v1/dna-interpretation/analyze által visszaadott jelentés: a data.report, a teljes data vagy a teljes válasz |
blood_test | object|array | Igen | Értelmezett vérvizsgálat abban a formában, ahogyan a vérvizsgálat API visszaadja (metadata, parameters, interpretation), vagy csupán legfeljebb 500 paraméter listája, névvel és result értékkel |
language | string | Nem | A jelentés nyelvkódja (alapértelmezett: en) |
patient | object | Nem | Ugyanazok a mezők, mint a DNS-teszt-értelmezésnél |
Python példa
# 2) DNS + vér egészségjelentés (a fenti példa run() függvényét és dna változóját használja)
blood_test = {
"parameters": [
{"short_name": "25-OH D", "result": 18, "unit": "ng/mL", "range_normal_min": 30, "range_normal_max": 100, "evaluation": "low"},
{"short_name": "Homocysteine", "result": 13.2, "unit": "µmol/L", "evaluation": "high"}
]
}
combined = run("/api/v1/dna-blood-report/analyze",
json={"dna_report": dna, "blood_test": blood_test, "language": "en"})
for link in combined["data"]["report"]["correlations"]:
print(link["topic"], link["concordance"], link["action"])
Válasz példa
{
"status": "success",
"message": "DNA + blood health report completed successfully",
"data": {
"analysis_id": "DNB-8C21E40A9D",
"module": "dna_blood_report",
"language": "en",
"report": {
"report_type": "dna_blood",
"executive_summary": "The low vitamin D level matches the GC genotype; homocysteine is borderline, in line with MTHFR C677T.",
"overall_status": {"level": "watch", "summary": "Two gene-lab matches to act on."},
"correlations": [
{"topic": "Vitamin D", "genetic_finding": "GC rs2282679 GT", "lab_finding": "25-OH D 18 ng/mL",
"concordance": "confirms", "interpretation": "Genetic tendency and lab value agree.", "action": "Supplement and recheck in 12 weeks."}
],
"risk_matrix": [{"area": "Folate cycle", "genetic_risk": "slightly_elevated", "lab_status": "borderline", "combined_assessment": "Watch homocysteine."}],
"priority_actions": [{"priority": "high", "action": "Start vitamin D3", "why": "Deficient level and GC genotype"}],
"monitoring_plan": [{"marker": "25-OH vitamin D", "interval": "12 weeks", "reason": "Dose check"}],
"lifestyle_plan": [], "questions_for_clinician": [], "red_flags": [],
"limitations": "One blood test; values vary.",
"disclaimer": "AI-generated clinical decision support for clinician review; not a diagnosis."
}
}
}
Válasz mezői hivatkozás
| Mező | Típus | Leírás |
|---|---|---|
report.overall_status.level | string | good, watch, attention vagy urgent |
report.correlations[].concordance | string | confirms, contradicts, neutral vagy watch |
report.risk_matrix[] | array | Területenként: genetic_risk, lab_status (normal, borderline, abnormal, not_measured) és egy összesített értékelés |
report.priority_actions[] | array | priority (high, medium, low), a teendő és annak indoka |
report.monitoring_plan[] | array | Melyik markert, mikor és miért kell újra megvizsgálni |
Személyre szabott étrend-kiegészítő tervet készít a DNS-jelentésből, a kérdőív válaszaiból és opcionálisan egy értelmezett vérvizsgálatból. A klinikája termékkatalógusát és a tanácsadó beállításait automatikusan alkalmazza. Sikeres kérésenként 1 kreditet fogyaszt.
Kérés paraméterei
| Paraméter | Típus | Kötelező | Leírás |
|---|---|---|---|
dna_report | object | Igen | A /api/v1/dna-interpretation/analyze által visszaadott jelentés |
answers | object | Igen | A kérdőív válaszai. A diet_type és a pregnancy kötelező; mind a 25 kérdést lásd itt: GET /api/v1/dna-supplements/questionnaire. Az ismeretlen kulcsokat és értékeket a rendszer elveti. |
blood_test | object|array | Nem | Ugyanaz a formátum, mint a DNS + vér jelentésnél |
use_clinic_catalogue | boolean | Nem | A klinika termékkatalógusának és beállításainak alkalmazása (alapértelmezett: true) |
language | string | Nem | A jelentés nyelvkódja (alapértelmezett: en) |
patient | object | Nem | Ugyanazok a mezők, mint a DNS-teszt-értelmezésnél. Az itt felsorolt gyógyszereket a rendszer kölcsönhatásokra ellenőrzi. |
cURL példa
curl -X POST "https://app.aibloodtestinterpret.com/api/v1/dna-supplements/analyze?async=1" \
-u "YOUR_USERNAME:YOUR_PASSWORD" \
-H "Content-Type: application/json" \
-d '{
"dna_report": { ...a DNS-teszt-értelmezés data.report objektuma... },
"answers": {"diet_type": "vegetarian", "pregnancy": "no", "sun_exposure": "low", "goals": ["energy", "immunity"]},
"language": "en"
}'
Python példa
# 3) Étrend-kiegészítő terv (a fenti példák run() függvényét, valamint dna és blood_test változóját használja)
plan = run("/api/v1/dna-supplements/analyze",
json={"dna_report": dna, "blood_test": blood_test,
"answers": {"diet_type": "vegetarian", "pregnancy": "no"},
"language": "en"})
for item in plan["data"]["report"]["recommendations"]:
print(item["name"], item["dose"], item["timing"], "-", item["source"])
Válasz példa
{
"status": "success",
"message": "Supplement plan completed successfully",
"data": {
"analysis_id": "SUP-51B7D2E6F0",
"module": "dna_supplements",
"language": "en",
"catalogue": {"mode": "prefer", "products": 24},
"report": {
"report_type": "supplement",
"summary": "Plan built from GC and MTHFR findings, a low vitamin D level and a vegetarian diet.",
"recommendations": [
{"name": "Vitamin D3 + K2", "source": "clinic_library", "product": "Vitamin D3 + K2 (Clinic Brand)",
"form": "softgel", "dose": "2000 IU", "timing": "with lunch", "duration": "12 weeks", "priority": "high",
"rationale": {"genetic": "GC rs2282679 GT", "lab": "25-OH D 18 ng/mL", "questionnaire": "little sun"},
"evidence": "established", "cautions": ["Recheck calcium"], "interactions": ["Thiazide diuretics"],
"retest": "25-OH D in 12 weeks"}
],
"avoid_or_caution": [{"name": "High-dose vitamin A", "reason": "Pregnancy planning"}],
"uncovered_needs": [],
"dietary_sources": [{"nutrient": "Folate", "foods": ["lentils", "spinach"]}],
"retest_plan": [{"marker": "25-OH vitamin D", "when": "12 weeks", "why": "Dose check"}],
"clinician_review_required": ["Thiazide co-medication"],
"disclaimer": "AI-generated clinical decision support for clinician review; not a diagnosis."
}
}
}
Válasz mezői hivatkozás
| Mező | Típus | Leírás |
|---|---|---|
catalogue | object | Az alkalmazott katalógusmód (prefer, only, off) és az elérhető klinikai termékek száma |
report.recommendations[] | array | name, form, dose, timing, duration, priority, a genetikai / laboratóriumi / kérdőíves rationale, evidence, cautions, interactions és retest |
report.recommendations[].source | string | clinic_library a katalógusából származó termék esetén (neve a product mezőben szerepel), egyébként evidence_based |
report.uncovered_needs[] | array | „Csak a klinika termékei” módban: azok a szükségletek, amelyeket a katalógusa nem fed le |
report.clinician_review_required[] | array | Minden, ami a gyógyszert rendelő orvos döntését igényli: kölcsönhatások, terhesség, vese- vagy májbetegség, véralvadásgátlók, a felső beviteli szinthez közeli adagok |
report.avoid_or_caution[], dietary_sources[], retest_plan[] | array | Mit kell kerülni, az egyes tápanyagok élelmiszerforrásai, és mikor kell újra vizsgálni |
Lekérdezi vagy frissíti a klinikája termékkatalógusát és a tanácsadó beállításait. Ez ugyanaz a katalógus, mint a klinikai panelen és a Táplálkozási AI szolgáltatásban, így az egy helyen felvett termék mindenhol elérhető. Hitelesítés szükséges; kreditet nem fogyaszt. Küldje el a catalogue vagy a settings mezőt, illetve mindkettőt; a katalógus a teljes listát lecseréli.
| Mező | Típus | Leírás |
|---|---|---|
catalogue[] | array | Legfeljebb 200 termék: name, brand, form, dosage, category (vitamin, mineral, probiotic, omega, herbal, other), description |
settings.mode | string | prefer (a klinika termékei, ahol megfelelnek, egyébként bizonyítékokon alapuló javaslatok), only (csak a klinika termékei) vagy off (a katalógus figyelmen kívül hagyása) |
settings.instructions | string | Saját utasításai az AI számára, legfeljebb 1500 karakter. A biztonsági szabályok mindig elsőbbséget élveznek. |
settings.max_items | integer | Ajánlások maximális száma tervenként, 3 és 12 között |
cURL példa
curl -X PUT "https://app.aibloodtestinterpret.com/api/v1/dna-supplements/settings" \
-u "YOUR_USERNAME:YOUR_PASSWORD" \
-H "Content-Type: application/json" \
-d '{
"catalogue": [
{"name": "Vitamin D3 + K2", "brand": "Clinic Brand", "form": "softgel", "dosage": "2000 IU / 75 µg", "category": "vitamin"},
{"name": "Omega-3 EPA/DHA", "brand": "Clinic Brand", "form": "softgel", "dosage": "1000 mg", "category": "omega"}
],
"settings": {"mode": "prefer", "instructions": "Prefer our own brand.", "max_items": 8}
}'
Hivatkozási végpontok
A GET /api/v1/dna-supplements/questionnaire felsorolja a 25 kérdést (étrend, étkezések, gyümölcs és zöldség, hal, vörös hús, tejtermékek, alkohol, dohányzás, koffein, napfény, testmozgás, alvás, stressz, emésztés, energiaszint, jelenleg szedett étrend-kiegészítők, gyógyszerek, allergiák, betegségek, terhesség, célok, költségkeret, előnyben részesített forma és megjegyzések) a típusukkal és az engedélyezett értékeikkel együtt. A három /info végpont visszaadja az elfogadott bemeneteket, a korlátokat, a kreditköltséget és a jelentésnyelvek teljes listáját. Egyikük sem igényel hitelesítést.
Sandbox és aszinkron mód
A POST /api/v1/dna-interpretation/sandbox, a /api/v1/dna-blood-report/sandbox és a /api/v1/dna-supplements/sandbox pontosan olyan formájú mintajelentést ad vissza, amilyet az /analyze állít elő. Hitelesítés szükséges; kreditet nem fogyaszt.
Egy AI-jelentés elkészítése általában egy-három percig tart. Adja hozzá a ?async=1 paramétert (vagy az X-Async: 1 fejlécet), és a kérés azonnal 202 válasszal és egy job_id azonosítóval tér vissza. Kérdezze le a GET /api/jobs/<job_id> végpontot ugyanazokkal a hitelesítő adatokkal, amíg a status értéke completed vagy failed nem lesz. A végső válasz a result.response mezőben érkezik, és megegyezik a szinkron válasszal.
| Hibakód | HTTP | Jelentés |
|---|---|---|
AUTH_1001 | 401 | Hiányzó hitelesítő adatok |
AUTH_1002 | 401 | Érvénytelen felhasználónév vagy jelszó |
QUOTA_1101 | 403 | Nem elegendő API kvóta |
VAL_2001 | 400 | Hiányzik egy kötelező mező: file vagy genotype_text, dna_report, blood_test vagy egy kötelező válasz |
VAL_2002 | 400 | Olvashatatlan genotípusadat, nem támogatott fájltípus, érvénytelen JSON vagy érvénytelen dna_report |
VAL_2003 | 400 | Nem támogatott jelentésnyelv |
VAL_2006 | 400 | Túl nagy méret: beillesztett szöveg, vérvizsgálati paraméterek (500) vagy katalógus (200 termék) |
VAL_2007 | 400 | Érvénytelen patient objektum |
VAL_2008 | 400 | Nincs használható vérvizsgálati paraméter (név és eredmény) |
PROC_3003 | 500 | Az AI-válasz nem készült el, vagy nem volt érvényesíthető; próbálja újra. Kreditet nem számolunk fel. |
RES_4005 | 503 | A DNS-modulok ki vannak kapcsolva ezen a telepítésen |
A DNA Health API mesterséges intelligencia által generált információt nyújt a kezelőorvos számára. Nem diagnózis, és nem helyettesíti az orvosi rendelvényt. A fogyasztói genotipizáló chipek nem minősülnek klinikai szekvenálásnak: a beavatkozást igénylő és a hordozói státuszra vonatkozó megállapításokat validált klinikai genetikai vizsgálattal erősítse meg, mielőtt azok alapján cselekedne.
ICR - Intelligens karakterfelismerő API
A Kantesti ICR (Intelligens karakterfelismerő) API egy fejlett dokumentum-szövegkinyerő technológia, amely messze túlmutat a hagyományos OCR-en. A Kantesti saját AI motorjával működve az ICR strukturált JSON kimenetet szolgáltat bármilyen dokumentumtípusból, beleértve az orvosi jelentéseket, számlákat, űrlapokat és még sok mást.
Kantesti ICR vs hagyományos OCR
Benchmark tesztekben a Kantesti ICR 79%-kal nagyobb teljesítményt mutatott a hagyományos OCR megoldásokhoz képest. Az ICR érti a dokumentum szerkezetét, megőrzi a táblázatok elrendezését, kinyeri a metaadatokat, és tiszta strukturált JSON-t ad vissza — míg az OCR csak nyers, strukturálatlan szöveget nyújt. Az ICR AI-alapú intelligens felismerést használ a kontextus megértésére, a dokumentumtípusok automatikus észlelésére, és integrációra kész strukturált adatokat szolgáltat.
- Strukturált JSON kimenet — Táblázatok, szakaszok, metaadatok és nyers szöveg tiszta JSON formátumban
- Dokumentumtípus észlelés — Automatikusan azonosítja az orvosi jelentéseket, számlákat, űrlapokat, leveleket stb.
- Táblázat kinyerés — Megőrzi a táblázat fejléceit és a sorok adatait teljes szerkezettel
- Többformátumú támogatás — PDF, JPG, JPEG, PNG dokumentum-feldolgozás
- Vérvizsgálat integráció (Kan) — Specializált végpont vérvizsgálati dokumentumkinyeréshez
- Sandbox mód — Integráció tesztelése kreditek fogyasztása nélkül
- Szálbiztos feldolgozás — Egyidejű dokumentum-feldolgozás RLock-kal
- Kreditrendszer — 0,5 kredit API hívásonként
ICR végpontok összefoglalója
| Végpont | Metódus | Leírás | Költség |
|---|---|---|---|
/api/icr/v1/extract |
POST | ICR szöveg kinyerése dokumentumokból | 0,5 kredit |
/api/icr/v1/sandbox |
POST | ICR sandbox tesztelés (nincs feldolgozás) | Ingyenes |
/api/icr/v1/kan |
POST | Vérvizsgálati dokumentum-elemzés | 0,5 kredit |
/api/icr/v1/kan/sandbox |
POST | Vérvizsgálat sandbox tesztelés | Ingyenes |
/api/icr/info |
GET | API dokumentáció és funkciók | Ingyenes |
/api/icr/health |
GET | Állapot-ellenőrzés végpont | Ingyenes |
/api/icr/v1/quota |
POST | Fennmaradó ICR kreditek ellenőrzése | Ingyenes |
Kinyeri az összes szöveges tartalmat a feltöltött dokumentumokból a Kantesti ICR technológia segítségével. Strukturált JSON-t ad vissza dokumentumtípus-észleléssel, táblázat-kinyeréssel, szakasz-elemzéssel és metaadatokkal.
Kérés paraméterei
| Paraméter | Típus | Kötelező | Leírás |
|---|---|---|---|
username | string | Igen | Az Ön API felhasználóneve |
password | string | Igen | Az Ön API jelszava |
file | file | Igen | Dokumentumfájl (PDF, JPG, JPEG, PNG) |
language | string | Nem | Kimeneti nyelvkód (alapértelmezett: en). Lásd a támogatott nyelveket. |
cURL példa
curl -X POST "https://app.aibloodtestinterpret.com/api/icr/v1/extract" \
-F "username=YOUR_USERNAME" \
-F "password=YOUR_PASSWORD" \
-F "language=en" \
-F "[email protected]"
Python példa
import requests
def icr_extract(file_path: str, username: str, password: str, language: str = "en"):
"""
Extract text from a document using Kantesti ICR API.
79% faster and more accurate than traditional OCR.
Args:
file_path: Path to the document (PDF, JPG, JPEG, PNG)
username: API username
password: API password
language: Output language code (default: en)
Returns:
dict: Structured JSON with document content, tables, sections, metadata
"""
url = "https://app.aibloodtestinterpret.com/api/icr/v1/extract"
with open(file_path, "rb") as f:
files = {"file": (file_path, f)}
data = {
"username": username,
"password": password,
"language": language
}
response = requests.post(url, files=files, data=data, timeout=120)
response.raise_for_status()
return response.json()
# Használati példa
if __name__ == "__main__":
result = icr_extract(
file_path="medical_report.pdf",
username="your_username",
password="your_password",
language="en"
)
print(f"Status: {result['status']}")
print(f"Document Type: {result['data']['document_type']}")
print(f"Pages: {result['data']['page_count']}")
for page in result['data']['pages']:
print(f" Page {page['page_number']}: {len(page['content']['sections'])} sections")
for table in page['content'].get('tables', []):
print(f" Table: {len(table['rows'])} rows x {len(table['headers'])} cols")
C++ példa (libcurl)
#include <iostream>
#include <string>
#include <curl/curl.h>
size_t WriteCallback(void* contents, size_t size, size_t nmemb, std::string* userp) {
userp->append((char*)contents, size * nmemb);
return size * nmemb;
}
std::string icrExtract(const std::string& filePath,
const std::string& username,
const std::string& password,
const std::string& language = "en") {
CURL* curl = curl_easy_init();
std::string response;
if (curl) {
curl_mime* form = curl_mime_init(curl);
curl_mimepart* field;
field = curl_mime_addpart(form);
curl_mime_name(field, "username");
curl_mime_data(field, username.c_str(), CURL_ZERO_TERMINATED);
field = curl_mime_addpart(form);
curl_mime_name(field, "password");
curl_mime_data(field, password.c_str(), CURL_ZERO_TERMINATED);
field = curl_mime_addpart(form);
curl_mime_name(field, "language");
curl_mime_data(field, language.c_str(), CURL_ZERO_TERMINATED);
field = curl_mime_addpart(form);
curl_mime_name(field, "file");
curl_mime_filedata(field, filePath.c_str());
curl_easy_setopt(curl, CURLOPT_URL,
"https://app.aibloodtestinterpret.com/api/icr/v1/extract");
curl_easy_setopt(curl, CURLOPT_MIMEPOST, form);
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, WriteCallback);
curl_easy_setopt(curl, CURLOPT_WRITEDATA, &response);
curl_easy_setopt(curl, CURLOPT_TIMEOUT, 120L);
CURLcode res = curl_easy_perform(curl);
curl_mime_free(form);
curl_easy_cleanup(curl);
}
return response;
}
int main() {
std::string result = icrExtract("medical_report.pdf", "username", "password");
std::cout << result << std::endl;
return 0;
}
Válasz példa
{
"status": "success",
"data": {
"document_type": "blood_test_report",
"page_count": 1,
"pages": [
{
"page_number": 1,
"content": {
"raw_text": "Cologne University Hospital - Blutbild\n\nPatient: Max Mustermann\nDOB: 15.03.1990\nGender: Male\nDate: 10.01.2026\n\nGlucose: 92 mg/dL (74-100)\nALT: 22 U/L (<35)\nCreatinine: 0.9 mg/dL (0.7-1.2)\nWBC: 7.2 10*9/L (3.8-10)\nHGB: 148 g/L (130-175)\nPLT: 230 10*9/L (150-400)",
"sections": [
{"type": "header", "content": "Cologne University Hospital - Blutbild"},
{"type": "paragraph", "content": "Patient: Max Mustermann, DOB: 15.03.1990, Male"},
{"type": "table", "content": "Blood test results with 6 parameters"}
],
"tables": [
{
"headers": ["Test", "Result", "Unit", "Reference Range"],
"rows": [
["Glucose", "92", "mg/dL", "74 - 100"],
["ALT", "22", "U/L", "< 35"],
["Creatinine", "0.9", "mg/dL", "0.7 - 1.2"],
["WBC", "7.2", "10*9/L", "3.8 - 10"],
["HGB", "148", "g/L", "130 - 175"],
["PLT", "230", "10*9/L", "150 - 400"]
]
}
]
}
}
],
"metadata": {
"detected_language": "de",
"confidence": "high"
},
"icr_metadata": {
"engine": "kantesti-icr",
"version": "1.0.0",
"images_processed": 1,
"timestamp": "2026-02-14T10:30:00Z"
}
},
"credit_cost": 0.5,
"api_version": "icr-v1",
"timestamp": "2026-02-14T10:30:00Z"
}
ICR hibakódok
| Hibakód | HTTP állapot | Leírás |
|---|---|---|
ICR_AUTH_1001 | 401 | Hiányzó hitelesítési adatok |
ICR_AUTH_1002 | 401 | Érvénytelen felhasználónév vagy jelszó |
ICR_QUOTA_1101 | 403 | Elégtelen kreditek (0,5 kredit szükséges hívásonként) |
ICR_VAL_2001 | 400 | Nincs feltöltött fájl |
ICR_VAL_2002 | 400 | Érvénytelen fájlformátum (támogatott: PDF, JPG, JPEG, PNG) |
ICR_VAL_2003 | 400 | Egy kérésben nem engedélyezett több PDF-fájl |
ICR_VAL_2004 | 400 | Egy kérésben nem keverhető PDF és képfájl |
ICR_PROC_3001 | 500 | ICR szöveg kinyerés sikertelen |
ICR_PROC_3004 | 504 | Feldolgozási időtúllépés |
ICR_SRV_5001 | 500 | Belső szerverhiba |
ICR_SRV_5002 | 503 | ICR szolgáltatás átmenetileg nem elérhető |
Vérvizsgálati dokumentum-elemzés a Kantesti Kan motor segítségével. Feldolgozza a vérvizsgálati dokumentumokat, és kinyeri a strukturált vizsgálati paramétereket, a páciens információit és a metaadatokat.
Kérés paraméterei
| Paraméter | Típus | Kötelező | Leírás |
|---|---|---|---|
username | string | Igen | Az Ön API felhasználóneve |
password | string | Igen | Az Ön API jelszava |
file | file | Igen | Vérvizsgálati fájl (PDF, JPG, JPEG, PNG) |
language | string | Nem | Jelentés nyelvkód (alapértelmezett: en) |
pdf_password | string | Nem | Jelszó titkosított PDF-ekhez |
cURL példa
curl -X POST "https://app.aibloodtestinterpret.com/api/icr/v1/kan" \
-F "username=YOUR_USERNAME" \
-F "password=YOUR_PASSWORD" \
-F "language=en" \
-F "file=@blood_test.pdf"
Python példa
import requests
def icr_kan_analyze(file_path: str, username: str, password: str,
language: str = "en", pdf_password: str = None):
"""
Analyze blood test document using Kantesti ICR Kan engine.
Args:
file_path: Path to blood test document (PDF, JPG, JPEG, PNG)
username: API username
password: API password
language: Report language code (default: en)
pdf_password: Password for encrypted PDFs (optional)
Returns:
dict: Structured blood test parameters with patient info
"""
url = "https://app.aibloodtestinterpret.com/api/icr/v1/kan"
with open(file_path, "rb") as f:
files = {"file": (file_path, f)}
data = {
"username": username,
"password": password,
"language": language
}
if pdf_password:
data["pdf_password"] = pdf_password
response = requests.post(url, files=files, data=data, timeout=120)
response.raise_for_status()
return response.json()
# Használati példa
if __name__ == "__main__":
result = icr_kan_analyze(
file_path="blood_test_report.pdf",
username="your_username",
password="your_password",
language="en"
)
print(f"Status: {result['status']}")
params = result['data']['test_parameters']
print(f"Parameters found: {len(params)}")
for param in params:
print(f" {param['name']}: {param['value']} {param['unit']} ({param['reference_range']})")
Válasz példa
{
"status": "success",
"data": {
"institute_info": {
"name": "Cologne University Hospital"
},
"test_metadata": {
"report_date": "10.01.2026",
"sample_type": "Blood",
"test_date": "10.01.2026"
},
"test_parameters": [
{"name": "Glucose (Fasting Blood Sugar)", "value": "92", "unit": "mg/dL", "reference_range": "74 - 100", "type": "range"},
{"name": "Alanine aminotransferase (ALT)", "value": "22", "unit": "U/L", "reference_range": "< 35", "type": "range"},
{"name": "Creatinine", "value": "0.9", "unit": "mg/dL", "reference_range": "0.7 - 1.2", "type": "range"},
{"name": "Cholesterol", "value": "185", "unit": "mg/dL", "reference_range": "< 200", "type": "range"},
{"name": "TSH", "value": "2.1", "unit": "mIU/L", "reference_range": "0.38 - 5.33", "type": "range"},
{"name": "WBC (White Blood Cell Count)", "value": "7.2", "unit": "10*9/L", "reference_range": "3.8 - 10", "type": "range"},
{"name": "RBC (Red Blood Cell Count)", "value": "4.9", "unit": "10*12/L", "reference_range": "4.5 - 5.5", "type": "range"},
{"name": "HGB (Hemoglobin)", "value": "148", "unit": "g/L", "reference_range": "130 - 175", "type": "range"},
{"name": "PLT (Platelet Count)", "value": "230", "unit": "10*9/L", "reference_range": "150 - 400", "type": "range"},
{"name": "HBsAg", "value": "Negative", "unit": "", "reference_range": "", "type": "binary"}
],
"tester_info": {
"age": "35 (Calculated from 15.03.1990 to 10.01.2026)",
"gender": "Male"
},
"kan_metadata": {
"engine": "kantesti-kan",
"version": "1.0.0",
"language": "en",
"timestamp": "2026-02-14T10:30:00Z"
}
},
"credit_cost": 0.5,
"api_version": "icr-v1",
"timestamp": "2026-02-14T10:30:00Z"
}
ICR Sandbox végpontok
Tesztelje az ICR integrációját kreditek fogyasztása nélkül. A Sandbox végpontok valósághű mintaadatokat adnak vissza.
| API | Sandbox végpont | Leírás |
|---|---|---|
| ICR kinyerés | /api/icr/v1/sandbox | Mintaadatokat ad vissza az ICR kinyeréshez |
| ICR Kan | /api/icr/v1/kan/sandbox | Mintaadatokat ad vissza vérvizsgálati paraméterekhez |
ICR vs OCR teljesítmény benchmark
| Mérőszám | Kantesti ICR | Hagyományos OCR | Javulás |
|---|---|---|---|
| Feldolgozási sebesség | 1,2 mp átlag | 5,7 mp átlag | 79%-kal gyorsabb |
| Szövegpontosság | 99,7% | 92,1% | +7,6% |
| Táblázat észlelés | 98,9% | 71,2% | +27,7% |
| Strukturált kimenet | JSON szakaszokkal, táblázatokkal, metaadatokkal | Nyers strukturálatlan szöveg | Teljes struktúra |
| Dokumentumtípus észlelés | Automatikus | Nem elérhető | AI-alapú |
| Többnyelvű támogatás | 100+ nyelv | 30-50 nyelv | 2x+ lefedettség |
| Orvosi dokumentumtámogatás | Specializált | Általános | Szakterületi tapasztalat |