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

APCDVLST.m

Go to the documentation of this file.
  1. APCDVLST ; IHS/CMI/LAB - VISIT LIST BY PATIENT ;
  1. ;;2.0;IHS PCC SUITE;**11**;MAY 14, 2009;Build 58
  1. W:$D(IOF) @IOF W !,"This routine will list all Visits for a Selected Patient in a",!,"specified Posting Date or Visit Date Range.",!
  1. ;
  1. RDPV ; Determine to run by Posting date or Visit date
  1. S APCDBEEP=$C(7)_$C(7),APCDSITE="" S:$D(DUZ(2)) APCDSITE=DUZ(2)
  1. I '$D(DUZ(2)) S APCDSITE=+^AUTTSITE(1,0)
  1. S DIR(0)="S^1:Posting Date;2:Visit Date",DIR("A")="Run Report by",DIR("B")="P" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. I $D(DIRUT) G EOJ
  1. S Y=$E(Y),APCDX=$S(Y=1:"P",Y=2:"V",1:Y)
  1. GETDATES ;
  1. BD ;get beginning date
  1. W ! S DIR(0)="D^:DT:EP",DIR("A")="Enter beginning "_$S(APCDX="P":"Posting",APCDX="V":"Visit",1:"Posting")_" Date for Search" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. S APCDBD=Y
  1. I $D(DIRUT) G EOJ
  1. S APCDBD=Y D DD^%DT S APCDBDD=Y
  1. ED ;get ending date
  1. W ! S DIR(0)="DA^"_APCDBD_":DT:EP",DIR("A")="Enter ending "_$S(APCDX="P":"Posting",APCDX="V":"Visit",1:"Posting")_" Date for Search: " S Y=APCDBD D DD^%DT S DIR("B")=Y,Y="" D ^DIR K DIR S:$D(DUOUT) DIRUT=1
  1. I $D(DIRUT) G BD
  1. S APCDED=Y D DD^%DT S APCDEDD=Y
  1. S X1=APCDBD,X2=-1 D C^%DTC S APCDSD=X
  1. ;
  1. GETPAT ; GET PATIENT
  1. K AUPNDOB,AUPNDOD,AUPNSEX
  1. W !
  1. S AUPNLK("INAC")=""
  1. S AUPNPAT=""
  1. S DIC="^AUPNPAT(",DIC(0)="AEMQ" D ^DIC K DIC
  1. G:Y<0 EOJ
  1. S AUPNPAT=+Y
  1. BRPR ;
  1. S DIR(0)="SO^B:BROWSE Output on Screen;P:PRINT Output to Printer",DIR("A")="Do you want to",DIR("B")="B" K DA D ^DIR K DIR
  1. G:$D(DIRUT) GETPAT
  1. I Y="B" D BROWSE,EOJ Q
  1. S XBRP="DRIVER^APCDVLST",XBRC="PROC^APCDVLST",XBRX="EOJ^APCDVLST",XBNS="APCD;AUPN"
  1. D ^XBDBQUE
  1. D EOJ
  1. Q
  1. ;
  1. DRIVER ; Driver
  1. S APCDF=1
  1. D @APCDX
  1. Q
  1. ;
  1. PROC ;EP - called from xbdbque
  1. Q
  1. EOJ ; EOJ Clean up and xit.
  1. K AUPNLK("INAC")
  1. K APCDX,APCDBD,APCDBDD,APCDT,APCDED,APCDSD,APCDODAT,APCDVDFN,APCDLST,APCDHRN,APCDVR,APCDCAT,APCDTYPE,%,%1,APCDEDD,IO("Q"),APCDF
  1. Q
  1. ;
  1. BROWSE ;
  1. D VIEWR^XBLM("DRIVER^APCDVLST","Visit List in Date Range")
  1. Q
  1. DISP ;
  1. S APCDHRN="" S:$D(^AUPNPAT(AUPNPAT,41,DUZ(2),0)) APCDHRN=$P(^AUPNPAT(AUPNPAT,41,DUZ(2),0),U,2)
  1. W:APCDF !!,"Visits for ",$P(^DPT(AUPNPAT,0),U)," in ",$S(APCDX="P":"Posting",APCDX="V":"Visit",1:"Posting")," date range ",APCDBDD," to ",APCDEDD,!,"Health Record Number: ",APCDHRN,!
  1. S APCDF=0
  1. S DA=APCDVDFN,DIC="^AUPNVSIT(",DR="0:VCN" D EN^DIQ
  1. NEW POV S POV=0 F S POV=$O(^AUPNVPOV("AD",APCDVDFN,POV)) Q:POV'=+POV W ?5,$$GET1^DIQ(9000010.07,POV,.01),?15,$$GET1^DIQ(9000010.07,POV,.04),!
  1. Q
  1. ;
  1. P ; Run by Posting date
  1. S APCDODAT=$O(^AUPNVSIT("AMRG",APCDSD)) Q:APCDODAT=""
  1. S APCDVDFN=$O(^AUPNVSIT("AMRG",APCDODAT,"")) I APCDVDFN="" W !,"An error has occurred in the AMRG cross reference. Please notify your Supervisor" Q
  1. S APCDVDFN=APCDVDFN-1
  1. F APCDL=0:0 S APCDVDFN=$O(^AUPNVSIT("AC",AUPNPAT,APCDVDFN)) Q:APCDVDFN'=+APCDVDFN S:$D(^AUPNVSIT(APCDVDFN,0)) APCDODAT=$P(^AUPNVSIT(APCDVDFN,0),U,2) Q:(APCDODAT>APCDED) I $D(^AUPNVSIT(APCDVDFN,0)),'$P(^(0),U,11) D DISP
  1. Q
  1. V ; Run by visit date
  1. S APCDODAT=9999999-(APCDED+1),APCDLST=(9999999-APCDBD)_".9999"
  1. F S APCDODAT=$O(^AUPNVSIT("AA",AUPNPAT,APCDODAT)) Q:APCDODAT="" Q:APCDODAT>APCDLST D V1
  1. Q
  1. V1 ;
  1. S APCDVDFN=0 F S APCDVDFN=$O(^AUPNVSIT("AA",AUPNPAT,APCDODAT,APCDVDFN)) Q:APCDVDFN'=+APCDVDFN I '$P(^AUPNVSIT(APCDVDFN,0),U,11) D DISP
  1. Q
  1. ERR W !,"Must be a valid date and be Today or earlier. Time not allowed!" Q
  1. Q