Home   Package List   Routine Alphabetical List   Global Alphabetical List   FileMan Files List   FileMan Sub-Files List   Package Component Lists   Package-Namespace Mapping  
Routine: IBDF18A2

IBDF18A2.m

Go to the documentation of this file.
  1. IBDF18A2 ;WISC/TN - ENCOUNTER FORM - utilities for PCE ;04/30/03
  1. ;;3.0;AUTOMATED INFO COLLECTION SYS;**51,55,63,66**;APR 30, 2003;Build 5
  1. ;
  1. ; Reference to $$STATCHK^ICDEX supported by ICR #5747
  1. ;
  1. QUIT ;Call at CHKLST
  1. ;
  1. CHKLST ;Create a new list to pass to calling packages.
  1. ;The new array will have CPT or ICD codes which
  1. ;are valid for the encounter date passed.
  1. ;
  1. ;CALLED BY: IBDF18A
  1. ;
  1. ;Quit if no date is passed.
  1. S ENCDATE=$G(ENCDATE) I ENCDATE="" Q
  1. ;
  1. NEW AA,CNT,CNT1,CNT2,MOD,TYPE,NODE,IBDCSYS,IBDIMPDA,IBDX
  1. K ^TMP("IBDCSV",$J) S U="^"
  1. ;
  1. S CNT=0,AA=0,TYPE="",NODE="MODIFIER"
  1. S:PACKAGE="DG SELECT CPT PROCEDURE CODES" TYPE="CPT"
  1. S:PACKAGE="DG SELECT ICD-9 DIAGNOSIS CODE" TYPE="ICD"
  1. S:PACKAGE="DG SELECT ICD DIAGNOSIS CODES" TYPE="ICD"
  1. S:PACKAGE="DG SELECT ICD-10 DIAGNOSIS COD" TYPE="ICD10"
  1. S:PACKAGE="DG SELECT VISIT TYPE CPT PROCE" TYPE="CPT"
  1. S:PACKAGE="GMP INPUT CLINIC COMMON PROBLE" TYPE="ICD"
  1. S:PACKAGE="GMP PATIENT ACTIVE PROBLEMS" TYPE="ICD"
  1. ;
  1. I TYPE="" D Q
  1. . K @ARY
  1. . S @ARY@(0)=1
  1. . S @ARY@(1)="^AICS ERROR - Missing code type for "_PACKAGE
  1. ;
  1. ;Make copy of array and kill the original
  1. M ^TMP("IBDCSV",$J)=@ARY KILL @ARY
  1. ;
  1. S CNT=0,AA=0
  1. F S AA=$O(^TMP("IBDCSV",$J,AA)) Q:'AA D
  1. . ;
  1. . I $E(^TMP("IBDCSV",$J,AA))="^" S CNT=CNT+1,@ARY@(CNT)=^TMP("IBDCSV",$J,AA) Q ;header
  1. . ;
  1. . S CODE=$P(^TMP("IBDCSV",$J,AA),U) I CODE="" Q
  1. . ;
  1. . ;Validate the CPT code for the date passed
  1. . I TYPE="CPT" D Q
  1. . . I $P($$CPT^ICPTCOD(CODE,ENCDATE),U,7)=1 D
  1. . . . S CNT=CNT+1,@ARY@(CNT)=^TMP("IBDCSV",$J,AA)
  1. . . . ;
  1. . . . ;Check for modifiers.
  1. . . . I '$G(^TMP("IBDCSV",$J,AA,NODE,0)) Q
  1. . . . ;
  1. . . . S CNT1=^TMP("IBDCSV",$J,AA,NODE,0)
  1. . . . F CNT2=1:1:CNT1 S MOD=^TMP("IBDCSV",$J,AA,NODE,CNT2) D
  1. . . . . ;
  1. . . . . ;If the status is 1 for the modifier
  1. . . . . I $P($$MOD^ICPTMOD(MOD,"E",ENCDATE),U,7)=1 D
  1. . . . . . S @ARY@(CNT,NODE,CNT2)=^TMP("IBDCSV",$J,AA,NODE,CNT2)
  1. . . . . . S @ARY@(CNT,NODE,0)=CNT2
  1. . . . . ;
  1. . ;Validate the ICD code for the date passed
  1. . S IBDIMPDA=$$IMPDATE^IBDUTICD("10D")
  1. . I TYPE="ICD10",ENCDATE'<IBDIMPDA D Q
  1. . . ; IBD*3*66 - Call $$STATCHK^ICDEX to speed up dx status retrieval
  1. . . S IBDX=$$STATCHK^ICDEX(CODE,ENCDATE,30) I +IBDX>0 D ;Active
  1. . . . S CNT=CNT+1,@ARY@(CNT)=^TMP("IBDCSV",$J,AA)
  1. . I TYPE="ICD" D ;This includes BOTH DG SELECT ICD-9 DIAGNOSIS CODES and DG SELECT ICD DIAGNOSIS CODES dependent upon ENCDATE
  1. . . S IBDCSYS=$S(ENCDATE<IBDIMPDA:1,1:30)
  1. . . ; IBD*3*66 - Call $$STATCHK^ICDEX to speed up dx status retrieval
  1. . . S IBDX=$$STATCHK^ICDEX(CODE,ENCDATE,IBDCSYS) I +IBDX>0 D ;Active
  1. . . . S CNT=CNT+1,@ARY@(CNT)=^TMP("IBDCSV",$J,AA)
  1. ;
  1. S @ARY@(0)=CNT
  1. K ^TMP("IBDCSV",$J)
  1. Q