protected void grdPubMedSearchResults_PageIndexChanging(object sender, GridViewPageEventArgs e) { //add checks to ds foreach (GridViewRow row in grdPubMedSearchResults.Rows) { CheckBox cb = (CheckBox)row.FindControl("chkPubMed"); if (cb.Checked) { PubMedResults.Tables["Results"].Rows[row.RowIndex]["checked"] = "1"; } else { PubMedResults.Tables["Results"].Rows[row.RowIndex]["checked"] = "0"; } } PubMedResults.AcceptChanges(); grdPubMedSearchResults.PageIndex = e.NewPageIndex; grdPubMedSearchResults.DataSource = PubMedResults; grdPubMedSearchResults.DataBind(); upnlEditSection.Update(); }
protected void btnPubMedSearch_OnClick(object sender, EventArgs e) { string value = ""; if (rdoPubMedKeyword.Checked) { string andString = ""; value = "("; if (txtSearchAuthor.Text.Length > 0) { string inputString = txtSearchAuthor.Text.Trim(); inputString = inputString.Replace("\r\n", "|"); inputString = inputString.Replace("\n", "|"); string[] split = inputString.Split('|'); for (int i = 0; i < split.Length; i++) { value = value + andString + "(" + split[i] + "[Author])"; andString = " AND "; } } if (txtSearchAffiliation.Text.Length > 0) { value = value + andString + "(" + txtSearchAffiliation.Text + "[Affiliation])"; andString = " AND "; } if (txtSearchKeyword.Text.Length > 0) { value = value + andString + "((" + txtSearchKeyword.Text + "[Title/Abstract]) OR (" + txtSearchKeyword.Text + "[MeSH Terms]))"; } value = value + ")"; } else if (rdoPubMedQuery.Checked) { value = txtPubMedQuery.Text.Trim(); } string orString = ""; string idValues = ""; if (chkPubMedExclude.Checked) { foreach (GridViewRow gvr in grdEditPublications.Rows) { HiddenField hdn = (HiddenField)gvr.FindControl("hdnPMID"); idValues = idValues + orString + hdn.Value; orString = ","; } } Hashtable MyParameters = new Hashtable(); string uri = "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esearch.fcgi?db=pubmed&usehistory=y&retmax=100&retmode=xml&term=" + value; System.Xml.XmlDocument myXml = new System.Xml.XmlDocument(); myXml.LoadXml(this.HttpPost(uri, "Catalyst", "text/plain")); XmlNodeList xnList; string queryKey = ""; string webEnv = ""; xnList = myXml.SelectNodes("/eSearchResult"); try { foreach (XmlNode xn in xnList) { queryKey = xn["QueryKey"].InnerText; webEnv = xn["WebEnv"].InnerText; } } catch (Exception ex) { //do nothing. its a blank search } uri = "https://eutils.ncbi.nlm.nih.gov/entrez/eutils/esummary.fcgi?retmin=0&retmax=100&retmode=xml&db=Pubmed&query_key=" + queryKey + "&webenv=" + webEnv; myXml.LoadXml(this.HttpPost(uri, "Catalyst", "text/plain")); string pubMedAuthors = ""; string pubMedTitle = ""; string pubMedSO = ""; string pubMedID = ""; string seperator = ""; PubMedResults.Tables.Clear(); PubMedResults.Tables.Add("Results"); PubMedResults.Tables["Results"].Columns.Add(new System.Data.DataColumn("pmid")); PubMedResults.Tables["Results"].Columns.Add(new System.Data.DataColumn("citation")); PubMedResults.Tables["Results"].Columns.Add(new System.Data.DataColumn("checked")); XmlNodeList docSums = myXml.SelectNodes("eSummaryResult/DocSum"); foreach (XmlNode docSum in docSums) { pubMedAuthors = ""; pubMedTitle = ""; pubMedSO = ""; pubMedID = ""; seperator = ""; XmlNodeList authors = docSum.SelectNodes("Item[@Name='AuthorList']/Item[@Name='Author']"); foreach (XmlNode author in authors) { pubMedAuthors = pubMedAuthors + seperator + author.InnerText; seperator = ", "; } pubMedTitle = docSum.SelectSingleNode("Item[@Name='Title']").InnerText; pubMedSO = docSum.SelectSingleNode("Item[@Name='SO']").InnerText; pubMedID = docSum.SelectSingleNode("Id").InnerText; if (!idValues.Contains(pubMedID)) { DataRow myDataRow = PubMedResults.Tables["Results"].NewRow(); myDataRow["pmid"] = pubMedID; myDataRow["checked"] = "0"; myDataRow["citation"] = pubMedAuthors + "; " + pubMedTitle + "; " + pubMedSO; PubMedResults.Tables["Results"].Rows.Add(myDataRow); PubMedResults.AcceptChanges(); } } grdPubMedSearchResults.DataSource = PubMedResults; grdPubMedSearchResults.DataBind(); lblPubMedResultsHeader.Text = "PubMed Results (" + PubMedResults.Tables["Results"].Rows.Count.ToString() + ")"; if (PubMedResults.Tables[0].Rows.Count == 0) { lnkUpdatePubMed.Visible = false; } pnlAddPubMedResults.Visible = true; btnImgAddPubMed.ImageUrl = Root.Domain + "/Framework/images/icon_squareDownArrow.gif"; phAddCustom.Visible = false; phAddPub.Visible = false; phDeletePub.Visible = false; pnlAddPubMed.Visible = false; pnlAddPubById.Visible = false; pnlAddCustomPubMed.Visible = false; phSecuritySettings.Visible = false; Session["pnlAddPubMed.Visible"] = null; upnlEditSection.Update(); }