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

BDGSYS3.m

Go to the documentation of this file.
  1. BDGSYS3 ; IHS/ANMC/LJF - INPATIENT WARD SETUP ; [ 04/09/2004 8:18 AM ]
  1. ;;5.3;PIMS;**1005**;MAY 28, 2004
  1. ;IHS/OIT/LJF 04/27/2006 PATCH 1005 changed ScreenMan form to use authorization dates
  1. ;
  1. EN ; -- main entry point for BDG SYS WARD SETUP
  1. NEW VALMCNT
  1. D TERM^VALM0,CLEAR^VALM1
  1. D EN^VALM("BDG SYS WARD SETUP")
  1. D CLEAR^VALM1
  1. Q
  1. ;
  1. HDR ; -- header code
  1. NEW X
  1. S X=$$GET1^DIQ(40.8,BDGDIV,.01)
  1. S VALMHDR(1)=$$SP(79-$L(X)\2)_X
  1. Q
  1. ;
  1. INIT ; -- init variables and list array
  1. D MSG^BDGF("Pleaes wait while I compile the list...",1,0)
  1. NEW IEN,DIV,INA,NAME
  1. S VALMCNT=0
  1. K ^TMP("BDGSYS3",$J),^TMP("BDGSYS31",$J)
  1. ;
  1. ; loop thru wards and sort by division, active/inactive, then name
  1. S NAME=0 F S NAME=$O(^DIC(42,"B",NAME)) Q:NAME="" D
  1. . S IEN=0 F S IEN=$O(^DIC(42,"B",NAME,IEN)) Q:'IEN D
  1. .. Q:'$D(^BDGWD(IEN)) ;not in IHS Ward file (old deleted ward?)
  1. .. S DIV=$$GET1^DIQ(42,IEN,.015) I DIV="" S DIV="??"
  1. .. S INA=$S($$GET1^DIQ(9009016.5,IEN,.03,"I")="I":"INACTIVE",1:"ACTIVE")
  1. .. S ^TMP("BDGSYS31",$J,DIV,INA,NAME,IEN)=""
  1. ;
  1. ; take sorted list and create display lines
  1. NEW A,B,C,D,COUNT
  1. S A=0 F S A=$O(^TMP("BDGSYS31",$J,A)) Q:A="" D
  1. . S B=0 F S B=$O(^TMP("BDGSYS31",$J,A,B)) Q:B="" D
  1. .. S C=0 F S C=$O(^TMP("BDGSYS31",$J,A,B,C)) Q:C="" D
  1. ... S D=0 F S D=$O(^TMP("BDGSYS31",$J,A,B,C,D)) Q:'D D
  1. .... D LINE(A,B,C,D,.COUNT)
  1. ;
  1. I '$D(^TMP("BDGSYS3",$J)) D
  1. . D SET("*** NO ENTRIES FOUND ***",0,0,.VALMCNT)
  1. K ^TMP("BDGSYS31",$J)
  1. Q
  1. ;
  1. LINE(DIV,INA,NAME,IEN,COUNT) ; create display line
  1. NEW LINE
  1. S COUNT=$G(COUNT)+1
  1. S LINE=$J(COUNT,2)_". "_NAME ;ward name
  1. S LINE=$$PAD(LINE,32)_$$GET1^DIQ(9009016.5,IEN,.02) ;abbrev
  1. S LINE=$$PAD(LINE,42)_$E(DIV,1,15) ;division
  1. ;
  1. I $$GET1^DIQ(9009016.5,IEN,.03)="INACTIVE" D Q ;inactive
  1. . S LINE=$$PAD(LINE,60)_"** INACTIVE **"
  1. . D SET(LINE,COUNT,IEN,.VALMCNT)
  1. ;
  1. S LINE=$$PAD(LINE,60)
  1. I $$GET1^DIQ(9009016.5,IEN,101)="YES" S LINE=LINE_" ICU"
  1. I $$GET1^DIQ(9009016.5,IEN,105)="YES" S LINE=LINE_" PCU"
  1. I $$GET1^DIQ(42,IEN,.09,"I")=1 S LINE=LINE_" SI WARD"
  1. D SET(LINE,COUNT,IEN,.VALMCNT)
  1. Q
  1. ;
  1. SET(DATA,NUM,N,LINE) ; put display line into array
  1. S LINE=LINE+1
  1. S ^TMP("BDGSYS3",$J,LINE,0)=DATA
  1. S ^TMP("BDGSYS3",$J,"IDX",LINE,NUM)=N
  1. Q
  1. ;
  1. HELP ; -- help code
  1. S X="?" D DISP^XQORM1 W !!
  1. Q
  1. ;
  1. EXIT ; -- exit code
  1. K ^TMP("BDGSYS3",$J)
  1. Q
  1. ;
  1. EXPND ; -- expand code
  1. Q
  1. ;
  1. RESET ; -- update partition for return to list manager
  1. I $D(VALMQUIT) S VALMBCK="Q" Q
  1. D TERM^VALM0 S VALMBCK="R"
  1. D INIT,HDR
  1. Q
  1. ;
  1. ADD ;EP; called by Add Entry protocol
  1. NEW DIC,DLAYGO,Y,DDSFILE,DA,DR
  1. D FULL^VALM1
  1. ;
  1. NEW GNL F GNL=1:1 Q:'$D(^DIC(42,"AGL",GNL))
  1. S (DIC,DLAYGO)=42,DIC(0)="AEMQZL",DIC("DR")="44;.015;400///"_GNL
  1. ;
  1. D ^DIC K DIC I Y<1 D RESET Q
  1. S (DIC,DLAYGO)=9009016.5,DIC(0)="L",X=$P(Y,U,2),DINUM=+Y
  1. D ^DIC I Y<1 D RESET Q
  1. ;S DDSFILE=9009016.5,DA=+Y,DR="[BDG 9009016.5 SETUP]" D ^DDS
  1. S DDSFILE=9009016.5,DA=+Y,DR="[BDG 9009016.5 SETUP 2]" D ^DDS ;IHS/OIT/LJF 04/27/2006 PATCH 1005
  1. D RESET
  1. Q
  1. ;
  1. EDIT ;EP; called by Edit Entry protocol
  1. NEW X,Y,Z,BDGN,DDSFILE,DA,DR
  1. D FULL^VALM1
  1. D EN^VALM2(XQORNOD(0),"OS")
  1. I '$D(VALMY) Q
  1. S X=0 F S X=$O(VALMY(X)) Q:X="" D
  1. . S Y=0 F S Y=$O(^TMP("BDGSYS3",$J,"IDX",Y)) Q:Y="" D
  1. .. S Z=$O(^TMP("BDGSYS3",$J,"IDX",Y,0))
  1. .. Q:^TMP("BDGSYS3",$J,"IDX",Y,Z)=""
  1. .. I Z=X S BDGN=^TMP("BDGSYS3",$J,"IDX",Y,Z)
  1. ;
  1. I 'BDGN D RESET Q
  1. ;S DDSFILE=9009016.5,DA=BDGN,DR="[BDG 9009016.5 SETUP]" D ^DDS
  1. S DDSFILE=9009016.5,DA=BDGN,DR="[BDG 9009016.5 SETUP 2]" D ^DDS ;IHS/OIT/LJF 04/27/2006 PATCH 1005
  1. D RESET
  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)