ΠάρηςΓ Δημοσ. 18 Μαΐου 2010 Δημοσ. 18 Μαΐου 2010 Η εφαρμογή αυτη ειναι στα πλαίσια εργασίας σχολής... Τό συστημα διαγνώσεων στη φωτογραφία δινει δυνατότητα στο χρήστη να γραφει συνθήκες για να κρίνουν αν πάσχει ο ασθενής απο μια ασθένεια βάση κάποιων εξετάσεων που κάνει. Χρησιμοποιει παραμετροποιημένη μηχανή javascript για αυτοματη αναγνώριση μεταβλητών που εξαρτάται η διαγνωση.. Παρέχονται εντολές οπως aboveNormal() .value .belowNormal() και αλλες... Οι οποιες ελεγχνουν αν ειναι πανω η κατω απο το όριο οι τιμές αλλά το .value δίνει την καθαρη τιμή της εξέτασης(αριθμητικη,true/false,κειμενο ,και αλλα πολλα) Υπάρχουν και αλλες μεταβλητες κτλ.... Το πρόβλημα ειναι οτι θεωρήθηκε πολυ δυσκολο να γραφεις συνθήκες έτσι ! παρόλο που οι συναρτήσεις aboveNormal() και αλλες πολλες εκτελουν πολύ κώδικα γιατι λαμβάνουν υπόψην τα χαρακτηριστικά του ασθενή (φυλο ,ηλικία,καπνιστής,αλκοολ,περίοδος,εκγυμοσύνη ,κ.α.) Το ζητουμενο ειναι να φτιαχτει κάποιο user interface για να μπαίνουν αυτοματα οι συνθήκες... Εγω το θεωρώ δύσκολο να γινει κατι τέτοιο. και αν γινει θα εχει περιορισμένη λειτουργία .. Εχει κανεις καμια ιδεα για το πως μπορουν να γραφτουν τετοιες συνθηκες χωρις να χρειαστεί να γραψει κωδικα ο χρήστης; Απλα με κουμπάκια κτλ... Ενταξει οι εξετασεις ειναι καμια 600ρια αρα αναγκαστικα πρεπει να γραφει ονομα καπως.. Αν υπηχε ενα τεχτbox για το ονομα διπλα επιλογη συναρτησης κτλ το θεμα ειναι μετα πως θα ενωνονταν γραφικα όλα αυτα με Η , ΚΑΙ , κτλ και παρενθέσεις; Εχει κανεις καμια ιδέα;
Seldimi Δημοσ. 18 Μαΐου 2010 Δημοσ. 18 Μαΐου 2010 Θα μπορούσες να δώσεις ένα παράδειγμα πχ το το T31.belowNormal() ως πιο user friendly? (να καταλαβαίνουμε δλδ τι πρέπει να πληρκτρολογήσει/διαβάζει ο χρήστης από αυτό; )
ΠάρηςΓ Δημοσ. 18 Μαΐου 2010 Μέλος Δημοσ. 18 Μαΐου 2010 Εννοεί να μην χρειάζεται ο χρήστης να γράψει τέτοια πραγματα. Να γραφονται με πιο ευκολο τροπο δλδ... Με κουμπια κτλ ... ξέρω γω... Οτι δηλαδη ενας γιατρός που θέλει να βαλει μια δικη του διαγνωση πχ.Διαγνωση χολέρας να μη κάθετε να γράψει T31.belowNormal() αλλα να μπαίνει η συνθήκη με άλλο τροπο.Δηλαδη με dropdowns ισως κουμπια κτλ ... η κοστουμ ui components... Ετσι ζητήθηκε Βέβαια στη παρουσίαση δεν κοιταξε ούτε μια γραμμή κώδικα Αλλα προσωπικα πιστευω πως αυτα τα πραγματα μονο έτσι μπορου να γραφτούν πιο εύκολα.. ---------- Προσθήκη στις 16:33 ---------- Προηγούμενο μήνυμα στις 16:31 ---------- Σκεφτομαι οτι ισως καποια δενδρικη αναπαρασταση ισως εκανε κάτι.. αλλα και πάλι περιορίζει!
Seldimi Δημοσ. 18 Μαΐου 2010 Δημοσ. 18 Μαΐου 2010 Ναι κατάλαβα τι θέλει να κάνει αλλα προσπαθώ να καταλαβάω πως θα μεταφράζεται ο κώδιας. Τι εννοώ... να ζητάει πχ από τον χρήστη Δώσε τύπο διάγνωσης: να γράφει ο χρήστης χολέρα και το σύστημα να γράφει T31.aboveNormal() Με λίγα λόγια διάβασε μου μια-δυο γραμμές (τα Τ,Φ13,14) κτλ για να σου απαντήσω πιο ειδικά Πχ... ένας οδηγός είναι όταν σε forum πατας να δώσεις hyperlink Οδηγός: Δώσε σύνδεσμο Χρήστης: http://www.insomnia.gr Οδηγός: Δώσε τίτλο Χρήστης: Insomnia και το σύστημα γράφει [.url=www.insomnia.gr]Insomnia[./url] Θέλω δλδ τις αντιστοιχίες σε λέξεις των T,F κτλ που δείχνεις ως παράδειγμα
Επισκέπτης Δημοσ. 18 Μαΐου 2010 Δημοσ. 18 Μαΐου 2010 λοιπόν, με drag and drop κάθε component θα αναπαριστά και μια ασθένεια(θα έχεις ενα toolbox δηλαδή), χωρισμένο σε κατηγορίες αν θες... θα κωδικοποιήσεις τις καταστάσεις χρωματικά...δηλαδή, το above με κόκκινο πχ και το below με πράσινο...ανάλογα το τι σημαίνει το καθένα... ο χρήστης έχοντας επιλέξει την ασθένεια(και έχοντας κάνει drop=επιλογή) θα μπορεί πατώντας πάνω στο χρώμα να ορίζει και την κατάστασή του... Τα || δεν χρειάζεται να τα εμφανίσεις αλλά θα δώσεις την δυνατότητα γρουπαρισματος των component (προσομοίωση παρενθέσεων) και να ορίσεις την λογική σχέση που τους συνδέει (αν θα ειναι or, and) πάλι μέσα απο το toolbox αυτό σε γενικές γραμμές... πες μου αν ειναι εφικτό για σένα κάτι τέτοιο και την κάνουμε refine ... edit: για να διευκρινίσω... 1. η έκφραση Τ31 && T31.aboveNormal() θα μεταφράζεται σε "component dragged + coloured red" 2. η έκφραση (((Τ31 && T31.aboveNormal()) || ((Τ41 && T41.aboveNormal())) θα μεταφράζεται σε "groups selected + logic relationship set" αλλά αν ισχύει μόνο OR τα πράγματα γίνονται πιο απλά γιατί αγνοείς το δεύτερο ουσιαστικά.. edit 2: όλα τα παραπάνω μπορούν να γίνουν με javascript και μάλιστα με κάποια βιβλιοθήκη που υποστηρίζει drag and drop όπως η jquery
ΠάρηςΓ Δημοσ. 19 Μαΐου 2010 Μέλος Δημοσ. 19 Μαΐου 2010 Οι μεταβλητές Τ41 κτλ ειναι εξετάσεις.. Δηλαδη οταν εξετάζουμε θυροειδη ελεγχουμε Τ3 Τ4 και άλλα... Άν θελει να βάλει ο χρήστης διαγνση για θυροειδή μπορεί να γραψει συνθήκες... Δηλαδη αν Τ3 πάνω απο το όριο και Τ4 πάνω απο το όριο... Η Τ3 κάτω απο το όριο ή Τ4 κάτω απο το όριο.... Το AboveNormal k belowNormal απλά ελεγχουν αυτόματα αν ειναι πάνω η κάτω απο το όριο... Ο κώδικας εκτελείται απο το σερβερ.... ΑΥτα για οσους δεν καταλαβαν τι ηθελα να πω... Νατουραλ είναι εφικτο κάτι τέτοιο , με Jquery που χρησιμοποιώ ηδη πιστεύω πως δε θα είναι μπελάς. Δηλαδη μια λυση ντραγκ κ ντροπ ισως ειναι μια καλη λυση.. Ομως τα components den ειναι ασθένειες! Ειναι εξετάσεις .. Αλλά πέρα απο τα aboveNomral k belowNormal Υπάρχει και το .value που σου δίνει την τιμή.. Δηλαδη σε καποιες διαγνώσεις εχουμε βάλει.. mplampla.value>60 ... Αλλά και πράξεις... ((mplampla.value + mplampla455.value) /6 ) >10 Για αυτο λέω οτι ειναι θέμα! ---------- Προσθήκη στις 15:20 ---------- Προηγούμενο μήνυμα στις 15:18 ---------- Υπόψην οτι οι εξετάσεις ειναι καμια 600 όλες.. Δηλαδη για να τις επιλέξει ο χρήστης ειναι ενα θέμα... Δλδ δε γινεται να φορτωθούν 600 components !!! πως θα βρει μεσα σε αυτα αυτο που θέλει.. χωρια που θα σερνεται
ΠάρηςΓ Δημοσ. 19 Μαΐου 2010 Μέλος Δημοσ. 19 Μαΐου 2010 Οι μεταβλητές Τ41 κτλ ειναι εξετάσεις.. Δηλαδη οταν εξετάζουμε θυροειδη ελεγχουμε Τ3 Τ4 και άλλα... Άν θελει να βάλει ο χρήστης διαγνση για θυροειδή μπορεί να γραψει συνθήκες... Δηλαδη αν Τ3 πάνω απο το όριο και Τ4 πάνω απο το όριο... Η Τ3 κάτω απο το όριο ή Τ4 κάτω απο το όριο.... Το AboveNormal k belowNormal απλά ελεγχουν αυτόματα αν ειναι πάνω η κάτω απο το όριο... Ο κώδικας εκτελείται απο το σερβερ.... ΑΥτα για οσους δεν καταλαβαν τι ηθελα να πω... Νατουραλ είναι εφικτο κάτι τέτοιο , με Jquery που χρησιμοποιώ ηδη πιστεύω πως δε θα είναι μπελάς. Δηλαδη μια λυση ντραγκ κ ντροπ ισως ειναι μια καλη λυση.. Ομως τα components den ειναι ασθένειες! Ειναι εξετάσεις .. Αλλά πέρα απο τα aboveNomral k belowNormal Υπάρχει και το .value που σου δίνει την τιμή.. Δηλαδη σε καποιες διαγνώσεις εχουμε βάλει.. mplampla.value>60 ... Αλλά και πράξεις... ((mplampla.value + mplampla455.value) /6 ) >10 Για αυτο λέω οτι ειναι θέμα! ---------- Προσθήκη στις 15:20 ---------- Προηγούμενο μήνυμα στις 15:18 ---------- Υπόψην οτι οι εξετάσεις ειναι καμια 600 όλες.. Δηλαδη για να τις επιλέξει ο χρήστης ειναι ενα θέμα... Δλδ δε γινεται να φορτωθούν 600 components !!! πως θα βρει μεσα σε αυτα αυτο που θέλει.. χωρια που θα σερνεται
Seldimi Δημοσ. 19 Μαΐου 2010 Δημοσ. 19 Μαΐου 2010 Κάντε καμια ψευδογλώσσα τότε.... είναι και αυτό μια λύση
Seldimi Δημοσ. 19 Μαΐου 2010 Δημοσ. 19 Μαΐου 2010 Κάντε καμια ψευδογλώσσα τότε.... είναι και αυτό μια λύση
ΠάρηςΓ Δημοσ. 19 Μαΐου 2010 Μέλος Δημοσ. 19 Μαΐου 2010 Αυτο σκέφτηκα και εγώ... Αλλά ειναι παλούκι να κάνεις μετατροπη απο ψευδογλώσσα σε javascript πάλι πίσω!!! Γιατι δίνει πολλες δυνατότητες η javascript.. Να κάνω δικο μου παρσερ για γλώσσα και interpeter το θεωρω overkill... Αλλά εχω αδικο οτι αυτα τα πραγματα μονο ετσι γραφονται;
ΠάρηςΓ Δημοσ. 19 Μαΐου 2010 Μέλος Δημοσ. 19 Μαΐου 2010 Αυτο σκέφτηκα και εγώ... Αλλά ειναι παλούκι να κάνεις μετατροπη απο ψευδογλώσσα σε javascript πάλι πίσω!!! Γιατι δίνει πολλες δυνατότητες η javascript.. Να κάνω δικο μου παρσερ για γλώσσα και interpeter το θεωρω overkill... Αλλά εχω αδικο οτι αυτα τα πραγματα μονο ετσι γραφονται;
Seldimi Δημοσ. 19 Μαΐου 2010 Δημοσ. 19 Μαΐου 2010 Εκτός και αν σε εξυπηρετεί να φτιάξεις μια γλώσσα σήμανσης (tag language) Όπως η bbcode... να γράφει πχ [.b]lala[./b] και το κάνει μόνο του <b></b>
Seldimi Δημοσ. 19 Μαΐου 2010 Δημοσ. 19 Μαΐου 2010 Εκτός και αν σε εξυπηρετεί να φτιάξεις μια γλώσσα σήμανσης (tag language) Όπως η bbcode... να γράφει πχ [.b]lala[./b] και το κάνει μόνο του <b></b>
cocoflop Δημοσ. 19 Μαΐου 2010 Δημοσ. 19 Μαΐου 2010 Με πρακτική αντικειμενοστραφούς προγραμματισμού, καλά θα είναι να χρησιμοποιήσεις πιο μοντελοποιημένη μεθοδολογία. Θα ξεχωρίσεις: * Τα δεδομένα * Τον μηχανισμό * Την παρουσίαση Έτσι θα μπορείς να παρουσιάζεις ότι θες στον χρήστη, να καταγράφεις ότι θες ως δεδομένα, και να λειτουργήσει ο μηχανισμός του προγρμάμματος ομαλά. Αν και δεν πολυκατάλαβα τις απαιτήσεις του προγράμματος σου εγώ σου δείχνω ότι αφορά την παραπάνω πρόταση μου. > <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-7"> <title></title> <script type="text/javascript"> var diagnosisArray = new Array(); function T31BelowNormal() { return "κυριλέ..." } function T31AboveNormal() { return "μεγάλο πρόβλημα..."; } function Diagnosis(id, name, code) { this.id = id; this.name = name; this.code = code; } function Patient(id, name) { this.id = id; this.name = name; this.diagnosisArray = new Array(); this.MakeDiagnosis = function() { var text = "Γειά σας είμαι ο " + this.name + " έχω:\r\n"; for (var i = 0; i < this.diagnosisArray.length; i++) { text += " * " + this.diagnosisArray[i].name + " και είναι " + eval(this.diagnosisArray[i].code) + "\r\n"; } return text; } } var diagnosisArray = [ new Diagnosis(1, "Χολέρα", "T31AboveNormal()"), new Diagnosis(2, "Χασμουρίτιδα", "T31BelowNormal()"), new Diagnosis(3, "Διάρροια", "T31BelowNormal()") ]; var patient1 = new Patient(1, "Κύριος Μπαρμπούτσαλος"); var patient2 = new Patient(2, "Bob σφουγγαράκης"); patient1.diagnosisArray.push(diagnosisArray[0]); patient2.diagnosisArray.push(diagnosisArray[1], diagnosisArray[2]); alert(patient1.MakeDiagnosis()); alert(patient2.MakeDiagnosis()); </script> </head> <body> </body> </html> Δες και στο επισυναπτόμενο αρχείο εικόνας τι πρέπει ενδεικτικά να δεις. Ελπίζω να βοήθησα λιγάκι.
cocoflop Δημοσ. 19 Μαΐου 2010 Δημοσ. 19 Μαΐου 2010 Με πρακτική αντικειμενοστραφούς προγραμματισμού, καλά θα είναι να χρησιμοποιήσεις πιο μοντελοποιημένη μεθοδολογία. Θα ξεχωρίσεις: * Τα δεδομένα * Τον μηχανισμό * Την παρουσίαση Έτσι θα μπορείς να παρουσιάζεις ότι θες στον χρήστη, να καταγράφεις ότι θες ως δεδομένα, και να λειτουργήσει ο μηχανισμός του προγρμάμματος ομαλά. Αν και δεν πολυκατάλαβα τις απαιτήσεις του προγράμματος σου εγώ σου δείχνω ότι αφορά την παραπάνω πρόταση μου. > <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-7"> <title></title> <script type="text/javascript"> var diagnosisArray = new Array(); function T31BelowNormal() { return "κυριλέ..." } function T31AboveNormal() { return "μεγάλο πρόβλημα..."; } function Diagnosis(id, name, code) { this.id = id; this.name = name; this.code = code; } function Patient(id, name) { this.id = id; this.name = name; this.diagnosisArray = new Array(); this.MakeDiagnosis = function() { var text = "Γειά σας είμαι ο " + this.name + " έχω:\r\n"; for (var i = 0; i < this.diagnosisArray.length; i++) { text += " * " + this.diagnosisArray[i].name + " και είναι " + eval(this.diagnosisArray[i].code) + "\r\n"; } return text; } } var diagnosisArray = [ new Diagnosis(1, "Χολέρα", "T31AboveNormal()"), new Diagnosis(2, "Χασμουρίτιδα", "T31BelowNormal()"), new Diagnosis(3, "Διάρροια", "T31BelowNormal()") ]; var patient1 = new Patient(1, "Κύριος Μπαρμπούτσαλος"); var patient2 = new Patient(2, "Bob σφουγγαράκης"); patient1.diagnosisArray.push(diagnosisArray[0]); patient2.diagnosisArray.push(diagnosisArray[1], diagnosisArray[2]); alert(patient1.MakeDiagnosis()); alert(patient2.MakeDiagnosis()); </script> </head> <body> </body> </html> Δες και στο επισυναπτόμενο αρχείο εικόνας τι πρέπει ενδεικτικά να δεις. Ελπίζω να βοήθησα λιγάκι.
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.