Ηλεκτρονική υνταγογράφηση Σεκμηρίωση



Σχετικά έγγραφα
ΗΛΕΚΣΡΟΝΙΚΗ ΤΠΗΡΕΙΑ ΑΠΟΚΣΗΗ ΑΚΑΔΗΜΑΪΚΗ ΣΑΤΣΟΣΗΣΑ

Εγχειρίδιο Χριςθσ τθσ διαδικτυακισ εφαρμογισ «Υποβολι και παρακολοφκθςθ τθσ ζγκριςθσ Εκπαιδευτικών Πακζτων»

ΕΓΧΕΙΡΙΔΙΟ ΧΡΗΗ. του ΙΑΣΡΟΦΑΡΜΑΚΕΤΣΙΚΟΤ ΦΑΚΕΛΟΤ ΑΘΕΝΩΝ Για τον ΟΙΚΟ ΝΑΤΣΟΤ ΕΡΓΑΣΗΡΙΑΚΟΙ ΓΙΑΣΡΟΙ. iknowhow Πληροφορική A.E

ΕΝΟΤΗΤΑ 2: ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 5: Γνωριμία με το λογιςμικό του υπολογιςτι

ΟΔΗΓΙΕ ΓΙΑ ΣΗΝ ΕΙΑΓΩΓΗ ΕΚΔΡΟΜΩΝ & ΝΕΩΝ - ΑΝΑΚΟΙΝΩΕΩΝ ΣΗΝ ΙΣΟΕΛΙΔΑ ΣΗ Δ.Δ.Ε. ΘΕΠΡΩΣΙΑ

Διαχείριςη Αριθμοδεικτών (v.1.0.7)

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 2 ο Εργαςτιριο Διαχείριςθ Διεργαςιϊν

Εγχειρίδιο Χριςθσ: Εφαρμογι Αιτιςεων για τα Εκπαιδευτικά Προγράμματα του Προςωπικοφ των Επιχειριςεων Τροφίμων

Ηλεκτρονικι Υπθρεςία Ολοκλθρωμζνθσ Διαχείριςθσ Συγγραμμάτων και Λοιπϊν Βοθκθμάτων

ΛΕΙΤΟΥΓΙΚΆ ΣΥΣΤΉΜΑΤΑ. 5 ο Εργαςτιριο Ειςαγωγι ςτθ Γραμμι Εντολϊν

Ηλεκτρονικι Επιχειρθςιακι Δράςθ Εργαςτιριο 1

ΕΦΑΡΜΟΓΖσ ΒΆΕΩΝ ΔΕΔΟΜΖΝΩΝ ΚΑΙ ΔΙΑΔΙΚΣΥΟΤ. Ειρινθ Φιλιοποφλου

Διαδικαςία Προγράμματοσ Ωρομζτρθςθσ. (v.1.0.7)

Σφςτημα Κεντρικήσ Υποςτήριξησ τησ Πρακτικήσ Άςκηςησ Φοιτητών ΑΕΙ

Joomla! - User Guide

ελ. 11/235, Περιεχόμενα Φακζλου "Σεχνικι Προςφορά"

Οδηγός χρήσης Blackboard Learning System για φοιτητές

Megatron ERP Βάςη δεδομζνων Π/Φ - κατηγοριοποίηςη Databox

Σφντομεσ Οδθγίεσ Χριςθσ

ΕΦΑΡΜΟΓΕ ΒΑΕΩΝ ΔΕΔΟΜΕΝΩΝ ΣΗ ΝΟΗΛΕΤΣΙΚΗ. Φιλιοποφλου Ειρινθ

Virtualization. Στο ςυγκεκριμζνο οδηγό, θα παρουςιαςτεί η ικανότητα δοκιμήσ τησ διανομήσ Ubuntu 9.04, χωρίσ την ανάγκη του format.

Κάνουμε κλικ ςτθν επιλογι του οριηόντιου μενοφ «Get Skype»για να κατεβάςουμε ςτον υπολογιςτι μασ το πρόγραμμα του Skype.

Πωσ δθμιουργώ φακζλουσ;

ΕΝΟΤΗΤΑ 2: ΤΟ ΛΟΓΙΣΜΙΚΟ ΤΟΥ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 6: Το γραφικό περιβάλλον Επικοινωνίασ (Γ.Π.Ε)

Διαχείριςθ του φακζλου "public_html" ςτο ΠΣΔ

Εφδοξοσ+ Συνδεκείτε ςτθν Εφαρμογι Φοιτθτϊν και μεταβείτε ςτθ ςελίδα «Ανταλλαγι Βιβλίων (Εφδοξοσ+)».

Εγχειρίδιο Χρήςησ Αυτοματοποίηςησ Κυκλώματοσ Πληρωμών ΟΛΠ μζςω e-banking VERSION <Final>

Διαδικαςία Διαχείριςθσ Στθλϊν Βιβλίου Εςόδων - Εξόδων. (v.1.0.7)

Epsilon Cloud Services

Οδηγίεσ προσ τουσ εκπαιδευτικοφσ για το μοντζλο του Άβακα

Ειςαγωγι ςτο Δομθμζνο Προγραμματιςμό. Βαγγζλθσ Οικονόμου

Διδάςκων: Κωνςταντίνοσ τεφανίδθσ

Οδηγίες Πρόζβαζης ζηο EndNote Web. Πρόζβαζη ζηο EndNote Web

Εγχειρίδιο Χρήςησ Support

Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Εθνικό Τυπογραφείο)

ΕΝΟΣΗΣΑ 1: ΓΝΩΡIΖΩ ΣΟΝ ΤΠΟΛΟΓΙΣΗ. ΚΕΦΑΛΑΙΟ 2: Σο Τλικό του Τπολογιςτι

eorder Eγχειρίδιο Χρήσης

Λειτουργικά υςτιματα Windows XP

Ανάπτυξη Εφαρμογών με Σχεςιακέσ Βάςεισ Δεδομένων

assessment.gr USER S MANUAL (users)

Εφαρμογή. «Βελτιώνω την πόλη μου» Αιτήματα Ρολιτών. Εγχειρίδιο χρήςησ για τον πολίτη

Εγχειρίδιο Χρήςησ Προςωποποιημζνων Υπηρεςιών Γ.Ε.ΜΗ. (Εθνικό Τυπογραφείο)

Αυτόματη δημιουργία στηλών Αντιστοίχηση νέων λογαριασμών ΦΠΑ

SingularLogic Application. Παραμετροποίηση Galaxy Application Server

ΦΤΛΛΟ ΕΡΓΑΙΑ ΤΠΗΡΕΙΑ ΗΛΕΚΣΡΟΝΙΚΟΤ ΣΑΥΤΔΡΟΜΕΙΟΤ

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 7 θ Διάλεξθ Διαχείριςθ Μνιμθσ Μζροσ Γ

Οδηγίεσ για την Τποβολή Καταςτάςεων υμφωνητικών μζςω xml αρχείου

ΕΓΦΕΙΡΙΔΙΟ ΑΝΑΛΤΣΙΚΩΝ ΟΔΗΓΙΩΝ ΓΙΑ ΣΗΝ ΗΛΕΚΣΡΟΝΙΚΗ ΑΙΣΗΗ ΤΝΣΑΞΙΟΔΟΣΗΗ ΣΟΤ ΕΥΚΑ

ΕΝΟΤΗΤΑ 2: ΕΠΙΚΟΙΝΩΝΩ ΜΕ ΤΟΝ ΥΠΟΛΟΓΙΣΤΗ. ΚΕΦΑΛΑΙΟ 5: Αρχεία - Φάκελοι

ΛΕΙΣΟΤΡΓΙΚΆ ΤΣΉΜΑΣΑ. 3 ο Εργαςτιριο υγχρονιςμόσ Διεργαςιϊν

Οδηγίες αναβάθμισης χαρτών

Ένα πρόβλθμα γραμμικοφ προγραμματιςμοφ βρίςκεται ςτθν κανονικι μορφι όταν:

ΔΙΑΔΙΚΑΙΑ ΚΑΙ ΡΤΘΜΙΕΙ ΓΙΑ ΤΝΔΕΗ ΣΟ INTRANET ΣΟΤ ΕΚΕΣΑ-ΙΣΧΗΔ

Τυπικζσ Γλϊςςεσ Περιγραφισ Υλικοφ Εργαςτιριο 1

ΟΔΗΓΙΕ ΓΙΑ ΣΗ ΔΗΜΙΟΤΡΓΙΑ ΚΑΙ ΣΗΝ ΤΠΟΒΟΛΗ ΑΙΣΗΗ ΓΙΑ «ΚΟΤΠΟΝΙ ΚΑΙΝΟΣΟΜΙΑ»

ΑΛΕΞΑΝΔΡΕΙΟ ΣΕΙ ΘΕΑΛΟΝΙΚΗ ΣΜΗΜΑ ΜΗΧΑΝΙΚΩΝ ΠΛΗΡΟΦΟΡΙΚΗ Σ.Ε. ΜΑΘΗΜΑ : ΑΛΓΟΡΙΘΜΙΚΗ ΚΑΙ ΠΡΟΓΡΑΜΜΑΣΙΜΟ ΔΙΔΑΚΩΝ : ΓΟΤΛΙΑΝΑ ΚΩΣΑ

Δείκτεσ Διαχείριςθ Μνιμθσ. Βαγγζλθσ Οικονόμου Διάλεξθ 8

Πρόςβαςη και δήλωςη μαθημάτων ςτον Εφδοξο

ΟΔΗΓΙΕΣ ΓΙΑ ΤΗΝ ΚΑΤΑΧΩΗΣΗ ΣΧΕΔΙΩΝ ΚΑΙΝΟΤΟΜΙΑΣ ΑΡΟ ΦΟΕΙΣ ΚΑΙΝΟΤΟΜΙΑΣ

Ειδικά Θζματα Βάςεων Δεδομζνων

ΡΥΘΜΙΕΙ για περιοριςμένο χρήςτη (limited user)

Διαδικασία Δημιοσργίας Ειδικών Λογαριασμών. (v.1.0.7)

ΘΥ101: Ειςαγωγι ςτθν Πλθροφορικι

Οδηγίεσ υποβολήσ Ηλεκτρονικήσ Αίτηςησ για υμμετοχή ςτην Προςκοπική Εκπαίδευςη

Διαχείριςη Εκπαιδευτικού Υλικού (ΠΑΚΕ) Πληροφοριακό Σύςτημα (MIS)

ΡΟΓΑΜΜΑΤΙΣΤΙΚΟ ΡΕΙΒΑΛΛΟΝ MICRO WORLDS PRO

TIM Εικονικό Περιβάλλον Συνεργασίας Οδθγίεσ Χριςθσ

Οδθγόσ για τθν αξιοποίθςθ τθσ διαςφνδεςθσ του myschool με το Εκνικό Δθμοτολόγιο

GNSS Solutions guide. 1. Create new Project

1. Εγκατάςταςη κειμενογράφου JCE

Δημιουργία Εντφπων Intrastat και Ανακεφαλαιωτικοφ Πίνακα

Extra Λογιςτική Διαχείριςη & Extra Μιςθοδοςία

Διαχείριςη Κοςτολόγηςησ

ΕΝΟΣΗΣΑ 1: ΓΝΩΡIΖΩ ΣΟΝ ΤΠΟΛΟΓΙΣΗ Ω ΕΝΙΑΙΟ ΤΣΗΜΑ. ΚΕΦΑΛΑΙΟ 2: Σο Εςωτερικό του Τπολογιςτι

Εισαγωγικές έννοιες. Αντώνησ Κ Μαώργιώτησ

Ιδιότθτεσ πεδίων Γενικζσ.

Οδηγίεσ προσ τουσ εκπαιδευτικοφσ για το μοντζλο τησ Αριθμογραμμήσ

Ανάπτυξη Εφαρμογών Σε Προγραμματιςτικό Περιβάλλον

Περιεχόμενα. χολι Χοροφ Αντιγόνθ Βοφτου - Πολιτικι Διαχείριςθσ Cookie 1

Internet a jeho role v našem životě Το Διαδίκτυο και ο ρόλοσ του ςτθ ηωι μασ

1. Κατέβαςμα του VirtueMart

Εισαγωγή Νέου Παγίου

ΟΔΗΓΙΕΣ ΔΗΜΙΟΥΡΓΙΑΣ ΚΑΙ ΡΥΘΜΙΣΗΣ ΔΩΡΕΑΝ ΗΛΕΚΤΡΟΝΙΚΟΥ ΤΑΧΥΔΡΟΜΕΙΟΥ ΣΤΟ YAHOO

