- PSJIPST ;BIR/CML3-POST INIT DRIVER ;11 DEC 97 / 3:11 PM
- ;;5.0; INPATIENT MEDICATIONS ;;16 DEC 97
- ;
- D MES^XPDUTL(" ")
- S PSJIPSTF=1 D NOW^%DTC D YX^%DTC S PSJMESSG="POST-INIT STARTED AT "_Y_" ...." D MES^XPDUTL(PSJMESSG)
- ;
- ;Set flags and skip conversions if virgin install.
- I $D(PSGINITF) D
- .D NOW^%DTC S ^PS(59.7,1,20.5)=%_"^"_%_"^"_%_"^"_% D:XPDQUES("POS1")=1 VIRGIN
- D ^PSJIPSTA
- ;
- ; Connect movement event driver
- D:'$P($G(^PS(59.7,1,20.5)),U,2) START^PSJIPST1
- ;
- ; Do Unit Dose Order Sets conversion
- D:'$P($G(^PS(59.7,1,20.5)),U,4) 111^PSJIPST3
- ;
- UPF ; update package file, if necessary .... took this code out
- DONE ;
- F X="AUDDD","AUDAPM","ALCNVRT" S ^PS(55,X)=+$P($T(PSJIPST+1),";",3)
- ;
- ; Queue 5.0 order conversion.
- ; called from OERR now
- ;D:('$P($G(^PS(59.7,1,20.5)),U,2))&('$D(PSGINITF)) ENORDER^PSJIPST1,ENIVKV^PSGSETU
- ;
- ; Queue 5.0 pick list conversion.
- D:'$P($G(^PS(59.7,1,20.5)),U,3) ENPL^PSJIPST1
- ; Queue 5.0 Unit Dose Verification conversion.
- D:'$P($G(^PS(59.7,1,20.5)),U) ENPVNV^PSJIPST2
- D SNMM,ENUPO
- D MES^XPDUTL(" ")
- D NOW^%DTC S $P(^PS(59.7,1,20),"^",1,3)=+$P($T(PSJIPST+1),";",3)_"^"_%_"^"_DUZ,Y=% D YX^%DTC S PSJMESSG="POST-INSTALL COMPLETED AT "_Y_" ...." D MES^XPDUTL(PSJMESSG)
- ; fill in ^XTMP zero nodes
- N PSJDATE1,PSJDATE2
- D NOW^%DTC S PSJDATE1=X,X1=X,X2=7 D C^%DTC S PSJDATE2=X
- S ^XTMP("PSJ NEW PERSON",0)=PSJDATE2_"^"_PSJDATE1_"^"_"List of changed User Names in IV orders"
- Q
- ;
- VIRGIN ; Queue process to mark all drugs as UD items (Virgin install only).
- K ZTSAVE,ZTSK S ZTRTN="ENMUD^PSJIPST1",ZTDTH=$H,ZTDESC="MARK ALL DISPENSE DRUGS AS UNIT DOSE ITEMS (INPATIENT MEDS POST-INSTALL)",ZTIO="" D ^%ZTLOAD
- S PSJMESSG="... the process to mark all ACTIVE drugs in your local drug file as Unit Dose items is"_$S($D(ZTSK):"",1:"NOT")_" queued." D MES^XPDUTL(PSJMESSG)
- I $D(ZTSK) D MES^XPDUTL(" (to start NOW). YOU WILL RECEIVE A MAILMAN MESSAGE WHEN THE TASK HAS COMPLETED.")
- Q
- ;
- SNMM ;
- N PSG,XMY S XMSUB="INPATIENT MEDICATIONS "_$P($T(PSJIPST+1),";",3)_" INSTALL COMPLETED",XMY("MIMS,M@DOMAIN.NAME")="",XMDUZ=DUZ,XMTEXT="PSG(",%H=$H D YX^%DTC
- S PSG(1,0)=" "
- S PSG(2,0)=" "_$P($$SITE^VASITE(),"^",2)_" HAS RUN THE INPATIENT MEDICATION V"_$P($T(PSJIPST+1),";",3)_" INSTALL"
- S PSG(3,0)="TO COMPLETION AS OF "_Y_"."
- N DIFROM D ^XMD K SITE Q
- ;
- ENUPO ; update options when conversions done
- ; get list of Pick List options IENs, these will not be enabled until
- ; the end of the pick list conversion
- S PSJOPLIS="|"_+$O(^DIC(19,"B","PSJU PLDEL",0))_"|"
- S PSJOPLIS=PSJOPLIS_+$O(^DIC(19,"B","PSJU PLAPS",0))_"|"
- S PSJOPLIS=PSJOPLIS_+$O(^DIC(19,"B","PSJU PLPRG",0))_"|"
- S PSJOPLIS=PSJOPLIS_+$O(^DIC(19,"B","PSJU PLDP",0))_"|"
- S PSJOPLIS=PSJOPLIS_+$O(^DIC(19,"B","PSJU EUD",0))_"|"
- S PSJOPLIS=PSJOPLIS_+$O(^DIC(19,"B","PSJU PL",0))_"|"
- S PSJOPLIS=PSJOPLIS_+$O(^DIC(19,"B","PSJU RET",0))_"|"
- S PSJOPLIS=PSJOPLIS_+$O(^DIC(19,"B","PSJU PLRP",0))_"|"
- S PSJOPLIS=PSJOPLIS_+$O(^DIC(19,"B","PSJU PLATCS",0))_"|"
- S PSJOPLIS=PSJOPLIS_+$O(^DIC(19,"B","PSJU PLUP",0))_"|"
- D MES^XPDUTL("...removing the 'OUT OF ORDER' message from the Inpatient Medications options...")
- S Q1="PSJ" F S Q1=$O(^DIC(19,"B",Q1)) Q:$E(Q1,1,3)'="PSJ" F Q2=0:0 S Q2=$O(^DIC(19,"B",Q1,Q2)) Q:'Q2 D
- .S DIE="^DIC(19,",DA=Q2,DR="2///@" D:PSJOPLIS'[("|"_Q2_"|") ^DIE
- D MES^XPDUTL("...removing the 'DISABLE' message from the Inpatient Medications protocols...")
- S Q1="PSJ" F S Q1=$O(^ORD(101,"B",Q1)) Q:$E(Q1,1,3)'="PSJ" F Q2=0:0 S Q2=$O(^ORD(101,"B",Q1,Q2)) Q:'Q2 S DIE="^ORD(101,",DA=Q2,DR="2///@" D ^DIE
- ; if package is reinstalled and Pick list conversion has finished
- ; the options will be reactivated again
- D:$P($G(^PS(59.7,1,20.5)),U,3) ACTPK^PSJIPST2
- D PURG
- K DA,DIE,DR,PSJOPLIS,Q1,Q2,X,Y
- Q
- PURG ; Place PURGE options as OUT OF ORDER
- ; take this out later!!!!!!! keeps users from using the purge options
- N NAME,IEN
- F NAME="PSJU PO PURGE","PSJI PURGE","PSJI PURGE ORDERS" S IEN=$O(^DIC(19,"B",NAME,0)) S DIE="^DIC(19,",DA=IEN,DR="2////TEMPORARILY UNAVAILABLE" D ^DIE K DIE
- Q
- PSJIPST ;BIR/CML3-POST INIT DRIVER ;11 DEC 97 / 3:11 PM
- +1 ;;5.0; INPATIENT MEDICATIONS ;;16 DEC 97
- +2 ;
- +3 DO MES^XPDUTL(" ")
- +4 SET PSJIPSTF=1
- DO NOW^%DTC
- DO YX^%DTC
- SET PSJMESSG="POST-INIT STARTED AT "_Y_" ...."
- DO MES^XPDUTL(PSJMESSG)
- +5 ;
- +6 ;Set flags and skip conversions if virgin install.
- +7 IF $DATA(PSGINITF)
- Begin DoDot:1
- +8 DO NOW^%DTC
- SET ^PS(59.7,1,20.5)=%_"^"_%_"^"_%_"^"_%
- IF XPDQUES("POS1")=1
- DO VIRGIN
- End DoDot:1
- +9 DO ^PSJIPSTA
- +10 ;
- +11 ; Connect movement event driver
- +12 IF '$PIECE($GET(^PS(59.7,1,20.5)),U,2)
- DO START^PSJIPST1
- +13 ;
- +14 ; Do Unit Dose Order Sets conversion
- +15 IF '$PIECE($GET(^PS(59.7,1,20.5)),U,4)
- DO 111^PSJIPST3
- +16 ;
- UPF ; update package file, if necessary .... took this code out
- DONE ;
- +1 FOR X="AUDDD","AUDAPM","ALCNVRT"
- SET ^PS(55,X)=+$PIECE($TEXT(PSJIPST+1),";",3)
- +2 ;
- +3 ; Queue 5.0 order conversion.
- +4 ; called from OERR now
- +5 ;D:('$P($G(^PS(59.7,1,20.5)),U,2))&('$D(PSGINITF)) ENORDER^PSJIPST1,ENIVKV^PSGSETU
- +6 ;
- +7 ; Queue 5.0 pick list conversion.
- +8 IF '$PIECE($GET(^PS(59.7,1,20.5)),U,3)
- DO ENPL^PSJIPST1
- +9 ; Queue 5.0 Unit Dose Verification conversion.
- +10 IF '$PIECE($GET(^PS(59.7,1,20.5)),U)
- DO ENPVNV^PSJIPST2
- +11 DO SNMM
- DO ENUPO
- +12 DO MES^XPDUTL(" ")
- +13 DO NOW^%DTC
- SET $PIECE(^PS(59.7,1,20),"^",1,3)=+$PIECE($TEXT(PSJIPST+1),";",3)_"^"_%_"^"_DUZ
- SET Y=%
- DO YX^%DTC
- SET PSJMESSG="POST-INSTALL COMPLETED AT "_Y_" ...."
- DO MES^XPDUTL(PSJMESSG)
- +14 ; fill in ^XTMP zero nodes
- +15 NEW PSJDATE1,PSJDATE2
- +16 DO NOW^%DTC
- SET PSJDATE1=X
- SET X1=X
- SET X2=7
- DO C^%DTC
- SET PSJDATE2=X
- +17 SET ^XTMP("PSJ NEW PERSON",0)=PSJDATE2_"^"_PSJDATE1_"^"_"List of changed User Names in IV orders"
- +18 QUIT
- +19 ;
- VIRGIN ; Queue process to mark all drugs as UD items (Virgin install only).
- +1 KILL ZTSAVE,ZTSK
- SET ZTRTN="ENMUD^PSJIPST1"
- SET ZTDTH=$HOROLOG
- SET ZTDESC="MARK ALL DISPENSE DRUGS AS UNIT DOSE ITEMS (INPATIENT MEDS POST-INSTALL)"
- SET ZTIO=""
- DO ^%ZTLOAD
- +2 SET PSJMESSG="... the process to mark all ACTIVE drugs in your local drug file as Unit Dose items is"_$SELECT($DATA(ZTSK):"",1:"NOT")_" queued."
- DO MES^XPDUTL(PSJMESSG)
- +3 IF $DATA(ZTSK)
- DO MES^XPDUTL(" (to start NOW). YOU WILL RECEIVE A MAILMAN MESSAGE WHEN THE TASK HAS COMPLETED.")
- +4 QUIT
- +5 ;
- SNMM ;
- +1 NEW PSG,XMY
- SET XMSUB="INPATIENT MEDICATIONS "_$PIECE($TEXT(PSJIPST+1),";",3)_" INSTALL COMPLETED"
- SET XMY("MIMS,M@DOMAIN.NAME")=""
- SET XMDUZ=DUZ
- SET XMTEXT="PSG("
- SET %H=$HOROLOG
- DO YX^%DTC
- +2 SET PSG(1,0)=" "
- +3 SET PSG(2,0)=" "_$PIECE($$SITE^VASITE(),"^",2)_" HAS RUN THE INPATIENT MEDICATION V"_$PIECE($TEXT(PSJIPST+1),";",3)_" INSTALL"
- +4 SET PSG(3,0)="TO COMPLETION AS OF "_Y_"."
- +5 NEW DIFROM
- DO ^XMD
- KILL SITE
- QUIT
- +6 ;
- ENUPO ; update options when conversions done
- +1 ; get list of Pick List options IENs, these will not be enabled until
- +2 ; the end of the pick list conversion
- +3 SET PSJOPLIS="|"_+$ORDER(^DIC(19,"B","PSJU PLDEL",0))_"|"
- +4 SET PSJOPLIS=PSJOPLIS_+$ORDER(^DIC(19,"B","PSJU PLAPS",0))_"|"
- +5 SET PSJOPLIS=PSJOPLIS_+$ORDER(^DIC(19,"B","PSJU PLPRG",0))_"|"
- +6 SET PSJOPLIS=PSJOPLIS_+$ORDER(^DIC(19,"B","PSJU PLDP",0))_"|"
- +7 SET PSJOPLIS=PSJOPLIS_+$ORDER(^DIC(19,"B","PSJU EUD",0))_"|"
- +8 SET PSJOPLIS=PSJOPLIS_+$ORDER(^DIC(19,"B","PSJU PL",0))_"|"
- +9 SET PSJOPLIS=PSJOPLIS_+$ORDER(^DIC(19,"B","PSJU RET",0))_"|"
- +10 SET PSJOPLIS=PSJOPLIS_+$ORDER(^DIC(19,"B","PSJU PLRP",0))_"|"
- +11 SET PSJOPLIS=PSJOPLIS_+$ORDER(^DIC(19,"B","PSJU PLATCS",0))_"|"
- +12 SET PSJOPLIS=PSJOPLIS_+$ORDER(^DIC(19,"B","PSJU PLUP",0))_"|"
- +13 DO MES^XPDUTL("...removing the 'OUT OF ORDER' message from the Inpatient Medications options...")
- +14 SET Q1="PSJ"
- FOR
- SET Q1=$ORDER(^DIC(19,"B",Q1))
- IF $EXTRACT(Q1,1,3)'="PSJ"
- QUIT
- FOR Q2=0:0
- SET Q2=$ORDER(^DIC(19,"B",Q1,Q2))
- IF 'Q2
- QUIT
- Begin DoDot:1
- +15 SET DIE="^DIC(19,"
- SET DA=Q2
- SET DR="2///@"
- IF PSJOPLIS'[("|"_Q2_"|")
- DO ^DIE
- End DoDot:1
- +16 DO MES^XPDUTL("...removing the 'DISABLE' message from the Inpatient Medications protocols...")
- +17 SET Q1="PSJ"
- FOR
- SET Q1=$ORDER(^ORD(101,"B",Q1))
- IF $EXTRACT(Q1,1,3)'="PSJ"
- QUIT
- FOR Q2=0:0
- SET Q2=$ORDER(^ORD(101,"B",Q1,Q2))
- IF 'Q2
- QUIT
- SET DIE="^ORD(101,"
- SET DA=Q2
- SET DR="2///@"
- DO ^DIE
- +18 ; if package is reinstalled and Pick list conversion has finished
- +19 ; the options will be reactivated again
- +20 IF $PIECE($GET(^PS(59.7,1,20.5)),U,3)
- DO ACTPK^PSJIPST2
- +21 DO PURG
- +22 KILL DA,DIE,DR,PSJOPLIS,Q1,Q2,X,Y
- +23 QUIT
- PURG ; Place PURGE options as OUT OF ORDER
- +1 ; take this out later!!!!!!! keeps users from using the purge options
- +2 NEW NAME,IEN
- +3 FOR NAME="PSJU PO PURGE","PSJI PURGE","PSJI PURGE ORDERS"
- SET IEN=$ORDER(^DIC(19,"B",NAME,0))
- SET DIE="^DIC(19,"
- SET DA=IEN
- SET DR="2////TEMPORARILY UNAVAILABLE"
- DO ^DIE
- KILL DIE
- +4 QUIT