private void updateClassification_Tree()
        {
            try
            {
                QueryServiceManager.query query = new QueryServiceManager.query();
                query.resource = "cgMDR-Classification-Tree";
                query.term = (string)cbClassificationSchemes.SelectedValue;
                QueryServiceManager.@return r = qsm.query(query);
                if (r.resultset.Items.Length != 1)
                {
                    MessageBox.Show("Error getting classification tree for: " + query.term);
                }

                QueryServiceManager.node root = (QueryServiceManager.node)r.resultset.Items[0];
                classificationTree.BeginUpdate();
                TreeNode rootNode = buildTree(root);
                classificationTree.Nodes.Clear();
                classificationTree.Nodes.Add(rootNode);
                classificationTree.EndUpdate();
                rootNode.Expand();
            }
            catch (Exception)
            {
                //MessageBox.Show("cbClassificationSchemes_SelectedIndexChanged: " + ex.Message);
            }
        }
        protected void search(object sender, EventArgs e)
        {
            try
            {
                if (txtTerm.Text == null || txtTerm.Text.Length == 0)
                {
                    //statusMsg.ForeColor = Color.Red;
                    //statusMsg.Text = "No search term.";
                    //statusMsg.Update();
                    SetErrorStatus("No search term.");
                    return;
                }

                btnUse.Enabled = false;
                btnBack.Enabled = false;
                btnForward.Enabled = false;
                lstResults.Items.Clear();
                lstResults.Update();
                wbDetailsDef.DocumentText = "";
                wbDetailsPropsValues.DocumentText = "";

                //statusMsg.ForeColor = Color.Blue;
                //statusMsg.Text = "Querying...";
                //statusMsg.Update();
                SetStatus("Querying...");
                this.Cursor = Cursors.WaitCursor;

                QueryServiceManager.query query = new QueryServiceManager.query();
                query.resource = cbResources.SelectedValue.ToString();

                query.term = txtTerm.Text;
                if (currentPage == 0)
                {
                    query.startIndex = currentPage;
                }
                else
                {
                    query.startIndex = currentPage * pageSize;
                }
                query.numResults = pageSize + 1;

                string response = qsm.queryString(query);

                lastResult = new XmlDocument();
                lastResult.LoadXml(response);

                nsmanager = new XmlNamespaceManager(lastResult.NameTable);
                nsmanager.AddNamespace("rs", "http://cancergrid.org/schema/result-set");

                XmlNodeList nodeList = lastResult.DocumentElement.SelectNodes("/rs:result-set/rs:data-element", nsmanager);
                if (nodeList == null || nodeList.Count == 0)
                {
                    nodeList = lastResult.DocumentElement.SelectNodes("/rs:result-set/rs:concept", nsmanager);

                    if (nodeList == null || nodeList.Count == 0)
                    {
                        nodeList = lastResult.DocumentElement.SelectNodes("/rs:result-set/rs:object-class", nsmanager);

                        if (nodeList == null || nodeList.Count == 0)
                            nodeList = lastResult.DocumentElement.SelectNodes("/rs:result-set/rs:property", nsmanager);
                    }
                }

                if (nodeList == null || nodeList.Count == 0)
                {
                    //statusMsg.Text = "No result";
                    SetStatus("No result");
                    this.Cursor = Cursors.Default;
                    return;
                }

                listResults(nodeList, lstResults);
                btnUse.Enabled = true;

                if (currentPage > 0)
                {
                    btnBack.Enabled = true;
                }

                if (nodeList.Count >= pageSize)
                {
                    btnForward.Enabled = true;
                }

                //statusMsg.Text = "Query completed.";
                SetStatus("Query completed");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
                //statusMsg.ForeColor = Color.Red;
                //statusMsg.Text = "Query fail";
                SetErrorStatus("Query fail");

            }
            this.Cursor = Cursors.Default;
        }
 private void InitClassificationSchemes()
 {
     try
     {
         QueryServiceManager.query query = new QueryServiceManager.query();
         query.resource = "cgMDR-Classification-Schemes";
         QueryServiceManager.@return r = qsm.query(query);
         if (r.resultset.Items.Length > 0)
         {
             classification_schemes = new List<QueryServiceManager.classification_scheme>();
             foreach (QueryServiceManager.classification_scheme cs in r.resultset.Items)
             {
                 classification_schemes.Add(cs);
             }
         }
     }
     catch (Exception)
     {
         MessageBox.Show("Fail to initialize classification resources");
     }
 }
        private void searchCLS(object sender, EventArgs e)
        {
            try
            {
                if (classificationTree.SelectedNode == null)
                {
                    //statusMsgCLS.ForeColor = Color.Red;
                    //statusMsgCLS.Text = "No node selected";
                    //statusMsgCLS.Update();
                    SetErrorStatus("No node selected");
                    return;
                }
                TreeNode selectedNode = classificationTree.SelectedNode;
                QueryServiceManager.query query = new QueryServiceManager.query();
                query.resource = "cgMDR-with-Classification";
                query.term = "*";
                query.src = selectedNode.Tag.ToString();
                if (currentPageCLS == 0)
                {
                    query.startIndex = currentPageCLS;
                }
                else
                {
                    query.startIndex = currentPageCLS * pageSizeCLS;
                }
                query.numResults = pageSizeCLS + 1;

                lstClassificationQueryResult.Items.Clear();
                wbClassificationQueryResultDef.DocumentText = "";
                wbClassificationQueryResultValueDomain.DocumentText = "";

                //statusMsgCLS.ForeColor = Color.Blue;
                //statusMsgCLS.Text = "Querying...";
                //statusMsgCLS.Update();
                SetStatus("Querying...");
                this.Cursor = Cursors.WaitCursor;
                btnCLSUse.Enabled = false;
                string response = qsm.queryString(query);

                lastClassificationQueryResult = new XmlDocument();
                lastClassificationQueryResult.LoadXml(response);

                nsmanager = new XmlNamespaceManager(lastClassificationQueryResult.NameTable);
                nsmanager.AddNamespace("rs", "http://cancergrid.org/schema/result-set");

                XmlNodeList nodeList = lastClassificationQueryResult.DocumentElement.SelectNodes("/rs:result-set/rs:data-element", nsmanager);
                if (nodeList == null || nodeList.Count == 0)
                {
                    //statusMsgCLS.Text = "No result";
                    //statusMsgCLS.Update();
                    SetStatus("No result");
                    this.Cursor = Cursors.Default;
                    return;
                }

                listResults(nodeList, lstClassificationQueryResult);
                if (nodeList.Count > 0)
                {
                    btnCLSUse.Enabled = true;
                }

                if (currentPageCLS > 0)
                {
                    btnBackCLS.Enabled = true;
                }

                if (nodeList.Count >= pageSizeCLS)
                {
                    btnForwardCLS.Enabled = true;
                }

                //statusMsgCLS.Text = "Query complete";
                //statusMsgCLS.Update();
                SetStatus("Query complete");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                //statusMsg.ForeColor = Color.Red;
                //statusMsg.Text = "Query fail";
                //statusMsgCLS.Update();
                SetErrorStatus("Query fail");
            }
            this.Cursor = Cursors.Default;
        }
