| 1 | LRRP5 ;DALOI/JBM/WTY - COLLECTION REPORT ;9/22/00 | 
|---|
| 2 | ;;5.2;LAB SERVICE;**121,201,248**;Sep 27, 1994 | 
|---|
| 3 | ; | 
|---|
| 4 | ;Reference to ^%DT supported by IA #10003 | 
|---|
| 5 | ;Reference to ^%ZIS supported by IA #10086 | 
|---|
| 6 | ;Reference to ^%ZISC supported by IA #10089 | 
|---|
| 7 | ;Reference to ^%ZTLOAD supported by IA #10063 | 
|---|
| 8 | ;Reference to ^DIC supported by IA #10006 | 
|---|
| 9 | ;Reference to ^DIR supported by IA #10026 | 
|---|
| 10 | ; | 
|---|
| 11 | EN ; | 
|---|
| 12 | S LREND=0 | 
|---|
| 13 | S DIR(0)="69.01,4",DIR("A")="Type of collection for report? " | 
|---|
| 14 | S DIR("B")="SEND PATIENT" | 
|---|
| 15 | D ^DIR | 
|---|
| 16 | I ($D(DTOUT)#2)!($D(DUOUT)#2)!($D(DIRUT)#2) S LREND=1 G WRAPUP | 
|---|
| 17 | S LRRCTYP=Y,LRRCNAM=Y(0) | 
|---|
| 18 | DATE ; | 
|---|
| 19 | S %DT="AEX",%DT("A")="Date ordered? : " | 
|---|
| 20 | D ^%DT I (X=U)!(X="") S LREND=1 G WRAPUP | 
|---|
| 21 | S LRODT=Y,LRODAT=$$Y2K^LRX(LRODT) | 
|---|
| 22 | REPTYP ; | 
|---|
| 23 | W !,"REPORT selection: " | 
|---|
| 24 | K DIR,X,Y S DIR(0)="S^1:Detailed report;2:Summary report" | 
|---|
| 25 | D ^DIR | 
|---|
| 26 | I ($D(DTOUT))!($D(DUOUT)) S LREND=1 G WRAPUP | 
|---|
| 27 | S LRRPT=+X | 
|---|
| 28 | DEVICE ; | 
|---|
| 29 | K IOP,IO("Q") S %ZIS="QP" D ^%ZIS | 
|---|
| 30 | I POP S LREND=1 G WRAPUP | 
|---|
| 31 | I $D(IO("Q")) D QUE S LREND=1 G WRAPUP | 
|---|
| 32 | DQ ; | 
|---|
| 33 | D INIT | 
|---|
| 34 | D PROCESS | 
|---|
| 35 | D CNTSUM | 
|---|
| 36 | D PRINT^LRRP5A | 
|---|
| 37 | D WRAPUP | 
|---|
| 38 | Q | 
|---|
| 39 | INIT ; | 
|---|
| 40 | S:$D(ZTQUEUED) ZTREQ="@" K ^TMP($J) U IO | 
|---|
| 41 | S LRDAT=$$Y2K^LRX(DT),(LRPAG,LREND)=0 | 
|---|
| 42 | Q | 
|---|
| 43 | PROCESS ;For ea. specimen on date selected | 
|---|
| 44 | ;  If collection type = requested type | 
|---|
| 45 | ;    Get patient name & SSN,order#,collection sample & ordering location | 
|---|
| 46 | ;    Store by patient,ssn,order#,collection sample | 
|---|
| 47 | S LRSN=0 | 
|---|
| 48 | F  S LRSN=$O(^LRO(69,LRODT,1,LRSN)) Q:'+LRSN  D | 
|---|
| 49 | .S LRREC=$G(^LRO(69,LRODT,1,LRSN,0)) Q:LRREC="" | 
|---|
| 50 | .S LRDFN=$P(LRREC,U),LRCTYP=$P(LRREC,U,4),LRLOC=$P(LRREC,U,9) | 
|---|
| 51 | .Q:(LRDFN="")!(LRRCTYP'=LRCTYP)!(LRLOC="") | 
|---|
| 52 | .;name/ssn | 
|---|
| 53 | .S DIC=63,DIC(0)="NXZ",X="`"_LRDFN D ^DIC Q:Y=-1 | 
|---|
| 54 | .S LRDPF=$P(Y(0),U,2),DFN=$P(Y(0),U,3) Q:DFN=""  D PT^LRX Q:PNM="" | 
|---|
| 55 | .S LRPAT=PNM,LRSSN=SSN S:LRSSN="" LRSSN="NO ENTRY" | 
|---|
| 56 | .;order# | 
|---|
| 57 | .S LRORD=$G(^LRO(69,LRODT,1,LRSN,.1)) Q:LRORD="" | 
|---|
| 58 | .S LRCLCTD=$P($G(^LRO(69,LRODT,1,LRSN,1)),U,4) | 
|---|
| 59 | .;collection sample | 
|---|
| 60 | .S LRCS=$P($G(^LRO(69,LRODT,1,LRSN,0)),U,3) Q:LRCS="" | 
|---|
| 61 | .S DIC=62,DIC(0)="NXZ",X="`"_LRCS D ^DIC Q:Y=-1 | 
|---|
| 62 | .S LRCS1=$P(Y(0),U) | 
|---|
| 63 | .;location | 
|---|
| 64 | .S DIC=44,DIC(0)="NXZ",X="`"_LRLOC D ^DIC Q:Y=-1 | 
|---|
| 65 | .S LRLOC=$S(+$L($P(Y(0),U,2)):$P(Y(0),U,2),1:$P(Y,U,2)) | 
|---|
| 66 | .I LRCLCTD="C" D | 
|---|
| 67 | ..S LRCLCTD="[C]" | 
|---|
| 68 | ..S $P(^TMP($J,"LOCTOT",LRLOC,LRPAT,LRSSN,0),U)=1 | 
|---|
| 69 | .E  D | 
|---|
| 70 | ..S LRCLCTD="   " | 
|---|
| 71 | ..S $P(^TMP($J,"LOCTOT",LRLOC,LRPAT,LRSSN,0),U,2)=1 | 
|---|
| 72 | .S LRTNN=+$G(^TMP($J,"PAT",LRPAT,LRSSN,LRORD,LRCS1,0)) | 
|---|
| 73 | .;  For ea. test | 
|---|
| 74 | .;    Get name & urgency | 
|---|
| 75 | .;    store by patient,ssn,order#,spec,test# | 
|---|
| 76 | .S LRTN=0 | 
|---|
| 77 | .F  S LRTN=$O(^LRO(69,LRODT,1,LRSN,2,LRTN)) Q:'+LRTN  D | 
|---|
| 78 | ..S LRREC=$G(^LRO(69,LRODT,1,LRSN,2,LRTN,0)) Q:LRREC=""  Q:$P(LRREC,"^",11) | 
|---|
| 79 | ..S DIC=60,DIC(0)="NXZ",X="`"_$P(LRREC,U) D ^DIC Q:Y=-1 | 
|---|
| 80 | ..S LRTST=$P(Y,U,2),LRIFN=+Y,LRPNAM=$P($G(^LAB(60,LRIFN,.1)),U) | 
|---|
| 81 | ..S:LRPNAM'="" LRTST=LRPNAM | 
|---|
| 82 | ..S LRTST=$E(LRTST,1,7) | 
|---|
| 83 | ..S DIC=62.05,DIC(0)="NXZ",X="`"_$P(LRREC,U,2) D ^DIC Q:Y=-1 | 
|---|
| 84 | ..S LRTST=LRTST_"("_$E($P(Y,U,2),1)_")" | 
|---|
| 85 | ..S LRTNN=LRTNN+1,^TMP($J,"PAT",LRPAT,LRSSN,LRORD,LRCS1,LRTNN)=LRTST | 
|---|
| 86 | .S ^TMP($J,"PAT",LRPAT,LRSSN,LRORD,LRCS1,0)=LRTNN_U_LRLOC_U_LRCLCTD | 
|---|
| 87 | Q | 
|---|
| 88 | CNTSUM ; | 
|---|
| 89 | N LRC,LRU,LRP,LRREC,LRLOC,LRPAT,LRSSN | 
|---|
| 90 | S LRLOC="" | 
|---|
| 91 | F  S LRLOC=$O(^TMP($J,"LOCTOT",LRLOC)) Q:LRLOC=""  D | 
|---|
| 92 | .S LRPAT="",LRPATCNT=0 | 
|---|
| 93 | .F  S LRPAT=$O(^TMP($J,"LOCTOT",LRLOC,LRPAT)) Q:LRPAT=""  D | 
|---|
| 94 | ..S LRSSN="" | 
|---|
| 95 | ..F  S LRSSN=$O(^TMP($J,"LOCTOT",LRLOC,LRPAT,LRSSN)) Q:LRSSN=""  D | 
|---|
| 96 | ...S LRREC=$G(^TMP($J,"LOCTOT",LRLOC,LRPAT,LRSSN,0)) | 
|---|
| 97 | ...Q:'$L(LRREC) | 
|---|
| 98 | ...S LRPATCNT=LRPATCNT+1 | 
|---|
| 99 | ...S LRC=+$P(LRREC,U),LRU=+$P(LRREC,U,2) | 
|---|
| 100 | ...S LRP=$S((LRC)&(LRU):4,('LRC)&(LRU):3,1:2) | 
|---|
| 101 | ...S $P(^(0),U,LRP)=$P($G(^TMP($J,"LOCTOT",LRLOC,0)),U,LRP)+1 | 
|---|
| 102 | .S $P(^TMP($J,"LOCTOT",LRLOC,0),U)=LRPATCNT | 
|---|
| 103 | Q | 
|---|
| 104 | PAUSE ; | 
|---|
| 105 | K DIR S DIR(0)="E" D ^DIR | 
|---|
| 106 | S:($D(DTOUT)#2)!($D(DUOUT)#2)!($D(DIRUT)#2) LREND=1 | 
|---|
| 107 | Q | 
|---|
| 108 | WRAPUP ; | 
|---|
| 109 | D:($E(IOST,1,2)="C-")&('LREND) PAUSE | 
|---|
| 110 | W @IOF D:'$D(ZTQUEUED) ^%ZISC | 
|---|
| 111 | K ^TMP($J),LRPATCNT,LRTGLNAM,LRTGLORD,LRCLCTD,LRTNN,LRTAB | 
|---|
| 112 | K DTOUT,DUOUT,DIRUT,DIROUT,X,Y,%,%ZIS,DIC,VADM,VA,VAERR,DFN,%Y,%DT,I,POP | 
|---|
| 113 | K DIR,PNM,SSN,LRODAT,LRDAT,LRPAG,LRCTYP,LRRCTYP,LRRCNAM,LRDUMY,LRIFN | 
|---|
| 114 | K LRTN,LRTST,LRURG,LRLOC,LRPAT,LRSSN,LRREC,LRORD,LRDFN,LRODT,LRDPF,LRWRD | 
|---|
| 115 | K LRSN,LRPNAM,LRSPC,LREND,ZTIO,ZTQUEUED,ZTRTN,ZTSAVE,ZTDESC,AGE,DOB,SEX | 
|---|
| 116 | K LRLCNT,LRBUF,LRBLANK,LRCS3,LRRPT,LRCS1,ZTREQ | 
|---|
| 117 | Q | 
|---|
| 118 | QUE ; | 
|---|
| 119 | K IO("Q") I '$D(ZTIO),$D(ION),ION="" S ZTIO="" | 
|---|
| 120 | S ZTDESC="LRRP5 - COLLECTION REPORT",ZTRTN="DQ^LRRP5" | 
|---|
| 121 | S ZTSAVE("LR*")="" D ^%ZTLOAD | 
|---|
| 122 | W:$D(ZTSK) !!,"Report queued" | 
|---|
| 123 | W:'$D(ZTSK) !!,"Report canceled!" | 
|---|
| 124 | D HOME^%ZIS | 
|---|
| 125 | Q | 
|---|