- ICDEXD ;SLC/KER - ICD Extractor - DRG APIs ;04/21/2014
- ;;18.0;DRG Grouper;**57**;Oct 20, 2000;Build 7
- ;
- ; Global Variables
- ; ^ICD0( N/A
- ; ^ICD9( N/A
- ; ^ICD9("ACC" N/A
- ;
- ; External References
- ; ^%DT ICR 10003
- ; $$DT^XLFDT ICR 10103
- ;
- Q
- GETDRG(FILE,IEN,CDT,MDC) ; DRGs for an Fiscal Year (FY)
- ;
- ; Input
- ;
- ; FILE ICD file number to used to retrieve
- ;
- ; IEN Internal Entry Number (IEN) (Required)
- ;
- ; CDT This is the Code Set Versioning date
- ; (Fileman format, optional, default TODAY)
- ;
- ; MDC Major Diagnostic Category (pointer to
- ; file 80.1) used as a screen to limit
- ; the DRGs to a MDC. This input parameter
- ; only applies to the OPERATIONS/PROCEDURE
- ; file 80.1 which has multiple MDCs, each
- ; with a possibility of multiple DRGs.
- ;
- ; Output
- ;
- ; 3 piece semi-colon delimited string
- ;
- ; 1 DRGs delimited by ^
- ; 2 Fiscal Year
- ; 3 Status flag
- ; 0 inactive
- ; 1 active
- ;
- ; Example output:
- ;
- ; 907^908^909^;3071001;1
- ;
- ; On Error:
- ;
- ; -1;No DRG level;0
- ;
- N FY,MD,OUT S OUT="",FILE=$G(FILE),IEN=$G(IEN)
- S FILE=$S(FILE="9":80,FILE="0":80.1,1:FILE)
- S FILE=$$FILE^ICDEX(FILE)
- Q:"^80^80.1^"'[("^"_$G(FILE)_"^") "-1;Invalid file specified;0"
- Q:$G(IEN)'?1N.N "-1;Invalid IEN specified;0"
- D MD^ICDEXD2(FILE,IEN,CDT,.MD)
- S FY=$O(MD(""))
- Q:FY'?7N "-1;No DRG level;0"
- I FILE=80.1,$L($G(MDC)) D Q OUT
- . S OUT=$G(MD(FY,MDC))
- . S:+($P($G(OUT),";",1))'>0 OUT="-1;No DRG level;0"
- I FILE=80.1,'$L($G(MDC)) D Q OUT
- . N MDC S MDC=$O(MD(FY,"")) I $L(MDC),MDC=$O(MD(FY," "),-1) S OUT=$G(MD(FY,MDC))
- . S:+($P($G(OUT),";",1))'>0 OUT="-1;No DRG level;0"
- I FILE=80 D Q OUT
- . N MDC S MDC=$O(MD(FY,"")) I $L(MDC),MDC=$O(MD(FY," "),-1) S OUT=$G(MD(FY,MDC))
- . S:+($P($G(OUT),";",1))'>0 OUT="-1;No DRG level;0"
- Q $S($L(OUT):OUT,1:"-1;No DRG level;0")
- GETPRE(IEN,MDC) ; Get MDC for Op/Pro ICD for Previous Years
- ;
- ; Input
- ;
- ; IEN Internal Entry Number (80.1) (required)
- ; MDC Major Diagnostic Category (required)
- ;
- ; Output
- ;
- ; 2 piece "^" delimited string
- ;
- ; 1 Internal entry number for fiscal year
- ; 2 Internal entry number for MDC
- ;
- ; OR -1 if not found
- ;
- N ICDF,ICDFI,ICDI,MDCIEN S ICDI=+($G(IEN)),MDC=$G(MDC) Q:+ICDI'>0!('$L(MDC)) -1 S (ICDFI,MDCIEN)=0,ICDF=""
- F S ICDF=$O(^ICD0(ICDI,2,"B",ICDF),-1) Q:'ICDF!(MDCIEN>0) D Q:MDCIEN>0
- . S ICDFI=$O(^ICD0(ICDI,2,"B",+$G(ICDF),0))
- . S MDCIEN=$O(^ICD0(ICDI,2,+ICDFI,1,"B",MDC,0))
- Q:+ICDFI'>0!(+MDCIEN'>0) -1
- Q (ICDFI_"^"_MDCIEN)
- ;
- LEMDC(FILE,IEN,CDT,MDC) ; Last Effective MDC
- ;
- ; Input
- ; FILE File 80 or 80.1
- ; IEN Internal Entry Number in FILE
- ; CDT Code Set Versioning Date
- ; MDC Major Diagnostic Category (file 80.1 only)
- ; If the file is 80.1, and MDC is not provided,
- ; then the first MDC is returned.
- ;
- ; Output
- ;
- ; 2 piece "^" delimited string
- ; 1 Fiscal Year (Fileman Format)
- ; 2 MDC (pointer to file 80.3
- ;
- ; or -1^error message on error
- ;
- N OUT,ROOT S FILE=$G(FILE) S:FILE=9!(FILE["ICD9") FILE=80 S:FILE=0!(FILE["ICD0") FILE=80.1
- Q:"^80^80.1^"'[("^"_FILE_"^") "-1;Invalid file selected"
- S IEN=+($G(IEN)),CDT=$P($G(CDT),".",1)
- S ROOT=$$ROOT^ICDEX(FILE) S:CDT'?7N CDT=$$DT^XLFDT
- Q:'$L(ROOT) "-1;Invalid file selected"
- Q:'$D(@(ROOT_+IEN_",0)")) "-1;No such entry"
- S OUT="" I FILE=80.1 D
- . N TMDC,FY,FYIEN S FY=$O(^ICD0(+IEN,2,"B",(CDT+.001)),-1)
- . ; get previous from today
- . S:FY'?7N FY=$O(^ICD0(+IEN,2,"B"," "),-1)
- . S:FY'?7N OUT="-1^FY not found" Q:FY'?7N
- . S FYIEN=$O(^ICD0(IEN,2,"B",FY,0))
- . S:FYIEN'>0 OUT="-1^FY not found" Q:+FYIEN'>0
- . S TMDC=+($G(MDC))
- . I TMDC'>0!('$D(^ICD0(IEN,2,FYIEN,1,"B",TMDC))) D Q
- . . S OUT="-1^MDC not specified"
- . S OUT=FY_"^"_TMDC
- Q:$L($G(OUT)) OUT
- I FILE=80 D
- . N TMDC,FY,FYIEN S FY=$O(^ICD9(+IEN,4,"B",(CDT+.001)),-1)
- . S:FY'?7N FY=$O(^ICD9(+IEN,4,"B"," "),-1)
- . S:FY'?7N OUT="-1^FY not found" Q:FY'?7N
- . S FYIEN=$O(^ICD9(IEN,4,"B",FY,0))
- . S:FYIEN'>0 OUT="-1^FY not found" Q:+FYIEN'>0
- . S TMDC=$P($G(^ICD9(IEN,4,FYIEN,0)),"^",2)
- . S:TMDC'>0 OUT="-1^MDC not found" Q:+TMDC'>0
- . S OUT=FY_"^"_TMDC
- Q:$L($G(OUT)) OUT
- Q "-1^Last Effective MDC not found"
- EXIST(IEN,FIELD) ; Does a condition Exist
- ;
- ; Input:
- ;
- ; IEN Internal Entry to file 80
- ; FIELD Type of condition to check
- ;
- ; 20 Code Not Used With
- ; 30 Code Required With
- ; 40 Code Not Considered CC With
- ;
- ; Output:
- ;
- ; $$EXIST Boolean value
- ;
- ; 1 Yes/True
- ; 0 No/False
- ;
- ; Field Answers the Question
- ; ----- -------------------------------------------------
- ; 20 Are there any codes required with this code (IEN)
- ; 30 Are there any codes that should not be used
- ; with this code (IEN)
- ; 40 Are there any codes that are not considered
- ; Complication/Comorbidity (CC) with this code
- ; (IEN)
- ;
- N ICDI,ICDF,ICDT,ICDO S ICDI=$G(IEN),ICDF=$G(FIELD) Q:+ICDI'>0 0 Q:+ICDF'>0 0
- S ICDT=$S(ICDF=20:"N",ICDF=30:"R",ICDF=40:2,1:"") Q:'$L(ICDT) 0
- S ICDI=+($O(^ICD9(ICDI,ICDT," "),-1))
- Q $S(ICDI>0:1,1:0)
- ISA(IEN1,IEN2,FIELD) ; Is Code 1 a condition of Code 2 (this code)
- ;
- ; Input:
- ;
- ; IEN1 This is the internal entry number (IEN) of a
- ; code in file 80 that has a relationship with
- ; the code at IEN2 IEN1 is equivalent to
- ; Fileman's DA and identifies a code stored in
- ; a multiple in field 20, 30, 40 or pointed to
- ; by field 1.11.
- ;
- ; IEN2 This is the internal entry number (IEN) of a
- ; code in file 80 that may have other codes (IEN1)
- ; associated with it. IEN2 is equivalent to
- ; Fileman's DA(1) and identifies the code in
- ; the .01 field.
- ;
- ; FIELD This is a field number in file 80 that contains
- ; one or more ICD codes that have a relationship to
- ; the main entry. Acceptable field numbers and
- ; the type of relationships to check include:
- ;
- ; Field Relationship
- ; 20 Code 1 Not Used With Code 2
- ; 30 Code 1 Required With Code 2
- ; 40 or 1.11 Code 1 Not Considered CC With Code 2
- ;
- ; Output:
- ;
- ; $$ISA Boolean value
- ;
- ; 1 Yes/The relationship is True
- ; 0 No/The relationship is False
- ;
- ; Field Answers the Question
- ; ----- ---------------------------------------------
- ; 20 Code 1 (identified by IEN1) is not used with
- ; Code 2 (identified by IEN2)
- ;
- ; 30 Code 1 (identified by IEN1) is required with
- ; Code 2 (identified by IEN2)
- ;
- ; 40 or 1.11 Code 1 (identified by IEN1) is not considered
- ; Complication/Comorbidity (CC) with Code 2
- ; (identified by IEN2)
- ;
- N ICD1,ICD2,ICDF,ICDT,ICDO,ICDCS S ICDO=0,ICD1=+($G(IEN1)),ICD2=+($G(IEN2)),ICDF=$G(FIELD)
- Q:+ICDF'>0 ICDO S ICDT=$S(ICDF=20:"N",ICDF=30:"R",ICDF=40:1,ICDF=1.11:1,1:"")
- Q:'$L(ICDT) 0 Q:'$D(^ICD9(ICD2,ICDT)) 0
- S ICDCS=$P($G(^ICD9(ICD2,1)),"^",1)
- I ICDF=20!(ICDF=30) D Q ICDO
- . S ICDO=$S($D(^ICD9(ICD2,ICDT,"B",ICD1)):1,1:0)
- I ICDF=40!(ICDF=1.11) D Q ICDO
- . N ICDPDXE S ICD0=0 S ICDPDXE=$$PDXE^ICDEX(ICD2) I ICDPDXE>0 D Q
- . . S:$D(^ICDCCEX(ICDPDXE,1,"B",ICD1)) ICDO=1
- . I ICDCS=1!(ICDCS=2) S:$D(^ICD9("ACC",ICD2,ICD1)) ICDO=1
- Q ICDO
- DRGMDC(X) ; DRG MDC
- ;
- ; Input:
- ;
- ; X Internal Entry Number DRG file 80.2
- ;
- ; Output:
- ;
- ; $$X Internal Entry Number MDC file 80.3
- ; -1 on error
- ;
- N MDC S MDC=$P($G(^ICD(+($G(X)),0)),"^",5) S X=$S(MDC>0:MDC,1:-1)
- Q X
- ICDEXD ;SLC/KER - ICD Extractor - DRG APIs ;04/21/2014
- +1 ;;18.0;DRG Grouper;**57**;Oct 20, 2000;Build 7
- +2 ;
- +3 ; Global Variables
- +4 ; ^ICD0( N/A
- +5 ; ^ICD9( N/A
- +6 ; ^ICD9("ACC" N/A
- +7 ;
- +8 ; External References
- +9 ; ^%DT ICR 10003
- +10 ; $$DT^XLFDT ICR 10103
- +11 ;
- +12 QUIT
- GETDRG(FILE,IEN,CDT,MDC) ; DRGs for an Fiscal Year (FY)
- +1 ;
- +2 ; Input
- +3 ;
- +4 ; FILE ICD file number to used to retrieve
- +5 ;
- +6 ; IEN Internal Entry Number (IEN) (Required)
- +7 ;
- +8 ; CDT This is the Code Set Versioning date
- +9 ; (Fileman format, optional, default TODAY)
- +10 ;
- +11 ; MDC Major Diagnostic Category (pointer to
- +12 ; file 80.1) used as a screen to limit
- +13 ; the DRGs to a MDC. This input parameter
- +14 ; only applies to the OPERATIONS/PROCEDURE
- +15 ; file 80.1 which has multiple MDCs, each
- +16 ; with a possibility of multiple DRGs.
- +17 ;
- +18 ; Output
- +19 ;
- +20 ; 3 piece semi-colon delimited string
- +21 ;
- +22 ; 1 DRGs delimited by ^
- +23 ; 2 Fiscal Year
- +24 ; 3 Status flag
- +25 ; 0 inactive
- +26 ; 1 active
- +27 ;
- +28 ; Example output:
- +29 ;
- +30 ; 907^908^909^;3071001;1
- +31 ;
- +32 ; On Error:
- +33 ;
- +34 ; -1;No DRG level;0
- +35 ;
- +36 NEW FY,MD,OUT
- SET OUT=""
- SET FILE=$GET(FILE)
- SET IEN=$GET(IEN)
- +37 SET FILE=$SELECT(FILE="9":80,FILE="0":80.1,1:FILE)
- +38 SET FILE=$$FILE^ICDEX(FILE)
- +39 IF "^80^80.1^"'[("^"_$GET(FILE)_"^")
- QUIT "-1;Invalid file specified;0"
- +40 IF $GET(IEN)'?1N.N
- QUIT "-1;Invalid IEN specified;0"
- +41 DO MD^ICDEXD2(FILE,IEN,CDT,.MD)
- +42 SET FY=$ORDER(MD(""))
- +43 IF FY'?7N
- QUIT "-1;No DRG level;0"
- +44 IF FILE=80.1
- IF $LENGTH($GET(MDC))
- Begin DoDot:1
- +45 SET OUT=$GET(MD(FY,MDC))
- +46 IF +($PIECE($GET(OUT),";",1))'>0
- SET OUT="-1;No DRG level;0"
- End DoDot:1
- QUIT OUT
- +47 IF FILE=80.1
- IF '$LENGTH($GET(MDC))
- Begin DoDot:1
- +48 NEW MDC
- SET MDC=$ORDER(MD(FY,""))
- IF $LENGTH(MDC)
- IF MDC=$ORDER(MD(FY," "),-1)
- SET OUT=$GET(MD(FY,MDC))
- +49 IF +($PIECE($GET(OUT),";",1))'>0
- SET OUT="-1;No DRG level;0"
- End DoDot:1
- QUIT OUT
- +50 IF FILE=80
- Begin DoDot:1
- +51 NEW MDC
- SET MDC=$ORDER(MD(FY,""))
- IF $LENGTH(MDC)
- IF MDC=$ORDER(MD(FY," "),-1)
- SET OUT=$GET(MD(FY,MDC))
- +52 IF +($PIECE($GET(OUT),";",1))'>0
- SET OUT="-1;No DRG level;0"
- End DoDot:1
- QUIT OUT
- +53 QUIT $SELECT($LENGTH(OUT):OUT,1:"-1;No DRG level;0")
- GETPRE(IEN,MDC) ; Get MDC for Op/Pro ICD for Previous Years
- +1 ;
- +2 ; Input
- +3 ;
- +4 ; IEN Internal Entry Number (80.1) (required)
- +5 ; MDC Major Diagnostic Category (required)
- +6 ;
- +7 ; Output
- +8 ;
- +9 ; 2 piece "^" delimited string
- +10 ;
- +11 ; 1 Internal entry number for fiscal year
- +12 ; 2 Internal entry number for MDC
- +13 ;
- +14 ; OR -1 if not found
- +15 ;
- +16 NEW ICDF,ICDFI,ICDI,MDCIEN
- SET ICDI=+($GET(IEN))
- SET MDC=$GET(MDC)
- IF +ICDI'>0!('$LENGTH(MDC))
- QUIT -1
- SET (ICDFI,MDCIEN)=0
- SET ICDF=""
- +17 FOR
- SET ICDF=$ORDER(^ICD0(ICDI,2,"B",ICDF),-1)
- IF 'ICDF!(MDCIEN>0)
- QUIT
- Begin DoDot:1
- +18 SET ICDFI=$ORDER(^ICD0(ICDI,2,"B",+$GET(ICDF),0))
- +19 SET MDCIEN=$ORDER(^ICD0(ICDI,2,+ICDFI,1,"B",MDC,0))
- End DoDot:1
- IF MDCIEN>0
- QUIT
- +20 IF +ICDFI'>0!(+MDCIEN'>0)
- QUIT -1
- +21 QUIT (ICDFI_"^"_MDCIEN)
- +22 ;
- LEMDC(FILE,IEN,CDT,MDC) ; Last Effective MDC
- +1 ;
- +2 ; Input
- +3 ; FILE File 80 or 80.1
- +4 ; IEN Internal Entry Number in FILE
- +5 ; CDT Code Set Versioning Date
- +6 ; MDC Major Diagnostic Category (file 80.1 only)
- +7 ; If the file is 80.1, and MDC is not provided,
- +8 ; then the first MDC is returned.
- +9 ;
- +10 ; Output
- +11 ;
- +12 ; 2 piece "^" delimited string
- +13 ; 1 Fiscal Year (Fileman Format)
- +14 ; 2 MDC (pointer to file 80.3
- +15 ;
- +16 ; or -1^error message on error
- +17 ;
- +18 NEW OUT,ROOT
- SET FILE=$GET(FILE)
- IF FILE=9!(FILE["ICD9")
- SET FILE=80
- IF FILE=0!(FILE["ICD0")
- SET FILE=80.1
- +19 IF "^80^80.1^"'[("^"_FILE_"^")
- QUIT "-1;Invalid file selected"
- +20 SET IEN=+($GET(IEN))
- SET CDT=$PIECE($GET(CDT),".",1)
- +21 SET ROOT=$$ROOT^ICDEX(FILE)
- IF CDT'?7N
- SET CDT=$$DT^XLFDT
- +22 IF '$LENGTH(ROOT)
- QUIT "-1;Invalid file selected"
- +23 IF '$DATA(@(ROOT_+IEN_",0)"))
- QUIT "-1;No such entry"
- +24 SET OUT=""
- IF FILE=80.1
- Begin DoDot:1
- +25 NEW TMDC,FY,FYIEN
- SET FY=$ORDER(^ICD0(+IEN,2,"B",(CDT+.001)),-1)
- +26 ; get previous from today
- +27 IF FY'?7N
- SET FY=$ORDER(^ICD0(+IEN,2,"B"," "),-1)
- +28 IF FY'?7N
- SET OUT="-1^FY not found"
- IF FY'?7N
- QUIT
- +29 SET FYIEN=$ORDER(^ICD0(IEN,2,"B",FY,0))
- +30 IF FYIEN'>0
- SET OUT="-1^FY not found"
- IF +FYIEN'>0
- QUIT
- +31 SET TMDC=+($GET(MDC))
- +32 IF TMDC'>0!('$DATA(^ICD0(IEN,2,FYIEN,1,"B",TMDC)))
- Begin DoDot:2
- +33 SET OUT="-1^MDC not specified"
- End DoDot:2
- QUIT
- +34 SET OUT=FY_"^"_TMDC
- End DoDot:1
- +35 IF $LENGTH($GET(OUT))
- QUIT OUT
- +36 IF FILE=80
- Begin DoDot:1
- +37 NEW TMDC,FY,FYIEN
- SET FY=$ORDER(^ICD9(+IEN,4,"B",(CDT+.001)),-1)
- +38 IF FY'?7N
- SET FY=$ORDER(^ICD9(+IEN,4,"B"," "),-1)
- +39 IF FY'?7N
- SET OUT="-1^FY not found"
- IF FY'?7N
- QUIT
- +40 SET FYIEN=$ORDER(^ICD9(IEN,4,"B",FY,0))
- +41 IF FYIEN'>0
- SET OUT="-1^FY not found"
- IF +FYIEN'>0
- QUIT
- +42 SET TMDC=$PIECE($GET(^ICD9(IEN,4,FYIEN,0)),"^",2)
- +43 IF TMDC'>0
- SET OUT="-1^MDC not found"
- IF +TMDC'>0
- QUIT
- +44 SET OUT=FY_"^"_TMDC
- End DoDot:1
- +45 IF $LENGTH($GET(OUT))
- QUIT OUT
- +46 QUIT "-1^Last Effective MDC not found"
- EXIST(IEN,FIELD) ; Does a condition Exist
- +1 ;
- +2 ; Input:
- +3 ;
- +4 ; IEN Internal Entry to file 80
- +5 ; FIELD Type of condition to check
- +6 ;
- +7 ; 20 Code Not Used With
- +8 ; 30 Code Required With
- +9 ; 40 Code Not Considered CC With
- +10 ;
- +11 ; Output:
- +12 ;
- +13 ; $$EXIST Boolean value
- +14 ;
- +15 ; 1 Yes/True
- +16 ; 0 No/False
- +17 ;
- +18 ; Field Answers the Question
- +19 ; ----- -------------------------------------------------
- +20 ; 20 Are there any codes required with this code (IEN)
- +21 ; 30 Are there any codes that should not be used
- +22 ; with this code (IEN)
- +23 ; 40 Are there any codes that are not considered
- +24 ; Complication/Comorbidity (CC) with this code
- +25 ; (IEN)
- +26 ;
- +27 NEW ICDI,ICDF,ICDT,ICDO
- SET ICDI=$GET(IEN)
- SET ICDF=$GET(FIELD)
- IF +ICDI'>0
- QUIT 0
- IF +ICDF'>0
- QUIT 0
- +28 SET ICDT=$SELECT(ICDF=20:"N",ICDF=30:"R",ICDF=40:2,1:"")
- IF '$LENGTH(ICDT)
- QUIT 0
- +29 SET ICDI=+($ORDER(^ICD9(ICDI,ICDT," "),-1))
- +30 QUIT $SELECT(ICDI>0:1,1:0)
- ISA(IEN1,IEN2,FIELD) ; Is Code 1 a condition of Code 2 (this code)
- +1 ;
- +2 ; Input:
- +3 ;
- +4 ; IEN1 This is the internal entry number (IEN) of a
- +5 ; code in file 80 that has a relationship with
- +6 ; the code at IEN2 IEN1 is equivalent to
- +7 ; Fileman's DA and identifies a code stored in
- +8 ; a multiple in field 20, 30, 40 or pointed to
- +9 ; by field 1.11.
- +10 ;
- +11 ; IEN2 This is the internal entry number (IEN) of a
- +12 ; code in file 80 that may have other codes (IEN1)
- +13 ; associated with it. IEN2 is equivalent to
- +14 ; Fileman's DA(1) and identifies the code in
- +15 ; the .01 field.
- +16 ;
- +17 ; FIELD This is a field number in file 80 that contains
- +18 ; one or more ICD codes that have a relationship to
- +19 ; the main entry. Acceptable field numbers and
- +20 ; the type of relationships to check include:
- +21 ;
- +22 ; Field Relationship
- +23 ; 20 Code 1 Not Used With Code 2
- +24 ; 30 Code 1 Required With Code 2
- +25 ; 40 or 1.11 Code 1 Not Considered CC With Code 2
- +26 ;
- +27 ; Output:
- +28 ;
- +29 ; $$ISA Boolean value
- +30 ;
- +31 ; 1 Yes/The relationship is True
- +32 ; 0 No/The relationship is False
- +33 ;
- +34 ; Field Answers the Question
- +35 ; ----- ---------------------------------------------
- +36 ; 20 Code 1 (identified by IEN1) is not used with
- +37 ; Code 2 (identified by IEN2)
- +38 ;
- +39 ; 30 Code 1 (identified by IEN1) is required with
- +40 ; Code 2 (identified by IEN2)
- +41 ;
- +42 ; 40 or 1.11 Code 1 (identified by IEN1) is not considered
- +43 ; Complication/Comorbidity (CC) with Code 2
- +44 ; (identified by IEN2)
- +45 ;
- +46 NEW ICD1,ICD2,ICDF,ICDT,ICDO,ICDCS
- SET ICDO=0
- SET ICD1=+($GET(IEN1))
- SET ICD2=+($GET(IEN2))
- SET ICDF=$GET(FIELD)
- +47 IF +ICDF'>0
- QUIT ICDO
- SET ICDT=$SELECT(ICDF=20:"N",ICDF=30:"R",ICDF=40:1,ICDF=1.11:1,1:"")
- +48 IF '$LENGTH(ICDT)
- QUIT 0
- IF '$DATA(^ICD9(ICD2,ICDT))
- QUIT 0
- +49 SET ICDCS=$PIECE($GET(^ICD9(ICD2,1)),"^",1)
- +50 IF ICDF=20!(ICDF=30)
- Begin DoDot:1
- +51 SET ICDO=$SELECT($DATA(^ICD9(ICD2,ICDT,"B",ICD1)):1,1:0)
- End DoDot:1
- QUIT ICDO
- +52 IF ICDF=40!(ICDF=1.11)
- Begin DoDot:1
- +53 NEW ICDPDXE
- SET ICD0=0
- SET ICDPDXE=$$PDXE^ICDEX(ICD2)
- IF ICDPDXE>0
- Begin DoDot:2
- +54 IF $DATA(^ICDCCEX(ICDPDXE,1,"B",ICD1))
- SET ICDO=1
- End DoDot:2
- QUIT
- +55 IF ICDCS=1!(ICDCS=2)
- IF $DATA(^ICD9("ACC",ICD2,ICD1))
- SET ICDO=1
- End DoDot:1
- QUIT ICDO
- +56 QUIT ICDO
- DRGMDC(X) ; DRG MDC
- +1 ;
- +2 ; Input:
- +3 ;
- +4 ; X Internal Entry Number DRG file 80.2
- +5 ;
- +6 ; Output:
- +7 ;
- +8 ; $$X Internal Entry Number MDC file 80.3
- +9 ; -1 on error
- +10 ;
- +11 NEW MDC
- SET MDC=$PIECE($GET(^ICD(+($GET(X)),0)),"^",5)
- SET X=$SELECT(MDC>0:MDC,1:-1)
- +12 QUIT X