Exemplo n.º 1
0
        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();
        }
Exemplo n.º 2
0
        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();
        }