protected void Page_Load(object sender, EventArgs e) { // In order to display the drug details, must have a single selection BabySafeRxData bsrd = new BabySafeRxData(); if (Session["babySafeData"] != null) { List<BabySafeRxData> babySafeDataList = (List<BabySafeRxData>)Session["babySafeData"]; if (Request["splId"] != null) { string splId = Convert.ToString(Request["splId"]); foreach (BabySafeRxData bsd in babySafeDataList) { if (bsd.splId.Equals(splId)) { // Match brandName.InnerText = bsd.brandName; genericName.InnerText = bsd.genericName; switch (bsd.riskLevel) { case "Low": riskImage.Src = "img/Risk-1.png"; riskText.InnerText = "Human studies show low risk for fetal harm."; noHumanStudiesText.InnerText = ""; break; case "Low*": riskImage.Src = "img/Risk-2.png"; riskText.InnerText = "Human studies show low* risk for fetal harm."; noHumanStudiesText.InnerText = "* no human studies"; break; case "Med": riskImage.Src = "img/Risk-3.png"; riskText.InnerText = "Human studies show medium risk for fetal harm. Consult a doctor for guidance before taking this drug while pregnant."; noHumanStudiesText.InnerText = ""; break; case "Med*": riskImage.Src = "img/Risk-4.png"; riskText.InnerText = "Human studies show medium* risk for fetal harm. Consult a doctor for guidance before taking this drug while pregnant."; noHumanStudiesText.InnerText = "* no human studies"; break; case "High": riskImage.Src = "img/Risk-5.png"; riskText.InnerText = "Human studies show high risk for fetal harm. Consult a doctor for guidance before taking this drug while pregnant."; noHumanStudiesText.InnerText = ""; break; default: riskImage.Src = "img/No-Data.png"; noHumanStudiesText.InnerText = "The risk level of this drug is unknown."; break; } pregnancyUse.InnerText = bsd.pregnancyUse; laborDelivery.InnerText = bsd.laborDeliveryUse; nursingUse.InnerText = bsd.nursingUse; usageText.InnerText = bsd.usage; ingredientsText.InnerText = bsd.ingredients; } } } } else { Response.Redirect("Home.aspx"); } }
public List<BabySafeRxData> callAPI(string searchText) { // string returnJson = ""; List<BabySafeRxData> babySafeList = new List<BabySafeRxData>(); if (searchText.Length > 0) { string openFdaApiKey = "?api_key=ovNVdm7TO3IlzJr8ABOS6Zpdad70SNsBV3NW757e"; string openFdaSearchDrugName = "&search=openfda.brand_name:{search}+openfda.generic_name:{search}"; string openFdaLimit = "&limit=50"; searchText = searchText.Replace(" ", "+"); openFdaSearchDrugName = openFdaSearchDrugName.Replace("{search}", searchText); var fdaUrl = this.OpenFdaSite + openFdaApiKey + openFdaLimit + openFdaSearchDrugName; WebRequest wrGetUrl; wrGetUrl = WebRequest.Create(fdaUrl); Stream objStream = null; try { objStream = wrGetUrl.GetResponse().GetResponseStream(); } catch (Exception ex) { log.Info(ex.Message); } if (objStream != null) { StreamReader objReader = new StreamReader(objStream); string sLine = ""; int i = 0; System.Text.StringBuilder result = new System.Text.StringBuilder(); while (sLine != null) { i++; sLine = objReader.ReadLine(); if (sLine != null) { result.Append(sLine); } } // Parse the JSON result if (result.Length > 0) { JsonTextReader jtr = new JsonTextReader(new StringReader(result.ToString())); // var js = new JsonSerializer(); JObject x = JObject.Parse(result.ToString()); // JToken rslt = x["results"]; IList<JToken> results = x["results"].Children().ToList(); foreach (JToken t in results) { BabySafeRxData bsrd = new BabySafeRxData(); bsrd.brandName = ""; bsrd.genericName = ""; bsrd.ingredients = ""; bsrd.laborDeliveryUse = ""; bsrd.nursingUse = ""; bsrd.pregnancyUse = ""; bsrd.riskLevel = ""; bsrd.usage = ""; // bsrd.alternativeDrugs = new List<AlternativeDrugs>(); string id = t["openfda"]["spl_id"][0].ToString(); bsrd.splId = id; if (t["openfda"]["brand_name"] != null) { bsrd.brandName = t["openfda"]["brand_name"][0].ToString(); } if (t["openfda"]["generic_name"] != null) { bsrd.genericName = t["openfda"]["generic_name"][0].ToString(); } if (t["spl_product_data_elements"] != null) { bsrd.ingredients = t["spl_product_data_elements"][0].ToString().ToUpper(); int endNdx = bsrd.ingredients.IndexOf(';'); if (endNdx > 0) { bsrd.ingredients = bsrd.ingredients.Substring(0, endNdx - 1); } } if (t["labor_and_delivery"] != null) { bsrd.laborDeliveryUse = t["labor_and_delivery"][0].ToString(); } if (t["nursing_mothers"] != null) { bsrd.nursingUse = t["nursing_mothers"][0].ToString(); } if (t["pregnancy"] != null) { bsrd.pregnancyUse = t["pregnancy"][0].ToString(); bsrd.pregnancyUse = Regex.Replace(bsrd.pregnancyUse, "\\d.\\d .+?\\. ", ""); } bsrd.riskLevel = "Unknown"; if (t["teratogenic_effects"] != null) { string teratogenic_effects = t["teratogenic_effects"][0].ToString(); if (teratogenic_effects.Contains("Pregnancy Category A")) { bsrd.riskLevel = "Low"; } else if (teratogenic_effects.Contains("Pregnancy Category B")) { bsrd.riskLevel = "Low*"; } else if (teratogenic_effects.Contains("Pregnancy Category C")) { bsrd.riskLevel = "Med"; } else if (teratogenic_effects.Contains("Pregnancy Category D")) { bsrd.riskLevel = "Med*"; } else if (teratogenic_effects.Contains("Pregnancy Category X")) { bsrd.riskLevel = "High*"; } } if (t["indications_and_usage"] != null) { bsrd.usage = t["indications_and_usage"][0].ToString(); bsrd.usage = bsrd.usage.Replace("INDICATIONS AND USAGE: ", ""); bsrd.usage = bsrd.usage.Replace("1 INDICATIONS AND USAGE", ""); } babySafeList.Add(bsrd); } } } } return babySafeList; }