| 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 | 
|---|