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

BDGAD3.m

Go to the documentation of this file.
  1. BDGAD3 ; IHS/ANMC/LJF - A&D SERV TRANSFERS ; [ 04/16/2004 4:39 PM ]
  1. ;;5.3;PIMS;**1013,1019**;APR 26, 2002;Build 3
  1. ;
  1. LOOP ;--loop service transfers
  1. NEW DGDT,DFN,IFN
  1. S DGDT=DGBEG
  1. F S DGDT=$O(^DGPM("AMV6",DGDT)) Q:'DGDT!(DGDT>DGEND) D
  1. . S DFN=0 F S DFN=$O(^DGPM("AMV6",DGDT,DFN)) Q:'DFN D
  1. .. S IFN=0 F S IFN=$O(^DGPM("AMV6",DGDT,DFN,IFN)) Q:'IFN D GATHER
  1. Q
  1. ;
  1. GATHER ; gather info on service transfers and put counts into arrays
  1. NEW ADULT,ADM,OLDSV,NEWSV,OLDSVN,NEWSVN,X,NAME,LOS,WARD
  1. I $D(^DGPM("AMV2",DGDT,DFN)) Q ;also ward transfer-already counted
  1. S LJF=DGDT_U_DFN_U_IFN
  1. S ADM=$P(^DGPM(IFN,0),U,14) ;admit ien
  1. I IFN=$$ADMTXN^BDGF1(ADM,DFN) Q ;don't use admit service
  1. S ADULT=$S($$AGE<$$ADULT^BDGPAR:0,1:1) ;1=adult, 0=peds
  1. ;
  1. Q:'+$$PRIORTXN^BDGF1(DGDT,ADM,DFN) ;ihs/cmi/maw 10/29/2010 patch 1014
  1. S OLDSV=$P(^DGPM(+$$PRIORTXN^BDGF1(DGDT,ADM,DFN),0),U,9) ;old srv
  1. I +OLDSV=0 W !,DFN_" "_ADM
  1. S X=$O(^DGPM("AMV6",DGDT,DFN,0)) Q:'X
  1. S NEWSV=$P($G(^DGPM(X,0)),U,9) Q:'NEWSV Q:(OLDSV=NEWSV)
  1. S OLDSVN=$$GET1^DIQ(45.7,OLDSV,.01)
  1. S NEWSVN=$$GET1^DIQ(45.7,NEWSV,.01)
  1. S X=$$PRIORMVT^BDGF1(DGDT,ADM,DFN) Q:'X ;prior physical mvmt
  1. S WARD=$$GET1^DIQ(405,X,.06,"I")
  1. ;
  1. S LOS=$$FMDIFF^XLFDT(DGDT,+$G(^DGPM(+$$PRIORTXN^BDGF1(DGDT,ADM,DFN),0)))
  1. ; collect patient data for report
  1. S NAME=$$GET1^DIQ(2,DFN,.01)
  1. Q:$$DEMO^APCLUTL(DFN,"E") ;ihs/cmi/maw patch 1019
  1. S ^TMP("BDGAD",$J,"SERV",NAME,DFN,IFN)=OLDSV_U_NEWSV
  1. Q:$G(BDGREP) ;reprint, not recalculating
  1. ;
  1. ; -- increment counts in ADT Census files
  1. ; -- set up services within wards if not already there
  1. I '$D(^BDGCWD(WARD,1,BDGT,1,NEWSV)) D
  1. . S ^BDGCWD(WARD,1,BDGT,1,NEWSV,0)=NEWSV
  1. . S $P(^BDGCWD(WARD,1,BDGT,1,0),U,3,4)=NEWSV_U_($P(^BDGCWD(WARD,1,BDGT,1,0),U,4)+1)
  1. I '$D(^BDGCWD(WARD,1,BDGT,1,OLDSV)) D
  1. . S ^BDGCWD(WARD,1,BDGT,1,OLDSV,0)=OLDSV
  1. . S $P(^BDGCWD(WARD,1,BDGT,1,0),U,3,4)=OLDSV_U_($P(^BDGCWD(WARD,1,BDGT,1,0),U,4)+1)
  1. ;
  1. I ADULT D
  1. . ; --- transfer in to new service
  1. . S $P(^BDGCTX(NEWSV,1,BDGT,0),U,5)=$P($G(^BDGCTX(NEWSV,1,BDGT,0)),U,5)+1
  1. . S $P(^BDGCWD(WARD,1,BDGT,1,NEWSV,0),U,5)=$P(^BDGCWD(WARD,1,BDGT,1,NEWSV,0),U,5)+1
  1. . ;
  1. . ; transfer out of old service
  1. . S $P(^BDGCTX(OLDSV,1,BDGT,0),U,6)=$P($G(^BDGCTX(OLDSV,1,BDGT,0)),U,6)+1
  1. . S $P(^BDGCWD(WARD,1,BDGT,1,OLDSV,0),U,6)=$P(^BDGCWD(WARD,1,BDGT,1,OLDSV,0),U,6)+1
  1. . S $P(^BDGCTX(OLDSV,1,BDGT,0),U,9)=$P($G(^BDGCTX(OLDSV,1,BDGT,0)),U,9)+LOS
  1. . S $P(^BDGCWD(WARD,1,BDGT,1,OLDSV,0),U,9)=$P(^BDGCWD(WARD,1,BDGT,1,OLDSV,0),U,9)+LOS
  1. . ;
  1. I 'ADULT D
  1. . ; --- transfer in to new service
  1. . S $P(^BDGCTX(NEWSV,1,BDGT,0),U,15)=$P($G(^BDGCTX(NEWSV,1,BDGT,0)),U,15)+1
  1. . S $P(^BDGCWD(WARD,1,BDGT,1,NEWSV,0),U,15)=$P(^BDGCWD(WARD,1,BDGT,1,NEWSV,0),U,15)+1
  1. . ; transfer out of old service
  1. . S $P(^BDGCTX(OLDSV,1,BDGT,0),U,16)=$P($G(^BDGCTX(OLDSV,1,BDGT,0)),U,16)+1
  1. . S $P(^BDGCWD(WARD,1,BDGT,1,OLDSV,0),U,16)=$P(^BDGCWD(WARD,1,BDGT,1,OLDSV,0),U,16)+1
  1. . S $P(^BDGCTX(OLDSV,1,BDGT,0),U,19)=$P($G(^BDGCTX(OLDSV,1,BDGT,0)),U,19)+LOS
  1. . S $P(^BDGCWD(WARD,1,BDGT,1,OLDSV,0),U,19)=$P(^BDGCWD(WARD,1,BDGT,1,OLDSV,0),U,19)+LOS
  1. ;
  1. Q
  1. ;
  1. AGE() ;--age at admit
  1. NEW X,X1,X2
  1. S X1=+$G(^DGPM(ADM,0)) ;admit date
  1. S X2=$P($G(^DPT(DFN,0)),U,3) D ^%DTC ;date of birth
  1. Q:'X "" Q X\365.25
  1. ;