Releases: Georgekon4002/diagflow
Release list
DiagFlow 2.2
📋 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 όταν μία ανάθεση γίνεται από εκείνη την καρτέλα.
DiagFlow 2.0
📋 DiagFlow 2.0 - Update Log & Release Notes
Έκδοση: 2.0.0
Ημερομηνία Έκδοσης: 20 Αυγούστου 2026
🌟 Σύνοψη Έκδοσης
Η έκδοση DiagFlow v2.0 αποτελεί τη σημαντικότερη αναβάθμιση της αρχιτεκτονικής του συστήματος. Η εφαρμογή μεταβαίνει από το αρχικό μοντέλο τοπικής αποθήκευσης (SQLite) σε πλήρως ενοποιημένη αρχιτεκτονική κεντρικής βάσης δεδομένων (MSSQL Server / Slis DB), επιτρέποντας την ταυτόχρονη, αξιόπιστη χρήση από πολλαπλούς σταθμούς εργασίας γραμματείας σε πραγματικό χρόνο.
🚀 Κύρια Χαρακτηριστικά & Αλλαγές
1. Ενοποιημένη Κεντρική Βάση Δεδομένων (df_* Tables)
- Κατάργηση Τοπικών SQLite Αρχείων στην Παραγωγή: Στην παραγωγή (
USE_MOCK_SLIS_DB=false), η εφαρμογή δεν απαιτεί πλέον τοπικά αρχεία.dbή φάκελοdb/στους υπολογιστές των χρηστών. - Συνύπαρξη στον ίδιο SQL Server με το Slis: Όλοι οι πίνακες ρυθμίσεων, κανόνων, αδειών και καταγραφής του DiagFlow διατηρούνται στον ίδιο κεντρικό διακομιστή MSSQL (
LisKosmo), χρησιμοποιώντας το πρόθεμαdf_ώστε να αποκλείεται οποιαδήποτε σύγκρουση με τους υπάρχοντες πίνακες του Slis.df_diagnosticians,df_diagnostician_skills— Στοιχεία διαγνωστών, ειδικότητες και ημερήσια όρια.df_partnerships,df_doctors— Συνεργασίες, παραπέμποντες ιατροί και αποκλειστικότητες.df_availability— Παρουσίες, άδειες και σημάνσεις on-call για προσωρινές αλλαγές στο πρόγραμμα της Παμμακαρίστου.df_exam_routing_rules,df_exclusive_lab_rules— Δυναμικοί κανόνες δρομολόγησης εξετάσεων και αποκλειστικά εργαστήρια.df_modality_quotas,df_pamakristos_schedule— Ημερίσια όρια ανά modality (CT/MRI) και πρόγραμμα Παμμακαρίστου.df_system_settings,df_admin_users— Βάρη μηχανής αποφάσεων και λογαριασμοί διαχειριστών.df_local_assignments,df_assignment_log— Κοινόχρηστες προσωρινές αναθέσεις και ιστορικό καταγραφής (audit trail).
2. Ταυτόχρονη Χρήση από Πολλαπλούς Χρήστες (Multi-User Concurrency)
- Κοινόχρηστο Staging Αναθέσεων (
df_local_assignments): Όταν ο Χρήστης A αναθέτει μία εξέταση, η ανάθεση καταχωρείται άμεσα στον κεντρικό πίνακαdf_local_assignments. - Αυτόματος Συγχρονισμός μεταξύ Σταθμών:
- Όταν ο Χρήστης B πατάει «Ανανέωση», η εξέταση που ανέθεσε ο Χρήστης A αφαιρείται από τις Εκκρεμείς και εμφανίζεται στις Ανατεθειμένες του Χρήστη B με το επιλεγμένο όνομα διαγνώστη.
- Ενοποιημένο Dashboard σε Πραγματικό Χρόνο: Το Dashboard αντλεί δεδομένα απευθείας από τον κεντρικό SQL Server (
df_local_assignments,df_assignment_log,df_modality_quotas), εμφανίζοντας ακριβώς τα ίδια στατιστικά, μετρητές και υπόλοιπα quotas σε όλους τους υπολογιστές.
3. Direct In-Memory Επεξεργασία & Stored Procedures
- Απευθείας Εκτέλεση Stored Procedure: Η εφαρμογή εκτελεί απ' ευθείας την
EXEC getExamsListForPeriod_V1στον SQL Server για τις τελευταίες 3 ημέρες. - In-Memory Pipeline: Το φιλτράρισμα των εκκρεμών εξετάσεων (
diagnostis IS NULL), η εκτέλεση των κανόνων Stage 0 (αποκλειστικότητες, dynamic routing, εφημερία Παμμακαρίστου) και ο αλγόριθμος προτάσεων εκτελούνται απευθείας στη μνήμη RAM χωρίς περιττές ενδιάμεσες εγγραφές στο δίσκο.
4. Βελτιστοποιημένη Καταγραφή Ιστορικού (Audit Trail)
- Logging στο
df_assignment_log: Η οριστική καταγραφή της ανάθεσης στο ιστορικό πραγματοποιείται αποκλειστικά κατά την επιτυχή ενημέρωση του Slis (Push to Slis), εξαλείφοντας πρόωρες ή διπλότυπες εγγραφές κατά τα ενδιάμεσα στάδια επεξεργασίας. - Αυτόματος Καθαρισμός: Μετά την ενημέρωση του Slis, η προσωρινή εγγραφή διαγράφεται αυτόματα από το
df_local_assignments.
🎨 Σχεδιασμός & Βελτιστοποιήσεις UI/UX (Apple-Style Glassmorphism)
5. Premium Glassmorphism & Σύστημα Σχεδίασης
- Ambient Mesh Glow Background: Δυναμικό φόντο με απαλές πολυεπίπεδες ακτινικές διαβαθμίσεις χρωμάτων (indigo, sapphire, violet, emerald, rose) που προσδίδει βάθος και μοντέρνα αισθητική.
- Frosted Glass Cards: Όλες οι κάρτες, οι πίνακες και οι διαχειριστικές ενότητες υιοθετούν εφέ ημι-διαφανούς κρυστάλλου με
backdrop-filter: blur(28px) saturate(190%), διπλά specular borders (rgba(255, 255, 255, 0.75)) και άνω εσωτερικό highlight. - Segmented Tabs & Glass Controls: Κουμπιά, inputs και tabs με στρογγυλεμένες γωνίες, απτική απόκριση στο hover και φυσική ανύψωση.
- Dark Mode: Η εφαρμογή είναι πλέον πλήρως λειτουργική και σε σκοτεινή λειτουργία που μπορεί να αλλάξει από το κουμπί στο πάνω δεξιά μέρος του header.
6. Εναλλαγή Χρωμάτων ανά Εντολή (Order-Level Zebra Striping)
- Εξάλειψη Διχρωμίας σε Πολλαπλές Εξετάσεις: Η εναλλαγή αποχρώσεων στους πίνακες εκκρεμών και ανατεθειμένων εξετάσεων γίνεται πλέον αυστηρά ανά εντολή (Order Group) (
.order-group-basevs.order-group-alt) και όχι ανά φυσική γραμμή<tr>. - Ομοιόμορφο Background: Όλες οι εξετάσεις που ανήκουν στην ίδια εντολή/ασθενή (ίδιο
extracode) μοιράζονται τον ίδιο ενιαίο τόνο φόντου σε όλες τις στήλες.
7. Custom Searchable Glass Dropdowns & Live Autocomplete
- Custom Dropdown Component: Αντικατάσταση των κλασικών dropdowns περιηγητή με ενιαία γυάλινα searchable dropdowns που διαθέτουν:
- Ενσωματωμένο πεδίο γρήγορης αναζήτησης (
🔍 Αναζήτηση...) με άμεσο φιλτράρισμα. - Καθολικό Greek Normalization (αφαίρεση τόνων/διαλυτικών, υποστήριξη πεζών/κεφαλαίων).
- Ένδειξη τρέχοντος φόρτου και ορίων ανά διαγνώστη (π.χ.
(13/15)).
- Ενσωματωμένο πεδίο γρήγορης αναζήτησης (
8. Συντομεύσεις Πληκτρολογίου & Επιλογή με Shift (Keyboard Engine)
- Πλήρης Πλοήγηση με Πληκτρολόγιο (Browser & Desktop .exe):
- ↓ / ↑ (Βέλη): Μετακίνηση μεταξύ των γραμμών με φωτεινό περίγραμμα επιλογής (
.row-keyboard-focused) και αυτόματο scroll. - Space: Επιλογή/αποεπιλογή (check/uncheck) της εστιασμένης εξέτασης.
- Enter: Άμεση επιβεβαίωση της προτεινόμενης ανάθεσης (ή μαζική ανάθεση αν έχουν επιλεγεί πολλές εξετάσεις). Μέσα στο παράθυρο πρότασης εκτελεί την επιβεβαίωση.
- O / o: Άμεσο άνοιγμα του παραθύρου πρότασης / αλλαγής διαγνώστη (Override).
- Ctrl + A / Cmd + A: Επιλογή όλων των ορατών εξετάσεων της τρέχουσας καρτέλας.
- Shift + Click: Μαζική επιλογή εύρους (range selection) από την πρώτη έως την τελευταία επιλεγμένη εξέταση.
- /: Άμεση εστίαση στο πεδίο αναζήτησης.
- Esc: Κλείσιμο ανοιχτών παραθύρων/dropdowns ή καθαρισμός επιλογών.
- ↓ / ↑ (Βέλη): Μετακίνηση μεταξύ των γραμμών με φωτεινό περίγραμμα επιλογής (
9. Βελτιστοποίηση Badges & Πίνακα Ημερήσιων Ορίων
- Υψηλή Αντίθεση Modality Badges σε Light & Dark Mode:
- CT: Απαλό πράσινο φόντο (
#DCFCE7) με έντονο σκούρο σμαραγδί κείμενο (#047857, 700 bold). - MRI: Απαλό βιολετί φόντο (
#EDE9FE) με έντονο σκούρο ιώδες κείμενο (#6D28D9, 700 bold). - MRA: Απαλό ροζ φόντο (
#FFE4E6) με έντονο σκούρο κόκκινο κείμενο (#BE123C, 700 bold). - Dashboard: Ενσωμάτωση των ίδιων ακριβώς pill badges στη λίστα εξετάσεων του Dashboard για απόλυτη οπτική συνοχή.
- CT: Απαλό πράσινο φόντο (
- Πίνακας Ημερήσιων Ορίων (Admin):
- Καθαρά ημιδιαφανή capsule inputs με διακριτικό κόκκινο (
#EF4444) για 0 όριο και βιολετί για ενεργό όριο. - Καθαρή εμφάνιση ονομάτων χωρίς emoji.
- Καθαρά ημιδιαφανή capsule inputs με διακριτικό κόκκινο (
🛠️ Αξιοπιστία & Deployment
10. Ενσωμάτωση Πεδίου Ηλικίας Ασθενούς (Patient Age Field)
- Πλήρης Κλινική Εικόνα στους Πίνακες: Προσθήκη στήλης «Ηλικία» (
age) σε όλους τους πίνακες της εφαρμογής (Εκκρεμείς, Ανατεθειμένες και 4η Καρτέλα Αναζήτησης Slis). - Ενσωμάτωση στο Context Μηχανής: Το πεδίο
ageμεταβιβάζεται στοExamContextεπιτρέποντας μελλοντική στόχευση εξειδικεύσεων (π.χ. παιδιατρικές vs γηριατρικές εξετάσεις).
11. Δίκαιη Κατανομή Ισοπαλιών & Round-Robin Load Balancing
- Ευφυής Εξισορρόπηση Ισοβαθμιών (Near-Tie Balancer): Όταν δύο ή περισσότεροι διαγνώστες συγκεντρώνουν ισοδύναμη κορυφαία βαθμολογία (εντός ανοχής
score_tie_tolerance = 0.05), το σύστημα εφαρμόζει δυναμική περιστροφή:- Προηγείται ο διαγνώστης με τον μικρότερο πραγματικό αριθμό εξετάσεων σήμερα (συνυπολογίζοντας το Session Workload Offset).
- Ακολουθεί ο διαγνώστης με τη μεγαλύτερη ημερήσια χωρητικότητα.
- Εφαρμόζεται δίκαιο τυχαίο jitter ως τελικός ισοσταθμιστής, εξασφαλίζοντας ότι οι εξετάσεις δεν συσσωρεύονται στον ίδιο ιατρό.
12. Βελτιστοποίηση Μαζικής Αξιολόγησης Υποψηφίων (In-Memory Batch Evaluation)
-
High-Performance Batch Method (
get_candidates_for_exams_batch): Ταυτόχρονη αξιολόγηση δεκάδων εξετάσεων με μία ενιαία ανάγνωση δεδομένων, μετατρέποντας$O(N)$ κλήσεις βάσης δεδομένων σε$O(1)$ άμεσες αναζητήσεις στη μνήμη RAM. - 3-Second Short-Lived Cache: Ελαχιστοποίηση των ερωτημάτων στον SQL Server κατά τη διάρκεια μαζικών προτάσεων, εξασφαλίζοντας ακαριαία απόκριση στο UI.
13. Διαχείριση Χρηστών & Ρόλων Διαχειριστή (df_admin_users)
- Κεντρικός Πίνακας
df_admin_users: Πλήρης υποστήριξη πολλαπλών λογαριασμών διαχειριστή απευθείας στον κεντρικό SQL Server. - Ασφάλεια Επιπέδου Enterprise: Κρυπτογράφηση κωδικών πρόσβασης με bcrypt (cost factor 12), αυτόματη μετάβαση από παλαιά SHA-256 hashes, και IP rate limiting (5 απόπειρες/60s).
- Διακριτοί Ρόλοι: Υποστήριξη ρόλων
admin(διαχείριση ιατρικών κανόνων & διαγνωστών) καιit_support(διαχείριση λογαριασμών χρηστών, επαναφορά κωδικών & τεχνικές ρυθμίσεις).
14. Κλείδωμα Συνοχής Εντολών Multi-Exam (Order Alignment Lock)
- Απόλυτη Διαγνωστική Συνέπεια: Όλες οι υπο-εξετάσεις που ανήκουν στην ίδια παραγγελία/παραπεμπτικό (ίδιο
extracode) ανατίθενται αυστηρά στον ίδιο διαγνώστη που συγκεντρώνει τη μέγιστη συνολική συμβατότητα.
15. Καθαρός Τερματισμός Εφαρμογής (Clean Window Exit)
- Πλήρης Αποδέσμευση Πόρων: Με το κλείσιμο του παραθύρου της εφαρμογής από το «Χ», ενεργοποιείται αυτόματος μηχανισμός άμεσου τερματισμού του background Uvicorn server και όλων των threads (
os._exit(0)). - **Μη...
DiagFlow-v1.8.9
🚀 DiagFlow - Update Log
Version: 1.8.5 | Date: August 10, 2026
⏳ 1. Οπτικές Ενδείξεις Φόρτωσης (Loading Overlays)
Αρχική Οθόνη & Προτάσεις: Ενεργοποίηση κεντρικού pop-up φόρτωσης ("Παρακαλώ περιμένετε...") κατά την αρχική φόρτωση, την ανανέωση προτάσεων και τις μαζικές αναθέσεις, αποτρέποντας πρόωρες ενέργειες.
Admin Panel: Προσθήκη ενδείξεων φόρτωσης κατά τη μαζική διαγραφή δεξιοτήτων (Skills) καθώς και κατά τη μαζική αλλαγή προτιμήσεων (Preferred Skills).
📖 2. Δυναμική Σελιδποίηση (Pagination) & Διορθώσεις Tabs
Έξυπνα Κουμπιά: Το κουμπί «Προηγούμενο» αποκρύπτεται αυτόματα στην 1η σελίδα, ενώ το «Επόμενο» αποκρύπτεται αυτόματα στην τελευταία σελίδα.
Απομόνωση Μνήμης Σελίδων: Διόρθωση του σφάλματος όπου η εναλλαγή μεταξύ των καρτελών (Εκκρεμείς / Ανατεθειμένες) επηρέαζε τη σελίδα της άλλης καρτέλας.
Ηλικία: Προστέθηκε ως πεδίο στους πίνακες
🖥️ 3. Προσαρμογή Layout σε Μεγάλες Οθόνες (Responsive Design)
Πλήρες Πλάτος Πίνακα: Κατάργηση του στατικού περιορισμού πλάτους (1440px) για μέγιστη εκμετάλλευση του χώρου σε μεγάλες εξωτερικές οθόνες.
Διόρθωση Στοίχισης Header: Προσαρμογή του λογότυπου, των καρτελών και των κουμπιών διαχείρισης ώστε να εκτείνονται αρμονικά στα άκρα της οθόνης.
Launch in full screen: Το πρόγραμμα ανοίγει σε όλη την οθόνη by default
🪳**4. Bug Fixes**
Ανανέωση: Το κουμπί της ανανέωσης στην καρτέλα των εκκρεμών δεν τράβαγε νέα δεδομένα από το Slis.
Αλλαγές στο Dashboard: Όταν ο χρήστης έκανε αλλαγές μέσω του tab "Αναζήτηση Slis" τα counters στο dashboard του κάθε ιατρού δεν ανανεώνονταν κατάλληλα.
Πολλαπλές αλλαγές μέσω της Αναζήτησης Slis: Όταν ο χρήστης επέλεγε εναλλακτικό διαγνώστη σε πολλές εξετάσεις στην καρτέλα "Αναζήτηση στο Slis" και ενημέρωνε μία από αυτές, τότε χάνονται οι επιλογές σε άλλες εξετάσεις της λίστας.
Συγχρονισμός μετρητών (quotas): Παρατηρήθηκαν φαινόμενα κατά τα οποία ο αριθμός των ορίων των διαγνωστών στα μενού και στο dashboard δεν συγχρονίζονταν.
DiagFlow-v1.7.2
Iteration V: Commit 8 DiagFlow 1.7.2 - Final Release
DiagFlow-v1.7.1
Iteration V: Commit 6 DiagFlow 1.6 Release
DiagFlow-v1.5.1
Iteration V: Commit 2 Demo Deployment
DiagFlow-v1.4
Iteration IV: Commit 7 Update USER GUIDE