Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: ICD1831L

ICD1831L.m

Go to the documentation of this file.
  1. ICD1831L ;ALB/JAP - FY 2008 DRG UPDATE ; 10/17/07 2:33pm
  1. ;;18.0;DRG Grouper;**31**;Oct 20, 2000;Build 7
  1. ;
  1. CONV80(ICDINPUT) ;convert CMSv24 DRG to MSv25 DRG for file #80
  1. ; input ICDINPUT - string containing Dx, MDC, and DRGs
  1. ; <.01_field>_^_<mdc_ien>_^_<drg1_ien>_^_<drg2_ien>_^...
  1. N ICDX,ICDRSLT
  1. ;if no DRGs passed in, try to get data from set of new Diagnoses
  1. ;S ICDX=$P(ICDINPUT,U,3,99) I ICDX="" S ICDRSLT=$$NEW80^ICD1831L(ICDINPUT) Q ICDRSLT
  1. S ICDRSLT=$$NEW80^ICD1831L(ICDINPUT) I +$P(ICDRSLT,U,2),+$P(ICDRSLT,U,3) Q ICDRSLT
  1. Q $$GETV25^ICD1831L(ICDINPUT)
  1. ;
  1. CONV801(ICDINPUT) ;convert CMSv24 DRG to MSv25 DRG for file #80.1
  1. ; input ICDINPUT - string containing Dx, MDC, and DRGs
  1. ; <.01_field>_^_<mdc_ien>_^_<drg1_ien>_^_<drg2_ien>_^...
  1. Q $$GETV25^ICD1831L(ICDINPUT)
  1. ;
  1. GETV25(ICDINPUT) ;get MSv25 DRGs from crosswalk tables
  1. N ICDRSLT,ICD01,ICDOMDC,ICDMDC,ICDX,ICDXX,ICDD,ICDOD,ICDTAG,ICDROU,ICDTEXT,I,J
  1. S ICDRSLT=""
  1. I $G(ICDINPUT)="" Q ICDRSLT
  1. S ICD01=$P(ICDINPUT,U,1),ICDOMDC=$P(ICDINPUT,U,2),ICDX=$P(ICDINPUT,U,3,99)
  1. ;quit if there are no DRGs to convert
  1. I ICDX="" S ICDRSLT=ICD01_U_U Q ICDRSLT
  1. ;otherwise perform conversion for each DRG
  1. F I=1:1 Q:($P(ICDX,U,I)="") D
  1. .S ICDOD=+$P(ICDX,U,I) S ICDROU=$S(ICDOD<300:"ICD1831M",1:"ICD1831N")
  1. .S ICDTAG="DRG"_ICDOD_"^"_ICDROU
  1. .S ICDTEXT=$T(@ICDTAG),ICDTEXT=$P(ICDTEXT,";;",2)
  1. .S ICDXX=$P(ICDTEXT,";",1),ICDMDC=$P(ICDTEXT,";",2)
  1. .Q:(ICDXX="")
  1. .;Q:(ICDMDC'=ICDOMDC)
  1. .F J=1:1 Q:($P(ICDXX,U,J)="") S ICDD($P(ICDXX,U,J))=""
  1. ;set data into result
  1. S ICDRSLT=ICD01_U_ICDOMDC
  1. S I=0 F S I=$O(ICDD(I)) Q:'I S ICDRSLT=ICDRSLT_U_I
  1. Q ICDRSLT
  1. ;
  1. NEW80(ICDINPUT) ;get DRG/MDC for new entries in file #80
  1. N ICDRSLT,ICD01,ICDTAG,ICDTEXT,ICDMDC,ICDXX,ICDD,I
  1. S ICDRSLT=""
  1. I $G(ICDINPUT)="" Q ICDRSLT
  1. S ICD01=$P(ICDINPUT,U,1)
  1. S ICDTAG="DX"_$TR(ICD01,".","")_"^ICD1831R"
  1. S ICDTEXT=$T(@ICDTAG),ICDTEXT=$P(ICDTEXT,";;",2)
  1. ;quit if no DRG data could be found for Diagnosis
  1. I ICDTEXT="" S ICDRSLT=ICD01_U_U Q ICDRSLT
  1. ;otherwise return DRGs
  1. S ICDXX=$P(ICDTEXT,";",1),ICDMDC=$P(ICDTEXT,";",2)
  1. F I=1:1 Q:($P(ICDXX,U,I)="") S ICDD(I)=$P(ICDXX,U,I)
  1. S ICDRSLT=ICD01_U_ICDMDC
  1. F I=1:1 Q:('$D(ICDD(I))) S ICDRSLT=ICDRSLT_U_ICDD(I)
  1. Q ICDRSLT
  1. ;
  1. NEW801(ICDINPUT,ICDARRAY) ;get DRG/MDC for new entries in file #80.1
  1. N ICD01,ICDROU,ICDTAG,ICDTEXT,ICDMDC,ICDXX,I,J
  1. K ICDARRAY
  1. Q:($G(ICDINPUT)="")
  1. S ICD01=$P(ICDINPUT,U,1)
  1. S ICDROU="^ICD1831Q"
  1. S ICDTAG="PR"_$TR(ICD01,".","")_ICDROU
  1. S ICDTEXT=$T(@ICDTAG)
  1. Q:(ICDTEXT="")
  1. F I=1:1 D Q:(ICDTEXT="END")
  1. .S ICDTAG="PR"_$TR(ICD01,".","")_"+"_I_ICDROU
  1. .S ICDTEXT=$T(@ICDTAG),ICDTEXT=$P(ICDTEXT,";;",2)
  1. .I ICDTEXT'="END" D
  1. ..S ICDXX=$P(ICDTEXT,";",1),ICDMDC=$P(ICDTEXT,";",2)
  1. ..F J=1:1 Q:($P(ICDXX,U,J)="") S ICDARRAY(ICDMDC,$P(ICDXX,U,J))=""
  1. Q