static public QueryRequestCqlQuery createQueryRequestCqlQuery(string name, string[] queryModifierItems, ItemsChoiceType[] queryModifierItemsChoiceType1,
                                                                      Association targetAssociation, Group targetGroup)
        {
            var arg = new QueryRequestCqlQuery();

            arg.CQLQuery             = new CQLQuery();
            arg.CQLQuery.Target      = new Object();
            arg.CQLQuery.Target.name = name;
            if ((queryModifierItems != null) && (queryModifierItemsChoiceType1 != null))
            {
                arg.CQLQuery.QueryModifier                  = new QueryModifier();
                arg.CQLQuery.QueryModifier.countOnly        = false;
                arg.CQLQuery.QueryModifier.Items            = queryModifierItems;
                arg.CQLQuery.QueryModifier.ItemsElementName = queryModifierItemsChoiceType1;
            }
            if (targetAssociation != null)
            {
                arg.CQLQuery.Target.Item = targetAssociation;
            }
            else if (targetGroup != null)
            {
                arg.CQLQuery.Target.Item = targetGroup;
            }

            return(arg);
        }
        public static QueryRequestCqlQuery createQueryRequestCqlQuery(string name, string[] queryModifierItems, ItemsChoiceType[] queryModifierItemsChoiceType1,
            Association targetAssociation, Group targetGroup)
        {
            QueryRequestCqlQuery arg = new QueryRequestCqlQuery();
            arg.CQLQuery = new CQLQuery();
            arg.CQLQuery.Target = new Object();
            arg.CQLQuery.Target.name = name;
            if ((queryModifierItems != null) && (queryModifierItemsChoiceType1 != null))
            {
                arg.CQLQuery.QueryModifier = new QueryModifier();
                arg.CQLQuery.QueryModifier.countOnly = false;
                arg.CQLQuery.QueryModifier.Items = queryModifierItems;
                arg.CQLQuery.QueryModifier.ItemsElementName = queryModifierItemsChoiceType1;
            }
            if (targetAssociation != null)
                arg.CQLQuery.Target.Item = targetAssociation;
            else if (targetGroup != null)
                arg.CQLQuery.Target.Item = targetGroup;

            return arg;
        }
 internal static string ToXml(QueryRequestCqlQuery arg, QueryRequestCqlQuery arg1)
 {
     throw new NotImplementedException();
 }
