コード例 #1
0
        public ClienteF2CResponse updateConfiguracionServer(ClienteF2CRequest request)
        {
            ClienteF2CResponse response = new ClienteF2CResponse();

            try
            {
                if (Security.ValidateTokenSitio(request.Token, request.id_Sitio.ToString(), request.vchClaveSitio))
                {
                    NapoleonDataAccess controller = new NapoleonDataAccess();
                    string             mensaje    = "";
                    int id_Sitio = 0;
                    response.valido   = controller.updateConfiguracionServer(request.mdlConfiguracion, ref mensaje);
                    response.id_Sitio = id_Sitio;
                    response.message  = mensaje;
                }
                else
                {
                    response.valido  = false;
                    response.message = "Los datos de validación son erroneos.";
                }
            }
            catch (Exception getC)
            {
                response.valido  = false;
                response.message = "Existe un error en el servicio updateConfiguracionServer: " + getC.Message;
                Log.EscribeLog("Existe un error en el servicio updateConfiguracionServer: " + getC.Message);
            }
            return(response);
        }
コード例 #2
0
        public ClienteF2CResponse getXMLFileConfig(ClienteF2CRequest request)
        {
            ClienteF2CResponse response = new ClienteF2CResponse();

            try
            {
                if (Security.ValidateTokenSitio(request.Token, request.id_Sitio.ToString(), request.vchClaveSitio))
                {
                    NapoleonDataAccess controller = new NapoleonDataAccess();
                    response.vchFormato = controller.getXMLFileConfig(request.vchPassword);
                    response.valido     = true;
                }
                else
                {
                    response.valido  = false;
                    response.message = "Los datos de validación son erroneos.";
                }
            }
            catch (Exception getC)
            {
                response.valido  = false;
                response.message = "Existe un error en el servicio getXMLFileConfig: " + getC.Message;
                Log.EscribeLog("Existe un error en el servicio getXMLFileConfig: " + getC.Message);
            }
            return(response);
        }
コード例 #3
0
        public ClienteF2CResponse getConfiguracion(string vchClaveSitio, int id_Sitio, ref string mensaje)
        {
            ClienteF2CResponse response = new ClienteF2CResponse();
            ClienteF2CRequest  request  = new ClienteF2CRequest();

            try
            {
                request.vchClaveSitio = vchClaveSitio;
                request.Token         = Security.Encrypt(id_Sitio + "|" + vchClaveSitio);
                request.id_Sitio      = id_Sitio;
                //request.id_SitioSpecified = true;
                request.vchClaveSitio = vchClaveSitio;
                response        = NapoleonDA.getConeccion(request);
                mensaje         = response.message;
                response.valido = true;
            }
            catch (Exception egc)
            {
                Log.EscribeLog("Existe un error al intentar obtener los datos de configuración del Sitio: " + egc.Message);
                response        = null;
                response.valido = false;
                mensaje         = egc.Message;
            }
            return(response);
        }
コード例 #4
0
        public ClienteF2CResponse setConfiguracion(Feed2Service.tbl_ConfigSitio mdlConfig, ref string mensaje, ref int id_Sitio)
        {
            ClienteF2CResponse response = new ClienteF2CResponse();
            ClienteF2CRequest  request  = new ClienteF2CRequest();

            try
            {
                request.mdlConfig = mdlConfig;
                request.id_Sitio  = mdlConfig.id_Sitio;
                //request.id_SitioSpecified = true;
                request.vchClaveSitio = mdlConfig.vchClaveSitio;
                request.Token         = Security.Encrypt(mdlConfig.id_Sitio + "|" + mdlConfig.vchClaveSitio);
                response        = NapoleonDA.setConfiguracion(request);
                mensaje         = response.message;
                id_Sitio        = response.id_Sitio;
                response.valido = true;
            }
            catch (Exception esC)
            {
                Log.EscribeLog("Existe un error al guardar la información" + esC.Message);
                response.valido = false;
                mensaje         = esC.Message;
            }
            return(response);
        }
