Ο δειγματολήπτης βρίσκεται σε αμπελώνα στη Νεμέα.
Είναι 07:42, η ομίχλη δεν έχει σηκωθεί ακόμη,
και το κινητό δείχνει «κανένα σήμα».
Παίρνει το πυρηνοδειγματολήπτη,
μαζεύει δείγμα από τρία σημεία της σειράς αμπελιού,
βγάζει φωτογραφία, καταγράφει τις συντεταγμένες GPS
και πατάει «Αποθήκευση» στη διαδρομή /collect.
Το δείγμα έχει συλλεχθεί — αλλά ο διακομιστής του LIMS δεν το γνωρίζει ακόμα.
Θα το μάθει στις 09:15, όταν το αγροτικό περάσει την κορυφή και πιάσει 4G.
Αυτή η ψαλίδα — από λίγα λεπτά έως αρκετές ώρες, ενίοτε και ημέρες —
είναι η ζώνη εμπιστοσύνης που πρέπει να αντιμετωπίσει κάθε offline-first σύστημα.
Ένας ελεγκτής ΕΣΥΔ θα ρωτήσει: «Πότε ακριβώς συνέβη η δειγματοληψία;»
— και η απάντηση δεν μπορεί να είναι «τότε που το έλαβε ο διακομιστής μας».
Κάθε Sample φέρει δύο ξεχωριστές χρονοσημάνσεις στη βάση:
collectedAt (datetime(6) στον πίνακα samples) — η στιγμή παρατήρησης,σφραγισμένη από το ρολόι της συσκευής του δειγματολήπτη
τη στιγμή που πάτησε «Αποθήκευση» στο χωράφι.
Είναι το πεδίο που απαιτεί ρητά το ISO 17025 §7.3.3(b)
(«ημερομηνία ΚΑΙ ώρα δειγματοληψίας»).
createdAt (@CreateDateColumn κληρονομημένο από την Common) —η στιγμή που η εγγραφή προσέγγισε τον διακομιστή του LIMS
και υπέβαλε επιτυχώς το mutation. Σφραγίζεται από το ρολόι του διακομιστή.
Μία χρονοσήμανση δεν αρκεί.
Αν κρατούσαμε μόνο το createdAt, θα χάναμε την πραγματική στιγμή παρατήρησης
— η μετεωρολογία της ημέρας, οι συνθήκες αγρού,
η ταυτοχρονία με άλλα συμβάντα γίνονται μη ανακτήσιμες.
Αν κρατούσαμε μόνο το collectedAt, χάνουμε την ιχνηλασιμότητα της εισόδου στο LIMS
και ένας ελεγκτής δεν θα μπορούσε να διακρίνει
αν η εγγραφή προσγειώθηκε με καθυστέρηση ή τροποποιήθηκε εκ των υστέρων.
Το §7.11.3 του ISO/IEC 17025:2017 ζητάει «προστασία και ακεραιότητα» του LIMS
— συμπεριλαμβανομένης μιας υπερασπίσιμης καταγραφής
του πότε πραγματικά συνέβη κάθε γεγονός.
Το ζεύγος (collectedAt, createdAt) καλύπτει τρία σημεία του εδαφίου ταυτόχρονα:
— ο ελεγκτής βλέπει πόσο καθυστέρησε η εγγραφή στο LIMS,
η τρίτη σφραγίδα receivedDate (στιγμή μετάβασης Σε Συλλογή → Παραλήφθηκε
μέσω του markSampleReceivedAtLab) κλείνει την αλυσίδα παρακολούθησης.
Στο dialog λεπτομερειών δείγματος, ένα μπλοκ «Χρονοσήμανση Δείγματος»
πάνω από το ιστορικό κατάστασης δείχνει και τις δύο σφραγίδες δίπλα-δίπλα,
μαζί με μια ετικέτα «Καθυστέρηση συγχρονισμού»
όταν η ψαλίδα ξεπερνά τα 5 λεπτά
(διαφορετικά αποκρύπτεται για να μη θορυβεί τα walk-in δείγματα).
Το chip κατάστασης συγχρονισμού στην μπάρα δείχνει σε πραγματικό χρόνο
πόσες εγγραφές περιμένουν να φτάσουν στον διακομιστή.
Κάθε ερώτημα ελέγχου που συσχετίζει δείγματα με «τι συνέβαινε εκείνη την ημέρα»
— μετεωρολογικά δεδομένα, βάρδια προσωπικού, παρτίδες αναλωσίμων,
αναφορές βαθμονόμησης οργάνων —
πρέπει να γίνει join στο collectedAt, όχι στο createdAt.
Διαφορετικά, ένα δείγμα που συλλέχθηκε την Τρίτη αλλά συγχρονίστηκε την Πέμπτη
θα φανεί λανθασμένα συσχετισμένο με συμβάντα της Πέμπτης.
Αυτή η λεπτομέρεια ζει στα ερωτήματα ιχνηλασιμότητας — όχι στα screens —
γι' αυτό αξίζει να καταγραφεί ρητά εδώ.