[613] | 1 | MAGJUTL5 ;WOIFO/JHC - VistARad RPCs ; [ 07/3/2006 17:17 ]
|
---|
| 2 | ;;3.0;IMAGING;**65,76**;Jun 22, 2007;Build 19
|
---|
| 3 | ;;Per VHA Directive 2004-038, this routine should not be modified.
|
---|
| 4 | ;; +---------------------------------------------------------------+
|
---|
| 5 | ;; | Property of the US Government. |
|
---|
| 6 | ;; | No permission to copy or redistribute this software is given. |
|
---|
| 7 | ;; | Use of unreleased versions of this software requires the user |
|
---|
| 8 | ;; | to execute a written test agreement with the VistA Imaging |
|
---|
| 9 | ;; | Development Office of the Department of Veterans Affairs, |
|
---|
| 10 | ;; | telephone (301) 734-0100. |
|
---|
| 11 | ;; | |
|
---|
| 12 | ;; | The Food and Drug Administration classifies this software as |
|
---|
| 13 | ;; | a medical device. As such, it may not be changed in any way. |
|
---|
| 14 | ;; | Modifications to this software may result in an adulterated |
|
---|
| 15 | ;; | medical device under 21CFR820, the use of which is considered |
|
---|
| 16 | ;; | to be a violation of US Federal Statutes. |
|
---|
| 17 | ;; +---------------------------------------------------------------+
|
---|
| 18 | ;;
|
---|
| 19 | Q
|
---|
| 20 | ; adapted from MAGGTU4
|
---|
| 21 | GETVER(SVRVER,SVRTVER,ALLOWCL) ;
|
---|
| 22 | ; The Server Version SVRVER is hardcoded to match the Client
|
---|
| 23 | ; so this Routine must be edited/distributed with a new Client
|
---|
| 24 | ; released Client will have the T version that the server expects
|
---|
| 25 | ;
|
---|
| 26 | S SVRVER="3.0.76",SVRTVER=14 ; <*> Edit this line for each patch/T-version
|
---|
| 27 | ;
|
---|
| 28 | S ALLOWCL="|3.0.65|" ;
|
---|
| 29 | Q
|
---|
| 30 | ;
|
---|
| 31 | CHKVER(MAGRY,CLVER,PLC,SVERSION) ;
|
---|
| 32 | ; Input CLVER is the version of the Client
|
---|
| 33 | ; format: Major.Minor.Patch.Build# (Build #=T-ver) eg 3.0.18.132
|
---|
| 34 | ; Ver 3.0.65.n is first client Ver that makes this call
|
---|
| 35 | ; 3 possible return codes in MAGRY:
|
---|
| 36 | ; 2^n~msg : Client displays a message and continues
|
---|
| 37 | ; 1^1~msg : Client continues without displaying a message
|
---|
| 38 | ; 0^n~msg : Client displays a message then Aborts
|
---|
| 39 | ; PLC returns 2006.1 pointer
|
---|
| 40 | ;
|
---|
| 41 | S CLVER=$G(CLVER),PLC="",MAGRY=""
|
---|
| 42 | N SV,ST,CV,CT,CP,ALLOWV,TESTFLAG,SVSTAT
|
---|
| 43 | ; SVERSION = Full Server Version -> (3.0.18.132 or 3.0.18); test has 4, release has 3 parts
|
---|
| 44 | ; SV = Server Version -> (3.0.18); only 1st 3 parts
|
---|
| 45 | ; ST = Server T Version -> defined to always match client part-4
|
---|
| 46 | ; CV = Client Version, w/out build #
|
---|
| 47 | ; CT = Client T Version alone
|
---|
| 48 | ; CP = Client Patch alone
|
---|
| 49 | ; ALLOWV = Hard coded string of allowed clients for this KIDS.
|
---|
| 50 | ; TESTFLAG = 1/0 -- 1=Test vs of server code; 0=Release vs
|
---|
| 51 | ;Below is placeholder for future enhancement:
|
---|
| 52 | ;I $P(CLVER,"|",2)="RIV" D Q
|
---|
| 53 | ;. S MAGJOB("RIV")=1
|
---|
| 54 | ;. ; Allowing |RIV clients always
|
---|
| 55 | ;. S MAGRY="1^1~Allowing Remote Image Connection"
|
---|
| 56 | ;
|
---|
| 57 | I $G(DUZ(2)) S PLC=$$PLACE^MAGBAPI(DUZ(2))
|
---|
| 58 | ; Quit if we don't have a valid DUZ(2) or valid PLACE: ^MAG(2006.1,PLC)
|
---|
| 59 | I 'PLC S MAGRY="0^4~Error verifying Imaging Site (Place) -- Contact Imaging support." Q
|
---|
| 60 | ;
|
---|
| 61 | D GETVER(.SV,.ST,.ALLOWV)
|
---|
| 62 | S CLVER=$P(CLVER,"|")
|
---|
| 63 | S CV=$P(CLVER,".",1,3),CT=+$P(CLVER,".",4),CP=+$P(CLVER,".",3)
|
---|
| 64 | ;
|
---|
| 65 | D VERSTAT(.SVSTAT,SV)
|
---|
| 66 | I 'SVSTAT S MAGRY(0)=SVSTAT Q ; KIDS status for this version indeterminate
|
---|
| 67 | S TESTFLAG=(+SVSTAT=1)
|
---|
| 68 | S SVERSION=SV
|
---|
| 69 | I TESTFLAG S SVERSION=SV_"."_ST
|
---|
| 70 | ; Check Version differences:
|
---|
| 71 | I (CV'=SV) D Q
|
---|
| 72 | . I '(ALLOWV[("|"_CV_"|")) D Q
|
---|
| 73 | . . S MAGRY="0^4~VistARad Workstation software version "_CLVER_" is not compatible with the VistA server version "_SVERSION_". Contact Imaging support. (CNA)"
|
---|
| 74 | . ; Warn the Client, allow to continue
|
---|
| 75 | . I TESTFLAG S MAGRY="2^3~VistARad Workstation software version "_CLVER_" is running with VistA server TEST Version "_SVERSION_" -- VistARad will Continue, but contact Imaging Support if problems occur. (Pdif)"
|
---|
| 76 | . E S MAGRY="2^3~VistARad Workstation software version "_CLVER_" is running with VistA server Version "_SVERSION_" -- VistARad will Continue, but contact Imaging Support to install Released Version. (RPdif)"
|
---|
| 77 | . Q
|
---|
| 78 | ; Versions are the Same: If T versions are not, warn the Client if needed.
|
---|
| 79 | ; Released Client (of any version) will have the T version that the server
|
---|
| 80 | ; expects, and no warning will be displayed.
|
---|
| 81 | I CT,(CT'=ST) D Q
|
---|
| 82 | . I TESTFLAG S MAGRY="2^3~VistARad Workstation software vs. "_CLVER_" is running with VistA server TEST vs. "_SVERSION_" -- VistARad will Continue, but contact Imaging Support " D
|
---|
| 83 | . . I CT<ST S MAGRY=MAGRY_"to install updated client software. (Tdif-1)"
|
---|
| 84 | . . E S MAGRY=MAGRY_"to update the Server software. (Tdif-2)"
|
---|
| 85 | . E S MAGRY="2^3~VistARad Workstation software vs. "_CLVER_" is running with VistA server vs. "_SVERSION_" -- VistARad will Continue, but contact Imaging Support to install Released Version. (RVdif)"
|
---|
| 86 | . Q
|
---|
| 87 | ; Client and Server Versions are the same
|
---|
| 88 | S MAGRY="1^1~Version Check OK. Server: "_SVERSION_" Client: "_CLVER Q
|
---|
| 89 | Q
|
---|
| 90 | ;
|
---|
| 91 | P32STOP(RET) ; logic to indicate P32 should no longer function, once the RELEASED P76 is installed
|
---|
| 92 | ; This is invoked from magjutl3, P76 version, if a P32 client is launched
|
---|
| 93 | ; RET=1/0 ^ text -- 0 = OK to run P32; 1 = Not OK
|
---|
| 94 | N SV,ST,ALLOWV,SVSTAT,RELEASED
|
---|
| 95 | S RET="0^P32 supported" ; init return to allow p32 to function
|
---|
| 96 | D GETVER(.SV,.ST,.ALLOWV)
|
---|
| 97 | D VERSTAT(.SVSTAT,SV)
|
---|
| 98 | I 'SVSTAT S RET="0^Error, but on side of caution, allow running." Q ; KIDS status for this version indeterminate
|
---|
| 99 | S RELEASED=(+SVSTAT=2)
|
---|
| 100 | I RELEASED!(SV'="3.0.76") S RET="1^P32 support over" ; don't allow P32 to function
|
---|
| 101 | Q
|
---|
| 102 | ;
|
---|
| 103 | VERSTAT(MAGRY,MAGVER) ;
|
---|
| 104 | ; Returns the status of an Imaging Version
|
---|
| 105 | ; Input:
|
---|
| 106 | ; MAGVER - Version number in format MAG*3.0*59 or 3.0.59
|
---|
| 107 | ; Return: MAGRY = 0/1/2 -- see below; 0: abort; else, OK to proceed
|
---|
| 108 | ;
|
---|
| 109 | N VERI,TVER,MAGERR
|
---|
| 110 | I +MAGVER S MAGVER="MAG*"_$P(MAGVER,".",1,2)_"*"_$P(MAGVER,".",3)
|
---|
| 111 | S VERI=$$FIND1^DIC(9.6,"","O",MAGVER,"","","MAGERR")
|
---|
| 112 | I 'VERI S MAGRY="0^4~There is No KIDs Install record."
|
---|
| 113 | E D
|
---|
| 114 | . S TVER=$$GET1^DIQ(9.6,VERI_",","ALPHA/BETA TESTING")
|
---|
| 115 | . I TVER="YES" S MAGRY="1^Alpha/Beta Version"
|
---|
| 116 | . E I TVER="NO" S MAGRY="2^Released Version"
|
---|
| 117 | . E S MAGRY="0^4~KIDs Install Status is unknown--contact Customer Support."
|
---|
| 118 | Q ;
|
---|
| 119 | END ;
|
---|