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