1 | RMPRPIUA ;HINCIO/ODJ - APIs for file 661.7 ;3/8/01
|
---|
2 | ;;3.0;PROSTHETICS;**61**;Feb 09, 1996
|
---|
3 | Q
|
---|
4 | ;
|
---|
5 | ; SCAN - If scanned an item's barcode locate record from
|
---|
6 | ; Prosthetic Current Stock file 661.7
|
---|
7 | ;
|
---|
8 | ; Inputs:
|
---|
9 | ; RMPR7 - array containing...
|
---|
10 | ; RMPR7("STATION") - Station ien
|
---|
11 | ; RMPR7("HCPCS") - HCPCS code (contained in bar code)
|
---|
12 | ; RMPR7("DATE&TIME") - Date&Time (contained in bar code)
|
---|
13 | ;
|
---|
14 | ; Outputs:
|
---|
15 | ; RMPR7 - complete array for the 661.7 record read (if any)...
|
---|
16 | ; RMPR7("IEN")
|
---|
17 | ; RMPR7("STATION") - Station Name
|
---|
18 | ; (nb will now be in external form)
|
---|
19 | ; RMPR7("HCPCS") -
|
---|
20 | ; RMPR7("SEQUENCE") -
|
---|
21 | ; RMPR7("HCPCS ITEM") -
|
---|
22 | ; RMPR7("LOCATION") -
|
---|
23 | ; RMPR7("QUANTITY") -
|
---|
24 | ; RMPR7("VALUE") -
|
---|
25 | ; RMPR7("UNIT") -
|
---|
26 | ;
|
---|
27 | ; RMPREXC - exit condition
|
---|
28 | ; 0 - normal, everything ok
|
---|
29 | ; 1 - multi-instance but with station match (RMPR7 set)
|
---|
30 | ; 2 - single instance but with
|
---|
31 | ; station mis-match (RMPR7 set)
|
---|
32 | ; 3 - multi-instance and station mis-match (RMPR7 not set)
|
---|
33 | ; RMPRERR - error code returned by function
|
---|
34 | ; 0 - no error
|
---|
35 | ; 1 - null HCPCS input
|
---|
36 | ; 2 - null Date&Time entered
|
---|
37 | ; 3 - corrupt file (sequence but no ien)
|
---|
38 | ; 4 - corrupt file (ien but no record)
|
---|
39 | ; 5 - error reading 661.7
|
---|
40 | ; 99 - no instances found for input HCPCS and Date&Time
|
---|
41 | SCAN(RMPR7,RMPREXC) ;
|
---|
42 | N RMPRERR,RMPRC,RMPRSEQ,RMPRIEN,RMPRS,RMPRIEN1,RMPRIEN2,RMPRDTTM
|
---|
43 | S RMPRERR=0
|
---|
44 | S RMPREXC=0
|
---|
45 | S RMPR7("STATION")=$G(RMPR7("STATION"))
|
---|
46 | I $G(RMPR7("HCPCS"))="" S RMPRERR=1 G SCANX
|
---|
47 | I $G(RMPR7("DATE&TIME"))="" S RMPRERR=2 G SCANX
|
---|
48 | S RMPRDTTM=RMPR7("DATE&TIME")
|
---|
49 | S RMPRC=0,RMPRIEN1="",RMPRIEN2="",RMPR7("IEN")=""
|
---|
50 | S RMPRSEQ=""
|
---|
51 | ;
|
---|
52 | ; Get ien for current stock record
|
---|
53 | ; Record number of instances for same HCPCS and Date&Time in
|
---|
54 | ; RMPRC (more than 1 should be very, very rare)
|
---|
55 | ; RMPRIEN1 is IEN for first instance
|
---|
56 | ; RMPRIEN2 is ien for any instance with station ien matching input
|
---|
57 | L +^RMPR(661.7,"XHDS",RMPR7("HCPCS"),RMPRDTTM)
|
---|
58 | F S RMPRSEQ=$O(^RMPR(661.7,"XHDS",RMPR7("HCPCS"),RMPRDTTM,RMPRSEQ)) Q:RMPRSEQ="" D Q:RMPRERR
|
---|
59 | . S RMPRIEN=$O(^RMPR(661.7,"XHDS",RMPR7("HCPCS"),RMPRDTTM,RMPRSEQ,""))
|
---|
60 | . I RMPRIEN="" S RMPRERR=3 Q
|
---|
61 | . I '$D(^RMPR(661.7,RMPRIEN,0)) S RMPRERR=4 Q
|
---|
62 | . S RMPRS=^RMPR(661.7,RMPRIEN,0)
|
---|
63 | . S RMPRC=RMPRC+1
|
---|
64 | . S RMPR7("UNIT")=$P(RMPRS,U,9)
|
---|
65 | . I RMPR7("STATION")=$P(RMPRS,"^",5) S RMPRIEN2=RMPRIEN
|
---|
66 | . I RMPRC=1 S RMPRIEN1=RMPRIEN
|
---|
67 | . Q
|
---|
68 | I RMPRERR G SCANU
|
---|
69 | I 'RMPRC S RMPRERR=99 G SCANU
|
---|
70 | ;
|
---|
71 | ; Set exit condition
|
---|
72 | I RMPRC>1 D
|
---|
73 | . I RMPRIEN2'="" S RMPR7("IEN")=RMPRIEN2,RMPREXC=1
|
---|
74 | . E S RMPREXC=3
|
---|
75 | . Q
|
---|
76 | E D
|
---|
77 | . I RMPRIEN2="" S RMPREXC=2
|
---|
78 | . S RMPR7("IEN")=RMPRIEN1
|
---|
79 | . Q
|
---|
80 | I RMPR7("IEN")'="" D
|
---|
81 | . S RMPRERR=$$GET^RMPRPIX7(.RMPR7)
|
---|
82 | . I RMPRERR S RMPRERR=5
|
---|
83 | . Q
|
---|
84 | SCANU L -^RMPR(661.7,"XHDS",RMPR7("HCPCS"),RMPRDTTM)
|
---|
85 | SCANX Q RMPRERR
|
---|
86 | ;
|
---|
87 | ; STOCK - For an entered Station, Location, HCPCS and Item return
|
---|
88 | ; total quantity on hand for that item, the average unit cost
|
---|
89 | ; and the vendor. If more than one vendor, use the first one.
|
---|
90 | ;
|
---|
91 | ; Inputs:
|
---|
92 | ; RMPR - an array with the following elements...
|
---|
93 | ; RMPR("STATION IEN") - Station ien (ptr ^DIC(4,)
|
---|
94 | ; RMPR("LOCATION IEN") - Location ien (ptr ^RMPR(661.5,)
|
---|
95 | ; RMPR("HCPCS") - HCPCS code (eg E0111)
|
---|
96 | ; RMPR("ITEM") - HCPCS Item number (eg 1)
|
---|
97 | ;
|
---|
98 | ; Outputs:
|
---|
99 | ; RMPR - additional elements to the input RMPR array
|
---|
100 | ; RMPR("QOH") - Quantity on hand
|
---|
101 | ; RMPR("UNIT COST") - Unit cost per Item
|
---|
102 | ; RMPR("VENDOR") - Vendor Name
|
---|
103 | ; RMPR("VENDOR IEN") - Vendor ien
|
---|
104 | ;
|
---|
105 | ; RMPRERR - function return...
|
---|
106 | ; 0 - no errors
|
---|
107 | ; 1 - null Station ien input
|
---|
108 | ; 2 - null Location ien input
|
---|
109 | ; 3 - null HCPCS code input
|
---|
110 | ; 4 - null Item input
|
---|
111 | ; 5 - problem with 661.7 file
|
---|
112 | ; 6 - problem with 661.6 file
|
---|
113 | STOCK(RMPR) ;
|
---|
114 | N RMPRERR,RMPRK,RMPROLD,RMPREOF,RMPR7,RMPR6,RMPRTCST
|
---|
115 | S RMPRERR=0
|
---|
116 | S RMPRTCST=0
|
---|
117 | S RMPR("QOH")=0
|
---|
118 | S RMPR("UNIT COST")=0
|
---|
119 | S RMPR("VENDOR")=""
|
---|
120 | S RMPR("VENDOR IEN")=""
|
---|
121 | S RMPRK("STATION")=$G(RMPR("STATION IEN"))
|
---|
122 | I RMPRK("STATION")="" S RMPRERR=1 G STOCKX
|
---|
123 | S RMPRK("LOCATION")=$G(RMPR("LOCATION IEN"))
|
---|
124 | I RMPRK("LOCATION")="" S RMPRERR=2 G STOCKX
|
---|
125 | S RMPRK("HCPCS")=$G(RMPR("HCPCS"))
|
---|
126 | I RMPRK("HCPCS")="" S RMPRERR=3 G STOCKX
|
---|
127 | S RMPRK("ITEM")=$G(RMPR("ITEM"))
|
---|
128 | I RMPRK("ITEM")="" S RMPRERR=4 G STOCKX
|
---|
129 | L +^RMPR(661.7,"XSLHIDS",RMPR("STATION IEN"),RMPR("LOCATION IEN"),RMPR("HCPCS"),RMPR("ITEM"))
|
---|
130 | ;
|
---|
131 | ; Loop on all records for Stn, Loc, HCPCS and Item, and sum qty and cst
|
---|
132 | STOCKA S RMPRERR=$$NEXT^RMPRPIXE(.RMPRK,"XSLHIDS","",1,.RMPROLD,.RMPREOF)
|
---|
133 | I RMPRERR S RMPRERR=5 G STOCKU
|
---|
134 | I RMPREOF G STOCKU
|
---|
135 | I RMPRK("ITEM")'=RMPROLD("ITEM") G STOCKU
|
---|
136 | I RMPRK("HCPCS")'=RMPROLD("HCPCS") G STOCKU
|
---|
137 | I RMPRK("LOCATION")'=RMPROLD("LOCATION") G STOCKU
|
---|
138 | I RMPRK("STATION")'=RMPROLD("STATION") G STOCKU
|
---|
139 | K RMPR7 M RMPR7=RMPRK
|
---|
140 | S RMPRERR=$$GET^RMPRPIX7(.RMPR7)
|
---|
141 | I RMPRERR S RMPRERR=5 G STOCKU
|
---|
142 | S RMPR("QOH")=RMPR7("QUANTITY")+RMPR("QOH")
|
---|
143 | S RMPRTCST=RMPRTCST+RMPR7("VALUE")
|
---|
144 | I RMPR("VENDOR IEN")="" D G:RMPRERR STOCKU
|
---|
145 | . K RMPR6 M RMPR6=RMPRK S RMPR6("IEN")=""
|
---|
146 | . S RMPRERR=$$GET^RMPRPIX6(.RMPR6)
|
---|
147 | . I RMPRERR S RMPRERR=6 Q
|
---|
148 | . S RMPRERR=$$VNDIEN^RMPRPIX6(.RMPR6)
|
---|
149 | . I RMPRERR S RMPRERR=6 Q
|
---|
150 | . S RMPR("VENDOR")=RMPR6("VENDOR")
|
---|
151 | . S RMPR("VENDOR IEN")=RMPR6("VENDOR IEN")
|
---|
152 | . Q
|
---|
153 | G STOCKA
|
---|
154 | STOCKU L -^RMPR(661.7,"XSLHIDS",RMPR("STATION IEN"),RMPR("LOCATION IEN"),RMPR("HCPCS"),RMPR("ITEM"))
|
---|
155 | I RMPR("QOH") S RMPR("UNIT COST")=RMPRTCST/RMPR("QOH")
|
---|
156 | STOCKX Q RMPRERR
|
---|