Annotation of freem_fileman/DIFROMS2.m, revision 1.1
1.1 ! snw 1: DIFROMS2 ;SFISC/DCL-INSTALL DD FROM SOURCE ARRAY;08:34 AM 22 Nov 1994;
! 2: ;;21.0;VA FileMan;;Dec 28, 1994
! 3: ;Per VHA Directive 10-93-142, this routine should not be modified.
! 4: ;
! 5: Q
! 6: EN ;
! 7: I '$D(@DIFRSA) D ERR(5) Q
! 8: I '$D(@DIFRFIA) D ERR(4) Q
! 9: G:$G(DIFRFILE) FCHK
! 10: S DIFRFILE=0 F S DIFRFILE=$O(@DIFRFIA@(DIFRFILE)) Q:DIFRFILE'>0 D FILE
! 11: Q
! 12: FCHK I '$D(@DIFRFIA@(DIFRFILE)) D ERR(6) Q
! 13: FILE ;
! 14: N DIFR01,DIFR02,DIFRVR,DIFRFDD
! 15: S DIFR01=$G(@DIFRFIA@(DIFRFILE,0,1)),DIFR02=$G(^(2))
! 16: I $TR($E(DIFR01),"NY","ny")="n" D ERR(1) Q
! 17: S DIFRFDD=$TR($P(DIFR01,"^",3),"FP","fp")'="p"
! 18: I 'DIFRFDD,'$D(^DIC(DIFRFILE)) D ERR(7) Q
! 19: I $D(^DIC(DIFRFILE,0)),$G(@DIFRFIA@(DIFRFILE,0,10))]"" X ^(10) I '$T D ERR(3) Q
! 20: ;I $TR($E(@DIFRFIA@(DIFRFILE,0,5)),"NY","ny")="y",$D(^DIC(DIFRFILE)) D ERR(2) Q ;INSTALL ONLY IF NEW * * PHASING OUT * *
! 21: N %1,DSEC,D,DA,DIC,DIK,DIFRD,DIFRDATA,DIFRFLD,DIFRDIC,DIFRGL,DIFRX,I,X,Y,Z
! 22: S DSEC=$P(DIFR02,"^") ; **>> add file security if new file only <<**
! 23: ;delete DD wp text for file, field and x-ref description and field tech description
! 24: I 'DIFRFDD D
! 25: .K @DIFRSA@("DIFRNI",DIFRFILE)
! 26: .N DIFRD
! 27: .S DIFRD=DIFRFILE
! 28: .F S DIFRD=$O(@DIFRFIA@(DIFRFILE,DIFRD)) Q:DIFRD'>0 D
! 29: ..Q:$$UP(DIFRSA,DIFRFILE,DIFRD)
! 30: ..S @DIFRSA@("DIFRNI",DIFRFILE,DIFRD)=""
! 31: ..Q
! 32: .Q
! 33: K:DIFRFDD ^DIC(DIFRFILE,"%D")
! 34: S DIFRD=0
! 35: F S DIFRD=$O(@DIFRSA@("^DD",DIFRFILE,DIFRD)) Q:DIFRD'>0 D
! 36: .I 'DIFRFDD,$D(@DIFRSA@("DIFRNI",DIFRFILE,DIFRD)) Q
! 37: .S DIFRFLD=0
! 38: .F S DIFRFLD=$O(@DIFRSA@("^DD",DIFRFILE,DIFRD,DIFRFLD)) Q:DIFRFLD'>0 D
! 39: ..K ^DD(DIFRD,DIFRFLD,21),^(23)
! 40: ..S DIFRX=0
! 41: ..F S DIFRX=$O(@DIFRSA@("^DD",DIFRFILE,DIFRD,DIFRFLD,1,DIFRX)) Q:DIFRX'>0 D
! 42: ...K ^DD(DIFRD,DIFRFLD,1,DIFRX,"%D")
! 43: ...Q
! 44: ..Q
! 45: .Q
! 46: I DIFRFDD F DIFRX="^DIC","^DD" D
! 47: .;I DIFRX="^DIC",'DIFRFDD Q
! 48: .N X
! 49: .I DIFRX="^DIC",$G(^DIC(DIFRFILE,0))]"" S X=$P(^(0),"^",3,9)
! 50: .M @DIFRX=@DIFRSA@(DIFRX,DIFRFILE)
! 51: .I DIFRX="^DIC",$G(X)]"" S $P(^DIC(DIFRFILE,0),"^",3,9)=X
! 52: .I DSEC,$D(@DIFRSA@("SEC",DIFRX,DIFRFILE)) M @DIFRX=@DIFRSA@("SEC",DIFRX,DIFRFILE)
! 53: .Q
! 54: I 'DIFRFDD D
! 55: .N DIFRD
! 56: .S DIFRD=0
! 57: .F S DIFRD=$O(@DIFRSA@("^DD",DIFRFILE,DIFRD)) Q:DIFRD'>0 D
! 58: ..I $D(@DIFRSA@("DIFRNI",DIFRFILE,DIFRD)) Q
! 59: ..M ^DD(DIFRD)=@DIFRSA@("^DD",DIFRFILE,DIFRD)
! 60: ..I DSEC,$D(@DIFRSA@("SEC","^DD",DIFRFILE,DIFRD)) M ^DD(DIFRD)=@DIFRSA@("SEC","^DD",DIFRFILE,DIFRD)
! 61: ..Q
! 62: .Q
! 63: S DIFRD=0 F S DIFRD=$O(@DIFRFIA@(DIFRFILE,DIFRD)) Q:DIFRD'>0 D
! 64: .I 'DIFRFDD,$D(@DIFRSA@("DIFRNI",DIFRFILE,DIFRD)) Q
! 65: .S D=DIFRD,DIK="A" F S DIK=$O(^DD(D,DIK)) Q:DIK="" K ^(DIK)
! 66: .S DA(1)=D,DIK="^DD("_D_"," D IXALL^DIK
! 67: .I $D(^DIC(D,"%",0)) S DIK="^DIC(D,""%""," D IXALL^DIK
! 68: .Q
! 69: I 'DIFRFDD D G DIKZ
! 70: .Q:'$D(@DIFRSA@("^DD",DIFRFILE,DIFRFILE,.01))
! 71: .S $P(@(^DIC(DIFRFILE,0,"GL")_"0)"),"^",2)=$$HDR2P^DIFROMSS(DIFRFILE)
! 72: .Q
! 73: S DIFRGL=^DIC(DIFRFILE,0,"GL"),DIFRDIC=$P(^DIC(DIFRFILE,0),U,1,2)
! 74: S $P(DIFRDIC,"^",2)=@DIFRFIA@(DIFRFILE,0,0)
! 75: I DIFRFDD,+$G(@DIFRFIA@(DIFRFILE,0,"VR")) S DIFRVR=^("VR") D
! 76: .S ^DD(DIFRFILE,0,"VR")=$P(DIFRVR,"^")
! 77: .S ^DD(DIFRFILE,0,"VRPK")=$P(DIFRVR,"^",2)
! 78: .Q
! 79: S DIFRDATA=$D(@(DIFRGL_"0)")),^(0)=DIFRDIC_"^"_$S(DIFRDATA#2:$P(^(0),"^",3,9),1:"^")
! 80: DIKZ I $D(^DD(DIFRFILE,0,"DIK")) D
! 81: .N %X,DIKJ,DIR,DMAX,X,Y,DIFRDIKA
! 82: .D EN2^DIKZ(DIFRFILE,"",^DD(DIFRFILE,0,"DIK"),^DD("ROU"),"DIFRDIKA")
! 83: .I $D(DIFRDIKA) M @DIFRSA@("DIKZ",DIFRFILE)=DIFRDIKA
! 84: .S @DIFRSA@("DIKZ",DIFRFILE)=^DD(DIFRFILE,0,"DIK")
! 85: .Q
! 86: I 'DIFRFDD,$D(@DIFRSA@("DIFRNI",DIFRFILE)) D
! 87: .N DIFRD
! 88: .S DIFRD=0
! 89: .F S DIFRD=$O(@DIFRSA@("DIFRNI",DIFRFILE,DIFRD)) Q:DIFRD'>0 D
! 90: ..N DIFRERR S DIFRERR(1)=DIFRD
! 91: ..D BLD^DIALOG(9512,.DIFRERR)
! 92: ..Q
! 93: .Q
! 94: Q
! 95: ;
! 96: UP(ROOT,FILE,DDN) ;Return 1 or 0 to install
! 97: Q:FILE=DDN 1
! 98: Q:$D(^DD(DDN)) 1
! 99: Q:'$D(@ROOT@("UP",FILE,DDN)) 1
! 100: N MP,PARENT,T,X
! 101: S MP=0,X="",T=0
! 102: F S X=$O(@ROOT@("UP",FILE,DDN,X)) Q:X="" S PARENT=+^(X) D Q:T!(MP)
! 103: .I $D(^DD(PARENT))!($G(@ROOT@("FIA",FILE,PARENT))=0) S:X=0 T=1 Q
! 104: .S MP=1
! 105: .Q
! 106: Q T
! 107: ;
! 108: ERR(X) D BLD^DIALOG($P($T(ERR+X),";",5)) Q
! 109: ;;FIA Node Is Set To "No DD Update";1;9503
! 110: ;;Already Exist On Target System (INSTALL ONLY IF NEW);2;9504
! 111: ;;Did Not Pass DD Screen;3;9505
! 112: ;;FIA Array Does Not Exist;4;9511
! 113: ;;Distribution Array Does Not Exist;5;9506
! 114: ;;FIA File Number Invalid;6;9507
! 115: ;;Partial DD/File Does Not Already Exist On Target System;7;9508
FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>