Najlepsze praktyki tworzenia aplikacji GxP
  • 15 Feb 2023
  • 5 Minuty do przeczytania
  • Współtwórcy

Najlepsze praktyki tworzenia aplikacji GxP


Środowiska GxP mają unikalne wymagania, które mogą być uwzględnione poprzez budowę i konfigurację Tulip App. Tulip ma ustandaryzowany zestaw najlepszych praktyk zapewniających zgodność, które są opisane tutaj.

W tym artykule znajdziesz:

  • Listę najlepszych praktyk i zaleceń dotyczących budowania aplikacji w środowisku GxP
  • Informacje o tym, jak wdrożyć najlepsze praktyki w Tulip Apps, aby zapewnić zgodność z GXP, w tym śledzenie ścieżki audytu i integralność danych.

:::(Info) (UWAGA)Ten artykuł zakłada wcześniejszą znajomość podstawowych pojęć Tulipa, takich jak zmienne, tablice i rekordy uzupełnień. Prosimy o odniesienie się do odpowiednich artykułów w razie potrzeby.:::

Najlepsze praktyki omówione w tym artykule:

  1. Capture genealogy i EDHR:

1.1 Użyj danych uzupełnień, aby utworzyć niezmienny rekord historii.

1.2 Używanie danych uzupełnień do tworzenia pełnej identyfikowalności podczas modyfikowania Tablic

1.3 Wykorzystanie danych uzupełnień do wykazania pełnej identyfikowalności zmian w zapisach historycznych
2. Najlepsze praktyki zarządzania parametrami procesu (np. jednostka miary, precyzja dziesiętna, konwencja nazewnictwa zmiennych)
3. Minimalna praktyka wyświetlania standardowych informacji na każdym etapie
4. Przechwytywanie podpisów elektronicznych za pomocą widżetów podpisu
5. Zarządzanie wyjątkami i umożliwienie przeglądu według wyjątków
6. Praca z Datetime timestamps i zarządzanie nimi


1. Przechwytywanie genealogii i rekordu historii: Użyj danych Completions, aby utworzyć niezmienny rekord historii.

  • Rekordy historii są tworzone przez połączenie rekordu Tulip Table (np. wiersz w tabeli) z danymi uzupełnień (wpisy/wiersze). Każdy rekord tabeli Tulipan, który jest zawarty w danych uzupełnień może być użyty do tego połączenia, dlatego rekord tabeli potrzebny do rekordu historii będzie załadowany w aplikacji w tym samym czasie, kiedy następuje uzupełnienie aplikacji. Pamiętaj, aby uwzględnić uzupełnienia aplikacji w swojej logice wyzwalania podczas manipulowania danymi rekordu.
  • Rekordy historii są kompilowane z wielu uzupełnień, dlatego aplikacje powinny "kończyć się" w tych miejscach procesu, w których dane muszą być rejestrowane. Dlatego też może być wymagane, aby aplikacja kończyła pracę wielokrotnie w trakcie wykonywania. Należy pamiętać, że ukończenie aplikacji powoduje wyczyszczenie zmiennych nietrwałych i należy to uwzględnić podczas projektowania aplikacji.

Przechwytywanie zapisów genealogicznych i historycznych: Użyj danych o uzupełnieniach, aby stworzyć pełną identyfikowalność podczas modyfikowania tabel

  • Podczas pracy z rekordami tabeli, zapewnij możliwość śledzenia z uzupełnieniami: Przypomnienie: Manipulacja danymi w rekordach tabeli podczas wykonywania aplikacji dzieje się w czasie rzeczywistym i nie jest związana z Uzupełnieniami aplikacji. Aby zachować ciągłość danych, włączaj manipulację danymi w tabeli do tej samej sekwencji wyzwalającej, co zakończenie aplikacji.

Przechwytywanie genealogii i zapisów historii: Użyj danych uzupełnień do obsługi pełnego śledzenia zmian w historycznych wpisach

  • Korekta wpisów {{glosariusz.Historia rekordu cyfrowego}} może być wykonana tylko przez dodanie nowych danych uzupełnień. Nie ma możliwości celowej zmiany wartości w zapisie uzupełnień. Jest to celowe, aby zapewnić zachowanie oryginalnych danych.
  • W prosty sposób można to rozumieć w ten sposób, że zapis ukończenia jest ścieżką audytu wykonującej się aplikacji. Dane, które zostały już wprowadzone do rekordu uzupełnienia, są korygowane przez dodatkowy wpis w rekordzie uzupełnienia.

Przykład korekty wprowadzonej w AplikacjachJak dokonać korekty: Wykonaj ponownie App lub kroki App, z opcjonalną zmienną, która definiuje zapis jako "korekta".

  • Utwórz zmienną "Typ rekordu", której przypisane są standardowe wartości takie jak "Normalny", "Korekta" itp. które mogą być wykorzystane do sortowania/filtrowania rekordu uzupełnienia.
  • W większości przypadków wystarczy użyć przechwyconych dat, aby posortować wpisy korekty, ponieważ jest to porządek chronologiczny, w którym najnowszy wpis jest prawidłową wartością.

