MENU
    Лучшие практики создания приложений GxP
    • 08 Jan 2025
    • 5 Минуты для чтения
    • Авторы

    Лучшие практики создания приложений GxP


    Вводный текст

    Среды GxP имеют уникальные требования, которые могут быть учтены при создании и настройке приложений Tulip App. Tulip имеет стандартизированный набор лучших практик для обеспечения соответствия, которые описаны здесь.

    В этой статье вы найдете:

    • Список лучших практик и рекомендаций по созданию приложений в среде GxP
    • Информацию о том, как реализовать лучшие практики в приложениях Tulip Apps для обеспечения соответствия GXP, включая прослеживаемость аудиторских путей и целостность данных.
    NOTE

    This article assumes prior knowledge of basic Tulip concepts such as variables, tables, and completion records. Please reference applicable articles as necessary.

    Лучшие практики, о которых идет речь в этой статье:

    1. Захват генеалогии и EDHR/eBR:
    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. Минимальная стандартная информация, которая должна отображаться на каждом шаге

    Следующие элементы должны отображаться на каждом шаге, чтобы обеспечить пользователю соответствующий контекст:

    1. Название или уникальный идентификатор основного элемента, который обрабатывается в приложении, например, партия, заказ, оборудование, инструмент. В некоторых случаях таких элементов может быть несколько.
    2. На базовом макете приложения должны присутствовать следующие элементы.
      1. 'App Info / App Name'.
      2. 'Информация о приложении / Версия приложения'.
      3. 'App Info / Logged-In User'.
      4. 'App Info / Step Name' (шрифт заметного размера, так как обычно название шага обеспечивает оператору полезный контекст процесса).

    4. Сбор электронных подписей с помощью виджетов подписи

    Используйте заголовок подписи или дополнительный захват переменных/ввод данных на шаге, чтобы создать контекст для подписей. Помните, что требования к электронной подписи требуют, чтобы подпись включала

    1. За что вы подписываетесь? Контекст подписи может быть описан в названии шага подписи, например, партия, заказ, оборудование и т. д.
    2. Почему вы подписываете? Используйте переменные, чтобы поместить причину подписи над виджетом подписи.
    3. Когда была поставлена подпись? Штамп даты/времени - это время, когда была поставлена подпись. Приложение автоматически фиксирует это как данные о завершении, когда виджет подписи завершен.

    Ниже приведены несколько рекомендуемых способов захвата контекста подписи.

    • Используйте название шага, чтобы определить причину для электронной подписи.
    • Разместите группу шагов, требующих электронной подписи, и включите виджет подписи в качестве последнего шага в группе.
    • Используйте текстовую метку или выпадающий список с одним выбором, описывающий цель подписи.
    • Создайте итоговый шаг перед подписью, чтобы предоставить пользователю контекст того, за что он подписывается.

    5. Управление исключениями и включение возможности просмотра по исключениям

    Чтобы разрешить просмотр исключений, связанных с записью истории, необходимо выполнить следующие действия.

    • Используйте переменную приложения для определения типа записи (например, обычная, исправление, исключение - см. раздел 1.3), чтобы исключения можно было легко идентифицировать.
    • Используйте таблицу, чтобы собрать исключения для проверки. Каждое исключение (дефект, замечание и т. д.) должно храниться в виде отдельной записи в таблице Tulip, включая всю необходимую информацию (информацию об исключении, дату/время, приложение, заказ/партию, оператора и т. д.). Помимо того, что эти записи хранятся в данных о завершении, они могут быть связаны с партией или заказом.
    • В таблицу исключений включите столбец, который связывает или ссылается на артефакт, для которого предназначено исключение. Например: партия, материал, оборудование, заказ.

    6. Работа с временными метками даты и управление ими

    1. Временные метки в записи о завершении фиксируются в UTC со смещением на часовой пояс.
    2. Форматирование даты и времени можно настроить на уровне экземпляра для всех приложений. Это делается в опции "Настройки/Дата и время".

    1. Форматы времени могут быть отформатированы в редакторе выражений. При отображении или вводе даты и времени убедитесь, что дата/время отображается на основе последовательного формата.
    2. Форматы времени GxP требуют однозначного формата, например "04-Jul-2020".
    3. Используйте выражения для форматирования отображения даты/времени в приложениях и аналитике.
    4. Даты можно отформатировать в заданный формат с помощью функции DATETIMETOTEXT в редакторе выражений.

    7. Сделать процесс Apps устойчивым к отменам / Включить функцию паузы и возобновления

    Пакетные процессы могут длиться много часов или много дней. Чтобы оператор мог приостановить работу над партией и продолжить ее в более позднее время, рассмотрите рекомендации по решению, описанные в разделе "Функциональность паузы и возобновления".


    Была ли эта статья полезной?