|
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 -----
editarea_arrowkey_1.png
Description: PNG image
editarea_arrowkey_2.png
Description: PNG image
vaccine_errors1.png
Description: PNG image
vaccine_errors_2.png
Description: PNG image
[Prev in Thread] | Current Thread | [Next in Thread] |