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

PSODIR3.m

Go to the documentation of this file.
  1. PSODIR3 ;ISC-BIRM/SAB - rx order entry contd ;Jul 24, 2018@22:48
  1. ;;7.0;OUTPATIENT PHARMACY;**3,46,184,222,206,318,444,526,441**;DEC 1997;Build 208
  1. ;
  1. EXP(PSODIR) ;
  1. K DIC,DIR
  1. I $G(PSODRUG("EXPIRATION DATE"))]"" S Y=PSODRUG("EXPIRATION DATE") X ^DD("DD") S PSORX("EXPIRATION DATE")=Y
  1. S DIR("A")="EXPIRES",DIR("B")=$S($G(PSORX("EXPIRATION DATE"))]"":PSORX("EXPIRATION DATE"),1:"T+6M")
  1. S DIR(0)="D^NOW::EX",DIR("?")="Both the month and date are required." D ^DIR
  1. G:PSODIR("DFLG")!PSODIR("FIELD") EXPX
  1. S PSODIR("EXPIRATION DATE")=Y
  1. EXPX K X,Y
  1. Q
  1. ;
  1. MW(PSODIR) ;
  1. K DIR,DIC
  1. I $G(PSOBBC1("FROM"))="REFILL" D ;PAPI 441 BEGIN EXCLUDE-PARKED FROM PROMPT FOR INTERNET AND PHONE REFILLS
  1. . S DIR(0)="SA^W:WINDOW;M:MAIL",DIR("A")="MAIL/WINDOW: ",DIR("B")="MAIL"
  1. E D
  1. . S DIR(0)="52,11"
  1. . S DIR("B")=$S($G(PSORX("MAIL/WINDOW"))]"":PSORX("MAIL/WINDOW"),1:"WINDOW") ;PAPI 441 END
  1. D DIR G:PSODIR("DFLG")!PSODIR("FIELD") MWX
  1. I $G(Y(0))']"" S PSODIR("DFLG")=1 G MWX
  1. S PSODIR("MAIL/WINDOW")=Y,PSORX("MAIL/WINDOW")=Y(0)
  1. I $G(PSORX("EDIT"))]"",PSODIR("MAIL/WINDOW")'="W" K PSODIR("METHOD OF PICK-UP")
  1. MW1 G:PSODIR("MAIL/WINDOW")'="W"!('$P($G(PSOPAR),"^",12)) MWX
  1. S DIR(0)="52,35O"
  1. S:$G(PSORX("METHOD OF PICK-UP"))]"" DIR("B")=PSORX("METHOD OF PICK-UP")
  1. D DIR G:PSODIR("DFLG") MWX
  1. I X[U W !,"Cannot jump to another field ..",! G MW1
  1. S (PSODIR("METHOD OF PICK-UP"),PSORX("METHOD OF PICK-UP"))=Y
  1. MWX K X,Y
  1. Q
  1. ;
  1. FILLDT(PSODIR) ;
  1. K DIR,DIC
  1. S DIR("A")="FILL DATE",DIR("B")=$S($G(PSORX("FILL DATE"))]"":PSORX("FILL DATE"),1:"TODAY")
  1. S DIR(0)="D^"_$S($G(PSODIR("ISSUE DATE"))]"":PSODIR("ISSUE DATE"),1:DT)_$S($G(DUZ("AG"))="I":":"_DT_":EX",1:"::EX")
  1. S DIR("?",1)="The earliest fill date allowed is determined by the ISSUE DATE,"
  1. S DIR("?",2)="the FILL DATE cannot be before the ISSUE DATE."
  1. S DIR("?")="Both the month and date are required."
  1. D DIR G:$G(PSODIR("DFLG"))!$G(PSODIR("FIELD")) FILLDTX ;*526
  1. S PSODIR("FILL DATE")=Y
  1. X ^DD("DD") S PSORX("FILL DATE")=Y
  1. FILLDTX K X,Y
  1. Q
  1. ;
  1. CLERK(PSODIR) ;
  1. I $G(DUZ("AG"))'="I",$G(DUZ) S PSODIR("CLERK CODE")=DUZ,PSORX("CLERK CODE")=$P($G(^VA(200,DUZ,0)),"^") G CLERKX
  1. K DIR,DIC
  1. S DIR("A")="CLERK",DIR("B")=$S($G(PSORX("CLERK CODE"))]"":PSORX("CLERK CODE"),1:$P($G(^VA(200,DUZ,0)),"^",2)),DIR(0)="52,16"
  1. D DIR G:PSODIR("DFLG")!PSODIR("FIELD") CLERKX
  1. S PSODIR("CLERK CODE")=+Y,PSORX("CLERK CODE")=$P(Y,"^")
  1. CLERKX Q
  1. ;
  1. DIR ;
  1. S PSODIR("FIELD")=0
  1. G:$G(DIR(0))']"" DIRX
  1. D ^DIR K DIR,DIE,DIC,DA
  1. I $D(DUOUT)!($D(DTOUT))!($D(DIROUT)),$L($G(X))'>1!(Y="") S PSODIR("DFLG")=1 G DIRX
  1. I X[U,$L(X)>1 D JUMP
  1. DIRX K DIRUT,DTOUT,DUOUT,DIROUT,PSOX
  1. Q
  1. ;
  1. JUMP ;
  1. I $G(PSOEDIT)!($G(OR0)) S PSODIR("DFLG")=1 Q
  1. S X=$P(X,"^",2),DIC="^DD(52,",DIC(0)="QM" D ^DIC K DIC
  1. I Y=-1 S PSODIR("FIELD")=PSODIR("FLD") G JUMPX
  1. I $G(PSONEW1)=0 D JUMP^PSONEW1 G JUMPX
  1. I $G(PSONEW3)=0 D JUMP^PSONEW3 G JUMPX
  1. I $G(PSORENW3)=0 D JUMP^PSORENW3 G JUMPX
  1. JUMPX S X="^"_X
  1. Q
  1. ;Continued from PSODIR1, Tag REFOR, Added PSOCS set and changed G REFILLX references to a QUIT
  1. REFOR ;
  1. N PSOX
  1. I '$D(CLOZPAT) I $G(PSODRUG("DEA"))["A"&($G(PSODRUG("DEA"))'["B")!($G(PSODRUG("DEA"))["F")!($G(PSODRUG("DEA"))[1)!($G(PSODRUG("DEA"))[2) D Q
  1. .S VALMSG="No refills allowed on "_$S($G(PSODRUG("DEA"))["A":"this narcotic drug.",1:"this drug.")
  1. .W !,VALMSG,!
  1. .S:$D(PSODIR("FIELD")) PSODIR("FIELD")=0 S PSODIR("# OF REFILLS")=0
  1. ;
  1. ; Retrieving the Maximum Number of Refills allowed
  1. S PSOX=$$MAXNUMRF^PSOUTIL(+$G(PSODRUG("IEN")),+$G(PSODIR("DAYS SUPPLY")),+$G(PSODIR("PATIENT STATUS")),.CLOZPAT)
  1. ;
  1. I $D(CLOZPAT) D
  1. .S (PSODIR("# OF REFILLS"),PSODIR("N# REF"))=PSOX
  1. S DIR(0)="N^0:"_PSOX,DIR("A")="# OF REFILLS"
  1. S DIR("B")=$S($G(POERR)&($G(PSODIR("# OF REFILLS"))):PSODIR("# OF REFILLS"),$G(PSODIR("N# REF"))]"":PSODIR("N# REF"),$G(PSODIR("# OF REFILLS"))]"":PSODIR("# OF REFILLS"),1:PSOX)
  1. S DIR("?")="Enter a whole number. The maximum is set by the DAYS SUPPLY field."
  1. D DIR Q:$G(PSODIR("DFLG"))!$G(PSODIR("FIELD")) ;*526
  1. S (PSODIR("N# REF"),PSODIR("# OF REFILLS"))=Y
  1. Q