η τζχνη τησ εκπαίδευςησ ο καθηγητήσ ςτο ςπίτι, 24 ώρεσ το 24ωρο

Τυπικζσ Γλϊςςεσ Περιγραφισ Υλικοφ Εργαςτιριο 2

ΧΡΗΙΜΟΠΟΙΩΝΣΑ ΣΟ VISUAL HISTORY ARCHIVE

Εγκατάσταση & Διαχείριση Joomla στο Π.Σ.Δ. ΣΥΜΒΟΥΛΟ ΡΛΗΟΦΟΙΚΗΣ Ν. ΣΕΩΝ & ΚΕ.ΡΛΗ.ΝΕ.Τ. Ν. ΣΕΩΝ

Παράςταςη ακεραίων ςτο ςυςτημα ςυμπλήρωμα ωσ προσ 2

1. Διαχείριςη ενθεμάτων

Ερμούπολη 13/07/2012 1

Seventron Limited. Οδηγίες χρήσης EnglishOnlineTests.com

ΟΔΗΓΙΕ ΔΗΜΙΟΤΡΓΙΑ ΚΑΙ ΡΤΘΜΙΗ ΔΩΡΕΑΝ ΗΛΕΚΣΡΟΝΙΚΟΤ ΣΑΧΤΔΡΟΜΕΙΟΤ ΣΟ GOOGLE (G-MAIL)

Διαδικαζία Διατείριζης Εκηύπωζης Ιζοζσγίοσ Γενικού - Αναλσηικών Καθολικών. (v )

Εφαρμογι Μαθητολόγιο. Εφαρμογι ςχεδιαςμζνθ από τθ SingularLogic ειδικι για φροντιςτήρια. Καλφπτει αποτελεςματικά τισ βαςικζσ ανάγκεσ τουσ, παρζχοντασ:

ΟΔΗΓΙΕ ΓΕΝΙΚΕ ΟΔΗΓΙΕ & ΕΠΕΞΗΓΗΕΙ ΓΙΑ ΣΗΝ ΟΡΘΗ ΤΜΠΛΗΡΩΗ ΣΩΝ ΠΙΝΑΚΩΝ

Εφδοξοσ Δήλωςη Συγγραμμάτων

Οδηγύεσ Εφαρμογόσ Ηλεκτρονικόσ Κοςτολόγηςησ

My Tax Friend 3 Manual. Οδθγίεσ Χριςθσ My Tax Friend 3. Περιγραφι τθσ βαςικισ οκόνθσ και των κυριότερων λειτουργιϊν τθσ εφαρμογισ My Tax Friend 3.

Οδθγίεσ Χριςθσ. Ζκδοςθ v.01

Ζτοιμα πακζτα λογιςμικοφ για μθ ςτατικοφσ ιςτότοπουσ

Transcript:

ΠΑΝΕΠΙΣΗΜΙΟ ΠΕΙΡΑΙΩ ΣΜΗΜΑ ΨΗΦΙΑΚΩΝ ΤΣΗΜΑΣΩΝ ΠΜ ΔΙΔΑΚΣΙΚΗ ΣΗ ΣΕΧΝΟΛΟΓΙΑ ΚΑΙ ΨΗΦΙΑΚΑ ΤΣΗΜΑΣΑ Κατεφκυνςθ: Δικτυοκεντρικά υςτιματα Μάκθμα: Προθγμζνα Πλθροφοριακά υςτιματα Ακαδθμαϊκό ζτοσ: 2011-2012 Διδάςκων: Γεϊργιοσ Βαςιλακόπουλοσ Ηλεκτρονική υνταγογράφηση Σεκμηρίωση Μεταπτυχιακοί Φοιτθτζσ Γεωργίου Γεϊργιοσ Κυριάηοσ πυρίδων Σίγκασ Οδυςςζασ Σςιτςιπάσ Ακανάςιοσ Αρικμόσ Μθτρϊου ΜΕ/11055 ΜΕ/11060 ΜΕ/11071 ΜΕ/11072 ΠΕΙΡΑΙΑ Φεβρουάριος 2012

Περιεχόμενα 1. Ειςαγωγι... 4 2. Μεκοδολογία... 5 2.1. Rational Unified Process... 5 2.2. Γιατί να υιοκετιςουμε μια επαναλθπτικι διαδικαςία ανάπτυξθσ... 5 2.3. Οι βαςικοί ςτόχοι κάκε επαναλθπτικισ διαδικαςίασ... 6 2.4. Διαχείριςθ κινδφνου... 7 2.5. Φάςεισ ανάπτυξθσ... 7 3. Τεχνολογίεσ που χρθςιμοποιικθκαν για τθν ανάπτυξθ του ζργου... 8 3.1. Java... 8 3.1.1. Η Java ςαν Γλϊςςα Ρρογραμματιςμοφ... 9 3.1.2. Η Java Ρλατφόρμα... 12 3.2. Application framework... 13 3.3. JPA... 13 3.4. Model-View-Controller... 13 3.5. Εργαλεία... 14 4. Επιχειρθςιακό Ρλάνο... 15 4.1. Ραρουςίαςθ Ρροβλιματοσ... 15 4.2. Λφςθ Ιδεατι Κατάςταςθ... 16 4.3. Ρλεονεκτιματα τθσ Ηλεκτρονικισ Συνταγογράφθςθσ... 16 4.4 Συνοπτικά... 17 4.5 Ραραδοχζσ... 17 5. Ανάλυςθ απαιτιςεων... 18 5.1. Οριςμόσ του Συςτιματοσ - CATWOE... 18 5.2. Use Cases... 18 2

6. Ανάλυςθ και ςχεδίαςθ... 27 6.1. Class Diagram... 27 6.2. Activity Diagrams... 28 6.3. Sequence Diagrams... 30 6.4. Σχιμα τθσ Βάςθσ Δεδομζνων... 32 6.5. Ρρωτότυπεσ οκόνεσ τθσ εφαρμογισ... 33 6.6. Αρχιτεκτονικι... 35 6.7. Αςφάλεια... 36 7. Υλοποίθςθ... 36 8. Εγχειρίδιο Χριςτθ... 37 8.1. Κεντρικι Σελίδα... 37 8.2. Ιατρόσ... 39 8.3. Φαρμακοποιόσ... 44 9. Διαχείριςθ ζργου... 48 9.1. Ραραδοτζα... 48 9.1.1. Business Modeling... 48 9.1.2. Requirements... 48 9.1.3. Analysis and Design... 48 9.1.4. Implementation... 48 9.2. Χρονοδιάγραμμα... 49 10. Βιβλιογραφία... 51 10.1. Διαδίκτυο... 51 10.2. Βιβλία... 51 3

1. Ειςαγωγή Το ςφςτθμα θλεκτρονικισ ςυνταγογράφθςθσ ι electronic prescribing (E-rx) αποτελεί μια νζα τάςθ ςτθν ςυνταγογράφθςθ για το λόγο ότι με τθν χριςθ τθσ τεχνολογίασ αποφεφγονται προβλιματα που προκφπτουν με τον παραδοςιακό τρόπο ςυνταγογράφθςθσ. Μερικά από τα προβλιματα του παραδοςιακοφ τρόπου είναι : H ανακρίβειεσ κατά τθν ςυγγραφι τθσ ςυνταγισ, θ λανκαςμζνθ εκτζλεςθ τθσ ςυνταγισ, θ ςπατάλθ πόρων κτλ. Το ςφςτθμα θλεκτρονικισ ςυνταγογράφθςθσ είναι κάτι ςυγκεκριμζνο που ειςάγει μια υπθρεςία υγείασ ςτθν ψθφιακι εποχι κάνοντασ τθν αποτελεςματικι και ςε ζνα μεγάλο βακμό προςανατολιςμζνθ ςτο αποτζλεςμα (result oriented). Στόχοσ τθσ παροφςασ εργαςίασ είναι θ δθμιουργία μιασ web εφαρμογισ θλεκτρονικισ ςυνταγογράφθςθσ που κα περιλαμβάνει λειτουργίεσ όπωσ ςυγγραφι ςυνταγισ από τθν πλευρά του γιατροφ και εκτζλεςθ τθσ ςυνταγισ από τθν πλευρά του φαρμακοποιοφ. Το ςφςτθμα μασ είναι ζνα e-prescribing ςφςτθμα και όχι ζνα ςφςτθμα EHR (electronic health record system) που ζχει ζνα integrated e-prescribing module. 4

2. Μεθοδολογία 2.1. Rational Unified Process Η μεκοδολογία που ακλουκιςαμε είναι θ RUP. Η RUP είναι μια μζκοδοσ διαχείριςθσ, ςχεδιαςμοφ και ανάπτυξθσ ζργων λογιςμικοφ μεγάλθσ κλίμακασ. Θα μποροφςε να χαρακτθριςτεί ωσ ζνα ολοκλθρωμζνο πλαίςιο χειριςμοφ τθσ ανάπτυξθσ λογιςμικοφ το οποίο προβλζπει: Επαναλθπτικι ανάπτυξθ (τα επιμζρουσ τμιματα λογιςμικοφ που αναπτφςςονται επανελζγχονται και ςυμπλθρϊνονται ςυνεχϊσ κακϊσ όλο και μεγαλφτερο εφροσ του ζργου υλοποιείται). Τθν δομθμζνθ διαχείριςθ των απαιτιςεων του ζργου. Οι απαιτιςεισ οργανϊνονται ςε κεμελιϊδθ αυτόνομα τμιματα λογιςμικοφ με καλά κακοριςμζνθ διεπαφι με το ςφνολο του ζργου. Αρχιτεκτονικό ςχεδιαςμό που βαςίηεται ςε Components (ολοκλθρωμζνεσ ανεξάρτθτεσ δομικζσ μονάδεσ λογιςμικοφ). Διαχείριςθ ποιότθτασ (Quality control and Management). Στοιχείου απαραίτθτου ςτθν μοντζρνα φιλοςοφία ανάπτυξθσ εφαρμογϊν. Δομθμζνο ζλεγχο των αλλαγϊν και των επεκτάςεων του λογιςμικοφ. Στοιχείο απαραίτθτο γιατί κανζνα λογιςμικό δεν ζχει ολοκλθρωμζνο το ςφνολο των απαιτιςεων πριν και ίςωσ κατά τθ διάρκεια τθσ ανάπτυξθσ Καλά οριςμζνο πλαίςιο διαχείριςθσ των κειμζνων που κα πρζπει να ςυνοδεφουν τθν ανάπτυξθ λογιςμικοφ. Για τα κείμενα τθσ RUP υπάρχουν templates τα οποία ςυμπλθρϊνονται από τα επιφορτιςμζνα πρόςωπα και δθμιουργοφν ζνα ςφμπλεγμα τεκμθρίωςθσ που κακιςτά εφικτι τθν διόρκωςθ, ςυμπλιρωςθ και τον ζλεγχο ενόσ προϊόντοσ λογιςμικοφ από τον οποιοδιποτε είναι «μυθμζνοσ» ςτθ RUP ακόμα και αν ζχουν παρζλκει ζτθ από τθν αποπεράτωςθ του ζργου. Επίςθσ θ τιρθςθ ςωςτισ τεκμθρίωςθσ βοθκά τθν εφκολθ ειςαγωγι νζων προςϊπων ςτισ ομάδεσ ανάπτυξθσ και διαχείριςθσ ενόσ ζργου. Γραφικό τρόπο αναπαράςταςθσ του ςχεδιαςμοφ με τθ βοικεια εμπορικϊν λογιςμικϊν και UML γλϊςςασ προγραμματιςμοφ και αναπαράςταςθσ (πχ Rational Rose). 2.2. Γιατί να υιοθετήςουμε μια επαναληπτική διαδικαςία ανάπτυξησ Μια επαναλθπτικι διαδικαςία ανάπτυξθσ αναγνωρίηει και αντιμετωπίηει ρεαλιςτικά τθν κακθμερινι πραγματικά τθσ δυναμικισ ανάγκθσ αλλαγισ των απαιτιςεων που παρατθρείται ςε μεγάλθσ κλίμακασ ζργα. Η εμπειρία δείχνει ότι το 30-50% των πραγματικϊν απαιτιςεων εμφανίηεται μετά τθ φάςθ τθσ ανάλυςθσ και αφοφ ζχει ξεκινιςει 5

