ICDJC1 ;ALB/ARH - DRG GROUPER CALCULATOR 2015 - ATTRIBUTES ;05/26/2016
Source file <ICDJC1.m>
Package | Total | Call Graph |
---|---|---|
DRG Grouper | 1 | ($$CLSTR,GETCDS)^ICDJC2 |
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 |
---|---|---|
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 |
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 |
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 |
>> | 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 |