Skip to main content

pidgeon generate

Generate synthetic healthcare messages.
pidgeon generate <message-type> [options]
The standard is auto-detected from the message type: ADT^A01 → HL7, Patient → FHIR, NewRx → NCPDP.
FlagTypeDefaultDescription
<message-type>positionalRequiredMessage type (e.g., ADT^A01, Patient, NewRx)
--count, -c <n>int1Number of messages to generate
--seed, -s <n>intRandomReproducible seed value
--vendor, -v <name>stringVendor profile for realistic patterns
--mode, -m <mode>stringproceduralGeneration mode: procedural, local-ai, api-ai
--hl7-versionstring2.3HL7 version: 2.3, 2.3.1, 2.4, 2.5, 2.5.1, 2.6, 2.7, 2.8
--output, -o <path>stringstdoutOutput file or directory
--format, -f <fmt>stringautoOutput format: auto, hl7, json, ndjson
Generation modes local-ai and api-ai are Pro features requiring a Console subscription or BYOK configuration.
# Generate 10 HL7 admission messages
pidgeon generate ADT^A01 --count 10

# Generate FHIR patients
pidgeon generate Patient --count 5 --format json

# Reproducible output
pidgeon generate ORU^R01 --count 20 --seed 42

# Vendor-specific patterns
pidgeon generate ADT^A01 --vendor epic_er --count 10

pidgeon validate

Validate messages against standard specifications.
pidgeon validate <files...> [options]
pidgeon validate --file <path> [options]
Files can be passed as positional arguments (with wildcard support) or via --file/--folder.
FlagTypeDefaultDescription
<files...>positionalFiles to validate (supports wildcards)
--file, -f <path>stringSingle file to validate
--folder <path>stringDirectory to validate
--mode <mode>stringstrictstrict or compatibility
--ig <profile>stringFHIR implementation guide
--profile <name>stringVendor profile for validation
# Strict validation
pidgeon validate --file message.hl7 --mode strict

# Vendor-tolerant validation
pidgeon validate --folder ./inbox --mode compatibility

# FHIR with US Core profile
pidgeon validate --file bundle.json --standard fhir --ig us-core

pidgeon deident

De-identify real messages on-device. No data leaves your machine.
pidgeon deident <input> <output> [options]
pidgeon deident --in <path> --out <path> [options]
Input and output can be passed as positional arguments or via --in/--out.
FlagTypeDefaultDescription
<input>positionalInput file or directory
<output>positionalOutput file or directory
--in, -i <path>stringInput file or directory (alternative)
--out, -o <path>stringOutput file or directory (alternative)
--date-shift <dur>string30dDate shift amount (e.g., 30d, 90d, 1y)
--keep-idsflagoffPreserve message control IDs
--salt <string>stringRandomSalt for deterministic hashing
# Basic de-identification
pidgeon deident --in ./real --out ./safe --date-shift 30d

# Deterministic output for team sharing
pidgeon deident --in ./real --out ./safe --date-shift 90d --salt "project-x"

pidgeon diff

Pro feature — requires Console subscription.
Compare messages or directories with field-level analysis.
pidgeon diff <left> <right> [options]
pidgeon diff --left <path> --right <path> [options]
Paths can be passed as positional arguments or via --left/--right.
FlagTypeDefaultDescription
<left> <right>positionalFiles or directories to compare
--left, -l <path>stringLeft file or directory
--right, -r <path>stringRight file or directory
--report, -o <path>stringGenerate HTML report
--ai, -aflagautoEnable AI analysis
--no-aiflagForce algorithmic only
# Compare two messages
pidgeon diff env-a/admit.hl7 env-b/admit.hl7

# Generate HTML diff report
pidgeon diff ./dev ./staging --report diff-report.html

pidgeon workflow

Pro feature — requires Console subscription.
Create and run multi-step clinical test scenarios.
pidgeon workflow wizard
pidgeon workflow run <file> [options]
# Interactive scenario builder
pidgeon workflow wizard

# Run a YAML scenario
pidgeon workflow run ed-visit.yaml --output ./results

# Run with vendor profile
pidgeon workflow run ed-visit.yaml --output ./results --vendor epic_er