bvanfleet / x12.net Goto Github PK
View Code? Open in Web Editor NEWThis project forked from inteligenz/x12parser
An open source C# .NET implementation X12 Parser with object orientation.
License: Other
This project forked from inteligenz/x12parser
An open source C# .NET implementation X12 Parser with object orientation.
License: Other
X12.Repository
has deprecated code. This code has been deprecated for quite some time, and with the current work being done, it's time to remove it.
This should be reserved as a last step, as it's a major change which has definite impact to API developers using it still (although they've been warned for quite some time).
I've been working on a Travis CI integration. I am creating this to track my activities around this. Once I've completed the Travis CI setup (with NUnit tests), then I'll go ahead with getting it packaged and pushed to NuGet. At that time, we should complete the 5.0.X release.
Segregating portions of the code into projects allows the use of Resource files to hold localized strings that can be inserted and formatted on the fly. Doing this will also remove many "magic strings" and reduce potential string.Format bugs seen.
Describe the bug
Because X12.NET converts from a string document to an object model, a sizeable chunk of memory is needed to represent the data and metadata. Unfortunately, it's been seen that a 77MB sized file represents a large (+2GB) object model). Even worse, is that it's been observed that the interchange collections returned from the parse
method aren't able to be freed.
To Reproduce
Steps to reproduce the behavior:
parse
method into a variableExpected behavior
Memory that's allocated can be freed after its lifetime (or explicitly). Potentially implement IDisposable
.
Screenshots
At its peak, this execution trying to parse a 77MB file into a collection of interchanges allocated 2.5GB of memory. Execution did not complete before a cancellation of the process was triggered.
Legend:
Desktop (please complete the following information):
Using the ReSharper StyleCop extension, this task is to cleanup the code so that it follows a consistent style. The default settings are being used, and may need to be adjusted later. Once complete, a CONTRIBUTING.md file will need to be generated with the current style guide so future contributors can know how to comply.
Note: This was initially reported in original repository
Describe the bug
When running the X12Parser CLI, if an exception is thrown, it's reported. However, it's immediately followed up with a Windows "Program Not Responding" prompt until it's forcibly closed.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
If an exception is thrown, then the application should gracefully report and exit
Desktop (please complete the following information):
I need to read over the 837I 5010 specification to determine what corrections to our XSLT files need to take place. Some segments, such as PER and DMG may need adjustment.
I also need to review over the HL parent ID requirements to determine if any other adjustments need to be made. One organization that uses the original project has noted that this can be a pain point.
Describe the bug
I am attempting to run some of the tests and do some basic testing on the 834 and came across this error:
ClaimFormTester: The name 'Fonet' does not exist in the current context
X12Parser-1\tests\OopFactory.X12.Hipaa.Tests.Unit\Claims\ClaimFormTester.cs 69 Active
Running on Visual Studio
To Reproduce
Steps to reproduce the behavior:
Expected behavior
I expect the unit test to not fail.
Desktop (please complete the following information):
Is your feature request related to a problem? Please describe.
A DotNet Core alternative to FoNet needs to be found and added where used in the DotNetCore branch of X12.NET
Describe alternatives you've considered
Don't want to build my own. This is the only conversion project I'd like to take on.
Describe the bug
Getting two failures in database tests:
Initialization method OopFactory.X12.Tests.Integration.SqlReadOnlyTransactionRepoTester.TestInitialize threw exception. System.Data.SqlClient.SqlException: System.Data.SqlClient.SqlException: Database 'Test' already exists. Choose a different database name..
Test method OopFactory.X12.Tests.Integration.Repositories.SaveRevisionTester.SaveRevisionGuidTest threw exception: System.Data.SqlClient.SqlException: Cannot open database "Test5" requested by the login. The login failed. Login failed for user 'domain\user'.
To Reproduce
Steps to reproduce the behavior:
Expected behavior
Passing tests that can properly create and clean test databases.
If the database for the first error is non-existent, then a different error is presented.
The current code has some documentation. However, it's fairly sparse. All publicly visible code must be documented so API developers, and future maintainers may be able to better understand what the code is doing.
The primary focus is the X12.Shared
library, which includes the majority of publicly available models.
Need to review over the unit tests to determine what fails, why, and what needs to be done to get them working.
The HIPPA library has several cases where enums
are in the same file as the classes, and a few classes that were experimental. I need to remove dead code, and break out all the enums into a separate namespace.
Is your feature request related to a problem? Please describe.
If 4010 837I samples are enabled, then the unit tests fail. It's possible (however unlikely) that someone may still need this revision.
The biggest reason to fix this is the possibility that it's signalling an internal issue which may affect other scenarios.
Describe alternatives you've considered
I hate the DbCreation class, it's turned into quite the "golden hammer" or "kitchen-sink" class. From a first look, we could split all of the table generation into a factory class, and then call that service on the fly. This could also allow us to expand the use of this code into other DB systems (Oracle, NoSQL, etc.)
This will wait until after the release of v5.0.0 until correction.
Describe the bug
When reading an X12 file using the x12 stream reader ReadNextTransaction method, the SE segment is left out of the result. This is because of the internal do-while loop stopping at SE, without parsing it first.
Expected behavior
Using the ReadNextTransaction method returns a transaction with the SE segment included
Changing the EdiValueAttribute name has broken the majority of .Typed objects. Need to rename them all.
Describe the solution you'd like
I'd like to remove all namespace references to OopFactory (e.g. X12.Parsing
or X12.Sql
)
Additional context
The purpose of this is for library branding. Since this is a fork, I'd like to set mine apart slightly. While much of the code will match.
Is there something in the works to support X12 835 Payment/Remittance Advice documents?
I use the parent of this library (OopFactory.X12.HIPAA) to parse X12 271 Eligibility Responses and would want to see something that has the capability to break each of the other X12 HIPAA document types into OOP Objects based on the loop structure of the X12 - not just at the segment level. I also feel it is much more efficient use of my employer's resources if there is something that does this out of the box so I do not have to spin my own.
Thanks in advance!
Question:
If an institutional 837 claim was submitted with separate billing-provider
data (Box 1) and pay-to
data (Box 2) and the pay-to TIN
was no specified, is it expected for Box 5 to be blank ?
From the logic (https://github.com/bvanfleet/X12.NET/blob/master/src/X12.Hipaa/Claims/Claim.cs#L316-L330), I can see the precedence and why the output for Box 5 is blank. However, can the TaxId be copied from the billing-provider
(Box 1) instead or is that against some requirements ?
Additionally, from X12.Hipaa.Claims, claim.PayToProvider.TaxId
(Provider) is a private member.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.