| 1 | DIFROMSI ;SCISC/DCL-EDE IN ;3:19 PM  16 Nov 2001
 | 
|---|
| 2 |  ;;22.0;VA FileMan;**94**;Mar 30, 1999
 | 
|---|
| 3 |  ;Per VHA Directive 10-93-142, this routine should not be modified.
 | 
|---|
| 4 | FPRE(DIFRFILE,DIFRFLG,DIFRNAME,DIFRSA) ;
 | 
|---|
| 5 |  G FPRE^DIFROMSC
 | 
|---|
| 6 | EPRE(DIFRFILE,DIFRIEN,DIFRFLG,DIFRNAME,DIFRSA,DIFROIEN) ;
 | 
|---|
| 7 |  I '$D(DIQUIET) N DIQUIET S DIQUIET=1
 | 
|---|
| 8 |  I '$D(DIFM) N DIFM S DIFM=1
 | 
|---|
| 9 |  I $G(U)'="^"!($G(DT)'>0)!($G(DTIME)'>0)!('$D(DUZ)) D DT^DICRW
 | 
|---|
| 10 |  N DIOVRD S DIOVRD=1
 | 
|---|
| 11 |  N DIFRRDA,DIFRX
 | 
|---|
| 12 |  S DIFRFILE=$G(DIFRFILE) S:DIFRFILE'>0 DIFRFILE=$G(XPDFIL)
 | 
|---|
| 13 |  I DIFRFILE'>0 D BLD^DIALOG(9521) Q
 | 
|---|
| 14 |  S DIFRIEN=$G(DIFRIEN) S:DIFRIEN'>0 DIFRIEN=$G(DA)
 | 
|---|
| 15 |  I DIFRIEN'>0 D BLD^DIALOG(9522) Q
 | 
|---|
| 16 |  S DIFROIEN=$G(DIFROIEN) S:DIFROIEN'>0 DIFROIEN=$G(OLDA)
 | 
|---|
| 17 |  I DIFROIEN'>0 D BLD^DIALOG(9523) Q
 | 
|---|
| 18 |  I $G(DIFRNAME)="" D BLD^DIALOG(9524) Q
 | 
|---|
| 19 |  I $G(DIFRSA)="" S DIFRSA=$NA(^XTMP("XPDI",DIFRNAME,"KRN"))
 | 
|---|
| 20 |  S DIFRRDA=$$CREF^DIQGU($$ROOT^DIQGU(DIFRFILE)_DIFRIEN)
 | 
|---|
| 21 |  S DIFRX=$P(@DIFRRDA@(0),"^")
 | 
|---|
| 22 |  G:DIFRFILE=.84 DIALOG
 | 
|---|
| 23 |  ;
 | 
|---|
| 24 |  ; preserve security codes if template/form is not new
 | 
|---|
| 25 |  I $G(DIFRFLG)'["N",DIFRFILE'=.5 D
 | 
|---|
| 26 |  .N X,Y
 | 
|---|
| 27 |  .S Y=@DIFRRDA@(0)
 | 
|---|
| 28 |  .S X=@DIFRSA@(DIFRFILE,DIFROIEN,0),$P(X,U,3)=$P(Y,U,3),$P(X,U,6)=$P(Y,U,6),^(0)=X
 | 
|---|
| 29 |  .Q
 | 
|---|
| 30 |  ;
 | 
|---|
| 31 |  I DIFRFILE'=.403 K @DIFRRDA
 | 
|---|
| 32 |  E  D
 | 
|---|
| 33 |  .Q:$G(DIFRFLG)["N"
 | 
|---|
| 34 |  .N DA,DIC,DIK,DINUM,X,Y,DO
 | 
|---|
| 35 |  .S DIK="^DIST(.403,",DA=DIFRIEN
 | 
|---|
| 36 |  .D ^DIK
 | 
|---|
| 37 |  .S DIC="^DIST(.403,",DIC(0)="LX",X=DIFRX,DINUM=DIFRIEN
 | 
|---|
| 38 |  .D FILE^DICN
 | 
|---|
| 39 |  .Q
 | 
|---|
| 40 |  I DIFRFILE=.403 D
 | 
|---|
| 41 |  .N DIFRA0,DIFRA1,DIFRA2,DIFRJ,DIFRL,DIFRP,DIFRX,DIFRY
 | 
|---|
| 42 |  .S DIFRJ=0
 | 
|---|
| 43 |  .F  S DIFRJ=$O(@DIFRSA@(DIFRFILE,DIFROIEN,40,DIFRJ)) Q:'DIFRJ  I $D(^(DIFRJ,0)) S DIFRP=$P(^(0),"^",2) D
 | 
|---|
| 44 |  ..S:DIFRP]"" DIFRP=$O(^DIST(.404,"B",DIFRP,0))
 | 
