Harpreet Khakh

Forum Replies Created

Viewing 3 replies – 1 through 3 (of 3 total)
  • Author
    Replies
  • in reply to: tps filter proc for iterating segments #84330
    Harpreet Khakh
    Participant

      Looping through OBX segments will be needed in your case.

      Below is what I think will work, please test with your data.

      This is what I did:

      1) Defined variable for disposition (changed returnList to disp and values accordingly)

      2) introduced loop for OBX segments

      3) moved your code testing the value in field to within the loop

      Let me know if any questions.

      #define variable for disposition

                 set disp “CONTINUE”

                 

                 set segments [split msg r] ; #get list of segments of HL7 message

                 # get text for each OBX segment and loop through

                 foreach obx [lsearch -inline $segments “OBX*”] {

                     set obxFields  [split $obx $fieldSep]       ; #split obx segment into list of fields

                     set fieldValue [lindex $obxFields $fieldId] ; #get field to be searched

                     

                     # run the test

                     switch $operator {

                         is {

                             # if value is found in list, kill

                             foreach value $valueList {

                                 if {[cequal $value null]} {

                                     set value “”

                                 }

                                 if {[cequal $value numeric]} {

                                     if {[ctype digit $fieldValue]} {

                                        set disp “KILL”

                                        break

                                     }  

                                     #else {

                                     #   set returnList “{CONTINUE $mh}”

                                     #}

                                 } elseif {[cequal $fieldValue $value]} {

                                     set disp “KILL”

                                     break

                                 }

                                 #else {

                                 #    set returnList “{CONTINUE $mh}”

                                 #}

                             }

                         }

                         not {

                             # if value not found in list, kill

                             foreach value $valueList {

                                 if { [cequal $value null] } {

                                     set value “”

                                 }

                                 if {[cequal $value numeric]} {

                                     if {![ctype digit $fieldValue]} {

                                        set disp “KILL”

                                        break

                                     }

                                     #else {

                                     #   set returnList “{CONTINUE $mh}”

                                     #}

                                 } elseif { ![cequal $fieldValue $value] } {

                                     set disp “KILL”

                                 } else {

                                     set disp “CONTINUE”

                                     break

                                 }

                             }

                         }

                         prefixIs {

                             # if value begins with one found in list, kill

                             foreach value $valueList {

                                 if { [string match $value* $fieldValue] } {

                                     set returnList “{KILL $mh}”

                                     break

                                 } else {

                                     set returnList “{CONTINUE $mh}”

                                 }

                             }

                         }

                      }

                 }

                 

                 

                 return “{$disp $mh}”

      in reply to: SQLServer – SQL Table to HL7 File #82630
      Harpreet Khakh
      Participant

        Hi Femina,

        In database configuration scenario, columns are returned based on table mapping, if select returns only one column, all others will be blank.

        If you really want only one column returned, disable (uncheck) all other columns in database configuration.

        Hope that helps.

        Thanks,

        Harpreet

        in reply to: adding multiple OBX segments #78968
        Harpreet Khakh
        Participant

          Insert this proc in PRE Procs in Xlate route. This will change all OBX segments withing the message before sending it to any other xlate.

          proc editObxSegments { args } {

        Viewing 3 replies – 1 through 3 (of 3 total)