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

APCLCP5.m

Go to the documentation of this file.
  1. APCLCP5 ; IHS/CMI/LAB - DISC tally activity time ;
  1. ;;2.0;IHS PCC SUITE;;MAY 14, 2009
  1. ;
  1. START ;
  1. I '$G(DUZ(2)) W $C(7),$C(7),!!,"SITE NOT SET IN DUZ(2) - NOTIFY SITE MANAGER!!",!! Q
  1. S APCLSITE=DUZ(2)
  1. I APCLSORV="APCLVLOC" S APCLNSP="APCLCP5",APCLSORT="LOCATION OF ENCOUNTER"
  1. I APCLSORV="APCLCODE" S APCLNSP="APCLCP5",APCLSORT="PRIMARY DX"
  1. D INFORM
  1. ;
  1. GETGROUP ;
  1. W ! S DIC="^APCLACTG(",DIC("A")="Enter the Provider Discipline Group you wish to report on: ",DIC(0)="AEMQ" D ^DIC
  1. I Y=-1 W !,"Bye ... " G XIT
  1. S APCLACTG=+Y
  1. W !!,"You have selected the ",$P(Y,U,2)," discipline group.",!
  1. S DIC="^APCLACTG(",DA=+Y D EN^DIQ K DIC,DA
  1. GETDATES ;
  1. BD ;get beginning date
  1. W ! S DIR(0)="D^:DT:EP",DIR("A")="Enter beginning Visit Date for Search" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. I $D(DIRUT) G GETGROUP
  1. S APCLBD=Y
  1. ED ;get ending date
  1. W ! S DIR(0)="DA^"_APCLBD_":DT:EP",DIR("A")="Enter ending Visit Date for Search: " S Y=APCLBD D DD^%DT S Y="" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. I $D(DIRUT) G BD
  1. S APCLED=Y
  1. S X1=APCLBD,X2=-1 D C^%DTC S APCLSD=X
  1. ;
  1. LOC ;get location
  1. K APCLLOC
  1. S DIR(0)="S^O:One Location;T:Taxonomy of or Selected Set of Locations;A:All Locations"
  1. S DIR("A")="Include visits from which set of locations",DIR("B")="A" KILL DA D ^DIR KILL DIR
  1. G:$D(DIRUT) BD
  1. I Y="A" K APCLLOC G CLINIC
  1. I Y="O" D O^APCLCP1 G:$D(APCLQ) LOC
  1. I Y="T" D T^APCLCP1 G:$D(APCLQ) LOC
  1. CLINIC ;
  1. K APCLCLN
  1. S DIR(0)="S^O:One Clinic;T:Taxonomy of or Selected Set of Clinics;A:All Clinics"
  1. S DIR("A")="Include visits from which set of clinics",DIR("B")="A" KILL DA D ^DIR KILL DIR
  1. G:$D(DIRUT) LOC
  1. I Y="A" K APCLCLN G ZIS
  1. I Y="O" D OC^APCLCP1 G:$D(APCLQ) CLINIC
  1. I Y="T" D TC^APCLCP1 G:$D(APCLQ) CLINIC
  1. ;
  1. ZIS ;
  1. DEMO ;
  1. D DEMOCHK^APCLUTL(.APCLDEMO)
  1. I APCLDEMO=-1 G CLINIC
  1. S XBRP="^APCLCP5P",XBRC="PROCESS^APCLCP5",XBRX="XIT^APCLCP5",XBNS="APCL"
  1. D ^XBDBQUE
  1. D XIT
  1. Q
  1. ;
  1. ERR W $C(7),$C(7),!,"Must be a valid date and be Today or earlier. Time not allowed!" Q
  1. XIT ;
  1. K APCL80S,APCLBDD,APCLBT,APCLDT,APCLED,APCLEDD,APCLLENG,APCLLOC,APCLPG,APCLQUIT,APCL1,APCL2,APCLAP,APCLDISC,APCLODAT,APCLSD,APCLSKIP,APCLVACT,APCLVDFN,APCLVLOC,APCLVREC,APCLVTM,APCLVTT,APCLX,APCLY,APCLPRIM,APCLSITE,APCLBD
  1. K APCLACTG,APCLPIEC,APCLGLOB,APCLRRTN,APCLJOB
  1. K X,Z,X1,X2,%,Y,DIRUT,POP,ZTSK,T,S,M,TS,H,DIR,DUOUT,DTOUT,DUOUT,DLOUT,APCLNSP,APCLSORT,APCLZ,APCLSORV,APCLVAL,APCLSUB
  1. Q
  1. ;
  1. INFORM ;
  1. W:$D(IOF) @IOF
  1. W !,"Time and Services Report by Provider a Group of Provider Disciplines",!,"that you select.",!
  1. W !,"This report displays by ",APCLSORT,", the number of patient",!,"CHART REVIEWS and the total activity and travel time for each provider",!,"with a discipline in the provider discipline group that you select."
  1. W !
  1. Q
  1. ;
  1. PROCESS ;EP - called from xbdbque
  1. S APCLJOB=$J,APCLBT=$H
  1. I $P(^APCLACTG(APCLACTG,0),U,2)]"",$P(^(0),U,3)]"",$P(^(0),U,4)]"" D I 1
  1. .S APCLRRTN=$S($P($P(^APCLACTG(APCLACTG,0),U,2),"~",2)]"":$P($P(^APCLACTG(APCLACTG,0),U,2),"~")_"^"_$P($P(^APCLACTG(APCLACTG,0),U,2),"~",2),1:$P(^APCLACTG(APCLACTG,0),U,2)),APCLPIEC=$P(^(0),U,4),APCLGLOB="^"_$P(^(0),U,3)_"("
  1. .S X=APCLRRTN X ^%ZOSF("TEST") I '$T S APCLRRTN="",APCLGLOB="^ICD9(",APCLPIEC=3 Q
  1. E S APCLGLOB="^ICD9(",APCLRRTN="",APCLPIEC=3
  1. I APCLRRTN]"" S APCLRRTN="^"_APCLRRTN
  1. V ; Run by visit date
  1. K ^XTMP(APCLNSP,APCLJOB,APCLBT)
  1. D XTMP^APCLOSUT(APCLNSP,"PCC ACTIVITY REPORT")
  1. S APCLODAT=$O(^AUPNVSIT("B",APCLSD)) G:APCLODAT="" END
  1. S APCLODAT=APCLSD_".9999" F S APCLODAT=$O(^AUPNVSIT("B",APCLODAT)) Q:APCLODAT=""!((APCLODAT\1)>APCLED) D V1
  1. END ;
  1. D EOJ
  1. S APCLET=$H
  1. Q
  1. V1 ;
  1. S APCLVDFN=0 F S APCLVDFN=$O(^AUPNVSIT("B",APCLODAT,APCLVDFN)) Q:APCLVDFN'=+APCLVDFN I $D(^AUPNVSIT(APCLVDFN,0)) S APCLVREC=^(0) I $P(APCLVREC,U,9),'$P(APCLVREC,U,11),$D(^AUPNVPRV("AD",APCLVDFN)),$D(^AUPNVPOV("AD",APCLVDFN)) D PROC,EOJ
  1. Q
  1. PROC ;
  1. K APCLSKIP
  1. Q:$$DEMO^APCLUTL($P(APCLVREC,U,5),$G(APCLDEMO))
  1. Q:$P(APCLVREC,U,7)'="C"
  1. I $D(APCLLOC) Q:$P(APCLVREC,U,6)="" I '$D(APCLLOC($P(APCLVREC,U,6))) Q
  1. I $D(APCLCLN) Q:$P(APCLVREC,U,8)="" I '$D(APCLCLN($P(APCLVREC,U,8))) Q
  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. Q:APCL1=0
  1. Q:APCL1>1
  1. S APCLVLOC=$P(APCLVREC,U,6)
  1. D PROC2
  1. Q
  1. EOJ K APCLVLOC,APCLVREC,APCLSKIP,APCL1,APCL2,APCLX,APCLY,APCLPRIM,@APCLSORV,APCLDISC,APCLVLOC,APCLVTM,APCLVTT,APCLCODE,APCLIPTR
  1. Q
  1. ;
  1. ;
  1. PROC2 ;
  1. S APCLZ=0 F S APCLZ=$O(^AUPNVPRV("AD",APCLVDFN,APCLZ)) Q:APCLZ'=+APCLZ D
  1. . S APCLAP=$P(^AUPNVPRV(APCLZ,0),U)
  1. . I $P(^DD(9000010.06,.01,0),U,2)[200 S APCLDISC=$$PROVCLSC^XBFUNC1(APCLAP) G PROC21
  1. . S APCLY=$P(^VA(200,APCLAP,0),U,4)
  1. . Q:APCLY=""
  1. . Q:'$D(^DIC(7,APCLY,9999999))
  1. . S APCLDISC=$P(^DIC(7,APCLY,9999999),U)
  1. PROC21 . I '$D(^APCLACTG(APCLACTG,11,"AC",APCLDISC)) Q
  1. . I APCLSORV="APCLCODE" D GETCODE Q:'APCLCODE
  1. . S ^("TOTAL")=$S($D(^XTMP(APCLNSP,APCLJOB,APCLBT,APCLAP,@APCLSORV,"TOTAL")):^("TOTAL")+1,1:1)
  1. . I $P(^AUPNVPRV(APCLZ,0),U,4)="P" S ^("PRIM")=$S($D(^XTMP(APCLNSP,APCLJOB,APCLBT,APCLAP,@APCLSORV,"PRIM")):^("PRIM")+1,1:1)
  1. . I $P(^AUPNVPRV(APCLZ,0),U,4)'="P" S ^("SEC")=$S($D(^XTMP(APCLNSP,APCLJOB,APCLBT,APCLAP,@APCLSORV,"SEC")):^("SEC")+1,1:1)
  1. . I '$D(^AUPNVTM("AD",APCLVDFN)) S ^("NOACT")=$S($D(^XTMP(APCLNSP,APCLJOB,APCLBT,APCLAP,"NOACT")):^("NOACT")+1,1:1) Q
  1. . S APCLVTM=$O(^AUPNVTM("AD",APCLVDFN,"")),APCLVACT=$P(^AUPNVTM(APCLVTM,0),U),APCLVTT=$P(^AUPNVTM(APCLVTM,0),U,4)
  1. . S ^("ACT")=$S($D(^XTMP(APCLNSP,APCLJOB,APCLBT,APCLAP,@APCLSORV,"ACT")):^("ACT")+APCLVACT,1:APCLVACT)
  1. . I APCLVTT S ^("TT")=$S($D(^XTMP(APCLNSP,APCLJOB,APCLBT,APCLAP,@APCLSORV,"TT")):^("TT")+APCLVTT,1:APCLVTT)
  1. . Q
  1. Q
  1. GETCODE ;
  1. D GETPPOV
  1. S APCLIPTR=$P(^AUPNVPOV(APCL1,0),U)
  1. I $G(APCLRRTN)]"" D @APCLRRTN Q
  1. S APCLCODE=APCLIPTR
  1. Q
  1. GETPPOV ;
  1. I $P(APCLVREC,U,7)'="H" S APCL1=$O(^AUPNVPOV("AD",APCLVDFN,"")) Q
  1. S (APCL1,APCL2)=0 F S APCL2=$O(^AUPNVPOV("AD",APCLVDFN,APCL2)) Q:APCL2'=+APCL2!(APCL1) I $P(^AUPNVPOV(APCL2,0),U,12)="P" S APCL1=APCL2
  1. Q
  1. ;