コード例 #5
0
        public ClienteF2CResponse getEstudiosTransmitir(ClienteF2CRequest request)
        {
            ClienteF2CResponse response = new ClienteF2CResponse();

            try
            {
                if (Security.ValidateTokenSitio(request.Token, request.id_Sitio.ToString(), request.vchClaveSitio))
                {
                    NapoleonDataAccess controller = new NapoleonDataAccess();
                    string             mensaje    = "";
                    Log.EscribeLog("Sitio para transmitir: " + request.id_Sitio);
                    response.lstEstudio = controller.getEstudiosTransmitir(request.id_Sitio, ref mensaje);
                    response.message    = mensaje;
                }
                else
                {
                    response.valido  = false;
                    response.message = "Los datos de validación son erroneos.";
                }
            }
            catch (Exception getC)
            {
                response.valido  = false;
                response.message = "Existe un error en el servicio getEstudiosTransmitir: " + getC.Message;
                Log.EscribeLog("Existe un error en el servicio getEstudiosTransmitir: " + getC.Message);
            }
            return(response);
        }
コード例 #6
0
        public ClienteF2CResponse getEstudiosTransmitir(int id_Sitio, string vchClaveSitio)
        {
            Log.EscribeLog("Leyendo del Sitio: " + id_Sitio.ToString());
            ClienteF2CResponse response = new ClienteF2CResponse();

            try

            {
                ClienteF2CRequest request = new ClienteF2CRequest();
                request.id_Sitio = id_Sitio;
                //request.id_SitioSpecified = true;
                request.vchClaveSitio = vchClaveSitio;
                request.Token         = Security.Encrypt(id_Sitio + "|" + vchClaveSitio);
                response = NapoleonDA.getEstudiosTransmitir(request);
                Log.EscribeLog("Archivos a enviar: " + response.lstEstudio.Length.ToString());
            }

            catch (Exception e)

            {
                response.message = e.Message;
                response.valido  = false;
                Log.EscribeLog("Existe un error en getEstudiosTransmitir: " + e.Message);
            }

            return(response);
        }
コード例 #7
0
        private void MoveFileTimer_Elapsed(object sender, ElapsedEventArgs e)
        {
            try
            {
                NapoleonServerDataAccess NSDA           = new NapoleonServerDataAccess();
                ClienteF2CResponse       lista_estudios = NSDA.getEstudiosTransmitir(id_Servicio, vchClaveSitio);
                int numero = lista_estudios.lstEstudio.Length;
                Log.EscribeLog("Estudios a transmitir: " + numero.ToString());
                foreach (var ID in lista_estudios.lstEstudio)
                {
                    //string filename = @"C:\Anonymized20171205.dcm";

                    string filename = ID.vchPathFile;

                    String strFile    = System.IO.Path.GetFileName(filename);
                    string strFileZip = createZipFile(filename);
                    if (strFileZip != "")
                    {
                        if (File.Exists(strFileZip))
                        {
                            FileInfo fInfo    = new FileInfo(filename);
                            long     numBytes = fInfo.Length;

                            FileStream   fStream = new FileStream(strFileZip, FileMode.Open, FileAccess.Read);
                            BinaryReader br      = new BinaryReader(fStream);

                            // convert the file to a byte array
                            byte[] data = br.ReadBytes((int)numBytes);
                            br.Close();
                            ServicioMueveEstudio.Service1Client SM = new ServicioMueveEstudio.Service1Client();
                            string   path_mover          = id_Servicio + @"\" + DateTime.Now.ToString("ddMMyyyy") + @"\";
                            string   path_mover_completo = id_Servicio + @"\" + DateTime.Now.ToString("ddMMyyyy") + @"\" + Path.GetFileName(filename);
                            CArchivo request             = new CArchivo();
                            request.bytArchivo    = data;
                            request.id_Sitio      = id_Servicio;
                            request.vchpath       = path_mover;
                            request.Token         = Security.Encrypt(id_Servicio + "|" + vchClaveSitio);
                            request.vchClaveSitio = vchClaveSitio;
                            request.vchfilename   = strFile;
                            string sTmp = SM.Carga_Archivo_F33D2(request);
                            fStream.Close();
                            fStream.Dispose();
                            if (sTmp == "OK")
                            {
                                NSDA.updateEstatusTransmitido(ID.intDetEstudioID, id_Servicio, vchClaveSitio, path_mover_completo);
                            }
                            else
                            {
                                Log.EscribeLog("NO SE LOGRÓ HACER EL ENVÍO DEL ARCHIVO: " + filename + " , error: " + sTmp);
                            }
                        }
                    }
                }
            }
            catch (Exception eSYTi)
            {
                Log.EscribeLog("Existe un error en MoveFileTimer_Elapsed: " + eSYTi.Message);
            }
        }
