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

APCLBV1.m

Go to the documentation of this file.
  1. APCLBV1 ; IHS/CMI/LAB - PRNT BILL VSTS ;
  1. ;;2.0;IHS PCC SUITE;**11**;MAY 14, 2009;Build 58
  1. ;
  1. ;cmi/anch/maw 9/10/2007 code set versioning in WPOV
  1. ;
  1. START ;
  1. S APCL80E="==============================================================================="
  1. S APCL80D="-------------------------------------------------------------------------------"
  1. S (APCLPG,APCLPN)=0
  1. I '$D(^XTMP("APCLBV",APCLJOB,APCLBT)) D HEAD W !,"No visits to report",! G DONE
  1. G:$D(APCLPALL) ALL
  1. S APCLPN=0 K APCLQUIT
  1. D HEAD F S APCLPN=$O(^XTMP("APCLBV",APCLJOB,APCLBT,APCLRNUM,APCLPN)) Q:APCLPN=""!($D(APCLQUIT)) D DFN
  1. I $Y>(IOSL-4) D HEAD G:$D(APCLQUIT) DONE
  1. I APCLRNUM=1 W !!,"Total Number of Visits for ",APCLNAR(APCLRNUM),": ",APCLT1
  1. I APCLRNUM=2 W !!,"Total Number of Visits for ",APCLNAR(APCLRNUM),": ",APCLT2
  1. I APCLRNUM=3 W !!,"Total Number of Visits for ",APCLNAR(APCLRNUM),": ",APCLT3
  1. I APCLRNUM=4 W !!,"Total Number of Visits for ",APCLNAR(APCLRNUM),": ",APCLT4
  1. I APCLRNUM=5 W !!,"Total Number of Visits for ",APCLNAR(APCLRNUM),": ",APCLT5
  1. I APCLRNUM=6 W !!,"Total Number of Visits for ",APCLNAR(APCLRNUM),": ",APCLT6
  1. W !
  1. D DONE
  1. Q
  1. ;
  1. ALL ;print ALL coverage reports
  1. F APCLCNTR=1:1:6 Q:$D(APCLQUIT) S (APCLPROC,APCLRNUM)=APCLCNTR D ALL1 Q:$D(APCLQUIT) D PTN
  1. I $Y>(IOSL-4) D HEAD G:$D(APCLQUIT) DONE
  1. W !!,"Total Number of Visits: ",APCLTOTV
  1. D DONE
  1. Q
  1. ALL1 ;
  1. D HEAD Q:$D(APCLQUIT)
  1. I '$D(^XTMP("APCLBV",APCLJOB,APCLBT,APCLRNUM)) W !,"No visits to report",! S APCLPN=0 K APCLQUIT
  1. Q
  1. DONE ;
  1. D DONE^APCLOSUT
  1. K ^XTMP("APCLBV",APCLJOB,APCLBT)
  1. Q
  1. PTN ;process patient name level
  1. F S APCLPN=$O(^XTMP("APCLBV",APCLJOB,APCLBT,APCLRNUM,APCLPN)) Q:APCLPN=""!(APCLPROC'=APCLRNUM)!($D(APCLQUIT)) D DFN
  1. ;write totals
  1. I $Y>(IOSL-4) D HEAD Q:$D(APCLQUIT)
  1. I APCLRNUM=1 W !!,"Total Number of Visits for ",APCLNAR(APCLRNUM),": ",APCLT1
  1. I APCLRNUM=2 W !!,"Total Number of Visits for ",APCLNAR(APCLRNUM),": ",APCLT2
  1. I APCLRNUM=3 W !!,"Total Number of Visits for ",APCLNAR(APCLRNUM),": ",APCLT3
  1. I APCLRNUM=4 W !!,"Total Number of Visits for ",APCLNAR(APCLRNUM),": ",APCLT4
  1. I APCLRNUM=5 W !!,"Total Number of Visits for ",APCLNAR(APCLRNUM),": ",APCLT5
  1. I APCLRNUM=6 W !!,"Total Number of Visits for ",APCLNAR(APCLRNUM),": ",APCLT6
  1. W !
  1. Q
  1. DFN ;
  1. S DFN="" F S DFN=$O(^XTMP("APCLBV",APCLJOB,APCLBT,APCLRNUM,APCLPN,DFN)) Q:DFN=""!($D(APCLQUIT)) D @APCLPROC
  1. Q
  1. VISIT ;ENTRY POINT
  1. W !?8,"Visit Date",?21,"Category",?37,"PRV",?41,"ICD DX",?51,"PROVIDER NARRATIVE"
  1. W !?8 F I=1:1:71 W "-"
  1. S APCLVDFN=0 F S APCLVDFN=$O(^XTMP("APCLBV",APCLJOB,APCLBT,APCLRNUM,APCLPN,DFN,APCLVDFN)) Q:APCLVDFN'=+APCLVDFN!($D(APCLQUIT)) S APCLVREC=^AUPNVSIT(APCLVDFN,0) D VWRT
  1. Q
  1. VWRT ;
  1. I $Y>(IOSL-5) D HEAD Q:$D(APCLQUIT)
  1. S Y=$P(+APCLVREC,".") D DD^%DT S APCLDATE=Y
  1. K ^UTILITY("DIQ1",$J)
  1. K DIQ,DIC,DA,DR
  1. S DIC="^AUPNVSIT(",DR=".07",DA=APCLVDFN,DIQ(0)="E" D EN^DIQ1 K DIC,DA,DR,DIQ
  1. S APCLCAT=^UTILITY("DIQ1",$J,9000010,APCLVDFN,.07,"E")
  1. S (APCL1,APCL2)=0 F S APCL2=$O(^AUPNVPRV("AD",APCLVDFN,APCL2)) Q:APCL2="" I $P(^AUPNVPRV(APCL2,0),U,4)="P" S APCL1=APCL1+1,APCLAP=$P(^(0),U)
  1. I APCL1=0 Q
  1. S APCLDISC="" D CHKDISC
  1. W !?8,APCLDATE,?21,APCLCAT,?37,APCLDISC
  1. S (APCL1,APCL2)=0 F S APCL1=$O(^AUPNVPOV("AD",APCLVDFN,APCL1)) Q:APCL1'=+APCL1!($D(APCLQUIT)) S APCLX=^AUPNVPOV(APCL1,0),APCL2=APCL2+1 D WPOV
  1. I $D(^AUPNVINP("AD",APCLVDFN)) S Y=$O(^AUPNVINP("AD",APCLVDFN,"")),Y=$P(^AUPNVINP(Y,0),U) D DD^%DT W !?8,"DISCHARGE DATE: ",Y
  1. Q
  1. WPOV ;
  1. I $Y>(IOSL-6),APCL2>1 D HEAD Q:$D(APCLQUIT)
  1. Q:$P(APCLX,U)=""
  1. Q:$P(APCLX,U,4)=""
  1. ;W:APCL2>1 ! W ?41,$P(^ICD9($P(APCLX,U),0),U),?49,$E($P(^AUTNPOV($P(APCLX,U,4),0),U),1,20) ;cmi/anch/maw 9/10/2007 orig line
  1. W:APCL2>1 ! W ?41,$P($$ICDDX^ICDEX($P(APCLX,U)),U,2),?51,$E($$VAL^XBDIQ1(9000010.07,APCL1,.04),1,20) ;cmi/anch/maw 9/10/2007 code set versioning
  1. Q
  1. CHKDISC ;
  1. I $P(^DD(9000010.06,.01,0),U,2)[6 G CHKDISC6
  1. S APCLDISC=$$PROVCLSC^XBFUNC1(APCLAP)
  1. Q
  1. CHKDISC6 ;
  1. Q:'$D(^DIC(6,APCLAP))
  1. S APCLY=$P(^DIC(6,APCLAP,0),U,4)
  1. Q:APCLY=""
  1. Q:'$D(^DIC(7,APCLY,9999999))
  1. S APCLDISC=$P(^DIC(7,APCLY,9999999),U)
  1. Q
  1. HD ;ENTRY POINT
  1. S (DOB,Y)=$P(^DPT(DFN,0),U,3) I DOB]"" D DD^%DT S DOB=Y
  1. S APCLHRN=$P(^AUPNPAT(DFN,41,APCLSU,0),U,2)
  1. S SSN=$P(^DPT(DFN,0),U,9)
  1. W !!,APCLHRN,?8,APCLPN,?40,DOB,?60,SSN
  1. Q
  1. 1 ;Commissioned Officers/Dependents
  1. D 1^APCLBV11
  1. Q
  1. 2 ;Medicare Part A
  1. D 2^APCLBV11
  1. Q
  1. 3 ;Medicare Part B
  1. D 2^APCLBV11
  1. Q
  1. 5 ;Medicaid
  1. D 5^APCLBV11
  1. Q
  1. 4 ;Private Insurance
  1. D 4^APCLBV11
  1. Q
  1. 6 ;Non-Indians
  1. D 6^APCLBV11
  1. Q
  1. I 'APCLPG G HEAD1
  1. I $E(IOST)="C",IO=IO(0) W ! S DIR(0)="EO" D ^DIR K DIR I Y=0!(Y="^")!($D(DTOUT)) S APCLQUIT="" Q
  1. HEAD1 ;
  1. W:$D(IOF) @IOF S APCLPG=APCLPG+1
  1. W ?(80-$L($P(^DIC(4,APCLSU,0),U))/2),$P(^DIC(4,APCLSU,0),U),?72,"Page ",APCLPG,!
  1. S APCLLENG=32+$L(APCLNAR(APCLRNUM))
  1. W ?((80-APCLLENG)/2),"POTENTIALLY BILLABLE VISITS FOR: ",APCLNAR(APCLRNUM),!
  1. W ?19,"Visit Dates: ",APCLSDY," and ",APCLEDY,!
  1. S APCLLENG=$L(APCLSCP)+28 W ?((80-APCLLENG)/2),"SERVICE CATEGORY OF VISIT: ",APCLSCP
  1. ;
  1. I APCLCLN W ! S APCLLENG=$L($P(^DIC(40.7,APCLCLN,0),U))+0 W ?((80-APCLLENG)/2),"CLINIC: ",$P(^DIC(40.7,APCLCLN,0),U)
  1. W !!?2,"HRCN",?8,"Patient Name",?40,"Date of Birth",?60," SSN"
  1. W !,APCL80D
  1. Q