Bueno vamos a continuar con la práctica.
Vamos vamos a realizar el lector procedure para insertar turnos entonces lo que vamos a hacer es vamos
a reutilizar esta esta estructura que hicimos para insertar los pacientes.
Vamos a reutilizarla y vamos a crear el estor procedure para insertarlos los turnos que vamos a copiar
este contenido y vamos a crear otro archivo en la carpeta whores y le vamos a colocar alta
turnos
alta turnos.
Aquí está y bueno voy a hacer comando comando be corta para copiar el contenido y lo vamos a guardar
con controles.
Así ya lo tenemos almacenado entonces bien lo que vamos a hacer aquí es distinto porque vamos a tener
que validar un turno existente y antes de insertarlo en la tabla de turnos para asegurarnos que ese
turno no esté o no esté dado de alta dos veces con lo cual eso nos traería problemas en el sistema porque
tendríamos un turno duplicado y tendríamos un problema importante entonces esta validación que vamos
a realizar ahora es muy importante para la integridad de los datos de la base de datos y del sistema
así que en principio lo que vamos a tener que ver es qué parámetros vamos a recibir en el proceso haga
el proceso lo vamos a cambiar el nombre y lo vamos a poner turnos
vamos a ponernos Cingular turno y vamos a ponerle el comando.
La sentencia criadita en la sección siguiente vamos a ver más en detalle la sentencia criadita y todos
los usos posibles.
Entonces vamos a analizar un poquito qué tiene la tabla la tabla turnos vamos a ver acá que se ve un
poco más claramente Select Asterisco from turno y veremos el contenido.
Entonces lo que tenemos que validar nosotros es que no más inserté que no me venga otra inserción otra
petición de inserción de ese turno con la misma fecha y con el mismo Estado porque el campo es todo
lo vamos a utilizar en principio para saber si el turno está esta pendiente es decir que el paciente
todavía no se atendió o si el turno está anulado o si está cancelado.
Entonces a estos turnos a estos números que están acá en principio no le vamos a dar importancia.
Lo que sí vamos a tener en cuenta es que vamos a considerar que el Estado cero es un turno pendiente
y el estado 1 es un turno que ya está que ya está realizado es decir que el paciente ya fue atendido
con el especialista con el doctor y ya se retiró entonces ese turno con el Estado uno ya está
realizado y vamos a contemplar que el Estado 2 es el Estado cancelado entonces tenemos Estado 1.
Vamos a ponerlo como un comentario aquí adentro del lector prosiguió sin ningún problema podemos agregar
los comentarios que quisiéramos aquí no hay ningún problema que no nos va a ayudar a interpretar más
el proceso entonces decimos que Estado igual a cero si es pendiente del Estado igual a uno es realizado
y estado igual a dos es cáncer sellado sí nosotros podemos usar los números que querramos para esto.
Yo uso cero uno dos porque son los que me parecen más acordes para la interpretación pero ustedes pueden
usar los que quieran.
Entonces vamos a analizar la tabla turnos a ver que es lo que tenemos que insertar.
En principio sabemos que tenemos dos tablas no tenemos la tabla de turnos donde tengo esta donde tengo
la fecha y tengo el Estado y una observación y tengo la tabla de turno paciente no vamos a colocarla
aquí abajo.
Turno paciente que ahora está vacía pero en la que me detalla qué paciente se va a atender en ese turno
en en ese horario en esa fecha y con qué especialistas con qué médico.
Así que bueno en principio lo que vamos a necesitar aquí es que esto lo vamos a comentar lo vamos a
borrar y vamos a insertar nuestros propios parámetros.
En principio lo que vamos a recibir va a ser la fecha la fecha de turno y va a ser vamos a definirla
como un formato Borchardt.
Si vamos a colocarle vamos a colocarle 8 porque la fecha el formato fecha estándar de Google que lo
interpreta bien de esa manera no año mes día y después le vamos a enviar la hora del turno así que vamos
a enviar la hora y le vamos a decir que es un.
Esto lo vamos a especificar como Char Txaro 8b porque no es necesario que sea variable vamos a recibir
8 caracteres fijos siempre y ahora también si vamos a recibir la hora con cinco caracteres en este formato
vamos a recibir 12 dos puntos cero cero por ejemplo a la fecha lo vamos a recibir 2019 02 15 de formato
año medía hasta jorobar la coma antes de que nos dé error aquí aquí nosotros podíamos recibir en el
parámetro fecha la fecha junto con la hora es decir podríamos recibirlo de esta manera también así con
un espacio y de esa manera recibimos la hora vamos a hacerlo de esa manera porque es más es más fácil
de interpretar.
Vamos a borrar la hora y lo que vamos a hacer aquí es modificar el tamaño del de la fecha lo vamos a
colocar la cantidad de caracteres correctos que será 8 serían 8 hasta aquí serían 9 10 11 12 13 14 14
caracteres para la fecha 14 caracteres para la fecha entonces lo que vamos a recibir va a ser en este
formato y este formato es el que vamos a vamos a filtrar en la tabla a ver si existe con este formato
nos va a dar exactamente si este turno está utilizado o no. Vamos a ver qué toma necesitamos
necesitamos el Estado el Estado de turno por qué
no en este caso no necesitamos el Estado porque en este caso lo vamos a insertar como pendiente así
que el Estado no no no vamos a necesitar como parámetro lo que sigamos nto como parámetro.
Si va a ser el Heydi del paciente y de paciente qué va a ser de tipo paciente lo podemos definir porque
es un tipo de dato que ya hemos definido anteriormente se guarda el tipo de paciente.
Es un tipo de dato entero.
Yo creo que vamos a revisar en el acta del paciente no sé si lo definimos hagan o no no lo teníamos
como parámetro así que era necesario que lo que lo especificó más sobre el tipo de otro paciente.
Lo que sí el tipo de auto observación es si lo habíamos definido observación.
Vamos a revisar a ver los tipos de dato si es cierto si lo vemos definido
vamos a dar tips de fines de data tips que si habíamos definido observacion así que aquí les colocamos
tips de toda observación vamos a darle F5 y ahí está todo correcto listo ya actualizamos el alta del
paciente cómo corresponderã volvemos al alta de turno vamos vamos a continuar y vamos a recibir como
parámetro la idea del médico y también tenemos un tipo de dato médico ya predefinido que hemos definido
nosotros y que lo colocamos acá médico
y ahí ya estaríamos estaríamos bien con los parámetros bien ahora vamos a hacer vamos a comprobar que
no exista este turno con esa fecha establecida.
Vamos a preguntar si no existe Select Asterisco from
Frontur o guarro.
El campo se llama de fecha fecha turno fecha fecha turno igualdad
arroba fecha que es la fecha es decir no existe.
Voy a insertar ese turno.
Acabamos de hacer un vamos a hacer uso de la cláusula top que no lo hicimos.
No lo utilizamos anteriormente y es una buena una buena práctica para utilizarlo por qué.
Porque yo estoy preguntando si no existe el turno con esta fecha pero para hacer este es su cuadri.
Esta consulta tiene que lo que hace acá es devolver un cero al hacer un asterisco si lo que hace acá
es consultar en toda la tabla si existe esta fecha sí.
Entonces lo que podemos agregar Acá es la cláusula top top 1 le ponemos uno para que me devuelva a uno
y acá le podemos poner por ejemplo y de turno que es el primer campo.
Ahí le colocamos sí de turno entonces para qué va a hacer cuando encuentre cuando encuentre el primer
turno con esa fecha va a hacer un Top 1 y me lo va a devolver inmediatamente.
Entonces esto va a ser mucho más rápido que hacer Select Asterisco va a ser mucho más performance va
a tener mucha mejor respuesta y más rápida que un asterisco.
Entonces esto lo dejamos así y vamos a hacer.
Entonces si no existe el turno vamos a hacer insert en tu turno si vamos a insertar los valores que
correspondan.
Acá vamos a cambiar el mensaje vamos a poner el Segredo correctamente y vamos a especificar los campos
vamos a poner fecha por turno vamos a poner Estado vamos a poner observación.
Fíjense que me estoy olvidando de agregar como parámetro el campo de observación
así lo da de alta la tabla correctamente le ponemos tipo de observación si le ponemos por el vacío y
acabamos especificara entonces vamos a especificar los valores vamos a colocar fecha.
Vamos a colocar Estado.
Habíamos dicho que como se estaba insertando un Estado nuevo el Estado era cero que era pendiente entonces
le bordamos cero y después la variable observación
y ahí vamos a modificar esto que estaba mal también el turno ya existe y ahí estaría el proceso terminado
me faltaría la tabla que sería la tabla de turno paciente que es la que tiene el detalle del paciente
con el turno.