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

AMHRC3.m

Go to the documentation of this file.
  1. AMHRC3 ; IHS/CMI/LAB - TIME IN GRP REPORT ;
  1. ;;4.0;IHS BEHAVIORAL HEALTH;;MAY 14, 2010
  1. ;
  1. START ;
  1. I '$D(IOF) D HOME^%ZIS
  1. W @(IOF),!!
  1. W "********** LISTING OF PATIENTS WHO HAVE SPENT TIME IN GROUP **********",!!
  1. W "This report will produce a list of patients who have spent time in a group.",!,"It will list the patient, the primary provider, diagnoses and time",!,"spent in the group for a date range you enter.",!!
  1. D DBHUSR^AMHUTIL
  1. GETDATES ;
  1. BD ;get beginning date
  1. W !,"Please enter the date range during which the patient should be seen",!,"in a group.",!
  1. W ! S DIR(0)="D^:DT:EP",DIR("A")="Enter beginning Date" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. I $D(DIRUT) G XIT
  1. S AMHBD=Y
  1. ED ;get ending date
  1. W ! S DIR(0)="D^"_AMHBD_":DT:EP",DIR("A")="Enter ending Date" S Y=AMHBD D DD^%DT D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. I $D(DIRUT) G BD
  1. S AMHED=Y
  1. S X1=AMHBD,X2=-1 D C^%DTC S AMHSD=X S Y=AMHBD D DD^%DT S AMHBDD=Y S Y=AMHED D DD^%DT S AMHEDD=Y
  1. ;
  1. DEMO ;
  1. D DEMOCHK^AMHUTIL1(.AMHDEMO)
  1. I AMHDEMO=-1 G BD
  1. ZIS ;
  1. S DIR(0)="S^P:PRINT Output;B:BROWSE Output on Screen",DIR("A")="Do you wish to ",DIR("B")="P" K DA D ^DIR K DIR
  1. I $D(DIRUT) G XIT
  1. I $G(Y)="B" D BROWSE,XIT Q
  1. S XBRC="PROC^AMHRC3",XBRP="PRINT^AMHRC3",XBNS="AMH",XBRX="XIT^AMHRC3"
  1. D ^XBDBQUE
  1. XIT K ZTSK,Y,AMHBD,AMHED,IO("Q"),AMH80D,AMHBTH,AMHHRCN,AMHJOB,AMHLENG,AMHPCNT,AMHPG,AMHNUM,AMHX,DFN,DIC,DIR,DIRUT,DTOUT,DUOUT,XBNS,XBRC,XBRP,XBTX,D,AMHFOUN,AMHPOV,AMHRA,AMHRX,AMHRY
  1. K AMHPRNM,AMHPRNT,AMHPROB,AMHPRV,AMHR,AMHRCNT,AMHRLOC,AMHSD,AMHTOT,AMHBDD,AMHBT,AMHEDD,AMHEDO,AMHBDO,AMHBT,AMHFOUND,AMHHIT,AMHID,AMHLINE,AMHP
  1. Q
  1. BROWSE ;
  1. S XBRP="VIEWR^XBLM(""PRINT^AMHRC3"")"
  1. S XBNS="AMH",XBRC="PROC^AMHRC3",XBRX="XIT^AMHRC3",XBIOP=0 D ^XBDBQUE
  1. Q
  1. ;
  1. PROC ;EP - entry point for processing
  1. S AMHJOB=$J,AMHBTH=$H,AMHTOT=0,DFN=0,AMHBT=$H
  1. D XTMP^AMHUTIL("AMHRC3","BH - PTS WITH GROUP VISITS")
  1. S AMHSD=AMHSD_".9999"
  1. F S AMHSD=$O(^AMHREC("B",AMHSD)) Q:AMHSD'=+AMHSD!($P(AMHSD,".")>AMHED) D PROC1
  1. S AMHET=$H
  1. K DFN
  1. Q
  1. PROC1 ;
  1. S AMHR=0 F S AMHR=$O(^AMHREC("B",AMHSD,AMHR)) Q:AMHR'=+AMHR D
  1. .Q:'$$ALLOWVI^AMHUTIL(DUZ,AMHR)
  1. .Q:$P($G(^AMHREC(AMHR,11)),U,4)=""
  1. .Q:$P(^AMHREC(AMHR,0),U,8)=""
  1. .S DFN=$P(^AMHREC(AMHR,0),U,8)
  1. .Q:'$$ALLOWP^AMHUTIL(DUZ,DFN)
  1. .Q:$$DEMO^AMHUTIL1(DFN,$G(AMHDEMO))
  1. .S AMHPROV=$$PPINT^AMHUTIL(AMHR) I AMHPROV="" S AMHPROV="Not Recorded"
  1. .S AMHDX=$O(^AMHRPRO("AD",AMHR,0)) Q:AMHDX=""
  1. .S AMHDX=$P(^AMHRPRO(AMHDX,0),U)
  1. .S AMHTSG=$P($G(^AMHREC(AMHR,11)),U,4)
  1. .S ^XTMP("AMHRC3",AMHJOB,AMHBTH,"INDS",$P(^DPT(DFN,0),U),DFN,$P(AMHSD,"."),AMHR,AMHPROV,AMHDX)=AMHTSG
  1. .S ^XTMP("AMHRC3",AMHJOB,AMHBTH,"PROV",DFN,AMHPROV)=$G(^XTMP("AMHRC3",AMHJOB,AMHBTH,"PROV",DFN,AMHPROV))+AMHTSG
  1. .S ^XTMP("AMHRC3",AMHJOB,AMHBTH,"TOTAL",DFN)=$G(^XTMP("AMHRC3",AMHJOB,AMHBTH,"TOTAL",DFN))+AMHTSG
  1. Q
  1. ;
  1. PRINT ;
  1. S AMH80D="-------------------------------------------------------------------------------"
  1. S Y=AMHBD D DD^%DT S AMHBDD=Y S Y=AMHED D DD^%DT S AMHEDD=Y
  1. S AMHPG=0 D HEAD
  1. I '$D(^XTMP("AMHRC3",AMHJOB,AMHBTH)) W !!,"NO PATIENTS TO REPORT" G DONE
  1. S DFN="" K AMHQ
  1. S AMHNAME="" F S AMHNAME=$O(^XTMP("AMHRC3",AMHJOB,AMHBTH,"INDS",AMHNAME)) Q:AMHNAME=""!($D(AMHQ)) D
  1. .S DFN=0 F S DFN=$O(^XTMP("AMHRC3",AMHJOB,AMHBTH,"INDS",AMHNAME,DFN)) Q:DFN=""!($D(AMHQ)) D DFN
  1. G:$D(AMHQ) DONE
  1. DONE D DONE^AMHLEIN,^AMHEKL
  1. K ^XTMP("AMHRC3",AMHJOB,AMHBTH),AMHJOB,AMHBTH
  1. Q
  1. DFN ;
  1. I $Y>(IOSL-4) D HEAD Q:$D(AMHQ)
  1. S AMHHRCN=$S($D(^AUPNPAT(DFN,41,DUZ(2),0)):$P(^(0),U,2),1:"<none>")
  1. W !!,$E($P(^DPT(DFN,0),U),1,15),?18,AMHHRCN
  1. W ?26,$P(^DPT(DFN,0),U,2) S Y=$P(^DPT(DFN,0),U,3) W ?30,$E(Y,4,5),"/",$E(Y,6,7),"/",$E(Y,2,3)
  1. VSTS ; process visits
  1. S AMHDATE=0,AMHRC=0 F S AMHDATE=$O(^XTMP("AMHRC3",AMHJOB,AMHBTH,"INDS",AMHNAME,DFN,AMHDATE)) Q:AMHDATE'=+AMHDATE!($D(AMHQ)) D
  1. .S AMHRC=AMHRC+1
  1. .I AMHRC>1 W !
  1. .W ?40,$E(AMHDATE,4,5),"/",$E(AMHDATE,6,7),"/",$E(AMHDATE,2,3)
  1. .S AMHC=0,AMHR=0 F S AMHR=$O(^XTMP("AMHRC3",AMHJOB,AMHBTH,"INDS",AMHNAME,DFN,AMHDATE,AMHR)) Q:AMHR'=+AMHR!($D(AMHQ)) D
  1. ..S AMHC=AMHC+1
  1. ..I AMHC>1 W !
  1. ..S AMHPROV=$O(^XTMP("AMHRC3",AMHJOB,AMHBTH,"INDS",AMHNAME,DFN,AMHDATE,AMHR,0))
  1. ..I AMHPROV W ?49,$E($P(^VA(200,AMHPROV,0),U),1,15)
  1. ..I 'AMHPROV W ?49,AMHPROV
  1. ..S AMHDX=$O(^XTMP("AMHRC3",AMHJOB,AMHBTH,"INDS",AMHNAME,DFN,AMHDATE,AMHR,AMHPROV,0))
  1. ..W ?65,$P(^AMHPROB(AMHDX,0),U,1)
  1. ..W ?74,^XTMP("AMHRC3",AMHJOB,AMHBTH,"INDS",AMHNAME,DFN,AMHDATE,AMHR,AMHPROV,AMHDX)
  1. Q:$D(AMHQ)
  1. S AMHPROV=0 F S AMHPROV=$O(^XTMP("AMHRC3",AMHJOB,AMHBTH,"PROV",DFN,AMHPROV)) Q:AMHPROV'=+AMHPROV!($D(AMHQ)) D
  1. .W !?10,"Total with provider ",$S(AMHPROV:$E($P(^VA(200,AMHPROV,0),U),1,20),1:AMHPROV),?50,^XTMP("AMHRC3",AMHJOB,AMHBTH,"PROV",DFN,AMHPROV)
  1. Q:$D(AMHQ)
  1. W !?10,"Total for patient ",$E($P(^DPT(DFN,0),U,1),1,20),?50,^XTMP("AMHRC3",AMHJOB,AMHBTH,"TOTAL",DFN)
  1. Q
  1. I $E(IOST)="C",IO=IO(0) W ! S DIR(0)="EO" D ^DIR K DIR I Y=0!(Y="^")!($D(DTOUT)) S AMHQ="" Q
  1. HEAD1 ;
  1. W:$D(IOF) @IOF S AMHPG=AMHPG+1
  1. W !?13,"********** CONFIDENTIAL PATIENT INFORMATION **********"
  1. W !,$P(^VA(200,DUZ,0),U,2),?72,"Page ",AMHPG,!
  1. W ?(80-$L($P(^DIC(4,DUZ(2),0),U))/2),$P(^DIC(4,DUZ(2),0),U),!
  1. W ?22,"PATIENTS SEEN IN GROUPS WITH TIME SPENT IN GROUP",!
  1. W ?20,"DATES: ",AMHBDD," TO ",AMHEDD,!
  1. PIH W !!,"PATIENT NAME",?18,"HRN",?25,"SEX",?30,"DOB",?40,"DATE",?49,"PROVIDER",?65,"PROBLEM",?74,"TIME",!,AMH80D
  1. Q