| [613] | 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
 | 
|---|