gnumed-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: address@hidden: [Gnumed-devel] SOAP input key behaviour design quest


From: richard Terry
Subject: Re: address@hidden: [Gnumed-devel] SOAP input key behaviour design question]
Date: Mon, 20 Dec 2004 16:05:26 +1100
User-agent: KMail/1.5.4

On Sat, 18 Dec 2004 12:17 am, you wrote:

I guess by cursor down you mean the down arrow key.

I personally beleive this should not be used to navigate between SOAP lines or 
from soap lines to buttons for the following reasons.

1)By convention most windows style applications use the TAB key (which I hate)  
to move between controls (and in our case the enter key which is more logical 
i.e I accept this input - and easier to hit anyway).

2)The down/up arrow keys are used by our popup lists to navigate up and down 
the popup lists

3)The following scenario is used time after time after time in my program and 
is one of the most useful features. Imagine the following in the script 
section (see the png's to visualise).

You've prescribed a drug, here Augmentin (amoxycillin + clavulinic acid) and, 
as per your habits (rightly or wrongly) the whole script is 'auto-completed'. 
Yet on this occasion your not prescribing for a 'chest infection', but a 
middl ear infection. As the system keeps track of your prescribing habits, 
hitting the down arrow key on the 'Prescribed For' line, popups up a listing 
of the way you use this drug, ordered by frequency (see second png).  Just 
the act of hitting the down arrow key both pops up the list, and moves the 
cursor to the second most commonly used reason for prescription, leaving you 
only to hit the enter key to accept this, or continue hitting the down arrow 
key to reach the reason you want.

And so it is in virtually any editing area (aka SOAP) control. Doesn't matter 
whether you are prescribing by disease, by generic, or in FH, choosing a type 
of relative, or in past history etc etc etc.

Just to re-interate what I think is a functional key press types,( BTW - Ian 
implemented this fairly well in his SOAP2.py. I've used the pipe character 
here to be the imaginary cursor which of course if flashing:

User types in or has autocompleted from list a term:
=======================
S Middle ear|      (then hits enter key)
O
becomes     ====================
S Middle ear; |     (then either types more terms or hits tab/enter key)
O
becomes  ==================
S Middle ear;
O | (Cursor now sitting here wiating for further input)

ie:

Key                             Action
-----------------------------------
TAB                             go down a line
                                if no ';' after term and term exists
                                then add ';' 
Shift TAB                       go up a line
<ENTER>                 if at start of line (blank)
                                go down line (do nothing else)
                                if at end of text add ';' reposition
                                cursor after the ';' and await next user input
                                if after a ';' go to next line either start if 
blank
                                or after last text of ';' if appropriate
Up Arrow                        do not allow
Down Arrow              if no popup list present, pop up
                                list if appropriate
                                if popup list present then navigate down popup 
list
--------------------------------------------------------------------------------------------

The other thing to think about BTW (and I've noticed this is not done in the 
demo-data stuff) is proper validation of users key-presses. Each and every 
line of the editing area/soap could potentially need a different key-handler. 
E.g some need ascii only to be allowed, some ascii + numbers, some should not 
allow any substitution of a choice made from a database list, as per the 
attatched pngs, which show clearly how to stuff up a choice made of a 
vaccine. PS Apologies for the uncharitable message when It's probably not 
your code anyway. Taking your name in vain!


Hope this helps.

Regards

Richard



> second try, different address
>
> Could you please take a look at this and give me a hint on how
> to proceed ?
>
> Thanks,
> Karsten
>
> ----- Forwarded message from Karsten Hilbert <address@hidden>
> -----
>
> > Richard,
> >
> > if on the *last* line (regardless of position within line) in one
> > of the SOAP input STC fields (say, "Patient Request") I hit
> > <Cursor-Down> what do you expect to happen ?
> >
> > Either of:
> > 1 focus going to first line of next STC field in tab order
> >
> > 2 focus going to first line of *current* STC field (eg. wrapping)
> >
> > 3 focus not going anywhere (eg. staying where it is)
> >
> > 4 focus going to after last character in this last line
> >
> > If either 1 or 2 (and possibly 3) is what you think then do
> > you also expect this to happen:
> >
> > - a ';' is being added on to the end of the last line
> >
> > Or are these options wrong in the first place ?
> >
> > Comments on this behaviour (and variants of course) *only*
> > please as I am trying to get this consistent and documented in
> > the code. Questions on other keys and their intended behaviour
> > will follow.
> >
> > Thanks,
> > Karsten
>
> ----- End forwarded message -----


Attachment: editarea_arrowkey_1.png
Description: PNG image

Attachment: editarea_arrowkey_2.png
Description: PNG image

Attachment: vaccine_errors1.png
Description: PNG image

Attachment: vaccine_errors_2.png
Description: PNG image


reply via email to

[Prev in Thread] Current Thread [Next in Thread]