1 | RMPRPIYC ;HINCIO/ODJ - PIP HCPCS Prompt utilities ;3/8/01
|
---|
2 | ;;3.0;PROSTHETICS;**61**;Feb 09, 1996
|
---|
3 | Q
|
---|
4 | ;
|
---|
5 | ;***** HCPCS - Prompt for HCPCS called by reconciliation option
|
---|
6 | ; (RMPRPIYA)
|
---|
7 | HCPCS(RMPR5,RMPR1,RMPR11,RMPREXC) ;
|
---|
8 | N RMPRERR,DIR,X,Y,DUOUT,DTOUT,DIROUT,DIRUT,DIC,DA,RMPRSTN,RMPRLCN,RMPR1N
|
---|
9 | N RMPRYN
|
---|
10 | S DIR("A")="Select HCPCS to RECONCILE: "
|
---|
11 | S RMPRERR=0
|
---|
12 | S RMPREXC=""
|
---|
13 | S RMPR1("HCPCS")=$G(RMPR1("HCPCS"))
|
---|
14 | S RMPRSTN=RMPR5("STATION")
|
---|
15 | S RMPRLCN=RMPR5("IEN")
|
---|
16 | S DIR(0)="FOA"
|
---|
17 | S DIR("?")="^D QM^RMPRPIYC"
|
---|
18 | S DIR("??")="^D QM2^RMPRPIYC"
|
---|
19 | HCPCS1 K RMPR1N D ^DIR
|
---|
20 | I $D(DTOUT) S RMPREXC="T" G HCPCSX
|
---|
21 | I $D(DIROUT) S RMPREXC="P" G HCPCSX
|
---|
22 | I X=""!(X["^")!($D(DUOUT)) S RMPREXC="^" G HCPCSX
|
---|
23 | D LIKE^RMPRPIYC(RMPRSTN,X,.RMPREXC,.RMPR1N,.RMPR11)
|
---|
24 | I RMPREXC'="" G HCPCS1
|
---|
25 | I $G(RMPR1N("IEN"))'="" G HCPCSU
|
---|
26 | G HCPCS1
|
---|
27 | HCPCSU K RMPR1 M RMPR1=RMPR1N
|
---|
28 | HCPCSX Q RMPRERR
|
---|
29 | ;
|
---|
30 | ;***** QM - Single ? Help
|
---|
31 | ; RMPRSTN required (see below QM2)
|
---|
32 | ;
|
---|
33 | QM D QM1 ; ask if want to list HCPCS
|
---|
34 | I RMPREXC'="" G QMX
|
---|
35 | I RMPRYN="N" G QMX
|
---|
36 | D QM2 ;list HCPCS
|
---|
37 | QMX Q
|
---|
38 | QM1 N DIR,X,Y,DA,DTOUT,DIROUT,DIRUT,DUOUT
|
---|
39 | ;S DIR("A",1)=" Answer with PSAS HCPCS, or SHORT NAME, or CPT, or SYNONYM, or"
|
---|
40 | ;S DIR("A",2)=" DESCRIPTION"
|
---|
41 | S DIR("A",1)="This response must be a number."
|
---|
42 | S DIR("A")="Do you want the entire list of PSAS HCPCS in inventory "
|
---|
43 | S DIR("?")="^D QM1H^RMPRPIYC"
|
---|
44 | S DIR(0)="YO"
|
---|
45 | D ^DIR
|
---|
46 | I $D(DTOUT) S RMPREXC="T" G QM1X
|
---|
47 | I $D(DIROUT) S RMPREXC="P" G QM1X
|
---|
48 | I X=""!(X["^")!($D(DUOUT)) S RMPREXC="^" G QM1X
|
---|
49 | S RMPRYN="N" S:Y RMPRYN="Y"
|
---|
50 | S RMPREXC=""
|
---|
51 | QM1X Q
|
---|
52 | QM1H S %A="V",X="^"
|
---|
53 | Q
|
---|
54 | ;
|
---|
55 | ;***** QM2 - List HCPCS associated with a Location
|
---|
56 | ; called from a ?? help or Yes to the
|
---|
57 | ; question in the ? help.
|
---|
58 | ;
|
---|
59 | ; requires RMPRSTN - Station ien
|
---|
60 | ;
|
---|
61 | QM2 D LIKE(RMPRSTN,"",.RMPREXC,.RMPR1N,.RMPR11)
|
---|
62 | I $G(RMPR1N("IEN"))'="" D QM1H
|
---|
63 | QM2X Q
|
---|
64 | ;
|
---|
65 | ; ***** LIKE
|
---|
66 | ; Handle the various inputs from a HCPCS prompt where HCPCS is
|
---|
67 | ; being selected from PIP as opposed to the general
|
---|
68 | ; HCPCS file 661.1
|
---|
69 | ; This version uses the 661.11 file so any HCPCS that has been
|
---|
70 | ; used in inventory can be selected.
|
---|
71 | ;
|
---|
72 | ; Inputs:
|
---|
73 | ; RMPRSTN - Station ien
|
---|
74 | ; RMPRTXT - Text entered at HCPCS prompt (cannot be null)
|
---|
75 | ;
|
---|
76 | ; Outputs:
|
---|
77 | ; RMPREXC - exit condition
|
---|
78 | ; RMPR1 - array of HCPCS data from 661.1 file
|
---|
79 | ; RMPR1("IEN") - ien of HCPCS in 661.1 (null if not found)
|
---|
80 | ; RMPR1("HCPCS") - HCPCS code
|
---|
81 | ; RMPR1("SHORT DESC") - HCPCS short description
|
---|
82 | ; RMPR11 - array of Inventory Item data from 661.11 file
|
---|
83 | ;
|
---|
84 | LIKE(RMPRSTN,RMPRTXT,RMPREXC,RMPR1,RMPR11) ;
|
---|
85 | N RMPRMAX,RMPRLIN,DIR,X,Y,DA,DTOUT,DIROUT,DIRUT,DUOUT,RMPRA,RMPRH
|
---|
86 | N RMPRERR,RMPRHA,RMPR1N,RMPRH2,RMPRHTXT,RMPRITXT
|
---|
87 | S RMPREXC=""
|
---|
88 | S (RMPR1("IEN"),RMPR11("IEN"))=""
|
---|
89 | S RMPRMAX=5
|
---|
90 | S RMPRLIN=0
|
---|
91 | S RMPRHTXT=$P(RMPRTXT,"-",1)
|
---|
92 | S RMPRITXT=""
|
---|
93 | I RMPRHTXT="" S RMPRH="" G LIKEA1
|
---|
94 | ;
|
---|
95 | ; Check for exact match and skip selection if it is
|
---|
96 | I $D(^RMPR(661.11,"ASHI",RMPRSTN,RMPRHTXT)) D G LIKEG
|
---|
97 | . S RMPRITXT=$P(RMPRTXT,"-",2)
|
---|
98 | . Q
|
---|
99 | ;
|
---|
100 | ; Check for unique partial match and skip selection if it is
|
---|
101 | S RMPRH=$O(^RMPR(661.11,"ASHI",RMPRSTN,RMPRTXT))
|
---|
102 | I $E(RMPRH,1,$L(RMPRTXT))'=RMPRTXT G LIKEC
|
---|
103 | S RMPRH2=$O(^RMPR(661.11,"ASHI",RMPRSTN,RMPRH))
|
---|
104 | I $E(RMPRH2,1,$L(RMPRTXT))'=RMPRTXT D G LIKEG
|
---|
105 | . W $E(RMPRH,1+$L(RMPRTXT),$L(RMPRH))
|
---|
106 | . S RMPRHTXT=RMPRH
|
---|
107 | . Q
|
---|
108 | G LIKEA3
|
---|
109 | ;
|
---|
110 | ; List partial matches
|
---|
111 | LIKEA1 S RMPRH=$O(^RMPR(661.11,"ASHI",RMPRSTN,RMPRH))
|
---|
112 | I RMPRH="" G:'RMPRLIN LIKEX G LIKEB
|
---|
113 | I $E(RMPRH,1,$L(RMPRTXT))'=RMPRTXT K DIR("A",1) G LIKEB
|
---|
114 | LIKEA2 I RMPRLIN,'(RMPRLIN#RMPRMAX) D G LIKEB
|
---|
115 | . S DIR("A",1)="Press <RETURN> to see more, '^' to exit this list, or"
|
---|
116 | . Q
|
---|
117 | LIKEA3 K RMPRHA S RMPRHA("HCPCS")=RMPRH
|
---|
118 | S RMPRERR=$$HPACT^RMPRPIX1(.RMPRHA)
|
---|
119 | S RMPRLIN=RMPRLIN+1
|
---|
120 | W !?4,$J(RMPRLIN,2),?9,RMPRH,?19,RMPRHA("SHORT DESC")
|
---|
121 | S RMPRA(RMPRLIN)=RMPRH
|
---|
122 | G LIKEA1
|
---|
123 | LIKEB S DIR(0)="NAO"
|
---|
124 | S DIR("A")="Choose 1 - "_RMPRLIN_" : "
|
---|
125 | ;S DIR("?")="^D LIKEH^RMPRPIYC"
|
---|
126 | D ^DIR
|
---|
127 | I $D(DTOUT) S RMPREXC="T" G LIKEX
|
---|
128 | I $D(DIROUT) S RMPREXC="P" G LIKEX
|
---|
129 | I X="",$D(DIR("A",1)) S RMPREXC="" K DIR("A",1) G LIKEA3
|
---|
130 | I X=""!(X["^")!$D(DUOUT) S RMPREXC="^" G LIKEX
|
---|
131 | I $G(X),'$D(RMPRA(X)) W !!,"Please enter a number within the range." G LIKEB
|
---|
132 | I '$D(RMPRA(X)) W !!,"This response must be a number." G LIKEB
|
---|
133 | S RMPRHTXT=RMPRA(X)
|
---|
134 | ;
|
---|
135 | ; read in HCPCS and possibly Item as well
|
---|
136 | LIKEG K RMPR1
|
---|
137 | S RMPR1("HCPCS")=RMPRHTXT
|
---|
138 | S RMPRERR=$$HPACT^RMPRPIX1(.RMPR1)
|
---|
139 | I RMPRITXT'="",$D(^RMPR(661.11,"ASHI",RMPRSTN,RMPRHTXT,RMPRITXT)) D
|
---|
140 | . K RMPR11
|
---|
141 | . S RMPR11("STATION")=RMPRSTN
|
---|
142 | . S RMPR11("HCPCS")=RMPRHTXT
|
---|
143 | . S RMPR11("ITEM")=RMPRITXT
|
---|
144 | . S RMPRERR=$$GET^RMPRPIX1(.RMPR11)
|
---|
145 | . Q
|
---|
146 | G LIKEX
|
---|
147 | ;
|
---|
148 | ; If can't find HCPCS in PIP files use old DIC lookup
|
---|
149 | LIKEC D HCDIC(RMPRSTN,RMPRTXT,.RMPR1N)
|
---|
150 | I $G(RMPR1N("IEN"))'="" K RMPR1 M RMPR1=RMPR1N
|
---|
151 | ;
|
---|
152 | ;exit
|
---|
153 | LIKEX Q
|
---|
154 | LIKEH D QM,QM1H
|
---|
155 | Q
|
---|
156 | ;
|
---|
157 | ; Call DIC to match on text if not a HCPCS code
|
---|
158 | HCDIC(RMPRSTN,RMPRTXT,RMPR1) ;
|
---|
159 | N X,Y,DA,DIC
|
---|
160 | S DIC="^RMPR(661.1,"
|
---|
161 | S DIC(0)="EMQ"
|
---|
162 | S DIC("S")="I $$HCMAT^RMPRPIYC()"
|
---|
163 | S X=RMPRTXT
|
---|
164 | D ^DIC
|
---|
165 | I +Y'>0!($D(DTOUT))!($D(DUOUT)) G HCDICX
|
---|
166 | I $P(Y,"^",2)'="",$D(^RMPR(661.4,"XSHIL",RMPRSTN,$P(Y,"^",2))) D
|
---|
167 | . S RMPR1("HCPCS")=$P(Y,"^",2)
|
---|
168 | . S RMPRERR=$$HPACT^RMPRPIX1(.RMPR1)
|
---|
169 | . Q
|
---|
170 | HCDICX Q
|
---|
171 | ;
|
---|
172 | ;***** HCMAT - extrinsic called from DIC call to screen out
|
---|
173 | ; HCPCS not associated with PIP
|
---|
174 | ; RMPRSTN (station ien) must be set
|
---|
175 | HCMAT() ;
|
---|
176 | N RMPRMAT
|
---|
177 | S RMPRMAT=0
|
---|
178 | I $D(^RMPR(661.4,"XSHIL",RMPRSTN,$P(^RMPR(661.1,Y,0),"^",1))) S RMPRMAT=1
|
---|
179 | HCMATX Q RMPRMAT
|
---|