- Timestamp:
- Dec 4, 2009, 12:11:15 AM (14 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
WorldVistAEHR/trunk/r/VA_FILEMAN-ARJT-DI-DD-DM-DT-%DT-%RCR/DIE.m
r613 r623 1 DIE ;SFISC/GFT,XAK-PROC.DR-STR ;28MAR2006 2 ;;22.0;VA FileMan;**1,4,8,11,59,95,159**;Mar 30, 1999;Build 8 3 ;Per VHA Directive 2004-038, this routine should not be modified. 4 N DG,DNM,DICRREC K DB I DIE S DIE=^DIC(DIE,0,"GL") 5 Q:$D(@(DIE_DA_",-9)")) Q:'$D(@(DIE_"0)")) S U="^",DP=+$P(^(0),U,2) Q:$P($G(^DD($$FNO^DILIBF(DP),0,"DI")),U,2)["Y"&'$D(DIOVRD)&'$G(DIFROM) 6 GO Q:DIE?1"^DIA(".E Q:DA'>0 K DE,DOV,DIOV,DIEC,DTOUT N DIEDA D 7 . N % 8 . F %=1:1 Q:'$G(DA(%)) S DIEDA(%)=DA(%) 9 . S DIEDA=DA 10 . Q 11 I $D(DIETMP)[0 N DIETMP S DIETMP=$$GETTMP^DIKC1("DIE") 12 N DIEFXREF,DIIENS,DIE1,DIE1N K DIEFIRE,DIEBADK,DIESP S DIIENS=$$IENS^DIKCU(DP,.DA) 13 S DL=1,DIE1=1,D0=DA,DI=DP,DR(1,DP)=DR D INI I $E(DR)'="[" D DR^DIE17 14 S DP=DI,DA=D0,(DQ,DIEL,DK,DP(0))=0 K DIC("S") 15 MR S DK=DK+1,DH=$P(DR,";",DK) I +DH=DH S (DI,DM)=DH G S:$D(^DD(DP,DI)),MR 16 S DI=$P(DH,":",1) I 'DI G K:DI=0,PB 17 J I DH["//" S DE(DQ+1,0)=$P(DH,"//",2,9),DI=$P(DI,"//",1),DH="" 18 G K:+DI=DI S DM=+DI,Y=$P(DI,DM,2,99),DI=DM G MR:Y=""!'$D(^DD(DP,DI,0)) S DQ=DQ+1,(DZ,DQ(DQ))=^(0),DIFLD(DQ)=DI 19 SPC F %=1:1 S DIESP=$P(Y,$C(126),%) Q:DIESP="" D 20 .I DIESP="d"!(DIESP="R") S $P(DZ,U,2)=$P(DZ,U,2)_DIESP Q 21 .I DIESP="T"!(DIESP="t") S:$G(^DD(DP,DI,.1))]"" $P(DZ,U)=^(.1) Q 22 .S $P(DZ,U)=DIESP,DQ(DQ,"CAPTION")=DIESP 23 S:DH'[$C(126) DH=DH_$C(126) S DQ(DQ)=DZ K DZ G Y 24 ; 25 K S DM=$P(DH,":",2),DM=$S(DM:DM,1:DI) I DI,$D(^DD(DP,DI)) G S 26 NX S DI=$O(^DD(DP,DI)) S:DI="" DI=-1 G MR:DI'>0,MR:DI>DM 27 S I DQ'<50,'$D(DE(DQ+1)) G H 28 S DQ=DQ+1,DQ(DQ)=^(DI,0),DIFLD(DQ)=DI 29 Y S Y=$P(DQ(DQ),"^",4),DG=$P(Y,";",1) 30 ;Determine whether field has a xref defined in the Index file 31 S DIEXREF=0 F S DIEXREF=$O(^DD("IX","F",DP,DI,DIEXREF)) Q:'DIEXREF I $P($G(^DD("IX",DIEXREF,0)),U) S DIEXREF=1 Q 32 I $D(^DD(DP,DI,1))!($P(DQ(DQ),U,2)["a")!DIEXREF S DE=0,DB=DM,DM=0,DE(Y)=DQ K DIEXREF F DW=1:1 S DE=$O(^DD(DP,DI,1,DE)) Q:DE<1 S DE(Y,DW,1)=^(DE,1),DE(Y,DW,2)=^(2) 33 I S:DE="" DE=-1 34 I $P(DQ(DQ),U,2)["a" S DE(Y,DW,2)="S DIIX=2_U_DIFLD(DE(DQ)) D AUDIT^DIET",DE(Y,DW,1)="S DIIX=3_U_DIFLD(DE(DQ)) D AUDIT^DIET",DE(Y)=DQ I ^DD(DP,DI,"AUDIT")="e" S DE(Y,DW,1)="I $D(DE(DE(DQ)))#2 "_DE(Y,DW,1) 35 S Y=$P(Y,";",2) I DU'=DG S D="",DU=DG,@DC G M:Y=0,B:DU=" ",EQ:DW[0 S D=^(DG) 36 I Y S:$P(D,"^",Y)]"" DE(DQ)=$P(D,"^",Y) 37 E S Y=$E(D,+$E(Y,2,9),$P(Y,",",2)) S:Y'?." " DE(DQ)=Y 38 EQ G MR:DI=DM,NX:DM S DM=DB K DB G D 39 ; 40 INI K DIC("S") S DIC=DIE,DU=-1,DC="DW=$D("_DIE_DA_",DG))" 41 Q Q 42 ; 43 ; 44 MORE ;from ^DIE1 45 D INI G MR:DI=DM,NX:DI'[U,MR:'$D(^DD(DP,+DI)) S %=$P(DI,U,2),DI=+DI S:%]"" DQ(DQ+1,"CAPTION")=% G S 46 ; 47 ; 48 JMP ;from ^DIE0 49 D INI G J 50 ; 51 PB I DH="" G D:$D(DR(DIE1,DP))<9 S:'$D(DOV) DOV=0,DR(DIE1,DP)=DR S DOV=$O(DR(DIE1,DP,DOV)) S:DOV="" DOV=-1 G D:DOV'>0 S DR=DR(DIE1,DP,DOV),DK=0 G MR 52 G MR:DH?1"@".N I 'DQ G TEM:DH?1"[".E S:"Q"'=DH DQ=1,DQ(0,1)=DH G MR:$A(DH)-94 S DC=$P(DH,U,1,4) X $P(DH,U,5,999) D DIE1N G O^DIE0 53 E S DK=DK-1,(DI,DM)=1 54 D G DQ^DIED 55 ; 56 H S DI=DI_U G D 57 ;Multiple field 58 M S Y=$P(DQ(DQ),U,2)_U_DG G DC:DW<9 59 I $D(DSC(+Y))#2,$P(DSC(+Y),"I $D(^UTILITY(",1)="" S D=DIEL+1 D D1 X DSC(+Y) S D=$O(^(0)) S:D="" D=-1 S @DC S DC=$O(^(DG,0)) S:DC="" DC=-1 G DE 60 I $D(^(DG,0)) S D=$P(^(0),U,3,4) S:$P(^(0),U,2)'=$P(Y,U) $P(^(0),U,2)=$P(Y,U) ;HMMM 61 E S D=$O(^(0)) S:D="" D=-1 62 DE I D>0 S Y=Y_U_D I DP(0)-Y!($P(DP(0),U,2)-DK),$D(^(+D,0)) S DE(DQ)=$P(^(0),U) ;Default value if this isn't same multiple we were down in before 63 DC S DC=$P(^DD(+Y,0),U,4)_U_Y,%=DQ(DQ),Y=^(.01,0) 64 MUL I $P(Y,U,2)'["W" S DQ(DQ)=$P($$EZBLD^DIALOG(8042,$G(DQ(DQ,"CAPTION"),$P(Y,U))),": ")_U_1_$P(Y,U,2,99) D DIE1N G D ;MULTIPLE-FIELD LABEL 65 I DQ>1 K DQ(DQ) G E:$D(DE(DQ,0)),H 66 D 67 .Q:DH'[$C(126) 68 .N DIEA S DIEA=$P($P(DH,+DH,2),$C(126)) Q:DIEA=""!(DIEA="d")!(DIEA="R") 69 .I DIEA="T"!(DIEA="t") S:$D(^DD(+$P(%,U,2),.01,.1)) DQ(DQ,"CAPTION")=^(.1) Q 70 .S DQ(DQ,"CAPTION")=DIEA 71 DIWE S Y=$G(DQ(DQ,"CAPTION"),$P(%,U))_U_$P(Y,U,2) D DIEN^DIWE K DQ,DG,DE S DQ=0 G QY^DIE1:$D(DTOUT) G MORE ;WORD-PROCESSING FIELD LABEL 72 ; 73 D1 Q:D'>0 S:'$D(@("D"_D)) @("D"_D)=0 S D=D-1 G D1 74 ; 75 DIE1N N M,I S DIE1N="" F I=DK,DK+1 S M=$P(DR,";",I) I M?1"^"1.NP S DIE1N=$P(M,U,2) S:I>DK DK=DK+1 Q ;WPB-0804-30857 76 Q 77 ; 78 ; 79 B K DQ(DQ) S DQ=DQ-1,DU=-9 G EQ 80 ; 81 TEM K:$D(DIETMP)#2 @DIETMP,DIETMP 82 S Y=0 F S Y=$O(^DIE("B",$P($E(DR,2,99),"]",1),Y)) S:Y="" Y=-1 G Q:Y=-1,Q:'$D(^DIE(+Y,0)) Q:$P(^(0),U,4)=DP 83 S $P(^(0),U,7)=DT I $G(^("ROU"))[U,$$ROUEXIST^DILIBF($P(^("ROU"),U,2)) G @^DIE(+Y,"ROU") 84 S:$D(^("W")) DIE("W")=^("W") S %X="^DIE(+Y,""DR"",",%Y="DR(" D %XY^%RCR 85 S DIE("^")=DR,DR=$S($D(^DIE(Y,"DR"))#2:^("DR"),1:DR(1,DP)) D DIE K DR S DR=DIE(U) 86 Q 87 ; 88 ;Silent call concerning editing and filing of data. 89 ; 90 FILE(DIEFFLAG,DIEFAR,DIEFOUT) ; 91 G FILEX^DIEF 92 ; 93 WP(DIEFF,DIEFIEN,DIEFFLD,DIEFWPFL,DIEFTSRC,DIEFOUT) ; 94 G WPX^DIEFW 95 ; 96 HELP(DIEHF,DIEHIEN,DIEHFLD,DIEHFLG,DIEHOUT) ; 97 G GETX^DIEH 98 ; 99 VAL(DIEVF,DIEVIEN,DIEVFLD,DIEVFLG,DIEVAL,DIEVANS,DIEVFAR,DIOUTAR) ; 100 G VALX^DIEV 101 ; 102 KEYVAL(DIVKFLAG,DIVKFDA,DIVKOUT) ; 103 G KEYVALX^DIEVK 104 ; 105 VALS(DIVSFLAG,DIVSEFDA,DIVSIFDA,DIVSMSG) ; 106 G VALSX^DIEVS 107 ; 108 CHK(DIEVF,DIEVFLD,DIEVFLG,DIEVAL,DIEVANS,DIOUTAR) ; 109 G CHKX^DIEV 110 ; 111 UPDATE(DIFLAGS,DIFDA,DIEN,DIMSGA) ;SEA/TOAD 112 ; ENTRY POINT--update database 113 ; procedure, all passed by value 114 G ADDX^DICA 115 ; 1 DIE ;SFISC/GFT,XAK-PROC.DR-STR ;2:40 PM 17 Sep 2002 2 ;;22.0;VA FileMan;**1,4,8,11,59,95**;Mar 30, 1999 3 ;Per VHA Directive 10-93-142, this routine should not be modified. 4 N DG,DNM,DICRREC K DB I DIE S DIE=^DIC(DIE,0,"GL") 5 Q:$D(@(DIE_DA_",-9)")) Q:'$D(@(DIE_"0)")) S U="^",DP=+$P(^(0),U,2) Q:$P($G(^DD($$FNO^DILIBF(DP),0,"DI")),U,2)["Y"&'$D(DIOVRD)&'$G(DIFROM) 6 GO Q:DIE?1"^DIA(".E K DE,DOV,DIOV,DIEC,DTOUT N DIEDA D 7 . N % 8 . F %=1:1 Q:'$G(DA(%)) S DIEDA(%)=DA(%) 9 . S DIEDA=DA 10 . Q 11 I $D(DIETMP)[0 N DIETMP S DIETMP=$$GETTMP^DIKC1("DIE") 12 N DIEFXREF,DIIENS K DIEFIRE,DIEBADK S DIIENS=$$IENS^DIKCU(DP,.DA) 13 S DL=1,D0=DA,DI=DP,DR(1,DP)=DR D INI I $E(DR)'="[" D DR^DIE17 14 S DP=DI,DA=D0,(DQ,DIEL,DK,DP(0))=0 K DIC("S") 15 MR S DK=DK+1,DH=$P(DR,";",DK) I +DH=DH S (DI,DM)=DH G S:$D(^DD(DP,DI)),MR 16 S DI=$P(DH,":",1) I 'DI G K:DI=0,PB 17 J I DH["//" S DE(DQ+1,0)=$P(DH,"//",2,9),DI=$P(DI,"//",1),DH="" 18 G K:+DI=DI S DM=+DI,Y=$P(DI,DM,2,99),DI=DM G MR:Y=""!'$D(^DD(DP,DI,0)) S DQ=DQ+1,(DZ,DQ(DQ))=^(0),DIFLD(DQ)=DI 19 F %=1:1 S DIG=$P(Y,$C(126),%) Q:DIG="" S DZ=$S(DIG="d"!(DIG="R"):$P(DZ,U,1,2)_DIG_U_$P(DZ,U,3,99),DIG="T":$S($D(^(.1)):^(.1),1:$P(DZ,U))_U_$P(DZ,U,2,99),1:DIG_U_$P(DZ,U,2,99)) 20 S:DH'[$C(126) DH=DH_$C(126) S DQ(DQ)=DZ K DZ,DIG G Y 21 K S DM=$P(DH,":",2),DM=$S(DM:DM,1:DI) I DI,$D(^DD(DP,DI)) G S 22 NX S DI=$O(^DD(DP,DI)) S:DI="" DI=-1 G MR:DI'>0,MR:DI>DM 23 S I DQ'<50,'$D(DE(DQ+1)) G H 24 S DQ=DQ+1,DQ(DQ)=^(DI,0),DIFLD(DQ)=DI 25 Y S Y=$P(DQ(DQ),"^",4),DG=$P(Y,";",1) 26 ;Determine whether field has a xref defined in the Index file 27 S DIEXREF=0 F S DIEXREF=$O(^DD("IX","F",DP,DI,DIEXREF)) Q:'DIEXREF I $P($G(^DD("IX",DIEXREF,0)),U) S DIEXREF=1 Q 28 I $D(^DD(DP,DI,1))!($P(DQ(DQ),U,2)["a")!DIEXREF S DE=0,DB=DM,DM=0,DE(Y)=DQ K DIEXREF F DW=1:1 S DE=$O(^DD(DP,DI,1,DE)) Q:DE<1 S DE(Y,DW,1)=^(DE,1),DE(Y,DW,2)=^(2) 29 I S:DE="" DE=-1 30 I $P(DQ(DQ),U,2)["a" S DE(Y,DW,2)="S DIIX=2_U_DIFLD(DE(DQ)) D AUDIT^DIET",DE(Y,DW,1)="S DIIX=3_U_DIFLD(DE(DQ)) D AUDIT^DIET",DE(Y)=DQ I ^DD(DP,DI,"AUDIT")="e" S DE(Y,DW,1)="I $D(DE(DE(DQ)))#2 "_DE(Y,DW,1) 31 S Y=$P(Y,";",2) I DU'=DG S D="",DU=DG,@DC G M:Y=0,B:DU=" ",EQ:DW[0 S D=^(DG) 32 I Y S:$P(D,"^",Y)]"" DE(DQ)=$P(D,"^",Y) 33 E S Y=$E(D,+$E(Y,2,9),$P(Y,",",2)) S:Y'?." " DE(DQ)=Y 34 EQ G MR:DI=DM,NX:DM S DM=DB K DB G D 35 ; 36 INI K DIC("S") S DIC=DIE,DU=-1,DC="DW=$D("_DIE_DA_",DG))" 37 Q Q 38 MORE ; 39 D INI G MR:DI=DM,NX:DI'[U S DI=+DI G S:$D(^DD(DP,DI)),MR 40 JMP ; 41 D INI G J 42 ; 43 PB I DH="" G D:$D(DR(DL,DP))<9 S:'$D(DOV) DOV=0,DR(DL,DP)=DR S DOV=$O(DR(DL,DP,DOV)) S:DOV="" DOV=-1 G D:DOV'>0 S DR=DR(DL,DP,DOV),DK=0 G MR 44 G MR:DH?1"@".N I 'DQ G TEM:DH?1"[".E S:"Q"'=DH DQ=1,DQ(0,1)=DH G MR:$A(DH)-94 S DC=$P(DH,U,1,4) X $P(DH,U,5,999) G O^DIE0 45 E S DK=DK-1,(DI,DM)=1 46 D G DQ^DIED 47 H S DI=DI_U G D 48 M S Y=$P(DQ(DQ),U,2)_U_DG G DC:DW<9 49 I $D(DSC(+Y))#2,$P(DSC(+Y),"I $D(^UTILITY(",1)="" S D=DIEL+1 D D1 X DSC(+Y) S D=$O(^(0)) S:D="" D=-1 S @DC S DC=$O(^(DG,0)) S:DC="" DC=-1 G DE 50 I $D(^(DG,0)) S D=$P(^(0),U,3,4) S:$P(^(0),U,2)'=$P(Y,U) $P(^(0),U,2)=$P(Y,U) 51 E S D=$O(^(0)) S:D="" D=-1 52 DE I D>0 S Y=Y_U_D I DP(0)-Y,$D(^(+D,0)) S DE(DQ)=$P(^(0),U,1) 53 DC S DC=$P(^DD(+Y,0),U,4)_U_Y,%=DQ(DQ),Y=^(.01,0) I $P(Y,U,2)'["W" S DQ(DQ)="Select "_$P(Y,U,1)_U_1_$P(Y,U,2,99) G D 54 I DQ>1 K DQ(DQ) G E:$D(DE(DQ,0)),H 55 D 56 .Q:DH'[$C(126) 57 .N DIEA S DIEA=$P($P(DH,+DH,2),$C(126)) Q:DIEA=""!(DIEA="d")!(DIEA="R") 58 .S $P(%,U)=$S(DIEA="T"&$D(^DD(+$P(%,U,2),.01,.1)):^(.1),1:DIEA) 59 .Q 60 S Y=$P(%,U,1)_U_$P(Y,U,2) D DIEN^DIWE K DQ,DG,DE S DQ=0 G QY^DIE1:$D(DTOUT) G MORE 61 ; 62 D1 Q:D'>0 S:'$D(@("D"_D)) @("D"_D)=0 S D=D-1 G D1 63 ; 64 B K DQ(DQ) S DQ=DQ-1,DU=-9 G EQ 65 ; 66 TEM K:$D(DIETMP)#2 @DIETMP,DIETMP 67 S Y=0 F S Y=$O(^DIE("B",$P($E(DR,2,99),"]",1),Y)) S:Y="" Y=-1 G Q:Y=-1,Q:'$D(^DIE(+Y,0)) Q:$P(^(0),U,4)=DP 68 S $P(^(0),U,7)=DT I $G(^("ROU"))[U,$$ROUEXIST^DILIBF($P(^("ROU"),U,2)) G @^DIE(+Y,"ROU") 69 S:$D(^("W")) DIE("W")=^("W") S %X="^DIE(+Y,""DR"",",%Y="DR(" D %XY^%RCR 70 S DIE("^")=DR,DR=$S($D(^DIE(Y,"DR"))#2:^("DR"),1:DR(1,DP)) D DIE K DR S DR=DIE(U) 71 Q 72 ; 73 ;Silent call concerning editing and filing of data. 74 ; 75 FILE(DIEFFLAG,DIEFAR,DIEFOUT) ; 76 G FILEX^DIEF 77 ; 78 WP(DIEFF,DIEFIEN,DIEFFLD,DIEFWPFL,DIEFTSRC,DIEFOUT) ; 79 G WPX^DIEFW 80 ; 81 HELP(DIEHF,DIEHIEN,DIEHFLD,DIEHFLG,DIEHOUT) ; 82 G GETX^DIEH 83 ; 84 VAL(DIEVF,DIEVIEN,DIEVFLD,DIEVFLG,DIEVAL,DIEVANS,DIEVFAR,DIOUTAR) ; 85 G VALX^DIEV 86 ; 87 KEYVAL(DIVKFLAG,DIVKFDA,DIVKOUT) ; 88 G KEYVALX^DIEVK 89 ; 90 VALS(DIVSFLAG,DIVSEFDA,DIVSIFDA,DIVSMSG) ; 91 G VALSX^DIEVS 92 ; 93 CHK(DIEVF,DIEVFLD,DIEVFLG,DIEVAL,DIEVANS,DIOUTAR) ; 94 G CHKX^DIEV 95 ; 96 UPDATE(DIFLAGS,DIFDA,DIEN,DIMSGA) ;SEA/TOAD 97 ; ENTRY POINT--update database 98 ; procedure, all passed by value 99 G ADDX^DICA 100 ;
Note:
See TracChangeset
for help on using the changeset viewer.