1 | ORCENV ;SLC/MLI - Environment check routine ; 18 March 97
|
---|
2 | ;;3.0;ORDER ENTRY/RESULTS REPORTING;;Dec 17, 1997
|
---|
3 | ;
|
---|
4 | ; This is an environment check routine to check for
|
---|
5 | ; existence of all packages and patches required by
|
---|
6 | ; CPRS.
|
---|
7 | ;
|
---|
8 | EN ; check environment
|
---|
9 | N ABORT,Y
|
---|
10 | S ABORT=0
|
---|
11 | S Y=$$VARIABLE() I Y S ABORT=1 G ENQ
|
---|
12 | S Y=$$CMOPCHK() I Y S ABORT=1
|
---|
13 | S Y=$$PATCHCHK() I Y S ABORT=1 G ENQ
|
---|
14 | ENQ I ABORT S XPDABORT=2 ; aborts all transport globals in distribution
|
---|
15 | Q
|
---|
16 | ;
|
---|
17 | ;
|
---|
18 | VARIABLE() ; check for crucial variables
|
---|
19 | N ABORT,I
|
---|
20 | D BMES^XPDUTL("Checking for key variables...")
|
---|
21 | S ABORT=0
|
---|
22 | F I="DUZ","DT","DTIME" I '($D(@I)#10) D
|
---|
23 | . S ABORT=1
|
---|
24 | . D MES^XPDUTL(" Missing key variable "_I)
|
---|
25 | I $G(DUZ(0))'="@" D
|
---|
26 | . S ABORT=1
|
---|
27 | . D MES^XPDUTL(" DUZ(0) must equal @ to install")
|
---|
28 | I ABORT D MES^XPDUTL(" These variables must be set before installing.")
|
---|
29 | I 'ABORT D MES^XPDUTL(" Key variables are defined properly.")
|
---|
30 | Q ABORT
|
---|
31 | ;
|
---|
32 | ;
|
---|
33 | PATCHCHK() ; check for packages and patches
|
---|
34 | N ABORT,CURRENT,I,J,NMSP,OPTIONAL,PACKAGE,PATCH,VERSION,VIRGIN,X
|
---|
35 | S ABORT=0
|
---|
36 | D BMES^XPDUTL("Checking status of packages and patches...")
|
---|
37 | F I=1:1 S X=$P($T(LIST+I),";;",2) Q:X="QUIT" D
|
---|
38 | . N PATCHES,OK
|
---|
39 | . S OK=1,PACKAGE=$P(X,"^",1),NMSP=$P(X,"^",2)
|
---|
40 | . S VERSION=$P($P(X,"^",3),"*",1)
|
---|
41 | . S VIRGIN=($P(X,"^",2)["*"),OPTIONAL=(X["OPTIONAL")
|
---|
42 | . S PATCHES=$$NUMBERS($P(X,"^",4))
|
---|
43 | . D BMES^XPDUTL(" Checking "_PACKAGE_" v"_VERSION_"...")
|
---|
44 | . I VIRGIN,(+$$VERSION^XPDUTL(NMSP)=0) D Q
|
---|
45 | . . D MES^XPDUTL(" "_PACKAGE_" will be installed.")
|
---|
46 | . S CURRENT=+$$VERSION^XPDUTL(NMSP)
|
---|
47 | . I CURRENT<VERSION D Q
|
---|
48 | . . I 'CURRENT,OPTIONAL D Q
|
---|
49 | . . . D MES^XPDUTL(" optional "_PACKAGE_" is not on system...ok")
|
---|
50 | . . S ABORT=1
|
---|
51 | . . D MES^XPDUTL(" "_PACKAGE_" is not up to version "_VERSION)
|
---|
52 | . I CURRENT>VERSION D Q
|
---|
53 | . . D MES^XPDUTL(" "_PACKAGE_" is up to version "_CURRENT_"...OK")
|
---|
54 | . I PATCHES D Q
|
---|
55 | . . F J=1:1 S X=$P(PATCHES,",",J) Q:X="" D
|
---|
56 | . . . S PATCH=NMSP_"*"_VERSION_"*"_X
|
---|
57 | . . . I $$PATCH^XPDUTL(PATCH) Q
|
---|
58 | . . . S ABORT=1,OK=0
|
---|
59 | . . . D MES^XPDUTL(" Patch "_PATCH_" has not been installed")
|
---|
60 | . . I OK D MES^XPDUTL(" "_PACKAGE_" v"_VERSION_" is up to date")
|
---|
61 | . D MES^XPDUTL(" "_PACKAGE_" v"_VERSION_" is up to date")
|
---|
62 | Q ABORT
|
---|
63 | ;
|
---|
64 | ;
|
---|
65 | LIST ; list of packages and patches to check
|
---|
66 | ;;Adverse Reaction Tracking^GMRA^4.0^4,6
|
---|
67 | ;;Consult/Request Tracking^GMRC^2.5*^14
|
---|
68 | ;;CMOP^PSX^2.0*^3^^^^OPTIONAL
|
---|
69 | ;;Dietetics^FH^5.0^
|
---|
70 | ;;Vitals^GMRV^3.0^3-5
|
---|
71 | ;;Health Level Seven^HL^1.6^8-9,17-18,21
|
---|
72 | ;;Health Summary^GMTS^2.7^3,7-9,12-13
|
---|
73 | ;;Kernel^XU^8.0^49,59
|
---|
74 | ;;Laboratory^LR^5.2^121^
|
---|
75 | ;;OE/RR^OR^2.5*^46,49
|
---|
76 | ;;Patient Care Encounter^PX^1.0^1-5,7-9,15
|
---|
77 | ;;Outpatient Pharmacy^PSO^6*
|
---|
78 | ;;Inpatient Pharmacy^PSJ^4.5*^42
|
---|
79 | ;;Radiology^RA^4.5^3-6,8-11
|
---|
80 | ;;Registration^DG^5.3^57,73,77-80,82,84-85,87-90,92-101,103-105,107,109-112,121,124
|
---|
81 | ;;Scheduling (including PCMM)^SD^5.3^27,39,41,42,44-49,53-61,63-65,67-75,78,79,84-88,93
|
---|
82 | ;;RPC Broker^XWB^1.1
|
---|
83 | ;;Text Integration Utility^TIU^1.0^1,3,4,7
|
---|
84 | ;;VA FileMan^DI^21.0^8,12,15,18-20,24-25,27,31,33,36
|
---|
85 | ;;Visit Tracking^VSIT^2.0^1
|
---|
86 | ;;QUIT
|
---|
87 | ;
|
---|
88 | ;
|
---|
89 | NUMBERS(STRING) ; get list of numbers from string by parsing
|
---|
90 | N I,J,LIST,X
|
---|
91 | S LIST=""
|
---|
92 | F I=1:1 S X=$P(STRING,",",I) Q:X="" D
|
---|
93 | . I X["-" F J=$P(X,"-",1):1:$P(X,"-",2) S LIST=LIST_J_","
|
---|
94 | . E S LIST=LIST_X_","
|
---|
95 | Q LIST
|
---|
96 | ;
|
---|
97 | ;
|
---|
98 | CMOPCHK() ; check to see if CMOP processing is inactivated
|
---|
99 | N Y
|
---|
100 | S Y=$D(^PSX(550,"C"))
|
---|
101 | D BMES^XPDUTL("Checking for active CMOP transmissions...")
|
---|
102 | I Y D
|
---|
103 | . D MES^XPDUTL(" CMOP Currently Activated!!!")
|
---|
104 | . D MES^XPDUTL(" You must inactivate CMOP before installing CPRS!")
|
---|
105 | E D
|
---|
106 | . D MES^XPDUTL(" CMOP is inactivated...ok to continue")
|
---|
107 | Q Y
|
---|