예제 #5
0
        protected void search(object sender, EventArgs e)
        {
            try
            {
                if (txtTerm.Text == null || txtTerm.Text.Length == 0)
                {
                    //statusMsg.ForeColor = Color.Red;
                    //statusMsg.Text = "No search term.";
                    //statusMsg.Update();
                    SetErrorStatus("No search term.");
                    return;
                }

                btnAnnotate.Enabled = false;
                btnUse.Enabled = false;
                btnBack.Enabled = false;
                btnForward.Enabled = false;
                lstResults.Items.Clear();
                lstResults.Update();
                wbDetailsDef.DocumentText = "";
                wbDetailsPropsValues.DocumentText = "";

                //statusMsg.ForeColor = Color.Blue;
                //statusMsg.Text = "Querying...";
                //statusMsg.Update();
                SetStatus("Querying...");
                this.Cursor = Cursors.WaitCursor;

                QueryServiceManager.query query = new QueryServiceManager.query();
                query.resource = cbResources.SelectedValue.ToString();

                query.term = txtTerm.Text;
                if (currentPage == 0)
                {
                    query.startIndex = currentPage;
                }
                else
                {
                    query.startIndex = currentPage * pageSize;
                }
                //Workaround for SDK caused caDSR API bug.
                //Double page size to have full page after filtering.
                query.numResults = pageSize*2;
                //if (currentPage > 0)
                //    query.numResults = 200+(pageSize*currentPage)+1;

                string response = qsm.queryString(query);

                lastResult = new XmlDocument();
                lastResult.LoadXml(response);

                nsmanager = new XmlNamespaceManager(lastResult.NameTable);
                nsmanager.AddNamespace("rs", "http://cancergrid.org/schema/result-set");

                int rstSize = 8;
                string[] resultSetTypes = new string[rstSize];
                resultSetTypes[0] = "data-element";
                resultSetTypes[1] = "object-class";
                resultSetTypes[2] = "property-expanded";
                resultSetTypes[3] = "representation-term";
                resultSetTypes[4] = "data-element-concept";
                resultSetTypes[5] = "conceptual-domain";
                resultSetTypes[6] = "values";
                resultSetTypes[7] = "concept";

                XmlNodeList nodeList = null;
                for (int i = 0; i < rstSize; i++)
                {
                    nodeList = lastResult.DocumentElement.SelectNodes("/rs:result-set/rs:"+resultSetTypes[i], nsmanager);
                    //if (i > 6)
                    //    btnAnnotate.Enabled = false;
                    //else
                        btnAnnotate.Enabled = true;

                    if (nodeList != null && nodeList.Count > 0)
                        break;

                }
                if (nodeList == null || nodeList.Count == 0)
                {
                    //statusMsg.Text = "No result";
                    SetStatus("No result");
                    this.Cursor = Cursors.Default;
                    return;
                }

                //statusMsg.Text = "Query completed.";
                SetStatus("Listing results");

                listResults(nodeList, lstResults);
                btnUse.Enabled = true;

                if (currentPage > 0)
                {
                    btnBack.Enabled = true;
                }

                if (nodeList.Count > pageSize)
                {
                    btnForward.Enabled = true;
                }
                SetStatus("Query Completed");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.ToString());
                //statusMsg.ForeColor = Color.Red;
                //statusMsg.Text = "Query fail";
                SetErrorStatus("Query fail");

            }
            this.Cursor = Cursors.Default;
        }
