Panagiotis Atmatzidis

a digital diary

Μια κριτική λογισμικού φαρμακείων

| Comments

Μέρος Α

Αντί προλόγου

Τα τελευταία χρόνια είχα την ευκαιρία να εργαστώ με δύο διαφορετικά λογισμικά διαχείρισης φαρμακείου.

Το πρώτο πρόγραμμα είχε εμφανέστατα προβλήματα δυσλειτουργίας στην διαχείριση αποθήκης, έπασχε από έλλειψη σημαντικών λειτουργιών (π.χ. ιστορικό φαρμάκων ασθενή) κι έμοιαζε περισσότερο με πρόγραμμα του 2003 παρά του 2015 στο look & feel. Οποιαδήποτε σφάλμα (π.χ. αν χρησιμοποιούσες υποδιαστολή αντί για τελεία) οδηγούσε σε crash. Ωστόσο αυτό το πρόγραμμα χρησιμοποιείτε από αρκετά φαρμακεία στην Ανατολική Μακεδονία & Θράκη.

Πρόσφατα το παλιό πρόγραμμα αντικαταστάθηκε με ένα σύγχρονο πρόγραμμα διαχείρισης φαρμακείου, το Farmakon της εταιρίας CSA.

Πριν καταλήξω στο Farmakon, ως επιλογή, είδα και το δεύτερο πιο διαδεδομένο πρόγραμμα διαχείρισης φαρμακείου, το Dioscourides της εταιρίας ΙΛΥΔΑ ΑΕ. Οι δυνατότητες που έχουν τα δύο πρόγραμμα, είναι παρόμοιες. Η πιο σημαντική διαφορά είναι πως το Dioscourides είναι modular ενώ το Farmakon έχει ενσωματωμένες τις περισσότερες λειτουργίες εκτός από την διαχείριση επιταγών που αν θέλεις μπορείς να αγοράσεις ως ξεχωριστώ module. Και τα δύο έχουνε έτοιμες «γέφυρες» για e-shop, υποστηρίζουν κάρτες πελατών, οικονομική διαχείριση και κρατάνε αυτόματα ιστορικό πελατών όταν εκτελείς συνταγές.

Προβλήματα Λογισμικού

Η κριτική αναφέρεται κυρίως στο Farmakon γιατί αυτό χρησιμοποιώ. Ωστόσο, από όσο είχα την ευκαιρία να δω ψάχνοντας άλλα προγράμματα, τα προβλήματα που αναφέρω τα έχουν λίγο πολύ όλα τα διαθέσιμα προγράμματα.

Έχετε κατά νου ότι το Farmakon είναι πιθανότατα ένα από τα 3 πιο εξελιγμένα προγράμματα διαχείρισης φαρμακείου στην Ελλάδα.

1. Σχεδιασμός UX

Το πρώτο αρνητικό που συνάντησα στο Farmakon είναι ο σχεδιασμός. Δεν υπάρχει αγάπη.

Το UX design χρησιμοποιείτε παντού σήμερα. Προγραμματάκια όπως το GhostNote που είναι δημιουργία 2 προγραμματιστών έχουν πάρα πολύ καλύτερο UX από το Farmakon.

Η σχεδίαση του είναι στείρα από όλες τις πλευρές. Π.χ. η σήμανση φαρμάκου «Θετικής Λίστας» είναι ένα μικρό «Θ», που πολλοί φαρμακοποιοί στα 60 με προβλήματα πρεσβυωπίας σίγουρα αδυνατούν να δουν. Μια ιδέα, όχι και τόσο πρωτοποριακή, θα ήταν η γραμμή προβολής του φαρμάκου να άλλαζε χρώμα, π.χ. πράσινο για «θετική» κόκκινο για «αρνητική».

Το ίδιο ισχύει και για τα υπόλοιπα προγράμματα που είδα στην αγορά. Μια ματιά στα screenshots θα σας πείσει. Από την επιλογή της γραμματοσειράς μέχρι τα σχέδια των κουμπιών είναι όλα άσχημα.

2. Εκτέλεση συνταγής

