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

ORB3FN.m

Go to the documentation of this file.
  1. ORB3FN ; slc/CLA - Functions which return OE/RR Notification information ;1/13/03
  1. ;;3.0;ORDER ENTRY/RESULTS REPORTING;**31,74,91,170**;Dec 17, 1997
  1. Q
  1. ONOFF(ORBN) ;extrinsic function returns '1' if notif is to be processed
  1. N ORBERR,ORBE,ORBX,ORBV
  1. S ORBX=0
  1. K ^TMP("ORBP",$J)
  1. D ENVAL^XPAR($NA(^TMP("ORBP",$J)),"ORB PROCESSING FLAG",ORBN,.ORBERR,1)
  1. I 'ORBERR,$G(^TMP("ORBP",$J))>0 D
  1. .S ORBE="" F S ORBE=$O(^TMP("ORBP",$J,ORBE)) Q:'ORBE!ORBX>0 D
  1. ..S ORBV=$G(^TMP("ORBP",$J,ORBE,ORBN))
  1. ..S:ORBV="M" ORBX=1
  1. ..S:ORBV="E" ORBX=2
  1. K ^TMP("ORBP",$J),ORBERR
  1. I ORBX=1 Q "1^Mandatory Entity(s) exist."
  1. I ORBX=2 Q "1^Enabled Entity(s) exist."
  1. D ENVAL^XPAR($NA(^TMP("ORBP",$J)),"ORB DEFAULT RECIPIENT DEVICES",ORBN,.ORBERR,1)
  1. I 'ORBERR,$G(^TMP("ORBP",$J))>0 Q "1^Default Recipient Device(s) exist."
  1. K ^TMP("ORBP",$J),ORBERR
  1. S ORBX=0
  1. D ENVAL^XPAR($NA(^TMP("ORBP",$J)),"ORB DEFAULT RECIPIENTS",ORBN,.ORBERR,1)
  1. I 'ORBERR,$G(^TMP("ORBP",$J))>0 D
  1. .S ORBE="" F S ORBE=$O(^TMP("ORBP",$J,ORBE)) Q:'ORBE!ORBX>0 D
  1. ..S ORBV=$G(^TMP("ORBP",$J,ORBE,ORBN))
  1. ..S:ORBV=1 ORBX=1
  1. K ^TMP("ORBP",$J)
  1. I ORBX=1 Q "1^Default Recipient(s) exist."
  1. Q "0^No Mandatory or enabled entities and no default recipients."
  1. LIST(Y) ;return list of notifications from Notification File [#100.9]
  1. ; RETURN IEN^NAME^URGENCY
  1. N I,J,V
  1. S I=1
  1. S J=0 F S J=$O(^ORD(100.9,"B",J)) Q:J="" S V=0,V=$O(^ORD(100.9,"B",J,V)) S Y(I)=V_"^"_J_"^"_^ORD(100.9,V,3),I=I+1
  1. Q
  1. LISTON(ORY,ORBUSR) ;return notifications the user has turned On or OFF
  1. ; RETURN NOTIF IEN^NOTIF NAME^ON/OFF FLAG
  1. N ORSX,ORUX,ORMX,ORBNAM,ORBIEN,ORYI
  1. S ORYI=0
  1. ;see if notification system is disabled:
  1. S ORSX=$$GET^XPAR("DIV^SYS^PKG","ORB SYSTEM ENABLE/DISABLE",1,"I")
  1. I ORSX="D" S ORMX="OFF"
  1. ;
  1. ;loop thru all notifications and determine recipient status:
  1. S ORBNAM="" F S ORBNAM=$O(^ORD(100.9,"B",ORBNAM)) Q:ORBNAM="" D
  1. .S ORBIEN=0,ORBIEN=$O(^ORD(100.9,"B",ORBNAM,ORBIEN)) I +$G(ORBIEN)>0 D
  1. ..I $G(ORSX)'="D" D
  1. ...S ORUX="",ORUX=$$ONOFF^ORB3USER(ORBIEN,ORBUSR,"","")
  1. ...I $L(ORUX) S ORMX=$P(ORUX,U)
  1. ..S ORYI=ORYI+1
  1. ..S ORY(ORYI)=ORBIEN_U_ORBNAM_U_ORMX
  1. ;
  1. Q
  1. PTLOC(ORBPT) ;get patient's location (INPATIENT ONLY - outpt locations
  1. ;cannot be reliably determined, and many simultaneous outpt locations
  1. ;can occur) - returns pt location in format: location ien^location name
  1. ;outpatients return "0^Outpt"
  1. N ORBLOC,ORBLOCN,ORBRES
  1. S ORBRES="0^Outpt"
  1. I +$G(ORBPT)>0 D
  1. .N DFN S DFN=ORBPT,VA200="" D OERR^VADPT
  1. .S ORBLOC=+$G(^DIC(42,+VAIN(4),44)) I +$G(ORBLOC)>0 D
  1. ..S ORBLOCN=$P(^SC(+ORBLOC,0),U)
  1. ..S ORBRES=ORBLOC_U_ORBLOCN
  1. K VA200,VAIN
  1. Q ORBRES