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

ALPBSWRD.m

Go to the documentation of this file.
ALPBSWRD ;OIFO-DALLAS MW,SED,KC - display BCBU records for patients on a selected ward ;01/01/03
 ;;3.0;BAR CODE MED ADMIN;**8**;Mar 2004
 ; 
 F  D  Q:$D(DIRUT)
 .W !!,"Inpatient Pharmacy Orders for a selected ward"
 .S DIR(0)="FAO^2:10"
 .S DIR("A")="Select WARD: "
 .S DIR("?")="^D WARDLIST^ALPBUTL(""C"")"
 .D ^DIR K DIR
 .I $D(DIRUT) Q
 .D WARDSEL^ALPBUTL(Y,.ALPBSEL)
 .I +$G(ALPBSEL(0))=0 D  Q
 ..W $C(7)
 ..W "  ??"
 ..D WARDLIST^ALPBUTL("C")
 ..K ALPBSEL
 .I +$G(ALPBSEL(0))=1 D
 ..S ALPBWARD=ALPBSEL(1)
 ..W "   ",ALPBWARD
 ..K ALPBSEL
 .I +$G(ALPBSEL(0))>1 D  I $D(DIRUT) K DIRUT,DTOUT,X,Y Q
 ..S ALPBX=0
 ..F  S ALPBX=$O(ALPBSEL(ALPBX)) Q:'ALPBX  W !?2,$J(ALPBX,2),"  ",ALPBSEL(ALPBX)
 ..K ALPBX
 ..S DIR(0)="NA^1:"_ALPBSEL(0)
 ..S DIR("A")="Select Ward from the list (1-"_ALPBSEL(0)_"): "
 ..W ! D ^DIR K DIR
 ..I $D(DIRUT) K ALPBSEL Q
 ..S ALPBWARD=ALPBSEL(+Y)
 .;
 .; all or just current orders?...
 .S DIR(0)="SA^A:ALL;C:CURRENT"
 .S DIR("A")="[A]LL or [C]URRENT orders? "
 .S DIR("B")="CURRENT"
 .S DIR("?")="ALL=all orders, CURRENT=all orders not expired or inactive"
 .W ! D ^DIR K DIR
 .I $D(DIRUT) K ALPBWARD,DIRUT,DTOUT,X,Y Q
 .S ALPBOTYP=Y
 .;
 .; BCMA Med Log info for how many days?...
 .S X1=$$DT^XLFDT()
 .S X2=-3
 .D C^%DTC
 .S DIR(0)="DA^::EXP"
 .S DIR("B")=$$FMTE^XLFDT(X)
 .S DIR("A")="Select beginning date for BCMA Medication Log history: "
 .S DIR("A",1)=" "
 .S DIR("?")="want only current day's entries, enter 'T' for today."
 .S DIR("?",1)="Select a date (in the past) from which you wish to see"
 .S DIR("?",2)="any BCMA Medication Log entries for each of this patient's"
 .S DIR("?",3)="orders.  The default date shown is 3 days ago.  If you"
 .D ^DIR K DIR
 .I $D(DIRUT) K ALPBOTYP,DIRUT,DTOUT,X,Y Q
 .S ALPBMLOG=Y
 .;
 .S %ZIS="Q"
 .W ! D ^%ZIS K %ZIS
 .I POP D  Q
 ..W $C(7)
 ..K ALPBWARD,POP
 .;
 .; output not queued...
 .I '$D(IO("Q")) D
 ..U IO
 ..D DISP
 ..I IO'=IO(0) D ^%ZISC
 .;
 .; set up the Task...
 .I $D(IO("Q")) D
 ..S ZTRTN="DISP^ALPBHL3"
 ..S ZTDESC="PSB INPT PHARM ORDERS FOR WARD "_ALPBWARD
 ..S ZTSAVE("ALPBWARD")=""
 ..S ZTSAVE("ALPBOTYP")=""
 ..S ZTSAVE("ALPBMLOG")=""
 ..S ZTIO=ION
 ..D ^%ZTLOAD
 ..D HOME^%ZIS
 ..W !,$S($G(ZTSK):"Task number "_ZTSK_" queued.",1:"ERROR -- NOT QUEUED!")
 ..K IO("Q"),ZTSK
 .K ALPBOTYP,ALPBWARD
 K DIRUT,DTOUT,X,Y
 Q
 ;
