ABMCPTCK ; IHS/SD/SDR - Claim Summary-CPT check ;
;;2.6;IHS 3P BILLING SYSTEM;;NOV 12, 2009
;
; IHS/SD/SDR - v2.5 p9 - task 2
; Created routine to check for existance of CPT codes
; in V files. Visit DFN (ABMVDFN) and list of CPTs (ABMLIST) must be passed
; IHS/SD/SDR - v2.5 p10 - IM20329
; Added Published Entry Point to return list of CPTs on visit
;
; IHS/SD/SDR - v2.6 CSV
;
CPTCHK(ABMVDFN,ABMLIST) ;PEP-Check if CPT codes exist on visit
Q:$G(ABMVDFN)=""
S ABMCFLG=0
D VISIT Q:ABMCFLG=1 ABMCFLG
D PROC Q:ABMCFLG=1 ABMCFLG
D PATED Q:ABMCFLG=1 ABMCFLG
D CPT Q:ABMCFLG=1 ABMCFLG
D TRANS Q:ABMCFLG=1 ABMCFLG
D LINEITEM Q:ABMCFLG=1 ABMCFLG
Q ABMCFLG
CPTLIST(ABMPCDFN) ;PEP-create list of CPTs on visit
S ABMCPTS=1
K ABMLIST
S ABMVDFN=0
F S ABMVDFN=$O(^ABMDCLM(DUZ(2),ABMPCDFN,11,ABMVDFN)) Q:+ABMVDFN=0 D
.D VISIT
.D PROC
.D PATED
.D CPT
.D TRANS
.D LINEITEM
Q ABMCPTS
VISIT ; note: must be in range 99201-99499 (E&M codes)
S ABMCFLG=0
Q:$P($G(^AUPNVSIT(ABMVDFN,0)),U,17)=""
S ABMICPT=$P($G(^AUPNVSIT(ABMVDFN,0)),U,17)
I $D(ABMLIST($P($$CPT^ABMCVAPI(ABMICPT,ABMP("VDT")),U,2))) S ABMCFLG=1 ;CSV-c
I $G(ABMCPTS)=1 S ABMCPTS($P($$CPT^ABMCVAPI(ABMICPT,ABMP("VDT")),U,2))="" ;CSV-c
Q
PROC ;
S ABMCFLG=0
S ABMIEN=0
F S ABMIEN=$O(^AUPNVPRC("AD",ABMVDFN,ABMIEN)) Q:+ABMIEN=0 D Q:ABMCFLG=1
.Q:$P($G(^AUPNVPRC(ABMIEN,0)),U,16)=""
.S ABMICPT=$P($G(^AUPNVPRC(ABMIEN,0)),U,16)
.I $D(ABMLIST($P($$CPT^ABMCVAPI(ABMICPT,ABMP("VDT")),U,2))) S ABMCFLG=1 ;CSV-c
.I $G(ABMCPTS)=1 S ABMCPTS($P($$CPT^ABMCVAPI(ABMICPT,ABMP("VDT")),U,2))="" ;CSV-c
Q
PATED ;
S ABMCFLG=0
S ABMIEN=0
F S ABMIEN=$O(^AUPNVPED("AD",ABMVDFN,ABMIEN)) Q:+ABMIEN=0 D Q:ABMCFLG=1
.Q:$P($G(^AUPNVPED(ABMIEN,0)),U,9)=""
.S ABMICPT=$P($G(^AUPNVPED(ABMIEN,0)),U,9)
.I $D(ABMLIST($P($$CPT^ABMCVAPI(ABMICPT,ABMP("VDT")),U,2))) S ABMCFLG=1 ;CSV-c
.I $G(ABMCPTS)=1 S ABMCPTS($P($$CPT^ABMCVAPI(ABMICPT,ABMP("VDT")),U,2))="" ;CSV-c
Q
CPT ;
S ABMCFLG=0
S ABMIEN=0
F S ABMIEN=$O(^AUPNVCPT("AD",ABMVDFN,ABMIEN)) Q:+ABMIEN=0 D Q:ABMCFLG=1
.Q:$P($G(^AUPNVCPT(ABMIEN,0)),U)=""
.S ABMICPT=$P($G(^AUPNVCPT(ABMIEN,0)),U)
.I $D(ABMLIST($P($$CPT^ABMCVAPI(ABMICPT,ABMP("VDT")),U,2))) S ABMCFLG=1 ;CSV-c
.I $G(ABMCPTS)=1 S ABMCPTS($P($$CPT^ABMCVAPI(ABMICPT,ABMP("VDT")),U,2))="" ;CSV-c
Q
TRANS ;
S ABMCFLG=0
S ABMIEN=0
F S ABMIEN=$O(^AUPNVTC("AD",ABMVDFN,ABMIEN)) Q:+ABMIEN=0 D Q:ABMCFLG=1
.Q:$P($G(^AUPNVTC(ABMIEN,0)),U,7)=""
.S ABMICPT=$P($G(^AUPNVTC(ABMIEN,0)),U,7)
.I $D(ABMLIST($P($$CPT^ABMCVAPI(ABMICPT,ABMP("VDT")),U,2))) S ABMCFLG=1 ;CSV-c
.I $G(ABMCPTS)=1 S ABMCPTS($P($$CPT^ABMCVAPI(ABMICPT,ABMP("VDT")),U,2))="" ;CSV-c
Q
LINEITEM ;
S ABMCFLG=0
S ABMIEN=0
F S ABMIEN=$O(^AUPNVLI("AD",ABMVDFN,ABMIEN)) Q:+ABMIEN=0 D Q:ABMCFLG=1
.Q:$P($G(^AUPNVLI(ABMIEN,0)),U,15)=""
.S ABMICPT=$P($G(^AUPNVLI(ABMIEN,0)),U,15)
.I $D(ABMLIST($P($$CPT^ABMCVAPI(ABMICPT,ABMP("VDT")),U,2))) S ABMCFLG=1 ;CSV-c
.I $G(ABMCPTS)=1 S ABMCPTS($P($$CPT^ABMCVAPI(ABMICPT,ABMP("VDT")),U,2))="" ;CSV-c
Q
ABMCPTCK ; IHS/SD/SDR - Claim Summary-CPT check ;
+1 ;;2.6;IHS 3P BILLING SYSTEM;;NOV 12, 2009
+2 ;
+3 ; IHS/SD/SDR - v2.5 p9 - task 2
+4 ; Created routine to check for existance of CPT codes
+5 ; in V files. Visit DFN (ABMVDFN) and list of CPTs (ABMLIST) must be passed
+6 ; IHS/SD/SDR - v2.5 p10 - IM20329
+7 ; Added Published Entry Point to return list of CPTs on visit
+8 ;
+9 ; IHS/SD/SDR - v2.6 CSV
+10 ;
CPTCHK(ABMVDFN,ABMLIST) ;PEP-Check if CPT codes exist on visit
+1 IF $GET(ABMVDFN)=""
QUIT
+2 SET ABMCFLG=0
+3 DO VISIT
IF ABMCFLG=1
QUIT ABMCFLG
+4 DO PROC
IF ABMCFLG=1
QUIT ABMCFLG
+5 DO PATED
IF ABMCFLG=1
QUIT ABMCFLG
+6 DO CPT
IF ABMCFLG=1
QUIT ABMCFLG
+7 DO TRANS
IF ABMCFLG=1
QUIT ABMCFLG
+8 DO LINEITEM
IF ABMCFLG=1
QUIT ABMCFLG
+9 QUIT ABMCFLG
CPTLIST(ABMPCDFN) ;PEP-create list of CPTs on visit
+1 SET ABMCPTS=1
+2 KILL ABMLIST
+3 SET ABMVDFN=0
+4 FOR
SET ABMVDFN=$ORDER(^ABMDCLM(DUZ(2),ABMPCDFN,11,ABMVDFN))
IF +ABMVDFN=0
QUIT
Begin DoDot:1
+5 DO VISIT
+6 DO PROC
+7 DO PATED
+8 DO CPT
+9 DO TRANS
+10 DO LINEITEM
End DoDot:1
+11 QUIT ABMCPTS
VISIT ; note: must be in range 99201-99499 (E&M codes)
+1 SET ABMCFLG=0
+2 IF $PIECE($GET(^AUPNVSIT(ABMVDFN,0)),U,17)=""
QUIT
+3 SET ABMICPT=$PIECE($GET(^AUPNVSIT(ABMVDFN,0)),U,17)
+4 ;CSV-c
IF $DATA(ABMLIST($PIECE($$CPT^ABMCVAPI(ABMICPT,ABMP("VDT")),U,2)))
SET ABMCFLG=1
+5 ;CSV-c
IF $GET(ABMCPTS)=1
SET ABMCPTS($PIECE($$CPT^ABMCVAPI(ABMICPT,ABMP("VDT")),U,2))=""
+6 QUIT
PROC ;
+1 SET ABMCFLG=0
+2 SET ABMIEN=0
+3 FOR
SET ABMIEN=$ORDER(^AUPNVPRC("AD",ABMVDFN,ABMIEN))
IF +ABMIEN=0
QUIT
Begin DoDot:1
+4 IF $PIECE($GET(^AUPNVPRC(ABMIEN,0)),U,16)=""
QUIT
+5 SET ABMICPT=$PIECE($GET(^AUPNVPRC(ABMIEN,0)),U,16)
+6 ;CSV-c
IF $DATA(ABMLIST($PIECE($$CPT^ABMCVAPI(ABMICPT,ABMP("VDT")),U,2)))
SET ABMCFLG=1
+7 ;CSV-c
IF $GET(ABMCPTS)=1
SET ABMCPTS($PIECE($$CPT^ABMCVAPI(ABMICPT,ABMP("VDT")),U,2))=""
End DoDot:1
IF ABMCFLG=1
QUIT
+8 QUIT
PATED ;
+1 SET ABMCFLG=0
+2 SET ABMIEN=0
+3 FOR
SET ABMIEN=$ORDER(^AUPNVPED("AD",ABMVDFN,ABMIEN))
IF +ABMIEN=0
QUIT
Begin DoDot:1
+4 IF $PIECE($GET(^AUPNVPED(ABMIEN,0)),U,9)=""
QUIT
+5 SET ABMICPT=$PIECE($GET(^AUPNVPED(ABMIEN,0)),U,9)
+6 ;CSV-c
IF $DATA(ABMLIST($PIECE($$CPT^ABMCVAPI(ABMICPT,ABMP("VDT")),U,2)))
SET ABMCFLG=1
+7 ;CSV-c
IF $GET(ABMCPTS)=1
SET ABMCPTS($PIECE($$CPT^ABMCVAPI(ABMICPT,ABMP("VDT")),U,2))=""
End DoDot:1
IF ABMCFLG=1
QUIT
+8 QUIT
CPT ;
+1 SET ABMCFLG=0
+2 SET ABMIEN=0
+3 FOR
SET ABMIEN=$ORDER(^AUPNVCPT("AD",ABMVDFN,ABMIEN))
IF +ABMIEN=0
QUIT
Begin DoDot:1
+4 IF $PIECE($GET(^AUPNVCPT(ABMIEN,0)),U)=""
QUIT
+5 SET ABMICPT=$PIECE($GET(^AUPNVCPT(ABMIEN,0)),U)
+6 ;CSV-c
IF $DATA(ABMLIST($PIECE($$CPT^ABMCVAPI(ABMICPT,ABMP("VDT")),U,2)))
SET ABMCFLG=1
+7 ;CSV-c
IF $GET(ABMCPTS)=1
SET ABMCPTS($PIECE($$CPT^ABMCVAPI(ABMICPT,ABMP("VDT")),U,2))=""
End DoDot:1
IF ABMCFLG=1
QUIT
+8 QUIT
TRANS ;
+1 SET ABMCFLG=0
+2 SET ABMIEN=0
+3 FOR
SET ABMIEN=$ORDER(^AUPNVTC("AD",ABMVDFN,ABMIEN))
IF +ABMIEN=0
QUIT
Begin DoDot:1
+4 IF $PIECE($GET(^AUPNVTC(ABMIEN,0)),U,7)=""
QUIT
+5 SET ABMICPT=$PIECE($GET(^AUPNVTC(ABMIEN,0)),U,7)
+6 ;CSV-c
IF $DATA(ABMLIST($PIECE($$CPT^ABMCVAPI(ABMICPT,ABMP("VDT")),U,2)))
SET ABMCFLG=1
+7 ;CSV-c
IF $GET(ABMCPTS)=1
SET ABMCPTS($PIECE($$CPT^ABMCVAPI(ABMICPT,ABMP("VDT")),U,2))=""
End DoDot:1
IF ABMCFLG=1
QUIT
+8 QUIT
LINEITEM ;
+1 SET ABMCFLG=0
+2 SET ABMIEN=0
+3 FOR
SET ABMIEN=$ORDER(^AUPNVLI("AD",ABMVDFN,ABMIEN))
IF +ABMIEN=0
QUIT
Begin DoDot:1
+4 IF $PIECE($GET(^AUPNVLI(ABMIEN,0)),U,15)=""
QUIT
+5 SET ABMICPT=$PIECE($GET(^AUPNVLI(ABMIEN,0)),U,15)
+6 ;CSV-c
IF $DATA(ABMLIST($PIECE($$CPT^ABMCVAPI(ABMICPT,ABMP("VDT")),U,2)))
SET ABMCFLG=1
+7 ;CSV-c
IF $GET(ABMCPTS)=1
SET ABMCPTS($PIECE($$CPT^ABMCVAPI(ABMICPT,ABMP("VDT")),U,2))=""
End DoDot:1
IF ABMCFLG=1
QUIT
+8 QUIT