Esempio n. 4
0
        private CQLQueryResults getTrialDataProvenanceCQLInfo(string endPointUrl)
        {
            object[]        obj;
            CQLQueryResults result;
            Association     assoClinicalTrialSite     = null;
            Association     assoClinicalTrialProtocol = null;
            Association     assoClinicalTrialSubject  = null;
            Association     assoImage           = null;
            Association     assoSeries          = null;
            Association     assoStudy           = null;
            Association     assoPatient         = null;
            ArrayList       results             = new ArrayList();
            NCIACoreServicePortTypeClient proxy = new NCIACoreServicePortTypeClient();

            proxy.Endpoint.Address = new System.ServiceModel.EndpointAddress(endPointUrl);
            string[]          items            = new string[] { "project", "siteId", "siteName" }; // On caGrid site it has the front not "dpSiteId", "dpSiteName"!!!
            ItemsChoiceType[] itemsChoiceType1 = new ItemsChoiceType[] {
                ItemsChoiceType.AttributeNames, ItemsChoiceType.AttributeNames, ItemsChoiceType.AttributeNames
            };
            // ClinicalTrial Site
            assoClinicalTrialSite = null;
            obj     = null;
            results = new ArrayList();
            if (!_queryParameters.SiteId.IsEmpty)
            {
                results.Add(this.CreateAttribute("siteId", _queryParameters.SiteId));
            }
            if (!_queryParameters.SiteName.IsEmpty)
            {
                results.Add(this.CreateAttribute("siteName", _queryParameters.SiteName));
            }
            if (results.Count > 0)
            {
                obj = (object[])results.ToArray(typeof(object));
            }
            if (obj != null)
            {
                Group grpClinicalTrialSite = CreateQRAttrAssoGroup.createGroup(obj, LogicalOperator.AND);
                assoClinicalTrialSite = CreateQRAttrAssoGroup.createAssociation("gov.nih.nci.ncia.domain.ClinicalTrialSite", "site", grpClinicalTrialSite);
            }
            // ClinicalTrial Protocol
            assoClinicalTrialProtocol = null;
            obj     = null;
            results = new ArrayList();
            if (!_queryParameters.ProtocolId.IsEmpty)
            {
                results.Add(this.CreateAttribute("protocolId", _queryParameters.ProtocolId));
            }
            if (!_queryParameters.ProtocolName.IsEmpty)
            {
                results.Add(this.CreateAttribute("protocolName", _queryParameters.ProtocolName));
            }
            if (results.Count > 0)
            {
                obj = (object[])results.ToArray(typeof(object));
            }
            if (obj != null)
            {
                Group grpClinicalTrialProtocol = CreateQRAttrAssoGroup.createGroup(obj, LogicalOperator.AND);
                assoClinicalTrialProtocol = CreateQRAttrAssoGroup.createAssociation("gov.nih.nci.ncia.domain.ClinicalTrialProtocol",
                                                                                    "protocol", grpClinicalTrialProtocol);
            }
            // Clinical Trial Subject
            obj     = null;
            results = new ArrayList();
            assoClinicalTrialSubject = null;
            if (assoClinicalTrialSite != null)
            {
                results.Add(assoClinicalTrialSite);
            }
            if (assoClinicalTrialProtocol != null)
            {
                results.Add(assoClinicalTrialProtocol);
            }
            if (results.Count > 0)
            {
                obj = (object[])results.ToArray(typeof(object));
            }
            if (obj != null)
            {
                Group grpClinicalTrialSubject = CreateQRAttrAssoGroup.createGroup(obj, LogicalOperator.AND);
                assoClinicalTrialSubject = CreateQRAttrAssoGroup.createAssociation("gov.nih.nci.ncia.domain.ClinicalTrialSubject",
                                                                                   "subjectCollection", grpClinicalTrialSubject);
            }

            // Image
            assoImage = null;
            if (!_queryParameters.SliceThickness.IsEmpty)
            {
                Attribute attrPatient = this.CreateAttribute("sliceThickness", _queryParameters.SliceThickness);
                Group     grpPatient  = CreateQRAttrAssoGroup.createGroup(attrPatient, LogicalOperator.AND);
                assoImage = CreateQRAttrAssoGroup.createAssociation("gov.nih.nci.ncia.domain.Image", "imageCollection", grpPatient);
            }
            // Series
            results    = new ArrayList();
            assoSeries = null;
            obj        = null;
            if (assoImage != null)
            {
                results.Add(assoImage);
            }
            if (!_queryParameters.Modality.IsEmpty)
            {
                results.Add(this.CreateAttribute("modality", _queryParameters.Modality));
            }
            if (results.Count > 0)
            {
                obj = (object[])results.ToArray(typeof(object));
            }
            if (obj != null)
            {
                Group grpSeries = CreateQRAttrAssoGroup.createGroup(obj, LogicalOperator.AND);
                assoSeries = CreateQRAttrAssoGroup.createAssociation("gov.nih.nci.ncia.domain.Series", "seriesCollection", grpSeries);
            }
            // Study
            obj       = null;
            assoStudy = null;
            results   = new ArrayList();
            if (assoSeries != null)
            {
                results.Add(assoSeries);
            }
            if (!_queryParameters.StudyInstanceUID.IsEmpty)
            {
                results.Add(this.CreateAttribute("studyInstanceUID", _queryParameters.StudyInstanceUID));
            }
            assoStudy = null;
            if (results.Count > 0)
            {
                obj = (object[])results.ToArray(typeof(object));
            }
            if (obj != null)
            {
                Group groupStudy = CreateQRAttrAssoGroup.createGroup(obj, LogicalOperator.AND);
                assoStudy = CreateQRAttrAssoGroup.createAssociation("gov.nih.nci.ncia.domain.Study", "studyCollection", groupStudy);
            }
            // Patient
            obj     = null;
            results = new ArrayList();
            if (assoStudy != null)
            {
                results.Add(assoStudy);
            }
            if (assoClinicalTrialSubject != null)
            {
                results.Add(assoClinicalTrialSubject);
            }
            if (!_queryParameters.PatientBirthDate.IsEmpty)
            {
                results.Add(this.CreateAttribute("patientBirthDate", _queryParameters.PatientBirthDate));
            }
            if (!_queryParameters.PatientId.IsEmpty)
            {
                results.Add(this.CreateAttribute("patientId", _queryParameters.PatientId));
            }
            if (!_queryParameters.PatientName.IsEmpty)
            {
                results.Add(this.CreateAttribute("patientName", _queryParameters.PatientName));
            }
            if (!_queryParameters.PatientSex.IsEmpty)
            {
                results.Add(this.CreateAttribute("patientSex", _queryParameters.PatientSex));
            }
            if (results.Count > 0)
            {
                obj = (object[])results.ToArray(typeof(object));
            }
            if (obj != null)
            {
                Group patientGroup = CreateQRAttrAssoGroup.createGroup(obj, LogicalOperator.AND);
                assoPatient = CreateQRAttrAssoGroup.createAssociation("gov.nih.nci.ncia.domain.Patient", "patientCollection", patientGroup);
            }
            // TrialDataProvenance (ROOT)
            obj     = null;
            results = new ArrayList();
            if (assoPatient != null)
            {
                results.Add(assoPatient);
            }
            if (!_queryParameters.ProjectName.IsEmpty)
            {
                results.Add(this.CreateAttribute("project", _queryParameters.ProjectName));
            }

            if (results.Count > 0)
            {
                obj = (object[])results.ToArray(typeof(object));
            }
            Group groupTrialDataProvenance = null;

            if (obj != null)
            {
                groupTrialDataProvenance = CreateQRAttrAssoGroup.createGroup(obj, LogicalOperator.AND);
            }
            QueryRequestCqlQuery arg = CreateQRAttrAssoGroup.createQueryRequestCqlQuery("gov.nih.nci.ncia.domain.TrialDataProvenance", items, itemsChoiceType1, null, groupTrialDataProvenance);

            XmlDocument doc = XMLSerializingDeserializing.Serialize(arg);

            Console.WriteLine(((System.Xml.XmlDocument)((System.Xml.XmlNode)(doc))).InnerXml);

            try
            {
                result = proxy.query(arg);
            }
            catch (System.Net.WebException ex)
            {
                System.Console.WriteLine(ex.Message);
                result = null;
            }
            catch (Exception e)
            {
                System.Console.WriteLine(e.Message);
                result = null;
                throw new GridServicerException("Error querying NCIA Grid", e);
            }
            return(result);
        }
