A vérvizsgálat API végpontjai

Utolsó frissítés:

Teljes hivatkozás az összes Kantesti vérvizsgálat API végponthoz, kódpéldákkal több nyelven.

Újdonság 2026. szeptember 23-án: a DNA Health API

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.

Alap URL
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.

Legújabb frissítések (2026)

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.

APIVé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átumVerzió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
Megjegyzés

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).

Alapértelmezett nyelv

Ha nincs megadva language paraméter, az API angol nyelven (en) adja vissza a válaszokat.

Fő világnyelvek

KódNyelvNatív név
enAngolEnglish
zhKínai中文
esSpanyolEspañol
arArabالعربية
hiHindiहिन्दी
ptPortugálPortuguês
ruOroszРусский
jaJapán日本語
frFranciaFrançais
deNémetDeutsch
koKoreai한국어
trTörökTürkçe

Európai nyelvek

KódNyelvNatív név
itOlaszItaliano
nlHollandNederlands
plLengyelPolski
elGörögΕλληνικά
svSvédSvenska
noNorvégNorsk
daDánDansk
fiFinnSuomi
csCsehČeština
ukUkránУкраїнська
roRománRomână
huMagyarMagyar
bgBolgárБългарски
hrHorvátHrvatski
skSzlovákSlovenčina
slSzlovénSlovenščina
srSzerbСрпски
ltLitvánLietuvių
lvLettLatviešu
etÉsztEesti
caKatalánCatalà
euBaszkEuskara
glGalíciaiGalego
cyWalesiCymraeg
gaÍrGaeilge
isIzlandiÍslenska
mtMáltaiMalti
sqAlbánShqip
mkMacedónМакедонски
bsBosnyákBosanski
lbLuxemburgiLëtzebuergesch
beBelaruszБеларуская

Közel-keleti és közép-ázsiai nyelvek

KódNyelvNatív név
heHéberעברית
faPerzsaفارسی
azAzerbajdzsániAzərbaycan
kaGrúzქართული
hyÖrményՀայերdelays
kkKazahҚазақша
uzÜzbégOʻzbek
tgTádzsikТоҷикӣ
kyKirgizКыргызча
tkTürkménTürkmen
mnMongolМонгол
psPastuپښتو
kuKurdKurdî

Dél-ázsiai nyelvek

KódNyelvNatív név
bnBengáliবাংলা
taTamilதமிழ்
teTeluguతెలుగు
mrMaráthiमराठी
guGudzsarátiગુજરાતી
knKannadaಕನ್ನಡ
mlMalajálamമലയാളം
paPandzsábiਪੰਜਾਬੀ
urUrduاردو
neNepáliनेपाली
siSzingalézසිංහල
sdSzindhiسنڌي
asAsszámiঅসমীয়া
orOdiaଓଡ଼ିଆ

Délkelet-ázsiai nyelvek

KódNyelvNatív név
idIndonézBahasa Indonesia
thThaiไทย
viVietnámiTiếng Việt
msMalájBahasa Melayu
myMianmari (burmai)မြန်မာ
kmKhmerភាសាខ្មែរ
loLaosziລາວ
filFilippínóFilipino
tlTagalogTagalog
jvJávaiBasa Jawa
suSzundaiBasa Sunda

Afrikai nyelvek

KódNyelvNatív név
afAfrikánszAfrikaans
swSzuahéliKiswahili
amAmharaአማርኛ
haHauszaHausa
yoJorubaYorùbá
igIgboIgbo
zuZuluisiZulu
xhHoszaisiXhosa
soSzomáliSoomaali
mgMalgasMalagasy

Egyéb nyelvek

KódNyelvNatív név
laLatinLatina
eoEszperantóEsperanto
yiJiddisייִדיש
htHaiti kreolKreyòl Ayisyen
miMaoriTe Reo Māori
smSzamoaiGagana Samoa
toTongaiLea Faka-Tonga
hawHawaiiʻŌ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.

POST /api/v12/18-09-2026/analyze Legújabb

É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éterTípusKötelezőLeírás
usernamestringIgenAz Ön API felhasználóneve
passwordstringIgenAz Ön API jelszava
filefileIgenVé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.
languagestringNemVálasz nyelvkód (alapértelmezett: en). Lásd a támogatott nyelveket.
pdf_passwordstringNemJelszó 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"
}
POST /api/v11/01-06-2025/analyze Stabil

Éles végpont a vérvizsgálat elemzéséhez. Kérésenként 1 kreditet fogyaszt.

Kérés paraméterei

