AnpherosAnpheros PlatformDevelopers

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

بيانات الأدوية للتطبيقات ووكلاء الذكاء الاصطناعي

قوائم أدوية المرضى مقابل معرفة الأدوية: موارد FHIR، RxNorm، ATC، مصادر openFDA و EMA، ودمج مُختبر لسجل FHIR مع تسميات RxNorm و FDA.

تحتاج برامج الرعاية الصحية إلى نوعين مختلفين من بيانات الأدوية: قائمة أدوية المريض - ما يتناوله هذا الشخص، منذ متى، بالجرعة المحددة، ومن قام بتسجيلها - ومعرفة الأدوية - ما يحتويه المنتج، وملصقه الرسمي، والتحذيرات والتفاعلات. الأول ينتمي إلى سجل المريض؛ والثاني يأتي من قواعد بيانات الأدوية الموثوقة. خلطهما هو ما يؤدي إلى قيام وكلاء الذكاء الاصطناعي بذكر حقائق الأدوية من ذاكرة النموذج. تشرح هذه الصفحة كلاهما، موارد FHIR R4 وأنظمة الترميز المعنية، والمصادر العامة الموجودة في الولايات المتحدة والاتحاد الأوروبي، ومثال عملي يربط قائمة المريض من سجل FHIR مع RxNorm وملصق FDA.

نوعان من بيانات الأدوية

قائمة أدوية المريض معرفة الأدوية
الإجابات ماذا تتناول آنا، منذ متى، وبأي تكرار؟ ما هو الميتفورمين 500 ملغ، وما هي التحذيرات الموجودة على ملصقه؟
التغييرات عندما يقوم المريض أو أخصائي الرعاية الصحية بتحديثها عندما يقوم منظم أو ناشر بتحديثها
مكان التخزين سجل المريض (EHR، PHR، خادم FHIR) قواعد بيانات الأدوية والمصطلحات
FHIR MedicationStatement، MedicationRequest، MedicationAdministration، Medication في الغالب خارج السجل؛ يمكن أن تكون معلومات المنتج نفسها FHIR
من يُسمح له بقراءتها فقط بموافقة المريض عام أو مرخص

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

موارد FHIR لقائمة الأدوية

يتم ترميز الدواء: في الولايات المتحدة باستخدام RxNorm (من المكتبة الوطنية للطب) ورموز منتجات NDC؛ دوليًا باستخدام تصنيف منظمة الصحة العالمية ATC؛ في أوروبا أيضًا باستخدام رموز المنتجات الوطنية، وبشكل متزايد، معلومات المنتج الإلكترونية المستندة إلى FHIR من وكالة الأدوية الأوروبية (EMA). يمكن أن يحمل البيان عدة ترميزات لنفس الدواء.

مصادر معرفة الأدوية

الولايات المتحدة

الاتحاد الأوروبي

التفاعلات هي الجزء الأصعب. قامت NLM بإيقاف واجهة برمجة تطبيقات تفاعلات الأدوية الخاصة بها حوالي يناير 2024، ويعتمد التحقق الشامل من التفاعلات اليوم على قواعد المعرفة السريرية المرخصة. قسم التفاعلات في الملصق هو نص مكتوب للأطباء، وليس أداة تحقق.

ربط السجل بمعرفة الأدوية

يقرأ المثال الأدوية النشطة للمريض من Anpheros، ويحل كل اسم إلى مفهوم RxNorm، ويجلب ملصق FDA. تم تشغيله مقابل نسخة محلية من المنصة وواجهات برمجة التطبيقات RxNorm و openFDA الحية.

import { Anpheros, apiKey } from '@anpheros/sdk';

const anpheros = new Anpheros({ auth: apiKey(process.env.ANPHEROS_KEY!) });

// 1. What the person takes: from their record (ATC codes, names as they were entered)
const { data: meds } = await anpheros.medications.list(patientId, { status: 'active' });

// 2. What each medicine is: RxNorm (US National Library of Medicine), free, no key
async function rxcui(name: string): Promise<string | null> {
  const r = await fetch(`https://rxnav.nlm.nih.gov/REST/approximateTerm.json?term=${encodeURIComponent(name)}&maxEntries=1`);
  const j: any = await r.json();
  const id = j.approximateGroup?.candidate?.[0]?.rxcui;
  if (!id) return null;
  // An approximate match can be an outdated concept: keep it only if RxNorm still describes it as a drug
  const props: any = await (await fetch(`https://rxnav.nlm.nih.gov/REST/rxcui/${id}/properties.json`)).json();
  return ['SCD', 'SBD', 'GPCK', 'BPCK'].includes(props.properties?.tty) ? id : null;
}