|---|
| 45 |  ..S:DIFRP $P(@DIFRSA@(DIFRFILE,DIFROIEN,40,DIFRJ,0),"^",2)=DIFRP
 | 
|---|
| 46 |  ..S DIFRL=0
 | 
|---|
| 47 |  ..F  S DIFRL=$O(@DIFRSA@(DIFRFILE,DIFROIEN,40,DIFRJ,40,DIFRL)) Q:'DIFRL  S DIFRA0=$G(^(DIFRL,0)),DIFRP=$P(DIFRA0,"^") I DIFRP]"" D
 | 
|---|
| 48 |  ...S DIFRP=$O(^DIST(.404,"B",DIFRP,0)) I DIFRP D
 | 
|---|
| 49 |  ....S $P(DIFRA0,"^")=DIFRP,@DIFRSA@(DIFRFILE,DIFROIEN,40,DIFRJ,"BLK",DIFRP,0)=DIFRA0
 | 
|---|
| 50 |  ....N DIFRX
 | 
|---|
| 51 |  ....S DIFRX=0
 | 
|---|
| 52 |  ....F  S DIFRX=$O(@DIFRSA@(DIFRFILE,DIFROIEN,40,DIFRJ,40,DIFRL,DIFRX)) Q:DIFRX=""  S @DIFRSA@(DIFRFILE,DIFROIEN,40,DIFRJ,"BLK",DIFRP,DIFRX)=^(DIFRX)
 | 
|---|
| 53 |  ....Q
 | 
|---|
| 54 |  ...Q
 | 
|---|
| 55 |  ..S DIFRA0=$G(@DIFRSA@(DIFRFILE,DIFROIEN,40,DIFRJ,40,0))
 | 
|---|
| 56 |  ..Q:DIFRA0=""
 | 
|---|
| 57 |  ..K @DIFRSA@(DIFRFILE,DIFROIEN,40,DIFRJ,40)
 | 
|---|
| 58 |  ..S (DIFRA1,DIFRA2)=0
 | 
|---|
| 59 |  ..S DIFRL=0
 | 
|---|
| 60 |  ..F  S DIFRL=$O(@DIFRSA@(DIFRFILE,DIFROIEN,40,DIFRJ,"BLK",DIFRL)) Q:'DIFRL  S @DIFRSA@(DIFRFILE,DIFROIEN,40,DIFRJ,40,DIFRL,0)=^(DIFRL,0),DIFRA1=DIFRL,DIFRA2=DIFRA2+1 D
 | 
|---|
| 61 |  ...N DIFRX
 | 
|---|
| 62 |  ...S DIFRX=0
 | 
|---|
| 63 |  ...F  S DIFRX=$O(@DIFRSA@(DIFRFILE,DIFROIEN,40,DIFRJ,"BLK",DIFRL,DIFRX)) Q:DIFRX=""  S @DIFRSA@(DIFRFILE,DIFROIEN,40,DIFRJ,40,DIFRL,DIFRX)=^(DIFRX)
 | 
|---|
| 64 |  ...Q
 | 
|---|
| 65 |  ..S $P(DIFRA0,"^",3,4)=DIFRA1_"^"_DIFRA2
 | 
|---|
| 66 |  ..S @DIFRSA@(DIFRFILE,DIFROIEN,40,DIFRJ,40,0)=DIFRA0
 | 
|---|
| 67 |  ..K @DIFRSA@(DIFRFILE,DIFROIEN,40,DIFRJ,"BLK")
 | 
|---|
| 68 |  ..Q
 | 
|---|
| 69 |  .Q
 | 
|---|
| 70 |  Q
 | 
|---|
| 71 | DIALOG N DIFRF,DIFRX
 | 
|---|
| 72 |  S DIFRF=$P(@DIFRSA@(DIFRFILE,DIFROIEN,0),"^",4)
 | 
|---|
| 73 |  I DIFRF]"" D
 | 
|---|
| 74 |  .S DIFRF=$O(^DIC(9.4,"B",DIFRF,0)) I DIFRF,$O(^(DIFRF)) D  S DIFRF=""
 | 