Esempio n. 5
0
 internal static string ToXml(QueryRequestCqlQuery arg, QueryRequestCqlQuery arg1)
 {
     throw new NotImplementedException();
 }
        private CQLQueryResults getImageAnnotationCQLInfo()
        {
            object[]    obj      = null;
            Attribute   attrTemp = null;
            Association assoTemp = null;
            var         proxy    = new AIM3DataServicePortTypeClient();

            proxy.Endpoint.Address = new System.ServiceModel.EndpointAddress(AIMDataServiceSettings.Default.AIMDataServiceUrl);
            var         associationList = new ArrayList();
            Association aecAssociation  = null;

            foreach (var queryData in _queryParameters.AecQueryParameters)
            {
                var results = new ArrayList();
                if (!queryData.CodeValue.IsEmpty)
                {
                    results.Add(CreateAttribute("codeValue", queryData.CodeValue));
                }
                //if (!queryData.CodeMeaning.IsEmpty)
                results.Add(CreateAttribute("codeMeaning", queryData.CodeMeaning));
                if (!queryData.CodingSchemeDesignator.IsEmpty)
                {
                    results.Add(CreateAttribute("codingSchemeDesignator", queryData.CodingSchemeDesignator));
                }
                if (!queryData.CodingSchemeVersion.IsEmpty)
                {
                    results.Add(CreateAttribute("codingSchemeVersion", queryData.CodingSchemeVersion));
                }
                if (!queryData.Confidence.IsEmpty)
                {
                    results.Add(CreateAttribute("annotatorConfidence", queryData.Confidence));
                }
                if (results.Count > 0)
                {
                    obj = (object[])results.ToArray(typeof(object));
                }
                if (obj != null && obj.Length > 0)
                {
                    Group grpAnnatomicEntityCharacteristic = null;
                    if (obj.Length > 1)
                    {
                        grpAnnatomicEntityCharacteristic = CreateQRAttrAssoGroup.createGroup(obj, LogicalOperator.AND);
                        obj = null;
                    }
                    else
                    {
                        attrTemp = obj[0] as Attribute;
                    }

                    aecAssociation = CreateQRAttrAssoGroup.createAssociation("edu.northwestern.radiology.aim.AnatomicEntityCharacteristic", "anatomicEntityCharacteristicCollection", grpAnnatomicEntityCharacteristic, attrTemp, null);
                }
            }

            obj = null;
            if (aecAssociation != null && _queryParameters.AeQueryParameters.Count == 0)
            {
                var queryData = new AimAnatomicEntityQueryData();
                queryData.CodeMeaning = new QueryData(String.Empty, QueryPredicate.LIKE);
                _queryParameters.AeQueryParameters.Add(queryData);
            }
            foreach (var queryData in _queryParameters.AeQueryParameters)
            {
                var results = new ArrayList();
                if (!queryData.CodeValue.IsEmpty)
                {
                    results.Add(CreateAttribute("codeValue", queryData.CodeValue));
                }
                //if (!queryData.CodeMeaning.IsEmpty)
                results.Add(CreateAttribute("codeMeaning", queryData.CodeMeaning));
                if (!queryData.CodingSchemeDesignator.IsEmpty)
                {
                    results.Add(CreateAttribute("codingSchemeDesignator", queryData.CodingSchemeDesignator));
                }
                if (!queryData.CodingSchemeVersion.IsEmpty)
                {
                    results.Add(CreateAttribute("codingSchemeVersion", queryData.CodingSchemeVersion));
                }
                if (!queryData.Confidence.IsEmpty)
                {
                    results.Add(CreateAttribute("annotatorConfidence", queryData.Confidence));
                }
                if (aecAssociation != null)
                {
                    results.Add(aecAssociation);
                }
                if (results.Count > 0)
                {
                    obj = (object[])results.ToArray(typeof(object));
                }
                if (obj != null && obj.Length > 0)
                {
                    Group grpAnnatomicEntity = null;
                    if (obj.Length > 1)
                    {
                        grpAnnatomicEntity = CreateQRAttrAssoGroup.createGroup(obj, LogicalOperator.AND);
                        obj = null;
                    }
                    else
                    {
                        attrTemp = obj[0] as Attribute;
                    }
                    associationList.Add(CreateQRAttrAssoGroup.createAssociation("edu.northwestern.radiology.aim.AnatomicEntity", "anatomicEntityCollection", grpAnnatomicEntity, attrTemp, null));
                }
            }

            obj = null;
            Association iocAssociation = null;

            foreach (var queryData in _queryParameters.ImcQueryParameters)
            {
                var results = new ArrayList();
                if (!queryData.CodeValue.IsEmpty)
                {
                    results.Add(CreateAttribute("codeValue", queryData.CodeValue));
                }
                if (!queryData.CodeMeaning.IsEmpty)
                {
                    results.Add(CreateAttribute("codeMeaning", queryData.CodeMeaning));
                }
                if (!queryData.CodingSchemeDesignator.IsEmpty)
                {
                    results.Add(CreateAttribute("codingSchemeDesignator", queryData.CodingSchemeDesignator));
                }
                if (!queryData.CodingSchemeVersion.IsEmpty)
                {
                    results.Add(CreateAttribute("codingSchemeVersion", queryData.CodingSchemeVersion));
                }
                if (!queryData.Confidence.IsEmpty)
                {
                    results.Add(CreateAttribute("annotatorConfidence", queryData.Confidence));
                }
                if (!queryData.Comment.IsEmpty)
                {
                    results.Add(CreateAttribute("comment", queryData.Comment));
                }
                if (results.Count > 0)
                {
                    obj = (object[])results.ToArray(typeof(object));
                }
                if (obj != null && obj.Length > 0)
                {
                    Group grpImagingObservationCharacteristic = null;
                    if (obj.Length > 1)
                    {
                        grpImagingObservationCharacteristic = CreateQRAttrAssoGroup.createGroup(obj, LogicalOperator.AND);
                        obj = null;
                    }
                    else
                    {
                        attrTemp = obj[0] as Attribute;
                    }

                    iocAssociation = CreateQRAttrAssoGroup.createAssociation("edu.northwestern.radiology.aim.ImagingObservationCharacteristic", "imagingObservationCharacteristicCollection", grpImagingObservationCharacteristic, attrTemp, null);
                }
            }

            obj = null;
            if (iocAssociation != null && _queryParameters.ImQueryParameters.Count == 0)
            {
                var queryData = new AimImagingObservationQueryData();
                queryData.CodeMeaning = new QueryData(String.Empty, QueryPredicate.LIKE);
                _queryParameters.ImQueryParameters.Add(queryData);
            }
            foreach (var queryData in _queryParameters.ImQueryParameters)
            {
                var results = new ArrayList();
                if (!queryData.CodeValue.IsEmpty)
                {
                    results.Add(CreateAttribute("codeValue", queryData.CodeValue));
                }
                //if (!queryData.CodeMeaning.IsEmpty)
                results.Add(CreateAttribute("codeMeaning", queryData.CodeMeaning));
                if (!queryData.CodingSchemeDesignator.IsEmpty)
                {
                    results.Add(CreateAttribute("codingSchemeDesignator", queryData.CodingSchemeDesignator));
                }
                if (!queryData.CodingSchemeVersion.IsEmpty)
                {
                    results.Add(CreateAttribute("codingSchemeVersion", queryData.CodingSchemeVersion));
                }
                if (!queryData.Comment.IsEmpty)
                {
                    results.Add(CreateAttribute("comment", queryData.Comment));
                }
                if (!queryData.Confidence.IsEmpty)
                {
                    results.Add(CreateAttribute("annotatorConfidence", queryData.Confidence));
                }
                if (iocAssociation != null)
                {
                    results.Add(iocAssociation);
                }
                if (results.Count > 0)
                {
                    obj = (object[])results.ToArray(typeof(object));
                }
                if (obj != null && obj.Length > 0)
                {
                    attrTemp = null;
                    Group grpImagingObservation = null;
                    if (obj.Length > 1)
                    {
                        grpImagingObservation = CreateQRAttrAssoGroup.createGroup(obj, LogicalOperator.AND);
                        obj = null;
                    }
                    else
                    {
                        attrTemp = obj[0] as Attribute;
                    }
                    associationList.Add(CreateQRAttrAssoGroup.createAssociation("edu.northwestern.radiology.aim.ImagingObservation", "imagingObservationCollection", grpImagingObservation, attrTemp, null));
                }
            }

            obj = null;
            foreach (QueryData queryData in _queryParameters.UserParameters)
            {
                var results = new ArrayList();
                if (!queryData.IsEmpty)
                {
                    results.Add(CreateAttribute("loginName", queryData));
                    results.Add(CreateAttribute("name", queryData));
                }
                if (results.Count > 0)
                {
                    obj = (object[])results.ToArray(typeof(Attribute));
                }
                if (obj != null && obj.Length > 0)
                {
                    Group grpAnnatomicEntityCharacteristic = null;
                    if (obj.Length > 1)
                    {
                        grpAnnatomicEntityCharacteristic = CreateQRAttrAssoGroup.createGroup(obj, LogicalOperator.OR);
                        obj = null;
                    }
                    else
                    {
                        attrTemp = obj[0] as Attribute;
                    }
                    associationList.Add(CreateQRAttrAssoGroup.createAssociation("edu.northwestern.radiology.aim.User", "user", grpAnnatomicEntityCharacteristic, attrTemp, null));
                }
            }
            var         resultStudy = new ArrayList();
            Association assoStudy   = null;

            obj = null;
            foreach (QueryData queryData in _queryParameters.StudyInstanceUidParameters)
            {
                if (!queryData.IsEmpty)
                {
                    resultStudy.Add(CreateAttribute("instanceUID", queryData));
                }
            }
            if (resultStudy.Count > 0)
            {
                obj = (object[])resultStudy.ToArray(typeof(Attribute));
            }
            if (obj != null && obj.Length > 0)
            {
                attrTemp = null;
                Group grpStudy = null;
                if (obj.Length > 1)
                {
                    grpStudy = CreateQRAttrAssoGroup.createGroup(obj, LogicalOperator.OR);
                    obj      = null;
                }
                else
                {
                    attrTemp = obj[0] as Attribute;
                }
                assoStudy = CreateQRAttrAssoGroup.createAssociation("edu.northwestern.radiology.aim.ImageStudy", "imageStudy", grpStudy, attrTemp, null);
            }
            if (assoStudy != null)
            {
                associationList.Add(CreateQRAttrAssoGroup.createAssociation("edu.northwestern.radiology.aim.DICOMImageReference", "imageReferenceCollection", null, null, assoStudy));
            }
            obj = null;
            Group grpImageAnnotation = null;

            if (associationList.Count > 0)
            {
                obj = (object[])associationList.ToArray(typeof(Association));
            }
            if (obj != null && obj.Length > 0)
            {
                assoTemp = null;
                if (obj.Length > 1)
                {
                    grpImageAnnotation = CreateQRAttrAssoGroup.createGroup(obj, LogicalOperator.AND);
                }
                else
                {
                    assoTemp = obj[0] as Association;
                }
            }
            QueryRequestCqlQuery arg = CreateQRAttrAssoGroup.createQueryRequestCqlQuery("edu.northwestern.radiology.aim.ImageAnnotation", null, null, assoTemp, grpImageAnnotation);

            var doc = XMLSerializingDeserializing.Serialize(arg);

            Console.WriteLine(doc.InnerXml);

            CQLQueryResults result;

            try
            {
                result = proxy.query(arg);
            }
            catch (System.Net.WebException ex)
            {
                Console.WriteLine(ex.Message);
                result = null;
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                result = null;
                throw new GridServicerException("Error querying AIM data service", e);
            }
            return(result);
        }