- Распечатать
Лучшие практики создания приложений GxP
Среды GxP имеют уникальные требования, которые могут быть учтены при создании и настройке приложений Tulip App. Tulip имеет стандартизированный набор лучших практик для обеспечения соответствия, которые описаны здесь.
В этой статье вы найдете:
- Список лучших практик и рекомендаций по созданию приложений в среде GxP
- Информацию о том, как реализовать лучшие практики в приложениях Tulip Apps для обеспечения соответствия GXP, включая прослеживаемость аудиторского следа и целостность данных.
:::(Info) (ПРИМЕЧАНИЕ)Эта статья предполагает предварительное знание основных концепций Tulip, таких как переменные, таблицы и записи завершения.Принеобходимости обратитесь к соответствующим статьям.:::
Лучшие практики, рассмотренные в этой статье:
- Генеалогия захвата и EDHR/eBR:
1.1 Использование данных о завершении для создания неизменяемой записи истории
1.2 Используйте данные о завершении для создания полной прослеживаемости при изменении таблиц
1.3 Используйте данные о завершении, чтобы показать полную прослеживаемость изменений исторических записей.
2. Лучшие практики управления параметрами процесса (например, единица измерения, десятичная точность и соглашение об именовании переменных)
3. Минимальная практика отображения стандартной информации на каждом этапе
4. Захват электронных подписей с помощью виджетов подписи
5. Управление исключениями и возможность просмотра по исключениям
6. Работа с временными метками и управление ими
7. Включение функции "Пауза и возобновление" для процесса Apps.
1. Захват генеалогических и исторических записей: Используйте данные Completions для создания неизменяемой записи истории.
- Исторические записи создаются путем связывания записи таблицы Tulip Table (т. е. строки в таблице) с данными о завершении (записями/строками). Любая запись таблицы Tulip, включенная в данные завершения, может быть использована для этой связи, поэтому запись таблицы, необходимая для записи истории, будет загружена в приложение в то же время, когда происходит завершение приложения. Обязательно включайте завершение приложения в логику триггера при работе с данными записи.
- Записи истории составляются из нескольких завершений, поэтому приложения должны "завершаться" в тех точках процесса, где необходимо регистрировать данные. Поэтому может потребоваться, чтобы приложение завершалось несколько раз во время выполнения. Обратите внимание, что при завершении приложения очищаются неперсистентные переменные, и это следует учитывать при разработке приложения.
Захват генеалогических и исторических записей: Используйте данные о завершении для создания полной прослеживаемости при изменении таблиц.
- При работе с записями таблицы обеспечьте прослеживаемость с помощью завершений: Напоминание: Манипуляции с данными в записях таблиц во время выполнения приложения происходят в реальном времени и не привязаны к завершению приложения. Чтобы данные были современными, включите манипуляции с данными в таблице в ту же последовательность триггеров, что и завершение приложения.
Захват генеалогических и исторических записей: Используйте данные завершения для обработки полного отслеживания изменений в исторических записях.
- Исправление записей {{глоссарий.История цифровых записей}} может быть выполнено только путем добавления новых данных завершения. Не существует способа намеренно изменить значения в записи о завершении. Это сделано специально, чтобы обеспечить сохранность исходных данных.
- Проще говоря, запись о завершении - это аудиторский след выполнения приложения. Данные, которые уже были внесены в запись о завершении, исправляются дополнительной записью о завершении.
Пример исправления, реализованного в приложенияхКак сделать исправление: Повторно выполнить приложение или шаги приложения с дополнительной переменной, определяющей запись как "исправление".
- Создайте переменную "Тип записи", которой присваиваются стандартные значения, такие как "Нормальный", "Исправление" и т. д., которые можно использовать для сортировки/фильтрации записи о завершении.
- В большинстве случаев для сортировки записей об исправлениях достаточно использовать полученные даты, так как они располагаются в хронологическом порядке, а действительным значением является самая последняя запись.
2. Лучшие практики управления параметрами процесса (например, единицы измерения, десятичная точность и правила именования переменных)
- Используйте дополнительные вспомогательные переменные для сохранения единиц измерения для данных процесса. Для данных процесса и производства всегда важно указывать единицу измерения (UOM), например °C, кг, литры, фазы и т. д.
- Для этого используется дополнительная переменная (вспомогательная переменная), которая может быть выбрана или имеет статическое значение.
- Переменные-помощники будут сохранены в записи завершения.
- Используйте логику и выражения app Trigger для управления точностью десятичных дробей. Некоторые параметры процесса могут требовать определенной точности, т. е. количества знаков после запятой. Этим необходимо управлять в приложении с помощью логики триггеров и выражений.
- Используйте четкое именование переменных, чтобы выделить ключевые переменные. Например. Критические параметры процесса (CPP) или Критический атрибут качества (CQA).
- Определенные параметры процесса должны быть определены как критические параметры процесса (CPP) или критический атрибут качества (CQA).
- В настоящее время в Tulip нет возможности маркировать переменные, поэтому самый простой способ сделать это - добавить префикс или суффикс к именам переменных. Например, такие имена переменных, как "температура_CPP", "CQA_Assay B" и т.д.
3. Минимальная стандартная информация, которая должна отображаться на каждом шаге
Следующие элементы должны отображаться на каждом шаге, чтобы обеспечить пользователю соответствующий контекст:
- Название или уникальный идентификатор основного элемента, который обрабатывается в приложении, например, партия, заказ, оборудование, инструмент. В некоторых случаях таких элементов может быть несколько.
- На базовом макете приложения должны присутствовать следующие элементы.
- 'App Info / App Name'.
- 'Информация о приложении / Версия приложения'.
- 'App Info / Logged-In User'.
- 'App Info / Step Name' (шрифт заметного размера, так как обычно название шага обеспечивает оператору полезный контекст процесса).
4. Сбор электронных подписей с помощью виджетов подписи
Используйте заголовок подписи или дополнительный захват переменных/ввод данных на шаге, чтобы создать контекст для подписей. Помните, что требования к электронной подписи требуют, чтобы подпись включала
- За что вы подписываетесь? Контекст подписи может быть описан в названии шага подписи, например, партия, заказ, оборудование и т. д.
- Почему вы подписываете? Используйте переменные, чтобы поместить причину подписи над виджетом подписи.
- Когда была поставлена подпись? Штамп даты/времени - это время, когда была поставлена подпись. Приложение автоматически фиксирует это как данные о завершении, когда виджет подписи завершен.
Ниже приведены несколько рекомендуемых способов захвата контекста подписи.
- Используйте название шага, чтобы определить причину для электронной подписи.
- Разместите группу шагов, требующих электронной подписи, и включите виджет подписи в качестве последнего шага в группе.
- Используйте текстовую метку или выпадающий список с одним выбором, описывающий цель подписи.
- Создайте итоговый шаг перед подписью, чтобы предоставить пользователю контекст того, за что он подписывается.
5. Управление исключениями и включение возможности просмотра по исключениям
Чтобы разрешить просмотр исключений, связанных с записью истории, необходимо выполнить следующие действия.
- Используйте переменную приложения для определения типа записи (например, обычная, исправление, исключение - см. раздел 1.3), чтобы исключения можно было легко идентифицировать.
- Используйте таблицу, чтобы собрать исключения для проверки. Каждое исключение (дефект, замечание и т. д.) должно храниться в виде отдельной записи в таблице Tulip, включая всю необходимую информацию (информацию об исключении, дату/время, приложение, заказ/партию, оператора и т. д.). Помимо того, что эти записи хранятся в данных о завершении, они могут быть связаны с партией или заказом.
- В таблицу исключений включите столбец, который связывает или ссылается на артефакт, для которого предназначено исключение. Например: партия, материал, оборудование, заказ.
6. Работа с временными метками даты и управление ими
- Временные метки в записи о завершении фиксируются в UTC со смещением на часовой пояс.
- Форматирование даты и времени можно настроить на уровне экземпляра для всех приложений. Это делается в опции "Настройки/Дата и время".
- Форматы даты и времени могут быть отформатированы в редакторе выражений. При отображении или вводе даты и времени убедитесь, что дата/время отображаются в соответствии с единым форматом.
- Форматы времени GxP требуют однозначного формата, например "04-Jul-2020".
- Используйте выражения для форматирования отображения даты/времени в приложениях и аналитике.
- Даты можно отформатировать в заданный формат с помощью функции DATETIMETOTEXT в редакторе выражений.
7. Сделать процесс Apps устойчивым к отменам / Включить функцию паузы и возобновления
Пакетные процессы могут длиться много часов или много дней. Чтобы оператор мог приостановить работу над партией и продолжить ее в более позднее время, рассмотрите рекомендации по решению, описанные в разделе "Функциональность паузы и возобновления".