コード例 #8
0
 private void SyncTimer_Elapsed(object sender, ElapsedEventArgs e)
 {
     try
     {
         //Log.EscribeLog("[" + DateTime.Now.ToShortDateString() + DateTime.Now.ToShortTimeString() + "] Leyendo estudios para sincronizar.");
         //Console.WriteLine("[" + DateTime.Now.ToShortDateString() + DateTime.Now.ToShortTimeString() + "] Leyendo estudios para sincronizar.");
         try
         {
             NapSerDA.setService(id_Servicio, vchClaveSitio);
         }
         catch (Exception eSyc)
         {
             Log.EscribeLog("Existe un error en setService: " + eSyc.Message);
         }
         List <Entidades.clsEstudio> lstEstudio = new List <Entidades.clsEstudio>();
         lstEstudio = NapAuxDA.getEstudiosPendientes();
         if (lstEstudio != null)
         {
             if (lstEstudio.Count > 0)
             {
                 foreach (Entidades.clsEstudio item in lstEstudio)
                 {
                     Feed2Service.clsEstudio mdl = new Feed2Service.clsEstudio();
                     mdl.vchClaveSitio       = vchClaveSitio;
                     mdl.intDetEstudioID     = item.intDetEstudioID;
                     mdl.intEstudioID        = item.intEstatusID;
                     mdl.intEstatusID        = item.intEstatusID;
                     mdl.vchNameFile         = item.vchNameFile;
                     mdl.intSizeFile         = item.intSizeFile;
                     mdl.vchPathFile         = item.vchPathFile;
                     mdl.vchStudyInstanceUID = item.vchStudyInstanceUID;
                     mdl.datFecha            = item.datFecha;
                     mdl.id_Sitio            = item.id_Sitio;
                     mdl.intModalidad        = item.intModalidadID;
                     mdl.vchAccessionNumber  = item.vchAccessionNumber;
                     mdl.vchPatientBirthDate = item.vchPatientBirthDate;
                     mdl.PatientID           = item.PatientID;
                     mdl.PatientName         = item.PatientName;
                     mdl.vchgenero           = item.vchgenero;
                     mdl.vchEdad             = item.vchEdad;
                     ClienteF2CResponse mdlResponse = new ClienteF2CResponse();
                     mdlResponse = NapSerDA.setEstudioServer(mdl);
                     if (mdlResponse != null)
                     {
                         if (mdlResponse.valido)
                         {
                             NapAuxDA.updateEstudioSync(item.intDetEstudioID);
                         }
                     }
                 }
             }
         }
     }
     catch (Exception eSYTi)
     {
         Log.EscribeLog("Existe un error en SyncTimer_Elapsed: " + eSYTi.Message);
     }
 }