θ διαδικαςία υλοποίθςθσ του ζργου. Ραρζχει τθ δυνατότθτα ελζγχου και ζγκαιρου εντοπιςμοφ και περιοριςμοφ του κινδφνου (risk management) διατζμνοντασ το ζργο ςε επιμζρουσ υπο-ζργα και αφινοντα είτε όλθ τθν ομάδα είτε μζροσ αυτισ να αςχολθκεί πρϊτα και επιςταμζνα με τα τμιματα που ενζχουν μεγαλφτερο ρίςκο αποτυχίασ. Επιτρζπει τθ βιμα-βιμα ανάπτυξθ του ζργου κάνοντασ ςυνδυαςμζνθ ςταδιακι (λίγο-λίγο) ανάλυςθ-ςχεδιαςμό-υλοποίθςθ. Από τθν αρχι του ζργου και μζχρι το τζλοσ δίνει τθ δυνατότθτα ςε όλεσ τθσ ομάδεσ (ελζγχου, ανάπτυξθσ, ανάλυςθσ) να ςυμμετζχουν ςτο ζργο και να ςυνειςφζρουν τθν εμπειρία τουσ. Η φπαρξθ πολλϊν επαναλιψεων δθμιουργεί τθ δυνατότθτα τθσ διόρκωςθσ και του επαναπροςδιοριςμοφ των επιλογϊν και χτίηει εμπειρία ςτο ςφνολο των ομάδων που ςυνεργάηονται. Εκ των πραγμάτων ζχει τθ φιλοςοφία τθσ βιμα προσ βιμα ανάλυςθσ και ανάπτυξθσ και άρα ζχει ςαν βαςικό ςυςτατικό τθν ανάπτυξθ κεμελιωδϊν τμθμάτων κϊδικα (component). Ζτςι αποφεφγει τισ «τελικζσ λφςεισ» τφπου Big-Bang που ζχουν μεγάλο κίνδυνο αποτυχίασ ενϊ ταυτόχρονα εξαςφαλίηει το ποκθτό modularity. Βαςικι αρχι αυτισ τθσ διαδικαςίασ είναι ότι θ οργανωμζνθ ομάδα ανάπτυξθσ τθσ εφαρμογισ δεν κα διαγράψει ποτζ κάποιο κακό κομμάτι κϊδικα για να γράψει ζνα καινοφργιο. Ο ιδθ γραμμζνοσ κϊδικασ είτε διορκϊνεται είτε ςυμπλθρϊνεται για να δθμιουργθκεί μια νζα ζκδοςθ ι ζνα service pack. 2.3. Οι βαςικοί ςτόχοι κάθε επαναληπτικήσ διαδικαςίασ Ο βαςικόσ ςτόχοσ κάκε επαναλθπτικισ διαδικαςίασ είναι να μειϊνει ςιγά ςιγά τον κίνδυνο αποτυχίασ του ζργου αντιμετωπίηοντασ ςταδιακά: Τουσ κινδφνουσ απόδοςθσ (αργζσ DB, προβλθματικά κανάλια και πρωτόκολλα μετάδοςθσ δεδομζνων, διαδικαςίεσ που καταναλϊνουν χρόνο δυςανάλογο προσ το αποτζλεςμα) Τουσ κινδφνουσ ολοκλιρωςθσ (υιοκζτθςθ διαφορετικϊν τεχνολογιϊν, επιλογι πλατφόρμασ, γλϊςςεσ προγραμματιςμοφ) Τουσ κινδφνουσ βαςικισ φιλοςοφίασ. Κινδφνουσ που προκφπτουν από βαςικζσ αρχιτεκτονικζσ επιλογζσ πχ. Client Server, intranet, όπωσ επίςθσ και κινδφνουσ από επιλογζσ δόμθςθσ των ομάδων που ςυμμετζχουν ι ακόμα και εταιριϊν που αναλαμβάνουν τα υπο-ζργα Η κάκε επαναλθπτικι διαδικαςία δομείται ςαν ζνα μικρό ζργο «waterfall» το οποίο ολοκλθρϊνεται με τθν παράδοςθ ενόσ λογιςμικοφ διακζςιμου για περαιτζρω ανάλυςθ και διόρκωςθ από τισ εμπλεκόμενεσ ομάδεσ. Η κάκε επανάλθψθ είναι κακοδθγοφμενθ από τον κίνδυνο γι αυτό και κα πρζπει να αποτελείται από εκείνα τα επιμζρουσ τμιματα λογιςμικοφ τα οποία αναδεικνφουν τουσ πικανοφσ κινδφνουσ και τισ περιπτϊςεισ αποτυχίασ. Τα αποτελζςματα τισ κάκε επανάλθψθσ κα πρζπει να προωκεί το ζργο προςκζτοντασ ςυνεχϊσ καινοφργια ςτοιχεία (πχ ανανεωμζνεσ BetaVersions). 6

2.4. Διαχείριςη κινδύνου Μζςα από τθ RUP θ διαχείριςθ κινδφνου γίνεται από τθν αναγνϊριςθ των πθγϊν και επιλογϊν αυξθμζνου κινδφνου. Τθν ςταδιακι και ςυνεχϊσ αυξανόμενθ ανάπτυξθ του ζργου. Από τθν ανάπτυξθ πρωτοτφπου και πιλοτικοφ ζργου που καλφπτει τισ πιο ριψοκίνδυνεσ πτυχζσ του ςυνολικοφ ζργου. Κακϊσ επίςθσ τθν ζγκαιρθ δυνατότθτα για ζλεγχο των αποτελεςμάτων με τθ ςωςτι ιεράρχθςθ τθσ ςειράσ ανάπτυξθσ των υπο-ζργων. 2.5. Φάςεισ ανάπτυξησ Οι φάςεισ ανάπτυξθσ είναι θ εξισ: Φάςθ Ειςαγωγισ (Inception Phase) Φάςθ επεξιγθςθσ και επζκταςθσ κλιμάκωςθσ του ζργου (Elaboration Phase) Φάςθ Καταςκευισ (Construction Phase) Φάςθ μετάβαςθσ ςτο περιβάλλον του χριςτθ (Transition Phase) 7

3. Τεχνολογίεσ που χρηςιμοποιήθηκαν για την ανάπτυξη του έργου 3.1. Java Η γλϊςςα προγραμματιςμοφ που χρθςιμοποιικθκε είναι θ java που μασ ζδωςε όλα τα πλεονεκτιματα του αντικειμενοςτραφοφσ προγραμματιςμοφ (Object oriented programming - OO). Η γλϊςςα προγραμματιςμοφ Java είναι ζνα πρόςφατο προϊόν τθσ Sun Microsystems Inc. Ξεκίνθςε ςαν μζροσ ενόσ μεγαλφτερου ςχεδίου που αφοροφςε τθν ανάπτυξθ λογιςμικοφ για καταναλωτικά θλεκτρονικά. Ρρόκειται για μικρζσ, αξιόπιςτεσ, φορθτζσ, πραγματικοφ χρόνου ςυςκευζσ που ςτθν αρχι βαςιηόντουςαν ςτθν C++. Αρκετά προβλιματα όμωσ παρουςιάςτθκαν και θ γλϊςςα C++ δεν μπόρεςε να εφαρμοςτεί τελικά. Χρειάςτθκε να αναπτυχκεί μία νζα γλϊςςα: θ Java. Η Java, ςτθν τελικι τθσ μορφι, βρικε περαιτζρω εφαρμογι ςτθν επίλυςθ μερικϊν προβλθμάτων του ςθμερινοφ προγραμματιςμοφ, όπωσ animation, τθν αλλθλεπίδραςθ πραγματικοφ χρόνου (real-time interaction) και τθν εξερεφνθςθ του Web (Web browsing).ασ πάρουμε το WorldWideWeb για παράδειγμα. Οι Web browsers περιορίηονται ςε ότι μπορεί να προςφζρει θ HTML γλϊςςα: ςελίδεσ δυο διαςτάςεων με κείμενο, φωτογραφίεσ ι γραφικά και ςυνδζςμουσ (links). Κάποια μορφι επεκταςιμότθτασ προςζφερε θ JavaScript από τθν Netscape Corporation, αλλά οι ςελίδεσ παραμζνουν βαρετζσ, ςτατικζσ και χαηζσ ςε περιεχόμενο. Οι Web browsers δεν διακζτουν ακόμα τθν ιδιότθτα τθσ αλλθλεπίδραςθσ πραγματικοφ χρόνου. Χρθςιμοποιϊντασ τθν Java γλϊςςα, θ Sun καταςκεφαςε τον νζο WorldWideWeb browser, τον HotJava. Ρλζον, θ ςχζςθ μεταξφ server και client αλλάηει. Ο νζοσ browser εκμεταλλεφεται τθν υπολογιςτικι δφναμθ του client και αντί να κατεβάηει απλζσ ςτατικζσ ςελίδεσ κειμζνου και εικόνων, ο HotJava κατεβάηει μικρά προγράμματα ςε Java που τρζχουν ςτον client. Ο browser είναι γριγοροσ, ευζλικτοσ, πολφπλευροσ και εφκολα προςαρμόςιμοσ. Από τθν θμζρα τθσ δθμοςιοποίθςθ τθσ τον Μάιο του 1995, θ Java ζχει εξαπλωκεί ςε όλο το Internet. Η Java ζχει κιόλασ λφςει τα περιςςότερα προβλιματα ςτο μοντζλο client/server και ζχει προάγει τθν χριςθ του WorldWideWeb. Ραρ' όλα αυτά, επειδι θ Java ζχει ςχεδιαςτεί για να χρθςιμοποιείται ςε ανοικτά, δικτυωμζνα περιβάλλοντα, ζχει βακιζσ ςυνζπειεσ ςτθν αςφάλεια ενόσ ςυςτιματοσ υπολογιςτϊν. Επίςθσ, θ δυνατότθτα τθσ να διανζμει αυτόματα εκτελζςιμα αρχεία μζςω του Internet επθρεάηει, με τθν ςειρά τθσ, τθν αςφάλεια των δικτφων. Τα εκτελζςιμα αρχεία από το Internet ςυχνά κρφβουν παγίδεσ και δφςκολα μπορεί να είναι κανείσ ςίγουροσ ότι ο κϊδικασ είναι ελεφκεροσ από ιοφσ. Ρριν προχωριςουμε ςε μία ανάλυςθ του μοντζλου αςφαλείασ τθσ Java, είναι απαραίτθτο να μιλιςουμε για τθν ίδια τθν γλϊςςα και να εξθγιςουμε τουσ βαςικοφσ κανόνεσ και αρχζσ που τθν διζπουν. Η Java είναι δφο πράγματα: (α) γλϊςςα προγραμματιςμοφ και (β) πλατφόρμα. 8

3.1.1. Η Java ςαν Γλώςςα Προγραμματιςμού Η Java χαρακτθρίηεται από τα εξισ: απλι, αντικειμενοςτραφισ, ςυμβατι με δικτυακά πρωτόκολλα, ουδζτερθ τθσ υποκείμενθσ αρχιτεκτονικισ, φορθτι αςφαλισ, υψθλισ απόδοςθσ, δυναμικι, ςτακερι, interpreted και multithreaded. Στισ ακόλουκεσ παραγράφουσ κα αναλφςουμε κακεμία από αυτζσ τισ ζννοιεσ. Ζνα πλεονζκτθμα τθσ Java που οφείλεται ςτθν απλότθτα τθσ είναι ότι το μζγεκοσ των απαραίτθτων εργαλείων. Ο Java interpreter και οι βαςικζσ βιβλιοκικεσ είναι μικρζσ και ο κϊδικάσ τθσ Java είναι τόςο περιοριςμζνοσ ςε μζγεκοσ που μπορεί άνετα να τρζξει ςε οποιαδιποτε μικρι μθχανι και να κατζβει από το δίκτυο. Αντικειμενοςτραφισ Λζγοντασ ότι μία γλϊςςα προγραμματιςμοφ είναι αντικειμενοςτραφισ, εννοοφμε θ τεχνικι ςχεδιαςμοφ ενόσ προγράμματοσ ςυγκεντρϊνεται ςε αντικείμενα. Ζνα αντικείμενο είναι ο ςυνδυαςμόσ δεδομζνων, διαδικαςιϊν και λειτουργιϊν με βαςικι ιδιότθτα τθν απόκρυψθ του ςυνδυαςμοφ αυτοφ. Το κάκε αντικείμενο, δθλαδι, αντιμετωπίηεται ςαν ζνα "μαφρο κουτί". Τα αντικείμενα δεν είναι ανεξάρτθτα μεταξφ τουσ, αλλά βρίςκονται ςε ςχζςθ αλλθλεξάρτθςθσ με τα υπόλοιπα. Υπάρχει θ ζννοια τθσ κλθρονομικότθτασ μεταξφ των αντικειμζνων, δθλαδι ζνα αντικείμενο μπορεί να κλθρονομιςει δεδομζνα από άλλα αντικείμενα. Οι γλϊςςεσ αντικειμενοςτραφι προγραμματιςμοφ είναι γλϊςςεσ υψθλοφ επιπζδου, αφαιρετικζσ, αποτελεςματικζσ, γριγορεσ και χρθςιμοποιοφνται για τθν δθμιουργία μεγάλων και ςθμαντικϊν εφαρμογϊν. Οι αντικειμενοςτραφισ ευκολίεσ τθσ Java είναι ίδιεσ με αυτζσ τθσ C++, με επεκτάςεισ από τθν ObjectineC. υμβατι με Δίκτυα Η Java ζχει μια μεγάλθ βιβλιοκικθ από ρουτίνεσ για τθν επιτυχθμζνθ ςυνεργαςία με τα πρωτόκολλα HTTP και FTP. Τα προγράμματα ςε Java μποροφν να ζχουν πρόςβαςθ μζςω δικτφου ςε αντικείμενα, με τθν ίδια άνεςθ που ζνασ χριςτθσ προςπελάηει ζνα τοπικό ςφςτθμα αρχείων. τακερι Η Java προορίηεται για τθν ςφνταξθ προγραμμάτων που κα είναι αξιόπιςτα από όλεσ τισ πλευρζσ. Δίνεται ζμφαςθ ςτον από νωρίσ ζλεγχο για πικανά προβλιματα και ςτον ζλεγχο ςε πραγματικό χρόνο και ςτθν εξάλειψθ καταςτάςεων που προκαλοφν λάκθ. Η Java ζχει ζνα μοντζλο δεικτϊν που εξαφανίηει τθν πικανότθτα τθσ επαναχρθςιμοποίθςθσ τθσ μνιμθσ και τθν καταςτροφι των δεδομζνων. Αντί για αρικμθτικοφσ δείκτεσ (pointer arithmetic), θ Java ζχει πραγματικοφσ πίνακεσ (true arrays). Οι προγραμματιςτζσ τθσ Java δεν ζχουν να φοβθκοφν τθν ακοφςια (ι μθ) τροποποίθςθ τθσ μνιμθσ, γιατί δεν υπάρχουν δείκτεσ (pointers). Εξάλλου, τα προγράμματα ςε Java δεν μποροφν να αποκοτιςουν μθ εγκεκριμζνθ πρόςβαςθ ςτθν μνιμθ. 9

