heor-agent-mcp 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +152 -0
- package/dist/audit/builder.d.ts +8 -0
- package/dist/audit/builder.d.ts.map +1 -0
- package/dist/audit/builder.js +37 -0
- package/dist/audit/builder.js.map +1 -0
- package/dist/audit/types.d.ts +30 -0
- package/dist/audit/types.d.ts.map +1 -0
- package/dist/audit/types.js +2 -0
- package/dist/audit/types.js.map +1 -0
- package/dist/formatters/docx.d.ts +5 -0
- package/dist/formatters/docx.d.ts.map +1 -0
- package/dist/formatters/docx.js +207 -0
- package/dist/formatters/docx.js.map +1 -0
- package/dist/formatters/json.d.ts +4 -0
- package/dist/formatters/json.d.ts.map +1 -0
- package/dist/formatters/json.js +4 -0
- package/dist/formatters/json.js.map +1 -0
- package/dist/formatters/markdown.d.ts +5 -0
- package/dist/formatters/markdown.d.ts.map +1 -0
- package/dist/formatters/markdown.js +50 -0
- package/dist/formatters/markdown.js.map +1 -0
- package/dist/knowledge/index.d.ts +8 -0
- package/dist/knowledge/index.d.ts.map +1 -0
- package/dist/knowledge/index.js +8 -0
- package/dist/knowledge/index.js.map +1 -0
- package/dist/knowledge/paths.d.ts +9 -0
- package/dist/knowledge/paths.d.ts.map +1 -0
- package/dist/knowledge/paths.js +35 -0
- package/dist/knowledge/paths.js.map +1 -0
- package/dist/knowledge/projectStore.d.ts +37 -0
- package/dist/knowledge/projectStore.d.ts.map +1 -0
- package/dist/knowledge/projectStore.js +112 -0
- package/dist/knowledge/projectStore.js.map +1 -0
- package/dist/knowledge/rawStore.d.ts +18 -0
- package/dist/knowledge/rawStore.d.ts.map +1 -0
- package/dist/knowledge/rawStore.js +103 -0
- package/dist/knowledge/rawStore.js.map +1 -0
- package/dist/knowledge/search.d.ts +19 -0
- package/dist/knowledge/search.d.ts.map +1 -0
- package/dist/knowledge/search.js +105 -0
- package/dist/knowledge/search.js.map +1 -0
- package/dist/knowledge/types.d.ts +6 -0
- package/dist/knowledge/types.d.ts.map +1 -0
- package/dist/knowledge/types.js +2 -0
- package/dist/knowledge/types.js.map +1 -0
- package/dist/knowledge/wikiStore.d.ts +18 -0
- package/dist/knowledge/wikiStore.d.ts.map +1 -0
- package/dist/knowledge/wikiStore.js +77 -0
- package/dist/knowledge/wikiStore.js.map +1 -0
- package/dist/knowledge/yaml.d.ts +17 -0
- package/dist/knowledge/yaml.d.ts.map +1 -0
- package/dist/knowledge/yaml.js +131 -0
- package/dist/knowledge/yaml.js.map +1 -0
- package/dist/models/distributions.d.ts +28 -0
- package/dist/models/distributions.d.ts.map +1 -0
- package/dist/models/distributions.js +99 -0
- package/dist/models/distributions.js.map +1 -0
- package/dist/models/index.d.ts +11 -0
- package/dist/models/index.d.ts.map +1 -0
- package/dist/models/index.js +7 -0
- package/dist/models/index.js.map +1 -0
- package/dist/models/markov.d.ts +42 -0
- package/dist/models/markov.d.ts.map +1 -0
- package/dist/models/markov.js +82 -0
- package/dist/models/markov.js.map +1 -0
- package/dist/models/modelUtils.d.ts +29 -0
- package/dist/models/modelUtils.d.ts.map +1 -0
- package/dist/models/modelUtils.js +139 -0
- package/dist/models/modelUtils.js.map +1 -0
- package/dist/models/owsa.d.ts +31 -0
- package/dist/models/owsa.d.ts.map +1 -0
- package/dist/models/owsa.js +103 -0
- package/dist/models/owsa.js.map +1 -0
- package/dist/models/partsa.d.ts +40 -0
- package/dist/models/partsa.d.ts.map +1 -0
- package/dist/models/partsa.js +65 -0
- package/dist/models/partsa.js.map +1 -0
- package/dist/models/psa.d.ts +33 -0
- package/dist/models/psa.d.ts.map +1 -0
- package/dist/models/psa.js +118 -0
- package/dist/models/psa.js.map +1 -0
- package/dist/providers/direct/aifa.d.ts +3 -0
- package/dist/providers/direct/aifa.d.ts.map +1 -0
- package/dist/providers/direct/aifa.js +30 -0
- package/dist/providers/direct/aifa.js.map +1 -0
- package/dist/providers/direct/allOfUs.d.ts +3 -0
- package/dist/providers/direct/allOfUs.d.ts.map +1 -0
- package/dist/providers/direct/allOfUs.js +37 -0
- package/dist/providers/direct/allOfUs.js.map +1 -0
- package/dist/providers/direct/anvisa.d.ts +3 -0
- package/dist/providers/direct/anvisa.d.ts.map +1 -0
- package/dist/providers/direct/anvisa.js +25 -0
- package/dist/providers/direct/anvisa.js.map +1 -0
- package/dist/providers/direct/biorxiv.d.ts +3 -0
- package/dist/providers/direct/biorxiv.d.ts.map +1 -0
- package/dist/providers/direct/biorxiv.js +33 -0
- package/dist/providers/direct/biorxiv.js.map +1 -0
- package/dist/providers/direct/bnf.d.ts +3 -0
- package/dist/providers/direct/bnf.d.ts.map +1 -0
- package/dist/providers/direct/bnf.js +30 -0
- package/dist/providers/direct/bnf.js.map +1 -0
- package/dist/providers/direct/cadthReviews.d.ts +3 -0
- package/dist/providers/direct/cadthReviews.d.ts.map +1 -0
- package/dist/providers/direct/cadthReviews.js +30 -0
- package/dist/providers/direct/cadthReviews.js.map +1 -0
- package/dist/providers/direct/chembl.d.ts +3 -0
- package/dist/providers/direct/chembl.d.ts.map +1 -0
- package/dist/providers/direct/chembl.js +24 -0
- package/dist/providers/direct/chembl.js.map +1 -0
- package/dist/providers/direct/citeline.d.ts +3 -0
- package/dist/providers/direct/citeline.d.ts.map +1 -0
- package/dist/providers/direct/citeline.js +50 -0
- package/dist/providers/direct/citeline.js.map +1 -0
- package/dist/providers/direct/clinicalTrials.d.ts +3 -0
- package/dist/providers/direct/clinicalTrials.d.ts.map +1 -0
- package/dist/providers/direct/clinicalTrials.js +29 -0
- package/dist/providers/direct/clinicalTrials.js.map +1 -0
- package/dist/providers/direct/cmsNadac.d.ts +3 -0
- package/dist/providers/direct/cmsNadac.d.ts.map +1 -0
- package/dist/providers/direct/cmsNadac.js +52 -0
- package/dist/providers/direct/cmsNadac.js.map +1 -0
- package/dist/providers/direct/cochrane.d.ts +3 -0
- package/dist/providers/direct/cochrane.d.ts.map +1 -0
- package/dist/providers/direct/cochrane.js +46 -0
- package/dist/providers/direct/cochrane.js.map +1 -0
- package/dist/providers/direct/conitec.d.ts +3 -0
- package/dist/providers/direct/conitec.d.ts.map +1 -0
- package/dist/providers/direct/conitec.js +25 -0
- package/dist/providers/direct/conitec.js.map +1 -0
- package/dist/providers/direct/cortellis.d.ts +3 -0
- package/dist/providers/direct/cortellis.d.ts.map +1 -0
- package/dist/providers/direct/cortellis.js +52 -0
- package/dist/providers/direct/cortellis.js.map +1 -0
- package/dist/providers/direct/datasus.d.ts +3 -0
- package/dist/providers/direct/datasus.d.ts.map +1 -0
- package/dist/providers/direct/datasus.js +30 -0
- package/dist/providers/direct/datasus.js.map +1 -0
- package/dist/providers/direct/embase.d.ts +3 -0
- package/dist/providers/direct/embase.d.ts.map +1 -0
- package/dist/providers/direct/embase.js +54 -0
- package/dist/providers/direct/embase.js.map +1 -0
- package/dist/providers/direct/fonasa.d.ts +3 -0
- package/dist/providers/direct/fonasa.d.ts.map +1 -0
- package/dist/providers/direct/fonasa.js +25 -0
- package/dist/providers/direct/fonasa.js.map +1 -0
- package/dist/providers/direct/gbaDecisions.d.ts +3 -0
- package/dist/providers/direct/gbaDecisions.d.ts.map +1 -0
- package/dist/providers/direct/gbaDecisions.js +30 -0
- package/dist/providers/direct/gbaDecisions.js.map +1 -0
- package/dist/providers/direct/googleScholar.d.ts +3 -0
- package/dist/providers/direct/googleScholar.d.ts.map +1 -0
- package/dist/providers/direct/googleScholar.js +39 -0
- package/dist/providers/direct/googleScholar.js.map +1 -0
- package/dist/providers/direct/hasTc.d.ts +3 -0
- package/dist/providers/direct/hasTc.d.ts.map +1 -0
- package/dist/providers/direct/hasTc.js +30 -0
- package/dist/providers/direct/hasTc.js.map +1 -0
- package/dist/providers/direct/hitap.d.ts +3 -0
- package/dist/providers/direct/hitap.d.ts.map +1 -0
- package/dist/providers/direct/hitap.js +30 -0
- package/dist/providers/direct/hitap.js.map +1 -0
- package/dist/providers/direct/icerReports.d.ts +3 -0
- package/dist/providers/direct/icerReports.d.ts.map +1 -0
- package/dist/providers/direct/icerReports.js +30 -0
- package/dist/providers/direct/icerReports.js.map +1 -0
- package/dist/providers/direct/iets.d.ts +3 -0
- package/dist/providers/direct/iets.d.ts.map +1 -0
- package/dist/providers/direct/iets.js +25 -0
- package/dist/providers/direct/iets.js.map +1 -0
- package/dist/providers/direct/ihmeGbd.d.ts +3 -0
- package/dist/providers/direct/ihmeGbd.d.ts.map +1 -0
- package/dist/providers/direct/ihmeGbd.js +74 -0
- package/dist/providers/direct/ihmeGbd.js.map +1 -0
- package/dist/providers/direct/index.d.ts +7 -0
- package/dist/providers/direct/index.d.ts.map +1 -0
- package/dist/providers/direct/index.js +186 -0
- package/dist/providers/direct/index.js.map +1 -0
- package/dist/providers/direct/inesss.d.ts +3 -0
- package/dist/providers/direct/inesss.d.ts.map +1 -0
- package/dist/providers/direct/inesss.js +30 -0
- package/dist/providers/direct/inesss.js.map +1 -0
- package/dist/providers/direct/iqwig.d.ts +3 -0
- package/dist/providers/direct/iqwig.d.ts.map +1 -0
- package/dist/providers/direct/iqwig.js +30 -0
- package/dist/providers/direct/iqwig.js.map +1 -0
- package/dist/providers/direct/ispor.d.ts +3 -0
- package/dist/providers/direct/ispor.d.ts.map +1 -0
- package/dist/providers/direct/ispor.js +35 -0
- package/dist/providers/direct/ispor.js.map +1 -0
- package/dist/providers/direct/nhsCosts.d.ts +3 -0
- package/dist/providers/direct/nhsCosts.d.ts.map +1 -0
- package/dist/providers/direct/nhsCosts.js +32 -0
- package/dist/providers/direct/nhsCosts.js.map +1 -0
- package/dist/providers/direct/niceTa.d.ts +3 -0
- package/dist/providers/direct/niceTa.d.ts.map +1 -0
- package/dist/providers/direct/niceTa.js +30 -0
- package/dist/providers/direct/niceTa.js.map +1 -0
- package/dist/providers/direct/oecd.d.ts +3 -0
- package/dist/providers/direct/oecd.d.ts.map +1 -0
- package/dist/providers/direct/oecd.js +102 -0
- package/dist/providers/direct/oecd.js.map +1 -0
- package/dist/providers/direct/orangeBook.d.ts +3 -0
- package/dist/providers/direct/orangeBook.d.ts.map +1 -0
- package/dist/providers/direct/orangeBook.js +48 -0
- package/dist/providers/direct/orangeBook.js.map +1 -0
- package/dist/providers/direct/paho.d.ts +3 -0
- package/dist/providers/direct/paho.d.ts.map +1 -0
- package/dist/providers/direct/paho.js +30 -0
- package/dist/providers/direct/paho.js.map +1 -0
- package/dist/providers/direct/pbacPsd.d.ts +3 -0
- package/dist/providers/direct/pbacPsd.d.ts.map +1 -0
- package/dist/providers/direct/pbacPsd.js +30 -0
- package/dist/providers/direct/pbacPsd.js.map +1 -0
- package/dist/providers/direct/pbsSchedule.d.ts +3 -0
- package/dist/providers/direct/pbsSchedule.d.ts.map +1 -0
- package/dist/providers/direct/pbsSchedule.js +37 -0
- package/dist/providers/direct/pbsSchedule.js.map +1 -0
- package/dist/providers/direct/pharmapendium.d.ts +3 -0
- package/dist/providers/direct/pharmapendium.d.ts.map +1 -0
- package/dist/providers/direct/pharmapendium.js +39 -0
- package/dist/providers/direct/pharmapendium.js.map +1 -0
- package/dist/providers/direct/proxyClient.d.ts +15 -0
- package/dist/providers/direct/proxyClient.d.ts.map +1 -0
- package/dist/providers/direct/proxyClient.js +76 -0
- package/dist/providers/direct/proxyClient.js.map +1 -0
- package/dist/providers/direct/pssru.d.ts +3 -0
- package/dist/providers/direct/pssru.d.ts.map +1 -0
- package/dist/providers/direct/pssru.js +33 -0
- package/dist/providers/direct/pssru.js.map +1 -0
- package/dist/providers/direct/pubmed.d.ts +3 -0
- package/dist/providers/direct/pubmed.d.ts.map +1 -0
- package/dist/providers/direct/pubmed.js +73 -0
- package/dist/providers/direct/pubmed.js.map +1 -0
- package/dist/providers/direct/purpleBook.d.ts +3 -0
- package/dist/providers/direct/purpleBook.d.ts.map +1 -0
- package/dist/providers/direct/purpleBook.js +52 -0
- package/dist/providers/direct/purpleBook.js.map +1 -0
- package/dist/providers/direct/tlv.d.ts +3 -0
- package/dist/providers/direct/tlv.d.ts.map +1 -0
- package/dist/providers/direct/tlv.js +30 -0
- package/dist/providers/direct/tlv.js.map +1 -0
- package/dist/providers/direct/whoGho.d.ts +3 -0
- package/dist/providers/direct/whoGho.d.ts.map +1 -0
- package/dist/providers/direct/whoGho.js +51 -0
- package/dist/providers/direct/whoGho.js.map +1 -0
- package/dist/providers/direct/worldBank.d.ts +3 -0
- package/dist/providers/direct/worldBank.d.ts.map +1 -0
- package/dist/providers/direct/worldBank.js +54 -0
- package/dist/providers/direct/worldBank.js.map +1 -0
- package/dist/providers/factory.d.ts +3 -0
- package/dist/providers/factory.d.ts.map +1 -0
- package/dist/providers/factory.js +8 -0
- package/dist/providers/factory.js.map +1 -0
- package/dist/providers/hosted/index.d.ts +9 -0
- package/dist/providers/hosted/index.d.ts.map +1 -0
- package/dist/providers/hosted/index.js +16 -0
- package/dist/providers/hosted/index.js.map +1 -0
- package/dist/providers/types.d.ts +176 -0
- package/dist/providers/types.d.ts.map +1 -0
- package/dist/providers/types.js +2 -0
- package/dist/providers/types.js.map +1 -0
- package/dist/server.d.ts +3 -0
- package/dist/server.d.ts.map +1 -0
- package/dist/server.js +80 -0
- package/dist/server.js.map +1 -0
- package/dist/tools/costEffectivenessModel.d.ts +98 -0
- package/dist/tools/costEffectivenessModel.d.ts.map +1 -0
- package/dist/tools/costEffectivenessModel.js +404 -0
- package/dist/tools/costEffectivenessModel.js.map +1 -0
- package/dist/tools/htaDossierPrep.d.ts +69 -0
- package/dist/tools/htaDossierPrep.d.ts.map +1 -0
- package/dist/tools/htaDossierPrep.js +399 -0
- package/dist/tools/htaDossierPrep.js.map +1 -0
- package/dist/tools/knowledgeRead.d.ts +21 -0
- package/dist/tools/knowledgeRead.d.ts.map +1 -0
- package/dist/tools/knowledgeRead.js +38 -0
- package/dist/tools/knowledgeRead.js.map +1 -0
- package/dist/tools/knowledgeSearch.d.ts +37 -0
- package/dist/tools/knowledgeSearch.d.ts.map +1 -0
- package/dist/tools/knowledgeSearch.js +51 -0
- package/dist/tools/knowledgeSearch.js.map +1 -0
- package/dist/tools/knowledgeWrite.d.ts +25 -0
- package/dist/tools/knowledgeWrite.d.ts.map +1 -0
- package/dist/tools/knowledgeWrite.js +40 -0
- package/dist/tools/knowledgeWrite.js.map +1 -0
- package/dist/tools/literatureSearch.d.ts +42 -0
- package/dist/tools/literatureSearch.d.ts.map +1 -0
- package/dist/tools/literatureSearch.js +142 -0
- package/dist/tools/literatureSearch.js.map +1 -0
- package/dist/tools/metabolicProfile.d.ts +19 -0
- package/dist/tools/metabolicProfile.d.ts.map +1 -0
- package/dist/tools/metabolicProfile.js +150 -0
- package/dist/tools/metabolicProfile.js.map +1 -0
- package/dist/tools/projectCreate.d.ts +37 -0
- package/dist/tools/projectCreate.d.ts.map +1 -0
- package/dist/tools/projectCreate.js +61 -0
- package/dist/tools/projectCreate.js.map +1 -0
- package/package.json +71 -0
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export async function fetchInesss(query, maxResults) {
|
|
2
|
+
const entries = [
|
|
3
|
+
{
|
|
4
|
+
title: `INESSS Quebec HTA Reports: ${query}`,
|
|
5
|
+
abstract: `INESSS (Institut national d'excellence en santé et en services sociaux) is Quebec's HTA agency, advising the Minister of Health on the reimbursement of drugs and health technologies. INESSS produces drug evaluation notices (Avis d'évaluation) that assess clinical value, cost-effectiveness, and budget impact for the Quebec drug formulary (Liste des médicaments). Search "${query}" to find INESSS evaluations relevant to the drug or indication.`,
|
|
6
|
+
url: `https://www.inesss.qc.ca/en/search.html?q=${encodeURIComponent(query)}`,
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
title: `INESSS Methodology Framework`,
|
|
10
|
+
abstract: `INESSS publishes methodological guides for drug evaluations and health technology assessments. Covers evidence review methods, pharmacoeconomic evaluation standards, budget impact analysis, and patient/clinical input processes. Key reference for preparing Quebec drug submissions and understanding INESSS evidence requirements.`,
|
|
11
|
+
url: "https://www.inesss.qc.ca/en/publications/publications.html",
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
title: `Liste des médicaments (Quebec Drug Formulary)`,
|
|
15
|
+
abstract: `The Liste des médicaments is Quebec's public drug formulary administered by RAMQ (Régie de l'assurance maladie du Québec). It lists all drugs covered under the public prescription drug insurance plan, with reimbursement conditions and special authorization criteria. Essential for understanding the competitive landscape for any indication in Quebec's public payer market.`,
|
|
16
|
+
url: "https://www.ramq.gouv.qc.ca/en/citizens/prescription-drug-insurance/list-medications",
|
|
17
|
+
},
|
|
18
|
+
];
|
|
19
|
+
return entries.slice(0, maxResults).map((e, i) => ({
|
|
20
|
+
id: `inesss_${i}`,
|
|
21
|
+
source: "inesss",
|
|
22
|
+
title: e.title,
|
|
23
|
+
authors: ["Institut national d'excellence en santé et en services sociaux (INESSS) — Quebec HTA Agency"],
|
|
24
|
+
date: new Date().getFullYear().toString(),
|
|
25
|
+
study_type: "hta_report",
|
|
26
|
+
abstract: e.abstract,
|
|
27
|
+
url: e.url,
|
|
28
|
+
}));
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=inesss.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"inesss.js","sourceRoot":"","sources":["../../../src/providers/direct/inesss.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,KAAa,EAAE,UAAkB;IACjE,MAAM,OAAO,GAAG;QACd;YACE,KAAK,EAAE,8BAA8B,KAAK,EAAE;YAC5C,QAAQ,EAAE,uXAAuX,KAAK,kEAAkE;YACxc,GAAG,EAAE,6CAA6C,kBAAkB,CAAC,KAAK,CAAC,EAAE;SAC9E;QACD;YACE,KAAK,EAAE,8BAA8B;YACrC,QAAQ,EAAE,yUAAyU;YACnV,GAAG,EAAE,4DAA4D;SAClE;QACD;YACE,KAAK,EAAE,+CAA+C;YACtD,QAAQ,EAAE,sXAAsX;YAChY,GAAG,EAAE,sFAAsF;SAC5F;KACF,CAAC;IAEF,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACjD,EAAE,EAAE,UAAU,CAAC,EAAE;QACjB,MAAM,EAAE,QAAiB;QACzB,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,OAAO,EAAE,CAAC,6FAA6F,CAAC;QACxG,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;QACzC,UAAU,EAAE,YAAY;QACxB,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,GAAG,EAAE,CAAC,CAAC,GAAG;KACX,CAAC,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iqwig.d.ts","sourceRoot":"","sources":["../../../src/providers/direct/iqwig.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,wBAAsB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CA6B/F"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export async function fetchIqwig(query, maxResults) {
|
|
2
|
+
const entries = [
|
|
3
|
+
{
|
|
4
|
+
title: `IQWiG Reports Search: ${query}`,
|
|
5
|
+
abstract: `IQWiG (Institut für Qualität und Wirtschaftlichkeit im Gesundheitswesen — Institute for Quality and Efficiency in Health Care) produces systematic reviews, health technology assessments, and AMNOG dossier assessments commissioned by G-BA. Search "${query}" to find IQWiG reports on clinical benefit, cost-effectiveness, and evidence quality. IQWiG assessments are foundational to G-BA benefit rating decisions under AMNOG.`,
|
|
6
|
+
url: `https://www.iqwig.de/en/projects/?tab=search&query=${encodeURIComponent(query)}`,
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
title: `IQWiG General Methods v7.0`,
|
|
10
|
+
abstract: `IQWiG's General Methods document describes its methodological standards for health technology assessments and benefit evaluations. Covers systematic review methodology, GRADE-like evidence rating, indirect comparisons, patient-relevant endpoints, and the efficiency frontier approach for cost-benefit analysis. Key reference for understanding IQWiG's evidence standards.`,
|
|
11
|
+
url: "https://www.iqwig.de/en/about-us/methods/methods-paper/",
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
title: `IQWiG Early Benefit Assessment (AMNOG)`,
|
|
15
|
+
abstract: `Under AMNOG, IQWiG assesses manufacturer dossiers submitted to G-BA within 3 months of drug approval. IQWiG evaluates added benefit vs. the appropriate comparator therapy across patient subgroups, assigning probability and extent of added benefit. Published dossier assessments are available for all drugs reviewed since 2011.`,
|
|
16
|
+
url: "https://www.iqwig.de/en/projects/?tab=dossier-assessments",
|
|
17
|
+
},
|
|
18
|
+
];
|
|
19
|
+
return entries.slice(0, maxResults).map((e, i) => ({
|
|
20
|
+
id: `iqwig_${i}`,
|
|
21
|
+
source: "iqwig",
|
|
22
|
+
title: e.title,
|
|
23
|
+
authors: ["Institute for Quality and Efficiency in Health Care (IQWiG), Germany"],
|
|
24
|
+
date: new Date().getFullYear().toString(),
|
|
25
|
+
study_type: "hta_report",
|
|
26
|
+
abstract: e.abstract,
|
|
27
|
+
url: e.url,
|
|
28
|
+
}));
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=iqwig.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"iqwig.js","sourceRoot":"","sources":["../../../src/providers/direct/iqwig.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,KAAa,EAAE,UAAkB;IAChE,MAAM,OAAO,GAAG;QACd;YACE,KAAK,EAAE,yBAAyB,KAAK,EAAE;YACvC,QAAQ,EAAE,0PAA0P,KAAK,yKAAyK;YAClb,GAAG,EAAE,sDAAsD,kBAAkB,CAAC,KAAK,CAAC,EAAE;SACvF;QACD;YACE,KAAK,EAAE,4BAA4B;YACnC,QAAQ,EAAE,oXAAoX;YAC9X,GAAG,EAAE,yDAAyD;SAC/D;QACD;YACE,KAAK,EAAE,wCAAwC;YAC/C,QAAQ,EAAE,wUAAwU;YAClV,GAAG,EAAE,2DAA2D;SACjE;KACF,CAAC;IAEF,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACjD,EAAE,EAAE,SAAS,CAAC,EAAE;QAChB,MAAM,EAAE,OAAgB;QACxB,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,OAAO,EAAE,CAAC,sEAAsE,CAAC;QACjF,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;QACzC,UAAU,EAAE,YAAY;QACxB,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,GAAG,EAAE,CAAC,CAAC,GAAG;KACX,CAAC,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ispor.d.ts","sourceRoot":"","sources":["../../../src/providers/direct/ispor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,wBAAsB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAkC/F"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
export async function fetchIspor(query, maxResults) {
|
|
2
|
+
const entries = [
|
|
3
|
+
{
|
|
4
|
+
title: `ISPOR Presentations Database: ${query}`,
|
|
5
|
+
abstract: `ISPOR's searchable database of conference abstracts from ISPOR Annual (North America) and ISPOR Europe meetings. Covers cost-effectiveness models, budget impact analyses, real-world evidence studies, patient-reported outcomes, HTA submissions, and methodology papers. Over 30,000 abstracts spanning 20+ years. Primary source for HEOR conference literature and emerging methodology trends.`,
|
|
6
|
+
url: `https://www.ispor.org/heor-resources/presentations-database/search?query=${encodeURIComponent(query)}`,
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
title: `ISPOR Good Practices Reports — ${query}`,
|
|
10
|
+
abstract: `ISPOR Good Practices task force reports define consensus methodology standards for HEOR. Topics include modeling, PROs, RWD, budget impact, HTA, value frameworks, and indirect comparisons. Cited by NICE, ICER, and CADTH as authoritative methodology references.`,
|
|
11
|
+
url: `https://www.ispor.org/heor-resources/good-practices`,
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
title: `ISPOR Value in Health Journal — ${query}`,
|
|
15
|
+
abstract: `The official ISPOR journal. Peer-reviewed articles on economic evaluation, outcomes research, pricing, HTA, and RWE. High-impact source for HEOR methodology and applied studies.`,
|
|
16
|
+
url: `https://www.valueinhealthjournal.com/action/doSearch?AllField=${encodeURIComponent(query)}`,
|
|
17
|
+
},
|
|
18
|
+
{
|
|
19
|
+
title: `ISPOR Education Center — ${query}`,
|
|
20
|
+
abstract: `Training resources, webinars, short courses, and certification programs. Covers statistical methods, modeling, HTA methodology, and real-world data analysis. Useful for understanding current HEOR methodological standards.`,
|
|
21
|
+
url: "https://www.ispor.org/conferences-education/education-training",
|
|
22
|
+
},
|
|
23
|
+
];
|
|
24
|
+
return entries.slice(0, maxResults).map((e, i) => ({
|
|
25
|
+
id: `ispor_${i}`,
|
|
26
|
+
source: "ispor",
|
|
27
|
+
title: e.title,
|
|
28
|
+
authors: ["International Society for Pharmacoeconomics and Outcomes Research (ISPOR)"],
|
|
29
|
+
date: new Date().getFullYear().toString(),
|
|
30
|
+
study_type: "hta_report",
|
|
31
|
+
abstract: e.abstract,
|
|
32
|
+
url: e.url,
|
|
33
|
+
}));
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=ispor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ispor.js","sourceRoot":"","sources":["../../../src/providers/direct/ispor.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,UAAU,CAAC,KAAa,EAAE,UAAkB;IAChE,MAAM,OAAO,GAAG;QACd;YACE,KAAK,EAAE,iCAAiC,KAAK,EAAE;YAC/C,QAAQ,EAAE,sYAAsY;YAChZ,GAAG,EAAE,4EAA4E,kBAAkB,CAAC,KAAK,CAAC,EAAE;SAC7G;QACD;YACE,KAAK,EAAE,kCAAkC,KAAK,EAAE;YAChD,QAAQ,EAAE,sQAAsQ;YAChR,GAAG,EAAE,qDAAqD;SAC3D;QACD;YACE,KAAK,EAAE,mCAAmC,KAAK,EAAE;YACjD,QAAQ,EAAE,mLAAmL;YAC7L,GAAG,EAAE,iEAAiE,kBAAkB,CAAC,KAAK,CAAC,EAAE;SAClG;QACD;YACE,KAAK,EAAE,4BAA4B,KAAK,EAAE;YAC1C,QAAQ,EAAE,+NAA+N;YACzO,GAAG,EAAE,gEAAgE;SACtE;KACF,CAAC;IAEF,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACjD,EAAE,EAAE,SAAS,CAAC,EAAE;QAChB,MAAM,EAAE,OAAgB;QACxB,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,OAAO,EAAE,CAAC,2EAA2E,CAAC;QACtF,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;QACzC,UAAU,EAAE,YAAY;QACxB,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,GAAG,EAAE,CAAC,CAAC,GAAG;KACX,CAAC,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nhsCosts.d.ts","sourceRoot":"","sources":["../../../src/providers/direct/nhsCosts.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,wBAAsB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAgClG"}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
export async function fetchNhsCosts(query, maxResults) {
|
|
2
|
+
const currentYear = new Date().getFullYear();
|
|
3
|
+
const latestYear = currentYear - 2; // typically 2 years lag
|
|
4
|
+
const entries = [
|
|
5
|
+
{
|
|
6
|
+
title: `NHS National Cost Collection ${latestYear}/${(latestYear + 1).toString().slice(2)} — ${query}`,
|
|
7
|
+
abstract: `Annual NHS England publication detailing the unit cost of providing healthcare services in England. Covers ~17M patient records across NHS trusts. Reports mean costs per HRG (Healthcare Resource Group) for inpatient admissions, outpatient attendances, A&E, critical care, mental health, community services, and ambulance. Used as the primary source for secondary care costs in NICE economic evaluations. For "${query}", search the published CSV files by HRG code or description.`,
|
|
8
|
+
url: "https://www.england.nhs.uk/costing-in-the-nhs/national-cost-collection/",
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
title: `NHS Data Dictionary — HRG Codes`,
|
|
12
|
+
abstract: `Reference for NHS Healthcare Resource Group (HRG) classifications. HRGs group clinically similar and resource-similar treatments for costing purposes. Required for matching diagnosis/procedure codes to NHS reference costs.`,
|
|
13
|
+
url: "https://www.datadictionary.nhs.uk/supporting_information/healthcare_resource_group_hrg.html",
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
title: `NHS Payment Scheme (2025/26)`,
|
|
17
|
+
abstract: `The NHS Payment Scheme (formerly National Tariff) sets the prices paid by commissioners for most NHS services. Complementary to reference costs — provides planned rather than actual costs. Used by payers and for budget impact models.`,
|
|
18
|
+
url: "https://www.england.nhs.uk/pay-syst/nhs-payment-scheme/",
|
|
19
|
+
},
|
|
20
|
+
];
|
|
21
|
+
return entries.slice(0, maxResults).map((e, i) => ({
|
|
22
|
+
id: `nhs_costs_${i}`,
|
|
23
|
+
source: "nhs_costs",
|
|
24
|
+
title: e.title,
|
|
25
|
+
authors: ["NHS England"],
|
|
26
|
+
date: String(latestYear),
|
|
27
|
+
study_type: "cost_reference",
|
|
28
|
+
abstract: e.abstract,
|
|
29
|
+
url: e.url,
|
|
30
|
+
}));
|
|
31
|
+
}
|
|
32
|
+
//# sourceMappingURL=nhsCosts.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"nhsCosts.js","sourceRoot":"","sources":["../../../src/providers/direct/nhsCosts.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,aAAa,CAAC,KAAa,EAAE,UAAkB;IACnE,MAAM,WAAW,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;IAC7C,MAAM,UAAU,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC,wBAAwB;IAE5D,MAAM,OAAO,GAAG;QACd;YACE,KAAK,EAAE,gCAAgC,UAAU,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,KAAK,EAAE;YACtG,QAAQ,EAAE,4ZAA4Z,KAAK,+DAA+D;YAC1e,GAAG,EAAE,yEAAyE;SAC/E;QACD;YACE,KAAK,EAAE,iCAAiC;YACxC,QAAQ,EAAE,gOAAgO;YAC1O,GAAG,EAAE,6FAA6F;SACnG;QACD;YACE,KAAK,EAAE,8BAA8B;YACrC,QAAQ,EAAE,2OAA2O;YACrP,GAAG,EAAE,yDAAyD;SAC/D;KACF,CAAC;IAEF,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACjD,EAAE,EAAE,aAAa,CAAC,EAAE;QACpB,MAAM,EAAE,WAAoB;QAC5B,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,OAAO,EAAE,CAAC,aAAa,CAAC;QACxB,IAAI,EAAE,MAAM,CAAC,UAAU,CAAC;QACxB,UAAU,EAAE,gBAAgB;QAC5B,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,GAAG,EAAE,CAAC,CAAC,GAAG;KACX,CAAC,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"niceTa.d.ts","sourceRoot":"","sources":["../../../src/providers/direct/niceTa.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,wBAAsB,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CA6BhG"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export async function fetchNiceTa(query, maxResults) {
|
|
2
|
+
const entries = [
|
|
3
|
+
{
|
|
4
|
+
title: `NICE Technology Appraisals Search: ${query}`,
|
|
5
|
+
abstract: `NICE Technology Appraisals (TAs) recommend whether NHS England should fund new medicines. Each TA includes: company submission, ERG (evidence review group) report, committee papers, final appraisal determination (FAD), and guidance. Search "${query}" across all published TAs to find precedents for similar indications, comparators, or ICER thresholds. Essential for NICE STA submission benchmarking.`,
|
|
6
|
+
url: `https://www.nice.org.uk/search?q=${encodeURIComponent(query)}&ngt=Guidance&ndt=Guidance#/?ngt=Guidance&ndt=Guidance`,
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
title: `NICE Single Technology Appraisal Process Guide`,
|
|
10
|
+
abstract: `NICE's STA methodology guide PMG36 and process guide PMG19. Required reading for company submissions. Covers reference case, time horizon, discount rates (3.5%), perspective (NHS+PSS), ICER threshold (£20–30K/QALY), end-of-life criteria, and innovation rating.`,
|
|
11
|
+
url: "https://www.nice.org.uk/process/pmg36",
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
title: `NICE Committee Papers Archive`,
|
|
15
|
+
abstract: `Archive of NICE Appraisal Committee meeting papers including company submission dossiers, ERG critique reports, patient/clinical expert statements. Useful for understanding committee reasoning and common critiques.`,
|
|
16
|
+
url: `https://www.nice.org.uk/guidance/published?type=ta&ssup=committee-papers`,
|
|
17
|
+
},
|
|
18
|
+
];
|
|
19
|
+
return entries.slice(0, maxResults).map((e, i) => ({
|
|
20
|
+
id: `nice_ta_${i}`,
|
|
21
|
+
source: "nice_ta",
|
|
22
|
+
title: e.title,
|
|
23
|
+
authors: ["National Institute for Health and Care Excellence (NICE)"],
|
|
24
|
+
date: new Date().getFullYear().toString(),
|
|
25
|
+
study_type: "hta_report",
|
|
26
|
+
abstract: e.abstract,
|
|
27
|
+
url: e.url,
|
|
28
|
+
}));
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=niceTa.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"niceTa.js","sourceRoot":"","sources":["../../../src/providers/direct/niceTa.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,KAAa,EAAE,UAAkB;IACjE,MAAM,OAAO,GAAG;QACd;YACE,KAAK,EAAE,sCAAsC,KAAK,EAAE;YACpD,QAAQ,EAAE,oPAAoP,KAAK,yJAAyJ;YAC5Z,GAAG,EAAE,oCAAoC,kBAAkB,CAAC,KAAK,CAAC,wDAAwD;SAC3H;QACD;YACE,KAAK,EAAE,gDAAgD;YACvD,QAAQ,EAAE,sQAAsQ;YAChR,GAAG,EAAE,uCAAuC;SAC7C;QACD;YACE,KAAK,EAAE,+BAA+B;YACtC,QAAQ,EAAE,wNAAwN;YAClO,GAAG,EAAE,0EAA0E;SAChF;KACF,CAAC;IAEF,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACjD,EAAE,EAAE,WAAW,CAAC,EAAE;QAClB,MAAM,EAAE,SAAkB;QAC1B,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,OAAO,EAAE,CAAC,0DAA0D,CAAC;QACrE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;QACzC,UAAU,EAAE,YAAY;QACxB,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,GAAG,EAAE,CAAC,CAAC,GAAG;KACX,CAAC,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oecd.d.ts","sourceRoot":"","sources":["../../../src/providers/direct/oecd.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AA0DpD,wBAAsB,SAAS,CAC7B,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAqE7B"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
const BASE = "https://stats.oecd.org/SDMX-JSON/data";
|
|
2
|
+
// Map HEOR-relevant queries to OECD dataset/dimension combos
|
|
3
|
+
const DATASET_MAP = {
|
|
4
|
+
"health expenditure": {
|
|
5
|
+
dataset: "SHA",
|
|
6
|
+
filter: ".HFTOT.HCTOT.HPTOT.PC_GDP",
|
|
7
|
+
label: "Health expenditure as % of GDP",
|
|
8
|
+
},
|
|
9
|
+
pharmaceutical: {
|
|
10
|
+
dataset: "SHA",
|
|
11
|
+
filter: ".HFTOT.HC51.HPTOT.PC_CHE",
|
|
12
|
+
label: "Pharmaceutical spending as % of health expenditure",
|
|
13
|
+
},
|
|
14
|
+
"hospital beds": {
|
|
15
|
+
dataset: "HEALTH_REAC",
|
|
16
|
+
filter: ".HOPITBED.RTOINPAM",
|
|
17
|
+
label: "Hospital beds per 1,000 population",
|
|
18
|
+
},
|
|
19
|
+
physicians: {
|
|
20
|
+
dataset: "HEALTH_REAC",
|
|
21
|
+
filter: ".PHYS.PRPHYSAM",
|
|
22
|
+
label: "Practising physicians per 1,000 population",
|
|
23
|
+
},
|
|
24
|
+
"life expectancy": {
|
|
25
|
+
dataset: "HEALTH_STAT",
|
|
26
|
+
filter: ".LIFE_EXP.TOTAL.0",
|
|
27
|
+
label: "Life expectancy at birth",
|
|
28
|
+
},
|
|
29
|
+
mortality: {
|
|
30
|
+
dataset: "HEALTH_STAT",
|
|
31
|
+
filter: ".DEATH_RT.TOTAL",
|
|
32
|
+
label: "Mortality rate",
|
|
33
|
+
},
|
|
34
|
+
obesity: {
|
|
35
|
+
dataset: "HEALTH_STAT",
|
|
36
|
+
filter: ".RISKF_OBESE.TOTAL",
|
|
37
|
+
label: "Obesity rate (%)",
|
|
38
|
+
},
|
|
39
|
+
};
|
|
40
|
+
function findDataset(query) {
|
|
41
|
+
const q = query.toLowerCase();
|
|
42
|
+
for (const [keyword, config] of Object.entries(DATASET_MAP)) {
|
|
43
|
+
if (q.includes(keyword))
|
|
44
|
+
return config;
|
|
45
|
+
}
|
|
46
|
+
return DATASET_MAP["health expenditure"]; // default
|
|
47
|
+
}
|
|
48
|
+
export async function fetchOecd(query, maxResults) {
|
|
49
|
+
try {
|
|
50
|
+
const { dataset, filter, label } = findDataset(query);
|
|
51
|
+
const url = `${BASE}/${dataset}${filter}/all?startTime=2018&dimensionAtObservation=AllDimensions&detail=dataonly`;
|
|
52
|
+
const res = await fetch(url, {
|
|
53
|
+
headers: { Accept: "application/vnd.sdmx.data+json; version=1.0" },
|
|
54
|
+
});
|
|
55
|
+
if (!res.ok)
|
|
56
|
+
return [];
|
|
57
|
+
const data = (await res.json());
|
|
58
|
+
const observations = data?.dataSets?.[0]
|
|
59
|
+
?.observations ?? {};
|
|
60
|
+
const dimensions = data?.structure
|
|
61
|
+
?.dimensions?.observation ?? [];
|
|
62
|
+
// Find country and time dimensions
|
|
63
|
+
const dimArray = dimensions;
|
|
64
|
+
const countryDim = dimArray.find((d) => d.id === "REF_AREA" || d.id === "COU");
|
|
65
|
+
const timeDim = dimArray.find((d) => d.id === "TIME_PERIOD" || d.id === "YEAR");
|
|
66
|
+
if (!countryDim || !timeDim)
|
|
67
|
+
return [];
|
|
68
|
+
const results = [];
|
|
69
|
+
const countryIdx = dimArray.indexOf(countryDim);
|
|
70
|
+
const timeIdx = dimArray.indexOf(timeDim);
|
|
71
|
+
for (const [key, obs] of Object.entries(observations)) {
|
|
72
|
+
if (results.length >= maxResults)
|
|
73
|
+
break;
|
|
74
|
+
const indices = key.split(":").map(Number);
|
|
75
|
+
const countryValues = countryDim.values;
|
|
76
|
+
const timeValues = timeDim.values;
|
|
77
|
+
const country = countryValues?.[indices[countryIdx]]?.name ??
|
|
78
|
+
countryValues?.[indices[countryIdx]]?.id ??
|
|
79
|
+
"Unknown";
|
|
80
|
+
const countryCode = countryValues?.[indices[countryIdx]]?.id ?? "";
|
|
81
|
+
const year = timeValues?.[indices[timeIdx]]?.id ?? "";
|
|
82
|
+
const value = Array.isArray(obs) ? obs[0] : obs;
|
|
83
|
+
if (value === null || value === undefined)
|
|
84
|
+
continue;
|
|
85
|
+
results.push({
|
|
86
|
+
id: `oecd_${dataset}_${countryCode}_${year}_${results.length}`,
|
|
87
|
+
source: "oecd",
|
|
88
|
+
title: `${label}: ${country} (${year})`,
|
|
89
|
+
authors: ["OECD"],
|
|
90
|
+
date: year,
|
|
91
|
+
study_type: "registry",
|
|
92
|
+
abstract: `${label}: ${value} | Country: ${country} (${countryCode}) | Year: ${year} | Dataset: ${dataset}`,
|
|
93
|
+
url: `https://data.oecd.org`,
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
return results;
|
|
97
|
+
}
|
|
98
|
+
catch {
|
|
99
|
+
return [];
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=oecd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"oecd.js","sourceRoot":"","sources":["../../../src/providers/direct/oecd.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orangeBook.d.ts","sourceRoot":"","sources":["../../../src/providers/direct/orangeBook.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAoCpD,wBAAsB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CA+CpG"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
const BASE = "https://api.fda.gov/drug/drugsfda.json";
|
|
2
|
+
export async function fetchOrangeBook(query, maxResults) {
|
|
3
|
+
try {
|
|
4
|
+
// Search openFDA by brand name, generic name, or active ingredient
|
|
5
|
+
const searchQuery = `(openfda.brand_name:"${query}"+openfda.generic_name:"${query}"+products.active_ingredients.name:"${query}")`;
|
|
6
|
+
const url = `${BASE}?search=${encodeURIComponent(searchQuery)}&limit=${Math.min(maxResults, 100)}`;
|
|
7
|
+
const res = await fetch(url);
|
|
8
|
+
if (!res.ok)
|
|
9
|
+
return [];
|
|
10
|
+
const data = (await res.json());
|
|
11
|
+
if (!data.results)
|
|
12
|
+
return [];
|
|
13
|
+
const results = [];
|
|
14
|
+
for (const app of data.results) {
|
|
15
|
+
if (results.length >= maxResults)
|
|
16
|
+
break;
|
|
17
|
+
const product = app.products?.[0];
|
|
18
|
+
const latestSubmission = app.submissions?.sort((a, b) => (b.submission_status_date ?? "").localeCompare(a.submission_status_date ?? ""))[0];
|
|
19
|
+
const brandName = product?.brand_name ?? app.openfda?.brand_name?.[0] ?? "Unknown";
|
|
20
|
+
const ingredients = product?.active_ingredients?.map(i => `${i.name ?? ""} ${i.strength ?? ""}`.trim()).join(", ") ?? "";
|
|
21
|
+
const teCode = product?.te_code ?? "N/A";
|
|
22
|
+
results.push({
|
|
23
|
+
id: `orange_book_${app.application_number ?? results.length}`,
|
|
24
|
+
source: "orange_book",
|
|
25
|
+
title: `${brandName} — ${app.application_number ?? "N/A"} (${app.sponsor_name ?? "Unknown sponsor"})`,
|
|
26
|
+
authors: [app.sponsor_name ?? "FDA"],
|
|
27
|
+
date: latestSubmission?.submission_status_date ?? "",
|
|
28
|
+
study_type: "regulatory",
|
|
29
|
+
abstract: [
|
|
30
|
+
`Application: ${app.application_number ?? "N/A"}`,
|
|
31
|
+
`Sponsor: ${app.sponsor_name ?? "Unknown"}`,
|
|
32
|
+
`Active ingredients: ${ingredients || "Not specified"}`,
|
|
33
|
+
`Dosage form: ${product?.dosage_form ?? "N/A"} | Route: ${product?.route ?? "N/A"}`,
|
|
34
|
+
`Therapeutic Equivalence (TE) Code: ${teCode}`,
|
|
35
|
+
`Reference drug: ${product?.reference_drug ?? "N/A"}`,
|
|
36
|
+
`Marketing status: ${product?.marketing_status ?? "N/A"}`,
|
|
37
|
+
latestSubmission ? `Latest submission: ${latestSubmission.submission_type ?? ""} ${latestSubmission.submission_number ?? ""} (${latestSubmission.submission_status ?? ""}, ${latestSubmission.submission_status_date ?? ""})` : null,
|
|
38
|
+
].filter(Boolean).join(" | "),
|
|
39
|
+
url: `https://www.accessdata.fda.gov/scripts/cder/ob/results_product.cfm?Appl_Type=N&Appl_No=${app.application_number ?? ""}`,
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
return results;
|
|
43
|
+
}
|
|
44
|
+
catch {
|
|
45
|
+
return [];
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=orangeBook.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orangeBook.js","sourceRoot":"","sources":["../../../src/providers/direct/orangeBook.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paho.d.ts","sourceRoot":"","sources":["../../../src/providers/direct/paho.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,wBAAsB,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CA6B9F"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export async function fetchPaho(query, maxResults) {
|
|
2
|
+
const entries = [
|
|
3
|
+
{
|
|
4
|
+
title: `PAHO Open Data Portal: ${query}`,
|
|
5
|
+
abstract: `Pan American Health Organization (PAHO) provides regional health statistics across the Americas (North, Central, South, Caribbean). Covers mortality, morbidity, immunization coverage, health expenditure, and health workforce. Primary source for LATAM epidemiology and demographic inputs.`,
|
|
6
|
+
url: `https://opendata.paho.org/en/catalog?q=${encodeURIComponent(query)}`,
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
title: `PAHO Core Health Indicators — ${query}`,
|
|
10
|
+
abstract: `PAHO Core Indicators database with 115+ indicators across 49 countries. Includes life expectancy, mortality by cause, DALYs, health system resources, and health expenditure. Compatible with WHO GHO methodology.`,
|
|
11
|
+
url: "https://opendata.paho.org/en/core-indicators",
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
title: `PLISA Health Information Platform — ${query}`,
|
|
15
|
+
abstract: `PAHO's Health Information Platform for the Americas (PLISA) provides subnational data, disease-specific dashboards, and health in the Americas regional reports. Key source for Latin American burden-of-illness estimates.`,
|
|
16
|
+
url: "https://www3.paho.org/data/index.php/en/",
|
|
17
|
+
},
|
|
18
|
+
];
|
|
19
|
+
return entries.slice(0, maxResults).map((e, i) => ({
|
|
20
|
+
id: `paho_${i}`,
|
|
21
|
+
source: "paho",
|
|
22
|
+
title: e.title,
|
|
23
|
+
authors: ["Pan American Health Organization (PAHO/WHO)"],
|
|
24
|
+
date: new Date().getFullYear().toString(),
|
|
25
|
+
study_type: "registry",
|
|
26
|
+
abstract: e.abstract,
|
|
27
|
+
url: e.url,
|
|
28
|
+
}));
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=paho.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paho.js","sourceRoot":"","sources":["../../../src/providers/direct/paho.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,SAAS,CAAC,KAAa,EAAE,UAAkB;IAC/D,MAAM,OAAO,GAAG;QACd;YACE,KAAK,EAAE,0BAA0B,KAAK,EAAE;YACxC,QAAQ,EAAE,iSAAiS;YAC3S,GAAG,EAAE,0CAA0C,kBAAkB,CAAC,KAAK,CAAC,EAAE;SAC3E;QACD;YACE,KAAK,EAAE,iCAAiC,KAAK,EAAE;YAC/C,QAAQ,EAAE,oNAAoN;YAC9N,GAAG,EAAE,8CAA8C;SACpD;QACD;YACE,KAAK,EAAE,uCAAuC,KAAK,EAAE;YACrD,QAAQ,EAAE,6NAA6N;YACvO,GAAG,EAAE,0CAA0C;SAChD;KACF,CAAC;IAEF,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACjD,EAAE,EAAE,QAAQ,CAAC,EAAE;QACf,MAAM,EAAE,MAAe;QACvB,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,OAAO,EAAE,CAAC,6CAA6C,CAAC;QACxD,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;QACzC,UAAU,EAAE,UAAU;QACtB,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,GAAG,EAAE,CAAC,CAAC,GAAG;KACX,CAAC,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pbacPsd.d.ts","sourceRoot":"","sources":["../../../src/providers/direct/pbacPsd.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAEpD,wBAAsB,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CA6BjG"}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
export async function fetchPbacPsd(query, maxResults) {
|
|
2
|
+
const entries = [
|
|
3
|
+
{
|
|
4
|
+
title: `PBAC Public Summary Documents: ${query}`,
|
|
5
|
+
abstract: `PBAC (Pharmaceutical Benefits Advisory Committee) Public Summary Documents (PSDs) summarise the committee's assessment of drug submissions for PBS listing in Australia. Each PSD covers the basis of submission, clinical claim, clinical evidence, economic evaluation, budget impact, and committee recommendation. Search "${query}" to find PBAC decisions relevant to the drug or indication. Essential for Australian PBS submissions and Asia-Pacific HTA benchmarking.`,
|
|
6
|
+
url: `https://www.pbs.gov.au/info/industry/listing/elements/pbac-meetings/psd?search=${encodeURIComponent(query)}`,
|
|
7
|
+
},
|
|
8
|
+
{
|
|
9
|
+
title: `PBAC Guidelines 5.0 (2016)`,
|
|
10
|
+
abstract: `PBAC guidelines for preparing drug submissions, covering cost-minimisation, cost-effectiveness, and cost-utility analyses. Describes PBAC's preferred methods: incremental analysis, QALYs, discount rate (5%), perspective (health system), and willingness-to-pay threshold (approximately AUD 45–75K/QALY). Required reference for PBS submissions.`,
|
|
11
|
+
url: "https://pbac.pbs.gov.au/",
|
|
12
|
+
},
|
|
13
|
+
{
|
|
14
|
+
title: `PBAC Meeting Outcomes Archive`,
|
|
15
|
+
abstract: `Archive of PBAC meeting outcomes listing all recommendations (positive, negative, deferred) from each quarterly meeting. Includes summary of basis for positive and negative recommendations. Useful for tracking PBAC decision trends and understanding committee priorities.`,
|
|
16
|
+
url: "https://www.pbs.gov.au/info/industry/listing/elements/pbac-meetings/pbac-outcomes",
|
|
17
|
+
},
|
|
18
|
+
];
|
|
19
|
+
return entries.slice(0, maxResults).map((e, i) => ({
|
|
20
|
+
id: `pbac_psd_${i}`,
|
|
21
|
+
source: "pbac_psd",
|
|
22
|
+
title: e.title,
|
|
23
|
+
authors: ["Pharmaceutical Benefits Advisory Committee (PBAC), Australia"],
|
|
24
|
+
date: new Date().getFullYear().toString(),
|
|
25
|
+
study_type: "hta_report",
|
|
26
|
+
abstract: e.abstract,
|
|
27
|
+
url: e.url,
|
|
28
|
+
}));
|
|
29
|
+
}
|
|
30
|
+
//# sourceMappingURL=pbacPsd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pbacPsd.js","sourceRoot":"","sources":["../../../src/providers/direct/pbacPsd.ts"],"names":[],"mappings":"AAEA,MAAM,CAAC,KAAK,UAAU,YAAY,CAAC,KAAa,EAAE,UAAkB;IAClE,MAAM,OAAO,GAAG;QACd;YACE,KAAK,EAAE,kCAAkC,KAAK,EAAE;YAChD,QAAQ,EAAE,kUAAkU,KAAK,0IAA0I;YAC3d,GAAG,EAAE,kFAAkF,kBAAkB,CAAC,KAAK,CAAC,EAAE;SACnH;QACD;YACE,KAAK,EAAE,4BAA4B;YACnC,QAAQ,EAAE,wVAAwV;YAClW,GAAG,EAAE,0BAA0B;SAChC;QACD;YACE,KAAK,EAAE,+BAA+B;YACtC,QAAQ,EAAE,gRAAgR;YAC1R,GAAG,EAAE,mFAAmF;SACzF;KACF,CAAC;IAEF,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACjD,EAAE,EAAE,YAAY,CAAC,EAAE;QACnB,MAAM,EAAE,UAAmB;QAC3B,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,OAAO,EAAE,CAAC,8DAA8D,CAAC;QACzE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;QACzC,UAAU,EAAE,YAAY;QACxB,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,GAAG,EAAE,CAAC,CAAC,GAAG;KACX,CAAC,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pbsSchedule.d.ts","sourceRoot":"","sources":["../../../src/providers/direct/pbsSchedule.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAIpD,wBAAsB,gBAAgB,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAkCrG"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
// PBS data is published via data.gov.au. The actual searchable dataset is at pbs.gov.au,
|
|
2
|
+
// but doesn't have a clean REST API. Return structured reference + attempted search.
|
|
3
|
+
export async function fetchPbsSchedule(query, maxResults) {
|
|
4
|
+
const entries = [
|
|
5
|
+
{
|
|
6
|
+
title: `PBS Schedule Search: ${query}`,
|
|
7
|
+
abstract: `Australian Pharmaceutical Benefits Scheme (PBS) — the government-subsidized drug scheme covering most prescription medicines in Australia. Search the PBS Schedule for "${query}" to find PBS item codes, max quantities, restrictions, and Approved Ex-Manufacturer Price (AEMP). Used as the primary drug cost input for Australian HEOR studies submitted to PBAC.`,
|
|
8
|
+
url: `https://www.pbs.gov.au/search/search?q=${encodeURIComponent(query)}`,
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
title: `PBAC Public Summary Documents — ${query}`,
|
|
12
|
+
abstract: `Pharmaceutical Benefits Advisory Committee (PBAC) Public Summary Documents (PSDs) detail the economic evidence and recommendations for drugs considered for PBS listing. Reviews include indication, comparator, cost-effectiveness, budget impact, and PBAC decision. Key resource for Australian HTA precedents.`,
|
|
13
|
+
url: `https://www.pbs.gov.au/info/industry/listing/elements/pbac-meetings/psd`,
|
|
14
|
+
},
|
|
15
|
+
{
|
|
16
|
+
title: `MBS Online — Medicare Benefits Schedule: ${query}`,
|
|
17
|
+
abstract: `Australian Medicare Benefits Schedule (MBS) lists all medical services with government-funded fee rebates. Search for item numbers, scheduled fees, and benefit amounts. Essential for costing outpatient and specialist services in Australian CE models.`,
|
|
18
|
+
url: `http://www9.health.gov.au/mbs/search.cfm?q=${encodeURIComponent(query)}&sopt=S`,
|
|
19
|
+
},
|
|
20
|
+
{
|
|
21
|
+
title: `AIHW Health Expenditure Data`,
|
|
22
|
+
abstract: `Australian Institute of Health and Welfare publishes health expenditure data annually, including recurrent health expenditure by source and area. Useful for Australian burden-of-illness and budget impact analyses.`,
|
|
23
|
+
url: "https://www.aihw.gov.au/reports-data/health-welfare-expenditure/health-expenditure",
|
|
24
|
+
},
|
|
25
|
+
];
|
|
26
|
+
return entries.slice(0, maxResults).map((e, i) => ({
|
|
27
|
+
id: `pbs_schedule_${i}`,
|
|
28
|
+
source: "pbs_schedule",
|
|
29
|
+
title: e.title,
|
|
30
|
+
authors: ["Australian Government Department of Health and Aged Care"],
|
|
31
|
+
date: new Date().getFullYear().toString(),
|
|
32
|
+
study_type: "pricing",
|
|
33
|
+
abstract: e.abstract,
|
|
34
|
+
url: e.url,
|
|
35
|
+
}));
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=pbsSchedule.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pbsSchedule.js","sourceRoot":"","sources":["../../../src/providers/direct/pbsSchedule.ts"],"names":[],"mappings":"AAEA,yFAAyF;AACzF,qFAAqF;AACrF,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAC,KAAa,EAAE,UAAkB;IACtE,MAAM,OAAO,GAAG;QACd;YACE,KAAK,EAAE,wBAAwB,KAAK,EAAE;YACtC,QAAQ,EAAE,2KAA2K,KAAK,uLAAuL;YACjX,GAAG,EAAE,0CAA0C,kBAAkB,CAAC,KAAK,CAAC,EAAE;SAC3E;QACD;YACE,KAAK,EAAE,mCAAmC,KAAK,EAAE;YACjD,QAAQ,EAAE,oTAAoT;YAC9T,GAAG,EAAE,yEAAyE;SAC/E;QACD;YACE,KAAK,EAAE,4CAA4C,KAAK,EAAE;YAC1D,QAAQ,EAAE,4PAA4P;YACtQ,GAAG,EAAE,8CAA8C,kBAAkB,CAAC,KAAK,CAAC,SAAS;SACtF;QACD;YACE,KAAK,EAAE,8BAA8B;YACrC,QAAQ,EAAE,uNAAuN;YACjO,GAAG,EAAE,oFAAoF;SAC1F;KACF,CAAC;IAEF,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACjD,EAAE,EAAE,gBAAgB,CAAC,EAAE;QACvB,MAAM,EAAE,cAAuB;QAC/B,KAAK,EAAE,CAAC,CAAC,KAAK;QACd,OAAO,EAAE,CAAC,0DAA0D,CAAC;QACrE,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,QAAQ,EAAE;QACzC,UAAU,EAAE,SAAS;QACrB,QAAQ,EAAE,CAAC,CAAC,QAAQ;QACpB,GAAG,EAAE,CAAC,CAAC,GAAG;KACX,CAAC,CAAC,CAAC;AACN,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pharmapendium.d.ts","sourceRoot":"","sources":["../../../src/providers/direct/pharmapendium.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAmBpD,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC,gBAAgB,EAAE,CAAC,CAqC7B"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { fetchViaProxy, getProxyUrl } from "./proxyClient.js";
|
|
2
|
+
// Elsevier Pharmapendium API
|
|
3
|
+
const BASE = "https://api.elsevier.com/content/pharmapendium/search";
|
|
4
|
+
export async function fetchPharmapendium(query, maxResults) {
|
|
5
|
+
// Try proxy first (user has Teva access via proxy)
|
|
6
|
+
if (getProxyUrl()) {
|
|
7
|
+
const proxyResults = await fetchViaProxy("pharmapendium", query, maxResults);
|
|
8
|
+
if (proxyResults.length > 0)
|
|
9
|
+
return proxyResults;
|
|
10
|
+
}
|
|
11
|
+
// Fall back to direct API call if key is set
|
|
12
|
+
const apiKey = process.env.PHARMAPENDIUM_API_KEY;
|
|
13
|
+
if (!apiKey)
|
|
14
|
+
return [];
|
|
15
|
+
try {
|
|
16
|
+
const url = `${BASE}?query=${encodeURIComponent(query)}&count=${maxResults}`;
|
|
17
|
+
const res = await fetch(url, {
|
|
18
|
+
headers: { "X-ELS-APIKey": apiKey, Accept: "application/json" },
|
|
19
|
+
});
|
|
20
|
+
if (!res.ok)
|
|
21
|
+
return [];
|
|
22
|
+
const data = (await res.json());
|
|
23
|
+
const results = data.results ?? [];
|
|
24
|
+
return results.slice(0, maxResults).map((r, i) => ({
|
|
25
|
+
id: `pharmapendium_${r.id ?? i}`,
|
|
26
|
+
source: "pharmapendium",
|
|
27
|
+
title: `${r.drugName ?? "Unknown"} — ${r.category ?? "Regulatory data"}`,
|
|
28
|
+
authors: [r.source ?? "Pharmapendium"],
|
|
29
|
+
date: r.date ?? "",
|
|
30
|
+
study_type: "regulatory",
|
|
31
|
+
abstract: r.summary ?? "",
|
|
32
|
+
url: "https://www.pharmapendium.com/",
|
|
33
|
+
}));
|
|
34
|
+
}
|
|
35
|
+
catch {
|
|
36
|
+
return [];
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=pharmapendium.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pharmapendium.js","sourceRoot":"","sources":["../../../src/providers/direct/pharmapendium.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAE9D,6BAA6B;AAC7B,MAAM,IAAI,GAAG,uDAAuD,CAAC;AAerE,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,KAAa,EACb,UAAkB;IAElB,mDAAmD;IACnD,IAAI,WAAW,EAAE,EAAE,CAAC;QAClB,MAAM,YAAY,GAAG,MAAM,aAAa,CACtC,eAAe,EACf,KAAK,EACL,UAAU,CACX,CAAC;QACF,IAAI,YAAY,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,YAAY,CAAC;IACnD,CAAC;IAED,6CAA6C;IAC7C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,qBAAqB,CAAC;IACjD,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,CAAC;IAEvB,IAAI,CAAC;QACH,MAAM,GAAG,GAAG,GAAG,IAAI,UAAU,kBAAkB,CAAC,KAAK,CAAC,UAAU,UAAU,EAAE,CAAC;QAC7E,MAAM,GAAG,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;YAC3B,OAAO,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,kBAAkB,EAAE;SAChE,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,CAAC,EAAE;YAAE,OAAO,EAAE,CAAC;QACvB,MAAM,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC,IAAI,EAAE,CAA0B,CAAC;QACzD,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,IAAI,EAAE,CAAC;QAEnC,OAAO,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;YACjD,EAAE,EAAE,iBAAiB,CAAC,CAAC,EAAE,IAAI,CAAC,EAAE;YAChC,MAAM,EAAE,eAAwB;YAChC,KAAK,EAAE,GAAG,CAAC,CAAC,QAAQ,IAAI,SAAS,MAAM,CAAC,CAAC,QAAQ,IAAI,iBAAiB,EAAE;YACxE,OAAO,EAAE,CAAC,CAAC,CAAC,MAAM,IAAI,eAAe,CAAC;YACtC,IAAI,EAAE,CAAC,CAAC,IAAI,IAAI,EAAE;YAClB,UAAU,EAAE,YAAY;YACxB,QAAQ,EAAE,CAAC,CAAC,OAAO,IAAI,EAAE;YACzB,GAAG,EAAE,gCAAgC;SACtC,CAAC,CAAC,CAAC;IACN,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC"}
|