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

PSODEARA.m

Go to the documentation of this file.
  1. PSODEARA ;WILM/BDB - Print active prescribers with privledges; ;9/28/21 12:59
  1. ;;7.0;OUTPATIENT PHARMACY;**545,731**;DEC 1997;Build 18
  1. ;External reference to VA(200 is supported by DBIA 10060
  1. ;Reference DBIA 2343 - $$ACTIVE^XUSER
  1. ;Reference DBIA 2171 - PARENT^XUAF4()
  1. ;----------------------------------------------------------------
  1. ;
  1. Q
  1. ;
  1. PRIVSRT ; Print active prescribers with privledges
  1. ;
  1. ;ePCS on demand report
  1. N PSONS,RHD,RT,PSOION D INIT K %DT,DTOUT,ZPR,POP
  1. K IOP,%ZIS S PSOION=ION,%ZIS="MQ" D ^%ZIS I POP S IOP=PSOION D ^%ZIS G EXIT
  1. AUTPRT ;
  1. I $G(ZPR)!$D(IO("Q")) D G EXIT
  1. . N ZTRTN,ZTDESC,ZTIO,ZTSAVE,ZTDTH,ZTSK,ZTREQ,ZTQUEUED
  1. . S:$G(ZPR) ZTIO="`"_ZPR,ZTDTH=$H S ZTRTN="OEN^PSODEARA"
  1. . S ZTSAVE("PSONS")="",ZTSAVE("RHD")="",ZTSAVE("RT")="",ZTSAVE("FSP")=""
  1. . D ^%ZTLOAD W:$D(ZTSK) !,"Report is Queued to print !!"
  1. OEN ;
  1. U IO
  1. N PAGE,LINE,LEN,XTV,ARR,I,J,RHD,HCL,FSP,RDT,DV,FE,NPIEN,RET,PSOSPS
  1. N DV,ND,DAT,IEN,DVS,CNT,NDEA,DEA,DEAVA,PSOSRC,PSOSRCI K DIRUT,DTOUT
  1. S CNT=0
  1. K ^XTMP(PSONS,$J),^TMP(PSONS,$J)
  1. S NPIEN=.99 F S NPIEN=$O(^VA(200,NPIEN)) Q:'NPIEN D
  1. . I '$$ACTIVE^XUSER(NPIEN) Q
  1. . K DAT D DEALIST^PSOEPUT(.DAT,NPIEN)
  1. . I '$D(DAT) D
  1. . . S DAT(1)="^^^^^^^^^^^^^"
  1. . S NDEA=0 F S NDEA=$O(DAT(NDEA)) Q:'NDEA D
  1. .. S DAT(NDEA)=$$UP^XLFSTR(DAT(NDEA))
  1. .. D DATCHK ;Check for no new DEA numbers, use 200 schedules
  1. .. I DAT(NDEA)?1"^"."^" Q ;Quit if no data
  1. .. S CNT=CNT+1
  1. .. S ^TMP(PSONS,$J,CNT)=NPIEN_"^"_DAT(NDEA)
  1. .. S (DV,DVS)=0 F S DV=$O(^VA(200,NPIEN,2,DV)) Q:('DV)&(DVS>0) S:'DV DV=999999 D
  1. ... S DVS=DVS+1
  1. ... S ^XTMP(PSONS,$J,DV,CNT)=""
  1. ... S:$O(^VA(200,NPIEN,2,DV)) ^XTMP(PSONS,$J,"Z",NPIEN)=""
  1. S RHD="PRESCRIBERS WITH PRIVILEGES"
  1. S HCL=(80-$L(RHD))\2,RDT=$$UP^XLFSTR($$FMTE^XLFDT($$NOW^XLFDT,"1M"))
  1. S PAGE=1,$P(LINE,"-",79)="",$P(FSP," ",25)=""
  1. D HD
  1. I '$D(^XTMP(PSONS,$J)) D G QT
  1. . W !!," *************** NO MATCHING DATA ***************",!!
  1. S DV="" F S DV=$O(^XTMP(PSONS,$J,DV)) Q:'DV D G:$D(DIRUT) QT
  1. . K ARR S LEN="DIVISION: "_$S(DV=999999:"NO DIVISION",1:$$GET1^DIQ(4,DV,.01))
  1. . W !!,?9,LEN
  1. . S ND=0 F S ND=$O(^XTMP(PSONS,$J,DV,ND)) Q:'ND D Q:$D(DIRUT)
  1. .. S DAT=^TMP(PSONS,$J,ND),NPIEN=$P(DAT,"^"),DEA=$P(DAT,"^",2)
  1. .. I $P(DAT,"^",3)=.03 Q ;P731 detox/x-waiver removal
  1. .. I $P(DAT,"^",9,14)'["Y" Q ;check for a schedule
  1. .. S ARR(NPIEN)=""
  1. .. S PSOSPS=$G(^VA(200,NPIEN,"PS"))
  1. .. W !,$E($$GET1^DIQ(200,NPIEN,.01)_FSP,1,25),?32,$E(NPIEN_FSP,1,12),?45,$E(DEA_FSP,1,13),?60,$E($P(PSOSPS,U,3)_FSP,1,15)
  1. .. W ?72,$E($S($P(DAT,"^",15)="":"NO",1:$P(DAT,"^",15))_FSP,1,5)
  1. .. W !," SCHEDULE II:",?29,$S($P(DAT,"^",9)="":"NO",1:$P(DAT,"^",9))
  1. .. W !," SCHEDULE II NON:",?29,$S($P(DAT,"^",10)="":"NO",1:$P(DAT,"^",10))
  1. .. W !," SCHEDULE III:",?29,$S($P(DAT,"^",11)="":"NO",1:$P(DAT,"^",11))
  1. .. W !," SCHEDULE III NON:",?29,$S($P(DAT,"^",12)="":"NO",1:$P(DAT,"^",12))
  1. .. W !," SCHEDULE IV:",?29,$S($P(DAT,"^",13)="":"NO",1:$P(DAT,"^",13))
  1. .. W !," SCHEDULE V:",?29,$S($P(DAT,"^",14)="":"NO",1:$P(DAT,"^",14))
  1. .. S PSOSRC="",PSOSRCI=$P(DAT,"^",8) D W PSOSRC
  1. ... I PSOSRCI']"" S PSOSRC=" (Source: File #200)" Q
  1. ... S PSOSRC=$$GET1^DIQ(8991.9,PSOSRCI,.07)
  1. ... I PSOSRC="INDIVIDUAL" S PSOSRC=" (Source: File #8991.9)" Q
  1. ... I PSOSRC="INSTITUTIONAL" S PSOSRC=" (Source: File #200)" Q
  1. .. D:($Y+4)>IOSL HD
  1. . S J=0 F S J=$O(ARR(J)) Q:'J D:$D(^XTMP(PSONS,$J,"Z",J)) FT
  1. QT ;
  1. K DIR,DTOUT,DUOUT,DIRUT
  1. D EXIT
  1. Q
  1. ;
  1. EXIT K ^TMP(PSONS,$J),^XTMP(PSONS,$J)
  1. D ^%ZISC S:$D(ZTQUEUED) ZTREQ="@"
  1. Q
  1. ;
  1. HD ;
  1. I PAGE>1,$E(IOST)="C" S DIR(0)="E",DIR("A")=" Press Return to Continue or ^ to Exit" D ^DIR K DIR
  1. Q:$D(DIRUT)!($D(DTOUT))
  1. W @IOF
  1. W !,RHD,?50,RDT,?72,"PAGE "_PAGE S PAGE=PAGE+1
  1. W !,"NAME",?32,"DUZ",?45,"DEA #",?60,"VA#",?73,"INPAT"
  1. W !,?45,"(E)=EXPIRED"
  1. W !,LINE
  1. Q
  1. ;
  1. FT ;
  1. S LEN="**Note: This user is defined under these divisions"
  1. W !!,LEN
  1. W ! F I=1:1:$L(LEN) W "-"
  1. S (DAT,ND)=0 F S ND=$O(^VA(200,J,2,ND)) Q:'ND D
  1. . S DAT=DAT+1 W ! W:DAT=1 $$GET1^DIQ(200,J,.01) W ?32,$$GET1^DIQ(4,ND,.01)
  1. I $E(IOST)="C" S DIR(0)="E" D ^DIR K DIR
  1. Q
  1. ;
  1. INIT ;
  1. S PSONS="PSODEAA",$P(FSP," ",25)=""
  1. S RHD="PRINT PRESCRIBERS WITH PRIVILEGES"
  1. S ZPR=""
  1. S RT=$$NOW^XLFDT
  1. K ^XTMP(PSONS,$J),^TMP(PSONS,$J)
  1. Q
  1. ;
  1. GUI ;
  1. N PSONS,ZPR,RHD,RT,PSOSCR,BDT,EDT,PSOION
  1. D INIT K %DT,DTOUT,ZPR
  1. ;
  1. ;I $G(ECPTYP)="E" D EXPORT,^EPCSKILL Q ; ePCS not exporting to Excel at this point
  1. S PSOSCR=$S($E($G(IOST),1,2)="C-":1,1:0)
  1. ;
  1. D OEN ; Run Report
  1. ;I $D(EPCSGUI) D ^EPCSKILL Q // Kill variables...
  1. Q
  1. ;
  1. DATCHK ;Check for no new DEA numbers, use 200 schedules
  1. N X,EXPDTFM,NPSCHED,RET,Y
  1. S RET=""
  1. S X=$P(DAT(NDEA),"^",1) I X="" D
  1. . ; Use #200 schedules
  1. . K NPSCHED D GETS^DIQ(200,NPIEN_",","55.1:55.6","E","NPSCHED")
  1. . S RET=RET_NPSCHED(200,NPIEN_",",55.1,"E")_"^" ; SCHEDULE II NARCOTIC
  1. . S RET=RET_NPSCHED(200,NPIEN_",",55.2,"E")_"^" ; SCHEDULE II NON-NARCOTIC
  1. . S RET=RET_NPSCHED(200,NPIEN_",",55.3,"E")_"^" ; SCHEDULE III NARCOTIC
  1. . S RET=RET_NPSCHED(200,NPIEN_",",55.4,"E")_"^" ; SCHEDULE III NON-NARCOTIC
  1. . S RET=RET_NPSCHED(200,NPIEN_",",55.5,"E")_"^" ; SCHEDULE IV
  1. . S RET=RET_NPSCHED(200,NPIEN_",",55.6,"E")_"^" ; SCHEDULE V
  1. . S DAT(NDEA)=$P(DAT(NDEA),"^",1,7)_"^"_RET_"^"_$P(DAT(NDEA),"^",14)
  1. . S DAT(NDEA)=$$UP^XLFSTR(DAT(NDEA))
  1. S X=$P(DAT(NDEA),"^",5) I X]"" D
  1. . D ^%DT S EXPDTFM=Y Q:Y<0
  1. . I EXPDTFM'<DT Q
  1. . S:$P(DAT(NDEA),"^",1)]"" $P(DAT(NDEA),"^",1)=$P(DAT(NDEA),"^",1)_"(E)"
  1. Q
  1. ;