Το Workflow εκτέλεσης συνταγής στο Farmakon, είναι απαράδεκτο. Για να εκτελεστεί μια συνταγή πρέπει να αφήσεις το usb bar-code scanner τουλάχιστον 3 φορές και να πιάσεις το πληκτρολόγιο. Κι αν την πρώτη φορά, έχει μια λογική, τις άλλες 2 δεν έχει.

Π.χ. Οι συνταγές που περιέχουν ναρκωτικά πρέπει να συνοδεύονται από ειδική συνταγή γιατρού. Αυτό το γνωρίζουν όλοι οι φαρμακοποιοί. Το να αφήνω το bar-code scanner για επιλέξω ‘yes’ με το mouse και να κάνω 2 click, ώστε να συνεχίσω είναι επιεικώς τραγικό και με καθυστερεί. Όταν έχεις 3 άτομα να περιμένουν στην ουρά με μια συνταγή στο χέρι, αυτά τα «μικρά πράγματα» αρχίζουν να βαραίνουν.

Φυσικά το πρόβλημα είναι σχετισμένο και πάλι με το UX. Αρκεί να δει κανείς πως λειτουργούν τα notifications σε Mac, Linux, Windows, iOs και Android. Ένα notification, για μια χρήσιμη πληροφορία όπως αυτή, είναι αρκετό και δεν σταματάει την ροή που έχεις.

3. Ηλεκτρονική Παραγγελία

Υπάρχει δυνατότητα «ηλεκτρονικής παραγγελίας» μέσω του προγράμματος στην αποθήκη.

Όταν άκουσα την παραπάνω φράση, σκέφτηκα ένα API με auth και JSON. Η πραγματικότητα είναι διαφορετική1, κι όπως συχνά συμβαίνει, ξεπερνά την φαντασία μου! Το workflow για ηλεκτρονική παραγγελία είναι το εξής:

  1. Συμπληρώνεις την παραγγελία, φάρμακα & ποσότητες
  2. Σώζεις την παραγγελία (F11)
  3. Ανοίγεις την παραγγελία που έσωσες (!?!)
  4. Πατάς ένα κουμπί μαγικό κουμπάκι
  5. Ανοίγει ο internet exploder στο προκαθορισμένο link της φαρμακαποθήκης σου
  6. Εκεί βγαίνει ένα notification από IE για invalid SSL certification (…με ~ 25 € δεν θα υπήρχε αυτό)
  7. Κάνεις manual login (!!!!!) στην αποθήκη σου (μπορείς να σώσεις user/pass στον browser! Τεχνολογία…)
  8. Πας στο menu online -> παραγγελίες online (!!!!!)
  9. Πατάς στο “Αναζήτηση”
  10. Επιλέγεις το αρχείο PAR.DAT που βρίσκεται σε συγκεκριμένο folder. Αυτό είναι το αρχείο που δημιουργήθηκε όταν «έσωσες» την παραγγελία σου.
  11. Πατάς ‘υποβολή’.
  12. Κάνεις ένα review της παραγγελίας σου
  13. Κάνεις ‘submit’ την παραγγελία

Πως σας φάνηκε η “online” παραγγελία; Προσωπικά, θα προτιμούσα να γράψω τα φάρμακα με κάρβουνο σε πάπυρο και να τα στείλω με περιστέρι στην αποθήκη. Αλλά που να βρεις πάπυρο σε ποσότητες τέτοια εποχή;

Ένα ακόμη σημαντικό limitation που έχει το συγκεκριμένο σύστημα είναι πως δεν μπορώ να δω τα «ελλειπτικά φάρμακα». Τα ελλειπτικά είναι τα φάρμακα που έχουν έλλειψη στην αγορά. Οι φαρμακαποθήκες, αυτά τα φάρμακα τα στέλνουν σε πελάτες που κάνουν τζίρο πάνω από Χ ευρώ το μήνα. Οπότε θα χρειαζόταν ένα είδος διαχωρισμού, ανάμεσα στον client1 και client2, που σε αυτό το πλαίσιο μοιάζει λίγο πολύ πολυτέλεια.