Αςφαλισ Η Java προορίηεται για χριςθ ςε ανοικτά, δικτυωμζνα περιβάλλοντα. Γι' αυτό το λόγο, ιδιαίτερθ προςοχι ζχει δοκεί ςτθν αςφάλεια που παρζχει θ γλϊςςα. Η Java επιτρζπει τθν καταςκευι προγραμμάτων ελεφκερων από ιοφσ και θ τροποποίθςθ τουσ είναι αδφνατθ. Οι τεχνικζσ πιςτοποίθςθσ ταυτότθτασ βαςίηονται ςτθν αςφμμετρθ κρυπτογραφία. Υπάρχει μεγάλθ ςχζςθ μεταξφ του τρόπου διαχείριςθσ τθσ μνιμθσ και τθσ παρεχόμενθσ αςφάλειασ. Αλλαγζσ ςτθν ςθμαςιολογία των δεικτϊν τθσ μνιμθσ κάνουν αδφνατθ τθν μθ ζγκυρθ πρόςβαςθ ςτα δεδομζνα τθσ μνιμθσ ι τθσ πρόςβαςθσ των δεδομζνων των αντικειμζνων. Με αυτόν τον τρόπο καταπολεμοφνται οι περιςςότεροι ιοί. Η Java ζχει ςχεδιαςτεί για να υποςτθρίηει δικτυακζσ εφαρμογζσ. Ζνα δίκτυο, όμωσ, αποτελείται από ποικιλία διαφορετικϊν ςυςτθμάτων, με διαφορετικζσ CPU και λειτουργικά ςυςτιματα. Για να μποροφν οι Java εφαρμογζσ να εκτελοφνται παντοφ ςτο δίκτυο, το πρόγραμμα Java πρζπει να περάςει από δφο διαδικαςίεσ ϊςτε να καταλιξει ςε εκτελζςιμθ μορφι. Ρρϊτα ο μεταγλωττιςτισ, μετατρζπει τον πθγαίο κϊδικα του προγράμματοσ ςε μία ενδιάμεςθ γλϊςςα που καλείται Javabytecodes. Τα Javabytecodes είναι ανεξάρτθτα τθσ πλατφόρμασ και με χριςθ του ερμθνευτι (interpreter) κάκε bytecode εντολι μετατρζπεται ςε κατάλλθλθ δυαδικι μορφι για να τρζξει ςτον εκάςτοτε υπολογιςτι. Η μεταγλϊττιςθ (compilation) ςυμβαίνει μόνο μια φορά για κάκε Java πρόγραμμα, θ ερμθνεία (interpretation) γίνεται κάκε φορά που το πρόγραμμα εκτελείται. Το παρακάτω ςχιμα επιδεικνφει πωσ λειτουργεί αυτι θ φιλοςοφία. Τα Javabytecodes μποροφμε να τα φανταςτοφμε ςαν τθν γλϊςςα μθχανισ για τθν Java Virtual Machine (JVM). Κάκε Java ερμθνευτισ (π.χ. ζνασ Web browser που μπορεί να τρζχει applets) είναι μια λογιςμικι εφαρμογι του τθσ Java Virtual Machine. Η JVM αναλαμβάνει να μετατρζψει τα bytecodes ςε κατάλλθλθ εκτελζςιμθ μορφι, ανάλογα με το υποκείμενο software και hardware. Η τεχνικι που περιγράφθκε παραπάνω καλείται "write once, run anywhere". Το Java πρόγραμμα μεταγλωττίηεται μία φορά ςε Javabytecodes με τον μεταγλωττιςτι τθσ Java. Ζπειτα, τα bytecodes μποροφν να τρζξουν ςε οποιαδιποτε μθχανι που ζχει μία εφαρμοςμζνθ JVM (ο ερμθνευτισ). Φορθτι Το γεγονόσ ότι είναι ανεξάρτθτθ τθσ υποκείμενθσ πλατφόρμασ αποτελεί μεγάλο μζροσ του ότι είναι φορθτι, άλλα υπάρχουν και άλλα ςθμεία που χαρακτθρίηουν τθν φορθτότθτα τθσ. Δεν υπάρχουν κακόλου χαρακτθριςτικά που εξαρτοφνται από τθν CPU του υπολογιςτι. Ζτςι, τα μεγζκθ των πρωταρχικϊν τφπων δεδομζνων είναι κακοριςμζνα και θ ςυμπεριφορά τουσ είναι παντοφ θ ίδια. Για παράδειγμα, "int" ςθμαίνει πάντα ζναν 32 bit ακζραιο και "float" πάντα αντιπροςωπεφει ζναν 32 bit floating αρικμό. Interpreted Τα Javabytecodes μεταφράηονται ςε πραγματικό χρόνο ςε εντολζσ μθχανισ που εξαρτϊνται από τθν εκάςτοτε πλατφόρμα, και δεν αποκθκεφονται πουκενά. Η διαδικαςία είναι γριγορθ και πιο αποτελεςματικι. Μαηί με τα bytecodes μεταφζρονται πλθροφορίεσ που μποροφν να χρθςιμοποιθκοφν κατά τθν εκτζλεςθ και παρζχουν τθν βάςθ για τουσ ελζγχουσ 10

που πραγματοποιεί ο ςυνδετισ (linker). Επίςθσ τα προγράμματα γίνονται πιο επιδεκτικά ςε debugging διαδικαςίεσ. Τψθλισ Απόδοςθσ Η διαδικαςία παραγωγισ των εντολϊν μθχανισ είναι απλι και γριγορθ. Ο κϊδικασ που προκφπτει είναι αποτελεςματικόσ. Ο μεταγλωττιςτισ από τθν μεριά του εφαρμόηει αυτόματθ κατανομι των καταχωρθτϊν (automatic register allocation) όταν παράγει τα bytecodes. Η τελικι μορφι του κϊδικα (εκτελζςιμθ δυαδικι μορφι) είναι μικρι ςε μζγεκοσ και ταχφτατθ ςτθν εκτζλεςθ. Multithreaded Τα προγράμματα ςε Java ζχουν τθν δυνατότθτα να αντιμετωπίηουν πολλζσ καταςτάςεισ διαδικαςίεσ ταυτόχρονα. Τα πλεονεκτιματα του multithreading είναι θ καλφτερθ πραγματικοφ χρόνου ςυμπεριφορά και θ καλφτερθ αλλθλεπιδραςτικι ανταπόκριςθ. Δυναμικι Η Java είναι δυναμικι γλϊςςα Ζχει αναπτυχκεί για να προςαρμοςτεί ςε ζνα εξελιςςόμενο περιβάλλον. Οι βιβλιοκικεσ εργαλείων αναπτφςςονται ελεφκερα με τθν πρόςκεςθ νζων μεκόδων και μεταβλθτϊν, χωρίσ να επθρεάηονται οι ιδθ υπάρχουςεσ εφαρμογζσ. 11

3.1.2. Η Java Πλατφόρμα Ρλατφόρμα είναι το hardware ι software περιβάλλον όπου τρζχει ζνα πρόγραμμα. Η Java πλατφόρμα διαφζρει από τισ άλλεσ πλατφόρμεσ, γιατί είναι μία software-only πλατφόρμα που τρζχει πάνω από άλλεσ hardware πλατφόρμεσ. Οι υπόλοιπεσ πλατφόρμεσ περιγράφονται ςαν ςυνδυαςμόσ hardware και software.η Java πλατφόρμα ζχει δφο ςτοιχεία: τθν Java Virtual Machine (JVM) και το Java Application Programming Interface (JavaAPI).Java Virtual Machine (JVM): Η Java παρζχει τθν δυνατότθτα "write once, run everywhere" μζςω τθσ JVM. Η JVM εφαρμόηεται πάνω από το λειτουργικό ςφςτθμα τθσ μθχανισ και τα προγράμματα ςε Java τρζχουν πάνω από τθν virtual machine. Σκοπόσ τθσ JVM είναι θ απομόνωςθ του προγράμματοσ από τισ διαφορζσ μεταξφ των υποκείμενων λειτουργικϊν ςυςτθμάτων και CPUs. Η JVM ιταν αρχικά διακζςιμθ ςε Web browsers και αυτιν τθν ςτιγμι υπάρχουν εκδόςεισ για τα περιςςότερα λειτουργικά ςυςτιματα, όπωσ Windows 3.1/95/98/NT, MacOS και OS/2 Warp. Εικόνα 1 Java Virual Machine JavaApplication Programming Interface (JavaAPI): Είναι μια ςυλλογι από ζτοιμα λογιςμικά εργαλεία που προςφζρουν πολλζσ χριςιμεσ δυνατότθτεσ (π.χ. Graphical User Interface GUI). ΤοJava API είναι ομαδοποιθμζνο ςε βιβλιοκικεσ ςυςχετιηόμενων εργαλείων. Τα προγράμματα ςε Java, λόγω τθσ ςυμβατότθτασ τουσ με όλα είδθ υπολογιςτϊν, μπορεί να είναι λίγο πιο αργά ςε εκτζλεςθ από ότι τα προγράμματα ςε τοπικι γλϊςςα μθχανισ. Η χριςθ, όμωσ, just-in-time-compilers εξαλείφει και αυτό το πρόβλθμα. 12

