|
PROCEDIMIENTO DE ANULACION Y BORRADO DE TURNOS
El modulo de turnos cuenta con los procedimientos de anulación y borrado de turnos
Ambos pueden ejecutarse en un turnos puntuales o en un grupo de turnos

Presionado el BOTON BORRAR desde el formulario de asignación de turnos se abren
Dos opciones la de borrar el turno o la de anular el mismo.
El procedimiento Borrar elimina totalmente los turnos
CREATE PROCEDURE dbo.Turnos_Asignados_Borrar @ID int AS
DELETE [Turnos Asignados a Pacientes]
FROM [Turnos Asignados a Pacientes]
WHERE ([Turnos Asignados a Pacientes].Autonumérico =@id)
GO
El procedimiento Anular marca como anulado el turno seleccionado,
pero no lo borra de la tabla
CREATE PROCEDURE dbo.Turnos_Asignados_Anular @ID int AS
UPDATE[Turnos Asignados a Pacientes] set [Turnos Asignados a Pacientes].Anulado=1
WHERE ([Turnos Asignados a Pacientes].Autonumérico =@id)
GO

Que diferencias existen entre borrar y anular turnos?
Al borrar un turno este se elimina totalmente de la tabla no existiendo ninguna posibilidad de recuperar el mismo, a diferencia del borrado en el proceso de anulación se marca el turno el cual no desaparece físicamente de la tabla de turnos pero este no se vuelve a Mostar mas quedando disponible su horario ( el horario del turno anulado) para volver a usurase. Es factible buscar los turnos anulados y armar un listado de los mismos en caso de que se quieran volver a recitar por ejemplo.
Desde el Formulario de búsqueda de citas para turnos Médicos solo podemos
anular turnos que seleccionemos
ya que borrar varios turnos a la vez podría ser algo insalbablemente grave si
se hiciera por error, por ese motivo no
programamos esa opción.

El formulario de búsqueda de citas se puede filtrar las mismas de acuerdo a distintos criterios, igual que el formulario de asignación de turnos este dispone de un botón borrar el cual permite que los turnos seleccionados puedan ser borrados, o anulados
Antes de proceder confirma al usuario y su nivel de acceso para poder hacer
esta operacion
Porcedimiento Anular todos los turnos seleccionados
CREATE PROCEDURE dbo.dbo_Turnos_Asig_Anula_varios @PApellido varchar(20), @PNombre
varchar(20), @PHistoria int = 0, @PSexo int=0, @PObraSocial int=0, @PServicio int=0, @PMédico int=0, @Pfechadesde DateTime=null, @Pfechaanterior DateTime=null AS
/*
@PHistoria int = 0 cuando no se pasa el parármetro se le asigna el valor de default=0
*/
UPDATE [Turnos Asignados a Pacientes] set [Turnos Asignados a Pacientes].Anulado=1
FROM [Turnos Asignados a Pacientes]
FULL JOIN [Especialidades Médicas] ON [Turnos Asignados a Pacientes].[Código de Especialidad] = [Especialidades Médicas].Código
FULL JOIN [Obras Sociales y Prepagos] ON [Turnos Asignados a Pacientes].[Código de Obra Social] = [Obras Sociales y Prepagos].[Código de Obra Social]
FULL JOIN Médicos ON [Turnos Asignados a Pacientes].[Número de Médico]= Médicos.[Número de Médico]
FULL JOIN Pacientes ON [Turnos Asignados a Pacientes].[Historia Clínica] =Pacientes.[Nro Historia Clínica]
WHERE [Turnos Asignados a Pacientes].[Historia Clínica] = case @PHistoria when 0 then [Turnos Asignados a Pacientes].[Historia Clínica] else @PHistoria end
AND [Turnos Asignados a Pacientes].Sexo = case @Psexo when 0 then [Turnos Asignados a Pacientes].Sexo else @PSexo end
AND [Turnos Asignados a Pacientes].[Código de Obra Social] = case @PObraSocial when 0 then [Turnos Asignados a Pacientes].[Código de Obra Social] else @PObraSocial end
AND [Turnos Asignados a Pacientes].[Código de Especialidad] = case @PServicio when 0 then [Turnos Asignados a Pacientes].[Código de Especialidad] else @PServicio end
AND [Turnos Asignados a Pacientes].[Número de Médico] = case @PMédico when 0 then [Turnos Asignados a Pacientes].[Número de Médico] else @PMédico end
AND [Turnos Asignados a Pacientes].Apellido like @PApellido+'%'
AND [Turnos Asignados a Pacientes].Nombre like @PNombre+'%'
AND [Turnos Asignados a Pacientes].[Fecha y Hora]>= @Pfechadesde
AND [Turnos Asignados a Pacientes].[Fecha y Hora]<=@Pfechaanterior
GO
RECUPERAR TURNOS ANULADO
Para recuperar los turnos anulados de un periodo debemos seleccionar el
filtro el periodo y las caracteristicas para que los mismos
nos sean mostrados, luego presionamos el boton "Desmarcar Turnos
Anulados" y los mismos vuelven a estar vigentes....
OBSERVACIONES DEL PROCEDIMIENTO DE DESMARCAR TURNOS
ANULADOS
Mientras un turno estuvo anulado, para el sistema no existio por lo tanto ese
mismo se le pudo asignar a otro paciente, al desmarcar turnos anulados, nosotros
corremos el riesgo de que existan turnos superpuestos para un mismo medico, por
lo tanto esta opcion la debemos usar con criterio.

