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

DVBAB56.m

Go to the documentation of this file.
  1. DVBAB56 ;ALB/SPH - CAPRI READMISSION REPORT ; 3/22/12 8:34am
  1. ;;2.7;AMIE;**35,149,179**;Apr 10, 1995;Build 15
  1. ;Per VHA Directive 2004-038, this routine should not be modified.
  1. ;
  1. ;Input: ZMSG - Output Array for Re-Admission report (By Ref)
  1. ; BDATE - Beginning date for eport (FM Format)
  1. ; EDATE - Ending date for report (FM Format)
  1. ; DVBAH - Specifies Hospital (H) or DOM (D)
  1. ; DVBADLMTR - Indicates if report should be delimitted (Optional)
  1. ; CAPRI currently executes RPC by each day in
  1. ; date range, so DVBADLMTR should equal the
  1. ; final EDATE in range so that XTMP global
  1. ; can be killed.
  1. ;Output: ^TMP("DVBAR",$J) contains delimited/non-delimited re-admission report
  1. STRT(ZMSG,BDATE,EDATE,DVBAH,DVBADLMTR) ;
  1. N DVBAFNLDTE,SORTDT
  1. S DVBAFNLDTE=$S(+$G(DVBADLMTR):+$P(DVBADLMTR,"."),1:0)
  1. S DVBADLMTR=$S('+$G(DVBADLMTR):"",1:"^")
  1. S DVBABCNT=0
  1. G TERM
  1. SORT D RCV^DVBAVDPT I $D(RONUM),$D(RO) Q:CFLOC'=RONUM&(RO="Y")
  1. I RCVAA S ^TMP("DVBA",$J,"A&A",DFN)=DVBADT
  1. I RCVPEN S ^TMP("DVBA",$J,"PEN",DFN)=DVBADT
  1. Q
  1. ;
  1. DCHGDT S (LADMDT,LDCHGDT)="",DCHPTR=$P(^DGPM(VY,0),U,17),LADMDT=$P(^(0),U,1) I DCHPTR]"",$D(^DGPM(+DCHPTR,0)) S LDCHGDT=$P(^DGPM(+DCHPTR,0),U,1)
  1. Q
  1. ;
  1. CAL S I="",ZI=1 F DVBAI=0:0 S I=$O(^DGPM("APID",DFN,I)) Q:I="" F J=0:0 S J=$O(^DGPM("APID",DFN,I,J)) Q:J="" S ZJ=$S($D(^DGPM(J,0)):^(0),1:"") I $P(ZJ,U,1)'>EDATE,$P(ZJ,U,2)=1 S ^TMP("DVBA",$J,"ADM",DFN,ZI,J)="",ZI=ZI+1
  1. S VX=$O(^TMP("DVBA",$J,"ADM",DFN,1,0)) Q:VX="" S CURADMDT=$P(^DGPM(VX,0),U,1) Q:CURADMDT=""
  1. F VX=1:1 S VX=$O(^TMP("DVBA",$J,"ADM",DFN,VX)) Q:VX="" F VY=0:0 S VY=$O(^TMP("DVBA",$J,"ADM",DFN,VX,VY)) Q:VY="" D DCHGDT I CURADMDT["."&(LADMDT[".") D SET
  1. Q
  1. TDIS S TDIS=$S($D(^DGPM(+DCHPTR,0)):$P(^(0),U,18),1:"") Q:TDIS=""
  1. S:'$D(^DG(405.2,+TDIS,0)) TDIS="Unknown discharge type" I $D(^(0)) S TDIS=$S($P(^DG(405.2,+TDIS,0),U,1)]"":$P(^(0),U,1),1:"Unknown discharge type")
  1. Q
  1. ;
  1. SET S X1=CURADMDT,X2=LDCHGDT D ^%DTC Q:X>185
  1. S X2=LADMDT,X1=LDCHGDT D ^%DTC S LOS=X Q:LOS'>HOSPDAYS
  1. I DVBAT="A&A" DO ;**Check last admission for A&A vet
  1. .S ADMDT=LADMDT
  1. .D ADM^DVBAVDPT,TDIS
  1. .I TDIS["IRREGULAR" DO ;**Irregular discharge, set last admis info
  1. ..S ^TMP("DVBA",DVBAT,$J,SORTDT,XCN,CFLOC,VY,DFN,"LADM")=LADMDT_U_TDIS
  1. I $D(TDIS),(TDIS'["IRREGULAR"&(DVBAT="A&A")) Q ;**Quit
  1. S ADMDT=CURADMDT
  1. D ADM^DVBAVDPT,TDIS
  1. ; **Set current admis info
  1. S ^TMP("DVBA",DVBAT,$J,SORTDT,XCN,CFLOC,VY,DFN)=CURADMDT_U_RCVAA_U_RCVPEN_U_CNUM_U_TDIS
  1. I DVBAT="PEN" DO ;**Set last admis info for Pension vet
  1. .S ADMDT=LADMDT
  1. .D ADM^DVBAVDPT,TDIS
  1. .S ^TMP("DVBA",DVBAT,$J,SORTDT,XCN,CFLOC,VY,DFN,"LADM")=LADMDT_U_TDIS
  1. K DVBARADQ
  1. S (VX,VY)=9999999
  1. Q
  1. ;
  1. TERM ;D HOME^%ZIS
  1. K ^TMP("DVBA",$J),^TMP("DVBA","PEN",$J),^TMP("DVBA","A&A",$J),NOASK
  1. ;D NOPARM^DVBAUTL2 G:$D(DVBAQUIT) KILL^DVBAUTIL
  1. ;
  1. SETUP ;W @IOF,!,"VARO RE-ADMISSION REPORT"
  1. S DTAR=^DVB(396.1,1,0),FDT(0)=$$FMTE^XLFDT(DT,"5DZ")
  1. S HEAD="RE-ADMISSION REPORT",HEAD1="FOR "_$P(DTAR,U,1)_" ON "_FDT(0)
  1. ;W !,HEAD1
  1. EN1 ;W !!,"Please enter admission dates for search, oldest date first,",!,"most recent date last.",!!,"Last report was run on " S Y=$P(DTAR,U,7) X ^DD("DD") W Y,!!
  1. ;D DATE^DVBAUTIL G:Y<0 KILL^DVBAUTIL
  1. S BDATE1=BDATE+.5,HEADDT="Date range: "_$$FMTE^XLFDT(BDATE1,"5DZ")_" to "_$$FMTE^XLFDT(EDATE,"5DZ")
  1. ;
  1. ASK ;W !!,"Do you want (H)ospital or Hospital-(D)om H// " R DVBAH:DTIME G:'$T!(DVBAH=U) KILL^DVBAUTIL
  1. I DVBAH="" S DVBAH="H" W DVBAH
  1. S:DVBAH="d" DVBAH="D"
  1. S:DVBAH="h" DVBAH="H"
  1. I DVBAH'?1"H"&(DVBAH'?1"D") W *7,!!,"Must be H for HOSPITAL or D for HOSPITAL-DOM",!! H 3 G ASK
  1. S HEAD=HEAD_" ("_$S(DVBAH="H":"Hospital",DVBAH="D":"Hospital-Dom",1:"Unknown selection")_")"
  1. S Z=$S(DVBAH="D":1,DVBAH="H":2,1:0) W $P("Dom^Hospital",U,Z),!!
  1. ;S %ZIS("B")="0;P-OTHER",%ZIS("A")="Printing device: ",%ZIS="AEQ" D ^%ZIS G:POP KILL^DVBAUTIL
  1. I $D(IO("Q")) F I="NOASK","HEAD*","FDT(0)","DTAR","BDATE*","EDATE*","DVBAH" S ZTSAVE(I)=""
  1. I S NOASK=1,ZTRTN="DQ^DVBARADM",ZTDESC="AMIE Re-admission Report",ZTIO=ION D ^%ZTLOAD W:$D(ZTSK) !,"Request queued.",!! G KILL^DVBAUTIL
  1. GO I '$D(NOASK) W !!,"Looking for Pension and A&A cases ...",!!
  1. F DVBADT=BDATE:0 S DVBADT=$O(^DGPM("AMV1",DVBADT)) Q:DVBADT=""!(DVBADT>EDATE) W:'$D(NOASK) "." F DFN=0:0 S DFN=$O(^DGPM("AMV1",DVBADT,DFN)) Q:DFN="" F ADM=0:0 S ADM=$O(^DGPM("AMV1",DVBADT,DFN,ADM)) Q:ADM="" D SORT
  1. I '$D(NOASK) W !!,"Examining cases found for re-admissions within 185 days ...",!!
  1. F DVBAT="PEN","A&A" S HOSPDAYS=$S(DVBAT="PEN"&(DVBAH="H"):89,DVBAT="PEN"&(DVBAH="D"):59,1:29) F DFN=0:0 S DFN=$O(^TMP("DVBA",$J,DVBAT,DFN)) Q:DFN="" S SORTDT=^(DFN) D CAL W:'$D(NOASK) "+"
  1. K ^TMP("DVBA",$J,"PEN"),^TMP("DVBA",$J,"A&A")
  1. I '$D(^TMP("DVBA","PEN",$J))&('$D(^TMP("DVBA","A&A",$J))) D H 2 D:$D(ZTQUEUED) KILL^%ZTLOAD G KILL^DVBAUTIL
  1. .N DVBAERTXT S DVBAERTXT="No data found for parameters entered."
  1. .W DVBAERTXT S:($G(DVBADLMTR)'="") ^TMP("DVBAR",$J,DVBABCNT)=DVBAERTXT
  1. G ^DVBAB98
  1. ;
  1. DQ K ^TMP("DVBA",$J),^TMP("DVBA","PEN",$J),^TMP("DVBA","A&A",$J)
  1. G GO