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

AMHRPT.m

Go to the documentation of this file.
  1. AMHRPT ; IHS/CMI/LAB - APC visit counts by selected vars ;
  1. ;;4.0;IHS BEHAVIORAL HEALTH;;MAY 14, 2010
  1. ;
  1. START ;
  1. D HOME^%ZIS
  1. K AMHQUIT
  1. I '$G(DUZ(2)) W $C(7),$C(7),!!,"SITE NOT SET IN DUZ(2) - NOTIFY SITE MANAGER!!",!! Q
  1. I $D(AMHRPTC) D
  1. .S AMHRPTI=$P(^AMHRCNT(AMHRPTC,0),U,2),AMHRPTPA=$P(^(0),U,3),AMHRPTP=$P(^(0),U,4),AMHRPTST=$P(^AMHRCNT(AMHRPTC,0),U,7) S:AMHRPTST]"" AMHRPTST=$TR(AMHRPTST,"~","^")
  1. .S AMHRPRCR=$P(^AMHRCNT(AMHRPTC,0),U,5) S:AMHRPRCR]"" AMHRPRCR=$TR(AMHRPRCR,"~","^")
  1. I AMHRPTI]"" S AMHRPTI=$TR(AMHRPTI,"~","^") D @(AMHRPTI) ;inform user what report will do
  1. G:$D(AMHQUIT) XIT
  1. S AMHTCW=0,AMHPCNT=0
  1. S AMHPTVS="V",AMHXREF=$S(AMHPTVS="V":"C",1:"PO")
  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 XIT
  1. S AMHBD=Y
  1. ED ;get ending date
  1. W ! S DIR(0)="D^"_AMHBD_":DT:EP",DIR("A")="Enter ending Visit Date for Search" 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. D ADD ;add report to temporary fileman report file
  1. I $D(AMHQUIT) W !!,"Unable to create report temporary file entry!!," G XIT
  1. ;
  1. D SHOW
  1. SCREEN ;
  1. K ^AMHTRPT(AMHRPT,11) S AMHCNTL="S",AMHTYPE="D",AMHPTTX="Visit",AMHPTTS="Visits" D ^AMHRL4 K AMHCNTL I $D(AMHQUIT) D DEL^AMHRL G GETDATES
  1. PRINT ;print portion of report
  1. I $G(AMHRPTP)]"" S AMHRPTPA=$TR(AMHRPTPA,"~","^"),AMHRPTP=$TR(AMHRPTP,"~","^") D:$G(AMHRPTPA)]"" @(AMHRPTPA) G:$D(AMHQUIT) START G SORT
  1. D PMENU^AMHRPT0
  1. S DIR(0)="LO^1:"_AMHHIGH,DIR("A")="Select print item(s)" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. I Y="" G SORT
  1. I $D(DIRUT) D DEL G START
  1. W !!?15,"Total Report width (including column margins - 2 spaces): ",AMHTCW
  1. D PSELECT^AMHRPT1
  1. D SHOWP
  1. W !! S DIR(0)="Y",DIR("A")=" Would you like to select additional PRINT items",DIR("B")="NO" D ^DIR K DIR
  1. S:$D(DUOUT) DIRUT=1
  1. G:$D(DIRUT) START
  1. I Y=0 G SORT
  1. G PRINT
  1. SORT ;
  1. I '$D(^AMHTRPT(AMHRPT,12)),'$D(AMHRPTP) W !!,"NO PRINT FIELDS SELECTED!!",$C(7),$C(7) D DEL G START
  1. I '$P(^AMHRCNT(AMHRPTC,0),U,8) G DEMO
  1. S AMHSORT="",AMHCTYP="D"
  1. D SHOWR
  1. S AMHCNTL="R" D ^AMHRL4 K AMHCNTL
  1. PAGE ;
  1. Q:'$D(AMHSORV)
  1. K AMHSPAG
  1. S DIR(0)="Y",DIR("A")="Do you want a separate page for each "_AMHSORV,DIR("B")="N" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. I $D(DIRUT) G SORT
  1. S AMHSPAG=Y
  1. DEMO ;
  1. D DEMOCHK^AMHUTIL1(.AMHDEMO)
  1. I AMHDEMO=-1 G PAGE
  1. ZIS ;call to XBDBQUE
  1. D TERM^VALM0
  1. D KILLVARS
  1. I "36"[AMHRPTC,$D(^AMHBHUSR(DUZ)),$O(^AMHBHUSR(DUZ,11,0)) D
  1. .W !!,$G(IORVON),"Please note:",$G(IORVOFF)," Only visits to the following locations will"
  1. .W !?15,"be tallied in this report:"
  1. .S X=0 F S X=$O(^AMHBHUSR(DUZ,11,X)) Q:X'=+X W !?15,$P(^DIC(4,X,0),U)
  1. .W !!
  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 XBRP=$S($G(AMHRPTP)]"":AMHRPTP,1:"^AMHRPTP"),XBRC=$S($G(AMHRPRCR)]"":AMHRPRCR,1:"^AMHRPT4"),XBRX="XIT^AMHRPT",XBNS="AMH"
  1. D ^XBDBQUE
  1. D XIT
  1. Q
  1. BROWSE ;
  1. S P=$S($G(AMHRPTP)]"":AMHRPTP,1:"^AMHRPTP"),XBRP="VIEWR^XBLM("""_P_""")"
  1. S XBNS="AMH",XBRC=$S($G(AMHRPRCR)]"":AMHRPRCR,1:"^AMHRPT4"),XBRX="XIT^AMHRPT",XBIOP=0 D ^XBDBQUE
  1. Q
  1. SHOW ;
  1. W:$D(IOF) @IOF
  1. I $D(AMHDONE) S AMHLHDR="REPORT SUMMARY" W ?((80-$L(AMHLHDR))/2),AMHLHDR,!
  1. W !?6,"Record selection criteria:"
  1. W !,"Encounter Date range: ",AMHBDD," to ",AMHEDD,"."
  1. Q:'$D(^AMHTRPT(AMHRPT,11))
  1. S AMHI=0 F S AMHI=$O(^AMHTRPT(AMHRPT,11,AMHI)) Q:AMHI'=+AMHI D
  1. .I $Y>(IOSL-5) D PAUSE^AMHRPTU W @IOF
  1. .W !?12,$P(^AMHSORT(AMHI,0),U),": "
  1. .S Y=0,C=0 F S Y=$O(^AMHTRPT(AMHRPT,11,AMHI,11,"B",Y)) S C=C+1 W:C'=1&(Y'="") " ; " Q:Y="" S X=Y X:$D(^AMHSORT(AMHI,2)) ^(2) D
  1. ..W X
  1. K C
  1. Q
  1. SHOWP ;
  1. I '$D(AMHDONE) W:$D(IOF) @IOF
  1. W !!?6,"PRINT Field(s) Selected:"
  1. ;Q:'$D(^AMHTRPT(AMHRPT,12))
  1. S (AMHI,AMHTCW)=0 F S AMHI=$O(^AMHTRPT(AMHRPT,12,AMHI)) Q:AMHI'=+AMHI S AMHCRIT=$P(^AMHTRPT(AMHRPT,12,AMHI,0),U) D
  1. .W !?12,$P(^AMHSORT(AMHCRIT,0),U)," - column width ",$P(^AMHTRPT(AMHRPT,12,AMHI,0),U,2) S AMHTCW=AMHTCW+$P(^(0),U,2)+2
  1. .I $Y>(IOSL-5) D PAUSE^AMHRPTU W:$D(IOF) @IOF
  1. W !!?12,"Total Report width (including column margins - 2 spaces): ",AMHTCW
  1. Q
  1. SHOWR ;
  1. I '$D(AMHDONE) W:$D(IOF) @IOF
  1. W !!?6,"Record SORTING Criteria"
  1. Q:'$G(AMHTRPT)
  1. W !!?12,"Records will be sorted by: ",$P(^AMHSORT(AMHTRPT,0),U),!
  1. Q
  1. DEL ;EP - delete entry in temp file
  1. I $G(AMHRPT) S DIK="^AMHTRPT(",DA=AMHRPT D ^DIK K DIK,DA,DIC
  1. Q
  1. KILLVARS ;
  1. K AMHDISP,AMHSEL
  1. Q
  1. XIT ;
  1. D KILL^AMHRPTX
  1. Q
  1. ADD ;EP
  1. S %H=$H D YX^%DTC S X=$P(^VA(200,DUZ,0),U)_"-"_Y,DIC(0)="L",DIC="^AMHTRPT(",DLAYGO=9002013.8,DIADD=1 D ^DIC K DIC,DA,DR,DIADD,DLAYGO I Y=-1 W !!,"UNABLE TO CREATE REPORT FILE ENTRY - NOTIFY SITE MANAGER!" S AMHQUIT=1 Q
  1. S AMHRPT=+Y
  1. K DIC,DIADD,DLAYGO,DR,DA,DD,X,Y,DINUM
  1. ;DELETE ALL 11 MULTIPLE HERE
  1. K ^AMHTRPT(AMHRPT,11)
  1. Q