ICDJC3 ;ALB/ARH - DRG GROUPER CALCULATOR 2015 - DRG SELECT ;05/26/2016
Source file <ICDJC3.m>
action | A | extended action | Ea | event driver | Ed | subscriber | Su | protocol | O | limited protocol | LP | run routine | RR | broker | B | edit | E | server | Se | P | screenman | SM | inquire | I |
Package | Total | Caller Graph |
---|---|---|
DRG Grouper | 1 | ICDJC |
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 |
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 |
Name | Line Occurrences |
---|---|
$$CSESET | DRGLS+43 |
$$DRGACT | DRGLS+34 |
$$DXSND | CSESET+47 |
$$PRCLR | CSESET+45 |
$$PRCOR | CSESET+41 |
GETCSE | DRGLS+38 |
>> | 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 |