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

Package: DRG Grouper

Routine: ICDJC3


Information

ICDJC3 ;ALB/ARH - DRG GROUPER CALCULATOR 2015 - DRG SELECT ;05/26/2016

Source Information

Source file <ICDJC3.m>

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
DRGLS(ICDDATE,PRATT,DXATT,CDSET,DRGARR) ; get all possible satisfied DRGs and their MCC/CC defined by the event diagnosis, procedures and attributes
; DRGs are selected based on Code Sets, defined by the event diagnosis and procedures
; each DRG may have one or more sets of Code Sets (Cases) that lead to the DRG
;
; selected DRGs have at least one DRG Case with all required Code Sets defined and following criteria met:
; a DRGs MDC must match the MDC of the events Primary diagnosis, except DRG MDCs 00 and 99
; a Medical DRG may not have an event OR procedure unless it is specifically assigned to the Case Code Set
; if a DRG that is a member of an Exclusive MDC has a Case initially satisfied then no General MDC DRG is allowed
; if a DRG Case includes an 'EXCEPT' Code Set (Set or Case level), that code set must not be defined by the event
; if a DRG Case requires Any OR procedure, it may not be satisfied by a code used to satisfy any other code set
; if a DRG Case requires a Secondary Dx then that Dxs MCC/CC may not affect the MCC/CC designation of that DRG
; when this occurs the MCC/CC applied to that specific DRG is updated and may be different than the event MCC/CC
DRGACT(DRG,DATE) ; get the status of the DRG on a date DRG STATUS (#80.2,66,.03)
; input: DRG - ptr to 80.2, DATE - date to determine status
; output: return true if the DRG is active on the date
GETCSE(DRGIFN,DATE,ARRCSE) ; get all active Cases associated with the DRG (83.1,10)
; input: DRGIFN - ptr to mdc drg (83.1)
; output: ARRCSE(case ifn (83.2)) = DRGIFN - array of active Cases (83.2) linked to the DRG (83.1)
CSESET(MDCIFN,CSEIFN,CDSET,DXATT,PRATT,DRGCFND) ; determine if a Case is fully satisfied by the event
; all Code Sets required by a Case have event codes assigned (CDSET) and satisfy the criteria
; input: MDCIFN - ptr to DRGs MDC (83), CSEIFN - ptr to a Case (83.2)
; output: return true if all the code sets for the case have event codes assigned and meet the criteria
; 1 if all case codes sets and criteria satisfied, MCC/CC not affected
; 3 if any Operating Room Procedures unassigned to a case code set
; 2 ^ MCC or CC or null if all case code sets and criteria satisfied and reset the MCC/CC for the DRG
; DRGCFND returns true if the case is initially satisfied before screening for extra/unassigned OR procedures
; a code set identified as EXCEPT, at case or set level, invalidates the case, unless AnyOR overrides it
; the codes used to satisfy the ANY OR Procedure Code Set must not be used to satisfy any of the cases other code sets
; clusters apply within the MDC of its Set and if no other procedure is necessary to select the case
; therefore a cluster with members incompletely assigned to the case may override the selection
; if a Secondary Diagnosis is used to select the DRG then its MCC/CC are removed from the DRGs MCC/CC
PRCOR(DRGMDCFN,ARRSET,CDSET,PRATT) ; determine if any event OR Procedures are unassigned or unused
; input: ARRSET(SETIFN) - all code sets that define the case, codes assigned to these sets are considered used
; output: returns true if any event OR Procedure codes are unused - not assigned to any of the cases code sets
; checks if any OR procedure is unassigned to the Case Sets, excludes generic code sets like Any OR
; also excludes as unused members of clusters defined outside the DRGs MDC that are cluster members only, not singles
PRCLR(DRGMDCFN,ARRSET,CDSET) ; Cluster/MDC Rule - deterime if a cluster is defined by the event and affects the case
; procedures within a cluster must all exist for the cluster to satisfy a set
; the cluster applies only within the MDC of its Set and if no other procedure is necessary to select the case
; input: ARRSET(SETIFN) - all code sets that define the case, codes assigned to these sets are considered used
; output: returns true (1) if a procedure cluster does not invalidate the set
; returns false (0) if cluster is defined and invalidates the case
; if a cluster is defined by the event, it may or may not need to be fully assigned to the case sets
; when applied to cases, the clusters individual procedures may be used outside the clusters MDC or if there
; are non-cluster procedures necessary to select the case
; Cluster/MDC Rule does not apply to MDC 00, single procedures of clusters within MDC 00 may satisfy an MDC 00 set
DXSND(ARRSET,CDSET,DXATT) ; Case Secondary Dx Rule - get updated DRG MCC/CC if a Secondary Dx was used to select the DRG Case
; if an event diagnosis is assigned to a cases secondary dx code set then remove its MCC/CC from the DRGs MCC/CC
; input: ARRSET(SETIFN) - all code sets that define the case, codes assigned to these sets are considered used
; output: 2 ^ MCC or CC or null - updated DRG MCC/CC
; null if secondary dx code sets did not affect the MCC/CC
; if a Secondary Diagnosis is used to select the DRG then its MCC/CC may not be used for the DRGs MCC/CC

Global Variables Directly Accessed

Name Line Occurrences  (* Changed,  ! Killed)
^ICD - [#80.2] DRGACT+4, DRGACT+5
^ICDD(83 - [#83] DRGLS+32, PRCOR+6, PRCOR+11, PRCLR+11, PRCLR+22
^ICDD(83.1 - [#83.1] DRGLS+28, DRGLS+32, GETCSE+5, GETCSE+6
^ICDD(83.2 - [#83.2] DRGLS+27, CSESET+16, CSESET+17
^ICDD(83.3 - [#83.3] CSESET+17, CSESET+21, CSESET+23, CSESET+27, PRCOR+10, PRCLR+17, PRCLR+22, DXSND+9

Label References

Name Line Occurrences
$$CSESET DRGLS+43
$$DRGACT DRGLS+34
$$DXSND CSESET+47
$$PRCLR CSESET+45
$$PRCOR CSESET+41
GETCSE DRGLS+38

Local Variables

Legend:

>> Not killed explicitly
* Changed
! Killed
~ Newed

Name Field # of Occurrence
ANYOR CSESET+13~, CSESET+23*, CSESET+33, CSESET+43
ARRCDX PRCOR+5~, PRCLR+10~, DXSND+6~
ARRCDX( PRCOR+12*, PRCOR+15, PRCLR+17*, PRCLR+26, PRCLR+27, DXSND+10*, DXSND+15
ARRCDX(0 PRCLR+20, DXSND+14, DXSND+17
ARRCLS PRCLR+10~
ARRCLS( PRCLR+23*, PRCLR+26, PRCLR+27
ARRCSE DRGLS+22~, DRGLS+38, GETCSE~, GETCSE+3!
ARRCSE( DRGLS+41, GETCSE+8*
ARRDRG DRGLS+22~, DRGLS+45*, DRGLS+55
ARRDRG( DRGLS+28*, DRGLS+31, DRGLS+49*, DRGLS+52, DRGLS+53, DRGLS+55, DRGLS+57
ARRSET CSESET+13~, CSESET+41, CSESET+45, CSESET+47, PRCOR~, PRCLR~, DXSND~
ARRSET( CSESET+19*, CSESET+21*, CSESET+23, CSESET+26, CSESET+27, PRCOR+9, PRCLR+16, DXSND+9
BEGIN GETCSE+3~, GETCSE+7*, GETCSE+8
CASEFND DRGLS+22~, DRGLS+43*, DRGLS+47, DRGLS+49, DRGLS+57*, DRGLS+59, DRGLS+60
CDSET DRGLS~, DRGLS+43, CSESET~, CSESET+41, CSESET+45, CSESET+47, PRCOR~, PRCLR~, DXSND~
CDSET( DRGLS+26, CSESET+21, CSESET+32, CSESET+35, PRCOR+12, PRCLR+17, PRCLR+20, PRCLR+21, DXSND+10
CLSTR PRCLR+10~, PRCLR+21*
CSEIFN DRGLS+22~, DRGLS+27*, DRGLS+28, DRGLS+41*, DRGLS+43, DRGLS+49, DRGLS+53*, DRGLS+57, DRGLS+59, CSESET~
, CSESET+13*, CSESET+16, CSESET+17
DATE DRGACT~, DRGACT+3*, DRGACT+4*, GETCSE~, GETCSE+3*, GETCSE+8
DRG DRGACT~, DRGACT+4, DRGACT+5
DRG0 DRGLS+22~, DRGLS+32*, DRGLS+34, DRGLS+47
DRGARR DRGLS~, DRGLS+23!
DRGARR( DRGLS+59*, DRGLS+60*
DRGCAT PRCOR+5~, PRCOR+6*, PRCLR+10~, PRCLR+11*, PRCLR+23
DRGCFND DRGLS+22~, DRGLS+43, DRGLS+45, CSESET~, CSESET+13*, CSESET+39*
DRGIFN DRGLS+22~, DRGLS+28*, DRGLS+31*, DRGLS+32, DRGLS+38, DRGLS+49, DRGLS+52*, DRGLS+53, DRGLS+55, DRGLS+57
, DRGLS+59, DRGLS+60, GETCSE~, GETCSE+3*, GETCSE+5, GETCSE+6, GETCSE+8
DRGMDC PRCOR+5~, PRCOR+6*, PRCOR+12, PRCLR+10~, PRCLR+11*, PRCLR+13, PRCLR+23
DRGMDCFN PRCOR~, PRCOR+6, PRCLR~, PRCLR+11
DRGSB DRGACT+3~*, DRGACT+4*, DRGACT+5
DRGSTAT DRGACT+3~*, DRGACT+5*, DRGACT+6
DT DRGACT+3, GETCSE+3
DXATT DRGLS~, DRGLS+23*, DRGLS+36, DRGLS+43, DRGLS+60, CSESET~, CSESET+47, DXSND~, DXSND+17
DXATT( DXSND+14, DXSND+15
DXATT(0 DXSND+10
DXCC DXSND+6~, DXSND+15*
DXSND CSESET+13~, CSESET+23*, CSESET+28*, CSESET+47*
END GETCSE+3~, GETCSE+7*, GETCSE+8
EXCEPT CSESET+13~, CSESET+32*, CSESET+33
EXTRAOR CSESET+13~, CSESET+41*, CSESET+43
FND CSESET+13~*, CSESET+23*, CSESET+26, CSESET+30*, CSESET+33*, CSESET+35*, CSESET+39, CSESET+41*, CSESET+43*, CSESET+45*
, CSESET+47*, CSESET+49, PRCOR+5~*, PRCOR+15*, PRCOR+17, PRCLR+10~*, PRCLR+26*, PRCLR+27*, PRCLR+28, DXSND+6~*
, DXSND+17*, DXSND+19
ICDDATE DRGLS~, DRGLS+34, DRGLS+38
IX GETCSE+3~, GETCSE+5*, GETCSE+6, CSESET+13~, CSESET+16*, CSESET+17, PRCOR+5~, PRCOR+12*, PRCOR+15*, PRCLR+10~
, PRCLR+17*, PRCLR+21*, PRCLR+23, PRCLR+26*, PRCLR+27*, DXSND+6~, DXSND+10*, DXSND+14*, DXSND+15
LINE GETCSE+3~, GETCSE+6*, GETCSE+7, GETCSE+8, CSESET+13~, CSESET+17*, CSESET+19, CSESET+21, CSESET+27*, CSESET+32
, PRCOR+5~, PRCOR+10*, PRCOR+11, DXSND+6~, DXSND+9*, DXSND+10
LINK CSESET+13~, CSESET+20*, CSESET+21
LNKSET CSESET+13~, CSESET+21*
M0 PRCOR+5~, PRCOR+6*, PRCOR+11*, PRCLR+10~, PRCLR+11*, PRCLR+22*
MDC0 DRGLS+22~, DRGLS+32*, DRGLS+36
MDCIFN DRGLS+22~, DRGLS+32*, DRGLS+43, CSESET~, CSESET+41, CSESET+45
MDCTYP DRGLS+22~, DRGLS+32*, DRGLS+45, DRGLS+49
NEWMCC DXSND+6~*, DXSND+14*, DXSND+15*, DXSND+17
PRATT DRGLS~, DRGLS+23*, DRGLS+43, CSESET~, CSESET+41, PRCOR~
PRATT( PRCOR+15
RESET DRGLS+22~, DRGLS+52*, DRGLS+60*
SET0 CSESET+13~, CSESET+17*, CSESET+20, CSESET+27*, CSESET+28, CSESET+32, CSESET+33, PRCLR+10~, PRCLR+17*, PRCLR+22*
SETCAT PRCOR+5~, PRCOR+11*, PRCLR+10~, PRCLR+22*, PRCLR+23
SETIFN DRGLS+22~, DRGLS+26*, DRGLS+27, CSESET+13~, CSESET+17*, CSESET+19, CSESET+23*, CSESET+26*, CSESET+27, CSESET+32
, CSESET+35, PRCOR+5~, PRCOR+9*, PRCOR+10, PRCOR+12, PRCLR+10~, PRCLR+16*, PRCLR+17, PRCLR+20*, PRCLR+21
, PRCLR+22, DXSND+6~, DXSND+9*, DXSND+10
SETMDC PRCOR+5~, PRCOR+11*, PRCOR+12, PRCLR+10~, PRCLR+22*, PRCLR+23
U DRGLS+32, DRGLS+36, DRGLS+47, DRGLS+60, DRGACT+5, GETCSE+7, GETCSE+8, CSESET+20, CSESET+28, CSESET+32
, CSESET+33, PRCOR+6, PRCOR+10, PRCOR+11, PRCOR+12, PRCOR+15, PRCLR+11, PRCLR+17, PRCLR+21, PRCLR+22
, DXSND+10, DXSND+15, DXSND+17
Info |  Source |  Caller Graph |  Entry Points |  Global Variables Directly Accessed |  Label References |  Local Variables  | All