نقاط نهاية API تحليل الدم

آخر تحديث:

مرجع كامل لجميع نقاط نهاية API Kantesti مع أمثلة التعليمات البرمجية بلغات برمجة متعددة.

جديد في 23 سبتمبر 2026: واجهة صحة DNA

نفخر بالإعلان عن ثلاث وحدات DNA جديدة في Kantesti API. تحوّل وحدة تفسير فحص DNA بيانات DNA الخام أو التقرير الجيني إلى تقرير صحي جيني شامل، ويدمج التقرير الصحي DNA + الدم هذا التقرير مع تحليل دم، ويكتب مستشار المكملات خطة مكملات مخصّصة بمنتجات عيادتك أنت. اقرأ مرجع واجهة صحة DNA.

عنوان URL الأساسي
https://app.aibloodtestinterpret.com

سجل التغييرات

تتبع إصدارات API والتحديثات ومعلومات الترحيل. استخدم نقاط النهاية الموصى بها للتكاملات الجديدة.

أحدث التحديثات (2026)

تم تطبيق تحديثات عام 2026 الثلاثة جميعها على كل إصدار من إصدارات API المدرجة أدناه. لم تتغير أرقام الإصدارات ولا مسارات نقاط النهاية، لذا لا حاجة إلى أي ترحيل.

  • 8 سبتمبر 2026 تحديث نموذج الذكاء الاصطناعي وتحسينات على مستوى المنصة
  • 21 يوليو 2026 تحسينات شاملة وإصلاحات للأخطاء
  • 8 مايو 2026 تحسينات شاملة وإصلاحات للأخطاء

نقاط النهاية المستقرة الحالية

هذه نقاط النهاية الموصى بها للاستخدام في الإنتاج والتكاملات الجديدة.

APIنقطة النهايةالحالة
تحليل الدم v12 /api/v12/18-09-2026/analyze موصى به جديد 18.09.2026
تحليل الدم (درجة الصحة) v12 /api/v12/health-score/analyze موصى به جديد 18.09.2026
خريطة الجسم v1 /api/v1/body-map/analyze صدر 18.09.2026 جديد
العمر البيولوجي للدم v1 /api/v1/blood-age/analyze صدر 18.09.2026 جديد
تفسير فحص DNA v1 /api/v1/dna-interpretation/analyze صدر 23.09.2026 جديد
التقرير الصحي DNA + الدم v1 /api/v1/dna-blood-report/analyze صدر 23.09.2026 جديد
مستشار مكملات DNA v1 /api/v1/dna-supplements/analyze صدر 23.09.2026 جديد
تحليل الدم v11 /api/v11/01-06-2025/analyze مستقر تم التحديث 08.09.2026
تحليل الدم (درجة الصحة) v11 /api/v11/health-score/analyze مستقر تم التحديث 08.09.2026
AI التغذية v1 /api/v1/nutrition/diet-plan/analyze مستقر تم التحديث 08.09.2026
مقارنة AI لفحوصات الدم v1 /api/v1/bloodtest/comparison/analyze مستقر تم التحديث 08.09.2026
تقييم مخاطر صحة الأسرة v1 /api/v1/family-health/analyze صدر 23.03.2026 تم التحديث 08.09.2026
ICR - التعرف الذكي على الأحرف v1 /api/icr/v1/extract صدر 14.02.2026 تم التحديث 08.09.2026
ICR Kan - استخراج تحاليل الدم v1 /api/icr/v1/kan صدر 14.02.2026 تم التحديث 08.09.2026
تحليل الاتجاهات v1 /api/v1/analytics/trends/analyze مستقر تم التحديث 08.09.2026

تاريخ الإصدارات

التاريخالإصدارالتغييرات
23 سبتمبر 2026 تفسير فحص DNA v1، التقرير الصحي DNA + الدم v1، مستشار مكملات DNA v1 إطلاق واجهة صحة DNA — تفسير فحص DNA من بيانات DNA الخام (23andMe، AncestryDNA، MyHeritage، FTDNA، LivingDNA، VCF) أو من ملفات التقارير الجينية مقابل 334 واسماً منتقى، وتقرير صحي مجمَّع DNA + الدم، ومستشار مكملات يعتمد كتالوج منتجات العيادة نفسها؛ مع الوضع غير المتزامن ووضع الاختبار
سبتمبر 2026 تحليل الدم v12 إطلاق تحليل الدم v12 — رفع ملفات متعددة، وإعداد التقارير بـ100 لغة، ودرجة صحة وتحليل مخاطر أمراض اختياريان، ووضع اختبار
سبتمبر 2026 خريطة الجسم v1، العمر البيولوجي للدم v1 إطلاق واجهة خريطة الجسم وواجهة العمر البيولوجي للدم — تعيين النتائج الخارجة عن النطاق على مستوى الأعضاء عبر 13 منطقة تشريحية، وحساب العمر البيولوجي بنموذج PhenoAge مع ما يصل إلى 18 مؤشراً سريرياً مشتقاً؛ وكلتاهما توفران وضعاً حتمياً ووضع اختبار
سبتمبر 2026 جميع الإصدارات تحديث نموذج الذكاء الاصطناعي وتثبيته على أحدث إصدار من النموذج؛ تحسينات شاملة وإصلاحات للأخطاء على جميع إصدارات API؛ أرقام الإصدارات لم تتغير؛ دقة 98.89% في امتحانات كليات الطب (أحدث اختبار معياري مفتوح المصدر)
يوليو 2026 جميع الإصدارات تحسينات شاملة وإصلاحات للأخطاء تم تطبيقها على جميع إصدارات API؛ أرقام الإصدارات لم تتغير
مايو 2026 جميع الإصدارات تحسينات شاملة وإصلاحات للأخطاء تم تطبيقها على جميع إصدارات API؛ أرقام الإصدارات لم تتغير
مارس 2026 Family Health v1 إطلاق واجهة برمجة تطبيقات تقييم مخاطر صحة الأسرة — تحليل المخاطر الوراثية بالذكاء الاصطناعي، دعم أكثر من 100 لغة، تحليل شجرة العائلة، جدول الرعاية الوقائية، توصيات الفحص الجيني، وضع الاختبار
فبراير 2026 ICR v1 إصدار واجهة ICR (التعرف الذكي على الأحرف) — أسرع بنسبة 79% من OCR، مخرجات JSON منظمة، كشف نوع المستند، استخراج الجداول، تكامل Kan لتحاليل الدم
ديسمبر 2025 الأحدث معالجة أخطاء محسّنة، دقة 98.7%، دعم 100 لغة
يونيو 2025 v11 تحليل الدم v11، نقطة نهاية درجة الصحة، دعم الملفات المتعددة
أبريل 2025 v9 نموذج api_parameters_v9، استخراج معايير محسّن
مارس 2025 v8 دعم تحميل الملفات المتعددة، المعالجة الدفعية

نقاط النهاية القديمة

يتم الحفاظ على هذه نقاط النهاية للتوافق مع الإصدارات السابقة ولكن لا يُنصح بها للتكاملات الجديدة.

الإصدارنقطة النهايةالحالة
v10 /api/v10/health-score/analyze قديم
v9 /api/v9/14-04-2025/analyze قديم
v8 /api/v8/31-03-2025/analyze قديم
v6 /api/v6-1/21-11-2024/analyze قديم
v3 /api/v3/10-10-2024/analyze قديم
ملاحظة

يتم الحفاظ على نقاط النهاية القديمة للتوافق مع الإصدارات السابقة ولكن لا يُنصح بها للتكاملات الجديدة. يرجى الترحيل إلى نقاط النهاية المستقرة الحالية للحصول على أداء ودعم أفضل.

مرجع اللغات المدعومة

تدعم واجهة برمجة التطبيقات Kantesti 100 لغة لتوطين الردود. استخدم معامل language مع أي من رموز ISO 639-1 المدرجة أدناه. إذا لم يتم تحديده، يتم إرجاع الردود بالإنجليزية (en) افتراضيًا.

اللغة الافتراضية

إذا لم يتم توفير معامل language، ترجع واجهة برمجة التطبيقات الردود بالإنجليزية (en).

اللغات العالمية الرئيسية

الرمزاللغةالاسم الأصلي
enالإنجليزيةEnglish
zhالصينية中文
esالإسبانيةEspañol
arالعربيةالعربية
hiالهنديةहिन्दी
ptالبرتغاليةPortuguês
ruالروسيةРусский
jaاليابانية日本語
frالفرنسيةFrançais
deالألمانيةDeutsch
koالكورية한국어
trالتركيةTürkçe

اللغات الأوروبية

الرمزاللغةالاسم الأصلي
itالإيطاليةItaliano
nlالهولنديةNederlands
plالبولنديةPolski
elاليونانيةΕλληνικά
svالسويديةSvenska
ukالأوكرانيةУкраїнська

لغات الشرق الأوسط وآسيا الوسطى

الرمزاللغةالاسم الأصلي
heالعبريةעברית
faالفارسيةفارسی
azالأذربيجانيةAzərbaycan
kaالجورجيةქართული

لغات جنوب آسيا

الرمزاللغةالاسم الأصلي
bnالبنغاليةবাংলা
taالتاميليةதமிழ்
urالأرديةاردو

لغات جنوب شرق آسيا

الرمزاللغةالاسم الأصلي
idالإندونيسيةBahasa Indonesia
thالتايلانديةไทย
viالفيتناميةTiếng Việt

اللغات الأفريقية

الرمزاللغةالاسم الأصلي
afالأفريكانيةAfrikaans
swالسواحيليةKiswahili
amالأمهريةአማርኛ

لغات أخرى

الرمزاللغةالاسم الأصلي
laاللاتينيةLatina
eoالإسبرانتوEsperanto
yiاليديشيةייִדיש
htالكريولية الهايتيةKreyòl Ayisyen
miالماوريةTe Reo Māori
smالسامويةGagana Samoa
toالتونغيةLea Faka-Tonga
hawالهاواييةʻŌlelo Hawaiʻi

API تحليل الدم

حلل صور أو ملفات PDF لفحوصات الدم باستخدام الذكاء الاصطناعي لاستخراج المعايير وإنشاء تفسيرات طبية شاملة.

POST /api/v12/18-09-2026/analyze الأحدث

نقطة نهاية الإنتاج لتحليل الدم. ارفع صورة واحدة أو أكثر لفحص الدم أو ملف PDF، واحصل على معايير منظمة، وبيانات وصفية عن المريض والمختبر، وتفسير سريري كامل بأي من اللغات الـ100 المدعومة. يستهلك رصيدًا واحدًا لكل طلب.

معاملات الطلب

المعاملالنوعمطلوبالوصف
usernamestringنعماسم مستخدم API
passwordstringنعمكلمة مرور API
filefileنعمصورة فحص الدم (PNG، JPG، WEBP) أو PDF. الحد الأقصى 20 ميجابايت. كرر الحقل لإرسال عدة صور.
languagestringلارمز لغة الاستجابة (افتراضي: en). انظر اللغات المدعومة.
pdf_passwordstringلاكلمة مرور ملفات PDF المشفّرة

مثال cURL

curl -X POST "https://app.aibloodtestinterpret.com/api/v12/18-09-2026/analyze" \
  -F "username=اسم_المستخدم" \
  -F "password=كلمة_المرور" \
  -F "language=ar" \
  -F "file=@blood_test.pdf"

مثال Python

import requests

def analyze_blood_test(file_paths, username, password, language="ar"):
    """
    تحليل فحص دم باستخدام Kantesti Blood Test Analysis v12.

    Args:
        file_paths: مسار واحد أو أكثر لصور فحص الدم، أو ملف PDF واحد
        username: اسم مستخدم API
        password: كلمة مرور API
        language: رمز لغة التقرير (افتراضي: ar)

    Returns:
        dict: معايير منظمة وبيانات وصفية وتفسير سريري
    """
    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()

result = analyze_blood_test(
    file_paths=["blood_test.pdf"],
    username="your_username",
    password="your_password",
    language="ar"
)
for param in result["data"]["parameters"]:
    print(f"{param['short_name']}: {param['result']} {param['unit']} ({param['evaluation']})")

مثال على الاستجابة

{
  "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"
}
كلمات مفتاحية الاستجابة

يستخدم حقل evaluation قيمًا موحدة. انظر قيم التقييم.

POST /api/v11/01-06-2025/analyze مستقر

نقطة نهاية الإنتاج لتحليل الدم. يستهلك رصيدًا واحدًا لكل طلب.

معاملات الطلب

