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

AMHGAFS.m

Go to the documentation of this file.
  1. AMHGAFS ; IHS/CMI/MAW - GAF - MULTIPLE PATS 03 Jun 2009 11:28 AM ;
  1. ;;4.0;IHS BEHAVIORAL HEALTH;**1,4**;JUN 18, 2010;Build 28
  1. ;
  1. ;
  1. START ;
  1. W:$D(IOF) @IOF
  1. D EN^XBVK("AMH")
  1. W !,$$CTR^AMHLEIN("GAF OUTCOME MEASURE - GAF Scores for Multiple Patients",80),!!
  1. W !,"This option is used to list GAF Scores for multiple patients sorted"
  1. W !,"by patient.",!
  1. WHICH ;
  1. W !!,"Please note: Only visits with GAF scores recorded will display on this",!,"list.",!
  1. D DBHUSR^AMHUTIL
  1. DATES ;
  1. K AMHED,AMHBD
  1. K DIR W ! S DIR(0)="D^::EXP",DIR("A")="Enter Beginning Date of Visit"
  1. D ^DIR
  1. G:$D(DIRUT) XIT
  1. S AMHBD=Y
  1. K DIR S DIR(0)="D^::EXP",DIR("A")="Enter Ending Date of Visit"
  1. D ^DIR
  1. G:$D(DIRUT) DATES
  1. S AMHED=Y
  1. ;
  1. I AMHED<AMHBD D G DATES
  1. . W !!,$C(7),"Sorry, Ending Date MUST not be earlier than Beginning Date."
  1. S AMHSD=$$FMADD^XLFDT(AMHBD,-1)_".9999"
  1. PROG ;
  1. S AMHPROG=""
  1. S DIR(0)="S^O:ONE Program;A:ALL Programs",DIR("A")="List visits/GAF Scores for which PROGRAM",DIR("B")="A" KILL DA D ^DIR KILL DIR
  1. G:$D(DIRUT) DATES
  1. I Y="A" G PROV
  1. S DIR(0)="9002011,.02",DIR("A")="Which PROGRAM" KILL DA D ^DIR KILL DIR
  1. G:$D(DIRUT) PROG
  1. I X="" G PROG
  1. S AMHPROG=Y
  1. PROV ;
  1. S AMHPROV=""
  1. S DIR(0)="S^A:All Providers;O:One Provider",DIR("A")="Include visits to",DIR("B")="A" K DA D ^DIR K DIR
  1. G:$D(DIRUT) XIT
  1. I Y="A" G DEMO
  1. S DIC="^VA(200,",DIC(0)="AEMQ",DIC("A")="Which PROVIDER: " D ^DIC
  1. K DIC,DA
  1. I Y=-1 G PROV
  1. S AMHPROV=+Y
  1. DEMO ;
  1. D DEMOCHK^AMHUTIL1(.AMHDEMO)
  1. I AMHDEMO=-1 G PROV
  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^AMHGAFS",XBRP="PRINT^AMHGAFS",XBNS="AMH",XBRX="XIT^AMHGAFS"
  1. D ^XBDBQUE
  1. XIT ;
  1. K ZTSK,Y,AMHBD,AMHED,IO("Q")
  1. D EN^XBVK("AMH")
  1. Q
  1. ;
  1. BROWSE ;
  1. S XBRP="VIEWR^XBLM(""PRINT^AMHGAFS"")"
  1. S XBNS="AMH",XBRC="PROC^AMHGAFS",XBRX="XIT^AMHRP4",XBIOP=0 D ^XBDBQUE
  1. Q
  1. ;
  1. PROC ;
  1. ;loop through visits and check GAF score
  1. D XTMP^AMHUTIL("AMHGAFS","BH - GAF SCORES MULT PATS")
  1. S (AMHBT,AMHBTH)=$H,AMHJOB=$J
  1. F S AMHSD=$O(^AMHREC("B",AMHSD)) Q:AMHSD=""!($P(AMHSD,".")>$P(AMHED,".")) D
  1. .S AMHVIEN=0 F S AMHVIEN=$O(^AMHREC("B",AMHSD,AMHVIEN)) Q:AMHVIEN'=+AMHVIEN D
  1. ..S AMHV0=$G(^AMHREC(AMHVIEN,0))
  1. ..Q:AMHV0=""
  1. ..S DFN=$P(AMHV0,U,8)
  1. ..Q:DFN=""
  1. ..I $P(AMHV0,U,14)="" Q ;no GAF score
  1. ..Q:'$$ALLOWVI^AMHUTIL(DUZ,AMHVIEN)
  1. ..Q:$$DEMO^AMHUTIL1(DFN,$G(AMHDEMO))
  1. ..I AMHPROG]"",$P(AMHV0,U,2)'=AMHPROG Q ;not correct program visit
  1. ..S AMHVPP=$$PPINT^AMHUTIL(AMHVIEN)
  1. ..I AMHVPP="",AMHPROV Q ;PRIM PROV blank and want certain PRIM PROVS
  1. ..I AMHPROV,AMHVPP'=AMHPROV Q ;not a PRIM PROV we want
  1. ..S ^XTMP("AMHGAFS",AMHJOB,AMHBTH,"PATS",$P(^DPT(DFN,0),U,1),DFN,(9999999-$P($P(^AMHREC(AMHVIEN,0),U),".")),AMHVIEN)=""
  1. ..Q
  1. .Q
  1. Q
  1. PRINT ;EP - called from xbdbque
  1. S AMHPG=0 K AMHQ D HEADER
  1. I '$D(^XTMP("AMHGAFS",AMHJOB,AMHBTH)) W !!,"NO PATIENTS/GAF SCORES TO REPORT" G DONE
  1. S AMHNAME="" F S AMHNAME=$O(^XTMP("AMHGAFS",AMHJOB,AMHBTH,"PATS",AMHNAME)) Q:AMHNAME=""!($D(AMHQ)) D
  1. .S DFN=0 F S DFN=$O(^XTMP("AMHGAFS",AMHJOB,AMHBTH,"PATS",AMHNAME,DFN)) Q:DFN'=+DFN!($D(AMHQ)) D
  1. ..W ! S AMHDATE="" F S AMHDATE=$O(^XTMP("AMHGAFS",AMHJOB,AMHBTH,"PATS",AMHNAME,DFN,AMHDATE)) Q:AMHDATE=""!($D(AMHQ)) D
  1. ...S AMHV=0 F S AMHV=$O(^XTMP("AMHGAFS",AMHJOB,AMHBTH,"PATS",AMHNAME,DFN,AMHDATE,AMHV)) Q:AMHV'=+AMHV!($D(AMHQ)) D PRINT1
  1. ...Q
  1. ..Q
  1. .Q
  1. DONE ;
  1. I $E(IOST)="C",IO=IO(0) S DIR(0)="EO",DIR("A")="End of report. PRESS RETURN" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. K ^XTMP("AMHGAFS",AMHJOB,AMHBTH),AMHJOB,AMHBTH
  1. Q
  1. ;
  1. PRINT1 ;
  1. I $Y>(IOSL-3) D HEADER Q:$D(AMHQ)
  1. W !,$E(AMHNAME,1,15),?17,$$HRN^AUPNPAT(DFN,DUZ(2)),?24,$$D^AMHLEIN((9999999-AMHDATE))
  1. W ?33,$P(^AMHREC(AMHV,0),U,14),?37,$E($P($G(^AMHREC(AMHV,11)),U,15),1,7)
  1. W ?45,$E($$PPNAME^AMHUTIL(AMHV),1,9),?55,$P(^AMHREC(AMHV,0),U,2)
  1. S X=$O(^AMHRPRO("AD",AMHV,0))
  1. I X W ?58,$$VAL^XBDIQ1(9002011.01,X,.01)_"-"_$E($$VAL^XBDIQ1(9002011.01,X,.04),1,13)
  1. Q
  1. ;----------
  1. G:'AMHPG HEADER1
  1. K DIR 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. HEADER1 ;
  1. W:$D(IOF) @IOF S AMHPG=AMHPG+1
  1. W !?3,$P(^VA(200,DUZ,0),U,2),?35,$$FMTE^XLFDT(DT),?70,"Page ",AMHPG,!
  1. W !,$$CTR^AMHLEIN("GAF SCORES FOR MULTIPLE PATIENTS",80),!
  1. S X="Visit Dates: "_$$FMTE^XLFDT(AMHBD)_" to "_$$FMTE^XLFDT(AMHED) W $$CTR^AMHLEIN(X,80),!
  1. I AMHPROG]"" S X="Program: "_$$EXTSET^XBFUNC(9002011,.02,AMHPROG) W $$CTR^AMHLEIN(X,80),!
  1. I AMHPROG="" S X="Program: ALL" W $$CTR^AMHLEIN(X,80),!
  1. I AMHPROV="" S X="Provider: ALL" W $$CTR^AMHLEIN(X,80),!
  1. I AMHPROV S X="Provider: "_$P(^VA(200,AMHPROV,0),U) W $$CTR^AMHLEIN(X,80),!
  1. W !,"PATIENT NAME",?17,"HRN",?24,"Date",?33,"GAF",?37,"TYPE",?45,"Provider",?55,"PG",?58,"Diagnosis/POV"
  1. W !,$TR($J("",80)," ","-")
  1. Q