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
|
---|