IMRRXS ;HCIOFO/NCA,FT/FAI-Utilization Report On Selected Drugs ;07/17/00 17:07 ;;2.1;IMMUNOLOGY CASE REGISTRY;**5**;Feb 09, 1998 ;[IMR SPECFC RX LIST] - Drug Specific Utilization Report I '$D(^XUSEC("IMRMGR",DUZ)) S IMRLOC="IMRRXS" D ACESSERR^IMRERR,H^XUS K IMRLOC K ^TMP($J) ASK D ^IMRDATE Q:$G(IMRHNBEG)="" S IMRSD=IMRHNBEG,IMRED=IMRHNEND ;K %DT S %DT="AQEXP",%DT("A")=" Start Date for Period: " D ^%DT K %DT G:Y'>0 KILL S IMRSD=Y,%DT="AQEXP",%DT("A")=" End Date for Period: " D ^%DT K %DT G:Y'>0 KILL S IMRED=Y I IMRED0 S IMRDLIST(+Y)="" S DIC("A")="Select ANOTHER DRUG GENERIC NAME: " G DRUG K DIC G:'$O(IMRDLIST(0)) KILL S X=$$RX1589^IMRUTL() ;get pharmacy archive date from File 158.9 I X,X'IMRED D ASKN I $D(DIRUT) D KILL Q I X,X'IMRED D ASKN I $D(DIRUT) D KILL Q D IMRDEV^IMREDIT G:POP KILL I $D(IO("Q")) D SAVE G KILL U IO D DQ D ^%ZISC K %ZIS,IOP G KILL DQ ; Process Selected Drugs Utility Report S (IMRPG,IMRUT)=0 D NOW^%DTC S IMRDTE=%,Y=IMRDTE D DD^%DT S IMRDTE=Y S IMRD="FOR THE PERIOD "_$E(IMRSD,4,5)_"/"_$E(IMRSD,6,7)_"/"_$E(IMRSD,2,3)_" TO "_$E(IMRED,4,5)_"/"_$E(IMRED,6,7)_"/"_$E(IMRED,2,3) S IMRX="DRUG SPECIFIC UTILIZATION REPORT" D HEDR F IMRRL=0:0 S IMRRL=$O(^IMR(158,IMRRL)) Q:IMRRL<1 S X=+^(IMRRL,0) D ^IMRXOR S IMRDFN=X I $D(^DPT(IMRDFN,0)) S DFN=IMRDFN D NS^IMRCALL K DFN D C1 D RXPRNT I '$D(^TMP($J)) W !!,"No data for this report.",! D:'IMRUT EOP S:$D(ZTQUEUED) ZTREQ="@" KILL K C,C1,DIRUT,IMRCL,IMRDFN,IMRDR,IMRI,IMRJ,IMRN,IMRN1,IMRQ,IMRRP,IMRXX1,IMRRXD,IMRRXDR,IMRRXD1,IMRUT,IMRY,IMRSD,IMRED,IMRX,IMRD,IMRR,IMRFLG,IMRNAM,IMRSSN,IMRSTN,A,DISYS,IMRYES,IMRDL,IMRDSUP K %,%DT,%I,I,DIC,DIR,DTOUT,DUOUT,IMRDTE,IMRRI,IMREF,IMRPG,IMREC,IMRRL,IMRPS,IMRUCST,IMREXP,IMRDST,IMRDU,IMRAR,J,K,M,N,POP,Q,X,X1,X2,Y,Z,Z1,^TMP($J),VAERR K NC,NF,NFT,NQ,NQT,IMRDRG,IMRFILDT,IMRRCOST,IMRUC,IMRDLIST Q ASKN ; Ask the User Whether they want to Query the National S IMRYES=0 D ASKQ1^IMRNTL Q:'IMRYES S IMRDL="" D ASKQ2^IMRNTL Q:IMRDL="" D MSG^IMRNTL,PHS^IMRNTL1 Q C1 ; Get the Outpatient Pharmacy Data F IMRRP=0:0 S IMRRP=$O(^PS(55,IMRDFN,"P","A",IMRRP)) Q:IMRRP<1 I IMRRP'IMRSD,IMRFILDT'>IMRED S IMRY=1,^(IMRDFN)=$S($D(^TMP($J,"IMRRX",IMRXX1,IMRNAM,IMRDFN)):^(IMRDFN),1:0)+1,^("Q")=$S($D(^(IMRDFN,"Q")):^("Q"),1:0)+IMRQ I IMRY S ^("C")=$S($D(^TMP($J,"IMRRX",IMRXX1,IMRNAM,IMRDFN,"C")):^("C"),1:0)+(IMRQ*IMRUCST) D RXF^IMRUTL ;get refill data S IMRN="" F S IMRN=$O(IMRAR(52.1,IMRN)) Q:IMRN="" S IMRRXD=+$G(IMRAR(52.1,IMRN,.01,"I")) I IMRRXD>IMRSD,IMRRXD'>IMRED D C3 Q C3 ; S IMRQ=$G(IMRAR(52.1,IMRN,1,"I")),IMRRCOST=$G(IMRAR(52.1,IMRN,1.2,"I")) S:'IMRRCOST IMRRCOST=IMRUCST ;if no refill cost set it to unit price of drug S ^(IMRDFN)=$S($D(^TMP($J,"IMRRX",IMRXX1,IMRNAM,IMRDFN)):^(IMRDFN),1:0)+1 S ^("Q")=$S($D(^TMP($J,"IMRRX",IMRXX1,IMRNAM,IMRDFN,"Q")):^("Q"),1:0)+IMRQ S ^("C")=$S($D(^TMP($J,"IMRRX",IMRXX1,IMRNAM,IMRDFN,"C")):^("C"),1:0)+(IMRQ*IMRRCOST) Q SAVE ; ZTSAVE the variables Used S ZTRTN="DQ^IMRRXS",ZTIO=ION_";"_IOM_";"_IOSL,ZTSAVE("IMRSD")="",ZTSAVE("IMRED")="",ZTSAVE("IMRDLIST(")="",ZTDESC="Selected RX Activity" D ^%ZTLOAD D ^%ZISC K IO("Q"),ZTRTN,ZTIO,ZTSAVE,ZTDESC,ZTSK G KILL Q EOP ; Check End of Page Q:$D(IO("S")) ;quit if a slave device I IOST["C-" K DIR W ! S DIR(0)="E" D ^DIR K DIR I 'Y S IMRUT=1 Q RXPRNT ; print output F I=0:0 S I=$O(^TMP($J,"IMRRX",I)) Q:I'>0 I $D(^PSDRUG(I,0)) D PSDRUG,RX Q PSDRUG ; Get File 50 data (^PSDRUG global) S IMRDRG=$$GET1^DIQ(50,I,.01,"I") ;generic drug name S IMRUC=+$$GET1^DIQ(50,I,16,"I") ;price per dispensed unit Q RX ; S N=0,NQT=0,NFT=0,A="" F J=0:0 S A=$O(^TMP($J,"IMRRX",I,A)) Q:A="" F K=0:0 S K=$O(^TMP($J,"IMRRX",I,A,K)) Q:K'>0 S N=N+1,NFT=NFT+^(K),NQT=NQT+^(K,"Q") W !,IMRDRG,?45,"Current Unit Cost: $ ",$S(IMRUC>0:$J(IMRUC,0,4),1:"NOT ENTERED"),!?5,N," patients",$J(NFT,8)," fills",$J(NQT,8)," Dispensed $ ",$J(IMRUC*NQT,0,2)," Current Value",! S A="" F J=0:0 S A=$O(^TMP($J,"IMRRX",I,A)) Q:A=""!(IMRUT) F K=0:0 S K=$O(^TMP($J,"IMRRX",I,A,K)) Q:K'>0!(IMRUT) S NF=^(K),NQ=^(K,"Q"),NC=NQ*IMRUC,DFN=K D NS^IMRCALL K DFN D .I $Y+4>IOSL D EOP Q:IMRUT D HEDR .W !?5,A,?37,IMRSSN,$J(NF,8),$J(NQ,8),$J(NC,12,2) .Q W !!?12,"TOTAL",?46,$J(NFT,8),$J(NQT,8),$J(IMRUC*NQT,12,2) Q HEDR ; S IMRPG=IMRPG+1 W:$Y>0 @IOF W:IOST'["C-" ! W !,IMRDTE,?(IOM-$L(IMRX)\2),IMRX,?(IOM-8),"Page ",IMRPG,!?(IOM-$L(IMRD)\2),IMRD,! Q