ICDDRGXM ;ALB/MRY - GROUPER PROCESS ; 10/1/07 1:38pm ;;18.0;DRG Grouper;**31**;Oct 20, 2000;Build 7 CKHIV ;MDC25 grouping; MS-DRG ;Q:ICDP25="" I ICDPD'["h"&(ICDSD'["h") Q S ICDRG=$S(ICDOR["x":970,ICDPD["i"&($D(ICDS25(1))):977,1:ICDRG) S ICDGH=$S("969^976^977"[ICDRG:1,1:0),ICDORNI=$S(ICDOCNT>0:ICDORNI,1:0),ICDORNA=$F(ICDORNI,"O",$F(ICDORNI,"O")) S:ICDORNI="" ICDORNI=ICDOR S ICDRG=$S(ICDP25=1&(ICDORNA>0):970,1:ICDRG) I 'ICDGH&(ICDRG=970) D CKMS Q S:(ICDOCNT>0) ICDRG=$S(ICDP25>1&(ICDORNA>0)&($D(ICDS25(1))):970,1:ICDRG) I 'ICDGH&(ICDRG=970) D CKMS Q I ICDOPCT>0 D I ICDRG=970 D CKMS Q .;count the non-extensive "z" vs the "O" .N K1,K2,I .S (K1,K2)=0 .F I=1:1:$L(ICDORNI) S:$E(ICDORNI,I,I)="z" K1=K1+1 S:$E(ICDORNI,I,I)="O" K2=K2+1 .I ICDP25=1!(ICDP25>1&($D(ICDS25)>0)) D ..I K15)&(ICDRG<14) ICDRG=999 ; ICD*18*1 - reorder drg 103 higher than all Pre-MDCs 480-83 & 495 I ICDRG=2 S ICDRTC=0 Q ;use FY logic to resolve DRG if no FY defined user current FY N ICDDXFY S ICDDXFY="" I ICDDATE>3040930.9 D I ICDRG=3!(ICDRG=4) S ICDRTC=0 Q ;Use DRG FY 05 logic .I $D(ICDOP(" 39.65")) S ICDRG=3 Q .I $D(ICDOP(" 31.1"))!($D(ICDOP(" 31.21")))!($D(ICDOP(" 31.29"))) I $P($$ICDDX^ICDCODE(ICDDX(1),ICDDATE),"^",3)'["Y"!(($D(ICDOP(" 96.72")))) S ICDRG=4 .I $D(ICDOP(" 31.1"))!($D(ICDOP(" 31.21")))!($D(ICDOP(" 31.29"))) I $P($$ICDDX^ICDCODE(ICDDX(1),ICDDATE),"^",3)'["Y"!(($D(ICDOP(" 96.72")))) I ICDOR["O"&(ICDOR'["z")&(ICDOR'["y") S ICDRG=3 ;S ICDRG=$S((ICDOR["l")&($D(ICDOP(" 46.97"))):5,ICDOR["l":6,1:ICDRG) I ICDRG=5!(ICDRG=6) S ICDRTC=0 Q S ICDRG=$S(ICDOR["l":6,1:ICDRG) I ICDRG=6 S ICDRTC=0 Q I ICDRG=8!(ICDRG=10) S ICDRTC=0 Q S ICDRG=$S(ICDOR["r":7,1:ICDRG) I ICDRG=7 S ICDRTC=0 Q ;check for lung tx S ICDRG=$S(ICDOR["q":2,1:ICDRG) I ICDRG=2 S ICDRTC=0 Q ;check for heart tx S ICDRG=$S(ICDOR["B":9,1:ICDRG) I ICDRG=9 S ICDRTC=0 Q S ICDRG=$S($D(ICDOP(" 30.3"))!$D(ICDOP(" 30.4")):13,1:ICDRG) I ICDRG=13 S ICDRTC=0 Q S ICDRG=$S(ICDOR["t"&($P($$ICDDX^ICDCODE(ICDDX(1),ICDDATE),"^",3)["Y"):13,1:ICDRG) I ICDRG=13 S ICDRTC=0 Q Q