المعاملالنوعمطلوبالوصف
usernamestringنعماسم مستخدم API
passwordstringنعمكلمة مرور API
filefileنعمصورة فحص الدم (PNG، JPG، WEBP) أو PDF. الحد الأقصى 20 ميجابايت.
languagestringلارمز لغة الاستجابة (افتراضي: en). يدعم أكثر من 100 لغة.

مثال cURL

curl -X POST "https://app.aibloodtestinterpret.com/api/v11/01-06-2025/analyze" \
  -F "username=اسم_المستخدم" \
  -F "password=كلمة_المرور" \
  -F "language=ar" \
  -F "file=@تحليل_الدم.pdf"

مثال Python

import requests

def analyze_blood_test(file_path: str, username: str, password: str, language: str = "ar"):
    """
    تحليل ملف فحص الدم باستخدام API Kantesti.

    Args:
        file_path: المسار إلى PDF أو صورة فحص الدم
        username: اسم مستخدم API
        password: كلمة مرور API
        language: رمز لغة الاستجابة (افتراضي: ar)

    Returns:
        dict: استجابة API مع نتائج التحليل
    """
    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()

# مثال الاستخدام
if __name__ == "__main__":
    result = analyze_blood_test(
        file_path="تحليل_الدم.pdf",
        username="اسم_المستخدم",
        password="كلمة_المرور",
        language="ar"
    )
    print(f"الحالة: {result['status']}")
    print(f"المعايير الموجودة: {len(result['data']['parameters'])}")

مثال استجابة

{
  "status": "success",
  "data": {
    "metadata": {
      "patient_name": "Jan Novák",
      "lab_name": "مركز BioLAB الطبي",
      "lab_city": "الرياض",
      "lab_country": "المملكة العربية السعودية",
      "lab_date": "2025-05-11",
      "patient_age": "45",
      "patient_sex": "ذكر"
    },
    "parameters": [
      {
        "short_name": "WBC",
        "long_name": "خلايا الدم البيضاء",
        "category": "تعداد الدم الكامل",
        "result": 7.2,
        "unit": "10^9/L",
        "evaluation": "طبيعي",
        "range_min": 2.0,
        "range_max": 12.0,
        "range_normal_min": 4.0,
        "range_normal_max": 10.0,
        "short_description": "يقيس إجمالي عدد خلايا الدم البيضاء في الدم.",
        "long_description": "خلايا الدم البيضاء (الكريات البيض) ضرورية لوظيفة المناعة..."
      },
      {
        "short_name": "HGB",
        "long_name": "الهيموجلوبين",
        "category": "تعداد الدم الكامل",
        "result": 14.5,
        "unit": "g/dL",
        "evaluation": "طبيعي",
        "range_min": 10.0,
        "range_max": 18.0,
        "range_normal_min": 13.5,
        "range_normal_max": 17.5,
        "short_description": "بروتين خلايا الدم الحمراء الذي ينقل الأكسجين.",
        "long_description": "الهيموجلوبين هو البروتين المحتوي على الحديد المسؤول عن نقل الأكسجين..."
      }
    ],
    "interpretation": [
      {
        "title": "تقييم الصحة العامة",
        "shortcode": "overall_health_assessment",
        "subsections": [
          {
            "subtitle": "نظرة عامة شاملة",
            "shortcode": "overall_health_assessment_overview",
            "items": [
              {"item": "يظهر المريض وظائف أعضاء محفوظة مع معايير دموية طبيعية."},
              {"item": "لم يتم اكتشاف شذوذات كبيرة في تعداد الدم الكامل."}
            ]
          }
        ]
      }
    ]
  },
  "api_version": "v11",
  "timestamp": "2025-12-22T10:30:00Z"
}

مرجع حقول الاستجابة

المستوى الجذري
الحقلالنوعالوصف
statusstring"success" أو "error"
dataobjectيحتوي على جميع نتائج التحليل
timestampstringالطابع الزمني ISO 8601 للاستجابة
api_versionstringإصدار API المستخدم
كائن data.metadata
الحقلالنوعالوصف
lab_datestringتاريخ سحب الدم (YYYY-MM-DD)
results_datestringتاريخ إصدار النتائج (YYYY-MM-DD)
lab_namestringاسم المختبر
lab_citystringمدينة المختبر
lab_countrystringبلد المختبر
patient_namestringالاسم الكامل للمريض (بيانات وصفية فقط، لا يُرسل إلى التفسير)
patient_agestringعمر المريض
patient_sexstring"male" أو "female" أو "other"
عنصر مصفوفة data.parameters
الحقلالنوعالوصف
categorystringفئة المعلمة (مثل: "تعداد الدم الكامل"، "لوحة الدهون")
long_namestringالاسم الكامل للمعلمة
short_namestringالاسم المختصر للمعلمة
resultstringالقيمة المقاسة
unitstringوحدة القياس
range_minstringالحد الأدنى للنطاق المرجعي
range_maxstringالحد الأقصى للنطاق المرجعي
evaluationstringحالة النتيجة. انظر قيم التقييم
عنصر مصفوفة data.interpretation
الحقلالنوعالوصف
titlestringعنوان القسم (مثل: "تقييم الصحة العامة")
contentstringالتفسير الطبي المولد بالذكاء الاصطناعي
كلمات مفتاحية الاستجابة

يستخدم حقل evaluation قيمًا موحدة. انظر قيم التقييم.

POST /api/v12/health-score/analyze الأحدث

نقطة نهاية الإنتاج مع حساب شامل لدرجة الصحة وتحليل مخاطر الأمراض. تأخذ الطلب نفسه الذي تأخذه /api/v12/18-09-2026/analyze وتضيف الحقول أدناه إلى الاستجابة. تستهلك رصيدًا واحدًا لكل طلب.

مثال cURL

curl -X POST "https://app.aibloodtestinterpret.com/api/v12/health-score/analyze" \
  -F "username=اسم_المستخدم" \
  -F "password=كلمة_المرور" \
  -F "language=ar" \
  -F "file=@blood_test.pdf"

حقول الاستجابة الإضافية

{
  "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"}
  ]
}
كلمات مفتاحية الاستجابة

يستخدم حقل score_interpretation قيمًا موحدة. انظر قيم درجة الصحة.

التغذية بالذكاء الاصطناعي مع المكملات

إنشاء خطط تغذية مخصصة وتوصيات غذائية واقتراحات مكملات بناءً على تحليل فحص الدم.

POST /api/v1/nutrition/diet-plan/analyze جديد

ينشئ توصيات شاملة للتغذية والمكملات بناءً على معلمات فحص الدم وملف المريض.

مخطط كائن المريض

وصف تفصيلي لجميع الحقول المتاحة لكائن المريض:

الحقل النوع مطلوب الافتراضي الوصف
age integer نعم - عمر المريض بالسنوات (18-120)
gender string نعم - جنس المريض. انظر القيم
weight number لا null الوزن بالكيلوجرام (لحسابات السعرات)
height number لا null الطول بالسنتيمتر (لحسابات مؤشر كتلة الجسم)
conditions array لا [] الحالات الطبية. انظر القيم
allergies array لا [] حساسية الطعام. انظر القيم
dietary_preferences array لا [] التفضيلات الغذائية. انظر القيم
activity_level string لا "moderate" مستوى النشاط البدني. انظر القيم
dietary_restrictions array لا [] القيود الغذائية (مثل: خالي من الجلوتين، خالي من اللاكتوز)
liked_foods array لا [] الأطعمة المفضلة لتخصيص الخطة
disliked_foods array لا [] الأطعمة المراد تجنبها في التوصيات
meal_frequency integer لا 3 عدد الوجبات يومياً (1-6)
budget string لا "moderate" مستوى الميزانية: "low"، "moderate"، "high"
medications array لا [] الأدوية الحالية (للتفاعلات)

مرجع حقول الاستجابة

كائن nutrition_plan.educational_insights
الحقل النوع الوصف
blood_marker_education array محتوى تعليمي حول مؤشرات الدم المحللة
nutrition_principles array مبادئ التغذية العامة للمريض
عنصر مصفوفة blood_marker_education
الحقل النوع الوصف
marker string اسم مؤشر الدم (مثل: "فيتامين د"، "الكوليسترول")
explanation string شرح تعليمي لأهمية المؤشر
normal_range string نطاق القيم الطبيعية للمؤشر
عنصر مصفوفة food_recommendations.power_foods
الحقل النوع الوصف
food string اسم الطعام الموصى به
nutrients array قائمة العناصر الغذائية الرئيسية
serving string حجم الحصة الموصى بها
why string شرح الفوائد الصحية
عنصر مصفوفة supplement_recommendations
الحقل النوع الوصف
supplement string اسم المكمل
dosage string الجرعة اليومية الموصى بها
timing string أفضل وقت للتناول (مثل: "مع الإفطار")
duration string مدة التكميل الموصى بها
reason string المبرر بناءً على نتائج الفحص

مثال cURL كامل

curl -X POST "https://app.aibloodtestinterpret.com/api/v1/nutrition/diet-plan/analyze" \
  -H "Content-Type: application/json" \
  -d '{
    "username": "اسم_المستخدم_الخاص_بك",
    "password": "كلمة_المرور_الخاصة_بك",
    "language": "ar",
    "patient": {
      "age": 45,
      "gender": "male",
      "weight": 82,
      "height": 178,
      "conditions": ["hypertension"],
      "allergies": ["shellfish"],
      "dietary_preferences": ["mediterranean"],
      "activity_level": "moderate",
      "liked_foods": ["fish", "vegetables", "olive oil"],
      "disliked_foods": ["liver"],
      "meal_frequency": 3,
      "budget": "moderate"
    },
    "blood_test": {
      "lab_date": "2025-12-01",
      "parameters": [
        {"short_name": "VITD", "result": 18, "unit": "ng/mL"},
        {"short_name": "CHOL", "result": 210, "unit": "mg/dL"},
        {"short_name": "LDL", "result": 140, "unit": "mg/dL"},
        {"short_name": "HDL", "result": 45, "unit": "mg/dL"},
        {"short_name": "FE", "result": 65, "unit": "µg/dL"}
      ]
    },
    "health_goals": ["lower_cholesterol", "increase_energy", "heart_health"]
  }'

الاستجابة الكاملة

{
  "status": "success",
  "data": {
    "nutrition_plan": {
      "daily_calories": 2100,
      "macros": {
        "protein": {"grams": 105, "percentage": 20},
        "carbohydrates": {"grams": 236, "percentage": 45},
        "fats": {"grams": 82, "percentage": 35}
      },
      "educational_insights": {
        "blood_marker_education": [
          {
            "marker": "فيتامين د",
            "explanation": "فيتامين د ضروري لصحة العظام والمناعة وتنظيم المزاج. مستواك 18 نانوغرام/مل يشير إلى نقص قد يؤثر على امتصاص الكالسيوم والصحة العامة.",
            "normal_range": "30-50 ng/mL"
          },
          {
            "marker": "كوليسترول LDL",
            "explanation": "كوليسترول LDL، المعروف بـ'الكوليسترول الضار'، يمكن أن يتراكم في جدران الشرايين. مستواك 140 ملغ/ديسيلتر مرتفع وقد يزيد خطر أمراض القلب.",
            "normal_range": "< 100 mg/dL"
          }
        ],
        "nutrition_principles": [
          "أعطِ الأولوية لأحماض أوميغا-3 الدهنية لصحة القلب",
          "زِد الألياف القابلة للذوبان لخفض كوليسترول LDL",
          "ضمّن أطعمة غنية بفيتامين د والتعرض لأشعة الشمس"
        ]
      }
    },
    "food_recommendations": {
      "power_foods": [
        {
          "food": "سمك السلمون البري",
          "nutrients": ["أوميغا-3", "فيتامين د", "البروتين"],
          "serving": "150 غرام، 3 مرات أسبوعياً",
          "why": "مصدر ممتاز لأوميغا-3 وفيتامين د الطبيعي لصحة القلب والعظام"
        },
        {
          "food": "الشوفان الكامل",
          "nutrients": ["بيتا-جلوكان", "الألياف", "المغنيسيوم"],
          "serving": "50 غرام يومياً على الإفطار",
          "why": "الألياف القابلة للذوبان في الشوفان تساعد على تقليل امتصاص كوليسترول LDL"
        },
        {
          "food": "زيت الزيتون البكر الممتاز",
          "nutrients": ["دهون أحادية غير مشبعة", "بوليفينول", "فيتامين هـ"],
          "serving": "2-3 ملاعق كبيرة يومياً",
          "why": "الدهون الصحية المتوسطية تحسن ملف الدهون وتحمي القلب"
        },
        {
          "food": "السبانخ",
          "nutrients": ["الحديد", "حمض الفوليك", "فيتامين ك"],
          "serving": "100 غرام يومياً، نيئة أو مطبوخة",
          "why": "غني بالحديد ومضادات الأكسدة للطاقة وصحة القلب والأوعية"
        }
      ]
    },
    "supplement_recommendations": [
      {
        "supplement": "فيتامين د3",
        "dosage": "2000-4000 وحدة دولية يومياً",
        "timing": "مع الإفطار (وجبة تحتوي على دهون)",
        "duration": "3-6 أشهر، ثم إعادة الفحص",
        "reason": "مستواك 18 نانوغرام/مل أقل من المستوى الأمثل 30-50 نانوغرام/مل"
      },
      {
        "supplement": "أوميغا-3 (EPA/DHA)",
        "dosage": "1000-2000 ملغ EPA+DHA يومياً",
        "timing": "مع الوجبات الرئيسية",
        "duration": "مستمر لصحة القلب",
        "reason": "يساعد على خفض الدهون الثلاثية وتحسين نسبة HDL/LDL"
      },
      {
        "supplement": "إنزيم Q10",
        "dosage": "100 ملغ يومياً",
        "timing": "مع وجبة الصباح",
        "duration": "3 أشهر كحد أدنى",
        "reason": "يدعم صحة القلب، مهم بشكل خاص مع ارتفاع ضغط الدم"
      }
    ]
  },
  "api_version": "v1",
  "timestamp": "2025-12-22T10:30:00Z"
}
كلمات مفتاحية الاستجابة

