0.1.5 • Published 6 months ago
@radai/hl7-checker v0.1.5
HL7 Checker
A TypeScript-based HL7 message validator that checks segments, fields, and components based on configurable validation rules.
Supports message types like ORM_O01, ORU_R01, and ADT_A01, with extensible rules defined in a JSON config file.
Features
Validates HL7 v2 messages using @medplum/core
Rules defined externally via JSON (field, component, required, etc.)
Differentiates validation based on message type (e.g., ORM_O01 vs ORU_R01)
Modular and extensible rule system
Installation
npm install @radai/hl7-checkerConfiguration
Rules are defined in a JSON file. The structure supports message-type-specific validation:
{
"ORM_O01": {
"MSH": [
{
"field": 9,
"required": true,
"components": [
{
"component": 1,
"required": true
},
{
"component": 2,
"required": true
}
]
}
],
"PID": [
{
"field": 3,
"required": true
}
]
}
}Each top-level key is a combined message type and trigger event (_), such as ORM_O01, ORU_R01, etc.
Usage
import { HL7Validator } from "@your-org/hl7-validator";
const validator = new HL7Validator("./rules.json");
const message = "MSH|...";
const result = validator.validate(message);Output
The result includes:
- segments: Array of segments with field validation statuses
- messages: General validation messages (e.g., parse failures)
- encoding: Separators and control characters extracted from the HL7 message
Example:
{
"segments": [
{
"name": "MSH",
"fields": [
{
"name": "MSH.9",
"validationResult": {
"status": "error",
"messages": ["MSH.9.2: Missing required component"]
}
}
]
}
],
"messages": [],
"encoding": {
"segmentSeparator": "\r",
"fieldSeparator": "|",
"componentSeparator": "^",
...
}
}License
MIT