3.2. Application framework Το framework που χρθςιμοποιιςαμε είναι το vaadin, που είναι ζνα framework για java, είναι ανοικτοφ κϊδικα και είναι πολφ διαδεδομζνο για web εφαρμογζσ διότι περιλαμβάνει όλα τα απαραίτθτα ςτοιχεία για ανάπτυξθ τζτοιων εφαρμογϊν. Μια από τισ βαςικζσ λειτουργίεσ του Vaadin είναι θ δυνατότθτα να κάνει χριςθ τθσ πλατφόρμασ Java EE ωσ γλϊςςασ προγραμματιςμοφ,ενϊ δθμιουργεί περιεχόμενο για το web. Το ςυγκεκριμζνο framework χαρακτθρίηεται από τθν ςυνεργαςία προγραμματιςμοφ event-driven και των widgets, πράγμα που επιτρζπει ζνα μοντζλο προγραμματιςμοφ που είναι πιο κοντά ςτο γραφικό περιβάλλον χριςτθ και ςτθν ανάπτυξθ λογιςμικοφ, παρά ςτον παραδοςιακό τρόπο τθσ HTML και javascript. Πλα τα παραπάνω αποτζλεςαν για εμάσ πλεονεκτιματα και για αυτοφσ τουσ λόγουσ το επιλζξαμε. 3.3. JPA Το java persistence API, μερικζσ φορζσ αναφζρεται και ωσ JPA είναι ζνα framework προγραμματιςμοφ ςε γλϊςςα java που ζχει ςκοπό να διαχειρίηεται τα ςχεςιακά δεδομζνα ςε εφαρμογζσ που κάνουν χριςθ Java platform standard και enterprise edition.σε αυτό το πλαίςιο το persistence καλφπτει τρία πράγματα :Το ίδιο το API που κακορίηεται μζςα ςτο πακζτο javax.persistence, τθν Java persistence γλϊςςα επερωτιςεων (Java Persistence Query Language) και τζλοσ τα μεταδιδόμενα που ζχουν να κάνουν με αντικείμενα/ ςχζςεισ. 3.4. Model-View-Controller Το Model/view/controller (MVC ) είναι μια αρχιτεκτονικι λογιςμικοφ θ οποία κεωρείται ζνα αρχιτεκτονικό μοτίβο το οποίο χρθςιμοποιείται ςτθν δθμιουργία λογιςμικοφ και ποιο ςυγκεκριμζνα ςτο software engineering. Το ςυγκεκριμζνο μοτίβο ανεξαρτθτοποιεί το λεγόμενο domain logic δθλαδι τθν λογικι τθσ εφαρμογισ για τον χριςτθ από τθν διεπαφι χριςτθ (το user interface, input και presentation). Αυτι θ αρχιτεκτονικι μασ επιτρζπει ανεξάρτθτο development, ζλεγχο και ςυντιρθςθ για κάκε κομμάτι μιασ εφαρμογισ. Ραρακάτω φαίνεται μια ςχθματικι αναπαράςταςθ του MVC. Η χριςθ του ζχει ωσ αποτζλεςμα να χωρίηονται ςε διαφορετικά κομμάτια όλα αυτά που αφοροφν τθν εφαρμογι (input logic, business logic και διεπαφι χριςτθ), ενϊ παρζχεται μια νοθτι ςφνδεςθ μεταξφ όλων αυτϊν των κομματιϊν. Το μοντζλο είναι μια ςυλλογι από java classes που ςχθματίηον μια εφαρμογι ικανι να αποκθκεφει και να διαχωρίηει δεδομζνα επιλεκτικά. Μια απλι front end class που μπορεί να επικοινωνεί με ζνα user interface πχ ζνα GUI. Το view αντιπροςωπεφεται ςυνικωσ από μια java server page. Ο controller ειςάγει ζνα event από το user interface και με ζναν handler μετατρζπει αυτό το event ςε κατανοιςιμθ μορφι από το μοντζλο. Ραρακάτω φαίνεται μια ςχθματικι αναπαράςταςθ του ΜVC. 13

Εικόνα 2 - Model-View-Controller (MVC) 3.5. Εργαλεία Για τθν υλοποίθςθ τθσ εφαρμογισ χρθςιμοποιικθκε το Netbeans IDE. Το εργαλείο που χρθςιμοποιικθκε για τον ςχεδιαςμό των diagrams τθσ εργαςίασ είναι το UML Visualparadigm ωσ plugin ςτο IDE netbeans για να υπάρχει ςυγχρονιςμόσ του ζργου. Για τθν εργαςία ζγινε χριςθ του SVN ϊςτε να είναι δυνατό το subversioning του project. Για τθν διαχείριςθ τθσ βάςθσ δεδομζνων κάναμε χριςθ του MySQLworkbench. Ο glass fish ιταν θ επιλογι μασ για application server. Συμπεριλαμβάνεται ςτθν πλιρθ ζκδοςθ του NetBeans. 14

4. Επιχειρηςιακό Πλάνο 4.1. Παρουςίαςη Προβλήματοσ Οι ςυνταγζσ των φαρμάκων χορθγοφνται από τουσ γιατροφσ των ταμείων για τθν αποκατάςταςθ τθσ υγείασ των αςφαλιςμζνων και τθν πλιρθ ανάρρωςθ τουσ. Οι αςφαλιςμζνοι εξυπθρετοφνται είτε από γιατροφσ των δθμόςιων νοςοκομείων είτε από ιδιϊτεσ γιατροφσ οι οποίοι είναι ςυμβεβλθμζνοι με τα ανάλογα ταμεία αςφάλιςθσ. Οι ςυνταγζσ εκδίδονται κάτω από προχποκζςεισ που κζτουν οι διοικιςεισ των αςφαλιςτικϊν ιδρυμάτων και οι γιατροί των κζντρων υγείασ. Το κφριο πρόβλθμα το οποίο παρουςιάηεται ςτο ςφςτθμα τθσ ςυνταγογράφθςθσ είναι θ ανεξζλεγκτθ ςυνταγογράφθςθ που ζχει ςαν αποτζλεςμα να βαρφνονται τα Δθμόςια Αςφαλιςτικά Ταμεία με υπζρογκεσ φαρμακευτικζσ δαπάνεσ. Αυτό είναι το βαςικό πρόβλθμα το οποίο απαιτεί άμεςθ λφςθ. Γενικά τα προβλιματα τθσ ςυνταγογράφθςθσ χωρίηονται ςε τρεισ κατθγορίεσ ανάλογα με τθν ςκοπιά που προςεγγίηουμε το ςφςτθμα : Προβλιματα για τον Αςκενι Μεγάλεσ αναμονζσ Ρολλαπλζσ επιςκζψεισ Λάκθ ςτισ ςυνταγζσ Αςαφείσ οδθγίεσ λιψθσ φαρμάκων Προβλιματα για τουσ Ιατροφσ - Φαρμακοποιοφσ Φόρτοσ εργαςίασ Αντιδεοντολογικζσ πρακτικζσ Ριζςεισ από τουσ Αςκενείσ για παράνομθ ςυνταγογράφθςθ Προβλιματα για τουσ Δθμόςιουσ Οργανιςμοφσ Αφξθςθ γραφειοκρατίασ Ζλλειψθ διαφάνειασ Φαινόμενα διαφκοράσ Ζλλειψθ δεδομζνων και αδυναμία εφαρμογισ πολιτικϊν Πλα αυτά δθμιουργοφν κενά τα οποία «αξιοποιοφνται» για παράνομα κζρδθ ςε βάροσ του Δθμοςίου ςυμφζροντοσ. 15

4.2. Λύςη Ιδεατή Κατάςταςη Η λφςθ τθσ Ηλεκτρονικισ Συνταγογράφθςθσ είναι ζνασ από τουσ πιο ςφγχρονουσ τρόπουσ ςυνταγογράφθςθσ φαρμάκων θ οποία εφαρμόηεται από τθν πλειοψθφία των προθγμζνων τεχνολογικά κρατϊν με εξελιγμζνο ςφςτθμα υγείασ. Η εφαρμογι αυτι ζχει ωσ ςτόχο τθν καταχϊρθςθ και εκτζλεςθ θλεκτρονικϊν ςυνταγϊν ωσ πρϊτο επίπεδο διεπαφισ μεταξφ των εμπλεκομζνων χρθςτϊν (αςκενισ - φαρμακοποιόσ - γιατρόσ). Το ζργο αυτό κα περιλάβει τθν ψθφιοποίθςθ όλων των διαδικαςιϊν που αφοροφν ςτθ δθμιουργία, εκτζλεςθ, διαχείριςθ, ζλεγχο, εκκακάριςθ, πλθρωμι και παρακολοφκθςθ ςυνταγϊν φαρμάκων και παραπεμπτικϊν ιατρικϊν πράξεων. Επιπλζον θ εφαρμογι κα ςυμπεριλαμβάνει τισ εξισ λειτουργίεσ. Υλοποίθςθ επιπλζον διαδικαςιϊν όπωσ αυτόματου ελζγχου φαρμάκων (δοςολογίεσ αλλθλεπιδράςεισ φαρμάκων) Καταχϊρθςθ των Ιατρικϊν πράξεων ςε ιατρικι μορφι Χριςθ ςυςτθμάτων για τθν παροχι ςτατιςτικϊν αναλφςεων και αναφορϊν. 4.3. Πλεονεκτήματα τησ Ηλεκτρονικήσ Συνταγογράφηςησ 1. Κεντρικό ςθμείο ελζγχου και διαχείριςθσ. Δεν απαιτείται εγκατάςταςθ λογιςμικοφ από κανζνα ςυμβάλλοντα (ιατρό, φαρμακοποιό, αςφαλιςτικό φορζα). Χριςθ Web εφαρμογισ (διαδικτυακισ εφαρμογισ), απλι διαςφνδεςθ ςτο ςφςτθμα. 2. Ελάχιςτεσ απαιτιςεισ (Απλόσ υπολογιςτισ με ADSL ςφνδεςθ ςτο Internet). 3. Αυτόματθ αναγνϊριςθ τφπου χριςτθ, Ιατρόσ φαρμακοποιόσ, αςφαλιςτικόσ φορζασ, αςκενισ. 4. Απλά και ςυγκεκριμζνα βιματα από τθν ζναρξθ τθσ διαδικαςίασ, μζχρι το τζλοσ τθσ, που είναι θ ζκδοςθ τθσ ςυνταγισ και θ αποςτολι τθσ ςτον φαρμακοποιό και ςτον αρμόδιο αςφαλιςτικό φορζα. 5. Αυτόματθ γνωςτοποίθςθ αλλθλεπίδραςθσ φαρμάκων. 6. Ρρόςβαςθ ςε πλιρεσ ιςτορικό αςκενι, ενθμζρωςθ αρχείου. Διατιρθςθ αρχείου με ςυνοδευτικά «ςκαναριςμζνα» ζγγραφα. 7. Οι αςκενείσ ζχουν ςαφζςτερθ κατάςταςθ τθσ Υγείασ τουσ (εμβολιαςμοί, αλλεργίεσ, πορεία χρόνιων πακιςεων, προλθπτικζσ εξετάςεισ) κ.ο.κ.. 8. Ελαχιςτοποίθςθ χρόνου ζκδοςθσ ςυνταγισ. 9. Άμεςθ λιψθ ζγκυρθσ ςυνταγισ από τον ιατρό και εγκεκριμζνθσ από τον αςφαλιςτικό φορζα με αποτζλεςμα τθν αποφυγι άςκοπων μετακινιςεων του αςκενι και επαναλιψεων τθσ διαδικαςίασ. 16

10. Άμεςθ εκτζλεςθ τθσ ςυνταγισ από τον φαρμακοποιό και χωρίσ κακυςτζρθςθ παραλαβι των φαρμάκων από τον αςκενι. 11. Απαλοιφι ςφαλμάτων εκτζλεςθσ ςυνταγισ π.χ. από δυςανάγνωςτθ ςυνταγι λόγω ιδιόρρυκμου γραφικοφ χαρακτιρα. 12. Ρλιρθσ ζλεγχοσ από αρμόδιουσ δθμόςιουσ φορείσ των ςυνταγϊν που εκδίδονται. 13. Μείωςθ κόςτουσ, ελαχιςτοποίθςθ χειρόγραφου ιςτορικοφ από ιατροφσ και φαρμακοποιοφσ και απλοποίθςθ τθσ ςυνολικισ διαδικαςίασ. 14. Οι περιπτϊςεισ αςκενϊν που αναγκάςτθκαν ςτο παρελκόν να επιςκεφτοφν δυο και τρεισ φορζσ τον ιατρό τουσ για αλλαγι φαρμάκου, λόγω τθσ μθ οικονομικισ κάλυψθσ των φαρμάκων από το αςφαλιςτικό τουσ ταμείο, κα είναι πλζον παρελκόν, εφόςον το ςφςτθμα κα ενθμερϊνει τον ιατρό για το ποια φάρμακα καλφπτονται από το κάκε ταμείο και ποια όχι. 4.4 Συνοπτικά H ανάγκθ για αποτελεςματικζσ υπθρεςίεσ υγείασ οδιγθςε ςτθν δθμιουργία web εφαρμογϊν θλεκτρονικισ ςυνταγογράφθςθσ. Σφμφωνα με τθν διεκνι βιβλιογραφία ςυναντά κανείσ standalone web εφαρμογζσ e-prescribing κακϊσ και ςυςτιματα HER (electronic health record systems) που ζχουν ζνα integrated e-prescribing module. Η δικι μασ εργαςία είναι μια standalone web εφαρμογι που καλφπτει τισ ανάγκεσ τισ θλεκτρονικισ ςυνταγογράφθςθσ και περιλαμβάνει 2 μζρθ. Το πρϊτο μζροσ είναι αυτό του ιατροφ που ζχει τθν δυνατότθτα να ςυνδεκεί ςτο ςφςτθμα και να κάνει αναηιτθςθ αςκενοφσ, να προςπελάςει ςτοιχεία απαραίτθτα για τον ιατρό όπωσ τον φάκελο αςκενοφσ και τζλοσ γράψει μια ςυνταγι για τον αςκενι. Το δεφτερο μζροσ είναι το μζροσ εκτζλεςθσ τθσ ςυνταγισ που γίνετε από τον φαρμακοποιό ο οποίοσ αφοφ ςυνδεκεί ςτο ςφςτθμα κάνει αναηιτθςθ αςκενοφσ και ςτθν ςυνζχεια εκτελεί τθν εντολι που ζχει γράψει ο γιατρόσ για τον ςυγκεκριμζνο αςκενι. 4.5 Παραδοχέσ Τα ςτοιχεία των ςκευαςμάτων, ουςιϊν, αλλθλεπιδράςεων και αςκενειϊν κεωροφμε ότι παρζχονται από τον Εκνικό Οργανιςμό Φαρμάκων ι από το υπουργείο υγείασ. Ζνασ χριςτθσ διαχείριςθσ δεδομζνων μπορεί να κάνει τροποποίθςθ όταν χρειάηεται να γίνει άμεςα μια διόρκωςθ. Τα ςτοιχεία των αςφαλιςμζνων κεωροφμε ότι παρζχονται από το Υπουργείο Εργαςίασ και Κοινωνικισ Αςφάλιςθσ. 17