للحصول على قائمة كاملة بجميع قيم الاستجابة الممكنة، راجع قسم الكلمات المفتاحية للإخراج.

نقاط نهاية Sandbox

تُرجع نقاط نهاية Sandbox بيانات اختبار واقعية دون استهلاك حصة API. استخدمها للتطوير واختبار التكامل.

فوائد Sandbox
  • عدم استهلاك الحصة
  • إرجاع بيانات اختبار واقعية
  • نفس تنسيق الطلب كالإنتاج
  • اختبر التكامل قبل البدء بالإنتاج
  • متاح لجميع إصدارات API
APIنقطة نهاية Sandbox
فحص الدم v12/api/v12/18-09-2026/sandbox
فحص الدم v12-health/api/v12/health-score/sandbox
خريطة الجسم/api/v1/body-map/sandbox
العمر البيولوجي للدم/api/v1/blood-age/sandbox
تفسير فحص DNA/api/v1/dna-interpretation/sandbox
التقرير الصحي DNA + الدم/api/v1/dna-blood-report/sandbox
مستشار مكملات DNA/api/v1/dna-supplements/sandbox
فحص الدم v11/api/v11/01-06-2025/sandbox
فحص الدم v11-health/api/v11/health-score/sandbox
التغذية بالذكاء الاصطناعي/api/v1/nutrition/diet-plan/sandbox
مقارنة الفحوصات/api/v1/bloodtest/comparison/sandbox
تحليل الاتجاهات/api/v1/analytics/trends/sandbox
ICR - التعرف الذكي على الأحرف/api/icr/v1/sandbox
ICR Kan - تحاليل الدم/api/icr/v1/kan/sandbox
مقارنة API المقارنة مع API تحليل الاتجاهات

اختر API المناسب لحالتك:

الميزةمقارنة AI لفحوصات الدمتحليل الاتجاهات
التركيز الرئيسيمقارنة سردية بالذكاء الاصطناعيتحليل إحصائي للاتجاهات
معالجة AIسرد AI كاملAI محسّن + إحصائيات
نوع المخرجاتملخصات سرديةرسوم بيانية، إحصائيات، أنماط
الأفضل لـما تغير بين الفحوصاتتتبع المعلمات طويل المدى
الحد الأدنى للفحوصات22
الحد الأقصى للفحوصات2050

API تحليل الاتجاهات

تحليل إحصائي متقدم لمعايير فحص الدم عبر الزمن. يتتبع الاتجاهات والأنماط والتغييرات في حتى 50 اختبار دم لتحديد المشكلات الصحية المحتملة وتتبع التقدم.

API مقارنة فحوصات الدم

قارن ما يصل إلى 20 فحص دم باستخدام الذكاء الاصطناعي لإنشاء ملخصات سردية للتغييرات والأنماط والتحسينات أو التدهورات في المعايير الصحية.

POST /api/v1/bloodtest/comparison/analyze مستقر

يوفر مقارنات سردية مدعومة بالذكاء الاصطناعي بين فحوصات الدم المتعددة، مع التركيز على التغييرات ذات المغزى والرؤى الطبية.

متطلبات
  • الحد الأدنى: اختباران للدم للمقارنة
  • الحد الأقصى: 20 اختبار دم في طلب واحد
  • الترتيب: قدم الاختبارات بترتيب زمني (من الأقدم إلى الأحدث)

معاملات الطلب

المعاملالنوعمطلوبالوصف
usernamestringنعماسم مستخدم API
passwordstringنعمكلمة مرور API
languagestringلارمز لغة الاستجابة (افتراضي: en). يدعم أكثر من 100 لغة.
blood_testsarrayنعممصفوفة من 2-20 فحص دم بترتيب زمني. انظر الهيكل

هيكل مصفوفة blood_tests

يجب أن يكون كل عنصر في مصفوفة blood_tests كائنًا بالحقول التالية:

الحقلالنوعمطلوبالوصف
test_datestringنعمتاريخ فحص الدم (YYYY-MM-DD)
parametersarrayنعممصفوفة من كائنات المعايير

يجب أن يحتوي كل عنصر في مصفوفة parameters على:

الحقلالنوعمطلوبالوصف
short_namestringنعماسم المعلمة المختصر (مثل: WBC، HGB، CHOL)
resultnumberنعمالقيمة المقاسة
unitstringنعموحدة القياس
evaluationstringلاحالة التقييم. انظر القيم

مثال cURL

curl -X POST "https://app.aibloodtestinterpret.com/api/v1/bloodtest/comparison/analyze" \
  -H "Content-Type: application/json" \
  -d '{
    "username": "اسم_المستخدم",
    "password": "كلمة_المرور",
    "language": "ar",
    "blood_tests": [
      {
        "test_date": "2024-06-01",
        "parameters": [
          {"short_name": "WBC", "result": 6.5, "unit": "10^9/L", "evaluation": "normal"},
          {"short_name": "HGB", "result": 13.8, "unit": "g/dL", "evaluation": "borderline_low"},
          {"short_name": "CHOL", "result": 220, "unit": "mg/dL", "evaluation": "high"}
        ]
      },
      {
        "test_date": "2024-12-01",
        "parameters": [
          {"short_name": "WBC", "result": 7.2, "unit": "10^9/L", "evaluation": "normal"},
          {"short_name": "HGB", "result": 14.5, "unit": "g/dL", "evaluation": "normal"},
          {"short_name": "CHOL", "result": 185, "unit": "mg/dL", "evaluation": "normal"}
        ]
      }
    ]
  }'

مثال Python

import requests
from typing import List, Dict

def compare_blood_tests(
    blood_tests: List[Dict],
    username: str,
    password: str,
    language: str = "ar"
):
    """
    قارن فحوصات دم متعددة باستخدام AI.

    Args:
        blood_tests: قائمة من 2-20 فحص دم بترتيب زمني
        username: اسم مستخدم API
        password: كلمة مرور API
        language: رمز لغة الاستجابة

    Returns:
        dict: استجابة API مع تحليل المقارنة
    """
    url = "https://app.aibloodtestinterpret.com/api/v1/bloodtest/comparison/analyze"

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

# مثال الاستخدام
if __name__ == "__main__":
    blood_tests = [
        {
            "test_date": "2024-06-01",
            "parameters": [
                {"short_name": "WBC", "result": 6.5, "unit": "10^9/L", "evaluation": "normal"},
                {"short_name": "CHOL", "result": 220, "unit": "mg/dL", "evaluation": "high"}
            ]
        },
        {
            "test_date": "2024-12-01",
            "parameters": [
                {"short_name": "WBC", "result": 7.2, "unit": "10^9/L", "evaluation": "normal"},
                {"short_name": "CHOL", "result": 185, "unit": "mg/dL", "evaluation": "normal"}
            ]
        }
    ]

    result = compare_blood_tests(
        blood_tests=blood_tests,
        username="اسم_المستخدم",
        password="كلمة_المرور",
        language="ar"
    )
    print(f"الحالة: {result['status']}")
    print(result['data']['summary'])

مثال استجابة

{
  "status": "success",
  "data": {
    "comparison_summary": {
      "tests_compared": 2,
      "date_range": {
        "first_test": "2024-06-01",
        "last_test": "2024-12-01"
      },
      "time_span_days": 183,
      "parameters_compared": 3,
      "overall_trend": "improving"
    },
    "parameter_comparisons": [
      {
        "parameter": {
          "short_name": "CHOL",
          "long_name": "الكوليسترول الكلي",
          "category": "لوحة الدهون"
        },
        "comparison": {
          "first_value": 220,
          "last_value": 185,
          "absolute_change": -35,
          "percentage_change": -15.9,
          "trend_assessment": "improving"
        },
        "evaluations": {
          "first_test": "high",
          "last_test": "normal"
        },
        "narrative": "انخفض الكوليسترول الكلي من 220 إلى 185 ملغ/ديسيلتر، وهو تحسن ممتاز بنسبة 15.9%. تحرك من النطاق المرتفع إلى الطبيعي، مما يشير إلى تعديلات فعالة لنمط الحياة أو العلاج. يقلل هذا من خطر الإصابة بأمراض القلب والأوعية الدموية."
      },
      {
        "parameter": {
          "short_name": "HGB",
          "long_name": "الهيموجلوبين",
          "category": "تعداد الدم الكامل"
        },
        "comparison": {
          "first_value": 13.8,
          "last_value": 14.5,
          "absolute_change": 0.7,
          "percentage_change": 5.1,
          "trend_assessment": "improving"
        },
        "evaluations": {
          "first_test": "borderline_low",
          "last_test": "normal"
        },
        "narrative": "زاد الهيموجلوبين من 13.8 إلى 14.5 غ/ديسيلتر، تحسن بنسبة 5.1%. تحرك من النطاق الحدي المنخفض إلى الطبيعي، مما يشير إلى تحسن قدرة حمل الأكسجين في الدم وانخفاض محتمل في خطر فقر الدم."
      },
      {
        "parameter": {
          "short_name": "WBC",
          "long_name": "خلايا الدم البيضاء",
          "category": "تعداد الدم الكامل"
        },
        "comparison": {
          "first_value": 6.5,
          "last_value": 7.2,
          "absolute_change": 0.7,
          "percentage_change": 10.8,
          "trend_assessment": "stable"
        },
        "evaluations": {
          "first_test": "normal",
          "last_test": "normal"
        },
        "narrative": "بقيت خلايا الدم البيضاء مستقرة ضمن النطاق الطبيعي، مع زيادة طفيفة من 6.5 إلى 7.2. يشير هذا إلى وظيفة مناعية صحية ثابتة بدون مخاوف."
      }
    ],
    "ai_interpretation": {
      "overall_health_assessment": "تُظهر فحوصات الدم تحسنًا إجماليًا إيجابيًا على مدى 6 أشهر. التحسينات الأكثر أهمية هي في ملف الدهون (الكوليسترول -15.9%) ومستويات الهيموجلوبين (+5.1%). جميع المعايير الآن ضمن النطاقات الطبيعية.",
      "key_improvements": [
        {
          "parameter": "الكوليسترول الكلي",
          "description": "انخفاض كبير من مستويات عالية إلى طبيعية",
          "clinical_significance": "يقلل من خطر الإصابة بأمراض القلب والأوعية الدموية"
        },
        {
          "parameter": "الهيموجلوبين",
          "description": "تحسن من حدي منخفض إلى طبيعي",
          "clinical_significance": "تحسن قدرة حمل الأكسجين ومستويات الطاقة"
        }
      ],
      "areas_of_concern": [],
      "recommendations": [
        "استمر في تدابير إدارة الكوليسترول الحالية (النظام الغذائي، التمارين، الأدوية إن وجدت)",
        "حافظ على تناول كافٍ للحديد والعناصر الغذائية لدعم مستويات الهيموجلوبين",
        "جدولة اختبار متابعة في 6 أشهر للتأكد من الحفاظ على هذه التحسينات"
      ]
    }
  },
  "api_version": "v1",
  "timestamp": "2025-12-22T10:30:00Z"
}

مرجع حقول الاستجابة

