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

APCLAGE.m

Go to the documentation of this file.
  1. APCLAGE ; IHS/CMI/LAB - Age bucker driver ;
  1. ;;2.0;IHS PCC SUITE;;MAY 14, 2009
  1. ;This routine will print the PCC Report that uses age buckets
  1. ;to tabulate sex,tribe or current community by age.
  1. ;
  1. ;Calls APCLBIN1
  1. ;Called from option APCL P BIN AGE BUCKETS
  1. ;
  1. START ;
  1. S APCLPG=0
  1. W:$D(IOF) @IOF
  1. K ^TMP("APCLAGE",$J)
  1. W !,"This report will present, for all Living Patients registered at the facility",!,"that you select, age groups for a selected attribute.",!
  1. S Y=DT D DD^%DT S APCLDT=Y
  1. F ;
  1. S DIC("A")="Include Patients Registered at Which Facility: ",DIC="^AUTTLOC(",DIC(0)="AEMQ" D ^DIC K DIC,DA G:Y<0 EOJ
  1. S APCLSITE=+Y
  1. S DIR(0)="S^1:SEX;2:CURRENT COMMUNITY;3:TRIBE OF MEMBERSHIP",DIR("A")="Present Age groups by" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. I $D(DIRUT) G F
  1. I $T(@Y)="" D HELP G MENU
  1. S APCLZ=$T(@X)
  1. ;
  1. BIN D SETBIN
  1. W !,"The Age Groups to be used are currently defined as:",! D LIST
  1. S DIR(0)="YO",DIR("A")="Do you wish to modify these age groups",DIR("B")="No" D ^DIR K DIR
  1. I $D(DIRUT) G MENU
  1. I Y=0 G PRNT
  1. W !!,$C(7),"WARNING: If you use more than 8 age groups the report will wrap around",!,"the page. Only 8 will fit on an 80 column screen or page!!",!
  1. RUN ;
  1. K APCLQUIT S APCLY="",APCLA=-1 W ! F D AGE Q:APCLX="" I $D(APCLQUIT) G BIN
  1. D CLOSE I $D(APCLQUIT) G BIN
  1. D LIST
  1. G PRNT
  1. ;
  1. AGE ;
  1. S DIR(0)="NO^0:150:0",DIR("A")="Enter the starting age of the "_$S(APCLY="":"first",1:"next")_" age group" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. I $D(DUOUT)!($D(DTOUT)) S (APCLQUIT,APCLX)="" Q
  1. S APCLX=Y
  1. I Y="" Q
  1. I APCLX?1.3N,APCLX>APCLA D SET Q
  1. W $C(7) W !,"Make sure the age is higher the beginning age of the previous group.",! G RUN
  1. ;
  1. SET S APCLA=APCLX
  1. I APCLY="" S APCLY=APCLX Q
  1. S APCLY=APCLY_":"_(APCLX-1)_";"_APCLX
  1. Q
  1. ;
  1. CLOSE I APCLY="" Q
  1. GC ;
  1. S DIR(0)="NO^0:150:0",DIR("A")="Enter the highest age for the last group" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. I $D(DUOUT)!($D(DTOUT)) S APCLQUIT="" Q
  1. S APCLX=Y I Y="" S APCLX=199
  1. I APCLX?1.3N,APCLX'<APCLA S APCLY=APCLY_":"_APCLX,APCLAGEG=APCLY Q
  1. W " ??",$C(7) G CLOSE
  1. Q
  1. ;
  1. ;
  1. LIST ;
  1. S %=APCLAGEG
  1. F I=1:1 S X=$P(%,";",I) Q:X="" W !,$P(X,":")," - ",$P(X,":",2)
  1. W !
  1. Q
  1. ;
  1. PRNT ;
  1. S APCLTEMP=$P(APCLZ,";;",3) I APCLTEMP="" W !!,$C(7),$C(7),"TEMPLATE MISSING",! D EOJ Q
  1. S DIS(0)="I 1",DIS(1)="I '$D(^DPT(D0,.35)),$D(^AUPNPAT(D0,41,APCLSITE))",DIS(2)="I $D(^DPT(D0,.35)),$P(^DPT(D0,.35),U)="""",$D(^AUPNPAT(D0,41,APCLSITE))"
  1. S FLDS="["_APCLTEMP_"]"
  1. S L=0,FR="",BY="@NUMBER",DIC=$P(APCLZ,";;",4),APCLHDR=$P(APCLZ,";;",2)
  1. D EN1^DIP
  1. EOJ ;ENTRY POINT
  1. K ^TMP("APCLAGE",$J)
  1. K APCLAGEG
  1. W:$D(IOF) @IOF
  1. K APCLSITE,APCLTEMP,APCLX,APCLY,APCLHDR,APCLHDRL,APCLA,APCLZ,APCLDT,APCLQUIT,APCLPG
  1. K %,X,Y,%F,Z,DCC,DHD,DIS,DISH,DIPT,DINS,DR,FLDS,TO,BY,FR
  1. Q
  1. ;
  1. ;
  1. HDR ;EP -Header
  1. S APCLPG=APCLPG+1
  1. S APCLHDRL=(13+$L(APCLHDR))
  1. W ?((80-APCLHDRL)/2),APCLHDR," By AGE GROUP",?71,"Page ",APCLPG,!
  1. S APCLHDRL=(34+$L($P(^DIC(4,APCLSITE,0),U)))
  1. W ?((80-APCLHDRL)/2),"All Living Patients Registered at ",$P(^DIC(4,APCLSITE,0),U),!
  1. W ?(80-$L(APCLDT)/2),APCLDT,!
  1. W !?35,"AGE GROUPS",!
  1. Q
  1. HELP ;
  1. W !,"Choose a number from the menu presented. The item selected will be ",!,"displayed in a matrix by age groups.",!
  1. Q
  1. SETBIN ;
  1. S APCLAGEG="0:0;1:4;5:14;15:19;20:24;25:44;45:64;65:125"
  1. Q
  1. ;
  1. 1 ;;SEX;;APCL P BIN SEX;;^DPT(
  1. 2 ;;CURRENT COMMUNITY;;APCL P BIN CURRENT COMM;;^AUPNPAT(
  1. 3 ;;TRIBE OF MEMBERSHIP;;APCL P BIN TRIBE;;^AUPNPAT(