Κάτι ακόμη αστείο, σε ότι αφορά το λογισμικό της φαρμακαποθήκης είναι το πως διαχειρίζεται τα ‘sessions’. Αν κάνεις login από τον browser1 δεν μπορείς να κάνεις login από τον browser2, γιατί ο χρήστης είναι «είδη στο σύστημα». Το αστείο είναι πως αν κλείσεις τον browser1 χωρίς να κάνεις logout, σε «κλειδώνει» απ’ έξω με αποτέλεσμα να πρέπει να πάρεις τηλ στον διαχειριστή της αποθήκης να σε «ξεκλειδώσει», δηλαδή να κάνει kill το ενεργό session. Προφανώς δεν κάνει ‘expire’ ποτέ! #epic

Το τραγικό της υπόθεσης εδώ είναι πως το λογισμικό της φαρμακαποθήκης το παράγει η CSA! Άλλωστε αυτός ήταν κι από τους βασικούς λόγους που προτιμήθηκε το Farmakon, για να έχουμε το ίδιο λογισμικό με την τοπική αποθήκη!

Περίπου την ίδια διαδικασία, αντίστροφα, χρησιμοποιείς για να αποθηκεύσεις το τιμολόγιο της αποθήκης στο πρόγραμμα. Κάνεις login, κατεβάζεις ένα TXT αρχείο και το κάνεις ‘import’ αφού το τοποθετήσεις σε προ-επιλεγμένο κατάλογο.

NOTE: Σε αυτό το video της CSA, μπορείτε να δείτε λίγο πολύ την διαδικασία. Στο video δεν ανοίγουν IE. Δεν ξέρω γιατί εγώ πρέπει να κάνω αυτήν την διαδικασία, ίσως ο ΣΥΦΑ Δράμας, δεν έχει την τελευταία έκδοση του λογισμικού φαρμακαποθήκης. Ωστόσο οι προγραμματιστές ακόμη κι έτσι, αντιλαμβάνεστε σε τι βαθμό θα μπορούσε να αυτοματοποιηθεί η διαδικασία με τις σημερινές τεχνολογίες…

Σε όλον αυτόν τον αυτοματισμό υπάρχουν κι άλλα σημεία που θα μπορούσαν να αυτοματοποιηθούν.

4. Ποσοστό κέρδους

Ειδικότερα μετά την είσοδο των e-shop στον χώρο του φαρμακείου και την δημιουργία μηχανών αναζήτησης όπως το skroutz, οι εκπτώσεις στα παραφαρμακευτικά έχουν μεγάλη σημασία. Ο υπολογισμός του % κέρδους έχει γίνει αρκετά σύνθετος. Κάθε χρόνο λοιπών οι εταιρίες αλλάζουν τα % εκπτώσεων δημιουργώντας κλίμακες ανάλογα με τις ποσότητες. Άρα υπάρχουν περιπτώσεις που το % κάθε άλλο παρά σταθερό είναι γιατί στην 1η παραγγελία αγόρασες το Χ προϊόν με έκπτωση 2% ενώ στην 2η το αγόρασες με έκπτωση 15%.

Το λογισμικό θα έπρεπε αυτόματα να υπολογίζει το κέρδος. Ωστόσο κάτι τέτοιο δεν υποστηρίζεται. Μπορείς να περάσεις 1 έκπτωση, αλλά όχι 2. Πολλές εταιρίες αντί για έκπτωση στέλνουν 2 δωρεάν προϊόντα, άλλες κάνουν προσθετικές εκπτώσεις, π.χ. 15% αρχικά, μετά 5% στην νέα τιμή και μετά 3% στην “τελευταία τιμή”. Αυτό δεν ισούται με 15 + 5 + 3 = 23% όπως μερικοί συνάδελφοι έχουν υποθέσει στο παρελθόν. Έχω φτιάξει ένα template στο Numbers αλλά δεν μου αρέσει να περνάω στοιχεία τιμολογίων 2 φορές.

Θα ήθελα ένα πρόγραμμα που να έχει δυνατότητα ενσωμάτωσης & απευθείας υπολογισμού των κερδών, μετά των εκπτώσεων.

5. Εύρεση Ασθενή ή Φαρμάκου

Το menu εύρεσης φαρμάκου, ασθενή ή οποιουδήποτε άλλου στοιχείου είναι το ίδιο με το menu αλλαγής των στοιχείων, με αποτέλεσμα πολλές φορές να κινδυνεύεις να κάνεις λάθος. Έχει συμβεί σε μένα όσο και σε συνεργάτες μου, αντί να «ψάξουν» ένα επίθετο, να καταλήγουν στο να «αλλάξουν» ένα επίθετο.