コード例 #9
0
 private void btnSaveSitio_Click(object sender, RoutedEventArgs e)
 {
     try
     {
         if (txtSitio.Text.Trim() != "" && txtNombre.Text.Trim() != "")
         {
             if (txtSitio.Text.Trim().Length == 4)
             {
                 //Guardar
                 ConfigDA = new ConfiguracionDataAccess();
                 Feed2Service.tbl_ConfigSitio mdl = new Feed2Service.tbl_ConfigSitio();
                 mdl.vchClaveSitio   = txtSitio.Text.Trim().ToUpper();
                 mdl.vchnombreSitio  = txtNombre.Text.ToUpper();
                 mdl.bitActivo       = true;
                 mdl.datFechaSistema = DateTime.Now;
                 mdl.vchUserAdmin    = "ADMINISTRADOR";
                 bool               success  = false;
                 string             mensaje  = "";
                 int                id_sitio = 0;
                 ClienteF2CResponse response = new ClienteF2CResponse();
                 response = ConfigDA.setConfiguracion(mdl, ref mensaje, ref id_sitio);
                 if (response.valido)
                 {
                     MessageBox.Show("Cambios correctos.");
                     MainWindow main = new MainWindow();
                     main.Show();
                     main.txtSitio.Text = txtSitio.Text;
                     this.Close();
                 }
                 else
                 {
                     MessageBox.Show("Existe un error al guardar la información: " + mensaje, "Error");
                 }
             }
             else
             {
                 MessageBox.Show("Se debe capturar 4 caracteres para la clave del Sitio. ");
             }
         }
         else
         {
             MessageBox.Show("Se requiere capturar la clave para el Sitio.");
         }
     }
     catch (Exception ebSS)
     {
         MessageBox.Show("Existe un error al iniciar el sitio: " + ebSS.Message);
     }
 }
コード例 #10
0
        public ClienteF2CResponse updateEstatus(int intDetEstudioID, int id_Sitio, string vchClaveSitio)
        {
            ClienteF2CResponse response = new ClienteF2CResponse();

            try
            {
                ClienteF2CRequest request = new ClienteF2CRequest();
                request.intDetEstudioID = intDetEstudioID;
                //request.intDetEstudioIDSpecified = true;
                request.Token    = Security.Encrypt(id_Sitio + "|" + vchClaveSitio);
                request.id_Sitio = id_Sitio;
                //request.id_SitioSpecified = true;
                request.vchClaveSitio = vchClaveSitio;
                response = NapoleonDA.updateEstatus(request);
            }
            catch (Exception eup)
            {
                Log.EscribeLog("Existe un error en updateEstatus:" + eup.Message);
            }
            return(response);
        }
コード例 #11
0
        public ClienteF2CResponse getXMLFileConfig(string vchClave, int id_Sitio, string vchClaveSitio)
        {
            ClienteF2CResponse response = new ClienteF2CResponse();
            ClienteF2CRequest  request  = new ClienteF2CRequest();

            try
            {
                request.vchPassword = vchClave;
                request.id_Sitio    = id_Sitio;
                //request.id_SitioSpecified = true;
                request.vchClaveSitio = vchClaveSitio;
                request.Token         = Security.Encrypt(id_Sitio + "|" + vchClaveSitio);
                response = NapoleonDA.getXMLFileConfig(request);
            }
            catch (Exception eXML)
            {
                response.vchFormato = "";
                Log.EscribeLog("Existe un error al obtener el formato XML: " + eXML.Message);
            }
            return(response);
        }
コード例 #12
0
        public ClienteF2CResponse setEstudioServer(clsEstudio _estudio)
        {
            ClienteF2CResponse response = new ClienteF2CResponse();

            try
            {
                ClienteF2CRequest request = new ClienteF2CRequest();
                request.estudio = _estudio;
                //request.id_SitioSpecified = true;
                request.id_Sitio      = _estudio.id_Sitio;
                request.vchClaveSitio = _estudio.vchClaveSitio;
                request.Token         = Security.Encrypt(_estudio.id_Sitio + "|" + _estudio.vchClaveSitio);
                response = NapoleonDA.setEstudioServer(request);
            }
            catch (Exception esES)
            {
                response.valido  = false;
                response.message = esES.Message;
                Log.EscribeLog("Existe un error en setEstudioServer: " + esES.Message);
            }
            return(response);
        }
