source: FOIAVistA/tag/r/HEALTH_LEVEL_SEVEN-HL/HLCSFMN2.m@ 636

Last change on this file since 636 was 628, checked in by George Lilly, 14 years ago

initial load of FOIAVistA 6/30/08 version

File size: 1.9 KB
Line 
1HLCSFMN2 ;ALB/JRP - FILER MONITOR UTILITIES;13-FEB-95 ;10/15/99 07:16
2 ;;1.6;HEALTH LEVEL SEVEN;**57**;Oct 13, 1995
3 ;
4SELECT(INARR,ENTITY) ;SELECTION UTILITY
5 ;INPUT : INARR - Array whose first subscript denotes the list of
6 ; selectable numbers (full global reference)
7 ; - $O(INARR(x)) yields all selectable numbers
8 ; ENTITY - What's being selected
9 ; - Defaults to 'Entry' (prompt is 'Select Entry')
10 ;OUTPUT : X - Number selected
11 ; 0 - Nothing selected
12 ; -1 - Bad input / nothing to select from
13 ; -2 - Timeout / abort
14 ;NOTES : User does not have to select an entry
15 ; : Number selected will be validated (must be in INARR). This
16 ; allows gaps to exist in INARR(x).
17 ; : Only whole numbers greater than zero are selectable
18 ;
19 ;CHECK INPUT
20 Q:($G(INARR)="") -1
21 Q:('$O(@INARR@(0))) -1
22 S:($G(ENTITY)="") ENTITY="Entry"
23 ;DECLARE VARIABLES
24 N DIR,X,Y,DTOUT,DUOUT,DIRUT,FRSTENT,LSTENT,LOOP,DONE
25 ;DETERMINE FIRST AND LAST ENTRY NUMBERS
26 S FRSTENT=+$O(@INARR@(""))
27 S LSTENT=+$O(@INARR@(""),-1)
28 ;ONLY ONE ITEM - AUTO SELECT
29 Q:(FRSTENT=LSTENT) FRSTENT
30 ;PROMPT USER FOR VALID SELECTION
31 F DONE=0:0 D Q:(DONE)
32 .K DIR,DTOUT,DUOUT,DIRUT,X,Y
33 .S DIR(0)="NAO^"_FRSTENT_":"_LSTENT_":0"
34 .S DIR("A")="Select "_ENTITY_" ("_FRSTENT_"-"_LSTENT_"): "
35 .S DIR("?",1)="Response must be a number between "_FRSTENT_" and "_LSTENT
36 .S DIR("?")="Enter '??' to see a list of valid selections"
37 .S DIR("??")="^W !!,""Valid Selections: "" S LOOP=0 F S LOOP=+$O(@INARR@(LOOP)) Q:('LOOP) W:(LOOP'=FRSTENT) "","" W:(($X+$L(LOOP)+1)>79) !,?18 W LOOP"
38 .D ^DIR
39 .;TIMEOUT/ABORT
40 .I (($D(DTOUT))!($D(DUOUT))) S Y=-2,DONE=1 Q
41 .;NOTHING SELECTED
42 .I ($D(DIRUT)) S Y=0,DONE=1 Q
43 .;VALIDATE SELECTION
44 .I ($D(@INARR@(Y))) S DONE=1 Q
45 .;INVALID SELECTION
46 .W $C(7),!!,Y," is not a valid selection"
47 .W !,"Enter '??' to see a list of valid selections"
48 .W !
49 ;DONE
50 Q Y
Note: See TracBrowser for help on using the repository browser.