Ignore:
Timestamp:
Dec 4, 2009, 12:11:15 AM (14 years ago)
Author:
George Lilly
Message:

revised back to 6/30/08 version

File:
1 edited

Legend:

Unmodified
Added
Removed
  • WorldVistAEHR/trunk/r/VA_FILEMAN-ARJT-DI-DD-DM-DT-%DT-%RCR/DIC5.m

    r613 r623  
    1 DIC5    ;SFISC/XAK,TKW,SEA/TOAD-VA FileMan: Lookup, Part 1 (utilities) ;05/28/2008
    2         ;;22.0;VA FileMan;**4,20,31,70,159**;Mar 30, 1999;Build 8
    3         ;Per VHA Directive 2004-038, this routine should not be modified.
    4 NODE75  ; Do after executing 7.5 node on DD, called from ^DIC
    5         I $D(X)#2 S (DIVAL,DIVAL(1))=X Q
    6         S Y=-1 Q:DIC(0)'["Q"!(DIC(0)'["E")
    7         W $C(7) Q:$D(DDS)
    8         W !,$$EZBLD^DIALOG(120,$$EZBLD^DIALOG(8090)) Q
    9         ;
    10 BYIEN1  ; Lookup record by IEN when user enters `n for a number 'n', called from ^DIC
    11         S Y=$E(X,2,30) I Y="" S Y=-1 Q
    12         N % S %=DINDEX("START") N DINDEX S DINDEX="",DINDEX("#")=1,DINDEX("START")=%
    13         D S^DIC3 I '$T S Y=-1 Q
    14         N DD,DS,DZ S DS=1,DD=Y,DIX=X D ADDKEY^DIC3,GOT^DIC2
    15         Q
    16         ;
    17 BYIEN2  ; Lookup record by IEN when user enters a numeric lookup value, called from ^DIC
    18         Q:DO(2)<0!($D(DF))
    19         N T S T=DINDEX(1,"TYPE")
    20         I $D(@(DIC_"X,0)")) D  Q:Y>0
    21         . N DD S DD=$D(^DD(DIFILEI,.001))
    22         . I 'DD Q:T["N"  I '$O(@(DIC_"""A["")")),$O(^("A["))]"" Q
    23         . N % S %=DINDEX("START") N DINDEX S DINDEX="",DINDEX("#")=1,DINDEX("START")=%
    24         . S Y=X D S^DIC3 I '$T S Y=-1 Q
    25         . N DZ,DS,DIX,DIC5D S DIC5D=D,DS=1,DIX=X D ADDKEY^DIC3,GOT^DIC2 Q:Y>0
    26         . D DO^DIC1 S D=DIC5D
    27         I T["P"!(T["V"),DIC(0)'["U" S DISKIPIX=D
    28         Q
    29         ;
    30 SPACEBAR        ; Lookup last record selected by this user when user enters space bar return.  Called from ^DIC
    31         N % S %=DINDEX("START") N DINDEX S DINDEX="",DINDEX("#")=1,DINDEX("START")=%
    32         D S^DIC3 I '$T S Y=-1 Q
    33         N DZ,DS,DIX S DS=1,DIX=X D ADDKEY^DIC3,GOT^DIC2 Q
    34         ;
    35 KEEPON  ; If DIC(0)["T", display entries found so far, then check for internal value if index is date, set, pointer, VP.  Called from ^DIC3.
    36         I DS D  Q:Y>0!($G(DTOUT))!($G(DIROUT))
    37         . N I M I=X N X M X=I S I=D N D S D=I K I
    38         . I DS=1 D
    39         . . S DS("DD")=1 D G^DIC2 Q
    40         . E  I $G(DS("DD"))'=DS D Y^DIC1 I '$D(DIROUT),$D(DUOUT) K DUOUT ;22*70
    41         . K DD,DS,DIX,DIYX S (DD,DS,DS("DD"))=0
    42         . S:DIC(0)["E" DS(0,"HDRDSP",DIFILEI)=1
    43         . S DS(0)=$S(Y>0:"1^"_+Y,$G(DTOUT):"1^T",$G(DIROUT):"1^U",1:0)
    44         . Q
    45         Q:DIC(0)["U"  I DINDEX=DINDEX("START"),$G(DINDEX("#"))>1 Q
    46         N I M I=X N X M X=I S I=D N D S D=I K I
    47         D 1^DICM
    48         K DD,DS,DIX,DIYX S (DD,DS,DS("DD"))=0
    49         S DS(0)=$S(Y>0:"1^"_+Y,$G(DTOUT):"1^T",$G(DIROUT):"1^U",1:0)
    50         Q
    51         ;
    52 PTRID(DO,DIC)   ; Build code in DIC("W") to display Identifiers on pointed-to files
    53         N DIFILEI,DIGBL,DIOGBL S DIFILEI=+DO(2),DIOGBL=DIC
    54         F  S DIFILEI=+$P($P($G(^DD(DIFILEI,.01,0)),U,2),"P",2) Q:'DIFILEI  S DIGBL=$G(^DIC(DIFILEI,0,"GL")) Q:DIGBL=""  D Q
    55         Q
    56 Q       ; Build Identifier code for a single pointed-to file
    57         N DIGBL1 S DIGBL1=DIGBL
    58         I DIGBL[$C(34) S DIGBL1=$$CONVQQ^DILIBF(DIGBL)
    59         N N,O,% S N=$O(DIC("W",999999),-1)
    60         S O=$S(N:DIC("W",N),1:DIC("W"))
    61         N % S %="I '$G(DICR) S DIEN=+"_DIOGBL_"DIEN,0) I $D("_DIGBL_"DIEN,0)) S DIFILEI="_DIFILEI_",DIGBL="""_DIGBL1_""" D WOV^DICQ1"
    62         S DIOGBL=DIGBL
    63         I ($L(O)+$L(%))<230 D  Q
    64         . I 'N S DIC("W")=DIC("W")_" "_% Q
    65         . S DIC("W",N)=DIC("W",N)_" "_% Q
    66         S N=N+1,DIC("W",N)=%
    67         I N=1 S DIC("W")=DIC("W")_" X DIC(""W"",1)" Q
    68         S DIC("W",N-1)=DIC("W",N-1)_" X DIC(""W"","_N_")"
    69         Q
    70         ;
     1DIC5 ;SFISC/XAK,TKW,SEA/TOAD-VA FileMan: Lookup, Part 1 (utilities) ;1:56 PM  19 Sep 2002
     2 ;;22.0;VA FileMan;**4,20,31,70**;Mar 30, 1999
     3 ;Per VHA Directive 10-93-142, this routine should not be modified.
     4NODE75 ; Do after executing 7.5 node on DD, called from ^DIC
     5 I $D(X)#2 S (DIVAL,DIVAL(1))=X Q
     6 S Y=-1 Q:DIC(0)'["Q"!(DIC(0)'["E")
     7 W $C(7) Q:$D(DDS)
     8 W !,$$EZBLD^DIALOG(120,$$EZBLD^DIALOG(8090)) Q
     9 ;
     10BYIEN1 ; Lookup record by IEN when user enters `n for a number 'n', called from ^DIC
     11 S Y=$E(X,2,30) I Y="" S Y=-1 Q
     12 N % S %=DINDEX("START") N DINDEX S DINDEX="",DINDEX("#")=1,DINDEX("START")=%
     13 D S^DIC3 I '$T S Y=-1 Q
     14 N DD,DS,DZ S DS=1,DD=Y,DIX=X D ADDKEY^DIC3,GOT^DIC2
     15 Q
     16 ;
     17BYIEN2 ; Lookup record by IEN when user enters a numeric lookup value, called from ^DIC
     18 Q:DO(2)<0!($D(DF))
     19 N T S T=DINDEX(1,"TYPE")
     20 I $D(@(DIC_"X,0)")) D  Q:Y>0
     21 . N DD S DD=$D(^DD(DIFILEI,.001))
     22 . I 'DD Q:T["N"  I '$O(@(DIC_"""A["")")),$O(^("A["))]"" Q
     23 . N % S %=DINDEX("START") N DINDEX S DINDEX="",DINDEX("#")=1,DINDEX("START")=%
     24 . S Y=X D S^DIC3 I '$T S Y=-1 Q
     25 . N DZ,DS,DIX S DS=1,DIX=X D ADDKEY^DIC3,GOT^DIC2 Q
     26 I T["P"!(T["V"),DIC(0)'["U" S DISKIPIX=D
     27 Q
     28 ;
     29SPACEBAR ; Lookup last record selected by this user when user enters space bar return.  Called from ^DIC
     30 N % S %=DINDEX("START") N DINDEX S DINDEX="",DINDEX("#")=1,DINDEX("START")=%
     31 D S^DIC3 I '$T S Y=-1 Q
     32 N DZ,DS,DIX S DS=1,DIX=X D ADDKEY^DIC3,GOT^DIC2 Q
     33 ;
     34KEEPON ; If DIC(0)["T", display entries found so far, then check for internal value if index is date, set, pointer, VP.  Called from ^DIC3.
     35 I DS D  Q:Y>0!($G(DTOUT))!($G(DIROUT))
     36 . N I M I=X N X M X=I S I=D N D S D=I K I
     37 . I DS=1 D
     38 . . S DS("DD")=1 D G^DIC2 Q
     39 . E  I $G(DS("DD"))'=DS D Y^DIC1 I '$D(DIROUT),$D(DUOUT) K DUOUT ;22*70
     40 . K DD,DS,DIX,DIYX S (DD,DS,DS("DD"))=0
     41 . S:DIC(0)["E" DS(0,"HDRDSP",DIFILEI)=1
     42 . S DS(0)=$S(Y>0:"1^"_+Y,$G(DTOUT):"1^T",$G(DIROUT):"1^U",1:0)
     43 . Q
     44 Q:DIC(0)["U"  I DINDEX=DINDEX("START"),$G(DINDEX("#"))>1 Q
     45 N I M I=X N X M X=I S I=D N D S D=I K I
     46 D 1^DICM
     47 K DD,DS,DIX,DIYX S (DD,DS,DS("DD"))=0
     48 S DS(0)=$S(Y>0:"1^"_+Y,$G(DTOUT):"1^T",$G(DIROUT):"1^U",1:0)
     49 Q
     50 ;
     51PTRID(DO,DIC) ; Build code in DIC("W") to display Identifiers on pointed-to files
     52 N DIFILEI,DIGBL,DIOGBL S DIFILEI=+DO(2),DIOGBL=DIC
     53 F  S DIFILEI=+$P($P($G(^DD(DIFILEI,.01,0)),U,2),"P",2) Q:'DIFILEI  S DIGBL=$G(^DIC(DIFILEI,0,"GL")) Q:DIGBL=""  D Q
     54 Q
     55Q ; Build Identifier code for a single pointed-to file
     56 N DIGBL1 S DIGBL1=DIGBL
     57 I DIGBL[$C(34) S DIGBL1=$$CONVQQ^DILIBF(DIGBL)
     58 N N,O,% S N=$O(DIC("W",999999),-1)
     59 S O=$S(N:DIC("W",N),1:DIC("W"))
     60 N % S %="I '$G(DICR) S DIEN=+"_DIOGBL_"DIEN,0) I $D("_DIGBL_"DIEN,0)) S DIFILEI="_DIFILEI_",DIGBL="""_DIGBL1_""" D WOV^DICQ1"
     61 S DIOGBL=DIGBL
     62 I ($L(O)+$L(%))<230 D  Q
     63 . I 'N S DIC("W")=DIC("W")_" "_% Q
     64 . S DIC("W",N)=DIC("W",N)_" "_% Q
     65 S N=N+1,DIC("W",N)=%
     66 I N=1 S DIC("W")=DIC("W")_" X DIC(""W"",1)" Q
     67 S DIC("W",N-1)=DIC("W",N-1)_" X DIC(""W"","_N_")"
     68 Q
     69 ;
Note: See TracChangeset for help on using the changeset viewer.