Generar un nuevo tipo de evolutivo

Modificado el Vie, 18 Sep a 3:21 P. M.

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

¡Háganos saber cómo podemos mejorar este artículo!

Seleccione al menos una de las razones
Se requiere la verificación del CAPTCHA.

Sus comentarios se han enviado

Agradecemos su esfuerzo e intentaremos corregir el artículo