source: FOIAVistA/trunk/r/PROSTHETICS-RMPR-RMPO-RMPS/RMPRPIUH.m@ 729

Last change on this file since 729 was 628, checked in by George Lilly, 15 years ago

initial load of FOIAVistA 6/30/08 version

File size: 6.1 KB
Line 
1RMPRPIUH ;HINCIO/ODJ - CONVERT OLD PIP TO NEW PIP ;3/8/05 11:45
2 ;;3.0;PROSTHETICS;**61**;Feb 09, 1996
3 ; DBIA #10090 - Read Access to entire file #4.
4 Q
5 ;
6 ;***** CONV - Convert old PIP files to the new design
7 ; continued from RMPRPIUG
8 ; Create issue transactions
9 ;
10 ; Convert patient issues in 660 file
11 ;
12 ; Start loop at 1st date in 661.2
13CONV N RMPRDT,RMPRIEN,RMPRR60,RMPR62P,RMPRREC,RMPR6,RMPR11,RMPR62R,RMPRITM
14 N RMPR63P,RMPR63R,RMPR5,RMPRHIEN,RMPRS,RMPRERR,RMPRTIME,RMPR60
15 I '$D(IO("Q")) D
16 . W !,"Creating patient issue transactions - file 661.6 "
17 . Q
18 K ^TMP($J,"ISS")
19 S RMPRDT=$O(^RMPR(661.2,"B",""))
20 I RMPRDT'="" S RMPRDT=RMPRDT-1
21 ;
22 ; Loop on ENTRY DATE ('B') x-ref in 660 file
23CONV1 S RMPRDT=$O(^RMPR(660,"B",RMPRDT))
24 I '$D(IO("Q")) D
25 . W:$X=79 ! W "."
26 . Q
27 I RMPRDT="" G CONVX
28 S RMPRIEN=0
29CONV2 S RMPRIEN=$O(^RMPR(660,"B",RMPRDT,RMPRIEN))
30 I '+RMPRIEN G CONV1
31 ;
32 ; read 660 recs and set up arrays
33 K RMPR60
34 S RMPR60("IEN")=RMPRIEN
35 S RMPRR60=$G(^RMPR(660,RMPRIEN,1))
36 S RMPR62P=$P(RMPRR60,"^",5) ;pointer to 661.2
37 I RMPR62P="" G CONV2 ;ignore if null ptr.
38 I '$D(^RMPR(661.2,RMPR62P)) G CONV2 ;ignore if invalid ptr.
39 S RMPRREC=$G(^RMPR(660,RMPRIEN,0))
40 K RMPR6
41 I RMPRDT'=$P(RMPRREC,"^",1) G CONV2 ;bad 'B' x-ref
42 S RMPR6("QUANTITY")=+$P(RMPRREC,"^",7)
43 I RMPR6("QUANTITY")=0 G CONV2 ;ignore if 0 qty
44 S RMPR6("VALUE")=$P(RMPRREC,"^",16)
45 S RMPR6("VENDOR")=$P(RMPRREC,"^",9)
46 I RMPR6("VENDOR")="" G CONV2 ;ignore if null vendor
47 S RMPR6("USER")=$P(RMPRREC,"^",27)
48 ;
49 ; Get HCPCS and HCPCS Item using file 661.2
50 S RMPR62R=$G(^RMPR(661.2,RMPR62P,0))
51 S RMPR60("661.2PTR")=RMPR62P
52 K RMPR11
53 S RMPR11("ITEM MASTER IEN")=$P(RMPRREC,"^",6)
54 S RMPR11("STATION")=$P(RMPR62R,"^",15)
55 I RMPR11("STATION")="" G CONV2 ;ignore if null station
56 I '$D(^DIC(4,RMPR11("STATION"),0)) G CONV2 ;ignore if bad ptr
57 S RMPR11("HCPCS")=$P($P(RMPR62R,"^",9),"-",1) ;HCPCS Code
58 I RMPR11("HCPCS")="" G CONV2 ;ignore if null HCPCS
59 S RMPRHIEN=$P(RMPR62R,"^",4) ;HCPCS ptr
60 I RMPRHIEN="" G CONV2 ;ignore if null HCPCS ptr
61 S RMPRITM=$P($P(RMPR62R,"^",9),"-",2) ;Item ptr
62 I RMPRITM="" G CONV2 ;ignore if null item
63 S RMPR11("SOURCE")=$P(RMPR62R,"^",3)
64 I RMPR11("SOURCE")'="V" S RMPR11("SOURCE")="C"
65 S RMPR11("UNIT")=$P(RMPR62R,"^",5)
66 D GETITM(.RMPR11,RMPRHIEN,RMPRITM)
67 ;
68 ; Get Location
69 K RMPR5
70 S RMPR63P=$P(RMPR62R,"^",16) ;ptr to location 661.3 file
71 S RMPR5("STATION")=RMPR11("STATION")
72 S RMPRERR=$$GETLCN(RMPR63P,.RMPR5) ; get location
73 I RMPRERR G CONV2 ;ignore if bad location
74 ;
75 ; If get here then enough to create a stock issue to patient
76 ; transaction...
77 S RMPR6("DATE&TIME")=""
78 F D Q:RMPR6("DATE&TIME")'=""
79 . D NOW^%DTC
80 . S RMPRTIME=RMPRDT_"."_$P(%,".",2)
81 . I $D(^RMPR(661.6,"XHDS",RMPR11("HCPCS"),RMPRTIME)) H (1+$R(3)) Q
82 . L +^RMPR(661.6,"XHDS",RMPR11("HCPCS"),RMPRTIME):0 E H (1+$R(3)) Q
83 . S RMPR6("DATE&TIME")=RMPRTIME
84 . Q
85 S RMPR6("LOCATION")=RMPR5("IEN")
86 S RMPRS=$G(^TMP($J,"ISS",RMPR11("STATION"),RMPR11("HCPCS"),RMPR11("ITEM"),RMPR6("LOCATION"),RMPR6("VENDOR")))
87 S $P(RMPRS,"^",1)=RMPR6("QUANTITY")+$P(RMPRS,"^",1)
88 S $P(RMPRS,"^",2)=RMPR6("VALUE")+$P(RMPRS,"^",2)
89 S ^TMP($J,"ISS",RMPR11("STATION"),RMPR11("HCPCS"),RMPR11("ITEM"),RMPR6("LOCATION"),RMPR6("VENDOR"))=RMPRS
90 S RMPR6("SEQUENCE")=1
91 S RMPR6("COMMENT")=""
92 S RMPR6("TRAN TYPE")=3
93 S RMPRERR=$$CRE^RMPRPIX6(.RMPR6,.RMPR11)
94 S $P(RMPRR60,"^",5)=RMPR6("IEN")
95 S ^RMPR(660,RMPRIEN,1)=RMPRR60
96 L -^RMPR(661.6,"XHDS",RMPR11("HCPCS"),RMPR6("DATE&TIME"))
97 ;
98 ; Create 661.63 Patient Issue transaction record
99 S RMPRERR=$$CRE^RMPRPIX3(.RMPR60,.RMPR6,.RMPR11)
100 ;
101 ; Next rec
102 G CONV2
103 ;
104 ; Exit
105CONVX Q
106 ;
107 ; Get a Location from the pointer to file 661.3
108 ; RMPRPIUJ should have been already run to set up the new locations
109 ; file 661.5 and the temp map file.
110 ; If can't get a valid location default to the GENERIC location
111GETLCN(RMPR63P,RMPR5) ;
112 N RMPRERR
113 S RMPRERR=0
114 I RMPR63P="" S RMPRERR=1 G GETLCNX
115 I '$D(^RMPR(661.5,"XSL",RMPR5("STATION"))) S RMPRERR=2 G GETLCNX
116 ;
117 ; if old (661.3) pointer mapped to new (661.5) pointer use it
118 I $D(^TMP($J,"LOCN",RMPR63P)) D G GETLCNX
119 . S RMPR5("IEN")=^TMP($J,"LOCN",RMPR63P)
120 . Q
121 ;
122 ; else use the 661.5 pointer for GENERIC location
123 E D
124 . S RMPR5("IEN")=$O(^RMPR(661.5,"XSL",RMPR5("STATION"),"GENERIC",""))
125 . Q
126GETLCNX Q RMPRERR
127 ;
128 ; Get HCPCS Item
129 ; Commercial items should have already been set up by running
130 ; RMPRPIUI
131 ; VA items and those items in 661.2 which are no longer in the 661.3
132 ; file will be created together with a map of old to new iens.
133GETITM(RMPR11,RMPRHIEN,RMPRITM) ;
134 N RMPRI,RMPRS,RMPRERR,RMPRIM,RMPR11U,RMPRGOT
135 S RMPR11("ITEM MASTER IEN")=$G(RMPR11("ITEM MASTER IEN"))
136 S RMPRIM=RMPR11("ITEM MASTER IEN")
137 S:RMPRIM="" RMPRIM="*"
138 ;
139 ; If item has new number from previous update then use the temp map
140 I $D(^TMP($J,"ITEM",RMPRHIEN,RMPRITM,RMPR11("SOURCE"),RMPRIM)) D G GETITMX
141 . S RMPRS=^TMP($J,"ITEM",RMPRHIEN,RMPRITM,RMPR11("SOURCE"),RMPRIM)
142 . S RMPR11("ITEM")=$P(RMPRS,"^",3)
143 . Q
144 ;
145 ; If item number not already in use then can use it to create a new
146 ; item in file 661.11
147 I '$D(^RMPR(661.11,"ASHI",RMPR11("STATION"),RMPR11("HCPCS"),RMPRITM)) S RMPR11("ITEM")=RMPRITM G GETITM1
148 ;
149 ; Ensure not duplicating Item number for different source
150 S RMPRGOT=0
151 S RMPRI=$O(^RMPR(661.11,"ASHI",RMPR11("STATION"),RMPR11("HCPCS"),RMPRITM,""))
152 S RMPRS=^RMPR(661.11,RMPRI,0)
153 I $P(RMPRS,"^",5)=RMPR11("SOURCE") D
154 . I $P(RMPRS,"^",8)=RMPR11("ITEM MASTER IEN") S RMPRGOT=1 Q
155 . I $P(RMPRS,"^",8)="" D
156 .. K RMPR11U
157 .. S RMPR11U("IEN")=RMPRI
158 .. S RMPR11U("ITEM MASTER IEN")=RMPR11("ITEM MASTER IEN")
159 .. S RMPRERR=$$UPD^RMPRPIX1(.RMPR11U)
160 .. S RMPRGOT=1
161 .. Q
162 . Q
163 I RMPRGOT S RMPR11("ITEM")=RMPRITM G GETITMX
164 S RMPR11("ITEM")="" ; ensure new item will be created
165GETITM1 S RMPRS=$G(^RMPR(661.1,RMPRHIEN,3,RMPRITM,0))
166 S RMPR11("DESCRIPTION")=$P(RMPRS,"^",1)
167 S:RMPR11("DESCRIPTION")="" RMPR11("DESCRIPTION")="NO DESCRIPTION"
168 S RMPRERR=$$CRE^RMPRPIX1(.RMPR11)
169 ;
170 ; map new HCPCS Item in 661.11 to old iens in 661.1
171 S RMPRS=""
172 S $P(RMPRS,"^",1)=RMPR11("STATION")
173 S $P(RMPRS,"^",2)=RMPR11("HCPCS")
174 S $P(RMPRS,"^",3)=RMPR11("ITEM")
175 S $P(RMPRS,"^",4)=RMPR11("IEN")
176 S ^TMP($J,"ITEM",RMPRHIEN,RMPRITM,RMPR11("SOURCE"),RMPRIM)=RMPRS
177GETITMX Q
Note: See TracBrowser for help on using the repository browser.