En un post anterior, ya vimos cómo configurar el entorno RDS y ahora nos queda filtrar las acciones que se han ejecutado de todos los eventos registrados. De obligado cumplimiento cuando estamos trabajando con la norma 21 CFR Parte 11, dictada por la FDA (administración de alimentos y medicamentos estadounidense) en 1997

Aqui una breve descripción de los tipos de eventos que disponemos en Intouch

Manual Alarms and Events

Partiendo de los siguientes registros como ejemplo, tenemos 99 eventos , pero de todos ellos al estar trabajando en un entorno RDP vamos a tener valores duplicados o triplicados en función de todas las sesiones

Lo primero que nos interesa saber de todos los registros que tenemos es cuántos de ellos son los que realmente han sido ejecutados por los diferentes operarios.

Para tener una idea con la siguiente query, donde tenemos un timestamp y tagname diferente vamos a saber el número de cambios efectuados , el resto son registros duplicados por las diferentes sesiones no nos aportan nada para para seguir la trazabilidad de ‘x’ acciones.

 SELECT Distinct EventStamp, TagName FROM [v_EventHistory]where   [EventStamp]  BETWEEN '2023-02-06 08:38:57.700' and '2023-02-06 08:55:05.390'
Número de registros

Y ahora nos queda discriminar por la prioridad del tipo de evento. Es decir, a nosotros lo que nos interesa saber de un evento duplicado, quien ha sido el operario que ha cambiado un parametro o ha ejecutado una acción. Con la siguiente query o haciendo algún cambio según las necesidades podemos obtener lo que estamos buscando.

Query
WITH summary AS
(
SELECT ev.EventStamp
,ev.TagName
,ev.Description
,ev.Area
,ev.Type
,ev.Value
,ev.CheckValue
,ev.Priority
,ev.Category
,ev.Provider
,ev.Operator
,ROW_NUMBER() OVER(PARTITION BY ev.EventStamp , ev.TagName ORDER BY ev.Type DESC) AS Mypriority
FROM [v_EventHistory] ev where [EventStamp] BETWEEN '2023-02-06 08:38:57.700' and '2023-02-06 08:55:05.390'
and type <> 'USER' and type <> 'PROT'
)
SELECT * FROM summary WHERE Mypriority = 1 order by EventStamp , TagName , type , Provider

Por tanto en este post, hemos visto cómo aplicar la norma CFR 21 parte 11, utilizando las herramientas que nos proporciona AVEVA Intouch y haciendo uso de SQL server.