def buscar_citas(self, med_id, serv_id, fecha_desde): """ Busca un registro de cita :param med_id: :param serv_id: :return: """ fecha_db = fechas.format_cadena_db(fecha_desde) sql = """ select cita_id, cita_fecha, cita_hora, cita_hora_fin,paciente_id, cita_obs, medico_id, cita_serv from tcita where medico_id = {0} and cita_serv = {1} and cita_fecha >= '{2}' order by cita_fecha, cita_hora asc """.format(med_id, serv_id, fecha_db) tupla_desc = ('cita_id', 'cita_fecha', 'cita_hora', 'cita_hora_fin', 'paciente_id', 'cita_obs', 'medico_id', 'cita_serv') citas = self.all(sql, tupla_desc) for cita in citas: cita_fecha = cita['cita_fecha'] cita_hora = cita['cita_hora'] cita_hora_fin = cita['cita_hora_fin'] cita_hora_str = fechas.num_to_hora(cita_hora) cita_fecha_str = fechas.get_fecha_letras_largo( fechas.parse_cadena(cita_fecha)) cita_hora_fin_str = fechas.num_to_hora(cita_hora_fin) cita['cita_fecha_str'] = cita_fecha_str cita['cita_hora_str'] = cita_hora_str cita['cita_hora_fin_str'] = cita_hora_fin_str
def get_historia_porpaciente(self, per_ciruc): """ Buscar todas las veces que se ha registrado una atencion para el paciente especificado :param per_ciruc: :return: ['cosm_id', 'cosm_fechacrea', 'per_ciruc', 'paciente', 'cosm_motivo'] """ sql = u"""select historia.cosm_id, historia.cosm_fechacrea, paciente.per_ciruc, paciente.per_nombres||' '||paciente.per_apellidos as paciente, historia.cosm_motivo, historia.cosm_fechaproxcita from tconsultamedica historia join tpersona paciente on historia.pac_id = paciente.per_id and paciente.per_ciruc = '{0}' order by historia.cosm_fechacrea desc """.format( per_ciruc) tupla_desc = ('cosm_id', 'cosm_fechacrea', 'per_ciruc', 'paciente', 'cosm_motivo', 'cosm_fechaproxcita') historias = self.all(sql, tupla_desc) historias_fecha = [] for item in historias: fecha_str = fechas.get_fecha_letras_largo( fechas.parse_cadena(item['cosm_fechacrea'], formato=ctes.APP_FMT_FECHA_HORA)) item['fecha_crea_largo'] = fecha_str historias_fecha.append(item) return historias_fecha
def listar_citas(self, med_id, fecha_desde): sql_fecha = '' if fecha_desde is not None and len(fecha_desde) > 0: fecha_db = fechas.format_cadena_db(fecha_desde) sql_fecha = "and cita_fecha >= '{fecha}'".format(fecha=fecha_db) sql = u""" select cita.cita_id, cita.cita_fecha, cita.cita_hora, cita.cita_hora_fin,cita.paciente_id, cita.cita_obs, cita.medico_id, cita.cita_serv, cita.cita_estado, case cita.cita_estado when 0 then 'Pendiente' when 1 then 'Atendido' when 2 then 'Cancelado' else '' end as estado, tuserpac.up_email, tuserpac.up_tipo, tuserpac.up_pasword, tuserpac.up_estado, tuserpac.up_fechacrea, tuserpac.up_nombres, tuserpac.up_celular, tuserpac.up_photourl from tcita cita join tuserpaciente tuserpac on cita.paciente_id = tuserpac.up_id where medico_id = {0} {1} order by cita_fecha, cita_hora asc """.format(med_id, sql_fecha) tupla_desc = ('cita_id', 'cita_fecha', 'cita_hora', 'cita_hora_fin', 'paciente_id', 'cita_obs', 'medico_id', 'cita_serv', 'cita_estado', 'estado', 'up_email', 'up_tipo', 'up_pasword', 'up_estado', 'up_fechacrea', 'up_nombres', 'up_celular', 'up_photourl') citas = self.all(sql, tupla_desc) for cita in citas: cita_fecha = cita['cita_fecha'] cita_hora = cita['cita_hora'] cita_hora_fin = cita['cita_hora_fin'] cita_hora_str = fechas.num_to_hora(cita_hora) cita_fecha_str = fechas.get_fecha_letras_largo( fechas.parse_cadena(cita_fecha)) cita_hora_fin_str = fechas.num_to_hora(cita_hora_fin) cita['cita_fecha_str'] = cita_fecha_str cita['cita_hora_str'] = cita_hora_str cita['cita_hora_fin_str'] = cita_hora_fin_str return citas
def get_form(self, dia, sec_id): tk_nro = self.get_next_ticket(fechas.format_cadena_db(dia), sec_id) dia_str = fechas.get_fecha_letras_largo(fechas.parse_cadena(dia)) return { 'tk_id': 0, 'per_id': 0, 'tk_nro': tk_nro, 'tk_obs': '', 'tk_costo': 1.0, 'tk_dia': dia, 'tk_servicios': '', 'dia_str': dia_str }
def listar_citas_paciente(self, up_email): sql = u""" select cita.cita_id, cita.cita_fecha, cita.cita_hora, cita.cita_hora_fin,cita.paciente_id, cita.cita_obs, cita.medico_id, cita.cita_serv, cita.cita_estado, case cita.cita_estado when 0 then 'Pendiente' when 1 then 'Atendido' when 2 then 'Cancelado' else '' end as estado, tuserpac.up_email, tuserpac.up_tipo, tuserpac.up_estado, tuserpac.up_fechacrea, tuserpac.up_nombres, tuserpac.up_celular, tuserpac.up_photourl, medico.per_nombres ||' '|| medico.per_apellidos as nombres_medico from tcita cita join tuserpaciente tuserpac on cita.paciente_id = tuserpac.up_id join tpersona medico on medico.per_id = cita.medico_id where tuserpac.up_email = '{0}' order by cita_fecha, cita_hora asc """.format(up_email) tupla_desc = ('cita_id', 'cita_fecha', 'cita_hora', 'cita_hora_fin', 'paciente_id', 'cita_obs', 'medico_id', 'cita_serv', 'cita_estado', 'estado', 'up_email', 'up_tipo', 'up_estado', 'up_fechacrea', 'up_nombres', 'up_celular', 'up_photourl', 'nombres_medico') citas = self.all(sql, tupla_desc) for cita in citas: cita_fecha = cita['cita_fecha'] cita_hora = cita['cita_hora'] cita_hora_fin = cita['cita_hora_fin'] cita_hora_str = fechas.num_to_hora(cita_hora) cita_fecha_str = fechas.get_fecha_letras_largo( fechas.parse_cadena(cita_fecha)) cita_hora_fin_str = fechas.num_to_hora(cita_hora_fin) cita['cita_fecha_str'] = cita_fecha_str cita['cita_hora_str'] = cita_hora_str cita['cita_hora_fin_str'] = cita_hora_fin_str return citas