Skip to main content

Prerequisites

1

Install the CLI

dotnet tool install -g pidgeon
Verify the installation:
pidgeon --version
2

Generate your first message

Generate a synthetic HL7 ADT admission message:
pidgeon generate ADT^A01
Example output:
MSH|^~\&|PIDGEON|FACILITY|RECEIVING|DEST|20260222143021||ADT^A01|MSG00001|P|2.3
EVN|A01|20260222143021
PID|1||PAT98234^^^MRN||JOHNSON^MARIA^A||19870415|F||2106-3|123 OAK AVE^^AUSTIN^TX^78701
PV1|1|I|ER^101^A|||||||ER||||||A0||V0001^^^VISIT
DG1|1||J18.9^Pneumonia, unspecified organism^I10||20260222|A
Generate multiple messages:
pidgeon generate ADT^A01 --count 10 --output ./test-data/
3

Validate a message

pidgeon validate --file ./test-data/msg_001.hl7 --mode strict
Example output:
Validating msg_001.hl7 with Strict mode...
Validation passed!
Warnings: 1
  HL7-REQ-002: Field EVN.1 (Event Type Code) is empty
    Location: EVN.1
    Tip:      pidgeon lookup EVN.1

Summary: 42 fields checked, 42 of 42 rules passed (100.0% conformance) in 2ms
Each issue includes expected/actual values, fix suggestions, and a pidgeon lookup tip that opens the built-in standards reference.
4

De-identify real messages

If you have real messages to work with, de-identify them first:
pidgeon deident --in ./real-messages --out ./safe-messages --date-shift 30d
All processing happens on your machine — no PHI leaves your environment.
5

Next steps