📋 DiagFlow 2.2 - Update Log & Release Notes
Έκδοση: 2.2
Ημερομηνία Έκδοσης: 28 Αυγούστου 2026
🌟 Σύνοψη Έκδοσης
Η έκδοση DiagFlow v2.2 εισάγει σημαντικές βελτιώσεις αξιοπιστίας στη διαχείριση ακυρωμένων εξετάσεων, νέες δυνατότητες μεμονωμένης και μαζικής αφαίρεσης αναθέσεων (Unassign Actions) και πλήρη διόρθωση της λειτουργίας των φίλτρων κατηγορίας εξετάσεων (CT/MRI/MRA) στην καρτέλα των ανατεθειμένων.
🚀 Κύρια Χαρακτηριστικά & Αλλαγές
1. Διαχείριση Ακυρωμένων Εξετάσεων Slis & Διόρθωση Query
- Αυτόματος Εντοπισμός & Καθαρισμός Ακυρωμένων Εξετάσεων: Εάν μία εξέταση ακυρωθεί ή διαγραφεί από το Slis (π.χ. λόγω αλλεργίας του ασθενούς ή ακύρωσης παραπεμπτικού) ενώ βρισκόταν στο staging (
df_local_assignments), το σύστημα την εντοπίζει αυτόματα κατά την ενημέρωση (Push to Slis) και την απομακρύνει άμεσα από τον πίνακα αναθέσεων εμφανίζοντας σχετική ενημέρωση στον χρήστη. - Διόρθωση MSSQL Conflict Lookup: Εξαλείφθηκε το σφάλμα
Invalid object name 'diagnosticians'κατά τον έλεγχο ταυτόχρονης ανάθεσης από άλλο χρήστη στο Slis. Η ανάκτηση του ονόματος του διαγνώστη εκτελείται πλέον τοπικά από τον πίνακαdf_diagnosticiansχωρίς περιττά JOINs σε μη υπαρκτούς πίνακες του Slis.
2. Χειροκίνητη & Μαζική Αφαίρεση Αναθέσεων (Unassign Actions)
- Κουμπί «Αφαίρεση» ανά Γραμμή: Προστέθηκε κόκκινο κουμπί «Αφαίρεση» στη στήλη ενεργειών κάθε εξέτασης στην καρτέλα «Ανατεθειμένες», επιτρέποντας την άμεση απόσυρση της εξέτασης από το προσωρινό staging χωρίς να επηρεάζεται το Slis.
- Μαζική Αφαίρεση Πολλαπλών Εξετάσεων (Multi-Select Bulk Unassign):
- Top Action Bar: Όταν ο χρήστης επιλέγει πολλαπλές εξετάσεις μέσω checkbox στην καρτέλα των ανατεθειμένων, το κουμπί «Ενημέρωση όλων στο Slis» αντικαθίσταται αυτόματα από το κουμπί «Αφαίρεση επιλεγμένων».
- Floating Action Bar (FAB): Ενσωματώθηκε κουμπί «Αφαίρεση» στην αναδυόμενη μπάρα ενεργειών στο κάτω μέρος της οθόνης για ταχύτατη εκτέλεση.
- Νέα REST API Endpoints:
DELETE /api/assignments/{exam_id}POST /api/assignments/unassign(αποδοχή JSON payload)POST /api/assignments/bulk-unassign(μαζική απο-ανάθεση λίστας IDs)
3. Διόρθωση Φίλτρων Κατηγορίας Εξετάσεων (CT, MRI, MRA)
- Universal Modality Normalization στο Frontend: Η συνάρτηση φιλτραρίσματος
matchesFilters()ενσωματώνει πλέον τηνnormalizeModalityCode(). - Αξιόπιστο Φιλτράρισμα στις Ανατεθειμένες: Εξετάσεις που φέρουν ακατέργαστες ελληνικές περιγραφές από το Slis (όπως
"ΑΞΟΝΙΚΗ ΤΟΜΟΓΡΑΦΙΑ","ΜΑΓΝΗΤΙΚΗ ΤΟΜΟΓΡΑΦΙΑ","ΑΓΓΕΙΟΓΡΑΦΙΑ") αναγνωρίζονται και φιλτράρονται άμεσα όταν επιλέγονται τα αντίστοιχα κουμπιά/checkboxesCT,MRI,MRAχωρίς να εξαφανίζονται από τον πίνακα. - Backend Normalization: Κατά τη φόρτωση των ανατεθειμένων (
_get_assigned_exams_from_db) και την επιβεβαίωση αναθέσεων (confirm_assignment), η κατηγορία κανονικοποιείται αυτόματα πριν αποσταλεί στο UI.
4. Βελτιώσεις Admin Panel (Μαζικές Προτιμήσεις, Ομαδοποίηση Ικανοτήτων & Συνεργασίες)
- Μαζικός Ορισμός & Αφαίρεση Προτιμήσεων στην Καρτέλα «Εξετάσεις»:
- Προστέθηκαν άμεσα κουμπιά «★ Ορισμός ως Προτίμηση» και «☆ Αφαίρεση Προτίμησης» στην αναδυόμενη μπάρα ενεργειών (Floating Action Bar) του καταλόγου εξετάσεων.
- Επιτρέπει στον διαχειριστή να επιλέγει πολλαπλές εξετάσεις (από οποιαδήποτε ανατομική κατηγορία) και με ένα κλικ να τις ορίζει ως προτιμώμενες για τον διαγνώστη που επιλέγεται στο αναπτυσσόμενο μενού. Αν η εξέταση δεν υπάρχει ήδη ως δεξιότητα για τον συγκεκριμένο διαγνώστη, δημιουργείται αυτόματα ως προτιμώμενη (
is_preferred = true).
- Ιεραρχική Ανατομική Ομαδοποίηση στην Καρτέλα «Ικανότητες»:
- Οι καταγεγραμμένες δεξιότητες κάθε διαγνώστη ομαδοποιούνται πλέον στις ίδιες ακριβώς κατηγορίες (Modality) και ανατομικές ομάδες με την καρτέλα των Εξετάσεων.
- Προστέθηκαν διακριτές υπο-επικεφαλίδες ανά ανατομική ομάδα με μετρητή πλήθους και ομαδικό checkbox, επιτρέποντας τη μαζική επιλογή όλων των εξετάσεων μιας συγκεκριμένης περιοχής για ταχύτατη επεξεργασία ή διαγραφή.
- Βελτίωση Σαφήνειας στην Καρτέλα «Συνεργασίες»:
- Το κουμπί μη αποκλειστικής συνεργασίας μετονομάστηκε από «Όχι» σε «Ενεργοποίηση Αποκλειστικότητας», καθιστώντας άμεσα κατανοητή τη λειτουργία του στους χρήστες.
5. Έξυπνη Αυτόματη Ανάθεση βάσει Σχολίων & Εξαιρέσεις «ΟΧΙ» (Comment Rule Engine)
- Αυτόματη Αναγνώριση Ονόματος Διαγνώστη στα Σχόλια:
- Η μηχανή κανόνων αναλύει πλέον σε πραγματικό χρόνο τα κλινικά/γραμματειακά σχόλια κάθε εξέτασης. Εάν εντοπιστεί αναφορά σε ενεργό διαγνώστη, η εξέταση ανατίθεται αυτόματα και άμεσα στον συγκεκριμένο διαγνώστη.
- Υποστήριξη Ελληνικής Φωνητικής & Συντομογραφιών: Πλήρης αναγνώριση κλίσεων/πτώσεων ονομάτων, τόνων (
Νάτσικα), ορθογραφικών παραλλαγών (Νατσκα) και συμφωνικών σκελετών/συντομογραφιών που χρησιμοποιεί η γραμματεία (π.χ.ΝΤΣΚ→ Νάτσικα,ΜΠΡΤ→ Μπερέτης,ΣΓΛ→ Σιγάλας,ΚΛΓΡΓ→ Κουλογιώργα).
- Υπέρτατη Εξαίρεση Διαγνώστη με τη λέξη «ΟΧΙ»:
- Εάν πριν από το όνομα ή τη συντομογραφία διαγνώστη προηγείται η λέξη «ΟΧΙ» (ή
«όχι»,«οχι»,«ΟΧΙ ΣΕ»), ο συγκεκριμένος διαγνώστης αποκλείεται πλήρως από τη διαδικασία. - Η εξαίρεση αυτή υπερισχύει όλων των υπόλοιπων κανόνων (αποκλείει τον ιατρό ακόμα και αν υπάρχει ενεργή αποκλειστική συνεργασία, κανόνας δρομολόγησης ή εφημερία Παμμακαρίστου).
- Στη λίστα εναλλακτικών προτάσεων, ο εξαιρεθείς διαγνώστης εμφανίζεται με κόκκινη ένδειξη αποκλεισμού και σαφή αιτιολογία:
«Αποκλείστηκε λόγω σχολίου».
- Εάν πριν από το όνομα ή τη συντομογραφία διαγνώστη προηγείται η λέξη «ΟΧΙ» (ή
- Διακόπτης On/Off στο Admin Panel:
- Προστέθηκε ειδική κάρτα ελέγχου στην κορυφή της ενότητας «⚙️ Για Προχωρημένους» του Admin Panel με διακόπτη (checkbox) και ένδειξη κατάστασης (
ΕΝΕΡΓΟ/ΑΠΕΝΕΡΓΟΠΟΙΗΜΕΝΟ), επιτρέποντας την άμεση ενεργοποίηση ή απενεργοποίηση του κανόνα σχολίων ανά πάσα στιγμή.
- Προστέθηκε ειδική κάρτα ελέγχου στην κορυφή της ενότητας «⚙️ Για Προχωρημένους» του Admin Panel με διακόπτη (checkbox) και ένδειξη κατάστασης (
- Νέα REST API Endpoints:
GET /api/admin/advanced/comment-rule(Ανάκτηση τρέχουσας κατάστασης ενεργοποίησης)POST /api/admin/advanced/comment-rule(Ενεργοποίηση / απενεργοποίηση κανόνα)
6. Ακριβής Υπολογισμός Ημερήσιων Ορίων & Ποσοστώσεων ανά Ημερομηνία Εξέτασης (visitdate)
- Προσμέτρηση Ορίων βάσει της Πραγματικής Ημερομηνίας:
- Κατά την άντληση ή επεξεργασία εκκρεμών εξετάσεων παρελθοντικών ημερομηνιών (ή σε περιπτώσεις πολυήμερου συγχρονισμού), ο έλεγχος χωρητικότητας (
daily_quota) και ειδικών ορίων (modality_quotasCT/MRI) των διαγνωστών υπολογίζεται πλέον αυστηρά με βάση την ημερομηνία της εξέτασης (visitdate) και όχι τη σημερινή ημερομηνία του συστήματος. - Με αυτόν τον τρόπο αποτρέπεται το φαινόμενο παλιές εξετάσεις να καταναλώνουν λανθασμένα το ημερήσιο όριο της τρέχουσας βάρδιας.
- Κατά την άντληση ή επεξεργασία εκκρεμών εξετάσεων παρελθοντικών ημερομηνιών (ή σε περιπτώσεις πολυήμερου συγχρονισμού), ο έλεγχος χωρητικότητας (
7. Bug Fixes
- Πρόβλημα με τη μαζική επιβεβαίωση προτάσεων: Το
bulkAssignToProposedεμφάνισε ζήτημα. Διορθώθηκε σφάλμα στη μαζική ανάθεση προτεινόμενων διαγνωστών, όπου οι εξετάσεις δεν μετακινούνταν στις Ανατεθειμένες όταν η cache προτάσεων του διακομιστή είχε εκκαθαριστεί, προσθέτοντας αυτόματο on-the-fly υπολογισμό πρότασης και απευθείας συγχρονισμό από το περιβάλλον χρήστη. - Optimistic Locking Override στην καρτέλα "Aναζήτηση Slis": Το Optimistic Locking δούλευε και μέσω της καρτέλας "Αναζήτηση Slis", όπου δεν είναι επιθυμητό καθώς από εκεί θέλουμε να κάνουμε στοχευμένες αλλαγές που έχουν ενημερωθεί ήδη στο Slis. Μέχρι πρότινος, λόγω Optimistic Locking αυτό δεν μπορούσε να συμβεί, για αυτό τώρα γίνεται force όταν μία ανάθεση γίνεται από εκείνη την καρτέλα.