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

ANSQSS1.m

Go to the documentation of this file.
  1. ANSQSS1 ;IHS/OIRM/DSD/CSC - CALCULATE NURSE STAFFING STATS; [ 02/25/98 10:32 AM ]
  1. ;;3.0;NURSING PATIENT ACUITY;;APR 01, 1996
  1. ;;CALCULATE NURSE STAFFING TOTALS FOR EACH DAY
  1. ;;"A" NODE OF GLOBAL IS INFO ON EACH ADMISSION
  1. ;;"O" NODE IS INFOR ON EACH OBSERVATION
  1. EN I '$D(ANSPAR) S ANSPAR=^ANSD(51,1,0)
  1. D PERCENT
  1. S ANSD=0
  1. F S ANSD=$O(^TMP("ANS",$J,ANSD)) Q:'ANSD D
  1. .S ANSSH=0,(ANSTOT,ANSMAX)=""
  1. .F S ANSSH=$O(^TMP("ANS",$J,ANSD,ANSSH)) Q:'ANSSH D
  1. ..S (ANSAS,ANSCL,ANSRT)=""
  1. ..S:$D(^TMP("ANS",$J,ANSD,ANSSH,"A")) ANSAS=^("A")
  1. ..S:$D(^TMP("ANS",$J,ANSD,ANSSH,"O")) ANSCL=^("O")
  1. ..S T=0
  1. ..F L=1:1:6 S N=$P(ANSCL,U,L) D:N
  1. ...D:$D(ANSP(ANSSH)) SBRTL
  1. ...S $P(ANSTOT,U,L+4)=$P(ANSTOT,U,L+4)+N,T=T+N
  1. ..I T>ANSMAX S ANSMAX=T
  1. ..S N=$P(ANSCL,U,5)
  1. ..I N S ANSRT=ANSRT+(N*.5),$P(ANSTOT,U,4)=$P(ANSTOT,U,4)+N
  1. ..S T=0
  1. ..F L=1:1:6 S N=$P(ANSAS,U,L) I N D SBRTA S T=T+N
  1. ..S A=ANSRT,S="H",P=3 D SBADD
  1. ..S $P(ANSTOT,U,3)=$P(ANSTOT,U,3)+T,$P(ANSTOT,U,11)=$P(ANSTOT,U,11)+ANSRT
  1. .D B1
  1. D C1
  1. Q
  1. B1 ;SET DAILY TOTAL AND SET GLOBAL NODE WITH TOTAL SUMMARY FOR THE DAY
  1. S $P(ANSTOT,U,2)=ANSMAX,T=0
  1. F I=5:1:10 S T=T+$P(ANSTOT,U,I),$P(ANSTOT,U,I)=$P(ANSTOT,U,I)/ANSNS
  1. S $P(ANSTOT,U)=T/ANSNS,T=0
  1. F I=1:1:3 I $D(^TMP("ANS",$J,ANSD,I,"H")) S T=T+$P(^("H"),U)-$P(^("H"),U,2)
  1. S $P(ANSTOT,U,12)=T,^TMP("ANS",$J,ANSD,"T")=ANSTOT
  1. Q
  1. C1 D ^ANSQSP
  1. Q
  1. SBRTL ;CALCULATE THE REQUIRED NURSING TIME FOR EACH LEVEL OF CARE
  1. ;ANSP(ANSSH) = PERCENT OF CARE REQUIRED FOR THE SHIFT
  1. ;ANSH(L) = HOURS OF CARE REQUIRED BY LEVEL OF CARE FOR THE DAY
  1. ;N = NUMBER OF PATIENTS AT THE CARE LEVEL
  1. S H=ANSP(ANSSH)*ANSH(L)*N,ANSRT=ANSRT+H
  1. Q
  1. SBRTA ;CALCULATE THE NUMBER OF HOURS OF NURSING TIME REQUIRED FOR ADMISSIONS
  1. ;ANSA(L) = HOURS REQUIRED FOR ADMISSION FOR EACH CARE LEVEL
  1. ;N = NUMBER OF PATIENTS AT THE CARE LEVEL
  1. S H=ANSA(L)*N,ANSRT=ANSRT+H
  1. Q
  1. SBADD ;SET TEMP GLOBAL NODES FOR PRINTOUT
  1. I '$D(^TMP("ANS",$J,ANSD,ANSSH,S)) S ^TMP("ANS",$J,ANSD,ANSSH,S)=""
  1. S $P(^TMP("ANS",$J,ANSD,ANSSH,S),U,P)=$P(^TMP("ANS",$J,ANSD,ANSSH,S),U,P)+A,ANSRT=$P(^(S),U,P)
  1. Q
  1. PERCENT ;CALCULATE THE PERCENT OF TIME REQUIRED PER SHIFT
  1. ;ANSNS = NUMBER OF SHIFTS
  1. K ANSP
  1. S ANSNS=$P(ANSPAR,U,5),X=""
  1. S X=$G(^ANSD(51.1,ANSNS,1))
  1. F I=1:1:ANSNS S ANSP(I)=$P(X,U,I)/100
  1. Q