1 | LA7SBCR2 ;DALOI/JMC - Shipping Barcode Reader Utility ; 16 Sept 2004
|
---|
2 | ;;5.2;AUTOMATED LAB INSTRUMENTS;**27,46,64**;Sep 27, 1994
|
---|
3 | ;
|
---|
4 | Q
|
---|
5 | ;
|
---|
6 | SITE(LA7,LA7PROM,LA7BAR) ; Setup remote site info.
|
---|
7 | ; Input:
|
---|
8 | ; LA7=array to return values
|
---|
9 | ; LA7PROM=prompt to display to user
|
---|
10 | ; LA7BAR=0/1 using barcode reader
|
---|
11 | ; Screen: Second piece of bar-code must = SITE
|
---|
12 | ; Returns array LA7()
|
---|
13 | ;
|
---|
14 | ; If successful ERROR=0
|
---|
15 | ; IDTYPE=source of UID
|
---|
16 | ; LPC=longitudinal parity check of SM barcode info
|
---|
17 | ; RPSITE=primary sending site ien^name^station number
|
---|
18 | ; RSITE=sending site ien^name^station number
|
---|
19 | ; SCFG=pointer to shipping configuration (file #62.9)^name
|
---|
20 | ; SDT=Shipping date/time
|
---|
21 | ; SMID=shipping manifest id
|
---|
22 | ;
|
---|
23 | ; unsuccessful ERROR=>0^error message
|
---|
24 | ;
|
---|
25 | N LA7X,X,Y
|
---|
26 | ; Initialize array.
|
---|
27 | F Y="ERROR","IDTYPE","LPC","RPSITE","RSITE","SCFG","SDT","SMID" S LA7(Y)=""
|
---|
28 | S LA7PROM=$G(LA7PROM,"Site")
|
---|
29 | I LA7BAR D BAR
|
---|
30 | ;
|
---|
31 | I 'LA7BAR D
|
---|
32 | . N DIR,DIRUT,DTOUT,DUOUT,X,Y
|
---|
33 | . S DIR(0)="PO^62.9:EM",DIR("A")="Select Shipping Configuration"
|
---|
34 | . S DIR("S")="I $P(^LAHM(62.9,Y,0),U,3)=DUZ(2),$P(^LAHM(62.9,Y,0),U,4)"
|
---|
35 | . D ^DIR
|
---|
36 | . I Y<1 S LA7("ERROR")=1 Q
|
---|
37 | . S LA7("SCFG")=Y
|
---|
38 | ;
|
---|
39 | I 'LA7("ERROR") D
|
---|
40 | . I LA7("SCFG") D GETSITE Q
|
---|
41 | . I 'LA7("SCFG") S LA7("ERROR")=3 Q
|
---|
42 | ;
|
---|
43 | I LA7("ERROR") D
|
---|
44 | . S LA7("ERROR")=LA7("ERROR")_"^"_$P($T(ERROR+LA7("ERROR")),";;",2)
|
---|
45 | ;
|
---|
46 | Q
|
---|
47 | ;
|
---|
48 | ;
|
---|
49 | GETSITE ; Retrieve site info from institution file for this shipping configuration.
|
---|
50 | ; Set ID type from shipping configuration.
|
---|
51 | N LRX,LRY,X,Y
|
---|
52 | S Y(0)=$G(^LAHM(62.9,+LA7("SCFG"),0))
|
---|
53 | S LA7("IDTYPE")=$P(Y(0),"^",5)
|
---|
54 | ;
|
---|
55 | ; *** Remove line when other id types supported. ***
|
---|
56 | I LA7("IDTYPE")>1 S LA7("ERROR")=4
|
---|
57 | ;
|
---|
58 | S LRX=$P(Y(0),"^",2)
|
---|
59 | S LRY=$$GET1^DIQ(4,LRX_",",.01)
|
---|
60 | I LRX,LRY'="" D
|
---|
61 | . S LRY(99)=$$RETFACID^LA7VHLU2(LRX,2,1)
|
---|
62 | . S LA7("RSITE")=LRX_"^"_LRY_"^"_LRY(99)
|
---|
63 | E S LA7("ERROR")=5
|
---|
64 | ;
|
---|
65 | S LRX=$P(Y(0),"^",6)
|
---|
66 | S LRY=$$GET1^DIQ(4,LRX_",",.01)
|
---|
67 | I LRX,LRY'="" D
|
---|
68 | . S LRY(99)=$$RETFACID^LA7VHLU2(LRX,2,1)
|
---|
69 | . S LA7("RPSITE")=LRX_"^"_LRY_"^"_LRY(99)
|
---|
70 | E S LA7("ERROR")=5
|
---|
71 | Q
|
---|
72 | ;
|
---|
73 | ;
|
---|
74 | BAR ; Read SM bar code
|
---|
75 | ;
|
---|
76 | N LA7BCS,Y
|
---|
77 | ;
|
---|
78 | S Y=$$RD^LA7SBCR(.LA7PROM,1),LA7=""
|
---|
79 | I Y=0 S LA7("ERROR")=1 Q
|
---|
80 | I Y<1 S LA7("ERROR")=2 Q
|
---|
81 | ;
|
---|
82 | ; barcode info & longitudinal parity check
|
---|
83 | ; original bar code style
|
---|
84 | I $E(Y,1,11)="1^STX^SITE^" D
|
---|
85 | . S LA7=$P(Y,"STX^SITE^",2)
|
---|
86 | . S LA7=$P(LA7,"^ETX",1)
|
---|
87 | . S LA7("LPC")=$P(Y,"^ETX",2)
|
---|
88 | ; new bar code style
|
---|
89 | I $E(Y,1,7)="1^SITE^" D
|
---|
90 | . S LA7=$P(Y,"^",3,5)
|
---|
91 | . S LA7("LPC")=$P(Y,"^",6)
|
---|
92 | . S LA7BCS=1
|
---|
93 | ;
|
---|
94 | I LA7="" S LA7("ERROR")=2 Q
|
---|
95 | ;
|
---|
96 | I $P(LA7,"^")'="" D
|
---|
97 | . N X,Y,Z
|
---|
98 | . S Z=$$FINDSITE^LA7VHLU2($P(LA7,"^"),2,1)
|
---|
99 | . I Z="" S LA7("ERROR")=5 Q
|
---|
100 | . S (X,Y)=0
|
---|
101 | . F S X=$O(^LAHM(62.9,"C",Z,X)) Q:'X D Q:Y
|
---|
102 | . . S X(0)=$G(^LAHM(62.9,X,0))
|
---|
103 | . . I $P(X(0),"^",3)=DUZ(2),$P(X(0),"^",4) S LA7("SCFG")=X_"^"_$P(X(0),"^"),Y=1
|
---|
104 | ;
|
---|
105 | ; shipping date/time
|
---|
106 | I $P(LA7,"^",2) S LA7("SDT")=$$DT^LA7SBCR($P(LA7,"^",2))
|
---|
107 | ;
|
---|
108 | ; shipping manifest id
|
---|
109 | I $P(LA7,"^",3)'="" S LA7("SMID")=$P(LA7,"^",3)
|
---|
110 | ;
|
---|
111 | Q
|
---|
112 | ;
|
---|
113 | ;
|
---|
114 | ERROR ;; Code/Text of error messages
|
---|
115 | 1 ;;User timeout/abort;;
|
---|
116 | 2 ;;Incorrect barcode format;;
|
---|
117 | 3 ;;No Shipping Configuration identified in file #62.9;;
|
---|
118 | 4 ;;Sender's Specimen ID source not presently supported;;
|
---|
119 | 5 ;;No entry in INSTITUTION file #4;;
|
---|