All notable changes to this project will be documented in this file.
This release is purely superficial, it does not fix or add anything.
- Add appropriate target framework metadata to the metapackage nuspec - already exists in the individual nuget packages.
See 3.2.0 release for latest changes.
By @milkshakeuk
Various new ParserOptions
have been added, see the wiki for more information.
As part of #398 the imperfect behaviour of XmlParser
and DefaultXmlParser
have been updated and brought inline with hapi
fixing many quirks and defects. If you are dependant on this old behaviour you can use LegacyXmlParser
and LegacyDefaultXmlParser
instead, these will be available until the next major version of nHapi
.
The nHapi convenience nuget package is now a meta package meaning it does not directly contain any Dlls. This metapackage just describes its dependencies, which happen to be all of the individual nHapi nuget packages. If you want to understand a little bit more about metapackages read this.
There is no difference in behaviour when using this metapackage vs the previous nHapi nuget package.
- #318 Port
ORL_O34
fix for cyclic reference, fixes forV2.5.1
,2.5
,2.6
. By @milkshakeuk (fixes #298) - #340 Fix
Terser
Regex bug. By @milkshakeuk (fixes #319) - #402 Fix
OBX
repeat counts for V24. By @milkshakeuk (fixes #341)
- #283 Enable refactor of Source Generation code. By @milkshakeuk
- #291 Fix some static analysis issues. By @PhantomGrazzler
- #308 Include the optional
LongName
attribute in the XML encoded output. By @laxmi-lal-menaria (resolves #301) - #360 Add Support for
CharSetUtil
andPreParser
. By @milkshakeuk (resolves #312) - #362 Fixed some static analysis warnings related to public constants. By @PhantomGrazzler
- #398 Bring XmlParsing in line with
hapi
. By @milkshakeuk (unblocks #308) - #278 Better Source Link Support. By @milkshakeuk
- #288 Update Github Actions to use OS matrix. By @milkshakeuk
- #277 Remove MaxRepetition check, keeps nhapi in line with hapi behaviour, nhapi becomes more forgiving in regards to repetitions. By @milkshakeuk (fixes #276)
- #254 Add
UnexpectedSegmentBehaviour
Options, ported from hapi. By @milkshakeuk - #251 Fix concurrency issues with
PipeParser
,StructureDefinition
,GenericMessage
andEscape
. By @milkshakeuk - #250 Add new options
DefaultObx2Type
andInvalidObx2Type
toParserOptions
, ported from nhapi. By @milkshakeuk (fixes #63) - #240 Add support for
NonGreedyMode
by introducingParserOptions
ported from hapi. By @PhantomGrazzler (fixes #65 #232)
- #256 Simplify cspoj through use of props and targets files. By @milkshakeuk
- Update tools and build to net6.0. By @milkshakeuk
This change is to prevent the following Exception:
System.ArgumentException - An item with the same key has already been added.
In cases where dictionaries / hashtables are used for lookups such as Escape.cs
when there multiple threads trying to add to them at the same time.
Instead of using Add(key, value)
which only allows 1 items with a given key to be added to the dictionary / hashtable, we are using the index accessor to set or update the value in a last one wins scenario, but only when its combined with ContainsKey
which has indicated that an item with that key shouldn't exist.
By @milkshakeuk
This change updates the PipeParser
Version check when obtaining encoding characters from a message object in order to encode it to HL7; string.CompareOrdinal
is now used instead of System.Version
which is more forgiving when a version contains non numerical characters.
By @milkshakeuk
This change gives nhapi strong-named assemblies, there are no codes changes.
- #227 fixes "A strongly-named assembly is required" runtime errors
By @milkshakeuk
This release is for the NuGet package nhapi.model.v231
only, there are no code changes, see below for change.
- Remove unused project reference.
Along with the changes below you can now be more selective about how you install nHapi, please read the Getting Started page of the wiki for more information.
Default escape sequence for carriage return has changed from \X000d\
to \X0D\
which brings it inline with other libraries and InterSystems ensemble.
However if you rely on the old escape sequence of \X000d\
for carriage returns you can now configure this, see #185 or the wiki for configuration options.
The latest PipeParser
implementation from hapi has been ported over to nHapi, there aren't any breaking changes that I am aware of, only benefits, however if you relied on the specific behaviour of the old PipeParser.cs
then you can use LegacyPipeParser.cs
instead, which is the old implementation.
- #118 Add LongDateTimeFormatWithFactionOfSecond format for date parsing (fixes #104)
- #134 Fix spelling mistake
- #136 Various Issue fixes (fixes for #45, #62, #81, #84, #85, #86, #109, #133)
- #185
Escape.cs
Improvements - hapi implementation port. (fixes for #103) - #192, #202 Update HL7 v. 2.3 IN1 and IN2 repeat flags for some fields. (fixes #191)
- #200 PipeParser Enhancements - Fix issues related to unexpected segments. (fixes #51, #55, #56, #72, #101)
- #197 Fixes Exceptions and permanent Hang when parsing bad input, Adds bad input tests. (fixes #196, #198)
- #205 Added additional bad inputs and enhanced error handling. (fixes #203)
- #217 Add changes to fix bad input from fuzzing. (fixes #210)
- #75 Add support for removing fields by index or by item/type
- #112 Adds support for netstandard2.0. (fixes #61)
- #117 Add .vs into .gitignore file to ignore Visual Studio files
- #129 restructure project to a more modern project structure
- #130 Decouple NHapi source code generation from NHapi.Base
- #135 NHapi.Base > Formatted XML License Comments
- #135, #137 Fix XML Build warnings. (fixes #128)
- #140 Add license for nHapi. (fixes #119)
- #143 Add StyleCopAnalyzers to main projects. (fixes #138)
- #141 Create basic GitHub Actions for pull requests. (partially addresses #124)
- #142 Add code coverage to the CI/CD, plus build status workflow for master. (partially addresses #124)
- #145 Code Climate Coverage. (partially addresses #124)
- #147, #148 Enable dependabot support to the repository
- #201 Normalize all the line endings.
- #204 Create Default GitHub Code Scanning Workflow
https://github.com/nHapiNET/nHapi/releases/tag/v3.0.0-preview.3
https://github.com/nHapiNET/nHapi/releases/tag/v3.0.0-preview.2
https://github.com/nHapiNET/nHapi/releases/tag/v3.0.0-preview.1
- Resolve #11 by reverting:
- "Fix pipe parser and message iterator in handing white space in version and unexpected segments"
- "Add unknown segments to the message not child groups."
- "Fix pipe parser segment rep, and invalid field reps."
- "Fix rep code to actually read using the GetField(i, rep)"
- If encountering a DTM typed OBX result in a version of HL7 that does not have the DTM type, redirect to the DT type
- Small bug in milliseconds parsing CommonTM.cs #48
- TSComponentOne GetAsDate does not handle offset from UTC/GMT #38
- Whitespace after version number causes an issue #39
- Unexpected Segments cause later parsing issues #40
- Message escaping isn't functioning properly on all UNC strings #44
- All versions: Repeating structures now have Enumerators, Add, Remove and RemoveAt methods generated
- Many breaking changes for v2.2, v2.3 and v2.3.1. These are all due to fields not correctly being repeating or single fields, incorrect data types etc.
- All versions now successfully able to be code generated once more.
- Initial implementation for HL7 version 2.8.1
- Initial implementation for HL7 version 2.8
- Initial implementation for HL7 version 2.7.1
- Initial implementation for HL7 version 2.7
- Initial implementation for HL7 version 2.6
- Restore original behaviour for Custom Segment handling as reported in issue #28 (Submitted by lniedzielski)
- Fix nHapi v2.5.1 not mapping ADT events correctly due to lack of having an eventmapping.properties embedded in the project (Submitted by rajputs6)
- Fix incorrect version for all dlls
- Fix NHapi.Model.V251.dll not having it's version property set correctly
- Add xml comments to nuget package (Submitted by vongillern)
- HL7 Version 2.5.1 messages would not parse due to having incorrect namespaces. Affected segments "DT, ST and TM". (Reported by lharless)
- HL7 Version 2.1 messages would not parse due to not being listed as an acceptable base version. (Reported by taiji123)
- Catch unhandled InvalidOperationExceptions when populating a HL7Exception's ERR segment using HL7Exception.populate().
- Resolve EventMaps not being loaded properly.
- Update FT's SizeRule to be up to 64k in length.
- Include field offset component when rethrowing caught DataTypeExceptions whilst parsing.
- Abstract and Varies segments were not having their Description field values populated. (Reported bv TheStephenStanton)
- ORU_R01 messages for v2.5.1 incorrectly did not support the repeating, optional segments OBX, Timing QTY and Specimen.
- Moved regular expression field validation into it's own StrictValidation opt in validation context.
- Correctly escape \X0A\ as \n (thanks to riaz.ahmad)
- Each field / token was being extracted twice (Reported by AFAde)
- Nuget Package wasn't deploying the 2.51 dll due to new nuget command line packaging and deployment.