/** * * @param int $id identificador de la emergencia * @throws Exception */ public function setEmergencia($id) { $this->_emergencia = $this->_emergencia_model->getById($id); if (is_null($this->_emergencia)) { throw new Exception(__METHOD__ . " - La emergencia no existe"); } }
/** * * @param int $id_emergencia */ public function setEmergencia($id_emergencia) { $this->_emergencia = $this->_emergencia_model->getById($id_emergencia); if (!is_null($this->_emergencia)) { $this->setAlarma($this->_emergencia->ala_ia_id); } }
/** * Finaliza una emergencia */ public function save() { $this->load->library("validar"); $correcto = true; $error = array(); $params = $this->input->post(null, true); $emergencia = $this->emergencia_model->getById($params["id"]); if (!is_null($emergencia)) { if (!$this->validar->validarFechaSpanish($params["fecha_cierre"])) { $correcto = false; $error["fecha-cierre"] = "Debe ingresar una fecha"; } else { $error["fecha-cierre"] = ""; } if (!$this->validar->validarVacio($params["comentarios_cierre"])) { $correcto = false; $error["comentarios_cierre"] = "Debe ingresar los comentarios"; } else { $error["comentarios_cierre"] = ""; } if ($correcto) { $data = array("est_ia_id" => Emergencia_Estado_Model::FINALIZADA, "eme_d_fecha_cierre" => spanishDateToISO($params["fecha_cierre"]), "eme_c_comentario_cierre" => $params["comentarios_cierre"]); $this->emergencia_model->query()->update($data, "eme_ia_id", $emergencia->eme_ia_id); Evento_historial::putHistorial($emergencia->eme_ia_id, 'La emergencia ha sido finalizada: ' . $params["comentarios_cierre"]); } $respuesta = array("correcto" => $correcto, "error" => $error); echo json_encode($respuesta); } else { show_404(); } }
/** * Envia correo con reporte */ public function ajax_enviar_correo() { $correcto = false; $pdf = null; $params = $this->input->post(null, true); $emergencia = $this->_emergencia_model->getById($params["id"]); if (!is_null($emergencia)) { $codigo = $this->_emergencia_model->getNumeracionReporteEmergencia($emergencia->eme_ia_id); $this->load->model('usuario_model', 'UsuarioModel'); $destinatarios = array(); //se genera el reporte $mapa = false; if (isset($params["adjuntar_reporte"]) && $params["adjuntar_reporte"] == 1) { if (isset($params['adjuntar_mapa']) && $params['adjuntar_mapa'] == 1) { $this->emergencia_pdf->setHashImagen($params["hash"]); $mapa = true; } $pdf = $this->emergencia_pdf->generar($emergencia->eme_ia_id, $mapa, $codigo); //$cod_pdf = $codigo .'-'.$emergencia->eme_ia_id; $reporte = $this->emergencia_email_reporte->setReporte($pdf, $codigo); } //se agregan destinatarios foreach ($params["destinatario"] as $email) { $this->emergencia_email_reporte->addTo($email); $destinatario = $this->UsuarioModel->getByEmail($email); if (!is_null($destinatario)) { $destinatarios[] = $destinatario['usu_c_nombre'] . ' ' . $destinatario['usu_c_apellido_paterno'] . ' ' . $destinatario['usu_c_apellido_materno']; } else { $destinatarios[] = $email; } } if (isset($params['copia']) && $params['copia'] == 1) { $this->emergencia_email_reporte->addTo($this->session->userdata('session_email')); } //se agregan archivos adjuntos if (count($params["archivos"]) > 0) { foreach ($params["archivos"] as $id_archivo) { $this->emergencia_email_reporte->setArchivoAdjunto($id_archivo); } } $this->emergencia_email_reporte->setSubject($params["asunto"]); $pie_mensaje = '<p>--<br/>Midas - Emergencias<br/>Ministerio de Salud - Gobierno de Chile</p>'; $this->emergencia_email_reporte->setMessage($params["mensaje"] . $pie_mensaje); $correcto = $this->emergencia_email_reporte->send($emergencia->eme_ia_id); if ($correcto) { if (!is_null($pdf)) { $hash = $this->_guardarReporteTemporal($pdf, $codigo); $this->evento_archivo->setEvento($emergencia->eme_ia_id); $this->_emergencia_model->guardarRegistroReporteEmergencia($emergencia->eme_ia_id, $codigo); $id_reporte = $this->evento_archivo->addArchivo($hash, $params["asunto"], Archivo_Tipo_Model::REPORTE, NULL, $this->session->userdata('session_idUsuario')); $this->evento_archivo->agregarArchivosAnteriores(); $this->evento_archivo->guardar(); Evento_historial::putHistorial($emergencia->eme_ia_id, 'Se ha enviado el reporte ' . linkArchivo($id_reporte) . ' de la emergencia a los siguientes usuarios: ' . implode(',', $destinatarios)); } } } $respuesta = array("correcto" => $correcto, "error" => array()); echo json_encode($respuesta); }
/** * Retorna datos de ubicacion de la alarma * @throws Exception */ public function ajax_posicion_lugar_emergencia() { header('Content-type: application/json'); $data = array("correcto" => false); $params = $this->input->post(null, true); $emergencia = $this->_emergencia_model->getById($params["id"]); if (!is_null($emergencia)) { $configuracion = $this->_emergencia_mapa_configuracion_model->getByEmergencia($emergencia->eme_ia_id); if (!is_null($configuracion) && ($configuracion->latitud != "" && $configuracion->longitud != "")) { $latitud = $configuracion->latitud; $longitud = $configuracion->longitud; $zoom = $configuracion->zoom; } else { $lugar_emergencia = $this->_emergencia_elementos_model->getPrimerLugarEmergencia($emergencia->eme_ia_id); if (!is_null($lugar_emergencia)) { $coordenadas = Zend_Json::decode($lugar_emergencia->coordenadas); $latitud = $coordenadas["center"]["lat"]; $longitud = $coordenadas["center"]["lng"]; } else { $latitud = $emergencia->eme_c_utm_lat; $longitud = $emergencia->eme_c_utm_lng; } $zoom = 17; } $data = array("correcto" => true, "resultado" => array("lat" => $latitud, "lon" => $longitud, "nombre" => $emergencia->eme_c_nombre_emergencia, "zoom" => $zoom)); } else { $data["error"] = "La emergencia no existe"; } echo json_encode($data); }
/** * Devuelve datos para grafico de emergencias * de mes por año */ public function json_cantidad_emergencia_mes() { $lista_years = $this->EmergenciaModel->listarYearsConEmergencias(); $data = array(); $label_ano = array(); $xkeys = array(); for ($i = 0; $i < 12; $i++) { $data_year = array(); $indice = 0; foreach ($lista_years as $year) { if ($year["ano"] != 0) { if (array_search($year["ano"], $label_ano) === false) { $label_ano[] = $year["ano"]; } if (array_search($indice, $xkeys) === false) { $xkeys[] = $indice; } $data_year[$indice] = $this->EmergenciaModel->cantidadEmergenciasMes($i + 1, $year["ano"]); $indice++; } } $data[] = array_merge(array("m" => "2015-" . $this->_corrigeNumeroMes($i + 1)), $data_year); } $respuesta = array("correcto" => true, "ykeys" => $xkeys, "labels" => $label_ano, "data" => $data); echo json_encode($respuesta); }
/** * Carga archivos asociados a una emergencia al mapa */ public function ajax_kml_emergencia() { $this->load->library(array("kml/kml_conversiones")); header('Content-type: application/json'); $data = array("correcto" => true, "resultado" => array("elemento" => array())); $params = $this->input->post(null, true); $emergencia = $this->_emergencia_model->getById($params["id"]); if (!is_null($emergencia)) { $configuracion = array(); $mapa = $this->_emergencia_mapa_configuracion_model->getByEmergencia($params["id"]); if (!is_null($mapa)) { $configuracion = Zend_Json::decode($mapa->configuracion); } $lista_elementos = $this->_emergencia_kml_model->listaPorEmergencia($emergencia->eme_ia_id); if (count($lista_elementos) > 0) { foreach ($lista_elementos as $elemento) { $oculto = false; if (isset($configuracion["archivos_ocultos"]) && in_array($elemento["id"], $configuracion["archivos_ocultos"])) { $oculto = true; } $data["correcto"] = true; $data["resultado"]["elemento"][$elemento["id"]] = array("id" => $elemento["id"], "hash" => "archivo_importado_" . $elemento["id"], "oculto" => $oculto, "tipo" => strtoupper($elemento["tipo"]), "nombre" => strtoupper($elemento["nombre"]), "archivo" => $elemento["archivo"], "elementos" => $this->_emergencia_kml_elemento_model->listaPorKml($elemento["id"])); } } } else { $data["info"] = "La emergencia no tiene kml asociadados"; } echo Zend_Json::encode($data); }
/** * Trae datos de casos de fiebre */ public function json_casos_febriles() { header('Content-type: application/json'); $this->load->model("casos_febriles_estado_model"); $this->load->model("casos_febriles_enfermedades_model", "_casos_febriles_enfermedades_model"); $this->load->model("casos_febriles_model", "_rapanui_dengue_model"); $this->load->helper(array("modulo/usuario/usuario", "modulo/casos_febriles/permiso")); $this->load->library(array("module/evento/evento_configuracion")); $params = $this->input->post(null, true); $emergencia = $this->_emergencia_model->getById($params["id"]); if (is_null($emergencia)) { throw new Exception("La emergencia no existe"); } $this->evento_configuracion->setEvento($emergencia->eme_ia_id); $casos = array(); $lista = $this->_rapanui_dengue_model->listar(array("comuna" => $this->evento_configuracion->listaComunas())); if ($lista != null) { foreach ($lista as $row) { $ok = true; $propiedades = Zend_Json::decode($row["propiedades"]); if ($ok) { $propiedades["MÉDICO"] = (string) nombreUsuario($row["id_usuario"]); if (!permisoCasosFebriles("datos_personales")) { unset($propiedades["RUN"]); unset($propiedades["NOMBRE"]); unset($propiedades["APELLIDO"]); unset($propiedades["TELEFONO"]); unset($propiedades["NUMERO PASAPORTE"]); } $enfermedades_confirmadas = array(); if ($row["id_estado"] == Casos_Febriles_Estado_Model::CONFIRMADO) { $lista_enfermedades = $this->_casos_febriles_enfermedades_model->listarPorCaso($row["id"]); if (!is_null($lista_enfermedades)) { foreach ($lista_enfermedades as $enfermedad) { $enfermedades_confirmadas[] = array("id" => $enfermedad["id_enfermedad"], "letra" => strtoupper(substr($enfermedad["nombre"], 0, 1)), "nombre" => strtoupper($enfermedad["nombre"])); } } } $coordenadas = json_decode($row["coordenadas"]); $fecha = DateTime::createFromFormat("Y-m-d H:i:s", $row["fecha"]); $propiedades["TIPO"] = "CASOS FEBRILES"; $casos[] = array("id" => $row["numero_caso"], "fecha_ingreso" => $fecha->format("d/m/Y"), "id_estado" => $row["id_estado"], "propiedades" => $propiedades, "enfermedades" => $enfermedades_confirmadas, "lat" => $coordenadas->lat, "lng" => $coordenadas->lng); } } } echo json_encode(array("correcto" => true, "lista" => $casos)); }
/** * Genera nuevo HASH para el evento * este hash permite acceder al mapa de forma publica * @return string */ protected function _nuevoHash() { $this->load->library("core/string/random"); $hash = $this->random->rand_string(45); $existe = $this->_emergencia_model->getByHash($hash); if (!is_null($existe)) { return $this->_nuevoHash(); } else { return $hash; } }
/** * Popup que muestra capas * @throws Exception */ public function popup_capas_comuna() { $this->load->helper(array("modulo/capa/capa", "modulo/visor/visor")); $params = $this->input->post(null, true); $emergencia = $this->_emergencia_model->getById($params["id"]); if (!is_null($emergencia)) { $lista_comunas = $this->emergencia_comuna->listComunas($emergencia->eme_ia_id); if (count($lista_comunas) > 0) { $lista_capas = array(); $lista_tipos = $this->_tipo_capa_model->listarCategoriasPorComunas($lista_comunas); if (count($lista_tipos) > 0) { foreach ($lista_tipos as $tipo) { $lista_capas[] = array("id_categoria" => $tipo["ccb_ia_categoria"], "nombre_categoria" => $tipo["ccb_c_categoria"]); } } $this->load->view("pages/mapa_capas/popup-capas", array("capas" => $lista_capas, "seleccionadas" => $params["capas"], "comunas" => $lista_comunas)); } } else { throw new Exception("La emergencia no existe"); } }
/** * * @param int $id_emergencia */ public function setEmergencia($id_emergencia) { $this->_emergencia = $this->_emergencia_model->getById($id_emergencia); }
/** * * @param array $datos */ protected function _guardaDatosTipoEmergencia($datos) { $update = array("eme_c_datos_tipo_emergencia" => serialize($datos)); $this->_emergencia_model->update($update, $this->_emergencia->eme_ia_id); }