CREATE PROCEDURE dbo.Turnos_Desanular @PApellido varchar(20), @PNombre
varchar(20), @PHistoria int = 0, @PSexo int=0, @PObraSocial int=0, @PServicio int=0, @PMédico
int=0, @Pfechadesde DateTime=null, @Pfechaanterior DateTime=null AS
/*
@PHistoria int = 0 cuando no se pasa el parármetro se le asigna el valor de default=0
*/
UPDATE [Turnos Asignados a Pacientes] set [Turnos Asignados a Pacientes].Anulado=0
FROM [Turnos Asignados a Pacientes]
FULL JOIN [Especialidades Médicas] ON [Turnos Asignados a Pacientes].[Código de Especialidad] = [Especialidades Médicas].Código
FULL JOIN [Obras Sociales y Prepagos] ON [Turnos Asignados a Pacientes].[Código de Obra Social] = [Obras Sociales y Prepagos].[Código de Obra Social]
FULL JOIN Médicos ON [Turnos Asignados a Pacientes].[Número de Médico]= Médicos.[Número de Médico]
FULL JOIN Pacientes ON [Turnos Asignados a Pacientes].[Historia Clínica] =Pacientes.[Nro Historia Clínica]
WHERE [Turnos Asignados a Pacientes].[Historia Clínica] = case @PHistoria when 0 then [Turnos Asignados a Pacientes].[Historia Clínica] else @PHistoria end
AND [Turnos Asignados a Pacientes].Sexo = case @Psexo when 0 then [Turnos Asignados a Pacientes].Sexo else @PSexo end
AND [Turnos Asignados a Pacientes].[Código de Obra Social] = case @PObraSocial when 0 then [Turnos Asignados a Pacientes].[Código de Obra Social] else @PObraSocial end
AND [Turnos Asignados a Pacientes].[Código de Especialidad] = case @PServicio when 0 then [Turnos Asignados a Pacientes].[Código de Especialidad] else @PServicio end
AND [Turnos Asignados a Pacientes].[Número de Médico] = case @PMédico when 0 then [Turnos Asignados a Pacientes].[Número de Médico] else @PMédico end
AND [Turnos Asignados a Pacientes].Apellido like @PApellido+'%'
AND [Turnos Asignados a Pacientes].Nombre like @PNombre+'%'
AND [Turnos Asignados a Pacientes].[Fecha y Hora]>= @Pfechadesde
AND [Turnos Asignados a Pacientes].[Fecha y Hora]<=@Pfechaanterior
AND [Turnos Asignados a Pacientes].Anulado =1
GO
Procedimientos almacenados Relacionados
data.dbo_Turnos_Desanular
dbo.dbo_Turnos_Asig_Anula_varios
dbo.dbo_Turnos_Asig_Borra_varios
dbo.Turnos_Asignados_Búsqueda
dbo.Turnos_Asignados_Anular
dbo.Turnos_Asignados_Borrar
OBSERVACIONES CON RESPECTO A LOS HORARIOS EXTRAS DE ATENCION Y A LA
SUSPENCION DE HORARIOS
Tanto los horarios extras de atencion como a suspencion de horarios se aplica
por dia y no por bloque, estas novedades afectan
a todos los bloques de un dia.
|