| 1 | IBDF18A2 ;WISC/TN - ENCOUNTER FORM - utilities for PCE ;30-APR-03
 | 
|---|
| 2 |  ;;3.0;AUTOMATED INFO COLLECTION SYS;**51,55**;APR 30, 2003
 | 
|---|
| 3 |  ;
 | 
|---|
| 4 |  QUIT  ;CAll at CHKLST
 | 
|---|
| 5 |  ;
 | 
|---|
| 6 | CHKLST ;Create a new list to pass to calling packages.
 | 
|---|
| 7 |  ;The new array will have CPT or ICD codes which
 | 
|---|
| 8 |  ;are valid for the encounter date passed.
 | 
|---|
| 9 |  ;
 | 
|---|
| 10 |  ;CALLED BY: IBDF18A
 | 
|---|
| 11 |  ;
 | 
|---|
| 12 |  ;Quit if no date is passed.
 | 
|---|
| 13 |  S ENCDATE=$G(ENCDATE) I ENCDATE="" Q
 | 
|---|
| 14 |  ;
 | 
|---|
| 15 |  NEW AA,CNT,CNT1,CNT2,MOD,TYPE,NODE
 | 
|---|
| 16 |  K ^TMP("IBDCSV",$J)
 | 
|---|
| 17 |  ;
 | 
|---|
| 18 |  S CNT=0,AA=0,TYPE="",NODE="MODIFIER"
 | 
|---|
| 19 |  S:PACKAGE="DG SELECT CPT PROCEDURE CODES" TYPE="CPT"
 | 
|---|
| 20 |  S:PACKAGE="DG SELECT ICD-9 DIAGNOSIS CODE" TYPE="ICD"
 | 
|---|
| 21 |  S:PACKAGE="DG SELECT VISIT TYPE CPT PROCE" TYPE="CPT"
 | 
|---|
| 22 |  S:PACKAGE="GMP INPUT CLINIC COMMON PROBLE" TYPE="ICD"
 | 
|---|
| 23 |  S:PACKAGE="GMP PATIENT ACTIVE PROBLEMS" TYPE="ICD"
 | 
|---|
| 24 |  ;
 | 
|---|
| 25 |  I TYPE="" D  Q
 | 
|---|
| 26 |  . K @ARY
 | 
|---|
| 27 |  . S @ARY@(0)=1
 | 
|---|
| 28 |  . S @ARY@(1)="^AICS ERROR - Missing code type for "_PACKAGE
 | 
|---|
| 29 |  ;
 | 
|---|
| 30 |  ;Make copy of arry and kill the original
 | 
|---|
| 31 |  M ^TMP("IBDCSV",$J)=@ARY KILL @ARY
 | 
|---|
| 32 |  ;
 | 
|---|
| 33 |  S CNT=0,AA=0
 | 
|---|
| 34 |  F  S AA=$O(^TMP("IBDCSV",$J,AA)) Q:'AA  D
 | 
|---|
| 35 |  . ;
 | 
|---|
| 36 |  . I $E(^TMP("IBDCSV",$J,AA))="^" S CNT=CNT+1,@ARY@(CNT)=^TMP("IBDCSV",$J,AA) Q  ;header
 | 
|---|
| 37 |  . ;
 | 
|---|
| 38 |  . S CODE=$P(^TMP("IBDCSV",$J,AA),U) I CODE="" Q
 | 
|---|
| 39 |  . ;
 | 
|---|
| 40 |  . ;Validate the CPT code for the date passed
 | 
|---|
| 41 |  . I TYPE="CPT" D  Q
 | 
|---|
| 42 |  . . I $P($$CPT^ICPTCOD(CODE,ENCDATE),U,7)=1 D
 | 
|---|
| 43 |  . . . S CNT=CNT+1,@ARY@(CNT)=^TMP("IBDCSV",$J,AA)
 | 
|---|
| 44 |  . . . ;
 | 
|---|
| 45 |  . . . ;Check for modifiers.
 | 
|---|
| 46 |  . . . I '$G(^TMP("IBDCSV",$J,AA,NODE,0)) Q
 | 
|---|
| 47 |  . . . ;
 | 
|---|
| 48 |  . . . S CNT1=^TMP("IBDCSV",$J,AA,NODE,0)
 | 
|---|
| 49 |  . . . F CNT2=1:1:CNT1 S MOD=^TMP("IBDCSV",$J,AA,NODE,CNT2) D
 | 
|---|
| 50 |  . . . . ;
 | 
|---|
| 51 |  . . . . ;If the status is 1 for the modifier
 | 
|---|
| 52 |  . . . . I $P($$MOD^ICPTMOD(MOD,"E",ENCDATE),U,7)=1 D
 | 
|---|
| 53 |  . . . . . S @ARY@(CNT,NODE,CNT2)=^TMP("IBDCSV",$J,AA,NODE,CNT2)
 | 
|---|
| 54 |  . . . . . S @ARY@(CNT,NODE,0)=CNT2
 | 
|---|
| 55 |  . . . . ;
 | 
|---|
| 56 |  . ;Validate the ICD code for the date passed  
 | 
|---|
| 57 |  . I $P($$ICDDX^ICDCODE(CODE,ENCDATE),U,10)=1 D
 | 
|---|
| 58 |  . . S CNT=CNT+1,@ARY@(CNT)=^TMP("IBDCSV",$J,AA)
 | 
|---|
| 59 |  ;
 | 
|---|
| 60 |  S @ARY@(0)=CNT
 | 
|---|
| 61 |  K ^TMP("IBDCSV",$J)
 | 
|---|
| 62 |  Q
 | 
|---|