Лучшие практики для создания приложений GxP
  • 15 Feb 2023
  • 5 Минуты для чтения
  • Авторы

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


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

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

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

:::(Info) (ПРИМЕЧАНИЕ)Эта статья предполагает предварительное знание основных концепций Tulip, таких как переменные, таблицы и записи завершения.Принеобходимости обратитесь к соответствующим статьям.:::

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

  1. Захват генеалогии и EDHR:

1.1 Использование данных о завершении для создания неизменяемой исторической записи

1.2 Используйте данные о завершении для создания полной прослеживаемости при изменении таблиц

1.3 Используйте данные о завершении для отображения полной прослеживаемости изменений исторических записей.
2. Лучшие практики для управления параметрами процесса (например, единица измерения, точность десятичной дроби и соглашение об именовании переменных)
3. Минимальная практика отображения стандартной информации на каждом этапе
4. Захват электронных подписей с помощью виджетов подписи
5. Управление исключениями и включение проверки по исключениям
6. Работа с временными метками даты и управление ими


1. Захват генеалогических и исторических записей: Используйте данные Completions для создания неизменяемой записи истории.

  • Записи истории создаются путем связывания записи таблицы Tulip Table (т.е. строки в таблице) с данными завершений (записи/строки). Любая запись таблицы Tulip, включенная в данные завершений, может быть использована для этой связи, поэтому запись таблицы, необходимая для записи истории, будет загружена в приложение в то же время, когда происходит завершение приложения. Обязательно включите завершение приложения в логику триггера при манипулировании данными записи.
  • Записи истории составляются из нескольких завершений, поэтому приложения должны "завершаться" в тех точках процесса, где необходимо регистрировать данные. Поэтому может потребоваться, чтобы приложение завершалось несколько раз во время выполнения. Обратите внимание, что при завершении приложения очищаются неперсистентные переменные, и это следует учитывать при разработке приложения.

Захват генеалогических и исторических записей: Используйте данные о завершении для создания полной прослеживаемости при модификации таблиц

  • При работе с записями таблиц обеспечьте прослеживаемость с помощью завершений: Напоминание: Манипуляции с данными в табличных записях во время выполнения приложения происходят в реальном времени и не привязаны к завершению приложения. Чтобы данные были актуальными, включите манипуляции с данными таблицы в ту же последовательность триггеров, что и завершение приложения.

Захват генеалогических и исторических записей: Используйте данные завершения для обработки полной отслеживаемости изменений в исторических записях.

  • Корректировка записей {{глоссарий.История цифровой записи}} может быть выполнена только путем добавления новых данных о завершении. Нет никакого способа намеренно изменить значения в записи о завершении. Это сделано специально, чтобы гарантировать сохранение исходных данных.
  • Проще говоря, запись о завершении - это аудиторский след выполнения приложения. Данные, которые уже были внесены в запись о завершении, исправляются дополнительной записью о завершении.

Пример исправления, реализованного в приложенияхКак сделать исправление: Выполните приложение или шаги приложения снова, с дополнительной переменной, определяющей запись как "исправление".

  • Создайте переменную "Тип записи", которой присваиваются стандартные значения, такие как "Обычный", "Коррекция" и т.д., которые можно использовать для сортировки/фильтрации записи о завершении.
  • В большинстве случаев для сортировки записей об исправлениях достаточно использовать полученные даты, так как это хронологический порядок, при котором действительным значением является самая последняя запись.

2. Лучшие практики управления параметрами процесса (например, единицы измерения, точность десятичных дробей и практика именования переменных)

  • Используйте дополнительные вспомогательные переменные для сохранения единиц измерения для данных процесса. Для данных процесса и производства всегда важно указывать единицу измерения (UOM), например, °C, кг, литры, фазы и т.д.
  • Для этого используется дополнительная переменная (вспомогательная переменная), которая может быть выбрана или имеет статическое значение.
  • Вспомогательные переменные будут сохранены в записи завершения.
  • Используйте логику app Trigger и выражения для управления точностью десятичных дробей. Некоторые параметры процесса могут требовать определенной точности, т.е. количества знаков после запятой. Этим необходимо управлять в приложении с помощью логики триггеров и выражений.
  • Используйте четкие именования переменных для выделения ключевых переменных. Например. Критические параметры процесса (CPP) или Критический атрибут качества (CQA).
  • Определенные параметры процесса должны быть определены как критические параметры процесса (CPP) или критические атрибуты качества (CQA).
  • В настоящее время в Tulip не существует способа маркировки переменных, поэтому самый простой способ сделать это - добавить префикс или суффикс к именам переменных. Например, такие имена переменных, как "температура_CPP", "CQA_Assay B" и т.д.

3. Минимальная стандартная информация, которая должна отображаться на каждом Шаге

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

  1. Название или уникальный идентификатор основного элемента, для обработки которого используется приложение. "Элемент" Например, партия, заказ, оборудование, инструмент, который используется или обрабатывается. В некоторых случаях элементов может быть несколько.
  2. Вошедший в систему пользователь
  3. Версия приложения
  4. Имя шага приложения

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

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

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

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

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

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

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

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

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

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

{height="" width="400"}.

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

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