Produced by Araxis Merge on 11/9/2018 12:33:48 AM Central Standard Time. See www.araxis.com for information about Merge. This report uses XHTML and CSS2, and is best viewed with a modern standards-compliant browser. For optimum results when printing this report, use landscape orientation and enable printing of background images and colours in your browser.
# | Location | File | Last Modified |
---|---|---|---|
1 | CPEE_Build9_Sprint27.zip\HAC_CPE_CH | CHICDMT.m | Mon Nov 5 16:41:53 2018 UTC |
2 | CPEE_Build9_Sprint27.zip\HAC_CPE_CH | CHICDMT.m | Mon Nov 5 17:41:17 2018 UTC |
Description | Between Files 1 and 2 |
|
---|---|---|
Text Blocks | Lines | |
Unchanged | 2 | 1098 |
Changed | 1 | 2 |
Inserted | 0 | 0 |
Removed | 0 | 0 |
Whitespace | |
---|---|
Character case | Differences in character case are significant |
Line endings | Differences in line endings (CR and LF characters) are ignored |
CR/LF characters | Not shown in the comparison detail |
No regular expressions were active.
1 | CHICDMT ; | |
2 | G GO | |
3 | ENTER ; | |
4 | W !,"---- ---------- ---------- ---------- ---------- ---------- ---------- ------",! | |
5 | S A="" F I=0:1 S A= $O(^ICD.IC DD(A)) Q:A ="" | |
6 | W "Curren t content of ICD fil e is ",I," records" | |
7 | S A="" F I=0:1 S A= $O(^ICD.Cr osswalkICD D(A)) Q:A= "" | |
8 | W !,"Curr ent conten t of Cross walk file is ",I," r ecords" | |
9 | W !,! | |
10 | ;W !,"1) Archive cu rrent data " | |
11 | ;W !,"2) Restore ar chive" | |
12 | ;W !,"3) Clear curr ent Crossw alk" | |
13 | W !,"1) C lear curre nt Mapping Tool ICD CM & PCS D ata" | |
14 | ;W !,"5) Load Reimb ursement F ile into C rosswalk" | |
15 | W !,"2) L oad Optum File into ICD CM & P CS" | |
16 | W !,"3) A ssign AI T est Values in ICD CM & PCS fil e from Cro sswalk" | |
17 | R !,!,"Ma pping Tool > ",CHOICE | |
18 | I CHOICE= "" Q | |
19 | ;I CHOICE =1 D BACKU P G GO | |
20 | ;I CHOICE =2 D RESTO RE G GO | |
21 | ;I CHOICE =3 D KILLC X G GO | |
22 | I CHOICE= 1 D KILLIC D G ENTER | |
23 | ;I CHOICE =5 D LOADC X G GO | |
24 | I CHOICE= 2 D LOADIC D G GO | |
25 | I CHOICE= 3 D MAPICD G GO | |
26 | Q | |
27 | GO ; | |
28 | W !,"---- ---------- ---------- ---------- ---------- ---------- ---------- ------",! | |
29 | S A="" F I=0:1 S A= $O(^ICD.IC DD(A)) Q:A ="" | |
30 | W "Curren t content of Mapping Tool ICD CM & PCS f ile is ",I ," records " | |
31 | S A="" F I=0:1 S A= $O(^ICD.Cr osswalkICD D(A)) Q:A= "" | |
32 | W !,"Curr ent conten t of Cross walk file is ",I," r ecords" | |
33 | W !,! | |
34 | W !,"1) A rchive cur rent data" | |
35 | W !,"2) R estore arc hive" | |
36 | W !,"3) C lear curre nt Crosswa lk" | |
37 | W !,"4) C lear curre nt Mapping Tool ICD CM & PCS D ata" | |
38 | W !,"5) L oad Reimbu rsement Fi le into Cr osswalk" | |
39 | W !,"6) L oad Optum File into ICD CM & P CS" | |
40 | W !,"7) A ssign AI T est Values in ICD CM & PCS fil e from Cro sswalk" | |
41 | R !,!,"Ma pping Tool > ",CHOICE | |
42 | I CHOICE= "" Q | |
43 | I CHOICE= 1 D BACKUP G GO | |
44 | I CHOICE= 2 D RESTOR E G GO | |
45 | I CHOICE= 3 D KILLCX G GO | |
46 | I CHOICE= 4 D KILLIC D G GO | |
47 | I CHOICE= 5 D LOADCX G GO | |
48 | I CHOICE= 6 D LOADIC D G GO | |
49 | I CHOICE= 7 D MAPICD G GO | |
50 | Q | |
51 | LOADICD ; | |
52 | K AR S TY PE="O" | |
53 | S RFILE=$ $MENU^CHIC DOL(.TYPE, .AR) I RFI LE="" Q | |
54 | ;S SUB=AR ;R !,"Sto re in Area : ",SUB | |
55 | O RFILE:( "R") | |
56 | D OPT | |
57 | C RFILE | |
58 | Q | |
59 | LOADCX ; | |
60 | K AR S TY PE="r" | |
61 | S RFILE=$ $MENU^CHIC DOL(.TYPE, .AR) I RFI LE="" Q | |
62 | ;S SUB=AR ;R !,"Sto re in Area : ",SUB | |
63 | ; reimbur sement / g em | |
64 | S FN=$G(A R("WNAME") ) I FN="" S FN=RFILE | |
65 | S RG=$S(F N["_R_":"R ",FN["REIM B":"R",1:" G") | |
66 | O RFILE:( "R") | |
67 | D REIMB | |
68 | C RFILE | |
69 | Q | |
70 | OPT ; | |
71 | S REP=$ZH ,INITCNT=$ G(^ICD.ICD D) | |
72 | ;I $G(SUB )="" S SUB =BC_$P($P( FILE,10,2) ,"_") | |
73 | U 0 W !," Reading " ,RFILE,".. .",! | |
74 | ;I $G(DIS PLAY) D Q | |
75 | ;. F II=1 :1 U RFILE R RST I I I<DISPLAY U 0 W !,$T R(RST,$C(9 ),"^") ;F I=0:1:$L(R ST)\100+1 W !,$E(RST ,I*100+1,I *100+100), "\" | |
76 | S A=$ZUTI L(68,40,1) | |
77 | D ##class (%SYSTEM.O BJ).Compil e("ICD.*", "-d",.ERR) | |
78 | D ##class (%SYSTEM.O BJ).Compil e("ICDED.* ","-d",.ER R) | |
79 | ;K @GL@(S UB) | |
80 | ;S @GL@(S UB,"FILE") =RFILE | |
81 | ;S @GL@(S UB,"FILETY PE")=AR("F ILETYPE") | |
82 | ;S @GL@(S UB,"CODETY PE")=AR("C ODETYPE") | |
83 | ;W !,"Cou nt of curr ently load ed ICD rec ords",! | |
84 | W !,! | |
85 | F U RFIL E R RST Q: $ZEOF=-1 S RST=$TR( RST,$C(10, 13)) D PAR SE(RST,RFI LE) | |
86 | ;U 0 W !, @GL@(SUB), " records loaded int o ",GL,"(" "",SUB,""" )" | |
87 | Q | |
88 | PARSE(RST, FILE) ; | |
89 | ;U 0 W !, RST | |
90 | I RST?1"I CD10_CODE" .E Q | |
91 | ; write c urrently l oaded reco rd total t o the scre en every 1 0 seconds | |
92 | I $ZH-REP >10 U 0 W "Processed ICD-10 ", $S(AR("COD ETYPE")="C ":"CM",1:" PCS")," Re cords - ", ^ICD.ICDD- INITCNT," Current C ode ",$G(C ODE),*13 S REP=$ZH | |
93 | I FILE[". TAB" S DAT A=$TR(RST, $C(9),"^") D SAVE(DA TA) Q | |
94 | I BC="B" S CUT="1-8 ,9-9,10-44 ,45-92,93- 2092,2093- 2093,2094- 2094" | |
95 | E S CUT= "1-8,9-9,1 0-19,20-29 ,30-39,40- 49,50-89,9 0-2089,209 0-4089,409 0-4099,410 0-4100" | |
96 | S DATA="" | |
97 | F I=1:1:$ L(CUT,",") S LIM=$P( CUT,",",I) ,$P(DATA," ^",I)=$E(R ST,+LIM,$P (LIM,"-",2 )) | |
98 | D SAVE(DA TA) | |
99 | Q | |
100 | SAVE(DATA) ; | |
101 | ; | |
102 | N I | |
103 | ;S @GL@(S UB)=$G(@GL @(SUB))+1 | |
104 | ; massage data a li ttle | |
105 | ;I $P(DAT A,"^",2)=" I" Q | |
106 | I $P(DATA ,"^",6)="" Q | |
107 | S CODE=$P (DATA,"^") | |
108 | I AR("COD ETYPE")="C ",$L(CODE) >3,CODE'[" ." S $P(DA TA,"^")=$E (CODE,1,3) _"."_$E(CO DE,4,9) | |
109 | ; | |
110 | ;S @GL@(S UB,@GL@(SU B))=DATA | |
111 | ;F I=1:1: $L(DATA,"^ ") I $P(DA TA,"^",I)' ="" S @GL @(SUB,$C(6 5+I),$P(DA TA,"^",I), @GL@(SUB)) ="" | |
112 | I AR("COD ETYPE")="C " S ICD10R ecord=##cl ass(ICD.IC D10CM).%Ne w() | |
113 | I AR("COD ETYPE")="P " S ICD10R ecord=##cl ass(ICD.IC D10PCS).%N ew() | |
114 | S ICD10Re cord.ICDCo de=$P(DATA ,"^") | |
115 | S ICD10Re cord.Descr iption=$P( DATA,"^",4 ) | |
116 | S ICD10Re cord.Optum Status=$P( DATA,"^",6 ) | |
117 | S ICD10Re cord.State Approval=1 | |
118 | S ICD10Re cord.Optum Validity=$ P(DATA,"^" ,2) | |
119 | S Approva l="" | |
120 | I AR("COD ETYPE")="C " D | |
121 | . S Appro val=##clas s(ICD.Appr ovalICD10C M).%New() | |
122 | . ;S ICD1 0Record.Ap provalICD1 0CM=Approv al | |
123 | . S Appro val.ICD10= ICD10Recor d | |
124 | I AR("COD ETYPE")="P " D | |
125 | . S Appro val=##clas s(ICD.Appr ovalICD10P CS).%New() | |
126 | . ;S ICD1 0Record.Ap provalICD1 0PCS=Appro val | |
127 | . S Appro val.ICD10= ICD10Recor d | |
128 | I Approva l="" W 1/0 | |
129 | S Approva l.Approval State=1 | |
130 | S Approva l.NewNoun= 0 | |
131 | S Approva l.Tested=0 | |
132 | ; check i f this rec ord has ac tually cha nged (for C and U st atus) | |
133 | S ABORT=0 | |
134 | I AR("COD ETYPE")="C ",ICD10Rec ord.OptumS tatus="C"! (ICD10Reco rd.OptumSt atus="U") D | |
135 | . S ICD10 IEN="",ICD 10=ICD10Re cord.ICDCo de | |
136 | . F S IC D10IEN=$O( ^CHMICDX(" C",ICD10,I CD10IEN)) Q:'ICD10IE N Q:$P($G (^CHMICDX( ICD10IEN,0 )),"^",24) | |
137 | . Q:'ICD1 0IEN | |
138 | . ; now c heck if De scription and Validi ty is same | |
139 | . Q:ICD10 Record.Des cription'= $P($G(^CHM ICDX(ICD10 IEN,0)),"^ ") | |
140 | . I ICD10 Record.Opt umValidity ="C",$P($G (^CHMICDX( ICD10IEN,0 )),"^",16) =1 Q | |
141 | . I ICD10 Record.Opt umValidity ="I",$P($G (^CHMICDX( ICD10IEN,0 )),"^",16) '=1 Q | |
142 | . S ABORT =1 | |
143 | I AR("COD ETYPE")="P ",ICD10Rec ord.OptumS tatus="C"! (ICD10Reco rd.OptumSt atus="U") D | |
144 | . S ICD10 IEN="",ICD 10=ICD10Re cord.ICDCo de | |
145 | . I AR("C ODETYPE")= "P" F S I CD10IEN=$O (^CHMSERV( "BE",ICD10 _"Z",ICD10 IEN)) Q:'I CD10IEN Q :$P($G(^CH MSERV(ICD1 0IEN,0))," ^",5)="ICD -10" | |
146 | . Q:'ICD1 0IEN | |
147 | . ; now c heck if De scription and Validi ty is same | |
148 | . S JV=$O (^CHMSERV( ICD10IEN,1 ,0)) | |
149 | . Q:ICD10 Record.Des cription'= $G(^CHMSER V(ICD10IEN ,1,JV,30)) | |
150 | . I ICD10 Record.Opt umValidity ="C",$P($G (^CHMSERV( ICD10IEN,0 )),"^",9)= 1 Q | |
151 | . I ICD10 Record.Opt umValidity ="I",$P($G (^CHMSERV( ICD10IEN,0 )),"^",9)' =1 Q | |
152 | . S ABORT =1 | |
153 | I ABORT Q | |
154 | S sc=ICD1 0Record.%S ave() | |
155 | Q | |
156 | REIMB ; | |
157 | O RFILE:" R" | |
158 | S A=$ZUTI L(68,40,1) | |
159 | U 0 W !," Loading ",RFILE,!, ! ;,"Count of curren tly loaded Crosswalk records", ! | |
160 | D ##class (%SYSTEM.O BJ).Compil e("ICD.*", "-d",.ERR) | |
161 | D ##class (%SYSTEM.O BJ).Compil e("ICDED.* ","-d",.ER R) | |
162 | S REP=$ZH | |
163 | F COUNT=0 :1 D Q:$Z EOF=-1 | |
164 | . U RFILE R RST I $ ZEOF=-1 Q | |
165 | . S RST=$ TR(RST,$C( 10,13)) | |
166 | . S CODE= $$STS^CHIC DML($E(RST ,1,8)),COD E=$ZU(28,C ODE,5) | |
167 | . I $ZH-R EP>10 U 0 W "Process ing ICD-10 ",$S(AR(" CODETYPE") ="C":"CM", 1:"PCS")," Record Nu mber ",COU NT," Last Code ",CO DE," ",* 13 S REP=$ ZH | |
168 | . K ICD9 | |
169 | . I $L(CO DE)>3,AR(" CODETYPE") ="C" S COD E=$E(CODE, 1,3)_"."_$ E(CODE,4,9 9) | |
170 | . ; GEM i s disabled for now | |
171 | . I RG="G " D Q | |
172 | . . S FLA GS=$$STS^C HICDML($E( RST,15,19) ) | |
173 | . . S ICD 9($$STS^CH ICDML($ZU( 28,$E(RST, 9,14),5))) =FLAGS | |
174 | . I RG="R " D | |
175 | . . S C1= $E(RST,9) | |
176 | . . K ICD 9 | |
177 | . . F J=1 :1:C1 S IC D9($$STS^C HICDML($ZU (28,$E(RST ,J*6+5,J*6 +10),5)))= "" | |
178 | . ; store data | |
179 | . I AR("C ODETYPE")= "C" S ICD1 0Record=## class(ICD. CrosswalkI CDDX).%New () | |
180 | . I AR("C ODETYPE")= "P" S ICD1 0Record=## class(ICD. CrosswalkI CDPCS).%Ne w() | |
181 | . S ICD10 Record.ICD 10=CODE | |
182 | . S ICD9= "" | |
183 | . S DOTP= $S(AR("COD ETYPE")="C ":3,1:2) | |
184 | . F S IC D9=$O(ICD9 (ICD9)) Q: ICD9="" D | |
185 | . . S ICD 9Record="" | |
186 | . . I AR( "CODETYPE" )="C" S IC D9Record=# #class(ICD .ICD9Cross walkDX).%N ew() | |
187 | . . I AR( "CODETYPE" )="P" S IC D9Record=# #class(ICD .ICD9Cross walkPCS).% New() | |
188 | . . I ICD 9Record="" W 1/0 | |
189 | . . S ICD 9X=ICD9 S: $L(ICD9)>D OTP ICD9X= $E(ICD9,1, DOTP)_"."_ $E(ICD9,DO TP+1,*) | |
190 | . . S ICD 9Record.IC D9=ICD9X | |
191 | . . S ICD 9Record.IC D9Crosswal k=ICD10Rec ord | |
192 | . S sc=IC D10Record. %Save() | |
193 | . I sc'=1 u 0 d $Sy stem.Statu s.DisplayE rror(sc) W 1/0 | |
194 | D ##class (ICD.Cross walkICD).% BuildIndic es() | |
195 | Q | |
196 | BACKUP ; | |
197 | I $D(^ICD BK.ICDD) D | |
198 | . W !,"Ex isting Arc hives: " | |
199 | . S ARN=" " | |
200 | . F S AR N=$O(^ICDB K.ICDD(ARN )) Q:ARN=" " W !,?10 ,ARN | |
201 | R !,"Save as Archiv e: ",ARN Q :ARN="" | |
202 | I $D(^ICD BK.ICDD(AR N)) W !,"A rchive alr eady exist s" Q | |
203 | W !,"Arch iving...", ! | |
204 | M ^ICDBK. CrosswalkI CDD(ARN)=^ ICD.Crossw alkICDDD W "." | |
205 | M ^ICDBK. CrosswalkI CDDXC(ARN) =^ICD.Cros swalkICDDX C W "." | |
206 | M ^ICDBK. CrosswalkI CDI(ARN)=^ ICD.Crossw alkICDI W "." | |
207 | M ^ICDBK. CrosswalkI CDPCSC(ARN )=^ICD.Cro sswalkICDP CSC W "." | |
208 | M ^ICDBK. ICD10CMC(A RN)=^ICD.I CD10CMC W "." | |
209 | M ^ICDBK. ICD10PCSC( ARN)=^ICD. ICD10PCSC W "." | |
210 | M ^ICDBK. ICD9Crossw alkDXI(ARN )=^ICD.ICD 9Crosswalk DXI W "." | |
211 | M ^ICDBK. ICD9Crossw alkPCSI(AR N)=^ICD.IC D9Crosswal kPCSI W ". " | |
212 | M ^ICDBK. ICDD(ARN)= ^ICD.ICDD W "." | |
213 | M ^ICDBK. ICDI(ARN)= ^ICD.ICDI W "." | |
214 | M ^ICDBK. ProgramInd icatorICD1 0PCSI(ARN) =^ICD.Prog ramIndicat orICD10PCS I W "." | |
215 | M ^ICDBK. CrosswalkI CDD(ARN)=^ ICD.Crossw alkICDD W "." | |
216 | W !,"Done archiving to ",ARN | |
217 | Q | |
218 | RESTORE ; | |
219 | I $D(^ICD BK.ICDD) D | |
220 | . W !,"Ex isting Arc hives: " | |
221 | . S ARN=" " | |
222 | . F S AR N=$O(^ICDB K.ICDD(ARN )) Q:ARN=" " W !,?10 ,ARN | |
223 | R !,"Arch ive Name: ",ARN Q:AR N="" | |
224 | I '$D(^IC DBK.ICDD(A RN)) W !," Archive do es not exi st" Q | |
225 | I $G(^ICD .ICDD)'=0 D | |
226 | . R !,"Cu rrent data exists. Clear befo re restori ng? Y//", YN | |
227 | . I YN="Y "!(YN="y") !(YN="") D KILLCX,KI LLICD | |
228 | W !,"Rest oring..." | |
229 | M ^ICD.Cr osswalkICD D=^ICDBK.C rosswalkIC DDD(ARN) | |
230 | M ^ICD.Cr osswalkICD DXC=^ICDBK .Crosswalk ICDDXC(ARN ) | |
231 | M ^ICD.Cr osswalkICD I=^ICDBK.C rosswalkIC DI(ARN) | |
232 | M ^ICD.Cr osswalkICD PCSC=^ICDB K.Crosswal kICDPCSC(A RN) | |
233 | M ^ICD.IC D10CMC=^IC DBK.ICD10C MC(ARN) | |
234 | M ^ICD.IC D10PCSC=^I CDBK.ICD10 PCSC(ARN) | |
235 | M ^ICD.IC D9Crosswal kDXI=^ICDB K.ICD9Cros swalkDXI(A RN) | |
236 | M ^ICD.IC D9Crosswal kPCSI=^ICD BK.ICD9Cro sswalkPCSI (ARN) | |
237 | M ^ICD.IC DD=^ICDBK. ICDD(ARN) | |
238 | M ^ICD.IC DI=^ICDBK. ICDI(ARN) | |
239 | M ^ICD.Pr ogramIndic atorICD10P CSI=^ICDBK .ProgramIn dicatorICD 10PCSI(ARN ) | |
240 | M ^ICD.Cr osswalkICD D=^ICDBK.C rosswalkIC DD(ARN) | |
241 | W !,"Done Restoring from ",AR N | |
242 | Q | |
243 | KILLICD ; | |
244 | ;K ^ICD.I CD10CMC | |
245 | S A="" F S A=$O(^I CD.ICD10CM C("")) Q:A ="" K ^IC D.ICD10CMC (A) | |
246 | ;K ^ICD.I CD10PCSC | |
247 | S A="" F S A=$O(^I CD.ICD10PC SC("")) Q: A="" K ^I CD.ICD10PC SC(A) | |
248 | ;K ^ICD.I CDD | |
249 | S A="" F S A=$O(^I CD.ICDD("" )) Q:A="" K ^ICD.IC DD(A) | |
250 | S ^ICD.IC DD=0 | |
251 | ;K ^ICD.I CDI | |
252 | S A="" F S A=$O(^I CD.ICDI("" )) Q:A="" K ^ICD.IC DI(A) | |
253 | ;K ^ICD.P rogramIndi catorICD10 PCSI | |
254 | S A="" F S A=$O(^I CD.Program IndicatorI CD10PCSI(" ")) Q:A="" K ^ICD.P rogramIndi catorICD10 PCSI(A) | |
255 | W !,"Mapp ing Tool I CD CM & PC S cleared" | |
256 | Q | |
257 | KILLCX ; | |
258 | ;K ^ICD.C rosswalkIC DD | |
259 | S A="" F S A=$O(^I CD.Crosswa lkICDD("") ) Q:A="" K ^ICD.Cro sswalkICDD (A) | |
260 | S ^ICD.Cr osswalkICD D=0 | |
261 | ;K ^ICD.C rosswalkIC DDXC | |
262 | S A="" F S A=$O(^I CD.Crosswa lkICDDXC(" ")) Q:A="" K ^ICD.C rosswalkIC DDXC(A) | |
263 | ;K ^ICD.C rosswalkIC DI | |
264 | S A="" F S A=$O(^I CD.Crosswa lkICDI("") ) Q:A="" K ^ICD.Cro sswalkICDI (A) | |
265 | ;K ^ICD.C rosswalkIC DPCSC | |
266 | S A="" F S A=$O(^I CD.Crosswa lkICDPCSC( "")) Q:A=" " K ^ICD. CrosswalkI CDPCSC(A) | |
267 | ;K ^ICD.I CD9Crosswa lkDXI | |
268 | S A="" F S A=$O(^I CD.ICD9Cro sswalkDXI( "")) Q:A=" " K ^ICD. ICD9Crossw alkDXI(A) | |
269 | ;K ^ICD.I CD9Crosswa lkPCSI | |
270 | S A="" F S A=$O(^I CD.ICD9Cro sswalkPCSI ("")) Q:A= "" K ^ICD .ICD9Cross walkPCSI(A ) | |
271 | W !,"Cros swalk Clas ses cleare d" | |
272 | Q | |
273 | MAPICD ; | |
274 | ; | |
275 | s sc=##cl ass(ICDED. MappingToo lLoad).Map ICDCM2Cros swalk() | |
276 | s sc=##cl ass(ICDED. MappingToo lLoad).Map ICDPCS2Cro sswalk() | |
277 | Q | |
278 | FM2C ; | |
279 | ;do Conve rtFiles^%f m2cache(fi les,packag e,compile, wp-list,re ad-only, | |
280 | ;sappend- file-numbe r,filer,co mpiler-fla gs,class-c ount,owner ,retain) | |
281 | S file="2 00,741100, 741002.94" | |
282 | S pack="C H" | |
283 | S comp=1 | |
284 | S wpl=0 | |
285 | S ro=1 | |
286 | S sappend =0 | |
287 | S filer=1 | |
288 | S compfla g="dk-l" | |
289 | S classco unt="" | |
290 | S owner=$ USERNAME | |
291 | S retain= 0 | |
292 | S file="7 41100.01,7 41100.02,7 41100.03,7 41100.04" | |
293 | W !,"Here goes noth ing..." H 1 | |
294 | do Conver tFiles^%fm 2cache(fil e,pack,com p,wpl,ro,s append,fil er,compfla g,.classco unt,owner, retain) | |
295 | Q | |
296 | SUBDIVD ; | |
297 | S IEN=0,U ="^",PAUSE =0,SKIP="" | |
298 | K COUNT | |
299 | S ICD10F= 1 ;doing I CD10 | |
300 | ;S ICD10F =0 ;doing ICD9 | |
301 | S1D S IEN= $O(^CHMICD X(IEN)) I 'IEN W ! Z W COUNT Q | |
302 | S D=$G(^C HMICDX(IEN ,0)) I D=" " G S1D | |
303 | I $P(D,U, 16)'=1 G S 1D | |
304 | I $D(^CHM ICDX(IEN,1 02,1,0)),$ D(^CHMICDX (IEN,102,6 ,0)) G S1D | |
305 | I +$P(D,U ,24)=ICD10 F D | |
306 | . D S2DX( IEN,.HI,IC D10F) ;ZW HI | |
307 | . ; if mo re than on e, put on spreadshee t | |
308 | . I $O(HI ("CVA",$O( HI("CVA"," "))))'=""! ($O(HI("SB ",$O(HI("S B",""))))' ="") D | |
309 | . . ;W !, "CVA - ",C ODE," (IEN ",IEN,") ",$P("ICD9 ,ICD10",", ",ICD10F+1 ),! ZW HI( "CODE","CV A") S PAUS E=1 S X=$I (COUNT("MU LT")) | |
310 | . . ;W !, "SB - ",CO DE," (IEN ",IEN,") " ,$P("ICD9, ICD10","," ,ICD10F+1) ,! ZW HI(" CODE","SB" ) S PAUSE= 1 | |
311 | . . ;S X= $I(COUNT(" MULT")) | |
312 | . . S CVA ="",SB="", FST=1 | |
313 | . . W ! | |
314 | . . F D Q:CVA=""& (SB="") | |
315 | . . . I C VA'=""!FST S CVA=$O( HI("CVA",C VA)) | |
316 | . . . I S B'=""!FST S SB=$O(HI ("SB",SB)) | |
317 | . . . I C VA="",SB=" " Q | |
318 | . . . W ! ,$P(D,U,2) ,",",$P(D, U),",,," | |
319 | . . . W:C VA +$P(^DI C(741100,C VA,0),"#", 2) | |
320 | . . . W " ," | |
321 | . . . W:S B +$P(^DIC (741100,SB ,0),"#",2) | |
322 | . . . W " ,,,No,No,N ot Edited, " | |
323 | . . . S I ="",DELIM= "" | |
324 | . . . F S I=$O(HI( "CODE","CV A",I)) Q:I ="" I HI( "CODE","CV A",I)=CVA W DELIM,I S DELIM="/ " | |
325 | . . . S I ="",DELIM= "" W "," | |
326 | . . . F S I=$O(HI( "CODE","SB ",I)) Q:I= "" I HI(" CODE","SB" ,I)=SB W D ELIM,I S D ELIM="/" | |
327 | . I $O(HI ("CVA","") )=""!($O(H I("SB","") )="") D | |
328 | . . ;W !, "MISSING - ",CODE," (IEN ",IEN ,") " S PA USE=1,X=$I (COUNT("MI SSING")) | |
329 | . I PAUSE =0 ;W !,"O K - ",CODE ," (IEN ", IEN,") ",$ P("ICD9,IC D10",",",I CD10F+1)," CVA=",$O (HI("CVA", ""))," SB =",$O(HI(" SB","")) S X=$I(COUN T("SINGLE" )) | |
330 | . I PAUSE R:SKIP'=" S" !,"More -- ",SKIP #1 Q:SKIP[ "^" S PAU SE=0,X=$O( COUNT("FIX ")) | |
331 | G S1D:SKI P'["^" | |
332 | Q | |
333 | SUBDIVP ; | |
334 | S IEN=0,U ="^",PAUSE =0,SKIP="" | |
335 | K COUNT | |
336 | S ICD10F= 1 ;doing I CD10 | |
337 | ;S ICD10F =0 ;doing ICD9 | |
338 | S1P S IEN= $O(^CHMSER V(IEN)) I 'IEN W ! Z W COUNT Q | |
339 | S D=$G(^C HMSERV(IEN ,0)) I D=" " G S1P | |
340 | I $D(^CHM SERV(IEN,1 02,1,0)),$ D(^CHMSERV (IEN,102,6 ,0)) G S1P | |
341 | I $P(D,U, 5)=$S(ICD1 0F=0:"ICD- 9",1:"ICD- 10") D | |
342 | . D S2PCS (IEN,.HI,I CD10F) ;ZW HI | |
343 | . I $O(HI ("CVA",$O( HI("CVA"," "))))'=""! ($O(HI("SB ",$O(HI("S B",""))))' ="") D | |
344 | . . ;W !, "CVA - ",C ODE," (IEN ",IEN,") ",$P("ICD9 ,ICD10",", ",ICD10F+1 ),! ZW HI( "CODE","CV A") S PAUS E=1 S X=$I (COUNT("MU LT")) | |
345 | . . ;W !, "SB - ",CO DE," (IEN ",IEN,") " ,$P("ICD9, ICD10","," ,ICD10F+1) ,! ZW HI(" CODE","SB" ) S PAUSE= 1 | |
346 | . . ;S X= $I(COUNT(" MULT")) | |
347 | . . S CVA ="",SB="", FST=1 | |
348 | . . W ! | |
349 | . . F D Q:CVA=""& (SB="") | |
350 | . . . I C VA'=""!FST S CVA=$O( HI("CVA",C VA)) | |
351 | . . . I S B'=""!FST S SB=$O(HI ("SB",SB)) | |
352 | . . . I C VA="",SB=" " Q | |
353 | . . . W ! ,$P(D,U)," ," | |
354 | . . . S I DT=$O(^CHM SERV(IEN,1 ,0)) W ^CH MSERV(IEN, 1,IDT,30), ",,," | |
355 | . . . W:C VA +$P(^DI C(741100,C VA,0),"#", 2) | |
356 | . . . W " ," | |
357 | . . . W:S B +$P(^DIC (741100,SB ,0),"#",2) | |
358 | . . . W " ,,,No,No,N ot Edited, " | |
359 | . . . S I ="",DELIM= "" | |
360 | . . . F S I=$O(HI( "CODE","CV A",I)) Q:I ="" I HI( "CODE","CV A",I)=CVA W DELIM,I S DELIM="/ " | |
361 | . . . S I ="",DELIM= "" W "," | |
362 | . . . F S I=$O(HI( "CODE","SB ",I)) Q:I= "" I HI(" CODE","SB" ,I)=SB W D ELIM,I S D ELIM="/" | |
363 | . I $O(HI ("CVA","") )=""!($O(H I("SB","") )="") D | |
364 | . . ;W !, "MISSING - ",CODE," (IEN ",IEN ,") " S PA USE=1,X=$I (COUNT("MI SSING")) | |
365 | . I PAUSE =0 ;W !,"O K - ",CODE ," (IEN ", IEN,") ",$ P("ICD9,IC D10",",",I CD10F+1)," CVA=",$O (HI("CVA", ""))," SB =",$O(HI(" SB","")) S X=$I(COUN T("SINGLE" )) | |
366 | . I PAUSE R:SKIP'=" S" !,"More -- ",SKIP #1 Q:SKIP[ "^" S PAU SE=0,X=$O( COUNT("FIX ")) | |
367 | G S1P:SKI P'["^" | |
368 | Q | |
369 | ; get lis t of CVA/S B codes | |
370 | S2DX(IEN,H I,ICD10F) ; | |
371 | ;I IEN>20 000 W 1/0 | |
372 | ;W !,IEN, " ",D | |
373 | K HI S U= "^" | |
374 | S D=$G(^C HMICDX(IEN ,0)) | |
375 | ;I $P(D,U ,16)'=1 Q | |
376 | ;W !,IEN, " ",D | |
377 | S CODE=$P (D,U,2) | |
378 | I CODE?1A .E S CODE1 =$O(^CHMIC DX("AE",CO DE),-1) | |
379 | E S CODE 1=CODE_" " | |
380 | ;W !," " ,CODE | |
381 | S PAUSE=0 | |
382 | F S CODE 1=$O(^CHMI CDX("AE",C ODE1)) Q:$ E(CODE1,1, $L(CODE))' =CODE D | |
383 | . S CIEN= "" | |
384 | . F S CI EN=$O(^CHM ICDX("AE", CODE1,CIEN )) Q:CIEN= "" D | |
385 | . . ;I CI EN=IEN Q | |
386 | . . S CIE ND=$G(^CHM ICDX(CIEN, 0)) | |
387 | . . I +$P (CIEND,U,2 4)'=ICD10F Q | |
388 | . . I CIE ND'="" D | |
389 | . . . S H I("CODE",$ P(CIEND,U, 2))=CIEN | |
390 | . . . S H I("CODE"," CVA",$P(CI END,U,2))= $P($G(^CHM ICDX(CIEN, 102,1,0)), U,2) | |
391 | . . . S H I("CODE"," SB",$P(CIE ND,U,2))=$ P($G(^CHMI CDX(CIEN,1 02,6,0)),U ,2) | |
392 | . . S CVA =$P($G(^CH MICDX(CIEN ,102,1,0)) ,U,2) | |
393 | . . S SB= $P($G(^CHM ICDX(CIEN, 102,6,0)), U,2) | |
394 | . . ;S HI (CODE,CODE 1,102,1,0) =$G(^CHMIC DX(CIEN,10 2,1,0)) | |
395 | . . ;S HI (CODE,CODE 1,102,6,0) =$G(^CHMIC DX(CIEN,10 2,6,0)) | |
396 | . . I CVA S HI("CVA ",CVA)=CIE N | |
397 | . . I SB S HI("SB", SB)=CIEN | |
398 | Q | |
399 | S2PCS(IEN, HI,ICD10F) ; | |
400 | ;I IEN>20 000 W 1/0 | |
401 | ;W !,IEN, " ",D | |
402 | K HI S U= "^" | |
403 | S D=$G(^C HMSERV(IEN ,0)) | |
404 | I $P(D,U, 5)'=$S(ICD 10F=0:"ICD -9",1:"ICD -10") Q | |
405 | ;W !,IEN, " ",D | |
406 | S CODE=$P (D,U),CODE 1=CODE_" " | |
407 | S CODE1=$ O(^CHMSERV ("B",CODE) ,-1) | |
408 | ;W !," " ,CODE | |
409 | S PAUSE=0 | |
410 | F S CODE 1=$O(^CHMS ERV("B",CO DE1)) Q:$E (CODE1,1,$ L(CODE))'= CODE D | |
411 | . S CIEN= "" | |
412 | . F S CI EN=$O(^CHM SERV("B",C ODE1,CIEN) ) Q:CIEN=" " D | |
413 | . . ;I CI EN=IEN Q | |
414 | . . S CIE ND=$G(^CHM SERV(CIEN, 0)) | |
415 | . . ;W !, CIEN," ",C IEND | |
416 | . . I $P( CIEND,U,5) '=$S(ICD10 F=0:"ICD-9 ",1:"ICD-1 0") Q | |
417 | . . I CIE ND'="" D | |
418 | . . . S H I("CODE",$ P(CIEND,U) )=CIEN | |
419 | . . . S H I("CODE"," CVA",$P(CI END,U))=$P ($G(^CHMSE RV(CIEN,10 2,1,0)),U, 2) | |
420 | . . . S H I("CODE"," SB",$P(CIE ND,U))=$P( $G(^CHMSER V(CIEN,102 ,6,0)),U,2 ) | |
421 | . . S CVA =$P($G(^CH MSERV(CIEN ,102,1,0)) ,U,2) | |
422 | . . S SB= $P($G(^CHM SERV(CIEN, 102,6,0)), U,2) | |
423 | . . ;S HI (CODE,CODE 1,102,1,0) =$G(^CHMIC DX(CIEN,10 2,1,0)) | |
424 | . . ;S HI (CODE,CODE 1,102,6,0) =$G(^CHMIC DX(CIEN,10 2,6,0)) | |
425 | . . I CVA S HI("CVA ",CVA)=CIE N | |
426 | . . I SB S HI("SB", SB)=CIEN | |
427 | Q | |
428 | ; scan fo r incomple te codes | |
429 | SCAN ; | |
430 | S A="^CHM PAY(""A"") ",U="^" K COUNT,COUN T1 | |
431 | F S A=$Q (@A,-1) Q: A="" D Q :$C(GLAZ)= "^" | |
432 | . I A?1"^ CHMPAY("1. N1",101,"1 .N1",""DME -DX"","1.N 1",0)" S B =@A,DX=$P( B,U) I $$S D(DX) | |
433 | . I A?1"^ CHMPAY("1. N1",101,"1 .N1",""INP "")" S B=@ A,DX=$P(B, U,3) I $$S D(DX) | |
434 | . I A?1"^ CHMPAY("1. N1",101,"1 .N1",""INP -DX"","1.N 1",0)" S B =@A,DX=$P( B,U) I $$S D(DX) | |
435 | . I A?1"^ CHMPAY("1. N1",101,"1 .N1",""OPT -DX"","1.N 1",0)" S B =@A,DX=$P( B,U) I $$S D(DX) | |
436 | . I A?1"^ CHMPAY("1. N1",""DEN- DX"","1.N1 ",0)" S B= @A,DX=$P(B ,U) I $$SD (DX) | |
437 | . I A?1"^ CHMPAY("1. N1",""DME- DX"","1.N1 ",0)" S B= @A,DX=$P(B ,U) I $$SD (DX) | |
438 | . I A?1"^ CHMPAY("1. N1",""INP" ")" S B=@A ,DX=$P(B,U ,3) I $$SD (DX) | |
439 | . I A?1"^ CHMPAY("1. N1",""INP- DX"","1.N1 ",0)" S B= @A,DX=$P(B ,U) I $$SD (DX) | |
440 | . I A?1"^ CHMPAY("1. N1",""OPT- DX"","1.N1 ",0)" S B= @A,DX=$P(B ,U) I $$SD (DX) | |
441 | . I A?1"^ CHMPAY("1. N1",""PHAR M"","1.N1" ,""RX-DX"" ,"1.N1",0) " S B=@A,D X=$P(B,U) I $$SD(DX) | |
442 | . I A?1"^ CHMPAY("1. N1",""PHAR M"","1.N1" ,0)" S B=@ A,DX=$P(B, U,14) I $$ SD(DX) | |
443 | . R *GLAZ :0 I GLAZ= 32 W !,!," Incomplete /Total: ", COUNT("INC OM"),"/",C OUNT("INCO M")+COUNT( "COMP")," = ",COUNT( "INCOM")/( COUNT("INC OM")+COUNT ("COMP")), ! | |
444 | Q | |
445 | SD(DX) ; | |
446 | I DX="" S X=$I(COUN T("NONE")) Q 0 | |
447 | S G=$G(^C HMICDX(DX, 0)) I G="" S X=$I(CO UNT1("BROK EN",DX)),X =$I(COUNT( "BROKEN")) Q 0 | |
448 | I $P(G,U, 16) S X=$I (COUNT1("I NCOM",DX)) ,X=$I(COUN T("INCOM") ) D Q 1 | |
449 | . ;W !,A, " = ",@A | |
450 | . W !,!,X ,") ",A," = ",@A | |
451 | . S CLMZ= ^CHMPAY(+$ P(A,"(",2) ,0) | |
452 | . W !,$P( CLMZ,U)," Status:" | |
453 | . W $P("R EJECTED;IN PROCESS;P AYMENT REQ UESTED;EOB REQUESTED ;COMPLETE; ADJUDICATE D;PAYMENT REJECTED C APPS/CALM; ADMINISTRA TIVE SUSPE NSE;PAYMEN T APPROVED CAPPS/CAL M;MANUALLY PROCESSED ;DELETED", ";",$P(CLM Z,U,2)+1) | |
454 | . S DATE= $P(CLMZ,U, 8) W " D ate:",$E(D ATE,4,5)," /",$E(DATE ,6,7),"/", DATE\10000 +1700 | |
455 | . W " C ode: ",$P( ^CHMICDX(D X,0),U,2) | |
456 | . I $P(A, ",",2)=101 S X=$I(CO UNT("DETAI L","101,"_ $P(A,"""", 2))) | |
457 | . I $P(A, ",",2)'=10 1 S X=$I(C OUNT("DETA IL",$P(A," """,2))) | |
458 | S X=$I(CO UNT("COMP" )) | |
459 | Q 0 | |
460 | TERMS ; | |
461 | S A=0,U=" ^" | |
462 | F S A=$O (^CHMSERV( A)) Q:'A I ^CHMSERV (A,0)["ICD -9" S B=$O (^CHMSERV( A,1,"")) I $P($G(^CH MSERV(A,1, B,0)),U) W !,^CHMSER V(A,0) | |
463 | Q | |
464 | DD ; | |
465 | S DIC=741 000 K DX S U="^" | |
466 | D DDPROC( DIC,"^CHMP AY,#") | |
467 | Q | |
468 | DDPROC(DIC ,GL) ; | |
469 | W !,"Ente ring DIC=" ,DIC | |
470 | N FLD S F LD=0 | |
471 | DDP1 ; | |
472 | S FLD=$O( ^DD(DIC,FL D)) Q:'FLD | |
473 | S DATA=^D D(DIC,FLD, 0) | |
474 | W !,DIC," ",FLD," " ,DATA | |
475 | I $P(DATA ,U,2)[7410 06.05 S DX (DIC,FLD)= GL_","_$P( DATA,U,4) G DDP1 | |
476 | I $P(DATA ,U,4)[";0" D | |
477 | . S SDIC= $TR($P(DAT A,U,2),"AB CDEFGHIJKL MNOPQRSTUV WXYZ") | |
478 | . D DDPRO C(SDIC,GL_ $P(DATA,U, 4)_",#") | |
479 | G DDP1 | |
480 | CHFM2C ; A ll | |
481 | ; Mapping tool comm ents..... | |
482 | ; | |
483 | ;http:// IP /csp/docbo ok/DocBook .UI.Page.c ls?KEY=AFI LEMAN_Conv ersion | |
484 | ; | |
485 | ;Owner of the Class es Created owner | |
486 | ;Package Name to Cr eate the C lasses in package | |
487 | ;Super Cl asses supe rClasses | |
488 | ;Table Na me Format Based on t he File Na me and Num ber tableN ameFormat | |
489 | ;Child Ta ble Name F ormat Base d on the F ile Name a nd Number childTable NameFormat | |
490 | ;Datatype to use fo r FileMan Date field s dateTy pe | |
491 | ;Datatype to use fo r FileMan DateTime f ields datetime Type | |
492 | ;Expand P ointers? ex pandPointe rs | |
493 | ;Expand S et Of Code s fields xpandSet OfCodes | |
494 | ;Datatype to use fo r Set Of C odes field s se tOfCodesEn um | |
495 | ;Define R equired Pr operties f or Fields that are requ iredType | |
496 | ;Extended Mapping extend edMapping | |
497 | ;Name of the IEN Fi eld ienField Name | |
498 | ;Retain C lass? retain Class | |
499 | ;Recursio n recu rsion | |
500 | ; 0 me ans no rec ursion, 1 means part ial recurs ion, and 2 means ful l recursio n. | |
501 | ;Word-Pro cessing Fi elds Conve rsion wpIsList | |
502 | ;Read Onl y? read only | |
503 | ;Log File logF ile | |
504 | ;Compile Classes? compil e | |
505 | ;Compile Flags compil eQSpec | |
506 | ;Delete F lags dele teQSpec | |
507 | ;Display Result displa y | |
508 | ;0 means no display , 1 means minimal di splay, and 2 means f ull displa y. | |
509 | ;S fmSett ings("disp lay")=2 | |
510 | ;S fmFiel ds(200,.01 )="" | |
511 | ;S classC ount=4 | |
512 | F I="owne r:_SYSTEM" ,"superCla sses:","da teType:%Li brary.File manDate" S fmSetting s($p(I,":" ))=$P(I,": ",2,99) | |
513 | F I="date timeType:% Library.Fi lemanTimeS tamp" S fm Settings($ p(I,":"))= $P(I,":",2 ,99) | |
514 | F I="expa ndPointers :","xpandS etOfCodes: ","setOfCo desEnum:%L ibrary.Enu mString" S fmSetting s($p(I,":" ))=$P(I,": ",2,99) | |
515 | F I="requ iredType:R EQUIRED FI ELDS","ext endedMappi ng:","ienF ieldName:I EN" S fmSe ttings($p( I,":"))=$P (I,":",2,9 9) | |
516 | F I="reta inClass:1" ,"recursio n:0","wpIs List:1","r eadonly:", "logFile:" ,"compile: 1" S fmSet tings($p(I ,":"))=$P( I,":",2,99 ) | |
517 | F I="comp ileQSpec:/ display=al l/lock=0", "deleteQSp ec:/displa y=all","di splay:2" S fmSetting s($p(I,":" ))=$P(I,": ",2,99) | |
518 | ; | |
519 | ; ******* ********** *** these three are important ********* ********** ******** | |
520 | ; | |
521 | F I="tabl eNameForma t:<FILENAM E>","child TableNameF ormat:<FIL ENAME>","p ackage:CH" S fmSetti ngs($p(I," :"))=$P(I, ":",2,99) | |
522 | S FileLis t="741006. 05,200,741 002.93,741 002.94,741 006,741100 " | |
523 | ;S FX=1 | |
524 | ;F S Fil e=$P(FileL ist,",",FX ) Q:File=" " S fmFil es(File)=" ",FX=FX+1 | |
525 | ; | |
526 | ; Execute the below DO statem ent at the command p rompt | |
527 | Do $Syste m.OBJ.FM2C lass.Some( .FileList, .fmSetting s) | |
528 | Q | |
529 | CODESCAN | |
530 | S FILE=$$ MENU^CHICD OL("M",.DA TA) | |
531 | O FILE:"R " | |
532 | F D | |
533 | . U FILE R DAT S OD AT=DAT | |
534 | . S DAT=$ S(DATA("CO DETYPE")=" C":$$MTFIX CM^CHICDOL (DAT),1:$$ MTFIXPCS^C HICDOL(DAT )) | |
535 | . S CVA1= $P(DAT,"^" ,5),SB1=$P (DAT,"^",6 ) | |
536 | . I '$D(^ DIC(741100 ,"B","TEST #"_CVA1)) U 0 W !,D AT S FOUND ($I(FOUND) ,1)=ODAT,F OUND(FOUND ,2)=DAT | |
537 | . I '$D(^ DIC(741100 ,"B","TEST #"_SB1)) U 0 W !,DA T S FOUND( $I(FOUND), 1)=ODAT,FO UND(FOUND, 2)=DAT | |
538 | Q | |
539 | ; general write obj ect | |
540 | WOBJ(OBJ) ; | |
541 | I '$ISOBJ ECT(OBJ) Q | |
542 | S CN=$P(O BJ,"@",2) | |
543 | S cdef=## class(%Dic tionary.Cl assDefinit ion).%Open Id(CN) | |
544 | S count=c def.Proper ties.Count () | |
545 | F i=1:1:c ount D | |
546 | . S Prop= cdef.Prope rties.GetA t(i).Name, PType=cdef .Propertie s.GetAt(i) .Collectio n | |
547 | . I PType ="" W !,Pr op," = " X "W OBJ."_ Prop Q | |
548 | . X "S co unt1=OBJ." _Prop_".Co unt()" W ! ,Prop," = list (",co unt1,")" | |
549 | . F j=1:1 :count1 X "S V=OBJ." _Prop_".Ge tAt(j)" W !," (",j, ")=",V I j >10 W !," ......" Q | |
550 | Q |
Araxis Merge (but not the data content of this report) is Copyright © 1993-2016 Araxis Ltd (www.araxis.com). All rights reserved.