|---|
| 75 |  ..N DIFRERR S DIFRERR(1)=DIFRF,DIFRERR(2)=DIFRIEN
 | 
|---|
| 76 |  ..D BLD^DIALOG(9525,.DIFRERR)
 | 
|---|
| 77 |  ..Q
 | 
|---|
| 78 |  .S $P(@DIFRSA@(DIFRFILE,DIFROIEN,0),"^",4)=DIFRF
 | 
|---|
| 79 |  F DIFRX=1,2,3,5,6 K @DIFRRDA@(DIFRX)
 | 
|---|
| 80 |  Q
 | 
|---|
| 81 | EPOST(DIFRFILE,DIFRIEN,DIFRFLG,DIFRNAME,DIFRSA) ;
 | 
|---|
| 82 |  I '$D(DIQUIET) N DIQUIET S DIQUIET=1
 | 
|---|
| 83 |  I '$D(DIFM) N DIFM S DIFM=1
 | 
|---|
| 84 |  I $G(U)'="^"!($G(DT)'>0)!($G(DTIME)'>0)!('$D(DUZ)) D DT^DICRW
 | 
|---|
| 85 |  N DIOVRD S DIOVRD=1
 | 
|---|
| 86 |  I '$G(DIFRFILE)!('$G(DIFRIEN)) Q
 | 
|---|
| 87 |  I $G(DIFRNAME)="" Q
 | 
|---|
| 88 |  S:$G(DIFRSA)']"" DIFRSA=$NA(^XTMP("XPDI",DIFRNAME))
 | 
|---|
| 89 |  N DA,DIFR,DIFR3,DIFROU,DIK,DMAX,DNM,X,Y,Z,DIFRTN
 | 
|---|
| 90 |  S DIK=$$ROOT^DILFD(DIFRFILE),DA=DIFRIEN
 | 
|---|
| 91 |  D IX1^DIK
 | 
|---|
| 92 |  I DIFRFILE=.403,DIFRIEN D ENGRP^DDSZ(DIFRIEN) Q
 | 
|---|
| 93 |  S DIFR=$S(DIFRFILE=.4:"DIPT",DIFRFILE=.402:"DIE",1:"")
 | 
|---|
| 94 |  Q:DIFR=""
 | 
|---|
| 95 |  I ^DD("VERSION")>17.4,'$D(DISYS) D OS^DII
 | 
|---|
| 96 |  E  S DISYS=^DD("OS")
 | 
|---|
| 97 |  I '$D(^DD("OS",DISYS,"ZS")) D BLD^DIALOG(9526) Q
 | 
|---|
| 98 |  S Y=DIFRIEN
 | 
|---|
| 99 |  I $D(@("^"_DIFR_"(Y,""ROU"")")) K ^("ROU") I $D(^("ROUOLD")) S (DIFROU,X)=^("ROUOLD"),DIFRTN=$P(^(0),"^") D:X]""
 | 
|---|
| 100 |  .N %X,DIR,DMAX,X,Y,DIFRZTA
 | 
|---|
| 101 |  .S DIFR3="DI"_$E(DIFR,3)_"Z"
 | 
|---|
| 102 |  .I $$VAL^DIFROMSS(DIFRFILE,DIFRIEN) D  Q
 | 
|---|
| 103 |  ..D @("EN2^"_DIFR3_"(DIFRIEN,"""",DIFROU,"""",""DIFRZTA"")")
 | 
|---|
| 104 |  ..I $D(DIFRZTA) M @DIFRSA@(DIFR3,DIFRIEN)=DIFRZTA
 | 
|---|
| 105 |  ..S @DIFRSA@(DIFR3,DIFRIEN)=DIFROU
 | 
|---|
| 106 |  ..Q
 | 
|---|
| 107 |  .N DIFRTT,DIFRERR S DIFRTT=$S(DIFRFILE=.4:"PRINT",1:"INPUT")
 | 
|---|
| 108 |  .S DIFRERR(1)=DIFRTT,DIFRERR(2)=DIFRTN
 | 
|---|
| 109 |  .D BLD^DIALOG(9528,.DIFRERR)
 | 
|---|
| 110 |  .Q
 | 
|---|
| 111 |  Q
 | 
|---|
| 112 | FPOST ;
 | 
|---|
| 113 |  G FPOST^DIFROMSC
 | 
|---|
| 114 | EXIT I $G(DIFRMSGR)]"" D CALLOUT^DIEFU(DIFRMSGR)
 | 
|---|
| 115 |  Q
 | 
|---|