ParaméterTípusKötelezőLeírás
usernamestringIgenAz Ön API felhasználóneve
passwordstringIgenAz Ön API jelszava
filefileIgenVérvizsgálati kép (PNG, JPG, WEBP) vagy PDF. Max 20MB.
languagestringNemVá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ípusLeírás
statusstring"success" vagy "error"
dataobjectMinden elemzési eredményt tartalmaz
timestampstringVálasz ISO 8601 időbélyege
api_versionstringFeldolgozáshoz használt API-verzió
data.metadata objektum
MezőTípusLeírás
lab_datestringVérvétel dátuma (YYYY-MM-DD)
results_datestringEredmények kiadási dátuma (YYYY-MM-DD)
lab_namestringLaboratórium neve
lab_citystringLaboratórium városa
lab_countrystringLaboratórium országa
patient_namestringPáciens teljes neve (csak metaadat, nincs elküldve az értelmezéshez)
patient_agestringPáciens életkora
patient_sexstring"male", "female" vagy "other"
data.parameters tömb elem
MezőTípusLeírás
categorystringParaméter kategória (pl. "Complete Blood Count", "Lipid Panel")
long_namestringTeljes paraméternév
short_namestringRövidített paraméternév
resultstringMért érték
unitstringMértékegység
range_minstringMinimális referencia-tartomány
range_maxstringMaximális referencia-tartomány
evaluationstringEredmény állapota. Lásd az értékelési értékeket
data.interpretation tömb elem
MezőTípusLeírás
titlestringSzakasz címe (pl. "Overall Health Assessment")
contentstringAI-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"
}
Válasz kulcsszavak

Az evaluation mező szabványosított értékeket használ. Lásd az értékelési értékeket.

POST /api/v12/health-score/analyze Legújabb

É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"}
  ]
}
Válasz kulcsszavak

A score_interpretation mező szabványosított értékeket használ. Lásd az egészségügyi pontszám értékeit.

POST /api/v11/health-score/analyze Stabil

É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"}
  ]
}
Válasz kulcsszavak

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.

Sandbox előnyök
  • 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ő
APISandbox 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
Összehasonlítás API vs Trendelemzés API

Válassza ki a megfelelő API-t a felhasználási esetéhez:

FunkcióAI vérvizsgálat-összehasonlításTrendelemzés
Elsődleges fókuszAI narratív összehasonlításStatisztikai trendelemzés
AI feldolgozásTeljes AI narratívaAI-javított + statisztikák
Kimeneti típusNarratív összefoglalókDiagramok, statisztikák, minták
Legjobb ehhezMi változott a vizsgálatok közöttHosszú távú paraméter-követés
Min. vizsgálatok22
Max. vizsgálatok2050

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.

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.

POST /api/v1/nutrition/diet-plan/analyze Új

Á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éterTípusKötelezőLeírás
usernamestringIgenAz Ön API felhasználóneve
passwordstringIgenAz Ön API jelszava
languagestringNemVálasz nyelve (alapértelmezett: en). Lásd a támogatott nyelveket.
patientobjectIgenBetegdemográfia és egészségügyi információk
blood_testobjectIgenVérvizsgálati paraméterek
health_goalsarrayNemEgészségügyi célok. Lásd az értékeket.
dietary_restrictionsarrayNemÉ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ípusKötelezőAlapértelmezettLeírás
ageintegerIgen-Beteg életkora években (18-120)
genderstringIgen-Páciens neme. Lásd az értékeket
weightnumberNemnullSúly kg-ban (kalóriaszámításhoz)
heightnumberNemnullMagasság cm-ben (BMI számításhoz)
conditionsarrayNem[]Orvosi állapotok (pl. ["diabetes", "hypertension"])
allergiesarrayNem[]Étel-/étrend-kiegészítő allergiák (pl. ["shellfish", "nuts"])
dietary_preferencesarrayNem[]Étrendi preferenciák. Lásd az értékeket
activity_levelstringNem"moderate"Fizikai aktivitási szint. Lásd az értékeket
dietary_restrictionsarrayNem[]Étrendi korlátozások. Lásd az értékeket
liked_foodsarrayNem[]Preferált ételek felvétele (pl. ["salmon", "spinach"])
disliked_foodsarrayNem[]Kerülendő ételek az ajánlásokban (pl. ["broccoli"])
meal_frequencyintegerNem3Preferált étkezések naponta (2-6)
budgetstringNem"moderate"Költségkeret az ajánlásokhoz. Lásd az értékeket
medicationsarrayNem[]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ípusLeírás
blood_marker_educationarrayOktatási tartalom a vérmarkereket és jelentőségüket
nutrition_principlesarrayAz elemzésen alapuló alkalmazandó táplálkozási alapelvek
blood_marker_education tömb elem
MezőTípusLeírás
markerstringMarker név állapottal (pl. "Ferritin (Low)", "Vitamin D (Deficient)")
explanationstringA marker részletes oktatási magyarázata
normal_rangestringReferencia-tartomány (nemspecifikus, ha alkalmazható)
food_recommendations.power_foods tömb elem
MezőTípusLeírás
foodstringÉtel neve (pl. "Salmon", "Spinach")
nutrientsarrayFő tápanyagok listája (pl. ["omega-3", "vitamin D", "protein"])
servingstringAjánlott adag/gyakoriság (pl. "100g, 3x per week")
whystringMiért ajánlott ez az étel a vérmarkerek alapján
supplement_recommendations tömb elem
MezőTípusLeírás
supplementstringÉtrend-kiegészítő neve (pl. "Vitamin D3", "Iron Bisglycinate")
dosagestringAjánlott adagolás (pl. "2000 IU daily", "25mg twice daily")
timingstringMikor vegye be (pl. "With breakfast", "On empty stomach")
durationstringMennyi ideig szedje (pl. "3 months then retest", "Ongoing")
reasonstringMié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.