5. Ανάλυςη απαιτήςεων 5.1. Οριςμόσ του Συςτήματοσ - CATWOE Πελάτεσ - Customers : Αςκενείσ Ιατροί Φαρμακοποιοί Δθμόςιοι Οργανιςμοί Λειτουργοί Actors : Ιατροί Φαρμακοποιοί Μεταςχ/ςμόσ Transformation : Συνταγογράφθςθ Φαρμάκων Κοςμοκεϊρθςθ WorldView: Βελτιςτοποίθςθ Διαδικαςίασ Εξοικονόμθςθ Ρόρων Ιδιοκτθςία Ownership : Αςφαλιςτικοί Οργανιςμοί Περιοριςμοί Περιβάλλοντοσ EnvironmentalConstraints : Δυςκολίεσ μετάβαςθσ ςτον νζο τρόπο Συνταγογράφθςθσ 5.2. Use Cases Για τθν δθμιουργία του ςυςτιματοσ μασ ορίςαμε 18 περιπτϊςεισ χριςθσ χωρίσ αυτό να υποδεικνφει ότι δεν κα μποροφςαν κάποιεσ από αυτζσ να ονομαςτοφν αλλιϊσ θ ακόμα και να αναλυκοφν ςε περιςςότερεσ περιπτϊςεισ. Ξεκινϊντασ από τουσ δράςτεσ διακρίναμε 5 τουσ οποίουσ και κατονομάηουμε παρακάτω και τουσ κεωροφμε απαραίτθτεσ εξωτερικζσ οντότθτεσ για τθν δθμιουργία του project: Πίνακασ 1 - Actors του ςυςτιματοσ Unregister User Register User Doctor Pharmacist Data Entry Person 18

Ρριν αναφερκοφμε ςε ςθμαντικότερεσ περιπτϊςεισ χριςθσ παρακζτουμε τθν λίςτα με όλεσ τισ περιπτϊςεισ χριςθσ και τον κωδικό τουσ. Κωδικόσ Σίτλοσ φντομθ Περιγραφι UC001 Registration Εγγραφι UC002 Login Σφνδεςθ UC003 Edit user profile Τροποποίθςθ προφίλ χριςτθ UC004 SearchPatient Αναηιτθςθ αςκενοφσ (ιατρόσ) UC005 view medical record Ρροβολι του ιςτορικοφ UC006 edit medical record Τροποποίθςθ ιςτορικοφ UC007 view medication record Ρροβολι χοριγθςθσ φαρμάκων UC008 NewPrescription Δθμιουργία νζασ ςυνταγισ UC009 PrescriptionHistory Ρροβολι ιςτορικοφ ςυνταγϊν UC010 Cancel Prescription Ακφρωςθ ςυνταγισ UC011 Manage Medicine Διαχείριςθ ςκευαςμάτων UC012 Manage Substances Διαχείριςθ δραςτικϊν ουςιϊν UC013 searchpatient Αναηιτθςθ αςκενοφσ (φαρμακοποιόσ) UC014 ViewPendingPrescription Ρροβολι ςυνταγϊν ςε εκκρεμότθτα UC015 ExecutePrescription Εκτζλεςθ τθσ ςυνταγισ UC016 partial execution Εκτζλεςθ τθσ ςυνταγισ μερικϊσ UC017 full execution Εκτζλεςθ ολοκλθρωμζνθσ ςυνταγισ UC018 view prescription hystory Ρροβολι εκτελεςκζντων ςυνταγϊν Πίνακασ 2 - Λίςτα όλων των UseCases Για λόγουσ εφκολθσ κατανόθςθσ χωρίςαμε το use case diagram τθσ εργαςίασ ςε use case diagrams ανάλογα με τισ αλλθλεπιδράςεισ κάκε actor ξεχωριςτά χωρίσ να παραλείψουμε τθν αρίκμθςθ κάκε usecase. 19

Εικόνα 3 Use Case Diagram για τον Actor Unregister User Εικόνα 4 Use Case Diagram για τουσ Registered Users 20

Εικόνα 5 Use Case Diagram για τον actor Doctor Εικόνα 6 Use Case Diagram για τον Data Entry Person Εικόνα 7 - Use Case Diagram για τον actor Pharmacist 21

Στα παρακάτω templates τεκμθριϊςαμε τα βαςικά usecases UC004 και UC014 όπωσ αναγράφονται ςτον γενικό πίνακα των περιπτϊςεων χριςθσ. Επίςθσ αναλφςαμε περεταίρω τα usecase diagrams UC008 και UC015. Εικόνα 8 - Κάνοντασ Αναηιτθςθ αςκενοφσ 1. Search patient 1.1 Ρεριγραφι : Εμφανίηει τθν οκόνθ όπου ο γιατρόσ κάνει αναηιτθςθ αςκενοφσ κάνοντασ ειςαγωγι ςτοιχείων όπωσ αρικμό αςφάλιςθσ, όνομα, επίκετο. Επίςθσ ςτθν ιδία οκόνθ υπάρχει και ζνα διαδραςτικό κουμπί viewprescriptionhistory UC009 που αποτελεί εναλλακτικι ροθ. 1.2 Στόχοι χριςτθ : O ςτόχοσ είναι θ εφρεςθ του αςφαλιςμζνου αςκενοφσ ϊςτε να προχωριςει ο γιατρόσ ςτθν διαδικαςία τθσ θλεκτρονικισ ςυνταγογράφθςθσ. 1.3 Δράςτεσ : O δράςτθσ είναι ο γιατρόσ που πρζπει να ζχει γίνει εγγεγραμμζνοσ χριςτθσ για να μπορεί να κάνει login και να ζχει τθν δυνατότθτα να βρει τον αςκενι. 1.4 Γεγονόσ ζναρξθσ : Από τθν ςτιγμι που ο γιατρόσ κα ζχει ςυμπλθρϊςει τα ςτοιχεία και κα πατιςει το κουμπί εφρεςθ αςκενοφσ 1.5 Επικυμθτό αποτζλεςμα : To επικυμθτό αποτζλεςμα είναι να εμφανιςτεί μια νζα οκόνθ που κα αναγράφει τα βαςικά ςτοιχεία του αςκενοφσ και κα εμφανίηει επίςθσ διακρατικά κουμπιά με τθσ περιπτϊςεισ από UC05 ζωσ UC08 που αποτελοφν τθν ςυνζχεια τθσ διαδικαςίασ ανάλογα με τθν λειτουργία τουσ όπωσ αναφζρονται ςτο usecasediagram. Από αυτό το ςθμείο και μετά ο γιατρόσ μπορεί να γράψει μια ςυνταγι 2. Ροι γεγονότων : Ι. O εγγεγραμμζνοσ (χριςτθσ) ςτθν περίπτωςθ μασ ο γιατρόσ κάνει login με username και password. ΙΙ. Εμφανίηεται μια οκόνθ με τα βαςικά ςτοιχεία του αςκενοφσ και 4 διαδραςτικά κουμπιά. 22

2.1 Βαςικι ροι <Βιμα 1>:<Συμπλθρωςθ username και password-ταυτοποίθςθ χριςτθ> <Βιμα 2>:<Eφρεςθ αςκενοφσ με τθν ειςαγωγι των ςτοιχείων και πατιματοσ του κουμπιοφ εφρεςθ αςκενοφσ > <Βιμα 3>:<Εμφάνιςθ τθσ οκόνθσ με τα ςτοιχεία του αςκενοφσ και τα 4 διαδραςτικά πλικτρα> <Βιμα 4>:<O γιατρόσ μπορεί να ζχει πρόςβαςθ ςτθν ςυνζχεια τθσ διαδικαςίασ γράφοντασ μια νζα ςυνταγι, τροποποιϊντασ μια ςυνταγι,βλζποντασ το ιςτορικό αςκενειϊν και φαρμακευτικισ αγωγισ. 2.2 Εναλλακτικζσ ροζσ Από τθν ςτιγμι που ο γιατρόσ κάνει login θ περίπτωςθ εφρεςθ αςκενοφσ του προςφζρει 4 εναλλακτικζσ ροζσ : UC005 : View medication record, UC006 : View medical record, UC007 : create new prescription. Aπο τθν ςτιγμι που ο γιατρόσ κάνει login θ οκόνθ που προκφπτει δεν ζχει μόνο ζνα κουμπί που αντιςτοιχεί ςτθν περίπτωςθ χριςθσ Search patient αλλά προςφζρετε και θ εναλλακτικι ροθ view prescription history. 3. Ειδικζσ απαιτιςεισ : O χριςτθσ πρζπει να είναι γιατρόσ και να είναι εγγεγραμμζνοσ χριςτθσ. 4. Κατάςταςθ ειςόδου προςυνκικεσ (preconditions). Ο χριςτθσ πρζπει να είναι εγγεγραμμζνοσ (registered) ςτο ςφςτθμα και κα πρζπει να ςυμπλθρϊςει username και password (login) για να μπορεί να κάνει εφρεςθ αςκενοφσ Κατάςταςθ εξόδου μεταςυνκικεσ (postconditions) : o χριςτθσ ζχει πρόςβαςθ ςτθν υπόλοιπθ διαδικαςία ςυνταγογράφιςθσ από τθν πλευρά του γιατροφ όπωσ περιγράφεται ςτα επιμζρουσ usecases. Εικόνα 9 Παραλαμβάνοντασ τισ ςυνταγζσ προσ εκτζλεςθ 23

