ICDTBL8A ;ALB/EG/MRY/KUM - GROUPER UTILITY FUNCTIONS ;22 Mar 2013  6:07 PM
 ;;18.0;DRG Grouper;**37,34,43,45,46,49,64**;Oct 20, 2000;Build 103
 ;
DRG800 ;
DRG801 S ICDRG=$S(ICDMCC=2:799,ICDMCC=1:800,1:801) Q
DRG802 ;
DRG803 ;
DRG804 S ICDRG=$S(ICDMCC=2:802,ICDMCC=1:803,1:804) Q
DRG808 ;
DRG809 ;
DRG810 S ICDRG=$S(ICDMCC=2:808,ICDMCC=1:809,1:810) Q
DRG811 ;
DRG812 S ICDRG=$S(ICDMCC=2:811,1:812) Q
DRG813 S ICDRG=813 Q
DRG814 ;
DRG815 ;
DRG816 S ICDRG=$S(ICDMCC=2:814,ICDMCC=1:815,1:816) Q
DRG820 ;DRG 20-22
 ;removed check I ICDPD["L"&('$G(ICDMAJ))
 I ICDPD["L"&('$G(ICDMAJ)) D DRG825 Q:"823^824^825^840^841^842^834^835^836"[ICDRG
 ;removed check I ICDPD["L"
 I ICDPD["L"&($G(ICDMAJ)) D  Q
 .S ICDRG=$S(ICDMCC=2:820,ICDMCC=1:821,1:822)
 S ICDRG=$S(ICDMCC=2:826,ICDMCC=1:827,1:828)
 Q
DRG821 D DRG820 Q
DRG822 D DRG820 Q
DRG823 ;DRGs 823-825
 S ICDRG=$S(ICDPD["l":836,ICDOR["O"!(ICDORNI["O"):825,1:842)
 I ICDRG=836 S ICDRG=$S(ICDMCC=2:834,ICDMCC=1:835,1:836) Q
 I ICDRG=825 S ICDRG=$S(ICDMCC=2:823,ICDMCC=1:824,1:825) Q
 I ICDRG=842 D  Q
 .I ICDPD["L"&($D(ICDOP(" 92.30"))!$D(ICDOP(" 92.31"))!$D(ICDOP(" 92.32"))!$D(ICDOP(" 92.33"))!$D(ICDOP(" 92.39"))) S ICDRG=$S(ICDMCC=2:823,ICDMCC=1:824,1:825) Q
 .I $D(ICDOP(" 92.30"))!$D(ICDOP(" 92.31"))!$D(ICDOP(" 92.32"))!$D(ICDOP(" 92.33"))!$D(ICDOP(" 92.39")) S ICDRG=$S(ICDMCC>0:829,1:830) Q
 .S ICDRG=$S(ICDMCC=2:840,ICDMCC=1:841,1:842)
 Q
DRG824 D DRG823 Q
DRG825 D DRG823 Q
DRG826 ;DRGs 826-828
 I $G(ICDMAJ)="^"!'($G(ICDMAJ)) D DRG829 Q
 I ICDOCNT>0!(ICDOR["O") D  Q 
 .S ICDRG=$S(ICDMCC=2:826,ICDMCC=1:827,1:828) Q
 S ICDRG=$S(ICDMCC=2:843,ICDMCC=1:844,1:845)
 Q
DRG827 ;
DRG828 ;S ICDRG=$S(ICDMCC=2:826,ICDMCC=1:827,1:828) Q
DRG829 I ICDPD["L"!($G(ICDMAJ)) D DRG826 Q
 I ICDSD["l" D DRG837 Q
 I ICDSD'["l"&(ICDOR'["O") D DRG846 Q
DRG830 S ICDRG=$S(ICDMCC>0:829,1:830) Q
DRG834 ;DRGs 834-836
DRG835 ;
DRG836 D DRG840 Q
DRG837 ;DRGs 837-839
DRG838 ;
DRG839 I ICDSD["l",ICDMCC=2 S ICDRG=837 Q
 I ICDSD["l"&(ICDSD["2") S ICDRG=$S(ICDMCC=2:837,ICDMCC=1:838,1:839)
 I ICDSD'["l",$D(ICDOP(" 00.15")),ICDMCC=2 S ICDRG=837 Q
 I ICDSD["l",'$D(ICDOP(" 00.15")),ICDMCC=1 S ICDRG=838 Q
 I ICDSD'["l",$D(ICDOP(" 00.15")) S ICDRG=838 Q
 I ICDSD["l",'$D(ICDOP(" 00.15")) S ICDRG=839 Q
 I ICDSD'["l"&(ICDOR'["O") D DRG846 Q
 D DRG846 Q
DRG840 ;DRGs 840-842
 S ICDRG=$S(ICDPD["l":836,ICDOR["O"!ICDORNI["O":825,1:842)
 I ICDRG=836 S ICDRG=$S(ICDMCC=2:834,ICDMCC=1:835,1:836) Q
 I ICDRG=825 S ICDRG=$S(ICDMCC=2:823,ICDMCC=1:824,1:825) Q
 S ICDRG=$S(ICDMCC=2:840,ICDMCC=1:841,1:842)
 Q
DRG841 D DRG840 Q
DRG842 D DRG840 Q
DRG843 ;
DRG844 ;
DRG845 I ICDPD["L"  D DRG840 Q
 ; Replaced direct global reads with $$CODEBA^ICDEX
 I ICDDX(1)=$$CODEBA^ICDEX("V58.0",80) S ICDRG=849 Q
 I ICDDX(1)=$$CODEBA^ICDEX("V67.1",80) S ICDRG=849 Q
 I $D(ICDDX(1))&(ICDOPCT=0) D
 .I ICDDX(1)=$$CODEBA^ICDEX("V58.11",80)!(ICDDX(1)=$$CODEBA^ICDEX("V58.12",80))!(ICDDX(1)=$$CODEBA^ICDEX("V67.2",80)) D
 ..I ICDSD["2" D DRG837 Q
 ..I ICDSD'["2" D DRG846 Q
 I ICDPD["L" D DRG820 Q
 I ICDOR["N"&($D(ICDPDRG(844))) S ICDRG=844 Q
 S ICDRG=$S(ICDMCC=2:843,ICDMCC=1:844,1:845) Q
 Q
DRG846 ;
DRG847 ;
DRG848 I ICDDX(1)=$$CODEBA^ICDEX("V58.11",80)!(ICDDX(1)=$$CODEBA^ICDEX("V58.12",80))!(ICDDX(1)=$$CODEBA^ICDEX("V67.2",80)) S ICDRG=$S(ICDMCC=2:846,ICDMCC=1:847,1:848) Q
 D DRG844 Q
DRG849 I ICDDX(1)=$$CODEBA^ICDEX("V58.0",80) S ICDRG=849 Q 
 I ICDDX(1)=$$CODEBA^ICDEX("V67.1",80) S ICDRG=849 Q
 D DRG844 Q
DRG853 ;
DRG854 ;
DRG855  I ICDOR="" D DRG862 Q
 I ICDOR["O" S ICDRG=$S(ICDMCC=2:853,ICDMCC=1:854,1:855) Q
 I ICDDX(1)=7322 D DRG856 Q
 I ICDDX(1)=13271 D DRG856 Q
 I ICDDX(1)=13272 D DRG856 Q
 I ICDDX(1)=14543 D DRG856 Q
 Q
DRG856 ;
DRG857 ;
DRG858 I ICDOR'["O" D DRG862 Q
 I ICDOR["O" S ICDRG=$S(ICDMCC=2:856,ICDMCC=1:857,1:858) Q
 Q
DRG862 ;
DRG863 S ICDRG=$S(ICDMCC=2:862,1:863) Q
DRG864 S ICDRG=864  Q
DRG865 ;
DRG866 ;
       S ICDRG=$S(ICDMCC=2:865,1:866) Q
DRG867 ;
DRG868 ;
DRG869 S ICDRG=$S(ICDMCC=2:867,ICDMCC=1:868,1:869) Q
DRG870 ;DRGs 870-872
 S ICDRG=$S(ICDOR["O":855,1:872) I ICDRG=872&($D(ICDOP(" 96.72"))) S ICDRG=870
 I ICDRG=855 S ICDRG=$S(ICDMCC=2:853,ICDMCC=1:854,1:855) Q
 I ICDRG=872 S ICDRG=$S(ICDMCC=2:871,1:872) Q
 Q
DRG871 D DRG870 Q
DRG872 D DRG870 Q
DRG876 I ICDOR["O" S ICDRG=876 Q
 Q
DRG880 S ICDRG=880 I ICDOR["O" S ICDRG=876 Q
 Q
DRG881 S ICDRG=881 I ICDOR["O" S ICDRG=876 Q
 Q
DRG882 S ICDRG=882 I ICDOR["O" S ICDRG=876 Q
 Q
DRG883 S ICDRG=883 I ICDOR["O" S ICDRG=876 Q
 Q
DRG884 S ICDRG=884 I ICDOR["O" S ICDRG=876 Q
 Q
DRG885 S ICDRG=885 I ICDOR["O" S ICDRG=876 Q
 Q
DRG886 S ICDRG=886 I ICDOR["O" S ICDRG=876 Q
 Q
DRG887 S ICDRG=887 I ICDOR["O" S ICDRG=876 Q
 Q
DRG894 S ICDRG=894 I ICDOR["O" S ICDRG=876 Q
 Q
DRG895 I (ICDOR["ND")!(ICDOR["NR") S ICDRG=895 Q
 I ICDOR["O" S ICDRG=983 Q
DRG896 ;
DRG897 S ICDRG=$S(ICDMCC=2:896,1:897) Q
 Q
 
--- Routine Detail   --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HICDTBL8A   4931     printed  Sep 23, 2025@19:28:09                                                                                                                                                                                                    Page 2
ICDTBL8A  ;ALB/EG/MRY/KUM - GROUPER UTILITY FUNCTIONS ;22 Mar 2013  6:07 PM
 +1       ;;18.0;DRG Grouper;**37,34,43,45,46,49,64**;Oct 20, 2000;Build 103
 +2       ;
DRG800    ;
DRG801     SET ICDRG=$SELECT(ICDMCC=2:799,ICDMCC=1:800,1:801)
           QUIT 
DRG802    ;
DRG803    ;
DRG804     SET ICDRG=$SELECT(ICDMCC=2:802,ICDMCC=1:803,1:804)
           QUIT 
DRG808    ;
DRG809    ;
DRG810     SET ICDRG=$SELECT(ICDMCC=2:808,ICDMCC=1:809,1:810)
           QUIT 
DRG811    ;
DRG812     SET ICDRG=$SELECT(ICDMCC=2:811,1:812)
           QUIT 
DRG813     SET ICDRG=813
           QUIT 
DRG814    ;
DRG815    ;
DRG816     SET ICDRG=$SELECT(ICDMCC=2:814,ICDMCC=1:815,1:816)
           QUIT 
DRG820    ;DRG 20-22
 +1       ;removed check I ICDPD["L"&('$G(ICDMAJ))
 +2        IF ICDPD["L"&('$GET(ICDMAJ))
               DO DRG825
               if "823^824^825^840^841^842^834^835^836"[ICDRG
                   QUIT 
 +3       ;removed check I ICDPD["L"
 +4        IF ICDPD["L"&($GET(ICDMAJ))
               Begin DoDot:1
 +5                SET ICDRG=$SELECT(ICDMCC=2:820,ICDMCC=1:821,1:822)
               End DoDot:1
               QUIT 
 +6        SET ICDRG=$SELECT(ICDMCC=2:826,ICDMCC=1:827,1:828)
 +7        QUIT 
DRG821     DO DRG820
           QUIT 
DRG822     DO DRG820
           QUIT 
DRG823    ;DRGs 823-825
 +1        SET ICDRG=$SELECT(ICDPD["l":836,ICDOR["O"!(ICDORNI["O"):825,1:842)
 +2        IF ICDRG=836
               SET ICDRG=$SELECT(ICDMCC=2:834,ICDMCC=1:835,1:836)
               QUIT 
 +3        IF ICDRG=825
               SET ICDRG=$SELECT(ICDMCC=2:823,ICDMCC=1:824,1:825)
               QUIT 
 +4        IF ICDRG=842
               Begin DoDot:1
 +5                IF ICDPD["L"&($DATA(ICDOP(" 92.30"))!$DATA(ICDOP(" 92.31"))!$DATA(ICDOP(" 92.32"))!$DATA(ICDOP(" 92.33"))!$DATA(ICDOP(" 92.39")))
                       SET ICDRG=$SELECT(ICDMCC=2:823,ICDMCC=1:824,1:825)
                       QUIT 
 +6                IF $DATA(ICDOP(" 92.30"))!$DATA(ICDOP(" 92.31"))!$DATA(ICDOP(" 92.32"))!$DATA(ICDOP(" 92.33"))!$DATA(ICDOP(" 92.39"))
                       SET ICDRG=$SELECT(ICDMCC>0:829,1:830)
                       QUIT 
 +7                SET ICDRG=$SELECT(ICDMCC=2:840,ICDMCC=1:841,1:842)
               End DoDot:1
               QUIT 
 +8        QUIT 
DRG824     DO DRG823
           QUIT 
DRG825     DO DRG823
           QUIT 
DRG826    ;DRGs 826-828
 +1        IF $GET(ICDMAJ)="^"!'($GET(ICDMAJ))
               DO DRG829
               QUIT 
 +2        IF ICDOCNT>0!(ICDOR["O")
               Begin DoDot:1
 +3                SET ICDRG=$SELECT(ICDMCC=2:826,ICDMCC=1:827,1:828)
                   QUIT 
               End DoDot:1
               QUIT 
 +4        SET ICDRG=$SELECT(ICDMCC=2:843,ICDMCC=1:844,1:845)
 +5        QUIT 
DRG827    ;
DRG828    ;S ICDRG=$S(ICDMCC=2:826,ICDMCC=1:827,1:828) Q
DRG829     IF ICDPD["L"!($GET(ICDMAJ))
               DO DRG826
               QUIT 
 +1        IF ICDSD["l"
               DO DRG837
               QUIT 
 +2        IF ICDSD'["l"&(ICDOR'["O")
               DO DRG846
               QUIT 
DRG830     SET ICDRG=$SELECT(ICDMCC>0:829,1:830)
           QUIT 
DRG834    ;DRGs 834-836
DRG835    ;
DRG836     DO DRG840
           QUIT 
DRG837    ;DRGs 837-839
DRG838    ;
DRG839     IF ICDSD["l"
               IF ICDMCC=2
                   SET ICDRG=837
                   QUIT 
 +1        IF ICDSD["l"&(ICDSD["2")
               SET ICDRG=$SELECT(ICDMCC=2:837,ICDMCC=1:838,1:839)
 +2        IF ICDSD'["l"
               IF $DATA(ICDOP(" 00.15"))
                   IF ICDMCC=2
                       SET ICDRG=837
                       QUIT 
 +3        IF ICDSD["l"
               IF '$DATA(ICDOP(" 00.15"))
                   IF ICDMCC=1
                       SET ICDRG=838
                       QUIT 
 +4        IF ICDSD'["l"
               IF $DATA(ICDOP(" 00.15"))
                   SET ICDRG=838
                   QUIT 
 +5        IF ICDSD["l"
               IF '$DATA(ICDOP(" 00.15"))
                   SET ICDRG=839
                   QUIT 
 +6        IF ICDSD'["l"&(ICDOR'["O")
               DO DRG846
               QUIT 
 +7        DO DRG846
           QUIT 
DRG840    ;DRGs 840-842
 +1        SET ICDRG=$SELECT(ICDPD["l":836,ICDOR["O"!ICDORNI["O":825,1:842)
 +2        IF ICDRG=836
               SET ICDRG=$SELECT(ICDMCC=2:834,ICDMCC=1:835,1:836)
               QUIT 
 +3        IF ICDRG=825
               SET ICDRG=$SELECT(ICDMCC=2:823,ICDMCC=1:824,1:825)
               QUIT 
 +4        SET ICDRG=$SELECT(ICDMCC=2:840,ICDMCC=1:841,1:842)
 +5        QUIT 
DRG841     DO DRG840
           QUIT 
DRG842     DO DRG840
           QUIT 
DRG843    ;
DRG844    ;
DRG845     IF ICDPD["L"
               DO DRG840
               QUIT 
 +1       ; Replaced direct global reads with $$CODEBA^ICDEX
 +2        IF ICDDX(1)=$$CODEBA^ICDEX("V58.0",80)
               SET ICDRG=849
               QUIT 
 +3        IF ICDDX(1)=$$CODEBA^ICDEX("V67.1",80)
               SET ICDRG=849
               QUIT 
 +4        IF $DATA(ICDDX(1))&(ICDOPCT=0)
               Begin DoDot:1
 +5                IF ICDDX(1)=$$CODEBA^ICDEX("V58.11",80)!(ICDDX(1)=$$CODEBA^ICDEX("V58.12",80))!(ICDDX(1)=$$CODEBA^ICDEX("V67.2",80))
                       Begin DoDot:2
 +6                        IF ICDSD["2"
                               DO DRG837
                               QUIT 
 +7                        IF ICDSD'["2"
                               DO DRG846
                               QUIT 
                       End DoDot:2
               End DoDot:1
 +8        IF ICDPD["L"
               DO DRG820
               QUIT 
 +9        IF ICDOR["N"&($DATA(ICDPDRG(844)))
               SET ICDRG=844
               QUIT 
 +10       SET ICDRG=$SELECT(ICDMCC=2:843,ICDMCC=1:844,1:845)
           QUIT 
 +11       QUIT 
DRG846    ;
DRG847    ;
DRG848     IF ICDDX(1)=$$CODEBA^ICDEX("V58.11",80)!(ICDDX(1)=$$CODEBA^ICDEX("V58.12",80))!(ICDDX(1)=$$CODEBA^ICDEX("V67.2",80))
               SET ICDRG=$SELECT(ICDMCC=2:846,ICDMCC=1:847,1:848)
               QUIT 
 +1        DO DRG844
           QUIT 
DRG849     IF ICDDX(1)=$$CODEBA^ICDEX("V58.0",80)
               SET ICDRG=849
               QUIT 
 +1        IF ICDDX(1)=$$CODEBA^ICDEX("V67.1",80)
               SET ICDRG=849
               QUIT 
 +2        DO DRG844
           QUIT 
DRG853    ;
DRG854    ;
DRG855     IF ICDOR=""
               DO DRG862
               QUIT 
 +1        IF ICDOR["O"
               SET ICDRG=$SELECT(ICDMCC=2:853,ICDMCC=1:854,1:855)
               QUIT 
 +2        IF ICDDX(1)=7322
               DO DRG856
               QUIT 
 +3        IF ICDDX(1)=13271
               DO DRG856
               QUIT 
 +4        IF ICDDX(1)=13272
               DO DRG856
               QUIT 
 +5        IF ICDDX(1)=14543
               DO DRG856
               QUIT 
 +6        QUIT 
DRG856    ;
DRG857    ;
DRG858     IF ICDOR'["O"
               DO DRG862
               QUIT 
 +1        IF ICDOR["O"
               SET ICDRG=$SELECT(ICDMCC=2:856,ICDMCC=1:857,1:858)
               QUIT 
 +2        QUIT 
DRG862    ;
DRG863     SET ICDRG=$SELECT(ICDMCC=2:862,1:863)
           QUIT 
DRG864     SET ICDRG=864
           QUIT 
DRG865    ;
DRG866    ;
 +1        SET ICDRG=$SELECT(ICDMCC=2:865,1:866)
           QUIT 
DRG867    ;
DRG868    ;
DRG869     SET ICDRG=$SELECT(ICDMCC=2:867,ICDMCC=1:868,1:869)
           QUIT 
DRG870    ;DRGs 870-872
 +1        SET ICDRG=$SELECT(ICDOR["O":855,1:872)
           IF ICDRG=872&($DATA(ICDOP(" 96.72")))
               SET ICDRG=870
 +2        IF ICDRG=855
               SET ICDRG=$SELECT(ICDMCC=2:853,ICDMCC=1:854,1:855)
               QUIT 
 +3        IF ICDRG=872
               SET ICDRG=$SELECT(ICDMCC=2:871,1:872)
               QUIT 
 +4        QUIT 
DRG871     DO DRG870
           QUIT 
DRG872     DO DRG870
           QUIT 
DRG876     IF ICDOR["O"
               SET ICDRG=876
               QUIT 
 +1        QUIT 
DRG880     SET ICDRG=880
           IF ICDOR["O"
               SET ICDRG=876
               QUIT 
 +1        QUIT 
DRG881     SET ICDRG=881
           IF ICDOR["O"
               SET ICDRG=876
               QUIT 
 +1        QUIT 
DRG882     SET ICDRG=882
           IF ICDOR["O"
               SET ICDRG=876
               QUIT 
 +1        QUIT 
DRG883     SET ICDRG=883
           IF ICDOR["O"
               SET ICDRG=876
               QUIT 
 +1        QUIT 
DRG884     SET ICDRG=884
           IF ICDOR["O"
               SET ICDRG=876
               QUIT 
 +1        QUIT 
DRG885     SET ICDRG=885
           IF ICDOR["O"
               SET ICDRG=876
               QUIT 
 +1        QUIT 
DRG886     SET ICDRG=886
           IF ICDOR["O"
               SET ICDRG=876
               QUIT 
 +1        QUIT 
DRG887     SET ICDRG=887
           IF ICDOR["O"
               SET ICDRG=876
               QUIT 
 +1        QUIT 
DRG894     SET ICDRG=894
           IF ICDOR["O"
               SET ICDRG=876
               QUIT 
 +1        QUIT 
DRG895     IF (ICDOR["ND")!(ICDOR["NR")
               SET ICDRG=895
               QUIT 
 +1        IF ICDOR["O"
               SET ICDRG=983
               QUIT 
DRG896    ;
DRG897     SET ICDRG=$SELECT(ICDMCC=2:896,1:897)
           QUIT 
 +1        QUIT