 %MACRO V23HALH1;
 %***********************************************************************
 1  MACRO NAME: V23HALH1
 2  PURPOSE:    HCC HIERARCHIES: version 23 of HCCs,
                full set of CMS HCCs are included
 3  COMMENT:    it is assumed that:
                 -MAX number of CCs are placed into global macro 
                  variable N_CC in the main program
                 -the following arrays are set in the main program
                  ARRAY C(&N_CC)   CC1-CC&N_CC
                  ARRAY HCC(&N_CC) HCC1-HCC&N_CC
                 -format ICD to CC creates full set of &N_CC CMS CCs
 ***********************************************************************;
 %* set to 0 HCCs in HIER parameter ;
 %MACRO SET0( CC=, HIER= );
     IF HCC&CC=1 THEN DO I = &HIER; HCC(I) = 0; END;
 %MEND SET0;

 %*to copy CC into HCC;
  DO K=1 TO &N_CC;
     HCC(K)=C(K);
  END;

 %*imposing hierarchies;
 /*Infection 3 */  %SET0(CC=3     , HIER=%STR(4 ));
 /*Neoplasm 1 */   %SET0(CC=8     , HIER=%STR(9, 10, 11, 12, 13, 14, 15, 16 ));
 /*Neoplasm 2 */   %SET0(CC=9     , HIER=%STR(10, 11, 12, 13, 14, 15, 16 ));
 /*Neoplasm 3 */   %SET0(CC=10    , HIER=%STR(11, 12, 13, 14, 15, 16 ));
 /*Neoplasm 4 */   %SET0(CC=11    , HIER=%STR(12, 13, 14, 15, 16 ));
 /*Neoplasm 5 */   %SET0(CC=12    , HIER=%STR(13, 14, 15, 16 ));
 /*Neoplasm 6 */   %SET0(CC=13    , HIER=%STR(14, 15, 16 ));
 /*Neoplasm 7 */   %SET0(CC=14    , HIER=%STR(15, 16 ));
 /*Neoplasm 8 */   %SET0(CC=15    , HIER=%STR(16 ));
 /*Diabetes 1 */   %SET0(CC=17    , HIER=%STR(18, 19 ));
 /*Diabetes 2 */   %SET0(CC=18    , HIER=%STR(19 ));
 /*Liver 1 */      %SET0(CC=27    , HIER=%STR(28, 29, 30, 31, 80 ));
 /*Liver 2 */      %SET0(CC=28    , HIER=%STR(29, 31 ));
 /*Liver 3 */      %SET0(CC=29    , HIER=%STR(31 ));
 /*Liver 4 */      %SET0(CC=30    , HIER=%STR(31 ));
 /*Blood 1 */      %SET0(CC=46    , HIER=%STR(48, 49 ));
 /*Blood 2 */      %SET0(CC=47    , HIER=%STR(49 ));
 /*Blood 3 */      %SET0(CC=48    , HIER=%STR(49 ));
 /*Cognitive 1 */  %SET0(CC=50    , HIER=%STR(53 ));
 /*Cognitive 2 */  %SET0(CC=51    , HIER=%STR(52, 53 ));
 /*Cognitive 3 */  %SET0(CC=52    , HIER=%STR(53 ));
 /*SA 1 */         %SET0(CC=54    , HIER=%STR(55, 56, 202, 203 ));
 /*SA 2 */         %SET0(CC=55    , HIER=%STR(56, 202, 203 ));
 /*SA 3 */         %SET0(CC=56    , HIER=%STR(202, 203 ));
 /*Psychiatric 1 */%SET0(CC=57    , HIER=%STR(58, 59, 60, 61, 62, 63 ));
 /*Psychiatric 2 */%SET0(CC=58    , HIER=%STR(59, 60, 61, 62, 63 ));
 /*Psychiatric 3 */%SET0(CC=59    , HIER=%STR(60, 61, 62, 63 ));
 /*Psychiatric 4 */%SET0(CC=60    , HIER=%STR(61, 62, 63 ));
 /*Psychiatric 5 */%SET0(CC=61    , HIER=%STR(62, 63 ));
 /*Psychiatric 6 */%SET0(CC=62    , HIER=%STR(63 ));
 /*DD 1 */         %SET0(CC=64    , HIER=%STR(65, 66, 67, 68, 69 ));
 /*DD 2 */         %SET0(CC=65    , HIER=%STR(66, 67, 68, 69 ));
 /*DD 3 */         %SET0(CC=66    , HIER=%STR(67, 68, 69 ));
 /*DD 4 */         %SET0(CC=67    , HIER=%STR(68, 69 ));
 /*DD 5 */         %SET0(CC=68    , HIER=%STR(69 ));
 /*Spinal 1 */     %SET0(CC=70    , HIER=%STR(71, 72, 103, 104, 105, 169 ));
 /*Spinal 2 */     %SET0(CC=71    , HIER=%STR(72, 104, 105, 169 ));
 /*Spinal 3 */     %SET0(CC=72    , HIER=%STR(169 ));
 /*Arrest 1 */     %SET0(CC=82    , HIER=%STR(83, 84 ));
 /*Arrest 2 */     %SET0(CC=83    , HIER=%STR(84 ));
 /*Heart 1 */      %SET0(CC=85    , HIER=%STR(94, 95 ));
 /*Heart 2 */      %SET0(CC=86    , HIER=%STR(87, 88, 89 ));
 /*Heart 3 */      %SET0(CC=87    , HIER=%STR(88, 89 ));
 /*Heart 4 */      %SET0(CC=88    , HIER=%STR(89 ));
 /*Heart 6 */      %SET0(CC=90    , HIER=%STR(91, 93 ));
 /*Heart 7 */      %SET0(CC=91    , HIER=%STR(93 ));
 /*Heart 8 */      %SET0(CC=92    , HIER=%STR(93 ));
 /*Heart 10 */     %SET0(CC=94    , HIER=%STR(95 ));
 /*Heart 12 */     %SET0(CC=96    , HIER=%STR(97 ));
 /*CVD 1 */        %SET0(CC=99    , HIER=%STR(100, 101, 102 ));
 /*CVD 2 */        %SET0(CC=100   , HIER=%STR(101, 102 ));
 /*CVD 3 */        %SET0(CC=101   , HIER=%STR(102 ));
 /*CVD 5 */        %SET0(CC=103   , HIER=%STR(104, 105 ));
 /*CVD 6 */        %SET0(CC=104   , HIER=%STR(105 ));
 /*Vascular 1 */   %SET0(CC=106   , HIER=%STR(107, 108, 109, 161, 189, 190 ));
 /*Vascular 2 */   %SET0(CC=107   , HIER=%STR(108, 109 ));
 /*Vascular 3 */   %SET0(CC=108   , HIER=%STR(109 ));
 /*Lung 1 */       %SET0(CC=110   , HIER=%STR(111, 112, 113 ));
 /*Lung 2 */       %SET0(CC=111   , HIER=%STR(112, 113 ));
 /*Lung 3 */       %SET0(CC=112   , HIER=%STR(113 ));
 /*Lung 5 */       %SET0(CC=114   , HIER=%STR(115, 116 ));
 /*Lung 6 */       %SET0(CC=115   , HIER=%STR(116 ));
 /*Eye 3 */        %SET0(CC=121   , HIER=%STR(125 ));
 /*Eye 4 */        %SET0(CC=122   , HIER=%STR(123, 125 ));
 /*Eye 5 */        %SET0(CC=123   , HIER=%STR(125 ));
 /*Eye 6 */        %SET0(CC=124   , HIER=%STR(125 ));
 /*Kidney 1 */     %SET0(CC=132   , HIER=%STR(133, 134, 135, 136, 137, 138, 139, 140, 141, 187 ));
 /*Kidney 2 */     %SET0(CC=133   , HIER=%STR(134, 135, 136, 137, 138, 139, 140, 141 ));
 /*Kidney 3 */     %SET0(CC=134   , HIER=%STR(135, 136, 137, 138, 139, 140, 141 ));
 /*Kidney 4 */     %SET0(CC=135   , HIER=%STR(136, 137, 138, 139, 140, 141 ));
 /*Kidney 5 */     %SET0(CC=136   , HIER=%STR(137, 138, 139, 140, 141 ));
 /*Kidney 6 */     %SET0(CC=137   , HIER=%STR(138, 139, 140, 141 ));
 /*Kidney 7 */     %SET0(CC=138   , HIER=%STR(139, 140, 141 ));
 /*Kidney 8 */     %SET0(CC=139   , HIER=%STR(140, 141 ));
 /*Kidney 9 */     %SET0(CC=140   , HIER=%STR(141 ));
 /*Genital 1 */    %SET0(CC=146   , HIER=%STR(147, 148 ));
 /*Genital 2 */    %SET0(CC=147   , HIER=%STR(148 ));
 /*Preg 1 */       %SET0(CC=150   , HIER=%STR(151, 155, 156 ));
 /*Preg 2 */       %SET0(CC=151   , HIER=%STR(155, 156 ));
 /*Preg 3 */       %SET0(CC=152   , HIER=%STR(153, 154, 155, 156 ));
 /*Preg 4 */       %SET0(CC=153   , HIER=%STR(154, 155, 156 ));
 /*Preg 5 */       %SET0(CC=154   , HIER=%STR(155, 156 ));
 /*Preg 6 */       %SET0(CC=155   , HIER=%STR(156 ));
 /*Skin 1 */       %SET0(CC=157   , HIER=%STR(158, 159, 160, 161 ));
 /*Skin 2 */       %SET0(CC=158   , HIER=%STR(159, 160, 161 ));
 /*Skin 3 */       %SET0(CC=159   , HIER=%STR(160 ));
 /*Skin 6 */       %SET0(CC=162   , HIER=%STR(163 ));
 /*Injury 1 */     %SET0(CC=166   , HIER=%STR(80, 167, 168 ));
 /*Injury 2 */     %SET0(CC=167   , HIER=%STR(168 ));
 /*Symptom 1 */    %SET0(CC=178   , HIER=%STR(179 ));
 /*Newborn 1 */    %SET0(CC=180   , HIER=%STR(181, 182, 183, 184 ));
 /*Newborn 2 */    %SET0(CC=181   , HIER=%STR(182, 183, 184 ));
 /*Newborn 3 */    %SET0(CC=182   , HIER=%STR(183, 184 ));
 /*Newborn 4 */    %SET0(CC=183   , HIER=%STR(184 ));
 /*Transplant 1 */ %SET0(CC=185   , HIER=%STR(186, 187 ));
 /*Transplant 2 */ %SET0(CC=186   , HIER=%STR(187 ));
 /*RespirTher 1 */ %SET0(CC=197   , HIER=%STR(198 ));
 /*Mobility 1 */   %SET0(CC=199   , HIER=%STR(200, 201 ));
 /*Mobility 2 */   %SET0(CC=200   , HIER=%STR(201 ));
 /*SA 4 */         %SET0(CC=202   , HIER=%STR(203 ));

 %MEND V23HALH1;