المستوى الجذري
الحقلالنوعالوصف
statusstring"success" أو "error"
dataobjectيحتوي على جميع نتائج المقارنة
timestampstringالطابع الزمني ISO 8601 للاستجابة
api_versionstringإصدار API المستخدم
كائن data.comparison_summary
الحقلالنوعالوصف
tests_comparedintegerعدد فحوصات الدم المقارنة
date_rangeobjectتواريخ الاختبار الأول والأخير
time_span_daysintegerعدد الأيام بين الاختبارات
parameters_comparedintegerعدد المعايير المقارنة
overall_trendstringالاتجاه العام للصحة. انظر القيم
عنصر مصفوفة data.parameter_comparisons
الحقلالنوعالوصف
parameterobjectمعلومات المعلمة (short_name، long_name، category)
comparisonobjectبيانات المقارنة الرقمية
evaluationsobjectالتقييمات للاختبار الأول والأخير
narrativestringملخص سردي مولد بالذكاء الاصطناعي للتغيير
كائن comparison
الحقلالنوعالوصف
first_valuenumberالقيمة من الاختبار الأول
last_valuenumberالقيمة من الاختبار الأخير
absolute_changenumberالفرق المطلق (last - first)
percentage_changenumberنسبة التغيير
trend_assessmentstringالتقييم السريري. انظر القيم
كائن data.ai_interpretation
الحقلالنوعالوصف
overall_health_assessmentstringملخص سردي شامل للتغييرات الصحية
key_improvementsarrayقائمة التحسينات الملحوظة
areas_of_concernarrayقائمة القضايا أو التدهورات المحتملة
recommendationsarrayتوصيات عملية مولدة بالذكاء الاصطناعي
كلمات مفتاحية الاستجابة

تستخدم حقول evaluation و trend_assessment قيمًا موحدة. انظر evaluation و trend_assessment.

مرجع الكلمات المفتاحية

مرجع كامل لجميع قيم الكلمات المفتاحية المدخلة المستخدمة في نقاط نهاية Kantesti API. استخدم هذه القيم الدقيقة عند إجراء طلبات API.

analysis_type API تحليل الاتجاهات

يحدد نوع تحليل الاتجاهات المطلوب تنفيذه.

القيمةافتراضيالوصف
comprehensive✓تحليل كامل مع إحصائيات ورسوم بيانية وتفسير AI
statisticalتحليل إحصائي فقط
summaryملخص عالي المستوى فقط

health_goals API التغذية

أهداف صحية لتوصيات غذائية مخصصة. يمكن تقديم قيم متعددة كمصفوفة.

القيمةالوصف
maintainالحفاظ على الصحة الحالية (افتراضي)
improve_energyالتركيز على مستويات الطاقة
weight_managementإدارة الوزن الصحي
heart_healthصحة القلب والأوعية الدموية
immune_supportدعم جهاز المناعة
digestive_healthصحة الجهاز الهضمي
bone_healthصحة العظام
mental_clarityالوظيفة الإدراكية

dietary_restrictions API التغذية

القيود الغذائية والحساسية. يمكن تقديم قيم متعددة كمصفوفة. يُقبل النص الحر أيضًا للقيود المخصصة.

القيمةالوصف
low_sodiumتقليل تناول الصوديوم
low_sugarتقليل تناول السكر
low_fatتقليل تناول الدهون
gluten_freeخالي من الغلوتين
dairy_freeخالي من منتجات الألبان
nut_freeخالي من المكسرات
soy_freeخالي من الصويا
egg_freeخالي من البيض
halalمتوافق مع الحلال
kosherمتوافق مع الكوشر
ملاحظة

يُقبل النص الحر أيضًا للقيود الغذائية المخصصة غير المدرجة أعلاه.

dietary_preferences API التغذية

تفضيلات نمط الحياة الغذائي لتخطيط الوجبات.

القيمةالوصف
omnivoreبدون قيود (افتراضي)
vegetarianبدون لحوم
veganبدون منتجات حيوانية
pescatarianنباتي + أسماك
ketoنظام كيتو الغذائي
paleoنظام باليو الغذائي
mediterraneanنظام البحر المتوسط الغذائي

activity_level API التغذية

مستوى النشاط البدني لحسابات السعرات الحرارية والتغذية.

القيمةالوصف
sedentaryقليل أو بدون تمارين
lightتمارين خفيفة 1-3 أيام/أسبوع
moderateتمارين معتدلة 3-5 أيام/أسبوع (افتراضي)
activeتمارين مكثفة 6-7 أيام/أسبوع
very_activeتمارين مكثفة جدًا أو عمل بدني

budget API التغذية

مستوى الميزانية لتوصيات الطعام والمكملات.

القيمةالوصف
lowخيارات اقتصادية
moderateخيارات متوازنة (افتراضي)
highخيارات متميزة

gender جميع APIs

جنس المريض للنطاقات المرجعية والتوصيات المخصصة.

القيمةالوصف
maleمريض ذكر
femaleمريضة أنثى
otherآخر أو غير محدد

كلمات مفتاحية الإخراج

تظهر الكلمات المفتاحية التالية في استجابات API للإشارة إلى الحالة والتقييمات والاتجاهات.

evaluation تحليل الدم والمقارنة

حالة تقييم المعلمة تشير إلى كيفية مقارنة النتيجة بالنطاقات المرجعية.

القيمةالوصف
normalضمن النطاق المرجعي الطبيعي
lowأقل من النطاق الطبيعي
highأعلى من النطاق الطبيعي
critical_lowمنخفض بشكل حرج (يتطلب اهتمامًا فوريًا)
critical_highمرتفع بشكل حرج (يتطلب اهتمامًا فوريًا)
borderline_lowأقل قليلاً من النطاق الطبيعي
borderline_highأعلى قليلاً من النطاق الطبيعي

trend_assessment المقارنة وتحليل الاتجاه

التقييم العام لاتجاه المعلمة مع مرور الوقت.

القيمةالوصف
positiveالاتجاه يتحرك في اتجاه صحي
negativeالاتجاه يتحرك في اتجاه مثير للقلق
stableالاتجاه يبقى ثابتًا
improvingتحسن نشط منذ القياس الأخير
worseningتدهور نشط منذ القياس الأخير

trend_direction تحليل الاتجاه

اتجاه تغيير المعلمة.

القيمةالوصف
upwardالقيم تزداد مع مرور الوقت
downwardالقيم تنخفض مع مرور الوقت
stableالقيم تبقى ثابتة

trend_strength تحليل الاتجاه

حجم تغيير الاتجاه.

القيمةالوصف
strongتغيير كبير (أكثر من 15% تغيير)
moderateتغيير ملحوظ (تغيير 5-15%)
mildتغيير طفيف (أقل من 5% تغيير)

health_score / overall_score درجة الصحة

فئات التصنيف الإجمالي لتقييم الصحة.

القيمةالوصف
excellentصحة مثالية، جميع المعايير ضمن النطاقات المثلى
goodحالة صحية جيدة، اعتبارات ثانوية
fairحالة معتدلة، بعض المجالات تحتاج اهتمامًا
poorيحتاج تحسين، مخاوف صحية كبيرة موجودة

نقاط نهاية الأدوات

GET /api/info

يُرجع معلومات منصة API، الإصدارات المتاحة والميزات المدعومة. لا يتطلب مصادقة.

مثال استجابة

{
  "platform": "منصة API Kantesti لتحليل الدم",
  "versions": ["v6", "v8", "v9", "v10", "v11"],
  "latest_version": "v11",
  "supported_languages": 100,
  "documentation": "https://www.kantesti.net/docs/",
  "status": "operational"
}
POST /api/quota/check

تحقق من حصة API المتبقية. يتطلب المصادقة.

مثال cURL

curl -X POST "https://app.aibloodtestinterpret.com/api/quota/check" \
  -H "Content-Type: application/json" \
  -d '{"username": "اسم_المستخدم", "password": "كلمة_المرور"}'

مثال استجابة

{
  "status": "success",
  "quota": {
    "remaining": 847,
    "total": 1000,
    "reset_date": "2026-01-01",
    "plan": "professional"
  }
}

واجهة برمجة تطبيقات تقييم مخاطر صحة الأسرة

صدر: 23 مارس 2026

واجهة Kantesti لتقييم مخاطر صحة الأسرة هي منصة تحليل المخاطر الصحية الوراثية المدعومة بالذكاء الاصطناعي. تُنشئ تقارير صحية عائلية شاملة من خلال تحليل التاريخ الطبي للعائلة، والملفات الصحية للمرضى، وبيانات فحوصات الدم لتحديد عوامل الخطر الوراثية وتقديم توصيات رعاية وقائية مخصصة.

+100
لغة
9
فئات الأمراض
14
علاقات عائلية

تحليل المخاطر الوراثية بالذكاء الاصطناعي

تستخدم واجهة Family Health نماذج ذكاء اصطناعي متقدمة لمقارنة التاريخ الطبي العائلي مع بيانات فحوصات دم المريض، وتحديد أنماط المخاطر الوراثية في فئات القلب والأوعية الدموية، والتمثيل الغذائي، والسرطان، والأعصاب، والجهاز التنفسي، والمناعة الذاتية، والوراثة، والصحة النفسية، والكلى/الكبد. تشمل التقارير تقييم المخاطر، وجداول الرعاية الوقائية، وتوصيات الفحص الجيني، ونصائح نمط الحياة — وكل ذلك مترجم بأكثر من 100 لغة.

الميزات الرئيسية
  • تحليل المخاطر الوراثية — تصنيف إلى مخاطر عالية ومتوسطة ومنخفضة مع تقييم مفصل
  • تحليل شجرة العائلة — رسم خريطة مخاطر خطوط الأب والأم
  • ارتباط فحوصات الدم — مقارنة التاريخ العائلي مع معايير الدم
  • توصيات الفحص الجيني — اقتراحات مخصصة للاختبارات الجينية
  • جدول الرعاية الوقائية — برامج فحص مناسبة للعمر
  • تحليل الأدوية — تقييم التفاعلات والحساسيات الوراثية
  • أكثر من 100 لغة — توطين كامل للتقارير
  • وضع الاختبار — اختبر التكامل دون استهلاك الرصيد

ملخص نقاط النهاية

نقطة النهايةالطريقةالوصفالمصادقة
/api/v1/family-health/analyzePOSTإنشاء تقرير شامل لتقييم المخاطرمطلوب (1 رصيد)
/api/v1/family-health/validatePOSTالتحقق من صحة البيانات (بدون استهلاك)مطلوب (مجاني)
/api/v1/family-health/supported-languagesGETقائمة أكثر من 100 لغة مدعومةغير مطلوب
/api/v1/family-health/condition-categoriesGETقائمة فئات الأمراضغير مطلوب
/api/v1/family-health/family-relationsGETقائمة أنواع العلاقات العائليةغير مطلوب
/api/v1/family-health/sandbox/analyzePOSTاختبار تجريبي ببيانات نموذجيةمطلوب (مجاني)
POST /api/v1/family-health/analyze صدر 23.03.2026

إنشاء تقرير شامل لتقييم مخاطر صحة الأسرة مدعوم بالذكاء الاصطناعي.

معاملات الطلب (JSON Body)

المعاملالنوعمطلوبالوصف
usernamestringنعماسم المستخدم API
passwordstringنعمكلمة مرور API
patient_dataobjectنعمبيانات المريض
family_membersarrayنعم*أعضاء الأسرة (حد أقصى 100)
health_profileobjectنعم*الملف الصحي
blood_test_dataarrayلابيانات فحوصات الدم
languagestringلارمز اللغة (افتراضي: en)

مثال cURL

curl -X POST "https://app.aibloodtestinterpret.com/api/v1/family-health/analyze" \
  -H "Content-Type: application/json" \
  -d '{"username":"اسم_المستخدم","password":"كلمة_المرور","patient_data":{"name":"فاطمة أحمد","age":42,"gender":"female"},"family_members":[{"relation":"father","age":70,"conditions":["hypertension"]}],"language":"ar"}'

مثال Python

import requests
url = "https://app.aibloodtestinterpret.com/api/v1/family-health/analyze"
payload = {"username":"اسم_المستخدم","password":"كلمة_المرور","patient_data":{"name":"فاطمة أحمد","age":42,"gender":"female"},"family_members":[{"relation":"father","age":70,"conditions":["hypertension"]}],"language":"ar"}
response = requests.post(url, json=payload, timeout=120)
print(response.json())

مثال الاستجابة

