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

ANSUPT.m

Go to the documentation of this file.
  1. ANSUPT ;IHS/OIRM/DSD/CSC - SELECT PATIENT; [ 02/25/98 10:32 AM ]
  1. ;;3.0;NURSING PATIENT ACUITY;;APR 01, 1996
  1. ;;SELECT PATIENT
  1. A1 D:$G(ANSCOUNT)<1 MSG
  1. K ANSDFN
  1. S DIC="^AUPNPAT(",DIC(0)="AEMQZ",DIC("A")="Enter Patient's Name or Chart NO.: "
  1. D DIC^ANSDIC
  1. S:$G(Y)>0 ANSDFN=+Y
  1. Q
  1. INPATAR ;SET UP INPATIENT ARRAY
  1. K ^TMP("ANSPA",$J),DUOUT
  1. S ANSX="",ANSX=$O(^ANSR("PT",ANSX))
  1. I ANSX="" W *7,!!,?10,"No current inpatients....." Q
  1. S ANSX=""
  1. F S ANSX=$O(^ANSR("PT",ANSX)) Q:ANSX=""!$D(DUOUT) D ARRAY
  1. D:'$D(DUOUT) INPAT
  1. K DUOUT
  1. Q
  1. ARRAY ;SET UP VARIABLES AND TEMPORARY INPAT GLOBAL
  1. S (ANSINPT,ANSUNIT,ANSROOM,ANSBED)=""
  1. S (ANSPUNIT,ANSPROOM,ANSPBED)=0
  1. I '$D(^DPT(ANSX,0)) Q
  1. S ANSINPT=$P(^DPT(ANSX,0),U)
  1. S ANSY=$O(^ANSR("PT",ANSX,""))
  1. Q:'ANSY
  1. Q:'$D(^ANSR(ANSY,0))!'$D(^("DX"))
  1. S ANSPUNIT=$P(^ANSR(ANSY,"DX"),U,2),ANSUNIT=$S(ANSPUNIT:^ANSD(59.1,ANSPUNIT,0),1:"NOT SPECIFIED")
  1. S ANSPROOM=$P(^ANSR(ANSY,"DX"),U,3),ANSROOM=$S(ANSPUNIT&ANSPROOM:^ANSD(59.1,ANSPUNIT,"R",ANSPROOM,0),1:"UNK")
  1. S ANSBED=$S(ANSPUNIT&ANSPROOM&($P(^ANSR(ANSY,"DX"),U,4)):^ANSD(59.1,ANSPUNIT,"R",ANSPROOM,"B",$P(^ANSR(ANSY,"DX"),U,4),0),1:"UNK")
  1. D CURASS
  1. S ^TMP("ANSPA",$J,ANSINPT,ANSUNIT,ANSROOM,ANSBED,ANSCADT)=""
  1. Q
  1. INPAT ;PRINT INPATIENT ARRAY HEADING
  1. W !!,?5,"You may choose one of the following inpatients:"
  1. W !,"================================================================================"
  1. W !,"LAST ASSESS",!,"DATE",?7,"SHFT",?17,"NAME",?50,"UNIT",?67,"ROOM",?77,"BED"
  1. W !,"----- ----",?13,"-----------------------------------",?50,"---------------",?67,"--------",?77,"---"
  1. S ANSZ=0,(ANSINPT,ANSUNIT,ANSROOM,ANSBED,ANSCADT)=""
  1. F S ANSINPT=$O(^TMP("ANSPA",$J,ANSINPT)) Q:ANSINPT=""!$D(DUOUT) D PARRAY
  1. Q
  1. PARRAY ;SET PRINT ARRAY VARIALBES
  1. S (ANSUNIT,ANSROOM,ANSBED,ANSCADT)=""
  1. S ANSUNIT=$O(^TMP("ANSPA",$J,ANSINPT,ANSUNIT))
  1. S:ANSUNIT ANSROOM=$O(^TMP("ANSPA",$J,ANSINPT,ANSUNIT,ANSROOM))
  1. S:ANSROOM ANSBED=$O(^TMP("ANSPA",$J,ANSINPT,ANSUNIT,ANSROOM,ANSBED))
  1. S:ANSBED ANSCADT=$O(^TMP("ANSPA",$J,ANSINPT,ANSUNIT,ANSROOM,ANSBED,ANSCADT))
  1. S ANSZ=ANSZ+1
  1. D:'$D(DUOUT) LIST
  1. Q
  1. LIST ;PRINT LIST OF INPATIENTS
  1. I ANSCADT["NONE" W !,"NONE"
  1. E W !,$E(ANSCADT,4,5)_"-"_$E(ANSCADT,6,7),?9,$P(ANSCADT,".",2)
  1. W ?13,$E(ANSINPT,1,35),?50,ANSUNIT,?67,ANSROOM,?77,ANSBED
  1. D LIST1:ANSZ>17
  1. Q
  1. LIST1 I ANSINPT]"" D
  1. .W !!,?10,"There are additional inpatients."
  1. .D PAUSE^ANSDIC S ANSZ=0
  1. Q
  1. CURASS ;FIND DATE AND SHIFT OF MOST RECENT ASSESSMENT
  1. S (ANSCA,ANSCADT)="",(AST,AST1)=0
  1. I '$D(^ANSR(ANSY,"AT")) S ANSCADT=" NONE" Q
  1. F S ANSCA=$O(^ANSR(ANSY,"AT",ANSCA)) Q:ANSCA="" S AST=AST+1
  1. D ANSCADT
  1. Q
  1. ANSCADT F I=0:1:AST-1 S ANSCADT=$O(^ANSR(ANSY,"AT",ANSCADT))
  1. Q
  1. MSG ;EP;
  1. S ANSCOUNT=1,DIR(0)="YO",DIR("A")="Do you want to see a list of current inpatients",DIR("B")="NO"
  1. W !
  1. D DIR^ANSDIC
  1. Q:$D(DTOUT)!$D(DUOUT)!($G(Y)'=1)
  1. D INPATAR
  1. K ^TMP("ANSPA",$J),ANSX,ANSINPT,ANSUNIT,ANSROOM,ANSBED,ANSPUNIT,ANSPROOM,ANSPBED,ANSZ
  1. Q