Και πάλι καταλήγουμε σε ένα πολύ φτωχό σχεδιασμό.

6. Τραγικό Client-Server setup

Αυτό το κομμάτι είναι σχετισμένο με το στήσιμο του προγράμματος, κι όχι με το ίδιο το πρόγραμμα. Ωστόσο δείχνει μια αφοπλιστική ελαφρότητα κατά την άποψη μου.

Και τα δύο προγράμματα που χρησιμοποίησα υποστήριζαν δύο θέσεις εργασίας. Και τις δύο φορές το configuration που έκαναν οι εταιρίες, η πρώτη μέσω τεχνικού στον χώρο και η δεύτερη (Farmakon) μέσω TeamViewer ήταν πανομοιότυπο. Υποθέτω πως είναι το standard στην Ελληνική αγορά πληροφορικής…

Τα προγράμματα αυτά τρέχουν σε ένα client-server περιβάλλων. Ο τρόπος για να συνδεθεί ο Client στον Server και στις δύο περιπτώσεις, ήταν να κλείσουν το Firewall των Windows και να διαμοιράσουν τον σκληρό δίσκο (C:) του server μέσω δικτύου χωρίς περιορισμό. Ο Client φορτώνει τον σκληρό δίσκο του Server στο alias (Z:) κι έτσι έχει διαθέσιμα τα paths ώστε να κάνει read/write.

Το αποτέλεσμα είναι το πως όποιος έχει πρόσβαση στο LAN, έχει READ/WRITE access σε όλο τον σκληρό δίσκο του server!

Ας υποθέσουμε ότι τα remote authenticated calls με RPC ή άλλο πρωτόκολλο επικοινωνίας είναι δύσκολα(!?!). Θα περίμενα να μπουν οι τεχνικοί στην διαδικασία να βάλουν ένα είδος authentication, κι όχι να αφήνουν ένα τόσο σημαντικό μηχάνημα εκτεθειμένο με τέτοιο τρόπο.

Για να εξηγήσω τον κίνδυνο για τον μέσο φαρμακοποιό: Οποιοσδήποτε έχει πρόσβαση στο δίκτυο του φαρμακείου, μπορεί να αντιγράψει τα δεδομένα και να δει την αποθήκη, τις πωλήσεις, τον τζίρο μου ακόμη και τις συνταγές που έχουν εκτελεστεί, τις παθήσεις που έχουν οι ασθενείς του φαρμακείου, ποια φάρμακα πήραν, πότε, τι εκτυπώθηκε, κλπ!

Το συγκεκριμένο πρόβλημα είναι καθαρά θέμα αδιαφορίας. Δεν γνωρίζω από Windows αλλά είμαι σίγουρος ότι η Microsoft έχει λειτουργίες για έλεγχο ταυτότητας, διαχωρισμό δικαιωμάτων, κλπ. Απλά θα έπρεπε κάποιος να τα βάλει σε λειτουργία και η εταιρία δεν μπαίνει σε αυτήν την διαδικασία. Ωστόσο τονίζω πως δεν είναι μόνο η CSA που ενεργεί με αυτόν τον τρόπο.

7. Ιδιοκτησία δεδομένων

Οποιοδήποτε λογισμικό κι αν χρησιμοποιώ, μου αρέσει να έχω πρόσβαση στα raw δεδομένα, με εύκολο τρόπο.

Αν για παράδειγμα αύριο κλείσει η CSA λόγο κρίσης, θα πρέπει να περάσω την αποθήκη μου από την αρχή στο νέο πρόγραμμα γιατί τα δεδομένα στην ουσία δεν ανήκουν σε στον φαρμακοποιό. Θα χάσω το ιστορικό πελατών μου, κλπ.

Το Farmakon χρησιμοποιεί MS-SQL ως βάση. Αλλά δεν δίνουν πρόσβαση σε αυτά τα στοιχεία, με αποτέλεσμα αν θέλεις να τα χρησιμοποιήσεις αλλού να μην μπορείς. Υπάρχει γέφυρα για e-shop αλλά τα δεδομένα που θα στείλεις ή θα πάρεις είναι ελεγχόμενα. Είναι αδύνατο π.χ. να δημιουργήσω αρχείο μετρήσεων πίεσης ασθενών χρησιμοποιώντας την βάση ασθενών που έχω μέσα στο Farmakon.

