نقاط نهاية API تحليل الدم
مرجع كامل لجميع نقاط نهاية API Kantesti مع أمثلة التعليمات البرمجية بلغات برمجة متعددة.
نفخر بالإعلان عن ثلاث وحدات DNA جديدة في Kantesti API. تحوّل وحدة تفسير فحص DNA بيانات DNA الخام أو التقرير الجيني إلى تقرير صحي جيني شامل، ويدمج التقرير الصحي DNA + الدم هذا التقرير مع تحليل دم، ويكتب مستشار المكملات خطة مكملات مخصّصة بمنتجات عيادتك أنت. اقرأ مرجع واجهة صحة DNA.
https://app.aibloodtestinterpret.com
سجل التغييرات
تتبع إصدارات API والتحديثات ومعلومات الترحيل. استخدم نقاط النهاية الموصى بها للتكاملات الجديدة.
تم تطبيق تحديثات عام 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 لفحوصات الدم باستخدام الذكاء الاصطناعي لاستخراج المعايير وإنشاء تفسيرات طبية شاملة.
نقطة نهاية الإنتاج لتحليل الدم. ارفع صورة واحدة أو أكثر لفحص الدم أو ملف PDF، واحصل على معايير منظمة، وبيانات وصفية عن المريض والمختبر، وتفسير سريري كامل بأي من اللغات الـ100 المدعومة. يستهلك رصيدًا واحدًا لكل طلب.
معاملات الطلب
| المعامل | النوع | مطلوب | الوصف |
|---|---|---|---|
username | string | نعم | اسم مستخدم API |
password | string | نعم | كلمة مرور API |
file | file | نعم | صورة فحص الدم (PNG، JPG، WEBP) أو PDF. الحد الأقصى 20 ميجابايت. كرر الحقل لإرسال عدة صور. |
language | string | لا | رمز لغة الاستجابة (افتراضي: en). انظر اللغات المدعومة. |
pdf_password | string | لا | كلمة مرور ملفات 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 قيمًا موحدة. انظر قيم التقييم.
نقطة نهاية الإنتاج لتحليل الدم. يستهلك رصيدًا واحدًا لكل طلب.
معاملات الطلب
| المعامل | النوع | مطلوب | الوصف |
|---|---|---|---|
username | string | نعم | اسم مستخدم API |
password | string | نعم | كلمة مرور API |
file | file | نعم | صورة فحص الدم (PNG، JPG، WEBP) أو PDF. الحد الأقصى 20 ميجابايت. |
language | string | لا | رمز لغة الاستجابة (افتراضي: 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"
}
مرجع حقول الاستجابة
المستوى الجذري
| الحقل | النوع | الوصف |
|---|---|---|
status | string | "success" أو "error" |
data | object | يحتوي على جميع نتائج التحليل |
timestamp | string | الطابع الزمني ISO 8601 للاستجابة |
api_version | string | إصدار API المستخدم |
كائن data.metadata
| الحقل | النوع | الوصف |
|---|---|---|
lab_date | string | تاريخ سحب الدم (YYYY-MM-DD) |
results_date | string | تاريخ إصدار النتائج (YYYY-MM-DD) |
lab_name | string | اسم المختبر |
lab_city | string | مدينة المختبر |
lab_country | string | بلد المختبر |
patient_name | string | الاسم الكامل للمريض (بيانات وصفية فقط، لا يُرسل إلى التفسير) |
patient_age | string | عمر المريض |
patient_sex | string | "male" أو "female" أو "other" |
عنصر مصفوفة data.parameters
| الحقل | النوع | الوصف |
|---|---|---|
category | string | فئة المعلمة (مثل: "تعداد الدم الكامل"، "لوحة الدهون") |
long_name | string | الاسم الكامل للمعلمة |
short_name | string | الاسم المختصر للمعلمة |
result | string | القيمة المقاسة |
unit | string | وحدة القياس |
range_min | string | الحد الأدنى للنطاق المرجعي |
range_max | string | الحد الأقصى للنطاق المرجعي |
evaluation | string | حالة النتيجة. انظر قيم التقييم |
عنصر مصفوفة data.interpretation
| الحقل | النوع | الوصف |
|---|---|---|
title | string | عنوان القسم (مثل: "تقييم الصحة العامة") |
content | string | التفسير الطبي المولد بالذكاء الاصطناعي |
يستخدم حقل evaluation قيمًا موحدة. انظر قيم التقييم.
نقطة نهاية الإنتاج مع حساب شامل لدرجة الصحة وتحليل مخاطر الأمراض. تأخذ الطلب نفسه الذي تأخذه /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 قيمًا موحدة. انظر قيم درجة الصحة.
التغذية بالذكاء الاصطناعي مع المكملات
إنشاء خطط تغذية مخصصة وتوصيات غذائية واقتراحات مكملات بناءً على تحليل فحص الدم.
ينشئ توصيات شاملة للتغذية والمكملات بناءً على معلمات فحص الدم وملف المريض.
مخطط كائن المريض
وصف تفصيلي لجميع الحقول المتاحة لكائن المريض:
| الحقل | النوع | مطلوب | الافتراضي | الوصف |
|---|---|---|---|---|
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. استخدمها للتطوير واختبار التكامل.
- عدم استهلاك الحصة
- إرجاع بيانات اختبار واقعية
- نفس تنسيق الطلب كالإنتاج
- اختبر التكامل قبل البدء بالإنتاج
- متاح لجميع إصدارات 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 المناسب لحالتك:
| الميزة | مقارنة AI لفحوصات الدم | تحليل الاتجاهات |
|---|---|---|
| التركيز الرئيسي | مقارنة سردية بالذكاء الاصطناعي | تحليل إحصائي للاتجاهات |
| معالجة AI | سرد AI كامل | AI محسّن + إحصائيات |
| نوع المخرجات | ملخصات سردية | رسوم بيانية، إحصائيات، أنماط |
| الأفضل لـ | ما تغير بين الفحوصات | تتبع المعلمات طويل المدى |
| الحد الأدنى للفحوصات | 2 | 2 |
| الحد الأقصى للفحوصات | 20 | 50 |
API تحليل الاتجاهات
تحليل إحصائي متقدم لمعايير فحص الدم عبر الزمن. يتتبع الاتجاهات والأنماط والتغييرات في حتى 50 اختبار دم لتحديد المشكلات الصحية المحتملة وتتبع التقدم.
يحلل سلسلة زمنية من فحوصات الدم (2-50 اختبار) ويوفر رؤى إحصائية، اكتشاف الأنماط، وتفسيرات AI لاتجاهات المعايير.
معاملات الطلب
| المعامل | النوع | مطلوب | الوصف |
|---|---|---|---|
username | string | نعم | اسم مستخدم API |
password | string | نعم | كلمة مرور API |
language | string | لا | رمز لغة الاستجابة (افتراضي: en). يدعم أكثر من 100 لغة. |
blood_tests | array | نعم | مصفوفة من 2-50 فحص دم بترتيب زمني. انظر الهيكل |
analysis_type | string | لا | نوع التحليل. انظر القيم (افتراضي: comprehensive) |
analysis_options | object | لا | خيارات تكوين التحليل |
كائن analysis_options
| الحقل | النوع | الافتراضي | الوصف |
|---|---|---|---|
include_predictions | boolean | true | تضمين تنبؤات اتجاهات الذكاء الاصطناعي |
include_statistics | boolean | true | تضمين التحليل الإحصائي |
include_charts | boolean | true | تضمين بيانات تكوين الرسوم البيانية |
- الحد الأدنى: 2 فحص دم مطلوب
- الحد الأقصى: 50 فحص دم لكل طلب
- يجب أن يحتوي كل فحص على lab_date أو results_date
- استخدم أسماء معلمات متسقة للتتبع الدقيق
هيكل مصفوفة blood_tests
يجب أن يكون كل عنصر في مصفوفة blood_tests كائنًا بالحقول التالية:
| الحقل | النوع | مطلوب | الوصف |
|---|---|---|---|
test_date | string | نعم | تاريخ فحص الدم (YYYY-MM-DD) |
parameters | array | نعم | مصفوفة من كائنات المعايير |
هيكل blood_tests[].parameters
يجب أن يحتوي كل عنصر في مصفوفة parameters على:
| الحقل | النوع | مطلوب | الوصف |
|---|---|---|---|
short_name | string | نعم | اسم المعلمة المختصر (مثل: WBC، HGB، CHOL، GLU، HbA1c، LDL، HDL، TG) |
result | number | نعم | القيمة المقاسة للمعلمة |
unit | string | نعم | وحدة القياس (مثل: mg/dL، g/dL، %، 10^9/L، mmol/L) |
long_name | string | لا | الاسم الكامل للمعلمة بالعربية (مثل: الجلوكوز، الهيموغلوبين السكري) |
reference_min | number | لا | الحد الأدنى للنطاق المرجعي |
reference_max | number | لا | الحد الأقصى للنطاق المرجعي |
مثال cURL
curl -X POST "https://app.aibloodtestinterpret.com/api/v1/analytics/trends/analyze" \
-H "Content-Type: application/json" \
-d '{
"username": "اسم_المستخدم",
"password": "كلمة_المرور",
"language": "ar",
"analysis_type": "comprehensive",
"analysis_options": {
"include_predictions": true,
"include_statistics": true,
"include_charts": true
},
"blood_tests": [
{
"test_date": "2024-01-15",
"parameters": [
{"short_name": "GLU", "result": 105, "unit": "mg/dL"},
{"short_name": "HbA1c", "result": 6.2, "unit": "%"},
{"short_name": "CHOL", "result": 220, "unit": "mg/dL"},
{"short_name": "LDL", "result": 140, "unit": "mg/dL"},
{"short_name": "HDL", "result": 45, "unit": "mg/dL"}
]
},
{
"test_date": "2024-05-10",
"parameters": [
{"short_name": "GLU", "result": 98, "unit": "mg/dL"},
{"short_name": "HbA1c", "result": 5.9, "unit": "%"},
{"short_name": "CHOL", "result": 210, "unit": "mg/dL"},
{"short_name": "LDL", "result": 130, "unit": "mg/dL"},
{"short_name": "HDL", "result": 48, "unit": "mg/dL"}
]
},
{
"test_date": "2024-08-22",
"parameters": [
{"short_name": "GLU", "result": 92, "unit": "mg/dL"},
{"short_name": "HbA1c", "result": 5.6, "unit": "%"},
{"short_name": "CHOL", "result": 195, "unit": "mg/dL"},
{"short_name": "LDL", "result": 115, "unit": "mg/dL"},
{"short_name": "HDL", "result": 52, "unit": "mg/dL"}
]
},
{
"test_date": "2024-12-18",
"parameters": [
{"short_name": "GLU", "result": 88, "unit": "mg/dL"},
{"short_name": "HbA1c", "result": 5.4, "unit": "%"},
{"short_name": "CHOL", "result": 185, "unit": "mg/dL"},
{"short_name": "LDL", "result": 105, "unit": "mg/dL"},
{"short_name": "HDL", "result": 55, "unit": "mg/dL"}
]
}
]
}'
مثال Python
import requests
from typing import List, Dict
def analyze_trends(
blood_tests: List[Dict],
username: str,
password: str,
language: str = "ar",
analysis_type: str = "comprehensive"
):
"""
تحليل اتجاهات فحوصات الدم عبر الزمن.
Args:
blood_tests: قائمة من فحوصات الدم بترتيب زمني
username: اسم مستخدم API
password: كلمة مرور API
language: رمز لغة الاستجابة
analysis_type: نوع التحليل (comprehensive، statistical، summary)
Returns:
dict: استجابة API مع تحليل الاتجاهات
"""
url = "https://app.aibloodtestinterpret.com/api/v1/analytics/trends/analyze"
payload = {
"username": username,
"password": password,
"language": language,
"analysis_type": analysis_type,
"blood_tests": blood_tests
}
response = requests.post(url, json=payload, timeout=120)
response.raise_for_status()
return response.json()
# مثال الاستخدام
if __name__ == "__main__":
blood_tests = [
{
"test_date": "2024-06-01",
"parameters": [
{"short_name": "WBC", "result": 6.5, "unit": "10^9/L"},
{"short_name": "CHOL", "result": 210, "unit": "mg/dL"}
]
},
{
"test_date": "2024-09-01",
"parameters": [
{"short_name": "WBC", "result": 7.1, "unit": "10^9/L"},
{"short_name": "CHOL", "result": 195, "unit": "mg/dL"}
]
},
{
"test_date": "2024-12-01",
"parameters": [
{"short_name": "WBC", "result": 7.2, "unit": "10^9/L"},
{"short_name": "CHOL", "result": 185, "unit": "mg/dL"}
]
}
]
result = analyze_trends(
blood_tests=blood_tests,
username="اسم_المستخدم",
password="كلمة_المرور",
language="ar"
)
print(f"الحالة: {result['status']}")
print(f"المعلمات المحللة: {len(result['data']['trends'])}")
مثال استجابة
{
"status": "success",
"data": {
"summary": {
"total_tests": 3,
"date_range": {
"start": "2024-06-01",
"end": "2024-12-01"
},
"parameters_tracked": 3,
"overall_assessment": "تحسن إيجابي في الصحة العامة"
},
"trends": [
{
"parameter": {
"short_name": "CHOL",
"long_name": "الكوليسترول الكلي",
"category": "لوحة الدهون"
},
"statistics": {
"min": 185,
"max": 210,
"mean": 196.67,
"median": 195,
"std_dev": 12.58,
"coefficient_of_variation": 6.4
},
"trend_analysis": {
"direction": "downward",
"strength": "moderate",
"assessment": "improving",
"percentage_change": -11.9,
"rate_of_change": -4.17
},
"time_series": [
{
"date": "2024-06-01",
"value": 210,
"evaluation": "borderline_high",
"deviation_from_normal": 5.0
},
{
"date": "2024-09-01",
"value": 195,
"evaluation": "normal",
"deviation_from_normal": -2.5
},
{
"date": "2024-12-01",
"value": 185,
"evaluation": "normal",
"deviation_from_normal": -7.5
}
],
"interpretation": "يُظهر الكوليسترول الكلي اتجاهًا تنازليًا إيجابيًا من 210 إلى 185 ملغ/ديسيلتر على مدى 6 أشهر. هذا تحسن بنسبة 11.9% يشير إلى فعالية تغييرات نمط الحياة أو العلاج."
},
{
"parameter": {
"short_name": "WBC",
"long_name": "خلايا الدم البيضاء",
"category": "تعداد الدم الكامل"
},
"statistics": {
"min": 6.5,
"max": 7.2,
"mean": 6.93,
"median": 7.1,
"std_dev": 0.36,
"coefficient_of_variation": 5.2
},
"trend_analysis": {
"direction": "upward",
"strength": "mild",
"assessment": "stable",
"percentage_change": 10.8,
"rate_of_change": 0.12
},
"time_series": [
{
"date": "2024-06-01",
"value": 6.5,
"evaluation": "normal",
"deviation_from_normal": 0
},
{
"date": "2024-09-01",
"value": 7.1,
"evaluation": "normal",
"deviation_from_normal": 0
},
{
"date": "2024-12-01",
"value": 7.2,
"evaluation": "normal",
"deviation_from_normal": 0
}
],
"interpretation": "تُظهر خلايا الدم البيضاء زيادة طفيفة ولكنها تبقى ضمن النطاق الطبيعي. التباين منخفض (5.2%) مما يشير إلى استقرار جيد للجهاز المناعي."
}
],
"patterns": {
"correlations": [
{
"parameters": ["CHOL", "LDL"],
"correlation_coefficient": 0.92,
"description": "ارتباط قوي بين الكوليسترول الكلي وLDL"
}
],
"anomalies": [],
"significant_changes": [
{
"parameter": "CHOL",
"change_description": "انخفاض كبير بنسبة 11.9% في الكوليسترول",
"clinical_significance": "إيجابي - يقلل من خطر أمراض القلب والأوعية الدموية"
}
]
},
"recommendations": [
{
"priority": "high",
"recommendation": "استمر في تدابير خفض الكوليسترول الحالية"
},
{
"priority": "medium",
"recommendation": "راقب WBC في الاختبار التالي للتأكد من الاستقرار"
},
{
"priority": "low",
"recommendation": "جدولة اختبار المتابعة في 3 أشهر"
}
]
},
"api_version": "v1",
"timestamp": "2025-12-22T10:30:00Z"
}
مرجع حقول الاستجابة
المستوى الجذري
| الحقل | النوع | الوصف |
|---|---|---|
status | string | "success" أو "error" |
data | object | يحتوي على جميع نتائج تحليل الاتجاهات |
timestamp | string | الطابع الزمني ISO 8601 للاستجابة |
api_version | string | إصدار API المستخدم |
كائن data.summary
| الحقل | النوع | الوصف |
|---|---|---|
total_tests | integer | عدد فحوصات الدم المحللة |
date_range | object | تاريخا البداية والنهاية |
parameters_tracked | integer | عدد المعايير الفريدة المتتبعة |
overall_assessment | string | تقييم صحي عام مولد بالذكاء الاصطناعي |
عنصر مصفوفة data.trends
| الحقل | النوع | الوصف |
|---|---|---|
parameter | object | معلومات المعلمة (short_name، long_name، category) |
statistics | object | التحليل الإحصائي (min، max، mean، median، std_dev) |
trend_analysis | object | اتجاه، قوة، تقييم، نسبة التغيير |
time_series | array | نقاط البيانات الزمنية مع التقييمات |
interpretation | string | تفسير طبي مولد بالذكاء الاصطناعي |
كائن trend_analysis
| الحقل | النوع | الوصف |
|---|---|---|
direction | string | اتجاه الاتجاه. انظر القيم |
strength | string | قوة الاتجاه. انظر القيم |
assessment | string | التقييم السريري. انظر القيم |
percentage_change | number | نسبة التغيير من الأول إلى الأخير |
rate_of_change | number | معدل التغيير لكل فترة |
كائن data.patterns
| الحقل | النوع | الوصف |
|---|---|---|
correlations | array | الارتباطات بين المعايير |
anomalies | array | نقاط البيانات غير العادية المكتشفة |
significant_changes | array | التغييرات ذات الأهمية السريرية |
تستخدم حقول direction و strength و assessment قيمًا موحدة. انظر trend_direction، trend_strength، trend_assessment.
API مقارنة فحوصات الدم
قارن ما يصل إلى 20 فحص دم باستخدام الذكاء الاصطناعي لإنشاء ملخصات سردية للتغييرات والأنماط والتحسينات أو التدهورات في المعايير الصحية.
يوفر مقارنات سردية مدعومة بالذكاء الاصطناعي بين فحوصات الدم المتعددة، مع التركيز على التغييرات ذات المغزى والرؤى الطبية.
- الحد الأدنى: اختباران للدم للمقارنة
- الحد الأقصى: 20 اختبار دم في طلب واحد
- الترتيب: قدم الاختبارات بترتيب زمني (من الأقدم إلى الأحدث)
معاملات الطلب
| المعامل | النوع | مطلوب | الوصف |
|---|---|---|---|
username | string | نعم | اسم مستخدم API |
password | string | نعم | كلمة مرور API |
language | string | لا | رمز لغة الاستجابة (افتراضي: en). يدعم أكثر من 100 لغة. |
blood_tests | array | نعم | مصفوفة من 2-20 فحص دم بترتيب زمني. انظر الهيكل |
هيكل مصفوفة blood_tests
يجب أن يكون كل عنصر في مصفوفة blood_tests كائنًا بالحقول التالية:
| الحقل | النوع | مطلوب | الوصف |
|---|---|---|---|
test_date | string | نعم | تاريخ فحص الدم (YYYY-MM-DD) |
parameters | array | نعم | مصفوفة من كائنات المعايير |
يجب أن يحتوي كل عنصر في مصفوفة parameters على:
| الحقل | النوع | مطلوب | الوصف |
|---|---|---|---|
short_name | string | نعم | اسم المعلمة المختصر (مثل: WBC، HGB، CHOL) |
result | number | نعم | القيمة المقاسة |
unit | string | نعم | وحدة القياس |
evaluation | string | لا | حالة التقييم. انظر القيم |
مثال 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"
}
مرجع حقول الاستجابة
المستوى الجذري
| الحقل | النوع | الوصف |
|---|---|---|
status | string | "success" أو "error" |
data | object | يحتوي على جميع نتائج المقارنة |
timestamp | string | الطابع الزمني ISO 8601 للاستجابة |
api_version | string | إصدار API المستخدم |
كائن data.comparison_summary
| الحقل | النوع | الوصف |
|---|---|---|
tests_compared | integer | عدد فحوصات الدم المقارنة |
date_range | object | تواريخ الاختبار الأول والأخير |
time_span_days | integer | عدد الأيام بين الاختبارات |
parameters_compared | integer | عدد المعايير المقارنة |
overall_trend | string | الاتجاه العام للصحة. انظر القيم |
عنصر مصفوفة data.parameter_comparisons
| الحقل | النوع | الوصف |
|---|---|---|
parameter | object | معلومات المعلمة (short_name، long_name، category) |
comparison | object | بيانات المقارنة الرقمية |
evaluations | object | التقييمات للاختبار الأول والأخير |
narrative | string | ملخص سردي مولد بالذكاء الاصطناعي للتغيير |
كائن comparison
| الحقل | النوع | الوصف |
|---|---|---|
first_value | number | القيمة من الاختبار الأول |
last_value | number | القيمة من الاختبار الأخير |
absolute_change | number | الفرق المطلق (last - first) |
percentage_change | number | نسبة التغيير |
trend_assessment | string | التقييم السريري. انظر القيم |
كائن data.ai_interpretation
| الحقل | النوع | الوصف |
|---|---|---|
overall_health_assessment | string | ملخص سردي شامل للتغييرات الصحية |
key_improvements | array | قائمة التحسينات الملحوظة |
areas_of_concern | array | قائمة القضايا أو التدهورات المحتملة |
recommendations | array | توصيات عملية مولدة بالذكاء الاصطناعي |
تستخدم حقول 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 | يحتاج تحسين، مخاوف صحية كبيرة موجودة |
نقاط نهاية الأدوات
يُرجع معلومات منصة API، الإصدارات المتاحة والميزات المدعومة. لا يتطلب مصادقة.
مثال استجابة
{
"platform": "منصة API Kantesti لتحليل الدم",
"versions": ["v6", "v8", "v9", "v10", "v11"],
"latest_version": "v11",
"supported_languages": 100,
"documentation": "https://www.kantesti.net/docs/",
"status": "operational"
}
تحقق من حصة 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"
}
}
واجهة برمجة تطبيقات تقييم مخاطر صحة الأسرة
واجهة Kantesti لتقييم مخاطر صحة الأسرة هي منصة تحليل المخاطر الصحية الوراثية المدعومة بالذكاء الاصطناعي. تُنشئ تقارير صحية عائلية شاملة من خلال تحليل التاريخ الطبي للعائلة، والملفات الصحية للمرضى، وبيانات فحوصات الدم لتحديد عوامل الخطر الوراثية وتقديم توصيات رعاية وقائية مخصصة.
تحليل المخاطر الوراثية بالذكاء الاصطناعي
تستخدم واجهة Family Health نماذج ذكاء اصطناعي متقدمة لمقارنة التاريخ الطبي العائلي مع بيانات فحوصات دم المريض، وتحديد أنماط المخاطر الوراثية في فئات القلب والأوعية الدموية، والتمثيل الغذائي، والسرطان، والأعصاب، والجهاز التنفسي، والمناعة الذاتية، والوراثة، والصحة النفسية، والكلى/الكبد. تشمل التقارير تقييم المخاطر، وجداول الرعاية الوقائية، وتوصيات الفحص الجيني، ونصائح نمط الحياة — وكل ذلك مترجم بأكثر من 100 لغة.
- تحليل المخاطر الوراثية — تصنيف إلى مخاطر عالية ومتوسطة ومنخفضة مع تقييم مفصل
- تحليل شجرة العائلة — رسم خريطة مخاطر خطوط الأب والأم
- ارتباط فحوصات الدم — مقارنة التاريخ العائلي مع معايير الدم
- توصيات الفحص الجيني — اقتراحات مخصصة للاختبارات الجينية
- جدول الرعاية الوقائية — برامج فحص مناسبة للعمر
- تحليل الأدوية — تقييم التفاعلات والحساسيات الوراثية
- أكثر من 100 لغة — توطين كامل للتقارير
- وضع الاختبار — اختبر التكامل دون استهلاك الرصيد
ملخص نقاط النهاية
| نقطة النهاية | الطريقة | الوصف | المصادقة |
|---|---|---|---|
/api/v1/family-health/analyze | POST | إنشاء تقرير شامل لتقييم المخاطر | مطلوب (1 رصيد) |
/api/v1/family-health/validate | POST | التحقق من صحة البيانات (بدون استهلاك) | مطلوب (مجاني) |
/api/v1/family-health/supported-languages | GET | قائمة أكثر من 100 لغة مدعومة | غير مطلوب |
/api/v1/family-health/condition-categories | GET | قائمة فئات الأمراض | غير مطلوب |
/api/v1/family-health/family-relations | GET | قائمة أنواع العلاقات العائلية | غير مطلوب |
/api/v1/family-health/sandbox/analyze | POST | اختبار تجريبي ببيانات نموذجية | مطلوب (مجاني) |
إنشاء تقرير شامل لتقييم مخاطر صحة الأسرة مدعوم بالذكاء الاصطناعي.
معاملات الطلب (JSON Body)
| المعامل | النوع | مطلوب | الوصف |
|---|---|---|---|
username | string | نعم | اسم المستخدم API |
password | string | نعم | كلمة مرور API |
patient_data | object | نعم | بيانات المريض |
family_members | array | نعم* | أعضاء الأسرة (حد أقصى 100) |
health_profile | object | نعم* | الملف الصحي |
blood_test_data | array | لا | بيانات فحوصات الدم |
language | string | لا | رمز اللغة (افتراضي: 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_1001 | 401 | بيانات المصادقة مفقودة |
AUTH_1002 | 401 | اسم مستخدم أو كلمة مرور غير صالحة |
QUOTA_1101 | 403 | حصة API غير كافية |
VAL_2001 | 400 | حقل مطلوب مفقود |
VAL_2003 | 400 | رمز لغة غير مدعوم |
PROC_3001 | 500 | فشل إنشاء التقرير |
SRV_5001 | 500 | خطأ داخلي في الخادم |
نقطة نهاية الاختبار Family Health
اختبر تكاملك دون استهلاك الرصيد.
| API | اختبار | الوصف |
|---|---|---|
| Family Health | /api/v1/family-health/sandbox/analyze | بيانات تقرير نموذجية |
نقاط النهاية المرجعية (بدون مصادقة)
| نقطة النهاية | الطريقة | الوصف |
|---|---|---|
/api/v1/family-health/supported-languages | GET | أكثر من 100 لغة مدعومة |
/api/v1/family-health/condition-categories | GET | 9 فئات أمراض |
/api/v1/family-health/family-relations | GET | 14 علاقة عائلية |
واجهة برمجة تطبيقات خريطة الجسم
تحوّل واجهة Kantesti لخريطة الجسم لوحة التحاليل المخبرية إلى تشريح. تضع كل نتيجة خارج النطاق أو حدّية على واحدة من 13 منطقة في الجسم، وتُعيد مفتاح الخريطة — أي منطقة، وبأي شدة، وأي المؤشرات وضعتها هناك — إضافة إلى رابط لرسم توضيحي مطابق للجسم.
حتمية بشكل افتراضي
تُطابَق أسماء المؤشرات مع جداول مرادفات متعددة اللغات تغطي 39 لغة تقارير، بما في ذلك الكتابات غير اللاتينية — أرسل أسماء التحاليل تماماً كما طبعها مختبرك وبأي لغة طبعها. لا يُستدعى أي نموذج ولا يُولَّد أي رسم توضيحي ما لم تطلب ذلك، لذا فإن الطلب الافتراضي خالٍ من تكلفة الذكاء الاصطناعي ويُعيد النتيجة نفسها في كل مرة للوحة التحاليل نفسها.
- 13 منطقة تشريحية — الدماغ والأعصاب، الغدة الدرقية، القلب والأوعية، الكبد، البنكرياس، الغدد الكظرية، الكلى، الأمعاء، الجهاز التناسلي، الدم، المناعة، العظام، العضلات
- مستويات الشدة — المستوى 2 للنتائج خارج النطاق والمستوى 1 للنتائج الحدّية، بحيث يمكن تلوين المفتاح دون أي منطق إضافي
- إسناد المؤشرات — كل منطقة تسرد المؤشرات التي وضعتها على الخريطة، الأسوأ أولاً
- مخرجات خالية من اللغة — مفاتيح المناطق وأسماء مؤشراتك أنت؛ الرسم التوضيحي لا يحمل أي نص، فصورة واحدة تخدم كل اللغات
- روابط رسوم موقَّعة — كل رابط رسم توضيحي يحمل توقيع HMAC، فلا يستطيع أحد تعدادها أو تزويرها
- حالات فارغة صادقة — لوحة تحاليل سليمة تُعيد جسم "كل شيء سليم" المشترك؛ ولوحة تعذّر وضع مؤشراتها المُعلَّمة تُعيد خطأً بدلاً من جسم أخضر مضلِّل
- الوضع الحتمي — الافتراضي. بلا استدعاء نموذج، وبلا رصيد صور، ومخرجات قابلة للتكرار
- وضع الاختبار (Sandbox) — اختبر التكامل دون استهلاك الرصيد
ملخص نقاط النهاية
| نقطة النهاية | الطريقة | الوصف | المصادقة |
|---|---|---|---|
/api/v1/body-map/analyze | POST | بناء خريطة جسم من لوحة تحاليل مخبرية | مطلوب (1 رصيد) |
/api/v1/body-map/validate | POST | التحقق من الحمولة ومعرفة المؤشرات المتعرّف عليها (بدون استهلاك) | مطلوب (مجاني) |
/api/v1/body-map/sandbox | POST | اختبار تجريبي ببيانات نموذجية (بدون استهلاك) | مطلوب (مجاني) |
/api/v1/body-map/regions | GET | قائمة مناطق الجسم الـ13 ومستويات الشدة | غير مطلوب |
/api/v1/body-map/info | GET | بيانات وصفية عن القدرات والحدود والمصادقة | غير مطلوب |
يضع كل نتيجة مُعلَّمة في لوحة التحاليل على الجسم. يستهلك رصيدًا واحدًا لكل طلب ناجح. الطلب الذي يفشل في التحقق، أو الذي تتعذّر مطابقة مؤشراته المُعلَّمة بأي منطقة، لا تتم محاسبته.
معاملات الطلب
| المعامل | النوع | مطلوب | الوصف |
|---|---|---|---|
username | string | نعم | اسم مستخدم API |
password | string | نعم | كلمة مرور API |
parameters | array | نعم | كائنات نتائج المختبر. الحد الأقصى 500. كل عنصر يحتاج اسم التحليل وevaluation. |
interpretation | array | لا | التفسير السريري، يُستخدم كسياق فقط عند تفعيل ai_assist |
ai_assist | boolean | لا | السماح للنموذج بوضع المؤشرات التي لا تتعرف عليها جداول المرادفات (افتراضي: false) |
include_image | boolean | لا | طلب الرسم التوضيحي المُنتَج (افتراضي: false) |
image_wait | integer | لا | عدد الثواني لانتظار رسم توضيحي جديد، من 0 إلى 30 (افتراضي: 0) |
حقول كائن parameters
| الحقل | النوع | مطلوب | الوصف |
|---|---|---|---|
short_name | string | نعم* | اسم التحليل كما طبعه المختبر. *يلزم واحد على الأقل من short_name أو long_name أو name أو parameter_name أو parameter. |
long_name | string | لا | الاسم الكامل للتحليل؛ يحسّن مطابقة الاختصارات |
evaluation | string | لا | واحدة من high أو low أو bad أو slightly_high أو slightly_low أو normal. القيم المُعلَّمة فقط تظهر على الخريطة. |
result | string|number | لا | القيمة المقاسة؛ تُستخدم لترتيب المناطق التي تُرسم |
unit | string | لا | وحدة النتيجة، بأي صيغة كتابة |
range_normal_min | number | لا | الحد الأدنى للنطاق المرجعي |
range_normal_max | number | لا | الحد الأعلى للنطاق المرجعي |
category | string | لا | فئة المختبر؛ تُستخدم كبديل عندما يكون اسم التحليل غير معروف |
مثال 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.spec | string | معرّف قياسي لهذه التركيبة من المناطق ودرجات الشدة. اللوحات المتطابقة تتشارك المعرّف نفسه، ومن ثمّ الرسم التوضيحي المخزّن نفسه. |
body_map.regions[].key | string | واحد من مفاتيح المناطق الـ13 |
body_map.regions[].level | integer | 2 = خارج النطاق، 1 = حدّي |
body_map.regions[].drawn | boolean | ما إذا كانت هذه المنطقة مرسومة على الصورة. المفتاح يسرد كل المناطق دائماً، بينما تُرسم ست مناطق كحد أقصى. |
body_map.regions[].markers | array | أسماء المؤشرات التي وضعت هذه المنطقة على الخريطة، الأسوأ أولاً |
body_map.unmapped | integer | عدد المؤشرات المُعلَّمة التي تعذّر وضعها في أي منطقة |
body_map.image_url | string|null | الرسم التوضيحي المخزّن. يكون null إلى أن يوجد الملف — استخدم fallback_url بديلاً. |
body_map.fallback_url | string | رابط توليد موقَّع. موجود دائماً. يردّ بالرمز 503 مع Retry-After ما دام الرسم قيد الإنتاج. |
all_clear | boolean | true عندما لا تُعلَّم أي نتيجة؛ ويُستخدم جسم "كل شيء سليم" المشترك |
mode | string | deterministic أو ai_assisted |
الاستجابة خالية من اللغة بحكم التصميم: تحمل مفاتيح المناطق وأسماء مؤشرات مختبرك أنت. ترجم مفاتيح المناطق الـ13 داخل تطبيقك، وقدّم المفتاح على الصورة — فإن رسم النموذج العضو الخطأ يوماً ما، يبقى المفتاح المجاور له صحيحاً.
يتحقق من الحمولة دون تشغيل التحليل، ويبيّن أي أسماء التحاليل لديك يتعرف عليها المحرك. المصادقة مطلوبة؛ ولا يُستهلك أي رصيد، وتظل نقطة النهاية تعمل على حساب بلا رصيد متبقٍ.
مثال 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"
}
نقاط النهاية المرجعية
كلتا نقطتي النهاية المرجعيتين مجانيتان وبدون مصادقة.
يسرد مناطق الجسم الـ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
}
}
بيانات وصفية عن القدرات: ما إذا كان المحرك مفعّلاً على هذا النشر، وحدود الطلب، ونظام المصادقة، وقائمة نقاط النهاية الكاملة.
مثال cURL
curl "https://app.aibloodtestinterpret.com/api/v1/body-map/info"
نقطة نهاية الاختبار Body Map
تُعيد POST /api/v1/body-map/sandbox استجابة نموذجية بالشكل نفسه الذي تنتجه /analyze، بحيث يعمل أي تطبيق كُتب على Sandbox دون تغيير مقابل الإنتاج. المصادقة مطلوبة كي تُثبت الاستدعاءة بياناتك أيضاً، لكن لا يُستهلك أي رصيد ولا يُجرى أي تحليل.
| رمز الخطأ | HTTP | المعنى |
|---|---|---|
AUTH_1001 | 401 | بيانات المصادقة مفقودة |
AUTH_1002 | 401 | اسم مستخدم أو كلمة مرور غير صالحة |
AUTH_1004 | 400 | بيانات اعتماد مشوّهة (نوع خاطئ أو حجم زائد) |
QUOTA_1101 | 403 | حصة API غير كافية |
VAL_2001 | 400 | الحقل parameters مفقود |
VAL_2002 | 400 | تنسيق بيانات غير صالح |
VAL_2005 | 400 | الحقل parameters فارغ |
VAL_2006 | 400 | أكثر من 500 معامل |
VAL_2008 | 400 | صف معامل مشوّه أو بلا اسم |
RES_4004 | 422 | توجد نتائج مُعلَّمة لكن لا تنطبق أي منها على منطقة في الجسم |
RES_4005 | 503 | محرك خريطة الجسم معطّل على هذا النشر |
واجهة برمجة تطبيقات العمر البيولوجي للدم
تجيب واجهة Kantesti للعمر البيولوجي للدم عن سؤال لا يستطيع النطاق المرجعي الإجابة عنه: كم يبدو عمر هذا الدم؟ تحسب العمر البيولوجي من لوحة تحاليل روتينية باستخدام نموذج Levine PhenoAge المنشور، وتشتق إلى جانبه ما يصل إلى 18 مؤشراً سريرياً — FIB-4 و HOMA-IR و TyG و eGFR و AIP و NLR وفجوة الأنيونات وغيرها — نادراً ما يطبعها تقرير المختبر.
رقم حتى من لوحة تحاليل جزئية
يحتاج 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/analyze | POST | حساب العمر البيولوجي للدم والمؤشرات السريرية المشتقة | مطلوب (1 رصيد) |
/api/v1/blood-age/validate | POST | التحقق من الحمولة ومعرفة المؤشرات التي توفرها اللوحة (بدون استهلاك) | مطلوب (مجاني) |
/api/v1/blood-age/sandbox | POST | اختبار تجريبي ببيانات نموذجية (بدون استهلاك) | مطلوب (مجاني) |
/api/v1/blood-age/biomarkers | GET | قائمة المؤشرات التي يقرأها المحرك ووحداتها المستهدفة | غير مطلوب |
/api/v1/blood-age/info | GET | بيانات وصفية عن القدرات والحدود والمصادقة | غير مطلوب |
يحسب العمر البيولوجي للدم والمؤشرات المشتقة من لوحة تحاليل مخبرية. يستهلك رصيدًا واحدًا لكل طلب ناجح. الطلب الذي يفشل في التحقق، أو الذي لا تعطي لوحته أي نتيجة قابلة للحساب، لا تتم محاسبته.
معاملات الطلب
| المعامل | النوع | مطلوب | الوصف |
|---|---|---|---|
username | string | نعم | اسم مستخدم API |
password | string | نعم | كلمة مرور API |
parameters | array | نعم | كائنات نتائج المختبر. الحد الأقصى 500. كل عنصر يحتاج اسم التحليل ونتيجة. |
metadata | object | لا | ترويسة التقرير. يُنصح بها بشدة: فمعادلة PhenoAge تتضمن حدّ العمر الزمني. تقرأ patient_age وpatient_sex وdob وlab_date. |
patient | object | لا | {"age": 42, "gender": "female"} — يُستخدم عندما لا تحمل البيانات الوصفية هذه القيم |
interpretation | array | لا | التفسير السريري، يُستخدم كسياق للنموذج فقط |
language | string | لا | لغة الملاحظة الشخصية الاختيارية (افتراضي: en). انظر اللغات المدعومة. |
ai_assist | boolean | لا | السماح للنموذج بتحديد أسماء التحاليل غير المعتادة (افتراضي: false) |
ai_estimate | boolean | لا | السماح للنموذج بتحسين العمر الجزئي (افتراضي: false) |
ai_note | boolean | لا | طلب ملاحظة شخصية باللغة المحددة في language (افتراضي: false) |
مؤشرات PhenoAge التسعة
أرسلها بالأسماء التي طبعها مختبرك — فالمطابقة بالاسم وبأي من لغات التقارير الـ39 المدعومة، والوحدات تُحوَّل تلقائياً.
| المؤشر | الاسم المعتاد | الوحدة المستهدفة |
|---|---|---|
albumin | الألبومين | g/L |
creatinine | الكرياتينين | µmol/L |
glucose | الجلوكوز / سكر الدم الصائم | mmol/L |
crp | البروتين التفاعلي C | mg/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.status | string | ok أو missing_age أو missing_markers أو needs_markers أو unavailable |
summary.source | string | formula (المؤشرات التسعة كاملة) أو partial (وسائط سكانية مُقحَمة) أو ai (تقدير النموذج، مع ai_estimate فقط) |
summary.chronological_age | integer|null | العمر المقروء من البيانات الوصفية أو من كائن المريض |
summary.biological_age | number|null | عمر الدم المحسوب، بالسنوات |
summary.delta_years | number|null | البيولوجي ناقص الزمني. القيمة السالبة تعني أصغر من التقويم. |
summary.markers_missing | array | أي من مؤشرات PhenoAge التسعة لم توفره اللوحة |
blood_age.age.inputs | object | القيم المحوَّلة المستخدمة فعلياً، بالوحدات المستهدفة |
blood_age.age.labels | object | اسم مختبرك أنت لكل مؤشر طابقه المحرك |
blood_age.indices[].band | string | ok أو borderline أو high أو low أو info |
blood_age.indices[].from | array | صفوف المختبر التي اشتُق منها هذا المؤشر |
mode | string | deterministic أو ai_assisted |
تتضمن معادلة PhenoAge حدّ العمر، لذا من دون عمر زمني تعود الاستجابة بالحالة status: "missing_age" وبلا رقم. أرسله في metadata.patient_age أو في patient.age أو كتاريخ ميلاد في patient.dob. تنطبق المعادلة على الأعمار بين 18 و100 سنة.
يتحقق من الحمولة دون تشغيل التحليل، ويبيّن أي مؤشرات 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"
}
نقاط النهاية المرجعية
كلتا نقطتي النهاية المرجعيتين مجانيتان وبدون مصادقة.
يسرد مدخلات 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
}
}
بيانات وصفية عن القدرات: ما إذا كان المحرك مفعّلاً على هذا النشر، والوضعان وتكلفة كل منهما، وحدود الطلب، ونظام المصادقة، واللغات المدعومة.
مثال cURL
curl "https://app.aibloodtestinterpret.com/api/v1/blood-age/info"
نقطة نهاية الاختبار Blood Age
تُعيد POST /api/v1/blood-age/sandbox استجابة نموذجية بالشكل نفسه الذي تنتجه /analyze، بحيث يعمل أي تطبيق كُتب على Sandbox دون تغيير مقابل الإنتاج. المصادقة مطلوبة كي تُثبت الاستدعاءة بياناتك أيضاً، لكن لا يُستهلك أي رصيد ولا يُجرى أي تحليل.
| رمز الخطأ | HTTP | المعنى |
|---|---|---|
AUTH_1001 | 401 | بيانات المصادقة مفقودة |
AUTH_1002 | 401 | اسم مستخدم أو كلمة مرور غير صالحة |
AUTH_1004 | 400 | بيانات اعتماد مشوّهة (نوع خاطئ أو حجم زائد) |
QUOTA_1101 | 403 | حصة API غير كافية |
VAL_2001 | 400 | الحقل parameters مفقود |
VAL_2002 | 400 | تنسيق بيانات غير صالح |
VAL_2003 | 400 | رمز لغة غير مدعوم |
VAL_2005 | 400 | الحقل parameters فارغ |
VAL_2006 | 400 | أكثر من 500 معامل |
VAL_2007 | 400 | كائن patient غير صالح |
VAL_2008 | 400 | صف معامل مشوّه أو بلا اسم |
VAL_2009 | 400 | قيمة patient.gender غير مدعومة |
RES_4004 | 422 | لا شيء قابل للحساب من هذه المعاملات |
RES_4005 | 503 | محرك العمر البيولوجي للدم معطّل على هذا النشر |
واجهة صحة DNA: تفسير فحص DNA، وتقرير DNA + الدم، ومستشار المكملات
نفخر بأن نقدّم واجهة Kantesti لصحة DNA: ثلاث وحدات ذكاء اصطناعي جديدة تحوّل فحص الحمض النووي (DNA) لدى المريض إلى تقارير سريرية. تقرأ وحدة تفسير فحص DNA ملف النمط الجيني الخام أو التقرير الجيني، وتكتب تقريراً صحياً جينياً شاملاً. ويجمع التقرير الصحي DNA + الدم هذا التقرير مع تحليل دم مفسَّر، ويبيّن أين تؤكد الجينات والقيم المخبرية بعضها بعضاً وأين تتعارض. أما مستشار المكملات فيحوّل نتائج DNA وتحليل الدم واستبياناً قصيراً إلى خطة مكملات مخصّصة مبنية على منتجات عيادتك أنت.
مُدقَّق مقابل ملفك
يُحلَّل ملف النمط الجيني الخام على الخادم ويُقارَن بلوحة منتقاة من 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/analyze | POST | ملف DNA أو أسطر rsID ملصوقة أو صفحات تقرير ← تقرير صحي جيني شامل | مطلوب (1 رصيد) |
/api/v1/dna-interpretation/validate | POST | تحليل الملف المرفوع وعرض ما عُثر عليه، دون استدعاء الذكاء الاصطناعي | مطلوب (مجاني) |
/api/v1/dna-interpretation/sandbox | POST | تقرير جيني نموذجي | مطلوب (مجاني) |
/api/v1/dna-interpretation/info | GET | المدخلات المقبولة والحدود ولغات التقارير | غير مطلوب |
/api/v1/dna-blood-report/analyze | POST | تقرير DNA + تحليل دم مفسَّر ← تقرير صحي مجمَّع | مطلوب (1 رصيد) |
/api/v1/dna-blood-report/validate | POST | التحقق من الحمولة دون استدعاء الذكاء الاصطناعي | مطلوب (مجاني) |
/api/v1/dna-blood-report/sandbox | POST | تقرير مجمَّع نموذجي | مطلوب (مجاني) |
/api/v1/dna-blood-report/info | GET | حقول الطلب والحدود | غير مطلوب |
/api/v1/dna-supplements/analyze | POST | تقرير DNA + تحليل دم (اختياري) + استبيان ← خطة مكملات | مطلوب (1 رصيد) |
/api/v1/dna-supplements/validate | POST | التحقق من الحمولة والإجابات دون استدعاء الذكاء الاصطناعي | مطلوب (مجاني) |
/api/v1/dna-supplements/sandbox | POST | خطة مكملات نموذجية | مطلوب (مجاني) |
/api/v1/dna-supplements/questionnaire | GET | الأسئلة الـ25 وإجاباتها المسموح بها | غير مطلوب |
/api/v1/dna-supplements/settings | GET PUT | قراءة كتالوج منتجات عيادتك وإعدادات المستشار أو تحديثها | مطلوب (مجاني) |
/api/v1/dna-supplements/info | GET | حقول الطلب والحدود | غير مطلوب |
يفسّر فحص DNA واحداً ويُعيد تقريراً صحياً جينياً شاملاً. أرسل ملفاً بصيغة multipart/form-data، أو أسطر أنماط جينية ملصوقة بصيغة JSON. يُحلَّل الملف المرفوع أثناء انتظارك، لذا يُرَدّ على الملف غير المقروء فوراً بالرمز 400 دون أي تكلفة. ولا يُحتسب الرصيد الواحد إلا بعد إنتاج التقرير.
معاملات الطلب
| المعامل | النوع | مطلوب | الوصف |
|---|---|---|---|
username | string | نعم | اسم مستخدم API (أو استخدم مصادقة HTTP Basic) |
password | string | نعم | كلمة مرور API |
file | file | نعم* | ملف نمط جيني خام واحد (.txt، .csv، .tsv، .vcf، .zip، .gz، حتى 80 ميجابايت) أو ما يصل إلى 6 ملفات تقارير (PDF حتى 20 ميجابايت، وJPG/PNG حتى 10 ميجابايت لكل ملف). *أرسل إما file أو genotype_text. |
genotype_text | string | نعم* | أسطر أنماط جينية ملصوقة (rsID، الكروموسوم، الموضع، النمط الجيني)، حتى 2,000,000 حرف |
language | string | لا | رمز لغة التقرير، مثل en أو de أو ar (افتراضي: en). انظر اللغات المدعومة. |
patient | object | لا | age، sex، diagnoses، comorbidities، medications، treatments، notes. في طلب multipart، أرسله كسلسلة JSON. |
source_label | string | لا | اسمك الخاص للمصدر، حتى 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"
}
مرجع حقول الاستجابة
| الحقل | النوع | الوصف |
|---|---|---|
source | object | ما تمت قراءته: kind (raw أو text أو document)، والصيغة المكتشفة وإصدار الجينوم المرجعي، وعدد السجلات والقراءات، وعدد ما عُثر عليه من واسمات اللوحة الـ334، وتحذيرات المحلِّل |
report.overall_assessment.level | string | typical أو slightly_elevated أو elevated أو high |
report.sections[] | array | عنصر لكل مجال صحي مع risk_level وfindings الخاصة به |
report.sections[].findings[] | array | gene، rsid، genotype، phenotype، risk_level (protective، typical، informational، slightly_elevated، elevated، high)، evidence (established، probable، preliminary)، explanation، recommendation |
report.pharmacogenomics[] | array | النمط الظاهري المتوقع للاستقلاب لكل جين وفئات الأدوية التي قد يؤثر فيها. لا يقدّم التقرير أبداً جرعات وصفية. |
report.carrier_status[] | array | carrier أو not_detected أو affected_pattern أو inconclusive، ويجب تأكيدها دائماً باختبار جيني سريري |
report.disease_risks[]، nutrigenomics[]، traits[] | array | مخاطر الحالات المرضية ونتائج العناصر الغذائية والسمات، مع الجينات المسؤولة عنها |
report.recommended_tests[]، red_flags[] | array | فحوص المتابعة مع سبب كل منها، والنتائج التي تستدعي اهتماماً عاجلاً |
يحلّل الملف المرفوع تماماً كما تفعل /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": []}
}
}
يجمع تقرير DNA مع تحليل دم مفسَّر في تقرير صحي واحد. تُصنَّف كل صلة بين نتيجة جينية وقيمة مخبرية، وتليها مصفوفة مخاطر وإجراءات ذات أولوية وخطة متابعة. يستهلك رصيدًا واحدًا لكل طلب ناجح.
معاملات الطلب
| المعامل | النوع | مطلوب | الوصف |
|---|---|---|---|
dna_report | object | نعم | التقرير الصادر عن /api/v1/dna-interpretation/analyze: data.report، أو data كاملاً، أو الاستجابة الكاملة |
blood_test | object|array | نعم | تحليل دم مفسَّر كما تُعيده API تحليل الدم (metadata، parameters، interpretation)، أو مجرد قائمة بما يصل إلى 500 معامل لكل منها اسم وresult |
language | string | لا | رمز لغة التقرير (افتراضي: en) |
patient | object | لا | الحقول نفسها كما في تفسير فحص 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.level | string | good أو watch أو attention أو urgent |
report.correlations[].concordance | string | confirms أو contradicts أو neutral أو watch |
report.risk_matrix[] | array | لكل مجال: genetic_risk وlab_status (normal، borderline، abnormal، not_measured) وتقييم مجمَّع |
report.priority_actions[] | array | priority (high، medium، low)، والإجراء وسببه |
report.monitoring_plan[] | array | أي واسم يُعاد فحصه، ومتى، ولماذا |
يبني خطة مكملات مخصّصة من تقرير DNA وإجابات الاستبيان، واختيارياً من تحليل دم مفسَّر. يُطبَّق كتالوج منتجات عيادتك وإعدادات المستشار تلقائياً. يستهلك رصيدًا واحدًا لكل طلب ناجح.
معاملات الطلب
| المعامل | النوع | مطلوب | الوصف |
|---|---|---|---|
dna_report | object | نعم | التقرير الصادر عن /api/v1/dna-interpretation/analyze |
answers | object | نعم | إجابات الاستبيان. الحقلان diet_type وpregnancy إلزاميان؛ راجع GET /api/v1/dna-supplements/questionnaire للاطلاع على الأسئلة الـ25 كاملة. تُحذف المفاتيح والقيم غير المعروفة. |
blood_test | object|array | لا | بالصيغة نفسها كما في تقرير DNA + الدم |
use_clinic_catalogue | boolean | لا | تطبيق كتالوج منتجات عيادتك وإعداداتها (افتراضي: true) |
language | string | لا | رمز لغة التقرير (افتراضي: en) |
patient | object | لا | الحقول نفسها كما في تفسير فحص 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."
}
}
}
مرجع حقول الاستجابة
| الحقل | النوع | الوصف |
|---|---|---|
catalogue | object | وضع الكتالوج المطبَّق (prefer، only، off) وعدد منتجات العيادة المتاحة |
report.recommendations[] | array | name، form، dose، timing، duration، priority، وrationale الجيني / المخبري / المستند إلى الاستبيان، وevidence، وcautions، وinteractions، وretest |
report.recommendations[].source | string | clinic_library لمنتج من كتالوجك (يُذكر اسمه في product)، وإلا فـevidence_based |
report.uncovered_needs[] | array | في وضع "منتجات العيادة فقط": الاحتياجات التي لا يغطيها كتالوجك |
report.clinician_review_required[] | array | كل ما يحتاج إلى قرار طبيب واصف: التداخلات، والحمل، وأمراض الكلى أو الكبد، ومضادات التخثر، والجرعات القريبة من الحد الأعلى للمدخول |
report.avoid_or_caution[]، dietary_sources[]، retest_plan[] | array | ما يجب تجنّبه، والمصادر الغذائية لكل عنصر غذائي، وموعد إعادة الفحص |
يقرأ كتالوج منتجات عيادتك وإعدادات المستشار أو يحدّثها. إنه الكتالوج نفسه الموجود في لوحة العيادة وفي التغذية بالذكاء الاصطناعي (Nutrition Diet AI)، فالمنتج المضاف في مكان واحد يصبح متاحاً في كل مكان. المصادقة مطلوبة؛ ولا يُستهلك أي رصيد. أرسل catalogue أو settings أو كليهما؛ ويستبدل الكتالوج المُرسَل القائمة بأكملها.
| الحقل | النوع | الوصف |
|---|---|---|
catalogue[] | array | ما يصل إلى 200 منتج: name، brand، form، dosage، category (vitamin، mineral، probiotic، omega، herbal، other)، description |
settings.mode | string | prefer (منتجات العيادة حيث تناسب، واقتراحات قائمة على الأدلة فيما عدا ذلك)، أو only (منتجات العيادة فقط)، أو off (تجاهل الكتالوج) |
settings.instructions | string | تعليماتك الخاصة للذكاء الاصطناعي، حتى 1,500 حرف. تبقى الأولوية دائماً لقواعد السلامة. |
settings.max_items | integer | الحد الأقصى للتوصيات في كل خطة، من 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_1001 | 401 | بيانات المصادقة مفقودة |
AUTH_1002 | 401 | اسم مستخدم أو كلمة مرور غير صالحة |
QUOTA_1101 | 403 | حصة API غير كافية |
VAL_2001 | 400 | حقل إلزامي مفقود: file أو genotype_text، أو dna_report، أو blood_test، أو إجابة إلزامية |
VAL_2002 | 400 | بيانات نمط جيني غير مقروءة، أو نوع ملف غير مدعوم، أو JSON غير صالح، أو dna_report غير صالح |
VAL_2003 | 400 | لغة تقرير غير مدعومة |
VAL_2006 | 400 | حجم زائد: النص الملصق، أو معاملات الدم (500)، أو الكتالوج (200 منتج) |
VAL_2007 | 400 | كائن patient غير صالح |
VAL_2008 | 400 | لا يوجد معامل تحليل دم صالح للاستخدام (اسم ونتيجة) |
PROC_3003 | 500 | تعذّر إنتاج إجابة الذكاء الاصطناعي أو التحقق منها؛ أعد المحاولة. لا يُحتسب أي رصيد. |
RES_4005 | 503 | وحدات DNA معطّلة على هذا النشر |
تُنتج واجهة صحة DNA معلومات مولَّدة بالذكاء الاصطناعي موجَّهة إلى الطبيب المعالج. وهي ليست تشخيصاً ولا وصفة طبية. مصفوفات التنميط الجيني الاستهلاكية ليست تسلسلاً سريرياً: أكِّد النتائج القابلة للتنفيذ ونتائج حالة الحمل الجيني باختبار جيني سريري معتمد قبل التصرف بناءً عليها.
ICR - واجهة التعرف الذكي على الأحرف
واجهة Kantesti ICR (التعرف الذكي على الأحرف) هي تقنية متقدمة لاستخراج النصوص من المستندات تتجاوز بكثير تقنية OCR التقليدية. مدعومة بمحرك الذكاء الاصطناعي الخاص بـ Kantesti، توفر ICR مخرجات JSON منظمة من أي نوع مستند.
Kantesti ICR مقابل OCR التقليدي
في اختبارات الأداء، أظهر Kantesti ICR أداءً أعلى بنسبة 79% مقارنة بحلول OCR التقليدية. يفهم ICR بنية المستند، ويحافظ على تخطيطات الجداول، ويستخرج البيانات الوصفية، ويعيد JSON منظم نظيف.
- مخرجات JSON منظمة — جداول وأقسام وبيانات وصفية ونص خام بتنسيق JSON نظيف
- كشف نوع المستند — يتعرف تلقائياً على التقارير الطبية والفواتير والنماذج والرسائل وغيرها
- استخراج الجداول — يحافظ على رؤوس الجداول وبيانات الصفوف بالهيكل الكامل
- دعم تنسيقات متعددة — معالجة مستندات PDF و JPG و JPEG و PNG
- تكامل تحاليل الدم (Kan) — نقطة نهاية متخصصة لاستخراج مستندات تحاليل الدم
- وضع الاختبار (Sandbox) — اختبر التكامل بدون استهلاك الرصيد
- نظام الرصيد — 0.5 رصيد لكل استدعاء API
ملخص نقاط نهاية ICR
| نقطة النهاية | الطريقة | الوصف | التكلفة |
|---|---|---|---|
/api/icr/v1/extract | POST | استخراج نص ICR | 0.5 رصيد |
/api/icr/v1/sandbox | POST | اختبار ICR | مجاني |
/api/icr/v1/kan | POST | تحليل مستندات تحاليل الدم | 0.5 رصيد |
/api/icr/v1/kan/sandbox | POST | اختبار تحاليل الدم | مجاني |
/api/icr/info | GET | توثيق ومميزات API | مجاني |
/api/icr/health | GET | فحص حالة النظام | مجاني |
/api/icr/v1/quota | POST | التحقق من الرصيد المتبقي | مجاني |
يستخرج جميع المحتوى النصي من المستندات المرفوعة باستخدام تقنية ICR من Kantesti.
معلمات الطلب
| المعلمة | النوع | مطلوب | الوصف |
|---|---|---|---|
username | string | نعم | اسم المستخدم الخاص بك |
password | string | نعم | كلمة المرور الخاصة بك |
file | file | نعم | ملف المستند (PDF, JPG, JPEG, PNG) |
language | string | لا | لغة الإخراج (الافتراضي: 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 التقليدي | التحسن |
|---|---|---|---|
| سرعة المعالجة | 1.2 ثانية متوسط | 5.7 ثانية متوسط | أسرع بـ 79% |
| دقة النص | 99.7% | 92.1% | +7.6% |
| كشف الجداول | 98.9% | 71.2% | +27.7% |
| المخرجات المنظمة | JSON مع أقسام وجداول وبيانات | نص خام غير منظم | بنية كاملة |
| دعم متعدد اللغات | 100+ لغة | 30-50 لغة | 2x+ تغطية |