1 | LRWRKINC ;SLC/DCM/CJS-INCOMPLETE STATUS REPORT ;2/19/91 11:47
|
---|
2 | ;;5.2;LAB SERVICE;**153,201,221**;Sep 27, 1994
|
---|
3 | EN ;
|
---|
4 | K ^TMP($J),^TMP("LR",$J),^TMP("LRWRKINC",$J)
|
---|
5 | K %ZIS,DIC
|
---|
6 | S Y=$$NOW^XLFDT D DD^LRX S LRDT=Y
|
---|
7 | S (LRCNT,LRCUTOFF,LREND,LREXD,LREXTST,LRNOCNTL,LREXNREQ)=0,LRSORTBY=1
|
---|
8 | S DIC="^LRO(68,",DIC(0)="AEMOQZ"
|
---|
9 | F D Q:$G(LRAA)<1!(LREND)
|
---|
10 | . N LAST,LRAD,LRAN,LRFAN,LRLAN,LRWDTL,LRSTAR,LRUSEAA,X,Y
|
---|
11 | . D ^DIC
|
---|
12 | . I $D(DUOUT) S LREND=1 Q
|
---|
13 | . S LRAA=+Y,LRAA(0)=$G(Y(0))
|
---|
14 | . I LRAA<1 Q
|
---|
15 | . D CHKAA^LRWRKIN1
|
---|
16 | . I LREND Q
|
---|
17 | . I '$L(LRUSEAA) D PHD Q:LREND
|
---|
18 | . S LRCNT=LRCNT+1,^TMP("LRWRKINC",$J,$P(LRAA(0),"^")_"^"_LRAA,LRCNT,0)=LRAA(0)
|
---|
19 | . I $L(LRUSEAA) D
|
---|
20 | . . N X
|
---|
21 | . . S X=$P($G(^LRO(68,LRUSEAA,0)),"^")_"^"_LRUSEAA
|
---|
22 | . . S ^TMP("LRWRKINC",$J,$P(LRAA(0),"^")_"^"_LRAA,LRCNT,1)=^TMP("LRWRKINC",$J,$P(LRUSEAA,"^",1,2),$P(LRUSEAA,"^",3),1)
|
---|
23 | . E S ^TMP("LRWRKINC",$J,$P(LRAA(0),"^")_"^"_LRAA,LRCNT,1)=$G(LRAD)_"^"_$G(LRFAN)_"^"_$G(LRLAN)_"^"_$G(LRSTAR)_"^"_$G(LAST)_"^"_$G(LRWDTL)
|
---|
24 | . W !
|
---|
25 | I LREND!('$D(^TMP("LRWRKINC",$J))) D LREND^LRWRKIN1 Q
|
---|
26 | K DIC
|
---|
27 | N DIR,DIRUT,DTOUT,DUOUT
|
---|
28 | I LRCNT>1 D
|
---|
29 | . S DIR(0)="SO^1:ACCESSION AREA;2:TEST NAME",DIR("A")="Sort Report By",DIR("B")=1
|
---|
30 | . S DIR("?",1)="ACCESSION AREA will separate tests by accession area, then by test name."
|
---|
31 | . S DIR("?")="TEST NAME will list tests alphabetically without regard to accession area."
|
---|
32 | . D ^DIR
|
---|
33 | . I $D(DIRUT) S LREND=1 Q
|
---|
34 | . S LRSORTBY=+Y
|
---|
35 | I LREND D LREND^LRWRKIN1 Q
|
---|
36 | S DIR(0)="YO",DIR("A")="Specify detailed sort criteria",DIR("B")="NO"
|
---|
37 | S DIR("?",1)="Answer 'YES' if you WANT to specify detailed criteria."
|
---|
38 | S DIR("?",2)="Examples are excluding controls, specifying a lab arrival cut-off time,"
|
---|
39 | S DIR("?",3)="selecting or excluding specific tests, or excluding non-required tests."
|
---|
40 | S DIR("?")="Answer 'NO' if you DO NOT want to specify detailed criteria."
|
---|
41 | D ^DIR
|
---|
42 | I $D(DIRUT) D LREND^LRWRKIN1 Q
|
---|
43 | I Y=1 D
|
---|
44 | . K DIR
|
---|
45 | . S DIR(0)="DO^::EXT",DIR("A")="Lab Arrival Cut-off"
|
---|
46 | . S DIR("?",1)="Entering a date/time will exclude uncollected specimens and"
|
---|
47 | . S DIR("?")="specimens with a lab arrival time after the time specified."
|
---|
48 | . D ^DIR
|
---|
49 | . I $D(DUOUT)!($D(DTOUT)) Q
|
---|
50 | . I Y>0 S LRCUTOFF=+Y
|
---|
51 | . K DIR
|
---|
52 | . S DIR(0)="YO",DIR("A")="Do you want to exclude controls",DIR("B")="YES"
|
---|
53 | . S DIR("?",1)="Answer 'NO' if you WANT accessions for LAB CONTROLS included on"
|
---|
54 | . S DIR("?")="the report. 'YES' if you DO NOT want accessions for LAB CONTROLS."
|
---|
55 | . D ^DIR
|
---|
56 | . I $D(DIRUT) Q
|
---|
57 | . S LRNOCNTL=+Y
|
---|
58 | . K DIR
|
---|
59 | . S DIR(0)="YO",DIR("A")="Do you want a specific test",DIR("B")="NO"
|
---|
60 | . D ^DIR
|
---|
61 | . I $D(DIRUT) Q
|
---|
62 | . I Y=1 D
|
---|
63 | . . N I,LRY
|
---|
64 | . . K DIR
|
---|
65 | . . S DIR(0)="YO",DIR("A")="Check tests on panels also",DIR("B")="YES"
|
---|
66 | . . S DIR("?",1)="If you select a panel test do you want to also check"
|
---|
67 | . . S DIR("?")="the tests that make up the panel for an incomplete status."
|
---|
68 | . . D ^DIR
|
---|
69 | . . I $D(DIRUT) Q
|
---|
70 | . . S LRY=+Y
|
---|
71 | . . N DIC
|
---|
72 | . . S DIC="^LAB(60,",DIC(0)="AEFOQZ"
|
---|
73 | . . F D Q:+Y<1
|
---|
74 | . . . N LRTEST,LRTSTS
|
---|
75 | . . . D ^DIC Q:+Y<1
|
---|
76 | . . . S ^TMP("LR",$J,"T",+Y)=Y(0)
|
---|
77 | . . . I LRY S LRTEST=+Y,LREXPD="D LREXPD^LRWRKINC" D ^LREXPD
|
---|
78 | . I $D(DIRUT) Q
|
---|
79 | . K DIR
|
---|
80 | . S DIR(0)="YO"
|
---|
81 | . S DIR("A")="Do you want to exclude a specific test",DIR("B")="NO"
|
---|
82 | . D ^DIR
|
---|
83 | . I $D(DIRUT) Q
|
---|
84 | . I Y=1 D
|
---|
85 | . . N DIC
|
---|
86 | . . S DIC="^LAB(60,",DIC(0)="AEFOQ",DIC("S")="I '$D(^TMP(""LR"",$J,""T"",Y))"
|
---|
87 | . . F D ^DIC Q:+Y<1 S LREXTST(+Y)="",LREXTST=1
|
---|
88 | . K DIR
|
---|
89 | . S DIR(0)="YO",DIR("A")="Exclude non-required tests",DIR("B")="YES"
|
---|
90 | . S DIR("?",1)="Answer 'NO' if you WANT incomplete non-required test included on"
|
---|
91 | . S DIR("?")="the report. 'YES' if you DO NOT want non-required tests."
|
---|
92 | . D ^DIR
|
---|
93 | . I $D(DIRUT) Q
|
---|
94 | . S LREXNREQ=+Y
|
---|
95 | I $D(DIRUT) D LREND^LRWRKIN1 Q
|
---|
96 | S DIR(0)="YO",DIR("A")="Do you want an extended display",DIR("B")="NO"
|
---|
97 | S DIR("?")="Extended display will show UID and other referral information"
|
---|
98 | D ^DIR
|
---|
99 | I $D(DIRUT) D LREND^LRWRKIN1 Q
|
---|
100 | S LREXD=+Y
|
---|
101 | S %ZIS="Q" D ^%ZIS
|
---|
102 | I POP D LREND^LRWRKIN1 Q
|
---|
103 | I $D(IO("Q")) D Q
|
---|
104 | . S ZTRTN="DQ^LRWRKINC",ZTDESC="Lab incomplete test list",ZTSAVE("LR*")=""
|
---|
105 | . S ZTSAVE("^TMP(""LRWRKINC"",$J,")=""
|
---|
106 | . I $D(^TMP("LR",$J,"T")) S ZTSAVE("^TMP(""LR"",$J,""T"",")=""
|
---|
107 | . D ^%ZTLOAD,^%ZISC
|
---|
108 | . W !,"Request ",$S($G(ZTSK):"Queued - Task #"_ZTSK,1:"NOT Queued")
|
---|
109 | . D LREND^LRWRKIN1
|
---|
110 | ;
|
---|
111 | DQ ;
|
---|
112 | U IO
|
---|
113 | S (LRAA,LRINDEX,LRPAGE)=0,(LRX,LRY)=""
|
---|
114 | F S LRX=$O(^TMP("LRWRKINC",$J,LRX)) Q:LRX="" D
|
---|
115 | . N LRZ
|
---|
116 | . S LRZ=0
|
---|
117 | . F S LRZ=$O(^TMP("LRWRKINC",$J,LRX,LRZ)) Q:'LRZ D
|
---|
118 | . . N LRFAN,LRLAN,LRSTAR,LRLAST,LRY
|
---|
119 | . . F I=0,1 S LRZ(I)=$G(^TMP("LRWRKINC",$J,LRX,LRZ,I))
|
---|
120 | . . S LRFAN=$P(LRZ(1),"^",2),LRLAN=$P(LRZ(1),"^",3),LRSTAR=$P(LRZ(1),"^",4),LRLAST=$P(LRZ(1),"^",5)
|
---|
121 | . . I LRSTAR,LRLAST S LRY="From Date: "_$$FMTE^XLFDT(LRSTAR,"5DZ")_" To: "_$$FMTE^XLFDT(LRLAST,"5DZ")
|
---|
122 | . . E S LRY=" For Date: "_$$FMTE^XLFDT(LRLAST,"5DZ")_" From: "_LRFAN_" To: "_LRLAN
|
---|
123 | . . S LRINDEX=LRINDEX+1,LRNAME(LRINDEX)=$$LJ^XLFSTR($E($P(LRZ(0),"^"),1,20),22)_LRY
|
---|
124 | S LRINDEX=LRINDEX+1,LRNAME(LRINDEX)=$S(LRINDEX>1:"Sorted by "_$S(LRSORTBY=1:"Accession Area",1:"Test Name")_"; ",1:"")_"Controls Excluded: "_$S(LRNOCNTL:"YES",1:"NO")_"; Specific Tests: "_$S($D(^TMP("LR",$J,"T")):"YES",1:"NO")
|
---|
125 | S LRINDEX=LRINDEX+1,LRNAME(LRINDEX)="Exclude Specific Tests: "_$S(LREXTST:"YES",1:"NO")_"; Required Tests Only: "_$S(LREXNREQ:"YES",1:"NO")
|
---|
126 | I LRCUTOFF S LRINDEX=LRINDEX+1,LRNAME(LRINDEX)="For Tests Received Before: "_$$FMTE^XLFDT(LRCUTOFF,"5MZ")
|
---|
127 | D HED^LRWRKIN1 D URG^LRX
|
---|
128 | S LRX=""
|
---|
129 | F S LRX=$O(^TMP("LRWRKINC",$J,LRX)) Q:LRX="" D
|
---|
130 | . S LRZ=0
|
---|
131 | . F S LRZ=$O(^TMP("LRWRKINC",$J,LRX,LRZ)) Q:'LRZ D
|
---|
132 | . . I LRSORTBY=1 S LRAA("NAME")=$P(LRX,"^")
|
---|
133 | . . S X=^TMP("LRWRKINC",$J,LRX,LRZ,1)
|
---|
134 | . . S LRAA=$P(LRX,"^",2),LRAD=$P(X,"^"),LRFAN=$P(X,"^",2),LRLAN=$P(X,"^",3),LRSTAR=$P(X,"^",4),LAST=$P(X,"^",5),LRWDTL=$P(X,"^",6)
|
---|
135 | . . N LRX,LRZ
|
---|
136 | . . F S LRAD=$O(^LRO(68,LRAA,1,LRAD)) Q:LRAD<1!(LRAD>LAST) D
|
---|
137 | . . . I $G(LRSTAR) D AC Q
|
---|
138 | . . . S LRAN=LRFAN-1
|
---|
139 | . . . F S LRAN=$O(^LRO(68,LRAA,1,LRAD,1,LRAN)) Q:'LRAN!(LRAN>LRLAN) D
|
---|
140 | . . . . S LREND=0
|
---|
141 | . . . . D TD Q:LREND
|
---|
142 | . . . . I 'LRVERVER D LST1^LRWRKIN1,TESTS
|
---|
143 | D X^LRWRKIN1
|
---|
144 | I LREND D LREND^LRWRKIN1 Q
|
---|
145 | D EQUALS^LRX D WAIT^LRWRKIN1:$E(IOST,1,2)="C-"
|
---|
146 | D LREND^LRWRKIN1
|
---|
147 | Q
|
---|
148 | ;
|
---|
149 | TD ;
|
---|
150 | I '$D(^LRO(68,LRAA,1,LRAD,1,LRAN,0)) S LREND=1 Q
|
---|
151 | I LRNOCNTL,$P($G(^LRO(68,LRAA,1,LRAD,1,LRAN,0)),"^",2)=62.3 S LREND=1 Q
|
---|
152 | S LRVERVER=1,I=0
|
---|
153 | F S I=$O(^LRO(68,LRAA,1,LRAD,1,LRAN,4,I)) Q:I<.5 I $D(^(I,0)) S LRVERVER=(LRVERVER&$P(^(0),U,5))
|
---|
154 | I '$D(^LRO(68,LRAA,1,LRAD,1,LRAN,4,0)) S LREND=1
|
---|
155 | Q
|
---|
156 | ;
|
---|
157 | TESTS Q:'$D(^LRO(68,LRAA,1,LRAD,1,LRAN,4,0))
|
---|
158 | N LRI
|
---|
159 | S LRI=0
|
---|
160 | F S LRI=$O(^LRO(68,LRAA,1,LRAD,1,LRAN,4,LRI)) Q:LRI<.5 D
|
---|
161 | . N LR60,LRURG,LRTSTN
|
---|
162 | . S LRI(0)=$G(^LRO(68,LRAA,1,LRAD,1,LRAN,4,LRI,0)),LRURG=+$P(LRI(0),U,2)
|
---|
163 | . S LR60=+LRI(0)
|
---|
164 | . I $D(^TMP("LR",$J,"T")),'$D(^TMP("LR",$J,"T",LR60)) Q ; Not specific test
|
---|
165 | . I LREXTST,$D(LREXTST(LR60)) Q ; Exclude specific test
|
---|
166 | . I $P(LRI(0),U,5) Q ; Complete date
|
---|
167 | . I LRCUTOFF,'LRDLA Q ; Uncollected
|
---|
168 | . I LRCUTOFF,LRCUTOFF<LRDLA Q ; After cut-off date/time
|
---|
169 | . S LR60(0)=$G(^LAB(60,LR60,0)) ; Get zeroth node from file #60
|
---|
170 | . I LREXNREQ,'$P(LR60(0),"^",17) Q ; Exclude non-required tests
|
---|
171 | . S LRTSTN=$P(LR60(0),U) ; Test name
|
---|
172 | . I $P(LR60(0),"^")="" S LRTSTN="MISSING FILE 60 - "_LR60
|
---|
173 | . I LRSORTBY=1 S LRTSTN=LRAA("NAME")_"^"_LRTSTN
|
---|
174 | . S Y=$G(^LRO(68,LRAA,1,LRAD,1,LRAN,3))
|
---|
175 | . S LRST=$S($L($P(LRI(0),U,3)):"Load/work list",$L($P(Y,U,3)):"In lab",1:"Not in lab")
|
---|
176 | . D REF
|
---|
177 | . S ^TMP($J,LRTSTN,LRURG,$P(LRACC," ",1)_"^"_+$P(LRDX,"^",3),LRAN)=LRST_U_SSN_U_PNM_U_$P(LRDX,U,7)_U_$P(LRDLA,"^",2)_U_LRMAN_U_LRACC
|
---|
178 | . I $G(LREXD) S ^TMP($J,LRTSTN,LRURG,$P(LRACC," ",1)_"^"_+$P(LRDX,"^",3),LRAN,.3)=$G(^LRO(68,LRAA,1,LRAD,1,LRAN,.3))
|
---|
179 | Q
|
---|
180 | ;
|
---|
181 | REF ; if referred test, get referral status
|
---|
182 | N LREVNT,LRUID
|
---|
183 | S LRUID=$P($G(^LRO(68,LRAA,1,LRAD,1,LRAN,.3)),"^"),LRMAN=$P(X,"^",10)
|
---|
184 | I LRMAN S LRMAN=$P($G(^LAHM(62.8,LRMAN,0)),"^")
|
---|
185 | S LREVNT=$$STATUS^LREVENT(LRUID,+X,LRMAN)
|
---|
186 | I LREVNT'="" S LRST=$P(LREVNT,"^")
|
---|
187 | Q
|
---|
188 | ;
|
---|
189 | PHD ;
|
---|
190 | S LREND=0
|
---|
191 | I $P(LRAA(0),"^",3)="Y" D STAR^LRWU3
|
---|
192 | I $G(LRSTAR) Q
|
---|
193 | D ADATE^LRWU Q:LREND
|
---|
194 | S LAST=LRAD,LRAD=LRAD-1
|
---|
195 | D LRAN^LRWU3
|
---|
196 | Q
|
---|
197 | ;
|
---|
198 | AC S LRTK=LRSTAR-.00001
|
---|
199 | F S LRTK=$O(^LRO(68,LRAA,1,LRAD,1,"E",LRTK)) Q:LRTK<1!(LAST>1&(LRTK\1>LAST)) D
|
---|
200 | . S LRAN=0
|
---|
201 | . F S LRAN=$O(^LRO(68,LRAA,1,LRAD,1,"E",LRTK,LRAN)) Q:'LRAN D
|
---|
202 | . . S LREND=0
|
---|
203 | . . I '$D(^LRO(68,LRAA,1,LRAD,1,LRAN,0)) S LREND=1 Q
|
---|
204 | . . D TD Q:LREND
|
---|
205 | . . ;I LRUNC!('LRVERVER) D LST,TESTS
|
---|
206 | . . I 'LRVERVER D LST1^LRWRKIN1,TESTS
|
---|
207 | Q
|
---|
208 | ;
|
---|
209 | % R %:DTIME Q:%=""!(%["N")!(%["Y") W !,"Answer 'Y' or 'N': " G %
|
---|
210 | Q
|
---|
211 | ;
|
---|
212 | LREXPD ;Include panel test in list when selecting specific tests
|
---|
213 | I $G(S1(+$G(S1))) S ^TMP("LR",$J,"T",S1(S1))=^LAB(60,S1(S1),0)
|
---|
214 | Q
|
---|