Προς το περιεχόμενο

Πως να φτιάξω user interface για αυτο;


ΠάρηςΓ

Προτεινόμενες αναρτήσεις

Δημοσ.

Η εφαρμογή αυτη ειναι στα πλαίσια εργασίας σχολής...

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

Χρησιμοποιει παραμετροποιημένη μηχανή javascript για αυτοματη αναγνώριση μεταβλητών που εξαρτάται η διαγνωση..

Παρέχονται εντολές οπως aboveNormal() .value .belowNormal() και αλλες... Οι οποιες ελεγχνουν αν ειναι πανω η κατω απο το όριο οι τιμές αλλά το .value δίνει την καθαρη τιμή της εξέτασης(αριθμητικη,true/false,κειμενο ,και αλλα πολλα)

 

Υπάρχουν και αλλες μεταβλητες κτλ....

Το πρόβλημα ειναι οτι θεωρήθηκε πολυ δυσκολο να γραφεις συνθήκες έτσι !

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

 

Το ζητουμενο ειναι να φτιαχτει κάποιο user interface για να μπαίνουν αυτοματα οι συνθήκες...

Εγω το θεωρώ δύσκολο να γινει κατι τέτοιο. και αν γινει θα εχει περιορισμένη λειτουργία ..

 

Εχει κανεις καμια ιδεα για το πως μπορουν να γραφτουν τετοιες συνθηκες χωρις να χρειαστεί να γραψει κωδικα ο χρήστης; Απλα με κουμπάκια κτλ...

Ενταξει οι εξετασεις ειναι καμια 600ρια αρα αναγκαστικα πρεπει να γραφει ονομα καπως..

Αν υπηχε ενα τεχτbox για το ονομα διπλα επιλογη συναρτησης κτλ το θεμα ειναι μετα πως θα ενωνονταν γραφικα όλα αυτα με Η , ΚΑΙ , κτλ και παρενθέσεις;

Εχει κανεις καμια ιδέα;

post-41663-129063089677_thumb.png

Δημοσ.

Θα μπορούσες να δώσεις ένα παράδειγμα πχ το το T31.belowNormal() ως πιο user friendly? (να καταλαβαίνουμε δλδ τι πρέπει να πληρκτρολογήσει/διαβάζει ο χρήστης από αυτό; )

Δημοσ.

Εννοεί να μην χρειάζεται ο χρήστης να γράψει τέτοια πραγματα. Να γραφονται με πιο ευκολο τροπο δλδ...

Με κουμπια κτλ ... ξέρω γω...

Οτι δηλαδη ενας γιατρός που θέλει να βαλει μια δικη του διαγνωση

πχ.Διαγνωση χολέρας

να μη κάθετε να γράψει T31.belowNormal()

 

αλλα να μπαίνει η συνθήκη με άλλο τροπο.Δηλαδη με dropdowns ισως κουμπια κτλ ... η κοστουμ ui components...

Ετσι ζητήθηκε

Βέβαια στη παρουσίαση δεν κοιταξε ούτε μια γραμμή κώδικα

 

Αλλα προσωπικα πιστευω πως αυτα τα πραγματα μονο έτσι μπορου να γραφτούν πιο εύκολα..

 

---------- Προσθήκη στις 16:33 ---------- Προηγούμενο μήνυμα στις 16:31 ----------

 

Σκεφτομαι οτι ισως καποια δενδρικη αναπαρασταση ισως εκανε κάτι.. αλλα και πάλι περιορίζει!

Δημοσ.

Ναι κατάλαβα τι θέλει να κάνει αλλα προσπαθώ να καταλαβάω πως θα μεταφράζεται ο κώδιας. Τι εννοώ... να ζητάει πχ από τον χρήστη

 

Δώσε τύπο διάγνωσης: να γράφει ο χρήστης χολέρα

και το σύστημα να γράφει T31.aboveNormal()

 

Με λίγα λόγια διάβασε μου μια-δυο γραμμές (τα Τ,Φ13,14) κτλ για να σου απαντήσω πιο ειδικά

 

Πχ... ένας οδηγός είναι όταν σε forum πατας να δώσεις hyperlink

Οδηγός: Δώσε σύνδεσμο

Χρήστης: http://www.insomnia.gr

Οδηγός: Δώσε τίτλο

Χρήστης: Insomnia

 

και το σύστημα γράφει [.url=www.insomnia.gr]Insomnia[./url]

 

Θέλω δλδ τις αντιστοιχίες σε λέξεις των T,F κτλ που δείχνεις ως παράδειγμα

Επισκέπτης
Δημοσ.

λοιπόν, με 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

Δημοσ.

Οι μεταβλητές Τ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 !!! πως θα βρει μεσα σε αυτα αυτο που θέλει.. χωρια που θα σερνεται

Δημοσ.

Οι μεταβλητές Τ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 !!! πως θα βρει μεσα σε αυτα αυτο που θέλει.. χωρια που θα σερνεται

Δημοσ.

Αυτο σκέφτηκα και εγώ... Αλλά ειναι παλούκι να κάνεις μετατροπη απο ψευδογλώσσα σε javascript πάλι πίσω!!!

Γιατι δίνει πολλες δυνατότητες η javascript..

Να κάνω δικο μου παρσερ για γλώσσα και interpeter το θεωρω overkill...

 

Αλλά εχω αδικο οτι αυτα τα πραγματα μονο ετσι γραφονται;

Δημοσ.

Αυτο σκέφτηκα και εγώ... Αλλά ειναι παλούκι να κάνεις μετατροπη απο ψευδογλώσσα σε javascript πάλι πίσω!!!

Γιατι δίνει πολλες δυνατότητες η javascript..

Να κάνω δικο μου παρσερ για γλώσσα και interpeter το θεωρω overkill...

 

Αλλά εχω αδικο οτι αυτα τα πραγματα μονο ετσι γραφονται;

Δημοσ.

Εκτός και αν σε εξυπηρετεί να φτιάξεις μια γλώσσα σήμανσης (tag language)

Όπως η bbcode... να γράφει πχ [.b]lala[./b] και το κάνει μόνο του <b></b>

Δημοσ.

Εκτός και αν σε εξυπηρετεί να φτιάξεις μια γλώσσα σήμανσης (tag language)

Όπως η bbcode... να γράφει πχ [.b]lala[./b] και το κάνει μόνο του <b></b>

Δημοσ.

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

 

Θα ξεχωρίσεις:

* Τα δεδομένα

* Τον μηχανισμό

* Την παρουσίαση

 

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

 

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

 

>
<!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>

 

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

post-63123-129063090097_thumb.png

Δημοσ.

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

 

Θα ξεχωρίσεις:

* Τα δεδομένα

* Τον μηχανισμό

* Την παρουσίαση

 

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

 

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

 

>
<!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>

 

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

Αρχειοθετημένο

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

  • Δημιουργία νέου...