| 1 | DICQ ;SFISC/XAK,TKW-HELP FOR LOOKUPS ;7:20 AM  17 May 2007
 | 
|---|
| 2 |  ;;22.0;VA FileMan;**4,3,57,151**;Mar 30, 1999;Build 10
 | 
|---|
| 3 |  ;Per VHA Directive 2004-038, this routine should not be modified.
 | 
|---|
| 4 |  S DZ=X D:DIC(0)]"" DQ
 | 
|---|
| 5 |  I '$D(DDS),$G(DDH) D ^DDSU
 | 
|---|
| 6 |  S:$D(DZ) X=DZ K DZ,DDH,DIZ,DDD I $D(DTOUT) S Y=-1 D Q^DIC2 Q
 | 
|---|
| 7 |  D A^DIC Q
 | 
|---|
| 8 |  ;
 | 
|---|
| 9 | DQ ; Main entry point for displaying online ^DIC help (list of current
 | 
|---|
| 10 |  ; entries in a file.
 | 
|---|
| 11 |  N %,%Y,X,Y,DD,DDC,DDD,DS,DID01,DICNT,DIDONE,DIFROM,DIPART,DIW,DIX,DIY,DIZ,DIUPRITE,DST,DIBEGSUB,DIBEGIX
 | 
|---|
| 12 |  I $D(DZ)[0 N DZ S DZ=""
 | 
|---|
| 13 |  S DDC=$S($D(DDS):7,1:15)
 | 
|---|
| 14 |  N:'$D(DDH) DDH S DDH=+$G(DDH)
 | 
|---|
| 15 |  S DIBEGIX=D
 | 
|---|
| 16 |  I '($D(DIRECUR)#2) N DIRECUR S DIRECUR=0
 | 
|---|
| 17 |  I '$D(DO) N DO D GETFA^DIC1(.DIC,.DO)
 | 
|---|
| 18 |  I DO="0^-1" K DO S DST="  Pointed-to File does not exist!" D % Q
 | 
|---|
| 19 |  S DICNT=$P(DO,U,4),DIY=DO D DIY
 | 
|---|
| 20 |  S X=$S($D(^DD(+DO(2),.001,0)):$P(^(0),U,1),DIC(0)["N":"NUMBER",1:""),DIUPRITE=X]""
 | 
|---|
| 21 |  S DIW=^DD(+DO(2),.01,0),DIW=$P(DIW,U,2,3)
 | 
|---|
| 22 |  G:$D(^DD(+DO(2),0,"QUES")) @^("QUES")
 | 
|---|
| 23 |  I DIUPRITE S DS=.001 D DS
 | 
|---|
| 24 | DQ1 I $G(DIFILEI),$G(DINDEX)]"" M DIX=DINDEX
 | 
|---|
| 25 |  E  N DIFILEI,DIENS K % M %=DA N DA M DA=% K % D
 | 
|---|
| 26 |  . D GETFILE^DIC0(.DIC,.DIFILEI,.DIENS)
 | 
|---|
| 27 |  . S DIX=$G(D),DIX("WAY")=1 D INDEX^DICUIX(.DIFILEI,"hl",.DIX)
 | 
|---|
| 28 |  . Q
 | 
|---|
| 29 |  S DIBEGSUB=DIX("#")
 | 
|---|
| 30 |  I DIFILEI="" D % Q
 | 
|---|
| 31 |  I $D(DIC("?N",DIFILEI)) S DDC=DIC("?N",DIFILEI)
 | 
|---|
| 32 |  S DIFROM=""
 | 
|---|
| 33 |  N DISAVIX M DISAVIX=DIX
 | 
|---|
| 34 |  D IX K DISAVIX
 | 
|---|
| 35 |  I 'DICNT D 0 Q
 | 
|---|
| 36 |  S DIDONE=0 I DZ'="??" D  I DIDONE D 0 Q
 | 
|---|
| 37 |  . D DSPFLD Q:DICNT<11
 | 
|---|
| 38 |  . N DIOUT S DIOUT=0 F  D ASKCUR Q:DIOUT
 | 
|---|
| 39 |  . Q
 | 
|---|
| 40 |  D EN^DICQ1
 | 
|---|
| 41 |  Q
 | 
|---|
| 42 |  ;
 | 
|---|
| 43 | IX N DD,DIF,DIFIL,DIFLD,DIFORCE,DIEND,DITMP,I,P,F,X,%
 | 
|---|
| 44 |  S (DD,%)="",DID01=0,DIF="h"_$P("M^",U,DIC(0)["M")
 | 
|---|
| 45 |  S DIFORCE=$S($D(DID):1,1:0),DIFORCE(0)=$S($D(DID):DID,1:"*"),DIFORCE(1)=1
 | 
|---|
| 46 |  F  D  Q:DIX=""!(DIC(0)'["M")
 | 
|---|
| 47 |  . S DIEND=$S(DIX=DIBEGIX:DIX("#"),1:1)
 | 
|---|
| 48 |  . S (P,DS)="" F I=1:1:DIEND D
 | 
|---|
| 49 |  . . S DIFIL=$G(DIX(I,"FILE")),DIFLD=$G(DIX(I,"FIELD"))
 | 
|---|
| 50 |  . . I DIFIL,DIFLD Q:$D(DITMP(DIFIL,DIFLD))  S DITMP(DIFIL,DIFLD)=""
 | 
|---|
| 51 |  . . I DIX=DIBEGIX D
 | 
|---|
| 52 |  . . . I DIFIL=DIFILEI,DIFLD=.01,DIX("FLISTD")[("^"_.01_"^") S DID01=1
 | 
|---|
| 53 |  . . . S DS=.002 Q
 | 
|---|
| 54 |  . . E  S X=DIFLD S:DIFILEI'=DIFIL X=DIFIL_" "_DIFLD S:DS]"" DS=DS_"^" S DS=DS_X
 | 
|---|
| 55 |  . . S X=$G(DIX(I,"PROMPT"))
 | 
|---|
| 56 |  . . I X="",$D(^DD(+DIFIL,+DIFLD,0))#2 S X=$P(^(0),U)
 | 
|---|
| 57 |  . . I I=1 S %=DIX(1,"TYPE")
 | 
|---|
| 58 |  . . Q:X=""  I DIX("#")=1,X=$G(DS(.002)) Q
 | 
|---|
| 59 |  . . I $L(X)+$L(P)'>70 S P=P_$P(" & ^",U,P]"")_X Q
 | 
|---|
| 60 |  . . S:P'["..." P=P_"..." Q
 | 
|---|
| 61 |  . I P]"",DS]"" S X=P D DS
 | 
|---|
| 62 |  . I @("$D("_DIC_"DIX))>9!$D(DF)"),DD="" S DD=DIX,DIW=% S:'DICNT DICNT=2 S:'$D(^(DD)) DICNT=0,DIUPRITE=0
 | 
|---|
| 63 |  . I DIC(0)'["M" S DIX="" Q
 | 
|---|
| 64 |  . D NXTINDX^DICF2(.DIX,.DIFORCE,.DIFILEI,DIF,"","*") Q:DIX=""
 | 
|---|
| 65 |  . D INDEX^DICUIX(.DIFILEI,"hql",.DIX) Q
 | 
|---|
| 66 |  K DIX
 | 
|---|
| 67 |  I DIBEGIX=DD M DIX=DISAVIX
 | 
|---|
| 68 |  E  S (DIBEGIX,DIX)=DD I DIX]"" S DIX("WAY")=1 D INDEX^DICUIX(.DIFILEI,"hl",.DIX)
 | 
|---|
| 69 |  I DD="" S DIUPRITE=1 I $O(^DD(DIFILEI,0,"IX","AZ"))]""!($O(^DD("IX","BB",DIFILEI,"AZ"))]"") S DICNT=0
 | 
