AnpherosAnpheros PlatformDevelopers

Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card

واجهة برمجة تطبيقات نتائج المختبر: HL7 v2، FHIR، و LOINC

كيف تنتقل نتائج المختبر كبيانات HL7 v2 و FHIR R4، وما يجب أن تحمله نتيجة واحدة، وكيفية استقبال تقارير المختبر في سجل FHIR، مع مثال حقيقي.

توفر واجهة برمجة تطبيقات نتائج المختبر نتائج المختبر كبيانات منظمة — رمز الاختبار، القيمة، الوحدة، النطاق المرجعي، الحالة والوقت — بدلاً من ملف PDF، بحيث يمكن للبرامج تخزينها ومقارنتها ورسمها بيانيًا ومشاركتها. اليوم، تنتقل هذه البيانات في ثلاثة أشكال: رسائل HL7 v2 ORU^R01 (لا تزال العمود الفقري بين المختبرات والمستشفيات)، موارد HL7 FHIR R4 Observation و DiagnosticReport (تنسيق واجهات برمجة التطبيقات الحديثة)، وتصديرات CSV أو JSON أو PDF خاصة بالمختبر. تشرح هذه الصفحة كيف تتناسب الأجزاء معًا، وما الذي يجب أن تحمله واجهة برمجة تطبيقات نتائج المختبر الجيدة، وكيفية استلام بيانات المختبر في سجل FHIR الخاص بالمريض مع Anpheros.

من يتبادل نتائج المختبر، وبأي تنسيق

من ← إلى التنسيق المعتاد اليوم ملاحظات
المختبر ← نظام المستشفى أو العيادة HL7 v2 ORU^R01 (في الولايات المتحدة غالبًا وفقًا لدليل واجهة نتائج المختبر HL7 v2.5.1) الأوامر تسير في الاتجاه الآخر كرسائل ORM/OML
المختبر ← وكالة الصحة العامة تقارير المختبر الإلكترونية HL7 v2، وبشكل متزايد FHIR الحالات القابلة للإبلاغ فقط
نظام العيادة ← تطبيق المريض FHIR R4 عبر واجهة برمجة تطبيقات وصول المريض (patient-access API) في الولايات المتحدة، تكشف أنظمة السجلات الصحية الإلكترونية المعتمدة (EHRs) عن نتائج المختبر كـ FHIR (US Core)؛ في الاتحاد الأوروبي، تدرج مساحة بيانات الصحة الأوروبية (European Health Data Space) نتائج المختبر ضمن فئات البيانات ذات الأولوية لديها
المختبر ← المريض تقرير PDF، بوابة إلكترونية، أحيانًا CSV التنسيق الذي يتلقاه معظم المرضى فعليًا
التطبيق ← نموذج الذكاء الاصطناعي سياق منظم مبني من الملاحظات (Observations) يحتاج إلى رموز (codes) ووحدات (units) ليكون موثوقًا

الاتجاه مهم: نظام معلومات المختبر (LIS) هو مصدر الحقيقة للنتيجة، وكل نظام لاحق يحتفظ بنسخة. ما يجعل النسخ موثوقة هو أن كل منها يحتفظ بالرمز (code)، والوحدة (unit)، والنطاق (range)، ومصدر القيمة (origin of the value).

ما الذي يحتاجه نتيجة مختبر واحدة ليتم حملها

لا يمكن تفسير نتيجة تقول فقط "جلوكوز 126" بأمان. النتيجة الكاملة تحتوي على:

في FHIR R4، كل نتيجة هي Observation مع category = laboratory، والتقرير الذي يجمعها هو DiagnosticReport الذي يسرد الملاحظات في result. الأمثلة الصالحة لكليهما، مع الأخطاء التي يبلغ عنها المدققون في أغلب الأحيان، موجودة في أمثلة FHIR R4 JSON — انظر أيضًا مثال DiagnosticReport.

HL7 v2 و FHIR جنبًا إلى جنب

نفس نتيجة لوحة الدهون، كما ترسلها معظم المختبرات اليوم وكيف يجب أن يخزنها الـ API:

