r3Tc@sddlZddlmZddlmZddlmZddlm Z ddl m Z m Z ddl m Z ddlmZmZdd lmZdd lmZdd lmZmZdd lmZmZdd lTddlmZddlmZddlm Z dd l!Tddl"m#Z#ddl$m%Z%m&Z&m'Z'ddl(m)Z)m*Z*ddl+m,Z,ddl-m.Z.ddl/m0Z0m1Z1ddl2m3Z3m4Z4ddl5m6Z6ddl m7Z7ddl m Z e)dZ8e)dZ9e)dZ:dZ;dZ<dZ=e)d Z>d!eee fd"YZ?e)d#Z@e)e*d$d%eAd&ZBe)d'ZCe)d(ZDd)ZEd*ZFd+ZGe)d,ZHd-ZId.ZJd/ZKd0ZLd1e fd2YZMd3e fd4YZNd5e fd6YZOd7e fd8YZPd9e fd:YZQd;efd<YZRd=e fd>YZSd?e fd@YZTdAe fdBYZUdCe fdDYZVdEe fdFYZWdGe fdHYZXdIe fdJYZYdKe fdLYZZdMe fdNYZ[dOe fdPYZ\dQe fdRYZ]dSe fdTYZ^dUe fdVYZ_dWefdXYZ`dYefdZYZad[eee fd\YZbd]ZCd^efd_YZcd`efdaYZddbefdcYZeddeee fdeYZfdfefdgYZgdhefdiYZhdjefdkYZid!eee fdlYZ?dmefdnYZjdoefdpYZkdqefdrYZldse fdtYZmdue fdvYZndS(wiN(tstr(t reverse_lazy(tQ(tlength(tListViewt TemplateView(tdatetime(tcsrftrequest(tView(t DetailView(t UpdateViewt CreateView(tDinamicPaginationMixint SearchMixin(t*(tUser(tUserCreationForm(tAuthenticationForm(tmessages(tlogint authenticatetlogout(tlogin_requiredtpermission_required(tmethod_decorator(tRequestContext(t HttpResponsetHttpResponseRedirect(trender_to_responsetget_object_or_404(t serializers(tdatecCs,d}i|d6}td|dt|S(Ntactivetiniciosprincipal.htmltcontext_instance(RR(RR"tpaquete((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pyt principal#s cCs6tjj}tdi|d6dd6dt|S(Nsprincipal.htmltlista_servicioR!R"R#(tServiciotobjectstallRR(Rt servicios((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pytlista_servicios-s  cCs#tjj}tdi|d6S(Nsprincipal.htmltlist_localidades(t LocalidadR(R)R(Rt localidades((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pytlista_localidades9scCsj|jdkrAt|j}|jrJ|jtdSn t}tdi|d6dt|S(NtPOSTt/sformDinamico.htmlt formularioR#(tmethodtNuevoPacienteFormR0tis_validtsaveRRR(RR2((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pytregistro_dinamicoAs    cCsz|jdkrQt|j}|jrZ|jtj|dtdSn t}tdi|d6dt |S(NR0s"Paciente registrado correctamente.R1sformNuevoPaciente.htmlR2R#( R3R4R0R5R6RtsuccessRRR(RR2((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pytnuevo_pacienteLs    cCsj|jdkrAt|j}|jrJ|jtdSn t}tdi|d6dt|S(NR0R1sformNuevaDeteccion.htmlR2R#(R3tNuevaDetenccionFormR0R5R6RRR(RR2((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pytnueva_deteccionYs    cCsRtjjd|}tjj}tdi|d6|d6|d6dt|S(Ntid_tipo_prof_idslista_responsable2.htmlt responsablesttipo_profesiont id_accionR#(tResponsable_AtencionR(tfiltertTipo_ProfesionR)RR(RR?R=R>((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pytlista_responsable_acciones t ListaNivelUMcBs eZeZdZdZRS(cCs+|j}|r'|jd|}n|S(Ntdescripcion__icontains(t get_searchRA(tselftquerysettsearch((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pyt get_filterps cKs0tt|j|}d|dR!tresponsable_bcRKR#(R@R(R)R'RR(RR=R>((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pytlista_responsable}s s"principal.add_responsable_atenciontraise_exceptioncCs|jdkrkt|j}|jrX|j|jtj|dtdStj|dn t}t di|d6dd6d t |S( NR0s.Se ha creado un nuevo Reposnsable de Atencion.s/responsable/lista/sError, Algo salio malsformNuevoResponsable.htmltregistroR!RKR#( R3tNuevoRespAtenFormR0R5R6RR8RterrorRR(RRX((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pytnuevo_responsables      cCs6tjj}tdi|d6dd6dt|S(Nslista_pacientes.htmltlistaR!RKR#(tPacienteR(R)RR(Rt pacientes((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pytlista_pacientess  cCs6tjj}tdi|d6dd6dt|S(Nslista_unidades_medicas.htmlR\R!RKR#(t Unidad_MedicaR(R)RR(Rt unidad_medica((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pytlista_unidades_medicass  cCs5tjjdd}tdi|d6dt|S(Nt id_estatusislista_detecciones.htmlR\R#(t DeteccionR(RARR(Rt detecciones((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pytlista_deteccionesscCs5tjjd|}tdi|d6dt|S(Ntid_paciente_idslista_detecciones_paciente.htmlR\R#(RdR(RARR(Rt id_pacienteRe((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pytlista_detecciones_pacientescCs8tjjjd}tdi|d6dt|S(Ntfechaslista_egresos.htmlR\R#(tEgresoR(R)torder_byRR(Rtegresos((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pyt lista_egresosscCs9tjjd|}|jtj|dtdS(NtpksSe eliminó el pacientes/pacientes/lista/(R]R(tgettdeleteRtwarningR(Rtid_participantetpaciente((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pyteliminar_pacientes c CsO|jrK|jjd}|jjd}|jjd}|jjd}|jjd}|jjd}|jjd}|jjd}|jjd } t} || _|| _|| _|| _|| _|| _ || _ || _ |j j | _| | _| jid d 6d d 6} ttj| ddSdS(Ntrfctnombret ap_paternot ap_maternotsexotedadtid_derechohabientet id_municipiot id_estadotTruetestatuss%Se registro el paciente correctamentetmsjtmimetypesapplication/json(tis_ajaxR0RpR]RvRwRxRyRzR{tid_derechohabiente_idtid_municipio_idtusertidt id_user_idt id_estado_idR6Rt simplejsontdumps( RRvRwRxRyRzR{tderechohabientet municipiotestadot paciente_tmensaje((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pyt savePacientes0            cCs|jr|jjd}|jjd}|jjd}|jjd}|jjd}|jjd}|jjd}|jjd}|jjd } |jjd } |jjd } |jjd } |jjd } |}|dd|dd!d|d }t}||_||_||_||_||_||_ ||_ ||_ | |_ | |_ | |_| |_|jj|_| |_|jidd6dd6|jd6}ttj|ddSdS(Ntfecha_atenciont tiporiesgoRhR}t id_serviciotid_responsablettx_farmt id_unidadtcie_10tnum_aplicaciontnivelRcR~it-iiiRRs&Se registro la deteccion correctamenteRt id_deteccionRsapplication/json(RR0RpRdRt tipo_riesgoRgRtid_servicio_idtid_responsable_atencion_idt id_tx_farm_idtid_unidad_medica_idt id_cie_10_idRt id_nivel_idRRRRt id_estatus_idR6RoRRR(RRRRhR}RRt id_txfarmtid_unidadmedicatid_cie10RRRcR~tddmmyyyyRjt deteccion_R((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pyt saveDeteccionsD %               c CsI|jrE|jjd}|jjd}|jjd}|jjd}|jjd}|}|dd|dd !d|d }|GH|GH|GH||krtj|d qE||kr2t}||_||_|jj |_ ||_ |j id d 6dd6} t tj| ddStj|dndS(Ntfecha_subsecuenteRtid_seguimientotfecha_subsecuente_hiddentfecha_deteccion_hiddeniRiiisFError, La fecha subsecuente no puede ser menor a la fecha de deteccionRRs(Se registro el subsecuente correctamenteRRsapplication/jsonsWError, La fecha subsecuente actual no puede ser menor a la fecha subsecuente registrada(RR0RpRRZt SubsecuenteRjtid_deteccion_idRRRt seguimientoR6RRR( RRRRRRRRjt subsecuente_R((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pytsaveSubsecuente s. %       cCs|jr|jjd}|jjd}|jjd}|jjd}|jjd}|jjd}tjjd|jj}tjjd|}tjjd|} |rt jjd|} n|} | dd | d d !d | d } t } | | _ || _ || _ || _|rB| | _n| | _|| _| jtjjdd }tjjd|jd |}idd6dd6}ttj|ddSdS(Nt fecha_egresoRRt referenciaRt tipo_egresoRoiRiiiRcRRs#Se registro el egreso correctamenteRRsapplication/json(RR0RpRR(RRoRdt Tipo_EgresotNivelRkRjRRRtid_niveltid_tipo_egresotid_userR6tEstatusRAtupdateRRR(RRRRRRRRt deteccionRRRRjtegreso_testatus_inactivotdR((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pyt saveEgresoCs8 %         !tBusquedaAjaxRFC_PacientesViewcBseZdZRS(cOsB|jd}tjjd|}tdi|d6dt|S(Nt value_rfcRvslista_pacientes_rfc.htmlR\R#(tGETR]R(RARR(RGRtargsRORvR^((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pyRpms (RQRRRp(((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pyRlstBusquedaEstadoViewcBs;eZejjddjdZdZdZdZ RS(RiRwsformDinamico.htmlt municipioscKs&tt|j|}d|d<|S(NR!t registros(RMRRN(RGRORP((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pyRNys ( RQRRt MunicipioR(RARlRHt template_nametcontext_object_nameRN(((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pyRtstBusquedaEstado2ViewcBs;eZejjddjdZdZdZdZ RS(RiRwsformDinamico2.htmlRcKs&tt|j|}d|d<|S(NR!R(RMRRN(RGRORP((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pyRNs ( RQRRRR(RARlRHRRRN(((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pyR~stBusquedaAjaxEstadoViewcBseZdZRS(cOs@tjjjd}tjd|dd}t|ddS(NRwtjsontfieldsRRsapplication/json(sidsnombre(tEstadoR(R)RlRt serializeR(RGRRRORtdata((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pyRps (RQRRRp(((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pyRstBusquedaAjaxMunicipioViewcBseZdZRS(cOsS|jd}tjjd|jd}tjd|dd}t|ddS( NRt id_estado__idRwRRRsapplication/json(sidsnombre(RRR(RARlRRR(RGRRROR~RR((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pyRps   (RQRRRp(((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pyRstBusquedaAjaxLocalidadViewcBseZdZRS(c Ostjj}|jjd}|rHtjjd|jd}n|jjd}|ru|jd|}n|jjd}|r|jd|}ntjd|d d }t |d d S( NRtid_municipio__idRwtbuscartnombre__icontainsRRoRRRsapplication/json(sidsnombre( R-R(R)RRpRARlRRR( RGRRROR.RRRR((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pyRps! (RQRRRp(((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pyRstBusquedaAjaxUnidadMedicaViewcBseZdZRS(cOsJ|jd}tjjd|}tjd|dd}t|ddS( NRtid_localidad__id_municipio__idRRRwRsapplication/json(sidsnombre(RR`R(RARRR(RGRRROR}RaR((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pyRps   (RQRRRp(((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pyRst#BusquedaAjaxResponsableAtencionViewcBseZdZRS(c Osp|jd}|jd}|jd}tjjd|d|d|}tjd|dd}t|d dS(NRR}RRRR<RRRRwRxRyRsapplication/json(sidsnombres ap_paternos ap_materno(RR@R(RARRR( RGRRRORR}Rtresponsable_atencionR((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pyRps     (RQRRRp(((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pyRstBusquedaAjaxServicioViewcBseZdZRS(cOs7tjj}tjd|dd}t|ddS(NRRRt descripcionRsapplication/json(sids descripcion(R'R(R)RRR(RGRRROtservicioR((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pyRps (RQRRRp(((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pyRstBusquedaAjaxDerechohabienteViewcBseZdZRS(cOs7tjj}tjd|dd}t|ddS( NRRRtclaveRRsapplication/json(sidsclaves descripcion(tDerechoHabienteR(R)RRR(RGRRRORR((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pyRps (RQRRRp(((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pyRstBusquedaMunicipioViewcBseZeZdZdZRS(sejemploAjax.htmlR(RQRRRRTRR(((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pyRstBusquedaAjaxPacienteViewcBseZdZRS(cOsD|jd}tjjd|}tjd|}t|ddS(NRvRRsapplication/json(RR]R(RARRR(RGRRRORvRtR((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pyRps (RQRRRp(((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pyRstBusquedaAjaxTipoEgresoViewcBseZdZRS(cOs1tjj}tjd|}t|ddS(NRRsapplication/json(RR(R)RRR(RGRRRORR((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pyRps(RQRRRp(((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pyRstBusquedaAjaxPaciente_IDViewcBseZdZRS(cOsD|jd}tjjd|}tjd|}t|ddS(NRhRRRsapplication/json(RR]R(RARRR(RGRRROtvalueRtR((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pyRps (RQRRRp(((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pyRst$BusquedaAjaxDetecciones_PacienteViewcBseZdZRS(cOs t|jd}t|jd}t|jd}t|jd}t|jd}t|jd} tjjd| } tjjd|} tjjd|} tjjd|} |dkr tjj d|d d }y1tjj d|d d d |d |d |}Wnt k r9}d}nX|rx|D]}|j j |kr|jj |kr|jj |kr|jj |kr|jj | krxr|D]j}d}|d|jjd|jjd|jjd|jjd|jjd|jjd7}qWidd6|j d6dd6dd6|d6d|jjd|jjd|jjdd|jjd|jjd|jjd|jjd|jjd|jjdd6dd6}ttj|d d!S|j j |kr}|jj |kr}|jj |kr}|jj |kr}|jj | kr}t|d"krkd}xl|D]d}|d#|jjd|jjd|jjd|jjd|jjd|jjd7}qjWidd6|j d6dd6dd6d$|jjd|jjd|jjd%t|jd&|dd6d'| jd| jd| jd6}nd}d}xl|D]d}|d#|jjd|jjd|jjd|jjd|jjd|jjd(7}q~Widd6|j d6dd6dd6d$|jjd|jjd|jjd)|d6d'| jd| jd| jd6}ttj|d d!S|j j |krG|jj |krG|jj |krG|jj |krG|jj | krGt|d"krd}xl|D]d}|d#|jjd|jjd|jjd|jjd|jjd|jjd7}qWidd6|j d6dd6dd6d$|jjd|jjd|jjd%t|jd&|dd6d'| jd| jd| jd6}nd}d}xl|D]d}|d#|jjd|jjd|jjd|jjd|jjd|jjd(7}q Widd6|j d6dd6dd6d$|jjd|jjd|jjd)|d6d'| jd| jd| jd6}ttj|d d!SqGWq d}t|}d}t|d*kr|d+t|d,7}x|D]d}|d-|jjd|jjd|jjd|jjd|jjd|jjd(7}qYWn|d.7}d/}idd6dd6|d6|d6d0d6}ttj|d d!SndS(1NRht value_estadotvalue_municipiot value_unidadtvalue_serviciotvalue_responsableRotRct1R}tid_unidad_medicaRs
- R1t RRRt subsecuentetFalseRt historialsLa deteccion del paciente s, afectara sera:
s/s/s/Rs(Se procedera a registrar la subsecuente.t advertenciaRsapplication/jsonis
* s El paciente: s tiene registradas s detecciones: sOSe procedera a registrar la deteccion con el siguente responsable de atencion: s/
s# tiene registrada la sig deteccion isSe encontraron s detecciones registradass* s%No se encontraron detecciones activastNingunos-Se procedera a registrar una nueva deteccion.(tintRR@R(RpR'R`RRdRAt ExceptiontNoneR~RoR}RRtid_responsable_atencionRwRRhRxRyRRRtlenRtcount(RGRRRORhRRRRRt d_responsablet d_serviciotd_unidadt d_municipiotdetecciones_pacientetexisteDeteccionteRtdett txt_deteccionRt num_deteccionR((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pyRps   Z b Z bM* b5'Z bM* b5'   e  (RQRRRp(((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pyRstBusquedaAjaxTxFarmViewcBseZdZRS(cOs1tjj}tjd|}t|ddS(NRRsapplication/json(tTx_FarmR(R)RRR(RGRRRORR((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pyRpts(RQRRRp(((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pyRsstBusquedaAjaxCie10ViewcBseZdZRS(cOs7tjj}tjd|dd}t|ddS(NRRtcausaRwRsapplication/json(scausasnombre(tCie_10R(R)RRR(RGRRRORR((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pyRp{s (RQRRRp(((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pyR zstBusquedaAjaxNivelViewcBseZdZRS(cOs|jd}|dkrmtjjd|}|jdkrUtjjdd}qmtjjdd}ntjd|}t |d d S( NRhRRoittipotMINIsMINI KIDRRsapplication/json( RR]R(RpR{RRARRR(RGRRRORhRtRR((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pyRps  (RQRRRp(((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pyR stGuardarPaciente_AjaxViewcBseZdZRS(cOs|jd}|jd}|jd}|jd}|jd}|jd} |jd} |jd} |jd } |jd } t}||_||_||_||_||_| |_| |_| |_ | |_ | |_ |j dS( NRvRwRxRyRzR{R|R}RR~( R0R]RvRwRxRyRzR{R|R}RR~R6(RGRRRORvRwRxRyRzR{RRRRR((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pytposts,                     (RQRRR(((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pyRstDetalleResponsableAtencionViewcBseZeZdZRS(cKs0tt|j|}d|d|j}|r:|jtd|td|B}n|S(Ntclave__icontainsR(RFRAR(RGRHRI((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pyRJs   cKs0tt|j|}d|d|j}|r:|jtd|td|B}n|S(NRRE(RFRAR(RGRHRI((s?/home/paco/Documentos/control-suicidios3.git/principal/views.pyRJs   cKs0tt|j|}d|ds           " , # )       {