- ECXLBBC ;ALB/MRY - LBB Extract Audit Comparative Report ;2/5/15 15:25
- ;;3.0;DSS EXTRACTS;**120,149,153,154**;Dec 22, 1997;Build 13
- ;
- EN ;entry point for LBB extract audit comparative report
- N ECSD,ECED,ECSDN,ECEDN,ECXPORT,CNT ;154
- D SETUP^ECXLBB1 I ECFILE="" Q ;149
- N %X,%Y,%DT,X,Y,DIC,DA,DR,DIQ,DIR,DIRUT,DTOUT,DUOUT,SCRNARR,REPORT
- N SCRNARR,ECXERR,ECXHEAD,ECXAUD,ECXARRAY,STATUS,FLAG,ECXALL,TMP
- N ZTQUEUED,ZTSTOP
- S SCRNARR="^TMP(""ECX"",$J,""SCRNARR"")"
- K @SCRNARR@("DIVISION")
- S (ECXERR,FLAG)=0
- ;ecxaud=0 for 'extract' audit
- S ECXHEAD="LBB",ECXAUD=0
- W !!,"Setup for ",ECXHEAD," Extract Comparative Report --",!!
- ;select extract
- D AUDIT^ECXUTLA(ECXHEAD,.ECXERR,.ECXARRAY,ECXAUD)
- Q:ECXERR
- W !!
- ;select divisions/sites; all divisions if ecxall=1
- ;**not in ECXPLBB report, so leaving multi-divisions out.
- ;S ECXERR=$$NUT^ECXDVSN()
- ;I ECXERR=1 D Q
- ;.W !!,?5,"Try again later... exiting.",!
- ;.K @SCRNARR@("DIVISION")
- ;.D AUDIT^ECXKILL
- S:'$D(ECINST) ECINST=+$P(^ECX(728,1,0),U)
- S ECXINST=ECINST
- K ECXDIC S DA=ECINST,DIC="^DIC(4,",DIQ(0)="I",DIQ="ECXDIC",DR=".01;99"
- D EN^DIQ1 S ECINST=$G(ECXDIC(4,DA,99,"I")) K DIC,DIQ,DA,DR,ECXDIC
- ;sort by COMP
- S DIR(0)="Y",DIR("A")="Do you want the "_ECXHEAD_" extract comparative report to sort by COMP"
- S DIR("B")="NO" D ^DIR K DIR
- I $G(DIRUT) S ECXERR=1 Q
- ;if y=0 i.e., 'no', then ecxcomp=0 i.e., 'selected'
- S ECXCFLG=Y
- I ECXERR=1 D Q
- .W !!,?5,"Try again later... exiting.",!
- .D AUDIT^ECXKILL
- W !
- Q:(ECXARRAY("END")']"")&(ECXARRAY("START")']"")
- S ECXPORT=$$EXPORT^ECXUTL1 Q:ECXPORT=-1 I $G(ECXPORT) D Q ;154 Section added for exporting report
- .S X=ECXARRAY("START") D ^%DT S ECSD=Y S X=ECXARRAY("END") D ^%DT S ECED=Y S ECSD1=ECSD=-1
- .K ^TMP($J,"ECXPORT")
- .S ^TMP($J,"ECXPORT",0)="LOCAL NAME^LOCAL SSN^LOCAL FDR LOC^LOCAL TRANSF DATE^LOCAL COMP^LOCAL NUMBER OF UNITS^LBB EXTRACT LOG NUMBER^LBB EXTRACT SSN^LBB EXTRACT TRANSF DATE^LBB EXTRACT COMP^LBB EXTRACT NUMBER OF UNITS",CNT=1
- .D START
- .D EXPDISP^ECXUTL1
- .D ^ECXKILL
- N ECXPOP S ECXPOP=0 D QUE Q:ECXPOP=1
- ;
- START ; entry point from tasked job
- ; get LAB DATA and build temporary global ^TMP("ECXLBB",$J)
- N ECXLOGIC,ECXRPT,ECXCRPT,ECXJOB
- S ECXJOB=$J
- K ^TMP("ECXLBBC",ECXJOB)
- U IO
- I '$G(ECXPORT) I $E(IOST,1,2)="C-" W !,"Retrieving records... " ;154
- S (ECXRPT,ECXCRPT)=1 D AUDRPT^ECXLBB1 ;149 build source tmp
- D EXTRACT ;build extract tmp
- ;
- OUTPUT ; entry point called by EN tag
- N ECDATE,ECXTOT,ECXSTOT,ECXSTRX,ECXSTRS,ECRDT,ECQUIT,ECPG,ECLINE,ECLINE1,ECXCLAST
- I '$D(^TMP("ECXLBBC",ECXJOB)) W:'$G(ECXPORT) !,"There were no records that met the date range criteria" Q ;154
- S (ECPG,ECDATE,ECQUIT,ECXCOMP,ECXTOT,ECXSTOT)=0
- S ECXCOMP("TOTAL","S")=0,ECXCOMP("TOTAL","X")=0,ECXCLAST=0
- S ECLINE="",$P(ECLINE,"=",132)="=",ECLINE1="",$P(ECLINE1,"-",132)="-"
- S ECSDN=$$FMTE^XLFDT(ECSD,9),ECEDN=$$FMTE^XLFDT(ECED,9),ECRDT=$$FMTE^XLFDT(DT,9)
- I '$G(ECXPORT) W:$E(IOST,1,2)="C-" @IOF D HED ;154
- S ECXCOMP=0 F S ECXCOMP=$O(^TMP("ECXLBBC",ECXJOB,ECXCOMP)) D Q:ECXCOMP="" Q:ECQUIT
- . I ECXCFLG,ECXCLAST'=0,ECXCOMP="" S ECXSTOT=1 D TOTAL S ECXSTOT=0 Q
- . Q:ECXCOMP=""
- . I ECXCFLG,ECXCLAST'=0,ECXCLAST'=ECXCOMP S ECXSTOT=1 D TOTAL S ECXSTOT=0
- . S ECXCLAST=ECXCOMP
- . S ECXCOMP(ECXCOMP,"S")=0,ECXCOMP(ECXCOMP,"X")=0
- . S ECXDFN=0 F S ECXDFN=$O(^TMP("ECXLBBC",ECXJOB,ECXCOMP,ECXDFN)) Q:'ECXDFN D Q:ECQUIT
- .. S ECDATE=0 F S ECDATE=$O(^TMP("ECXLBBC",ECXJOB,ECXCOMP,ECXDFN,ECDATE)) Q:'ECDATE D Q:ECQUIT
- ... S ECXSTRS=$G(^TMP("ECXLBBC",ECXJOB,ECXCOMP,ECXDFN,ECDATE,"S"))
- ... S ECXSTRX=$G(^TMP("ECXLBBC",ECXJOB,ECXCOMP,ECXDFN,ECDATE,"X"))
- ... I ECXSTRS'="" D
- .... S ECXCOMP(ECXCOMP,"S")=ECXCOMP(ECXCOMP,"S")+(+$P(ECXSTRS,"^",12))
- .... S ECXCOMP("TOTAL","S")=ECXCOMP("TOTAL","S")+(+$P(ECXSTRS,"^",12))
- ... I ECXSTRX'="" D
- .... S ECXCOMP(ECXCOMP,"X")=ECXCOMP(ECXCOMP,"X")+(+$P(ECXSTRX,"^",12))
- .... S ECXCOMP("TOTAL","X")=ECXCOMP("TOTAL","X")+(+$P(ECXSTRX,"^",12))
- ... D PRINT
- S ECXTOT=1 D TOTAL S ECXTOT=0
- I $G(ECXPORT) Q ;154
- D ^ECXKILL
- Q
- ;
- PRINT ;
- I $G(ECXPORT) D Q ;154 Section added for exporting report
- .S ^TMP($J,"ECXPORT",CNT)=$S(ECXSTRS="":"NO DATA^^^^^",1:$P(ECXSTRS,U,5)_U_$P(ECXSTRS,U,4)_U_$P(ECXSTRS,U,16)_U_$$FMTE^XLFDT($$HL7TFM^XLFDT($P(ECXSTRS,U,8)),2)_U_$P(ECXSTRS,U,11)_U_+$P(ECXSTRS,U,12))
- .S ^TMP($J,"ECXPORT",CNT)=^TMP($J,"ECXPORT",CNT)_U_$S(ECXSTRX="":"NO DATA",1:ECXARRAY("EXTRACT")_U_$P(ECXSTRX,U,4)_U_$$FMTE^XLFDT($$HL7TFM^XLFDT($P(ECXSTRX,U,8)),2)_U_$P(ECXSTRX,U,11)_U_+$P(ECXSTRX,U,12)),CNT=CNT+1
- I $Y+5>IOSL D Q:ECQUIT
- . I $E(IOST,1,2)["C-" S DIR(0)="E" D ^DIR K DIR I 'Y S ECQUIT=1 Q
- . W @IOF D HED
- I ECXSTRS="" W !?3,"***************N*O***D*A*T*A*****************"
- I ECXSTRS'="" D
- . W !,$P(ECXSTRS,"^",5),?11,$P(ECXSTRS,"^",4),?26,$P(ECXSTRS,"^",16)
- . W ?37,$$FMTE^XLFDT($$HL7TFM^XLFDT($P(ECXSTRS,"^",8)),2)
- . W ?49,$P(ECXSTRS,"^",11),?60,$J(+$P(ECXSTRS,"^",12),2)
- I ECXSTRX="" W ?83,"*******N*O***D*A*T*A*********"
- I ECXSTRX'="" D
- . W ?80,$P(ECXSTRX,"^",4)
- . W ?92,$$FMTE^XLFDT($$HL7TFM^XLFDT($P(ECXSTRX,"^",8)),2)
- . W ?102,$P(ECXSTRX,"^",11),?113,$J(+$P(ECXSTRX,"^",12),2)
- Q
- TOTAL ;
- ;I $Y+3>IOSL D Q:ECQUIT
- ;. I $E(IOST,1,2)["C-" S DIR(0)="E" D ^DIR K DIR I 'Y S ECQUIT=1 Q
- ;. W @IOF D HED
- I $G(ECXPORT) D Q ;154 Section added for exporting report
- .I $G(ECXSTOT)!($G(ECXTOT)&('ECXCFLG)) S ^TMP($J,"ECXPORT",CNT)="^",CNT=CNT+1
- .S ^TMP($J,"ECXPORT",CNT)=$S($G(ECXSTOT):"^^^^"_ECXCLAST_" TOTAL^"_+$G(ECXCOMP(ECXCLAST,"S"))_"^^^^"_ECXCLAST_" TOTAL^"_+$G(ECXCOMP(ECXCLAST,"X")),1:"TOTAL^^^^^"_+$G(ECXCOMP("TOTAL","S"))_"^^^^^"_+$G(ECXCOMP("TOTAL","X"))),CNT=CNT+1
- .I $G(ECXSTOT) S ^TMP($J,"ECXPORT",CNT)="^",CNT=CNT+1
- W !,ECLINE1
- I $G(ECXSTOT) W !,?47,$J(ECXCLAST_" TOTAL",12),?60,$J(+$G(ECXCOMP(ECXCLAST,"S")),4),?100,$J(ECXCLAST_" TOTAL",12),?113,$J(+$G(ECXCOMP(ECXCLAST,"X")),4)
- I $G(ECXTOT) W !,"TOTAL",?60,$J(+$G(ECXCOMP("TOTAL","S")),4),?113,$J(+$G(ECXCOMP("TOTAL","X")),4)
- Q
- ;
- HED ;
- S ECPG=ECPG+1
- W !,"LBB Extract Comparative Report",?124,"Page",$J(ECPG,3)
- W !,ECSDN," - ",ECEDN,?111,"Run Date:",$J(ECRDT,12)
- W !!,"------------------ LOCAL BLOOD BANK SOURCE ----------------------"
- W ?80,"------------- LBB EXTRACT (#"_ECXARRAY("EXTRACT")_") ---------------"
- W !,?37,"Transf",?57,"Number",?92,"Transf",?113,"Number"
- W !,"Name",?14,"SSN",?25,"FDR LOC",?37,"Date",?49,"COMP",?57,"of Units",?80,"SSN",?92,"Date",?102,"COMP",?113,"of Units"
- W !,ECLINE
- Q
- ;
- QUE ;
- ;determine output device and queue if requested
- N %,X,%DT
- S X=ECXARRAY("START") D ^%DT S ECSD=Y S X=ECXARRAY("END") D ^%DT S ECED=Y
- S ECSDN=$$FMTE^XLFDT(ECSD),ECEDN=$$FMTE^XLFDT(ECED),ECSD1=ECSD-.1
- F X="ECINST","ECED","ECSD","ECSD1","ECEDN","ECSDN" S ECXSAVE(X)=""
- F X="ECPACK","ECPIECE","ECRTN","ECGRP","ECNODE" S ECXSAVE(X)=""
- F X="ECFILE","ECHEAD","ECVER","ECINST","ECXINST","ECXCFLG" S ECXSAVE(X)=""
- ;S ECXSAVE("ECXDIV(")=""
- S ECXSAVE("ECXARRAY(")="",ECXSAVE("SCRNARR")="",TMP=$$OREF^DILF(SCRNARR),ECXSAVE(TMP)=""
- S ECXPGM="START^ECXLBBC",ECXDESC="LBB Extract Audit Comparative Report"
- W !!,"This report requires a print width of 132 characters.",!!
- D DEVICE^ECXUTLA(ECXPGM,ECXDESC,.ECXSAVE)
- I ECXSAVE("POP")=1 D S ECXPOP=1 Q
- .W !!,?5,"Try again later... exiting.",!
- .K @SCRNARR@("DIVISION")
- .D AUDIT^ECXKILL
- I ECXSAVE("ZTSK")=0 D
- .K ECXSAVE,ECXPGM,ECXDESC
- .D START^ECXLBBC
- I IO'=IO(0) D ^%ZISC
- D HOME^%ZIS S ECXPOP=1
- D AUDIT^ECXKILL
- Q
- N ECXEXT,IEN,NODE0,ECXDFN,ECXTDT,ECXTTM,ECXCOMP
- S ECXEXT=ECXARRAY("EXTRACT")
- S IEN=0 F S IEN=$O(^ECX(727.829,"AC",ECXEXT,IEN)) Q:IEN="" D
- . S NODE0=$G(^ECX(727.829,IEN,0)),ECXDFN=$P(NODE0,"^",5)
- . S ECXTDT=$P(NODE0,"^",10)
- . I ($E(ECXTDT,1)+1_$E(ECXTDT,3,8))>ECED Q
- . I ($E(ECXTDT,1)+1_$E(ECXTDT,3,8))<ECSD Q
- . S ECXTTM=$P(NODE0,"^",11),ECXCOMP=$P(NODE0,"^",13)
- . N ECCOUNT S ECCOUNT=0
- . F S ECCOUNT=ECCOUNT+1 Q:'$D(^TMP("ECXLBBC",$J,$S($G(ECXCFLG)=1:ECXCOMP,1:"ZZNOZZ"),ECXDFN,ECXTDT_"."_ECXTTM_"."_ECCOUNT,"X"))
- . S ^TMP("ECXLBBC",$J,$S($G(ECXCFLG)=1:ECXCOMP,1:"ZZNOZZ"),ECXDFN,ECXTDT_"."_ECXTTM_"."_ECCOUNT,"X")="^"_$P(NODE0,"^",4,99)
- Q
- --- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HECXLBBC 8211 printed Mar 13, 2025@20:57:37 Page 2
- ECXLBBC ;ALB/MRY - LBB Extract Audit Comparative Report ;2/5/15 15:25
- +1 ;;3.0;DSS EXTRACTS;**120,149,153,154**;Dec 22, 1997;Build 13
- +2 ;
- EN ;entry point for LBB extract audit comparative report
- +1 ;154
- NEW ECSD,ECED,ECSDN,ECEDN,ECXPORT,CNT
- +2 ;149
- DO SETUP^ECXLBB1
- IF ECFILE=""
- QUIT
- +3 NEW %X,%Y,%DT,X,Y,DIC,DA,DR,DIQ,DIR,DIRUT,DTOUT,DUOUT,SCRNARR,REPORT
- +4 NEW SCRNARR,ECXERR,ECXHEAD,ECXAUD,ECXARRAY,STATUS,FLAG,ECXALL,TMP
- +5 NEW ZTQUEUED,ZTSTOP
- +6 SET SCRNARR="^TMP(""ECX"",$J,""SCRNARR"")"
- +7 KILL @SCRNARR@("DIVISION")
- +8 SET (ECXERR,FLAG)=0
- +9 ;ecxaud=0 for 'extract' audit
- +10 SET ECXHEAD="LBB"
- SET ECXAUD=0
- +11 WRITE !!,"Setup for ",ECXHEAD," Extract Comparative Report --",!!
- +12 ;select extract
- +13 DO AUDIT^ECXUTLA(ECXHEAD,.ECXERR,.ECXARRAY,ECXAUD)
- +14 if ECXERR
- QUIT
- +15 WRITE !!
- +16 ;select divisions/sites; all divisions if ecxall=1
- +17 ;**not in ECXPLBB report, so leaving multi-divisions out.
- +18 ;S ECXERR=$$NUT^ECXDVSN()
- +19 ;I ECXERR=1 D Q
- +20 ;.W !!,?5,"Try again later... exiting.",!
- +21 ;.K @SCRNARR@("DIVISION")
- +22 ;.D AUDIT^ECXKILL
- +23 if '$DATA(ECINST)
- SET ECINST=+$PIECE(^ECX(728,1,0),U)
- +24 SET ECXINST=ECINST
- +25 KILL ECXDIC
- SET DA=ECINST
- SET DIC="^DIC(4,"
- SET DIQ(0)="I"
- SET DIQ="ECXDIC"
- SET DR=".01;99"
- +26 DO EN^DIQ1
- SET ECINST=$GET(ECXDIC(4,DA,99,"I"))
- KILL DIC,DIQ,DA,DR,ECXDIC
- +27 ;sort by COMP
- +28 SET DIR(0)="Y"
- SET DIR("A")="Do you want the "_ECXHEAD_" extract comparative report to sort by COMP"
- +29 SET DIR("B")="NO"
- DO ^DIR
- KILL DIR
- +30 IF $GET(DIRUT)
- SET ECXERR=1
- QUIT
- +31 ;if y=0 i.e., 'no', then ecxcomp=0 i.e., 'selected'
- +32 SET ECXCFLG=Y
- +33 IF ECXERR=1
- Begin DoDot:1
- +34 WRITE !!,?5,"Try again later... exiting.",!
- +35 DO AUDIT^ECXKILL
- End DoDot:1
- QUIT
- +36 WRITE !
- +37 if (ECXARRAY("END")']"")&(ECXARRAY("START")']"")
- QUIT
- +38 ;154 Section added for exporting report
- SET ECXPORT=$$EXPORT^ECXUTL1
- if ECXPORT=-1
- QUIT
- IF $GET(ECXPORT)
- Begin DoDot:1
- +39 SET X=ECXARRAY("START")
- DO ^%DT
- SET ECSD=Y
- SET X=ECXARRAY("END")
- DO ^%DT
- SET ECED=Y
- SET ECSD1=ECSD=-1
- +40 KILL ^TMP($JOB,"ECXPORT")
- +41 SET ^TMP($JOB,"ECXPORT",0)="LOCAL NAME^LOCAL SSN^LOCAL FDR LOC^LOCAL TRANSF DATE^LOCAL COMP^LOCAL NUMBER OF UNITS^LBB EXTRACT LOG NUMBER^LBB EXTRACT SSN^LBB EXTRACT TRANSF DATE^LBB EXTRACT COMP^LBB EXTRACT NUMBER OF UNITS"
- SET CNT=1
- +42 DO START
- +43 DO EXPDISP^ECXUTL1
- +44 DO ^ECXKILL
- End DoDot:1
- QUIT
- +45 NEW ECXPOP
- SET ECXPOP=0
- DO QUE
- if ECXPOP=1
- QUIT
- +46 ;
- START ; entry point from tasked job
- +1 ; get LAB DATA and build temporary global ^TMP("ECXLBB",$J)
- +2 NEW ECXLOGIC,ECXRPT,ECXCRPT,ECXJOB
- +3 SET ECXJOB=$JOB
- +4 KILL ^TMP("ECXLBBC",ECXJOB)
- +5 USE IO
- +6 ;154
- IF '$GET(ECXPORT)
- IF $EXTRACT(IOST,1,2)="C-"
- WRITE !,"Retrieving records... "
- +7 ;149 build source tmp
- SET (ECXRPT,ECXCRPT)=1
- DO AUDRPT^ECXLBB1
- +8 ;build extract tmp
- DO EXTRACT
- +9 ;
- OUTPUT ; entry point called by EN tag
- +1 NEW ECDATE,ECXTOT,ECXSTOT,ECXSTRX,ECXSTRS,ECRDT,ECQUIT,ECPG,ECLINE,ECLINE1,ECXCLAST
- +2 ;154
- IF '$DATA(^TMP("ECXLBBC",ECXJOB))
- if '$GET(ECXPORT)
- WRITE !,"There were no records that met the date range criteria"
- QUIT
- +3 SET (ECPG,ECDATE,ECQUIT,ECXCOMP,ECXTOT,ECXSTOT)=0
- +4 SET ECXCOMP("TOTAL","S")=0
- SET ECXCOMP("TOTAL","X")=0
- SET ECXCLAST=0
- +5 SET ECLINE=""
- SET $PIECE(ECLINE,"=",132)="="
- SET ECLINE1=""
- SET $PIECE(ECLINE1,"-",132)="-"
- +6 SET ECSDN=$$FMTE^XLFDT(ECSD,9)
- SET ECEDN=$$FMTE^XLFDT(ECED,9)
- SET ECRDT=$$FMTE^XLFDT(DT,9)
- +7 ;154
- IF '$GET(ECXPORT)
- if $EXTRACT(IOST,1,2)="C-"
- WRITE @IOF
- DO HED
- +8 SET ECXCOMP=0
- FOR
- SET ECXCOMP=$ORDER(^TMP("ECXLBBC",ECXJOB,ECXCOMP))
- Begin DoDot:1
- +9 IF ECXCFLG
- IF ECXCLAST'=0
- IF ECXCOMP=""
- SET ECXSTOT=1
- DO TOTAL
- SET ECXSTOT=0
- QUIT
- +10 if ECXCOMP=""
- QUIT
- +11 IF ECXCFLG
- IF ECXCLAST'=0
- IF ECXCLAST'=ECXCOMP
- SET ECXSTOT=1
- DO TOTAL
- SET ECXSTOT=0
- +12 SET ECXCLAST=ECXCOMP
- +13 SET ECXCOMP(ECXCOMP,"S")=0
- SET ECXCOMP(ECXCOMP,"X")=0
- +14 SET ECXDFN=0
- FOR
- SET ECXDFN=$ORDER(^TMP("ECXLBBC",ECXJOB,ECXCOMP,ECXDFN))
- if 'ECXDFN
- QUIT
- Begin DoDot:2
- +15 SET ECDATE=0
- FOR
- SET ECDATE=$ORDER(^TMP("ECXLBBC",ECXJOB,ECXCOMP,ECXDFN,ECDATE))
- if 'ECDATE
- QUIT
- Begin DoDot:3
- +16 SET ECXSTRS=$GET(^TMP("ECXLBBC",ECXJOB,ECXCOMP,ECXDFN,ECDATE,"S"))
- +17 SET ECXSTRX=$GET(^TMP("ECXLBBC",ECXJOB,ECXCOMP,ECXDFN,ECDATE,"X"))
- +18 IF ECXSTRS'=""
- Begin DoDot:4
- +19 SET ECXCOMP(ECXCOMP,"S")=ECXCOMP(ECXCOMP,"S")+(+$PIECE(ECXSTRS,"^",12))
- +20 SET ECXCOMP("TOTAL","S")=ECXCOMP("TOTAL","S")+(+$PIECE(ECXSTRS,"^",12))
- End DoDot:4
- +21 IF ECXSTRX'=""
- Begin DoDot:4
- +22 SET ECXCOMP(ECXCOMP,"X")=ECXCOMP(ECXCOMP,"X")+(+$PIECE(ECXSTRX,"^",12))
- +23 SET ECXCOMP("TOTAL","X")=ECXCOMP("TOTAL","X")+(+$PIECE(ECXSTRX,"^",12))
- End DoDot:4
- +24 DO PRINT
- End DoDot:3
- if ECQUIT
- QUIT
- End DoDot:2
- if ECQUIT
- QUIT
- End DoDot:1
- if ECXCOMP=""
- QUIT
- if ECQUIT
- QUIT
- +25 SET ECXTOT=1
- DO TOTAL
- SET ECXTOT=0
- +26 ;154
- IF $GET(ECXPORT)
- QUIT
- +27 DO ^ECXKILL
- +28 QUIT
- +29 ;
- PRINT ;
- +1 ;154 Section added for exporting report
- IF $GET(ECXPORT)
- Begin DoDot:1
- +2 SET ^TMP($JOB,"ECXPORT",CNT)=$SELECT(ECXSTRS="":"NO DATA^^^^^",1:$PIECE(ECXSTRS,U,5)_U_$PIECE(ECXSTRS,U,4)_U_$PIECE(ECXSTRS,U,16)_U_$$FMTE^XLFDT($$HL7TFM^XLFDT($PIECE(ECXSTRS,U,8)),2)_U_$PIECE(ECXSTRS,U,11)_U_+$PIECE(ECXSTRS,U,12))
- +3 SET ^TMP($JOB,"ECXPORT",CNT)=^TMP($JOB,"ECXPORT",CNT)_U_$SELECT(ECXSTRX="":"NO DATA",1:ECXARRAY("EXTRACT")_U_$PIECE(ECXSTRX,U,4)_U_$$FMTE^XLFDT($$HL7TFM^XLFDT($PIECE(ECXSTRX,U,8)),2)_U_$PIECE(ECXSTRX,U,11)_U_+$PIECE(ECXSTRX,U,12))
- SET CNT=CNT+1
- End DoDot:1
- QUIT
- +4 IF $Y+5>IOSL
- Begin DoDot:1
- +5 IF $EXTRACT(IOST,1,2)["C-"
- SET DIR(0)="E"
- DO ^DIR
- KILL DIR
- IF 'Y
- SET ECQUIT=1
- QUIT
- +6 WRITE @IOF
- DO HED
- End DoDot:1
- if ECQUIT
- QUIT
- +7 IF ECXSTRS=""
- WRITE !?3,"***************N*O***D*A*T*A*****************"
- +8 IF ECXSTRS'=""
- Begin DoDot:1
- +9 WRITE !,$PIECE(ECXSTRS,"^",5),?11,$PIECE(ECXSTRS,"^",4),?26,$PIECE(ECXSTRS,"^",16)
- +10 WRITE ?37,$$FMTE^XLFDT($$HL7TFM^XLFDT($PIECE(ECXSTRS,"^",8)),2)
- +11 WRITE ?49,$PIECE(ECXSTRS,"^",11),?60,$JUSTIFY(+$PIECE(ECXSTRS,"^",12),2)
- End DoDot:1
- +12 IF ECXSTRX=""
- WRITE ?83,"*******N*O***D*A*T*A*********"
- +13 IF ECXSTRX'=""
- Begin DoDot:1
- +14 WRITE ?80,$PIECE(ECXSTRX,"^",4)
- +15 WRITE ?92,$$FMTE^XLFDT($$HL7TFM^XLFDT($PIECE(ECXSTRX,"^",8)),2)
- +16 WRITE ?102,$PIECE(ECXSTRX,"^",11),?113,$JUSTIFY(+$PIECE(ECXSTRX,"^",12),2)
- End DoDot:1
- +17 QUIT
- TOTAL ;
- +1 ;I $Y+3>IOSL D Q:ECQUIT
- +2 ;. I $E(IOST,1,2)["C-" S DIR(0)="E" D ^DIR K DIR I 'Y S ECQUIT=1 Q
- +3 ;. W @IOF D HED
- +4 ;154 Section added for exporting report
- IF $GET(ECXPORT)
- Begin DoDot:1
- +5 IF $GET(ECXSTOT)!($GET(ECXTOT)&('ECXCFLG))
- SET ^TMP($JOB,"ECXPORT",CNT)="^"
- SET CNT=CNT+1
- +6 SET ^TMP($JOB,"ECXPORT",CNT)=$SELECT($GET(ECXSTOT):"^^^^"_ECXCLAST_" TOTAL^"_+$GET(ECXCOMP(ECXCLAST,"S"))_"^^^^"_ECXCLAST_" TOTAL^"_+$GET(ECXCOMP(ECXCLAST,"X")),1:"TOTAL^^^^^"_+$GET(ECXCOMP("TOTAL","S"))_"^^^^^"_+$GET(ECXCOMP("TOTAL","X
- ")))
- SET CNT=CNT+1
- +7 IF $GET(ECXSTOT)
- SET ^TMP($JOB,"ECXPORT",CNT)="^"
- SET CNT=CNT+1
- End DoDot:1
- QUIT
- +8 WRITE !,ECLINE1
- +9 IF $GET(ECXSTOT)
- WRITE !,?47,$JUSTIFY(ECXCLAST_" TOTAL",12),?60,$JUSTIFY(+$GET(ECXCOMP(ECXCLAST,"S")),4),?100,$JUSTIFY(ECXCLAST_" TOTAL",12),?113,$JUSTIFY(+$GET(ECXCOMP(ECXCLAST,"X")),4)
- +10 IF $GET(ECXTOT)
- WRITE !,"TOTAL",?60,$JUSTIFY(+$GET(ECXCOMP("TOTAL","S")),4),?113,$JUSTIFY(+$GET(ECXCOMP("TOTAL","X")),4)
- +11 QUIT
- +12 ;
- HED ;
- +1 SET ECPG=ECPG+1
- +2 WRITE !,"LBB Extract Comparative Report",?124,"Page",$JUSTIFY(ECPG,3)
- +3 WRITE !,ECSDN," - ",ECEDN,?111,"Run Date:",$JUSTIFY(ECRDT,12)
- +4 WRITE !!,"------------------ LOCAL BLOOD BANK SOURCE ----------------------"
- +5 WRITE ?80,"------------- LBB EXTRACT (#"_ECXARRAY("EXTRACT")_") ---------------"
- +6 WRITE !,?37,"Transf",?57,"Number",?92,"Transf",?113,"Number"
- +7 WRITE !,"Name",?14,"SSN",?25,"FDR LOC",?37,"Date",?49,"COMP",?57,"of Units",?80,"SSN",?92,"Date",?102,"COMP",?113,"of Units"
- +8 WRITE !,ECLINE
- +9 QUIT
- +10 ;
- QUE ;
- +1 ;determine output device and queue if requested
- +2 NEW %,X,%DT
- +3 SET X=ECXARRAY("START")
- DO ^%DT
- SET ECSD=Y
- SET X=ECXARRAY("END")
- DO ^%DT
- SET ECED=Y
- +4 SET ECSDN=$$FMTE^XLFDT(ECSD)
- SET ECEDN=$$FMTE^XLFDT(ECED)
- SET ECSD1=ECSD-.1
- +5 FOR X="ECINST","ECED","ECSD","ECSD1","ECEDN","ECSDN"
- SET ECXSAVE(X)=""
- +6 FOR X="ECPACK","ECPIECE","ECRTN","ECGRP","ECNODE"
- SET ECXSAVE(X)=""
- +7 FOR X="ECFILE","ECHEAD","ECVER","ECINST","ECXINST","ECXCFLG"
- SET ECXSAVE(X)=""
- +8 ;S ECXSAVE("ECXDIV(")=""
- +9 SET ECXSAVE("ECXARRAY(")=""
- SET ECXSAVE("SCRNARR")=""
- SET TMP=$$OREF^DILF(SCRNARR)
- SET ECXSAVE(TMP)=""
- +10 SET ECXPGM="START^ECXLBBC"
- SET ECXDESC="LBB Extract Audit Comparative Report"
- +11 WRITE !!,"This report requires a print width of 132 characters.",!!
- +12 DO DEVICE^ECXUTLA(ECXPGM,ECXDESC,.ECXSAVE)
- +13 IF ECXSAVE("POP")=1
- Begin DoDot:1
- +14 WRITE !!,?5,"Try again later... exiting.",!
- +15 KILL @SCRNARR@("DIVISION")
- +16 DO AUDIT^ECXKILL
- End DoDot:1
- SET ECXPOP=1
- QUIT
- +17 IF ECXSAVE("ZTSK")=0
- Begin DoDot:1
- +18 KILL ECXSAVE,ECXPGM,ECXDESC
- +19 DO START^ECXLBBC
- End DoDot:1
- +20 IF IO'=IO(0)
- DO ^%ZISC
- +21 DO HOME^%ZIS
- SET ECXPOP=1
- +22 DO AUDIT^ECXKILL
- +23 QUIT
- +1 NEW ECXEXT,IEN,NODE0,ECXDFN,ECXTDT,ECXTTM,ECXCOMP
- +2 SET ECXEXT=ECXARRAY("EXTRACT")
- +3 SET IEN=0
- FOR
- SET IEN=$ORDER(^ECX(727.829,"AC",ECXEXT,IEN))
- if IEN=""
- QUIT
- Begin DoDot:1
- +4 SET NODE0=$GET(^ECX(727.829,IEN,0))
- SET ECXDFN=$PIECE(NODE0,"^",5)
- +5 SET ECXTDT=$PIECE(NODE0,"^",10)
- +6 IF ($EXTRACT(ECXTDT,1)+1_$EXTRACT(ECXTDT,3,8))>ECED
- QUIT
- +7 IF ($EXTRACT(ECXTDT,1)+1_$EXTRACT(ECXTDT,3,8))<ECSD
- QUIT
- +8 SET ECXTTM=$PIECE(NODE0,"^",11)
- SET ECXCOMP=$PIECE(NODE0,"^",13)
- +9 NEW ECCOUNT
- SET ECCOUNT=0
- +10 FOR
- SET ECCOUNT=ECCOUNT+1
- if '$DATA(^TMP("ECXLBBC",$JOB,$SELECT($GET(ECXCFLG)=1
- QUIT
- +11 SET ^TMP("ECXLBBC",$JOB,$SELECT($GET(ECXCFLG)=1:ECXCOMP,1:"ZZNOZZ"),ECXDFN,ECXTDT_"."_ECXTTM_"."_ECCOUNT,"X")="^"_$PIECE(NODE0,"^",4,99)
- End DoDot:1
- +12 QUIT