Node Types for Iguana Node Trees

Introduction

Iguana stores messages internally using a node tree structure. 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. These methods that are defined in the Iguana Node module. Iguana uses various node trees: HL7, XML, DB (database query results), table (database data for updates), X12 (same as HL7), and Table Grammar (a historical format).

Tip: The node tree is actually a Lua userdata type that we created for the the Iguana Translator. For programmers who would like to know more, check out these links:

DB node types [top]

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

Type node.nodeType() return Icon Description
Result Set result_set DB result set
Row row DB row
Value String string DB string valueolder versions use
Value Integer integer DB integer value
Value Double double DB double value
Value Datetime datetime DB datetime value
Value Binary binary DB binary value

Table node types [top]

Returned from db.tables() (writeable)

Type node.nodeType() return Icon Description
Root or Table Collection table_collection Table root or collection of tables
Table table Table
Table Row row Table row ro
String string Table string value
strolder versions use
Integer integer Table integer value integer value
Double double Table double value
Datetime datetime Table datetime value

Table Grammar node types [top]

Returned from chm.parse() (writeable)

Type node.nodeType() return Icon Description
Root table_grammar_root Table Group root
Table Group table_group Table Group group of tables
Table Group Row table_group_row Table Group row
Table table Table Group table
Table Row row Table Group row ro
String string Table Group string valueolder versions use str
Integer integer Table Group integer value integer value
Double double Table Group double value
Datetime datetime Table Group datetime value

JSON node types [top]

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

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

Type node.nodeType() return Icon Description
Object function not available for Lua tables Lua table
Array function not available for Lua tables Lua table with sequential integer indices
String function not available for Lua tables Lua string valueolder versions use
Integer function not available for Lua tables Lua number value
Double function not available for Lua tables Lua number value
Boolean function not available for Lua tables Lua boolean value
json.NULL function not available for Lua tables Lua special value indicating null in JSON

HL7 node types [top]

Returned from hl7.parse() and hl7.message() (writeable)

Type node.nodeType() return Icon Description
Message message HL7 message
Repeated Segment Group segment_group_repeated HL7 repeated segment group
Segment Group segment_group HL7 segment group segment sessssssskkkkkkk
Repeated Segment segment_repeated HL7 repeated segment
Segment segment HL7 segmentsegment
Repeated Field field_repeated HL7 repeated field (or composite) repeatdd
Field field HL7 field (or composite)
Sub Field subfield HL7 sub field (or composite)
Sub Sub Field subsubfield HL7 sub sub field (or composite)

X12 node types [top]

Returned from x12.parse() and x12.message() (writeable)

X12 uses the HL7 node types above.

XML node types [top]

Returned from xml.parse()

Type node.nodeType() return Icon Description
Document document XML Document
CDATA cdata XML CDATA
Element element XML Element
Text text XML Text Te Tes
Attribute attribute XML Attribute

Generic node type [top]

This is a node tree that represents any userdata type other than those above, for example: A file handle returned from io.open(), database connection returned from db.connect{}, and time returned from various time functions, and dateparse.

Note: The datatype “userdata” can be extended by anyone, including interfaceware developers, to be “anything”.

Type node.nodeType() return Icon Description
Generic node function not available for file and db handles, and time lua_userdata Generic userdata type
Function not applicable lua_function Function for a userdata type like file or database handles

Leave a Reply