# ऐप्स और AI एजेंटों के लिए दवा डेटा

> रोगी की दवा सूची बनाम दवा ज्ञान: FHIR संसाधन, RxNorm, ATC, openFDA और EMA स्रोत, और FHIR रिकॉर्ड का RxNorm और FDA लेबल के साथ एक परीक्षित जॉइन।

Source: https://developers.anpheros.com/hi/guides/medication-data-ai-agents

**स्वास्थ्य सेवा सॉफ्टवेयर को दो अलग-अलग प्रकार के दवा डेटा की आवश्यकता होती है: रोगी की दवा सूची - यह व्यक्ति क्या लेता है, कब से, किस खुराक पर, किसने इसे दर्ज किया - और दवा ज्ञान - उत्पाद में क्या शामिल है, उसका आधिकारिक लेबल, चेतावनियाँ और इंटरैक्शन।** पहला रोगी के रिकॉर्ड में आता है; दूसरा आधिकारिक दवा डेटाबेस से आता है। उन्हें मिलाने से AI एजेंट मॉडल मेमोरी से दवा तथ्यों को बताते हैं। यह पृष्ठ दोनों की व्याख्या करता है, शामिल FHIR R4 संसाधन और कोड सिस्टम, अमेरिका और यूरोपीय संघ में कौन से सार्वजनिक स्रोत मौजूद हैं, और एक कार्यशील उदाहरण जो FHIR रिकॉर्ड से रोगी की सूची को RxNorm और FDA लेबल के साथ जोड़ता है।

## दो तरह का दवा डेटा

| | मरीज़ की दवा सूची | दवा ज्ञान |
|---|---|---|
| उत्तर | एना क्या लेती है, कब से, कितनी बार? | मेटफॉर्मिन 500 मिलीग्राम क्या है, इसके लेबल पर क्या चेतावनी दी गई है? |
| परिवर्तन | जब मरीज़ या कोई चिकित्सक इसे अपडेट करता है | जब कोई नियामक या प्रकाशक इसे अपडेट करता है |
| कहाँ रहता है | मरीज़ का रिकॉर्ड (EHR, PHR, FHIR सर्वर) | दवा डेटाबेस और शब्दावली |
| FHIR | `MedicationStatement`, `MedicationRequest`, `MedicationAdministration`, `Medication` | ज़्यादातर रिकॉर्ड के बाहर; उत्पाद की जानकारी स्वयं FHIR हो सकती है |
| कौन पढ़ सकता है | केवल मरीज़ की सहमति से | सार्वजनिक या लाइसेंस प्राप्त |

एक ऐप या एजेंट जो "क्या मैं इबुप्रोफेन को अपनी ब्लड प्रेशर की दवा के साथ ले सकता हूँ?" का जवाब देता है, उसे दोनों की आवश्यकता होती है: मरीज़ की सूची यह जानने के लिए कि कौन सी दवा लेनी है, और दवा ज्ञान का स्रोत यह जानने के लिए कि संयोजन के बारे में क्या ज्ञात है — साथ ही जवाब के लिए एक चिकित्सक या फार्मासिस्ट।

## दवा सूची के लिए FHIR संसाधन

- **MedicationStatement:** व्यक्ति दवा ले रहा है, ले चुका है या बंद कर चुका है (रोगी द्वारा रिपोर्ट की गई या किसी चिकित्सक द्वारा दर्ज की गई)। PHR या मिलान सूची के लिए सामान्य संसाधन।
- **MedicationRequest:** एक प्रिस्क्रिप्शन या ऑर्डर।
- **MedicationAdministration:** दी गई या ली गई (या छोड़ी गई) एक खुराक, अनुपालन के लिए उपयोगी।
- **Medication:** उत्पाद स्वयं, जब कोड से अधिक विवरण की आवश्यकता हो (सामग्री, रूप, बैच)।

दवा को कोडित किया गया है: अमेरिका में **RxNorm** (नेशनल लाइब्रेरी ऑफ मेडिसिन से) और NDC उत्पाद कोड के साथ; अंतरराष्ट्रीय स्तर पर WHO **ATC** वर्गीकरण के साथ; यूरोप में राष्ट्रीय उत्पाद कोड और, तेजी से, EMA की FHIR-आधारित इलेक्ट्रॉनिक उत्पाद जानकारी के साथ भी। एक स्टेटमेंट एक ही दवा के लिए कई कोडिंग ले जा सकता है।