POST /api/v1/bloodtest/comparison/analyze

Elemez 2-20 vérvizsgálatot és részletes összehasonlítást nyújt AI által generált narratív betekintésekkel.

Követelmények
  • Minimum 2 vérvizsgálat szükséges
  • Maximum 20 vérvizsgálat kérésenként
  • Minden vizsgálatnak tartalmaznia kell lab_date vagy results_date mezőt
  • Legalább egy közös paraméter a vizsgálatok között

Kérés paraméterei

ParaméterTípusKötelezőAlapértelmezettLeírás
usernamestringIgen-Az Ön API felhasználóneve
passwordstringIgen-Az Ön API jelszava
languagestringNemenVálasz nyelve. Lásd a támogatott nyelveket
blood_testsarrayIgen-Vérvizsgálati objektumok tömbje (2-20 vizsgálat)

blood_tests tömb szerkezete

MezőTípusKötelezőLeírás
lab_datestringIgen*Vizsgálat dátuma YYYY-MM-DD formátumban
results_datestringIgen*Alternatíva a lab_date mezőhöz (YYYY-MM-DD)
parametersarrayIgenVérvizsgálati paraméterek tömbje
metadataobjectNemTová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ípusLeírás
comparison_idstringEgyedi azonosító ehhez az összehasonlításhoz (formátum: CMP-XXXXXXXX)
comparison_summaryobjectÁltalános összefoglaló: key_findings, overall_trend, jelentés dátumok, time_interval
parameter_analysisarrayRészletes elemzés paraméterenként változástípussal és klinikai jelentőséggel
health_assessmentobjectAggodalomra okot adó területek, javulások, pozitív fejlemények, kockázati tényezők
recommendationsobjectKövető vizsgálatok, azonnali intézkedések, életmódbeli módosítások, szakorvosi beutalók
detailed_interpretationobjectAI narratív szakaszok ügyvezetői összefoglalóval és klinikai ajánlásokkal

parameter_analysis objektum szerkezete

MezőTípusLeírás
parameter_namestringParaméternév
report1_valuestringÉrték az első jelentésből egységgel
report2_valuestringÉrték a második jelentésből egységgel
change_typestringincreased, decreased vagy stable
change_magnitudestringsignificant, moderate vagy minor
clinical_significancestringAI magyarázat a változás jelentéséről
trend_assessmentstringpositive, 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
  }
}
Válasz kulcsszavak

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ékAlapértelmezettLeírás
comprehensive✓Teljes elemzés statisztikákkal, diagramokkal és AI értelmezéssel
statisticalCsak statisztikai elemzés
summaryCsak 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ékLeírás
maintainJelenlegi egészségi állapot megőrzése (alapértelmezett)
improve_energyFókusz az energiaszintre
weight_managementEgészséges testsúly kezelés
heart_healthKardiovaszkuláris egészség
immune_supportImmunrendszer támogatás
digestive_healthEmésztési jóllét
bone_healthCsont egészség
mental_clarityKognití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ékLeírás
low_sodiumCsökkentett nátriumbevitel
low_sugarCsökkentett cukorbevitel
low_fatCsökkentett zsírbevitel
gluten_freeNincs glutén
dairy_freeNincs tejtermék
nut_freeNincs dió
soy_freeNincs szója
egg_freeNincs tojás
halalHalal-kompatibilis
kosherKóser-kompatibilis
Megjegyzés

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ékLeírás
omnivoreNincs korlátozás (alapértelmezett)
vegetarianNincs hús
veganNincs állati termék
pescatarianVegetáriánus + hal
ketoKetogén diéta
paleoPaleolit diéta
mediterraneanMediterrá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ékLeírás
sedentaryKevés vagy nincs testmozgás
lightKönnyű edzés heti 1-3 nap
moderateMérsékelt edzés 3-5 nap/hét (alapértelmezett)
activeKemény edzés heti 6-7 nap
very_activeNagyon 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ékLeírás
lowKöltségtudatos opciók
moderateKiegyensúlyozott beállítások (alapértelmezett)
highPrémium opciók

