- CIAVINX ;MSC/IND/DKM - Pretransportation routines for KIDS ;15-Feb-2008 09:25;DKM
- ;;1.1V2;VUECENTRIC FRAMEWORK;;Mar 20, 2007
- ;;Copyright 2000-2006, Medsphere Systems Corporation
- ;=================================================================
- ; Pre-transportation for export
- EXPPRET N TGT,SUB,FIL,IEN
- S TGT=$$TGT(1),SUB=0
- Q:'TGT
- S @XPDGREF@("EXP")=$$GET1^DIQ(19930.99,TGT,.01)_U_$$GET1^DIQ(19930.99,TGT,.5)
- F S SUB=$O(^CIAVDIST(TGT,SUB)) Q:'SUB S FIL=+$P($G(^(SUB,0)),U,2) D:FIL
- .S FIL=+$P($P(^DD(FIL,.01,0),U,2),"P",2),IEN=0
- .Q:'FIL
- .S @XPDGREF@("EXP",SUB)=FIL
- .F S IEN=$O(^CIAVDIST(TGT,SUB,IEN)) Q:'IEN D
- ..S @XPDGREF@("EXP",SUB,IEN)=$$GET1^DIQ(FIL,IEN,.01)
- Q
- ; Post-init for export
- EXPPOST N TGT,SUB,FIL,IEN,VAL,NEW,BLD,DIK,DA
- S TGT=$G(@XPDGREF@("EXP")),BLD=$P(TGT,U,2)
- S TGT=$$FIND1^DIC(19930.99,,"X",$P(TGT,U))
- Q:'TGT
- S BLD=$$FIND1^DIC(9.6,,"X",BLD)
- S $P(^CIAVDIST(TGT,0),U,2)=$S(BLD:BLD,1:""),SUB=0
- F S SUB=$O(@XPDGREF@("EXP",SUB)) Q:'SUB S FIL=^(SUB) D
- .N SAV
- .M SAV=^CIAVDIST(TGT,SUB)
- .Q:'$D(SAV(0))
- .K SAV("B")
- .K ^CIAVDIST(TGT,SUB)
- .S ^CIAVDIST(TGT,SUB,0)=SAV(0),IEN=0
- .F S IEN=$O(@XPDGREF@("EXP",SUB,IEN)) Q:'IEN S VAL=^(IEN) D
- ..S NEW=$$FIND1^DIC(FIL,,"X",VAL)
- ..I 'NEW W "Unable to resolve entry: ",VAL,!! Q
- ..S $P(SAV(IEN,0),U)=NEW
- ..M ^CIAVDIST(TGT,SUB,NEW)=SAV(IEN)
- S DIK="^CIAVDIST(",DA=TGT
- D IX^DIK
- Q
- ; Pre-transportation for components
- GBL N C,M,P,V,X,X1,Y,Z,DIST,OBJ
- S DIST=$$TGT,C=0
- ; Save pointer mappings for multiples with .01 field pointers
- ; since KIDS doesn't resolve these. (Doesn't work with DINUM)
- D GBLX(19930.2,19930.2,19930.221,9,1)
- D GBLX(19930.21,19930.2,19930.206,2,1)
- D GBLX(19.1,19930.2,19330.204,3,1)
- D GBLX(19.1,19941.21,19941.212,20,5)
- D GBLX(19.1,19941.21,19941.2121,21,5)
- ; Save object code for selected routines
- F X=0:0 S X=$O(^CIAVDIST(DIST,6,X)) Q:'X D
- .S Y=$$GET1^DIQ(9.8,X,.01)
- .Q:'$L(Y)
- .F X1=0:0 S X1=$O(^CIAVDIST(DIST,6,X,1,X1)) Q:'X1 S V=^(X1,0) D
- ..S M=+V,V=$P(V,U,2)
- ..M @XPDGREF@("OBJ",M,V,Y)=^CIAVDIST(DIST,6,X,1,X1,1)
- ; Save initial values for exported parameters.
- F X=0:0 S X=$O(^CIAVDIST(DIST,2,X)) Q:'X D
- .S P=$P(^XTV(8989.51,X,0),U)
- .F Y=0:0 S Y=$O(^CIAVDIST(DIST,2,X,1,Y)) Q:'Y K Z M Z=^(Y) D
- ..K Z(2,0)
- ..S C=C+1
- ..M @XPDGREF@("PARAM",C)=Z(2)
- ..S @XPDGREF@("PARAM",C)=P_U_Z(0)_U_$G(Z(1))
- ; Set rename flag for any object aliases and overwrite for
- ; categories, keys, and/or initializations
- F X=0:0 S X=$O(^CIAVDIST(DIST,1,X)) Q:'X D
- .S P=$P(^CIAVOBJ(19930.2,X,0),U),Z=^CIAVDIST(DIST,1,X,0)
- .F Y=0:0 S Y=$O(^CIAVOBJ(19930.2,X,10,Y)) Q:'Y D RENAME(^(Y,0),P)
- .F Y=2,3,4 S:$P(Z,U,Y) @XPDGREF@("OVERWRITE",P,$S(Y=4:5,1:Y))=""
- ; Additional settings
- S @XPDGREF@("INITIAL")=$G(^CIAVDIST(DIST,50))
- S @XPDGREF@("FINAL")=$G(^CIAVDIST(DIST,51))
- S @XPDGREF@("EC")=$G(^CIAVDIST(DIST,53))
- X $G(^CIAVDIST(DIST,52))
- Q
- ; EP - Export object code for routines
- EXPOBJ N MSYS,GBL,OBJ,VER,RTN,X
- W "Export Object Code for Selected Routines",!!
- X ^%ZOSF("RSEL")
- W !!
- Q:$O(^UTILITY($J,$C(1)))=""
- D ^%ZIS
- Q:POP
- U IO
- S MSYS=$$UP^XLFSTR($P($$VERSION^%ZOSV(1)," "))
- S VER=$TR($$VERSION^%ZOSV()," "),RTN=$C(1)
- W MSYS_U_VER,!
- F S RTN=$O(^UTILITY($J,RTN)) Q:'$L(RTN) D
- .S OBJ=""
- .W RTN,!
- .D EXPC:MSYS="CACHE",EXPJ:MSYS="JUMPS",EXPG:MSYS="GTM"
- .W !
- W "**END**",!
- D ^%ZISC
- Q
- ; Export a Cache binary
- EXPC S OBJ=$$ENCODE^CIAUUU(^rOBJ(RTN))
- F Q:OBJ="" D
- .W $E(OBJ,1,75),!
- .S OBJ=$E(OBJ,76,999999)
- Q
- ; Export a JUMPS binary
- EXPJ S OBJ=^$R(RTN,"OBJECT")
- F Q:OBJ="" D
- .S X=$F(OBJ,$C(10))
- .S:'X X=$L(OBJ)+2
- .W $E(OBJ,1,X-2),!
- .S OBJ=$E(OBJ,X,999999)
- Q
- ; Export a GTM binary
- EXPG W "GTM export not yet supported.",!!
- Q
- ; Import object code into distribution
- IMPOBJ N MSYS,VER,RTN,DIST,FIL,OBJ,QUIT,D1,X
- W "Import Object Code into a Distribution",!!
- S DIST=$$LOOKUP(19930.99,"Distribution")
- Q:'DIST
- R "Object code file: ",FIL,!!
- Q:U[FIL
- D CLOSEALL^CIAUOS,OPEN^CIAUOS(.FIL,"R")
- U FIL
- R X
- S MSYS=$P(X,U),VER=$P(X,U,2),OBJ=""
- S MSYS(0)=$S(MSYS="CACHE":1,MSYS="JUMPS":2,1:0)
- U IO(0)
- W "Target "_MSYS_" Version: "_VER_"// "
- R X,!
- S:$L(X) VER=X
- F U FIL R RTN Q:RTN="**END**" D Q:$D(QUIT)
- .N FDA,IENS,CNT,DATA
- .U IO(0)
- .W ?5,"Importing routine ",RTN,"...",!
- .S RTN(0)=$O(^DIC(9.8,"B",RTN,0))
- .I 'RTN(0) S QUIT=1 Q
- .F D1=0:0 S D1=$O(^CIAVDIST(DIST,6,RTN(0),1,"B",MSYS(0),D1)) Q:'D1 D Q:$L(X)
- ..S X=$P(^CIAVDIST(DIST,6,RTN(0),1,D1,0),U,2),VER(0)=X
- ..F Q:X=VER S X=$P(X,".",1,$L(X,".")-1) Q:'$L(X)
- .S:'D1 VER(0)=VER
- .S D1=$S(D1:D1,1:"+1")
- .S IENS=D1_","_RTN(0)_","_DIST_",",CNT=0
- .U FIL
- .F R X Q:X="" S CNT=CNT+1,DATA(CNT,0)=X
- .S FDA(19930.9961,IENS,.01)=MSYS(0)
- .S FDA(19930.9961,IENS,.5)=VER(0)
- .S FDA(19930.9961,IENS,1)="DATA"
- .D UPDATE^DIE(,"FDA")
- D CLOSE^CIAUOS(FIL)
- W:$D(QUIT) "Routine "_RTN_" not found. Import aborted.",!!
- Q
- ; Lookup an entry in file #FN using prompt PM.
- LOOKUP(FN,PM,FL,SC) ;
- Q:'FN -1
- N DIC,DLAYGO,X,Y
- W !
- F FL=''$G(FL):-1:0 D
- .S DIC=FN,DIC(0)=$S(FL:"E",1:"AE"),DIC("A")=PM_": ",X="??"
- .S:$L($G(SC)) DIC("S")=SC
- .D ^DIC
- W !
- Q $S(Y>0:+Y,1:0)
- GBLX(TGT,SRC,SUB,NOD,TYP) ;
- N K,X,Y,Z
- S @XPDGREF@("PTRS",SUB)=NOD_U_SRC_U_TGT
- S TGT=$$ROOT^DILFD(TGT,,1),SRC=$$ROOT^DILFD(SRC,,1),X=0
- F S X=$O(@SRC@(X)) Q:'X S Y=$P(^(X,0),U),Z=0 D:$$SCRN(X,TYP)
- .S @XPDGREF@("PTRS",SUB,Y)=""
- .F S Z=$O(@SRC@(X,NOD,Z)) Q:'Z S K=+$G(^(Z,0)) D:K
- ..S K=$P($G(@TGT@(K,0)),U)
- ..S:$L(K) @XPDGREF@("PTRS",SUB,Y,K)=""
- Q
- ; Set progid's to be renamed
- RENAME(OLD,NEW) ;
- S OLD=$TR(OLD," ")
- S:$L(OLD) @XPDGREF@("RENAME",OLD,NEW)=""
- Q
- ; Set target distribution (user is prompted if necessary)
- ; If NOSCN is set, selection will not be screened.
- TGT(NOSCN) ;EP
- N DIC,Y
- Q:$G(XPDERR) 0
- S Y=+$G(@XPDGREF@("TGT"))
- Q:Y>0 Y
- S Y=$O(^CIAVDIST("C",XPDA,0))
- I Y,'$O(^CIAVDIST("C",XPDA,Y)) W "Target distribution: ",$P(^CIAVDIST(Y,0),U)
- E D
- .S DIC=19930.99,DIC(0)="AEF",DIC("A")="Enter target distribution: "
- .S:'$G(NOSCN) DIC("S")="I $P(^(0),U,2)=XPDA"
- .D ^DIC
- .S Y=+Y
- W !!
- I Y<1 S XPDERR=1,Y=0
- E S @XPDGREF@("TGT")=Y
- Q Y
- ; Screen entries
- ; IEN = Entry to screen
- ; TYP = 1: Object Registry
- ; 2: Parameter Definition
- ; 3: Parameter Template
- ; 4: Template Registry
- ; 5: Event Type
- ; 6: Routine
- ; 7: Object Category
- ; Returns true if entry is to be included.
- SCRN(IEN,TYP) ;
- Q:'$G(TYP) 1
- Q $D(^CIAVDIST($$TGT,TYP,IEN))
- CIAVINX ;MSC/IND/DKM - Pretransportation routines for KIDS ;15-Feb-2008 09:25;DKM
- +1 ;;1.1V2;VUECENTRIC FRAMEWORK;;Mar 20, 2007
- +2 ;;Copyright 2000-2006, Medsphere Systems Corporation
- +3 ;=================================================================
- +4 ; Pre-transportation for export
- EXPPRET NEW TGT,SUB,FIL,IEN
- +1 SET TGT=$$TGT(1)
- SET SUB=0
- +2 IF 'TGT
- QUIT
- +3 SET @XPDGREF@("EXP")=$$GET1^DIQ(19930.99,TGT,.01)_U_$$GET1^DIQ(19930.99,TGT,.5)
- +4 FOR
- SET SUB=$ORDER(^CIAVDIST(TGT,SUB))
- IF 'SUB
- QUIT
- SET FIL=+$PIECE($GET(^(SUB,0)),U,2)
- IF FIL
- Begin DoDot:1
- +5 SET FIL=+$PIECE($PIECE(^DD(FIL,.01,0),U,2),"P",2)
- SET IEN=0
- +6 IF 'FIL
- QUIT
- +7 SET @XPDGREF@("EXP",SUB)=FIL
- +8 FOR
- SET IEN=$ORDER(^CIAVDIST(TGT,SUB,IEN))
- IF 'IEN
- QUIT
- Begin DoDot:2
- +9 SET @XPDGREF@("EXP",SUB,IEN)=$$GET1^DIQ(FIL,IEN,.01)
- End DoDot:2
- End DoDot:1
- +10 QUIT
- +11 ; Post-init for export
- EXPPOST NEW TGT,SUB,FIL,IEN,VAL,NEW,BLD,DIK,DA
- +1 SET TGT=$GET(@XPDGREF@("EXP"))
- SET BLD=$PIECE(TGT,U,2)
- +2 SET TGT=$$FIND1^DIC(19930.99,,"X",$PIECE(TGT,U))
- +3 IF 'TGT
- QUIT
- +4 SET BLD=$$FIND1^DIC(9.6,,"X",BLD)
- +5 SET $PIECE(^CIAVDIST(TGT,0),U,2)=$SELECT(BLD:BLD,1:"")
- SET SUB=0
- +6 FOR
- SET SUB=$ORDER(@XPDGREF@("EXP",SUB))
- IF 'SUB
QUIT
SET FIL=^(SUB)
Begin DoDot:1
+7 NEW SAV
+8 MERGE SAV=^CIAVDIST(TGT,SUB)
+9 IF '$DATA(SAV(0))
QUIT
+10 KILL SAV("B")
+11 KILL ^CIAVDIST(TGT,SUB)
+12 SET ^CIAVDIST(TGT,SUB,0)=SAV(0)
SET IEN=0
+13 FOR
SET IEN=$ORDER(@XPDGREF@("EXP",SUB,IEN))
IF 'IEN
QUIT
SET VAL=^(IEN)
Begin DoDot:2
+14 SET NEW=$$FIND1^DIC(FIL,,"X",VAL)
+15 IF 'NEW
WRITE "Unable to resolve entry: ",VAL,!!
QUIT
+16 SET $PIECE(SAV(IEN,0),U)=NEW
+17 MERGE ^CIAVDIST(TGT,SUB,NEW)=SAV(IEN)
End DoDot:2
End DoDot:1
+18 SET DIK="^CIAVDIST("
SET DA=TGT
+19 DO IX^DIK
+20 QUIT
+21 ; Pre-transportation for components
GBL NEW C,M,P,V,X,X1,Y,Z,DIST,OBJ
+1 SET DIST=$$TGT
SET C=0
+2 ; Save pointer mappings for multiples with .01 field pointers
+3 ; since KIDS doesn't resolve these. (Doesn't work with DINUM)
+4 DO GBLX(19930.2,19930.2,19930.221,9,1)
+5 DO GBLX(19930.21,19930.2,19930.206,2,1)
+6 DO GBLX(19.1,19930.2,19330.204,3,1)
+7 DO GBLX(19.1,19941.21,19941.212,20,5)
+8 DO GBLX(19.1,19941.21,19941.2121,21,5)
+9 ; Save object code for selected routines
+10 FOR X=0:0
SET X=$ORDER(^CIAVDIST(DIST,6,X))
IF 'X
QUIT
Begin DoDot:1
+11 SET Y=$$GET1^DIQ(9.8,X,.01)
+12 IF '$LENGTH(Y)
QUIT
+13 FOR X1=0:0
SET X1=$ORDER(^CIAVDIST(DIST,6,X,1,X1))
IF 'X1
QUIT
SET V=^(X1,0)
Begin DoDot:2
+14 SET M=+V
SET V=$PIECE(V,U,2)
+15 MERGE @XPDGREF@("OBJ",M,V,Y)=^CIAVDIST(DIST,6,X,1,X1,1)
End DoDot:2
End DoDot:1
+16 ; Save initial values for exported parameters.
+17 FOR X=0:0
SET X=$ORDER(^CIAVDIST(DIST,2,X))
IF 'X
QUIT
Begin DoDot:1
+18 SET P=$PIECE(^XTV(8989.51,X,0),U)
+19 FOR Y=0:0
SET Y=$ORDER(^CIAVDIST(DIST,2,X,1,Y))
IF 'Y
QUIT
KILL Z
MERGE Z=^(Y)
Begin DoDot:2
+20 KILL Z(2,0)
+21 SET C=C+1
+22 MERGE @XPDGREF@("PARAM",C)=Z(2)
+23 SET @XPDGREF@("PARAM",C)=P_U_Z(0)_U_$GET(Z(1))
End DoDot:2
End DoDot:1
+24 ; Set rename flag for any object aliases and overwrite for
+25 ; categories, keys, and/or initializations
+26 FOR X=0:0
SET X=$ORDER(^CIAVDIST(DIST,1,X))
IF 'X
QUIT
Begin DoDot:1
+27 SET P=$PIECE(^CIAVOBJ(19930.2,X,0),U)
SET Z=^CIAVDIST(DIST,1,X,0)
+28 FOR Y=0:0
SET Y=$ORDER(^CIAVOBJ(19930.2,X,10,Y))
IF 'Y
QUIT
DO RENAME(^(Y,0),P)
+29 FOR Y=2,3,4
IF $PIECE(Z,U,Y)
SET @XPDGREF@("OVERWRITE",P,$SELECT(Y=4:5,1:Y))=""
End DoDot:1
+30 ; Additional settings
+31 SET @XPDGREF@("INITIAL")=$GET(^CIAVDIST(DIST,50))
+32 SET @XPDGREF@("FINAL")=$GET(^CIAVDIST(DIST,51))
+33 SET @XPDGREF@("EC")=$GET(^CIAVDIST(DIST,53))
+34 XECUTE $GET(^CIAVDIST(DIST,52))
+35 QUIT
+36 ; EP - Export object code for routines
EXPOBJ NEW MSYS,GBL,OBJ,VER,RTN,X
+1 WRITE "Export Object Code for Selected Routines",!!
+2 XECUTE ^%ZOSF("RSEL")
+3 WRITE !!
+4 IF $ORDER(^UTILITY($JOB,$CHAR(1)))=""
QUIT
+5 DO ^%ZIS
+6 IF POP
QUIT
+7 USE IO
+8 SET MSYS=$$UP^XLFSTR($PIECE($$VERSION^%ZOSV(1)," "))
+9 SET VER=$TRANSLATE($$VERSION^%ZOSV()," ")
SET RTN=$CHAR(1)
+10 WRITE MSYS_U_VER,!
+11 FOR
SET RTN=$ORDER(^UTILITY($JOB,RTN))
IF '$LENGTH(RTN)
QUIT
Begin DoDot:1
+12 SET OBJ=""
+13 WRITE RTN,!
+14 IF MSYS="CACHE"
DO EXPC
IF MSYS="JUMPS"
DO EXPJ
IF MSYS="GTM"
DO EXPG
+15 WRITE !
End DoDot:1
+16 WRITE "**END**",!
+17 DO ^%ZISC
+18 QUIT
+19 ; Export a Cache binary
EXPC SET OBJ=$$ENCODE^CIAUUU(^rOBJ(RTN))
+1 FOR
IF OBJ=""
QUIT
Begin DoDot:1
+2 WRITE $EXTRACT(OBJ,1,75),!
+3 SET OBJ=$EXTRACT(OBJ,76,999999)
End DoDot:1
+4 QUIT
+5 ; Export a JUMPS binary
EXPJ SET OBJ=^$RANDOM(RTN,"OBJECT")
+1 FOR
IF OBJ=""
QUIT
Begin DoDot:1
+2 SET X=$FIND(OBJ,$CHAR(10))
+3 IF 'X
SET X=$LENGTH(OBJ)+2
+4 WRITE $EXTRACT(OBJ,1,X-2),!
+5 SET OBJ=$EXTRACT(OBJ,X,999999)
End DoDot:1
+6 QUIT
+7 ; Export a GTM binary
EXPG WRITE "GTM export not yet supported.",!!
+1 QUIT
+2 ; Import object code into distribution
IMPOBJ NEW MSYS,VER,RTN,DIST,FIL,OBJ,QUIT,D1,X
+1 WRITE "Import Object Code into a Distribution",!!
+2 SET DIST=$$LOOKUP(19930.99,"Distribution")
+3 IF 'DIST
QUIT
+4 READ "Object code file: ",FIL,!!
+5 IF U[FIL
QUIT
+6 DO CLOSEALL^CIAUOS
DO OPEN^CIAUOS(.FIL,"R")
+7 USE FIL
+8 READ X
+9 SET MSYS=$PIECE(X,U)
SET VER=$PIECE(X,U,2)
SET OBJ=""
+10 SET MSYS(0)=$SELECT(MSYS="CACHE":1,MSYS="JUMPS":2,1:0)
+11 USE IO(0)
+12 WRITE "Target "_MSYS_" Version: "_VER_"// "
+13 READ X,!
+14 IF $LENGTH(X)
SET VER=X
+15 FOR
USE FIL
READ RTN
IF RTN="**END**"
QUIT
Begin DoDot:1
+16 NEW FDA,IENS,CNT,DATA
+17 USE IO(0)
+18 WRITE ?5,"Importing routine ",RTN,"...",!
+19 SET RTN(0)=$ORDER(^DIC(9.8,"B",RTN,0))
+20 IF 'RTN(0)
SET QUIT=1
QUIT
+21 FOR D1=0:0
SET D1=$ORDER(^CIAVDIST(DIST,6,RTN(0),1,"B",MSYS(0),D1))
IF 'D1
QUIT
Begin DoDot:2
+22 SET X=$PIECE(^CIAVDIST(DIST,6,RTN(0),1,D1,0),U,2)
SET VER(0)=X
+23 FOR
IF X=VER
QUIT
SET X=$PIECE(X,".",1,$LENGTH(X,".")-1)
IF '$LENGTH(X)
QUIT
End DoDot:2
IF $LENGTH(X)
QUIT
+24 IF 'D1
SET VER(0)=VER
+25 SET D1=$SELECT(D1:D1,1:"+1")
+26 SET IENS=D1_","_RTN(0)_","_DIST_","
SET CNT=0
+27 USE FIL
+28 FOR
READ X
IF X=""
QUIT
SET CNT=CNT+1
SET DATA(CNT,0)=X
+29 SET FDA(19930.9961,IENS,.01)=MSYS(0)
+30 SET FDA(19930.9961,IENS,.5)=VER(0)
+31 SET FDA(19930.9961,IENS,1)="DATA"
+32 DO UPDATE^DIE(,"FDA")
End DoDot:1
IF $DATA(QUIT)
QUIT
+33 DO CLOSE^CIAUOS(FIL)
+34 IF $DATA(QUIT)
WRITE "Routine "_RTN_" not found. Import aborted.",!!
+35 QUIT
+36 ; Lookup an entry in file #FN using prompt PM.
LOOKUP(FN,PM,FL,SC) ;
+1 IF 'FN
QUIT -1
+2 NEW DIC,DLAYGO,X,Y
+3 WRITE !
+4 FOR FL=''$GET(FL):-1:0
Begin DoDot:1
+5 SET DIC=FN
SET DIC(0)=$SELECT(FL:"E",1:"AE")
SET DIC("A")=PM_": "
SET X="??"
+6 IF $LENGTH($GET(SC))
SET DIC("S")=SC
+7 DO ^DIC
End DoDot:1
+8 WRITE !
+9 QUIT $SELECT(Y>0:+Y,1:0)
GBLX(TGT,SRC,SUB,NOD,TYP) ;
+1 NEW K,X,Y,Z
+2 SET @XPDGREF@("PTRS",SUB)=NOD_U_SRC_U_TGT
+3 SET TGT=$$ROOT^DILFD(TGT,,1)
SET SRC=$$ROOT^DILFD(SRC,,1)
SET X=0
+4 FOR
SET X=$ORDER(@SRC@(X))
IF 'X
QUIT
SET Y=$PIECE(^(X,0),U)
SET Z=0
IF $$SCRN(X,TYP)
Begin DoDot:1
+5 SET @XPDGREF@("PTRS",SUB,Y)=""
+6 FOR
SET Z=$ORDER(@SRC@(X,NOD,Z))
IF 'Z
QUIT
SET K=+$GET(^(Z,0))
IF K
Begin DoDot:2
+7 SET K=$PIECE($GET(@TGT@(K,0)),U)
+8 IF $LENGTH(K)
SET @XPDGREF@("PTRS",SUB,Y,K)=""
End DoDot:2
End DoDot:1
+9 QUIT
+10 ; Set progid's to be renamed
RENAME(OLD,NEW) ;
+1 SET OLD=$TRANSLATE(OLD," ")
+2 IF $LENGTH(OLD)
SET @XPDGREF@("RENAME",OLD,NEW)=""
+3 QUIT
+4 ; Set target distribution (user is prompted if necessary)
+5 ; If NOSCN is set, selection will not be screened.
TGT(NOSCN) ;EP
+1 NEW DIC,Y
+2 IF $GET(XPDERR)
QUIT 0
+3 SET Y=+$GET(@XPDGREF@("TGT"))
+4 IF Y>0
QUIT Y
+5 SET Y=$ORDER(^CIAVDIST("C",XPDA,0))
+6 IF Y
IF '$ORDER(^CIAVDIST("C",XPDA,Y))
WRITE "Target distribution: ",$PIECE(^CIAVDIST(Y,0),U)
+7 IF '$TEST
Begin DoDot:1
+8 SET DIC=19930.99
SET DIC(0)="AEF"
SET DIC("A")="Enter target distribution: "
+9 IF '$GET(NOSCN)
SET DIC("S")="I $P(^(0),U,2)=XPDA"
+10 DO ^DIC
+11 SET Y=+Y
End DoDot:1
+12 WRITE !!
+13 IF Y<1
SET XPDERR=1
SET Y=0
+14 IF '$TEST
SET @XPDGREF@("TGT")=Y
+15 QUIT Y
+16 ; Screen entries
+17 ; IEN = Entry to screen
+18 ; TYP = 1: Object Registry
+19 ; 2: Parameter Definition
+20 ; 3: Parameter Template
+21 ; 4: Template Registry
+22 ; 5: Event Type
+23 ; 6: Routine
+24 ; 7: Object Category
+25 ; Returns true if entry is to be included.
SCRN(IEN,TYP) ;
+1 IF '$GET(TYP)
QUIT 1
+2 QUIT $DATA(^CIAVDIST($$TGT,TYP,IEN))