ICDEX ;SLC/KER - ICD Extractor - Main Entry Points ;04/21/2014
;;18.0;DRG Grouper;**57**;Oct 20, 2000;Build 7
;
; Global Variables
; None
;
; External References
; None
;
; Parameters for listed APIs
;
; ARY A local array passed by reference .ARY
;
; CDT This is the Code Set Versioning Date (Fileman
; format) and is used to resolve the correct
; entry of a file or sub-file.
;
; EDT External Date allowed by Fileman
;
; CODE This is an ICD Diagnostic or Procedural code
;
; FIELD This is a field number from either file 80 or 80.1
;
; FILE File Number 80 or 80.1
;
; FMT Input format "I"=Internal "E"=External
;
; IEN Internal Entry Number of file 80 or 80.1
;
; IEN1 Internal Entry Number of a specified sub-file
;
; IEN2 Internal Entry Number of file 80 or 80.1
;
; LEN Length of the string of text in an array.
; When passed, the short description or long
; description will be parsed into string
; lengths not to exceed the length passed.
;
; MDC Major Diagnostic Category (pointer to
; file #80.3)
;
; NUM Converts a code to a numeric representation
; of the code (used on the AN cross-reference)
; for the $$NEXT and $$PREV APIs
;
; REV Directionality flag for $ORDER
;
; 0 $Order Forwards (default)
; 1 $Order in Reverse
;
; ROOT Global Root ^ICD9( or ^ICD0(
;
; STD Coding Standard
;
; 0 ICD (default)
; 1 CPT/HCPCS
; 2 DRG
; 3 LEX
;
; SYS Coding System
;
; 1 ICD ICD-9-CM
; 2 ICP ICD-9-PCS
; 30 1OD ICD-10-CM
; 31 10P ICD-10-PCS
;
; TYPE This is any identifier that can determine the
; type of ICD code (diagnosis or procedure) that
; is being used. It can be a:
;
; File Number 80 or 80.1
; Global Root ^ICD9( or ^ICD0(
; Source Abbreviation ICD, ICP, 10D OR 10P
; Coding System 1, 2, 30, 31
; Code 250.01, B58.81, 50.11
;
; TXT Text String to search for in file 80/80.1
;
; VER Versioning flag
;
; 0 Unversioned search, return active/inactive codes
; 1 Versioned search, return only active codes
;
; WORD This is a single word parsed from a string
;
EN ; Main Entry Point
HELP ; Developer Help for an API
D EN^ICDEXH Q
;
; Code APIs
ICDDX(CODE,CDT,SYS,FMT,LOC) ; Dx Code Info
Q $$ICDDX^ICDEXC($G(CODE),$P($G(CDT),".",1),$G(SYS),$G(FMT),$G(LOC))
ICDOP(CODE,CDT,SYS,FMT,LOC) ; Procedure Code Info
Q $$ICDOP^ICDEXC($G(CODE),$P($G(CDT),".",1),$G(SYS),$G(FMT),$G(LOC))
ICDD(CODE,ARY,CDT,SYS,LEN) ; Description in Array
Q $$ICDD^ICDEXC($G(CODE),.ARY,$P($G(CDT),".",1),$G(SYS),+($G(LEN)))
CODEN(CODE,FILE) ; IEN of code
Q $$CODEN^ICDEXC($G(CODE),$G(FILE))
CODEC(FILE,IEN) ; Code from an IEN
Q $$CODE^ICDEXC($G(FILE),$G(IEN))
CODEBA(CODE,ROOT) ; IEN from Code/Root
Q $$CODEBA^ICDEXC($G(CODE),$G(ROOT))
CODEABA(CODE,ROOT,SYS) ; IEN from Code/Root/Coding System
Q $$CODEABA^ICDEXC($G(CODE),$G(ROOT),$G(SYS))
;
; Code APIs (code data/versioned data)
CODEFI(CODE) ; File for code
Q $$CODEFI^ICDEXC2($G(CODE))
CODECS(CODE,FILE,CDT) ; Coding system for code/file
Q $$CODECS^ICDEXC2($G(CODE),$G(FILE),$P($G(CDT),".",1))
CSI(FILE,IEN) ; Coding system for IEN
Q $$CSI^ICDEXC2($G(FILE),$G(IEN))
VMDC(IEN,CDT,FMT) ; Major Diagnostic Category
Q $$VMDC^ICDEXC2($G(IEN),$P($G(CDT),".",1),$G(FMT))
VAGEL(IEN,CDT,FMT) ; Age Low
Q $$VAGEL^ICDEXC2($G(IEN),$P($G(CDT),".",1),$G(FMT))
VAGEH(IEN,CDT,FMT) ; Age High
Q $$VAGEH^ICDEXC2($G(IEN),$P($G(CDT),".",1),$G(FMT))
VCC(IEN,CDT,FMT) ; Complication/Comorbidity
Q $$VCC^ICDEXC2($G(IEN),$P($G(CDT),".",1),$G(FMT))
VCCP(IEN,CDT,FMT) ; CC Primary Flag
Q $$VCCP^ICDEXC2($G(IEN),$P($G(CDT),".",1),$G(FMT))
VSEX(FILE,IEN,CDT,FMT) ; Sex for file
Q $$VSEX^ICDEXC2($G(FILE),$G(IEN),$P($G(CDT),".",1),$G(FMT))
SAI(FILE,IEN,CDT) ; Status/Active/Inactive Dates
Q $$SAI^ICDEXC2($G(FILE),$G(IEN),$P($G(CDT),".",1))
;
; Code APIs (text/strings)
VST(FILE,IEN,CDT) ; Short Text
Q $$VST^ICDEXC3($G(FILE),$G(IEN),$P($G(CDT),".",1))
VLT(FILE,IEN,CDT) ; Long Text
Q $$VLT^ICDEXC3($G(FILE),$G(IEN),$P($G(CDT),".",1))
VSTD(IEN,CDT) ; Short Text - Diagnosis
Q $$VSTD^ICDEXC3($G(IEN),$P($G(CDT),".",1))
VSTP(IEN,CDT) ; Short Text - Procedures
Q $$VSTP^ICDEXC3($G(IEN),$P($G(CDT),".",1))
VLTD(IEN,CDT) ; Description - Diagnosis
Q $$VLTD^ICDEXC3($G(IEN),$P($G(CDT),".",1))
VLTP(IEN,CDT) ; Description - Procedures
Q $$VLTP^ICDEXC3($G(IEN),$P($G(CDT),".",1))
SD(FILE,IEN,CDT,ARY,LEN) ; Short Description (formatted)
Q $$SD^ICDEXC3($G(FILE),$G(IEN),$P($G(CDT),".",1),.ARY,$G(LEN))
LD(FILE,IEN,CDT,ARY,LEN) ; Long Description (formatted)
Q $$LD^ICDEXC3($G(FILE),$G(IEN),$P($G(CDT),".",1),.ARY,$G(LEN))
SDH(FILE,IEN,ARY) ; Short Description History
Q $$SDH^ICDEXC4($G(FILE),$G(IEN),.ARY)
LDH(FILE,IEN,ARY) ; Long Description History
Q $$LDH^ICDEXC4($G(FILE),$G(IEN),.ARY)
PAR(ARY,LEN) ; Parse Array
D PAR^ICDEXC3(.ARY,$G(LEN)) Q
IEN(CODE,ROOT,SYS) ; IEN from Code/Root/Coding System
Q $$IEN^ICDEXC3($G(CODE),$G(ROOT),$G(SYS))
;
; API Support
STATCHK(CODE,CDT,SYS) ; Status of ICD Code
Q $$STATCHK^ICDEXA($G(CODE),$P($G(CDT),".",1),$G(SYS))
DTBR(CDT,STD,SYS) ; Date Business Rules
Q $$DTBR^ICDEXA($P($G(CDT),".",1),$G(STD),$G(SYS))
IMP(SYS,CDT) ; Implementation Date
Q $$IMP^ICDEXA($G(SYS),$P($G(CDT),".",1))
MSG(CDT,STD,SYS) ; Warning Message
Q $$MSG^ICDEXA($P($G(CDT),".",1),$G(STD),$G(SYS))
SEL(FILE,IEN) ; Entry is Selectable
Q $$SEL^ICDEXA($G(FILE),$G(IEN))
NEXT(CODE,SYS,CDT) ; Next Code
Q $$NEXT^ICDEXA2($G(CODE),$G(SYS),$P($G(CDT),".",1))
PREV(CODE,SYS,CDT) ; Previous Code
Q $$PREV^ICDEXA2($G(CODE),$G(SYS),$P($G(CDT),".",1))
HIST(CODE,ARY,SYS) ; Activation History
Q $$HIST^ICDEXA2($G(CODE),.ARY,$G(SYS))
PERIOD(CODE,ARY,SYS) ; Activation Periods
Q $$PERIOD^ICDEXA2($G(CODE),.ARY,$G(SYS))
OBA(FILE,CODE,SYS,REV) ; $Order BA/ABA
Q $$OBA^ICDEXA3($G(FILE),$G(CODE),$G(SYS),$G(REV))
OD(FILE,WORD,SYS,REV) ; $Order D/AD
Q $$OD^ICDEXA3($G(FILE),$G(WORD),$G(SYS),$G(REV))
DLM(FILE,IEN,FIELD,CDT) ; Date Last Modified
Q $$DLM^ICDEXA3($G(FILE),$G(IEN),$G(FIELD),$P($G(CDT),".",1))
CS(FILE,FMT,CDT) ; Select Coding System (lookup)
Q $$CS^ICDEXA3($G(FILE),$G(FMT),$P($G(CDT),".",1))
;
; Data Extraction Support
EFF(FILE,IEN,CDT) ; Effective date and status
Q $$EFF^ICDEXS($G(FILE),$G(IEN),$P($G(CDT),".",1))
IA(FILE,IEN) ; Initial Activation Date
Q $$IA^ICDEXS($G(FILE),$G(IEN))
LA(FILE,IEN,CDT) ; Last Activation Date
Q $$LA^ICDEXS($G(FILE),$G(IEN),$P($G(CDT),".",1))
LI(FILE,IEN,CDT) ; Last Inactivation Date
Q $$LI^ICDEXS($G(FILE),$G(IEN),$P($G(CDT),".",1))
LS(FILE,IEN,CDT,FMT) ; Last Status
Q $$LS^ICDEXS($G(FILE),$G(IEN),$P($G(CDT),".",1),$G(FMT))
NUM(CODE) ; Convert Code to a Numeric
Q $$NUM^ICDEXS($G(CODE))
COD(NUM) ; Convert Numeric to a Code
Q $$COD^ICDEXS($G(NUM))
IE(CODE) ; Internal or External Format
Q $$IE^ICDEXS($G(CODE))
FILE(SYS) ; File Number from System
Q $$FILE^ICDEXS($G(SYS))
ROOT(SYS) ; Global Root
Q $$ROOT^ICDEXS($G(SYS))
SYS(SYS,CDT,FMT) ; Resolve System (uses file 80.4)
Q $$SYS^ICDEXS($G(SYS),$P($G(CDT),".",1),$G(FMT))
SINFO(SYS,CDT) ; System Info (uses file 80.4)
Q $$SINFO^ICDEXS($G(SYS),$P($G(CDT),".",1))
SNAM(SYS) ; System Name from Coding System
Q $$SNAM^ICDEXS($G(SYS))
SAB(SYS,CDT) ; Source Abbreviation
Q $$SAB^ICDEXS($G(SYS),$P($G(CDT),".",1))
EXC(FILE,IEN) ; Exclude From lookup
Q $$EXC^ICDEXS($G(FILE),$G(IEN))
VER(SYS,REL) ; Coding System Version
Q $$VER^ICDEXS2($G(SYS),$G(REL))
HDR(FILE) ; File Header Node
Q $$HDR^ICDEXS2($G(FILE))
;
; DRG Grouper Extraction Support
ISA(IEN1,IEN2,FIELD) ; Is Code 1 a condition of Code 2 (ICDDRG)
Q $$ISA^ICDEXD($G(IEN1),$G(IEN2),$G(FIELD))
ISVALID(FILE,IEN,CDT) ; Is an ICD code Valid
Q $$ISVALID^ICDEXD2($G(FILE),$G(IEN),$G(CDT))
EXIST(IEN,FIELD) ; Does a condition Exist (ICDDRGX)
Q $$EXIST^ICDEXD($G(IEN),$G(FIELD))
GETDRG(FILE,IEN,CDT,MDC) ; DRGs for an Fiscal Year (ICDGTDRG)
Q $$GETDRG^ICDEXD($G(FILE),$G(IEN),$P($G(CDT),".",1),$G(MDC))
MD(FILE,IEN,CDT,ARY,FLAG) ; MDC DRGs
D MD^ICDEXD2($G(FILE),$G(IEN),$P($G(CDT),".",1),.ARY,$G(FLAG))
EFM(EDT) ; Convert External Date to FM (ICDGTDRG)
Q $$EFM^ICDEXD2($G(EDT))
FY(CDT) ; FY 4 digit year (ICDGTDRG)
Q $$FY^ICDEXD2($P($G(CDT),".",1))
VMDCDX(IEN,CDT) ; Versioned MDC for DX (ICDREF)
Q $$VMDCDX^ICDEXD2($G(IEN),$P($G(CDT),".",1))
VMDCOP(IEN,MDC,CDT) ; Versioned MDC for Op/Pro (ICDREF)
Q $$VMDCOP^ICDEXD2($G(IEN),$G(MDC),$P($G(CDT),".",1))
REF(IEN,CDT) ; Return Reference Table (ICDREF)
Q $$REF^ICDEXD2($G(IEN),$G(CDT))
MDCG(IEN,CDT,ARY) ; Set up array of MDCs (ICDDRG)
D MDCG^ICDEXD2($G(IEN),$P($G(CDT),".",1),.ARY) Q
MDCT(IEN,CDT,ARY,FMT) ; For Multiple MDC DX Codes (ICDDRG)
Q $$MDCT^ICDEXD2($G(IEN),$P($G(CDT),".",1),.ARY,$G(FMT))
MDCD(IEN,MDC,CDT) ; Check for default MDC (ICDDRG)
Q $$MDCD^ICDEXD2($G(IEN),$G(MDC),$G(CDT))
MDCN(IEN) ; Major Diagnostic Category Name
Q $$MDCN^ICDEXD2(+($G(IEN)))
MOR(IEN) ; Major O.R. Procedure (ICDDRG)
Q $$MOR^ICDEXD2($G(IEN))
UPDX(IEN) ; Unacceptable as Principle DX
Q $$UPDX^ICDEXD2($G(IEN))
NOT(IEN,SUB,FMT) ; Codes not Used With
Q $$NOT^ICDEXD3($G(IEN),$G(SUB),$G(FMT))
REQ(IEN,SUB,FMT) ; Codes Required With
Q $$REQ^ICDEXD3($G(IEN),$G(SUB),$G(FMT))
NCC(IEN,SUB,FMT) ; Codes not Considered CC With
Q $$NCC^ICDEXD3($G(IEN),$G(SUB),$G(FMT))
ICDID(FILE,ID,CODE) ; Check if ICD identifier exist
Q $$ICDID^ICDEXD4($G(FILE),$G(ID),$G(CODE))
IDSTR(FILE,IEN) ; ICD identifier string (legacy)
Q $$IDSTR^ICDEXD4($G(FILE),$G(IEN))
ICDIDS(FILE,IEN,ARY) ; Returns array of ICD identifiers
Q $$ICDIDS^ICDEXD4($G(FILE),$G(IEN),.ARY)
ISOWNCC(IEN,CDT,FMT) ; Return CC if DX is Own CC
Q $$ISOWNCC^ICDEXD4($G(IEN),$G(CDT),$G(FMT))
ICDRGCC(DRG,CDT) ; Get CC/MCC flag from DRG
Q $$ICDRGCC^ICDEXD4($G(DRG),$G(CDT))
INQ ; Inquire to the ICD Files
D INQ^ICDEXD4 Q
EFD(X) ; Get Effective date in range (interactive)
Q $$EFD^ICDEXD2
PDXE(IEN) ; Primary DX Exclusion Code
Q $$PDXE^ICDEXD3($G(IEN))
DRG(CODE,CDT) ; Returns information about a DRG
Q $$DRG^ICDEXD5($G(CODE),$G(CDT))
DRGW(IEN) ; DRG Weighted Work Unit (WWU)
Q $$DRGW^ICDEXD5($G(IEN))
DRGDES(IEN,CDT,ARY,LEN) ; Formatted DRG Description
Q $$DRGDES^ICDEXD5($G(IEN),$G(CDT),.ARY,$G(LEN))
DRGD(CODE,OUTARR,CDT) ; Unformatted DRG Description
Q $$DRGD^ICDEXD5($G(CODE),$G(OUTARR),$G(CDT))
DRGN(CODE) ; Return the IEN of DRG
Q $$DRGN^ICDEXD5($G(CODE))
DRGC(IEN) ; DRG Code
Q $$DRGC^ICDEXD5($G(IEN))
GETDATE(IEN) ; Calculate Effective Date
Q $$GETDATE^ICDEXD5($G(IEN))
;
; Lookup
LK ; Special Lookup (called by DIC)
D LK^ICDEXLK Q
LKTX(X,ROOT,CDT,SYS,VER,OUT) ; Lookup Text in ROOT (silent)
Q $$LK^ICDEXLK3($G(X),$G(ROOT),$P($G(CDT),".",1),$G(SYS),$G(VER),$G(OUT))
Y(ROOT,IEN,CDT,FMT) ; Output Variable Y from Lookup
D Y^ICDEXLK2($G(ROOT),$G(IEN),$P($G(CDT),".",1),$G(FMT)) Q
TOKEN(X,ROOT,SYS,ARY) ; Parse Text into Words
D TOKEN^ICDTOKN($G(X),$G(ROOT),$G(SYS),.ARY) Q
WORD(X,ROOT,SYS) ; Word is Found
Q $$WORD^ICDEXLK3($G(X),$G(ROOT),$G(SYS))
ICDEX ;SLC/KER - ICD Extractor - Main Entry Points ;04/21/2014
+1 ;;18.0;DRG Grouper;**57**;Oct 20, 2000;Build 7
+2 ;
+3 ; Global Variables
+4 ; None
+5 ;
+6 ; External References
+7 ; None
+8 ;
+9 ; Parameters for listed APIs
+10 ;
+11 ; ARY A local array passed by reference .ARY
+12 ;
+13 ; CDT This is the Code Set Versioning Date (Fileman
+14 ; format) and is used to resolve the correct
+15 ; entry of a file or sub-file.
+16 ;
+17 ; EDT External Date allowed by Fileman
+18 ;
+19 ; CODE This is an ICD Diagnostic or Procedural code
+20 ;
+21 ; FIELD This is a field number from either file 80 or 80.1
+22 ;
+23 ; FILE File Number 80 or 80.1
+24 ;
+25 ; FMT Input format "I"=Internal "E"=External
+26 ;
+27 ; IEN Internal Entry Number of file 80 or 80.1
+28 ;
+29 ; IEN1 Internal Entry Number of a specified sub-file
+30 ;
+31 ; IEN2 Internal Entry Number of file 80 or 80.1
+32 ;
+33 ; LEN Length of the string of text in an array.
+34 ; When passed, the short description or long
+35 ; description will be parsed into string
+36 ; lengths not to exceed the length passed.
+37 ;
+38 ; MDC Major Diagnostic Category (pointer to
+39 ; file #80.3)
+40 ;
+41 ; NUM Converts a code to a numeric representation
+42 ; of the code (used on the AN cross-reference)
+43 ; for the $$NEXT and $$PREV APIs
+44 ;
+45 ; REV Directionality flag for $ORDER
+46 ;
+47 ; 0 $Order Forwards (default)
+48 ; 1 $Order in Reverse
+49 ;
+50 ; ROOT Global Root ^ICD9( or ^ICD0(
+51 ;
+52 ; STD Coding Standard
+53 ;
+54 ; 0 ICD (default)
+55 ; 1 CPT/HCPCS
+56 ; 2 DRG
+57 ; 3 LEX
+58 ;
+59 ; SYS Coding System
+60 ;
+61 ; 1 ICD ICD-9-CM
+62 ; 2 ICP ICD-9-PCS
+63 ; 30 1OD ICD-10-CM
+64 ; 31 10P ICD-10-PCS
+65 ;
+66 ; TYPE This is any identifier that can determine the
+67 ; type of ICD code (diagnosis or procedure) that
+68 ; is being used. It can be a:
+69 ;
+70 ; File Number 80 or 80.1
+71 ; Global Root ^ICD9( or ^ICD0(
+72 ; Source Abbreviation ICD, ICP, 10D OR 10P
+73 ; Coding System 1, 2, 30, 31
+74 ; Code 250.01, B58.81, 50.11
+75 ;
+76 ; TXT Text String to search for in file 80/80.1
+77 ;
+78 ; VER Versioning flag
+79 ;
+80 ; 0 Unversioned search, return active/inactive codes
+81 ; 1 Versioned search, return only active codes
+82 ;
+83 ; WORD This is a single word parsed from a string
+84 ;
EN ; Main Entry Point
HELP ; Developer Help for an API
+1 DO EN^ICDEXH
QUIT
+2 ;
+3 ; Code APIs
ICDDX(CODE,CDT,SYS,FMT,LOC) ; Dx Code Info
+1 QUIT $$ICDDX^ICDEXC($GET(CODE),$PIECE($GET(CDT),".",1),$GET(SYS),$GET(FMT),$GET(LOC))
ICDOP(CODE,CDT,SYS,FMT,LOC) ; Procedure Code Info
+1 QUIT $$ICDOP^ICDEXC($GET(CODE),$PIECE($GET(CDT),".",1),$GET(SYS),$GET(FMT),$GET(LOC))
ICDD(CODE,ARY,CDT,SYS,LEN) ; Description in Array
+1 QUIT $$ICDD^ICDEXC($GET(CODE),.ARY,$PIECE($GET(CDT),".",1),$GET(SYS),+($GET(LEN)))
CODEN(CODE,FILE) ; IEN of code
+1 QUIT $$CODEN^ICDEXC($GET(CODE),$GET(FILE))
CODEC(FILE,IEN) ; Code from an IEN
+1 QUIT $$CODE^ICDEXC($GET(FILE),$GET(IEN))
CODEBA(CODE,ROOT) ; IEN from Code/Root
+1 QUIT $$CODEBA^ICDEXC($GET(CODE),$GET(ROOT))
CODEABA(CODE,ROOT,SYS) ; IEN from Code/Root/Coding System
+1 QUIT $$CODEABA^ICDEXC($GET(CODE),$GET(ROOT),$GET(SYS))
+2 ;
+3 ; Code APIs (code data/versioned data)
CODEFI(CODE) ; File for code
+1 QUIT $$CODEFI^ICDEXC2($GET(CODE))
CODECS(CODE,FILE,CDT) ; Coding system for code/file
+1 QUIT $$CODECS^ICDEXC2($GET(CODE),$GET(FILE),$PIECE($GET(CDT),".",1))
CSI(FILE,IEN) ; Coding system for IEN
+1 QUIT $$CSI^ICDEXC2($GET(FILE),$GET(IEN))
VMDC(IEN,CDT,FMT) ; Major Diagnostic Category
+1 QUIT $$VMDC^ICDEXC2($GET(IEN),$PIECE($GET(CDT),".",1),$GET(FMT))
VAGEL(IEN,CDT,FMT) ; Age Low
+1 QUIT $$VAGEL^ICDEXC2($GET(IEN),$PIECE($GET(CDT),".",1),$GET(FMT))
VAGEH(IEN,CDT,FMT) ; Age High
+1 QUIT $$VAGEH^ICDEXC2($GET(IEN),$PIECE($GET(CDT),".",1),$GET(FMT))
VCC(IEN,CDT,FMT) ; Complication/Comorbidity
+1 QUIT $$VCC^ICDEXC2($GET(IEN),$PIECE($GET(CDT),".",1),$GET(FMT))
VCCP(IEN,CDT,FMT) ; CC Primary Flag
+1 QUIT $$VCCP^ICDEXC2($GET(IEN),$PIECE($GET(CDT),".",1),$GET(FMT))
VSEX(FILE,IEN,CDT,FMT) ; Sex for file
+1 QUIT $$VSEX^ICDEXC2($GET(FILE),$GET(IEN),$PIECE($GET(CDT),".",1),$GET(FMT))
SAI(FILE,IEN,CDT) ; Status/Active/Inactive Dates
+1 QUIT $$SAI^ICDEXC2($GET(FILE),$GET(IEN),$PIECE($GET(CDT),".",1))
+2 ;
+3 ; Code APIs (text/strings)
VST(FILE,IEN,CDT) ; Short Text
+1 QUIT $$VST^ICDEXC3($GET(FILE),$GET(IEN),$PIECE($GET(CDT),".",1))
VLT(FILE,IEN,CDT) ; Long Text
+1 QUIT $$VLT^ICDEXC3($GET(FILE),$GET(IEN),$PIECE($GET(CDT),".",1))
VSTD(IEN,CDT) ; Short Text - Diagnosis
+1 QUIT $$VSTD^ICDEXC3($GET(IEN),$PIECE($GET(CDT),".",1))
VSTP(IEN,CDT) ; Short Text - Procedures
+1 QUIT $$VSTP^ICDEXC3($GET(IEN),$PIECE($GET(CDT),".",1))
VLTD(IEN,CDT) ; Description - Diagnosis
+1 QUIT $$VLTD^ICDEXC3($GET(IEN),$PIECE($GET(CDT),".",1))
VLTP(IEN,CDT) ; Description - Procedures
+1 QUIT $$VLTP^ICDEXC3($GET(IEN),$PIECE($GET(CDT),".",1))
SD(FILE,IEN,CDT,ARY,LEN) ; Short Description (formatted)
+1 QUIT $$SD^ICDEXC3($GET(FILE),$GET(IEN),$PIECE($GET(CDT),".",1),.ARY,$GET(LEN))
LD(FILE,IEN,CDT,ARY,LEN) ; Long Description (formatted)
+1 QUIT $$LD^ICDEXC3($GET(FILE),$GET(IEN),$PIECE($GET(CDT),".",1),.ARY,$GET(LEN))
SDH(FILE,IEN,ARY) ; Short Description History
+1 QUIT $$SDH^ICDEXC4($GET(FILE),$GET(IEN),.ARY)
LDH(FILE,IEN,ARY) ; Long Description History
+1 QUIT $$LDH^ICDEXC4($GET(FILE),$GET(IEN),.ARY)
PAR(ARY,LEN) ; Parse Array
+1 DO PAR^ICDEXC3(.ARY,$GET(LEN))
QUIT
IEN(CODE,ROOT,SYS) ; IEN from Code/Root/Coding System
+1 QUIT $$IEN^ICDEXC3($GET(CODE),$GET(ROOT),$GET(SYS))
+2 ;
+3 ; API Support
STATCHK(CODE,CDT,SYS) ; Status of ICD Code
+1 QUIT $$STATCHK^ICDEXA($GET(CODE),$PIECE($GET(CDT),".",1),$GET(SYS))
DTBR(CDT,STD,SYS) ; Date Business Rules
+1 QUIT $$DTBR^ICDEXA($PIECE($GET(CDT),".",1),$GET(STD),$GET(SYS))
IMP(SYS,CDT) ; Implementation Date
+1 QUIT $$IMP^ICDEXA($GET(SYS),$PIECE($GET(CDT),".",1))
MSG(CDT,STD,SYS) ; Warning Message
+1 QUIT $$MSG^ICDEXA($PIECE($GET(CDT),".",1),$GET(STD),$GET(SYS))
SEL(FILE,IEN) ; Entry is Selectable
+1 QUIT $$SEL^ICDEXA($GET(FILE),$GET(IEN))
NEXT(CODE,SYS,CDT) ; Next Code
+1 QUIT $$NEXT^ICDEXA2($GET(CODE),$GET(SYS),$PIECE($GET(CDT),".",1))
PREV(CODE,SYS,CDT) ; Previous Code
+1 QUIT $$PREV^ICDEXA2($GET(CODE),$GET(SYS),$PIECE($GET(CDT),".",1))
HIST(CODE,ARY,SYS) ; Activation History
+1 QUIT $$HIST^ICDEXA2($GET(CODE),.ARY,$GET(SYS))
PERIOD(CODE,ARY,SYS) ; Activation Periods
+1 QUIT $$PERIOD^ICDEXA2($GET(CODE),.ARY,$GET(SYS))
OBA(FILE,CODE,SYS,REV) ; $Order BA/ABA
+1 QUIT $$OBA^ICDEXA3($GET(FILE),$GET(CODE),$GET(SYS),$GET(REV))
OD(FILE,WORD,SYS,REV) ; $Order D/AD
+1 QUIT $$OD^ICDEXA3($GET(FILE),$GET(WORD),$GET(SYS),$GET(REV))
DLM(FILE,IEN,FIELD,CDT) ; Date Last Modified
+1 QUIT $$DLM^ICDEXA3($GET(FILE),$GET(IEN),$GET(FIELD),$PIECE($GET(CDT),".",1))
CS(FILE,FMT,CDT) ; Select Coding System (lookup)
+1 QUIT $$CS^ICDEXA3($GET(FILE),$GET(FMT),$PIECE($GET(CDT),".",1))
+2 ;
+3 ; Data Extraction Support
EFF(FILE,IEN,CDT) ; Effective date and status
+1 QUIT $$EFF^ICDEXS($GET(FILE),$GET(IEN),$PIECE($GET(CDT),".",1))
IA(FILE,IEN) ; Initial Activation Date
+1 QUIT $$IA^ICDEXS($GET(FILE),$GET(IEN))
LA(FILE,IEN,CDT) ; Last Activation Date
+1 QUIT $$LA^ICDEXS($GET(FILE),$GET(IEN),$PIECE($GET(CDT),".",1))
LI(FILE,IEN,CDT) ; Last Inactivation Date
+1 QUIT $$LI^ICDEXS($GET(FILE),$GET(IEN),$PIECE($GET(CDT),".",1))
LS(FILE,IEN,CDT,FMT) ; Last Status
+1 QUIT $$LS^ICDEXS($GET(FILE),$GET(IEN),$PIECE($GET(CDT),".",1),$GET(FMT))
NUM(CODE) ; Convert Code to a Numeric
+1 QUIT $$NUM^ICDEXS($GET(CODE))
COD(NUM) ; Convert Numeric to a Code
+1 QUIT $$COD^ICDEXS($GET(NUM))
IE(CODE) ; Internal or External Format
+1 QUIT $$IE^ICDEXS($GET(CODE))
FILE(SYS) ; File Number from System
+1 QUIT $$FILE^ICDEXS($GET(SYS))
ROOT(SYS) ; Global Root
+1 QUIT $$ROOT^ICDEXS($GET(SYS))
SYS(SYS,CDT,FMT) ; Resolve System (uses file 80.4)
+1 QUIT $$SYS^ICDEXS($GET(SYS),$PIECE($GET(CDT),".",1),$GET(FMT))
SINFO(SYS,CDT) ; System Info (uses file 80.4)
+1 QUIT $$SINFO^ICDEXS($GET(SYS),$PIECE($GET(CDT),".",1))
SNAM(SYS) ; System Name from Coding System
+1 QUIT $$SNAM^ICDEXS($GET(SYS))
SAB(SYS,CDT) ; Source Abbreviation
+1 QUIT $$SAB^ICDEXS($GET(SYS),$PIECE($GET(CDT),".",1))
EXC(FILE,IEN) ; Exclude From lookup
+1 QUIT $$EXC^ICDEXS($GET(FILE),$GET(IEN))
VER(SYS,REL) ; Coding System Version
+1 QUIT $$VER^ICDEXS2($GET(SYS),$GET(REL))
HDR(FILE) ; File Header Node
+1 QUIT $$HDR^ICDEXS2($GET(FILE))
+2 ;
+3 ; DRG Grouper Extraction Support
ISA(IEN1,IEN2,FIELD) ; Is Code 1 a condition of Code 2 (ICDDRG)
+1 QUIT $$ISA^ICDEXD($GET(IEN1),$GET(IEN2),$GET(FIELD))
ISVALID(FILE,IEN,CDT) ; Is an ICD code Valid
+1 QUIT $$ISVALID^ICDEXD2($GET(FILE),$GET(IEN),$GET(CDT))
EXIST(IEN,FIELD) ; Does a condition Exist (ICDDRGX)
+1 QUIT $$EXIST^ICDEXD($GET(IEN),$GET(FIELD))
GETDRG(FILE,IEN,CDT,MDC) ; DRGs for an Fiscal Year (ICDGTDRG)
+1 QUIT $$GETDRG^ICDEXD($GET(FILE),$GET(IEN),$PIECE($GET(CDT),".",1),$GET(MDC))
MD(FILE,IEN,CDT,ARY,FLAG) ; MDC DRGs
+1 DO MD^ICDEXD2($GET(FILE),$GET(IEN),$PIECE($GET(CDT),".",1),.ARY,$GET(FLAG))
EFM(EDT) ; Convert External Date to FM (ICDGTDRG)
+1 QUIT $$EFM^ICDEXD2($GET(EDT))
FY(CDT) ; FY 4 digit year (ICDGTDRG)
+1 QUIT $$FY^ICDEXD2($PIECE($GET(CDT),".",1))
VMDCDX(IEN,CDT) ; Versioned MDC for DX (ICDREF)
+1 QUIT $$VMDCDX^ICDEXD2($GET(IEN),$PIECE($GET(CDT),".",1))
VMDCOP(IEN,MDC,CDT) ; Versioned MDC for Op/Pro (ICDREF)
+1 QUIT $$VMDCOP^ICDEXD2($GET(IEN),$GET(MDC),$PIECE($GET(CDT),".",1))
REF(IEN,CDT) ; Return Reference Table (ICDREF)
+1 QUIT $$REF^ICDEXD2($GET(IEN),$GET(CDT))
MDCG(IEN,CDT,ARY) ; Set up array of MDCs (ICDDRG)
+1 DO MDCG^ICDEXD2($GET(IEN),$PIECE($GET(CDT),".",1),.ARY)
QUIT
MDCT(IEN,CDT,ARY,FMT) ; For Multiple MDC DX Codes (ICDDRG)
+1 QUIT $$MDCT^ICDEXD2($GET(IEN),$PIECE($GET(CDT),".",1),.ARY,$GET(FMT))
MDCD(IEN,MDC,CDT) ; Check for default MDC (ICDDRG)
+1 QUIT $$MDCD^ICDEXD2($GET(IEN),$GET(MDC),$GET(CDT))
MDCN(IEN) ; Major Diagnostic Category Name
+1 QUIT $$MDCN^ICDEXD2(+($GET(IEN)))
MOR(IEN) ; Major O.R. Procedure (ICDDRG)
+1 QUIT $$MOR^ICDEXD2($GET(IEN))
UPDX(IEN) ; Unacceptable as Principle DX
+1 QUIT $$UPDX^ICDEXD2($GET(IEN))
NOT(IEN,SUB,FMT) ; Codes not Used With
+1 QUIT $$NOT^ICDEXD3($GET(IEN),$GET(SUB),$GET(FMT))
REQ(IEN,SUB,FMT) ; Codes Required With
+1 QUIT $$REQ^ICDEXD3($GET(IEN),$GET(SUB),$GET(FMT))
NCC(IEN,SUB,FMT) ; Codes not Considered CC With
+1 QUIT $$NCC^ICDEXD3($GET(IEN),$GET(SUB),$GET(FMT))
ICDID(FILE,ID,CODE) ; Check if ICD identifier exist
+1 QUIT $$ICDID^ICDEXD4($GET(FILE),$GET(ID),$GET(CODE))
IDSTR(FILE,IEN) ; ICD identifier string (legacy)
+1 QUIT $$IDSTR^ICDEXD4($GET(FILE),$GET(IEN))
ICDIDS(FILE,IEN,ARY) ; Returns array of ICD identifiers
+1 QUIT $$ICDIDS^ICDEXD4($GET(FILE),$GET(IEN),.ARY)
ISOWNCC(IEN,CDT,FMT) ; Return CC if DX is Own CC
+1 QUIT $$ISOWNCC^ICDEXD4($GET(IEN),$GET(CDT),$GET(FMT))
ICDRGCC(DRG,CDT) ; Get CC/MCC flag from DRG
+1 QUIT $$ICDRGCC^ICDEXD4($GET(DRG),$GET(CDT))
INQ ; Inquire to the ICD Files
+1 DO INQ^ICDEXD4
QUIT
EFD(X) ; Get Effective date in range (interactive)
+1 QUIT $$EFD^ICDEXD2
PDXE(IEN) ; Primary DX Exclusion Code
+1 QUIT $$PDXE^ICDEXD3($GET(IEN))
DRG(CODE,CDT) ; Returns information about a DRG
+1 QUIT $$DRG^ICDEXD5($GET(CODE),$GET(CDT))
DRGW(IEN) ; DRG Weighted Work Unit (WWU)
+1 QUIT $$DRGW^ICDEXD5($GET(IEN))
DRGDES(IEN,CDT,ARY,LEN) ; Formatted DRG Description
+1 QUIT $$DRGDES^ICDEXD5($GET(IEN),$GET(CDT),.ARY,$GET(LEN))
DRGD(CODE,OUTARR,CDT) ; Unformatted DRG Description
+1 QUIT $$DRGD^ICDEXD5($GET(CODE),$GET(OUTARR),$GET(CDT))
DRGN(CODE) ; Return the IEN of DRG
+1 QUIT $$DRGN^ICDEXD5($GET(CODE))
DRGC(IEN) ; DRG Code
+1 QUIT $$DRGC^ICDEXD5($GET(IEN))
GETDATE(IEN) ; Calculate Effective Date
+1 QUIT $$GETDATE^ICDEXD5($GET(IEN))
+2 ;
+3 ; Lookup
LK ; Special Lookup (called by DIC)
+1 DO LK^ICDEXLK
QUIT
LKTX(X,ROOT,CDT,SYS,VER,OUT) ; Lookup Text in ROOT (silent)
+1 QUIT $$LK^ICDEXLK3($GET(X),$GET(ROOT),$PIECE($GET(CDT),".",1),$GET(SYS),$GET(VER),$GET(OUT))
Y(ROOT,IEN,CDT,FMT) ; Output Variable Y from Lookup
+1 DO Y^ICDEXLK2($GET(ROOT),$GET(IEN),$PIECE($GET(CDT),".",1),$GET(FMT))
QUIT
TOKEN(X,ROOT,SYS,ARY) ; Parse Text into Words
+1 DO TOKEN^ICDTOKN($GET(X),$GET(ROOT),$GET(SYS),.ARY)
QUIT
WORD(X,ROOT,SYS) ; Word is Found
+1 QUIT $$WORD^ICDEXLK3($GET(X),$GET(ROOT),$GET(SYS))