예제 #6
0
 /// <remarks/>
 public void queryStringAsync(query query1, object userState) {
     if ((this.queryStringOperationCompleted == null)) {
         this.queryStringOperationCompleted = new System.Threading.SendOrPostCallback(this.OnqueryStringOperationCompleted);
     }
     this.InvokeAsync("queryString", new object[] {
                 query1}, this.queryStringOperationCompleted, userState);
 }
예제 #7
0
 /// <remarks/>
 public void queryStringAsync(query query1) {
     this.queryStringAsync(query1, null);
 }
예제 #8
0
 /// <remarks/>
 public void queryAsync(query query1) {
     this.queryAsync(query1, null);
 }
        private void searchCLS(object sender, EventArgs e)
        {
            try
            {
                if (classificationTree.SelectedNode == null)
                {
                    SetErrorStatus("No node selected");
                    return;
                }
                TreeNode selectedNode = classificationTree.SelectedNode;
                QueryServiceManager.query query = new QueryServiceManager.query();
                query.resource = "openMDR-with-Classification";
                query.Items = new string[] { "*" };
                query.ItemsElementName = new global::QueryServiceControl.QueryServiceManager.ItemsChoiceType[]{
                    global::QueryServiceControl.QueryServiceManager.ItemsChoiceType.term };
                query.src = selectedNode.Tag.ToString();
                if (currentPageCLS == 0)
                {
                    query.startIndex = currentPageCLS;
                }
                else
                {
                    query.startIndex = currentPageCLS * pageSizeCLS;
                }
                query.numResults = pageSizeCLS + 1;

                lstClassificationQueryResult.Items.Clear();
                wbClassificationQueryResultDef.DocumentText = "";
                wbClassificationQueryResultValueDomain.DocumentText = "";

                SetStatus("Querying...");
                this.Cursor = Cursors.WaitCursor;
                btnCLSUse.Enabled = false;

                QueryServiceManager.QueryRequestQuery req = new global::QueryServiceControl.QueryServiceManager.QueryRequestQuery();
                req.query = query;
                lastClassificationQueryResult = qsm.query(req);

                if (lastClassificationQueryResult.Items.Length <= 0)
                {
                    SetStatus("No result");
                    this.Cursor = Cursors.Default;
                    return;
                }

                listResults(lastClassificationQueryResult.Items, lstClassificationQueryResult);
                if (lastClassificationQueryResult.Items.Length > 0)
                {
                    btnCLSUse.Enabled = true;
                }

                if (currentPageCLS > 0)
                {
                    btnBackCLS.Enabled = true;
                }

                if (lastClassificationQueryResult.Items.Length >= pageSizeCLS)
                {
                    btnForwardCLS.Enabled = true;
                }

                SetStatus("Query complete");
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
                SetErrorStatus("Query failed");
            }
            this.Cursor = Cursors.Default;
        }