- Drucken
Bewährte Praktiken für die Erstellung von GxP-Anwendungen
GxP-Umgebungen haben einzigartige Anforderungen, die durch die Erstellung und Konfiguration von Tulip-Apps erfüllt werden können. Tulip verfügt über eine standardisierte Reihe von Best Practices zur Gewährleistung der Compliance, die hier beschrieben werden.
In diesem Artikel finden Sie:
- Eine Liste der Best Practices und Empfehlungen für die Erstellung von Apps in einer GxP-Umgebung
- Informationen darüber, wie die Best Practices in Tulip Apps implementiert werden können, um die GXP-Konformität zu gewährleisten, einschließlich der Rückverfolgbarkeit von Audit-Trails und der Datenintegrität.
:::(Info) (HINWEIS)Dieser Artikel setzt die Kenntnis grundlegender Tulip-Konzepte wie Variablen, Tabellen und Abschlussdatensätze voraus. Bitte beziehen Sie sich bei Bedarf auf die entsprechenden Artikel.:::
Bewährte Verfahren, die in diesem Artikel behandelt werden:
- Erfassung der Genealogie und EDHR/eBR:
1.1 Verwenden Sie die Vervollständigungsdaten, um einen unveränderlichen Historieneintrag zu erstellen
1.2 Verwenden Sie die Abschlussdaten, um bei der Änderung von Tabellen eine vollständige Rückverfolgbarkeit herzustellen
1.3 Verwenden Sie die Vervollständigungsdaten, um eine vollständige Rückverfolgbarkeit von Änderungen an historischen Einträgen zu zeigen
2. Best Practices für die Verwaltung von Prozessparametern (z. B. Maßeinheit, Dezimalpräzision und Namenskonvention für Variablen)
3. Mindestpraktiken für die Anzeige von Standardinformationen zu jedem Schritt
4. Erfassung elektronischer Signaturen mit Signatur-Widgets
5. Verwaltung von Ausnahmen und Ermöglichung der Überprüfung nach Ausnahmen
6. Arbeit mit und Verwaltung von Datetime-Zeitstempeln
1. Erfassen von Genealogie- und Verlaufsdaten: Verwenden Sie die Erledigungsdaten, um einen unveränderlichen Verlaufsdatensatz zu erstellen
- History Records werden erstellt, indem ein Tulip Table Record (d.h. eine Zeile in einer Tabelle) mit den Completions-Daten (Einträge/Zeilen) verknüpft wird. Jeder Tulip-Tabellendatensatz, der in den Abschlussdaten enthalten ist, kann für diese Verknüpfung verwendet werden, d.h. der für den Verlaufsdatensatz benötigte Tabellendatensatz wird zur gleichen Zeit in die App geladen, in der ein App-Abschluss stattfindet. Stellen Sie sicher, dass Sie App-Abschlüsse in Ihre Trigger-Logik einbeziehen, wenn Sie Datensatzdaten manipulieren.
- Verlaufsdatensätze werden aus mehreren Abschlüssen zusammengestellt, daher sollten Apps an den Punkten im Prozess "abgeschlossen" werden, an denen Daten protokolliert werden müssen. Es kann daher erforderlich sein, dass eine App während der Ausführung mehrmals abgeschlossen wird. Beachten Sie, dass das Abschließen einer App nicht-persistente Variablen löscht und dies beim App-Design berücksichtigt werden sollte.
Erfassen Sie Genealogie- und Verlaufsdaten: Verwenden Sie die Abschlussdaten, um bei der Änderung von Tabellen eine vollständige Rückverfolgbarkeit herzustellen
- Wenn Sie mit Tabellendatensätzen arbeiten, stellen Sie die Rückverfolgbarkeit mit Vervollständigungen sicher: Zur Erinnerung: Die Manipulation von Daten in Tabellendatensätzen während der App-Ausführung geschieht in Echtzeit und ist nicht an den App-Abschluss gebunden. Um die Gleichzeitigkeit der Daten zu gewährleisten, sollten Sie die Manipulation von Tabellendaten in dieselbe Auslösesequenz wie den App-Abschluss aufnehmen.
Erfassen Sie Genealogie- und History-Datensätze: Verwenden Sie die Vervollständigungsdaten, um eine vollständige Rückverfolgbarkeit von Änderungen an historischen Einträgen zu ermöglichen.
- Korrekturen an Digital Record History-Einträgen können nur durch Hinzufügen neuer Vervollständigungsdaten vorgenommen werden. Es gibt keine Möglichkeit, Werte in einem Vervollständigungsdatensatz absichtlich zu ändern. Dies ist beabsichtigt, um sicherzustellen, dass die Originaldaten erhalten bleiben.
- Einfacher ausgedrückt: Ein Abschlussdatensatz ist ein Prüfpfad für die Ausführung einer App. Daten, die bereits in den Abschlussdatensatz aufgenommen wurden, werden durch einen zusätzlichen Eintrag im Abschlussdatensatz korrigiert.
Beispiel für eine in Apps implementierte KorrekturWie wird die Korrektur vorgenommen? Führen Sie die App oder App-Schritte erneut aus, mit einer optionalen Variable, die den Datensatz als "Korrektur" definiert.
- Erstellen Sie eine Variable "Satztyp", der Standardwerte wie "Normal", "Korrektur" usw. zugewiesen werden, die zum Sortieren/Filtern des Abschlussdatensatzes verwendet werden können.
- In den meisten Fällen reicht es aus, die erfassten Daten zu verwenden, um die Korrektureinträge zu sortieren, da dies eine chronologische Reihenfolge ist, wobei der jüngste Eintrag der gültige Wert ist.
2. Best Practices für die Verwaltung von Prozessparametern (z. B. Maßeinheit, Dezimalpräzision und Benennung von Variablen)
- Verwenden Sie zusätzliche Hilfsvariablen, um die Maßeinheit für Prozessdaten zu speichern. Für Prozess- und Produktionsdaten ist es immer wichtig, die Maßeinheit (Unit of Measurement, UOM) anzugeben, z.B. °C, Kg, Liter, Ph., etc.
- Tun Sie dies mit einer zusätzlichen Variablen (Hilfsvariable), die entweder ausgewählt werden kann oder einen statischen Wert hat.
- Hilfsvariablen werden im Abschlussdatensatz gespeichert.
- Verwenden Sie die App-Trigger-Logik und den Ausdruck, um die Dezimalgenauigkeit zu verwalten. Bestimmte Prozessparameter können eine bestimmte Genauigkeit erfordern, d.h. eine bestimmte Anzahl von Dezimalstellen. Dies muss in der App durch Triggerlogik und Ausdrücke verwaltet werden.
- Verwenden Sie klare Variablennamen, um Schlüsselvariablen hervorzuheben, z. B. Kritische Prozessparameter (CPP), oder kritische Qualitätsattribute (CQA)
- Bestimmte Prozessparameter müssen als kritische Prozessparameter (CPP) oder kritische Qualitätsattribute (CQA) definiert werden.
- Es gibt derzeit keine Möglichkeit, Variablen in Tulip zu kennzeichnen, so dass die einfachste Möglichkeit darin besteht, entweder ein Präfix oder ein Suffix zu Variablennamen hinzuzufügen. Z.B. Variablennamen wie "Temperatur_CPP", "CQA_Assay B", usw.
3. Auf jedem Schritt anzuzeigende Mindeststandardinformationen
Die folgenden Elemente sollten auf jedem Schritt angezeigt werden, um dem Benutzer den entsprechenden Kontext zu bieten:
- Der Name oder die eindeutige ID des Hauptelements, das in der Anwendung verarbeitet wird, z. B. Charge, Auftrag, Ausrüstung, Werkzeug. In manchen Fällen gibt es mehrere Artikel.
- Die folgenden Elemente sollten im Basislayout der App vorhanden sein.
- Die 'App Info / App Name'.
- Die 'App Info / App Version'
- Die 'App Info / Angemeldeter Benutzer'.
- Die "App Info / Step Name" (in einer hervorgehobenen Schriftgröße, da der Name des Schritts dem Bediener häufig nützlichen Prozesskontext liefert).
4. Erfassen von elektronischen Unterschriften mit Unterschriften-Widgets
Verwenden Sie den Unterschriftstitel oder die zusätzliche Erfassung/Eingabe von Variablen im Schritt, um den Kontext für die Unterschriften zu liefern. Denken Sie daran, dass die Anforderungen für elektronische Unterschriften vorschreiben, dass eine Unterschrift Folgendes enthalten muss
- Wofür unterschreiben Sie? Der Kontext für die Unterschrift kann im Namen des Unterschriftsschritts beschrieben werden, z. B. Charge, Auftrag, Ausrüstung usw.
- Warum unterschreiben Sie? Verwenden Sie Variablen, um den Grund für die Unterschrift oberhalb des Unterschriften-Widgets anzugeben.
- Wann wurde die Unterschrift geleistet? Der Datums-/Zeitstempel gibt an, wann die Unterschrift geleistet wurde. Die Anwendung erfasst dies automatisch als Abschlussdaten, wenn das Signatur-Widget abgeschlossen ist.
Im Folgenden finden Sie einige empfohlene Möglichkeiten, den Kontext der Signatur zu erfassen.
- Verwenden Sie den Schrittnamen, um den Grund für eine elektronische Unterschrift zu definieren.
- Gruppieren Sie Schritte, die eine elektronische Unterschrift erfordern, und fügen Sie das Unterschriften-Widget als letzten Schritt in die Gruppe ein.
- Verwenden Sie ein Texteingabefeld oder eine Dropdown-Liste, die den Zweck der Signatur beschreibt.
- Erstellen Sie einen zusammenfassenden Schritt vor der Signatur, um dem Benutzer den Kontext zu vermitteln, für den er unterschreibt.
5. Verwaltung von Ausnahmen und Ermöglichung der Überprüfung nach Ausnahmen
Das Folgende ist wichtig, um die Überprüfung von Ausnahmen in Bezug auf einen Verlaufsdatensatz zu ermöglichen.
- Verwenden Sie eine App-Variable, um den Typ des Datensatzes zu definieren (z. B. normal, Korrektur, Ausnahme - siehe Abschnitt 1.3), damit Ausnahmen leicht identifiziert werden können.
- Verwenden Sie eine Tabelle, um die Ausnahmen für die Überprüfung zusammenzustellen. Jede Ausnahme (Fehler, Beobachtung usw.) sollte als einzelner Datensatz in einer Tulip-Tabelle gespeichert werden, die alle relevanten Informationen enthält (Informationen zur Ausnahme, Datum/Uhrzeit, Anwendung, Auftrag/Charge, Bediener usw.). Diese Datensätze werden nicht nur in den Abschlussdaten gespeichert, sondern können auch mit der Charge oder dem Auftrag verknüpft werden.
- Fügen Siein die Ausnahmetabelle eine Spalte ein, die das Artefakt, auf das sich die Ausnahme bezieht, verlinkt oder referenziert. Zum Beispiel: Charge, Material, Ausrüstung, Auftrag
6. Arbeiten mit und Verwalten von Datumszeitstempeln
- Zeitstempel im Abschlussdatensatz werden in UTC mit einem Offset für die Zeitzone erfasst.
- Die Formatierung von Datum und Uhrzeit kann auf Instanzebene für alle Apps eingestellt werden. Dies geschieht über die Option "Einstellungen/Datum und Uhrzeit".
- Datums- und Zeitformate können im Ausdruckseditor formatiert werden. Achten Sie bei der Anzeige oder Eingabe von Datum und Uhrzeit darauf, dass das Datum bzw. die Uhrzeit in einem einheitlichen Format angezeigt wird.
- GxP-Zeitformate erfordern ein eindeutiges Format, z. B. "04-Jul-2020".
- Verwenden Sie Ausdrücke zur Formatierung der Datums-/Zeitanzeige in Apps und Analytics.
- Datumsangaben können mit der Funktion DATETIMETOTEXT im Ausdruckseditor auf das angegebene Format formatiert werden.