[613] | 1 | DDS4 ;SFISC/MKO-FILE AND RELOAD ;21SEP2006
|
---|
| 2 | ;;22.0;VA FileMan;**11,151**;Mar 30, 1999;Build 10
|
---|
| 3 | ;Per VHA Directive 2004-038, this routine should not be modified.
|
---|
| 4 | D ^DDS41 Q:Y'=1
|
---|
| 5 | N DA,DDO,DIE,DDP,DDSDA
|
---|
| 6 | ;
|
---|
| 7 | S DX=0,DY=IOSL-1 X IOXY W "Filing form"_$P(DDGLCLR,DDGLDEL)
|
---|
| 8 | ;
|
---|
| 9 | ;File data
|
---|
| 10 | S DDS4FI="F"
|
---|
| 11 | F S DDS4FI=$O(@DDSREFT@(DDS4FI)) Q:DDS4FI'?1"F".E D
|
---|
| 12 | . S DDP=$E(DDS4FI,2,999),DDS4DA=" "
|
---|
| 13 | . F S DDS4DA=$O(@DDSREFT@(DDS4FI,DDS4DA)) Q:DDS4DA="" D REC
|
---|
| 14 | ;
|
---|
| 15 | ;Reload all pages on form
|
---|
| 16 | S DDS4P=0
|
---|
| 17 | F S DDS4P=$O(@DDSREFT@(DDS4P)) Q:'DDS4P D
|
---|
| 18 | . S DDS4B=0
|
---|
| 19 | . F S DDS4B=$O(@DDSREFT@(DDS4P,DDS4B)) Q:'DDS4B D
|
---|
| 20 | .. S DDP=$P(@DDSREFS@(DDS4P,DDS4B),U,3),DDSDA=" "
|
---|
| 21 | .. F S DDSDA=$O(@DDSREFT@(DDS4P,DDS4B,DDSDA)) Q:'DDSDA D
|
---|
| 22 | ... S $P(@DDSREFT@(DDS4P,DDS4B,DDSDA),U)=1,DIE=^(DDSDA,"GL")
|
---|
| 23 | ... Q:$P(@DDSREFT@(DDS4P,DDS4B,DDSDA),U,6)>1
|
---|
| 24 | ... D GDA(DDSDA)
|
---|
| 25 | ... D ^DDS11(DDS4B,1)
|
---|
| 26 | ;
|
---|
| 27 | I $G(^DIST(.403,+DDS,14))'?."^" D
|
---|
| 28 | . I $G(DDSPTB)_$G(DDSREP)]"" N DIE,DDP,DDSDA,DA,DDSDL D
|
---|
| 29 | .. S DA=DDSDAORG,DDSDL=DDSDLORG,DDSDA=DA_","
|
---|
| 30 | .. F DDSI=1:1:DDSDL S DA(DDSI)=DDSDAORG(DDSI),DDSDA=DDSDA_DA(DDSI)_","
|
---|
| 31 | .. S DDP=$P($G(DDSFLORG),U),DIE=U_$P($G(DDSFLORG),U,2) S:DIE=U DIE=""
|
---|
| 32 | . X ^DIST(.403,+DDS,14)
|
---|
| 33 | I '$G(DDSSAVE),$G(DDSPARM)["S" S DDSSAVE=1
|
---|
| 34 | S (Y,DDSH)=1,(DDSCHG,DX)=0,DY=IOSL-1 X IOXY W $P(DDGLCLR,DDGLDEL)
|
---|
| 35 | K @DDSREFT@("ADD"),@DDSREFT@("RXR")
|
---|
| 36 | K DIC,DDS1B,DDS1DA,DDS4B,DDS4DA,DDS4FI,DDS4FLD,DDS4FO,DDS4P
|
---|
| 37 | K DDSEXT,DDSI,DDSINT,DDSLC,DDSLN,DDSND,DDSOND,DDSOLD,DDSP,DDSPC
|
---|
| 38 | K DDSW,DDSX,DV
|
---|
| 39 | Q
|
---|
| 40 | REC ;
|
---|
| 41 | G:DDS4FI="F0" FORMONLY
|
---|
| 42 | ;
|
---|
| 43 | S DIE=$G(@DDSREFT@(DDS4FI,DDS4DA,"GL")) I DIE="" Q ;JUST TO BE SAFE!
|
---|
| 44 | D GDA(DDS4DA)
|
---|
| 45 | S DDSOND=-1 K DDSLN
|
---|
| 46 | S DDS4FLD=""
|
---|
| 47 | F S DDS4FLD=$O(@DDSREFT@(DDS4FI,DDS4DA,DDS4FLD)) Q:DDS4FLD="" D FLD
|
---|
| 48 | S:$D(DDSLN)#2 @(DIE_"DA,DDSND)")=DDSLN
|
---|
| 49 | ;
|
---|
| 50 | I $D(@DDSREFT@("RXR")) D
|
---|
| 51 | . D FIRE^DIKC(DDP,.DA,"KS",$NA(@DDSREFT@("RXR")),"O^")
|
---|
| 52 | . K @DDSREFT@("RXR")
|
---|
| 53 | Q
|
---|
| 54 | FLD ;
|
---|
| 55 | Q:'$G(@DDSREFT@(DDS4FI,DDS4DA,DDS4FLD,"F")) S ^("F")=""
|
---|
| 56 | I '$G(DDSCHANG),$G(DDSPARM)["C" S DDSCHANG=1
|
---|
| 57 | S DDSINT=$G(@DDSREFT@(DDS4FI,DDS4DA,DDS4FLD,"D"))
|
---|
| 58 | ;
|
---|
| 59 | ;Word processing fields (quit if multiple)
|
---|
| 60 | I $D(@DDSREFT@(DDS4FI,DDS4DA,DDS4FLD,"M"))#2 D:'$P(^("M"),U) Q
|
---|
| 61 | . N FR,TO
|
---|
| 62 | . S FR=$NA(@DDSREFT@(DDS4FI,DDS4DA,DDS4FLD,"D"))
|
---|
| 63 | . S TO=U_$$CREF^DILF($P(@DDSREFT@(DDS4FI,DDS4DA,DDS4FLD,"M"),U,2))
|
---|
| 64 | . K @TO
|
---|
| 65 | . M @TO=@FR
|
---|
| 66 | . K @FR,@DDSREFT@(DDS4FI,DDS4DA,DDS4FLD,"F")
|
---|
| 67 | ;
|
---|
| 68 | Q:$G(^DD(DDP,DDS4FLD,0))?."^" S DDSND=$P(^(0),U,4)
|
---|
| 69 | S DDSPC=$P(DDSND,";",2) Q:"0 "[DDSPC
|
---|
| 70 | S DDSND=$P(DDSND,";")
|
---|
| 71 | ;
|
---|
| 72 | I DDSOND'=DDSND D
|
---|
| 73 | . S:$D(DDSLN)#2 @(DIE_"DA,DDSOND)")=DDSLN
|
---|
| 74 | . S DDSLN=$G(@(DIE_"DA,DDSND)"))
|
---|
| 75 | . S DDSOND=DDSND
|
---|
| 76 | ;
|
---|
| 77 | I DDSPC D
|
---|
| 78 | . S DDSOLD=$P(DDSLN,U,DDSPC)
|
---|
| 79 | . S $P(DDSLN,U,DDSPC)=DDSINT
|
---|
| 80 | E D
|
---|
| 81 | . S DDSW=$E(DDSPC,2,999),DDSP=$P(DDSW,",",2)+1
|
---|
| 82 | . S DDSOLD=$E(DDSLN,+DDSW,DDSP-1)
|
---|
| 83 | . S DDSX=$E(DDSLN,DDSP,999)
|
---|
| 84 | . S DDSLN=$E(DDSLN,1,DDSW-1)_$J("",DDSW-1-$L(DDSLN))_DDSINT
|
---|
| 85 | . S:DDSX'?." " DDSLN=DDSLN_$J("",DDSP-DDSW-$L(DDSINT))_DDSX
|
---|
| 86 | ;
|
---|
| 87 | I $D(^DD(DDP,DDS4FLD,1))!($P(^(0),U,2)["a")!$D(^DD("IX","F",DDP,DDS4FLD)) D XR
|
---|
| 88 | Q
|
---|
| 89 | XR ;
|
---|
| 90 | N DICRREC,DG,DP,DDS4AUD1,DDS4AUD2,DIANUM,DIIX,C,Y
|
---|
| 91 | S DP=DDP,DDSOND=-1
|
---|
| 92 | I $D(DDSLN)#2 S @(DIE_"DA,DDSND)")=DDSLN K DDSLN
|
---|
| 93 | S DICRREC="TRIG^DDS4"
|
---|
| 94 | ;
|
---|
| 95 | I $P(^DD(DDP,DDS4FLD,0),U,2)["a" D
|
---|
| 96 | . S (DDS4AUD1,DDS4AUD2)=1
|
---|
| 97 | . I $G(^DD(DDP,DDS4FLD,"AUDIT"))["e",DDSOLD="" S DDS4AUD1=0
|
---|
| 98 | ;
|
---|
| 99 | I DDSOLD]"" D
|
---|
| 100 | . S DG=0 F S DG=$O(^DD(DDP,DDS4FLD,1,DG)) Q:DG<1 D
|
---|
| 101 | .. S DIC=DIE,X=DDSOLD
|
---|
| 102 | .. X:$D(^DD(DDP,DDS4FLD,1,DG,2))#2 ^(2)
|
---|
| 103 | . I $G(DDS4AUD2) S DG=1,X=DDSOLD,DIIX="2^"_DDS4FLD D AUDIT^DIET
|
---|
| 104 | ;
|
---|
| 105 | I DDSINT]"" D
|
---|
| 106 | . S DG=0 F S DG=$O(^DD(DDP,DDS4FLD,1,DG)) Q:DG<1 D
|
---|
| 107 | .. S DIC=DIE,X=DDSINT
|
---|
| 108 | .. X:$D(^DD(DDP,DDS4FLD,1,DG,1))#2 ^(1)
|
---|
| 109 | . I $G(DDS4AUD1) S DG=1,X=DDSINT,DIIX="3^"_DDS4FLD D AUDIT^DIET
|
---|
| 110 | Q:'$D(^DD("IX","F",DDP,DDS4FLD))
|
---|
| 111 | ;
|
---|
| 112 | ;Process index file xrefs
|
---|
| 113 | N DDSFXR,DDSFXREF,DDSRXREF
|
---|
| 114 | D LOADFLD^DIKC1(DDP,DDS4FLD,"KS","",$NA(@DDSREFT@("F"))_"_","DDSFXR",$NA(@DDSREFT@("RXR")),.DDSFXREF,.DDSRXREF)
|
---|
| 115 | I $G(DDSRXREF)]""!($G(DDSFXREF)]"") D
|
---|
| 116 | . S @DDSREFT@("F"_DDP,DDS4DA,DDS4FLD,"O")=DDSOLD ;BRX-0404-11337
|
---|
| 117 | D:$G(DDSFXREF)]"" FIRE^DIKC(DDP,.DA,"KS","DDSFXR","O^")
|
---|
| 118 | Q
|
---|
| 119 | GDA(DDSDA) ;
|
---|
| 120 | N I
|
---|
| 121 | K DA S DA=$P(DDSDA,",")
|
---|
| 122 | F I=2:1:$L(DDSDA,",")-1 S DA(I-1)=$P(DDSDA,",",I)
|
---|
| 123 | Q
|
---|
| 124 | ;
|
---|
| 125 | FORMONLY ;
|
---|
| 126 | N X
|
---|
| 127 | D GDA(DDS4DA)
|
---|
| 128 | S DDS4FLD=""
|
---|
| 129 | F S DDS4FLD=$O(@DDSREFT@("F0",DDS4DA,DDS4FLD)) Q:DDS4FLD="" D
|
---|
| 130 | . Q:'$G(@DDSREFT@("F0",DDS4DA,DDS4FLD,"F"))
|
---|
| 131 | . S DDS4FO=$P(DDS4FLD,","),DDS4B=$P(DDS4FLD,",",2)
|
---|
| 132 | . S DDSOLD=$G(@DDSREFT@("F0",DDS4DA,DDS4FLD,"O")),X=$G(^("D")),DDSEXT=$G(^("X"),X)
|
---|
| 133 | . X:$G(^DIST(.404,DDS4B,40,DDS4FO,23))'?."^" ^(23)
|
---|
| 134 | . S ^("O")=@DDSREFT@("F0",DDS4DA,DDS4FLD,"D"),^("F")=""
|
---|
| 135 | Q
|
---|
| 136 | ;
|
---|
| 137 | TRIG ;Called from trigger logic (from DICR via DICRREC)
|
---|
| 138 | N DDSRXREF
|
---|
| 139 | D LOADFLD^DIKC1(DIH,DIG,"KS","",$NA(@DDSREFT@("F"))_"_","",$NA(@DDSREFT@("RXR")),"",.DDSRXREF)
|
---|
| 140 | I $G(DDSRXREF)]"",'$D(@DDSREFT@("F"_DIH,DICRIENS,DIG,"O")) S ^("O")=DIU
|
---|
| 141 | Q
|
---|