Public
Edited
Aug 16, 2023
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
viewof ndc = Inputs.select( ndcs, {multiple: 5, width: 550, label: "Select one ndc"})
Insert cell
ndc_name = ndcToName(ndc[0])
Insert cell
Insert cell
Insert cell
Insert cell
Insert cell
ndcToName = async function(nadac_ndc){
var fda_url = "https://api.fda.gov/drug/ndc.json?search=product_ndc:";


if( nadac_ndc.slice(0,1) != 0 && nadac_ndc.slice(4,5) !== 0 && nadac_ndc.slice(5,6) == 0 ){
console.log("nadac_ndc.slice(0,1) != 0 && nadac_ndc.slice(4,5) !== 0 && nadac_ndc.slice(5,6) == 0 ")
//console.log(fda_url+'"'+ nadac_ndc.slice(0,5) + "-" + nadac_ndc.slice(5,9).replace(/^0/,'') +'"')

var results = ( await(await fetch(fda_url+'"'+ nadac_ndc.slice(0,5) + "-" + nadac_ndc.slice(5,9).replace(/^0/,'') +'"')).json()).results[0]
}else if(nadac_ndc.slice(0,1) == 0){
console.log("nadac_ndc.slice(0,1) == 0")
var results = ( await(await fetch(fda_url+'"'+nadac_ndc.slice(0,5).replace(/^0/,'') + "-"+nadac_ndc.slice(5,9)+'"')).json()).results[0]
}else if( nadac_ndc.slice(4,5) == 0 && nadac_ndc.slice(5,6) == 0 ){
console.log(" nadac_ndc.slice(4,5) == 0 && nadac_ndc.slice(5,6) == 0 ")

var results = ( await(await fetch(fda_url+'"'+ nadac_ndc.slice(0,5) + "-" + nadac_ndc.slice(5,9) +'"')).json()).results[0]

}else if(nadac_ndc.slice(5,6) == 0 ){
console.log("nadac_ndc.slice(5,6) == 0 ")
var results = ( await(await fetch(fda_url+'"'+ nadac_ndc.slice(0,5) + "-" + nadac_ndc.slice(5,9).replace(/^0/,'') +'"')).json()).results[0]
} else{
console.log("else")

var results = ( await(await fetch(fda_url+'"'+nadac_ndc.slice(0,5) + "-"+nadac_ndc.slice(5,9)+'"')).json()).results[0]
}
if (results.active_ingredients != undefined) {
var obj = results.active_ingredients[0]
var resultArray = "";
for (var key in obj) resultArray = resultArray.concat(obj[key]," ");
return resultArray
}else {
return results.brand_name;
}
}
Insert cell
getAllNdcs = async function () {
const ndcs = new Map();
for (let i = 0; i < nadacDistributions.length; i += 4){
if (i > nadacDistributions.length){
break;
}
const response = await sdk.getDatastoreQuerySql(`[SELECT ndc FROM ${nadacDistributions[i]}]`);
response.forEach(ndc => {ndcs.set(ndc["ndc"].slice(0,ndc["ndc"].length - 2), ndc["ndc"]);})
}
return [...ndcs.values()];
}
Insert cell
nadacDistributions = await Promise.all(await medicaid.filter(r => r.title.includes("(National Average Drug Acquisition Cost)")).map(r => {return sdk.convertDatasetToDistributionId(r.identifier)}))

Insert cell
ndcs = getAllNdcs()
Insert cell

Purpose-built for displays of data

Observable is your go-to platform for exploring data and creating expressive data visualizations. Use reactive JavaScript notebooks for prototyping and a collaborative canvas for visual data exploration and dashboard creation.
Learn more