RAUTL00 ;HIRMFO/GJC-Utility Routine (linked to RAUTL0) ;11/14/97 12:01
;;5.0;Radiology/Nuclear Medicine;**93**;Mar 16, 1998;Build 3
;
; 07/14/2008 BAY/KAM Rem Call 257549 Mod request for alert text
OENOTE ; Fire off OE/RR notification for [abnormal, amended] rad results
; back door fires off this notif. regardless of oe/rr version
; because oe/rr doesn't get abnormal/amended info in HL7 msgs
I $$ORVR^RAORDU()=2.5 D
. N RAWITCH S X1=$S($D(^RAMIS(71,+$P(X,"^",2),0)):$P(^(0),"^"),1:"")
. S ORBPMSG=$S($D(RAAB):"Abnormal ",1:"")_"Imaging Results: "
. S:$D(^RAO(75.1,+$P(X,"^",11),0)) ORIFN=+$P(^(0),"^",7)
. S RAWITCH=$$OE1009() ; determine OE/RR Notification
. Q:RAWITCH=-1 ; invalid OE/RR Notification, quit!
. I RAWITCH=53!(+$O(^RARPT(RARPT,"ERR",0))) D
.. S:$D(RAAB) ORBPMSG="Amended/"_ORBPMSG
.. S:'$D(RAAB) ORBPMSG="Amended "_ORBPMSG
.. Q
. N RAVAR S RAVAR=$L(ORBPMSG),RAVAR=70-RAVAR
. S ORBPMSG=ORBPMSG_$E(X1,1,RAVAR)
. S ORNOTE(RAWITCH)=$S($D(ORIFN):1,1:"") D NOTE^ORX3
. Q
I $$ORVR^RAORDU()'<3 D
. ; Recall RADFN, RADTI & RACNI from the RASAVE array
. S RADFN=$G(RASAVE("RADFN")),RADTI=$G(RASAVE("RADTI"))
. S RACNI=$G(RASAVE("RACNI"))
. D OE3(RADFN,RADTI,RACNI,X)
. Q
Q
OE1009() ; Determine the notification informing OE/RR
; Output: OE/RR Notification [ ien for ^ORD(100.9, ]
N RANOTY ; used to identify type of OE/RR Notification
S RANOTY=-1 ; initalize to error condition
I $D(RAAB) S RANOTY=25 ; Abnormal Imaging Results
E D
. I '+$O(^RARPT(RARPT,"ERR",0)) S RANOTY=22 ; Imaging Results V'fied
. E S RANOTY=$S($$ORVR^RAORDU'<3:53,1:22) ; Imaging Result Amended
. Q
Q RANOTY
;
OE3(RADFN,RADTI,RACNI,X) ; Fire off oe/rr notifications, version 3.0+
; Input: 'RADFN': Patient DFN <-> 'RADTI': exam timestamp (inverse)
; 'RACNI': Exam ien <-> 'X' : exam zero node
; *** 'RARPT' is assumed to exist and be a valid ien in file 74. ***
N RA751,RAIENS,RAMSG,RANOTE,RAOIFN,RAREQPHY,X1
S X1=$S($D(^RAMIS(71,+$P(X,"^",2),0)):$P(^(0),"^"),1:"")
S RA751=$G(^RAO(75.1,+$P(X,"^",11),0))
S RAIENS=RADTI_"~"_RACNI
I $D(RAAB) D ; abnormal Dx code associated with report
. S:'+$O(^RARPT(RARPT,"ERR",0)) RANOTE="25^Abnl Imaging Reslt, Needs Attn: "_$E(X1,1,25)
. S:+$O(^RARPT(RARPT,"ERR",0)) RANOTE="53^Amended/Abnormal Imaging Results: "_$E(X1,1,20)
. Q
I '$D(RAAB) D ; no abnormal Dx code with this report
. S:'+$O(^RARPT(RARPT,"ERR",0)) RANOTE="22^Imaging Results,Non Critical: "_$E(X1,1,30)
. S:+$O(^RARPT(RARPT,"ERR",0)) RANOTE="53^Amended Imaging Results: "_$E(X1,1,25)
. Q
S RAMSG=$P($G(RANOTE),"^",2),RAOIFN=$P(RA751,"^",7),RAREQPHY(+$P(X,"^",14))=""
D EN^ORB3(+$G(RANOTE),RADFN,RAOIFN,.RAREQPHY,RAMSG,RAIENS)
Q
--- Routine Detail --- with STRUCTURED ROUTINE LISTING ---[H[J[2J[HRAUTL00 2755 printed Oct 16, 2024@18:40:42 Page 2
RAUTL00 ;HIRMFO/GJC-Utility Routine (linked to RAUTL0) ;11/14/97 12:01
+1 ;;5.0;Radiology/Nuclear Medicine;**93**;Mar 16, 1998;Build 3
+2 ;
+3 ; 07/14/2008 BAY/KAM Rem Call 257549 Mod request for alert text
OENOTE ; Fire off OE/RR notification for [abnormal, amended] rad results
+1 ; back door fires off this notif. regardless of oe/rr version
+2 ; because oe/rr doesn't get abnormal/amended info in HL7 msgs
+3 IF $$ORVR^RAORDU()=2.5
Begin DoDot:1
+4 NEW RAWITCH
SET X1=$SELECT($DATA(^RAMIS(71,+$PIECE(X,"^",2),0)):$PIECE(^(0),"^"),1:"")
+5 SET ORBPMSG=$SELECT($DATA(RAAB):"Abnormal ",1:"")_"Imaging Results: "
+6 if $DATA(^RAO(75.1,+$PIECE(X,"^",11),0))
SET ORIFN=+$PIECE(^(0),"^",7)
+7 ; determine OE/RR Notification
SET RAWITCH=$$OE1009()
+8 ; invalid OE/RR Notification, quit!
if RAWITCH=-1
QUIT
+9 IF RAWITCH=53!(+$ORDER(^RARPT(RARPT,"ERR",0)))
Begin DoDot:2
+10 if $DATA(RAAB)
SET ORBPMSG="Amended/"_ORBPMSG
+11 if '$DATA(RAAB)
SET ORBPMSG="Amended "_ORBPMSG
+12 QUIT
End DoDot:2
+13 NEW RAVAR
SET RAVAR=$LENGTH(ORBPMSG)
SET RAVAR=70-RAVAR
+14 SET ORBPMSG=ORBPMSG_$EXTRACT(X1,1,RAVAR)
+15 SET ORNOTE(RAWITCH)=$SELECT($DATA(ORIFN):1,1:"")
DO NOTE^ORX3
+16 QUIT
End DoDot:1
+17 IF $$ORVR^RAORDU()'<3
Begin DoDot:1
+18 ; Recall RADFN, RADTI & RACNI from the RASAVE array
+19 SET RADFN=$GET(RASAVE("RADFN"))
SET RADTI=$GET(RASAVE("RADTI"))
+20 SET RACNI=$GET(RASAVE("RACNI"))
+21 DO OE3(RADFN,RADTI,RACNI,X)
+22 QUIT
End DoDot:1
+23 QUIT
OE1009() ; Determine the notification informing OE/RR
+1 ; Output: OE/RR Notification [ ien for ^ORD(100.9, ]
+2 ; used to identify type of OE/RR Notification
NEW RANOTY
+3 ; initalize to error condition
SET RANOTY=-1
+4 ; Abnormal Imaging Results
IF $DATA(RAAB)
SET RANOTY=25
+5 IF '$TEST
Begin DoDot:1
+6 ; Imaging Results V'fied
IF '+$ORDER(^RARPT(RARPT,"ERR",0))
SET RANOTY=22
+7 ; Imaging Result Amended
IF '$TEST
SET RANOTY=$SELECT($$ORVR^RAORDU'<3:53,1:22)
+8 QUIT
End DoDot:1
+9 QUIT RANOTY
+10 ;
OE3(RADFN,RADTI,RACNI,X) ; Fire off oe/rr notifications, version 3.0+
+1 ; Input: 'RADFN': Patient DFN <-> 'RADTI': exam timestamp (inverse)
+2 ; 'RACNI': Exam ien <-> 'X' : exam zero node
+3 ; *** 'RARPT' is assumed to exist and be a valid ien in file 74. ***
+4 NEW RA751,RAIENS,RAMSG,RANOTE,RAOIFN,RAREQPHY,X1
+5 SET X1=$SELECT($DATA(^RAMIS(71,+$PIECE(X,"^",2),0)):$PIECE(^(0),"^"),1:"")
+6 SET RA751=$GET(^RAO(75.1,+$PIECE(X,"^",11),0))
+7 SET RAIENS=RADTI_"~"_RACNI
+8 ; abnormal Dx code associated with report
IF $DATA(RAAB)
Begin DoDot:1
+9 if '+$ORDER(^RARPT(RARPT,"ERR",0))
SET RANOTE="25^Abnl Imaging Reslt, Needs Attn: "_$EXTRACT(X1,1,25)
+10 if +$ORDER(^RARPT(RARPT,"ERR",0))
SET RANOTE="53^Amended/Abnormal Imaging Results: "_$EXTRACT(X1,1,20)
+11 QUIT
End DoDot:1
+12 ; no abnormal Dx code with this report
IF '$DATA(RAAB)
Begin DoDot:1
+13 if '+$ORDER(^RARPT(RARPT,"ERR",0))
SET RANOTE="22^Imaging Results,Non Critical: "_$EXTRACT(X1,1,30)
+14 if +$ORDER(^RARPT(RARPT,"ERR",0))
SET RANOTE="53^Amended Imaging Results: "_$EXTRACT(X1,1,25)
+15 QUIT
End DoDot:1
+16 SET RAMSG=$PIECE($GET(RANOTE),"^",2)
SET RAOIFN=$PIECE(RA751,"^",7)
SET RAREQPHY(+$PIECE(X,"^",14))=""
+17 DO EN^ORB3(+$GET(RANOTE),RADFN,RAOIFN,.RAREQPHY,RAMSG,RAIENS)
+18 QUIT