| 1 | DIC11 ;SFISC/TKW-PROMPT USER FOR LOOKUP VALUES ;1:33 PM  26 Dec 2000
 | 
|---|
| 2 |  ;;22.0;VA FileMan;**1,13,40,67**;Mar 30, 1999
 | 
|---|
| 3 |  ;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
| 4 | PROMPT N DIOUT S (DIVAL(0),DIOUT)=0
 | 
|---|
| 5 |  F DISUB=1:1:DINDEX("#") D PR1 Q:DIOUT
 | 
|---|
| 6 |  S X=$G(DIVAL(1))
 | 
|---|
| 7 |  I DINDEX("#")>1 M X=DIVAL D  K X(0) ; W:$O(DIVAL(1)) !
 | 
|---|
| 8 |  . I X?1"^"1.E K X S X=$G(DIVAL(1)) Q
 | 
|---|
| 9 |  Q
 | 
|---|
| 10 |  ;
 | 
|---|
| 11 | PR1 S DIY=DIPRMT(DISUB),DIVAL(DISUB)="" N X
 | 
|---|
| 12 |  I $G(DIY(DISUB))]"" S DIY=DIY_$S($D(DIY(DISUB,"EXT")):DIY(DISUB,"EXT"),1:DIY(DISUB))_"// "
 | 
|---|
| 13 |  W DIY R X:$S($G(DTIME):DTIME,1:300)
 | 
|---|
| 14 |  I '$T S (DIOUT,DTOUT)=1 W $C(7) K DIVAL S DIVAL(0)=0 Q
 | 
|---|
| 15 |  I X'?.ANP D:DIC(0)["Q"  S DISUB=DISUB-1 Q
 | 
|---|
| 16 |  . W $C(7),"  ",$$EZBLD^DIALOG(204),! Q
 | 
|---|
| 17 |  I X?1.N.1"."1.N,($L($P(X,"."))>25!($L($P(X,".",2))>24)) D:DIC(0)["Q"  S DISUB=DISUB-1 Q
 | 
|---|
| 18 |  . W $C(7),"  ",$$EZBLD^DIALOG(208),! Q
 | 
|---|
| 19 |  I X="^"!($E(X)="^"&(DISUB>1)) S (DIOUT,DUOUT)=1 K DIVAL S DIVAL(0)=0,DIVAL(1)="^" Q
 | 
|---|
| 20 |  I $L(X)>250 D:DIC(0)["Q"  S DISUB=DISUB-1 Q
 | 
|---|
| 21 |  . W $C(7)," ",$$EZBLD^DIALOG(209),! Q
 | 
|---|
| 22 |  I X?1."?" K DIVAL S DIVAL(1)=$E(X,1,2),DIVAL(0)=0,DIOUT=1 Q
 | 
|---|
| 23 |  I (X?1"`".NP)!(X=" ") K DIVAL S DIVAL(1)=X,(DIVAL(0),DIOUT)=1 Q
 | 
|---|
| 24 |  W:DINDEX("#")>1 !
 | 
|---|
| 25 |  S DIVAL(DISUB)=X
 | 
|---|
| 26 |  I X="",$G(DIY(DISUB))]"" S DIVAL(DISUB)=DIY(DISUB) S:DIC(0)'["O" DIC(0)=DIC(0)_"O"
 | 
|---|
| 27 |  Q:DIVAL(DISUB)=""
 | 
|---|
| 28 |  S DIVAL(0)=DIVAL(0)+1
 | 
|---|
| 29 |  S:$E(X)="^" (DIOUT,DUOUT)=1
 | 
|---|
| 30 |  Q
 | 
|---|
| 31 |  ;
 | 
|---|
| 32 | GETPRMT(DIC,DO,DINDEX,DIPRMT) ; Build list of prompts for each lookup value
 | 
|---|
| 33 |  N DICA I $D(DIC("A")) S DICA(1)=$G(DIC("A")) M DICA=DIC("A")
 | 
|---|
| 34 |  N DISUB,I,L,P S L=0
 | 
|---|
| 35 |  F DISUB=1:1:DINDEX("#") D
 | 
|---|
| 36 |  . I $G(DICA(DISUB))]"" D  I DIPRMT(DISUB)]""
 | 
|---|
| 37 |  . . S DIPRMT(DISUB)=""
 | 
|---|
| 38 |  . . I DISUB=1,DINDEX("#")>1,DICA(DISUB)="ANOTHER ONE: " Q
 | 
|---|
| 39 |  . . S DIPRMT(DISUB)=DICA(DISUB) Q
 | 
|---|
| 40 |  . E  D
 | 
|---|
| 41 |  . . S P=$S(DISUB=1:$P(DO,U),1:"")
 | 
|---|
| 42 |  . . I DISUB=1,$G(DICA(DISUB))="ANOTHER ONE: " S P=$$EZBLD^DIALOG(8050)_P
 | 
|---|
| 43 |  . . I DINDEX("#")=1,D'="B"&(DIC(0)["M")!(D="B"&(DO(2)'>1.9)) S DIPRMT(DISUB)=$$EZBLD^DIALOG(8042,P) Q
 | 
|---|
| 44 |  . . N X S X=DINDEX(DISUB,"PROMPT") I X]"" D
 | 
|---|
| 45 |  . . . I DISUB=1 Q:DINDEX("#")=1&(P[X!(X[P))  S P=P_" "
 | 
|---|
| 46 |  . . . S P=P_X Q
 | 
|---|
| 47 |  . . I DISUB=1 S DIPRMT(DISUB)=$$EZBLD^DIALOG(8042,P)
 | 
|---|
| 48 |  . . E  S DIPRMT(DISUB)=P_": "
 | 
|---|
| 49 |  . . Q
 | 
|---|
| 50 |  . S I=$L(DIPRMT(DISUB)) S:I>L L=I Q
 | 
|---|
| 51 |  Q:DINDEX("#")=1
 | 
|---|
| 52 |  S I="",$P(I," ",L)=""
 | 
|---|
| 53 |  F DISUB=1:1:DINDEX("#") S DIPRMT(DISUB)=$E(I,1,(L-$L(DIPRMT(DISUB))))_DIPRMT(DISUB)
 | 
|---|
| 54 |  Q
 | 
|---|
| 55 |  ;
 | 
|---|
| 56 | TRYADD(DIC,DIFILEI) ; Return 1 if user should be allowed to attempt to add record
 | 
|---|
| 57 |  ; when lookup value `ien and .01 is a pointer.
 | 
|---|
| 58 |  Q:DIC(0)'["L" 0
 | 
|---|
| 59 |  N % S %=$P($G(^DD(DIFILEI,.01,0)),U,2)
 | 
|---|
| 60 |  I %["P"!(%["V") Q 1
 | 
|---|
| 61 |  Q 0
 | 
|---|
| 62 |  ;
 | 
|---|
| 63 |  ; Error messages
 | 
|---|
| 64 |  ; 204  The input value contains control characters.
 | 
|---|
| 65 |  ; 208  Input value is an illegal number.
 | 
|---|
| 66 |  ; 209  Input value is too long.
 | 
|---|
| 67 |  ;8042  Select |1|:
 | 
|---|
| 68 |  ;8050  Another
 | 
|---|
| 69 |  ;
 | 
|---|