gender Minden API

Beteg neme személyre szabott referencia-tartományokhoz és ajánlásokhoz.

ÉrtékLeírás
maleFérfi beteg
femaleNői beteg
otherEgyé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ékLeírás
normalA normál referencia-tartományon belül
lowNormális tartomány alatt
highNormális tartomány felett
critical_lowKritikusan alacsony (azonnali figyelem szükséges)
critical_highKritikusan magas (azonnali figyelem szükséges)
borderline_lowEnyhén a normál tartomány alatt
borderline_highEnyhé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ékLeírás
positiveJavult (a normál tartomány felé közelít)
negativeRomlott (eltávolodik a normál tartománytól)
stableViszonylag 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ékLeírás
upwardAz értékek növekednek az idő múlásával
downwardAz értékek csökkennek az idő múlásával
stableMinimális változás az idő múlásával

trend_strength Trendelemzési API

A megfigyelt trend mértéke.

ÉrtékLeírás
strong>15% változás az időszakok között
moderate5-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ékLeírás
excellentMinden marker az optimális tartományon belül
goodA legtöbb marker a normál tartományban
fairNéhány marker figyelmet igényel
poorTöbb marker figyelmet igényel

Segédprogram végpontok

GET /api/info

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"
}
GET /api/health

Á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%"
}
POST /api/quota/check

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

Kiadva: 2026. március 23.

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.

100+
Nyelvek
9
Állapot kategóriák
14
Családi kapcsolatok

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.

Főbb funkciók
  • Ö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égpontMetódusLeírásAuth
/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)
POST /api/v1/family-health/analyze Kiadva 2026.03.23.

Á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éterTípusKötelezőLeírás
usernamestringIgenAz Ön API felhasználóneve
passwordstringIgenAz Ön API jelszava
patient_dataobjectIgenBetegadatok (lásd lent)
family_membersarrayIgen*Családtag objektumok tömbje (max. 100). *Kötelező, ha health_profile hiányzik
health_profileobjectIgen*Páciens egészségügyi profil. *Kötelező, ha family_members hiányzik
blood_test_dataarrayNemVérvizsgálati adat objektumok tömbje korrelációs elemzéshez
languagestringNemVálasz nyelvkód (alapértelmezett: en). Több mint 100 nyelv támogatott

patient_data objektum

MezőTípusKötelezőLeírás
namestringNemBeteg teljes neve
ageintegerIgenBeteg életkora években
genderstringIgenmale, female vagy other
dobstringNemSzületési dátum (YYYY-MM-DD)

family_members tömb elem

MezőTípusKötelezőLeírás
relationstringIgenKapcsolat típusa: father, mother, brother, sister, paternal_grandfather, paternal_grandmother, maternal_grandfather, maternal_grandmother, paternal_uncle, paternal_aunt, maternal_uncle, maternal_aunt, son, daughter
ageintegerNemCsaládtag életkora
conditionsarrayNemIsmert egészségi állapotok tömbje (stringek)
age_at_diagnosisintegerNemÉletkor az állapot diagnosztizálásakor
deceasedbooleanNemA családtag elhunyt-e
age_at_deathintegerNemHalálkor elért életkor (ha elhunyt)
cause_of_deathstringNemHalá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ódHTTP állapotLeírás
AUTH_1001401Hiányzó hitelesítési adatok
AUTH_1002401Érvénytelen felhasználónév vagy jelszó
QUOTA_1101403Elégtelen API kvóta
QUOTA_1103429Sebességkorlát túllépve
VAL_2001400Hiányzó kötelező mező (patient_data.age, patient_data.gender)
VAL_2002400Érvénytelen adatformátum
VAL_2003400Nem támogatott nyelvkód
VAL_2005400A kérés adatai nem lehetnek üresek
VAL_2006400A tömb meghaladja a maximális méretet (max 100 családtag)
VAL_2007400Érvénytelen páciensadat-struktúra
PROC_3001500Jelentés generálása sikertelen
PROC_3003500AI feldolgozási hiba
SRV_5001500Belső szerverhiba
POST /api/v1/family-health/validate

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.

APISandbox végpontLeírás
Családegészség elemzés/api/v1/family-health/sandbox/analyzeMintaadatokat 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égpontMetódusLeí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