// 3. What the official label says: openFDA drug label API (US FDA), free
async function label(id: string) {
  const r = await fetch(`https://api.fda.gov/drug/label.json?search=openfda.rxcui:%22${id}%22&limit=1`);
  if (!r.ok) return null;
  const doc: any = (await r.json()).results?.[0];
  return doc && { set_id: doc.set_id, boxed_warning: doc.boxed_warning?.[0]?.slice(0, 120), has_interactions_section: !!doc.drug_interactions };
}

for (const m of meds) {
  const id = await rxcui(m.display);
  console.log(JSON.stringify({ record: { display: m.display, atc: m.code, dosage: m.dosage }, rxnorm: id, fda_label: id ? await label(id) : null }));
}

الناتج لمريض أبلغ عن الميتفورمين والإينالابريل:

{"record":{"display":"Metformin 500 mg tablet","atc":"A10BA02","dosage":"500 mg twice a day"},"rxnorm":"861007",
 "fda_label":{"set_id":"011de1a5-…","boxed_warning":"BOXED WARNING WARNING: LACTIC ACIDOSIS …","has_interactions_section":true}}
{"record":{"display":"Enalapril maleate 10 mg oral tablet","atc":"C09AA02","dosage":"10 mg once a day"},"rxnorm":"858817",
 "fda_label":{"set_id":"074fe718-…","boxed_warning":"WARNING: FETAL TOXICITY …","has_interactions_section":true}}

ما تعلمناه أثناء تشغيله. بالاسم المكتوب كـ "Enalapril 10 mg tablet"، أعادت مطابقة RxNorm التقريبية RXCUI 328290، وهو مفهوم لم يعد RxNorm يصفه، بدون ملصق خلفه. بالاسم السريري الكامل، "enalapril maleate 10 mg oral tablet"، أعادت 858817، وهو دواء سريري حالي مع ملصق. الأسماء التي يكتبها الأشخاص تقريبية؛ تحقق مما يؤول إليه التطابق، وقم بتخزين الرمز بمجرد تأكيده، وأظهر للشخص ما تم مطابقته.

قواعد لوكلاء الذكاء الاصطناعي

  1. لا تسمح للنموذج أبدًا بتزويد حقائق الأدوية من الذاكرة. امنحه قائمة المريض من السجل والنص ذي الصلة من مصدر موثوق، واطلب منه الاستشهاد بها.
  2. حافظ على المصدرين مرئيين. "تتناول الميتفورمين (سجلك، أدخلته في 3 مارس)" و "تحذر ملصقات إدارة الغذاء والدواء من الحماض اللبني (الملصق تم تعيينه 011de1a5…)" هي ادعاءات مختلفة بملكية مختلفة.
  3. ضيّق النطاقات. الوكيل الذي يحتاج فقط إلى قائمة الأدوية يجب أن يحصل على وصول للقراءة إلى MedicationStatement، وليس السجل بأكمله. مع Anpheros، هذا هو نطاق موافقة أو أدوات MCP server للقراءة فقط.
  4. لا تجب على ما يحتاج إلى طبيب. التفاعلات، تغييرات الجرعة، وإيقاف الدواء تذهب إلى صيدلي أو طبيب؛ يمكن للوكيل إعداد السؤال.

أين يتناسب Anpheros

يخزن Anpheros قائمة الأدوية: MedicationStatement و MedicationAdministration مع رموز ATC أو رموز أخرى، ومن سجل كل بند، والتاريخ، والموافقة للتطبيقات الأخرى؛ تتضمن واجهة برمجة تطبيقات السياق الأدوية النشطة في الملخص الذي تعده لنموذج، وخادم MCP يعرضها للوكلاء للقراءة فقط. يقوم بتجميع مجموعة فرعية صغيرة من ATC (حوالي 50 دواء شائع) لتسمية الرموز تلقائيًا؛ يتم قبول أي رمز آخر، بدون اسم تلقائي.

إنه ليس قاعدة بيانات للأدوية: فهو لا يوفر الملصقات، أو التفاعلات، أو الجرعات، أو موانع الاستعمال، ولا يدعم موارد MedicationRequest أو Medication حاليًا.

أسئلة متكررة

أي مورد FHIR يجب استخدامه لقائمة الأدوية؟

MedicationStatement لما يأخذه الشخص أو أخذه، بما في ذلك الأدوية التي أبلغ عنها المريض. الوصفات الطبية هي MedicationRequest؛ الجرعات الفردية هي MedicationAdministration.

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

في الولايات المتحدة، RxNorm (NLM) لمعرفات وأسماء الأدوية، و openFDA لملصقات المنتجات الرسمية، مجانية. في أوروبا، تنشر EMA والوكالات الوطنية معلومات المنتج. يتطلب التحقق الشامل من التفاعلات بشكل عام قاعدة معرفية مرخصة.

كيف يجب على وكيل الذكاء الاصطناعي الحصول على معلومات الأدوية؟

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

هل يتحقق Anpheros من تفاعلات الأدوية؟

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

ذات الصلة

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