1 | LA7SMP ;DALOI/JMC - Shipping Manifest Print ;11/25/96 14:39
|
---|
2 | ;;5.2;AUTOMATED LAB INSTRUMENTS;**27,45,46,64**;Sep 27, 1994
|
---|
3 | EN ;
|
---|
4 | D EN^DDIOL("Print Shipping Manifest","","!!")
|
---|
5 | D KILL^LA7SMP0
|
---|
6 | D INIT^LA7SMP0
|
---|
7 | I LA7QUIT D KILL^LA7SMP0 Q
|
---|
8 | S LA7SM=$$SELSM^LA7SMU(+LA7SCFG)
|
---|
9 | I LA7SM<0 D Q
|
---|
10 | . D EN^DDIOL($P(LA7SM,"^",2),"","!?5")
|
---|
11 | . D KILL^LA7SMP0
|
---|
12 | S LA7CHK=1 ; flag to check for missing info.
|
---|
13 | W !
|
---|
14 | D DEV
|
---|
15 | D END^LA7SMP0
|
---|
16 | Q
|
---|
17 | ;
|
---|
18 | ;
|
---|
19 | DEV ; Alternate entry point when user has already selected a manifest.
|
---|
20 | ;
|
---|
21 | ; Determine if bar codes on manifest
|
---|
22 | S LA7SBC=$$GET1^DIQ(62.9,+LA7SCFG_",",.09,"I")
|
---|
23 | ; If not in shipping status then don't print, save paper
|
---|
24 | I $P($G(^LAHM(62.8,+LA7SM,0)),"^",3)<4 S LA7SBC=0
|
---|
25 | I LA7SBC,$P($G(^LAHM(62.8,+LA7SM,0)),"^",3)=4 D
|
---|
26 | . N DIR,DIRUT,DTOUT,DUOUT,X,Y
|
---|
27 | . S DIR(0)="YO",DIR("A")="Print barcodes on manifest",DIR("B")="YES"
|
---|
28 | . D ^DIR
|
---|
29 | . I $D(DIRUT) S LA7EXIT=1
|
---|
30 | . I Y'=1 S LA7SBC=0
|
---|
31 | I $G(LA7EXIT) Q
|
---|
32 | ;
|
---|
33 | S %ZIS="MQ" D ^%ZIS
|
---|
34 | I POP D Q
|
---|
35 | . D HOME^%ZIS
|
---|
36 | . S LA7EXIT=1
|
---|
37 | I $D(IO("Q")) D Q
|
---|
38 | . N ZTDTH,ZTSK,ZTRTN,ZTIO,ZTSAVE
|
---|
39 | . S ZTRTN="DQ^LA7SMP",ZTSAVE("LA7*")="",ZTDESC="Lab Shipping Manifest Print"
|
---|
40 | . D ^%ZTLOAD,^%ZISC
|
---|
41 | . D EN^DDIOL("Request "_$S($G(ZTSK):"queued - Task #"_ZTSK,1:"NOT queued"),"","!")
|
---|
42 | . S LA7EXIT=1
|
---|
43 | DQ ;
|
---|
44 | ;
|
---|
45 | U IO
|
---|
46 | ;
|
---|
47 | S LA7SM(0)=$G(^LAHM(62.8,+LA7SM,0))
|
---|
48 | S LA7SCFG=+$P(LA7SM(0),"^",2),LA7SCFG(0)=$G(^LAHM(62.9,LA7SCFG,0))
|
---|
49 | S (LA7DC,LA7EXIT,LA7END,LA7ITEM,LA7PAGE,LA7SMR,LA760,LA762801)=0
|
---|
50 | ;
|
---|
51 | ; Get collecting site's names and station numbers
|
---|
52 | D GETSITE^LA7SMP($P(LA7SCFG(0),"^",2),$P(LA7SCFG(0),"^",3),.LA7FSITE,.LA7TSITE)
|
---|
53 | ;
|
---|
54 | ; Flag - skip if accession deleted
|
---|
55 | S LA7SKIP=0
|
---|
56 | ; Check manifest for missing info.
|
---|
57 | I $G(LA7CHK)="" S LA7CHK=1
|
---|
58 | ;
|
---|
59 | S LA7NOW=$$HTE^XLFDT($H,"1M")
|
---|
60 | ; Manifest status
|
---|
61 | S LA7SMST=$P(LA7SM(0),"^",3)
|
---|
62 | I LA7SMST=4 D
|
---|
63 | . ; Get shipping date
|
---|
64 | . S LA7SDT=$$SMED^LA7SMU(LA7SM,"SM05")
|
---|
65 | . ; Flag to print receipt.
|
---|
66 | . I IOST["P-" S LA7SMR=$P(LA7SCFG(0),"^",10)
|
---|
67 | ;
|
---|
68 | ; Set barcode flag to "off"
|
---|
69 | I LA7SBC,IOST'["P-" S LA7SBC=0
|
---|
70 | ;
|
---|
71 | S $P(LA7SMST,"^",2)=$$EXTERNAL^DILFD(62.8,.03,"",LA7SMST)
|
---|
72 | S LA7LINE="",$P(LA7LINE,"-",IOM)=""
|
---|
73 | S LA7SVIA=$S($P(LA7SM(0),"^",4):$$GET1^DIQ(62.92,$P(LA7SM(0),"^",4)_",",.01),1:"None Specified")
|
---|
74 | ;
|
---|
75 | F S LA762801=$O(^LAHM(62.8,+LA7SM,10,LA762801)) Q:'LA762801 D
|
---|
76 | . F I=0,1,2 S LA762801(I)=$G(^LAHM(62.8,+LA7SM,10,LA762801,I))
|
---|
77 | . I $P(LA762801(0),"^",8)=0 Q ; Test previously "removed".
|
---|
78 | . S LA7SKIP=$$CHKTST^LA7SMU(+LA7SM,LA762801)
|
---|
79 | . I LA7SKIP,LA7SKIP<3 Q ; Accession/test deleted
|
---|
80 | . I $G(LA7CHK) D CHKREQI^LA7SM2(+LA7SM,LA762801)
|
---|
81 | . S ^TMP("LA7SM",$J,+$P(LA762801(0),"^",7),+$P(LA762801(0),"^",9),$P(LA762801(0),"^",5),LA762801)=""
|
---|
82 | . D BUILDRI^LA7SM2
|
---|
83 | ;
|
---|
84 | S (LA7SCOND,LA7SCONT,LA7UID)=""
|
---|
85 | ;
|
---|
86 | I '$D(^TMP("LA7SM",$J)) D
|
---|
87 | . D HED^LA7SMP0
|
---|
88 | . W !!,$$CJ^XLFSTR("No entries to print",IOM)
|
---|
89 | ;
|
---|
90 | S LA7ROOT="^TMP(""LA7SM"",$J)"
|
---|
91 | F S LA7ROOT=$Q(@LA7ROOT) Q:LA7ROOT="" Q:$QS(LA7ROOT,1)'="LA7SM"!($QS(LA7ROOT,2)'=$J) D Q:LA7EXIT
|
---|
92 | . I LA7EXIT Q
|
---|
93 | . I $L(LA7UID),LA7UID'=$QS(LA7ROOT,5) W !,LA7LINE
|
---|
94 | . I LA7SCOND'=$QS(LA7ROOT,3)!(LA7SCONT'=$QS(LA7ROOT,4)) D Q:LA7EXIT
|
---|
95 | . . I $L(LA7UID),LA7UID=$QS(LA7ROOT,5) W !,LA7LINE
|
---|
96 | . . I LA7PAGE,+LA7SMST'=4 W ! D WARN^LA7SMP0
|
---|
97 | . . S LA7SCOND=$QS(LA7ROOT,3),LA7SCONT=$QS(LA7ROOT,4)
|
---|
98 | . . D HED^LA7SMP0 S LA7UID=""
|
---|
99 | . S LA762801=$QS(LA7ROOT,6)
|
---|
100 | . F I=0,.1,2,5 S LA762801(I)=$G(^LAHM(62.8,+LA7SM,10,LA762801,I))
|
---|
101 | . S LA760=+$P(LA762801(0),"^",2) ; File #60 test ien
|
---|
102 | . I LA7UID'=$QS(LA7ROOT,5) D Q:LA7EXIT
|
---|
103 | . . S LA7UID=$QS(LA7ROOT,5)
|
---|
104 | . . S LRDFN=+LA762801(0) D PTID^LA7SMP0
|
---|
105 | . . S X=$Q(^LRO(68,"C",LA7UID))
|
---|
106 | . . I LA7UID'=$QS(X,3) S LA7SKIP=1 ; Skip - UID missing.
|
---|
107 | . . S LA7AA=+$QS(X,4),LA7AD=+$QS(X,5),LA7AN=+$QS(X,6)
|
---|
108 | . . S LA7SKIP=$$CHKTST^LA7SMU(+LA7SM,LA762801)
|
---|
109 | . . I LA7SKIP,LA7SKIP<3 Q ; Skip - accession/test deleted.
|
---|
110 | . . S LA7ACC=$P($G(^LRO(68,LA7AA,1,LA7AD,1,LA7AN,.2),"Accession not available"),"^")
|
---|
111 | . . S X=$P($G(^LRO(68,LA7AA,1,LA7AD,1,LA7AN,0),"Not available"),U,8)
|
---|
112 | . . S LA7PROV=$S(X>0:X,1:"")_"^"_$S(X>0:$$PRAC^LRX(X),1:X)
|
---|
113 | . . S LA7CDT=$P($G(^LRO(68,LA7AA,1,LA7AD,1,LA7AN,3),"Not available"),U,1)
|
---|
114 | . . S LA7SPEC=$G(^LRO(68,LA7AA,1,LA7AD,1,LA7AN,5,1,0),"Not available")
|
---|
115 | . . I LA7SPEC S LA7SPEC(0)=$G(^LAB(61,+LA7SPEC,0))
|
---|
116 | . . E S LA7SPEC(0)="Specimen info not assigned"
|
---|
117 | . . S LA762=$P(LA7SPEC,"^",2)
|
---|
118 | . . I LA762 S LA762(0)=$G(^LAB(62,LA762,0))
|
---|
119 | . . E S LA762(0)="Collection info not assigned"
|
---|
120 | . . S LA7ITEM=LA7ITEM+1
|
---|
121 | . . I ($Y+12)>IOSL D Q:LA7EXIT
|
---|
122 | . . . W !
|
---|
123 | . . . I +LA7SMST'=4 D WARN^LA7SMP0
|
---|
124 | . . . D HED^LA7SMP0
|
---|
125 | . . D SH^LA7SMP0
|
---|
126 | . I LA7SKIP,LA7SKIP<3 Q ; Skip - accession/test deleted.
|
---|
127 | . I ($Y+6)>IOSL D Q:LA7EXIT
|
---|
128 | . . W !,LA7LINE
|
---|
129 | . . I +LA7SMST'=4 W ! D WARN^LA7SMP0
|
---|
130 | . . D HED^LA7SMP0 Q:LA7EXIT
|
---|
131 | . . S LA7DC=1 D SH^LA7SMP0
|
---|
132 | . W !,?11,$E(LA7LINE,1,41)
|
---|
133 | . W !,?11,$P(^LAB(60,LA760,0),"^",1),?43,$P(LA7SPEC(0),"^")
|
---|
134 | . I +LA7SMST'=4 D
|
---|
135 | . . N LA7TCOST
|
---|
136 | . . S LA7TCOST=$$GET1^DIQ(60,LA760_",",1,"E") Q:'$L(LA7TCOST)
|
---|
137 | . . W:$X>(IOM-15) ! W ?(IOM-15)," Cost: $",$FN(LA7TCOST,",",2)
|
---|
138 | . I LA762801(.1)'="" D
|
---|
139 | . . K ^UTILITY($J),LA7CMT
|
---|
140 | . . S DIWL=1,DIWR=IOM-13,DIWF=""
|
---|
141 | . . S X="Relevant clinical information: "_LA762801(.1) D ^DIWP
|
---|
142 | . . M LA7CMT=^UTILITY($J,"W",DIWL)
|
---|
143 | . . W ! D CMT^LA7SMP0 W !
|
---|
144 | . W !,?13,"VA NLT Code [Name]: "
|
---|
145 | . S LA7NLT=$$GET1^DIQ(64,+$$GET1^DIQ(60,LA760_",",64,"I")_",",1) ; NLT code.
|
---|
146 | . W $S($L(LA7NLT):LA7NLT,1:"*** None specified ***")
|
---|
147 | . S LA7NLTN=""
|
---|
148 | . I $L(LA7NLT) S LA7NLTN=$$GET1^DIQ(64,+$$GET1^DIQ(60,LA760_",",64,"I")_",",.01) ; NLT code test name.
|
---|
149 | . I $L(LA7NLTN) W:($X+$L(LA7NLTN)+3)>IOM !,?32 W " [",LA7NLTN,"]"
|
---|
150 | . I $P(LA7SM(0),"^",5) D ; Print non-VA test code info
|
---|
151 | . . N LA7X,LA7Y,LA7Z
|
---|
152 | . . S LA7X=$P($G(^DIC(4,+$P(LA7SCFG(0),"^",3),0),"UNKNOWN"),"^",1)_" Order Code [Name]: "
|
---|
153 | . . W !,?11,LA7X,$S($L($P(LA762801(5),"^")):$P(LA762801(5),"^"),1:"*** None specified ***")," "
|
---|
154 | . . S LA7Y="["_$S($L($P(LA762801(5),"^",2)):$P(LA762801(5),"^",2),1:"*** None specified ***")_"]"
|
---|
155 | . . I $L(LA7Y)<(IOM-$X) W LA7Y Q
|
---|
156 | . . S LA7X=IOM-$X W $E(LA7Y,1,LA7X)
|
---|
157 | . . S LA7Y=$E(LA7Y,LA7X+1,$L(LA7Y)),LA7Z=IOM-11
|
---|
158 | . . F S LA7X=$E(LA7Y,1,LA7Z) Q:LA7X="" W !,?11,LA7X S LA7Y=$E(LA7Y,LA7Z+1,$L(LA7Y))
|
---|
159 | ;
|
---|
160 | I LA7EXIT Q
|
---|
161 | ;
|
---|
162 | W !,LA7LINE,!!,"End of Shipping Manifest"
|
---|
163 | ;
|
---|
164 | I +LA7SMST'=4 D
|
---|
165 | . I IOM<131 W !
|
---|
166 | . D WARN^LA7SMP0
|
---|
167 | ;
|
---|
168 | ; Print shipping manifest receipt.
|
---|
169 | I LA7SMR D
|
---|
170 | . ; Flag that we're now printing receipt
|
---|
171 | . S $P(LA7SMR,"^",2)=1
|
---|
172 | . D HED^LA7SMP0
|
---|
173 | . W !!,"Number of specimens: ",LA7ITEM
|
---|
174 | . W !!,"Receipted by: ",$$REPEAT^XLFSTR("_",40)
|
---|
175 | . W !!," Date/time: ",$$REPEAT^XLFSTR("_",20)
|
---|
176 | ;
|
---|
177 | ; Print error listing if any.
|
---|
178 | I $O(LA7ERR(""))'="" D
|
---|
179 | . S $P(LA7SMR,"^",2)=2 ; Flag printing of error listing
|
---|
180 | . D HED^LA7SMP0
|
---|
181 | . S LA7I=0
|
---|
182 | . F S LA7I=$O(LA7ERR(LA7I)) Q:LA7I="" D Q:LA7EXIT
|
---|
183 | . . I ($Y+6)>IOSL D HED^LA7SMP0 Q:LA7EXIT
|
---|
184 | . . W LA7ERR(LA7I)
|
---|
185 | . . S LA7ROOT="^TMP(""LA7ERR"",$J,LA7I,$P(LA7SM,""^""))"
|
---|
186 | . . F S LA7ROOT=$Q(@LA7ROOT) Q:$QS(LA7ROOT,1)'="LA7ERR"!($QS(LA7ROOT,2)'=$J)!($QS(LA7ROOT,3)'=LA7I)!($QS(LA7ROOT,4)'=$P(LA7SM,"^")) D Q:LA7EXIT
|
---|
187 | . . . I ($Y+6)>IOSL D HED^LA7SMP0 Q:LA7EXIT W LA7ERR(LA7I)," (Cont'd)"
|
---|
188 | . . . W !,?10,"UID: ",$QS(LA7ROOT,5)," Test: ",$$GET1^DIQ(60,$QS(LA7ROOT,6)_",",.01)
|
---|
189 | . . W !!
|
---|
190 | ;
|
---|
191 | I $D(ZTQUEUED) D END^LA7SMP0
|
---|
192 | ;
|
---|
193 | Q
|
---|
194 | ;
|
---|
195 | ;
|
---|
196 | GETSITE(LA7X,LA7Y,LA7FS,LA7TS) ; Setup variables for ordering and host sites
|
---|
197 | ;
|
---|
198 | ; Call with LA7X = File #4 ordering site ien
|
---|
199 | ; LA7Y = File #4 host site ien
|
---|
200 | ; LA7FS = array to return collecting site info
|
---|
201 | ; LA7TS = array to return host site info
|
---|
202 | ;
|
---|
203 | ; Get ordering site's names and station numbers
|
---|
204 | S LA7FS=$$GET1^DIQ(4,LA7X_",",.01)
|
---|
205 | I LA7FS="" S LA7FS="UNKNOWN:Entry #"_+LA7X
|
---|
206 | S LA7FS(99)=$$RETFACID^LA7VHLU2(LA7X,2,1)
|
---|
207 | I LA7FS(99)="" S LA7FS(99)="UNK: #"_+LA7X
|
---|
208 | ;
|
---|
209 | ; Get host site's names and station numbers
|
---|
210 | S LA7TS=$$GET1^DIQ(4,LA7Y_",",.01)
|
---|
211 | I LA7TS="" S LA7TS="UNKNOWN:Entry #"_+LA7Y
|
---|
212 | S LA7TS(99)=$$RETFACID^LA7VHLU2(LA7X,1,1)
|
---|
213 | I LA7TS(99)="" S LA7TS(99)="UNK: #"_+LA7Y
|
---|
214 | Q
|
---|
215 | ;
|
---|
216 | ;
|
---|
217 | ASK(LA7SM) ; Ask it user wants to print manifest.
|
---|
218 | ; Call with array LA7SM = ien of 62.8^.01 field of #62.8
|
---|
219 | ;
|
---|
220 | N DIR,DIRUT,DTOUT,DUOUT,X,Y
|
---|
221 | ;
|
---|
222 | S DIR(0)="YO",DIR("A")="Print Shipping Manifest",DIR("B")="NO"
|
---|
223 | D ^DIR Q:$D(DIRUT)
|
---|
224 | I Y=1 D DEV,END^LA7SMP0
|
---|
225 | ;
|
---|
226 | Q
|
---|