|---|
| 70 |  S:DZ["BAD" DICNT=0
 | 
|---|
| 71 |  Q
 | 
|---|
| 72 |  ;
 | 
|---|
| 73 | DSPFLD ; Display list of lookup fields
 | 
|---|
| 74 |  N X S DST=$$EZBLD^DIALOG(8063,$P(DO,U)),DS=0
 | 
|---|
| 75 |  F X=1:1 S DS=$O(DS(DS)) Q:DS=""  D
 | 
|---|
| 76 |  . S:X>1!$G(DS(0)) DST=DST_$$EZBLD^DIALOG(8067)
 | 
|---|
| 77 |  . D:$L(DST)+$L(DS(DS))>70 N S DST=DST_" "_DS(DS) Q
 | 
|---|
| 78 |  K DS S DST=DST_$E(":",DICNT) D %
 | 
|---|
| 79 |  Q
 | 
|---|
| 80 |  ;
 | 
|---|
| 81 | ASKCUR ; Ask if user wants to see existing entries
 | 
|---|
| 82 |  N A1 S DDH=DDH+1,A1=0_U_$$EZBLD^DIALOG(8064)
 | 
|---|
| 83 |  I DO(2)'["s",'$D(DIC("S")),'$D(DIC("V")),'$D(DF),'$D(DIC("?PARAM",DIFILEI)) S A1=A1_$$EZBLD^DIALOG(8065,DICNT)
 | 
|---|
| 84 |  S DDH(DDH,"Q")=A1_$$EZBLD^DIALOG(8066,$P(DO,U))
 | 
|---|
| 85 |  S:$D(DDS) DDD=1 D ^DDSU
 | 
|---|
| 86 |  I '$D(DDS),$D(DTOUT) S (DIOUT,DIDONE)=1 Q
 | 
|---|
| 87 |  I $D(DDS) S %=1 I $D(DDSQ) S (DIOUT,DIDONE)=1 Q
 | 
|---|
| 88 |  ; Process answer to question about seeing existing entries.
 | 
|---|
| 89 |  S A1="T",DDH=+$G(DDH)
 | 
|---|
| 90 |  S:%=1 %Y=1
 | 
|---|
| 91 |  I %Y'="??" D
 | 
|---|
| 92 |  . N F S F=$E(%Y,2,99) I $E(%Y)="^",F]"" S DIFROM=F
 | 
