Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Info |  Source |  Call Graph |  Caller Graph |  Entry Points |  External References |  Global Variables Directly Accessed |  Label References |  Local Variables  | All
Print Page as PDF
Routine: ICDJC1

Package: DRG Grouper

Routine: ICDJC1


Information

ICDJC1 ;ALB/ARH - DRG GROUPER CALCULATOR 2015 - ATTRIBUTES ;05/26/2016

Source Information

Source file <ICDJC1.m>

Call Graph

Call Graph

Call Graph Total: 1

Package Total Call Graph
DRG Grouper 1 ($$CLSTR,GETCDS)^ICDJC2  

Caller Graph

Legends:

Legend of Colors

Package Component Superscript legend

action A extended action Ea event driver Ed subscriber Su protocol O limited protocol LP run routine RR broker B edit E server Se print P screenman SM inquire I

Caller Graph

Caller Graph Total: 1

Package Total Caller Graph
DRG Grouper 1 ICDJC  

Entry Points

Name Comments DBIA/ICR reference
PRATT(ICDPR,ICDDATE,PRARR) ; get all attributes of Procedures - determine if event is Surgical or Medical and MDCs
; returns array with the Procedure Attributes only, later updated to include Cluster Attributes
DXATT(ICDDX,ICDDATE,ICDEXP,DXARR) ; get all attributes of Diagnosis - determine if MCC or CC apply to event and MDCs
; returns array with the Diagnosis Attributes only, later updated to include updates due to HAC
; the diagnosis event MDCs are determined by the primary Dx, based on the MDCs of its assigned code sets
; event MCC/CC is determined by secondary Dxs and the primary Dx if it is an MCC/CC of its Own
; the MCC/CC of a secondary Dx may be applied to the event DRG unless overridden by one of two cases:
; PDX is a member of the secondarys exclusion group or if patient has expired and MCC only if Alive
GETATT(TYP,CDIFN,DATE) ; get one codes Attributes for date, either diagnosis (83.5,10) or procedure (83.6,10) or cluster (83.61,10)
; only one set of attributes may be active on a given date, returns entire node
; input: TYP - type of codes 'DX' or 'PR' or 'CL', CDIFN - ptr to code in 83.5 or 83.6 or 83.61
; output: node of codes attributes active on date, if any, 83.5,10 or 83.6,10 or 86.61,10
GETMDC(TYP,ICDARR,ICDDATE) ; get list of all MDC's the diagnosis/procedure codes are assigned to
; compile list of MDC's based on the codes assigned code sets (83.5,20&83.6,20), Primary Dx and OR Procedures only
; input: TYP - type of codes 'DX' or 'PR', ICDARR is either diagnoais ICDDX or procedures ICDPRC
; output: returns list of codes MDC ID's - 00;03... for Primary DX or all OR Procedures only
GETEVT(DXARR) ; get the events MCC/CC attribute, compiled from all diagnosis attributes
; check each dx for an MCC/CC that was not overridden and still applies, MCC highest priority then CC
; input: DXARR list of each diagnosis attributes
; output: returns either MCC or CC or blank as the event attribute
EXCLD(DX,EXCLGRP,DATE) ; determine if the Diagnosis is in the Exclusion group
; if primary Dx is member of a secondary Dxs Exclusion group then that secondary Dx can not impart MCC/CC to event
; input: DX - ptr to 80, EXCLGRP - 4 character Exclusion Group ID (83.51, .01 and 83.5,10,.03)
; output: returns true if PDx is in SDx Exclusion group (83.51) on date and secondary Dxs MCC/CC should be ignored
DXHAC(ICDDX,ICDPR,ICDDATE,ICDPOA,DXARR) ; reset DXATT for HAC, determine HAC for each Dx not POA (N,U), if found then re-set event MCC/CC
; identify any diagnosis defined as a HAC, if a Dx is HAC then its MCC/CC should be ignored
; a HAC applies only to diagnosis Not Present on Admission (N or U)
; if a Dx is Not Present on Admission (N,U) and a member of a HAC group then it can not impart MCC/CC to the event
; if the HAC group requires multiple Dx codes then the MCC/CC of all are screened out
;
; Input: ICDDX(x) and ICDPR(x) - array of Dx/procedures input to API, ICDDATE - date of event
; ICDPOA(x) - array of Dx POA input to API
; DXARR(x) - dx ifn ^ MCC/CC ^ exclude grp ^ alive exclude ^ (reserved HAC) ^ ^ MCC/CC applies
; Output: DXARR - 'MCC' or 'CC' or blank, updated for any HAC Dx found
; DXARR(x) - (dx ifn) ^ (MCC/CC) ^ (exclude grp) ^ (alive exclude) ^ HAC Grp ^ ^ MCC/CC applies
; - if Dx is a member of a HAC group then 'HAC Grp' is set and 'MCC/CC applies' is updated
; to remove the Dxs MCC/CC from the event
HACSET(ICDDX,ICDPR,ICDDATE,ICDPOA,HCSARR) ; get all HAC Code Sets defined by event Diagnosis and Procedure codes
; a HAC only applies if Dx was not present on admission (N,U) and possibly only to secondary or primary Dx
; input: ICDDX(x) and ICDPR(x) - array of Dx/procedures input to API, ICDDATE - date of event
; ICDPOA(x) - array of Dx POA input to API
; output: returns array of all HAC code sets applicable to the specific event
; HCSARR( hac code set (83.71), "DX", x - code entry in ICDDX ) = ""
; HCSARR( hac code set (83.71), "PR", x - code entry in ICDPR ) = ""
GETCDH(TYP,CDIFN,DATE,ARRHSX) ; get HAC code sets for a single code on a date, either diagnosis (83.5,30) or procedure (83.6,30)
; input: TYP - type of codes 'DX' or 'PR', CDIFN - ptr to code in 83.5 or 83.6
; output: ARRHSX - array of HAC code sets the Code is a member of on the date
; ARRHSX(hac code set ifn (83.71)) = CDIFN
PRCLS(ICDPR,ICDDATE,PRARR) ; reset PRATT for Clusters, determine Cluster OR/NOR attribute for each event Procedure, if found then re-set event OR/NOR
; identify all active clusters satified by the event procedures, set all cluster procedures OR/NOR to the Clusters OR/NOR
; the cluster identified is an indicator and not definitive, each procedure may be assigned to multiple clusters
; assumes that all clusters a procedure is a member of is the same type, either all OR clusters or all NOR clusters

