[613] | 1 | PXRMP9E ; SLC/KER - Environoment Check for LEX*2.0*49/PXRM+2*9 ;02/22/2007
|
---|
| 2 | ;;2.0;CLINICAL REMINDERS;**9**;Feb 04, 2005;Build 4
|
---|
| 3 | ;
|
---|
| 4 | ; Local Variables not NEWed or KILLed
|
---|
| 5 | ; XPDENV
|
---|
| 6 | ;
|
---|
| 7 | ; Global Variables
|
---|
| 8 | ; None
|
---|
| 9 | ;
|
---|
| 10 | ; External References
|
---|
| 11 | ; DBIA 10015 EN^DIQ1
|
---|
| 12 | ; DBIA 10141 $$PATCH^XPDUTL
|
---|
| 13 | ; DBIA 10141 $$VERSION^XPDUTL
|
---|
| 14 | ; DBIA 10141 BMES^XPDUTL
|
---|
| 15 | ; DBIA 10141 MES^XPDUTL
|
---|
| 16 | ;
|
---|
| 17 | ENV ; LEX*2.0*49 Environment Check
|
---|
| 18 | D BM(" Code Set Update message fix (Remedy Ticket 175985)"),M(" ")
|
---|
| 19 | N DA,DIC,DIQ,DR,PXRMB,PXRMBLD,PXRMBLDS,PXRMERR,PXRMHF,PXRMI,PXRML,PXRMPAT,PXRMPN,PXRMREQ,PXRMS,PXRMT,PXRMU,PXRMV,PXRMVER,X
|
---|
| 20 | K XPDABORT,XPDQUIT S U="^",PXRMREQ="LEX*2.0*25;LEX*2.0*27;ICD*18.0*11;ICPT*6.0*16;PXRM*2.0*4"
|
---|
| 21 | S PXRMBLD="LEX*2.0*49",PXRMBLDS="LEX*2.0*49;ICD*18.0*28;ICPT*6.0*34;PXRM*2.0*9",PXRMHF="LEX_2_49.KID"
|
---|
| 22 | K PXRMERR D:+($$UR)'>0 ET("User not defined (DUZ)") I $D(PXRMERR) D ABRT Q
|
---|
| 23 | D:+($$SY)'>0 ET("Undefined IO variable(s)") I $D(PXRMERR) D ABRT Q
|
---|
| 24 | I +($G(XPDENV))>0 D
|
---|
| 25 | . D M(" Fixes the following components:")
|
---|
| 26 | . D BM(" LEX*2.0*49 Protocol LEXICAL SERVICES UPDATE")
|
---|
| 27 | . D M(" Routines LEXXFI, LEXXFI7, LEXXGI, LEXXGI2, and LEXXST")
|
---|
| 28 | . D BM(" ICPT*6.0*34 Protocol ICPT CODE UPDATE EVENT")
|
---|
| 29 | . D M(" Routine ICPTAU")
|
---|
| 30 | . D BM(" ICD*18.0*28 Protocol ICD CODE UPDATE EVENT")
|
---|
| 31 | . D M(" Routine ICDUPDT")
|
---|
| 32 | . D BM(" PXRM*2.0*9 Protocol PXRM CODE SET UPDATE CPT")
|
---|
| 33 | . D M(" Protocol PXRM CODE SET UPDATE ICD")
|
---|
| 34 | . D M(" Routines PXRMCSD and PXRMCSTX"),M(" ")
|
---|
| 35 | D M(" Checking installed package version numbers")
|
---|
| 36 | S PXRMVER=$$VERSION^XPDUTL("LEX") I +PXRMVER'>1.9999 D D ABRT Q
|
---|
| 37 | . D ET(" Required Lexicon version 2.0 not found.")
|
---|
| 38 | S PXRMV=" Lexicon Utility v "_PXRMVER,PXRMV=PXRMV_$J(" ",(30-$L(PXRMV)))
|
---|
| 39 | S PXRMVER=$$VERSION^XPDUTL("PXRM") I +PXRMVER'>1.9999 D D ABRT Q
|
---|
| 40 | . D ET(" Required Clinical Reminders version 2.0 not found.")
|
---|
| 41 | S PXRMV=PXRMV_" Clinical Reminders v "_PXRMVER
|
---|
| 42 | D M(PXRMV) S PXRMV=""
|
---|
| 43 | S PXRMVER=$$VERSION^XPDUTL("ICD") I +PXRMVER'>17.9999 D D ABRT Q
|
---|
| 44 | . D ET(" Required ICD DRG Grouper version 18.0 not found.")
|
---|
| 45 | S PXRMV=" ICD DRG Grouper v "_PXRMVER,PXRMV=PXRMV_$J(" ",(30-$L(PXRMV)))
|
---|
| 46 | S PXRMVER=$$VERSION^XPDUTL("ICPT") I +PXRMVER'>5.9999 D D ABRT Q
|
---|
| 47 | . D ET(" Required ICPT/HCPCS Codes version 6.0 not found.")
|
---|
| 48 | S PXRMV=PXRMV_" ICPT/HCPCS Codes v "_PXRMVER
|
---|
| 49 | D M(PXRMV) S PXRMV="" K PXRMERR D BM(" Checking for required patches")
|
---|
| 50 | I $L(PXRMREQ) D
|
---|
| 51 | . N PXRMPAT,PXRMI,PXRMPN,PXRMV,PXRMT
|
---|
| 52 | . F PXRMI=1:1 Q:'$L($P(PXRMREQ,";",PXRMI)) S PXRMPAT=$P(PXRMREQ,";",PXRMI) D
|
---|
| 53 | . . S PXRMPN=$$PATCH^XPDUTL(PXRMPAT) S PXRMT=" "_PXRMPAT
|
---|
| 54 | . . S:PXRMPN>0 PXRMT=PXRMT_$J(" ",(35-$L(PXRMT)))_"installed"
|
---|
| 55 | . . D:PXRMPN>0 M(PXRMT) I +PXRMPN'>0 D ET((PXRMPAT_" not found, please install "_PXRMPAT_" before continuing"))
|
---|
| 56 | I $D(PXRMERR) D ABRT Q
|
---|
| 57 | QUIT ; Quit Passed Environment Check - OK
|
---|
| 58 | D OK
|
---|
| 59 | Q
|
---|
| 60 | ABRT ; Abort Failed Environment Check, KILL the distribution
|
---|
| 61 | S PXRMBLDS="LEX*2.0*49;ICD*18.0*28;ICPT*6.0*34;PXRM*2.0*9"
|
---|
| 62 | D:$D(PXRMERR) ED S XPDABORT=1,XPDQUIT=1 N PXRMI
|
---|
| 63 | F PXRMI=1:1 Q:'$L($P(PXRMBLDS,";",PXRMI)) S XPDQUIT($P(PXRMBLDS,";",PXRMI))=1
|
---|
| 64 | K PXRMERR
|
---|
| 65 | Q
|
---|
| 66 | CLR ; Clear Environment
|
---|
| 67 | K DA,DIC,DIQ,DR,PXRMB,PXRMBLD,PXRMBLDS,PXRMERR,PXRMHF,PXRMI,PXRML,PXRMPAT,PXRMPN,PXRMREQ,PXRMS,PXRMT,PXRMU,PXRMV,PXRMVER,X
|
---|
| 68 | Q
|
---|
| 69 | OK ; Environment is OK
|
---|
| 70 | N PXRMI,PXRMB,PXRMS,PXRML
|
---|
| 71 | S PXRMS=" Environment "_$S($L($G(PXRMHF)):("for distribution "_$G(PXRMHF)_" "),1:"")_"is ok"
|
---|
| 72 | D BM(PXRMS)
|
---|
| 73 | S PXRML=" This distribution contains builds: "
|
---|
| 74 | D M(" ") F PXRMI=1:1 Q:'$L($P($G(PXRMBLDS),";",PXRMI)) S PXRMB=$P($G(PXRMBLDS),";",PXRMI) D
|
---|
| 75 | . S PXRMS=PXRML_PXRMB,PXRML=" " D:$L($G(PXRMB)) M(PXRMS)
|
---|
| 76 | D M(" ")
|
---|
| 77 | Q
|
---|
| 78 | ;
|
---|
| 79 | ; Individual Checks
|
---|
| 80 | UR(X) ; Check User variables
|
---|
| 81 | Q:'$L($G(DUZ(0))) 0
|
---|
| 82 | Q:+($G(DUZ))=0!($$NOTDEF(+$G(DUZ))) 0
|
---|
| 83 | Q 1
|
---|
| 84 | NOTDEF(PXRMI) ; Check to see if user is defined
|
---|
| 85 | N DA,DR,DIQ,PXRMU,DIC S DA=PXRMI,DR=.01,DIC=200,DIQ="PXRMU" D EN^DIQ1
|
---|
| 86 | Q '$D(PXRMU)
|
---|
| 87 | SY(X) ; Check System variables
|
---|
| 88 | Q:'$D(IO)!('$D(IOF))!('$D(IOM))!('$D(ION))!('$D(IOSL))!('$D(IOST)) 0
|
---|
| 89 | Q 1
|
---|
| 90 | ;
|
---|
| 91 | ; Messages
|
---|
| 92 | ET(X) ; Error Test
|
---|
| 93 | N PXRMI S PXRMI=+($G(PXRMERR(0))),PXRMI=PXRMI+1,PXRMERR(PXRMI)=" "_$G(X),PXRMERR(0)=PXRMI
|
---|
| 94 | Q
|
---|
| 95 | ED ; Error Display
|
---|
| 96 | N PXRMI S PXRMI=0 F S PXRMI=$O(PXRMERR(PXRMI)) Q:+PXRMI=0 D M(PXRMERR(PXRMI))
|
---|
| 97 | D M(" ") K PXRMERR Q
|
---|
| 98 | BM(X) ; Blank Line with Message
|
---|
| 99 | D BMES^XPDUTL($G(X)) Q
|
---|
| 100 | M(X) ; Message
|
---|
| 101 | D MES^XPDUTL($G(X)) Q
|
---|