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

PSSDSONF.m

Go to the documentation of this file.
  1. PSSDSONF ;BIR/RTR-Dosing On/Off Parameter ;07/09/12
  1. ;;1.0;PHARMACY DATA MANAGEMENT;**160**;9/30/97;Build 76
  1. ;
  1. EN ;Turn Dosing On and Off
  1. N PSSDONA,PSSDONLK,PSSDONR,PSSDONTS,DIC,DIE,DA,DR,DIR,X,Y,DTOUT,DUOUT,DIRUT,DIROUT
  1. S PSSDONA=$P($G(^PS(59.7,1,81)),"^"),PSSDONTS=1 I '$$PROD^XUPROD S PSSDONTS=0
  1. W !!?5,$S(PSSDONA:"Dosing Order Checks are currently ENABLED.",1:"WARNING! Dosing Order Checks are currently DISABLED.")
  1. I PSSDONA G ON
  1. W !!,"No Dosing Order Checks will be performed during order entry in CPRS or",!,"Pharmacy while Dosing Order Checks are disabled!!!"
  1. D LCK I 'PSSDONLK D END Q
  1. W ! K DIR,DTOUT,DUOUT S DIR(0)="Y",DIR("B")="YES",DIR("A")="Do you wish to ENABLE Dosing Order Checks"
  1. S DIR("?",1)="Enter 'YES' to enable all Dosing Order Checks for Outpatient Pharmacy,"
  1. S DIR("?")="Inpatient Medications and Computerized Patient Record System (CPRS)."
  1. D ^DIR K DIR I Y'=1!($D(DTOUT))!($D(DUOUT)) W !!?5,"WARNING! Dosing Order Checks remain DISABLED." D D UNLCK,END Q
  1. .W !!,"NO Dosing Order Checks will be performed during order entry in CPRS",!,"or Pharmacy while Dosing Order Checks are disabled!!!"
  1. K PSSDONR K ^TMP("DIERR",$J) S PSSDONR(59.7,"1,",95)=1 D FILE^DIE("","PSSDONR") K ^TMP("DIERR",$J)
  1. I '$P($G(^PS(59.7,1,81)),"^") W !!?5,"UNABLE to enable Dosing Order Checks! Please contact",!?5,"local support for assistance." D UNLCK,END Q
  1. W !!?5,"Dosing Order Checks ENABLED.",! D TMES
  1. D SEND(1,0),SEND(1,1) D UNLCK,END Q
  1. Q
  1. ;
  1. ;
  1. ON ;
  1. D LCK I 'PSSDONLK D END Q
  1. W ! K DIR,DTOUT,DUOUT S DIR(0)="Y",DIR("B")="NO",DIR("A")="Do you wish to DISABLE Dosing Order Checks"
  1. S DIR("?",1)="Enter 'YES' to disable all Dosing Order Checks for Outpatient Pharmacy,"
  1. S DIR("?")="Inpatient Medications and CPRS."
  1. D ^DIR K DIR I Y'=1!($D(DTOUT))!($D(DUOUT)) W !!?5,"Dosing Order Checks remain ENABLED." D UNLCK,END Q
  1. W ! K DIR,DTOUT,DUOUT S DIR(0)="Y",DIR("B")="NO",DIR("A")="to take this action"
  1. S DIR("A",1)="Have you received authorization from Pharmacy Benefits Management (PBM)"
  1. S DIR("?",1)="To turn Dosing Off, authorization must first come from Pharmacy",DIR("?")="Benefits Management (PBM)."
  1. D ^DIR I Y'=1!($D(DTOUT))!($D(DUOUT)) W !!?5,"Dosing Order Checks remain ENABLED." D UNLCK,END Q
  1. W !!,"NO Dosing Order Checks will be performed during order entry in CPRS"
  1. W !,"or Pharmacy while Dosing Order Checks are disabled!!!",!!,"Notification of this action will be sent to PBM and local VistA"
  1. W !,"PSS ORDER CHECKS mail group."
  1. W ! K DIR,DTOUT,DUOUT S DIR(0)="Y",DIR("B")="NO",DIR("A")="Are you sure you want to DISABLE Dosing Order Checks"
  1. S DIR("?",1)="Enter 'YES' to disable all Dosing Order Checks for Outpatient Pharmacy,"
  1. S DIR("?")="Inpatient Medications and CPRS."
  1. D ^DIR K DIR I Y'=1!($D(DTOUT))!($D(DUOUT)) W !!?5,"Dosing Order Checks remain ENABLED." D UNLCK,END Q
  1. K PSSDONR K ^TMP("DIERR",$J) S PSSDONR(59.7,"1,",95)=0 D FILE^DIE("","PSSDONR") K ^TMP("DIERR",$J)
  1. I $P($G(^PS(59.7,1,81)),"^") W !!?5,"UNABLE to disable Dosing Order Checks! Please contact",!?5,"local support for assistance." D UNLCK,END Q
  1. W !!?5,"Dosing Order Checks DISABLED.",! D TMES
  1. D SEND(0,0),SEND(0,1) D UNLCK,END Q
  1. Q
  1. ;
  1. ;
  1. TMES ;Write final message
  1. I 'PSSDONTS W !,"Note: This is a TEST account. This request will NOT be sent forward to PBM",!,"on Outlook mail." Q
  1. W !,"NOTIFICATION OF THIS ACTION has been forwarded to PBM and local",!,"VistA PSS ORDER CHECKS mail group."
  1. Q
  1. ;
  1. ;
  1. SEND(PSSDONW,PSSDONAB) ;Send mail message
  1. I 'PSSDONTS,PSSDONAB Q
  1. N XMTEXT,XMY,XMSUB,XMDUZ,XMMG,XMSTRIP,XMROU,XMDUN,DIFROM,XMYBLOB,XMZ,X,Y,%,%H,%I,%DT,PSSDONSC,PSSDONLC,PSSDONDZ
  1. S XMSUB="DOSING ORDER CHECKS "_$S(PSSDONW:"ENABLED",1:"DISABLED")
  1. S XMDUZ=DUZ
  1. D NOW^%DTC S Y=%,%DT="S" D DD^%DT S PSSDONSC=Y
  1. S PSSDONLC=$P($$SITE^VASITE(),"^",2)
  1. S PSSDONDZ=$$GET1^DIQ(200,DUZ_",",.01)
  1. K ^TMP($J,"PSSDSOTX")
  1. I PSSDONAB D
  1. .S ^TMP($J,"PSSDSOTX",1,0)=$G(PSSDONDZ)_" from "_$G(PSSDONLC)
  1. .S ^TMP($J,"PSSDSOTX",2,0)="has "_$S(PSSDONW:"ENABLED",1:"DISABLED")_" Dosing Order Checks on "_$G(PSSDONSC)_"."
  1. I 'PSSDONAB D
  1. .S ^TMP($J,"PSSDSOTX",1,0)=$G(PSSDONDZ)_" has "_$S(PSSDONW:"ENABLED",1:"DISABLED")_" Dosing Order Checks on "_$G(PSSDONSC)_"."
  1. S XMTEXT="^TMP($J,""PSSDSOTX"","
  1. I 'PSSDONAB D
  1. .S XMY(DUZ)=""
  1. .S XMY("G.PSS ORDER CHECKS")=""
  1. I PSSDONTS,PSSDONAB S XMY("MOCHADOSINGDISCONNECTNOTIFY@domain.ext")=""
  1. D ^XMD
  1. K ^TMP($J,"PSSDSOTX")
  1. Q
  1. ;
  1. ;
  1. LCK ;Lock node
  1. S PSSDONLK=0 L +^PS(59.7,1,81):$S($G(DILOCKTM)>0:DILOCKTM,1:3) I '$T W !!,"Another person is editing the Dosing On/Off Switch." Q
  1. S PSSDONLK=1
  1. Q
  1. ;
  1. ;
  1. UNLCK ;Unlock node
  1. L -^PS(59.7,1,81)
  1. Q
  1. ;
  1. ;
  1. END ;
  1. K DIR W ! S DIR(0)="E",DIR("A")="Press Return to continue" D ^DIR K DIR W !
  1. Q
  1. ;
  1. ;
  1. ACLOG ;Set activity log multiple for DOSING ON/OFF switch.
  1. I $G(X1(1))=$G(X2(1)) Q
  1. N PSSDHAH,PSSDHAHX,%,%H,%I,X
  1. S PSSDHAH("DA")=DA
  1. D NOW^%DTC S PSSDHAHX(59.782,"+1,"_PSSDHAH("DA")_",",.01)=%
  1. S PSSDHAHX(59.782,"+1,"_PSSDHAH("DA")_",",1)=$G(DUZ)
  1. S PSSDHAHX(59.782,"+1,"_PSSDHAH("DA")_",",2)=$G(X2(1))
  1. K ^TMP("DIERR",$J)
  1. D UPDATE^DIE("","PSSDHAHX")
  1. K ^TMP("DIERR",$J)
  1. Q