| 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
 | 
|---|