- 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