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

APCLGV.m

Go to the documentation of this file.
  1. APCLGV ; IHS/CMI/LAB - ACTIVE CLIENT LIST ;
  1. ;;2.0;IHS PCC SUITE;;MAY 14, 2009
  1. ;
  1. ;
  1. START ;
  1. S APCLJOB=$J,APCLBTH=$H K DIR
  1. D XTMP^APCLOSUT("APCLGV","PCC REPORT ON PTS SEEN N TIMES")
  1. I '$D(IOF) D HOME^%ZIS
  1. W @(IOF),!!
  1. W ?10,"********** PATIENTS SEEN AT LEAST N NUMBER OF TIMES **********",!!
  1. W "This report will produce a report of patients who have been seen at least",!," N number of times in a date range specified by the user.",!
  1. W !,"The output form this report can be in the form of a list of patients",!,"or a search template.",!
  1. GETDATES ;
  1. BD ;get beginning date
  1. W !,"Please enter the date range during which the patient should be seen.",!
  1. W ! S DIR(0)="D^:DT:EP",DIR("A")="Enter beginning Date" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. I $D(DIRUT) G XIT
  1. S APCLBD=Y
  1. ED ;get ending date
  1. W ! S DIR(0)="DA^"_APCLBD_":DT:EP",DIR("A")="Enter ending Date: " S Y=APCLBD D DD^%DT S Y="" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. I $D(DIRUT) G BD
  1. S APCLED=Y
  1. S X1=APCLBD,X2=-1 D C^%DTC S APCLSD=X S Y=APCLBD D DD^%DT S APCLBDD=Y S Y=APCLED D DD^%DT S APCLEDD=Y
  1. ;
  1. S APCLNCAN=1 D ADD^APCLVL01 I $D(APCLQUIT) D DEL^APCLVL K APCLQUIT G GETDATES
  1. NUM ;
  1. ;S DIR(0)="N^2:100:0",DIR("A")="Enter the minimum number of times the patient should have been seen" D ^DIR K DIR S:$D(DUOUT) DIRUT=1 ;IHS/CMI/LAB 10/1/96
  1. S DIR(0)="N^1:100:0",DIR("A")="Enter the minimum number of times the patient should have been seen" D ^DIR K DIR S:$D(DUOUT) DIRUT=1 ;IHS/CMI/LAB 10/14/96
  1. G:$D(DIRUT) GETDATES
  1. G:Y="" GETDATES
  1. S APCLNUM=+Y
  1. SCREEN ;
  1. S APCLTCW=0,APCLPTVS="V",APCLTYPE="D",APCLCTYP="T"
  1. K ^APCLVRPT(APCLRPT,11) S APCLCNTL="S" D ^APCLVL4 K APCLCNTL I $D(APCLQUIT) D DEL^APCLVL G GETDATES
  1. OUTPUT ;IHS/TUCSON/LAB - added OUTPUT to SORT-1
  1. K APCLSTMP,APCLSNAM,APCLQUIT
  1. S APCLOUT=""
  1. S DIR(0)="S^L:List of Patients;S:Search Template of Patients",DIR("A")="Type of output",DIR("B")="L" KILL DA D ^DIR KILL DIR
  1. G:$D(DIRUT) SCREEN
  1. S APCLOUT=Y
  1. I APCLOUT'="S" G SORT
  1. STEMP ;
  1. K APCLQUIT
  1. D ^APCLSTMP
  1. I $D(APCLQUIT) G OUTPUT
  1. I $G(APCLSTMP)=""!($G(APCLSNAM))="" K APCLQUIT W !,"No template selected!" G OUTPUT
  1. G ZIS
  1. SORT ;
  1. S APCLTCW=0,APCLPTVS="P",APCLTYPE="D",APCLCTYP="T"
  1. S APCLCNTL="R" D ^APCLVL4 K APCLCNTL I $D(APCLQUIT) D DEL^APCLVL G GETDATES
  1. PAGE ;
  1. S APCLNPAG=0,DIR(0)="Y",DIR("A")="Do you want each "_APCLSORV_" on a separate page",DIR("B")="N" K DA D ^DIR K DIR
  1. G:$D(DIRUT) SORT
  1. S APCLNPAG=Y
  1. ZIS ;
  1. DEMO ;
  1. D DEMOCHK^APCLUTL(.APCLDEMO)
  1. I APCLDEMO=-1 G OUTPUT
  1. S XBRC="PROC^APCLGV",XBRP="^APCLGVP",XBNS="APCL",XBRX="XIT^APCLGV"
  1. D ^XBDBQUE
  1. XIT ;
  1. D ^XBFMK
  1. D EN^XBVK("APCL"),EN^XBVK("AMQQ")
  1. K I,J,K,P,X,Y,Z,%,DDH,DIV,DIU,DFN,DIG,DIW
  1. Q
  1. ;
  1. PROC ;EP - entry point for processing
  1. S APCLTOT=0,DFN=0,APCLBT=$H
  1. F S DFN=$O(^AUPNVSIT("AA",DFN)) Q:DFN'=+DFN D PROC1
  1. S APCLET=$H
  1. K DFN
  1. Q
  1. PROC1 ;
  1. S APCLR=0,APCLBDO=(9999999-APCLBD)_".9999",APCLEDO=(9999999-APCLED),APCLSD=(APCLEDO-1)_".9999",APCLRCNT=0
  1. F S APCLSD=$O(^AUPNVSIT("AA",DFN,APCLSD)) Q:APCLSD>APCLBDO!(APCLSD="") D
  1. .S APCLVIEN=0 F S APCLVIEN=$O(^AUPNVSIT("AA",DFN,APCLSD,APCLVIEN)) Q:APCLVIEN'=+APCLVIEN D
  1. ..Q:'$P(^AUPNVSIT(APCLVIEN,0),U,9)
  1. ..Q:$P(^AUPNVSIT(APCLVIEN,0),U,11)
  1. ..S APCLVREC=^AUPNVSIT(APCLVIEN,0)
  1. ..Q:$$DEMO^APCLUTL($P(APCLVREC,U,5),$G(APCLDEMO))
  1. ..D SCREENS
  1. ..Q:$D(APCLSKIP)
  1. ..S APCLRCNT=APCLRCNT+1 ;COUNT # VISITS
  1. .Q
  1. I APCLRCNT'<APCLNUM D
  1. .I APCLOUT="S" S ^XTMP("APCLGV",APCLJOB,APCLBTH,"PATIENTS","TEMPLATE",DFN)="",APCLTOT=APCLTOT+1 Q
  1. .K APCLSRT,APCLPRNT S APCLCRIT=APCLSORT,APCLX=0
  1. .X:$D(^APCLVSTS(APCLSORT,4)) ^APCLVSTS(APCLSORT,4)
  1. .S APCLSRT=$G(APCLPRNT) S:APCLSRT="" APCLSRT="??"
  1. .S ^XTMP("APCLGV",APCLJOB,APCLBTH,"PATIENTS",APCLSRT,DFN)="",APCLTOT=APCLTOT+1
  1. Q
  1. ;
  1. SCREENS ;EP
  1. K APCLSKIP
  1. S APCLI=0 F S APCLI=$O(^APCLVRPT(APCLRPT,11,APCLI)) Q:APCLI'=+APCLI!($D(APCLSKIP)) D
  1. .I '$P(^APCLVSTS(APCLI,0),U,8) D SINGLE Q
  1. .D MULT
  1. .Q
  1. Q
  1. SINGLE ;
  1. K X,APCLSPEC S X="",APCLX=0
  1. X:$D(^APCLVSTS(APCLI,1)) ^(1)
  1. I X="" S APCLSKIP="" Q
  1. I '$D(APCLSPEC),'$D(^APCLVRPT(APCLRPT,11,APCLI,11,"B",X)) S APCLSKIP="" Q
  1. Q
  1. MULT ;
  1. K APCLFOUN,APCLSKIP,APCLSPEC,X S APCLX=0,X=""
  1. X:$D(^APCLVSTS(APCLI,1)) ^(1)
  1. I $O(X(""))="" S APCLSKIP="" Q
  1. I '$D(APCLSPEC) S Y="" F S Y=$O(X(Y)) Q:Y="" I $D(^APCLVRPT(APCLRPT,11,APCLI,11,"B",Y)) S APCLFOUN="" Q
  1. I $D(APCLSPEC),$D(X) S APCLFOUN=1 Q
  1. S:'$D(APCLFOUN) APCLSKIP=""
  1. Q