1. Pending prescriptions 1.1 Ρεριγραφι : Εμφανίηει τθν οκόνθ όπου ο φαρμακοποιόσ κάνει αναηιτθςθ για ςυγκεκριμζνο αςκενι που ζχει ψάξει με το usecase UC013 τισ ςυνταγζσ που πρζπει να εκτελεςτοφν. Αφοφ ο φαρμακοποιόσ επιλζξει τισ ςυνταγζσ που κα εκτελζςει προχωρεί ςτθν εκτζλεςθ τθσ ςυνταγισ. 1.2 Στόχοι χριςτθ : Ο ςτόχοσ ςε αυτό το ςτάδιο είναι να γίνουν γνωςτζσ οι ςυνταγζσ προσ εκτζλεςθ για τον ςυγκεκριμζνο αςκενι 1.3 Δράςτεσ : O δράςτθσ είναι ο φαρμακοποιόσ που βλζπει τισ ςυνταγζσ που πρζπει να εκτελεςτοφν. Τισ ςυνταγζσ που πρζπει να εκτελεςτοφν τισ ζχει ςτείλει ο γιατρόσ που αλλθλεπιδρά ωσ δράςτθσ και αυτόσ μζςω του ςυςτιματοσ. 1.4 Γεγονόσ ζναρξθσ : Από τθν ςτιγμι που ο γιατρόσ κα δει ςτθν οκόνθ του τθν λίςτα με τισ ςυνταγζσ προσ εκτζλεςθ για τθν ςυγκεκριμζνο αςκενι. 1.5 Επικυμθτό αποτζλεςμα : To επικυμθτό αποτζλεςμα είναι να εμφανιςτεί μια νζα οκόνθ που κα αναγράφει μια λίςτα με ςυνταγζσ για τον ςυγκεκριμζνο αςκενι 2. Ροι γεγονότων : Ι. O εγγεγραμμζνοσ (χριςτθσ) ςτθν περίπτωςθ μασ ο φαρμακοποιόσ κάνει login με username και password. ΙΙ. Εμφανίηεται μια οκόνθ όπου ο φαρμακοποιόσ μπορεί να πλθκτρολογιςει τα ςτοιχεία του αςκενοφσ για να τον βρει ΙΙΙ. Στθν ςυνζχεια εμφανίηεται μια οκόνθ με τα ςτοιχεία του αςκενοφσ κακϊσ και τθν λίςτα με τισ ςυνταγζσ που ζςτειλε ο γιατρόσ ςτο ςφςτθμα και αφοροφν τον ςυγκεκριμζνο αςκενι. 2.1 Βαςικι ροι <όλα τα βιματα του ςεναρίου από το ερζκιςμα μζχρι τον τελικό ςτόχο> <Βιμα 1>:<Συμπλθρωςθ username και password-ταυτοποίθςθ χριςτθ> <Βιμα 2>:<Eφρεςθ αςκενοφσ με τθν ειςαγωγι των ςτοιχείων και πατιματοσ του κουμπιοφ εφρεςθ αςκενοφσ > <Βιμα 3>:<Εμφάνιςθ τθσ οκόνθσ με τα ςτοιχεία του αςκενοφσ και τθν λιςτα με τισ προσ εκτζλεςθ ςυνταγζσ> <Βιμα 4>:<O φαρμακοποιόσ μπορεί να ζχει πρόςβαςθ ςτθν ςυνζχεια τθσ διαδικαςίασ εκτελϊντασ τισ επιλεγμζνεσ ςυνταγζσ, και πατϊντασ εκτζλεςθ ςυνταγϊν. Στθν ςυνζχεια επιλζγει αν κα εκτελζςει τισ ςυνταγζσ ολοκλθρωτικά θ μερικϊσ. 2.2 Εναλλακτικζσ ροζσ 24

Στθν περίπτωςθ που ο φαρμακοποιόσ δεν κάνει χριςθ τθσ usecase UC013 αλλά τθσ UC018 Viewprescriptionhistory. 3. Ειδικζσ απαιτιςεισ : O χριςτθσ πρζπει να είναι φαρμακοποιόσ και να είναι εγγεγραμμζνοσ χριςτθσ. 4. Κατάςταςθ ειςόδου προςυνκικεσ (preconditions). 1.Ο χριςτθσ πρζπει να είναι εγγεγραμμζνοσ (registered) ςτο ςφςτθμα και κα πρζπει να ςυμπλθρϊςει username και password (login) για να μπορεί να κάνει εφρεςθ αςκενοφσ. 5. Κατάςταςθ εξόδου μεταςυνκικεσ (postconditions) : o χριςτθσ ζχει πρόςβαςθ ςτθν υπόλοιπθ διαδικαςία ςυνταγογράφιςθσ από τθν πλευρά του φαρμακοποιοφ όπωσ περιγράφεται ςτα επιμζρουσ usecases 25

Εικόνα 10 CreateNewPrescritpion Στο ςυγκεκριμζνο usecase κάνουμε χριςθ τθσ ςχζςθσ include για 5 περιπτϊςεισ χριςθσ. Select diagnosis, select medicines, select dosage, select allocation και cancel prescription. Εικόνα 11 Εκτζλεςθ Συνταγισ 26

6. Ανάλυςη και ςχεδίαςη 6.1. Class Diagram Αφοφ επιλζξαμε τισ οντότθτεσ του ςυςτιματοσ μασ δθμιουργιςαμε το class diagram κάνοντασ χριςθ του προγράμματοσ UML paradigm enterprise edition. Ραρακάτω φαίνεται το High level class diagram του ςυςτιματοσ που περιλαμβάνει και τισ πολλαπλότθτεσ. Εικόνα 12 High Level Class Diagram 27

6.2. Activity Diagrams Επιλζξαμε τα Use Cases Execute Prescription καιcreate New Prescription ωσ τα πιο ςθμαντικά του βαςικοφuse Case Diagram και για αυτά δθμιουργιςαμε activity diagram. Εικόνα 13 Activity Diagram Create New Prescription 28

Εικόνα14 Activity Diagram Execute Prescription 29

6.3. Sequence Diagrams Εικόνα 15 Sequence Diagram Create New Prescription Ο γιατρόσ κάνει login ςτο ςφςτθμα και ςτθν ςυνζχεια κάνει αναηιτθςθ αςκενοφσ. Αφοφ βρει τον αςκενι δθμιουργεί μια ςυνταγι και τθν ςτζλνει ςτο ςφςτθμα. 30

Εικόνα 16 SequenceDiagram ExecutePrescription Ο φαρμακοποιόσ κάνει login ςτο ςφςτθμα ςτθν ςυνζχεια κάνει αναηιτθςθ αςκενοφσ και τζλοσ ζχει πρόςβαςθ ςτισ ςυνταγζσ που είναι ςε αναμονι για εκτζλεςθ και τισ εκτελεί. 31

6.4. Σχήμα τησ Βάςησ Δεδομένων Ακολουκεί διαγραμματικά το ςχιμα τθσ βάςθσ δεδομζνων που δθμιουργιςαμε. Οι πίνακεσ τθσ βάςθσ και οι ςυςχετίςεισ μεταξφ τουσ προζκυψαν από το class diagram. Το παρακάτω ςχιμα παράχκθκε με χριςθ του εργαλείου MySQLworkbench από τθν υπάρχουςα βάςθ. Εικόνα 17 Σχιμα τθσ Βάςθσ Δεδομζνων 32

6.5. Πρωτότυπεσ οθόνεσ τησ εφαρμογήσ Σε αρχικό ςτάδιο επεξεργαςίασ δθμιουργιςαμε πρωτότυπεσ οκόνεσ για τθν εφαρμογι μασ. Εικόνα 18 Αναηιτθςθ αςκενοφσ με βάςθ το ΑΜΚΑ Εικόνα 19 Εμφάνιςθ Στοιχείων Αςκενοφσ Εικόνα 20 Εμφάνιςθ Ιςτορικοφ Χορθγθκζντων Φαρμάκων 33

Εικόνα 21 Προβολι όλων των ςυνταγών του γιατροφ και εκκρεμών ςυνταγών φαρμακοποιοφ Εικόνα 22 Οκόνθ Συνταγισ 34

6.6. Αρχιτεκτονική Στθν εφαρμογι χρθςιμοποιιςαμε το αρχιτεκτονικό μοτίβο Model-View-Controller (ςτο εξισ MVC), όπωσ ςυνοψίηεται ςτον παρακάτω πίνακα. MVC VIEW CONTROLLER MODEL Τεχνολογία Vaadin Vaadin PlainJava JPA - EclipseLink JPA - EclipseLink Κατθγοριοποί θςθ UserInterface Data binding Business logic Persistence Persistence Ρεριγραφι των κλάςεων ςε κάκε κατθγορία. UIViews: Ρεριζχουν layouts, tables, panels, buttons, labels και γενικά αφοροφν πωσ κα εμφανίηετε θ πλθροφορία.. UIControllers: Αφοροφν αποκλειςτικά το data binding με τα components του view. Ραίρνουν δεδομζνα από το BL και το persistence και τα μεταφζρουν ςτο view BLControllers: Ρεριζχουν τουσ αλγορίκμουσ και τισ διαδικαςίεσ που είναι ανεξάρτθτεσ από τθν εμφάνιςθ. JPAControllers: Διαχειρίηονται τισ CRUD λειτουργίεσ. Entities: Τα αντικείμενα, αντιςτοιχοφν ζνα προσ ζνα πίνακα τθσ βάςθσ με το ίδιο όνομα. Πίνακασ 3 MVC Γενικό Persistence Application Entities Controllers ep ep.persistence.entities.<entityname> ep.persistence.controllers.<entityname>jpacontroller ep.app.application UI View Controller ep.mxxx.ui.views.mxxxview ep.mxxx.ui.controllers.mxxxcontroller Businesslogic ep.mxxx.bl.blxxxcontroller Πίνακασ 4 Η δομι των java πακζτων 35

6.7. Αςφάλεια Οι απαιτιςεισ αςφαλείασ αναφορικά με δικαιϊματα εκτζλεςθσ εφαρμογϊν και πρόςβαςθσ ςε δεδομζνα κατά τθν εκτζλεςθ τθσ εφαρμογισ. 1.1. Unregistered Users may register 2.1 Registered users may login 2.2 Registered users may Edit profile 3.1 Registered users Doctors may View patient info 3.2 Registered users Doctors may View medical records 3.3 Registered users Doctors may View medication records 3.4 Registered users Doctors may Edit medical record 3.5 Registered users Doctors may Create new prescription 3.6 Registered users Doctors may View prescriptions 4.1 Data entry person may View, Create and Edit medicine 4.2 Data entry person may View, Create and Edit substances 5.1 Registered users Pharmacists may View patient info 5.2 Registered users Pharmacists may View pending prescriptions 5.3 Registered users Pharmacists may execute a prescription Πίνακασ 5 Αςφάλεια Συςτιματοσ 7. Υλοποίηςη Ο κϊδικασ τθσ εφαρμογισ μαηί με τισ απαραίτθτεσ βιβλιοκικεσ ςυμπεριλαμβάνεται ςτο ςυνοδευτικό cd. 36

8. Εγχειρίδιο Χρήςτη 8.1. Κεντρική Σελίδα Η κεντρικι ςελίδα είναι θ ςελίδα τθν οποία βλζπει οποιοςδιποτε επιςκζπτθσ κατά τθν επίςκεψι του ςτθν θλεκτρονικι εφαρμογι τθσ Ηλεκτρονικισ Συνταγογράφθςθσ. Ανεξάρτθτα από τθν ιδιότθτα του επιςκζπτθ θ κεντρικι ςελίδα τθσ εφαρμογισ είναι θ ίδια για όλουσ τουσ χριςτεσ του ςυςτιματοσ. Για να εγγραφεί κάποιοσ γιατρόσ ι φαρμακοποιόσ ςτο ςφςτθμα κάνει τθν επιλογι «Δθμιουργία Λογαριαςμοφ» θ οποία βρίςκεται ςτον πίνακα «Εγγραφι». Αμζςωσ μετά από αυτιν τθν επιλογι εμφανίηεται ζνα παράκυρο με κενά πεδία ςτα οποία ο χριςτθσ καλείται να ςυμπλθρϊςει τα προςωπικά του ςτοιχεία. 37

Αφοφ ςυμπλθρϊςει τα ςτοιχεία του και επιλζξει «Εγγραφι» ο χριςτθσ ενθμερϊνεται για τθν επιτυχι εγγραφι του ςτο ςφςτθμα τθσ Ηλεκτρονικισ Συνταγογράφθςθσ. Ο χριςτθσ ςτθν ςυνζχεια μπορεί να ςυνδεκεί όποια ςτιγμι επικυμεί ςτο ςφςτθμα τθσ Ηλεκτρονικισ Συνταγογράφθςθσ με ςκοπό τθν δθμιουργία μιασ νζασ ςυνταγισ ι τθν εκτζλεςθ μιασ εκκρεμοφσ. Για τον ςκοπό αυτό πρζπει να ειςάγει τα απαιτοφμενα ςτοιχεία που του ηθτοφνται ςτθν κεντρικι ςελίδα του (το όνομα χριςτθ και τον κωδικό πρόςβαςθσ). Αμζςωσ μόλισ καταχωριςει ςτα απαιτοφμενα πεδία για τθν ςφνδεςι και πατιςει «Σφνδεςθ» το ςφςτθμα κάνει τθν αυκεντικοποίθςθ του χριςτθ και τον ειςάγει ςτο ςφςτθμα ανάλογα με τον ρόλο τον οποίο είναι εγγεγραμμζνοσ. Αν τα ςτοιχεία που ζδωςε είναι λανκαςμζνα εμφανίηεται ζνα μινυμα λάκουσ. 38

