/** * Custom handler for displaying persons reports or create a new one. * * @param idPerson the ID of the person * @return a ModelMap with the model attributes for the respective view */ @RequestMapping("search/{idPerson}") public ModelAndView showPersonReport( @PathVariable("idPerson") long idPerson, HttpServletRequest request) throws Exception { String urlValidacion = ""; try { urlValidacion = seguridadService.validarLogin(request); // si la url esta vacia significa que la validaci�n del login fue exitosa if (urlValidacion.isEmpty()) urlValidacion = seguridadService.validarAutorizacionUsuario( request, ConstantsSecurity.SYSTEM_CODE, true); } catch (Exception e) { e.printStackTrace(); urlValidacion = "404"; } ModelAndView mav = new ModelAndView(); if (urlValidacion.isEmpty()) { List<FichaRotavirus> results = rotaVirusService.getFichaByPersonaId(idPerson); long idUsuario = seguridadService.obtenerIdUsuario(request); if (results.size() == 0) { boolean autorizado = true; FichaRotavirus fichaRotavirus = new FichaRotavirus(); DaNotificacion noti = new DaNotificacion(); Initialize(); SisPersona persona = personaService.getPersona(idPerson); // Si es usuario a nivel central se cargan todas las unidades asociados al SILAIS y // municipio if (seguridadService.esUsuarioNivelCentral(idUsuario, ConstantsSecurity.SYSTEM_CODE)) { entidades = entidadAdmonService.getAllEntidadesAdtvas(); } else { entidades = seguridadService.obtenerEntidadesPorUsuario( (int) idUsuario, ConstantsSecurity.SYSTEM_CODE); } if (persona != null) { noti.setPersona(persona); fichaRotavirus.setDaNotificacion(noti); Divisionpolitica departamentoProce = null; List<Divisionpolitica> municipiosResi = new ArrayList<Divisionpolitica>(); List<Comunidades> comunidades = new ArrayList<Comunidades>(); if (fichaRotavirus.getDaNotificacion().getPersona().getMunicipioResidencia() != null) { departamentoProce = divisionPoliticaService.getDepartamentoByMunicipi( fichaRotavirus .getDaNotificacion() .getPersona() .getMunicipioResidencia() .getCodigoNacional()); municipiosResi = divisionPoliticaService.getMunicipiosFromDepartamento( departamentoProce.getCodigoNacional()); comunidades = comunidadesService.getComunidades( fichaRotavirus .getDaNotificacion() .getPersona() .getMunicipioResidencia() .getCodigoNacional()); } mav.addObject("entidades", entidades); mav.addObject("autorizado", autorizado); mav.addObject("departamentoProce", departamentoProce); mav.addObject("municipiosResi", municipiosResi); mav.addObject("comunidades", comunidades); mav.addObject("fichaRotavirus", fichaRotavirus); mav.addAllObjects(mapModel); mav.setViewName("rotavirus/create"); } else { mav.setViewName("404"); } } else { List<String> fichaRotavirusAutorizadas = new ArrayList<String>(); for (FichaRotavirus rt : results) { if (idUsuario != 0) { if (seguridadService.esUsuarioAutorizadoEntidad( (int) idUsuario, ConstantsSecurity.SYSTEM_CODE, rt.getDaNotificacion().getCodSilaisAtencion().getCodigo()) && seguridadService.esUsuarioAutorizadoUnidad( (int) idUsuario, ConstantsSecurity.SYSTEM_CODE, rt.getDaNotificacion().getCodUnidadAtencion().getCodigo())) { fichaRotavirusAutorizadas.add(rt.getDaNotificacion().getIdNotificacion()); } } } mav.addObject("records", results); mav.addObject("idPerson", idPerson); mav.addObject("fichasAutorizadas", fichaRotavirusAutorizadas); mav.setViewName("rotavirus/results"); } } else { mav.setViewName(urlValidacion); } return mav; }
/** * * Obetener la información de una notificación y cargarla en pantalla para su edición * * @param idNotificacion a cargar * @param request con datos de autenticación * @return ModelAndView * @throws Exception */ @RequestMapping("edit/{idNotificacion}") public ModelAndView editIrag( @PathVariable("idNotificacion") String idNotificacion, HttpServletRequest request) throws Exception { String urlValidacion = ""; boolean autorizado = true; try { urlValidacion = seguridadService.validarLogin(request); // si la url esta vacia significa que la validaci�n del login fue exitosa if (urlValidacion.isEmpty()) urlValidacion = seguridadService.validarAutorizacionUsuario( request, ConstantsSecurity.SYSTEM_CODE, true); } catch (Exception e) { e.printStackTrace(); urlValidacion = "404"; } ModelAndView mav = new ModelAndView(); if (urlValidacion.isEmpty()) { if (idNotificacion != null) { FichaRotavirus fichaRotavirus = rotaVirusService.getFichaById(idNotificacion); if (fichaRotavirus != null) { Initialize(); long idUsuario = seguridadService.obtenerIdUsuario(request); // irag.setUsuario(usuarioService.getUsuarioById((int) idUsuario)); if (idUsuario != 0) { autorizado = seguridadService.esUsuarioNivelCentral(idUsuario, ConstantsSecurity.SYSTEM_CODE) || ((fichaRotavirus.getDaNotificacion().getCodSilaisAtencion() != null && fichaRotavirus.getDaNotificacion().getCodUnidadAtencion() != null) && seguridadService.esUsuarioAutorizadoEntidad( (int) idUsuario, ConstantsSecurity.SYSTEM_CODE, fichaRotavirus.getDaNotificacion().getCodSilaisAtencion().getCodigo()) && seguridadService.esUsuarioAutorizadoUnidad( (int) idUsuario, ConstantsSecurity.SYSTEM_CODE, fichaRotavirus.getDaNotificacion().getCodUnidadAtencion().getCodigo())); } entidades = seguridadService.obtenerEntidadesPorUsuario( (int) idUsuario, ConstantsSecurity.SYSTEM_CODE); if (entidades.size() <= 0) { entidades.add(fichaRotavirus.getDaNotificacion().getCodSilaisAtencion()); } Divisionpolitica municipio = divisionPoliticaService.getMunicipiosByUnidadSalud( fichaRotavirus .getDaNotificacion() .getCodUnidadAtencion() .getMunicipio() .getCodigoNacional()); List<Divisionpolitica> munic = divisionPoliticaService.getMunicipiosBySilais( fichaRotavirus.getDaNotificacion().getCodSilaisAtencion().getCodigo()); List<Unidades> uni = null; if (seguridadService.esUsuarioNivelCentral(idUsuario, ConstantsSecurity.SYSTEM_CODE)) { if (fichaRotavirus.getDaNotificacion().getCodSilaisAtencion() != null && fichaRotavirus.getDaNotificacion().getCodUnidadAtencion() != null) { uni = seguridadService.obtenerUnidadesPorUsuarioEntidadMunicipio( (int) idUsuario, fichaRotavirus.getDaNotificacion().getCodSilaisAtencion().getCodigo(), fichaRotavirus .getDaNotificacion() .getCodUnidadAtencion() .getMunicipio() .getCodigoNacional(), ConstantsSecurity.SYSTEM_CODE, HealthUnitType.UnidadesPrimHosp.getDiscriminator()); } } else { if (fichaRotavirus.getDaNotificacion().getCodSilaisAtencion() != null && fichaRotavirus.getDaNotificacion().getCodUnidadAtencion() != null) { uni = seguridadService.obtenerUnidadesPorUsuarioEntidadMunicipio( (int) idUsuario, fichaRotavirus.getDaNotificacion().getCodSilaisAtencion().getCodigo(), fichaRotavirus .getDaNotificacion() .getCodUnidadAtencion() .getMunicipio() .getCodigoNacional(), ConstantsSecurity.SYSTEM_CODE, HealthUnitType.UnidadesPrimHosp.getDiscriminator()); if (!uni.contains(fichaRotavirus.getDaNotificacion().getCodUnidadAtencion())) { uni.add(fichaRotavirus.getDaNotificacion().getCodUnidadAtencion()); } } } // datos persona Divisionpolitica departamentoProce; List<Divisionpolitica> municipiosResi = null; List<Comunidades> comunidades = null; if (fichaRotavirus.getDaNotificacion().getPersona().getMunicipioResidencia() != null) { String municipioResidencia = fichaRotavirus .getDaNotificacion() .getPersona() .getMunicipioResidencia() .getCodigoNacional(); departamentoProce = divisionPoliticaService.getDepartamentoByMunicipi(municipioResidencia); municipiosResi = divisionPoliticaService.getMunicipiosFromDepartamento( departamentoProce.getCodigoNacional()); String comu = fichaRotavirus .getDaNotificacion() .getPersona() .getMunicipioResidencia() .getCodigoNacional(); comunidades = comunidadesService.getComunidades(comu); } mav.addObject("fichaRotavirus", fichaRotavirus); mav.addObject("autorizado", autorizado); mav.addObject("entidades", entidades); mav.addObject("munic", munic); mav.addObject("municipiosResi", municipiosResi); mav.addObject("comunidades", comunidades); mav.addObject("uni", uni); mav.addObject("municipio", municipio); mav.addAllObjects(mapModel); mav.setViewName("rotavirus/create"); } else { mav.setViewName("404"); } } else { mav.setViewName("404"); } } else { mav.setViewName(urlValidacion); } return mav; }
private String tomaMxToJson(List<DaTomaMx> tomaMxList) { String jsonResponse = ""; Map<Integer, Object> mapResponse = new HashMap<Integer, Object>(); Integer indice = 0; for (DaTomaMx tomaMx : tomaMxList) { Map<String, String> map = new HashMap<String, String>(); map.put("idTomaMx", tomaMx.getIdTomaMx()); // map.put("fechaHoraOrden",DateToString(orden.getFechaHSolicitud(),"dd/MM/yyyy hh:mm:ss a")); map.put( "fechaTomaMx", DateUtil.DateToString(tomaMx.getFechaHTomaMx(), "dd/MM/yyyy hh:mm:ss a")); map.put("estadoMx", tomaMx.getEstadoMx().getValor()); map.put("codSilais", tomaMx.getIdNotificacion().getCodSilaisAtencion().getNombre()); map.put("codUnidadSalud", tomaMx.getIdNotificacion().getCodUnidadAtencion().getNombre()); map.put( "separadaMx", (tomaMx.getMxSeparada() != null ? (tomaMx.getMxSeparada() ? "Si" : "No") : "")); map.put("tipoMuestra", tomaMx.getCodTipoMx().getNombre()); if (tomaMx.getIdNotificacion().getUrgente() != null) { map.put("urgente", tomaMx.getIdNotificacion().getUrgente().getValor()); } else { map.put("urgente", "--"); } // map.put("tipoExamen",orden.getCodDx().getNombre()); // Si hay fecha de inicio de sintomas se muestra Date fechaInicioSintomas = tomaMx .getIdNotificacion() .getFechaInicioSintomas(); // envioMxService.getFechaInicioSintomas(tomaMx.getIdNotificacion().getIdNotificacion()); if (fechaInicioSintomas != null) map.put("fechaInicioSintomas", DateUtil.DateToString(fechaInicioSintomas, "dd/MM/yyyy")); else map.put("fechaInicioSintomas", " "); // hospitalizado String[] arrayHosp = {"13", "17", "11", "16", "10", "12"}; boolean hosp = false; if (tomaMx.getCodUnidadAtencion() != null) { int h = Arrays.binarySearch( arrayHosp, String.valueOf(tomaMx.getCodUnidadAtencion().getTipoUnidad())); hosp = h > 0; } if (hosp) { map.put("hospitalizado", messageSource.getMessage("lbl.yes", null, null)); } else { map.put("hospitalizado", messageSource.getMessage("lbl.no", null, null)); } // Si hay persona if (tomaMx.getIdNotificacion().getPersona() != null) { /// se obtiene el nombre de la persona asociada a la ficha String nombreCompleto = ""; nombreCompleto = tomaMx.getIdNotificacion().getPersona().getPrimerNombre(); if (tomaMx.getIdNotificacion().getPersona().getSegundoNombre() != null) nombreCompleto = nombreCompleto + " " + tomaMx.getIdNotificacion().getPersona().getSegundoNombre(); nombreCompleto = nombreCompleto + " " + tomaMx.getIdNotificacion().getPersona().getPrimerApellido(); if (tomaMx.getIdNotificacion().getPersona().getSegundoApellido() != null) nombreCompleto = nombreCompleto + " " + tomaMx.getIdNotificacion().getPersona().getSegundoApellido(); map.put("persona", nombreCompleto); // Se calcula la edad int edad = calcularEdadAnios(tomaMx.getIdNotificacion().getPersona().getFechaNacimiento()); map.put("edad", String.valueOf(edad)); // se obtiene el sexo map.put("sexo", tomaMx.getIdNotificacion().getPersona().getSexo().getValor()); if (edad > 12 && tomaMx.getIdNotificacion().getPersona().isSexoFemenino()) { map.put( "embarazada", envioMxService.estaEmbarazada(tomaMx.getIdNotificacion().getIdNotificacion())); } else map.put("embarazada", "--"); } else { map.put("persona", " "); map.put("edad", " "); map.put("sexo", " "); map.put("embarazada", "--"); } // se arma estructura de diagnósticos o estudios List<DaSolicitudDx> solicitudDxList = envioMxService.getSolicitudesDxByIdTomaMx(tomaMx.getIdTomaMx()); Map<Integer, Object> mapSolicitudesList = new HashMap<Integer, Object>(); Map<String, String> mapSolicitud = new HashMap<String, String>(); if (solicitudDxList.size() > 0) { int subIndice = 0; for (DaSolicitudDx solicitudDx : solicitudDxList) { mapSolicitud.put("nombre", solicitudDx.getCodDx().getNombre()); mapSolicitud.put("tipo", "Rutina"); mapSolicitud.put( "fechaSolicitud", DateUtil.DateToString(solicitudDx.getFechaHSolicitud(), "dd/MM/yyyy hh:mm:ss a")); subIndice++; mapSolicitudesList.put(subIndice, mapSolicitud); mapSolicitud = new HashMap<String, String>(); } map.put("solicitudes", new Gson().toJson(mapSolicitudesList)); } else { List<DaSolicitudEstudio> solicitudEstudios = envioMxService.getSolicitudesEstudioByIdTomaMx(tomaMx.getIdTomaMx()); int subIndice = 0; for (DaSolicitudEstudio solicitudEstudio : solicitudEstudios) { mapSolicitud.put("nombre", solicitudEstudio.getTipoEstudio().getNombre()); mapSolicitud.put("tipo", "Estudio"); mapSolicitud.put( "fechaSolicitud", DateUtil.DateToString( solicitudEstudio.getFechaHSolicitud(), "dd/MM/yyyy hh:mm:ss a")); subIndice++; mapSolicitudesList.put(subIndice, mapSolicitud); mapSolicitud = new HashMap<String, String>(); } map.put("solicitudes", new Gson().toJson(mapSolicitudesList)); } mapResponse.put(indice, map); indice++; } jsonResponse = new Gson().toJson(mapResponse); UnicodeEscaper escaper = UnicodeEscaper.above(127); return escaper.translate(jsonResponse); }