private CQLQueryResults getAnnotationOfAnnotationCQLInfo() { 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(); obj = null; 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 (var 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)); } } obj = null; Group grpAnnotationOfAnnotation = null; if (associationList.Count > 0) { obj = (object[])associationList.ToArray(typeof(Association)); } if (obj != null && obj.Length > 0) { assoTemp = null; if (obj.Length > 1) { grpAnnotationOfAnnotation = CreateQRAttrAssoGroup.createGroup(obj, LogicalOperator.AND); } else { assoTemp = obj[0] as Association; } } var arg = CreateQRAttrAssoGroup.createQueryRequestCqlQuery("edu.northwestern.radiology.aim.AnnotationOfAnnotation", null, null, assoTemp, grpAnnotationOfAnnotation); 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); }
public void PerformSearch() { _criteriaComponent.Enabled = false; AIMQueryParameters aimQueryParameters = new AIMQueryParameters(); if (!string.IsNullOrEmpty(_criteriaComponent.StudyInstanceUid)) { aimQueryParameters.StudyInstanceUidParameters.Add(new QueryData(_criteriaComponent.StudyInstanceUid.Trim(), QueryPredicate.LIKE)); } if (_criteriaComponent.AnnotationOfAnnotation) { aimQueryParameters.AnnotationType = AnnotationType.AnnotationOfAnnotation; } else if (_criteriaComponent.ImageAnnotation) { aimQueryParameters.AnnotationType = AnnotationType.ImageAnnotation; } else { Platform.Log(LogLevel.Error, "Type of annotation cannot be retrieved from the user selection."); } foreach (AnatomicEntity anatomicEntity in _criteriaComponent.AnatomicEntities) { AimAnatomicEntityQueryData ae = new AimAnatomicEntityQueryData(); ae.CodeValue = new QueryData(anatomicEntity.CodeValue, QueryPredicate.LIKE); ae.CodeMeaning = new QueryData(anatomicEntity.CodeMeaning, QueryPredicate.LIKE); ae.CodingSchemeDesignator = new QueryData(anatomicEntity.CodingSchemeDesignator, QueryPredicate.LIKE); aimQueryParameters.AeQueryParameters.Add(ae); } foreach (AnatomicEntityCharacteristic anatomicEntityCharacteristic in _criteriaComponent.AnatomicEntityCharacteristics) { AimAnatomicEntityCharacteristicQueryData aec = new AimAnatomicEntityCharacteristicQueryData(); aec.CodeValue = new QueryData(anatomicEntityCharacteristic.CodeValue, QueryPredicate.LIKE); aec.CodeMeaning = new QueryData(anatomicEntityCharacteristic.CodeMeaning, QueryPredicate.LIKE); aec.CodingSchemeDesignator = new QueryData(anatomicEntityCharacteristic.CodingSchemeDesignator, QueryPredicate.LIKE); aimQueryParameters.AecQueryParameters.Add(aec); } foreach (ImagingObservation imagingObservation in _criteriaComponent.ImagingObservations) { AimImagingObservationQueryData io = new AimImagingObservationQueryData(); io.CodeValue = new QueryData(imagingObservation.CodeValue, QueryPredicate.LIKE); io.CodeMeaning = new QueryData(imagingObservation.CodeMeaning, QueryPredicate.LIKE); io.CodingSchemeDesignator = new QueryData(imagingObservation.CodingSchemeDesignator, QueryPredicate.LIKE); aimQueryParameters.ImQueryParameters.Add(io); } foreach (ImagingObservationCharacteristic imagingObservation in _criteriaComponent.ImagingObservationCharacteristics) { AimImagingObservationCharacteristicQueryData ioc = new AimImagingObservationCharacteristicQueryData(); ioc.CodeValue = new QueryData(imagingObservation.CodeValue, QueryPredicate.LIKE); ioc.CodeMeaning = new QueryData(imagingObservation.CodeMeaning, QueryPredicate.LIKE); ioc.CodingSchemeDesignator = new QueryData(imagingObservation.CodingSchemeDesignator, QueryPredicate.LIKE); aimQueryParameters.ImcQueryParameters.Add(ioc); } if (!string.IsNullOrEmpty(_criteriaComponent.User)) { aimQueryParameters.UserParameters.Add(new QueryData(_criteriaComponent.User.Trim(), QueryPredicate.LIKE)); } AIMSearchCommand searchCommand = new AIMSearchCommand(aimQueryParameters); base.PerformSearch(searchCommand); }