2. Najlepsze praktyki zarządzania parametrami procesu (np. jednostka miary, precyzja dziesiętna i praktyki nazewnictwa zmiennych)

  • Użyj dodatkowych zmiennych pomocniczych, aby zapisać jednostkę miary dla danych procesowych. Dla danych procesowych i produkcyjnych zawsze ważne jest określenie jednostki miary (UOM), np. °C, kg, litry, ph., itp.
  • °C, Kg, Litry, Ph, itd. Można to zrobić przy pomocy dodatkowej zmiennej (helper variable), która może być wybierana lub ma wartość statyczną.
  • Zmienne pomocnicze zostaną zapisane w rekordzie uzupełnienia.
  • Użyj app Trigger logic i wyrażenia do zarządzania precyzją dziesiętną. Niektóre parametry procesu mogą wymagać określonej precyzji, tj. liczby miejsc po przecinku. Należy tym zarządzać w aplikacji poprzez logikę wyzwalania i wyrażenia.
  • Używaj jasnego nazewnictwa zmiennych, aby wyróżnić kluczowe zmienne. np. KrytyczneParametry Procesu (CPP) lub Krytyczny Atrybut Jakości (CQA)
  • Niektóre parametry procesu muszą być zdefiniowane jako Krytyczne parametry procesu (CPP) lub Krytyczny atrybut jakości (CQA).
  • Nie ma obecnie możliwości oznaczania zmiennych w Tulipie, więc najprostszym sposobem jest dodanie prefiksu lub sufiksu do nazw zmiennych. Np. nazwy zmiennych takie jak "temperatura_CPP", "CQA_Assay B", itd.

3. Minimalna standardowa informacja, która ma być wyświetlana na każdym etapie

Następujące elementy powinny być wyświetlane na każdym kroku, aby zapewnić użytkownikowi odpowiedni kontekst:

  1. Nazwa lub unikalny identyfikator głównego elementu, do którego przetwarzania służy aplikacja. "Item" Np. Batch , Order , Equipment, Tool, który jest używany lub przetwarzany. W niektórych przypadkach będzie wiele pozycji.
  2. Zalogowany Użytkownik
  3. Wersja aplikacji
  4. Nazwa etapu aplikacji.

4. Przechwytywanie podpisów elektronicznych za pomocą widżetów podpisu

Użyj tytułu podpisu lub dodatkowego zmiennego przechwytywania/wprowadzania w kroku, aby nadać kontekst podpisom. Pamiętaj, że wymagania dotyczące podpisu elektronicznego nakazują, aby podpis zawierał

  1. Na co się podpisujesz? Kontekst podpisu może być opisany w nazwie kroku podpisu, np. partia, zamówienie, sprzęt itp.
  2. Dlaczego składasz podpis? Użyj zmiennych, aby umieścić powód złożenia podpisu nad widżetem podpisu.
  3. Kiedy został podpisany? Data/godzina to moment, w którym podpis został złożony. Aplikacja automatycznie przechwytuje to jako dane uzupełnienia, gdy widżet podpisu jest wypełniony.

Poniżej znajduje się kilka zalecanych sposobów przechwytywania kontekstu podpisu.

  • Użyj nazwy kroku, aby określić powód złożenia e-podpisu.
  • Umieść grupę Kroki, które wymagają podpisu elektronicznego i dołącz widżet podpisu jako ostatni krok w grupie.
  • Użyj etykiety wprowadzania tekstu lub pojedynczego wyboru listy rozwijanej, która opisuje intencję podpisu.
  • Utwórz krok podsumowujący przed podpisem, aby zapewnić użytkownikowi kontekst tego, co podpisuje.

5. Zarządzanie wyjątkami i umożliwienie przeglądu według wyjątków

Aby umożliwić przeglądanie wyjątków związanych z zapisem historii, należy wykonać następujące czynności.

  • Użyj aplikacji Zmienna, aby zdefiniować typ rekordu (np. normalny, korekta, wyjątek - patrz punkt 1.3), aby umożliwić łatwą identyfikację wyjątków.
  • Użyj tabeli, aby zestawić wyjątki do przeglądu. Każdy wyjątek (defekt, spostrzeżenie itp.) powinien być przechowywany jako pojedynczy rekord w tabeli Tulip, zawierający wszystkie istotne informacje (informacje o wyjątku, data/czas, aplikacja, zamówienie/serie, operator itp.) Oprócz przechowywania w danych uzupełniających, rekordy te mogą być powiązane z partią lub zleceniem.
  • W tabeli wyjątków uwzględnij kolumnę, która łączy lub odnosi się do artefaktu, którego dotyczy wyjątek. Na przykład partia, materiał, wyposażenie, zamówienie.

6. Praca i zarządzanie znacznikami czasowymi daty

  1. Znaczniki czasu w rekordzie uzupełnienia są zapisywane w UTC z przesunięciem dla strefy czasowej.
  2. Formatowanie daty i czasu można ustawić na poziomie instancji dla wszystkich Apps. Odbywa się to w opcji "Settings/Date And Time".

  1. Formaty dat można formatować w edytorze wyrażeń. Podczas wyświetlania lub wprowadzania daty czasu upewnij się, że wyświetlasz datę/czas w oparciu o spójny format.
  2. Formaty czasu GxP wymagają jednoznacznego formatu, np. "04-Jul-2020"
  3. Użyj wyrażenia, aby sformatować wyświetlanie daty/czasu w Apps i Analytics.
  4. Daty można sformatować do określonego formatu za pomocą funkcji DATETIMETOTEXT w edytorze wyrażeń.

Czy ten artykuł był pomocny?