OBX|1|NM|2093-3^Cholesterol^LN||212|mg/dL|<200|H|||F|||20261002074500
حقل HL7 v2 المعنى عنصر FHIR R4 Observation
OBX-3 2093-3^Cholesterol^LN الاختبار، مرمّز بـ LOINC code.coding (النظام http://loinc.org)
OBX-5 212، OBX-2 NM القيمة الرقمية valueQuantity.value
OBX-6 mg/dL الوحدة valueQuantity.unit
OBX-7 <200 النطاق المرجعي referenceRange.high
OBX-8 H علامة غير طبيعية interpretation
OBX-11 F النتيجة النهائية status = final
OBX-14 وقت الملاحظة effectiveDateTime

التحويل بين الاثنين هو في الغالب تعيين حقول. الأجزاء الصعبة موجودة في أماكن أخرى: المختبرات التي ترسل رموزها الخاصة بدلاً من LOINC، الأرقام المكتوبة كنص ("6,4"، "<5")، النطاقات بتدوينات متعددة، والتقارير التي يتم إرسالها مرة أخرى بعد انتهاء المهلة. كيفية تطبيع البيانات الطبية يغطي هذه الأمور بالتفصيل.

استقبال نتائج المختبر في سجل FHIR باستخدام Anpheros

يخزن Anpheros سجل كل مريض بصيغة HL7 FHIR R4 ولديه موصل مختبر: طلب واحد يأخذ تقريرًا كاملاً بصيغة HL7 v2 أو CSV أو JSON ويعيد ملاحظات (Observations) المختبر مع رموز LOINC ونطاقات مرجعية وتفسير ومصدر.

curl -s -X POST "https://platform.anpheros.com/v1/patients/$PID/labs/import" \
  -H "Authorization: Bearer $KEY" \
  -H "Content-Type: x-application/hl7-v2+er7" \
  -H "X-Anpheros-Source-System: springfield-lis" \
  --data-binary @lipid-panel.hl7

بالنسبة لوحة الدهون المكونة من ثلاثة أسطر (الكوليسترول، HDL، الدهون الثلاثية)، فإن الاستجابة، من تشغيل محلي للمنصة، هي:

{
  "created": 3, "skipped": 0, "unmapped": [], "warnings": [],
  "observations": [
    {"id": "26ed9219-…", "marker": "Cholesterol", "code": "2093-3", "system": "http://loinc.org",
     "value": 212.0, "unit": "mg/dL", "date": "2026-10-02T07:45:00Z"},
    {"id": "2633d1d4-…", "marker": "HDL cholesterol", "code": "2085-9", "system": "http://loinc.org",
     "value": 48.0, "unit": "mg/dL", "date": "2026-10-02T07:45:00Z"},
    {"id": "a02520bb-…", "marker": "Triglyceride", "code": "2571-8", "system": "http://loinc.org",
     "value": 165.0, "unit": "mg/dL", "date": "2026-10-02T07:45:00Z"}
  ]
}

كل نتيجة مخزنة هي ملاحظة FHIR R4 قياسية، يمكن قراءتها بواسطة أي عميل FHIR:

{
  "resourceType": "Observation",
  "status": "final",
  "category": [{"coding": [{"system": "http://terminology.hl7.org/CodeSystem/observation-category", "code": "laboratory"}]}],
  "code": {"coding": [{"system": "http://loinc.org", "code": "2093-3",
                        "display": "Cholesterol [Mass/volume] in Serum or Plasma"}], "text": "Cholesterol"},
  "subject": {"reference": "Patient/4c3062d9-…"},
  "effectiveDateTime": "2026-10-02T07:45:00Z",
  "valueQuantity": {"value": 212.0, "unit": "mg/dL"},
  "interpretation": [{"coding": [{"system": "http://terminology.hl7.org/CodeSystem/v3-ObservationInterpretation", "code": "H"}]}],
  "referenceRange": [{"high": {"value": 200.0, "unit": "mg/dL"}}]
}

إرسال نفس الرسالة مرة أخرى لا ينشئ شيئًا جديدًا ("created": 0, "skipped": 3): تحصل كل صف على معرف ثابت من معرف التقرير والرمز والتاريخ والقيمة. العلامات التي لا يمكن للمنصة ربطها بـ LOINC تحتفظ برمز المختبر وتعود في unmapped، حتى تتمكن من إصلاح الربط في المصدر.

قراءة النتائج مرة أخرى هي بحث FHIR قياسي:

curl -s "https://platform.anpheros.com/fhir/R4/Observation?patient=$PID&category=laboratory&code=http://loinc.org|2093-3" \
  -H "Authorization: Bearer $KEY"

طرق أخرى للدخول والخروج من نفس البيانات:

الشرح الكامل، مع تقرير CSV، ورسالة HL7 v2، وعلامات غير مرتبطة، وتقارير مُعاد إرسالها لمريض اصطناعي، هو البرنامج التعليمي كيفية استيراد نتائج المختبر إلى سجل FHIR.

التحقق من النتائج قبل إرسالها

يقوم مدقق FHIR R4 المجاني بالتحقق من بنية الملاحظة (Observation) ومجموعات القيم المطلوبة، ومع ملف تعريف eu-lab، فإنه يتحقق أيضًا مما يجب أن يحمله نتيجة المختبر: فئة laboratory، رمز LOINC، موضوع، حالة نهائية (final-type)، وقت، قيمة، وحدة UCUM، ونطاق مرجعي. يتم تشغيل نفس عمليات التحقق على المنصة من خلال POST /fhir/R4/Observation/$validate?profile=eu-lab.

اختيار واجهة برمجة تطبيقات لنتائج المختبر: قائمة مرجعية

ما لا يفعله Anpheros

Anpheros ليس نظام معلومات مختبرات ولا يتصل بشبكات المختبرات التجارية: يقوم المختبر أو العيادة أو تطبيق المريض بإرسال التقرير. لا يقوم بتوجيه طلبات المختبر، ولا يقرأ تقارير PDF من خلال هذه الـ API (تطبيق Anpheros Daily يستخرج النتائج من الصور وملفات PDF على جانب المريض)، ولا يفسر النتائج سريريًا. يتم تخزين الوحدات كما يرسلها المختبر؛ تحويلها إلى رموز UCUM يقع على عاتق المرسل، كما هو موضح في كيفية تطبيع البيانات الطبية.

أسئلة متكررة

ما هي واجهة برمجة تطبيقات نتائج المختبر؟

واجهة تسمح للبرامج بإرسال أو استقبال نتائج المختبر كبيانات منظمة — اختبار مرمّز، قيمة مع وحدة، نطاق مرجعي، حالة ووقت — بدلاً من مستند. تستخدم واجهات برمجة تطبيقات نتائج المختبر الحديثة موارد HL7 FHIR R4 Observation و DiagnosticReport؛ لا تزال معظم المختبرات تصدر رسائل HL7 v2 ORU^R01.

أي نظام ترميز يحدد اختبارات المختبر؟

LOINC. كل رمز LOINC يسمي المادة التحليلية، العينة، وغالبًا الطريقة، لذلك 2345-7 (جلوكوز في المصل أو البلازما) و 2339-0 (جلوكوز في الدم الكامل) هما نتيجتان مختلفتان. من الأفضل التعبير عن الوحدات بـ UCUM.

ما الفرق بين Observation و DiagnosticReport؟

Observation هي نتيجة واحدة، مثل الكوليسترول 212 ملغم/ديسيلتر. DiagnosticReport هو التقرير ككل — اللوحة التي تم طلبها، من أصدرها ومتى — ويسرد ملاحظاته (Observations) في result.

هل يمكنني استيراد رسائل HL7 v2 للمختبر إلى خادم FHIR؟

نعم. كل مقطع OBX يتوافق مع Observation واحدة (OBX-3 إلى code، OBX-5 و OBX-6 إلى valueQuantity، OBX-7 إلى referenceRange، OBX-8 إلى interpretation). موصل مختبر Anpheros يقوم بذلك في طلب واحد ويحتفظ بمعرف تقرير المختبر في Provenance.

كيف أتجنب تكرار نتائج المختبر عند إعادة إرسال التقرير؟

امنح كل نتيجة معرفًا ثابتًا مشتقًا من التقرير، الاختبار، الوقت والقيمة، وتجاوز الصفوف التي يوجد معرفها بالفعل. موصل مختبر Anpheros يقوم بذلك تلقائيًا ويبلغ عن العدد كـ skipped.

ذات الصلة

Try it free in the sandbox · first FHIR call in 5 minutesFree · 30 synthetic patients · no card

Product updates by email

New features, guides and the end of the beta. One email a month at most.

Send me occasional Anpheros Platform updates by email (new features, API changes, guides). I'll confirm by email and can unsubscribe in one click from any email. Privacy