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

GMPLRPTS.m

Go to the documentation of this file.
  1. GMPLRPTS ; SLC/MKB -- Problem List Mgt Reports ;1/26/95 10:00
  1. ;;2.0;Problem List;**2**;Aug 25, 1994
  1. PAT ; List patients having data in Problem file #9000011
  1. N DFN,IFN,CNT,ST S GMPRT=0
  1. D WAIT^DICD
  1. F DFN=0:0 S DFN=$O(^AUPNPROB("AC",DFN)) Q:DFN'>0 D
  1. . S (CNT("A"),CNT("I"),IFN)=0
  1. . F S IFN=$O(^AUPNPROB("AC",DFN,IFN)) Q:IFN'>0 I $P($G(^AUPNPROB(IFN,1)),U,2)'="H" S ST=$P(^(0),U,12),CNT(ST)=CNT(ST)+1
  1. . I (CNT("A")>0)!(CNT("I")>0) S GMPRT=GMPRT+1,^TMP("GMPRT",$J,$P(^DPT(DFN,0),U))=" "_+CNT("A")_$E(" ",1,7-$L(CNT("A")))_+CNT("I") W "."
  1. I GMPRT'>0 W $C(7),!!,"No patient data available.",! G PATQ
  1. S GMPLHDR="PROBLEM LIST PATIENT LISTING",GMPLCNT=1
  1. D DEVICE G:$D(GMPQUIT) PATQ
  1. D PRT
  1. PATQ D KILL
  1. Q
  1. ;
  1. PROB ; Search for/List patients with selected problem
  1. N X,Y,GMPTERM,GMPTEXT,IFN,DFN,STATUS,ST,TXT,NAME
  1. PROB1 D SEARCH^GMPLX(.X,.Y) G:Y'>0 PROBQ
  1. S GMPTERM=Y,GMPTEXT=$$UP^XLFSTR(X) S:+GMPTERM'>1 GMPTERM="1^"_GMPTEXT
  1. S STATUS=$$STATUS G:STATUS="^" PROBQ
  1. D WAIT^DICD S GMPRT=0
  1. F IFN=0:0 S IFN=$O(^AUPNPROB("C",+GMPTERM,IFN)) Q:IFN'>0 D
  1. . Q:$P($G(^AUPNPROB(IFN,1)),U,2)="H"
  1. . Q:STATUS'[$P($G(^AUPNPROB(IFN,0)),U,12)
  1. . S NODE=$G(^AUPNPROB(IFN,0)),DFN=$P(NODE,U,2),NAME=$P(^DPT(DFN,0),U),ST=$S($P(NODE,U,12)="A":"active",1:"inactive"),TXT=$P(NODE,U,5)
  1. . I GMPTERM'>1,GMPTEXT'=$$UP^XLFSTR($P(^AUTNPOV(+TXT,0),U)) Q
  1. . I '$D(^TMP("GMPRT",$J,NAME)) S GMPRT=GMPRT+1,^TMP("GMPRT",$J,NAME)=ST Q
  1. . Q:(" "_^TMP("GMPRT",$J,NAME))[(" "_ST) ; already included
  1. . S:$E(ST)="a" ^TMP("GMPRT",$J,NAME)=ST_", "_^TMP("GMPRT",$J,NAME)
  1. . S:$E(ST)="i" ^TMP("GMPRT",$J,NAME)=^TMP("GMPRT",$J,NAME)_", "_ST
  1. I GMPRT'>0 W $C(7),!!,"No patient data available.",! D KILL G PROB1
  1. S GMPLHDR="PATIENTS WITH '"_$$UP^XLFSTR($P(GMPTERM,U,2))_"'",GMPLCNT=0
  1. D DEVICE I $D(GMPQUIT) D KILL G PROB1
  1. D PRT D KILL G PROB1
  1. PROBQ D KILL
  1. Q
  1. ;
  1. KILL ; Clean-up after ourselves
  1. K GMPRT,GMPLHDR,GMPQUIT,X,Y,^TMP("GMPRT",$J)
  1. Q
  1. ;
  1. DEVICE ; Prompt for device to send report to -- Sets GMPQUIT to quit
  1. S %ZIS="Q" D ^%ZIS I POP S GMPQUIT=1 G DQ
  1. I $D(IO("Q")) D
  1. . S ZTRTN="PRT^GMPLRPTS",ZTDESC=GMPLHDR
  1. . S (ZTSAVE("GMPRT"),ZTSAVE("^TMP(""GMPRT"",$J,"),ZTSAVE("GMPLHDR"),ZTSAVE("GMPLCNT"))=""
  1. . D ^%ZTLOAD,HOME^%ZIS S:$D(ZTSK) GMPQUIT=1
  1. DQ K IO("Q"),POP,%ZIS,ZTRTN,ZTDESC,ZTSAVE,ZTSK
  1. Q
  1. ;
  1. PRT ; Print patient listing from ^TMP("GMPRT",$J,)
  1. U IO N NAME,PAGE S NAME="",PAGE=0 D HDR
  1. F S NAME=$O(^TMP("GMPRT",$J,NAME)) Q:NAME="" D Q:$D(GMPQUIT)
  1. . I $Y>(IOSL-4) D RETURN Q:$D(GMPQUIT) D HDR
  1. . W !,NAME,?60,^TMP("GMPRT",$J,NAME)
  1. W:'$D(GMPQUIT) !!?10,"Total of "_GMPRT_" patients found."
  1. W:IOST?1"P".E @IOF I IOST'?1"P".E,'$D(GMPQUIT) D RETURN
  1. I $D(ZTQUEUED) S ZTREQ="@" D KILL
  1. D ^%ZISC
  1. Q
  1. ;
  1. HDR ; Prints report header
  1. W @IOF S PAGE=PAGE+1
  1. W GMPLHDR,?60,$$EXTDT^GMPLX(DT),?70,"PAGE "_PAGE,!!
  1. W "Patient Name",?60,$S(GMPLCNT:"# Active/Inactive",1:"Status"),!
  1. W $$REPEAT^XLFSTR("-",79),!
  1. Q
  1. ;
  1. RETURN ; Checks for end-of-page, continue
  1. Q:IOST?1"P".E N X,Y,DIR,I
  1. F I=1:1:(IOSL-$Y-2) W !
  1. S DIR(0)="E" D ^DIR S:'Y GMPQUIT=1
  1. Q
  1. ;
  1. STATUS() ; Prompts for problem status to search for
  1. N DIR,X,Y
  1. S DIR(0)="SA^A:ACTIVE;I:INACTIVE;B:BOTH;"
  1. S DIR("A")="Select STATUS: ",DIR("B")="ACTIVE"
  1. S DIR("?",1)="To list only those patients with this problem in a specific status, select:",DIR("?",2)=" ACTIVE",DIR("?",3)=" INACTIVE",DIR("?")=" BOTH ACTIVE & INACTIVE"
  1. D ^DIR S:$D(DTOUT)!($D(DUOUT)) Y="^" S:Y="B" Y="AI"
  1. Q Y