private void retrieveStudyUID(string[] str)
        {
            TransferServiceContextService.DataTransferDescriptor dtd =null;
            TransferServiceContextPortTypeClient transProxy = null;
            NCIACoreServicePortTypeClient proxy = null;

            try
            {
                proxy = new NCIACoreServicePortTypeClient();
                TransferServiceContextReference tras = proxy.retrieveDicomDataByStudyUIDs(str); // new TransferServiceContextReference();
                EndpointReferenceType endPoint = tras.EndpointReference; // new EndpointReferenceType();
                AddressHeader[] ah = new AddressHeader[endPoint.ReferenceProperties.Any.Length];
                for (int lcv = 0; lcv < ah.Length; lcv++)
                {
                    XmlElement refProp = endPoint.ReferenceProperties.Any[lcv];
                    ah[lcv] = AddressHeader.CreateAddressHeader(refProp.LocalName, refProp.NamespaceURI, refProp.InnerText);
                }
                EndpointAddress ea = new EndpointAddress(new Uri(endPoint.Address.Value), ah);
                // create binding by hand so we don't have to associate a config file with a dll
                BasicHttpBinding binding = new BasicHttpBinding(BasicHttpSecurityMode.None);
                binding.Name = "TransferServiceContextPortTypePort";
                transProxy = new TransferServiceContextPortTypeClient(binding, ea);
                dtd = transProxy.getDataTransferDescriptor();
            }
            catch (System.Net.WebException ex)
            {
                System.Console.WriteLine(ex.Message);
            }
            catch (Exception e)
            {
                System.Console.WriteLine(e.Message);
                throw new GridServicerException("Error querying NCIA Grid", e);
            }

            if (dtd.url != null && dtd.url.Equals(""))
            {
                WebRequest wr = WebRequest.Create(dtd.url);
                WebResponse resp = wr.GetResponse();
                byte[] buf = new byte[8192];
                int read;
                if (transProxy != null && proxy != null)
                {
                    try
                    {
                        Stream stream = resp.GetResponseStream();
                        FileStream fs = new FileStream(_directory + "/" + str[0] + ".zip", FileMode.Create, FileAccess.Write);
                        while ((read = stream.Read(buf, 0, buf.Length)) > 0)
                        {
                            fs.Write(buf, 0, read);
                        }
                        fs.Close();
                        stream.Close();
                        resp.Close();
                        proxy.Close();
                        transProxy.Close();
                    }
                    catch (IOException ioe)
                    {
                        throw new GridServicerException("Error writting zip file from caGrid", ioe);
                    }
                }
            }
        }
Beispiel #2
0
        private void retrieveStudyUID(string[] str)
        {
            TransferServiceContextService.DataTransferDescriptor dtd = null;
            TransferServiceContextPortTypeClient transProxy          = null;
            NCIACoreServicePortTypeClient        proxy = null;

            try
            {
                proxy = new NCIACoreServicePortTypeClient();
                var tras     = proxy.retrieveDicomDataByStudyUIDs(str);
                var endPoint = tras.EndpointReference;
                var ah       = new AddressHeader[endPoint.ReferenceProperties.Any.Length];
                for (var lcv = 0; lcv < ah.Length; lcv++)
                {
                    var refProp = endPoint.ReferenceProperties.Any[lcv];
                    ah[lcv] = AddressHeader.CreateAddressHeader(refProp.LocalName, refProp.NamespaceURI, refProp.InnerText);
                }
                var ea      = new EndpointAddress(new Uri(endPoint.Address.Value), ah);
                var binding = new BasicHttpBinding(BasicHttpSecurityMode.None);
                binding.Name = "TransferServiceContextPortTypePort";
                transProxy   = new TransferServiceContextPortTypeClient(binding, ea);
                dtd          = transProxy.getDataTransferDescriptor();
            }
            catch (WebException ex)
            {
                Console.WriteLine(ex.Message);
            }
            catch (Exception e)
            {
                Console.WriteLine(e.Message);
                throw new GridServicerException("Error querying NCIA Grid", e);
            }

            if (dtd.url != null && dtd.url.Equals(""))
            {
                var wr   = WebRequest.Create(dtd.url);
                var resp = wr.GetResponse();
                var buf  = new byte[8192];
                int read;
                if (transProxy != null && proxy != null)
                {
                    try
                    {
                        var stream = resp.GetResponseStream();
                        var fs     = new FileStream(_directory + "/" + str[0] + ".zip", FileMode.Create, FileAccess.Write);
                        while ((read = stream.Read(buf, 0, buf.Length)) > 0)
                        {
                            fs.Write(buf, 0, read);
                        }
                        fs.Close();
                        stream.Close();
                        resp.Close();
                        proxy.Close();
                        transProxy.Close();
                    }
                    catch (IOException ioe)
                    {
                        throw new GridServicerException("Error writting zip file from caGrid", ioe);
                    }
                }
            }
        }