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

AMHRAGS.m

Go to the documentation of this file.
  1. AMHRAGS ; IHS/CMI/LAB - AGE/SEX REPORT ;
  1. ;;4.0;IHS BEHAVIORAL HEALTH;**1**;JUN 18, 2010;Build 8
  1. ;
  1. PREPROC ;
  1. D XTMP^AMHUTIL("AMHRAGS","BH CNTS BY AGE/SEX")
  1. S AMHRNN=AMHRBIN,AMHRA="" F I=1:1 S AMHRX=$P(AMHRNN,";",I) Q:AMHRX="" D SETA
  1. S AMHRDOBS=AMHRA
  1. Q
  1. SETA ;
  1. S AMHRY=$P(AMHRX,"-"),AMHRZ=$P(AMHRX,"-",2)
  1. I AMHRA]"" S AMHRA=AMHRA_";"
  1. S AMHRA=AMHRA_(DT+1-(10000*(AMHRZ+1)))_"-"_(DT-(AMHRY*10000))
  1. S ^XTMP("AMHRAGS",AMHJOB,AMHBTH,"TOTAL","AGE",I)=0
  1. Q
  1. SETTMP ;
  1. Q:$P(AMHR0,U,8)=""
  1. ;Q:$D(^XTMP("AMHRAGS",AMHJOB,AMHBTH,"PATIENT",$P(AMHR0,U,8))) ;quit if already counted this patient
  1. S AMHPPOV=$O(^AMHRPRO("AD",AMHR,""))
  1. S AMHRAGE="" D GETAGE
  1. Q:'AMHRAGE
  1. Q:AMHRSEX=""
  1. D @(AMHRPROC_"^AMHRPTST")
  1. Q:$D(^XTMP("AMHRAGS",AMHJOB,AMHBTH,"PATIENT",$P(AMHR0,U,8),@AMHSORT))
  1. S ^(AMHRAGE)=$S($D(^XTMP("AMHRAGS",AMHJOB,AMHBTH,"AGE",AMHRSEX,@AMHSORT,AMHRAGE)):^(AMHRAGE)+1,1:1)
  1. S ^(AMHRAGE)=$S($D(^XTMP("AMHRAGS",AMHJOB,AMHBTH,"TOTAL",AMHRSEX,AMHRAGE)):^(AMHRAGE)+1,1:1)
  1. S ^(@AMHSORT)=$S($D(^XTMP("AMHRAGS",AMHJOB,AMHBTH,"TOTAL SORT",AMHRSEX,@AMHSORT)):^(@AMHSORT)+1,1:1)
  1. S ^(AMHRAGE)=$S($D(^XTMP("AMHRAGS",AMHJOB,AMHBTH,"AGE","B",@AMHSORT,AMHRAGE)):^(AMHRAGE)+1,1:1)
  1. S ^(AMHRAGE)=$S($D(^XTMP("AMHRAGS",AMHJOB,AMHBTH,"TOTAL","B",AMHRAGE)):^(AMHRAGE)+1,1:1)
  1. S ^(@AMHSORT)=$S($D(^XTMP("AMHRAGS",AMHJOB,AMHBTH,"TOTAL SORT","B",@AMHSORT)):^(@AMHSORT)+1,1:1)
  1. S ^XTMP("AMHRAGS",AMHJOB,AMHBTH,"PATIENT",$P(AMHR0,U,8),@AMHSORT)=""
  1. Q
  1. GETAGE ;
  1. S AMHRDOB=$P(^DPT($P(AMHR0,U,8),0),U,3) Q:AMHRDOB=""
  1. S AMHRSEX=$P(^DPT($P(AMHR0,U,8),0),U,2)
  1. ATT ;
  1. F I=1:1 S AMHRNN=$P(AMHRA,";",I) Q:AMHRNN="" S AMHRX=$P(AMHRNN,"-"),AMHRY=$P(AMHRNN,"-",2) I AMHRDOB'<AMHRX,AMHRDOB'>AMHRY S AMHRAGE=I Q
  1. Q
  1. ;
  1. XIT ;
  1. K AMHRY,AMHRX,AMHRA
  1. Q
  1. PRINT ;EP ;PRINT RECORD BY AGE/SEX
  1. S AMHR132S="",$P(AMHR132S,"-",132)=""
  1. D NOW^%DTC S Y=X D DD^%DT S AMHRDT=Y
  1. D COVPAGE^AMHRPTCP
  1. S AMHRPG=0,AMHSORT="",AMHRSEX=""
  1. K AMHQUIT
  1. I '$D(^XTMP("AMHRAGS",AMHJOB,AMHBTH,"AGE")) D HEAD W !!,"No data to report.",! G DONE
  1. F S AMHRSEX=$O(^XTMP("AMHRAGS",AMHJOB,AMHBTH,"AGE",AMHRSEX)) Q:AMHRSEX=""!($D(AMHQUIT)) D SORT
  1. DONE ;
  1. D DONE^AMHLEIN,^AMHEKL
  1. K ^XTMP("AMHRPT",AMHJOB,AMHBTH)
  1. K ^XTMP("AMHRAGS",AMHJOB,AMHBTH),AMHJOB,AMHBTH
  1. Q
  1. SORT ;
  1. D HEAD Q:$D(AMHQUIT)
  1. S AMHSORT=""
  1. F S AMHSORT=$O(^XTMP("AMHRAGS",AMHJOB,AMHBTH,"AGE",AMHRSEX,AMHSORT)) Q:AMHSORT=""!($D(AMHQUIT)) D
  1. .I $Y>(IOSL-5) D HEAD Q:$D(AMHQUIT)
  1. .W !,$E(AMHSORT,1,30) S AMHRSRT2=$O(^XTMP("AMHRAGS",AMHJOB,AMHBTH,"AGE",AMHRSEX,AMHSORT,"")) ;W ?32,$E(AMHRSRT2,1,9)
  1. .N I,J,K S J=39 F I=1:1:$L(AMHRBIN,";") S K=$S($D(^XTMP("AMHRAGS",AMHJOB,AMHBTH,"AGE",AMHRSEX,AMHSORT,I)):^(I),1:".") W ?J,$J(K,6) S J=J+9
  1. .W ?J,$J(^XTMP("AMHRAGS",AMHJOB,AMHBTH,"TOTAL SORT",AMHRSEX,AMHSORT),6)
  1. .Q
  1. Q:$D(AMHQUIT)
  1. I $Y>(IOSL-5) D HEAD Q:$D(AMHQUIT)
  1. S T=0 W !,"TOTAL:" S J=39 F I=1:1:$L(AMHRBIN,";") S K=$S($D(^XTMP("AMHRAGS",AMHJOB,AMHBTH,"TOTAL",AMHRSEX,I)):^(I),1:".") W ?J,$J(K,6) S J=J+9,T=T+K
  1. W ?J,$J(T,6)
  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 AMHQUIT="" Q
  1. HEAD1 ;
  1. W:$D(IOF) @IOF S AMHRPG=AMHRPG+1
  1. W !?13,"********** CONFIDENTIAL PATIENT INFORMATION **********"
  1. W !?37,"BEHAVIORAL HEALTH RECORD/ENCOUNTER COUNTS",?100,AMHRDT,?123,"Page ",AMHRPG,!
  1. S AMHRLENG=15+$L(AMHTITL) W ?((132-AMHRLENG)/2),AMHTITL," BY AGE AND SEX",!
  1. W ?43,"ENCOUNTER DATES: ",AMHBDD," TO ",AMHEDD,!
  1. W !?61,"SEX: ",$S(AMHRSEX="M":"MALE",AMHRSEX="F":"FEMALE",1:"BOTH")
  1. W !,AMHHD1 S J=41 F I=1:1:$L(AMHRBIN,";") S K=$P(AMHRBIN,";",I) Q:K="" W ?J,K S J=J+9
  1. W ?J,"TOTAL"
  1. W !,AMHR132S
  1. Q
  1. PI ;EP ;age/sex record counts interactive print ?
  1. W !!
  1. BIN D SETBIN
  1. W !,"The Age Groups to be used are currently defined as:",! D LIST
  1. S DIR(0)="Y",DIR("A")="Do you wish to modify these age groups" D ^DIR K DIR
  1. I $D(DIRUT) S AMHQUIT="" G XIT
  1. I Y=0 G XIT
  1. RUN ;
  1. K AMHQUIT S AMHRY="",AMHRA=-1 W ! F D AGE Q:AMHRX="" I $D(AMHQUIT) G BIN
  1. D CLOSE I $D(AMHQUIT) G BIN
  1. D LIST
  1. G XIT
  1. ;
  1. AGE ;
  1. S AMHRX=""
  1. S DIR(0)="NO^0:150:0",DIR("A")="Enter the starting age of the "_$S(AMHRY="":"first",1:"next")_" age group" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. I $D(DUOUT)!($D(DTOUT)) S AMHQUIT="" Q
  1. S AMHRX=Y
  1. I Y="" Q
  1. I AMHRX?1.3N,AMHRX>AMHRA 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 AMHRA=AMHRX
  1. I AMHRY="" S AMHRY=AMHRX Q
  1. S AMHRY=AMHRY_"-"_(AMHRX-1)_";"_AMHRX
  1. Q
  1. ;
  1. CLOSE I AMHRY="" 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 AMHQUIT="" Q
  1. S AMHRX=Y I Y="" S AMHRX=199
  1. I AMHRX?1.3N,AMHRX'<AMHRA S AMHRY=AMHRY_"-"_AMHRX,AMHRBIN=AMHRY Q
  1. W " ??",$C(7) G CLOSE
  1. Q
  1. ;
  1. ;
  1. LIST ;
  1. S %=AMHRBIN
  1. F I=1:1 S X=$P(%,";",I) Q:X="" W !,$P(X,"-")," - ",$P(X,"-",2)
  1. W !
  1. Q
  1. ;
  1. SETBIN ;
  1. S AMHRBIN="0-0;1-4;5-14;15-19;20-24;25-44;45-64;65-125"
  1. Q