{"status":"success","data":{"report_data":{"report_title":"تقرير تقييم مخاطر صحة الأسرة","hereditary_risk_analysis":{"high_risk":[{"condition":"أمراض القلب والأوعية الدموية","risk_score":75}]},"genetic_screening_recommendations":["فحص جيني BRCA1/BRCA2"]}},"timestamp":"2026-03-23T10:30:00Z","api_version":"1.0.0"}

رموز أخطاء Family Health API

الرمزHTTPالوصف
AUTH_1001401بيانات المصادقة مفقودة
AUTH_1002401اسم مستخدم أو كلمة مرور غير صالحة
QUOTA_1101403حصة API غير كافية
VAL_2001400حقل مطلوب مفقود
VAL_2003400رمز لغة غير مدعوم
PROC_3001500فشل إنشاء التقرير
SRV_5001500خطأ داخلي في الخادم

نقطة نهاية الاختبار Family Health

اختبر تكاملك دون استهلاك الرصيد.

APIاختبارالوصف
Family Health/api/v1/family-health/sandbox/analyzeبيانات تقرير نموذجية

نقاط النهاية المرجعية (بدون مصادقة)

نقطة النهايةالطريقةالوصف
/api/v1/family-health/supported-languagesGETأكثر من 100 لغة مدعومة
/api/v1/family-health/condition-categoriesGET9 فئات أمراض
/api/v1/family-health/family-relationsGET14 علاقة عائلية

واجهة برمجة تطبيقات خريطة الجسم

صدر: 18 سبتمبر 2026

تحوّل واجهة Kantesti لخريطة الجسم لوحة التحاليل المخبرية إلى تشريح. تضع كل نتيجة خارج النطاق أو حدّية على واحدة من 13 منطقة في الجسم، وتُعيد مفتاح الخريطة — أي منطقة، وبأي شدة، وأي المؤشرات وضعتها هناك — إضافة إلى رابط لرسم توضيحي مطابق للجسم.

13
مناطق في الجسم
39
لغات الإدخال
0
استدعاءات النموذج افتراضياً

حتمية بشكل افتراضي

تُطابَق أسماء المؤشرات مع جداول مرادفات متعددة اللغات تغطي 39 لغة تقارير، بما في ذلك الكتابات غير اللاتينية — أرسل أسماء التحاليل تماماً كما طبعها مختبرك وبأي لغة طبعها. لا يُستدعى أي نموذج ولا يُولَّد أي رسم توضيحي ما لم تطلب ذلك، لذا فإن الطلب الافتراضي خالٍ من تكلفة الذكاء الاصطناعي ويُعيد النتيجة نفسها في كل مرة للوحة التحاليل نفسها.

الميزات الرئيسية
  • 13 منطقة تشريحية — الدماغ والأعصاب، الغدة الدرقية، القلب والأوعية، الكبد، البنكرياس، الغدد الكظرية، الكلى، الأمعاء، الجهاز التناسلي، الدم، المناعة، العظام، العضلات
  • مستويات الشدة — المستوى 2 للنتائج خارج النطاق والمستوى 1 للنتائج الحدّية، بحيث يمكن تلوين المفتاح دون أي منطق إضافي
  • إسناد المؤشرات — كل منطقة تسرد المؤشرات التي وضعتها على الخريطة، الأسوأ أولاً
  • مخرجات خالية من اللغة — مفاتيح المناطق وأسماء مؤشراتك أنت؛ الرسم التوضيحي لا يحمل أي نص، فصورة واحدة تخدم كل اللغات
  • روابط رسوم موقَّعة — كل رابط رسم توضيحي يحمل توقيع HMAC، فلا يستطيع أحد تعدادها أو تزويرها
  • حالات فارغة صادقة — لوحة تحاليل سليمة تُعيد جسم "كل شيء سليم" المشترك؛ ولوحة تعذّر وضع مؤشراتها المُعلَّمة تُعيد خطأً بدلاً من جسم أخضر مضلِّل
  • الوضع الحتمي — الافتراضي. بلا استدعاء نموذج، وبلا رصيد صور، ومخرجات قابلة للتكرار
  • وضع الاختبار (Sandbox) — اختبر التكامل دون استهلاك الرصيد

ملخص نقاط النهاية

نقطة النهايةالطريقةالوصفالمصادقة
/api/v1/body-map/analyzePOSTبناء خريطة جسم من لوحة تحاليل مخبريةمطلوب (1 رصيد)
/api/v1/body-map/validatePOSTالتحقق من الحمولة ومعرفة المؤشرات المتعرّف عليها (بدون استهلاك)مطلوب (مجاني)
/api/v1/body-map/sandboxPOSTاختبار تجريبي ببيانات نموذجية (بدون استهلاك)مطلوب (مجاني)
/api/v1/body-map/regionsGETقائمة مناطق الجسم الـ13 ومستويات الشدةغير مطلوب
/api/v1/body-map/infoGETبيانات وصفية عن القدرات والحدود والمصادقةغير مطلوب
POST /api/v1/body-map/analyze صدر 18.09.2026

يضع كل نتيجة مُعلَّمة في لوحة التحاليل على الجسم. يستهلك رصيدًا واحدًا لكل طلب ناجح. الطلب الذي يفشل في التحقق، أو الذي تتعذّر مطابقة مؤشراته المُعلَّمة بأي منطقة، لا تتم محاسبته.

معاملات الطلب

المعاملالنوعمطلوبالوصف
usernamestringنعماسم مستخدم API
passwordstringنعمكلمة مرور API
parametersarrayنعمكائنات نتائج المختبر. الحد الأقصى 500. كل عنصر يحتاج اسم التحليل وevaluation.
interpretationarrayلاالتفسير السريري، يُستخدم كسياق فقط عند تفعيل ai_assist
ai_assistbooleanلاالسماح للنموذج بوضع المؤشرات التي لا تتعرف عليها جداول المرادفات (افتراضي: false)
include_imagebooleanلاطلب الرسم التوضيحي المُنتَج (افتراضي: false)
image_waitintegerلاعدد الثواني لانتظار رسم توضيحي جديد، من 0 إلى 30 (افتراضي: 0)

حقول كائن parameters

الحقلالنوعمطلوبالوصف
short_namestringنعم*اسم التحليل كما طبعه المختبر. *يلزم واحد على الأقل من short_name أو long_name أو name أو parameter_name أو parameter.
long_namestringلاالاسم الكامل للتحليل؛ يحسّن مطابقة الاختصارات
evaluationstringلاواحدة من high أو low أو bad أو slightly_high أو slightly_low أو normal. القيم المُعلَّمة فقط تظهر على الخريطة.
resultstring|numberلاالقيمة المقاسة؛ تُستخدم لترتيب المناطق التي تُرسم
unitstringلاوحدة النتيجة، بأي صيغة كتابة
range_normal_minnumberلاالحد الأدنى للنطاق المرجعي
range_normal_maxnumberلاالحد الأعلى للنطاق المرجعي
categorystringلافئة المختبر؛ تُستخدم كبديل عندما يكون اسم التحليل غير معروف

مثال cURL

curl -X POST "https://app.aibloodtestinterpret.com/api/v1/body-map/analyze" \
  -H "Content-Type: application/json" \
  -d '{
    "username": "اسم_المستخدم",
    "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

import requests

def build_body_map(parameters, username, password, include_image=False):
    """
    وضع نتائج فحص الدم الخارجة عن النطاق على خريطة الجسم.

    Args:
        parameters: قائمة كائنات نتائج المختبر
        username: اسم مستخدم API
        password: كلمة مرور API
        include_image: طلب الرسم التوضيحي المُنتَج (يستهلك رصيد صور)

    Returns:
        dict: كتلة خريطة الجسم مع المناطق والمفتاح وروابط الرسم
    """
    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()

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"]
for region in body_map["regions"]:
    print(f"{region['key']}: level {region['level']} ({', '.join(region['markers'])})")

مثال على الاستجابة

{
  "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"
}

مرجع حقول الاستجابة

الحقلالنوعالوصف
body_map.specstringمعرّف قياسي لهذه التركيبة من المناطق ودرجات الشدة. اللوحات المتطابقة تتشارك المعرّف نفسه، ومن ثمّ الرسم التوضيحي المخزّن نفسه.
body_map.regions[].keystringواحد من مفاتيح المناطق الـ13
body_map.regions[].levelinteger2 = خارج النطاق، 1 = حدّي
body_map.regions[].drawnbooleanما إذا كانت هذه المنطقة مرسومة على الصورة. المفتاح يسرد كل المناطق دائماً، بينما تُرسم ست مناطق كحد أقصى.
body_map.regions[].markersarrayأسماء المؤشرات التي وضعت هذه المنطقة على الخريطة، الأسوأ أولاً
body_map.unmappedintegerعدد المؤشرات المُعلَّمة التي تعذّر وضعها في أي منطقة
body_map.image_urlstring|nullالرسم التوضيحي المخزّن. يكون null إلى أن يوجد الملف — استخدم fallback_url بديلاً.
body_map.fallback_urlstringرابط توليد موقَّع. موجود دائماً. يردّ بالرمز 503 مع Retry-After ما دام الرسم قيد الإنتاج.
all_clearbooleantrue عندما لا تُعلَّم أي نتيجة؛ ويُستخدم جسم "كل شيء سليم" المشترك
modestringdeterministic أو ai_assisted
عرض مفتاح الخريطة

الاستجابة خالية من اللغة بحكم التصميم: تحمل مفاتيح المناطق وأسماء مؤشرات مختبرك أنت. ترجم مفاتيح المناطق الـ13 داخل تطبيقك، وقدّم المفتاح على الصورة — فإن رسم النموذج العضو الخطأ يوماً ما، يبقى المفتاح المجاور له صحيحاً.

POST /api/v1/body-map/validate صدر 18.09.2026

يتحقق من الحمولة دون تشغيل التحليل، ويبيّن أي أسماء التحاليل لديك يتعرف عليها المحرك. المصادقة مطلوبة؛ ولا يُستهلك أي رصيد، وتظل نقطة النهاية تعمل على حساب بلا رصيد متبقٍ.

مثال cURL

curl -X POST "https://app.aibloodtestinterpret.com/api/v1/body-map/validate" \
  -H "Content-Type: application/json" \
  -d '{
    "username": "اسم_المستخدم",
    "password": "كلمة_المرور",
    "parameters": [
      {"short_name": "ALT", "result": "65", "evaluation": "high"},
      {"short_name": "Unobtainium", "result": "9", "evaluation": "high"}
    ]
  }'

مثال على الاستجابة

{
  "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"
}

نقاط النهاية المرجعية

كلتا نقطتي النهاية المرجعيتين مجانيتان وبدون مصادقة.

GET /api/v1/body-map/regions

يسرد مناطق الجسم الـ13 بالترتيب القياسي مع مستويات الشدة. استخدمه لبناء ترجماتك الخاصة لمفتاح الخريطة.

مثال cURL

curl "https://app.aibloodtestinterpret.com/api/v1/body-map/regions"

مثال على الاستجابة

{
  "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",
      "1": "borderline",
      "2": "out of range"
    },
    "count": 13
  }
}
GET /api/v1/body-map/info

بيانات وصفية عن القدرات: ما إذا كان المحرك مفعّلاً على هذا النشر، وحدود الطلب، ونظام المصادقة، وقائمة نقاط النهاية الكاملة.

مثال cURL

curl "https://app.aibloodtestinterpret.com/api/v1/body-map/info"

نقطة نهاية الاختبار Body Map

تُعيد POST /api/v1/body-map/sandbox استجابة نموذجية بالشكل نفسه الذي تنتجه /analyze، بحيث يعمل أي تطبيق كُتب على Sandbox دون تغيير مقابل الإنتاج. المصادقة مطلوبة كي تُثبت الاستدعاءة بياناتك أيضاً، لكن لا يُستهلك أي رصيد ولا يُجرى أي تحليل.

رمز الخطأHTTPالمعنى
AUTH_1001401بيانات المصادقة مفقودة
AUTH_1002401اسم مستخدم أو كلمة مرور غير صالحة
AUTH_1004400بيانات اعتماد مشوّهة (نوع خاطئ أو حجم زائد)
QUOTA_1101403حصة API غير كافية
VAL_2001400الحقل parameters مفقود
VAL_2002400تنسيق بيانات غير صالح
VAL_2005400الحقل parameters فارغ
VAL_2006400أكثر من 500 معامل
VAL_2008400صف معامل مشوّه أو بلا اسم
RES_4004422توجد نتائج مُعلَّمة لكن لا تنطبق أي منها على منطقة في الجسم
RES_4005503محرك خريطة الجسم معطّل على هذا النشر

