[623] | 1 | PSNHFRM ;BIR/WRT-Report of Hospital Formulary drugs from DRUG file ; 10/18/98 17:48
|
---|
| 2 | ;;4.0; NATIONAL DRUG FILE;; 30 Oct 98
|
---|
| 3 | DVC K IO("Q"),%ZIS,POP,IOP S %ZIS="QM",%ZIS("B")="",%ZIS("A")="DEVICE: " D ^%ZIS G:POP DONE W:$E(IOST)'="P" !!,"This report must be run on a printer.",!! G:$E(IOST)'="P" DVC I POP K IOP,POP,IO("Q") Q
|
---|
| 4 | QUEUE I $D(IO("Q")) K IO("Q") S ZTRTN="ENQ^PSNHFRM" K ZTSAVE,ZTDTH,ZTSK S PSNDEV=ION_";"_IOST_";"_IOM_";"_IOSL,ZTSAVE("SF")="",ZTSAVE("PSNDEV")="",ZTSAVE("PSNANS")="",ZTDESC="Hospital Formulary Report",ZTIO=""
|
---|
| 5 | I D ^%ZTLOAD K MJT,%ZIS,POP,IOP,ZTSK D ^%ZISC Q
|
---|
| 6 | ENQ ;ENTRY POINT WHEN QUEUED
|
---|
| 7 | D LOOP
|
---|
| 8 | I $D(ZTQUEUED) D QUEUE1
|
---|
| 9 | U IO
|
---|
| 10 | ENQ1 S PSNPGCT=0,PSNPGLNG=IOSL-6
|
---|
| 11 | D TITLE,LOOP1 W @IOF G DONE
|
---|
| 12 | TITLE I $D(IOF),IOF]"" W @IOF S PSNPGCT=PSNPGCT+1
|
---|
| 13 | W !,PSNANS
|
---|
| 14 | S X="T" D ^%DT X ^DD("DD") W ?55,"Date printed: ",Y,!?55,"Page: ",PSNPGCT,!!
|
---|
| 15 | W !,"GENERIC/TRADE NAME"
|
---|
| 16 | W !,?3,"GENERIC/TRADE NAME",?46,"CLASS",?59,"PRICE / DISP UNT",!
|
---|
| 17 | F MJT=1:1:80 W "-"
|
---|
| 18 | Q
|
---|
| 19 | DONE S:$D(ZTQUEUED) ZTREQ="@" K ^TMP($J),PSNB,PSNFLG,PSNAME,PSNCL,PSNCLSS,PSNAR,PSNFF,PSNFG,PSNGG,PSNPR,PSNLGN,PSNPGCT,PSNPGLNG,ZTRTN,Y,PSNDEV,MJT,PSNLOC,PSNKK,PSNPRIC,PSNPRICE
|
---|
| 20 | K PSNANS,SF,DU,PSNANSR,PSNTRD,PSNUM,PSNDATE,X,IOP,POP,IO("Q") W:$Y @IOF D ^%ZISC
|
---|
| 21 | Q
|
---|
| 22 | QUEUE1 S IOP=PSNDEV F D ^%ZIS Q:'POP H 20
|
---|
| 23 | Q
|
---|
| 24 | LOOP F PSNB=0:0 S PSNB=$O(^PSDRUG(PSNB)) Q:'PSNB S PSNAME=$P(^PSDRUG(PSNB,0),"^",1),PSNCLSS=$P(^PSDRUG(PSNB,0),"^",2) S:PSNCLSS']"" PSNCLSS="No Class" I $P(^PSDRUG(PSNB,0),"^",9)'=1 D CHECK
|
---|
| 25 | Q
|
---|
| 26 | GETDATE I '$D(^PSDRUG(PSNB,"I")) D GETNODE,GETPRIC
|
---|
| 27 | I $D(^PSDRUG(PSNB,"I")) S PSNDATE=$P(^PSDRUG(PSNB,"I"),"^") D NOW^%DTC I X<PSNDATE D GETNODE,GETPRIC
|
---|
| 28 | Q
|
---|
| 29 | GETNODE K X I '$D(^PSDRUG(PSNB,660)) S PSNPRICE="No Price /" D GETRADE,GETRADE1
|
---|
| 30 | Q
|
---|
| 31 | GETPRIC I $D(^PSDRUG(PSNB,660)) S PSNPRIC=$P(^PSDRUG(PSNB,660),"^",6),DU=$P(^PSDRUG(PSNB,660),"^",8) D PRICE1,PRICE2
|
---|
| 32 | Q
|
---|
| 33 | PRICE1 I PSNPRIC']"" S PSNPRICE="No Price"_" / "_DU D GETRADE,GETRADE1,BUILDIT
|
---|
| 34 | Q
|
---|
| 35 | PRICE2 I PSNPRIC]"" S PSNPRICE=PSNPRIC D PSNPR1,GETRADE,GETRADE1,BUILDIT
|
---|
| 36 | Q
|
---|
| 37 | GETRADE1 I '$O(^PSDRUG(PSNB,1,0)) K PSNAR S PSNTRD="ZZXZZXZZX" S PSNAR(1,PSNAME,PSNTRD)=""
|
---|
| 38 | Q
|
---|
| 39 | GETRADE I $O(^PSDRUG(PSNB,1,0)) K PSNAR F PSNUM=0:0 S PSNUM=$O(^PSDRUG(PSNB,1,PSNUM)) Q:'PSNUM D TRADE1,TRADE2,TRADE3
|
---|
| 40 | Q
|
---|
| 41 | TRADE1 I $P(^PSDRUG(PSNB,1,PSNUM,0),"^",3)=1 S PSNTRD="ZZXZZXZZX" S PSNAR(3,PSNAME,"ZZXZZXZZX")=""
|
---|
| 42 | Q
|
---|
| 43 | TRADE2 I $P(^PSDRUG(PSNB,1,PSNUM,0),"^",3)=0 S PSNTRD=$P(^PSDRUG(PSNB,1,PSNUM,0),"^",1) S PSNAR(1,PSNAME,PSNTRD)=""
|
---|
| 44 | Q
|
---|
| 45 | TRADE3 I $P(^PSDRUG(PSNB,1,PSNUM,0),"^",3)="" S PSNTRD="ZZXZZXZZX" S PSNAR(2,PSNAME,"ZZXZZXZZX")=""
|
---|
| 46 | Q
|
---|
| 47 | BUILDIT F PSNKK=1,2,3 D BUILDIT1
|
---|
| 48 | Q
|
---|
| 49 | BUILDIT1 S PSNFF="" F S PSNFF=$O(PSNAR(PSNKK,PSNFF)) Q:PSNFF="" S PSNGG="" F S PSNGG=$O(PSNAR(PSNKK,PSNFF,PSNGG)) Q:PSNGG="" D BUILD
|
---|
| 50 | Q
|
---|
| 51 | BUILD S PSNFG=0 I PSNFG=0 S:'$D(^TMP($J,"PSNF",PSNFF)) ^TMP($J,"PSNF",PSNFF,PSNGG,PSNCLSS,PSNPRICE)="" S:PSNGG'="ZZXZZXZZX" ^TMP($J,"PSNF",PSNGG,PSNFF,PSNCLSS,PSNPRICE)=""
|
---|
| 52 | Q
|
---|
| 53 | LOOP1 S PSNLGN="" F S PSNLGN=$O(^TMP($J,"PSNF",PSNLGN)) Q:PSNLGN="" S PSNFLG=1 D LOOP2
|
---|
| 54 | Q
|
---|
| 55 | LOOP2 S PSNLOC="" F S PSNLOC=$O(^TMP($J,"PSNF",PSNLGN,PSNLOC)) Q:PSNLOC="" D LOOP3
|
---|
| 56 | Q
|
---|
| 57 | LOOP3 S PSNCL="" F S PSNCL=$O(^TMP($J,"PSNF",PSNLGN,PSNLOC,PSNCL)) Q:PSNCL="" D LOOP4
|
---|
| 58 | Q
|
---|
| 59 | LOOP4 S PSNPR="" F S PSNPR=$O(^TMP($J,"PSNF",PSNLGN,PSNLOC,PSNCL,PSNPR)) Q:PSNPR="" D WRITE
|
---|
| 60 | Q
|
---|
| 61 | WRITE D:$Y>PSNPGLNG TITLE W:PSNFLG !,PSNLGN,! S PSNFLG=0 W ?3 W:PSNLOC'="ZZXZZXZZX" PSNLOC W:PSNLOC="ZZXZZXZZX" " " W ?46,PSNCL,?59,PSNPR,!
|
---|
| 62 | Q
|
---|
| 63 | DATE K ^TMP($J,"PSNDT") F PSNB=0:0 S PSNB=$O(^PSDRUG(PSNB)) Q:'PSNB D DATE0
|
---|
| 64 | Q
|
---|
| 65 | DATE0 I '$D(^PSDRUG(PSNB,"I")) S ^TMP($J,"PSNDT",PSNB)=""
|
---|
| 66 | I $D(^PSDRUG(PSNB,"I")) S PSNDATE=$P(^PSDRUG(PSNB,"I"),"^") D NOW^%DTC I X<PSNDATE S ^TMP($J,"PSNDT",PSNB)="" K PSNDATE,X
|
---|
| 67 | Q
|
---|
| 68 | PSNPR1 S PSNPRICE=$J(PSNPRIC,3,3),PSNPRICE=PSNPRICE_" / "_DU
|
---|
| 69 | Q
|
---|
| 70 | CHECK I SF=0,$P(^PSDRUG(PSNB,0),"^",3)'["S" D GETDATE
|
---|
| 71 | I SF=1 D GETDATE
|
---|
| 72 | Q
|
---|