DISP ; output entry point...
 I $E(IOST)="C" W @IOF
 ;
 ; set report date...
 S ALPBRDAT=$S($G(ALPBOTYP)="C":$$NOW^XLFDT(),1:"")
 ;
 ; loop through ward cross reference in 53.7...
 S ALPBPTN=""
 F  S ALPBPTN=$O(^ALPB(53.7,"AW",ALPBWARD,ALPBPTN)) Q:ALPBPTN=""!($D(DIRUT))  D
 .S (ALPBIEN,ALPBPG)=0
 .F  S ALPBIEN=$O(^ALPB(53.7,"AW",ALPBWARD,ALPBPTN,ALPBIEN)) Q:'ALPBIEN!($D(DIRUT))  D
 ..S ALPBPT(0)=^ALPB(53.7,ALPBIEN,0)
 ..M ALPBPT(1)=^ALPB(53.7,ALPBIEN,1)
 ..I ALPBPG=0 D PAGE
 ..D ORDS^ALPBUTL(ALPBIEN,ALPBRDAT,.ALPBORDS)
 ..I +ALPBORDS(0)=0 D  Q
 ...W !!,">> NO ORDERS FOUND <<"
 ...K ALPBORDS,ALPBPT
 ..S ALPBOIEN=0
 ..F  S ALPBOIEN=$O(ALPBORDS(ALPBOIEN)) Q:'ALPBOIEN!($D(DIRUT))  D
 ...M ALPBDATA=^ALPB(53.7,ALPBIEN,2,ALPBOIEN)
 ...;
 ...D F80^ALPBFRM2(.ALPBDATA,ALPBMLOG,.ALPBFORM)
 ...I $Y+ALPBFORM(0)=IOSL!($Y+ALPBFORM(0)>IOSL) D  Q:$D(DIRUT)
 ....S DIR(0)="E"
 ....D ^DIR K DIR
 ....I $D(DIRUT) K ALPBDATA,ALPBFORM,ALPBPT Q
 ....D PAGE
 ...;
 ...S ALPBX=0
 ...F  S ALPBX=$O(ALPBFORM(ALPBX)) Q:'ALPBX  W !,ALPBFORM(ALPBX)
 ...K ALPBDATA,ALPBFORM,ALPBX
 ...I +$O(ALPBORDS(ALPBOIEN))=0 D
 ....S ALPBX="END OF "_$S(ALPBOTYP="A":"ALL",1:"CURRENT")_" ORDERS FOR "_ALPBPTN
 ....S ALPBX=$$CJ^XLFSTR(ALPBX,80,"-")
 ....W !,ALPBX
 ....K ALPBX
 ....S DIR(0)="E"
 ....D ^DIR K DIR
 ..K ALPBOIEN,ALPBORDS,ALPBPT
 .K ALPBIEN,ALPBPG
 I $E(IOST)="C" W @IOF
 K ALPBMLOG,ALPBOTYP,ALPBPTN,ALPBRDAT,DIRUT,DTOUT,X,Y
 I $D(ZTQUEUED) S ZTREQ="@"
 Q
 ;
PAGE ; screen header for patient...
 W @IOF
 S ALPBPG=ALPBPG+1
 D HDR^ALPBFRM2(.ALPBPT,ALPBOTYP,ALPBPG,.ALPBHDR)
 F I=1:1:ALPBHDR(0) W !,ALPBHDR(I)
 K ALPBHDR
 Q
 ;
CONT ; continue?...
 I $E(IOST)="C" D
 .S DIR(0)="E"
 .D ^DIR K DIR
 I '$D(DIRUT) D
 .S ALPBPG=ALPBPG+1
 .D PAGE
 Q