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

BEDDUTIL.m

Go to the documentation of this file.
  1. BEDDUTIL ;VNGT/HS/BEE-BEDD Utility Routine ; 08 Nov 2011 12:00 PM
  1. ;;2.0;BEDD DASHBOARD;**1,2**;Jun 04, 2014;Build 26
  1. ;
  1. Q
  1. ;
  1. CHECKAV(BEDDAV) ;EP - Auth AC/VC, Ret DUZ
  1. ;
  1. ; Input: BEDDAV-ACCESS_";"_VERIFY
  1. ; Output: DUZ
  1. ;
  1. N BEDDDUZ,XUF
  1. ;
  1. S:$G(U)="" U="^"
  1. S:$G(DT)="" DT=$$DT^XLFDT
  1. ;
  1. ;Err Trap
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BEDDUTIL D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. S XUF=0
  1. S BEDDDUZ=$$CHECKAV^XUS(BEDDAV)
  1. I BEDDDUZ=0 Q 0
  1. ;
  1. ;Ret DUZ if user inactive
  1. I (+$P($G(^VA(200,BEDDDUZ,0)),U,11)'>0)!(+$P($G(^VA(200,BEDDDUZ,0)),U,11)'<DT) Q BEDDDUZ
  1. Q 0
  1. ;
  1. AUTH(BEDDDUZ) ;EP - Auth User for ED Access
  1. ;
  1. ; Input: BEDDDUZ - User's DUZ
  1. ; Output: 0-Not Auth/1-Auth
  1. ;
  1. N BEDDKEY
  1. ;
  1. S:$G(U)="" U="^"
  1. ;
  1. ;Error Trap
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BEDDUTIL D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. I $G(BEDDDUZ)<1 Q 0
  1. S BEDDKEY=$O(^DIC(19.1,"B","BEDDZDASH","")) I BEDDKEY="" Q 0
  1. I '$D(^VA(200,"AB",BEDDKEY,BEDDDUZ,BEDDKEY)) Q 0
  1. Q 1
  1. ;
  1. SNAME(SITE) ;EP - Ret Site Name
  1. ;
  1. I $G(SITE)="" Q ""
  1. ;
  1. Q $$GET1^DIQ(4,SITE_",",".01","E")
  1. ;
  1. SITE(BEDDST) ;EP - Assemble List of Sites From File 40.8
  1. ;
  1. ; Input: BEDDSITE - Empty Arr
  1. ; Output: BEDDSITE - List of file 4 entries pointed to by file 40.8 entries
  1. ;
  1. N BEDDSITE,BEDDIEN
  1. ;
  1. S:$G(U)="" U="^"
  1. ;
  1. ;Error Trap
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BEDDUTIL D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. S BEDDSITE="" F S BEDDSITE=$O(^DG(40.8,"B",BEDDSITE)) Q:BEDDSITE="" D
  1. . S BEDDIEN="" F S BEDDIEN=$O(^DG(40.8,"B",BEDDSITE,BEDDIEN)) Q:BEDDIEN="" D
  1. .. NEW INNM,INIEN
  1. .. S INIEN=$$GET1^DIQ(40.8,BEDDIEN_",",.07,"I") Q:INIEN=""
  1. .. S INNM=$$GET1^DIQ(4,INIEN_",",".01","I") Q:INNM=""
  1. .. S BEDDST(INNM_":"_INIEN)=INNM_U_INIEN
  1. Q
  1. ;
  1. BEDDLST(BEDD,SITE) ;EP - Assemble ED List
  1. ;
  1. ; Input: BEDD - Empty Array
  1. ; SITE - Site to look up
  1. ; Output: BEDD - List of Dashboard Pats
  1. ;
  1. S SITE=$G(SITE)
  1. ;
  1. ;Error Trap
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BEDDUTIL D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. NEW BEDDDAY,BEDDIEN,BEDDGL,BEDDTOT,BEDDBDY,PNDLKBDY,BEDDGLD
  1. ;
  1. ;BEDD*2.0*1;Pull pending look back days
  1. S PNDLKBDY=10
  1. I +$G(SITE)=0,SITE'="Whiteboard" D
  1. . NEW SIEN,ST,EXEC
  1. . S SIEN=$O(^BEDD.EDSYSTEMD("")) Q:SIEN=""
  1. . S EXEC="S ST=##CLASS(BEDD.EDSYSTEM).%OpenId(SIEN,0)" X EXEC
  1. . S EXEC="S SITE=ST.Site" X EXEC
  1. I +$G(SITE)]"" D
  1. . NEW SYSIEN,EXEC,EDSYSTEM,ISITE
  1. . S ISITE=$S(SITE="Whiteboard":"999999",1:SITE)
  1. . S EXEC="S SYSIEN=$O(^BEDD.EDSYSTEMI(""SiteIdx"","" ""_ISITE,""""))" X EXEC
  1. . I $G(SYSIEN)="" Q
  1. . S EXEC="S EDSYSTEM=##CLASS(BEDD.EDSYSTEM).%OpenId(SYSIEN,0)" X EXEC
  1. . S EXEC="S PNDLKBDY=EDSYSTEM.PendingStsLookBack" X EXEC
  1. . I +PNDLKBDY=0 S PNDLKBDY=10
  1. ;
  1. K BEDD
  1. ;
  1. ;BEDD*2.0*1;Use parameter
  1. S BEDDBDY=$P($H,",")-PNDLKBDY,BEDDDAY=""
  1. S BEDDGL="^BEDD.EDVISITI(""ArrIdx"")"
  1. S BEDDGLD="^BEDD.EDVISITD"
  1. F S BEDDDAY=$O(@BEDDGL@(BEDDDAY),-1) Q:((BEDDDAY="")!(BEDDDAY<BEDDBDY)) D
  1. . S BEDDIEN="" F S BEDDIEN=$O(@BEDDGL@(BEDDDAY,BEDDIEN),-1) Q:BEDDIEN="" D
  1. .. ;
  1. .. ;Remove deleted entries
  1. .. I '$D(@BEDDGLD@(BEDDIEN)) Q
  1. .. ;
  1. .. NEW TRG,ROOM,EDWTIM,EDSTAT,EDTRG,EDROOM,PTDFN
  1. .. S (EDSTAT,EDTRG,EDROOM,EDWTIM,PTDFN)=""
  1. .. ;
  1. .. ;Ret entry
  1. .. D BEDDED^BEDDUTW(BEDDIEN,.EDSTAT,.EDTRG,.EDROOM,.EDWTIM,.PTDFN)
  1. .. ;
  1. .. I EDSTAT=9 Q
  1. .. I EDSTAT=8 Q
  1. .. ;
  1. .. ;Strip dupes
  1. .. Q:$G(PTDFN)=""
  1. .. I $D(BEDD("D",PTDFN)) Q
  1. .. S BEDD("D",PTDFN)=""
  1. .. ;
  1. .. S TRG="" I EDTRG'="" S TRG=EDTRG
  1. .. S:TRG="" TRG=" "
  1. .. S ROOM=" " I EDROOM'="" S ROOM=EDROOM
  1. .. I EDSTAT=1 S BEDD(EDSTAT,BEDDIEN)=EDWTIM
  1. .. I EDSTAT=2 S BEDD(EDSTAT,TRG,BEDDIEN)=EDWTIM
  1. .. I EDSTAT=3 S BEDD(EDSTAT,ROOM,BEDDIEN)=EDWTIM
  1. .. I EDSTAT=4 S BEDD(EDSTAT,TRG,BEDDIEN)=EDWTIM
  1. .. S BEDD("SUM",EDSTAT,BEDDIEN)=EDWTIM
  1. .. S $P(BEDDTOT(EDSTAT),"^")=$P($G(BEDDTOT(EDSTAT)),"^")+1
  1. .. S $P(BEDDTOT(EDSTAT),"^",2)=$P($G(BEDDTOT(EDSTAT)),"^",2)+EDWTIM
  1. .. ;
  1. .. ;Track entries
  1. .. S BEDD("L",BEDDIEN)=""
  1. ;
  1. ;Assemble Totals
  1. S EDSTAT="" F S EDSTAT=$O(BEDDTOT(EDSTAT)) Q:EDSTAT="" D
  1. . NEW CNT,WTG,AVG
  1. . S CNT=$P(BEDDTOT(EDSTAT),"^")
  1. . S WTG=$P(BEDDTOT(EDSTAT),"^",2)
  1. . S AVG="" I CNT>0,WTG>0 S AVG=WTG\CNT
  1. . S BEDD("TSUM",EDSTAT)=CNT_"^"_WTG_"^"_AVG
  1. ;
  1. ;Check (and Repair) Room Occupancy
  1. D RMAV^BEDDUTW(.BEDD)
  1. ;
  1. Q
  1. ;
  1. GETCC(BEDDIEN,BEDDCOMP,TYPE) ;EP - Get V NARRATIVE TEXT
  1. ;
  1. ; Input:
  1. ; BEDDIEN - V NARRATIVE TEXT Entry IEN
  1. ; BEDDCOMP - BEDD.EDVISIT - Complaint field value
  1. ; TYPE - Return type - P-Presenting, C-Chief, Null-All
  1. ;
  1. ; Output:
  1. ; V NARRATIVE TEXT (1st) or Complaint value (2nd)
  1. ;
  1. ;Error Trap
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BEDDUTIL D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. S TYPE=$G(TYPE)
  1. ;
  1. ;Ret only pres comp
  1. I TYPE="P" Q BEDDCOMP
  1. ;
  1. NEW BEDDCTXT
  1. S BEDDIEN=$G(BEDDIEN,""),BEDDCOMP=$G(BEDDCOMP,"")
  1. S BEDDCTXT=""
  1. ;
  1. I $G(BEDDIEN)]"",$D(^AUPNVNT("AD",BEDDIEN)) D
  1. . NEW BEDDCC
  1. . S BEDDCC=$O(^AUPNVNT("AD",BEDDIEN,""),-1)
  1. . I $D(^AUPNVNT(BEDDCC,11,0)) D
  1. .. N LN
  1. .. S LN=0 F S LN=$O(^AUPNVNT(BEDDCC,11,LN)) Q:LN="" D
  1. ... S BEDDCTXT=$G(BEDDCTXT)_$S(BEDDCTXT="":"",1:" ")_$G(^AUPNVNT(BEDDCC,11,LN,0))
  1. ;
  1. S:BEDDCTXT="" BEDDCTXT=BEDDCOMP
  1. ;
  1. Q BEDDCTXT
  1. ;
  1. GETF(BEDDFILE,BEDDIEN,BEDDFLD,BEDDIE) ; EP - Ret val from spec file/field
  1. ;
  1. ; Input:
  1. ; BEDDFILE - RPMS file numb
  1. ; BEDDIEN - File IEN
  1. ; BEDDFLD - Field to ret
  1. ; BEDDIE - Int/Ext disp
  1. ;
  1. ; Output:
  1. ; Val in the field
  1. ;
  1. ;Error Trap
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BEDDUTIL D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. I BEDDFILE=""!(BEDDFLD="") Q ""
  1. I $TR(BEDDIEN,",")'?1N.N Q ""
  1. S:$G(BEDDIE)="" BEDDIE="E"
  1. S:$E(BEDDIEN,$L(BEDDIEN))'="," BEDDIEN=BEDDIEN_","
  1. Q $$GET1^DIQ(BEDDFILE,BEDDIEN,BEDDFLD,BEDDIE)
  1. ;
  1. GETOSTAT(DFN) ; EP - Get Order Summ By Pack Type
  1. ;
  1. ; Input:
  1. ; DFN - Patient IEN
  1. ;
  1. ; Output:
  1. ; Package Order Summ for T and T-1
  1. ;
  1. ;Error Trap
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BEDDUTIL D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. NEW BEDDORD,BEDDOST,BEDDIX,BYDT,X,X1,X2,YDT
  1. ;
  1. I $G(DFN)="" Q ""
  1. ;
  1. S:$G(DT)="" DT=$$DT^XLFDT
  1. S X1=DT,X2=-1 D C^%DTC S YDT=X
  1. S BYDT=9999999-YDT
  1. ;
  1. S BEDDIX="" F S BEDDIX=$O(^OR(100,"AC",DFN_";DPT(",BEDDIX)) Q:BEDDIX>BYDT!'BEDDIX D
  1. . NEW BEDDOIEN S BEDDOIEN="" F S BEDDOIEN=$O(^OR(100,"AC",DFN_";DPT(",BEDDIX,BEDDOIEN)) Q:BEDDOIEN="" D
  1. .. NEW BEDDOSTS,BEDDORDT,BEDDOITM,BEDDOPRF
  1. .. S BEDDOSTS=$$GET1^DIQ(100,BEDDOIEN_",",5,"E") Q:BEDDOSTS=""
  1. .. S BEDDORDT=$$GET1^DIQ(100,BEDDOIEN_",",4,"I")
  1. .. Q:BEDDORDT<YDT
  1. .. ;
  1. .. S BEDDOITM=$$GET1^DIQ(100,BEDDOIEN_",",7,"E")
  1. .. S:BEDDOITM="" BEDDOITM=$$GET1^DIQ(100,BEDDOIEN_",",2,"E")
  1. .. S BEDDOPRF=$$GET1^DIQ(100,BEDDOIEN_",",33,"E")
  1. .. S BEDDOITM=$E(BEDDOITM,1,2)
  1. .. S BEDDOITM=$S(BEDDOITM="LR":"LAB",BEDDOITM="RA":"RAD",BEDDOITM="PS":"RX",BEDDOITM="GM":"CONSULT",1:BEDDOITM)
  1. .. Q:BEDDOITM=""
  1. .. S BEDDORD(BEDDOITM,BEDDOSTS)=$G(BEDDORD(BEDDOITM,BEDDOSTS))+1
  1. ;
  1. S (BEDDORD,BEDDIX)="" F S BEDDIX=$O(BEDDORD(BEDDIX)) Q:BEDDIX="" D
  1. . N BEDDIX1 S BEDDIX1="" F S BEDDIX1=$O(BEDDORD(BEDDIX,BEDDIX1)) Q:BEDDIX1="" D
  1. .. S BEDDORD=$G(BEDDORD)_BEDDORD(BEDDIX,BEDDIX1)_" "_BEDDIX1_" "_BEDDIX_"; "
  1. Q BEDDORD
  1. ;
  1. LOGSEC(DUZ,DFN) ;EP - Adds/updates entry in DG Security Log file
  1. ;
  1. ; Input:
  1. ; DUZ - User IEN
  1. ; DFN - Patient IEN
  1. ;
  1. ;Error Trap
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BEDDUTIL D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. NEW DGOPTI,DGOPT2
  1. ;
  1. S DGOPTI=$O(^DIC(19,"B","BEDDEDIT",0)) Q:DGOPTI=""
  1. S DGOPT2=$P(^DIC(19,DGOPTI,0),"^",1)_"^"_$P(^DIC(19,DGOPTI,0),"^",2)
  1. I $TR(DGOPT2,"^","")]"" D SETLOG1^DGSEC(DFN,DUZ,,DGOPT2)
  1. ;
  1. Q
  1. ;
  1. PPR(BEDDVIEN,OBJID,DFN) ;EP - Ret the Primary Prov
  1. ;
  1. ;Error Trap
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BEDDUTIL D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. NEW PPR,EDOBJ,PIEN
  1. ;
  1. S PPR=""
  1. I $G(BEDDVIEN)="" Q ""
  1. S PIEN="" F S PIEN=$O(^AUPNVPRV("AD",BEDDVIEN,PIEN),-1) Q:PIEN="" I $$GET1^DIQ(9000010.06,PIEN_",",.04,"I")="P" S PPR=$$GET1^DIQ(9000010.06,PIEN_",",.01,"E") Q
  1. ;
  1. I $G(DFN)]"",PPR="" S PPR=$$PTPCP^BEDDUTIL(DFN)
  1. I $G(OBJID)]"",PPR'="" D UPPRV^BEDDUTW(OBJID,PPR)
  1. Q PPR
  1. ;
  1. XNOW(FORM) ;EP - Ret Curr Ext Date and Time
  1. ;
  1. ; Input:
  1. ; FORM (Optional) - Sec parm of XLFDT call
  1. ;
  1. ; Output:
  1. ; Date/Time in MMM DD,CCYY@HH:MM:SS format
  1. ;
  1. ;Error Trap
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BEDDUTIL D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. S FORM=$G(FORM,"")
  1. NEW %,%H,%I,X
  1. D NOW^%DTC
  1. Q $$FMTE^XLFDT(%,FORM)
  1. ;
  1. FNOW() ;EP - Return Current FileMan Date and Time
  1. ;
  1. ; Input:
  1. ; None
  1. ;
  1. ; Output:
  1. ; Date/Time in FileMan CYYMMDD.HHMMSS format
  1. ;
  1. ;Error Trap
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BEDDUTIL D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. NEW %,%H,%I,X
  1. D NOW^%DTC
  1. Q %
  1. ;
  1. DATE(DATE) ;EP - Convert stand dt/time to FileMan dt/time
  1. ;
  1. ; Input:
  1. ; DATE - In stand format
  1. ;
  1. ; Output:
  1. ; Date/Time in FileMan CYYMMDD.HHMMSS format
  1. ; -1 is if it couldn't conv to FileMan date
  1. ;
  1. ;Error Trap
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BEDDUTIL D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. NEW %DT,X,Y
  1. I DATE[":" D
  1. . I DATE["/",$L(DATE," ")=3 S DATE=$P(DATE," ",1)_"@"_$P(DATE," ",2)_$P(DATE," ",3) Q
  1. . I $L(DATE," ")=3 S DATE=$P(DATE," ",1,2)_"@"_$P(DATE," ",3)
  1. . I $L(DATE," ")>3 S DATE=$P(DATE," ",1,3)_"@"_$P(DATE," ",4,99)
  1. S %DT="TS",X=DATE D ^%DT
  1. I Y=-1 S Y=""
  1. ;
  1. Q Y
  1. ;
  1. NEW(D,AMERDFN,D0,D1,DFN,NODSP) ;EP - Create ED Entry - Called from AMER routine
  1. ;
  1. ; Input:
  1. ; D - Current entry information - Quit if defined
  1. ; AMERDFN/DFN - Patient's DFN entry
  1. ; D0/D1 - VIEN/ADT info
  1. ; NODSP - Do not display to screen
  1. ;
  1. NEW BEDDSYS,BEDDADT,BEDDDFN,VIEN,ID,X
  1. ;
  1. S BEDDADT=$G(D1),BEDDDFN=$G(DFN),VIEN=$G(D0),NODSP=$G(NODSP)
  1. ;
  1. ;Error Trap
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BEDDUTIL D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. ;Check if entry already def
  1. I $G(D)]"" Q
  1. ;
  1. I '$G(NODSP) W !,"Setting data for Dashboard..."
  1. ;
  1. D EDSYS^BEDDUTW(.BEDDSYS)
  1. ;
  1. S ID=$$NEW^BEDDUTW(AMERDFN,VIEN) I ID=0 Q
  1. ;
  1. ;Report/Label Disp
  1. I '$G(NODSP) D
  1. . I $D(BEDDSYS("MRC")) W !!!,"Select printer for PATIENT MEDICATION WORKSHEET...",!! D EN^BEDDMREC(BEDDDFN,VIEN)
  1. . I $D(BEDDSYS("PRS")) W !!!,"Select printer for PATIENT ROUTING SLIP...",!! D EN^BEDDEHRS(BEDDDFN)
  1. . I $D(BEDDSYS("ARM")) D
  1. .. W !!!,"Select printer for Patient WristBand/Embossed Card...",!! H 1
  1. .. S DFN=BEDDDFN S X="AGCARD" D HDR^AG,DFN^AGCARD D PHDR^AG
  1. ;
  1. ;Special Code to Update MODE OF TRANSPORT field
  1. S X=$$MDTRN^BEDDUTID(BEDDDFN)
  1. ;
  1. Q
  1. ;
  1. XCLIN(CODE) ;EP - Ret Ext Clinic
  1. ;
  1. ; Input:
  1. ; CODE - CODE field val from 40.7
  1. ;
  1. ; Output:
  1. ; NAME (.01) 40.7 val
  1. ;
  1. ;Error Trap
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BEDDUTIL D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. NEW DIC,X,Y
  1. ;
  1. S DIC="^DIC(40.7,",X=CODE,DIC(0)="M"
  1. D ^DIC
  1. ;
  1. Q $P(Y,"^",2)
  1. ;
  1. PTALG(DFN) ;EP - Ret Patient Allergies
  1. ;
  1. ; Input:
  1. ; DFN - Pat IEN
  1. ;
  1. ; Output:
  1. ; List of Allergies
  1. ;
  1. ;Error Trap
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BEDDUTIL D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. NEW PTALG,X,BEDDI
  1. ;
  1. S PTALG=""
  1. ;
  1. K ^TMP("PTADR",$J)
  1. ;
  1. S X=$$MAIN^TIULADR(DFN,,"^TMP(""PTADR"",$J)",0)
  1. S BEDDI="" F S BEDDI=$O(^TMP("PTADR",$J,BEDDI)) Q:BEDDI="" S PTALG=PTALG_" "_$G(^TMP("PTADR",$J,BEDDI,0))
  1. ;
  1. K ^TMP("PTADR",$J)
  1. Q PTALG
  1. ;
  1. PTPCP(DFN) ;EP - Ret Patient PCP
  1. ;
  1. ; Input:
  1. ; DFN - Pat IEN
  1. ;
  1. ; Output:
  1. ; Pat PCP
  1. ;
  1. ;Error Trap
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BEDDUTIL D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. Q $P($$DPCP(DFN),"^",2)
  1. ;
  1. TRGUPD(VIEN) ;EP - Update ER ADMISSION TRIAGE NURSE/ADMITTING PROV/ACUITY
  1. ;
  1. ; Input:
  1. ; VIEN - Pointer to 9000010 VISIT file
  1. ;
  1. ; Output
  1. ; Pointer to TRG MEASUREMENT TYPE (if def)
  1. ;
  1. I $G(VIEN)="" Q ""
  1. ;
  1. ;Error Trap
  1. NEW $ESTACK,$ETRAP S $ETRAP="D ERR^BEDDUTIL D UNWIND^%ZTER" ; SAC 2006 2.2.3.3.2
  1. ;
  1. NEW AMUPD,ERROR,BEDDTRG,BEDDTRGD,BEDDTRGN,BEDDTRGI,DFN,MYTRG
  1. ;
  1. S (BEDDTRG,BEDDTRGD,BEDDTRGN)=""
  1. S BEDDTRGI=$O(^AUTTMSR("B","TRG",""))
  1. I $D(^AUPNVMSR("AD",VIEN)) D
  1. . NEW MIEN
  1. . S MIEN="" F S MIEN=$O(^AUPNVMSR("AD",VIEN,MIEN)) Q:'MIEN D
  1. .. I BEDDTRGD="" S BEDDTRGD=$$GET1^DIQ(9000010.01,MIEN_",",1201,"I"),BEDDTRGN=$$GET1^DIQ(9000010.01,MIEN_",",1204,"I")
  1. .. I BEDDTRGI]"",BEDDTRG="",BEDDTRGI=$$GET1^DIQ(9000010.01,MIEN_",",.01,"I") S BEDDTRG=$$GET1^DIQ(9000010.01,MIEN_",",.04,"I")
  1. ;
  1. S DFN=$$GET1^DIQ(9000010,VIEN_",",.05,"I") Q:'$D(^AMERADM(DFN)) BEDDTRG
  1. I BEDDTRG]"" D BLDTRG(.MYTRG) I $D(MYTRG(BEDDTRG)) S AMUPD(9009081,DFN_",",20)=$P(MYTRG(BEDDTRG),"^",3)
  1. I BEDDTRGD]"" S AMUPD(9009081,DFN_",",21)=BEDDTRGD
  1. I BEDDTRGN]"" S AMUPD(9009081,DFN_",",19)=BEDDTRGN
  1. ;
  1. Q BEDDTRG
  1. ;
  1. BLDTRG(MYTRG) ;EP - Build Acuity MYTRG array
  1. ;
  1. ;Moved to overflow routine
  1. D BLDTRG^BEDDUTW1(.MYTRG)
  1. Q
  1. ;
  1. INJCAUSE(OBJID) ;EP - Ret Cause of Injury - Not Implemented
  1. Q ""
  1. ;
  1. INJSTG(OBJID) ;EP - Ret Setting of Injury - Not Implemented
  1. Q ""
  1. ;
  1. IND(OBJID) ;EP - Ret the Industry - Not Implemented
  1. Q ""
  1. ;
  1. OCC(OBJID) ;EP - Ret the Occupation - Not Implemented
  1. Q ""
  1. ;
  1. TODLH(DTTM) ;EP - Convert Ext Date to $H
  1. ;
  1. S DTTM=$$DATE^BEDDUTIU($G(DTTM))
  1. Q $$FMTH^XLFDT(DTTM)
  1. ;
  1. FMTE(FMDT,FORM) ;EP - Conv FMan to Standard External Dt/Time
  1. S:$G(FORM)="" FORM="5ZM"
  1. Q $TR($$FMTE^XLFDT(FMDT,FORM),"@"," ")
  1. ;
  1. FM2HD(FMDT) ;EP - Conv FMan Dt/Time to $H date portion
  1. Q $$FMTH^XLFDT(FMDT,1)
  1. ;
  1. SECWTG(HDT,HTM) ;EP - Calc Diff in Seconds from $H
  1. I $G(HDT)="" Q ""
  1. Q $P($$HDIFF^XLFDT($H,HDT_","_HTM,2),".")
  1. ;
  1. MINWTG(HDT,HTM) ;EP - Calc Diff in Minutes from $H
  1. I $G(HDT)="" Q ""
  1. Q $P($$HDIFF^XLFDT($H,HDT_","_HTM,2)/60,".")
  1. ;
  1. FM2HT(FMDT) ;EP - Conv FMan Date/Time to $H time portion
  1. Q $P($$FMTH^XLFDT(FMDT),",",2)
  1. ;
  1. DPCP(DFN) ;EP -- Get patient's designated primary care provider
  1. ;
  1. ;Description
  1. ; Checks 'Designated Provider Management System' first
  1. ; for patient's primary care provider, otherwise it
  1. ; checks Patient file.
  1. ;Input
  1. ; DFN
  1. ;Output
  1. ; DPCPN^DPCPNM
  1. ; DPCPN - Primary Care Provider internal entry number
  1. ; DPCPNM - Primary Care Provider Name
  1. ;
  1. NEW DPCAT,DPIEN,DPCPN,DPCPNM
  1. S DPCPN=""
  1. S DPCAT=$O(^BDPTCAT("B","DESIGNATED PRIMARY PROVIDER",""))
  1. I DPCAT'="" D
  1. . S DPIEN=$O(^BDPRECN("AA",DFN,DPCAT,""))
  1. . I DPIEN="" Q
  1. . S DPCPN=$$GET1^DIQ(90360.1,DPIEN_",",.03,"I")
  1. . S DPCPNM=$$GET1^DIQ(90360.1,DPIEN_",",.03,"E")
  1. I DPCPN'="" Q DPCPN_"^"_DPCPNM
  1. ;
  1. S DPCPN=$$GET1^DIQ(9000001,DFN_",",.14,"I")
  1. S DPCPNM=$$GET1^DIQ(9000001,DFN_",",.14,"E")
  1. Q DPCPN_"^"_DPCPNM
  1. ;
  1. ERR ;
  1. D ^%ZTER
  1. Q