Το αποτέλεσμα είναι πως πρακτικά, οποιαδήποτε δημιουργία τρίτης εφαρμογής βασισμένη στην βάση δεδομένων του Farmakon είναι αδύνατη. Κι επειδή ως προγραμματιστής είναι πάρα πολλά αυτά που θα μπορούσα να κάνω με ένα Raspberry Pi αν είχα πρόσβαση σε αυτό το αρχείο, θεωρώ το limitation εξαιρετικά ανησυχητικό.

Το πιο ανησυχητικό από όλα όμως είναι η ιδέα πως τα δεδομένα δεν μου ανήκουν! Ανήκουν στην εταιρία που έχει το πρόγραμμα. Αυτή είναι μια ξεπερασμένη λογική που υπάρχει στην Ελληνική αγορά σε μεγάλο βαθμό.

8. Διαχείριση σφαλμάτων ΗΔΙΚΑ

Όταν εκτελώ μια ηλεκτρονική συνταγή στο Farmakon και το πρόγραμμα ηλεκτρονικής συνταγογραφησης πέφτει και δεν στέλνει «απάντηση», θα ήθελα ένα πιο ‘graceful exit’ κι όχι κόλλημα. Το πρόγραμμα κολλάει (stall) κυριολεκτικά με αποτέλεσμα να πρέπει να περιμένω κοντά στα 4 λεπτά ή να πρέπει να γίνει ‘kill’ από “Διαχείριση Εργασιών”. Το πρόγραμμα μου δίνει την δυνατότητα να υπολογίσω το % χρέωσης συνταγής, εφόσον την έχω μπροστά μου και να εκτελέσω την συνταγή σε δεύτερο χρόνο, αλλά όταν κολλάει το πρόγραμμα, δεν μπορώ να κάνω ούτε αυτό.

Δεδομένου ότι η ΗΔΙΚΑ δεν έχει την ανάλογη χρηματοδότηση και το σύστημα ηλεκτρονικής συνταγογράφησης κάθε αρχές και τέλος του μήνα σέρνεται - doesn’t scale θα λέγαμε στην Αγγλική - λόγο του όγκου δεδομένων που πρέπει να εξυπηρετήσει, αυτό το κόλλημα είναι υπερβολικά ενοχλητικό. Θα μπορούσε να υπάρχει ένας χρονοδιακόπτης (rescue clause) για να μην κολλάει το σύμπαν όταν το response time είναι πάνω από 15-20 seconds.

Αντί επιλόγου

Έως σήμερα είμαι σε φάση «αναγνώρισης» του Farmakon. Είμαι σίγουρος ότι μόλις αρχίσω να χρησιμοποιώ όλες τις δυνατότητες που δίνει, θα παρουσιαστούν κι άλλα προβλήματα στην πορεία.

Ωστόσο το συγκεκριμένο κείμενο, δεν είναι ένα «κατηγορώ» στην CSA. Οι περισσότεροι φαρμακοποιοί δεν έχουν αρκετές γνώσεις ώστε να τους ενοχλούν αυτά που αναφέρω.

Μέρος Β

Υπάρχει χώρος για startup;

Ανέφερα στο twitter πως θα γράψω άρθρο για την τραγική κατάσταση λογισμικού στον χώρο του φαρμακείου, οπότε ο @dionyziz πολύ σωστά παρατήρησε, πως πιθανότατα μια startup να μπορούσε να αλλάξει το νεφελώδες τοπίο.

Το λογισμικό φαρμακείο, έχει κάποιες ιδιαιτερότητες που θα πρέπει να ληφθούν σοβαρά υπόψιν από οποιαδήποτε ομάδα προσπαθήσει να δημιουργήσει ένα τέτοιο πρόγραμμα.

Λογισμικό διαχείρισης Φαρμακαποθήκης

