Introduction
The Developing Interfaces section is your primary resource for all tasks related to creating Iguana interfaces. Therefore this section has in depth material covering most interface scenarios: HL7, CDA, Web Services, and Database. It also includes our Repositories a Github library of around 70 sample channels. There are also various related topics like: Interface Interface Architecture, Sample Code, Performance and Troubleshooting. Consequently you can quickly find help for any interface related task by viewing the relevant topics, or by using the search box.
If you cannot find the answer you need please contact us at support@interfaceware.com.
Developing Interfaces content [top]
A brief overview of the content in each topic:
- Architecture:
Here you can find out the best to structure your Iguana interfaces. We discuss high level design as well as how to structure your code. Therefore this section contains articles, about: high level interface concepts, how to design an interface structure, and creating a standard interface template for a company.
- Interfaces:
This section is all about teaching specifics of how to create interfaces for different protocols, like HL7, CDA etc. It contains specific details about the design approach for various different protocols. In this section there are sub-sections covering: HL7, Databases, Web Services, CDA, X12, other interfaces, and various utilities.
- Repositories:
Here you can find out about the channels in our example github repositories. These channels tend to be fairly large, full blown, in depth examples — not simple snippets like the Sample Code section. You can import the channels to learn from them, or you can re-use the code as the basis of your own interface, or simply copy a few lines of code. There are two types of repositories: Builtin that you can access directly within Iguana, and Remote github repositories that you must connect to from Iguana before you can import their channels (you can think of Builtin as primary or major repositories and Remote as secondary or minor). This section contains both articles describing how repositories work, and sub-sections that describe the repositories themselves.
- Repository articles:
The articles cover topics like: Overview (yes you should read this one first), how you can import Builtin repository channels, how to connect to a remote repository using an SSH key (its quite easy), how you can setup a staged deployment environment using Git, community collaboration with a public repository, how to delete a channel from Git, solving Git network issues, etc.
- Repository sub-sections:
There are also two sub-folders one for builtin repositories and the other for remote repositories. The builtin repositories folder describes various repositories, like: Iguana Adapters, Iguana Upgrade, Iguana Tools, Iguana Protocols, etc. The remote folder contains a few other repositories that you may find helpful, like: Iguana Apps, Iguana Registry Adaptors, and Iguana Programming.
- Repository articles:
- Sample Code:
This section presents small succinct pieces of code that are easy to copy and modify. Each code sample is intended to solve a single small problem — rather than presenting complete channels like the Repositories section. It includes the following sections: working with modules, using databases and builtin functions, and working with XML.
- Lua Programming:
This section is designed to help you get started with the Lua programming language that we use in the Translator. Here you will find three articles: Lua Basics to help you get started, some tips and tricks from Eliot based on his experiences learning Lua and finally some scripting best practices.
- Programming Tips:
This section contains solutions to various common programming problems, like: working with X12 parsing, how to create/customize help for Lua functions, how to repeat an ACK and prevent it from hanging the channel, how to deal with dates that are too unclear for the date/time parser, etc.
Note: There is a lot of programming related content in the Building Interfaces section, and also the Reference section contains the: Lua, CDA API, and HTTP API references. - Performance:
This section is a bit different as performance tuning usually comes after you have developed your interface. In this section we explain how to improve the performance of Iguana Interfaces and also how to improve performance when using the Translator (which can be very helpful when editing large projects). Performance tuning is essentially a simple process: Find the slowest part of the code and tune it, if the interface is now fast enough then you are finished, if it is still too slow then repeat the previous two steps. This section contains articles about: how to optimize Iguana performance, performance bottlenecks, pipelining message in batches for faster message processing, improving performance when using the Translator, profiling using Pepperfish, evaluating web client performance, etc.
Using the Developing Interfaces Section [top]
You can use the menu to browse to the relevant topic shown in the previous section. Alternatively using search can be very helpful as it will return other relevant content, like: Pages from our Iguana forums, or other related pages from elsewhere in the documentation.
If you cannot find the answer you need please contact us at support@interfaceware.com.