Node Types and Iguana Node Trees

Iguana stores messages internally using a node tree structure (a Lua user data type we created for the the Iguana Translator).

Their purpose is to make it easier for us to locate, map, and manipulate message data. A node tree is a custom data type that organizes information like tables do, but they are enhanced by methods that add extra functionality via the Annotation Windows.

Iguana uses various node trees - HL7 (and EDI X12), XML, DB (database query results), and table (database data for updates):

Returned from hl7.parse() and x12.parse()- writeable

  • - HL7/X12 Message

  • - HL7/X12 segment group

  • - HL7/X12 repeated segment group

  • - HL7/X12 segment

  • - HL7/X12 repeated segment

  • - HL7/X12 composite - a field, sub field, or sub sub field.

  • - HL7/X12 repeated composite (field)

Returned from xml.parse()

  • - XML Document

  • - XML CDATA

  • - XML Element

  • - XML Text

  • - XML Attribute

Returned from db.query() and db.execute() - read only

  • - DB result set

  • - DB row

  • - DB string value

  • - DB integer value

  • - DB double value

  • - DB datetime value

  • - DB binary value

     

Returned from db.tables() - writeable

  • - Table root or collection of tables

  • - Table

  • - Table row

  • - Table string value

  • - Table integer value

  • - Table double value

  • - table datetime value

Lua tables and JSON trees are not node trees, but they are displayed hierarchically.

Returned from json.parse() and json.createObject() - writeable

JSON does not use an Iguana node tree instead it uses Lua tables.

  • - Lua table (JSON object or array)

  • - Lua string value

  • - Lua number value (integer or double)

  • - Lua boolean value

  • - Lua special value indicating null in JSON (json.NULL)

Â