I am still a cloverleaf newbie…I was told today about an A08 message that did not make it to our EMR. After researching I found the tcl below that is killing some of the A08 messages. The only problem is I cannot really tell why some of the messages are getting killed.
Pleaseeeeee can someone interpret? Thanks in advance
######################################################################
# Name: tpsA08Filter_Ibex
# Purpose:
# UPoC type: tps
# Args: tps keyedlist containing the following keys:
# MODE run mode (“start”, “run” or “time”)
# MSGID message handle
# ARGS user-supplied arguments:
#
#
# Returns: tps disposition list:
#
#
proc tpsA08Filter_Ibex { args } {
keylget args MODE mode ;# Fetch mode
set dispList {} ;# Nothing to return
switch -exact — $mode {
start {
# Perform special init functions
# N.B.: there may or may not be a MSGID key in args
}
run {
# ‘run’ mode always has a MSGID; fetch and process it
keylget args MSGID mh
set PV1_2 “”
set PV1_3 “”
set msg [msgget $mh]
set fieldSeparator [crange $msg 3 3]
set subFieldSeparator [crange $msg 4 4]
set sep [crange $msg 4 4]
set repChar [crange $msg 5 5]
set escChar [crange $msg 6 6]
set subCompSeparator [crange $msg 7 7]
set pttype “E”
set null ”
set empty {}
set ind “Y”
set segmentList [split $msg r]
set dispList {}
foreach segment $segmentList {
if {[crange $segment 0 2] == “PV1”} {
set PV1_2 [getHL7Fld $segment 2]
set PV1_3 [getHL7Fld $segment 3]
}
}
if { $PV1_2 != $pttype && $PV1_3 == $null } {
set ind “N”
}
if { $PV1_2 != $pttype && $PV1_3 == $empty } {
set ind “N”
}
if {$ind == “Y”} {
lappend dispList “CONTINUE $mh”
} else {
lappend dispList “KILL $mh”
}
}
return $dispList
}
}