Getting Started

Build healthcare integration pipelines with YAML and TypeScript

What is intu?

intu is a Git-native healthcare interoperability framework. It provides a Go-based CLI that combines YAML configuration with TypeScript transformers to build, validate, and manage healthcare integration channels.

Projects are plain directories tracked in Git, making collaboration, code review, and version control natural parts of your integration workflow. intu is AI-friendly by design — structured schemas and declarative config make it straightforward for AI assistants to generate and modify pipelines.

Install

npm (recommended)

bash
npm install -g intu-dev

Build from source

bash
git clone https://github.com/intuware/intu-dev.git
cd intu-dev
go build -o intu .
Prerequisites Go 1.22+ and Node.js 18+ (with npm) are required. No external services such as Kafka or PostgreSQL are needed for local development.

Quick Start

Scaffold a new project, install dependencies, add a channel, then validate and build:

1. Create a new project

bash
intu init my-project

2. Install Node dependencies

bash
cd my-project && npm install

3. Add a channel

bash
intu c my-channel

4. Validate configuration

bash
intu validate

5. Compile transformers

bash
intu build

Project Structure

After running intu init, your project directory looks like this:

text
my-project/
├── intu.yaml
├── intu.dev.yaml
├── intu.prod.yaml
├── .env
├── package.json
├── tsconfig.json
├── lib/
│   └── index.ts
└── channels/
    └── sample-channel/
        ├── channel.yaml
        ├── transformer.ts
        └── validator.ts
File / Directory Purpose
intu.yaml Root configuration — runtime settings, destinations, and global options
intu.dev.yaml / intu.prod.yaml Profile-specific overrides layered on top of the base config
.env Environment variables referenced by ${VAR} in YAML files
package.json Node.js manifest for TypeScript compilation
tsconfig.json TypeScript compiler configuration
lib/ Shared TypeScript utilities
channels/ One subdirectory per channel, each containing its own YAML config and TypeScript files

Core Concepts

Channels
A channel is a complete processing pipeline that receives messages from a source, transforms and validates them, then delivers them to one or more destinations. Each channel lives in its own directory under channels/.
Sources / Listeners
Sources define where messages originate. intu supports HTTP, TCP/MLLP, Kafka, file, database, SFTP, DICOM, FHIR, and more. Each channel has exactly one source configured in its channel.yaml.
Transformers
Transformers are TypeScript functions that manipulate messages as they flow through a channel. They are compiled by intu build using tsc.
Validators
Validators are TypeScript functions that check whether a message conforms to expected schemas or business rules before it reaches its destination.
Destinations
Destinations define where processed messages are delivered. Named destinations are declared at the root level in intu.yaml and referenced by channels. Supported types include Kafka, HTTP, TCP, file, database, SFTP, SMTP, DICOM, FHIR, and more.
Profiles
Profiles provide environment-specific configuration layering. The base intu.yaml is merged with a profile file such as intu.dev.yaml or intu.prod.yaml, allowing you to vary settings per environment without duplicating configuration.

Next Steps