KIDS Distribution saved on Apr 26, 2018@09:45:20 VistA Imaging V 3 - Patch 198 - BP fixes. **KIDS**:MAG*3.0*198^ **INSTALL NAME** MAG*3.0*198 "BLD",8373,0) MAG*3.0*198^IMAGING^0^3180426^y "BLD",8373,1,0) ^^10^10^3180425^^^^ "BLD",8373,1,1,0) VistA Imaging Patch 198 - BackGround Processor (BP) "BLD",8373,1,2,0) This patch fixes the memory leak issue in the "BLD",8373,1,3,0) Thumbnail/Abstract maker. "BLD",8373,1,4,0) Fixes an issue in the Verifier. The Verifier "BLD",8373,1,5,0) was not checking the Operational Staus of TIER 2 Locations "BLD",8373,1,6,0) and was checking Off-Line Locations for Images. "BLD",8373,1,7,0) Also, this Patch will be a Full Install of the Background "BLD",8373,1,8,0) Processor and all utility applications. "BLD",8373,1,9,0) When Patch 198 KIDs is installed, BP Client versions "BLD",8373,1,10,0) 135, 196, 198 will all be supported. "BLD",8373,4,0) ^9.64PA^^0 "BLD",8373,6.3) 31 "BLD",8373,"ABNS",0) ^9.66A^^ "BLD",8373,"ABPKG") n^n^G.IMAGING DEVELOPMENT TEAM@AADOMAIN.EXT "BLD",8373,"INI") PRE^MAGIP198 "BLD",8373,"INID") n^y^n "BLD",8373,"INIT") POS^MAGIP198 "BLD",8373,"KRN",0) ^9.67PA^779.2^20 "BLD",8373,"KRN",.4,0) .4 "BLD",8373,"KRN",.4,"NM",0) ^9.68A^^ "BLD",8373,"KRN",.401,0) .401 "BLD",8373,"KRN",.402,0) .402 "BLD",8373,"KRN",.403,0) .403 "BLD",8373,"KRN",.5,0) .5 "BLD",8373,"KRN",.84,0) .84 "BLD",8373,"KRN",3.6,0) 3.6 "BLD",8373,"KRN",3.8,0) 3.8 "BLD",8373,"KRN",9.2,0) 9.2 "BLD",8373,"KRN",9.8,0) 9.8 "BLD",8373,"KRN",9.8,"NM",0) ^9.68A^4^2 "BLD",8373,"KRN",9.8,"NM",3,0) MAGQBUT4^^0^B97886855 "BLD",8373,"KRN",9.8,"NM",4,0) MAGIP198^^0^B4237434 "BLD",8373,"KRN",9.8,"NM","B","MAGIP198",4) "BLD",8373,"KRN",9.8,"NM","B","MAGQBUT4",3) "BLD",8373,"KRN",19,0) 19 "BLD",8373,"KRN",19,"NM",0) ^9.68A^^ "BLD",8373,"KRN",19.1,0) 19.1 "BLD",8373,"KRN",19.1,"NM",0) ^9.68A^^ "BLD",8373,"KRN",101,0) 101 "BLD",8373,"KRN",409.61,0) 409.61 "BLD",8373,"KRN",771,0) 771 "BLD",8373,"KRN",779.2,0) 779.2 "BLD",8373,"KRN",870,0) 870 "BLD",8373,"KRN",8989.51,0) 8989.51 "BLD",8373,"KRN",8989.52,0) 8989.52 "BLD",8373,"KRN",8994,0) 8994 "BLD",8373,"KRN","B",.4,.4) "BLD",8373,"KRN","B",.401,.401) "BLD",8373,"KRN","B",.402,.402) "BLD",8373,"KRN","B",.403,.403) "BLD",8373,"KRN","B",.5,.5) "BLD",8373,"KRN","B",.84,.84) "BLD",8373,"KRN","B",3.6,3.6) "BLD",8373,"KRN","B",3.8,3.8) "BLD",8373,"KRN","B",9.2,9.2) "BLD",8373,"KRN","B",9.8,9.8) "BLD",8373,"KRN","B",19,19) "BLD",8373,"KRN","B",19.1,19.1) "BLD",8373,"KRN","B",101,101) "BLD",8373,"KRN","B",409.61,409.61) "BLD",8373,"KRN","B",771,771) "BLD",8373,"KRN","B",779.2,779.2) "BLD",8373,"KRN","B",870,870) "BLD",8373,"KRN","B",8989.51,8989.51) "BLD",8373,"KRN","B",8989.52,8989.52) "BLD",8373,"KRN","B",8994,8994) "BLD",8373,"QDEF") ^^^^NO^^^^NO^^NO "BLD",8373,"QUES",0) ^9.62^^ "BLD",8373,"REQB",0) ^9.611^1^1 "BLD",8373,"REQB",1,0) MAG*3.0*196^2 "BLD",8373,"REQB","B","MAG*3.0*196",1) "INI") PRE^MAGIP198 "INIT") POS^MAGIP198 "MBREQ") 0 "PKG",454,-1) 1^1 "PKG",454,0) IMAGING^MAG^Imaging-V1 to release "PKG",454,20,0) ^9.402P^^ "PKG",454,22,0) ^9.49I^1^1 "PKG",454,22,1,0) 3.0^3020319^3020517^126 "PKG",454,22,1,"PAH",1,0) 198^3180426^126 "PKG",454,22,1,"PAH",1,1,0) ^^10^10^3180426 "PKG",454,22,1,"PAH",1,1,1,0) VistA Imaging Patch 198 - BackGround Processor (BP) "PKG",454,22,1,"PAH",1,1,2,0) This patch fixes the memory leak issue in the "PKG",454,22,1,"PAH",1,1,3,0) Thumbnail/Abstract maker. "PKG",454,22,1,"PAH",1,1,4,0) Fixes an issue in the Verifier. The Verifier "PKG",454,22,1,"PAH",1,1,5,0) was not checking the Operational Staus of TIER 2 Locations "PKG",454,22,1,"PAH",1,1,6,0) and was checking Off-Line Locations for Images. "PKG",454,22,1,"PAH",1,1,7,0) Also, this Patch will be a Full Install of the Background "PKG",454,22,1,"PAH",1,1,8,0) Processor and all utility applications. "PKG",454,22,1,"PAH",1,1,9,0) When Patch 198 KIDs is installed, BP Client versions "PKG",454,22,1,"PAH",1,1,10,0) 135, 196, 198 will all be supported. "QUES","XPF1",0) Y "QUES","XPF1","??") ^D REP^XPDH "QUES","XPF1","A") Shall I write over your |FLAG| File "QUES","XPF1","B") YES "QUES","XPF1","M") D XPF1^XPDIQ "QUES","XPF2",0) Y "QUES","XPF2","??") ^D DTA^XPDH "QUES","XPF2","A") Want my data |FLAG| yours "QUES","XPF2","B") YES "QUES","XPF2","M") D XPF2^XPDIQ "QUES","XPI1",0) YO "QUES","XPI1","??") ^D INHIBIT^XPDH "QUES","XPI1","A") Want KIDS to INHIBIT LOGONs during the install "QUES","XPI1","B") NO "QUES","XPI1","M") D XPI1^XPDIQ "QUES","XPM1",0) PO^VA(200,:EM "QUES","XPM1","??") ^D MG^XPDH "QUES","XPM1","A") Enter the Coordinator for Mail Group '|FLAG|' "QUES","XPM1","B") "QUES","XPM1","M") D XPM1^XPDIQ "QUES","XPO1",0) Y "QUES","XPO1","??") ^D MENU^XPDH "QUES","XPO1","A") Want KIDS to Rebuild Menu Trees Upon Completion of Install "QUES","XPO1","B") NO "QUES","XPO1","M") D XPO1^XPDIQ "QUES","XPZ1",0) Y "QUES","XPZ1","??") ^D OPT^XPDH "QUES","XPZ1","A") Want to DISABLE Scheduled Options, Menu Options, and Protocols "QUES","XPZ1","B") NO "QUES","XPZ1","M") D XPZ1^XPDIQ "QUES","XPZ2",0) Y "QUES","XPZ2","??") ^D RTN^XPDH "QUES","XPZ2","A") Want to MOVE routines to other CPUs "QUES","XPZ2","B") NO "QUES","XPZ2","M") D XPZ2^XPDIQ "RTN") 2 "RTN","MAGIP198") 0^4^B4237434 "RTN","MAGIP198",1,0) MAGIP198 ;WOIFO/GEK - INSTALL CODE FOR MAG*3.0*198 BP; "RTN","MAGIP198",2,0) ;;3.0;IMAGING;**198**;Mar 19, 2002;Build 31;Apr 25, 2018 "RTN","MAGIP198",3,0) ;; Per VHA Directive 2004-038, this routine should not be modified. "RTN","MAGIP198",4,0) ;; +---------------------------------------------------------------+ "RTN","MAGIP198",5,0) ;; | Property of the US Government. | "RTN","MAGIP198",6,0) ;; | No permission to copy or redistribute this software is given. | "RTN","MAGIP198",7,0) ;; | Use of unreleased versions of this software requires the user | "RTN","MAGIP198",8,0) ;; | to execute a written test agreement with the VistA Imaging | "RTN","MAGIP198",9,0) ;; | Development Office of the Department of Veterans Affairs, | "RTN","MAGIP198",10,0) ;; | telephone (301) 734-0100. | "RTN","MAGIP198",11,0) ;; | The Food and Drug Administration classifies this software as | "RTN","MAGIP198",12,0) ;; | a medical device. As such, it may not be changed in any way. | "RTN","MAGIP198",13,0) ;; | Modifications to this software may result in an adulterated | "RTN","MAGIP198",14,0) ;; | medical device under 21CFR820, the use of which is considered | "RTN","MAGIP198",15,0) ;; | to be a violation of US Federal Statutes. | "RTN","MAGIP198",16,0) ;; +---------------------------------------------------------------+ "RTN","MAGIP198",17,0) ;; "RTN","MAGIP198",18,0) ; There are no environment checks here but the MAGIP198 has to be "RTN","MAGIP198",19,0) ; referenced by the "Environment Check Routine" field of the KIDS "RTN","MAGIP198",20,0) ; build so that entry points of the routine are available to the "RTN","MAGIP198",21,0) ; KIDS during all installation phases. "RTN","MAGIP198",22,0) ; "RTN","MAGIP198",23,0) Q "RTN","MAGIP198",24,0) ; "RTN","MAGIP198",25,0) ;+++++ INSTALLATION ERROR HANDLING "RTN","MAGIP198",26,0) ERROR ; "RTN","MAGIP198",27,0) S:$D(XPDNM) XPDABORT=1 "RTN","MAGIP198",28,0) ;--- Display the messages and store them to the INSTALL file "RTN","MAGIP198",29,0) D DUMP^MAGUERR1(),ABTMSG^MAGKIDS() "RTN","MAGIP198",30,0) Q "RTN","MAGIP198",31,0) ; "RTN","MAGIP198",32,0) POST ;***** POST-INSTALL CODE "RTN","MAGIP198",33,0) POS ; "RTN","MAGIP198",34,0) N CALLBACK "RTN","MAGIP198",35,0) D CLEAR^MAGUERR(1) "RTN","MAGIP198",36,0) I $G(DUZ)<.5 S XPDABORT=1 Q "RTN","MAGIP198",37,0) ;--- Send the notification e-mail "RTN","MAGIP198",38,0) D BMES^XPDUTL("Post Install Mail Message: "_$$FMTE^XLFDT($$NOW^XLFDT)) "RTN","MAGIP198",39,0) D INS^MAGQBUT4(XPDNM,DUZ,$$NOW^XLFDT,XPDA) "RTN","MAGIP198",40,0) ; "RTN","MAGIP198",41,0) Q "RTN","MAGIP198",42,0) ; "RTN","MAGIP198",43,0) ;***** PRE-INSTALL CODE "RTN","MAGIP198",44,0) PRE ; "RTN","MAGIP198",45,0) ;**** "RTN","MAGIP198",46,0) QUIT "RTN","MAGQBUT4") 0^3^B97886855 "RTN","MAGQBUT4",1,0) MAGQBUT4 ;WOIFO/RMP - BP Utilities ; "RTN","MAGQBUT4",2,0) ;;3.0;IMAGING;**7,8,48,20,81,39,121,135,196,198**;Mar 19, 2002;Build 31;Apr 25, 2018 "RTN","MAGQBUT4",3,0) ;; Per VHA Directive 2004-038, this routine should not be modified. "RTN","MAGQBUT4",4,0) ;; +---------------------------------------------------------------+ "RTN","MAGQBUT4",5,0) ;; | Property of the US Government. | "RTN","MAGQBUT4",6,0) ;; | No permission to copy or redistribute this software is given. | "RTN","MAGQBUT4",7,0) ;; | Use of unreleased versions of this software requires the user | "RTN","MAGQBUT4",8,0) ;; | to execute a written test agreement with the VistA Imaging | "RTN","MAGQBUT4",9,0) ;; | Development Office of the Department of Veterans Affairs, | "RTN","MAGQBUT4",10,0) ;; | telephone (301) 734-0100. | "RTN","MAGQBUT4",11,0) ;; | The Food and Drug Administration classifies this software as | "RTN","MAGQBUT4",12,0) ;; | a medical device. As such, it may not be changed in any way. | "RTN","MAGQBUT4",13,0) ;; | Modifications to this software may result in an adulterated | "RTN","MAGQBUT4",14,0) ;; | medical device under 21CFR820, the use of which is considered | "RTN","MAGQBUT4",15,0) ;; | to be a violation of US Federal Statutes. | "RTN","MAGQBUT4",16,0) ;; +---------------------------------------------------------------+ "RTN","MAGQBUT4",17,0) ;; "RTN","MAGQBUT4",18,0) ; "RTN","MAGQBUT4",19,0) Q "RTN","MAGQBUT4",20,0) CONV(ARR,ICT) ;Convert any single node array to FM Style multiple "RTN","MAGQBUT4",21,0) ; The node subscripts of ARR are ignored, and not retained "RTN","MAGQBUT4",22,0) ; i.e. ARR(34)=8 "RTN","MAGQBUT4",23,0) ; ARR("BLUE")=9 "RTN","MAGQBUT4",24,0) ; ARR("D")=10 "RTN","MAGQBUT4",25,0) ; converts to "RTN","MAGQBUT4",26,0) ; ARR(1,0)=8 "RTN","MAGQBUT4",27,0) ; ARR(2,0)=9 "RTN","MAGQBUT4",28,0) ; ARR(3,0)=10 "RTN","MAGQBUT4",29,0) N I,ARO "RTN","MAGQBUT4",30,0) S ICT=0,I="" "RTN","MAGQBUT4",31,0) F S I=$O(ARR(I)) Q:(I="") D "RTN","MAGQBUT4",32,0) . S ICT=ICT+1 "RTN","MAGQBUT4",33,0) . S ARO(ICT,0)=ARR(I) "RTN","MAGQBUT4",34,0) K ARR "RTN","MAGQBUT4",35,0) M ARR=ARO "RTN","MAGQBUT4",36,0) Q "RTN","MAGQBUT4",37,0) MRGMULT(ARR,RT,RTDSC,CT) ;Merge the FM formatted array into a FM File "RTN","MAGQBUT4",38,0) ; multiple field. "RTN","MAGQBUT4",39,0) ; This isn't for general consumption. "RTN","MAGQBUT4",40,0) ; RT = FILE ROOT, RECORD NUMBER, NODE "RTN","MAGQBUT4",41,0) ; i.e. "^MAG(2006.034,44,1," -> 44 is the IEN of MAG(2006.34 "RTN","MAGQBUT4",42,0) ; RTDSC is the 2nd piece of the 0 node of the multiple field. "RTN","MAGQBUT4",43,0) S RT=$E(RT,1,$L(RT)-1)_")" "RTN","MAGQBUT4",44,0) S @RT@(0)=U_RTDSC_U_CT_U_CT ; i.e. ^2006.341A^13^13 "RTN","MAGQBUT4",45,0) M @RT=ARR "RTN","MAGQBUT4",46,0) Q "RTN","MAGQBUT4",47,0) DDLF(RESULTS,FILE,FIELD,FLAGS,ATTR) ;[MAG FLD ATT] "RTN","MAGQBUT4",48,0) S X="ERR^MAGQBTM",@^%ZOSF("TRAP") "RTN","MAGQBUT4",49,0) K X "RTN","MAGQBUT4",50,0) N I "RTN","MAGQBUT4",51,0) D FIELD^DID(FILE,FIELD,FLAGS,ATTR,"RESULTS","RESULTS") "RTN","MAGQBUT4",52,0) S I=0 F S I=I+1 Q:'$D(RESULTS(ATTR,I)) M RESULTS(I)=RESULTS(ATTR,I) "RTN","MAGQBUT4",53,0) Q "RTN","MAGQBUT4",54,0) DDFA(RESULTS) ;[MAG ATT LST] "RTN","MAGQBUT4",55,0) S X="ERR^MAGQBTM",@^%ZOSF("TRAP") "RTN","MAGQBUT4",56,0) K X "RTN","MAGQBUT4",57,0) D FIELDLST^DID(RESULTS) "RTN","MAGQBUT4",58,0) Q "RTN","MAGQBUT4",59,0) DVAL(RESULTS,FILE,IENS,FIELD,FLAGS,VALUE) ;[MAG FIELD VALIDATE] "RTN","MAGQBUT4",60,0) S X="ERR^MAGQBTM",@^%ZOSF("TRAP") "RTN","MAGQBUT4",61,0) K X "RTN","MAGQBUT4",62,0) I FLAGS']"" S FLAGS="EHU" "RTN","MAGQBUT4",63,0) D VAL^DIE(FILE,IENS,FIELD,FLAGS,VALUE,.RESULT,"","MSG") "RTN","MAGQBUT4",64,0) I RESULT=U S RESULTS="-1^"_$G(MSG("DIERR","1","TEXT","1")) "RTN","MAGQBUT4",65,0) E S RESULTS=1_U_RESULT_U_$G(RESULT(0)) "RTN","MAGQBUT4",66,0) Q "RTN","MAGQBUT4",67,0) KVAL(RESULTS,FLAGS,FDA) ;[MAG KEY VALIDATE] "RTN","MAGQBUT4",68,0) N TMP,DDRFDA "RTN","MAGQBUT4",69,0) S X="ERR^MAGQBTM",@^%ZOSF("TRAP") "RTN","MAGQBUT4",70,0) K X "RTN","MAGQBUT4",71,0) D FDASET(.FDA,.DDRFDA) "RTN","MAGQBUT4",72,0) S TMP=$$KEYVAL^DIE(FLAGS,"DDRFDA","MSG") "RTN","MAGQBUT4",73,0) S RESULTS=$S(TMP=1:1,1:"-1^"_$G(MSG("DIERR","1","TEXT","1"))) "RTN","MAGQBUT4",74,0) K DDRFDA,MSG "RTN","MAGQBUT4",75,0) Q "RTN","MAGQBUT4",76,0) FDASET(DDRROOT,DDRFDA) ; "RTN","MAGQBUT4",77,0) N DDRFILE,DDRIEN,DDRFIELD,DDRVAL,DDRERR,I "RTN","MAGQBUT4",78,0) S I=0 "RTN","MAGQBUT4",79,0) F S I=$O(DDRROOT(I)) Q:'I S X=DDRROOT(I) D "RTN","MAGQBUT4",80,0) . S DDRFILE=$P(X,U) "RTN","MAGQBUT4",81,0) . S DDRFIELD=$P(X,U,2) "RTN","MAGQBUT4",82,0) . S DDRIEN=$P(X,U,3) "RTN","MAGQBUT4",83,0) . S DDRVAL=$P(X,U,4,99) "RTN","MAGQBUT4",84,0) . D FDA^DILF(DDRFILE,DDRIEN_$S($E(DDRIEN,$L(DDRIEN))'=",":",",1:""),DDRFIELD,"",DDRVAL,"DDRFDA","DDRERR") "RTN","MAGQBUT4",85,0) Q "RTN","MAGQBUT4",86,0) DHRPC(RESULTS,FNAME,FLOC) ;[MAG DIRHASH] "RTN","MAGQBUT4",87,0) N TMP "RTN","MAGQBUT4",88,0) S X="ERR^MAGQBTM",@^%ZOSF("TRAP") "RTN","MAGQBUT4",89,0) K X "RTN","MAGQBUT4",90,0) S TMP=$$DIRHASH^MAGFILEB(FNAME,FLOC) "RTN","MAGQBUT4",91,0) S RESULTS=$S(TMP="":U,1:TMP) "RTN","MAGQBUT4",92,0) Q "RTN","MAGQBUT4",93,0) GPACHX(PV) ; Get Package File Install History of Imaging "RTN","MAGQBUT4",94,0) N I,LCNT,MSG,PKG "RTN","MAGQBUT4",95,0) S LCNT=0 "RTN","MAGQBUT4",96,0) S PV(0)="Version^Install Date" "RTN","MAGQBUT4",97,0) F PKG="IMAGING" D "RTN","MAGQBUT4",98,0) . N J,K,L,VERS,DATE,X,Y "RTN","MAGQBUT4",99,0) . S J=$O(^DIC(9.4,"B",PKG,"")) Q:'J "RTN","MAGQBUT4",100,0) . S VERS="" F S VERS=$O(^DIC(9.4,J,22,"B",VERS)) Q:VERS="" D "RTN","MAGQBUT4",101,0) . . N MSG,TAR "RTN","MAGQBUT4",102,0) . . S K=$O(^DIC(9.4,J,22,"B",VERS,"")) "RTN","MAGQBUT4",103,0) . . D LIST^DIC(9.4901,","_K_","_J_",","@;.01;.02;.03","","","","","","","","TAR","MSG") "RTN","MAGQBUT4",104,0) . . Q:$D(MSG("DIERR")) "RTN","MAGQBUT4",105,0) . . S L=0 F S L=$O(TAR("DILIST","ID",L)) Q:'L D "RTN","MAGQBUT4",106,0) . . . S LCNT=LCNT+1 "RTN","MAGQBUT4",107,0) . . . S PV(LCNT)=VERS_"P"_$P(TAR("DILIST","ID",L,".01"),"^",1) "RTN","MAGQBUT4",108,0) . . . S X=$P($P(TAR("DILIST","ID",L,".02"),"^",1),"@",1) "RTN","MAGQBUT4",109,0) . . . S PV(LCNT)=PV(LCNT)_"^"_$S(X["-1":"",1:X) "RTN","MAGQBUT4",110,0) . . . Q "RTN","MAGQBUT4",111,0) . . Q "RTN","MAGQBUT4",112,0) . Q "RTN","MAGQBUT4",113,0) Q "RTN","MAGQBUT4",114,0) ; "RTN","MAGQBUT4",115,0) VOKR(RESULT,VER) ; RPC for VOK [MAGQ VOK] "RTN","MAGQBUT4",116,0) ;P196 "RTN","MAGQBUT4",117,0) N CLPATCH,SVRPATCH "RTN","MAGQBUT4",118,0) ; gek p196 allow 135 and 196 Client. "RTN","MAGQBUT4",119,0) ; get client Patch number "RTN","MAGQBUT4",120,0) S CLPATCH=$$TRIM($P(VER,"P",2)) "RTN","MAGQBUT4",121,0) ; These are allowable Clients. "RTN","MAGQBUT4",122,0) S SVRPATCH=",135,196,198," ; P198, continue to support 135, 196. "RTN","MAGQBUT4",123,0) ; if client patch is allowed Result = 1^... "RTN","MAGQBUT4",124,0) I SVRPATCH[CLPATCH S RESULT="1^3.0P196" "RTN","MAGQBUT4",125,0) E S RESULT="0^3.0P196" "RTN","MAGQBUT4",126,0) Q "RTN","MAGQBUT4",127,0) OLD ; "RTN","MAGQBUT4",128,0) S VER="3.0P"_($$TRIM($P(VER,"P",2))) "RTN","MAGQBUT4",129,0) S X="ERR^MAGQBTM",@^%ZOSF("TRAP") "RTN","MAGQBUT4",130,0) S SLINE=$T(+2) "RTN","MAGQBUT4",131,0) S PNUM=$$TRIM($P(SLINE,"**",2)),PNUM=$$TRIM($P(PNUM,",",$L(PNUM,","))) "RTN","MAGQBUT4",132,0) S CVERS=$$TRIM($P(SLINE,";",3))_"P"_PNUM "RTN","MAGQBUT4",133,0) S RESULT=$S(CVERS=VER:1,1:0)_U_CVERS "RTN","MAGQBUT4",134,0) Q "RTN","MAGQBUT4",135,0) ; "RTN","MAGQBUT4",136,0) TRIM(X) ; remove both leading and trailing blanks "RTN","MAGQBUT4",137,0) N I,J "RTN","MAGQBUT4",138,0) F I=1:1:$L(X) Q:$E(X,I)'=" " "RTN","MAGQBUT4",139,0) F J=$L(X):-1:I Q:$E(X,J)'=" " "RTN","MAGQBUT4",140,0) Q $S($E(X,I,J)=" ":"",1:$E(X,I,J)) "RTN","MAGQBUT4",141,0) ; "RTN","MAGQBUT4",142,0) QCNT(RESULT,PLC,QUE) ; [MAGQ QCNT] Called from MagQueManSet.pas and MagSiteParameters.pas "RTN","MAGQBUT4",143,0) N CNT,DA,CQ,IA,X "RTN","MAGQBUT4",144,0) S X="ERR^MAGQBTM",@^%ZOSF("TRAP") "RTN","MAGQBUT4",145,0) ;CQ=Current Queue Pointer(#2006.03) "RTN","MAGQBUT4",146,0) ;QP=Queue file pointer(#2006.031) "RTN","MAGQBUT4",147,0) ;CNT=Queue type total, IA=Not failed total "RTN","MAGQBUT4",148,0) S IA="",RESULT=0 "RTN","MAGQBUT4",149,0) S (CNT,IA)=0,DA="" "RTN","MAGQBUT4",150,0) S QP=$S($D(^MAGQUEUE(2006.031,"C",PLC,QUE)):$O(^MAGQUEUE(2006.031,"C",PLC,QUE,"")),1:"") "RTN","MAGQBUT4",151,0) S CQ=$S('QP:0,1:$P($G(^MAGQUEUE(2006.031,QP,0)),U,2)) "RTN","MAGQBUT4",152,0) F S DA=$O(^MAGQUEUE(2006.03,"C",PLC,QUE,DA)) Q:'DA D "RTN","MAGQBUT4",153,0) . I '$D(^MAGQUEUE(2006.03,DA,0)) K ^MAGQUEUE(2006.03,"C",PLC,QUE,DA) Q "RTN","MAGQBUT4",154,0) . S CNT=CNT+1 "RTN","MAGQBUT4",155,0) . I CQ0 D Q:IEN "RTN","MAGQBUT4",166,0) ;. S $P(^MAGQUEUE(2006.031,IEN,0),U,5)=CNT Q "RTN","MAGQBUT4",167,0) I 'QP D Q "RTN","MAGQBUT4",168,0) . K DIE,FDA "RTN","MAGQBUT4",169,0) . S FDA(2006.031,"+1,",.01)=QUE "RTN","MAGQBUT4",170,0) . S FDA(2006.031,"+1,",.04)=PLC "RTN","MAGQBUT4",171,0) . S FDA(2006.031,"+1,",1)=CQ "RTN","MAGQBUT4",172,0) . S FDA(2006.031,"+1,",2)=IA "RTN","MAGQBUT4",173,0) . S FDA(2006.031,"+1,",3)=CNT "RTN","MAGQBUT4",174,0) . D UPDATE^DIE("U","FDA","","MAGQUP") "RTN","MAGQBUT4",175,0) . K DIE,FDA "RTN","MAGQBUT4",176,0) E D "RTN","MAGQBUT4",177,0) . K DIE,FDA "RTN","MAGQBUT4",178,0) . S FDA(2006.031,QP_",",.01)=QUE "RTN","MAGQBUT4",179,0) . S FDA(2006.031,QP_",",.04)=PLC "RTN","MAGQBUT4",180,0) . S FDA(2006.031,QP_",",1)=CQ "RTN","MAGQBUT4",181,0) . S FDA(2006.031,QP_",",2)=IA "RTN","MAGQBUT4",182,0) . S FDA(2006.031,QP_",",3)=CNT "RTN","MAGQBUT4",183,0) . D FILE^DIE("","FDA","MAGERR") "RTN","MAGQBUT4",184,0) . K DIE,FDA "RTN","MAGQBUT4",185,0) Q "RTN","MAGQBUT4",186,0) ; "RTN","MAGQBUT4",187,0) CPUD ; "RTN","MAGQBUT4",188,0) N PLC,INS,QUE "RTN","MAGQBUT4",189,0) S (INS,PLC)="" "RTN","MAGQBUT4",190,0) F S INS=$O(^MAG(2006.1,"B",INS)) Q:INS="" D "RTN","MAGQBUT4",191,0) . S PLC=$O(^MAG(2006.1,"B",INS,"")) "RTN","MAGQBUT4",192,0) . S QUE="" F S QUE=$O(^MAGQUEUE(2006.031,"C",PLC,QUE)) Q:QUE="" D "RTN","MAGQBUT4",193,0) . . D QCNT^MAGQBUT4("",PLC,QUE) "RTN","MAGQBUT4",194,0) . . Q "RTN","MAGQBUT4",195,0) . Q "RTN","MAGQBUT4",196,0) Q "RTN","MAGQBUT4",197,0) CNL(GL,IEN,NLC) ; Check Network Location "RTN","MAGQBUT4",198,0) N MAGREF,MAG0,MAG1,PLC "RTN","MAGQBUT4",199,0) S NLC=NLC+1 "RTN","MAGQBUT4",200,0) I '$G(IEN) Q "" "RTN","MAGQBUT4",201,0) S MAG0=$G(@(GL_IEN_",0)")) "RTN","MAGQBUT4",202,0) S MAGREF=+$P(MAG0,"^",3) ; get file from raid "RTN","MAGQBUT4",203,0) I MAGREF=0 S MAGREF=+$P(MAG0,"^",5) ; get file from jukebox "RTN","MAGQBUT4",204,0) I 'MAGREF Q "" "RTN","MAGQBUT4",205,0) I '$D(^MAG(2005.2,MAGREF,0)) Q "" "RTN","MAGQBUT4",206,0) S PLC=$P($G(^MAG(2005.2,MAGREF,0)),U,10) "RTN","MAGQBUT4",207,0) Q:'PLC "" "RTN","MAGQBUT4",208,0) S PLC=$P($G(^MAG(2006.1,PLC,0)),U) "RTN","MAGQBUT4",209,0) Q $S('PLC:"",1:PLC) "RTN","MAGQBUT4",210,0) CNSP(GL,IEN,NMSP,NSC) ; Check NameSPace "RTN","MAGQBUT4",211,0) N NMSPC,MAG0,FNAM,INSTIEN "RTN","MAGQBUT4",212,0) S NSC=NSC+1 "RTN","MAGQBUT4",213,0) S MAG0=$G(@(GL_IEN_",0)")) "RTN","MAGQBUT4",214,0) S FNAM=$P(MAG0,U,2) "RTN","MAGQBUT4",215,0) S NMSPC=$TR($P(FNAM,"."),"0123456789","") "RTN","MAGQBUT4",216,0) Q:NMSPC="" "" "RTN","MAGQBUT4",217,0) S INSTIEN=$S($D(NMSP(NMSPC)):$O(NMSP(NMSPC,"")),1:"") "RTN","MAGQBUT4",218,0) Q INSTIEN "RTN","MAGQBUT4",219,0) NMSP(TMPA) ; "RTN","MAGQBUT4",220,0) N IEN,INS,TMP,I,J "RTN","MAGQBUT4",221,0) S INS="" F S INS=$O(^MAG(2006.1,"B",INS)) Q:INS="" S IEN="" D "RTN","MAGQBUT4",222,0) . S IEN=$O(^MAG(2006.1,"B",INS,IEN)) Q:IEN="" D Q "RTN","MAGQBUT4",223,0) . . S TMP=","_$$UPPER^MAGQE4($$INIS^MAGQBPG2(IEN))_"," D Q "RTN","MAGQBUT4",224,0) . . . F I=2:1 S J=$P(TMP,",",I) Q:J="" S TMPA(J,INS)="" "RTN","MAGQBUT4",225,0) . . . Q "RTN","MAGQBUT4",226,0) S J="" F S J=$O(TMPA(J)) Q:J="" S INS=$O(TMPA(J,"")) K:($O(TMPA(J,INS))]"") TMPA(J) "RTN","MAGQBUT4",227,0) Q "RTN","MAGQBUT4",228,0) CLRQ ; Clears the Queue file and Queue Pointer files "RTN","MAGQBUT4",229,0) N DA,DIK,FILE,IEN "RTN","MAGQBUT4",230,0) F FILE=2006.03,2006.031 D "RTN","MAGQBUT4",231,0) . S IEN=0 F S IEN=$O(^MAGQUEUE(FILE,IEN)) Q:'IEN D "RTN","MAGQBUT4",232,0) . . S DIK="^MAGQUEUE("_FILE_"," "RTN","MAGQBUT4",233,0) . . S DA=IEN,DA(1)=FILE D ^DIK "RTN","MAGQBUT4",234,0) K DIK,DA "RTN","MAGQBUT4",235,0) Q "RTN","MAGQBUT4",236,0) ; We add RPC to MAG WINDOWS Option this way instead of sending Option : MAG WINDOWS "RTN","MAGQBUT4",237,0) ; If we send MAG WINDOWS Option, the last one installed will overwrite others. "RTN","MAGQBUT4",238,0) ; ADDRPC copied from Patch 51, added the call "D MES^XPDUTL(" instead of "W !" "RTN","MAGQBUT4",239,0) ADDRPC(RPCNAME,OPTNAME) ; "RTN","MAGQBUT4",240,0) N DA,DIC "RTN","MAGQBUT4",241,0) S DIC="^DIC(19,",DIC(0)="",X=OPTNAME D ^DIC "RTN","MAGQBUT4",242,0) I Y<0 D Q "RTN","MAGQBUT4",243,0) . D MES^XPDUTL("Cannot add RPC: """_RPCNAME_""" to Option: """_OPTNAME_""".") "RTN","MAGQBUT4",244,0) . D MES^XPDUTL("Cannot find Option: """_OPTNAME_""".") "RTN","MAGQBUT4",245,0) . Q "RTN","MAGQBUT4",246,0) I '$D(^XWB(8994,"B",RPCNAME)) D Q "RTN","MAGQBUT4",247,0) . D MES^XPDUTL("Cannot add RPC: """_RPCNAME_""" to Option: """_OPTNAME_""".") "RTN","MAGQBUT4",248,0) . D MES^XPDUTL("Cannot find RPC: """_RPCNAME_""".") "RTN","MAGQBUT4",249,0) . Q "RTN","MAGQBUT4",250,0) S DA(1)=+Y "RTN","MAGQBUT4",251,0) I $D(^DIC(19,+Y,"RPC","B",$O(^XWB(8994,"B",RPCNAME,"")))) D Q "RTN","MAGQBUT4",252,0) . D MES^XPDUTL("Cannot add RPC: """_RPCNAME_""" to Option: """_OPTNAME_""".") "RTN","MAGQBUT4",253,0) . D MES^XPDUTL("RPC: """_RPCNAME_""" is already a member of """_OPTNAME_""".") "RTN","MAGQBUT4",254,0) . Q "RTN","MAGQBUT4",255,0) S DIC=DIC_DA(1)_",""RPC""," "RTN","MAGQBUT4",256,0) S DIC(0)="L",DLAYGO="19" ; LAYGO should be allowed here "RTN","MAGQBUT4",257,0) S X=RPCNAME "RTN","MAGQBUT4",258,0) D ^DIC "RTN","MAGQBUT4",259,0) K DIC,D0,DLAYGO "RTN","MAGQBUT4",260,0) I Y<0 D Q "RTN","MAGQBUT4",261,0) . D MES^XPDUTL("Cannot add RPC: """_RPCNAME_""" to Option: """_OPTNAME_""".") "RTN","MAGQBUT4",262,0) . D MES^XPDUTL("Cannot find RPC: """_RPCNAME_""".") "RTN","MAGQBUT4",263,0) . Q "RTN","MAGQBUT4",264,0) Q "RTN","MAGQBUT4",265,0) INS(XP,DUZ,DATE,IDA) ; "RTN","MAGQBUT4",266,0) N CT,CNT,COM,D,D0,D1,D2,DDATE,DG,DIC,DICR,DIW,MAGMSG,ST,XMID,XMY,PLACE,XMSUB,XMZ "RTN","MAGQBUT4",267,0) S PLACE=$O(^MAG(2006.1,"B",$$KSP^XUPARAM("INST"),"")) "RTN","MAGQBUT4",268,0) D GETENV^%ZOSV "RTN","MAGQBUT4",269,0) S CNT=0 "RTN","MAGQBUT4",270,0) S CNT=CNT+1,MAGMSG(CNT)="PACKAGE INSTALL" "RTN","MAGQBUT4",271,0) S CNT=CNT+1,MAGMSG(CNT)="SITE: "_$$KSP^XUPARAM("WHERE") "RTN","MAGQBUT4",272,0) S CNT=CNT+1,MAGMSG(CNT)=" Production Account: "_$$PROD^XUPROD("1") "RTN","MAGQBUT4",273,0) S CNT=CNT+1,MAGMSG(CNT)="PACKAGE: "_XP "RTN","MAGQBUT4",274,0) S CNT=CNT+1,MAGMSG(CNT)="Version: "_$$VER^XPDUTL(XP) "RTN","MAGQBUT4",275,0) S ST=$$GET1^DIQ(9.7,IDA,11,"I") "RTN","MAGQBUT4",276,0) S CNT=CNT+1,MAGMSG(CNT)="Start time: "_$$FMTE^XLFDT(ST) "RTN","MAGQBUT4",277,0) S CT=$$GET1^DIQ(9.7,IDA,17,"I") S:+CT'=CT CT=$$NOW^XLFDT "RTN","MAGQBUT4",278,0) S CNT=CNT+1,MAGMSG(CNT)="Completion time: "_$$FMTE^XLFDT(CT) "RTN","MAGQBUT4",279,0) S CNT=CNT+1,MAGMSG(CNT)="Run time: "_$$FMDIFF^XLFDT(CT,ST,3) "RTN","MAGQBUT4",280,0) S CNT=CNT+1,MAGMSG(CNT)="Environment: "_Y "RTN","MAGQBUT4",281,0) S COM=$$GET1^DIQ(9.7,IDA,6,"I") "RTN","MAGQBUT4",282,0) S CNT=CNT+1,MAGMSG(CNT)="FILE COMMENT: "_COM "RTN","MAGQBUT4",283,0) S CNT=CNT+1,MAGMSG(CNT)="DATE: "_DATE "RTN","MAGQBUT4",284,0) S CNT=CNT+1,MAGMSG(CNT)="Installed by: "_$$GET1^DIQ(9.7,IDA,9,"E") "RTN","MAGQBUT4",285,0) S CNT=CNT+1,MAGMSG(CNT)="Install Name: "_$$GET1^DIQ(9.7,IDA,.01,"E") "RTN","MAGQBUT4",286,0) S DDATE=$$GET1^DIQ(9.7,IDA,51,"I") "RTN","MAGQBUT4",287,0) S CNT=CNT+1,MAGMSG(CNT)="Distribution Date: "_$$FMTE^XLFDT(DDATE) "RTN","MAGQBUT4",288,0) S XMSUB=XP_" INSTALLATION" "RTN","MAGQBUT4",289,0) S XMID=$G(DUZ) S:'XMID XMID=.5 "RTN","MAGQBUT4",290,0) S XMY(XMID)="" "RTN","MAGQBUT4",291,0) S:$G(MAGDUZ) XMY(MAGDUZ)="" "RTN","MAGQBUT4",292,0) S XMSUB=$E(XMSUB,1,63) "RTN","MAGQBUT4",293,0) D:$$PROD^XUPROD("1") ADDMG^MAGQBUT5(XMSUB,.XMY,PLACE) "RTN","MAGQBUT4",294,0) D SENDMSG^XMXAPI(XMID,XMSUB,"MAGMSG",.XMY,,.XMZ,) "RTN","MAGQBUT4",295,0) I $G(XMERR) M XMERR=^TMP("XMERR",$J) K XMERR "RTN","MAGQBUT4",296,0) K MAGMSG "RTN","MAGQBUT4",297,0) Q "RTN","MAGQBUT4",298,0) TEST ; "RTN","MAGQBUT4",299,0) N FDA "RTN","MAGQBUT4",300,0) S FDA(4)="2006.8^.01^+1,^BP1" "RTN","MAGQBUT4",301,0) S FDA(1)="2006.8^.04^+1,^1" "RTN","MAGQBUT4",302,0) S FDA(3)="2006.8^50^+1,^ISW-PRICER" "RTN","MAGQBUT4",303,0) S FDA(2)="2006.8^11^+1,^1" "RTN","MAGQBUT4",304,0) D KVAL(.RESULTS,"Q",.FDA) "RTN","MAGQBUT4",305,0) W !,"RESULTS: "_RESULTS "RTN","MAGQBUT4",306,0) Q "RTN","MAGQBUT4",307,0) ; "VER") 8.0^22.2 **END** **END**