Пример #1
0
 /**
  * Funcion que guarda la admision
  * return void
  */
 function admision()
 {
     $datos = array();
     foreach ($_REQUEST as $key => $valor) {
         $datos[$key] = strtoupper($valor);
     }
     if (isset($datos['email'])) {
         $datos['email'] = strtolower($datos['email']);
     }
     $Admision = new Admision();
     $validar = new Validacion();
     $admitir = FALSE;
     $usuario = FALSE;
     $mensaje = array();
     // Si el usuario no existe lo guarda
     if (empty($_REQUEST['id_paciente'])) {
         $Paciente = new Paciente();
         // Valida que el usuario no exista
         $rst = $Paciente->consultar($datos['tipo_identificacion'], $datos['numero_documento'], 1);
         if (!$rst['id']) {
             // Validacion del usuario
             $validar->add($datos['tipo_identificacion'], 'tipo_identificacion', Validacion::$validarSoloTexto, 1, 2, true);
             $validar->add($datos['numero_documento'], 'numero_documento', Validacion::$validarAlfanumerico, 1, 20, true);
             $validar->add($datos['nombre1'], 'nombre1', Validacion::$validarSoloTexto, 1, 40, true);
             $validar->add($datos['nombre2'], 'nombre2', Validacion::$validarSoloTexto, 1, 40, false);
             $validar->add($datos['apellido1'], 'apellido1', Validacion::$validarSoloTexto, 1, 40, true);
             $validar->add($datos['apellido2'], 'apellido2', Validacion::$validarSoloTexto, 1, 40, false);
             $validar->add($datos['fecha_nacimiento'], 'fecha_nacimiento', Validacion::$validarFecha, 1, 10, true);
             $validar->add($datos['edad'], 'edad', Validacion::$validarNumeros, 1, 3, true);
             $validar->add($datos['unidad_medida'], 'unidad_medida', Validacion::$validarNumeros, 1, 1, true);
             $validar->add($datos['sexo'], 'sexo', Validacion::$validarSoloTexto, 1, 1, true);
             $validar->add($datos['municipio'], 'municipio', Validacion::$validarNumeros, 1, 5, true);
             $validar->add($datos['zona'], 'zona', Validacion::$validarSoloTexto, 1, 1, true);
             $validar->add($datos['telefono'], 'telefono', Validacion::$validarAlfanumericoConEspacios, 1, 30, true);
             $validar->add($datos['email'], 'email', Validacion::$validarEmail, 1, 60, true);
             if (!$validar->esValido()) {
                 $camposError = $validar->getCamposError();
                 foreach ($camposError as $valor) {
                     $mensaje[$valor[0]] = $valor[1];
                 }
             } else {
                 // Cambio de fechas a formato de postgres
                 $datos['fecha_nacimiento'] = toYMD($datos['fecha_nacimiento']);
                 $datos['email'] = strtolower($datos['email']);
                 if ($Paciente->guardar($datos)) {
                     // Recupera el ID del paciente
                     $rst = $Paciente->consultar($datos['tipo_identificacion'], $datos['numero_documento'], 1);
                     $datos['id_paciente'] = $rst['id'];
                     $usuario = TRUE;
                 }
             }
         } else {
             $datos['id_paciente'] = $rst['id'];
             $usuario = TRUE;
         }
     } else {
         $usuario = TRUE;
         // Validacion del usuario
         $validar->add($datos['tipo_identificacion'], 'tipo_identificacion', Validacion::$validarSoloTexto, 1, 2, true);
         $validar->add($datos['numero_documento'], 'numero_documento', Validacion::$validarAlfanumerico, 1, 20, true);
         $validar->add($datos['nombre1'], 'nombre1', Validacion::$validarSoloTexto, 1, 40, true);
         $validar->add($datos['nombre2'], 'nombre2', Validacion::$validarSoloTexto, 1, 40, false);
         $validar->add($datos['apellido1'], 'apellido1', Validacion::$validarSoloTexto, 1, 40, true);
         $validar->add($datos['apellido2'], 'apellido2', Validacion::$validarSoloTexto, 1, 40, false);
         $validar->add($datos['fecha_nacimiento'], 'fecha_nacimiento', Validacion::$validarFecha, 1, 10, true);
         $validar->add($datos['edad'], 'edad', Validacion::$validarNumeros, 1, 3, true);
         $validar->add($datos['unidad_medida'], 'unidad_medida', Validacion::$validarNumeros, 1, 1, true);
         $validar->add($datos['sexo'], 'sexo', Validacion::$validarSoloTexto, 1, 1, true);
         $validar->add($datos['municipio'], 'municipio', Validacion::$validarNumeros, 1, 5, true);
         $validar->add($datos['zona'], 'zona', Validacion::$validarSoloTexto, 1, 1, true);
         $validar->add($datos['telefono'], 'telefono', Validacion::$validarAlfanumericoConEspacios, 1, 30, true);
         $validar->add($datos['email'], 'email', Validacion::$validarEmail, 1, 60, true);
         if (!$validar->esValido()) {
             $camposError = $validar->getCamposError();
             foreach ($camposError as $valor) {
                 $mensaje[$valor[0]] = $valor[1];
             }
         } else {
             $Paciente = new Paciente();
             // id paciente
             $datos['id'] = $_REQUEST['id_paciente'];
             // Cambio de fechas a formato de postgres
             $datos['fecha_nacimiento'] = toYMD($datos['fecha_nacimiento']);
             $datos['email'] = strtolower($datos['email']);
             if ($Paciente->actualizar($datos)) {
                 unset($datos['id']);
             }
         }
     }
     // Campo temporal, debe obtenerse de la bd configuracion
     $datos['codigo_prestador'] = '12345678';
     // numero_ingreso codigo_sala codigo_eps liquido numero_afiliacion numero_carnet numero_autorizacion
     // prefijo_centro codigo_estrato id_medico fecha_ingreso fecha_egreso nombre_responsable direccion_responsable
     // telefono_responsable alta_voluntaria
     // array con las reglas de validacion para la admision
     $datos['id_usuario'] = getUserId();
     $validar->add($_REQUEST['numero_ingreso'], 'numero_ingreso', Validacion::$validarNumeros, 1, 18, false);
     $validar->add($_REQUEST['codigo_sala'], 'codigo_sala', Validacion::$validarAlfanumerico, 1, 2, true);
     $validar->add($_REQUEST['codigo_eps'], 'codigo_eps', Validacion::$validarAlfanumerico, 1, 6, true);
     $validar->add($_REQUEST['liquido'], 'liquido', Validacion::$validarNumeros, 1, 1, false);
     $validar->add($_REQUEST['numero_afiliacion'], 'numero_afiliacion', Validacion::$validarNumeros, 1, 12, false);
     $validar->add($_REQUEST['numero_carnet'], 'numero_carnet', Validacion::$validarNumeros, 1, 12, false);
     $validar->add($_REQUEST['numero_autorizacion'], 'numero_autorizacion', Validacion::$validarNumeros, 1, 15, false);
     $validar->add($_REQUEST['prefijo_centro'], 'prefijo_centro', Validacion::$validarAlfanumerico, 1, 2, true);
     $validar->add($_REQUEST['codigo_estrato'], 'codigo_estrato', Validacion::$validarAlfanumerico, 1, 2, true);
     $validar->add($_REQUEST['id_medico'], 'id_medico', Validacion::$validarNumeros, 1, 2, false);
     $validar->add($_REQUEST['fecha_ingreso'], 'fecha_ingreso', Validacion::$validarFecha, 10, 10, true);
     $validar->add($_REQUEST['fecha_egreso'], 'fecha_egreso', Validacion::$validarFecha, 10, 10, false);
     $validar->add($_REQUEST['nombre_responsable'], 'nombre_responsable', Validacion::$validarSoloTextoConEspacios, 1, 80, false);
     $validar->add($_REQUEST['direccion_responsable'], 'direccion_responsable', Validacion::$validarSoloTextoConEspacios, 1, 60, false);
     $validar->add($_REQUEST['telefono_responsable'], 'telefono_responsable', Validacion::$validarSoloTextoConEspacios, 1, 20, false);
     $validar->add($_REQUEST['alta_voluntaria'], 'alta_voluntaria', Validacion::$validarNumeros, 1, 1, false);
     if (!$validar->esValido()) {
         $camposError = $validar->getCamposError();
         foreach ($camposError as $valor) {
             $mensaje[$valor[0]] = $valor[1];
         }
     } else {
         $admitir = TRUE;
     }
     // Guarda la admision
     if ($admitir === TRUE && $usuario === TRUE) {
         // Cambio de fechas a formato de postgres
         $datos['fecha_ingreso'] = toYMD($datos['fecha_ingreso']);
         $datos['fecha_egreso'] = toYMD($datos['fecha_egreso']);
         if ($Admision->guardar($datos)) {
             $mensaje['estado'] = '1';
             $mensaje['info'] = '<div class="success">Se ha creado la admision exitosamente</div>';
             // admision
             $sql = "SELECT MAX(id) as id\n                            FROM admision\n                            WHERE id_paciente = '{$datos['id_paciente']}'";
             $rst = $this->queryRow($sql);
             $mensaje['numero_ingreso'] = $rst['id'];
         }
     }
     $respuesta = json_encode($mensaje);
     header("Content-type: application/json");
     echo $respuesta;
     return;
 }