| [623] | 1 | ECXPLBB ;DALOI/KML - DSS BLOOD BANK PRE-EXTRACT AUDIT REPORT ; 8/14/06 10:10am
 | 
|---|
 | 2 |  ;;3.0;DSS EXTRACTS;**78,92**;Dec 22, 1997;Build 30
 | 
|---|
 | 3 |  ;Per VHA Directive 97-033 this routine should not be modified.  Medical Device # BK970021
 | 
|---|
 | 4 |  ;entry point from option
 | 
|---|
 | 5 |  D SETUP^ECXLBB I ECFILE="" Q
 | 
|---|
 | 6 |  N ECXINST
 | 
|---|
 | 7 |  D DATES
 | 
|---|
 | 8 |  Q:ECED']""&(ECSD']"")
 | 
|---|
 | 9 |  N ECXPOP S ECXPOP=0 D QUE Q:ECXPOP
 | 
|---|
 | 10 |  ;
 | 
|---|
 | 11 | START ;  entry point from tasked job
 | 
|---|
 | 12 |  ; get LAB DATA and build temporary global ^TMP("ECXLBB",$J)
 | 
|---|
 | 13 |  N ECTRSP,ECADMT,ECTODT,ECXRPT,ECOUT,ECXSTR,ECRDT,ECLINE,ECPG,ECQUIT
 | 
|---|
 | 14 |  N ECD,ECXDFN,ECARRY,EC66,ECERR,ECTRFDT,ECTRFTM,ECX,ECINOUT,ECXJOB
 | 
|---|
 | 15 |  N ECXLOGIC
 | 
|---|
 | 16 |  S ECXJOB=$J
 | 
|---|
 | 17 |  K ^TMP("ECXLBB",ECXJOB)
 | 
|---|
 | 18 |  U IO
 | 
|---|
 | 19 |  I $E(IOST,1,2)="C-" W !,"Retrieving records... "
 | 
|---|
 | 20 |  S ECXRPT=1 D AUDRPT^ECXLBB
 | 
|---|
 | 21 | OUTPUT ; entry point called by EN tag
 | 
|---|
 | 22 |  I '$D(^TMP("ECXLBB",ECXJOB)) W !,"There were no records that met the date range criteria" Q
 | 
|---|
 | 23 |  S (ECPG,ECDATE,ECQUIT,ECXDFN)=0,ECLINE="",$P(ECLINE,"=",80)="="
 | 
|---|
 | 24 |  S ECSDN=$$FMTE^XLFDT(ECSD,9),ECEDN=$$FMTE^XLFDT(ECED,9),ECRDT=$$FMTE^XLFDT(DT,9)
 | 
|---|
 | 25 |  W:$E(IOST,1,2)="C-" @IOF D HED
 | 
|---|
 | 26 |  F  S ECXDFN=$O(^TMP("ECXLBB",ECXJOB,ECXDFN)) Q:'ECXDFN  F  S ECDATE=$O(^TMP("ECXLBB",ECXJOB,ECXDFN,ECDATE))  Q:'ECDATE  Q:ECQUIT  S ECXSTR=^(ECDATE) D PRINT
 | 
|---|
 | 27 |  D ^ECXKILL
 | 
|---|
 | 28 |  Q
 | 
|---|
 | 29 |  ;
 | 
|---|
 | 30 | PRINT ;
 | 
|---|
 | 31 |  I $Y+5>IOSL D  Q:ECQUIT
 | 
