IMRSET1 ;ISC-SF.SEA/JLI,HCIOFO/FT/FAI-REPORTS FOR IMR PACKAGE ;07/17/00 16:12 ;;2.1;IMMUNOLOGY CASE REGISTRY;**3,5**;Feb 09, 1998 CHK ; Check If Immunology User I '$D(^XUSEC("IMRMGR",DUZ)) S IMRLOC="IMRSET1" D ACESSERR^IMRERR K IMRLOC D H^XUS Q INPT ;[IMR INPAT LIST] - Current Inpatients Report D CHK S DIR(0)="N^1:20:0",DIR("B")=1,DIR("A")="NUMBER OF COPIES TO BE PRINTED" D ^DIR K DIR I $D(DIRUT) D EXIT Q ;quit if question not answered S IMRCOPYS=+Y D IMRDEV^IMREDIT I POP D EXIT Q ;quit if no device selected I $D(IO("Q")) S ZTRTN="DQINPT^IMRSET1",ZTION=ION_";"_IOM_";"_IOSL,ZTSAVE("IMRCOPYS")="" D ^%ZTLOAD K ZTRTN,ZTION G EXIT DQINPT ; U IO K ^TMP($J) S:'$D(IMRCOPYS) IMRCOPYS=1 S IMRUT=0,IMRB=$$REPEAT^XLFSTR(" ",34),IMRERR=0 I $D(ZTQUEUED) S IMRION=$O(^IMR(158.9,1,7,0)) I IMRION>0,$D(^(IMRION,0)),$P(^(0),U)'="" S IMRERR=1 F IMRI=0:0 S IMRI=$O(^IMR(158.9,1,7,IMRI)) Q:IMRI'>0 S IMRION=+^(IMRI,0) I IMRION=IOS S IMRERR=0 Q K IMRI,IMRION I IMRERR F I=1:1:5 W !!!!,"THE ICR PACKAGE 'CURRENT INPATIENT LIST' CAN ONLY BE OUTPUT TO A SECURE PRINTER" I IMRERR K IMRERR D ^%ZISC Q S IMRJ=0,IMRSFY=$E(DT,1,3)_"1001" I IMRSFY>DT S IMRSFY=IMRSFY-10000 F IMRI=0:0 S IMRI=$O(^IMR(158,IMRI)) Q:IMRI'>0 S IMR0=^(IMRI,0),X=+IMR0 D XOR^IMRXOR S DFN=X D 51^VADPT S IMRWRD=$P(VAIP(5),U,2) I IMRWRD'="" D .S X=$P(IMR0,U,42),X=$S(X="":" ",1:X),^TMP($J,IMRWRD,VADM(1),$E(VA("BID")_" ",1,7))=DFN_U_X,IMRJ=IMRJ+1 .Q K VA,VADM,VAIP S X="N",%DT="T" D ^%DT K %DT S Y=Y_"00000",IMRDT=$E(Y,4,5)_"/"_$E(Y,6,7)_"/"_$E(Y,2,3)_" "_$E(Y,9,10)_":"_$E(Y,11,12),IMRUT=0 F IMRI=1:1:IMRCOPYS D .S IMRPG=0,A="" Q:IMRUT D HEDR Q:IMRUT W !!,"A TOTAL OF ",IMRJ," INPATIENTS LISTED" .F I=0:0 S A=$O(^TMP($J,A)) Q:A=""!(IMRUT) W ! S B="" F J=0:0 S B=$O(^TMP($J,A,B)) Q:B=""!(IMRUT) S C="" F L=0:0 S C=$O(^TMP($J,A,B,C)) Q:C=""!(IMRUT) D:($Y+3>IOSL) HEDR Q:IMRUT D SLOS .Q S:$D(ZTQUEUED) ZTREQ="@" D:'IMRUT EOP EXIT D ^%ZISC K ^TMP($J),%T,%Y,%ZIS,A,B,C,DFN,IMR0,IMRB,IMRFLG2,IMRI,IMRWRD,I,J,L,K,Y,POP,VA,VADM,X,IMRUT,X1,X2,IMRLOS,IMRYLOS,IMRX1,IMRX2,IMRSFY,IMRX0,IMRERR,IMRFLG,IMRJ,VAERR,VAROOT,DISYS,D,IMRDT,IMRCOPYS,IMRPG,IMRXX,IMRY K IMRAD,IMRDD,IMRDISP,IMRDSP,IMREC,IMRFB,IMROUT,IMRPTF,IMRST,IMRSUF Q SLOS ; S DFN=+^TMP($J,A,B,C),(IMRX0,IMRYLOS)=0,IMRX2="" F K=0:0 S K=$O(^DGPT("B",DFN,K)) Q:K'>0 I $D(^DGPT(K,0)) S IMRPTF=K D PTF^IMRUTL S X1=IMRSUF I 'IMRFB,IMREC'=2,$$CODE(X1) D .S (IMRX2,X2)=IMRAD .S (IMRX1,X1)=$S(+IMRDD'>0:0,1:+IMRDD) .Q:'IMRX2 .S IMRFLG2=0 .I 'IMRX1 D DBCHK^IMRLCNT(DFN,IMRX2,.IMRX1,.IMRFLG2) Q:IMRFLG2 S (IMRX1,X1)=$S('IMRX1:(DT+1),1:IMRX1) .D ^%DTC S:IMRX2>IMRX0 IMRLOS=$S(X>0:X,1:1),IMRX0=IMRX2 I IMRX1'0:X,1:1)+IMRYLOS Q CODE(IMRXX) ; Check Suffix For Validity S IMRY=$S(IMRXX="":1,IMRXX="9AA":1,IMRXX="9AB":1,IMRXX="9BB":1,IMRXX="BU":1,IMRXX="BV":1,IMRXX="A0":1,IMRXX="A4":1,IMRXX="A5":1,IMRXX="PA":1,1:0) Q IMRY HEDR ; Print Report Header I IOST["C-",IMRPG!(IMRI>1) W ! S DIR(0)="E" D ^DIR K DIR I 'Y S IMRUT=1 Q W:$Y>0 @IOF S IMRPG=IMRPG+1 I $E(IOST,1,2)'="C-",IMRI>1,IMRPG=1 W:$Y>0 @IOF W !!!,IMRDT,?27,"CURRENT INPATIENTS REPORT",?70,"Page ",IMRPG,!!,?23,"LAST",?55,"ADMISSION",?67,"CURR",?74,"YTD",!,"PATIENT",?23,"FOUR",?29,"CAT",?35,"WARD",?58,"DATE",?68,"LOS",?74,"LOS",! Q DQ ;[IMR QUEUED INPAT LIST] - Current Inpatient List (Queue This Option) G:$D(ZTQUEUED) DQINPT S DIR(0)="Y",DIR("A")="Do you REALLY want to queue this option to run DAILY",DIR("B")="NO" D ^DIR K DIR Q:'Y DQ2 ; S IMRFLG=0 I $O(^IMR(158.9,1,7,0))'>0 W !,$C(7),"Restricted printers must be defined in Site Parameters File For this Option",!! K IMRFLG Q I 'IMRFLG W !!,$C(7),"Select device from:" F I=0:0 S I=$O(^IMR(158.9,1,7,I)) Q:I'>0 I $D(^(I,0)) S X=+^(0) I $D(^%ZIS(1,X,0)) W !?5,$P(^(0),U) I 'IMRFLG W ! S %ZIS="NM" D ^%ZIS Q:POP I IO=IO(0) W !,$C(7),"The HOME device may not be selected as the device to QUEUE this option." G DQ2 F I=0:0 S I=$O(^IMR(158.9,1,7,I)) Q:I'>0 I $D(^(I,0)) S X=+^(0) I $D(^%ZIS(1,X,0)) I $P(ION,";",1)=$P(^(0),U) S IMRFLG=1 Q I 'IMRFLG W !,"Select one of the valid devices",$C(7),! G DQ2 S %DT="AEQXFT",%DT("A")="QUEUE this option to run WHEN: " D ^%DT G:Y'>0 DQEXIT S IMRDT=+Y,IMRFLG=0 I $D(^DIC(19.2,0)) D .K DIC,DIE,DLAYGO,DR,DA .S DIC(0)="ML",DIC="^DIC(19.2,",X="IMR QUEUED INPAT LIST",DLAYGO=19.2 .D ^DIC Q:Y'>0 .S DA=+Y,DIE="^DIC(19.2,",DR="2///"_IMRDT_";3////"_ION_";6///1D" D ^DIE .S IMRFLG=1 .Q I IMRFLG=1 W !!,"The Current Inpatient List is now scheduled to print each day at",! S X=$P(IMRDT,".",2)_"0000" W $E(X,1,2),":",$E(X,3,4)," on device ",ION,!,"beginning on ",$E(IMRDT,4,5),"/",$E(IMRDT,6,7),"/",$E(IMRDT,2,3),!! I IMRFLG=0 D .W !!,"Sorry, cannot schedule this option to run because the OPTION SCHEDULING",!,"file (19.2) doesn't exist.",!! .Q DQEXIT K %,%DT,%XX,%Y,%YY,D,D0,DA,DI,DIC,DIE,DQ,DR,I,IMRDT,IMRFLG,IMRSTN,POP,X,Y 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