## दवा ज्ञान स्रोत

**संयुक्त राज्य अमेरिका**

- [RxNorm API](https://lhncbc.nlm.nih.gov/RxNav/APIs/RxNormAPIs.html) (NLM): नैदानिक दवाओं के लिए सामान्यीकृत नाम और पहचानकर्ता (RXCUI); मुफ़्त, और एक अपवाद को छोड़कर किसी लाइसेंस की आवश्यकता नहीं है।
- [openFDA दवा लेबल API](https://open.fda.gov/apis/drug/label/) (FDA): संरचित उत्पाद लेबल — संकेत, बॉक्स की गई चेतावनियाँ, निषेध, दवा इंटरैक्शन अनुभाग — RXCUI द्वारा खोजे जा सकते हैं।
- DailyMed (NLM): पढ़ने के लिए लोगों के लिए वही लेबल।

**यूरोपीय संघ**

- यूरोपीय मेडिसिन एजेंसी केंद्रीय रूप से अधिकृत दवाओं के लिए उत्पाद जानकारी प्रकाशित करती है, और इसकी इलेक्ट्रॉनिक उत्पाद जानकारी (ePI) FHIR पर आधारित है। राष्ट्रीय रूप से अधिकृत उत्पाद राष्ट्रीय रजिस्टरों में हैं।
- ATC कोड और परिभाषित दैनिक खुराक WHO सहयोग केंद्र फॉर ड्रग स्टैटिस्टिक्स मेथोडोलॉजी द्वारा बनाए रखे जाते हैं।

**इंटरैक्शन** सबसे कठिन हिस्सा हैं। NLM ने जनवरी 2024 के आसपास अपने दवा-दवा इंटरैक्शन API को सेवानिवृत्त कर दिया, और आज व्यापक इंटरैक्शन चेकिंग लाइसेंस प्राप्त नैदानिक ज्ञान आधारों पर निर्भर करती है। एक लेबल का इंटरैक्शन अनुभाग चिकित्सकों के लिए लिखा गया पाठ है, न कि एक चेकर।

## दवा ज्ञान के साथ रिकॉर्ड को जोड़ना

यह उदाहरण Anpheros से रोगी की सक्रिय दवाओं को पढ़ता है, प्रत्येक नाम को RxNorm अवधारणा में हल करता है और FDA लेबल प्राप्त करता है। इसे प्लेटफ़ॉर्म के स्थानीय इंस्टेंस और लाइव RxNorm और openFDA API के विरुद्ध चलाया गया था।

```ts
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 लौटाया, जो एक वर्तमान नैदानिक दवा है जिसके साथ एक लेबल है। लोगों द्वारा टाइप किए गए नाम अनुमानित होते हैं; जांचें कि मिलान किस पर हल होता है, एक बार कोड की पुष्टि हो जाने पर उसे स्टोर करें, और व्यक्ति को दिखाएं कि क्या मिलान किया गया था।

## AI एजेंटों के लिए नियम

1. **मॉडल को कभी भी अपनी याददाश्त से दवा की जानकारी न देने दें।** इसे रिकॉर्ड से रोगी की सूची और एक आधिकारिक स्रोत से प्रासंगिक पाठ दें, और इसे उद्धृत करने के लिए कहें।
2. **दोनों स्रोतों को दृश्यमान रखें।** "आप मेटफॉर्मिन लेते हैं (आपका रिकॉर्ड, आपके द्वारा 3 मार्च को दर्ज किया गया)" और "FDA लेबल लैक्टिक एसिडोसिस के बारे में चेतावनी देता है (लेबल सेट 011de1a5…)" अलग-अलग दावे हैं जिनके अलग-अलग मालिक हैं।
3. **दायरे को सीमित करें।** एक एजेंट जिसे केवल दवा सूची की आवश्यकता है, उसे पूरे रिकॉर्ड के बजाय `MedicationStatement` तक पढ़ने की पहुँच मिलनी चाहिए। Anpheros के साथ यह एक सहमति दायरा है या MCP सर्वर के केवल-पढ़ने वाले उपकरण हैं।
4. **उन सवालों का जवाब न दें जिनके लिए एक चिकित्सक की आवश्यकता होती है।** इंटरैक्शन, खुराक परिवर्तन और दवा बंद करना एक फार्मासिस्ट या डॉक्टर को जाता है; एजेंट प्रश्न तैयार कर सकता है।

## Anpheros कहाँ फिट बैठता है

Anpheros दवा सूची को संग्रहीत करता है: `MedicationStatement` और `MedicationAdministration` ATC या अन्य कोड के साथ, किसने प्रत्येक आइटम रिकॉर्ड किया, इतिहास, और अन्य ऐप्स के लिए सहमति; [संदर्भ API](https://developers.anpheros.com/hi/guides/ai-healthcare) मॉडल के लिए तैयार सारांश में सक्रिय दवाओं को शामिल करता है, और [MCP सर्वर](https://developers.anpheros.com/hi/guides/mcp) उन्हें एजेंटों को केवल-पढ़ने के लिए उजागर करता है। यह स्वचालित रूप से कोड का नामकरण करने के लिए एक छोटा ATC सबसेट (लगभग 50 सामान्य दवाएं) बंडल करता है; कोई अन्य कोड स्वीकार किया जाता है, बिना स्वचालित नाम के।

यह दवा डेटाबेस नहीं है: यह लेबल, इंटरैक्शन, खुराक या मतभेद प्रदान नहीं करता है, और यह आज `MedicationRequest` या `Medication` संसाधनों का समर्थन नहीं करता है।

## अक्सर पूछे जाने वाले प्रश्न

### दवा सूची के लिए कौन सा FHIR संसाधन इस्तेमाल किया जाना चाहिए?
`MedicationStatement` किसी व्यक्ति द्वारा ली जाने वाली या ली गई दवाओं के लिए, जिसमें रोगी द्वारा बताई गई दवाएं भी शामिल हैं। प्रिस्क्रिप्शन `MedicationRequest` हैं; व्यक्तिगत खुराकें `MedicationAdministration` हैं।

### क्या कोई मुफ्त दवा डेटाबेस API उपलब्ध है?
अमेरिका में, दवा पहचानकर्ताओं और नामों के लिए RxNorm (NLM), और आधिकारिक उत्पाद लेबल के लिए openFDA, मुफ्त हैं। यूरोप में, EMA और राष्ट्रीय एजेंसियां उत्पाद जानकारी प्रकाशित करती हैं। व्यापक इंटरैक्शन जाँच के लिए आम तौर पर एक लाइसेंस प्राप्त ज्ञान आधार की आवश्यकता होती है।

### AI एजेंट को दवा की जानकारी कैसे मिलनी चाहिए?
दो टूल से: एक जो सहमति से रोगी के रिकॉर्ड से रोगी की दवा सूची पढ़ता है, और एक जो एक आधिकारिक दवा स्रोत की जाँच करता है। एजेंट को दोनों का हवाला देना चाहिए और नैदानिक निर्णय एक पेशेवर पर छोड़ देना चाहिए।

### क्या Anpheros दवा इंटरैक्शन की जाँच करता है?
नहीं। यह संग्रहीत करता है कि कोई व्यक्ति क्या लेता है, उत्पत्ति और सहमति के साथ। इंटरैक्शन जाँच एक दवा ज्ञान स्रोत और एक चिकित्सक से संबंधित है।

## संबंधित

- [AI एजेंट और मेडिकल डेटा](https://developers.anpheros.com/hi/guides/ai-agents-medical-data)
- [AI एजेंट को मेडिकल रिकॉर्ड तक पहुँच कैसे दें](https://developers.anpheros.com/hi/guides/ai-agent-access-medical-records)
- [AI एजेंट के लिए FHIR MCP सर्वर](https://developers.anpheros.com/hi/guides/mcp)
- [FHIR कोड सिस्टम](https://developers.anpheros.com/hi/guides/fhir-code-systems)
- [FHIR R4 MedicationStatement उदाहरण](https://developers.anpheros.com/tools/fhir-examples/medication-statement)
