| 1 | BPSOSU2 ;BHAM ISC/FCS/DRS/FLS - copied for ECME ;06/01/2004
 | 
|---|
| 2 |  ;;1.0;E CLAIMS MGMT ENGINE;**1**;JUN 2004
 | 
|---|
| 3 |  ;----------------------------------------------------------------------
 | 
|---|
| 4 |  ;----------------------------------------------------------------------
 | 
|---|
| 5 |  ;Standard FREETEXT and Numeric Functions
 | 
|---|
| 6 |  ;----------------------------------------------------------------------
 | 
|---|
| 7 |  ;Standard FREETEXT PROMPT:
 | 
|---|
| 8 |  ;
 | 
|---|
| 9 |  ;Parameters:
 | 
|---|
| 10 |  ;    PROMPT  = Text to be displayed before read
 | 
|---|
| 11 |  ;    DFLT    = DEFAULT text
 | 
|---|
| 12 |  ;    OPT     = 1 - Answer optional       0 - Answer required
 | 
|---|
| 13 |  ;    MINLEN  = Minimum length of response text
 | 
|---|
| 14 |  ;    MAXLEN  = Maximum length of response text
 | 
|---|
| 15 |  ;    TIMEOUT = Number of seconds
 | 
|---|
| 16 |  ;
 | 
|---|
| 17 |  ;Returns:
 | 
|---|
| 18 |  ;    <null>  = No response             <^> - Up-arrow entered
 | 
|---|
| 19 |  ;    <-1>    = Timeout occurred       <^^> - Two up-arrows entered
 | 
|---|
| 20 |  ;    <text>  = Response text
 | 
|---|
| 21 |  ;---------------------------------------------------------------------
 | 
|---|
| 22 | FREETEXT(PROMPT,DFLT,OPT,MINLEN,MAXLEN,TIMEOUT) ;EP
 | 
|---|
| 23 |  ;
 | 
|---|
| 24 |  N XDATA,DIR,X,Y,DTOUT,DUOUT,DIRUT,DIROUT
 | 
|---|
| 25 |  ;
 | 
|---|
| 26 |  Q:$G(PROMPT)="" ""
 | 
|---|
| 27 |  S:$G(MINLEN)="" MINLEN=0
 | 
|---|
| 28 |  S:$G(MAXLEN)="" MAXLEN=245
 | 
|---|
| 29 |  ;
 | 
|---|
| 30 |  S $P(DIR(0),"^",1)="FA"_$S(OPT=1:"O",1:"")
 | 
|---|
| 31 |  S $P(XDATA,":",1)=MINLEN
 | 
|---|
| 32 |  S $P(XDATA,":",2)=MAXLEN
 | 
|---|
| 33 |  S $P(DIR(0),"^",2)=XDATA
 | 
|---|
| 34 |  S DIR("A")=PROMPT
 | 
|---|
| 35 |  S:$G(DFLT)'="" DIR("B")=DFLT
 | 
|---|
| 36 |  S:+$G(TIMEOUT)>0 DIR("T")=TIMEOUT
 | 
|---|
| 37 |  D ^DIR
 | 
|---|
| 38 |  Q $S($G(DTOUT)=1:-1,$G(DIROUT)=1:"^^",$G(DUOUT)=1:"^",1:Y)
 | 
|---|
| 39 |  ;---------------------------------------------------------------------
 | 
|---|
| 40 |  ;Standard Numeric PROMPT:
 | 
|---|
| 41 |  ;
 | 
|---|
| 42 |  ;Parameters:
 | 
|---|
| 43 |  ;    PROMPT  = Text to be displayed before read
 | 
|---|
| 44 |  ;    DFLT    = DEFAULT Numeric
 | 
|---|
| 45 |  ;    OPT     = 1 - Answer optional       0 - Answer required
 | 
|---|
| 46 |  ;    MINNUM  = Minimum numeric value
 | 
|---|
| 47 |  ;    MAXNUM  = Maximum numeric value
 | 
|---|
| 48 |  ;    MAXDEC  = Maximum number of decimal places allowed
 | 
|---|
| 49 |  ;    TIMEOUT = Number of seconds
 | 
|---|
| 50 |  ;
 | 
|---|
| 51 |  ;Returns:
 | 
|---|
| 52 |  ;    <null>     = No response             <^> - Up-arrow entered
 | 
|---|
| 53 |  ;    <-1>       = Timeout occurred       <^^> - Two up-arrows entered
 | 
|---|
| 54 |  ;    <Numeric>  = Response Numeric
 | 
|---|
| 55 |  ;---------------------------------------------------------------------
 | 
|---|
| 56 | NUMERIC(PROMPT,DFLT,OPT,MINNUM,MAXNUM,MAXDEC,TIMEOUT) ;EP
 | 
|---|
| 57 |  ;
 | 
|---|
| 58 |  N XDATA,DIR,X,Y,DTOUT,DUOUT,DIRUT,DIROUT
 | 
|---|
| 59 |  ;
 | 
|---|
| 60 |  Q:$G(PROMPT)="" ""
 | 
|---|
| 61 |  ;
 | 
|---|
| 62 |  S $P(DIR(0),"^",1)="NA"_$S(OPT=1:"O",1:"")
 | 
|---|
| 63 |  S $P(XDATA,":",1)=$G(MINNUM)
 | 
|---|
| 64 |  S $P(XDATA,":",2)=$G(MAXNUM)
 | 
|---|
| 65 |  S $P(XDATA,":",3)=$G(MAXDEC)
 | 
|---|
| 66 |  S $P(DIR(0),"^",2)=XDATA
 | 
|---|
| 67 |  S DIR("A")=PROMPT
 | 
|---|
| 68 |  S:$G(DFLT)'="" DIR("B")=DFLT
 | 
|---|
| 69 |  S:+$G(TIMEOUT)>0 DIR("T")=TIMEOUT
 | 
|---|
| 70 |  D ^DIR
 | 
|---|
| 71 |  Q $S($G(DTOUT)=1:-1,$G(DIROUT)=1:"^^",$G(DUOUT)=1:"^",1:Y)
 | 
|---|