Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: CIAVINX

CIAVINX.m

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