1 | RMPRPIUG ;HINCIO/ODJ - CONVERT OLD PIP TO NEW PIP ;7/30/02 08:19
|
---|
2 | ;;3.0;PROSTHETICS;**61**;Feb 09, 1996
|
---|
3 | Q
|
---|
4 | ;
|
---|
5 | ;***** CONV - Convert old PIP files to the new design (start)
|
---|
6 | ; Should be run as post init in patch 61
|
---|
7 | ; No re-start allowed and all Prosthetic Inventory
|
---|
8 | ; menu options including Stock Issue and quick edit
|
---|
9 | ; should be disabled.
|
---|
10 | ; If conversion needs to be re-run then you must call
|
---|
11 | ; KILL^RMPRPIXZ before running this utility.
|
---|
12 | ;
|
---|
13 | CONV I $D(^RMPR(661.5,"B")) D G CONVX ;don't convert if 661.5 has a rec
|
---|
14 | . I '$D(IO("Q")) D
|
---|
15 | .. W !!
|
---|
16 | .. W "** File 661.5 already exists, aborting conversion, please log NOIS"
|
---|
17 | .. Q
|
---|
18 | . Q
|
---|
19 | DUZ S RMPRDUZ=$$GETUSR^RMPRPIU0(DUZ)
|
---|
20 | I RMPRDUZ="" D G CONVX ;need valid DUZ
|
---|
21 | . I '$D(IO("Q")) D
|
---|
22 | .. W !!
|
---|
23 | .. W "** Need valid DUZ variable set"
|
---|
24 | .. Q
|
---|
25 | . Q
|
---|
26 | I '$D(IO("Q")) D
|
---|
27 | . W !,"PIP Old to New file conversion starting."
|
---|
28 | . Q
|
---|
29 | K ^TMP($J)
|
---|
30 | D LOCN^RMPRPIUJ ; create locations (old to new map in ^TMP($J,"LOCN")
|
---|
31 | D CONV^RMPRPIUI ; create commercial items that exist in 661.3
|
---|
32 | D CONV1A ; create current inventory (from 661.3)
|
---|
33 | D CONV^RMPRPIUH ; create issues (from 660 and 661.2)
|
---|
34 | D REC^RMPRPIUK ; create initial balancing reconciliations
|
---|
35 | D BAL^RMPRPIUK ; create balance history (661.9)
|
---|
36 | D UNIT^RMPRPIUJ ; update unit of issue (661.7)
|
---|
37 | K ^TMP($J)
|
---|
38 | RENDX S DIK="^RMPR(661.11," D IXALL^DIK
|
---|
39 | I '$D(IO("Q")) D
|
---|
40 | . W !,"PIP Old to New file conversion complete.",!
|
---|
41 | . Q
|
---|
42 | CONVX Q
|
---|
43 | ;
|
---|
44 | ; Convert current inventory based on file 661.3
|
---|
45 | ; Main Loop on location
|
---|
46 | CONV1A N RMPRL,RMPRHREC,RMPRERR,RMPR5,RMPRI,RMPRREC,RMPRITM,X,Y,DA,RMPRSS
|
---|
47 | N RMPRH,RMPRHIEN,RMPR4,RMPR6,RMPR,RMPR11,RMPRSRC,RMPRTODT,RMPR41
|
---|
48 | I '$D(IO("Q")) D
|
---|
49 | . W !,"Creating Current Inventory - file 661.7 "
|
---|
50 | . Q
|
---|
51 | D NOW^%DTC S RMPRTODT=$P(%,".",1)
|
---|
52 | S RMPRL=0
|
---|
53 | CONV1 S RMPRL=$O(^RMPR(661.3,RMPRL))
|
---|
54 | I '+RMPRL G CONV1AX
|
---|
55 | I '$D(^TMP($J,"LOCN",RMPRL)) G CONV1
|
---|
56 | S RMPR5("IEN")=^TMP($J,"LOCN",RMPRL)
|
---|
57 | S RMPRREC=^RMPR(661.3,RMPRL,0)
|
---|
58 | S RMPR5("STATION")=$P(RMPRREC,"^",3)
|
---|
59 | ;
|
---|
60 | ; Loop on the HCPCS node in 661.3
|
---|
61 | K ^TMP($J,"H")
|
---|
62 | S RMPRH=0
|
---|
63 | CONV2 S RMPRH=$O(^RMPR(661.3,RMPRL,1,RMPRH))
|
---|
64 | I '$D(IO("Q")) D
|
---|
65 | . W:$X=79 ! W "."
|
---|
66 | . Q
|
---|
67 | I '+RMPRH D G CONV1
|
---|
68 | . D TMPH(.RMPR5)
|
---|
69 | . K ^TMP($J,"H")
|
---|
70 | . Q
|
---|
71 | S RMPRREC=$G(^RMPR(661.3,RMPRL,1,RMPRH,0))
|
---|
72 | S RMPRHIEN=$P(RMPRREC,"^",1) ;ien to 661.1
|
---|
73 | I RMPRHIEN="" G CONV2 ;ignore if null 661.1 ptr
|
---|
74 | I '$D(^RMPR(661.1,RMPRHIEN,0)) G CONV2 ;ignore if bad ptr
|
---|
75 | S RMPRHREC=^RMPR(661.1,RMPRHIEN,0)
|
---|
76 | K RMPR11
|
---|
77 | S RMPR11("STATION")=RMPR5("STATION")
|
---|
78 | S RMPR11("STATION IEN")=RMPR5("STATION")
|
---|
79 | S RMPR11("HCPCS")=$P(RMPRHREC,"^",1) ;get HCPCS code from 661.1
|
---|
80 | I RMPR11("HCPCS")="" G CONV2 ;ignore if null HCPCS code
|
---|
81 | ;
|
---|
82 | ; Loop on HCPCS Item node in 661.3
|
---|
83 | S RMPRI=0
|
---|
84 | CONV3 S RMPRI=$O(^RMPR(661.3,RMPRL,1,RMPRH,1,RMPRI))
|
---|
85 | I '+RMPRI G CONV2
|
---|
86 | S RMPRREC=$G(^RMPR(661.3,RMPRL,1,RMPRH,1,RMPRI,0))
|
---|
87 | I $P($P(RMPRREC,"^",1),"-",1)'=RMPR11("HCPCS") G CONV3 ;bad HCPCS
|
---|
88 | S RMPR11("SOURCE")="C"
|
---|
89 | I $P(RMPRREC,"^",9)="V" S RMPR11("SOURCE")="V"
|
---|
90 | S RMPRITM=$P($P(RMPRREC,"^",1),"-",2)
|
---|
91 | I RMPRITM="" G CONV3
|
---|
92 | S RMPR11("UNIT")=$P(RMPRREC,"^",4)
|
---|
93 | S RMPR7("UNIT")=$P(RMPRREC,"^",4)
|
---|
94 | K RMPR6
|
---|
95 | S RMPR6("QUANTITY")=+$P(RMPRREC,"^",2)
|
---|
96 | S RMPR6("VALUE")=+$P(RMPRREC,"^",3)
|
---|
97 | S RMPR6("VALUE")=$J(RMPR6("VALUE"),0,2)
|
---|
98 | S RMPR6("VENDOR IEN")=$P(RMPRREC,"^",5)
|
---|
99 | K RMPR4
|
---|
100 | S RMPR4("RE-ORDER QTY")=+$P(RMPRREC,"^",6)
|
---|
101 | K RMPR41
|
---|
102 | S RMPR41("ORDER QTY")=+$P(RMPRREC,"^",11)
|
---|
103 | D GETITM^RMPRPIUH(.RMPR11,RMPRHIEN,RMPRITM)
|
---|
104 | ;
|
---|
105 | ; Create HCPCS Item Re-Order record 661.4
|
---|
106 | I '$D(^RMPR(661.4,"ASLHI",RMPR11("STATION IEN"),RMPR5("IEN"),RMPR11("HCPCS"),RMPR11("ITEM"))) D
|
---|
107 | . S RMPRERR=$$CRE^RMPRPIX4(.RMPR4,.RMPR11,.RMPR5)
|
---|
108 | . Q
|
---|
109 | ;
|
---|
110 | ; Save in Temp global for later update
|
---|
111 | I RMPR6("VENDOR IEN")="" G CONV3
|
---|
112 | I $D(^TMP($J,"H",RMPR11("HCPCS"),RMPR11("ITEM"),RMPR6("VENDOR IEN"))) D
|
---|
113 | . S RMPRSS=^TMP($J,"H",RMPR11("HCPCS"),RMPR11("ITEM"),RMPR6("VENDOR IEN"))
|
---|
114 | . S $P(RMPRSS,"^",1)=$P(RMPRSS,"^",1)+RMPR6("QUANTITY")
|
---|
115 | . S $P(RMPRSS,"^",2)=$P(RMPRSS,"^",2)+RMPR6("VALUE")
|
---|
116 | . Q
|
---|
117 | E D
|
---|
118 | . S RMPRSS=RMPR6("QUANTITY")
|
---|
119 | . S $P(RMPRSS,"^",2)=RMPR6("VALUE")
|
---|
120 | . Q
|
---|
121 | S RMPRSS=RMPRSS_U_$G(RMPR11("UNIT"))
|
---|
122 | S ^TMP($J,"H",RMPR11("HCPCS"),RMPR11("ITEM"),RMPR6("VENDOR IEN"))=RMPRSS
|
---|
123 | ;
|
---|
124 | ; If there is an order quantity then save it to file 661.41
|
---|
125 | I RMPR41("ORDER QTY")>0 D
|
---|
126 | . S RMPR41("VENDOR")=RMPR6("VENDOR IEN")
|
---|
127 | . S RMPR41("DATE ORDER")=RMPRTODT
|
---|
128 | . S RMPR41("STATUS")="O"
|
---|
129 | . S RMPRERR=$$CRE^RMPRPIXN(.RMPR41,.RMPR11)
|
---|
130 | . Q
|
---|
131 | G CONV3 ;next item in 661.3
|
---|
132 | ;
|
---|
133 | ; Process the ^TMP($J,"H") global just created
|
---|
134 | TMPH(RMPR5) ;
|
---|
135 | N RMPRH,RMPRI,RMPRV,RMPR,RMPR11,RMPRERR,RMPRSS,RMPR6,RMPRUCST
|
---|
136 | S RMPRH=""
|
---|
137 | F S RMPRH=$O(^TMP($J,"H",RMPRH)) Q:RMPRH="" D
|
---|
138 | . S RMPRI=""
|
---|
139 | . F S RMPRI=$O(^TMP($J,"H",RMPRH,RMPRI)) Q:RMPRI="" D
|
---|
140 | .. S RMPRV=""
|
---|
141 | .. F S RMPRV=$O(^TMP($J,"H",RMPRH,RMPRI,RMPRV)) Q:RMPRV="" D
|
---|
142 | ... S RMPRSS=^TMP($J,"H",RMPRH,RMPRI,RMPRV)
|
---|
143 | ... K RMPR6
|
---|
144 | ... S RMPR6("QUANTITY")=+$P(RMPRSS,"^",1)
|
---|
145 | ... S RMPR6("VALUE")=+$P(RMPRSS,"^",2)
|
---|
146 | ... S RMPR6("UNIT")=+$P(RMPRSS,"^",3)
|
---|
147 | ... S RMPR6("VENDOR IEN")=RMPRV
|
---|
148 | ... K RMPR11
|
---|
149 | ... S RMPR11("STATION")=RMPR5("STATION")
|
---|
150 | ... S RMPR11("STATION IEN")=RMPR5("STATION")
|
---|
151 | ... S RMPR11("HCPCS")=RMPRH
|
---|
152 | ... S RMPR11("ITEM")=RMPRI
|
---|
153 | ... S RMPR11("UNIT")=$P(RMPRSS,U,3)
|
---|
154 | ... ;
|
---|
155 | ... ; If quantity<0 then create a reconciliation gain
|
---|
156 | ... ; of the amount followed by a 0 reconciliation
|
---|
157 | ... I RMPR6("QUANTITY")<0 D
|
---|
158 | .... K RMPR
|
---|
159 | .... S RMPR("QUANTITY")=0-RMPR6("QUANTITY")
|
---|
160 | .... S RMPR("VALUE")=$S(RMPR6("VALUE")<0:0-RMPR6("VALUE"),1:RMPR6("VALUE"))
|
---|
161 | .... S RMPR("NEW UNIT COST")=$J(RMPR("VALUE")/RMPR("QUANTITY"),0,2)
|
---|
162 | .... S RMPRUCST=RMPR("NEW UNIT COST")
|
---|
163 | .... S RMPR("VENDOR IEN")=RMPR6("VENDOR IEN")
|
---|
164 | .... S RMPRERR=$$REC^RMPRPIU9(.RMPR,.RMPR11,.RMPR5)
|
---|
165 | .... K RMPR
|
---|
166 | .... S RMPR("QUANTITY")=0
|
---|
167 | .... S RMPR("VENDOR IEN")=RMPR6("VENDOR IEN")
|
---|
168 | .... S RMPR("NEW UNIT COST")=RMPRUCST
|
---|
169 | .... S RMPRERR=$$REC^RMPRPIU9(.RMPR,.RMPR11,.RMPR5)
|
---|
170 | .... Q
|
---|
171 | ... ;
|
---|
172 | ... ; If +VE qty. just record as a gain
|
---|
173 | ... E D
|
---|
174 | .... S:RMPR6("VALUE")<0 RMPR6("VALUE")=0-RMPR6("VALUE")
|
---|
175 | .... S RMPR6("NEW UNIT COST")=0
|
---|
176 | .... S:RMPR6("QUANTITY") RMPR6("NEW UNIT COST")=$J(RMPR6("VALUE")/RMPR6("QUANTITY"),0,2)
|
---|
177 | .... S RMPRERR=$$REC^RMPRPIU9(.RMPR6,.RMPR11,.RMPR5)
|
---|
178 | .... Q
|
---|
179 | ... Q
|
---|
180 | .. Q
|
---|
181 | . Q
|
---|
182 | TMPHX K ^TMP($J,"H")
|
---|
183 | Q
|
---|
184 | ;
|
---|
185 | ;exit
|
---|
186 | CONV1AX K ^TMP($J,"H")
|
---|
187 | Q
|
---|