| 1 | PPPGET6 ;ALB/DMB - PPP UTILITIES ; 4/23/92 | 
|---|
| 2 | ;;V1.0;PHARMACY PRESCRIPTION PRACTICE;;APR 7,1995 | 
|---|
| 3 | ;;Per VHA Directive 10-93-142, this routine should not be modified. | 
|---|
| 4 | ; | 
|---|
| 5 | GETRESP(PROMPT,HELP1,HELP2,DFLTRESP,PATTERN,LEN) ; | 
|---|
| 6 | ; | 
|---|
| 7 | ; This function queries the user with the prompt passed in the | 
|---|
| 8 | ; parameter list. | 
|---|
| 9 | ; | 
|---|
| 10 | ; Parameters: | 
|---|
| 11 | ;   PROMPT - Text string to prompt user with (may be NULL) | 
|---|
| 12 | ;   HELP1 - Help string to display if user enters "?" (may be NULL) | 
|---|
| 13 | ;   HELP2 - Help string to be executed if user enters "??" (may be NULL) | 
|---|
| 14 | ;   DFLTRESP - Default response (may be NULL) | 
|---|
| 15 | ;   PATTERN - Pattern to verify users response with (may be NULL) | 
|---|
| 16 | ;   LEN - Maximum length of response (may be NULL) | 
|---|
| 17 | ; | 
|---|
| 18 | ; Returns: | 
|---|
| 19 | ;   User Response - Guarranteed to conform to Pattern ans length | 
|---|
| 20 | ;   -1 - User Responded with up-arrow | 
|---|
| 21 | ;   -2 - User Timed out | 
|---|
| 22 | ; | 
|---|
| 23 | N RESP,GOTRESP | 
|---|
| 24 | ; | 
|---|
| 25 | F GOTRESP=0:0 D  Q:GOTRESP | 
|---|
| 26 | .W PROMPT | 
|---|
| 27 | .I DFLTRESP'="" W DFLTRESP_" // " | 
|---|
| 28 | .R RESP:DTIME | 
|---|
| 29 | .I '$T S RESP=-2,GOTRESP=1 Q | 
|---|
| 30 | .I RESP["^" S RESP=-1,GOTRESP=1 Q | 
|---|
| 31 | .I RESP="?" D  Q | 
|---|
| 32 | ..I HELP1="" D | 
|---|
| 33 | ...W *7,"  ??",!! | 
|---|
| 34 | ..E  D | 
|---|
| 35 | ...W !!,*7,HELP1,!! | 
|---|
| 36 | ..S GOTRESP=0 | 
|---|
| 37 | .I RESP="??" D  Q | 
|---|
| 38 | ..I HELP2="" D | 
|---|
| 39 | ...W *7,"  ??",!! | 
|---|
| 40 | ..E  D | 
|---|
| 41 | ...X HELP2 | 
|---|
| 42 | ..S GOTRESP=0 | 
|---|
| 43 | .I RESP="" S RESP=DFLTRESP W RESP | 
|---|
| 44 | .I PATTERN'="" D  Q:GOTRESP=0 | 
|---|
| 45 | ..I RESP'?@PATTERN D | 
|---|
| 46 | ...W !!,*7,"Invalid Format... Please Re-enter.",!! | 
|---|
| 47 | ...S GOTRESP=0 | 
|---|
| 48 | ..E  D | 
|---|
| 49 | ...S GOTRESP=1 | 
|---|
| 50 | .I LEN'="" D  Q:GOTRESP=0 | 
|---|
| 51 | ..I RESP>LEN D | 
|---|
| 52 | ...W !!,*7,"Response too long... Please Re-enter.",!! | 
|---|
| 53 | ...S GOTRESP=0 | 
|---|
| 54 | ..E  D | 
|---|
| 55 | ...S GOTRESP=1 | 
|---|
| 56 | .S GOTRESP=1 | 
|---|
| 57 | Q RESP | 
|---|
| 58 | ; | 
|---|
| 59 | SAMPLE ; Sample routine using GETRESP -- SAMPLE CODE -- NOT USED BY PPP | 
|---|
| 60 | ; | 
|---|
| 61 | S PROMPT="Enter Your Name: " | 
|---|
| 62 | S DFLTRESP="SMITH,FRED" | 
|---|
| 63 | S HELP1="Enter as LASTNAME,FIRSTNAME 30 characters max." | 
|---|
| 64 | S HELP2="D EXTHLP" | 
|---|
| 65 | S PATTERN="1.30U1"",""1.30U" | 
|---|
| 66 | S LEN=30 | 
|---|
| 67 | S ANSWER=$$GETRESP(PROMPT,HELP1,HELP2,DFLTRESP,PATTERN,LEN) | 
|---|
| 68 | I ANSWER'<0 W !!,"Response = ",ANSWER | 
|---|
| 69 | I ANSWER=-1 W !!,"You entered ^" | 
|---|
| 70 | I ANSWER=-2 W !!,"You timed out" | 
|---|
| 71 | K PROMPT,DFLTRESP,HELP1,HELP2,PATTERN,LEN,ANSWER | 
|---|
| 72 | Q | 
|---|
| 73 | ; | 
|---|
| 74 | EXTHLP ; | 
|---|
| 75 | W !!,*7,"Sample of extented help, this could be any text!",!! | 
|---|
| 76 | Q | 
|---|