Help: char-delimited field to iterate in XLT

Homepage Clovertech Forums Read Only Archives Cloverleaf Cloverleaf Help: char-delimited field to iterate in XLT

  • Creator
    Topic
  • #54230
    Gabriel Mendes
    Participant

    Hi guys, good morning

    My experience with Cloverleaf is not very advanced and I need some help with the following matter, and I hope you can help me:

    I have a flat file as an input, which needs to be translated to an ORU_R01.

    each line of the report in this flat file needs to be inserted into an OBX segment.

    is there a way for me to iterate each line of this report into a OBX as a repeating segment?

    I know maybe with list iteration, but I don’t have much experience with this kind of iterations in XLT.

    Also, do I map the values into a VRL?

    Any help will be deeply appreciated

    Gabriel Mendes

Viewing 10 reply threads
  • Author
    Replies
    • #80658
      Jim Kosloskey
      Participant

      If there is some way of identifying each line then you could define this as an HRL (possibly with VRL, FRL, or even other HRL as members).

      Especially if you can identify the report lines from the other lines.

      Then in the HRL you would indicate the VRL would repeat as long as the field which identifies the report lines has the proper ID.

      email: jim.kosloskey@jim-kosloskey.com 29+ years Cloverleaf, 59 years IT - old fart.

    • #80659
      Gabriel Mendes
      Participant

      Jim, thank you very much for your response.

      In fact, I must translate not only this repeating segment, but also other literal information (patient name, patient ID…)

      How should I organize my input message format, in my XLT? A VRL with the literal information and a separated VRL for the report and a HRL with two fields: patient info and report?

      How do i translate my message into a HRL?

      Sorry do dig into this. I have never used HRL

      Attached, my VRL and my CSV, generated via TCL from my text file. I replaced every line break with a n

      Sincerely

    • #80660
      Jim Kosloskey
      Participant

      Gabriel,

      I will be fairly busy this AM (USA Eastern time) but will respond in more detail later if someone else does not before then.

      For know it would be helpful if you shared the design of the messages such as what each column means and what the potential values are.

      For instance the ‘Action column is that some kind of line/record ID?

      email: jim.kosloskey@jim-kosloskey.com 29+ years Cloverleaf, 59 years IT - old fart.

    • #80661
      Gabriel Mendes
      Participant

      Jim,

      all the columns are textual information. The most important thing is that the “Report” is a repeating column, which does not have a fixed repeat number.

      I changed the strategy now. I created two VRL: Patient info and Report. the report vrl has only one field, which is “report text”.

      Now I created a HRL with both VRL. Patient is not repeating and report is.

      Do you think this will work? How do I test a HRL? with a comma delimited file?

      I made the report segment in my HRL as a fixed repeating segment (10), cause i don’t know how to create a condition (example, till it ends)

    • #80662
      Jim Kosloskey
      Participant

      Gabriel,

      Is there anything in the report lines that identify them as the report lines?

      Sometimes in these kinds of files there is a code in each record identifying the type of record it is.

      email: jim.kosloskey@jim-kosloskey.com 29+ years Cloverleaf, 59 years IT - old fart.

    • #80663
      Gabriel Mendes
      Participant

      Yes, there is.

      In fact, I was able to extract this info from a file and managed to map them into a HRL.

      My main issue now is how do I declare the number of repetitions (its fixed with 50, but its variable, depending on the number of lines) and how do I iterate in the XLT

    • #80664
      Gabriel Mendes
      Participant

      I managed to make It work.

      Solution:

      Input: HRL

      Output: HL7 ORU

      Iterate: Segment

      Result from Testing Tool:

      [0:TEST] The list of addresses are totally unresolvable

      [0:TEST] [mid:0x31ea87c] unknown segment ” — ignored.

      0(0).MSH(0)  :  >|^~&|CRIS|Radiology|PACS|Radiology|20140528122306||ORU|0019061702|P|2.3<

      1(0).0(0).0(0).PID(0)  :  >|||0002192920||TEST VERS#O 14.04.02.01 (F)<

      1(0).1(0).0(0).ORC(0)  :  >|||0019061702<

      1(0).1(0).0(0).OBR(0)  :  >||0019061702|0019061702<

      1(0).1(0).1(0).OBX(0)  :  >||ST|||


      |||||||F<

      1(0).1(0).1(1).OBX(0)  :  >||ST||||||||||F<

      1(0).1(0).1(2).OBX(0)  :  >||ST||||||||||F<

      1(0).1(0).1(3).OBX(0)  :  >||ST|||asfget 5 554t t435 5 334 4 4345 4 t4 4 4 5 yw45 |||||||F<

      1(0).1(0).1(4).OBX(0)  :  >||ST|||v 3434 3454  54|||||||F<

      1(0).1(0).1(5).OBX(0)  :  >||ST|||5 56  |||||||F<

      1(0).1(0).1(6).OBX(0)  :  >||ST|||56 |||||||F<

      1(0).1(0).1(7).OBX(0)  :  >||ST|||y7j 67j |||||||F<

      1(0).1(0).1(8).OBX(0)  :  >||ST||||||||||F<

      1(0).1(0).1(9).OBX(0)  :  >||ST||||||||||F<

      1(0).1(0).1(10).OBX(0)  :  >||ST||||||||||F<

      1(0).1(0).1(11).OBX(0)  :  >||ST||||||||||F<

      1(0).1(0).1(12).OBX(0)  :  >||ST||||||||||F<

      1(0).1(0).1(13).OBX(0)  :  >||ST|||REPORT|||||||F<

      1(0).1(0).1(14).OBX(0)  :  >||ST||||||||||F<

      1(0).1(0).1(15).OBX(0)  :  >||ST||||||||||F<

      […]

      Jim, thank you very much for your help!

      The only think I need to do now is to make as many OBX segments as newlines in the file. this way, I’m always generating 50 OBX Segments. Can you help with this, please?

    • #80665
      Jim Kosloskey
      Participant

      Gabriel.

      In your HRL at your VRL segment for the OBX lines specify ‘Repeat While’ and indicate the ‘Field:’ as XXX.yyyy where XXX is the name of the VRL and yyyy is the name of the field in that VRL which has the value indicating this is a OBX record.

      For the ‘Value:’ as the value which the field above contains which indicates the record is a OBX record.

      So the VRL for the lines seems to be ‘Report’ and let’s assume (since you did not state) that MESSAGE_ID is the field that indicates a report record (and let’s also assume the value in that field is ‘detail’ when it is a report line).

      Your ‘Field:’ value in the ‘Repeat While’ would be ‘Report.MESSAGE_ID’ and the ‘Value:’ value would be ‘detail’.

      So as long as a lline has ‘detail in the MESSAGE_ID position of the Report VRL you can ITERATE.

      As for how to ITERATE it would be a segment iteration and the basis would be the element in the inbound tree which is the VRL which repeats.

      email: jim.kosloskey@jim-kosloskey.com 29+ years Cloverleaf, 59 years IT - old fart.

    • #80666
      Charlie Bursell
      Participant

      If it were me, and it is not, I would normalize the input to HL7.  It is easy enough to create a simple variant message with a dummy MSH and create repeating segments for your lines

      HRL is very unwieldy especially for input.  Not too bad on the output.  Given this same problem most of the experienced implementers I know would prefer to normalize to HL7

    • #80667
      Gabriel Mendes
      Participant

      Guys, thanks for the replies

      Jim, the main issue is that The patient_info don’t repeat for each line of my report. In one message, I have one patient info and multiple report lines, so I can’t make report lines repeat depending on my patient Info. I imagine that I must repeat using a repeatable field, right?

      I inserted a dummy field with a default value, for each report line, and iterated comparing this field to this value.

      Now the iterations worked fine

      Best Regards

    • #80668
      Jim Kosloskey
      Participant

      Gabriel,

      The essential question is whether the lines that repeat have some field in them that is the same so one can identify those lines from thee others.

      So is there such a field or not?

      Perhaps if you shared an example we can see.

      If there is not such a field then using the method I described will not work.

      Depending on the construct another method may work – again an example could be enlightening.

      You always can follow Charlie’s suggestion and construct a Tcl proc to ‘normalize’ the message to HL/7.

      email: jim.kosloskey@jim-kosloskey.com 29+ years Cloverleaf, 59 years IT - old fart.

Viewing 10 reply threads
  • The forum ‘Cloverleaf’ is closed to new topics and replies.

Forum Statistics

Registered Users
5,118
Forums
28
Topics
9,293
Replies
34,435
Topic Tags
286
Empty Topic Tags
10