External References

Name Field # of Occurrence
$$CLSTR^ICDJC2 PRCLS+22
GETCDS^ICDJC2 GETMDC+12

Global Variables Directly Accessed

Name Line Occurrences  (* Changed,  ! Killed)
^ICDD( GETATT+7, GETATT+8, GETATT+9, GETMDC+8, GETCDH+7, GETCDH+8
^ICDD(83 - [#83] GETMDC+15
^ICDD(83.3 - [#83.3] GETMDC+15
^ICDD(83.5 - [#83.5] DXATT+16, DXATT+24, HACSET+13
^ICDD(83.51 - [#83.51] EXCLD+6, EXCLD+7
^ICDD(83.6 - [#83.6] PRATT+11, HACSET+25
^ICDD(83.61 - [#83.61] PRCLS+17
^ICDD(83.7 - [#83.7] DXHAC+30
^ICDD(83.71 - [#83.71] DXHAC+19, DXHAC+25, DXHAC+26, HACSET+17

Label References

Name Line Occurrences
$$EXCLD DXATT+30
$$GETATT PRATT+12, DXATT+17, DXATT+25, GETMDC+10, PRCLS+24
$$GETEVT DXATT+35, DXHAC+34
$$GETMDC PRATT+15, DXATT+35, DXHAC+34, PRCLS+31
GETCDH HACSET+13, HACSET+25
HACSET DXHAC+15

Local Variables

Legend:

>> Not killed explicitly
* Changed
! Killed
~ Newed

Name Field # of Occurrence
ARRCDS GETMDC+4~, GETMDC+12
ARRCDS( GETMDC+14
ARRCLS PRCLS+13~
ARRCLS( PRCLS+17*, PRCLS+20, PRCLS+26
ARRHAC DXHAC+13~
ARRHAC( DXHAC+19*, DXHAC+22, DXHAC+29
ARRHCS DXHAC+13~, DXHAC+15
ARRHCS( DXHAC+18, DXHAC+26, DXHAC+32
ARRHSX HACSET+7~, HACSET+13, HACSET+25, GETCDH~, GETCDH+4!
ARRHSX( HACSET+16, HACSET+27, GETCDH+10*
ARRMDC GETMDC+4~
ARRMDC( GETMDC+15*, GETMDC+18
ATTLN PRATT+8~, PRATT+12*, PRATT+13, DXATT+11~, DXATT+17*, DXATT+18, DXATT+25*, DXATT+26, DXATT+29, DXATT+30
, GETATT+4~*, GETATT+11*, GETATT+12, PRCLS+13~, PRCLS+24*, PRCLS+27, PRCLS+29*, PRCLS+31
BEGIN GETATT+4~, GETATT+7*, GETATT+8, GETATT+10*, GETATT+11, EXCLD+4~, EXCLD+8*, EXCLD+9, GETCDH+4~, GETCDH+9*
, GETCDH+10
CCMCC DXATT+11~, DXATT+32*, DXATT+33, GETEVT+4~, GETEVT+5*
CD GETMDC+4~, GETMDC+7*, GETMDC+8
CDFILE GETATT+4~, GETATT+5*, GETATT+7, GETATT+8, GETATT+9, GETMDC+4~, GETMDC+5*, GETMDC+8, GETCDH+4~, GETCDH+5*
, GETCDH+7, GETCDH+8
CDIFN GETATT~, GETATT+4*, GETATT+7, GETATT+8, GETATT+9, GETMDC+4~, GETMDC+8*, GETMDC+10, GETMDC+12, GETCDH~
, GETCDH+4*, GETCDH+7, GETCDH+8, GETCDH+10
CLSIFN PRCLS+13~, PRCLS+17*, PRCLS+20*, PRCLS+22, PRCLS+24, PRCLS+26, PRCLS+27
DATE GETATT~, GETATT+4*, GETATT+7, GETATT+11, EXCLD~, EXCLD+4*, EXCLD+9, GETCDH~, GETCDH+4*, GETCDH+10
DT GETATT+4, EXCLD+4, GETCDH+4
DX DXATT+11~, DXATT+22*, DXATT+24, DXATT+33, EXCLD~, EXCLD+4*, EXCLD+6, HACSET+7~, HACSET+13*
DXALIVE DXATT+11~, DXATT+29*
DXARR DXATT~, DXATT+11!*, DXATT+35*, GETEVT~, DXHAC~, DXHAC+34*
DXARR( DXATT+14*, DXATT+19*, DXATT+22*, DXATT+33*, GETEVT+5, DXHAC+32*
DXCC DXATT+11~, DXATT+18*, DXATT+19, DXATT+26*, DXATT+32, DXATT+33
DXEVT GETEVT+4~*, GETEVT+5*, GETEVT+6
DXEXCL DXATT+11~, DXATT+30*
DXI DXATT+11~, DXATT+14*, DXATT+19, DXATT+22*, DXATT+33, GETEVT+4~, GETEVT+5*, DXHAC+13~, DXHAC+32*, HACSET+7~
, HACSET+10*, HACSET+13, HACSET+19, HACSET+20, HACSET+21
DXIFN DXATT+11~, DXATT+16*, DXATT+17, DXATT+24*, DXATT+25, HACSET+7~, HACSET+13*
END GETATT+4~, GETATT+10*, GETATT+11, EXCLD+4~, EXCLD+8*, EXCLD+9, GETCDH+4~, GETCDH+9*, GETCDH+10
EXCLGRP EXCLD~, EXCLD+6
EXCLUDE DXATT+11~, DXATT+28*, DXATT+30*, DXATT+32, DXATT+33, EXCLD+4~*, EXCLD+6, EXCLD+9*, EXCLD+10
EXIFN EXCLD+4~, EXCLD+6*, EXCLD+7
EXPIRED DXATT+11~, DXATT+28*, DXATT+29*, DXATT+32, DXATT+33
FND DXHAC+13~, DXHAC+25*, DXHAC+26*, DXHAC+29
HACCSE DXHAC+13~, DXHAC+19*, DXHAC+22*, DXHAC+26, DXHAC+29
HACID DXHAC+13~, DXHAC+30*, DXHAC+32
HACIFN DXHAC+13~, DXHAC+22*, DXHAC+25, DXHAC+30
HCSARR HACSET~, HACSET+7!
HCSARR( HACSET+19*, HACSET+20*, HACSET+21*, HACSET+27*
HCSIFN DXHAC+13~, DXHAC+18*, DXHAC+19, DXHAC+25*, DXHAC+26, DXHAC+29*, DXHAC+32, HACSET+7~, HACSET+16*, HACSET+17
, HACSET+19, HACSET+20, HACSET+21, HACSET+27*
ICDARR GETMDC~, GETMDC+12
ICDARR( GETMDC+7
ICDDATE PRATT~, PRATT+12, PRATT+15, DXATT~, DXATT+17, DXATT+25, DXATT+30, DXATT+35, GETMDC~, GETMDC+10
, GETMDC+12, DXHAC~, DXHAC+15, DXHAC+34, HACSET~, HACSET+13, HACSET+25, PRCLS~, PRCLS+24, PRCLS+31
ICDDX DXATT~, DXATT+35, DXHAC~, DXHAC+15, DXHAC+34, HACSET~
ICDDX( DXATT+14, DXATT+22, HACSET+10, HACSET+13
ICDDX(0 DXATT+14, HACSET+20, HACSET+21
ICDEXP DXATT~, DXATT+29
ICDPOA DXHAC~, DXHAC+15, HACSET~
ICDPOA( HACSET+10
ICDPR PRATT~, PRATT+15, DXHAC~, DXHAC+15, HACSET~, PRCLS~, PRCLS+22, PRCLS+31
ICDPR( PRATT+10, HACSET+24, HACSET+25, PRCLS+16
IX GETATT+4~, GETATT+8*, GETATT+9, GETMDC+4~, GETMDC+7*, GETCDH+4~, GETCDH+7*, GETCDH+8
LINE GETATT+4~, GETATT+9*, GETATT+10, GETATT+11, EXCLD+4~, EXCLD+7*, EXCLD+8, DXHAC+13~, DXHAC+19*, HACSET+7~
, HACSET+17*, HACSET+19, HACSET+20, HACSET+21, GETCDH+4~, GETCDH+8*, GETCDH+9, GETCDH+10
MDC GETMDC+4~, GETMDC+15*, GETMDC+18*
MDCIFN GETMDC+4~, GETMDC+15*
MLIST GETMDC+4~*, GETMDC+18*, GETMDC+19*, GETMDC+20
PDX DXATT+11~, DXATT+14*, DXATT+16, DXATT+19, DXATT+30
POA HACSET+7~, HACSET+10*
PR PRATT+8~, PRATT+10*, PRATT+11, PRATT+13, HACSET+7~, HACSET+25*, PRCLS+13~, PRCLS+16*, PRCLS+17
PRARR PRATT~, PRATT+8!*, PRATT+13*, PRATT+15*, PRCLS~, PRCLS+31*
PRARR( PRATT+10*, PRATT+13*, PRCLS+26, PRCLS+27*, PRCLS+29
PRI PRATT+8~, PRATT+10*, PRATT+13, HACSET+7~, HACSET+24*, HACSET+25, HACSET+27, PRCLS+13~, PRCLS+16*, PRCLS+17
, PRCLS+26*, PRCLS+27, PRCLS+29*
PRIFN PRATT+8~, PRATT+11*, PRATT+12, HACSET+7~, HACSET+25*
SETIFN GETMDC+4~, GETMDC+14*, GETMDC+15
TYP GETATT~, GETATT+4*, GETATT+5, GETMDC~, GETMDC+4*, GETMDC+5, GETMDC+7, GETMDC+10, GETMDC+12, GETCDH~
, GETCDH+4*, GETCDH+5
U PRATT+13, PRATT+15, DXATT+18, DXATT+19, DXATT+26, DXATT+29, DXATT+30, DXATT+33, DXATT+35, GETATT+10
, GETMDC+10, GETMDC+15, GETEVT+5, EXCLD+8, DXHAC+19, DXHAC+26, DXHAC+30, DXHAC+32, DXHAC+34, HACSET+19
, HACSET+20, HACSET+21, GETCDH+9, GETCDH+10, PRCLS+27, PRCLS+29, PRCLS+31
Info |  Source |  Call Graph |  Caller Graph |  Entry Points |  External References |  Global Variables Directly Accessed |  Label References |  Local Variables  | All