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

BDGCCEN.m

Go to the documentation of this file.
  1. BDGCCEN ; IHS/ANMC/LJF - CURRENT INPT CENSUS ; [ 05/28/2002 10:15 AM ]
  1. ;;5.3;PIMS;**1003**;mAY 28, 2004
  1. ;IHS/ITSC/LJF 6/22/2005 PATCH 1003 added date/time to header on paper
  1. ;
  1. NEW X S X=$$BROWSE^BDGF I X="B" D EN Q
  1. I X=U Q
  1. ;4/26/02 WAR - Commented out next line per LJF1
  1. ;D ^%ZTLOAD K ZTSK,IO("Q") D HOME^%ZIS Q
  1. ;IHS/ANMC/LJF 5/22/2002 (Next line per Linda's LJF2 5/22/02)
  1. ;D ZIS^BDGF("QP","EN^BDGCCEN","CURRENT INPT CENSUS")
  1. D ZIS^BDGF("QP","EN^BDGCCEN","CURRENT INPT CENSUS","")
  1. Q
  1. ;
  1. ;
  1. EN ;EP; -- main entry point for BDG CURRENT CENSUS
  1. I $E(IOST,1,2)="P-" D INIT,PRINT Q
  1. NEW VALMCNT D TERM^VALM0,CLEAR^VALM1
  1. D EN^VALM("BDG CURRENT CENSUS")
  1. D CLEAR^VALM1
  1. Q
  1. ;
  1. HDR ; -- header code
  1. NEW X
  1. S VALMHDR(1)=$$SP(12)_"** "_$$CONF^BDGF_" **"
  1. Q
  1. ;
  1. INIT ; -- init variables and list array
  1. NEW WD,CNT,PT,S,TOTAL,SRV,ARRAY,NUM,X,TOTAL1,LINE,FIRST,TOTAL2
  1. K ^TMP("BDGCCEN",$J)
  1. S VALMCNT=0
  1. ;
  1. ; loop thru current inpatients by ward and count
  1. S WD=0 F S WD=$O(^DPT("CN",WD)) Q:WD="" D
  1. . S NUM=$G(NUM)+1
  1. . S (CNT,PT)=0 F S PT=$O(^DPT("CN",WD,PT)) Q:'PT S CNT=CNT+1
  1. . S ARRAY(NUM)=WD_U_CNT,TOTAL=$G(TOTAL)+CNT
  1. ;
  1. ; loop thru current inpatients by service and count
  1. S S=0 F S S=$O(^DPT("ATR",S)) Q:S="" D
  1. . S (CNT,PT)=0 F S PT=$O(^DPT("ATR",S,PT)) Q:'PT S CNT=CNT+1
  1. . S X=$$GET1^DIQ(45.7,S,.01) I X["OBSERVATION" S X="ZZ"_X
  1. . S SRV(X)=CNT,TOTAL1=$G(TOTAL1)+CNT
  1. ;
  1. S (S,NUM)=0 F S S=$O(SRV(S)) Q:S="" D
  1. . S X=S I X["ZZ" S X=$P(X,"ZZ",2) ;put observation srvs last
  1. . S NUM=NUM+1,$P(ARRAY(NUM),U,3)=X_U_SRV(S)
  1. ;
  1. ; take array with counts and set into display array
  1. S X=0,FIRST=1 F S X=$O(ARRAY(X)) Q:'X D
  1. . ;
  1. . ; separate observation services from others by a dashed line
  1. . I $P(ARRAY(X),U,3)["OBSERVATION" D
  1. .. S TOTAL2=$G(TOTAL2)+$P(ARRAY(X),U,4) ;total observations
  1. .. I FIRST D SET($$SP(35)_$$REPEAT^XLFSTR("-",33),.VALMCNT) S FIRST=0
  1. . ;
  1. . S LINE=$$PAD($$SP(2)_$P(ARRAY(X),U),20)_$J($P(ARRAY(X),U,2),5)
  1. . S LINE=$$PAD(LINE,34)_$P(ARRAY(X),U,3)
  1. . S LINE=$$PAD(LINE,60)_$J($P(ARRAY(X),U,4),5)
  1. . D SET(LINE,.VALMCNT)
  1. ;
  1. ; add totals to display array
  1. S LINE=$$SP(20)_$$REPEAT^XLFSTR("_",8)
  1. S LINE=$$PAD(LINE,60)_$$REPEAT^XLFSTR("_",8)
  1. D SET(LINE,.VALMCNT)
  1. ;
  1. S LINE=$$PAD($$SP(20)_$J(+$G(TOTAL),5),60)_$J(+$G(TOTAL1),5)
  1. D SET(LINE,.VALMCNT)
  1. ;
  1. I $G(TOTAL2) D ;if have observation pt count
  1. . S LINE=$$PAD($$SP(40)_"(Observation Pts =",60)_$J(TOTAL2,5)_" )"
  1. . D SET(LINE,.VALMCNT)
  1. ;
  1. Q
  1. ;
  1. SET(LINE,NUM) ; put display line into array
  1. S NUM=NUM+1
  1. S ^TMP("BDGCCEN",$J,NUM,0)=LINE
  1. Q
  1. ;
  1. PRINT ; print report to paper
  1. NEW BDGX,BDGLN,WARD
  1. ;U IO
  1. U IO D HDG ;IHS/ANMC/LJF 5/22/2002 (per Linda's LJF2 5/22/02)
  1. ;
  1. ; loop thru display array
  1. S BDGX=0 F S BDGX=$O(^TMP("BDGCCEN",$J,BDGX)) Q:'BDGX D
  1. . I $Y>(IOSL-4) D HDG
  1. . S BDGLN=^TMP("BDGCCEN",$J,BDGX,0)
  1. . W !,BDGLN
  1. D ^%ZISC,EXIT
  1. Q
  1. ;
  1. HDG ; heading for paper report
  1. ;
  1. ;IHS/ITSC/LJF 6/22/2005 PATCH 1003 added date/time; centered better
  1. ;D HDR W @IOF,?24,"Current Inpatient Census"
  1. NEW X W @IOF S X="Current Inpatient Census for "_$$FMTE^XLFDT($$NOW^XLFDT) W ?(80-$L(X)\2),X
  1. ;F I=1:1 Q:'$D(VALMHDR(I)) W !,VALMHDR(I)
  1. S X="** "_$$CONF^BDGF_" **" W !,?(80-$L(X)\2),X
  1. ;
  1. W !,$$REPEAT^XLFSTR("-",80)
  1. W !?2,"Ward",?20,"# of Pts",?34,"Service",?60,"# of Pts"
  1. W !,$$REPEAT^XLFSTR("=",80)
  1. Q
  1. ;
  1. HELP ; -- help code
  1. S X="?" D DISP^XQORM1 W !!
  1. Q
  1. ;
  1. EXIT ; -- exit code
  1. K ^TMP("BDGCCEN",$J)
  1. Q
  1. ;
  1. EXPND ; -- expand code
  1. Q
  1. ;
  1. PAD(D,L) ;EP -- SUBRTN to pad length of data
  1. ; -- D=data L=length
  1. Q $E(D_$$REPEAT^XLFSTR(" ",L),1,L)
  1. ;
  1. SP(N) ; -- SUBRTN to pad N number of spaces
  1. Q $$PAD(" ",N)