APSPEC04 ;IHS/CIA/PLS - APSP ENVIRONMENT CHECK ROUTINE ;23-May-2006 20:58;SM
;;7.0;IHS PHARMACY MODIFICATIONS;**1004**;DEC 11, 2003
;
ENV ;EP
;
S X=$$GET1^DIQ(200,DUZ,.01)
W !!,$$CJ^XLFSTR("Hello, "_$P(X,",",2)_" "_$P(X,","),IOM)
W !!,$$CJ^XLFSTR("Checking Environment for "_$P($T(+2),";",4)_" V "_$P($T(+2),";",3)_", Patch 1004.",IOM)
S (XPDDIQ("XPZ1"),XPDDIQ("XPZ2"))=0 ; Suppress the Disable options and Move routines prompts
S XPDABORT=0
D:'$D(^XPD(9.7,"B","PIMS*5.3*1004")) MES("Patch PIMS*5.3*1004 is required and hasn't been installed.",2)
D:'$D(^XPD(9.7,"B","APSP*7.0*1003")) MES("Patch APSP*7.0*1003 is required and hasn't been installed.",2)
I 'XPDABORT D
.W !!,"All requirements for installation have been met...",!
E D
.W !!,"Unable to continue with the installation...",!
Q
;
MES(TXT,QUIT) ;EP
D BMES^XPDUTL(" "_$G(TXT))
S:$G(QUIT) XPDABORT=QUIT
Q
;
PRE ;EP - Pre-init
D RENXPAR("CIAZPRX LOG MESSAGES","APSPPCC LOG MESSAGES")
D REMXPAR("CIAZPRX PHARMACY LOCATION") ; Remove existing values for parameter
Q
RENXPAR(OLD,NEW) ; Rename parameter
N IEN,FDA,FIL
S FIL=8989.51
Q:$$FIND1^DIC(FIL,,"X",NEW) ; New name already exists
S IEN=$$FIND1^DIC(FIL,,"X",OLD)
Q:'IEN ; Old name doesn't exist
S FDA(FIL,IEN_",",.01)=NEW
D FILE^DIE("E","FDA")
Q
;
REMXPAR(PAR) ;Remove values stored for a given parameter
N PIEN,ENT,INT,VIEN,DIK,DA
S PIEN=$O(^XPAR(8989.51,"B",PAR,0))
Q:'PIEN
S ENT=0 F S ENT=$O(^XPAR(8989.5,"AC",PIEN,ENT)) Q:ENT="" D ;Entity
.S INT=0 F S INT=$O(^XPAR(8989.5,"AC",PIEN,ENT,INT)) Q:INT="" D ;Instance
..S DA=0 F S DA=$O(^XPAR(8989.5,"AC",PIEN,ENT,INT,DA)) Q:'DA D ;Value IEN
...S DIK="^XTV(8989.5," D ^DIK
Q
POST ;EP
D REGPROT^CIAURPC("PS EVSEND OR","IHS PS HOOK")
D FIXCMF
Q
;
FIXCMF ; EP - Remove Chronic Med Flag for Discontinued/Deleted Medications
N RX,CNT
D MES("Removing Chronic Med flag on Discontinued/Deleted Medications...")
W !!
S (CNT,RX)=0 F S RX=$O(^PSRX(RX)) Q:'RX D
.S ST=+$P($G(^PSRX(RX,"STA")),U)
.S CNT=CNT+1
.I ST>11&(ST<16) D
..D KILLOCM^PSORN52(RX)
.W:'(CNT#100) "."
Q
APSPEC04 ;IHS/CIA/PLS - APSP ENVIRONMENT CHECK ROUTINE ;23-May-2006 20:58;SM
+1 ;;7.0;IHS PHARMACY MODIFICATIONS;**1004**;DEC 11, 2003
+2 ;
ENV ;EP
+1 ;
+2 SET X=$$GET1^DIQ(200,DUZ,.01)
+3 WRITE !!,$$CJ^XLFSTR("Hello, "_$PIECE(X,",",2)_" "_$PIECE(X,","),IOM)
+4 WRITE !!,$$CJ^XLFSTR("Checking Environment for "_$PIECE($TEXT(+2),";",4)_" V "_$PIECE($TEXT(+2),";",3)_", Patch 1004.",IOM)
+5 ; Suppress the Disable options and Move routines prompts
SET (XPDDIQ("XPZ1"),XPDDIQ("XPZ2"))=0
+6 SET XPDABORT=0
+7 IF '$DATA(^XPD(9.7,"B","PIMS*5.3*1004"))
DO MES("Patch PIMS*5.3*1004 is required and hasn't been installed.",2)
+8 IF '$DATA(^XPD(9.7,"B","APSP*7.0*1003"))
DO MES("Patch APSP*7.0*1003 is required and hasn't been installed.",2)
+9 IF 'XPDABORT
Begin DoDot:1
+10 WRITE !!,"All requirements for installation have been met...",!
End DoDot:1
+11 IF '$TEST
Begin DoDot:1
+12 WRITE !!,"Unable to continue with the installation...",!
End DoDot:1
+13 QUIT
+14 ;
MES(TXT,QUIT) ;EP
+1 DO BMES^XPDUTL(" "_$GET(TXT))
+2 IF $GET(QUIT)
SET XPDABORT=QUIT
+3 QUIT
+4 ;
PRE ;EP - Pre-init
+1 DO RENXPAR("CIAZPRX LOG MESSAGES","APSPPCC LOG MESSAGES")
+2 ; Remove existing values for parameter
DO REMXPAR("CIAZPRX PHARMACY LOCATION")
+3 QUIT
RENXPAR(OLD,NEW) ; Rename parameter
+1 NEW IEN,FDA,FIL
+2 SET FIL=8989.51
+3 ; New name already exists
IF $$FIND1^DIC(FIL,,"X",NEW)
QUIT
+4 SET IEN=$$FIND1^DIC(FIL,,"X",OLD)
+5 ; Old name doesn't exist
IF 'IEN
QUIT
+6 SET FDA(FIL,IEN_",",.01)=NEW
+7 DO FILE^DIE("E","FDA")
+8 QUIT
+9 ;
REMXPAR(PAR) ;Remove values stored for a given parameter
+1 NEW PIEN,ENT,INT,VIEN,DIK,DA
+2 SET PIEN=$ORDER(^XPAR(8989.51,"B",PAR,0))
+3 IF 'PIEN
QUIT
+4 ;Entity
SET ENT=0
FOR
SET ENT=$ORDER(^XPAR(8989.5,"AC",PIEN,ENT))
IF ENT=""
QUIT
Begin DoDot:1
+5 ;Instance
SET INT=0
FOR
SET INT=$ORDER(^XPAR(8989.5,"AC",PIEN,ENT,INT))
IF INT=""
QUIT
Begin DoDot:2
+6 ;Value IEN
SET DA=0
FOR
SET DA=$ORDER(^XPAR(8989.5,"AC",PIEN,ENT,INT,DA))
IF 'DA
QUIT
Begin DoDot:3
+7 SET DIK="^XTV(8989.5,"
DO ^DIK
End DoDot:3
End DoDot:2
End DoDot:1
+8 QUIT
POST ;EP
+1 DO REGPROT^CIAURPC("PS EVSEND OR","IHS PS HOOK")
+2 DO FIXCMF
+3 QUIT
+4 ;
FIXCMF ; EP - Remove Chronic Med Flag for Discontinued/Deleted Medications
+1 NEW RX,CNT
+2 DO MES("Removing Chronic Med flag on Discontinued/Deleted Medications...")
+3 WRITE !!
+4 SET (CNT,RX)=0
FOR
SET RX=$ORDER(^PSRX(RX))
IF 'RX
QUIT
Begin DoDot:1
+5 SET ST=+$PIECE($GET(^PSRX(RX,"STA")),U)
+6 SET CNT=CNT+1
+7 IF ST>11&(ST<16)
Begin DoDot:2
+8 DO KILLOCM^PSORN52(RX)
End DoDot:2
+9 IF '(CNT#100)
WRITE "."
End DoDot:1
+10 QUIT