|---|
 | 32 |  . I $E(IOST,1,2)["C-" S DIR(0)="E" D ^DIR K DIR I 'Y S ECQUIT=1 Q
 | 
|---|
 | 33 |  . W @IOF D HED
 | 
|---|
 | 34 |  W !,$P(ECXSTR,"^",5),?11,$P(ECXSTR,"^",4),?26,$P(ECXSTR,"^",16)
 | 
|---|
 | 35 |  W ?37,$$FMTE^XLFDT($$HL7TFM^XLFDT($P(ECXSTR,"^",8)),2)
 | 
|---|
 | 36 |  W ?49,$P(ECXSTR,"^",11),?60,$J(+$P(ECXSTR,"^",12),2)
 | 
|---|
 | 37 |  Q
 | 
|---|
 | 38 |  ;
 | 
|---|
 | 39 | HED ;
 | 
|---|
 | 40 |  S ECPG=ECPG+1
 | 
|---|
 | 41 |  W !,"LBB Pre-Extract Audit Report",?72,"Page",$J(ECPG,3)
 | 
|---|
 | 42 |  W !,ECSDN," - ",ECEDN,?58,"Run Date:",$J(ECRDT,12)
 | 
|---|
 | 43 |  W !,?37,"Transf",?57,"Number"
 | 
|---|
 | 44 |  W !,"Name",?14,"SSN",?25,"FDR LOC",?37,"Date",?49,"COMP"
 | 
|---|
 | 45 |  W ?57,"of Units"
 | 
|---|
 | 46 |  W !,ECLINE
 | 
|---|
 | 47 |  Q
 | 
|---|
 | 48 | DATES ;
 | 
|---|
 | 49 |  N OUT,CHKFLG
 | 
|---|
 | 50 |  I '$D(ECNODE) S ECNODE=7
 | 
|---|
 | 51 |  I '$D(ECHEAD) S ECHEAD=" "
 | 
|---|
 | 52 |  W @IOF,!,"LBB Pre-Extract Audit Report Information for DSS",!!
 | 
|---|
 | 53 |  S:'$D(ECINST) ECINST=+$P(^ECX(728,1,0),U)
 | 
|---|
 | 54 |  S ECXINST=ECINST
 | 
|---|
 | 55 |  K ECXDIC S DA=ECINST,DIC="^DIC(4,",DIQ(0)="I",DIQ="ECXDIC",DR=".01;99"
 | 
|---|
 | 56 |  D EN^DIQ1 S ECINST=$G(ECXDIC(4,DA,99,"I")) K DIC,DIQ,DA,DR,ECXDIC
 | 
|---|
 | 57 |  S ECLDT=$S($D(^ECX(728,1,ECNODE)):$P(^(ECNODE),U,ECPIECE),1:2610624)
 | 
|---|
 | 58 |  S:ECLDT="" ECLDT=2610624
 | 
|---|
 | 59 |  S ECOUT=0 F  S (ECED,ECSD)="" D  Q:ECOUT
 | 
|---|
 | 60 |  . K %DT S %DT="AEX",%DT("A")="Starting with Date: " D ^%DT
 | 
|---|
 | 61 |  . I Y<0 S ECOUT=1 Q
 | 
|---|
 | 62 |  . S ECSD=Y
 | 
|---|
 | 63 |  . K %DT S %DT="AEX",%DT("A")="Ending with Date: " D ^%DT
 | 
|---|
 | 64 |  . I Y<0 S ECOUT=1 Q
 | 
|---|
 | 65 |  . I Y<ECSD W !!,"The ending date cannot be earlier than the starting date.",!,"Please try again.",!! Q
 | 
|---|
 | 66 |  . I $E(Y,1,5)'=$E(ECSD,1,5) W !!,"Beginning and ending dates must be in the same month and year.",!,"Please try again.",!! Q
 | 
|---|
 | 67 |  . S ECED=Y
 | 
|---|
 | 68 |  . I ECLDT'<ECSD W !!,"The Blood Bank information has already been extracted through ",$$FMTE^XLFDT(ECLDT),".",!,"Please enter a new date range.",!! Q
 | 
|---|
 | 69 |  . S ECOUT=1
 | 
|---|
 | 70 |  Q
 | 
|---|
 | 71 |  ;
 | 
|---|
 | 72 | QUE ;
 | 
|---|
 | 73 |  K ZTSAVE
 | 
|---|
 | 74 |  S ECSDN=$$FMTE^XLFDT(ECSD),ECEDN=$$FMTE^XLFDT(ECED),ECSD1=ECSD-.1
 | 
|---|
 | 75 |  K ZTSAVE
 | 
|---|
 | 76 |  F X="ECINST","ECED","ECSD","ECSD1","ECEDN","ECSDN" S ZTSAVE(X)=""
 | 
|---|
 | 77 |  F X="ECPACK","ECPIECE","ECRTN","ECGRP","ECNODE" S ZTSAVE(X)=""
 | 
|---|
 | 78 |  F X="ECFILE","ECHEAD","ECVER","ECINST","ECXINST" S ZTSAVE(X)=""
 | 
|---|
 | 79 |  F X="ECXLOGIC","ECXDATES" S ZTSAVE(X)=""
 | 
|---|
 | 80 |  S ZTDESC=ECPACK_" PRE-EXTRACT AUDIT REPORT: "_ECSDN_" TO "_ECEDN,ZTRTN="START^ECXPLBB",ZTIO=""
 | 
|---|
 | 81 |  S IOP="Q" W ! S %ZIS="QMP" D ^%ZIS S:POP ECXPOP=1 Q:POP  I $D(IO("Q")) K IO("Q"),ZTIO D ^%ZTLOAD W:$D(ZTSK) !,$C(7),"REQUEST QUEUED",!,"Task #: ",$G(ZTSK) K I,ZTSK,ZTIO,ZTSAVE,ZTRTN D HOME^%ZIS S ECXPOP=1
 | 
|---|
 | 82 |  Q
 | 
|---|
 | 83 |  ;
 | 
|---|
 | 84 | EN(ECXJOB,ECSD,ECED) ; entry point used primarily for testing
 | 
|---|
 | 85 |  ; input:
 | 
|---|
 | 86 |  ;        ECXJOB = $J that is assigned to the 2nd subscript of 
 | 
|---|
 | 87 |  ;                 the temporary global array containing the 
 | 
|---|
 | 88 |  ;                 extracted data that feeds the pre-extract
 | 
|---|
 | 89 |  ;                 audit report
 | 
|---|
 | 90 |  ;        ECSD   = starting date range representing the FM
 | 
|---|
 | 91 |  ;                 date used to retrieve data from file #63
 | 
|---|
 | 92 |  ;        ECED   = ending date range representing the FM date
 | 
|---|
 | 93 |  ;                 used to retrieve data from file #63
 | 
|---|
 | 94 |  ; syntax  of the call: D EN^ECXPLBB(541571372,3000101,3000131)
 | 
|---|
 | 95 |  D OUTPUT
 | 
|---|
 | 96 |  Q
 | 
|---|
 | 97 |  ;
 | 
|---|
 | 98 |  ;ECXPLBB
 | 
|---|