コード例 #13
0
        public ClienteF2CResponse updateConfiguracionServer(Feed2Service.clsConfiguracion mdlConfig, ref string mensaje)
        {
            ClienteF2CResponse response = new ClienteF2CResponse();
            ClienteF2CRequest  request  = new ClienteF2CRequest();

            try
            {
                request.mdlConfiguracion = mdlConfig;
                request.Token            = Security.Encrypt(mdlConfig.id_Sitio + "|" + mdlConfig.vchClaveSitio);
                request.id_Sitio         = mdlConfig.id_Sitio;
                //request.id_SitioSpecified = true;
                request.vchClaveSitio = mdlConfig.vchClaveSitio;
                response = NapoleonDA.updateConfiguracionServer(request);
                mensaje  = response.message;
            }
            catch (Exception esC)
            {
                Log.EscribeLog("Existe un error al actualizar la información: " + esC.Message);
                response.valido = false;
                mensaje         = esC.Message;
            }
            return(response);
        }
コード例 #14
0
        public ClienteF2CResponse getVerificaSitio(string vchClaveSitio, int id_Sitio, ref string mensaje)
        {
            ClienteF2CResponse response = new ClienteF2CResponse();
            ClienteF2CRequest  request  = new ClienteF2CRequest();

            try
            {
                request.vchClaveSitio = vchClaveSitio;
                request.Token         = Security.Encrypt(id_Sitio + "|" + vchClaveSitio);
                request.id_Sitio      = id_Sitio;
                //request.id_SitioSpecified = true;
                request.vchClaveSitio = vchClaveSitio;
                response        = NapoleonDA.getVerificaSitio(request);
                mensaje         = response.message;
                response.valido = true;
            }
            catch (Exception egV)
            {
                response.message = egV.Message;
                response.valido  = false;
                Log.EscribeLog("Existe un error en ConfiguracionDataAccess.getVerificaSitio: " + egV.Message);
            }
            return(response);
        }
コード例 #15
0
        public static ClienteF2CResponse getConeccion(string vchClaveSitio, int id_Sitio)
        {
            ClienteF2CResponse response = new ClienteF2CResponse();

            try
            {
                ClienteF2CRequest request = new ClienteF2CRequest();
                request.id_Sitio = id_Sitio;
                //request.id_SitioSpecified = true;
                request.vchClaveSitio = vchClaveSitio;
                request.Token         = Security.Encrypt(id_Sitio + "|" + vchClaveSitio);
                //response = NapoleonDA.getConeccion(request);
                using (NapoleonDA = new NapoleonServiceClient())
                {
                    response = NapoleonDA.getConeccion(request);
                }
                Log.EscribeLog("Se consulta la configuración: Puerto Cliente: " + response.ConfigSitio.intPuertoCliente);
            }
            catch (Exception egc)
            {
                Log.EscribeLog("Existe un error al obtner las configuraciones para el Servicio SCP: " + egc);
            }
            return(response);
        }
コード例 #16
0
        public ClienteF2CResponse getConeccion(ClienteF2CRequest request)
        {
            ClienteF2CResponse response = new ClienteF2CResponse();

            try
            {
                if (Security.ValidateTokenSitio(request.Token, request.id_Sitio.ToString(), request.vchClaveSitio))
                {
                    NapoleonDataAccess controller = new NapoleonDataAccess();
                    response.ConfigSitio = controller.getConeccion(request.vchClaveSitio);
                    response.valido      = true;
                }
                else
                {
                    response.valido  = false;
                    response.message = "Los datos de validación son erroneos.";
                }
            }
            catch (Exception getC)
            {
                throw getC;
            }
            return(response);
        }
