Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: PXRMP9E

PXRMP9E.m

Go to the documentation of this file.
  1. PXRMP9E ; SLC/KER - Environoment Check for LEX*2.0*49/PXRM+2*9 ;02/22/2007
  1. ;;2.0;CLINICAL REMINDERS;**9**;Feb 04, 2005;Build 4
  1. ;
  1. ; Local Variables not NEWed or KILLed
  1. ; XPDENV
  1. ;
  1. ; Global Variables
  1. ; None
  1. ;
  1. ; External References
  1. ; DBIA 10015 EN^DIQ1
  1. ; DBIA 10141 $$PATCH^XPDUTL
  1. ; DBIA 10141 $$VERSION^XPDUTL
  1. ; DBIA 10141 BMES^XPDUTL
  1. ; DBIA 10141 MES^XPDUTL
  1. ;
  1. ENV ; LEX*2.0*49 Environment Check
  1. D BM(" Code Set Update message fix (Remedy Ticket 175985)"),M(" ")
  1. N DA,DIC,DIQ,DR,PXRMB,PXRMBLD,PXRMBLDS,PXRMERR,PXRMHF,PXRMI,PXRML,PXRMPAT,PXRMPN,PXRMREQ,PXRMS,PXRMT,PXRMU,PXRMV,PXRMVER,X
  1. K XPDABORT,XPDQUIT S U="^",PXRMREQ="LEX*2.0*25;LEX*2.0*27;LEX*2.0*32;LEX*2.0*46;ICD*18.0*11;ICPT*6.0*16"
  1. S PXRMBLD="PXRM*2.0*9",PXRMBLDS="PXRM*2.0*9",PXRMHF="PXRM_2_9.KID"
  1. K PXRMERR D:+($$UR)'>0 ET("User not defined (DUZ)") I $D(PXRMERR) D ABRT Q
  1. D:+($$SY)'>0 ET("Undefined IO variable(s)") I $D(PXRMERR) D ABRT Q
  1. I +($G(XPDENV))>0 D
  1. . D M(" Fixes the following components:")
  1. . D BM(" LEX*2.0*49 Protocol LEXICAL SERVICES UPDATE")
  1. . D M(" Routines LEXXFI, LEXXFI7, LEXXGI, LEXXGI2, and LEXXST")
  1. . D BM(" ICPT*6.0*34 Protocol ICPT CODE UPDATE EVENT")
  1. . D M(" Routine ICPTAU")
  1. . D BM(" ICD*18.0*28 Protocol ICD CODE UPDATE EVENT")
  1. . D M(" Routine ICDUPDT")
  1. . D BM(" PXRM*2.0*9 Protocol PXRM CODE SET UPDATE CPT")
  1. . D M(" Protocol PXRM CODE SET UPDATE ICD")
  1. . D M(" Routines PXRMCSD and PXRMCSTX"),M(" ")
  1. D M(" Checking installed package version numbers")
  1. S PXRMVER=$$VERSION^XPDUTL("LEX") I +PXRMVER'>1.9999 D D ABRT Q
  1. . D ET(" Required Lexicon version 2.0 not found.")
  1. S PXRMV=" Lexicon Utility v "_PXRMVER,PXRMV=PXRMV_$J(" ",(30-$L(PXRMV)))
  1. S PXRMVER=$$VERSION^XPDUTL("PXRM") I +PXRMVER'>1.9999 D D ABRT Q
  1. . D ET(" Required Clinical Reminders version 2.0 not found.")
  1. S PXRMV=PXRMV_" Clinical Reminders v "_PXRMVER
  1. D M(PXRMV) S PXRMV=""
  1. S PXRMVER=$$VERSION^XPDUTL("ICD") I +PXRMVER'>17.9999 D D ABRT Q
  1. . D ET(" Required ICD DRG Grouper version 18.0 not found.")
  1. S PXRMV=" ICD DRG Grouper v "_PXRMVER,PXRMV=PXRMV_$J(" ",(30-$L(PXRMV)))
  1. S PXRMVER=$$VERSION^XPDUTL("ICPT") I +PXRMVER'>5.9999 D D ABRT Q
  1. . D ET(" Required ICPT/HCPCS Codes version 6.0 not found.")
  1. S PXRMV=PXRMV_" ICPT/HCPCS Codes v "_PXRMVER
  1. D M(PXRMV) S PXRMV="" K PXRMERR D BM(" Checking for required patches")
  1. I $L(PXRMREQ) D
  1. . N PXRMPAT,PXRMI,PXRMPN,PXRMV,PXRMT
  1. . F PXRMI=1:1 Q:'$L($P(PXRMREQ,";",PXRMI)) S PXRMPAT=$P(PXRMREQ,";",PXRMI) D
  1. . . S PXRMPN=$$PATCH^XPDUTL(PXRMPAT) S PXRMT=" "_PXRMPAT
  1. . . S:PXRMPN>0 PXRMT=PXRMT_$J(" ",(35-$L(PXRMT)))_"installed"
  1. . . D:PXRMPN>0 M(PXRMT) I +PXRMPN'>0 D ET((PXRMPAT_" not found, please install "_PXRMPAT_" before continuing"))
  1. I $D(PXRMERR) D ABRT Q
  1. QUIT ; Quit Passed Environment Check - OK
  1. D OK
  1. Q
  1. ABRT ; Abort Failed Environment Check, KILL the distribution
  1. S PXRMBLDS="PXRM*2.0*9"
  1. D:$D(PXRMERR) ED S XPDABORT=1,XPDQUIT=1 N PXRMI
  1. F PXRMI=1:1 Q:'$L($P(PXRMBLDS,";",PXRMI)) S XPDQUIT($P(PXRMBLDS,";",PXRMI))=1
  1. K PXRMERR
  1. Q
  1. CLR ; Clear Environment
  1. K DA,DIC,DIQ,DR,PXRMB,PXRMBLD,PXRMBLDS,PXRMERR,PXRMHF,PXRMI,PXRML,PXRMPAT,PXRMPN,PXRMREQ,PXRMS,PXRMT,PXRMU,PXRMV,PXRMVER,X
  1. Q
  1. OK ; Environment is OK
  1. N PXRMI,PXRMB,PXRMS,PXRML
  1. S PXRMS=" Environment "_$S($L($G(PXRMHF)):("for distribution "_$G(PXRMHF)_" "),1:"")_"is ok"
  1. D BM(PXRMS)
  1. S PXRML=" This distribution contains builds: "
  1. D M(" ") F PXRMI=1:1 Q:'$L($P($G(PXRMBLDS),";",PXRMI)) S PXRMB=$P($G(PXRMBLDS),";",PXRMI) D
  1. . S PXRMS=PXRML_PXRMB,PXRML=" " D:$L($G(PXRMB)) M(PXRMS)
  1. D M(" ")
  1. Q
  1. ;
  1. ; Individual Checks
  1. UR(X) ; Check User variables
  1. Q:'$L($G(DUZ(0))) 0
  1. Q:+($G(DUZ))=0!($$NOTDEF(+$G(DUZ))) 0
  1. Q 1
  1. NOTDEF(PXRMI) ; Check to see if user is defined
  1. N DA,DR,DIQ,PXRMU,DIC S DA=PXRMI,DR=.01,DIC=200,DIQ="PXRMU" D EN^DIQ1
  1. Q '$D(PXRMU)
  1. SY(X) ; Check System variables
  1. Q:'$D(IO)!('$D(IOF))!('$D(IOM))!('$D(ION))!('$D(IOSL))!('$D(IOST)) 0
  1. Q 1
  1. ;
  1. ; Messages
  1. ET(X) ; Error Test
  1. N PXRMI S PXRMI=+($G(PXRMERR(0))),PXRMI=PXRMI+1,PXRMERR(PXRMI)=" "_$G(X),PXRMERR(0)=PXRMI
  1. Q
  1. ED ; Error Display
  1. N PXRMI S PXRMI=0 F S PXRMI=$O(PXRMERR(PXRMI)) Q:+PXRMI=0 D M(PXRMERR(PXRMI))
  1. D M(" ") K PXRMERR Q
  1. BM(X) ; Blank Line with Message
  1. D BMES^XPDUTL($G(X)) Q
  1. M(X) ; Message
  1. D MES^XPDUTL($G(X)) Q