Το πρώτο βήμα είναι να δημιουργηθεί ένα σύγχρονο λογισμικό διαχείρισης φαρμακαποθήκης, γιατί με αυτό θα πρέπει να επικοινωνεί το πρόγραμμα φαρμακείου. Οι περισσότερες φαρμακαποθήκες στην Ελλάδα είναι συλλογικές, δρουν ως συνεταιρισμοί. Πρώτα πρέπει να εγκατασταθεί ένα σύγχρονο λογισμικό διαχείρισης σε φαρμακαποθήκες, που θα δίνει την δυνατότητα διασύνδεσης με σύγχρονες μεθόδους, διαχωρισμό πελατών σε κατηγορίες με διαφορετικά επίπεδα πρόσβασης.

Οι φαρμακαποθήκες αγοράζουν και πουλάνε προϊόντα μεταξύ τους. Άρα και μεταξύ τους θα ήταν χρήσιμο αν μπορούσαν να ψάξουν on-the-fly για ένα παραφάρμακο που π.χ. ο ΠΕΙ.ΦΑ.ΣΥΝ. έχει διαθέσιμο αλλά ΣΥΦΑ Καβάλας δεν έχει. Τώρα πρέπει να γίνει η διαδικασία τηλεφωνικά, δεν υπάρχει μια ενοποιημένη βάση δεδομένων διαθέσιμη.

Τόσο στα φαρμακεία όσο και στις φαρμακαποθήκες υπάρχει χώρος για καινοτομία. Απλά τόσο στον ένα κλάδο όσο και στον άλλο, το λογισμικό «πουλιέται» από πωλητές. Είναι απίθανο να σε «ψάξει» κάποιος επειδή έχεις μια σελίδα στο internet. Πρέπει να πάει πωλητής με τσαντάκι και βαλιτσούλα και να παρουσιάσει το λογισμικό σου. Αυτό ισχύει κυρίως για τις αποθήκες αλλά και για τα φαρμακεία.

Λογισμικό φαρμακείου

Ένα πρόγραμμα φαρμακείου θα ήθελα να κάνει τα εξής:

  • Να επικοινωνεί με την ΗΔΙΚΑ για ηλεκτρονική συνταγογράφηση & άλλα στοιχεία (π.χ. προηγούμενες εκτελεσμένες συνταγές κλπ.)
  • Να έχει ΟΛΑ τα στοιχεία τοπικά διαθέσιμα
  • Να έχει αυτόματο online backup της ΤΟΠΙΚΗΣ βάσης
  • Να λειτουργεί και offline
  • Να έχει οικονομική διαχείριση (βιβλία Β κ Γ κατηγορίας)
  • Να υποστηρίζει open standards
  • Να έχει βάση με διαθέσιμο API
  • Να υποστηρίζει οικονομική διαχείριση
  • Να υπάρχει διασύνδεση με ταμειακές μηχανές (αυτό είναι Ελληνική πατέντα)

Από εκεί και πέρα οι δυνατότητες είναι πραγματικά απεριόριστες στον χώρο. Ελπίζω σύντομα να δούμε είτε πλήρη αναβάθμιση των λύσεων που ήδη υπάρχουν ή νέες προτάσεις που να είναι σύγχρονες.

Υποστήριξη

Σε αυτό το κομμάτι είμαι ευχαριστημένος. Η CSA έχει μια μεγάλη ομάδα υποστήριξης που δρα σχετικά γρήγορα, γνωρίζουν πολύ καλά το αντικείμενο τους κι έχουν την απαιτούμενη δόση υπομονής.

Θεωρώ πως αν το πρόγραμμα τους δεν ήταν τόσο άσχημο σχεδιαστικά και η ‘βοήθεια’ λειτουργούσε κανονικά (sic), δεν θα χρειαζόταν να τους τηλεφωνώ τόσο συχνά. Ωστόσο, ο μέσος φαρμακοποιός δεν έχει ούτε τις βασικές γνώσεις Υ/Π άρα είναι απαραίτητο οποιαδήποτε νέα προσπάθεια να έχει ένα τηλεφωνικό support center, έστω και μικρό, που να απαντάει σε ερωτήσεις χρηστών και να λύνει τα προβλήματα που δημιουργούνται γρήγορα.

ps. Γράφωντας το κείμενο, ήρθαν στο μυαλό μου οι περιπέτειες του Ζαχαρία Δεντοφτιάχνω :-)


  1. Εδώ χρειάζονται screenshots. Ίσως προστεθούν αργότερα.