RAHLEX ;HIRMFO/REL,CRT - RAD/NUC MED HL7 Voice Reporting Exception List; 02/02/99
;;5.0;Radiology/Nuclear Medicine;**12,17,25**;Mar 16, 1998
; Last Edited by CRT
;
S RAHLAPP="^TMP($J,""RAHLAPP"")" K @RAHLAPP ; Sending Apps included
S RAHLEX="^TMP($J,""RAHLEX"")" K @RAHLEX ; List Display
S RAHLSEL="^TMP($J,""RAHLSEL"")" K @RAHLSEL ; X-ref Display to ^DIZ
S RAHLUSR="^TMP($J,""RAHLUSR"")" K @RAHLUSR ; Rad Users included
S RAHLSRT="^TMP($J,""RAHLSRT"")" K @RAHLSRT ; Sorted records from #79.3
S VALMCNT=0
;
W @IOF
;
D EN^DDIOL("Rad/Nuc Med HL7 Voice Reporting Exception List","","!?5")
;
I ('$O(^RA(79.3,0))) D G EXIT
.S RACLR=1
.W $C(7)
.D EN^DDIOL("No Voice Reporting Exceptions currently recorded","","!?5")
.D END
;
APPS ; 1st prompt for Sending Applications to print
; skip prompt if there is only one Sending App.
;
S RAHLAIEN="" F I=1:1:2 S RAHLAIEN=$O(^RA(79.3,"AA",RAHLAIEN))
I RAHLAIEN="" D G STDT
.S RAHLAIEN=$O(^RA(79.3,"AA",RAHLAIEN))
.S RAHLA=$$GET1^DIQ(771,RAHLAIEN,.01)
.S @RAHLAPP@(RAHLA,RAHLAIEN)=""
.K RAHLAIEN,RAHLA
;
K RAHLAIEN
S RAINPUT=""
S RADIC="^HL(771,"
S RADIC(0)="ABEQSZ"
S RADIC("A")="Select Voice Reporting Application: "
S RADIC("B")="ALL"
S RADIC("S")="I $D(^RA(79.3,""AA"",Y))"
S RAUTIL="RAHLAPP"
D EN1^RASELCT(.RADIC,RAUTIL,"",RAINPUT)
K RADIC,RAUTIL,RAINPUT
I '$D(@RAHLAPP)!$G(RAQUIT) D G EXIT
.W $C(7)
.D EN^DDIOL("No Voice Reporting Applications selected for reporting","","!?5")
.D END
;
STDT ; Prompt for Start From Date
;
D EN^DDIOL(" ","","!")
K %DT
S %DT="AEPST"
S %DT("A")="Exception starting date/time: "
S %DT(0)="-NOW" ; Must be in the past
D ^%DT K %DT
I X']"" D EN^DDIOL("You must enter a start date, or '^' to exit","","!?5") G STDT
S RAHL7SDT=Y
I $D(DTOUT)!(U[X) D END G EXIT
;
ETDT ; Prompt for End Date (Must be after Start Date.. obviously!)
;
D EN^DDIOL(" ","","!")
S %DT="AEPST"
S %DT("A")="Exception ending date/time: "
S %DT(0)=RAHL7SDT
S %DT("B")="NOW" ; Default of current date/time
D ^%DT K %DT
I $D(DTOUT)!(U[X) D END G EXIT
S RAHL7EDT=Y
I $P(RAHL7EDT,".",2)="" S RAHL7EDT=+RAHL7EDT+1
;
USER ; Prompt for Users to include
; skip prompt if there is only one User on file.
; also there may be entries with no user!!
;
S RAHLUIEN=$O(^RA(79.3,"AB","")) G:RAHLUIEN="" LISTMAN
S RAHLUIEN=$O(^RA(79.3,"AB",RAHLUIEN))
I RAHLUIEN="" D G LISTMAN
.S RAHLUIEN=$O(^RA(79.3,"AB",RAHLUIEN))
.S RAHLU=$$GET1^DIQ(200,RAHLUIEN,.01)
.S @RAHLUSR@(RAHLU,RAHLUIEN)=""
.K RAHLUIEN,RAHLU
;
K RAHLUIEN
S RAINPUT=""
S RADIC="^VA(200,"
S RADIC(0)="ABEQZ"
S RADIC("A")="Select Radiology User: "
S RADIC("B")="ALL"
;S RADIC("S")="I $D(^RA(79.3,""AB"",Y))"
S RAUTIL="RAHLUSR"
D EN1^RASELCT(.RADIC,RAUTIL,"",RAINPUT)
K RADIC,RAUTIL,RAINPUT
I '$D(@RAHLUSR)!$G(RAQUIT) D G EXIT
.W $C(7)
.D EN^DDIOL("No Radiology User selected for reporting","","!?5")
.D END
;
LISTMAN ; Call List Manager
D EN^VALM("RA HL7 VOICE REPORTING ERRORS")
Q
;
;
S VALMHDR(1)=""
Q
;
SETTMP ;Create ^TMP workfile with sorted records on...
;
S RAPPX="" F S RAPPX=$O(@RAHLAPP@(RAPPX)) Q:RAPPX="" D
.S RAPPI=0 F S RAPPI=$O(@RAHLAPP@(RAPPX,RAPPI)) Q:RAPPI'>0 D
..S RAXIEN="" F S RAXIEN=$O(^RA(79.3,"AA",RAPPI,RAXIEN)) Q:RAXIEN'>0 D
...S RAX=$G(^RA(79.3,RAXIEN,0)) Q:RAX=""
...;
...S RASEND=$$GET1^DIQ(771,RAPPI,3)
...;
...S RADATE=$P(RAX,U,1) Q:RADATE=""
...I (RAHL7SDT]RADATE)!(RADATE]RAHL7EDT) Q
...;
...S RAUSER=$P(RAX,U,6)
...I RAUSER'="" S RAUSER=$$GET1^DIQ(200,RAUSER,.01) Q:'$D(@RAHLUSR@(RAUSER))
...S:RAUSER="" RAUSER="Not Known"
...;
...S RADPT=$P(RAX,U,3)
...S:RADPT'="" RADPT=$$GET1^DIQ(70,RADPT,.01)
...S:RADPT="" RADPT="Not known"
...;
...S RACN=$P(RAX,U,4)
...S:RACN="" RACN="?????"
...;
...S RAEXCP=$$GET1^DIQ(79.3,RAXIEN,1)
...;
...S @RAHLSRT@(RASEND,RADATE,RADPT,RACN,RAUSER)=RAXIEN
...S @RAHLSRT@(RASEND,RADATE,RADPT,RACN,RAUSER,"ERR")=RAEXCP
...Q
K RAPPI,RAPPX,RAX,RAXIEN,RASEND,RADATE,Y,RAUSER,RADPT,RACN,RAEXCP
Q
;
ENTRY ; List Manager Entry Point
;
D SETTMP^RAHLEX
S (HL7EX,VALMCNT)=0
;
I '$D(@RAHLSRT) D G END
.W $C(7)
.S VALMSG="Nothing to Report for selection criteria"
;
;
DISPLAY ; Create ARRAY for List Manager display on ^TMP($J,"RAHLEX")
;
S SPACES=" "
S (RAOLD,RASEND)="" F S RASEND=$O(@RAHLSRT@(RASEND)) Q:RASEND="" D
.; Blank line
.S VALMCNT=VALMCNT+1,@RAHLEX@(VALMCNT,0)=""
.; Sending Application Sub-Heading
.I RAOLD'=RASEND D
..S VALMCNT=VALMCNT+1
..S LINE=" HL7 Voice Reporting Application: "_$E(RASEND_$$REPEAT^XLFSTR(" ",30),1,30)_" "
..S @RAHLEX@(VALMCNT,0)=LINE
..D CNTRL^VALM10(VALMCNT,6,33+$L(RASEND),IORVON,IORVOFF,0)
..S RAOLD=RASEND
.;
.S RADATE="" F S RADATE=$O(@RAHLSRT@(RASEND,RADATE)) Q:RADATE="" D
..S RADPT="" F S RADPT=$O(@RAHLSRT@(RASEND,RADATE,RADPT)) Q:RADPT="" D
...S RACN="" F S RACN=$O(@RAHLSRT@(RASEND,RADATE,RADPT,RACN)) Q:RACN="" D
....S RAUSER="" F S RAUSER=$O(@RAHLSRT@(RASEND,RADATE,RADPT,RACN,RAUSER)) Q:RAUSER="" D
.....S RAEXCP=@RAHLSRT@(RASEND,RADATE,RADPT,RACN,RAUSER,"ERR")
.....S VALMCNT=VALMCNT+1 S @RAHLEX@(VALMCNT,0)="" ; Blank line
.....S VALMCNT=VALMCNT+1,HL7EX=$G(HL7EX)+1
.....S @RAHLSEL@(VALMCNT)=@RAHLSRT@(RASEND,RADATE,RADPT,RACN,RAUSER)
.....S LINE=$E(HL7EX_"."_$E(SPACES,1,5),1,5)
.....D DISDATE(" ")
.....S LINE=LINE_$E(XRADATE_$E(SPACES,1,22),1,22)
.....S LINE=LINE_$E($E(RADPT,1,25)_$E(SPACES,1,27),1,27)
.....S LINE=LINE_$E(RACN_$E(SPACES,1,7),1,7)
.....S LINE=LINE_$E(RAUSER,1,19)
.....S @RAHLEX@(VALMCNT,0)=LINE
.....S VALMCNT=VALMCNT+1
.....S LINE=" Error: "_RAEXCP
.....S @RAHLEX@(VALMCNT,0)=LINE
;
END ; Tidy up variables after ENTRY call only
K XRADATE,RAQUIT,RASEND,RADPT,RACN,RAEXCP,RADATE,RAUSER,LINE,RAOLD,SPACES
;
Q
;
EXIT ; Tidy variables after function (including ListMan IO* and VALM*)
K VALMCNT,HL7EX,HL,RAHL7SDT,RAHL7EDT,Y,X,POP,PAGE,DTOUT
K @RAHLEX,RAHLEX,@RAHLSRT,RAHLSRT,@RAHLSEL,RAHLSEL,TITLE,DISYS
K @RAHLAPP,RAHLAPP,@RAHLUSR,RAHLUSR
;
D:'$G(RACLR) CLEAR^VALM1
;
K VALM,VALMAR,VALMBCK,VALMBG,VALMCAP,VALMCC,VALMCNT
K VALMDDF,VALMDN,VALMHDR,VALMIOXY,VALMKEY,VALMLFT,VALMLST
K VALMMENU,VALMMSGR,VALMUP,VALMSG,RACLR
;
K IOBOFF,IOBON,IOINORM,IOINHI,IORVON,IORVOFF,IOUOFF,IOUON
Q
;
DISDATE(SEP) ; Display date in external form
; SEP is the separator between date and time - eg " " or "@" or " at "
S Y=$P(RADATE,".") D D^RAUTL
S XRADATE=Y_SEP_$E(RADATE_0,9,10)_":"_$E(RADATE_000,11,12)_":"_$E(RADATE_00000,13,14)
K Y
Q
;
HELP ; The '??' help ListMan Call:
I X="?" D Q
.D EN^DDIOL("Choose one of the options listed","","!?5")
.D EN^DDIOL("Or '??' to list More Options","","!?5")
.D WAIT^RAHLEX1
D CLEAR^VALM1
K RAH
S RAH(1)=" Rad/Nuc Med HL7 Voice Reporting Exception List"
S RAH(1,"F")=""
S RAH(2)="=============================================="
S RAH(3)="This utility lists all the Errors that have been reported from HL7"
S RAH(4)="Voice Reporting applications for Radiology/Nuclear Medicine."
S RAH(5)="It provides some additional facilities:"
S RAH(6)="1. PL - The list can be printed to screen or to a printer, prints"
S RAH(7)=" can be queued or printed immediately."
S RAH(8)="2. RS - Any rejected message listed can be re-submitted. To re-send"
S RAH(9)=" a message via HL7, first try to resolve the reported"
S RAH(10)=" problem, then return to this list and select the error. Once"
S RAH(11)=" successfully re-submitted the reported error will be purged."
S RAH(12)=" Note however, that successful re-submission does not guarantee"
S RAH(13)=" the problem has been resolved and that Radiology will be updated"
S RAH(14)="3. DE - To purge a reported error without re-submitting first."
S RAH(15)=""
F RAHI=2:1:15 S RAH(RAHI,"F")="!?5"
S RAH(5,"F")="!!"
S (RAH(3,"F"),RAH(4,"F"))="!"
D EN^DDIOL(.RAH)
S VALMBCK="R"
K RAHI,RAH
Q
RAHLEX ;HIRMFO/REL,CRT - RAD/NUC MED HL7 Voice Reporting Exception List; 02/02/99
+1 ;;5.0;Radiology/Nuclear Medicine;**12,17,25**;Mar 16, 1998
+2 ; Last Edited by CRT
+3 ;
+4 ; Sending Apps included
SET RAHLAPP="^TMP($J,""RAHLAPP"")"
KILL @RAHLAPP
+5 ; List Display
SET RAHLEX="^TMP($J,""RAHLEX"")"
KILL @RAHLEX
+6 ; X-ref Display to ^DIZ
SET RAHLSEL="^TMP($J,""RAHLSEL"")"
KILL @RAHLSEL
+7 ; Rad Users included
SET RAHLUSR="^TMP($J,""RAHLUSR"")"
KILL @RAHLUSR
+8 ; Sorted records from #79.3
SET RAHLSRT="^TMP($J,""RAHLSRT"")"
KILL @RAHLSRT
+9 SET VALMCNT=0
+10 ;
+11 WRITE @IOF
+12 ;
+13 DO EN^DDIOL("Rad/Nuc Med HL7 Voice Reporting Exception List","","!?5")
+14 ;
+15 IF ('$ORDER(^RA(79.3,0)))
Begin DoDot:1
+16 SET RACLR=1
+17 WRITE $CHAR(7)
+18 DO EN^DDIOL("No Voice Reporting Exceptions currently recorded","","!?5")
+19 DO END
End DoDot:1
GOTO EXIT
+20 ;
APPS ; 1st prompt for Sending Applications to print
+1 ; skip prompt if there is only one Sending App.
+2 ;
+3 SET RAHLAIEN=""
FOR I=1:1:2
SET RAHLAIEN=$ORDER(^RA(79.3,"AA",RAHLAIEN))
+4 IF RAHLAIEN=""
Begin DoDot:1
+5 SET RAHLAIEN=$ORDER(^RA(79.3,"AA",RAHLAIEN))
+6 SET RAHLA=$$GET1^DIQ(771,RAHLAIEN,.01)
+7 SET @RAHLAPP@(RAHLA,RAHLAIEN)=""
+8 KILL RAHLAIEN,RAHLA
End DoDot:1
GOTO STDT
+9 ;
+10 KILL RAHLAIEN
+11 SET RAINPUT=""
+12 SET RADIC="^HL(771,"
+13 SET RADIC(0)="ABEQSZ"
+14 SET RADIC("A")="Select Voice Reporting Application: "
+15 SET RADIC("B")="ALL"
+16 SET RADIC("S")="I $D(^RA(79.3,""AA"",Y))"
+17 SET RAUTIL="RAHLAPP"
+18 DO EN1^RASELCT(.RADIC,RAUTIL,"",RAINPUT)
+19 KILL RADIC,RAUTIL,RAINPUT
+20 IF '$DATA(@RAHLAPP)!$GET(RAQUIT)
Begin DoDot:1
+21 WRITE $CHAR(7)
+22 DO EN^DDIOL("No Voice Reporting Applications selected for reporting","","!?5")
+23 DO END
End DoDot:1
GOTO EXIT
+24 ;
STDT ; Prompt for Start From Date
+1 ;
+2 DO EN^DDIOL(" ","","!")
+3 KILL %DT
+4 SET %DT="AEPST"
+5 SET %DT("A")="Exception starting date/time: "
+6 ; Must be in the past
SET %DT(0)="-NOW"
+7 DO ^%DT
KILL %DT
+8 IF X']""
DO EN^DDIOL("You must enter a start date, or '^' to exit","","!?5")
GOTO STDT
+9 SET RAHL7SDT=Y
+10 IF $DATA(DTOUT)!(U[X)
DO END
GOTO EXIT
+11 ;
ETDT ; Prompt for End Date (Must be after Start Date.. obviously!)
+1 ;
+2 DO EN^DDIOL(" ","","!")
+3 SET %DT="AEPST"
+4 SET %DT("A")="Exception ending date/time: "
+5 SET %DT(0)=RAHL7SDT
+6 ; Default of current date/time
SET %DT("B")="NOW"
+7 DO ^%DT
KILL %DT
+8 IF $DATA(DTOUT)!(U[X)
DO END
GOTO EXIT
+9 SET RAHL7EDT=Y
+10 IF $PIECE(RAHL7EDT,".",2)=""
SET RAHL7EDT=+RAHL7EDT+1
+11 ;
USER ; Prompt for Users to include
+1 ; skip prompt if there is only one User on file.
+2 ; also there may be entries with no user!!
+3 ;
+4 SET RAHLUIEN=$ORDER(^RA(79.3,"AB",""))
IF RAHLUIEN=""
GOTO LISTMAN
+5 SET RAHLUIEN=$ORDER(^RA(79.3,"AB",RAHLUIEN))
+6 IF RAHLUIEN=""
Begin DoDot:1
+7 SET RAHLUIEN=$ORDER(^RA(79.3,"AB",RAHLUIEN))
+8 SET RAHLU=$$GET1^DIQ(200,RAHLUIEN,.01)
+9 SET @RAHLUSR@(RAHLU,RAHLUIEN)=""
+10 KILL RAHLUIEN,RAHLU
End DoDot:1
GOTO LISTMAN
+11 ;
+12 KILL RAHLUIEN
+13 SET RAINPUT=""
+14 SET RADIC="^VA(200,"
+15 SET RADIC(0)="ABEQZ"
+16 SET RADIC("A")="Select Radiology User: "
+17 SET RADIC("B")="ALL"
+18 ;S RADIC("S")="I $D(^RA(79.3,""AB"",Y))"
+19 SET RAUTIL="RAHLUSR"
+20 DO EN1^RASELCT(.RADIC,RAUTIL,"",RAINPUT)
+21 KILL RADIC,RAUTIL,RAINPUT
+22 IF '$DATA(@RAHLUSR)!$GET(RAQUIT)
Begin DoDot:1
+23 WRITE $CHAR(7)
+24 DO EN^DDIOL("No Radiology User selected for reporting","","!?5")
+25 DO END
End DoDot:1
GOTO EXIT
+26 ;
LISTMAN ; Call List Manager
+1 DO EN^VALM("RA HL7 VOICE REPORTING ERRORS")
+2 QUIT
+3 ;
+1 ;
+2 SET VALMHDR(1)=""
+3 QUIT
+4 ;
SETTMP ;Create ^TMP workfile with sorted records on...
+1 ;
+2 SET RAPPX=""
FOR
SET RAPPX=$ORDER(@RAHLAPP@(RAPPX))
IF RAPPX=""
QUIT
Begin DoDot:1
+3 SET RAPPI=0
FOR
SET RAPPI=$ORDER(@RAHLAPP@(RAPPX,RAPPI))
IF RAPPI'>0
QUIT
Begin DoDot:2
+4 SET RAXIEN=""
FOR
SET RAXIEN=$ORDER(^RA(79.3,"AA",RAPPI,RAXIEN))
IF RAXIEN'>0
QUIT
Begin DoDot:3
+5 SET RAX=$GET(^RA(79.3,RAXIEN,0))
IF RAX=""
QUIT
+6 ;
+7 SET RASEND=$$GET1^DIQ(771,RAPPI,3)
+8 ;
+9 SET RADATE=$PIECE(RAX,U,1)
IF RADATE=""
QUIT
+10 IF (RAHL7SDT]RADATE)!(RADATE]RAHL7EDT)
QUIT
+11 ;
+12 SET RAUSER=$PIECE(RAX,U,6)
+13 IF RAUSER'=""
SET RAUSER=$$GET1^DIQ(200,RAUSER,.01)
IF '$DATA(@RAHLUSR@(RAUSER))
QUIT
+14 IF RAUSER=""
SET RAUSER="Not Known"
+15 ;
+16 SET RADPT=$PIECE(RAX,U,3)
+17 IF RADPT'=""
SET RADPT=$$GET1^DIQ(70,RADPT,.01)
+18 IF RADPT=""
SET RADPT="Not known"
+19 ;
+20 SET RACN=$PIECE(RAX,U,4)
+21 IF RACN=""
SET RACN="?????"
+22 ;
+23 SET RAEXCP=$$GET1^DIQ(79.3,RAXIEN,1)
+24 ;
+25 SET @RAHLSRT@(RASEND,RADATE,RADPT,RACN,RAUSER)=RAXIEN
+26 SET @RAHLSRT@(RASEND,RADATE,RADPT,RACN,RAUSER,"ERR")=RAEXCP
+27 QUIT
End DoDot:3
End DoDot:2
End DoDot:1
+28 KILL RAPPI,RAPPX,RAX,RAXIEN,RASEND,RADATE,Y,RAUSER,RADPT,RACN,RAEXCP
+29 QUIT
+30 ;
ENTRY ; List Manager Entry Point
+1 ;
+2 DO SETTMP^RAHLEX
+3 SET (HL7EX,VALMCNT)=0
+4 ;
+5 IF '$DATA(@RAHLSRT)
Begin DoDot:1
+6 WRITE $CHAR(7)
+7 SET VALMSG="Nothing to Report for selection criteria"
End DoDot:1
GOTO END
+8 ;
+9 ;
DISPLAY ; Create ARRAY for List Manager display on ^TMP($J,"RAHLEX")
+1 ;
+2 SET SPACES=" "
+3 SET (RAOLD,RASEND)=""
FOR
SET RASEND=$ORDER(@RAHLSRT@(RASEND))
IF RASEND=""
QUIT
Begin DoDot:1
+4 ; Blank line
+5 SET VALMCNT=VALMCNT+1
SET @RAHLEX@(VALMCNT,0)=""
+6 ; Sending Application Sub-Heading
+7 IF RAOLD'=RASEND
Begin DoDot:2
+8 SET VALMCNT=VALMCNT+1
+9 SET LINE=" HL7 Voice Reporting Application: "_$EXTRACT(RASEND_$$REPEAT^XLFSTR(" ",30),1,30)_" "
+10 SET @RAHLEX@(VALMCNT,0)=LINE
+11 DO CNTRL^VALM10(VALMCNT,6,33+$LENGTH(RASEND),IORVON,IORVOFF,0)
+12 SET RAOLD=RASEND
End DoDot:2
+13 ;
+14 SET RADATE=""
FOR
SET RADATE=$ORDER(@RAHLSRT@(RASEND,RADATE))
IF RADATE=""
QUIT
Begin DoDot:2
+15 SET RADPT=""
FOR
SET RADPT=$ORDER(@RAHLSRT@(RASEND,RADATE,RADPT))
IF RADPT=""
QUIT
Begin DoDot:3
+16 SET RACN=""
FOR
SET RACN=$ORDER(@RAHLSRT@(RASEND,RADATE,RADPT,RACN))
IF RACN=""
QUIT
Begin DoDot:4
+17 SET RAUSER=""
FOR
SET RAUSER=$ORDER(@RAHLSRT@(RASEND,RADATE,RADPT,RACN,RAUSER))
IF RAUSER=""
QUIT
Begin DoDot:5
+18 SET RAEXCP=@RAHLSRT@(RASEND,RADATE,RADPT,RACN,RAUSER,"ERR")
+19 ; Blank line
SET VALMCNT=VALMCNT+1
SET @RAHLEX@(VALMCNT,0)=""
+20 SET VALMCNT=VALMCNT+1
SET HL7EX=$GET(HL7EX)+1
+21 SET @RAHLSEL@(VALMCNT)=@RAHLSRT@(RASEND,RADATE,RADPT,RACN,RAUSER)
+22 SET LINE=$EXTRACT(HL7EX_"."_$EXTRACT(SPACES,1,5),1,5)
+23 DO DISDATE(" ")
+24 SET LINE=LINE_$EXTRACT(XRADATE_$EXTRACT(SPACES,1,22),1,22)
+25 SET LINE=LINE_$EXTRACT($EXTRACT(RADPT,1,25)_$EXTRACT(SPACES,1,27),1,27)
+26 SET LINE=LINE_$EXTRACT(RACN_$EXTRACT(SPACES,1,7),1,7)
+27 SET LINE=LINE_$EXTRACT(RAUSER,1,19)
+28 SET @RAHLEX@(VALMCNT,0)=LINE
+29 SET VALMCNT=VALMCNT+1
+30 SET LINE=" Error: "_RAEXCP
+31 SET @RAHLEX@(VALMCNT,0)=LINE
End DoDot:5
End DoDot:4
End DoDot:3
End DoDot:2
End DoDot:1
+32 ;
END ; Tidy up variables after ENTRY call only
+1 KILL XRADATE,RAQUIT,RASEND,RADPT,RACN,RAEXCP,RADATE,RAUSER,LINE,RAOLD,SPACES
+2 ;
+3 QUIT
+4 ;
EXIT ; Tidy variables after function (including ListMan IO* and VALM*)
+1 KILL VALMCNT,HL7EX,HL,RAHL7SDT,RAHL7EDT,Y,X,POP,PAGE,DTOUT
+2 KILL @RAHLEX,RAHLEX,@RAHLSRT,RAHLSRT,@RAHLSEL,RAHLSEL,TITLE,DISYS
+3 KILL @RAHLAPP,RAHLAPP,@RAHLUSR,RAHLUSR
+4 ;
+5 IF '$GET(RACLR)
DO CLEAR^VALM1
+6 ;
+7 KILL VALM,VALMAR,VALMBCK,VALMBG,VALMCAP,VALMCC,VALMCNT
+8 KILL VALMDDF,VALMDN,VALMHDR,VALMIOXY,VALMKEY,VALMLFT,VALMLST
+9 KILL VALMMENU,VALMMSGR,VALMUP,VALMSG,RACLR
+10 ;
+11 KILL IOBOFF,IOBON,IOINORM,IOINHI,IORVON,IORVOFF,IOUOFF,IOUON
+12 QUIT
+13 ;
DISDATE(SEP) ; Display date in external form
+1 ; SEP is the separator between date and time - eg " " or "@" or " at "
+2 SET Y=$PIECE(RADATE,".")
DO D^RAUTL
+3 SET XRADATE=Y_SEP_$EXTRACT(RADATE_0,9,10)_":"_$EXTRACT(RADATE_000,11,12)_":"_$EXTRACT(RADATE_00000,13,14)
+4 KILL Y
+5 QUIT
+6 ;
HELP ; The '??' help ListMan Call:
+1 IF X="?"
Begin DoDot:1
+2 DO EN^DDIOL("Choose one of the options listed","","!?5")
+3 DO EN^DDIOL("Or '??' to list More Options","","!?5")
+4 DO WAIT^RAHLEX1
End DoDot:1
QUIT
+5 DO CLEAR^VALM1
+6 KILL RAH
+7 SET RAH(1)=" Rad/Nuc Med HL7 Voice Reporting Exception List"
+8 SET RAH(1,"F")=""
+9 SET RAH(2)="=============================================="
+10 SET RAH(3)="This utility lists all the Errors that have been reported from HL7"
+11 SET RAH(4)="Voice Reporting applications for Radiology/Nuclear Medicine."
+12 SET RAH(5)="It provides some additional facilities:"
+13 SET RAH(6)="1. PL - The list can be printed to screen or to a printer, prints"
+14 SET RAH(7)=" can be queued or printed immediately."
+15 SET RAH(8)="2. RS - Any rejected message listed can be re-submitted. To re-send"
+16 SET RAH(9)=" a message via HL7, first try to resolve the reported"
+17 SET RAH(10)=" problem, then return to this list and select the error. Once"
+18 SET RAH(11)=" successfully re-submitted the reported error will be purged."
+19 SET RAH(12)=" Note however, that successful re-submission does not guarantee"
+20 SET RAH(13)=" the problem has been resolved and that Radiology will be updated"
+21 SET RAH(14)="3. DE - To purge a reported error without re-submitting first."
+22 SET RAH(15)=""
+23 FOR RAHI=2:1:15
SET RAH(RAHI,"F")="!?5"
+24 SET RAH(5,"F")="!!"
+25 SET (RAH(3,"F"),RAH(4,"F"))="!"
+26 DO EN^DDIOL(.RAH)
+27 SET VALMBCK="R"
+28 KILL RAHI,RAH
+29 QUIT