واجهة برمجة تطبيقات العمر البيولوجي للدم

صدر: 18 سبتمبر 2026

تجيب واجهة Kantesti للعمر البيولوجي للدم عن سؤال لا يستطيع النطاق المرجعي الإجابة عنه: كم يبدو عمر هذا الدم؟ تحسب العمر البيولوجي من لوحة تحاليل روتينية باستخدام نموذج Levine PhenoAge المنشور، وتشتق إلى جانبه ما يصل إلى 18 مؤشراً سريرياً — FIB-4 و HOMA-IR و TyG و eGFR و AIP و NLR وفجوة الأنيونات وغيرها — نادراً ما يطبعها تقرير المختبر.

9
مؤشرات PhenoAge
18
مؤشرات مشتقة
39
لغات الإدخال

رقم حتى من لوحة تحاليل جزئية

يحتاج PhenoAge إلى تسعة مؤشرات، ومعظم اللوحات تحمل أقل من ذلك. فحين تتوفر التسعة كاملة تُعيد الواجهة المعادلة المنشورة دون تغيير. وحين لا تتوفر، تُملأ المدخلات الناقصة من الوسائط السكانية وتُعاد النتيجة بالحقل source: "partial"، لتعرف دائماً أيّهما استلمت. كلا المسارين حتمي: بلا استدعاء نموذج، وبلا تكلفة إضافية، والنتيجة نفسها في كل مرة للوحة التحاليل نفسها.

الميزات الرئيسية
  • Levine PhenoAge — النموذج المنشور، يُحسب دون تغيير عند توفر المؤشرات التسعة
  • تدهور متدرّج — اللوحة الجزئية تعطي رقماً أيضاً، موسوماً بوضوح، مع سرد المؤشرات الناقصة
  • 18 مؤشراً سريرياً — FIB-4، De Ritis، نسبة A/G، HOMA-IR، TyG، eAG، eGFR، فجوة الأنيونات، BUN/الكرياتينين، الكوليسترول غير HDL، TG/HDL، AIP، TC/HDL، الكوليسترول المتبقي، NLR، Mentzer، تشبع الترانسفيرين، الكالسيوم المصحّح
  • تحويل تلقائي للوحدات — وحدات SI والوحدات التقليدية بأي صيغة كتابة، مع فحوص معقولية فسيولوجية ترفض القيم المستحيلة
  • مطابقة مؤشرات متعددة اللغات — أسماء التحاليل بـ39 لغة تقارير بما فيها الكتابات غير اللاتينية؛ لا ترسل أبداً مفاتيح داخلية
  • الوضع الحتمي — الافتراضي. بلا استدعاء شبكة، وبلا تكلفة ذكاء اصطناعي، ومخرجات قابلة للتكرار
  • طبقات نموذج اختيارية — تحديد الصفوف، وتقدير محسّن، وملاحظة شخصية، كلٌّ خلف علمه الخاص. ولا يتجاوز النموذج أبداً حساب PhenoAge الكامل بالمؤشرات التسعة.
  • 100 لغة — للملاحظة الشخصية الاختيارية
  • وضع الاختبار (Sandbox) — اختبر التكامل دون استهلاك الرصيد

ملخص نقاط النهاية

نقطة النهايةالطريقةالوصفالمصادقة
/api/v1/blood-age/analyzePOSTحساب العمر البيولوجي للدم والمؤشرات السريرية المشتقةمطلوب (1 رصيد)
/api/v1/blood-age/validatePOSTالتحقق من الحمولة ومعرفة المؤشرات التي توفرها اللوحة (بدون استهلاك)مطلوب (مجاني)
/api/v1/blood-age/sandboxPOSTاختبار تجريبي ببيانات نموذجية (بدون استهلاك)مطلوب (مجاني)
/api/v1/blood-age/biomarkersGETقائمة المؤشرات التي يقرأها المحرك ووحداتها المستهدفةغير مطلوب
/api/v1/blood-age/infoGETبيانات وصفية عن القدرات والحدود والمصادقةغير مطلوب
POST /api/v1/blood-age/analyze صدر 18.09.2026

يحسب العمر البيولوجي للدم والمؤشرات المشتقة من لوحة تحاليل مخبرية. يستهلك رصيدًا واحدًا لكل طلب ناجح. الطلب الذي يفشل في التحقق، أو الذي لا تعطي لوحته أي نتيجة قابلة للحساب، لا تتم محاسبته.

معاملات الطلب

المعاملالنوعمطلوبالوصف
usernamestringنعماسم مستخدم API
passwordstringنعمكلمة مرور API
parametersarrayنعمكائنات نتائج المختبر. الحد الأقصى 500. كل عنصر يحتاج اسم التحليل ونتيجة.
metadataobjectلاترويسة التقرير. يُنصح بها بشدة: فمعادلة PhenoAge تتضمن حدّ العمر الزمني. تقرأ patient_age وpatient_sex وdob وlab_date.
patientobjectلا{"age": 42, "gender": "female"} — يُستخدم عندما لا تحمل البيانات الوصفية هذه القيم
interpretationarrayلاالتفسير السريري، يُستخدم كسياق للنموذج فقط
languagestringلالغة الملاحظة الشخصية الاختيارية (افتراضي: en). انظر اللغات المدعومة.
ai_assistbooleanلاالسماح للنموذج بتحديد أسماء التحاليل غير المعتادة (افتراضي: false)
ai_estimatebooleanلاالسماح للنموذج بتحسين العمر الجزئي (افتراضي: false)
ai_notebooleanلاطلب ملاحظة شخصية باللغة المحددة في language (افتراضي: false)

مؤشرات PhenoAge التسعة

أرسلها بالأسماء التي طبعها مختبرك — فالمطابقة بالاسم وبأي من لغات التقارير الـ39 المدعومة، والوحدات تُحوَّل تلقائياً.

المؤشرالاسم المعتادالوحدة المستهدفة
albuminالألبومينg/L
creatinineالكرياتينينµmol/L
glucoseالجلوكوز / سكر الدم الصائمmmol/L
crpالبروتين التفاعلي Cmg/L
lymphالخلايا اللمفاوية%
mcvمتوسط حجم الكريةfL
rdwعرض توزع كريات الدم الحمراء%
alpالفوسفاتاز القلويU/L
wbcتعداد كريات الدم البيضاء10⁹/L

مثال cURL

curl -X POST "https://app.aibloodtestinterpret.com/api/v1/blood-age/analyze" \
  -H "Content-Type: application/json" \
  -d '{
    "username": "اسم_المستخدم",
    "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

import requests

def biological_blood_age(parameters, metadata, username, password):
    """
    حساب العمر البيولوجي للدم من لوحة تحاليل روتينية.

    Args:
        parameters: قائمة كائنات نتائج المختبر
        metadata: ترويسة التقرير التي تحمل patient_age و patient_sex
        username: اسم مستخدم API
        password: كلمة مرور API

    Returns:
        dict: كتلة العمر البيولوجي والمؤشرات المشتقة وملخص مسطّح
    """
    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()

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"]
print(f"chronological: {summary['chronological_age']}")
print(f"biological:    {summary['biological_age']} ({summary['source']})")

مثال على الاستجابة

{
  "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"
}

مرجع حقول الاستجابة

الحقلالنوعالوصف
summary.statusstringok أو missing_age أو missing_markers أو needs_markers أو unavailable
summary.sourcestringformula (المؤشرات التسعة كاملة) أو partial (وسائط سكانية مُقحَمة) أو ai (تقدير النموذج، مع ai_estimate فقط)
summary.chronological_ageinteger|nullالعمر المقروء من البيانات الوصفية أو من كائن المريض
summary.biological_agenumber|nullعمر الدم المحسوب، بالسنوات
summary.delta_yearsnumber|nullالبيولوجي ناقص الزمني. القيمة السالبة تعني أصغر من التقويم.
summary.markers_missingarrayأي من مؤشرات PhenoAge التسعة لم توفره اللوحة
blood_age.age.inputsobjectالقيم المحوَّلة المستخدمة فعلياً، بالوحدات المستهدفة
blood_age.age.labelsobjectاسم مختبرك أنت لكل مؤشر طابقه المحرك
blood_age.indices[].bandstringok أو borderline أو high أو low أو info
blood_age.indices[].fromarrayصفوف المختبر التي اشتُق منها هذا المؤشر
modestringdeterministic أو ai_assisted
أرسل العمر الزمني

تتضمن معادلة PhenoAge حدّ العمر، لذا من دون عمر زمني تعود الاستجابة بالحالة status: "missing_age" وبلا رقم. أرسله في metadata.patient_age أو في patient.age أو كتاريخ ميلاد في patient.dob. تنطبق المعادلة على الأعمار بين 18 و100 سنة.

POST /api/v1/blood-age/validate صدر 18.09.2026

يتحقق من الحمولة دون تشغيل التحليل، ويبيّن أي مؤشرات PhenoAge التسعة توفرها لوحتك وما إذا أمكن قراءة عمر زمني — وهما الأمران اللذان يحددان إن كنت ستحصل على المعادلة الكاملة أم على التقدير الجزئي. المصادقة مطلوبة؛ ولا يُستهلك أي رصيد، وتظل نقطة النهاية تعمل على حساب بلا رصيد متبقٍ.

مثال cURL

curl -X POST "https://app.aibloodtestinterpret.com/api/v1/blood-age/validate" \
  -H "Content-Type: application/json" \
  -d '{
    "username": "اسم_المستخدم",
    "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": "%"}
    ]
  }'

مثال على الاستجابة

{
  "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"
}

نقاط النهاية المرجعية

كلتا نقطتي النهاية المرجعيتين مجانيتان وبدون مصادقة.

GET /api/v1/blood-age/biomarkers

يسرد مدخلات PhenoAge التسعة، وكل مؤشر يستطيع المحرك قراءته مع وحدته المستهدفة، والمدى العمري الذي تنطبق عليه المعادلة.

مثال cURL

curl "https://app.aibloodtestinterpret.com/api/v1/blood-age/biomarkers"

مثال على الاستجابة

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

بيانات وصفية عن القدرات: ما إذا كان المحرك مفعّلاً على هذا النشر، والوضعان وتكلفة كل منهما، وحدود الطلب، ونظام المصادقة، واللغات المدعومة.

مثال cURL

curl "https://app.aibloodtestinterpret.com/api/v1/blood-age/info"

نقطة نهاية الاختبار Blood Age

تُعيد POST /api/v1/blood-age/sandbox استجابة نموذجية بالشكل نفسه الذي تنتجه /analyze، بحيث يعمل أي تطبيق كُتب على Sandbox دون تغيير مقابل الإنتاج. المصادقة مطلوبة كي تُثبت الاستدعاءة بياناتك أيضاً، لكن لا يُستهلك أي رصيد ولا يُجرى أي تحليل.

رمز الخطأHTTPالمعنى
AUTH_1001401بيانات المصادقة مفقودة
AUTH_1002401اسم مستخدم أو كلمة مرور غير صالحة
AUTH_1004400بيانات اعتماد مشوّهة (نوع خاطئ أو حجم زائد)
QUOTA_1101403حصة API غير كافية
VAL_2001400الحقل parameters مفقود
VAL_2002400تنسيق بيانات غير صالح
VAL_2003400رمز لغة غير مدعوم
VAL_2005400الحقل parameters فارغ
VAL_2006400أكثر من 500 معامل
VAL_2007400كائن patient غير صالح
VAL_2008400صف معامل مشوّه أو بلا اسم
VAL_2009400قيمة patient.gender غير مدعومة
RES_4004422لا شيء قابل للحساب من هذه المعاملات
RES_4005503محرك العمر البيولوجي للدم معطّل على هذا النشر

واجهة صحة DNA: تفسير فحص DNA، وتقرير DNA + الدم، ومستشار المكملات

صدر: 23 سبتمبر 2026

نفخر بأن نقدّم واجهة Kantesti لصحة DNA: ثلاث وحدات ذكاء اصطناعي جديدة تحوّل فحص الحمض النووي (DNA) لدى المريض إلى تقارير سريرية. تقرأ وحدة تفسير فحص DNA ملف النمط الجيني الخام أو التقرير الجيني، وتكتب تقريراً صحياً جينياً شاملاً. ويجمع التقرير الصحي DNA + الدم هذا التقرير مع تحليل دم مفسَّر، ويبيّن أين تؤكد الجينات والقيم المخبرية بعضها بعضاً وأين تتعارض. أما مستشار المكملات فيحوّل نتائج DNA وتحليل الدم واستبياناً قصيراً إلى خطة مكملات مخصّصة مبنية على منتجات عيادتك أنت.

