Paso 1: Crear la definición del nuevo tipo de evolución:
Para crear un nuevo tipo de evolución, el primer paso es generar su definición para lo que hay que añadir una línea en TIMDEFVALORACIONES tal y como se muestra en la siguiente imagen:
Para seguir con la lógica que tiene el programa, el nuevo tipo de evolución tiene que ser mayor que 306 y menor que 350. Además, para que sea más fácil crear uno nuevo, se recomienda copiar una línea de una evolución ya existente y pegar. En la línea pegada sólo hay que cambiar los campos TIMTIPOVAL, TIMNOMBRETIPOVAL, TIMDESCRIPCION_ES y TIMDESCRIPCION_EU.

Paso 2: Definir en que centro y aplicación se va a mostrar
Hay que definir el nuevo tipo de evolución en que centro y aplicación se va a mostrar. Para eso, hay que añadir una línea en TIMDEFVALPERFILESVAL tal y como se muestra en la siguiente imagen:

cuyos campos son los siguientes:
- TIMCODIGO: campo autonumérico de la tabla.
- TIMCODCENTRO: centro donde se va a mostrar la evolución.
- TIMCODAPLICACION: aplicación en la que se va a mostrar la evolución.
- TIMTIPOVAL: se trata es campo TIMTIPOVAL de la línea que se ha creado en el paso anterior en la tabla TIMDEFVALORACIONES.
TIMCODROL: rol por defecto de esa evolución. No se utiliza.
------------------------------------------------------
/* Script para insertar tantas líneas como centros con episodios activos haya de la aplicación pasada */
declare @CodAplicacion int = 13
declare @TimTipoVal int = 311
declare @CodRol int = 11352
INSERT INTO [dbo].[TIMDEFVALPERFILESVAL]
([TIMCODCENTRO]
,[TIMCODAPLICACION]
,[TIMTIPOVAL]
,[TIMCODROL]
,[TIMBAJA]
,[TIMFECALTA]
,[TIMUSUALTA]
,[TIMFECMOD]
,[TIMUSUMOD]
)
select
Centro.TIMCODIGO AS [TIMCODCENTRO]
--,Centro.TIMDESCRIPCION_ES
,@CodAplicacion AS [TIMCODAPLICACION]
,@TimTipoVal AS [TIMTIPOVAL]
,@CodRol AS [TIMCODROL]
,0 AS [TIMBAJA]
,GETDATE() AS [TIMFECALTA]
,'MARTINGA' AS [TIMUSUALTA]
,GETDATE() AS [TIMFECMOD]
,'MARTINGA' AS [TIMUSUMOD]
from
TIMCENTROS AS Centro
join TIMEPISODIOS AS Episodio
on Episodio.TIMCENTROUBICACION = Centro.TIMCODIGO
join TIMTIPOEPISODIOS as Tipo
on Tipo.TIMTIPOEPISODIO = Episodio.TIMTIPOEPISODIO
where
Centro.TIMBAJA = 0
and Episodio.TIMBAJA = 0
and Tipo.TIMBAJA = 0
and Tipo.TIMAPLICACION = @CodAplicacion
and Episodio.TIMESTADOEPISODIO = 0
group by
Centro.TIMCODIGO
,Centro.TIMDESCRIPCION_ES
-------------------------------------------------------
Paso 3: Crear permiso para la evolución.
Hay que crear un nuevo permiso para el nuevo tipo de evolución.

Es muy importante que el comparador del permiso sea per_ValXXX, siendo XXX el campo TIMTIPOVAL de la tabla TIMDEFVALORACIONES del paso 1.
Si copiamos la función que ya exista para otra aplicación podemos saber cuál es el padre con:
select * from timfunciones where TIMCOMPARADOR = 'AccesoValoraciones' and timcodaplicacion = @CodAplicacion
select * from timfunciones where TIMCOMPARADOR = 'per_EvolucionDefecto ' and timcodaplicacion = @CodAplicacion
Paso 4: Dar permiso a la evolución.
Para saber a cada perfil qué tipo de evolución le corresponde, la aplicación va recorriendo todos los permisos que son del tipo per_Val3XX. El primer permiso que encuentre al que tenga acceso es el que se asigna al usuario. Por tanto, en Mantenimiento Usuarios/Funciones Roles sólo hay que dar permiso a la evolución que se debe asignar al perfil.
Para saber que permiso o permisos de evolución tiene un rol podemos ejecutar:
---------------------------------------------------------
select
fr.TIMCODIGO,
f.TIMCOMPARADOR,
fr.TIMTIPOACCESO
from
TIMFUNCIONESROLES AS fr
join TIMFUNCIONES AS f
on f.TIMCODIGO = fr.TIMCODFUNCION
where
fr.TIMCODAPLICACION = @CodAplicacion
and f.TIMCOMPARADOR LIKE '%per_Val3%'
and f.TIMCOMPARADOR not like '%defecto%'
and fr.TIMCODROLE = @CodRol
and fr.TIMTIPOACCESO <> 'N'
order by
TIMCODFUNCION
---------------------------------------------------------
Paso 5: Dar los permisos por defecto.
Finalmente, para saber en las pantallas de evolución qué evoluciones se deben mostrar chequeados por defecto, se tienen que crear los permisos que el comparador per_Evol3XXDefecto tal y como se muestra en la siguiente figura:

Para que todos los roles de una aplicación vean la nueva aplicación por defecto
--------------------------------------
declare @CodAplicacion int = 15
declare @Comparador nvarchar(50) = 'per_Evol311Defecto'
/*
Comprobamos si alguien ya tiene permiso
*/
select * from timfuncionesroles where timcodfuncion = (select TIMCODIGO from timfunciones where TIMCOMPARADOR = @Comparador and TIMCODAPLICACION = @CodAplicacion)
/*
Ejecutamos
*/
INSERT INTO [dbo].[TIMFUNCIONESROLES]
([TIMCODAPLICACION]
,[TIMCODROLE]
,[TIMCODFUNCION]
,[TIMTIPOACCESO])
SELECT
TIMCODAPLICACION
,TIMCODIGO AS TIMCODROLE
,(select TIMCODIGO from timfunciones where TIMCOMPARADOR = @Comparador and TIMCODAPLICACION = @CodAplicacion) AS TIMCODFUNCION
,'A' AS TIMTIPOACCESO
FROM
TIMROLES
WHERE
TIMCODAPLICACION = @CodAplicacion
and TIMBAJA = 0
----------------------------------------------------
Los datos de estas evoluciones se guardan en la tabla
TIMEPISODIOSHOJAEVOLUCIONOTROS

cuyos campos son:
- TIMCODIGO: código autonumérico de la tabla
- TIMNUMEROEPISODIO: episodio al que pertenece la evolución.
- TIMFECHAEVOLUCION: fecha de la evolución
- TIMTIPOEVOL: tipo de evolución. Se trata del campo TIMTIPOVAL de la tabla TIMDEFVALORACIONES.
- TIMTEXTO: texto de la evolución.
- TIMCOMPARTIDO: indica si la evolución se debe compartir con los demás perfiles.
- TIMMOSTRARAUXILIARES: indica si se debe mostrar la evolución a los auxiliares.
- TIMVOLCARINFORME: si se trata de un episodio de Centro de Día, indica si se debe volcar la evolución en los informes semanales o diarios.
¿Le ha sido útil este artículo?
¡Qué bien!
Gracias por sus comentarios
¡Sentimos mucho no haber sido de ayuda!
Gracias por sus comentarios
Sus comentarios se han enviado
Agradecemos su esfuerzo e intentaremos corregir el artículo