// the find
nHapiNET/nHapi
nHapi is the .Net port of the original Java project HAPI.
nHapi is a .NET port of the Java HAPI library for parsing and encoding HL7 v2.x messages — the pipe-delimited format that still dominates hospital system integrations. If you're building healthcare interfaces in .NET and need to speak ADT, ORM, ORU, or any other HL7 2.x message type, this is the de facto library. It covers every HL7 2.x version from 2.1 to 2.8.1 with strongly typed model classes for each.
Full version coverage across HL7 2.1 through 2.8.1 with separate strongly typed model assemblies per version — you pick the version your interface partner speaks and get compile-time correctness on segments and fields. The Terser class gives you a path-based accessor (e.g., `MSH-9-1`) so you can extract fields without navigating the full object graph, which is genuinely useful for quick integrations. Dual format support — pipe-delimited ER7 and XML — in the same API is non-trivial to implement correctly across all those versions. The netstandard2.0 target is smart for healthcare IT, where hospital systems run ancient .NET Framework versions and modern Kubernetes deployments coexist in the same org.
The model classes are generated from the Java HAPI source, so the API is very Java-flavored C# — verbose, class-per-segment, lots of `Get`/`Set` accessors instead of properties. The build directory still has committed NuGet.exe binaries and psake scripts from 2014 sitting alongside modern GitHub Actions CI, which suggests the repo wasn't modernized so much as layered over. The custom logging abstraction (IHapiLog, HapiLogFactory) predates ILogger<T> and won't wire into your existing structured logging without an adapter you have to write yourself. No MLLP/TCP support in the core library — you need the companion NHapiTools project for that, which is separately maintained and last updated less recently.