Exemplo n.º 1
0
 public function acreditarBusqueda1($datos)
 {
     $numConexionesActivas = 0;
     $existeArchivoEssalud = 0;
     //1: fue creado archivo, 0: no fue creado archivo
     $pacientesEssalud = "";
     $ipEssalud = "192.168.30";
     //Generalizando se le asigna el número de red
     $tipo = $datos["tipoBusqueda"];
     $dniPaciente = $datos["dni"];
     $apaterno = $datos["apellidoPaterno"];
     $amaterno = $datos["apellidoMaterno"];
     $primerNombre = $datos["primerNombre"];
     $segundoNombre = $datos["segundoNombre"];
     $adscripciondepartamental = $datos["adscripciondepartamental"];
     $nomArchivoTxt = "";
     $tiempoRetardo = 1;
     $fechaActualUnix = time();
     //Formamos el nombre del archivo que se obtendrá desde Essalud
     if ($tipo == 1) {
         $nomArchivoTxt = $dniPaciente . "_" . $fechaActualUnix;
         $tiempoRetardo = 1;
     } else {
         if ($tipo == "A") {
             $nomArchivoTxt = $apaterno . "_" . $amaterno . "_" . $primerNombre . "_" . $segundoNombre . "_" . $fechaActualUnix;
             $nomArchivoTxt = $this->reemplazaCaracteresEspeciales($nomArchivoTxt);
             $tiempoRetardo = 3;
         }
     }
     $longitud = strlen($nomArchivoTxt) - 2;
     $nomArchivoTxt = substr($nomArchivoTxt, 0, $longitud);
     $rutaHost = realpath("../../../");
     $i = 0;
     //Buscar IPs servidores que se encuentren conectados a Essalud
     $arrayConexionesActivas = array();
     $ipClienteWeb = $_SERVER['REMOTE_ADDR'];
     $arrayIpClienteWeb = explode(".", $ipClienteWeb);
     $mascaraSubRedSedeEmpresa = $arrayIpClienteWeb[0] . "." . $arrayIpClienteWeb[1] . "." . $arrayIpClienteWeb[2];
     //$arrayConexionesActivas=$this->getArrayConexionesActivasEssalud($mascaraSubRedSedeEmpresa);
     $mascaraSubRedSedePrincipal = "192.168.31";
     if ($mascaraSubRedSedeEmpresa == $mascaraSubRedSedePrincipal) {
         //Mascara de la principal que es el HMLO
         $arrayConexionesActivas = $this->getArrayConexionesActivasEssalud($mascaraSubRedSedeEmpresa);
     } else {
         $arrayConexionesActivas = $this->getArrayConexionesActivasEssalud($mascaraSubRedSedeEmpresa);
         if (count($arrayConexionesActivas) == 0) {
             //En caso de no encontrar conexiones en su sede, busca en el HMLO
             $arrayConexionesActivas = $this->getArrayConexionesActivasEssalud($mascaraSubRedSedePrincipal);
         }
     }
     $numConexionesActivas = count($arrayConexionesActivas);
     $encontroIP = 0;
     $indiceRandom = -1;
     if ($numConexionesActivas > 0) {
         $indiceRandom = rand(0, $numConexionesActivas - 1);
         $ipServidor = $arrayConexionesActivas[$indiceRandom]["vNumeroIpAcreditacion"];
         //$encontroIP=1;
         $salida = "";
         //java -jar "D:\ClienteCreaArchivo\dist\ClienteCreaArchivo.jar" ipServidor ipEssalud tipo dniPaciente apaterno amaterno primerNombre segundoNombre nomArchivoTxt
         $comandoExisteArchivoEssalud = "java -jar " . $rutaHost . "/essalud/JarSimedh/ClienteCreaArchivo.jar " . $ipServidor . " " . $ipEssalud . " " . $tipo . " " . $dniPaciente . " " . $apaterno . " " . $amaterno . " " . $primerNombre . " " . $segundoNombre . " " . $nomArchivoTxt;
         // echo $comandoExisteArchivoEssalud;
         //java -jar "D:\ClienteAcredita\dist\ClienteAcredita.jar" ipServidor ipEssalud dniPaciente
         $comandoLeerArchivoEssalud = "java -jar " . $rutaHost . "/essalud/JarSimedh/ClienteAcredita.jar " . $ipServidor . " " . $ipEssalud . " " . $nomArchivoTxt;
         //echo $comandoLeerArchivoEssalud;
         $existeArchivoEssalud = shell_exec($comandoExisteArchivoEssalud);
         if ($existeArchivoEssalud == 1) {
             //sleep($tiempoRetardo);
             $pacientesEssalud = shell_exec($comandoLeerArchivoEssalud);
             $pacientesEssalud = str_replace("[N]", "Ñ", $pacientesEssalud);
             $pacientesEssalud = str_replace("[A]", "Á", $pacientesEssalud);
             $pacientesEssalud = str_replace("[E]", "É", $pacientesEssalud);
             $pacientesEssalud = str_replace("[I]", "Í", $pacientesEssalud);
             $pacientesEssalud = str_replace("[O]", "Ó", $pacientesEssalud);
             $pacientesEssalud = str_replace("[U]", "Ú", $pacientesEssalud);
             $pacientesEssalud = str_replace("[A1]", "Ä", $pacientesEssalud);
             $pacientesEssalud = str_replace("[E1]", "Ë", $pacientesEssalud);
             $pacientesEssalud = str_replace("[I1]", "Ï", $pacientesEssalud);
             $pacientesEssalud = str_replace("[O1]", "Ö", $pacientesEssalud);
             $pacientesEssalud = str_replace("[U1]", "Ü", $pacientesEssalud);
             $pacientesEssalud = str_replace("#", "_", $pacientesEssalud);
             //Para los caracteres basura de ESSALUD
             $pacientesEssalud = str_replace("?", "_", $pacientesEssalud);
             //Para los caracteres basura de ESSALUD
             $salida = $pacientesEssalud;
             //if($salida=="" || $salida==null) {
             if ($salida != "" && $salida != null) {
                 $o_Lpersona2 = new LPersona();
                 $vlineas = explode("*", $salida);
                 //print_r($array1);
                 $numeroFilas = count($vlineas) - 1;
                 //print_r($vlineas);
                 $arrayFilasValidas = array();
                 $j = 0;
                 $ubigeo = $datos["departamento"] . $datos["provincia"] . $datos["distrito"];
                 for ($i = 0; $i < $numeroFilas; $i++) {
                     $arrayPersona = '';
                     $arrayFilas[$i] = str_replace('|', '', explode(",", $vlineas[$i]));
                     if ($adscripciondepartamental == '0') {
                         if ($arrayFilas[$i][6] == '150117' || $arrayFilas[$i][6] == '150194') {
                             $arrayPersona = $o_Lpersona2->personaRegistrada($arrayFilas[$i][5]);
                             //busca segun el dni
                             if (isset($arrayPersona[0][0])) {
                                 $arrayFilas[$i][17] = $arrayPersona[0][0];
                             } else {
                                 $arrayFilas[$i][17] = '';
                             }
                             $arrayFilas[$i][18] = "|" . $arrayFilas[$i][0] . "|" . $arrayFilas[$i][1] . "|" . $arrayFilas[$i][2] . "|" . $arrayFilas[$i][3] . "|" . $arrayFilas[$i][4] . "|" . $arrayFilas[$i][5] . "|" . $arrayFilas[$i][6] . "|" . $arrayFilas[$i][7] . "|" . $arrayFilas[$i][8] . "|";
                             $arrayFilas[$i][18] .= "|" . $arrayFilas[$i][9] . "|" . $arrayFilas[$i][10] . "|" . $arrayFilas[$i][11] . "|" . $arrayFilas[$i][12] . "|" . $arrayFilas[$i][13] . "|" . $arrayFilas[$i][14] . "|" . $arrayFilas[$i][15] . "|" . $arrayFilas[$i][16] . "|" . $arrayFilas[$i][17] . "|";
                             $arrayFilas[$i][1] = utf8_decode($arrayFilas[$i][1]);
                             $arrayFilas[$i][2] = utf8_decode($arrayFilas[$i][2]);
                             $arrayFilas[$i][3] = utf8_decode($arrayFilas[$i][3]);
                             $arrayFilas[$i][4] = utf8_decode($arrayFilas[$i][4]);
                             $arrayFilasValidas[$j] = $arrayFilas[$i];
                             $j = $j + 1;
                         }
                     } else {
                         //                if (substr($arrayFilas[$i][6],0,-2) == $datos["departamento"] . $datos["provincia"]) {
                         $arrayPersona = $o_Lpersona2->personaRegistrada($arrayFilas[$i][5]);
                         //busca segun el dni
                         if (isset($arrayPersona[0][0])) {
                             $arrayFilas[$i][17] = $arrayPersona[0][0];
                         } else {
                             $arrayFilas[$i][17] = '';
                         }
                         $arrayFilas[$i][18] = "|" . $arrayFilas[$i][0] . "|" . $arrayFilas[$i][1] . "|" . $arrayFilas[$i][2] . "|" . $arrayFilas[$i][3] . "|" . $arrayFilas[$i][4] . "|" . $arrayFilas[$i][5] . "|" . $arrayFilas[$i][6] . "|" . $arrayFilas[$i][7] . "|" . $arrayFilas[$i][8] . "|";
                         $arrayFilas[$i][18] .= "|" . $arrayFilas[$i][9] . "|" . $arrayFilas[$i][10] . "|" . $arrayFilas[$i][11] . "|" . $arrayFilas[$i][12] . "|" . $arrayFilas[$i][13] . "|" . $arrayFilas[$i][14] . "|" . $arrayFilas[$i][15] . "|" . $arrayFilas[$i][16] . "|" . $arrayFilas[$i][17] . "|";
                         $arrayFilas[$i][1] = utf8_decode($arrayFilas[$i][1]);
                         $arrayFilas[$i][2] = utf8_decode($arrayFilas[$i][2]);
                         $arrayFilas[$i][3] = utf8_decode($arrayFilas[$i][3]);
                         $arrayFilas[$i][4] = utf8_decode($arrayFilas[$i][4]);
                         $arrayFilasValidas[$j] = $arrayFilas[$i];
                         $j = $j + 1;
                         //                }
                     }
                 }
                 //    print_r($arrayFilas);
                 $funcion = 'acreditarPersonaEncontrada';
                 $arrayTipo = array("5" => "c", "10" => "c", "1" => "c", "2" => "c", "3" => "c", "4" => "c", "7" => "c", "8" => "c", "17" => "c", "11" => "c");
                 $arrayColorEstado = array("2" => "7");
                 $arrayCabecera = array("5" => "Autogenerado", "10" => "Nº DOC.", "1" => "A.Paterno", "2" => "A.Materno", "3" => "1er Nombre", "4" => "2do Nombre", "7" => "De", "8" => "Hasta", "17" => "Código", "11" => "...");
                 $o_Html = new Tabla1($arrayCabecera, 7, $arrayFilasValidas, 'tablaOrden', 'filax', 'filay', 'filaSeleccionada', 'onClick', $funcion, 18, $arrayTipo, 7, $arrayColorEstado);
                 $o_Html->setColumnasOrdenar(array("0", "1", "2", "3", "4", "5", "6"));
                 $respuestaFinal = $o_Html->getTabla();
             } else {
                 $respuestaFinal = "<h2><font color=\"red\">Congestión en la red,intente otra vez</font></h2>";
                 //Esto ya no ocurre porque se espera hasta que se genere el archivo
             }
         } else {
             $respuestaFinal = "<h2><font color=\"red\">No se generó archivo de Essalud correctamente</font></h2>";
         }
     } else {
         $respuestaFinal = "<h2><font color=\"red\">No hay conexión con Essalud o con usuario acredita</font></h2>";
     }
     return $respuestaFinal;
 }