The Shell Adapter: A Starting Point for Building Your Own Adapters
Most integration teams eventually run into a system that does not match any common protocol or standard. It might be a custom EMR used in a regional clinic, a pharmacy system with a one of a kind API, or a legacy platform that communicates in a format no engine recognizes out of the box. When this happens, the question becomes simple. How do you integrate with something that has no ready made adapter?
This is exactly why the Shell Adapter exists. It gives you a structured foundation for creating your own first class adapter inside Iguana. Instead of hacking together custom logic from scratch, you start with a clean blueprint that has all the essential pieces already in place.
What the Shell Adapter is
The Shell Adapter is a template that lets you build an adapter the same way iNTERFACEWARE builds its official adapters. It provides:
-
A preconfigured component structure
-
A clear set of input and output expectations
-
A starting point for custom logic
-
A model for how to handle configuration fields
-
A simple pathway for packaging the result as a reusable component
You can think of it as a blank adapter kit. It contains the wiring, the shape, and the structure, but leaves the system specific behavior for you to define.
Documentation link for reference:
https://docs.interfaceware.com/docs/IguanaX_Documentation_Home/Development/iNTERFACEWARE_Collections/Core_Collection/Shell_Adapter_2705850686
Why it exists
Every customer has at least one system that does not behave like anything else. That reality makes it difficult to rely only on pre built adapters. The Shell Adapter solves this problem by giving teams a standard way to build new adapters that look and function like any other component in Iguana.
The goals behind it include:
Consistency
Your custom adapter follows the same structure as Iguana's official ones.
Reusability
Once you build an adapter for a system, you can package it and use it for every new clinic or customer that uses that same platform.
Flexibility
It supports any system, whether it uses HL7, JSON, CSV, SOAP, a vendor API, or something completely non standard.
Better long term maintainability
Instead of one off custom code inside a mapping component, you have a clean component dedicated to connecting to that system.
A simple mental model: think of the Shell Adapter as a mold
The Shell Adapter is not an adapter by itself. It is the mold for creating one. When you first import it, the component contains:
-
A source block
-
A destination block
-
A translator block
-
Placeholder configuration fields
-
Comments explaining where custom logic should go
You fill in the translator code with whatever is required to talk to your target system. You define which configuration fields the user should set. You decide how the component should behave.
Once finished, your team can treat the result exactly like any built in adapter.
When to use the Shell Adapter
Teams commonly use it for:
Custom EMRs
If a clinic uses its own homegrown EMR or a regional one not listed in Iguana's library, the Shell Adapter gives you a structured way to create a clean connection for it.
Pharmacy networks
Many pharmacy systems use unique message formats or proprietary APIs. The Shell Adapter helps wrap that complexity in a reusable component.
Vendor APIs with inconsistent patterns
If a vendor has a set of endpoints that do not align with any standard, you can design an adapter around their specific authentication, endpoints, and field requirements.
Legacy or file based systems
Some older systems exchange data using CSV files, fixed width text files, or custom XML. Creating a dedicated adapter keeps the logic organized and repeatable.
What building an adapter looks like
Here is an example scenario. Imagine you need to build an adapter for a small EMR that sends patient updates through a simple HTTPS POST endpoint with a custom JSON schema.
Inside the Shell Adapter, you might:
-
Define configuration options such as base URL, API key, and timeout
-
Add code to authenticate with the EMR
-
Parse incoming data from a source feed
-
Convert that data to the EMR's JSON schema
-
Post the payload to the EMR's endpoint
-
Handle errors and retries
At that point, you now have a reusable EMR adapter component that any developer on your team can import.
Packaging your custom adapter for reuse
The Shell Adapter is designed to work with Iguana's Collections system and with Git.
Once you finish building your adapter:
-
Store it in Git
-
Version it with commit messages
-
Add it to a collection
-
Import it into other environments or customer systems
-
Update it centrally when the EMR or pharmacy changes their behavior
This turns your custom work into a shared asset across projects.
The Shell Adapter is your pathway to unlimited integrations
Iguana includes many pre built adapters, but no vendor can ever produce an adapter for every system in every region. The Shell Adapter removes that limitation by giving you a clean, structured framework for building exactly what you need.
Once your team gets comfortable with it, you can create:
-
Custom EMR connectors
-
Pharmacy interfaces
-
Vendor specific protocol modules
-
System specific mapping layers
-
Internal integration utilities
Anything that needs a repeatable integration pattern can be built with the Shell Adapter as the foundation.