Ραρακάτω κα παρουςιάςουμε τισ λειτουργίεσ τισ οποίεσ μπορεί να εκτελζςει κάκε χριςτθσ του ςυςτιματοσ ανάλογα με τθν ιδιότθτά του, είτε είναι Ιατρόσ είτε Φαρμακοποιόσ. 8.2. Ιατρόσ Αν ο ςυνδεδεμζνοσ χριςτθσ είναι ιατρόσ μπορεί να εκτελζςει τισ εξισ λειτουργίεσ: Να επεξεργαςτεί τα προςωπικά του ςτοιχεία Να αναηθτιςει κάποιον αςκενι βάςθ του ΑΜΚΑ του Να δει τα προςωπικά ςτοιχεία ενόσ αςκενι Να δθμιουργιςει μία νζα ςυνταγι Να δει το ιςτορικό των λθφκζντων φαρμάκων ενόσ αςκενι Να δει το ιςτορικό αςκενειϊν ενόσ αςκενι Να αποςυνδεκεί από το ςφςτθμα. Η πρϊτθ οκόνθ θ οποία βλζπει ο αςκενισ κατά τθν είςοδό του ςτο ςφςτθμα είναι ζνασ πίνακασ με το όνομα «Αναηιτθςθ» και ζνα κενό πεδίο ςτο οποίο ηθτείται να γίνει ειςαγωγι του ΑΜΚΑ του Αςκενι. Στθν πάνω δεξιά μεριά τθσ ςελίδασ υπάρχουν δφο ςφνδεςμοι, ζνασ για αποςφνδεςθ από το ςφςτθμα και ζνασ για άνοιγμα ενόσ παρακφρου και επεξεργαςίασ των προςωπικϊν ςτοιχείων του Ιατροφ. Αν επιλζξει «Επεξεργαςία Στοιχείων» ανοίγει ζνα νζο παράκυρο μζςα ςτο οποίο υπάρχουν πεδία με ςυμπλθρωμζνα τα ςτοιχεία του χριςτθ. Εκεί ο χριςτθσ μπορεί να επεξεργαςτεί όποιο ςτοιχείο επικυμεί και να τα αποκθκεφςει. 39

Η αναηιτθςθ ενόσ αςκενι γίνεται με βάςθ το ΑΜΚΑ του. Αφοφ πλθκτρολογιςει το ΑΜΚΑ και πατιςει «Αναηιτθςθ» εμφανίηονται τα προςωπικά ςτοιχεία του αςκενι διαφορετικά ζνα μινυμα λάκουσ πλθροφορεί τον γιατρό για το λάκοσ του. Μινυμα για τθν λανκαςμζνθ ειςαγωγι ΑΜΚΑ 1 Στθν περίπτωςθ κατά τθν οποία το ΑΜΚΑ είναι ζγκυρο κα εμφανιςτοφν τα προςωπικά ςτοιχεία του αςκενι μαηί με τρία κουμπιά ακριβϊσ από κάτω τουσ. Ο γιατρόσ ζχει τισ επιλογζσ να δει τον ιατρικό φάκελο του αςκενι, να δει το ιςτορικό των φαρμάκων των οποίων του ζχουν χορθγθκεί κακϊσ και να δθμιουργιςει μια νζα ςυνταγι για τον αςκενι. Ακόμα μπορεί να μθν επιλζξει καμία από τισ 3 επιλογζσ και απλά να κάνει αναηιτθςθ ενόσ νζου αςκενι. Επιλζγοντασ «Νζα Συνταγι» εμφανίηεται μια νζα ςελίδα με κενά πεδία τα οποία απαιτείται να ςυμπλθρωκοφν για να μπορζςει να δθμιουργθκεί μια νζα ςυνταγι. 40

Στο πρϊτο κουτί εμφανίηονται τα ςτοιχεία του γιατροφ ο οποίοσ είναι ςυνδεδεμζνοσ και ο οποίοσ κα ςυνταγογραφιςει τα φάρμακα του αςκενοφσ. Στον δεφτερο πίνακα εμφανίηονται τα ςτοιχεία του αςκενοφσ για τον οποίον προορίηεται θ ςυνταγι. Στον πίνακα «Στοιχεία Συνταγισ» Ο γιατρόσ καλείται να ςυμπλθρϊςει τθν θμερομθνία ζναρξθσ τθσ ςυνταγισ, τθν θμερομθνία λιξθσ τθσ, αν θ πάκθςθ είναι χρόνια κακϊσ και να επιλζξει τθν διάγνωςθ τθν οποία ζχει κάνει για τον αςκενι. Στο πεδίο «Σχόλια» μπορεί να ειςάγει ζνα ελεφκερο κείμενο για τθν διάγνωςθ τθν οποία ζκανε. 41

Στο τελευταίο κουτί «Θεραπεία» ο γιατρόσ επιλζγει τα φάρμακα τα οποία επικυμεί να χορθγιςει ςτον αςκενι. Για τθν προςκικθ ενόσ νζου φαρμάκου ςτθν ςυνταγι πρζπει να πατιςει το κουμπί κάτω αριςτερά με το ςφμβολο * + +. Αμζςωσ προςτίκεται μια γραμμι μζςα ςτον πίνακα με κενά πεδία. Ο γιατρόσ καλείται ςτθν ςυνζχεια να ςυμπλθρϊςει όλα τα πεδία για κάκε φάρμακο που προςκζτει ςτθν ςυνταγι. 42

Η αναηιτθςθ του φαρμάκου μπορεί να γίνει είτε κατά ονομαςία φαρμάκου είτε κατά δραςτικι ουςία. Η επιλογι τθσ ποςότθτασ είναι ελεφκερο πεδίο. Επίςθσ και θ οδόσ χοριγθςθσ είναι ελεφκερο πεδίο. Η επιλογι ςυχνότθτασ λιψθσ του φαρμάκου γίνεται μζςα από drop-down list. Τζλοσ επιλζγεται θ χρονικι περίοδοσ για τθν οποία πρζπει να λθφκεί το φάρμακο. Αν δεν ζχει ςυμπλθρωκεί κάποιο απαιτοφμενο πεδίο θ ςυνταγι δεν μπορεί να υποβλθκεί. Αν όλα ζχουν ςυμπλθρωκεί ςωςτά με το πάτθμα του κουμπιοφ «Υποβολι» θ 43

εφαρμογι επιςτρζφει ςτθν κεντρικι οκόνθ του ςυςτιματοσ και εμφανίηει ζνα μινυμα κάτω δεξιά ςτθν οκόνθ το οποίο ενθμερϊνει τον γιατρό για τθν επιτυχι δθμιουργία τθσ ςυνταγισ. 8.3. Φαρμακοποιόσ Κατά τθν ςφνδεςι του ο φαρμακοποιόσ βρίςκεται ακριβϊσ ςτθν ίδια ςελίδα ςτθν οποία βρίςκεται και ο γιατρόσ μετά τθν ςφνδεςι του. Ραρ όλα αυτά όπωσ κα δοφμε παρακάτω μπορεί να εκτελζςει διαφορετικοφ είδουσ λειτουργίεσ. Ο φαρμακοποιόσ μπορεί με τον ίδιο τρόπο που μπορεί και ο γιατρόσ να επιλζξει τθν επεξεργαςία των προςωπικϊν του ςτοιχείων. Για να εξυπθρετιςει κάποιον αςκενι ο οποίοσ προςιλκε ςτο φαρμακείο του με ςκοπό να παραλάβει τα φάρμακα τθσ ςυνταγισ αρκεί να πλθκτρολογιςει τον αρικμό του ΑΜΚΑ του ςτο πεδίο που αυτό ηθτείται. Αμζςωσ μετά τθν αναηιτθςθ εμφανίηονται τα προςωπικά ςτοιχεία του αςκενι. Ο φαρμακοποιόσ ζχει τθν επιλογι να δει τισ εκκρεμείσ ςυνταγζσ για τον επιλεγμζνο αςκενι. Αφοφ επιλζξει «Ρροβολι Εκκρεμϊν Συνταγϊν» εμφανίηεται ζνασ νζοσ πίνακασ ο οποίοσ περιζχει όλεσ τισ ςυνταγζσ οι οποίεσ εκκρεμοφν για τον αςκενι. Επιλζγει τθν ςυνταγι τθν οποία επικυμεί και πατάει «Ολοκλιρωςθ». 44

Η επόμενθ ςελίδα του εμφανίηει τθν ςυνταγι τθν οποία επζλεξε. 45

Το πρϊτο πεδίο του εμφανίηει τα ςτοιχεία του γιατροφ και το δεφτερο τα ςτοιχεία του αςφαλιςμζνου. Το τρίτο πεδίο εμφανίηει μερικά ςτοιχεία ςχετικά με τθν ςυνταγι και τθν διάγνωςθ τθν οποία ζχει κάνει ο γιατρόσ. Στο τζταρτο και τελευταίο πεδίο εμφανίηονται τα φάρμακα τα οποία ζχει ςυνταγογραφιςει ο γιατρόσ. 46

Αν κάποιο φάρμακο ζχει ιδθ παραδοκεί ςτον αςκενι εμφανίηεται να είναι ιδθ επιλεγμζνο. Για κάκε ζνα φάρμακο που παραδίδει ο φαρμακοποιόσ, επιλζγει τθν ονομαςία του από τον πίνακα. Στο τζλοσ αφοφ ζχει τελειϊςει με τθν παράδοςθ των φαρμάκων επιλζγει «Υποβολι» και θ εφαρμογι επιςτρζφει ςτθν αρχικι ςελίδα εμφανίηοντασ παράλλθλα και ζνα μινυμα επιτυχοφσ ενθμζρωςθσ τθσ ςυνταγισ. 47

9. Διαχείριςη έργου 9.1. Παραδοτέα Τα παραδοτζα είναι είτε διαγράμματα ςε εικόνα είτε κείμενο. Στο ςτάδιο Implementation είναι κομμάτια κϊδικα. Πλα τα παραδοτζα ςυμπεριλαμβάνονται ςτισ παραπάνω ενότθτεσ. 9.1.1. Business Modeling 1. Οριςμόσ εργαλείων και τεχνολογιϊν 2. Μελζτθ προβλιματοσ 3. Καταγραφι παραδοχϊν 9.1.2. Requirements 4. High level use-case diagram 5. Επιλογι βαςικϊν και πολφπλοκων use-cases. 6. Ανάλυςθ ςε διάγραμμα τα πιο πολφπλοκα use-cases. 7. Τεκμθρίωςθ βαςικϊν use-cases. 9.1.3. Analysis and Design 8. High level class diagram 9. Διάγραμμα δραςτθριοτιτων (activity) βαςικϊν use-cases. 10. Διάγραμμα ακολουκίασ (sequence) βαςικϊν use-cases. 11. Διάγραμμα επικοινωνίασ (communication) βαςικϊν use-cases. 12. Δθμιουργία ςχιματοσ βάςθσ. 13. Δθμιουργία πρότυπων οκονϊν. 14. Καταγραφι αρχιτεκτονικισ. 15. Καταγραφι security. 9.1.4. Implementation 16. Main application 17. Persistence 18. Template + template css 19. Application css 20. Modules 48

9.2. Χρονοδιάγραμμα Δραςτθρίοτθτα Inception Elaboration Construction Transition 27/12-5/1 6/1-8/1 9/1-11/1 12/1-15/1 16/1-18/1 19/1-22/1 23/1-25/1 Business Modeling Οριςμόσ εργαλείων και τεχνολογιϊν Μελζτθ προβλιματοσ Καταγραφι παραδοχϊν Requirements High level usecase diagram Επιλογι βαςικϊν και πολφπλοκων use-cases. Ανάλυςθ ςε διάγραμμα τα πιο πολφπλοκα use-cases. Τεκμθρίωςθ βαςικϊν usecases. Analysis and Design High level class diagram Διάγραμματα δραςτθριοτιτων. Διάγραμματα ακολουκίασ. Διάγραμματα επικοινωνίασ. Δθμιουργία ςχιματοσ βάςθσ. Δθμιουργία πρότυπων οκονϊν. Καταγραφι αρχιτεκτονικισ. Καταγραφι security. 26/1-8/2 49

Implementation Main application Persistence Template + template css Application css Modules Test Τεςτ ςε ολοκλθρωμζνεσ λειτουργίεσ Ολοκλθρωμζνοσ ζλεγχοσ. Πίνακασ 5 Χρονοδιάγραμμα 50

10. Βιβλιογραφία 10.1. Διαδίκτυο www.thecimm.org - Α clinician s guide to E-rx. http://en.wikipedia.org/wiki/object-oriented_analysis_and_design https://vaadin.com/book http://en.wikipedia.org/wiki/model-view-controller http://en.wikipedia.org/wiki/electronic_prescribing http://en.wikipedia.org/wiki/glassfish 10.2. Βιβλία Systems Analysis and Design with UML Version 2.0: An Object-Oriented Approach, 2nd Edition By: Dennis, Alan; Wixom, Barbara Haley; Tegarden, David 2005 John Wiley & Sons. Ειςαγωγι ςτθν java, Γεϊργιοσ Λιακζασ Εκδόςεισ κλειδάρικμοσ 2001. Σχεδιαςμόσ βάςεων δεδομζνων, Γεϊργιοσ Βαςιλακόπουλοσ 2009. 51