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

ADGING21.m

Go to the documentation of this file.
  1. ADGING21 ; IHS/ADC/PDW/ENM - INPATIENT > 21 DAYS ; [ 03/25/1999 11:48 AM ]
  1. ;;5.0;ADMISSION/DISCHARGE/TRANSFER;;MAR 25, 1999
  1. ;
  1. A ; -- entry point
  1. N DIR S DIR(0)="NO",DIR("A")="Enter number of Days"
  1. S DIR("?")="What is the minimum length of stay for this report?"
  1. D ^DIR I $D(DIRUT) D Q Q
  1. S DGND=Y
  1. I DGND[U D Q Q
  1. I DGND="" D Q Q
  1. G:'DGND A
  1. D ZIS G:POP!($D(IO("Q"))) Q
  1. D DT,LP,Q
  1. Q
  1. QUE ; -- queued entry point
  1. D DT,LP,Q
  1. Q
  1. ZIS ; -- device selection
  1. S %ZIS="PQ"
  1. D ^%ZIS Q:POP
  1. I $D(IO("Q")) D TM
  1. Q
  1. DT ; -- date (today - 21 days)
  1. N X1,X2,X
  1. S X1=DT,X2=-DGND D C^%DTC S DGZDT=X
  1. Q
  1. LP ; -- loop inpatient by ward
  1. N WRD,DFN,ADM,TOT
  1. U IO S DGSTOP="",DGPG=0
  1. S (WRD,DFN,ADM)="",TOT=0 D HDH
  1. F S WRD=$O(^DPT("CN",WRD)) Q:WRD=""!(DGSTOP=U) D
  1. . F S DFN=$O(^DPT("CN",WRD,DFN)) Q:'+DFN!(DGSTOP=U) D
  1. .. S ADM=^DPT("CN",WRD,DFN)
  1. .. I +^DGPM(ADM,0)<DGZDT S TOT=TOT+1 D WRT
  1. Q:DGSTOP=U
  1. W !!,"Total: ",TOT,!!
  1. Q
  1. WRT ; -- print patient info
  1. N X,X1,X2,Y
  1. I $Y>(IOSL-4) D NEWPG Q:DGSTOP=U
  1. W !,$E($P(^DPT(DFN,0),U),1,25) ;name
  1. W ?27,$J($P($G(^AUPNPAT(DFN,41,DUZ(2),0)),U,2),9) ;HRCN
  1. S X1=DT,X2=$P(^DPT(DFN,0),U,3) D ^%DTC S X=X\365.25
  1. W ?37,$J(X,3) ;age
  1. W ?42,$E(WRD,1,5) ;ward
  1. S Y=+^DGPM(ADM,0) X ^DD("DD")
  1. W ?48,$P(Y,",",1) ;admission date
  1. S X1=DT,X2=+^DGPM(ADM,0) D ^%DTC W ?57,X ;los
  1. W ?63,$E($P(^AUPNPAT(DFN,11),U,18),1,12) ;community
  1. W ?76,$E($P(^DIC(45.7,^DPT(DFN,.103),0),U),1,3) ;service
  1. Q
  1. HDH ; -- heading
  1. N X,Y
  1. I DGPG>0!(IOST["C-") W @IOF
  1. S DGPG=DGPG+1
  1. W !,"PATIENTS WITH ",DGND," INPATIENT DAYS OR MORE"
  1. D NOW^%DTC S Y=X X ^DD("DD")
  1. W ?65,Y
  1. W !?5,"NAME",?31,"HRCN",?37,"AGE",?42,"WARD",?48,"ADM DT"
  1. W ?57,"LOS",?63,"COMMUNITY",?76,"SRV"
  1. S X="",$P(X,"-",IOM)=""
  1. W !,X
  1. Q
  1. ;
  1. NEWPG ; -- end of page control
  1. I IOST["C-" K DIR S DIR(0)="E" D ^DIR S DGSTOP=X Q:X=U
  1. D HDH Q
  1. ;
  1. TM ; -- tasked output
  1. S ZTRTN="QUE^ADGING21",ZTIO=ION,ZTDESC="INPATIENTS > 21 DAYS"
  1. S ZTSAVE("DGND")="" D ^%ZTLOAD
  1. Q
  1. Q ; -- cleanup
  1. I $G(DGSTOP)="",IOST["C-" D PRTOPT^ADGVAR
  1. D ^%ZISC D HOME^%ZIS
  1. K DGND,DGZDT,DGSTOP,DGPG,DIRUT Q