Kiadva: 2026. szeptember 18.

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.

13
Testtájék
39
Bemeneti nyelv
0
Modellhívás alapértelmezetten

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.

Főbb funkciók
  • 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égpontMetódusLeírásAuth
/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ő
POST /api/v1/body-map/analyze Kiadva 2026.09.18.

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éterTípusKötelezőLeírás
usernamestringIgenAz Ön API felhasználóneve
passwordstringIgenAz Ön API jelszava
parametersarrayIgenLaboratóriumi eredményobjektumok. Max. 500. Mindegyikhez kell egy analitnév és egy evaluation mező.
interpretationarrayNemKlinikai értelmezés, csak akkor használt kontextusként, ha az ai_assist be van kapcsolva
ai_assistbooleanNemEngedje, hogy a modell elhelyezze az alias-táblák által nem felismert markereket (alapértelmezett: false)
include_imagebooleanNemKérje a megrajzolt ábrát (alapértelmezett: false)
image_waitintegerNemMásodpercek száma, ameddig egy frissen generált ábrára vár, 0-30 (alapértelmezett: 0)

A paraméterobjektum mezői

MezőTípusKötelezőLeírás
short_namestringIgen*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_namestringNemAz analit teljes neve; javítja a rövidítések felismerését
evaluationstringNemA high, low, bad, slightly_high, slightly_low, normal értékek egyike. Csak a megjelölt értékek jelennek meg a térképen.
resultstring|numberNemA mért érték; a megrajzolt testtájékok rangsorolásához használt
unitstringNemAz eredmény mértékegysége, bármilyen írásmóddal
range_normal_minnumberNemA referenciatartomány alsó határa
range_normal_maxnumberNemA referenciatartomány felső határa
categorystringNemLaborató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ípusLeírás
body_map.specstringA 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[].keystringA 13 testtájék-kulcs egyike
body_map.regions[].levelinteger2 = tartományon kívüli, 1 = határértékű
body_map.regions[].drawnbooleanMegjelenik-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[].markersarrayAzon markerek nevei, amelyek e testtájékot a térképre tették, a legsúlyosabbal kezdve
body_map.unmappedintegerMegjelölt markerek, amelyeket egyetlen testtájékhoz sem lehetett rendelni
body_map.image_urlstring|nullGyorsítótárazott ábra. null, amíg a fájl nem létezik — ilyenkor használja a fallback_url értéket.
body_map.fallback_urlstringAláí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_clearbooleantrue, ha semmi nem lett megjelölve; ilyenkor a közös "minden rendben" testábra érvényes
modestringdeterministic vagy ai_assisted
A jelmagyarázat megjelenítése

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.

POST /api/v1/body-map/validate Kiadva 2026.09.18.

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.

GET /api/v1/body-map/regions

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
  }
}
GET /api/v1/body-map/info

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ódHTTPJelentés
AUTH_1001401Hiányzó hitelesítő adatok
AUTH_1002401Érvénytelen felhasználónév vagy jelszó
AUTH_1004400Hibás formátumú hitelesítő adatok (rossz típus vagy túl nagy méret)
QUOTA_1101403Nem elegendő API kvóta
VAL_2001400A parameters mező hiányzik
VAL_2002400Érvénytelen adatformátum
VAL_2005400A parameters mező üres
VAL_2006400Több mint 500 paraméter
VAL_2008400Egy paramétersor hibás formátumú vagy névtelen
RES_4004422Vannak megjelölt eredmények, de egyik sem képezhető le testtájékra
RES_4005503A testtérkép motor le van tiltva ezen a telepítésen

Biológiai vérkor API

Kiadva: 2026. szeptember 18.

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.

9
PhenoAge marker
18
Származtatott index
39
Bemeneti nyelv

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.

Főbb funkciók
  • 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égpontMetódusLeírásAuth
/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ő
POST /api/v1/blood-age/analyze Kiadva 2026.09.18.

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éterTípusKötelezőLeírás
usernamestringIgenAz Ön API felhasználóneve
passwordstringIgenAz Ön API jelszava
parametersarrayIgenLaboratóriumi eredményobjektumok. Max. 500. Mindegyikhez kell egy analitnév és egy eredmény.
metadataobjectNemLelet fejléce. Erősen ajánlott: a PhenoAge képletnek van életkor-tagja. A patient_age, patient_sex, dob, lab_date mezőket olvassa.
patientobjectNem{"age": 42, "gender": "female"} — akkor használt, ha a metaadatok nem tartalmazzák ezeket
interpretationarrayNemKlinikai értelmezés, kizárólag modellkontextusként használt
languagestringNemAz opcionális személyes megjegyzés nyelve (alapértelmezett: en). Lásd a támogatott nyelveket.
ai_assistbooleanNemEngedje, hogy a modell azonosítsa a szokatlan analitneveket (alapértelmezett: false)
ai_estimatebooleanNemEngedje, hogy a modell javítsa a részleges kort (alapértelmezett: false)
ai_notebooleanNemKé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.

