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

ADGRALP.m

Go to the documentation of this file.
  1. ADGRALP ; IHS/ADC/PDW/ENM - READMISSION LISTING (PRINT) ; [ 03/25/1999 11:48 AM ]
  1. ;;5.0;ADMISSION/DISCHARGE/TRANSFER;;MAR 25, 1999
  1. ;
  1. ;***> initialize variables
  1. S DGPAGE=0,DGSTOP="",DGDUZ=$P(^VA(200,DUZ,0),U,2)
  1. S DGSITE=$P(^DIC(4,DUZ(2),0),U) ;set site
  1. S DGRANGE=$E(DGBDT,4,5)_"/"_$E(DGBDT,6,7)_"/"_$E(DGBDT,2,3)_" to "
  1. S DGRANGE=DGRANGE_$E(DGEDT,4,5)_"/"_$E(DGEDT,6,7)_"/"_$E(DGEDT,2,3)
  1. S DGLINE="",$P(DGLINE,"=",80)=""
  1. S DGLINE2="",$P(DGLINE2,"-",80)=""
  1. ;
  1. G DATE:DGTYP=1,WARD^ADGRALP1:DGTYP=2,SERV^ADGRALP1:DGTYP=3 ;sort?
  1. ;
  1. DATE ;***> admit date order
  1. S DGDT=0
  1. DT1 S DGDT=$O(^TMP("DGZRAL",$J,DGDT)) G END:DGDT="" S DGTM=0
  1. I DGPAGE=0 D NEWPG G END1:DGSTOP=U
  1. DT2 S DGTM=$O(^TMP("DGZRAL",$J,DGDT,DGTM)) G DT1:DGTM="" S DFN=0
  1. DT3 S DFN=$O(^TMP("DGZRAL",$J,DGDT,DGTM,DFN)) G DT2:DFN=""
  1. S DGS=^TMP("DGZRAL",$J,DGDT,DGTM,DFN)
  1. S DGW=$P(DGS,U),DGSV=$P(DGS,U,2),DGDX=$P(DGS,U,3)
  1. S DGNM=$P(^DPT(DFN,0),U),DGTIM=$E($P(DGTM,".",2)_"000",1,4)
  1. S DGRE=$P(DGS,U,4),DGDSA=$P(DGS,U,5),DGDS=$P(DGS,U,6)
  1. S DGLST=$P(DGS,U,7),DGA=$P(DGS,U,8)
  1. D LINE G END1:DGSTOP=U G DT3
  1. ;
  1. ;
  1. END ;***> eoj
  1. I IOST["C-" K DIR S DIR(0)="E" D ^DIR
  1. END1 ;EP;
  1. W @IOF D KILL^ADGUTIL
  1. D ^%ZISC K ^TMP("DGZRAL") Q
  1. ;
  1. LINE ;***> subrtn to print patient data
  1. W !!,$E(DGNM,1,20) ;patient name
  1. W ?27,$E(DGTM,4,5)_"/"_$E(DGTM,6,7)_"/"_$E(DGTM,2,3) ;admit date
  1. W "@"_$E($P(DGTM,".",2)_"000",1,4) ;admit time
  1. W ?41,$E(DGSV,1,3),?48,$E(DGW,1,3) ;service & ward
  1. W ?53,$E(DGDX,1,25) ;admit dx
  1. S DGX=$P(^AUPNPAT(DFN,41,DUZ(2),0),U,2) W !,"[#",$J(DGX,6),"]" ;chart
  1. I DGRE["A" D ;if readmission
  1. .W ?11,"Last Admission:"
  1. .W ?27,$E(DGLST,4,5)_"/"_$E(DGLST,6,7)_"/"_$E(DGLST,2,3) ;last admit
  1. .W "@"_$E($P(DGLST,".",2)_"000",1,4) ;last admit time
  1. .S DGSVL=$P($G(^DIC(45.7,+$$TS,0)),U) ;srv
  1. .S DGWRD=$P(^DIC(42,$P(^DGPM(DGA,0),U,6),0),U) ;ward
  1. .W ?41,$E(DGSVL,1,3),?48,$E(DGWRD,1,3) ;last srv & wrd
  1. .S DGDX=$P(^DGPM(DGA,0),U,10) W ?53,$E(DGDX,1,25) ;admit dx
  1. E D ;if admission is after day surgery
  1. .W:DGRE["DS" ?11,"Admit from DS:"
  1. .W:DGRE'["S" ?11,"Day Surgery:"
  1. .W ?27,$E(DGDS,4,5)_"/"_$E(DGDS,6,7)_"/"_$E(DGDS,2,3) ;ds date
  1. .W "@"_$E($P(DGDS,".",2)_"000",1,4) ;ds time
  1. .S DGDSTR=^ADGDS(DFN,"DS",DGDSA,0)
  1. .S DGSRVL=$P(^DIC(45.7,$P(DGDSTR,U,5),0),U) ;ds service
  1. .S DGPROC=$P(DGDSTR,U,2) ;ds procedure
  1. .W ?41,$E(DGSRVL,1,3),?53,$E(DGPROC,1,25) ;print srv & proc
  1. I $Y>(IOSL-4) D NEWPG
  1. Q
  1. ;
  1. NEWPG ;EP;***> subrtn for end of page control
  1. I IOST'?1"C-".E D HEAD S DGSTOP="" Q
  1. I DGPAGE>0 K DIR S DIR(0)="E" D ^DIR S DGSTOP=X
  1. I DGSTOP'=U D HEAD
  1. Q
  1. ;
  1. I (IOST["C-")!(DGPAGE>0) W @IOF
  1. W !,DGLINE S DGPAGE=DGPAGE+1
  1. W !?11,"*****Confidential Patient Data Covered by Privacy Act*****"
  1. W !,DGDUZ,?80-$L(DGSITE)/2,DGSITE S DGTY="READMISSIONS"
  1. W ! D TIME^ADGUTIL W ?80-$L(DGTY)/2,DGTY,?70,"Page: ",DGPAGE
  1. S Y=DT X ^DD("DD") W !,Y,?30,DGRANGE ;date range
  1. S DGX="(SORTED BY "_$S(DGTYP=1:"DATE",DGTYP=2:"WARD",1:"SERVICE")_")"
  1. W !?80-$L(DGX)/2,DGX
  1. W !,DGLINE I DGTYP=1 W !?32,"Admit",?57,"Admitting Diagnosis /"
  1. W !?54,"Admitting Diagnosis /",!,"Patient Name"
  1. I DGTYP=1 W ?29,"Date/Time",?41,"Srv",?47,"Ward"
  1. I DGTYP=2 W ?33,"Admit Date",?48,"Srv"
  1. I DGTYP=3 W ?33,"Admit Date",?47,"Ward"
  1. W:$O(^ADGDS(0)) ?58,"Day Surg Procedure" W !,DGLINE2
  1. I DGTYP>1 S DGX="** "_$S(DGTYP=2:DGW,1:DGSV)_" **" W !!?80-$L(DGX)/2,DGX
  1. Q
  1. ;
  1. TS() ; -- treating specialty ifn
  1. Q $P($G(^DGPM(+$O(^DGPM("APHY",DGA,0)),0)),U,9)