IVMZ7CCD ;BAJ,TGH - HL7 Z07 CONSISTENCY CHECKER -- CATASTROPHIC DISABILITY SUBROUTINE ; 11/9/05 9:30am
Source file <IVMZ7CCD.m>
| Package | Total | Call Graph |
|---|---|---|
| Registration | 3 | ($$LIMBOK,$$TYPE,$$VALID)^DGENA5 $$GET^DGENCDA $$ISCD^DGENCDA1 |
| VA FileMan | 2 | CHK^DIE $$EXTERNAL^DILFD |
| 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 |
| Name | Comments | DBIA/ICR reference |
|---|---|---|
| EN(DFN) | ; entry point. Patient DFN is sent from calling routine.
; initialize working variables |
|
| CD(VCD) | ; Is Patient Catastrophically disabled? If not, we need to examine patient's record to see if qualified for CD
; Whether qualified or not, if patient is listed as NOT CD, the rest of the rules should not be checked. Therefore, ; if DGCDIS("VCD") does not = "Y" system will exit after this rule without checking any further. |
|
| 701 | ;Catastrophic Disability 'Decided By' Cannot be 'HINQ'
|
|
| 702 | ;Catastrophic Disability 'Decided By' not valid
|
|
| 703 | ;"Catastrophic Disability 'Decided By' required"
|
|
| 704 | ;"Catastrophic Disability Review Date Required"
|
|
| 705 | ;"Catastrophic Disability Review Date Invalid"
|
|
| 706 | ;"CD Condition Score not valid"
|
|
| 707 | ;"CD Review Date greater than CD Date of Determination"
|
|
| 708 | ;"CD Status Affected Extremity' Invalid"
|
|
| 709 | ;"CD Status Diagnoses' Not Valid"
; .396 CD STATUS DIAGNOSES field (multiple): |
|
| 710 | ;"'CD Status Procedure' Not Valid"
; .397 CD STATUS PROCEDURES field (multiple): |
|
| 711 | ;"No CD Status Reason is Present"
|
|
| 712 | ;"'Date Of Catastophic Disability Decision' Not Valid"
|
|
| 713 | ;"'Date Of Catastophic Disability Decision' Required"
|
|
| 714 | ;"'Facility Making Catastrophic Disability Determination' Not Valid"
|
|
| 715 | ;"'Method Of Determination' Is A Required Value"
|
|
| 716 | ;"'Method Of Determination' Not Valid"
|
|
| 717 | ;"Not Enough Diagnoses/Procedures/Conditions To Qualify For CD Status"
|
|
| 718 | ;"Permanent Status Indicator' Not Valid"
|
|
| 719 | ;"'Veteran Catastrophically Disabled?' Field Must Have A Response"
; .39 VETERAN CATASTROPHICALLY DISABLED? field. |
|
| 720 | ;"Veteran Has Enough Diagnoses/Procedures/Conditions To Qualify For CD Status"
; We check this rule at the beginning of the routine. No need to check it here, ; but we need the label as a place holder. |
|
| 723 | ;"Catastrophic Disability Review date must be a precise date"
|
|
| 724 | ;"Catastrophic Disability Date of Decision must be a precise date"
|
|
| 725 | ;"Catastrophic Disability Procedure code must be accompanied with an Affected Extremity field"
; Procedure list = DGCDIS("PROC",ITEM) ; Affected Extremity list = DGCDIS("EXT",ITEM) ; This tag makes sure that there is at least one Affected Extremity for each procedure code. |
|
| 726 | ;"Catastrophic Disablity condition code requires a Score field"
; Condition list = DGCDIS("COND",ITEM) ; Score list = DGCDIS("SCORE",ITEM) |
|
| 727 | ||
| 728 | ||
| FILE | ;file the inconsistencies in a temp global
|
| FileNo | Call Tags |
|---|---|
| ^DPT - [#2] | CHK^DIE, EXTERNAL^DILFD |
| Name | Line Occurrences (* Changed, ! Killed) |
|---|---|
| ^DGIN(38.6 - [#38.6] | EN+47, EN+48 |
| ^TMP($J | FILE+1* |
| Name | Line Occurrences |
|---|---|
| $$CD | EN+40 |
| @( | EN+49 |
| FILE | EN+41, EN+50 |
| >> | Not killed explicitly |
| * | Changed |
| ! | Killed |
| ~ | Newed |
| Name | Field # of Occurrence |
|---|---|
| DFN | EN~, EN+34, FILE+1 |
| DGCDIS | EN+2~, EN+34, CD+4, 717+1 |
| DGCDIS("BY" | 701+1, 702+1, 703+1 |
| DGCDIS("COND" | 706+3, 706+4, 711+1, 718+2, 726+5, 728+1 |
| DGCDIS("DATE" | 707+1, 712+3, 712+4, 713+1, 724+2 |
| DGCDIS("DESCR" | 711+1, 727+4, 727+5, 728+1 |
| DGCDIS("DIAG" | 709+4, 709+5, 711+1, 728+1 |
| DGCDIS("EXT" | 708+4, 708+5, 725+7, 725+8 |
| DGCDIS("FACDET" | 714+1 |
| DGCDIS("METDET" | 715+1, 716+1 |
| DGCDIS("PERM" | 718+3 |
| DGCDIS("PROC" | 708+3, 708+5, 710+4, 710+5, 711+1, 725+6, 728+1 |
| DGCDIS("REVDTE" | 704+1, 705+2, 707+1, 723+2 |
| DGCDIS("SCORE" | 706+4, 726+6, 726+7 |
| DGCDIS("VCD" | EN+40, 714+1, 719+2 |
| EIEN | 708+1~, 708+4*, 708+5 |
| ERR | 706+1~, 706+2*, 706+4*, 706+5, 708+1~, 708+2*, 708+5*, 708+6, 709+2~, 709+3* , 709+5*, 709+6, 710+2~, 710+3*, 710+5*, 710+6, 725+4~, 725+5*, 725+7*, 725+8* , 725+9, 726+3~, 726+4*, 726+6*, 726+7*, 726+8, 727+2~, 727+3*, 727+5*, 727+6 |
| EXTERNAL | 712+1~, 712+4*, 712+5, 712+6 |
| FILERR | EN+2~, EN+41, EN+50, FILE+1 |
| FILERR( | 701+1*, 702+1*, 703+1*, 704+1*, 705+3*, 706+5*, 707+1*, 708+6*, 709+6*, 710+6* , 711+1*, 712+7*, 713+1*, 714+1*, 715+1*, 716+1*, 717+1*, 718+3*, 719+2*, 723+3* , 724+3*, 725+9*, 726+8*, 727+6*, 728+1* |
| FILERR(720 | CD+4* |
| ITEM | 706+1~, 706+2*, 706+3*, 706+4, 708+1~, 708+2*, 708+3*, 708+4, 708+5, 709+2~ , 709+3*, 709+4*, 709+5, 710+2~, 710+3*, 710+4*, 710+5, 718+1~, 718+2*, 718+3 , 725+4~, 725+5*, 725+6*, 725+7, 725+8, 726+3~, 726+4*, 726+5*, 726+6, 726+7 , 727+2~, 727+3*, 727+4*, 727+5 |
| OK | 712+1~, 712+2*, 712+3*, 712+5*, 712+6*, 712+7 |
| PASS | EN+2~, EN+34* |
| RESULT | 705+1~, 705+2, 705+3, 712+1~, 712+6, 723+1~, 723+2, 723+3, 724+1~, 724+2 , 724+3 |
| RULE | EN+2~, EN+47*, EN+48, EN+49, 701+1, 702+1, 703+1, 704+1, 705+3, 706+5 , 707+1, 708+6, 709+6, 710+6, 711+1, 712+7, 713+1, 714+1, 715+1, 716+1 , 717+1, 718+3, 719+2, 723+3, 724+3, 725+9, 726+8, 727+6, 728+1 |
| VCD | CD~, CD+3 |
| Y | EN+2~, EN+48*, EN+49 |