MarkerTipikus névCélmértékegység
albuminAlbuming/L
creatinineKreatininµmol/L
glucoseGlükóz / Éhomi vércukormmol/L
crpC-reaktív fehérjemg/L
lymphLimfociták%
mcvÁtlagos vörösvérsejt-térfogatfL
rdwVörösvérsejt-eloszlási szélesség%
alpAlkalikus foszfatázU/L
wbcFehérvérsejtszám10⁹/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ípusLeírás
summary.statusstringok, missing_age, missing_markers, needs_markers vagy unavailable
summary.sourcestringformula (mind a kilenc marker), partial (mediánokkal pótolva) vagy ai (modellbecslés, csak ai_estimate esetén)
summary.chronological_ageinteger|nullA metaadatokból vagy a páciensobjektumból kiolvasott életkor
summary.biological_agenumber|nullA kiszámított vérkor, években
summary.delta_yearsnumber|nullBiológiai mínusz naptári életkor. A negatív érték a naptárinál fiatalabbat jelent.
summary.markers_missingarrayA kilenc PhenoAge marker közül melyeket nem tartalmazta a panel
blood_age.age.inputsobjectA ténylegesen felhasznált átváltott értékek, a célmértékegységekben
blood_age.age.labelsobjectAz Ön laboratóriumának saját neve minden azonosított markerhez
blood_age.indices[].bandstringok, borderline, high, low vagy info
blood_age.indices[].fromarrayAzok a laboratóriumi sorok, amelyekből ez az index származik
modestringdeterministic vagy ai_assisted
Adjon meg naptári életkort

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ó.

POST /api/v1/blood-age/validate Kiadva 2026.09.18.

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.

GET /api/v1/blood-age/biomarkers

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."
  }
}
GET /api/v1/blood-age/info

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ódHTTPJelentés
AUTH_1001401Hiányzó hitelesítő adatok
AUTH_1002401Érvénytelen felhasználónév vagy jelszó
AUTH_1004400Hibás formátumú hitelesítő adatok (rossz típus vagy túl nagy méret)
QUOTA_1101403Nem elegendő API kvóta
VAL_2001400A parameters mező hiányzik
VAL_2002400Érvénytelen adatformátum
VAL_2003400Nem támogatott nyelvkód
VAL_2005400A parameters mező üres
VAL_2006400Több mint 500 paraméter
VAL_2007400Érvénytelen patient objektum
VAL_2008400Egy paramétersor hibás formátumú vagy névtelen
VAL_2009400Nem támogatott patient.gender érték
RES_4004422Ezekből a paraméterekből semmi sem számítható
RES_4005503A 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ó

Kiadva: 2026. szeptember 23.

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.

334
Válogatott DNS-marker
20
Egészségügyi kategória
100+
Jelentésnyelv

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.

Főbb funkciók
  • Minden elterjedt DNS-forrás — Nyers fájlok a 23andMe, AncestryDNA, MyHeritage, FTDNA és LivingDNA szolgáltatásból, VCF-fájlok, akár .zip vagy .gz archí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, neutral vagy watch besorolá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_required listába kerül
  • Saját termékkatalógus — A tanácsadó a klinikája által forgalmazott termékeket ajánlja, ezeket clinic_library jelö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=1 paramé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