|---|
| 93 |  . S %Y=F Q
 | 
|---|
| 94 |  S:%=2&(DIC(0)["L") DZ=""
 | 
|---|
| 95 |  I (%#2)=0!(%<0&(%Y="")) S (DIOUT,DIDONE)=1 Q
 | 
|---|
| 96 |  I DIFROM="" S DIOUT=1 Q
 | 
|---|
| 97 |  S DIUPRITE=$S(+$P(DIFROM,"E")=DIFROM:1,DIBEGIX]"":0,1:DIUPRITE)
 | 
|---|
| 98 |  I +$P(DIFROM,"E")=DIFROM S DIOUT=1 Q
 | 
|---|
| 99 |  Q:DIBEGIX=""  I $P(DIW,U,1)'["D" S DIOUT=1 Q
 | 
|---|
| 100 |  N %DT,Y S X=DIFROM,%DT="T" D ^%DT S DIFROM=Y,DIUPRITE=0
 | 
|---|
| 101 |  I DIFROM<0 S DST=$C(7) D % Q
 | 
|---|
| 102 |  S DIOUT=1 Q
 | 
|---|
| 103 |  ;
 | 
|---|
| 104 | DSPHLP(DIC,DIFILE,DINDEX,DZ,DINOKILL) ; Display online help for lookups (^DIC)
 | 
|---|
| 105 |  N D S D=DINDEX
 | 
|---|
| 106 |  I $D(DIBTDH) K DIBTDH Q
 | 
|---|
| 107 |  S:$D(DDSXEC) DIBTDH=1 ; Set only if there is eXecutable Help to prevent repeated '??' display from AST^DIEQ
 | 
|---|
| 108 |  I DIC(0)]"" D DQ Q:$G(DINOKILL)
 | 
|---|
| 109 |  I '$D(DDS),$G(DDH) D ^DDSU
 | 
|---|
| 110 |  I $D(DTOUT) S Y=-1 D Q^DIC2 Q
 | 
|---|
| 111 |  D A^DIC Q
 | 
|---|
| 112 |  ;
 | 
|---|
| 113 | N D % S DST="    " Q
 | 
|---|
| 114 |  ;
 | 
|---|
| 115 | % ;CALLED FROM ^DICQ1
 | 
|---|
| 116 |  S DDH=$G(DDH)+1,DDH(DDH,"T")=DST K DST Q
 | 
|---|
| 117 |  ;
 | 
|---|
| 118 | 0 Q:$D(DTOUT)!(DIC(0)'["L")  K DIW,DIUPRITE S:$D(DDS) DDD=1 D 0^DICQ1 Q
 | 
|---|
| 119 |  ;
 | 
|---|
| 120 | DIY S DIY=$P(^DD(+$P(DIY,U,2),.01,0),"$L(X)>",2),DIY=$S(DIY:DIY,1:30)+7 Q
 | 
|---|
| 121 |  ;
 | 
|---|
| 122 | SOUNDEX G DQ1
 | 
|---|
| 123 |  ;
 | 
|---|
| 124 | DS S:DO'[X DS(DS)=X I DO[X,$G(DZ)'["??" S DS(0)=1
 | 
|---|
| 125 |  Q
 | 
|---|
| 126 |  ;
 | 
|---|
| 127 |  ;
 | 
|---|
| 128 |  ;
 | 
|---|
| 129 |  ;#8063  Answer with |Filename|
 | 
|---|
| 130 |  ;#8064  Do you want the entire
 | 
|---|
| 131 |  ;#8065  |Number of entries| Entry
 | 
|---|
| 132 |  ;#8066  |Filename| List
 | 
|---|
| 133 |  ;#8067  , or
 | 
|---|
| 134 |  ;#8068  Choose from ; couldn't find a reference SO 8/11/00
 | 
|---|