Όταν ένα δείγμα φτάνει στο εργαστήριο σε αμφίβολη κατάσταση — δηλαδή το πεδίο Κατάσταση Παραλαβής (conditionOnArrival) δεν είναι «Εντάξει» — το πρότυπο ΕΛΟΤ ΕΝ ISO/IEC 17025:2017 §7.4.3 απαιτεί το εργαστήριο να επικοινωνήσει με τον πελάτη, να συμφωνήσει μαζί του πώς θα συνεχιστεί ο χειρισμός του δείγματος και να καταγράψει τεκμηριωμένα την έκβαση της διαβούλευσης πριν προχωρήσει σε οποιαδήποτε ανάλυση ή έκδοση αποτελέσματος.
Ο οδηγός αυτός δείχνει πώς αποτυπώνεται η διαβούλευση μέσα από τον διάλογο επεξεργασίας δείγματος, ώστε η αλυσίδα φύλαξης και ο φάκελος ποιότητας να παραμένουν πλήρεις και ελέγξιμοι από τον ΕΣΥΔ.
Για να συμπληρωθεί η ενότητα διαβούλευσης πρέπει να ισχύουν τα παρακάτω:
OK — δηλαδή μία από τις: DAMAGED (Φθαρμένο), INSUFFICIENT (Ανεπαρκής ποσότητα), UNPRESERVED (Μη συντηρημένο) ή OTHER (Άλλο).LAB_TECHNICIAN, QUALITY_MANAGER ή LAB_DIRECTOR)./samples, πατώντας στον κωδικό του δείγματος ή επιλέγοντας Επεξεργασία από το μενού kebab της γραμμής.Φθαρμένο).OK, εμφανίζεται αυτόματα — με αποκάλυψη μέσω @if — η υπο-ενότητα ΔΙΑΒΟΥΛΕΥΣΗ ΠΕΛΑΤΗ (ΥΠΟΧΡΕΩΤΙΚΟ) με κόκκινη αριστερή γραμμή σήμανσης και σύνδεσμο στο εδάφιο 7.4.3.customerConsultedAt) — ακριβής χρονοσφραγίδα της επικοινωνίας.consultedById) — ο/η υπάλληλος του εργαστηρίου που μίλησε με τον πελάτη.consultationOutcome) — μία από τις τιμές:conditionNotes) σύντομο αφηγηματικό περιεχόμενο της συζήτησης — ποιος μίλησε, με ποιο μέσο, ποιες πληροφορίες αντηλλάγησαν.Αν λείπει οποιοδήποτε υποχρεωτικό πεδίο, ο διακομιστής επιστρέφει το σφάλμα ISO_17025_7_4_3_CONSULTATION_REQUIRED με κατάλογο των πεδίων που λείπουν, και η αποθήκευση ματαιώνεται.
Η έκβαση που θα επιλέξετε αντικατοπτρίζει αυστηρά την απόφαση του ίδιου του πελάτη — όχι την κρίση του εργαστηρίου. Χρησιμοποιήστε τον παρακάτω οδηγό απόφασης:
Σημείωση δεοντολογίας: Η §7.4.3 ΔΕΝ επιτρέπει στο εργαστήριο να αποφασίσει μονομερώς. Αν δεν καταφέρετε να επικοινωνήσετε με τον πελάτη, μην επιλέξετε αυθαίρετα έκβαση — αφήστε το δείγμα σε εκκρεμότητα και τεκμηριώστε τις προσπάθειες επικοινωνίας στις σημειώσεις.
Η ροή στηρίζεται σε τρία επίπεδα ελέγχου που λειτουργούν συντονισμένα:
sample-upsert-form.html:294 περιέχει το guard @if (sampleForm().conditionOnArrival().value() !== 'OK') που αποκαλύπτει την υπο-ενότητα 7.4.3 μόνο όταν χρειάζεται· τα τρία βασικά πεδία (customerConsultedAt, customerConsultedById, consultationOutcome) μαρκάρονται [required]="true" και το signal-form schema εφαρμόζει applyWhen() για conditional-required επικύρωση πριν φτάσει το payload στον διακομιστή.SampleResolver καλεί την assertConsultationComplete() (sample.resolver.ts:1540) σε κάθε create/update· εκεί υπολογίζονται τα ελλείποντα πεδία και ρίχνεται το GraphQLError με κωδικό ISO_17025_7_4_3_CONSULTATION_REQUIRED. Επιπλέον, όταν η έκβαση είναι Προχώρα ώς έχει (με αποποίηση) απαιτείται και το customerAuthorisedProceed=true, αλλιώς ρίχνεται ISO_17025_7_4_3_AUTHORISATION_REQUIRED.applyConsultationStatusTransition() (sample.resolver.ts:1585) διαβάζει το enum ConsultationOutcome (enums/consultation-outcome.enum.ts) και:repository.update(id, { status }) ορίζοντας τελική κατάσταση Απορρίφθηκε ή Ακυρώθηκε αντίστοιχα.SampleStatusLog με noteCode = 'SAMPLE_REJECTED_BY_CUSTOMER' ή 'SAMPLE_CANCELLED_FOR_RESAMPLING' και noteParams που περιέχουν την ώρα και τον λαβ. συνομιλητή — αυτό είναι το αποδεικτικό που εξετάζει ο αξιολογητής του ΕΣΥΔ.pubSub.publish('sampleStatusChanged', …)) και το push-notification κανάλι, ώστε οι λοιπές οθόνες χειριστών να ανανεωθούν χωρίς refresh.SampleStatusLog ούτε διπλά emails.Φτάνει στο εργαστήριο φιάλη εδάφους με ρωγμή στο καπάκι, με μερική απώλεια περιεχομένου. Ο τεχνικός παραλαβής:
conditionOnArrival = DAMAGED.customerConsultedAt = 2026-05-23 09:42, consultedById = ο εαυτός του, έκβαση Προχώρα ώς έχει (με αποποίηση), και τσεκάρει customerAuthorisedProceed = true.Όταν ο αξιολογητής ζητήσει αποδεικτικά για χειρισμό αμφίβολων δειγμάτων, το σύστημα παράγει επί τόπου:
SAMPLE_REJECTED_BY_CUSTOMER / SAMPLE_CANCELLED_FOR_RESAMPLING) και τα noteParams που δείχνουν ποιος μίλησε και πότε.