Így működik együtt a három modul

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égpontMetódusLeírásAuth
/api/v1/dna-interpretation/analyzePOSTDNS-fájl, beillesztett rsID-sorok vagy leletoldalak → átfogó genetikai egészségjelentésKötelező (1 kredit)
/api/v1/dna-interpretation/validatePOSTA feltöltés feldolgozása és a talált adatok megjelenítése AI-hívás nélkülKötelező (ingyenes)
/api/v1/dna-interpretation/sandboxPOSTMinta genetikai jelentésKötelező (ingyenes)
/api/v1/dna-interpretation/infoGETElfogadott bemenetek, korlátok és jelentésnyelvekNem kötelező
/api/v1/dna-blood-report/analyzePOSTDNS-jelentés + értelmezett vérvizsgálat → kombinált egészségjelentésKötelező (1 kredit)
/api/v1/dna-blood-report/validatePOSTA kérés adatainak ellenőrzése AI-hívás nélkülKötelező (ingyenes)
/api/v1/dna-blood-report/sandboxPOSTMinta kombinált jelentésKötelező (ingyenes)
/api/v1/dna-blood-report/infoGETKérésmezők és korlátokNem kötelező
/api/v1/dna-supplements/analyzePOSTDNS-jelentés + vérvizsgálat (opcionális) + kérdőív → étrend-kiegészítő tervKötelező (1 kredit)
/api/v1/dna-supplements/validatePOSTA kérés adatainak és a válaszoknak az ellenőrzése AI-hívás nélkülKötelező (ingyenes)
/api/v1/dna-supplements/sandboxPOSTMinta étrend-kiegészítő tervKötelező (ingyenes)
/api/v1/dna-supplements/questionnaireGETA 25 kérdés és az engedélyezett válaszaikNem kötelező
/api/v1/dna-supplements/settingsGET PUTA klinika termékkatalógusának és a tanácsadó beállításainak lekérdezése vagy frissítéseKötelező (ingyenes)
/api/v1/dna-supplements/infoGETKérésmezők és korlátokNem kötelező
POST /api/v1/dna-interpretation/analyze Kiadva 2026.09.23.

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éterTípusKötelezőLeírás
usernamestringIgenAz Ön API felhasználóneve (vagy használjon HTTP Basic hitelesítést)
passwordstringIgenAz Ön API jelszava
filefileIgen*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_textstringIgen*Beillesztett genotípussorok (rsID, kromoszóma, pozíció, genotípus), legfeljebb 2 000 000 karakter
languagestringNemA jelentés nyelvkódja, pl. en, de, ar (alapértelmezett: en). Lásd a támogatott nyelveket.
patientobjectNemage, sex, diagnoses, comorbidities, medications, treatments, notes. Multipart kérésben JSON-karakterláncként küldje el.
source_labelstringNemA 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ípusLeírás
sourceobjectMi 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.levelstringtypical, slightly_elevated, elevated vagy high
report.sections[]arrayEgészségügyi területenként egy bejegyzés, risk_level értékkel és a hozzá tartozó findings listával
report.sections[].findings[]arraygene, rsid, genotype, phenotype, risk_level (protective, typical, informational, slightly_elevated, elevated, high), evidence (established, probable, preliminary), explanation, recommendation
report.pharmacogenomics[]arrayGé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[]arraycarrier, not_detected, affected_pattern vagy inconclusive; minden esetben klinikai genetikai vizsgálattal kell megerősíteni
report.disease_risks[], nutrigenomics[], traits[]arrayBetegsé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[]arrayTovábbi vizsgálatok indoklással, valamint azonnali figyelmet igénylő megállapítások
POST /api/v1/dna-interpretation/validate Kiadva 2026.09.23.

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": []}
  }
}
POST /api/v1/dna-blood-report/analyze Kiadva 2026.09.23.

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éterTípusKötelezőLeírás
dna_reportobjectIgenA /api/v1/dna-interpretation/analyze által visszaadott jelentés: a data.report, a teljes data vagy a teljes válasz
blood_testobject|arrayIgenÉ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
languagestringNemA jelentés nyelvkódja (alapértelmezett: en)
patientobjectNemUgyanazok 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ípusLeírás
report.overall_status.levelstringgood, watch, attention vagy urgent
report.correlations[].concordancestringconfirms, contradicts, neutral vagy watch
report.risk_matrix[]arrayTerületenként: genetic_risk, lab_status (normal, borderline, abnormal, not_measured) és egy összesített értékelés
report.priority_actions[]arraypriority (high, medium, low), a teendő és annak indoka
report.monitoring_plan[]arrayMelyik markert, mikor és miért kell újra megvizsgálni
POST /api/v1/dna-supplements/analyze Kiadva 2026.09.23.

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éterTípusKötelezőLeírás
dna_reportobjectIgenA /api/v1/dna-interpretation/analyze által visszaadott jelentés
answersobjectIgenA 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_testobject|arrayNemUgyanaz a formátum, mint a DNS + vér jelentésnél
use_clinic_cataloguebooleanNemA klinika termékkatalógusának és beállításainak alkalmazása (alapértelmezett: true)
languagestringNemA jelentés nyelvkódja (alapértelmezett: en)
patientobjectNemUgyanazok 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ípusLeírás
catalogueobjectAz alkalmazott katalógusmód (prefer, only, off) és az elérhető klinikai termékek száma
report.recommendations[]arrayname, form, dose, timing, duration, priority, a genetikai / laboratóriumi / kérdőíves rationale, evidence, cautions, interactions és retest
report.recommendations[].sourcestringclinic_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[]arrayMinden, 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[]arrayMit kell kerülni, az egyes tápanyagok élelmiszerforrásai, és mikor kell újra vizsgálni
GET PUT /api/v1/dna-supplements/settings Kiadva 2026.09.23.

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ípusLeírás
catalogue[]arrayLegfeljebb 200 termék: name, brand, form, dosage, category (vitamin, mineral, probiotic, omega, herbal, other), description
settings.modestringprefer (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.instructionsstringSaját utasításai az AI számára, legfeljebb 1500 karakter. A biztonsági szabályok mindig elsőbbséget élveznek.
settings.max_itemsintegerAjá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ódHTTPJelentés
AUTH_1001401Hiányzó hitelesítő adatok
AUTH_1002401Érvénytelen felhasználónév vagy jelszó
QUOTA_1101403Nem elegendő API kvóta
VAL_2001400Hiányzik egy kötelező mező: file vagy genotype_text, dna_report, blood_test vagy egy kötelező válasz
VAL_2002400Olvashatatlan genotípusadat, nem támogatott fájltípus, érvénytelen JSON vagy érvénytelen dna_report
VAL_2003400Nem támogatott jelentésnyelv
VAL_2006400Túl nagy méret: beillesztett szöveg, vérvizsgálati paraméterek (500) vagy katalógus (200 termék)
VAL_2007400Érvénytelen patient objektum
VAL_2008400Nincs használható vérvizsgálati paraméter (név és eredmény)
PROC_3003500Az AI-válasz nem készült el, vagy nem volt érvényesíthető; próbálja újra. Kreditet nem számolunk fel.
RES_4005503A DNS-modulok ki vannak kapcsolva ezen a telepítésen
Klinikai döntéstámogatás

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

Kiadva: 2026. február 14.

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.

79%
Gyorsabb az OCR-nél
99.7%
Pontossági ráta
100+
Nyelvek

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.

ICR főbb funkciók
  • 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égpontMetódusLeírásKö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
POST /api/icr/v1/extract Kiadva 2026.02.14.

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éterTípusKötelezőLeírás
usernamestringIgenAz Ön API felhasználóneve
passwordstringIgenAz Ön API jelszava
filefileIgenDokumentumfájl (PDF, JPG, JPEG, PNG)
languagestringNemKimeneti 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ódHTTP állapotLeírás
ICR_AUTH_1001401Hiányzó hitelesítési adatok
ICR_AUTH_1002401Érvénytelen felhasználónév vagy jelszó
ICR_QUOTA_1101403Elégtelen kreditek (0,5 kredit szükséges hívásonként)
ICR_VAL_2001400Nincs feltöltött fájl
ICR_VAL_2002400Érvénytelen fájlformátum (támogatott: PDF, JPG, JPEG, PNG)
ICR_VAL_2003400Egy kérésben nem engedélyezett több PDF-fájl
ICR_VAL_2004400Egy kérésben nem keverhető PDF és képfájl
ICR_PROC_3001500ICR szöveg kinyerés sikertelen
ICR_PROC_3004504Feldolgozási időtúllépés
ICR_SRV_5001500Belső szerverhiba
ICR_SRV_5002503ICR szolgáltatás átmenetileg nem elérhető
POST /api/icr/v1/kan Kiadva 2026.02.14.

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éterTípusKötelezőLeírás
usernamestringIgenAz Ön API felhasználóneve
passwordstringIgenAz Ön API jelszava
filefileIgenVérvizsgálati fájl (PDF, JPG, JPEG, PNG)
languagestringNemJelentés nyelvkód (alapértelmezett: en)
pdf_passwordstringNemJelszó 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.

APISandbox végpontLeírás
ICR kinyerés/api/icr/v1/sandboxMintaadatokat ad vissza az ICR kinyeréshez
ICR Kan/api/icr/v1/kan/sandboxMintaadatokat ad vissza vérvizsgálati paraméterekhez

ICR vs OCR teljesítmény benchmark

Benchmark eredmények — Kantesti ICR vs hagyományos OCR
MérőszámKantesti ICRHagyományos OCRJavulás
Feldolgozási sebesség1,2 mp átlag5,7 mp átlag79%-kal gyorsabb
Szövegpontosság99,7%92,1%+7,6%
Táblázat észlelés98,9%71,2%+27,7%
Strukturált kimenetJSON szakaszokkal, táblázatokkal, metaadatokkalNyers strukturálatlan szövegTeljes struktúra
Dokumentumtípus észlelésAutomatikusNem elérhetőAI-alapú
Többnyelvű támogatás100+ nyelv30-50 nyelv2x+ lefedettség
Orvosi dokumentumtámogatásSpecializáltÁltalánosSzakterületi tapasztalat