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

APCLPRPM.m

Go to the documentation of this file.
  1. APCLPRPM ; IHS/CMI/LAB - driver for primary care provider report ;
  1. ;;2.0;IHS PCC SUITE;**2,7**;MAY 14, 2009
  1. ;
  1. W:$D(IOF) @IOF
  1. W !,"This report will generate a list of patients for a specific Designated Primary Care"
  1. W !,"Provider or a list of patients for all Primary Care Providers at this facility."
  1. I '$G(DUZ(2)) W !!!,$C(7),$C(7),"SITE NOT SET IN YOUR USER PROFILE! Please notify your Site Manager!" Q
  1. ASK ;
  1. S APCLPROV=""
  1. S DIR(0)="S^1:ONE PROVIDER;2:ALL PROVIDERS",DIR("A")="Run the report for",DIR("B")=1 D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. G:$D(DIRUT) EOJ
  1. G:Y=2 ZIS
  1. PROV ;
  1. ;
  1. S DIC=$S($P(^DD(9000010.06,.01,0),U,2)[200:200,1:6),DIC("A")="Enter PROVIDER: ",DIC(0)="AEMQ" D ^DIC K DIC
  1. I Y=-1 G ASK
  1. S APCLPROV=+Y
  1. S APCLPRV=$S($P(^DD(9000010.06,.01,0),U,2)[200:$P(^VA(200,+Y,0),U),1:$P(^DIC(16,+Y,0),U))
  1. ZIS ;
  1. ;S FLDS="[APCL PRIM PROV LISTING]",BY=$S(APCLPROV="":"#.14",1:"@INTERNAL(#.14)"),DIC="^AUPNPAT(",L=0 I APCLPROV S DHD="[APCL PRIM PROV HEADING]"
  1. ;S FR=$S(APCLPROV="":"",1:APCLPROV),TO=$S(APCLPROV="":"",1:APCLPROV)
  1. ;K DHIT,DIOEND,DIOBEG
  1. ;D EN1^DIP
  1. DEMO ;
  1. D DEMOCHK^APCLUTL(.APCLDEMO)
  1. I APCLDEMO=-1 G ASK
  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 EOJ
  1. S APCLBROW=Y
  1. I $G(Y)="B" D BROWSE,EOJ Q
  1. W !! S XBRP="PRINT^APCLPRPM",XBRC="PROC^APCLPRPM",XBNS="APCL",XBRX="EOJ^APCLPRPM"
  1. D ^XBDBQUE
  1. D EOJ
  1. Q
  1. BROWSE ;
  1. S XBRP="VIEWR^XBLM(""PRINT^APCLPRPM"")"
  1. S XBNS="APCL",XBRC="PROC^APCLPRPM",XBRX="EOJ^APCLPRPM",XBIOP=0 D ^XBDBQUE
  1. Q
  1. ;
  1. PAUSE ;
  1. S DIR(0)="E",DIR("A")="Press return to continue or '^' to quit" D ^DIR K DIR,DA
  1. S:$D(DIRUT) APCLQUIT=1
  1. W:$D(IOF) @IOF
  1. Q
  1. EOJ ;
  1. D EN^XBVK("APCL")
  1. K L,M,S,T,X,X1,X2,Y,Z,B
  1. D KILL^AUPNPAT
  1. D ^XBFMK
  1. Q
  1. PROC ;
  1. S APCLJOB=$J,APCLBTH=$H,APCLTOT=0,DFN=0,APCLBT=$H
  1. D XTMP^APCLOSUT("APCLPRPM","PCC - DESIGNATED PROV REPORT")
  1. I APCLPROV]"" D PROC0 Q
  1. F S APCLPROV=$O(^AUPNPAT("AK",APCLPROV)) Q:APCLPROV'=+APCLPROV D PROC0
  1. S APCLET=$H
  1. K DFN
  1. Q
  1. PROC0 ;
  1. S DFN=0 F S DFN=$O(^AUPNPAT("AK",APCLPROV,DFN)) Q:DFN'=+DFN D PROC1
  1. Q
  1. PROC1 ;
  1. Q:$$DEMO^APCLUTL(DFN,$G(APCLDEMO))
  1. S ^XTMP("APCLPRPM",APCLJOB,APCLBTH,APCLPROV,DFN)=""
  1. Q
  1. PRINT ;
  1. START ;
  1. S APCL80D="-------------------------------------------------------------------------------"
  1. S APCLPG=0
  1. I '$D(^XTMP("APCLPRPM",APCLJOB,APCLBTH)) D HEAD W !!,"NO PATIENTS TO REPORT" G DONE
  1. I APCLBROW="B" D HEAD
  1. S APCLPROV=0 F S APCLPROV=$O(^XTMP("APCLPRPM",APCLJOB,APCLBTH,APCLPROV)) Q:APCLPROV'=+APCLPROV!($D(APCLQ)) D
  1. .S DFN="",APCLSUB=0 K APCLQ
  1. .I APCLBROW="P" D HEAD Q:$D(APCLQ)
  1. .I APCLBROW="B" W !!
  1. .W ?9,"PRIMARY CARE PROVIDER: "_$$VAL^XBDIQ1(200,APCLPROV,.01),!
  1. .F S DFN=$O(^XTMP("APCLPRPM",APCLJOB,APCLBTH,APCLPROV,DFN)) Q:DFN=""!($D(APCLQ)) D DFN
  1. .Q:$D(APCLQ)
  1. .I $Y>(IOSL-3) D HEAD Q:$D(APCLQ)
  1. .W !,"Total # of Patients for ",$$VAL^XBDIQ1(200,APCLPROV,.01),": ",APCLSUB,!
  1. G:$D(APCLQ) DONE
  1. DONE D DONE^APCLOSUT
  1. K ^XTMP("APCLPRPM",APCLJOB,APCLBTH),APCLJOB,APCLBTH
  1. Q
  1. DFN ;
  1. I $Y>(IOSL-6) D HEAD Q:$D(APCLQ)
  1. D LVST
  1. W $E($P(^DPT(DFN,0),U),1,20),?24,$$UP^XLFSTR($$DOB^AUPNPAT(DFN,"E")),?40,$$HRN^AUPNPAT(DFN,DUZ(2)),?50,$E($$COMMRES^AUPNPAT(DFN,"E"),1,15),?66,APCLDT,!
  1. S APCLSUB=APCLSUB+1
  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 APCLQ="" Q
  1. HEAD1 ;
  1. I APCLPG W:$D(IOF) @IOF
  1. S APCLPG=APCLPG+1
  1. W $P(^VA(200,DUZ,0),U,2)
  1. W ?(80-$L($P(^DIC(4,DUZ(2),0),U))/2),$P(^DIC(4,DUZ(2),0),U),!
  1. W ?5,"DESIGNATED PROVIDER PATIENT LISTING "_$$FMTE^XLFDT($$NOW^XLFDT)_" PAGE "_APCLPG,!
  1. W ?50,"CURRENT",!
  1. W "NAME",?24,"DOB",?40,"HRN",?50,"COMMUNITY",?66,"LAST VISIT",!,APCL80D,!
  1. Q
  1. LVST ;ENTRY POINT from [APCL PRIM PROV LISTING print template
  1. S APCLAST=""
  1. S APCLVDFN=""
  1. S APCLAST=$O(^AUPNVSIT("AA",DFN,""))
  1. I APCLAST="" S APCLAST="NONE FOUND" Q
  1. S APCLVDFN=$O(^AUPNVSIT("AA",DFN,APCLAST,""))
  1. S Y=$P(^AUPNVSIT(APCLVDFN,0),U)
  1. D DD^%DT S APCLDT=$E(Y,1,12)
  1. Q