コード例 #17
0
        private void cargarServicio()
        {
            try
            {
                string path = "";
                try
                {
                    path = ConfigurationManager.AppSettings["ConfigDirectory"] != null ? ConfigurationManager.AppSettings["ConfigDirectory"].ToString() : "";
                }
                catch (Exception ePath)
                {
                    path = "";
                    Log.EscribeLog("Error al obtener el path desde appSettings: " + ePath.Message);
                }
                string PathDestino = "";
                try
                {
                    PathDestino = ConfigurationManager.AppSettings["PathDes"].ToString();
                    //Verificar Folder
                    if (!Directory.Exists(PathDestino))
                    {
                        Directory.CreateDirectory(PathDestino);
                    }
                }
                catch (Exception ePATHDES)
                {
                    Log.EscribeLog("Existe un error al leer el path de destino: " + ePATHDES.Message);
                }

                ClienteF2CResponse mdl = new ClienteF2CResponse();
                if (File.Exists(path + "info.xml"))
                {
                    _conf         = XMLConfigurator.getXMLfile();
                    id_Servicio   = _conf.id_Sitio;
                    AETitle       = _conf.vchAETitle;
                    vchPathRep    = _conf.vchPathLocal;
                    vchClaveSitio = _conf.vchClaveSitio;

                    if (id_Servicio > 0 && vchClaveSitio != "")
                    {
                        Token = Security.Encrypt(id_Servicio + "|" + vchClaveSitio);
                    }
                }
                Log.EscribeLog("Sitio: " + vchClaveSitio);
                if (vchClaveSitio != "")
                {
                    mdl = ConfigDataAccess.getConeccion(vchClaveSitio, id_Servicio);
                    if (mdl != null || _conf != null)
                    {
                        if (!(id_Servicio > 0))
                        {
                            id_Servicio = mdl.id_Sitio;
                        }

                        if (vchClaveSitio == "")
                        {
                            vchClaveSitio = mdl.ConfigSitio.vchClaveSitio;
                        }
                        if (AETitle == "")
                        {
                            AETitle = mdl.ConfigSitio.vchAETitle;
                        }
                        if (Token != "")
                        {
                            Token = Security.Encrypt(id_Servicio + "|" + vchClaveSitio);
                        }
                        Log.EscribeLog("Inicio de CargarServicio SCP");
                        // preload dictionary to prevent timeouts
                        var dict = DicomDictionary.Default;
                        int port = 0;

                        Log.EscribeLog("Puerto: " + (mdl.ConfigSitio == null ? _conf.intPuertoCliente : mdl.ConfigSitio.intPuertoCliente));
                        Log.EscribeLog("AETitle: " + AETitle);
                        // start DICOM server on port from command line argument or 11112
                        try
                        {
                            if (_conf.intPuertoCliente > 0)
                            {
                                port = _conf.intPuertoCliente;
                            }
                            else
                            {
                                if (mdl.ConfigSitio.intPuertoCliente > 0)
                                {
                                    port = (int)mdl.ConfigSitio.intPuertoCliente;
                                }
                                else
                                {
                                    port = Convert.ToInt32(ConfigurationManager.AppSettings["Puerto"].ToString());
                                }
                            }
                        }
                        catch (Exception ePuerto)
                        {
                            Console.WriteLine("No se pudo leer el puerto especificado, favor de verificar.: " + ePuerto.Message);
                            Log.EscribeLog("No se pudo leer el puerto especificado, favor de verificar.: " + ePuerto.Message);
                        }
                        if (port > 0)
                        {
                            Console.WriteLine($"Iniciando Servidor C-Store SCP en el  puerto {port}");

                            var server = DicomServer.Create <CStoreSCP>(port);
                            Log.EscribeLog($"Iniciando Servidor C-Store SCP en el  puerto {port}");

                            ConfigDataAccess.setService(id_Servicio, vchClaveSitio);
                            // end process
                            Console.WriteLine("Oprimir <return> para finalizar...");
                            Console.ReadLine();
                        }
                        else
                        {
                            Console.WriteLine("No se pudo leer el puerto especificado, favor de verificar.");
                            Log.EscribeLog("No se pudo leer el puerto especificado, favor de verificar.");
                        }
                    }
                }
                else
                {
                    Console.WriteLine("No se pudo encontrar los datos para la búsqueda de sitio. En espera de los datos de configuración.");
                    Log.EscribeLog("No se pudo encontrar los datos para la búsqueda de sitio. En espera de los datos de configuración.");
                }
            }
            catch (Exception eLoadService)
            {
                Log.EscribeLog("Error al cargar el servicio: " + eLoadService.Message);
            }
        }