# 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