XPDCOMG ;SFISC/RSD - compare globals ;08/14/2008
;;8.0;KERNEL;**304,506,559**;Jul 10, 1995;Build 5
;Per VHA Directive 2004-038, this routine should not be modified.
EN D IX,FIA:'$D(DIRUT),KRN:'$D(DIRUT)
Q
;
IX ;FileMan new style cross-references
N XPDF,XPDF2,XPDFN
F XPDF=0:0 S XPDF=$O(^XTMP("XPDI",XPDA,"IX",XPDF)) Q:'XPDF F XPDF2=0:0 S XPDF2=$O(^XTMP("XPDI",XPDA,"IX",XPDF,XPDF2)) Q:'XPDF2 D
.S XPDFN="" F S XPDFN=$O(^XTMP("XPDI",XPDA,"IX",XPDF,XPDF2,XPDFN)) Q:XPDFN=""!$D(DIRUT) D
..K ^TMP($J) M ^TMP($J,1)=^XTMP("XPDI",XPDA,"IX",XPDF,XPDF2,XPDFN)
..D DASHES,EN^XPDCOMF($NA(^TMP($J)),$NA(^DD("IX")),.11,"1L",.DITCPT)
..Q
Q
;
FIA ;FileMan DD and Data
N DIC,OLDA,XPDFIL,XPDFILO,XPDFILS,XPDS,XPDS0,XPDX,XPDX0,XPDY,XPDY1,XPDZ,XPDZ1,X,Y
S XPDFIL=0
F S XPDFIL=$O(^XTMP("XPDI",XPDA,"FIA",XPDFIL)) Q:'XPDFIL!$D(DIRUT) S X=^(XPDFIL),XPDZ1=^(XPDFIL,0),XPDFILO=^(0,1) D
.I '$D(^DIC(XPDFIL)) W !!,?14," FILE # ",XPDFIL," (",X,") is NEW",! Q
.S XPDZ="^XTMP(""XPDI"","_XPDA,XPDY=XPDZ_",""^DIC"","_XPDFIL_","_XPDFIL_",0",XPDX=XPDY_")"
.S XPDY=XPDY_",",XPDY1="^DIC("_XPDFIL_",0",XPDS=XPDY1_")",XPDY1=XPDY1_","
.I $P(XPDFILO,U)="y" D
..;W !!,XPDUL," File # ",XPDFIL," Data Dictionary "
..S XPDFILS=0 F S XPDFILS=$O(^XTMP("XPDI",XPDA,"^DD",XPDFIL,XPDFILS)) Q:'XPDFILS D
...S XPDY=XPDZ_",""^DD"","_XPDFIL_","_XPDFILS,XPDX=XPDY_")",XPDY=XPDY_",",XPDY1="^DD("_XPDFILS,XPDS=XPDY1_")",XPDY1=XPDY1_","
...D DASHES,EN^XPDCOMF(XPDX,XPDS,0,"1L",.DITCPT)
...Q
..Q
.;check Data in file
.Q:'$D(^XTMP("XPDI",XPDA,"DATA",XPDFIL))
.D DASHES,EN^XPDCOMF($NA(^(XPDFIL)),$$CREF^DIQGU(^DIC(XPDFIL,0,"GL")),XPDFIL,"1L",.DITCPT)
W ! Q
;
KRN ;Kernel Components
N DEL,DIC,OLDA,ORD,X,XPDFIL,XPDFILNM,XPDI,XPDS,XPDS0,XPDX,XPDX0,XPDY,XPDY1,XPDZ,XPDZ1,Y
S ORD=0
F S ORD=$O(^XTMP("XPDI",XPDA,"ORD",ORD)) Q:'ORD!$D(DIRUT) S XPDFIL=+$O(^(ORD,0)),XPDFILNM=$G(^(XPDFIL,0)) D:XPDFIL
.I $P($G(^DIC(XPDFIL,0)),U)'=XPDFILNM W !!," File "_XPDFIL_" is not "_XPDFILNM_", nothing can be installed.",! Q
.D DASHES,EN^XPDCOMF($NA(^XTMP("XPDI",XPDA,"KRN",XPDFIL)),$$CREF^DIQGU(^DIC(XPDFIL,0,"GL")),XPDFIL,"1L",.DITCPT)
.Q
Q
;
DASHES K DITCPT S DITCPT(0)=XPDUL
Q
;
XPDCOMG ;SFISC/RSD - compare globals ;08/14/2008
+1 ;;8.0;KERNEL;**304,506,559**;Jul 10, 1995;Build 5
+2 ;Per VHA Directive 2004-038, this routine should not be modified.
EN DO IX
IF '$DATA(DIRUT)
DO FIA
IF '$DATA(DIRUT)
DO KRN
+1 QUIT
+2 ;
IX ;FileMan new style cross-references
+1 NEW XPDF,XPDF2,XPDFN
+2 FOR XPDF=0:0
SET XPDF=$ORDER(^XTMP("XPDI",XPDA,"IX",XPDF))
IF 'XPDF
QUIT
FOR XPDF2=0:0
SET XPDF2=$ORDER(^XTMP("XPDI",XPDA,"IX",XPDF,XPDF2))
IF 'XPDF2
QUIT
Begin DoDot:1
+3 SET XPDFN=""
FOR
SET XPDFN=$ORDER(^XTMP("XPDI",XPDA,"IX",XPDF,XPDF2,XPDFN))
IF XPDFN=""!$DATA(DIRUT)
QUIT
Begin DoDot:2
+4 KILL ^TMP($JOB)
MERGE ^TMP($JOB,1)=^XTMP("XPDI",XPDA,"IX",XPDF,XPDF2,XPDFN)
+5 DO DASHES
DO EN^XPDCOMF($NAME(^TMP($JOB)),$NAME(^DD("IX")),.11,"1L",.DITCPT)
+6 QUIT
End DoDot:2
End DoDot:1
+7 QUIT
+8 ;
FIA ;FileMan DD and Data
+1 NEW DIC,OLDA,XPDFIL,XPDFILO,XPDFILS,XPDS,XPDS0,XPDX,XPDX0,XPDY,XPDY1,XPDZ,XPDZ1,X,Y
+2 SET XPDFIL=0
+3 FOR
SET XPDFIL=$ORDER(^XTMP("XPDI",XPDA,"FIA",XPDFIL))
IF 'XPDFIL!$DATA(DIRUT)
QUIT
SET X=^(XPDFIL)
SET XPDZ1=^(XPDFIL,0)
SET XPDFILO=^(0,1)
Begin DoDot:1
+4 IF '$DATA(^DIC(XPDFIL))
WRITE !!,?14," FILE # ",XPDFIL," (",X,") is NEW",!
QUIT
+5 SET XPDZ="^XTMP(""XPDI"","_XPDA
SET XPDY=XPDZ_",""^DIC"","_XPDFIL_","_XPDFIL_",0"
SET XPDX=XPDY_")"
+6 SET XPDY=XPDY_","
SET XPDY1="^DIC("_XPDFIL_",0"
SET XPDS=XPDY1_")"
SET XPDY1=XPDY1_","
+7 IF $PIECE(XPDFILO,U)="y"
Begin DoDot:2
+8 ;W !!,XPDUL," File # ",XPDFIL," Data Dictionary "
+9 SET XPDFILS=0
FOR
SET XPDFILS=$ORDER(^XTMP("XPDI",XPDA,"^DD",XPDFIL,XPDFILS))
IF 'XPDFILS
QUIT
Begin DoDot:3
+10 SET XPDY=XPDZ_",""^DD"","_XPDFIL_","_XPDFILS
SET XPDX=XPDY_")"
SET XPDY=XPDY_","
SET XPDY1="^DD("_XPDFILS
SET XPDS=XPDY1_")"
SET XPDY1=XPDY1_","
+11 DO DASHES
DO EN^XPDCOMF(XPDX,XPDS,0,"1L",.DITCPT)
+12 QUIT
End DoDot:3
+13 QUIT
End DoDot:2
+14 ;check Data in file
+15 IF '$DATA(^XTMP("XPDI",XPDA,"DATA",XPDFIL))
QUIT
+16 DO DASHES
DO EN^XPDCOMF($NAME(^(XPDFIL)),$$CREF^DIQGU(^DIC(XPDFIL,0,"GL")),XPDFIL,"1L",.DITCPT)
End DoDot:1
+17 WRITE !
QUIT
+18 ;
KRN ;Kernel Components
+1 NEW DEL,DIC,OLDA,ORD,X,XPDFIL,XPDFILNM,XPDI,XPDS,XPDS0,XPDX,XPDX0,XPDY,XPDY1,XPDZ,XPDZ1,Y
+2 SET ORD=0
+3 FOR
SET ORD=$ORDER(^XTMP("XPDI",XPDA,"ORD",ORD))
IF 'ORD!$DATA(DIRUT)
QUIT
SET XPDFIL=+$ORDER(^(ORD,0))
SET XPDFILNM=$GET(^(XPDFIL,0))
IF XPDFIL
Begin DoDot:1
+4 IF $PIECE($GET(^DIC(XPDFIL,0)),U)'=XPDFILNM
WRITE !!," File "_XPDFIL_" is not "_XPDFILNM_", nothing can be installed.",!
QUIT
+5 DO DASHES
DO EN^XPDCOMF($NAME(^XTMP("XPDI",XPDA,"KRN",XPDFIL)),$$CREF^DIQGU(^DIC(XPDFIL,0,"GL")),XPDFIL,"1L",.DITCPT)
+6 QUIT
End DoDot:1
+7 QUIT
+8 ;
DASHES KILL DITCPT
SET DITCPT(0)=XPDUL
+1 QUIT
+2 ;