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

BCHRPT.m

Go to the documentation of this file.
  1. BCHRPT ; IHS/CMI/LAB - APC visit counts by selected vars ;
  1. ;;2.0;IHS RPMS CHR SYSTEM;;OCT 23, 2012;Build 27
  1. ;
  1. START ;
  1. D HOME^%ZIS
  1. K BCHQUIT
  1. I '$G(DUZ(2)) W $C(7),$C(7),!!,"SITE NOT SET IN DUZ(2) - NOTIFY SITE MANAGER!!",!! Q
  1. I $D(BCHRPTC) D
  1. .S BCHRPTI=$P(^BCHRCNT(BCHRPTC,0),U,2),BCHRPTPA=$P(^(0),U,3),BCHRPTP=$P(^(0),U,4),BCHRPTST=$P(^BCHRCNT(BCHRPTC,0),U,7) S:BCHRPTST]"" BCHRPTST=$TR(BCHRPTST,"~","^")
  1. .S BCHRPRCR=$P(^BCHRCNT(BCHRPTC,0),U,5) S:BCHRPRCR]"" BCHRPRCR=$TR(BCHRPRCR,"~","^")
  1. I BCHRPTI]"" S BCHRPTI=$TR(BCHRPTI,"~","^") D @(BCHRPTI) ;inform user what report will do
  1. G:$D(BCHQUIT) XIT
  1. S BCHTCW=0,BCHPCNT=0
  1. S BCHPTVS="V",BCHXREF=$S(BCHPTVS="V":"C",1:"PO")
  1. GETDATES ;
  1. BD ;get beginning date
  1. W ! S DIR(0)="D^:DT:EP",DIR("A")="Enter BEGINNING Date of Service for Report" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. I $D(DIRUT) G XIT
  1. S BCHBD=Y
  1. ED ;get ending date
  1. W ! S DIR(0)="D^"_BCHBD_":DT:EP",DIR("A")="Enter ENDING Date of Service for Report" S Y=BCHBD D DD^%DT S DIR("B")=Y,Y="" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. I $D(DIRUT) G BD
  1. S BCHED=Y
  1. S X1=BCHBD,X2=-1 D C^%DTC S BCHSD=X S Y=BCHBD D DD^%DT S BCHBDD=Y S Y=BCHED D DD^%DT S BCHEDD=Y
  1. D ADD ;add report to temporary fileman report file
  1. I $D(BCHQUIT) W !!,"Unable to create report temporary file entry!!," G XIT
  1. ;
  1. D SHOW
  1. SCREEN ;
  1. D SMENU^BCHRPT0
  1. S DIR(0)="LO^1:"_BCHHIGH,DIR("A")="Select records based on which of the above" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. I Y="" D SHOW G PRINT
  1. I $D(DIRUT) D DEL G START
  1. ;process all items in Y
  1. D SELECT^BCHRPT1
  1. D SHOW
  1. W !! S DIR(0)="Y",DIR("A")=" Would you like to select additional RECORD criteria",DIR("B")="NO" D ^DIR S:$D(DUOUT) DIRUT=1 K DIR
  1. G:$D(DIRUT) START
  1. I Y=0 K ^BCHTRPT(BCHRPT,12) G PRINT
  1. G SCREEN
  1. ;
  1. PRINT ;print portion of report
  1. I $G(BCHRPTP)]"" S BCHRPTPA=$TR(BCHRPTPA,"~","^"),BCHRPTP=$TR(BCHRPTP,"~","^") D:$G(BCHRPTPA)]"" @(BCHRPTPA) G:$D(BCHQUIT) START G SORT
  1. D PMENU^BCHRPT0
  1. S DIR(0)="LO^1:"_BCHHIGH,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): ",BCHTCW
  1. D PSELECT^BCHRPT1
  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(^BCHTRPT(BCHRPT,12)),'$D(BCHRPTP) W !!,"NO PRINT FIELDS SELECTED!!",$C(7),$C(7) D DEL G START
  1. I '$P(^BCHRCNT(BCHRPTC,0),U,8) G ZIS
  1. S BCHSORT=""
  1. D SHOWR
  1. D RMENU^BCHRPT0
  1. W ! S DIR(0)="NO^1:"_BCHHIGH_":0",DIR("A")="Sort records by which of the above" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. I Y="" W !!,"No sort criteria selected ... will sort by record date." S BCHSORT=19,BCHSORV="Date of Service" H 3 G ZIS
  1. I $D(DIRUT) D DEL G START
  1. S BCHSORT=BCHSEL(+Y),BCHSORV=$P(^BCHSORT(BCHSORT,0),U)
  1. PAGE ;
  1. K BCHSPAG
  1. S DIR(0)="Y",DIR("A")="Do you want a separate page for each "_BCHSORV,DIR("B")="N" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. I $D(DIRUT) G SORT
  1. S BCHSPAG=Y
  1. ZIS ;call to XBDBQUE
  1. REG ;
  1. S BCHREG="",BCHREGN=""
  1. S DIR(0)="S^R:Registered Patients;N:Non-Registered Patients;B:Both Registered and Non-Registered Patients",DIR("A")="Include which Patients",DIR("B")="B" KILL DA D ^DIR KILL DIR
  1. I $D(DIRUT) Q
  1. S BCHREG=Y,BCHREGN=Y(0)
  1. D KILLVARS
  1. S XBRP=BCHRPTP,XBRC=$S($G(BCHRPRCR)]"":BCHRPRCR,1:"^BCHRPT4"),XBRX="XIT^BCHRPT",XBNS="BCH"
  1. D ^XBDBQUE
  1. D XIT
  1. Q
  1. SHOW ;
  1. W:$D(IOF) @IOF
  1. I $D(BCHDONE) S BCHLHDR="REPORT SUMMARY" W ?((80-$L(BCHLHDR))/2),BCHLHDR,!
  1. W !?6,"Record selection criteria:"
  1. W !,"Date of Service range: ",BCHBDD," to ",BCHEDD,"."
  1. Q:'$D(^BCHTRPT(BCHRPT,11))
  1. S BCHI=0 F S BCHI=$O(^BCHTRPT(BCHRPT,11,BCHI)) Q:BCHI'=+BCHI D
  1. .I $Y>(IOSL-5) D PAUSE^BCHRPTU W @IOF
  1. .W !?12,$P(^BCHSORT(BCHI,0),U),": "
  1. .K BCHQ S Y=0,C=0 F S Y=$O(^BCHTRPT(BCHRPT,11,BCHI,11,"B",Y)) S C=C+1 W:C'=1&(Y'="") " ; " Q:Y=""!($D(BCHQ)) S X=Y X:$D(^BCHSORT(BCHI,2)) ^(2) D
  1. ..W X
  1. .K BCHQ
  1. K C
  1. Q
  1. SHOWP ;
  1. I '$D(BCHDONE) W:$D(IOF) @IOF
  1. W !!?6,"PRINT Field(s) Selected:"
  1. ;Q:'$D(^BCHTRPT(BCHRPT,12))
  1. S (BCHI,BCHTCW)=0 F S BCHI=$O(^BCHTRPT(BCHRPT,12,BCHI)) Q:BCHI'=+BCHI S BCHCRIT=$P(^BCHTRPT(BCHRPT,12,BCHI,0),U) D
  1. .W !?12,$P(^BCHSORT(BCHCRIT,0),U)," - column width ",$P(^BCHTRPT(BCHRPT,12,BCHI,0),U,2) S BCHTCW=BCHTCW+$P(^(0),U,2)+2
  1. .I $Y>(IOSL-5) D PAUSE^BCHRPTU W:$D(IOF) @IOF
  1. W !!?12,"Total Report width (including column margins - 2 spaces): ",BCHTCW
  1. Q
  1. SHOWR ;
  1. I '$D(BCHDONE) W:$D(IOF) @IOF
  1. W !!?6,"Record SORTING Criteria"
  1. Q:'$G(BCHTRPT)
  1. W !!?12,"Records will be sorted by: ",$P(^BCHSORT(BCHTRPT,0),U),!
  1. Q
  1. DEL ;EP - delete entry in temp file
  1. I $G(BCHRPT) S DIK="^BCHTRPT(",DA=BCHRPT D ^DIK K DIK,DA,DIC
  1. Q
  1. KILLVARS ;
  1. K BCHDISP,BCHSEL
  1. Q
  1. XIT ;
  1. D KILL^BCHRPTX
  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="^BCHTRPT(",DLAYGO=90002.42,DIADD=1 D ^DIC K DIC,DA,DR,DIADD,DLAYGO I Y=-1 W !!,"UNABLE TO CREATE REPORT FILE ENTRY - NOTIFY SITE MANAGER!" S BCHQUIT=1 Q
  1. S BCHRPT=+Y
  1. K DIC,DIADD,DLAYGO,DR,DA,DD,X,Y,DINUM
  1. ;DELETE ALL 11 MULTIPLE HERE
  1. K ^BCHTRPT(BCHRPT,11)
  1. Q