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

ICDEX.m

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