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

VENPCCQ7.m

Go to the documentation of this file.
  1. VENPCCQ7 ; IHS/OIT/GIS - POSTINIT AND VALIDATION ROUTINE: VUECENTRIC COMPONENTS ;
  1. ;;2.6;PCC+;**1,4**;APR 03, 2012;Build 24
  1. ;
  1. ;
  1. VOR(IEN) ; EP - FILTER PCC+ COMPONENTS IN THE VUECENTRIC OBJECT REGISTRY FOR KIDS BUILD ; USED ON SOURCE SERVER
  1. I $G(IEN),$D(^CIAVOBJ(19930.2,IEN,0))
  1. E Q 0
  1. N X,Y,BIEN
  1. S BIEN=$O(^VEN(7.26,"B","PCC+ 2.6",0)) I 'BIEN Q 0
  1. S Y=$P(^CIAVOBJ(19930.2,IEN,0),U)
  1. I $O(^VEN(7.26,BIEN,1,"B",$E(Y,1,30),0)) Q 1
  1. Q 0
  1. ;
  1. POSTINIT ; ------------------- EPs FOR POST INIT ------------------------
  1. ;
  1. KBM(START,END,ERR) ; EP - GIVEN START AND END IENs, ADD ITEMS TO VEN EHP KB ITEMS FILE FROM THE VEN EHP KB MASTER FILE ; TARGET SERVER
  1. S ERR=1
  1. I $D(^VEN(7.12)),$D(^VEN(7.17)),$D(START),$G(END)
  1. E W !?5,"Knowledgebase file missing! Post init terminated...",!!! Q
  1. N DIC,DIE,DIK,DA,DR,X,Y,Z,%,GBL
  1. S DIK="^VEN(7.12,",GBL=$NA(^VEN(7.12))
  1. I START S DA=START-1
  1. F S DA=$O(^VEN(7.17,DA)) Q:'DA Q:DA>END D
  1. . I '(DA#50) W "."
  1. . K Z
  1. . I $D(@GBL@(DA,0)) D ; REFRESH NODE BUT KEEP CURRENT ACTIVITY STATUS
  1. .. S Z=$P(@GBL@(DA,0),U,11)
  1. .. D ^DIK
  1. .. Q
  1. . M @GBL@(DA)=^VEN(7.17,DA) ; COPY 1 ENTRY
  1. . I $D(Z) S $P(@GBL@(DA,0),U,11)=Z ; SAVE THE PREVIOUS ACTIVE STATUS - IF AVAILABLE
  1. . D IX^DIK ; SET X-REF FOR 1 ENTRY
  1. . Q
  1. S $P(^VEN(7.12,0),U,3,4)=END_U_END
  1. D ^XBFMK
  1. S ERR=0
  1. Q
  1. ;
  1. CKVOBJ(BLD,OK) ; EP - CHECK REGISTERED VUECENTRIC OBJECTS ; TARGET SERVER
  1. S OK=0
  1. I $L($G(BLD))
  1. E Q
  1. N A,B,C,D,DS,X,Y,Z,%,PCE,IEN,NM,GBL,IX,STG,DSTG,IXD,DIEN,BIEN,IXX,NAME,DNAME,DNM,TIEN,VGBL,VIEN
  1. S BIEN=$O(^VEN(7.26,"B",BLD,0)) I 'BIEN S OK=1 Q ; BUILD NOT REGISTERED
  1. S GBL=$NA(^CIAVOBJ(19930.2)),VGBL=$NA(^VEN(7.26))
  1. S NM=""
  1. F S NM=$O(@VGBL@(BIEN,1,"B",NM)) Q:NM="" S VIEN=0 F S VIEN=$O(@VGBL@(BIEN,1,"B",NM,VIEN)) Q:'VIEN D ; CHECK OBJECTS AND BUILD THE OBJECT IX ARRAY
  1. . ; S VIEN=$O(@VGBL@(BIEN,1,"B",NM,0)) I 'VIEN Q
  1. . S NAME=$P($G(@VGBL@(BIEN,1,VIEN,0)),U) I NAME="" Q
  1. . S IEN=0
  1. . F S IEN=$O(@GBL@("B",NM,IEN)) Q:'IEN I $P($G(@GBL@(IEN,0)),U)=NAME Q
  1. . I 'IEN D Q
  1. .. I '$D(IXX(NM)) W !?5,"The VueCentric Object '"_NAME_" is missing" S IXX(NM)=""
  1. .. S OK=1
  1. .. Q
  1. . S IX(IEN)=NAME,DNM=""
  1. . F S DNM=$O(@VGBL@(BIEN,1,VIEN,1,"B",DNM)) Q:DNM="" S DIEN=0 F S DIEN=$O(@VGBL@(BIEN,1,VIEN,1,"B",DNM,DIEN)) Q:'DIEN D
  1. .. S DNAME=$P($G(@VGBL@(BIEN,1,VIEN,1,DIEN,0)),U) I DNAME="" Q
  1. .. S TIEN=0
  1. .. F S TIEN=$O(@GBL@("B",DNM,TIEN)) Q:'TIEN I $P($G(@GBL@(TIEN,0)),U)=DNAME Q
  1. .. I 'TIEN D Q
  1. ... I '$D(IXX(DNM)) W !?5,"The VueCentric Object '"_NAME_" is missing" S IXX(DNM)=""
  1. ... S OK=1
  1. ... Q
  1. .. S IX(IEN,TIEN)=DNAME
  1. . Q
  1. S IEN=0
  1. DEP F S IEN=$O(IX(IEN)) Q:'IEN D ; REBUILD THE SUBFILE WITH IEN FROM THE TARGET MACHINE
  1. . I '$O(IX(IEN,0)) Q ; NO DEPENDENCIES
  1. . K @GBL@(IEN,9) ; FIRST CLEAN OUT THE SUBFILE
  1. . S DA(1)=IEN,DIC="^CIAVOBJ(19930.2,"_DA(1)_",9,",(DIC("P"),DLAYGO)=19930.221,DIC(0)="L"
  1. . S TIEN=0
  1. . F S TIEN=$O(IX(IEN,TIEN)) Q:'TIEN D
  1. .. S X="`"_TIEN
  1. .. D ^DIC
  1. .. I Y=-1 S OK=1 W !,"Dependency failure: ",IEN,",",TIEN
  1. .. Q
  1. . Q
  1. I OK W !?7,"Unable to enter all VueCentric Objects and dependencies",! Q
  1. Q
  1. ;
  1. HOLD(KEYS,UTYPE) ; EP - ALLOCATE PACKAGE KEYS TO MANAGERS AND USERS ; TARGET SERVER
  1. I $L($G(KEYS)),$L($G(UTYPE))
  1. E Q
  1. N DFN,NAME,X,%,Y,KIEN,KIENS,KEY,Z,STOP,PCE,PRIV,KEYFLAG,STOP,XSTOP
  1. S KEY=$P(KEYS,U),KIENS=""
  1. F PCE=1:1:$L(KEYS,U) D I %="" Q
  1. . S %=$P(KEYS,U,PCE) I %="" Q
  1. . S X=$O(^DIC(19.1,"B",%,0)) I 'X W !?5,"The Security Key ",%," is missing!!!" S %="" Q
  1. . I $L(KIENS) S KIENS=KIENS_U
  1. . S KIENS=KIENS_X
  1. . Q
  1. S KIEN=+KIENS,PRIV=0,KEYFLAG=0,STOP=0
  1. I DUZ(0)'="@",'$D(^VA(200,DUZ,52,KIEN,0)),'$D(^XUSEC("XUMGR",DUZ)),'$D(XUSEC(KEY,DUZ)) ; CURRENT USER HAS KEY ALLOCATION PRIVELEGES
  1. I W !?5,"You currently lack priveleges to distribute keys for this package! Try again later... " Q
  1. LISTHLDR I $O(^XUSEC(KEY,0)) D ; LIST ALL KEY HOLDERS
  1. . S KEYFLAG=1
  1. . S DFN=0 W !?5,"Holders:"
  1. . F S DFN=$O(^XUSEC(KEY,DFN)) Q:'DFN D
  1. .. S NAME=$P($G(^VA(200,DFN,0)),U)
  1. .. I $L(NAME) W !?20,NAME
  1. .. I DFN=DUZ S PRIV=1
  1. .. Q
  1. . Q
  1. I UTYPE="M" D Q:XSTOP G HOLD1
  1. . S XSTOP=1
  1. . I 'KEYFLAG D
  1. .. W !?5,"Currently no site managers or CACs hold the GUI management keys!"
  1. .. W !?5,"Want to assign them to yourself"
  1. .. S %=1 D YN^DICN
  1. .. I %'=1 W !?8,"You must own this key to proceed! Try again later..." Q
  1. .. D ADDKEY(1,KIEN,.STOP) ; ASSIGN KEY TO PRIMARY MANAGER
  1. .. Q
  1. . W !!?2,"Want to assign the GUI Management Keys to IT personnel or CACs"
  1. . S %=2 D YN^DICN
  1. . I %=1 S XSTOP=0
  1. . Q
  1. UKEY I 'KEYFLAG W !!,"Currently no users hold the ",KEY," key"
  1. W !!?2,"Want to assign this key to any other users"
  1. S %=2 D YN^DICN
  1. I %'=1 Q
  1. HOLD1 S STOP=0
  1. F D ADDKEY(0,KIENS,.STOP) I STOP Q ; GET ANOTHER KEYHOLDER
  1. Q
  1. ;
  1. ADDKEY(SELF,KIENS,STOP) ; EP - ALLOCATE KEY
  1. N DIC,X,%,DA,DR,DIE,TODAY,SCIEN,KIEN,USER
  1. I SELF S USER=DUZ G AK1 ; SELF-ASSIGNMENT
  1. S DIC=200,DIC(0)="AEQM",DIC("A")="Allocate this key to: "
  1. D ^DIC I Y=-1 S STOP=1 Q
  1. S USER=+Y
  1. S SCIEN=$O(^VA(200,+Y,51,"B",+KIENS,0))
  1. I SCIEN D Q ; THIS USER ALREADY HAS THE KEY
  1. . W !,"This user already holds this key!",!,"Want to de-allocate the key"
  1. . S %=2 D YN^DICN I %'=1 D ^XBFMK Q
  1. . S DA(1)=+Y,DA=SCIEN,DIK="^VA(200,"_DA(1)_",51,"
  1. . D ^DIK,^XBFMK
  1. . W " <- Key de-allocated"
  1. . Q
  1. AK1 ; GIVE ALL OTHER KEYS TO THE RECIPIENT
  1. S DA(1)=USER,DIC="^VA(200,"_DA(1)_",51,",DIC("P")="200.051PA",DIC(0)="L",DLAYGO=200.051
  1. F PCE=1:1:$L(KIENS,U) S KIEN=$P(KIENS,U,PCE) I KIEN D
  1. . S X="`"_KIEN
  1. . D ^DIC I Y=-1 Q
  1. . S DA=+Y,DIE=DIC,DR=".02////^S X=USER;.03////^S X=TODAY"
  1. . L +^VA(200,DA(1)):1 I D ^DIE L -^VA(200,DA(1))
  1. . Q
  1. W " <- Key allocated"
  1. ABP ; ASSIGN BMX BROKER PRIVELEGES TO THE RECIPIENT
  1. N OPT,GBL,IEN,DIC,DIE,DA,DR,DLAYGO,MN,D0
  1. S OPT=$O(^DIC(19,"B","VEN RPC",0)) I 'OPT Q
  1. I $O(^VA(200,USER,203,"B",OPT,0)) Q ; ITS ALREADY IN THERE
  1. S (D0,DA(1))=USER,DIC="^VA(200,"_DA(1)_",203,",DIC(0)="LO"
  1. S (DIC("P"),DLAYGO)=200.03
  1. S X="`"_OPT
  1. D ^DIC I Y=-1 Q
  1. S DA=+Y,DIE=DIC,DR="2////^S X=MN",MN="WRPC"
  1. L +^VA(200,USER,203,DA):1 I D ^DIE L -^VA(200,USER,203,DA)
  1. D ^XBFMK
  1. Q
  1. ;
  1. UMO(MIEN,GMIEN) ; EP - ADD VEN_GUIMGR OPTION TO A MENU
  1. I $G(MIEN)
  1. E Q
  1. N GBL,IEN,DIC,DIE,DA,DR,DLAYGO,MN,D0
  1. I $O(^DIC(19,MIEN,10,"B",GMIEN,0)) Q ; ITS ALREADY IN THERE
  1. S (D0,DA(1))=MIEN,DIC="^DIC(19,"_DA(1)_",10,",DIC(0)="LO"
  1. S (DIC("P"),DLAYGO)=19.01
  1. S X="`"_GMIEN
  1. D ^DIC I Y=-1 Q
  1. S DA=+Y,DIE=DIC,DR="2////^S X=MN",MN="MPG"
  1. L +^DIC(19,MIEN,10,DA):1 I D ^DIE L -^DIC(19,MIEN,10,DA)
  1. D ^XBFMK
  1. Q
  1. ;
  1. CIABMX(OK) ; EP - IF NECESSARY, ADD THE RPC CIABMX TO THE CIAV VUECENTRIC OPTION
  1. N OIEN,RIEN,X,Y,Z,%,DIC,DLAYGO
  1. S RIEN=$O(^XWB(8994,"B","CIABMX",0))
  1. I 'RIEN W !?5,"The RPC 'CIABMX' is missing",! S OK=1 Q
  1. S OIEN=$O(^DIC(19,"B","CIAV VUECENTRIC",0))
  1. I 'OIEN W !?5,"The Option 'CIAV VUECENTRIC' is missing",! S OK=1 Q
  1. S DA(1)=OIEN,DIC="^DIC(19,"_DA(1)_",""RPC"",",(DLAYGO,DIC("P"))=19.05,DIC(0)="L"
  1. S X="`"_RIEN
  1. D ^DIC
  1. I Y=-1 W !?5,"The RPC CIABMX is not registered in broker option CIAV VUECENTRIC" S OK=1 Q
  1. Q
  1. ;
  1. PATH(PATH) ; ALERT THE USER OF THE PATH TO THE WCM DLLS
  1. N PIEN,X,Y,Z,%
  1. S PATH=""
  1. S PIEN=$O(^XTV(8989.51,"B","CIAVM DEFAULT SOURCE",0)) I 'PIEN Q
  1. S X=0
  1. F Q:$L(PATH) S X=$O(^XTV(8989.5,X)) Q:'X D
  1. . S %=$P($G(^XTV(8989.5,X,0)),U,2)
  1. . I %'=PIEN Q
  1. . S PATH=$G(^XTV(8989.5,X,1))
  1. . Q
  1. Q
  1. ;
  1. DEVEL ; --------------- DEVELOPER UTILITIES -------------------
  1. ;
  1. POF ; POPULATE THE VEN OBJECTS FILE
  1. N X,Y,Z,%,DIC,DIE,DA,DR,DLAYGO,NM,DNM,IEN,DIEN,BIEN,XIEN
  1. W !!!,"Enter the VueCentric objects included in this build...",!!
  1. S DIC("A")="Enter build: ",(DIC,DLAYGO)=19707.26,DIC(0)="AEQL"
  1. D ^DIC I Y=-1 Q
  1. S BIEN=+Y
  1. LOOP S DIC("A")="VueCentric object: ",DIC=19930.2,DIC(0)="AEQM"
  1. D ^DIC I Y=-1 G POP
  1. S IEN=+Y,OBJ=$P(Y,U,2),DA=0
  1. F S DA=$O(^VEN(7.26,BIEN,1,"B",$E(OBJ,1,30),DA)) Q:'DA I $P($G(^VEN(7.26,BIEN,1,DA,0)),U)=OBJ D G LOOP
  1. . W !?3,OBJ," is already in the build",!?3,"Want to remove it"
  1. . S %="" D YN^DICN
  1. . I %'=1 Q
  1. . S DA(1)=BIEN,DIK="^VEN(7.26,"_DA(1)_",1,"
  1. . D ^DIK
  1. . Q
  1. S ARR(IEN)=OBJ
  1. S DIEN=0
  1. F S DIEN=$O(^CIAVOBJ(19930.2,IEN,9,"B",DIEN)) Q:'DIEN D
  1. . S DNM=$P($G(^CIAVOBJ(19930.2,DIEN,0)),U) I DNM="" Q
  1. . S ARR(IEN,DIEN)=DNM
  1. . Q
  1. W !! G LOOP
  1. POP I '$O(ARR(0)) Q
  1. S IEN=0
  1. F S IEN=$O(ARR(IEN)) Q:'IEN D
  1. . S DA(1)=BIEN,(DIC("P"),DLAYGO)=19707.261,DIC(0)="LO",DIC="^VEN(7.26,"_DA(1)_",1,"
  1. . S X=ARR(IEN)
  1. . D ^DIC I Y=-1 Q
  1. . S XIEN=+Y,DA(2)=BIEN,DA(1)=XIEN
  1. . S DIC="^VEN(7.26,"_DA(2)_",1,"_DA(1)_",1,",(DIC("P"),DLAYGO)=19707.2611,DIC(0)="LO"
  1. . S DIEN=0
  1. . F S DIEN=$O(ARR(IEN,DIEN)) Q:'DIEN D
  1. .. S X=ARR(IEN,DIEN)
  1. .. D ^DIC
  1. .. Q
  1. . Q
  1. Q
  1. ;
  1. AUTODFRM ; AUTOMATE DIFROM SO NO USER INTERVENTION IS NECESSARY
  1. S DIR(0)="F^5:9",DIR("A")="Enter name of any routine in the DIFROM"
  1. D ^DIR
  1. I Y?1"^" Q
  1. I $E(Y)=U S Y=$E(Y,2,99)
  1. S %=$E(Y,$L(Y)-3) I %'="I" W " ??",!! G AUTODFRM
  1. S ROOT=$E(Y,1,$L(Y)-4),DELGBL=""
  1. W !,"Want to delete the data global before running DIFROM"
  1. S %=2 D YN^DICN
  1. I %=1 D I Y=-1 Q
  1. . S DIC("A")="Delete global from what file: "
  1. . S DIC=1,DIC(0)="AEQM"
  1. . D ^DIC I Y=-1 Q
  1. . S %="" W !,"Are you sure you want to delete it"
  1. . D YN^DICN
  1. . I %'=1 Q
  1. . S Z=^DIC(+Y,0,"GL")
  1. . S Z=$E(Z,1,$L(Z)-1)
  1. . S DELGBL=" S %="""_Z_")"" K @%"
  1. . Q
  1. X ("S %=$T(ASK^"_ROOT_"INI1)")
  1. I %="" W !?5,"Can't find the routine ",ROOT,"INI1... Request terminated!" Q
  1. I %["S DSEC=1" W !?5,"Already modified... Request terminated!" Q
  1. S Z=$C($A("Z"))
  1. S LINE="ASK S DSEC=1"_DELGBL
  1. S RT=ROOT_"INI1"
  1. S X="ZL "_RT_" ZR ASK+1 ZR ASK ZI LINE ZS "_RT_" ZL VENPCCQ7"
  1. MD X X
  1. X ("S %=$T(ASK^"_ROOT_"INI1)")
  1. W !?5
  1. I %["S DSEC=1" W "DIFROM modified successfully!" Q
  1. W "Unable to modify DIFROM"
  1. Q
  1. ;
  1. ACT ; EP - MANAGE WCM DOMIANS: MAKE THEM ACTIVE OR INCATIVE
  1. N %,%Y,DIR,DIC,DIE,DA,DR,X,Y,Z,%,DIEN,TOT
  1. W !!,"Checking Knowledgebase domains... ",!
  1. K TOT D ACTL
  1. S %=2 W !!,"Want to change the status of any of these elements"
  1. D YN^DICN I %'=1 Q
  1. S DIR("A")="Which element"
  1. ACT1 S DIR(0)="NO^1:"_TOT_":0"
  1. D ^DIR I 'Y Q
  1. S DA=$G(TOT(Y)) I 'DA Q
  1. S DIE="^VEN(7.13,",DR=".07Is this domain active?"
  1. L +^VEN(7.13,DA):1 I D ^DIE L -^VEN(7.13,DA)
  1. D ACTL
  1. S DIR("A")="Another element" W !! G ACT1
  1. ;
  1. ACTL ; EP - SHOW IF DOMAIN IS ACTIVE
  1. S DIEN=0,TOT=0
  1. F S DIEN=$O(^VEN(7.13,DIEN)) Q:'DIEN D
  1. . S X=$G(^VEN(7.13,DIEN,0))
  1. . S Y=$P(X,U) I Y'["WELL CHILD" Q
  1. . S Z=$P(X,U,7),TOT=TOT+1,TOT(TOT)=DIEN
  1. . W !?5,TOT,". ",Y," <-",$S(Z'=1:"IN",1:""),"ACTIVE"
  1. . Q
  1. Q
  1. ;