334
واسمات DNA منتقاة
20
فئات صحية
100+
لغات التقارير

مُدقَّق مقابل ملفك

يُحلَّل ملف النمط الجيني الخام على الخادم ويُقارَن بلوحة منتقاة من 334 واسماً في 20 فئة، من جينات المثيلة والقلب والأوعية الدموية والدهون إلى علم الجينوم الدوائي واستقلاب العناصر الغذائية وحالة الحمل الجيني وطول العمر. وكل نتيجة يكتبها الذكاء الاصطناعي تُدقَّق مقابل الملف المرفوع: يُحذف كل rsID لا يحتويه الملف، ويُثبَّت كل نمط جيني على القراءة المطبوعة في الملف، فلا يستطيع التقرير أن يختلق نتيجة.

الميزات الرئيسية
  • كل مصادر DNA الشائعة — الملفات الخام من 23andMe وAncestryDNA وMyHeritage وFTDNA وLivingDNA، وملفات VCF، حتى داخل .zip أو .gz؛ أو أسطر rsID ملصوقة؛ أو تقرير جيني في ما يصل إلى 6 ملفات PDF أو JPG أو PNG
  • تقرير جيني شامل — النتائج حسب المجال الصحي، ومخاطر الأمراض، وحالة الحمل الجيني، وعلم الجينوم الدوائي (الأنماط الظاهرية المتوقعة للاستقلاب وفئات الأدوية المتأثرة)، وعلم الجينوم التغذوي، والسمات، وفحوص المتابعة الموصى بها، وعلامات الخطر
  • الجينات تلتقي بالقيم المخبرية — يصنّف تقرير DNA + الدم كل صلة بين نتيجة جينية ونتيجة مخبرية إلى confirms أو contradicts أو neutral أو watch، مع مصفوفة مخاطر وإجراءات ذات أولوية وخطة متابعة
  • خطط مكملات وفق قواعد سلامة — الجرعة والشكل والتوقيت والمدة والتداخلات ومواعيد إعادة الفحص؛ تبقى الجرعات ضمن الحدود العليا المقبولة للمدخول، وتُطبَّق حدود آمنة أثناء الحمل، وكل ما يحتاج إلى قرار طبيب واصف يُدرَج في clinician_review_required
  • كتالوج منتجاتك الخاص — يوصي المستشار بالمنتجات المتوفرة في عيادتك ويَسِمها بـclinic_library، وفي وضع "منتجات العيادة فقط" يسرد الاحتياجات التي لا يغطيها كتالوجك
  • قابلة للتسلسل وعديمة الحالة — أرسل تقرير الوحدة 1 مباشرة إلى الوحدتين 2 و3. لا يُخزَّن أي شيء مرتبط بالمريض، وتُحذف ملفات النمط الجيني الخام بعد تحليلها
  • أكثر من 100 لغة للتقارير — يُكتب التقرير باللغة التي تطلبها
  • الوضع غير المتزامن — أضف ?async=1 واستعلم دورياً من /api/jobs/<job_id>، فلا يصطدم التحليل الطويل أبداً بمهلة البوابة
  • وضع الاختبار (Sandbox) — اختبر التكامل دون استهلاك الرصيد
كيف تعمل الوحدات الثلاث معاً

1. يُعيد POST /api/v1/dna-interpretation/analyze مع ملف DNA الحقلَ data.report. 2. أرسل هذا التقرير مع تحليل دم مفسَّر إلى /api/v1/dna-blood-report/analyze. 3. أرسل التقرير نفسه وإجابات الاستبيان، واختيارياً تحليل الدم، إلى /api/v1/dna-supplements/analyze. تقبل الوحدتان 2 و3 تقرير DNA كما عاد تماماً: الكائن report، أو الكائن data كاملاً، أو الاستجابة الكاملة.

ملخص نقاط النهاية

نقطة النهايةالطريقةالوصفالمصادقة
/api/v1/dna-interpretation/analyzePOSTملف DNA أو أسطر rsID ملصوقة أو صفحات تقرير ← تقرير صحي جيني شاملمطلوب (1 رصيد)
/api/v1/dna-interpretation/validatePOSTتحليل الملف المرفوع وعرض ما عُثر عليه، دون استدعاء الذكاء الاصطناعيمطلوب (مجاني)
/api/v1/dna-interpretation/sandboxPOSTتقرير جيني نموذجيمطلوب (مجاني)
/api/v1/dna-interpretation/infoGETالمدخلات المقبولة والحدود ولغات التقاريرغير مطلوب
/api/v1/dna-blood-report/analyzePOSTتقرير DNA + تحليل دم مفسَّر ← تقرير صحي مجمَّعمطلوب (1 رصيد)
/api/v1/dna-blood-report/validatePOSTالتحقق من الحمولة دون استدعاء الذكاء الاصطناعيمطلوب (مجاني)
/api/v1/dna-blood-report/sandboxPOSTتقرير مجمَّع نموذجيمطلوب (مجاني)
/api/v1/dna-blood-report/infoGETحقول الطلب والحدودغير مطلوب
/api/v1/dna-supplements/analyzePOSTتقرير DNA + تحليل دم (اختياري) + استبيان ← خطة مكملاتمطلوب (1 رصيد)
/api/v1/dna-supplements/validatePOSTالتحقق من الحمولة والإجابات دون استدعاء الذكاء الاصطناعيمطلوب (مجاني)
/api/v1/dna-supplements/sandboxPOSTخطة مكملات نموذجيةمطلوب (مجاني)
/api/v1/dna-supplements/questionnaireGETالأسئلة الـ25 وإجاباتها المسموح بهاغير مطلوب
/api/v1/dna-supplements/settingsGET PUTقراءة كتالوج منتجات عيادتك وإعدادات المستشار أو تحديثهامطلوب (مجاني)
/api/v1/dna-supplements/infoGETحقول الطلب والحدودغير مطلوب
POST /api/v1/dna-interpretation/analyze صدر 23.09.2026

يفسّر فحص DNA واحداً ويُعيد تقريراً صحياً جينياً شاملاً. أرسل ملفاً بصيغة multipart/form-data، أو أسطر أنماط جينية ملصوقة بصيغة JSON. يُحلَّل الملف المرفوع أثناء انتظارك، لذا يُرَدّ على الملف غير المقروء فوراً بالرمز 400 دون أي تكلفة. ولا يُحتسب الرصيد الواحد إلا بعد إنتاج التقرير.

معاملات الطلب

المعاملالنوعمطلوبالوصف
usernamestringنعماسم مستخدم API (أو استخدم مصادقة HTTP Basic)
passwordstringنعمكلمة مرور API
filefileنعم*ملف نمط جيني خام واحد (.txt، .csv، .tsv، .vcf، .zip، .gz، حتى 80 ميجابايت) أو ما يصل إلى 6 ملفات تقارير (PDF حتى 20 ميجابايت، وJPG/PNG حتى 10 ميجابايت لكل ملف). *أرسل إما file أو genotype_text.
genotype_textstringنعم*أسطر أنماط جينية ملصوقة (rsID، الكروموسوم، الموضع، النمط الجيني)، حتى 2,000,000 حرف
languagestringلارمز لغة التقرير، مثل en أو de أو ar (افتراضي: en). انظر اللغات المدعومة.
patientobjectلاage، sex، diagnoses، comorbidities، medications، treatments، notes. في طلب multipart، أرسله كسلسلة JSON.
source_labelstringلااسمك الخاص للمصدر، حتى 120 حرفاً

مثال cURL

curl -X POST "https://app.aibloodtestinterpret.com/api/v1/dna-interpretation/analyze?async=1" \
  -u "اسم_المستخدم:كلمة_المرور" \
  -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 "اسم_المستخدم:كلمة_المرور" "https://app.aibloodtestinterpret.com/api/jobs/JOB_ID"

مثال Python

import time
import requests

BASE = "https://app.aibloodtestinterpret.com"
AUTH = ("YOUR_USERNAME", "YOUR_PASSWORD")


def run(path, poll=True, **kwargs):
    """الإرسال بطلب POST في الوضع غير المتزامن، ثم الاستعلام من /api/jobs/<id> حتى يصبح التقرير جاهزاً."""
    resp = requests.post(f"{BASE}{path}?async=1", auth=AUTH, timeout=60, **kwargs)
    body = resp.json()
    if resp.status_code != 202:
        return body                      # خطأ، أو إجابة متزامنة
    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) تفسير فحص DNA
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"])

مثال على الاستجابة

{
  "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"
}

مرجع حقول الاستجابة

الحقلالنوعالوصف
sourceobjectما تمت قراءته: kind (raw أو text أو document)، والصيغة المكتشفة وإصدار الجينوم المرجعي، وعدد السجلات والقراءات، وعدد ما عُثر عليه من واسمات اللوحة الـ334، وتحذيرات المحلِّل
report.overall_assessment.levelstringtypical أو slightly_elevated أو elevated أو high
report.sections[]arrayعنصر لكل مجال صحي مع risk_level وfindings الخاصة به
report.sections[].findings[]arraygene، rsid، genotype، phenotype، risk_level (protective، typical، informational، slightly_elevated، elevated، high)، evidence (established، probable، preliminary)، explanation، recommendation
report.pharmacogenomics[]arrayالنمط الظاهري المتوقع للاستقلاب لكل جين وفئات الأدوية التي قد يؤثر فيها. لا يقدّم التقرير أبداً جرعات وصفية.
report.carrier_status[]arraycarrier أو not_detected أو affected_pattern أو inconclusive، ويجب تأكيدها دائماً باختبار جيني سريري
report.disease_risks[]، nutrigenomics[]، traits[]arrayمخاطر الحالات المرضية ونتائج العناصر الغذائية والسمات، مع الجينات المسؤولة عنها
report.recommended_tests[]، red_flags[]arrayفحوص المتابعة مع سبب كل منها، والنتائج التي تستدعي اهتماماً عاجلاً
POST /api/v1/dna-interpretation/validate صدر 23.09.2026

يحلّل الملف المرفوع تماماً كما تفعل /analyze ويبيّن ما عُثر عليه، دون استدعاء الذكاء الاصطناعي. المصادقة مطلوبة؛ ولا يُستهلك أي رصيد. استخدمه لفحص الملف قبل إنفاق رصيد.

مثال على الاستجابة

{
  "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 صدر 23.09.2026

يجمع تقرير DNA مع تحليل دم مفسَّر في تقرير صحي واحد. تُصنَّف كل صلة بين نتيجة جينية وقيمة مخبرية، وتليها مصفوفة مخاطر وإجراءات ذات أولوية وخطة متابعة. يستهلك رصيدًا واحدًا لكل طلب ناجح.

معاملات الطلب

المعاملالنوعمطلوبالوصف
dna_reportobjectنعمالتقرير الصادر عن /api/v1/dna-interpretation/analyze: data.report، أو data كاملاً، أو الاستجابة الكاملة
blood_testobject|arrayنعمتحليل دم مفسَّر كما تُعيده API تحليل الدم (metadata، parameters، interpretation)، أو مجرد قائمة بما يصل إلى 500 معامل لكل منها اسم وresult
languagestringلارمز لغة التقرير (افتراضي: en)
patientobjectلاالحقول نفسها كما في تفسير فحص DNA

مثال Python

# 2) التقرير الصحي DNA + الدم (يستخدم run() و dna من المثال أعلاه)
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"])

مثال على الاستجابة

{
  "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."
    }
  }
}

مرجع حقول الاستجابة

الحقلالنوعالوصف
report.overall_status.levelstringgood أو watch أو attention أو urgent
report.correlations[].concordancestringconfirms أو contradicts أو neutral أو watch
report.risk_matrix[]arrayلكل مجال: genetic_risk وlab_status (normal، borderline، abnormal، not_measured) وتقييم مجمَّع
report.priority_actions[]arraypriority (high، medium، low)، والإجراء وسببه
report.monitoring_plan[]arrayأي واسم يُعاد فحصه، ومتى، ولماذا
POST /api/v1/dna-supplements/analyze صدر 23.09.2026

يبني خطة مكملات مخصّصة من تقرير DNA وإجابات الاستبيان، واختيارياً من تحليل دم مفسَّر. يُطبَّق كتالوج منتجات عيادتك وإعدادات المستشار تلقائياً. يستهلك رصيدًا واحدًا لكل طلب ناجح.

معاملات الطلب

