HL7 messages are used to exchange clinical, administrative, and other types of data between healthcare systems. The syntax and content of the messages are defined in the HL7v2 specification.
The HL7v2 specification uses the HL7 abstract message syntax to formally define the structure of HL7 messages. The syntax therefore acts as a language describing the schemas of the HL7v2 message types and can be used to validate the instances of the messages.
This project of mine is a tool that validates HL7v2 messages against the abstract message syntax. The tool parses the ER7-encoded HL7 message, abstract message syntax (the schema or grammar), and checks if the message conforms to the syntax. Both the parsers and the validator are implemented by me from scratch in TypeScript and run in the browser.