# encoding:utf-8 import json as simplejson from __builtin__ import str from django.core.urlresolvers import reverse_lazy from django.db.models.query_utils import Q from django.template.defaultfilters import length from django.views.generic import ListView, TemplateView from datetime import datetime from django.core.context_processors import csrf, request from django.views.generic.base import View from django.views.generic.detail import DetailView from django.views.generic.edit import UpdateView, CreateView from djangosearchpaginationplus.views import DinamicPaginationMixin, SearchMixin from principal.models import * from django.contrib.auth.models import User from django.contrib.auth.forms import UserCreationForm from django.contrib.auth.forms import AuthenticationForm from principal.forms import * #from django.utils import simplejson from django.contrib import messages from django.contrib.auth import login, authenticate, logout from django.contrib.auth.decorators import login_required, permission_required from django.utils.decorators import method_decorator from django.template import RequestContext from django.http import HttpResponse, HttpResponseRedirect from django.shortcuts import render_to_response, get_object_or_404 from django.core import serializers from datetime import date from datetime import datetime #from django.utils import simplejson from django.core.exceptions import ImproperlyConfigured from django.db.models.query_utils import Q from django.views.generic.base import RedirectView from django.views.generic.edit import UpdateView, DeleteView, FormView from django.core.urlresolvers import reverse_lazy from django.views.generic import ListView, DetailView, CreateView , View from django.contrib import messages from rest_framework.generics import ListAPIView from django.views.generic.base import TemplateView from pure_pagination.mixins import PaginationMixin from .forms import * from django.conf import settings from .models import * from pyjasperclient import JasperClient from django.http import HttpResponseRedirect,HttpResponse from django.utils.decorators import method_decorator from django.contrib.auth.decorators import login_required from django.core.urlresolvers import reverse # Create your views here. @login_required def principal(request): inicio = 'active' paquete = {'inicio': inicio, } return render_to_response('principal.html', paquete, context_instance=RequestContext(request)) ##### ###### ####### ##### ###### ##### ###### @login_required def lista_servicios(request): servicios = Servicio.objects.all() return render_to_response('principal.html', { 'lista_servicio': servicios, 'inicio': 'active', }, context_instance=RequestContext(request) ) @login_required def lista_localidades(request): localidades = Localidad.objects.all() return render_to_response('principal.html', {'list_localidades': localidades}) ##### MODEL FORMS ######### def registro_dinamico(request): if request.method == 'POST': formulario = NuevoPacienteForm(request.POST) if formulario.is_valid(): formulario.save() return HttpResponseRedirect('/') else: formulario = NuevoPacienteForm() return render_to_response('formDinamico.html', {'formulario': formulario}, context_instance=RequestContext(request)) def nuevo_paciente(request): if request.method == 'POST': formulario = NuevoPacienteForm(request.POST) if formulario.is_valid(): formulario.save() messages.success(request, 'Paciente registrado correctamente.') return HttpResponseRedirect('/') else: formulario = NuevoPacienteForm() return render_to_response('formNuevoPaciente.html', {'formulario': formulario}, context_instance=RequestContext(request)) def nueva_deteccion(request): if request.method == 'POST': formulario = NuevaDetenccionForm(request.POST) if formulario.is_valid(): formulario.save() return HttpResponseRedirect('/') else: formulario = NuevaDetenccionForm() return render_to_response('formNuevaDeteccion.html', {'formulario': formulario}, context_instance=RequestContext(request)) @login_required def lista_responsable_accion(request, id_accion): responsables = Responsable_Atencion.objects.filter(id_tipo_prof_id=id_accion) tipo_profesion = Tipo_Profesion.objects.all() return render_to_response('lista_responsable2.html', {'responsables': responsables, 'tipo_profesion': tipo_profesion, 'id_accion': id_accion}, context_instance=RequestContext(request)) class ListaNivelUM(DinamicPaginationMixin, SearchMixin, ListView): model = Nivel_Um def get_filter(self, queryset): search = self.get_search() if queryset: queryset = queryset.filter(descripcion__icontains=search) return queryset def get_context_data(self, **kwargs): context = super(ListaNivelUM, self).get_context_data(**kwargs) context['catalogos'] = 'active' context['nivel_um_bc'] = 'active' return context @login_required def lista_responsable(request): responsables = Responsable_Atencion.objects.all() tipo_profesion = Servicio.objects.all() return render_to_response('lista_responsable2.html', { 'responsables': responsables, 'tipo_profesion': tipo_profesion, 'responsable_bc': 'active', 'catalogos': 'active' }, context_instance=RequestContext(request)) @login_required @permission_required('principal.add_responsable_atencion', raise_exception=True) def nuevo_responsable(request): if request.method == 'POST': registro = NuevoRespAtenForm(request.POST) if registro.is_valid(): registro.save() registro.save() messages.success(request, 'Se ha creado un nuevo Reposnsable de Atencion.') return HttpResponseRedirect('/responsable/lista/') else: messages.error(request, 'Error, Algo salio mal') else: registro = NuevoRespAtenForm() return render_to_response('formNuevoResponsable.html', { 'registro': registro, 'catalogos': 'active' }, context_instance=RequestContext(request)) @login_required def lista_pacientes(request): pacientes = Paciente.objects.all() return render_to_response('lista_pacientes.html', { 'lista': pacientes, 'catalogos': 'active' }, context_instance=RequestContext(request) ) @login_required def lista_unidades_medicas(request): unidad_medica = Unidad_Medica.objects.all() return render_to_response('lista_unidades_medicas.html', { 'lista': unidad_medica, 'catalogos': 'active' }, context_instance=RequestContext(request) ) def lista_detecciones(request): detecciones = Deteccion.objects.filter(id_estatus=1) return render_to_response('lista_detecciones.html', {'lista': detecciones}, context_instance=RequestContext(request)) def lista_detecciones_paciente(request, id_paciente): detecciones = Deteccion.objects.filter(id_paciente_id=id_paciente) return render_to_response('lista_detecciones_paciente.html', {'lista': detecciones}, context_instance=RequestContext(request)) def lista_egresos(request): egresos = Egreso.objects.all().order_by('fecha') return render_to_response('lista_egresos.html', {'lista': egresos}, context_instance=RequestContext(request)) @login_required def eliminar_paciente(request, id_participante): paciente = Paciente.objects.get(pk=id_participante) paciente.delete() messages.warning(request, 'Se eliminĂ³ el paciente') return HttpResponseRedirect('/pacientes/lista/') def savePaciente(request): if request.is_ajax: rfc = request.POST.get('rfc') nombre = request.POST.get('nombre') ap_paterno = request.POST.get('ap_paterno') ap_materno = request.POST.get('ap_materno') sexo = request.POST.get('sexo') edad = request.POST.get('edad') derechohabiente = request.POST.get('id_derechohabiente') municipio = request.POST.get('id_municipio') #municipio = Municipio.objects.all().get(id_municipio_id=municipio) #user = request.POST.get('id_user') #user = User.objects.all().get(id_user_id=user) estado = request.POST.get('id_estado') #estado = Estado.objects.all().get(id_estado_id=estado) paciente_ = Paciente() paciente_.rfc = rfc paciente_.nombre = nombre paciente_.ap_paterno = ap_paterno paciente_.ap_materno = ap_materno paciente_.sexo = sexo paciente_.edad = edad paciente_.id_derechohabiente_id = derechohabiente paciente_.id_municipio_id = municipio paciente_.id_user_id = request.user.id paciente_.id_estado_id = estado paciente_.save() mensaje = {"estatus": "True", "msj": "Se registro el paciente correctamente"} return HttpResponse(simplejson.dumps(mensaje), mimetype="application/json") def saveDeteccion(request): if request.is_ajax: fecha_atencion = request.POST.get('fecha_atencion') tipo_riesgo = request.POST.get('tiporiesgo') id_paciente = request.POST.get('id_paciente') id_municipio = request.POST.get('id_municipio') id_servicio = request.POST.get('id_servicio') id_responsable = request.POST.get('id_responsable') id_txfarm = request.POST.get('tx_farm') id_unidadmedica = request.POST.get('id_unidad') id_cie10 = request.POST.get('cie_10') num_aplicacion = request.POST.get('num_aplicacion') nivel = request.POST.get('nivel') id_estatus = request.POST.get('id_estatus') id_estado = request.POST.get('id_estado') #fecha = datetime.strptime(fecha_atencion,"%Y-%m-%d") ddmmyyyy = fecha_atencion fecha = ddmmyyyy[6:] + "-" + ddmmyyyy[3:5] + "-" + ddmmyyyy[:2] deteccion_ = Deteccion() deteccion_.fecha_atencion = fecha deteccion_.tipo_riesgo = tipo_riesgo deteccion_.id_paciente_id = id_paciente deteccion_.id_municipio_id = id_municipio deteccion_.id_servicio_id = id_servicio deteccion_.id_responsable_atencion_id = id_responsable deteccion_.id_tx_farm_id = id_txfarm deteccion_.id_unidad_medica_id = id_unidadmedica deteccion_.id_cie_10_id = id_cie10 deteccion_.num_aplicacion = num_aplicacion deteccion_.id_nivel_id = nivel deteccion_.id_estado_id = id_estado deteccion_.id_user_id = request.user.id deteccion_.id_estatus_id = id_estatus deteccion_.save() mensaje = {"estatus": "True", "msj": "Se registro la deteccion correctamente", "id_deteccion": deteccion_.pk} return HttpResponse(simplejson.dumps(mensaje), mimetype="application/json") def saveSubsecuente(request): if request.is_ajax: fecha_subsecuente = request.POST.get('fecha_subsecuente') id_deteccion = request.POST.get('id_deteccion') id_seguimiento = request.POST.get('id_seguimiento') fecha_subsecuente_hidden=request.POST.get('fecha_subsecuente_hidden') fecha_deteccion_hidden=request.POST.get('fecha_deteccion_hidden') ddmmyyyy = fecha_subsecuente fecha = ddmmyyyy[6:] + "-" + ddmmyyyy[3:5] + "-" + ddmmyyyy[:2] print(fecha_deteccion_hidden) print(fecha) print(fecha_subsecuente_hidden) if fecha < fecha_deteccion_hidden: messages.error(request, 'Error, La fecha subsecuente no puede ser menor a la fecha de deteccion') else: if fecha > fecha_subsecuente_hidden: subsecuente_ = Subsecuente() subsecuente_.fecha = fecha subsecuente_.id_deteccion_id = id_deteccion subsecuente_.id_user_id = request.user.id subsecuente_.seguimiento = id_seguimiento subsecuente_.save() mensaje = {"estatus": "True", "msj": "Se registro el subsecuente correctamente"} return HttpResponse(simplejson.dumps(mensaje), mimetype="application/json") else: messages.error(request, 'Error, La fecha subsecuente actual no puede ser menor a la fecha subsecuente registrada') def saveEgreso(request): if request.is_ajax: fecha_egreso = request.POST.get('fecha_egreso') id_deteccion = request.POST.get('id_deteccion') num_aplicacion = request.POST.get('num_aplicacion') referencia = request.POST.get('referencia') id_nivel = request.POST.get('nivel') id_tipo_egreso = request.POST.get('tipo_egreso') user = User.objects.get(pk=request.user.pk) #fecha = datetime.strptime(fecha_subsecuente,"%Y-%m-%d") deteccion = Deteccion.objects.get(pk=id_deteccion) tipo_egreso = Tipo_Egreso.objects.get(pk=id_tipo_egreso) if id_nivel: nivel = Nivel.objects.get(pk=id_nivel) ddmmyyyy = fecha_egreso fecha = ddmmyyyy[6:] + "-" + ddmmyyyy[3:5] + "-" + ddmmyyyy[:2] egreso_ = Egreso() egreso_.fecha = fecha egreso_.num_aplicacion = num_aplicacion egreso_.referencia = referencia egreso_.id_deteccion = deteccion if id_nivel: egreso_.id_nivel = nivel egreso_.id_tipo_egreso = tipo_egreso egreso_.id_user = user egreso_.save() estatus_inactivo = Estatus.objects.get(pk=2) # deteccion_ = Deteccion() # deteccion_ = deteccion_.id_estatus = "2" d = Deteccion.objects.filter(pk=id_deteccion).update(id_estatus=estatus_inactivo) mensaje = {"estatus": "True", "msj": "Se registro el egreso correctamente"} return HttpResponse(simplejson.dumps(mensaje), mimetype="application/json") class BusquedaAjaxRFC_PacientesView(TemplateView): def get(self, request, *args, **kwargs): rfc = request.GET['value_rfc'] pacientes = Paciente.objects.filter(rfc=rfc) return render_to_response('lista_pacientes_rfc.html', {'lista': pacientes}, context_instance=RequestContext(request)) class BusquedaEstadoView(ListView): queryset = Municipio.objects.filter(id_estado_id=27).order_by('nombre') template_name = 'formDinamico.html' context_object_name = 'municipios' def get_context_data(self, **kwargs): context = super(BusquedaEstadoView, self).get_context_data(**kwargs) context['registros'] = 'active' return context class BusquedaEstado2View(ListView): queryset = Municipio.objects.filter(id_estado_id=27).order_by('nombre') template_name = 'formDinamico2.html' context_object_name = 'municipios' def get_context_data(self, **kwargs): context = super(BusquedaEstado2View, self).get_context_data(**kwargs) context['registros'] = 'active' return context class BusquedaAjaxEstadoView(TemplateView): def get(self, request, *args, **kwargs): estado = Estado.objects.all().order_by('nombre') data = serializers.serialize('json', estado, fields=('id', 'nombre')) return HttpResponse(data, mimetype='application/json') class BusquedaAjaxMunicipioView(TemplateView): def get(self, request, *args, **kwargs): id_estado = request.GET['id'] municipio = Municipio.objects.filter(id_estado__id=id_estado).order_by('nombre') data = serializers.serialize('json', municipio, fields=('id', 'nombre')) return HttpResponse(data, mimetype='application/json') class BusquedaAjaxLocalidadView(View): def get(self, request, *args, **kwargs): localidades = Localidad.objects.all() municipio = request.GET.get('municipio') if municipio: localidades = Localidad.objects.filter(id_municipio__id=municipio).order_by('nombre') buscar = request.GET.get('buscar') if buscar: localidades = localidades.filter(nombre__icontains=buscar) id = request.GET.get('id') if id: localidades = localidades.filter(pk=id) data = serializers.serialize('json', localidades, fields=('id', 'nombre')) return HttpResponse(data, mimetype='application/json') class BusquedaAjaxUnidadMedicaView(TemplateView): def get(self, request, *args, **kwargs): id_municipio = request.GET['id'] unidad_medica = Unidad_Medica.objects.filter(id_localidad__id_municipio__id=id_municipio) data = serializers.serialize('json', unidad_medica, fields=('id', 'nombre')) return HttpResponse(data, mimetype='application/json') class BusquedaAjaxResponsableAtencionView(TemplateView): def get(self, request, *args, **kwargs): id_unidad = request.GET['id_unidad'] id_municipio = request.GET['id_municipio'] id_servicio = request.GET['id_servicio'] responsable_atencion = Responsable_Atencion.objects.filter(id_municipio_id=id_municipio, id_unidad_medica_id=id_unidad, id_tipo_prof_id=id_servicio) data = serializers.serialize('json', responsable_atencion, fields=('id', 'nombre', 'ap_paterno', 'ap_materno')) return HttpResponse(data, mimetype='application/json') class BusquedaAjaxServicioView(TemplateView): def get(self, request, *args, **kwargs): servicio = Servicio.objects.all() data = serializers.serialize('json', servicio, fields=('id', 'descripcion')) return HttpResponse(data, mimetype='application/json') class BusquedaAjaxDerechohabienteView(TemplateView): def get(self, request, *args, **kwargs): derechohabiente = DerechoHabiente.objects.all() data = serializers.serialize('json', derechohabiente, fields=('id', 'clave', 'descripcion')) return HttpResponse(data, mimetype='application/json') class BusquedaMunicipioView(ListView): model = Municipio template_name = 'ejemploAjax.html' context_object_name = 'municipios' class BusquedaAjaxPacienteView(TemplateView): def get(self, request, *args, **kwargs): rfc = request.GET['rfc'] paciente = Paciente.objects.filter(rfc=rfc) data = serializers.serialize('json', paciente) return HttpResponse(data, mimetype='application/json') class BusquedaAjaxTipoEgresoView(TemplateView): def get(self, request, *args, **kwargs): tipo_egreso = Tipo_Egreso.objects.all() data = serializers.serialize('json', tipo_egreso) return HttpResponse(data, mimetype='application/json') class BusquedaAjaxPaciente_IDView(TemplateView): def get(self, request, *args, **kwargs): value = request.GET['id_paciente'] paciente = Paciente.objects.filter(id=value) data = serializers.serialize('json', paciente) return HttpResponse(data, mimetype='application/json') class BusquedaAjaxDetecciones_PacienteView(TemplateView): def get(self, request, *args, **kwargs): id_paciente = int(request.GET['id_paciente']) value_estado = int(request.GET['value_estado']) value_municipio = int(request.GET['value_municipio']) value_unidad = int(request.GET['value_unidad']) value_servicio = int(request.GET['value_servicio']) value_responsable = int(request.GET['value_responsable']) d_responsable = Responsable_Atencion.objects.get(pk=value_responsable) d_servicio = Servicio.objects.get(pk=value_servicio) d_unidad = Unidad_Medica.objects.get(pk=value_unidad) d_municipio = Municipio.objects.get(pk=value_municipio) if id_paciente != "": detecciones_paciente = Deteccion.objects.filter(id_paciente=id_paciente, id_estatus="1") try: existeDeteccion = Deteccion.objects.filter(id_paciente=id_paciente, id_estatus="1", id_municipio=value_municipio, id_unidad_medica=value_unidad, id_servicio=value_servicio) except Exception, e: existeDeteccion = None if existeDeteccion: for deteccion in existeDeteccion: if ( deteccion.id_estado.pk == value_estado and deteccion.id_municipio.pk == value_municipio and deteccion.id_unidad_medica.pk == value_unidad and deteccion.id_servicio.pk == value_servicio and deteccion.id_responsable_atencion.pk == value_responsable): for det in detecciones_paciente: txt_deteccion = "" txt_deteccion += "
- " + det.id_municipio.nombre + "/" + det.id_unidad_medica.nombre + "/" + det.id_servicio.descripcion + "/" + det.id_responsable_atencion.nombre + " " + det.id_responsable_atencion.nombre + " " + det.id_responsable_atencion.nombre + "/" # print txt_deteccion mensaje = {"estatus": "True", "id_deteccion": deteccion.pk, "subsecuente": "True", "deteccion": "False", "historial": txt_deteccion, "msj": "La deteccion del paciente " + deteccion.id_paciente.nombre + " " + deteccion.id_paciente.ap_paterno + " " + deteccion.id_paciente.ap_materno + ", afectara sera:
" + "/" + deteccion.id_municipio.nombre + "/" + deteccion.id_unidad_medica.nombre + "/" + deteccion.id_servicio.descripcion + "/" + deteccion.id_responsable_atencion.nombre + " " + deteccion.id_responsable_atencion.ap_paterno + " " + deteccion.id_responsable_atencion.ap_materno + "/", "advertencia": "Se procedera a registrar la subsecuente."} # print mensaje return HttpResponse(simplejson.dumps(mensaje), mimetype="application/json") elif ( deteccion.id_estado.pk == value_estado and deteccion.id_municipio.pk == value_municipio and deteccion.id_unidad_medica.pk == value_unidad and deteccion.id_servicio.pk == value_servicio and deteccion.id_responsable_atencion.pk != value_responsable): if len(detecciones_paciente) > 1: txt_deteccion = "" for det in detecciones_paciente: txt_deteccion += "
* " + det.id_municipio.nombre + "/" + det.id_unidad_medica.nombre + "/" + det.id_servicio.descripcion + "/" + det.id_responsable_atencion.nombre + " " + det.id_responsable_atencion.ap_paterno + " " + det.id_responsable_atencion.ap_materno + "/" # print txt_deteccion mensaje = {"estatus": "True", "id_deteccion": deteccion.pk, "subsecuente": "False", "deteccion": "True", "msj": "El paciente: " + deteccion.id_paciente.nombre + " " + deteccion.id_paciente.ap_paterno + " " + deteccion.id_paciente.ap_materno + " tiene registradas " + str( detecciones_paciente.count()) + " detecciones: " + txt_deteccion + " ", "advertencia": "Se procedera a registrar la deteccion con el siguente responsable de atencion: " + d_responsable.nombre + " " + d_responsable.ap_paterno + " " + d_responsable.ap_materno} else: txt_deteccion = "" txt_deteccion = "" for det in detecciones_paciente: txt_deteccion += "
* " + det.id_municipio.nombre + "/" + det.id_unidad_medica.nombre + "/" + det.id_servicio.descripcion + "/" + det.id_responsable_atencion.nombre + " " + det.id_responsable_atencion.ap_paterno + " " + det.id_responsable_atencion.ap_materno + "/
" # print txt_deteccion mensaje = {"estatus": "True", "id_deteccion": deteccion.pk, "subsecuente": "False", "deteccion": "True", "msj": "El paciente: " + deteccion.id_paciente.nombre + " " + deteccion.id_paciente.ap_paterno + " " + deteccion.id_paciente.ap_materno + " tiene registrada la sig deteccion " + txt_deteccion, "advertencia": "Se procedera a registrar la deteccion con el siguente responsable de atencion: " + d_responsable.nombre + " " + d_responsable.ap_paterno + " " + d_responsable.ap_materno} return HttpResponse(simplejson.dumps(mensaje), mimetype="application/json") elif ( deteccion.id_estado.pk == value_estado and deteccion.id_municipio.pk == value_municipio and deteccion.id_unidad_medica.pk == value_unidad and deteccion.id_servicio.pk != value_servicio and deteccion.id_responsable_atencion.pk != value_responsable): if len(detecciones_paciente) > 1: txt_deteccion = "" for det in detecciones_paciente: txt_deteccion += "
* " + det.id_municipio.nombre + "/" + det.id_unidad_medica.nombre + "/" + det.id_servicio.descripcion + "/" + det.id_responsable_atencion.nombre + " " + det.id_responsable_atencion.ap_paterno + " " + det.id_responsable_atencion.ap_materno + "/" # print txt_deteccion mensaje = {"estatus": "True", "id_deteccion": deteccion.pk, "subsecuente": "False", "deteccion": "True", "msj": "El paciente: " + deteccion.id_paciente.nombre + " " + deteccion.id_paciente.ap_paterno + " " + deteccion.id_paciente.ap_materno + " tiene registradas " + str( detecciones_paciente.count()) + " detecciones: " + txt_deteccion + " ", "advertencia": "Se procedera a registrar la deteccion con el siguente responsable de atencion: " + d_responsable.nombre + " " + d_responsable.ap_paterno + " " + d_responsable.ap_materno} else: txt_deteccion = "" txt_deteccion = "" for det in detecciones_paciente: txt_deteccion += "
* " + det.id_municipio.nombre + "/" + det.id_unidad_medica.nombre + "/" + det.id_servicio.descripcion + "/" + det.id_responsable_atencion.nombre + " " + det.id_responsable_atencion.ap_paterno + " " + det.id_responsable_atencion.ap_materno + "/
" # print txt_deteccion mensaje = {"estatus": "True", "id_deteccion": deteccion.pk, "subsecuente": "False", "deteccion": "True", "msj": "El paciente: " + deteccion.id_paciente.nombre + " " + deteccion.id_paciente.ap_paterno + " " + deteccion.id_paciente.ap_materno + " tiene registrada la sig deteccion " + txt_deteccion, "advertencia": "Se procedera a registrar la deteccion con el siguente responsable de atencion: " + d_responsable.nombre + " " + d_responsable.ap_paterno + " " + d_responsable.ap_materno} return HttpResponse(simplejson.dumps(mensaje), mimetype="application/json") else: txt_deteccion = "" num_deteccion = len(detecciones_paciente) msj = "" if len(detecciones_paciente)>0: msj += "Se encontraron " +str(num_deteccion) +" detecciones registradas" for det in detecciones_paciente: txt_deteccion += "* " + det.id_municipio.nombre + "/" + det.id_unidad_medica.nombre + "/" + det.id_servicio.descripcion + "/" + det.id_responsable_atencion.nombre + " " + det.id_responsable_atencion.ap_paterno + " " + det.id_responsable_atencion.ap_materno + "/
" # print txt_deteccion else: msj += "No se encontraron detecciones activas" txt_deteccion = "Ninguno" mensaje = { "deteccion":"True", "estatus": "False", "msj":msj, "historial":txt_deteccion, "advertencia": "Se procedera a registrar una nueva deteccion."} #messages.success(request, 'Beneficiario registrado') return HttpResponse(simplejson.dumps(mensaje), mimetype="application/json") class BusquedaAjaxTxFarmView(TemplateView): def get(self, request, *args, **kwargs): tx_farm = Tx_Farm.objects.all() data = serializers.serialize('json', tx_farm) return HttpResponse(data, mimetype='application/json') class BusquedaAjaxCie10View(TemplateView): def get(self, request, *args, **kwargs): cie_10 = Cie_10.objects.all() data = serializers.serialize('json', cie_10, fields=('causa', 'nombre')) return HttpResponse(data, mimetype='application/json') class BusquedaAjaxNivelView(TemplateView): def get(self, request, *args, **kwargs): id_paciente = request.GET['id_paciente'] if id_paciente != '': paciente = Paciente.objects.get(pk=id_paciente) if paciente.edad > 18: nivel = Nivel.objects.filter(tipo="MINI") else: nivel = Nivel.objects.filter(tipo="MINI KID") data = serializers.serialize('json', nivel) return HttpResponse(data, mimetype='application/json') class GuardarPaciente_AjaxView(TemplateView): def post(self, request, *args, **kwargs): rfc = request.POST['rfc'] nombre = request.POST['nombre'] ap_paterno = request.POST['ap_paterno'] ap_materno = request.POST['ap_materno'] sexo = request.POST['sexo'] edad = request.POST['edad'] derechohabiente = request.POST['id_derechohabiente'] municipio = request.POST['id_municipio'] user = request.POST['id_user'] estado = request.POST['id_estado'] paciente_ = Paciente() paciente_.rfc = rfc paciente_.nombre = nombre paciente_.ap_paterno = ap_paterno paciente_.ap_materno = ap_materno paciente_.sexo = sexo paciente_.edad = edad paciente_.id_derechohabiente = derechohabiente paciente_.id_municipio = municipio paciente_.id_user = user paciente_.id_estado = estado paciente_.save() class DetalleResponsableAtencionView(DetailView): model = Responsable_Atencion def get_context_data(self, **kwargs): context = super(DetalleResponsableAtencionView, self).get_context_data(**kwargs) context['responsable_atencio_detail_bc'] = 'active' context['catalogos'] = 'active' return context class EditarResponsableAtencionView(UpdateView): model = Responsable_Atencion @method_decorator(permission_required('principal.change_responsable_atencion', raise_exception=True)) def dispatch(self, request, *args, **kwargs): return super(EditarResponsableAtencionView, self).dispatch(request, *args, **kwargs) def get_success_url(self): return '/responsable/%d/detalle' % self.object.pk def get_context_data(self, **kwargs): context = super(EditarResponsableAtencionView, self).get_context_data(**kwargs) context['catalogos'] = 'active' return context class ListaUnidadMedicaView(DinamicPaginationMixin, SearchMixin, ListView): model = Unidad_Medica def get_filter(self, queryset): search = self.get_search() if queryset: queryset = queryset.filter( Q(clave__icontains=search) | Q(nombre__icontains=search) ) return queryset def get_context_data(self, **kwargs): context = super(ListaUnidadMedicaView, self).get_context_data(**kwargs) context['unidad_medica_bc'] = 'active' context['catalogos'] = 'active' return context def lista_pacientes(request): pacientes = Paciente.objects.all() return render_to_response('lista_pacientes.html', { 'lista': pacientes, 'catalogos': 'active' }, context_instance=RequestContext(request) ) class CrearUnidadMedicaView(CreateView): model = Unidad_Medica form_class = UnidadMedicaForm success_url = reverse_lazy('lista-unidadmedica') def form_valid(self, form): form.instance.id_localidad_id = form.cleaned_data.get('localidad') return super(CrearUnidadMedicaView, self).form_valid(form) # return response def get_context_data(self, **kwargs): context = super(CrearUnidadMedicaView, self).get_context_data(**kwargs) context['catalogos'] = 'active' return context class DetalleUnidadMedicaView(DetailView): model = Unidad_Medica def get_context_data(self, **kwargs): context = super(DetalleUnidadMedicaView, self).get_context_data(**kwargs) context['unidad_medica_detalle_bc'] = 'active' context['catalogos'] = 'active' return context class EditarUnidadMedicaView(UpdateView): model = Unidad_Medica form_class = UnidadMedicaForm def get_success_url(self): return '/unidad_medica/%d/detalle' % self.object.pk def get_initial(self): return { 'localidad': self.object.id_localidad_id, 'municipio': self.object.id_localidad.id_municipio } def get_context_data(self, **kwargs): context = super(EditarUnidadMedicaView, self).get_context_data(**kwargs) context['catalogos'] = 'active' return context class ListaTipoHospital(DinamicPaginationMixin, SearchMixin, ListView): model = Tipo def get_filter(self, queryset): search = self.get_search() if queryset: queryset = queryset.filter( Q(clave__icontains=search) | Q(descripcion__icontains=search) ) return queryset def get_context_data(self, **kwargs): context = super(ListaTipoHospital, self).get_context_data(**kwargs) context['catalogos'] = 'active' context['tipo_bc'] = 'active' return context class CrearTipoHospitalView(CreateView): model = Tipo def get_success_url(self): return '/tipo_um/' def get_context_data(self, **kwargs): context = super(CrearTipoHospitalView, self).get_context_data(**kwargs) context['catalogos'] = 'active' return context class DetalleTipoHospitalView(DetailView): model = Tipo def get_context_data(self, **kwargs): context = super(DetalleTipoHospitalView, self).get_context_data(**kwargs) context['catalogos'] = 'active' context['tipo_detail_bc'] = 'active' return context class EditarTipoView(UpdateView): model = Tipo def get_success_url(self): return '/tipo_um/%d/detalle' % self.object.pk def get_context_data(self, **kwargs): context = super(EditarTipoView, self).get_context_data(**kwargs) context['catalogos'] = 'active' return context class ListaNivelUM(DinamicPaginationMixin, SearchMixin, ListView): model = Nivel_Um def get_filter(self, queryset): search = self.get_search() if queryset: queryset = queryset.filter(descripcion__icontains=search) return queryset def get_context_data(self, **kwargs): context = super(ListaNivelUM, self).get_context_data(**kwargs) context['catalogos'] = 'active' context['nivel_um_bc'] = 'active' return context class CrearNivelUM(CreateView): model = Nivel_Um def get_success_url(self): return '/nivel_um/' def get_context_data(self, **kwargs): context = super(CrearNivelUM, self).get_context_data(**kwargs) context['catalogos'] = 'active' return context class DetalleNivelUM(DetailView): model = Nivel_Um def get_context_data(self, **kwargs): context = super(DetalleNivelUM, self).get_context_data(**kwargs) context['catalogos'] = 'active' context['nivle_um_detail_bc'] = 'active' return context class EditarNivelUM(UpdateView): model = Nivel_Um def get_success_url(self): return '/nivel_um/%d/detalle' % self.object.pk def get_context_data(self, **kwargs): context = super(EditarNivelUM, self).get_context_data(**kwargs) context['catalogos'] = 'active+' return context class BusquedaAjaxSubsecuenteView(TemplateView): def get(self, request, *args, **kwargs): id_deteccion = request.GET['id_deteccion'] #id_deteccion=46 subsecuente = Subsecuente.objects.filter(id_deteccion_id=id_deteccion ).order_by('-fecha') data = serializers.serialize('json', subsecuente) return HttpResponse(data, mimetype='application/json') class BusquedaAjaxFechaDeteccionesView(TemplateView): def get(self, request, *args, **kwargs): id_deteccion = request.GET['id_deteccion'] #id_deteccion=46 deteccion = Deteccion.objects.filter(id=id_deteccion) data = serializers.serialize('json', deteccion) return HttpResponse(data, mimetype='application/json') class JasperMix(object): url = settings.JASPERSERVER username='jasperadmin' password='jasperadmin' def generateReport(self,path,namefile,params={},tipo=None): """ Gennara reportes atravez del jasperserver :param path: :param namefile: :param params: :param tipo: default is PDF """ j = JasperClient(self.url,self.username,self.password) ret = j.runReport(path,("PDF" if not tipo else tipo),params) f = file(namefile,'w') f.write(ret['data']) f.close() class reportetotal(FormView, JasperMix): template_name = 'principal/reporteanio.html' form_class = AnioForm def get(self,request,*args,**kwargs): return super(reportetotal, self).get(request, *args, **kwargs) def form_valid(self, form): anio = str(self.request.POST['anio']) formato = str(self.request.POST['formato']) try: self.generateReport('/suicidios/local/totalatenciones',settings.MEDIA_ROOT+'totalatenciones.'+formato,{'anio':anio,},formato) return HttpResponseRedirect('/media/totalatenciones.'+formato) except Exception, e: messages.error(self.request, 'ocurrio un error durante la carga del reporte: '+str(e)) return HttpResponseRedirect(reverse('reportetotal')) def form_invalid(self, form): messages.error(self.request, 'corrija los siguientes errores') return super(reportetotal, self).form_invalid(form) class reporteproductividad(FormView, JasperMix): template_name = 'principal/reporteanio.html' form_class = AnioForm def get(self,request,*args,**kwargs): return super(reporteproductividad, self).get(request, *args, **kwargs) def form_valid(self, form): anio = str(self.request.POST['anio']) formato = str(self.request.POST['formato']) try: self.generateReport('/suicidios/local/productividad',settings.MEDIA_ROOT+'productividad.'+formato,{'anio':anio,},formato) return HttpResponseRedirect('/media/productividad.'+formato) except Exception, e: messages.error(self.request, 'ocurrio un error durante la carga del reporte: '+str(e)) return HttpResponseRedirect(reverse('reporteproductividad')) def form_invalid(self, form): messages.error(self.request, 'corrija los siguientes errores') return super(reporteproductividad, self).form_invalid(form) def get_context_data(self, **kwargs): context = super(reporteproductividad, self).get_context_data(**kwargs) context['reporte'] = 'de Productividad' return context class reporteacumulacion(FormView, JasperMix): template_name = 'principal/reporteanio.html' form_class = AnioForm def get(self,request,*args,**kwargs): return super(reporteacumulacion, self).get(request, *args, **kwargs) def form_valid(self, form): anio = str(self.request.POST['anio']) formato = str(self.request.POST['formato']) try: self.generateReport('/suicidios/local/acumulacion',settings.MEDIA_ROOT+'acumulacion.'+formato,{'anio':anio,},formato) return HttpResponseRedirect('/media/acumulacion.'+formato) except Exception, e: messages.error(self.request, 'ocurrio un error durante la carga del reporte: '+str(e)) return HttpResponseRedirect(reverse('reporteacumulacion')) def form_invalid(self, form): messages.error(self.request, 'corrija los siguientes errores') return super(reporteacumulacion, self).form_invalid(form) def get_context_data(self, **kwargs): context = super(reporteacumulacion, self).get_context_data(**kwargs) context['reporte'] = 'de Acumulacion' return context class reportejurisdicciongenero(FormView, JasperMix): template_name = 'principal/reporteanio.html' form_class = AnioForm def get(self,request,*args,**kwargs): return super(reportejurisdicciongenero, self).get(request, *args, **kwargs) def form_valid(self, form): anio = str(self.request.POST['anio']) formato = str(self.request.POST['formato']) try: self.generateReport('/suicidios/local/jurisdicciongenero',settings.MEDIA_ROOT+'jurisdicciongenero.'+formato,{'anio':anio,},formato) return HttpResponseRedirect('/media/jurisdicciongenero.'+formato) except Exception, e: messages.error(self.request, 'ocurrio un error durante la carga del reporte: '+str(e)) return HttpResponseRedirect(reverse('reportejurisdicciongenero')) def form_invalid(self, form): messages.error(self.request, 'corrija los siguientes errores') return super(reportejurisdicciongenero, self).form_invalid(form) def get_context_data(self, **kwargs): context = super(reportejurisdicciongenero, self).get_context_data(**kwargs) context['reporte'] = 'de Jurisdiccion por genero (detecciones)' return context class reporteunidadmedicagenero(FormView, JasperMix): template_name = 'principal/reporteanio.html' form_class = AnioForm def get(self,request,*args,**kwargs): return super(reporteunidadmedicagenero, self).get(request, *args, **kwargs) def form_valid(self, form): anio = str(self.request.POST['anio']) formato = str(self.request.POST['formato']) try: self.generateReport('/suicidios/local/unidadmedicagenero',settings.MEDIA_ROOT+'unidadmedicagenero.'+formato,{'anio':anio,},formato) return HttpResponseRedirect('/media/unidadmedicagenero.'+formato) except Exception, e: messages.error(self.request, 'ocurrio un error durante la carga del reporte: '+str(e)) return HttpResponseRedirect(reverse('reporteunidadmedicagenero')) def form_invalid(self, form): messages.error(self.request, 'corrija los siguientes errores') return super(reporteunidadmedicagenero, self).form_invalid(form) def get_context_data(self, **kwargs): context = super(reporteunidadmedicagenero, self).get_context_data(**kwargs) context['reporte'] = 'de Unidad Medica por genero (detecciones)' return context class reportenivelgenero(FormView, JasperMix): template_name = 'principal/reporteanio.html' form_class = AnioForm def get(self,request,*args,**kwargs): return super(reportenivelgenero, self).get(request, *args, **kwargs) def form_valid(self, form): anio = str(self.request.POST['anio']) formato = str(self.request.POST['formato']) try: self.generateReport('/suicidios/local/nivelgenero',settings.MEDIA_ROOT+'nivelgenero.'+formato,{'anio':anio,},formato) return HttpResponseRedirect('/media/nivelgenero.'+formato) except Exception, e: messages.error(self.request, 'ocurrio un error durante la carga del reporte: '+str(e)) return HttpResponseRedirect(reverse('reportenivelgenero')) def form_invalid(self, form): messages.error(self.request, 'corrija los siguientes errores') return super(reportenivelgenero, self).form_invalid(form) def get_context_data(self, **kwargs): context = super(reportenivelgenero, self).get_context_data(**kwargs) context['reporte'] = 'de Nivel de la unidad medica por Genero (detecciones)' return context class reportemesesgenero(FormView, JasperMix): template_name = 'principal/reporteanio.html' form_class = AnioForm def get(self,request,*args,**kwargs): return super(reportemesesgenero, self).get(request, *args, **kwargs) def form_valid(self, form): anio = str(self.request.POST['anio']) formato = str(self.request.POST['formato']) try: self.generateReport('/suicidios/local/mesesgenero',settings.MEDIA_ROOT+'mesesgenero.'+formato,{'anio':anio,},formato) return HttpResponseRedirect('/media/mesesgenero.'+formato) except Exception, e: messages.error(self.request, 'ocurrio un error durante la carga del reporte: '+str(e)) return HttpResponseRedirect(reverse('reportemesesgenero')) def form_invalid(self, form): messages.error(self.request, 'corrija los siguientes errores') return super(reportemesesgenero, self).form_invalid(form) def get_context_data(self, **kwargs): context = super(reportemesesgenero, self).get_context_data(**kwargs) context['reporte'] = 'por Municipio y mes divido por genero (detecciones)' return context class reporteedadgenero(FormView, JasperMix): template_name = 'principal/reporteanio.html' form_class = AnioForm def get(self,request,*args,**kwargs): return super(reporteedadgenero, self).get(request, *args, **kwargs) def form_valid(self, form): anio = str(self.request.POST['anio']) formato = str(self.request.POST['formato']) try: self.generateReport('/suicidios/local/edadgenero',settings.MEDIA_ROOT+'edadgenero.'+formato,{'anio':anio,},formato) return HttpResponseRedirect('/media/edadgenero.'+formato) except Exception, e: messages.error(self.request, 'ocurrio un error durante la carga del reporte: '+str(e)) return HttpResponseRedirect(reverse('reporteedadgenero')) def form_invalid(self, form): messages.error(self.request, 'corrija los siguientes errores') return super(reporteedadgenero, self).form_invalid(form) def get_context_data(self, **kwargs): context = super(reporteedadgenero, self).get_context_data(**kwargs) context['reporte'] = 'por Municipio y Grupos de edad divido por genero (detecciones)' return context class reporteriesgogenero(FormView, JasperMix): template_name = 'principal/reporteanio.html' form_class = AnioForm def get(self,request,*args,**kwargs): return super(reporteriesgogenero, self).get(request, *args, **kwargs) def form_valid(self, form): anio = str(self.request.POST['anio']) formato = str(self.request.POST['formato']) try: self.generateReport('/suicidios/local/riesgogenero',settings.MEDIA_ROOT+'riesgogenero.'+formato,{'anio':anio,},formato) return HttpResponseRedirect('/media/riesgogenero.'+formato) except Exception, e: messages.error(self.request, 'ocurrio un error durante la carga del reporte: '+str(e)) return HttpResponseRedirect(reverse('reporteriesgogenero')) def form_invalid(self, form): messages.error(self.request, 'corrija los siguientes errores') return super(reporteriesgogenero, self).form_invalid(form) def get_context_data(self, **kwargs): context = super(reporteriesgogenero, self).get_context_data(**kwargs) context['reporte'] = 'por municipio y tipo de riesgo dividido por genero (detecciones)' return context class reporteresidenciahabitual(FormView, JasperMix): template_name = 'principal/reporteanio.html' form_class = AnioForm def get(self,request,*args,**kwargs): return super(reporteresidenciahabitual, self).get(request, *args, **kwargs) def form_valid(self, form): anio = str(self.request.POST['anio']) formato = str(self.request.POST['formato']) try: self.generateReport('/suicidios/local/residenciahabitual',settings.MEDIA_ROOT+'residenciahabitual.'+formato,{'anio':anio,},formato) return HttpResponseRedirect('/media/residenciahabitual.'+formato) except Exception, e: messages.error(self.request, 'ocurrio un error durante la carga del reporte: '+str(e)) return HttpResponseRedirect(reverse('reporteresidenciahabitual')) def form_invalid(self, form): messages.error(self.request, 'corrija los siguientes errores') return super(reporteresidenciahabitual, self).form_invalid(form) def get_context_data(self, **kwargs): context = super(reporteresidenciahabitual, self).get_context_data(**kwargs) context['reporte'] = 'por Residencia habitual (detecciones)' return context class reporteescaladeteccion(FormView, JasperMix): template_name = 'principal/reporteanio.html' form_class = AnioForm def get(self,request,*args,**kwargs): return super(reporteescaladeteccion, self).get(request, *args, **kwargs) def form_valid(self, form): anio = str(self.request.POST['anio']) formato = str(self.request.POST['formato']) try: self.generateReport('/suicidios/local/escaladeteccion',settings.MEDIA_ROOT+'escaladeteccion.'+formato,{'anio':anio,},formato) return HttpResponseRedirect('/media/escaladeteccion.'+formato) except Exception, e: messages.error(self.request, 'ocurrio un error durante la carga del reporte: '+str(e)) return HttpResponseRedirect(reverse('reporteescaladeteccion')) def form_invalid(self, form): messages.error(self.request, 'corrija los siguientes errores') return super(reporteescaladeteccion, self).form_invalid(form) def get_context_data(self, **kwargs): context = super(reporteescaladeteccion, self).get_context_data(**kwargs) context['reporte'] = 'por Escala (detecciones)' return context class reporteescalaegreso(FormView, JasperMix): template_name = 'principal/reporteanio.html' form_class = AnioForm def get(self,request,*args,**kwargs): return super(reporteescalaegreso, self).get(request, *args, **kwargs) def form_valid(self, form): anio = str(self.request.POST['anio']) formato = str(self.request.POST['formato']) try: self.generateReport('/suicidios/local/escalaegreso',settings.MEDIA_ROOT+'escalaegreso.'+formato,{'anio':anio,},formato) return HttpResponseRedirect('/media/escalaegreso.'+formato) except Exception, e: messages.error(self.request, 'ocurrio un error durante la carga del reporte: '+str(e)) return HttpResponseRedirect(reverse('reporteescalaegreso')) def form_invalid(self, form): messages.error(self.request, 'corrija los siguientes errores') return super(reporteescalaegreso, self).form_invalid(form) def get_context_data(self, **kwargs): context = super(reporteescalaegreso, self).get_context_data(**kwargs) context['reporte'] = 'por Escala (egreso)' return context class reportederechohabiencia(FormView, JasperMix): template_name = 'principal/reporteanio.html' form_class = AnioForm def get(self,request,*args,**kwargs): return super(reportederechohabiencia, self).get(request, *args, **kwargs) def form_valid(self, form): anio = str(self.request.POST['anio']) formato = str(self.request.POST['formato']) try: self.generateReport('/suicidios/local/derechohabiencia',settings.MEDIA_ROOT+'derechohabiencia.'+formato,{'anio':anio,},formato) return HttpResponseRedirect('/media/derechohabiencia.'+formato) except Exception, e: messages.error(self.request, 'ocurrio un error durante la carga del reporte: '+str(e)) return HttpResponseRedirect(reverse('reportederechohabiencia')) def form_invalid(self, form): messages.error(self.request, 'corrija los siguientes errores') return super(reportederechohabiencia, self).form_invalid(form) def get_context_data(self, **kwargs): context = super(reportederechohabiencia, self).get_context_data(**kwargs) context['reporte'] = 'por Derechohabiencia' return context class reportemorbilidad(FormView, JasperMix): template_name = 'principal/reporteanio.html' form_class = AnioForm def get(self,request,*args,**kwargs): return super(reportemorbilidad, self).get(request, *args, **kwargs) def form_valid(self, form): anio = str(self.request.POST['anio']) formato = str(self.request.POST['formato']) try: self.generateReport('/suicidios/local/morbilidad',settings.MEDIA_ROOT+'morbilidad.'+formato,{'anio':anio,},formato) return HttpResponseRedirect('/media/morbilidad.'+formato) except Exception, e: messages.error(self.request, 'ocurrio un error durante la carga del reporte: '+str(e)) return HttpResponseRedirect(reverse('reportemorbilidad')) def form_invalid(self, form): messages.error(self.request, 'corrija los siguientes errores') return super(reportemorbilidad, self).form_invalid(form) def get_context_data(self, **kwargs): context = super(reportemorbilidad, self).get_context_data(**kwargs) context['reporte'] = 'por morbilidad (detecciones)' return context class reportetratamiento(FormView, JasperMix): template_name = 'principal/reporteanio.html' form_class = AnioForm def get(self,request,*args,**kwargs): return super(reportetratamiento, self).get(request, *args, **kwargs) def form_valid(self, form): anio = str(self.request.POST['anio']) formato = str(self.request.POST['formato']) try: self.generateReport('/suicidios/local/tratamiento',settings.MEDIA_ROOT+'tratamiento.'+formato,{'anio':anio,},formato) return HttpResponseRedirect('/media/tratamiento.'+formato) except Exception, e: messages.error(self.request, 'ocurrio un error durante la carga del reporte: '+str(e)) return HttpResponseRedirect(reverse('reportetratamiento')) def form_invalid(self, form): messages.error(self.request, 'corrija los siguientes errores') return super(reportetratamiento, self).form_invalid(form) def get_context_data(self, **kwargs): context = super(reportetratamiento, self).get_context_data(**kwargs) context['reporte'] = 'por tratamiento (detecciones)' return context class reporteegresomeses(FormView, JasperMix): template_name = 'principal/reporteanio.html' form_class = AnioForm def get(self,request,*args,**kwargs): return super(reporteegresomeses, self).get(request, *args, **kwargs) def form_valid(self, form): anio = str(self.request.POST['anio']) formato = str(self.request.POST['formato']) try: self.generateReport('/suicidios/local/egresomeses',settings.MEDIA_ROOT+'egresomeses.'+formato,{'anio':anio,},formato) return HttpResponseRedirect('/media/egresomeses.'+formato) except Exception, e: messages.error(self.request, 'ocurrio un error durante la carga del reporte: '+str(e)) return HttpResponseRedirect(reverse('reporteegresomeses')) def form_invalid(self, form): messages.error(self.request, 'corrija los siguientes errores') return super(reporteegresomeses, self).form_invalid(form) def get_context_data(self, **kwargs): context = super(reporteegresomeses, self).get_context_data(**kwargs) context['reporte'] = 'por meses y genero (egresos)' return context class reportesubsecuenteedad(FormView, JasperMix): template_name = 'principal/reporteanio.html' form_class = AnioForm def get(self,request,*args,**kwargs): return super(reportesubsecuenteedad, self).get(request, *args, **kwargs) def form_valid(self, form): anio = str(self.request.POST['anio']) formato = str(self.request.POST['formato']) try: self.generateReport('/suicidios/local/subsecuenteedad',settings.MEDIA_ROOT+'subsecuenteedad.'+formato,{'anio':anio,},formato) return HttpResponseRedirect('/media/subsecuenteedad.'+formato) except Exception, e: messages.error(self.request, 'ocurrio un error durante la carga del reporte: '+str(e)) return HttpResponseRedirect(reverse('reportesubsecuenteedad')) def form_invalid(self, form): messages.error(self.request, 'corrija los siguientes errores') return super(reportesubsecuenteedad, self).form_invalid(form) def get_context_data(self, **kwargs): context = super(reportesubsecuenteedad, self).get_context_data(**kwargs) context['reporte'] = 'pacientes en control (subsecuentes)' return context class reporteegresotipodeegreso(FormView, JasperMix): template_name = 'principal/reporteanio.html' form_class = AnioForm def get(self,request,*args,**kwargs): return super(reporteegresotipodeegreso, self).get(request, *args, **kwargs) def form_valid(self, form): anio = str(self.request.POST['anio']) formato = str(self.request.POST['formato']) try: self.generateReport('/suicidios/local/egresotipodeegreso',settings.MEDIA_ROOT+'egresotipodeegreso.'+formato,{'anio':anio,},formato) return HttpResponseRedirect('/media/egresotipodeegreso.'+formato) except Exception, e: messages.error(self.request, 'ocurrio un error durante la carga del reporte: '+str(e)) return HttpResponseRedirect(reverse('reporteegresotipodeegreso')) def form_invalid(self, form): messages.error(self.request, 'corrija los siguientes errores') return super(reporteegresotipodeegreso, self).form_invalid(form) def get_context_data(self, **kwargs): context = super(reporteegresotipodeegreso, self).get_context_data(**kwargs) context['reporte'] = 'pacientes por tipo de egreso (egresos)' return context class reporteegresoedad(FormView, JasperMix): template_name = 'principal/reporteanio.html' form_class = AnioForm def get(self,request,*args,**kwargs): return super(reporteegresoedad, self).get(request, *args, **kwargs) def form_valid(self, form): anio = str(self.request.POST['anio']) formato = str(self.request.POST['formato']) try: self.generateReport('/suicidios/local/egresoedad',settings.MEDIA_ROOT+'egresoedad.'+formato,{'anio':anio,},formato) return HttpResponseRedirect('/media/egresoedad.'+formato) except Exception, e: messages.error(self.request, 'ocurrio un error durante la carga del reporte: '+str(e)) return HttpResponseRedirect(reverse('reporteegresoedad')) def form_invalid(self, form): messages.error(self.request, 'corrija los siguientes errores') return super(reporteegresoedad, self).form_invalid(form) def get_context_data(self, **kwargs): context = super(reporteegresoedad, self).get_context_data(**kwargs) context['reporte'] = 'pacientes egresados por grupos de edad (egresos)' return context class reporteresponsableedad(FormView, JasperMix): template_name = 'principal/reporteanio.html' form_class = AnioForm def get(self,request,*args,**kwargs): return super(reporteresponsableedad, self).get(request, *args, **kwargs) def form_valid(self, form): anio = str(self.request.POST['anio']) formato = str(self.request.POST['formato']) try: self.generateReport('/suicidios/local/responsableedad',settings.MEDIA_ROOT+'responsableedad.'+formato,{'anio':anio,},formato) return HttpResponseRedirect('/media/responsableedad.'+formato) except Exception, e: messages.error(self.request, 'ocurrio un error durante la carga del reporte: '+str(e)) return HttpResponseRedirect(reverse('reporteresponsableedad')) def form_invalid(self, form): messages.error(self.request, 'corrija los siguientes errores') return super(reporteresponsableedad, self).form_invalid(form) def get_context_data(self, **kwargs): context = super(reporteresponsableedad, self).get_context_data(**kwargs) context['reporte'] = 'por responsable de atencion por grupos de edad (detecciones)' return context class reporteresponsableriesgo(FormView, JasperMix): template_name = 'principal/reporteanio.html' form_class = AnioForm def get(self,request,*args,**kwargs): return super(reporteresponsableriesgo, self).get(request, *args, **kwargs) def form_valid(self, form): anio = str(self.request.POST['anio']) formato = str(self.request.POST['formato']) try: self.generateReport('/suicidios/local/responsableriesgo',settings.MEDIA_ROOT+'responsableriesgo.'+formato,{'anio':anio,},formato) return HttpResponseRedirect('/media/responsableriesgo.'+formato) except Exception, e: messages.error(self.request, 'ocurrio un error durante la carga del reporte: '+str(e)) return HttpResponseRedirect(reverse('reporteresponsableriesgo')) def form_invalid(self, form): messages.error(self.request, 'corrija los siguientes errores') return super(reporteresponsableriesgo, self).form_invalid(form) def get_context_data(self, **kwargs): context = super(reporteresponsableriesgo, self).get_context_data(**kwargs) context['reporte'] = 'por responsable de atencion por tipos de riesgo (detecciones)' return context class reporteresponsablemorbilidad(FormView, JasperMix): template_name = 'principal/reporteanio.html' form_class = AnioForm def get(self,request,*args,**kwargs): return super(reporteresponsablemorbilidad, self).get(request, *args, **kwargs) def form_valid(self, form): anio = str(self.request.POST['anio']) formato = str(self.request.POST['formato']) try: self.generateReport('/suicidios/local/responsablemorbilidad',settings.MEDIA_ROOT+'responsablemorbilidad.'+formato,{'anio':anio,},formato) return HttpResponseRedirect('/media/responsablemorbilidad.'+formato) except Exception, e: messages.error(self.request, 'ocurrio un error durante la carga del reporte: '+str(e)) return HttpResponseRedirect(reverse('reporteresponsablemorbilidad')) def form_invalid(self, form): messages.error(self.request, 'corrija los siguientes errores') return super(reporteresponsablemorbilidad, self).form_invalid(form) def get_context_data(self, **kwargs): context = super(reporteresponsablemorbilidad, self).get_context_data(**kwargs) context['reporte'] = 'por responsable de atencion por morbilidad (detecciones)' return context class reporteresponsabletratamiento(FormView, JasperMix): template_name = 'principal/reporteanio.html' form_class = AnioForm def get(self,request,*args,**kwargs): return super(reporteresponsabletratamiento, self).get(request, *args, **kwargs) def form_valid(self, form): anio = str(self.request.POST['anio']) formato = str(self.request.POST['formato']) try: self.generateReport('/suicidios/local/responsabletratamiento',settings.MEDIA_ROOT+'responsabletratamiento.'+formato,{'anio':anio,},formato) return HttpResponseRedirect('/media/responsabletratamiento.'+formato) except Exception, e: messages.error(self.request, 'ocurrio un error durante la carga del reporte: '+str(e)) return HttpResponseRedirect(reverse('reporteresponsabletratamiento')) def form_invalid(self, form): messages.error(self.request, 'corrija los siguientes errores') return super(reporteresponsabletratamiento, self).form_invalid(form) def get_context_data(self, **kwargs): context = super(reporteresponsabletratamiento, self).get_context_data(**kwargs) context['reporte'] = 'por responsable de atencion por tipo de tratamiento (detecciones)' return context class reporteresponsableescala(FormView, JasperMix): template_name = 'principal/reporteanio.html' form_class = AnioForm def get(self,request,*args,**kwargs): return super(reporteresponsableescala, self).get(request, *args, **kwargs) def form_valid(self, form): anio = str(self.request.POST['anio']) formato = str(self.request.POST['formato']) try: self.generateReport('/suicidios/local/responsableescala',settings.MEDIA_ROOT+'responsableescala.'+formato,{'anio':anio,},formato) return HttpResponseRedirect('/media/responsableescala.'+formato) except Exception, e: messages.error(self.request, 'ocurrio un error durante la carga del reporte: '+str(e)) return HttpResponseRedirect(reverse('reporteresponsableescala')) def form_invalid(self, form): messages.error(self.request, 'corrija los siguientes errores') return super(reporteresponsableescala, self).form_invalid(form) def get_context_data(self, **kwargs): context = super(reporteresponsableescala, self).get_context_data(**kwargs) context['reporte'] = 'por responsable de atencion por escala (detecciones)' return context class reportepacientemes(FormView, JasperMix): template_name = 'principal/reporteanio.html' form_class = AnioForm def get(self,request,*args,**kwargs): return super(reportepacientemes, self).get(request, *args, **kwargs) def form_valid(self, form): anio = str(self.request.POST['anio']) formato = str(self.request.POST['formato']) try: self.generateReport('/suicidios/local/pacientemes',settings.MEDIA_ROOT+'pacientemes.'+formato,{'anio':anio,},formato) return HttpResponseRedirect('/media/pacientemes.'+formato) except Exception, e: messages.error(self.request, 'ocurrio un error durante la carga del reporte: '+str(e)) return HttpResponseRedirect(reverse('reportepacientemes')) def form_invalid(self, form): messages.error(self.request, 'corrija los siguientes errores') return super(reportepacientemes, self).form_invalid(form) def get_context_data(self, **kwargs): context = super(reportepacientemes, self).get_context_data(**kwargs) context['reporte'] = 'por paciente dividido en meses' return context class reportepacienteconsulta(FormView, JasperMix): template_name = 'principal/reporteanio.html' form_class = AnioForm def get(self,request,*args,**kwargs): return super(reportepacienteconsulta, self).get(request, *args, **kwargs) def form_valid(self, form): anio = str(self.request.POST['anio']) formato = str(self.request.POST['formato']) try: self.generateReport('/suicidios/local/pacienteconsulta',settings.MEDIA_ROOT+'pacienteconsulta.'+formato,{'anio':anio,},formato) return HttpResponseRedirect('/media/pacienteconsulta.'+formato) except Exception, e: messages.error(self.request, 'ocurrio un error durante la carga del reporte: '+str(e)) return HttpResponseRedirect(reverse('reportepacienteconsulta')) def form_invalid(self, form): messages.error(self.request, 'corrija los siguientes errores') return super(reportepacienteconsulta, self).form_invalid(form) def get_context_data(self, **kwargs): context = super(reportepacienteconsulta, self).get_context_data(**kwargs) context['reporte'] = 'por paciente con total de consultas' return context