المعاملالنوعمطلوبالوصف
dna_reportobjectنعمالتقرير الصادر عن /api/v1/dna-interpretation/analyze
answersobjectنعمإجابات الاستبيان. الحقلان diet_type وpregnancy إلزاميان؛ راجع GET /api/v1/dna-supplements/questionnaire للاطلاع على الأسئلة الـ25 كاملة. تُحذف المفاتيح والقيم غير المعروفة.
blood_testobject|arrayلابالصيغة نفسها كما في تقرير DNA + الدم
use_clinic_cataloguebooleanلاتطبيق كتالوج منتجات عيادتك وإعداداتها (افتراضي: true)
languagestringلارمز لغة التقرير (افتراضي: en)
patientobjectلاالحقول نفسها كما في تفسير فحص DNA. تُفحص الأدوية المدرجة هنا بحثاً عن التداخلات.

مثال cURL

curl -X POST "https://app.aibloodtestinterpret.com/api/v1/dna-supplements/analyze?async=1" \
  -u "اسم_المستخدم:كلمة_المرور" \
  -H "Content-Type: application/json" \
  -d '{
    "dna_report": { ...data.report من تفسير فحص DNA... },
    "answers": {"diet_type": "vegetarian", "pregnancy": "no", "sun_exposure": "low", "goals": ["energy", "immunity"]},
    "language": "en"
  }'

مثال Python

# 3) خطة المكملات (تستخدم run() و dna و blood_test من الأمثلة أعلاه)
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"])

مثال على الاستجابة

{
  "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."
    }
  }
}

مرجع حقول الاستجابة

الحقلالنوعالوصف
catalogueobjectوضع الكتالوج المطبَّق (prefer، only، off) وعدد منتجات العيادة المتاحة
report.recommendations[]arrayname، form، dose، timing، duration، priority، وrationale الجيني / المخبري / المستند إلى الاستبيان، وevidence، وcautions، وinteractions، وretest
report.recommendations[].sourcestringclinic_library لمنتج من كتالوجك (يُذكر اسمه في product)، وإلا فـevidence_based
report.uncovered_needs[]arrayفي وضع "منتجات العيادة فقط": الاحتياجات التي لا يغطيها كتالوجك
report.clinician_review_required[]arrayكل ما يحتاج إلى قرار طبيب واصف: التداخلات، والحمل، وأمراض الكلى أو الكبد، ومضادات التخثر، والجرعات القريبة من الحد الأعلى للمدخول
report.avoid_or_caution[]، dietary_sources[]، retest_plan[]arrayما يجب تجنّبه، والمصادر الغذائية لكل عنصر غذائي، وموعد إعادة الفحص
GET PUT /api/v1/dna-supplements/settings صدر 23.09.2026

يقرأ كتالوج منتجات عيادتك وإعدادات المستشار أو يحدّثها. إنه الكتالوج نفسه الموجود في لوحة العيادة وفي التغذية بالذكاء الاصطناعي (Nutrition Diet AI)، فالمنتج المضاف في مكان واحد يصبح متاحاً في كل مكان. المصادقة مطلوبة؛ ولا يُستهلك أي رصيد. أرسل catalogue أو settings أو كليهما؛ ويستبدل الكتالوج المُرسَل القائمة بأكملها.

الحقلالنوعالوصف
catalogue[]arrayما يصل إلى 200 منتج: name، brand، form، dosage، category (vitamin، mineral، probiotic، omega، herbal، other)، description
settings.modestringprefer (منتجات العيادة حيث تناسب، واقتراحات قائمة على الأدلة فيما عدا ذلك)، أو only (منتجات العيادة فقط)، أو off (تجاهل الكتالوج)
settings.instructionsstringتعليماتك الخاصة للذكاء الاصطناعي، حتى 1,500 حرف. تبقى الأولوية دائماً لقواعد السلامة.
settings.max_itemsintegerالحد الأقصى للتوصيات في كل خطة، من 3 إلى 12

مثال cURL

curl -X PUT "https://app.aibloodtestinterpret.com/api/v1/dna-supplements/settings" \
  -u "اسم_المستخدم:كلمة_المرور" \
  -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}
  }'

نقاط النهاية المرجعية

تسرد GET /api/v1/dna-supplements/questionnaire الأسئلة الـ25 (النظام الغذائي، والوجبات، والفواكه والخضروات، والأسماك، واللحوم الحمراء، ومنتجات الألبان، والكحول، والتدخين، والكافيين، والتعرض للشمس، والنشاط البدني، والنوم، والتوتر، والهضم، والطاقة، والمكملات الحالية، والأدوية، والحساسية، والحالات المرضية، والحمل، والأهداف، والميزانية، والشكل المفضل، والملاحظات) مع أنواعها وقيمها المسموح بها. وتُعيد نقاط النهاية الثلاث /info المدخلات المقبولة والحدود وتكلفة الرصيد والقائمة الكاملة للغات التقارير. ولا تحتاج أيٌّ منها إلى مصادقة.

وضع الاختبار (Sandbox) والوضع غير المتزامن

تُعيد POST /api/v1/dna-interpretation/sandbox و/api/v1/dna-blood-report/sandbox و/api/v1/dna-supplements/sandbox تقريراً نموذجياً بالشكل نفسه تماماً الذي تنتجه /analyze. المصادقة مطلوبة؛ ولا يُستهلك أي رصيد.

يستغرق تقرير الذكاء الاصطناعي عادةً من دقيقة إلى ثلاث دقائق. أضف ?async=1 (أو الترويسة X-Async: 1) فيردّ الطلب فوراً بالرمز 202 مع job_id. استعلم دورياً من GET /api/jobs/<job_id> ببيانات الاعتماد نفسها حتى تصبح قيمة status هي completed أو failed. تجد الاستجابة النهائية في result.response، وهي مطابقة للاستجابة المتزامنة.

رمز الخطأHTTPالمعنى
AUTH_1001401بيانات المصادقة مفقودة
AUTH_1002401اسم مستخدم أو كلمة مرور غير صالحة
QUOTA_1101403حصة API غير كافية
VAL_2001400حقل إلزامي مفقود: file أو genotype_text، أو dna_report، أو blood_test، أو إجابة إلزامية
VAL_2002400بيانات نمط جيني غير مقروءة، أو نوع ملف غير مدعوم، أو JSON غير صالح، أو dna_report غير صالح
VAL_2003400لغة تقرير غير مدعومة
VAL_2006400حجم زائد: النص الملصق، أو معاملات الدم (500)، أو الكتالوج (200 منتج)
VAL_2007400كائن patient غير صالح
VAL_2008400لا يوجد معامل تحليل دم صالح للاستخدام (اسم ونتيجة)
PROC_3003500تعذّر إنتاج إجابة الذكاء الاصطناعي أو التحقق منها؛ أعد المحاولة. لا يُحتسب أي رصيد.
RES_4005503وحدات DNA معطّلة على هذا النشر
دعم القرار السريري

تُنتج واجهة صحة DNA معلومات مولَّدة بالذكاء الاصطناعي موجَّهة إلى الطبيب المعالج. وهي ليست تشخيصاً ولا وصفة طبية. مصفوفات التنميط الجيني الاستهلاكية ليست تسلسلاً سريرياً: أكِّد النتائج القابلة للتنفيذ ونتائج حالة الحمل الجيني باختبار جيني سريري معتمد قبل التصرف بناءً عليها.

ICR - واجهة التعرف الذكي على الأحرف

صدر: 14 فبراير 2026

واجهة Kantesti ICR (التعرف الذكي على الأحرف) هي تقنية متقدمة لاستخراج النصوص من المستندات تتجاوز بكثير تقنية OCR التقليدية. مدعومة بمحرك الذكاء الاصطناعي الخاص بـ Kantesti، توفر ICR مخرجات JSON منظمة من أي نوع مستند.

79%
أسرع من OCR
99.7%
معدل الدقة
100+
لغة

Kantesti ICR مقابل OCR التقليدي

في اختبارات الأداء، أظهر Kantesti ICR أداءً أعلى بنسبة 79% مقارنة بحلول OCR التقليدية. يفهم ICR بنية المستند، ويحافظ على تخطيطات الجداول، ويستخرج البيانات الوصفية، ويعيد JSON منظم نظيف.

الميزات الرئيسية لـ ICR
  • مخرجات JSON منظمة — جداول وأقسام وبيانات وصفية ونص خام بتنسيق JSON نظيف
  • كشف نوع المستند — يتعرف تلقائياً على التقارير الطبية والفواتير والنماذج والرسائل وغيرها
  • استخراج الجداول — يحافظ على رؤوس الجداول وبيانات الصفوف بالهيكل الكامل
  • دعم تنسيقات متعددة — معالجة مستندات PDF و JPG و JPEG و PNG
  • تكامل تحاليل الدم (Kan) — نقطة نهاية متخصصة لاستخراج مستندات تحاليل الدم
  • وضع الاختبار (Sandbox) — اختبر التكامل بدون استهلاك الرصيد
  • نظام الرصيد — 0.5 رصيد لكل استدعاء API

ملخص نقاط نهاية ICR

نقطة النهايةالطريقةالوصفالتكلفة
/api/icr/v1/extractPOSTاستخراج نص ICR0.5 رصيد
/api/icr/v1/sandboxPOSTاختبار ICRمجاني
/api/icr/v1/kanPOSTتحليل مستندات تحاليل الدم0.5 رصيد
/api/icr/v1/kan/sandboxPOSTاختبار تحاليل الدممجاني
/api/icr/infoGETتوثيق ومميزات APIمجاني
/api/icr/healthGETفحص حالة النظاممجاني
/api/icr/v1/quotaPOSTالتحقق من الرصيد المتبقيمجاني
POST /api/icr/v1/extract صدر 14.02.2026

يستخرج جميع المحتوى النصي من المستندات المرفوعة باستخدام تقنية ICR من Kantesti.

معلمات الطلب

المعلمةالنوعمطلوبالوصف
usernamestringنعماسم المستخدم الخاص بك
passwordstringنعمكلمة المرور الخاصة بك
filefileنعمملف المستند (PDF, JPG, JPEG, PNG)
languagestringلالغة الإخراج (الافتراضي: en)

مثال cURL

curl -X POST "https://app.aibloodtestinterpret.com/api/icr/v1/extract" \
  -F "username=اسم_المستخدم" \
  -F "password=كلمة_المرور" \
  -F "language=ar" \
  -F "[email protected]"

مثال Python

import requests

def icr_extract(file_path: str, username: str, password: str, language: str = "ar"):
    """
    استخراج النص من مستند باستخدام واجهة ICR من Kantesti.
    أسرع بنسبة 79% وأكثر دقة من OCR التقليدي.
    """
    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()

result = icr_extract("تقرير_طبي.pdf", "المستخدم", "كلمة_المرور", "ar")
print(f"نوع المستند: {result['data']['document_type']}")
print(f"الصفحات: {result['data']['page_count']}")

مثال على الاستجابة

{
  "status": "success",
  "data": {
    "document_type": "blood_test_report",
    "page_count": 1,
    "pages": [{"page_number": 1, "content": {"raw_text": "مستشفى كولونيا الجامعي - تحليل الدم...", "sections": [{"type": "header", "content": "تحليل الدم"}], "tables": [{"headers": ["الفحص", "النتيجة", "الوحدة", "المعدل الطبيعي"], "rows": [["الجلوكوز", "92", "mg/dL", "74 - 100"], ["ALT", "22", "U/L", "< 35"]]}]}}],
    "metadata": {"detected_language": "ar", "confidence": "high"},
    "icr_metadata": {"engine": "kantesti-icr", "version": "1.0.0"}
  },
  "credit_cost": 0.5,
  "api_version": "icr-v1"
}

نقاط نهاية Sandbox لـ ICR

اختبر تكامل ICR دون استهلاك الأرصدة. تُرجع نقاط نهاية Sandbox بيانات عينة واقعية.

APIنقطة نهاية Sandboxالوصف
استخراج ICR/api/icr/v1/sandboxتُرجع بيانات عينة لاستخراج ICR
ICR Kan/api/icr/v1/kan/sandboxتُرجع بيانات عينة لمعلمات تحاليل الدم

أداء ICR مقابل OCR

نتائج الأداء — Kantesti ICR مقابل OCR التقليدي
المقياسKantesti ICROCR التقليديالتحسن
سرعة المعالجة1.2 ثانية متوسط5.7 ثانية متوسطأسرع بـ 79%
دقة النص99.7%92.1%+7.6%
كشف الجداول98.9%71.2%+27.7%
المخرجات المنظمةJSON مع أقسام وجداول وبياناتنص خام غير منظمبنية كاملة
دعم متعدد اللغات100+ لغة30-50 لغة2x+ تغطية