From e1bf736b4b729f4717421fdea3681518b8bd83ad Mon Sep 17 00:00:00 2001 From: Albert Hives Date: Mon, 27 Aug 2018 23:00:50 -0700 Subject: [PATCH] fixed issue #58 and issue #62 --- .../LayoutParserBenchmarks.cs | 18 ++++++-- .../ParserTests/StreamingLayoutParserTests.cs | 41 +++++++++++++++++++ .../StreamingMessageParserTests.cs | 1 + .../Layouts/Layout270Tests.cs | 8 ++-- .../Layouts/Layout271Tests.cs | 11 +++-- .../Layouts/Layout835Tests.cs | 29 +------------ .../Layouts/Layout837Tests.cs | 20 ++++++--- .../Generated/V5010/Layouts/ACK997.cs | 14 +------ .../Generated/V5010/Layouts/ACK999.cs | 14 +------ .../Generated/V5010/Layouts/HC837D.cs | 20 +-------- .../Generated/V5010/Layouts/HC837I.cs | 20 +-------- .../Generated/V5010/Layouts/HC837P.cs | 20 +-------- .../Generated/V5010/Layouts/HCA277.cs | 18 +------- .../Generated/V5010/Layouts/HCPA835.cs | 28 +------------ .../Generated/V5010/Layouts/HCSR276.cs | 20 +-------- .../Generated/V5010/Layouts/HEBI270.cs | 18 +------- .../Generated/V5010/Layouts/HEBR271.cs | 18 +------- .../Generated/V5010/Layouts/HISN277.cs | 18 +------- .../Generated/V5010/Layouts/ISNT277.cs | 30 ++++++++++++++ .../Generated/V5010/Layouts/Maps/ACK997Map.cs | 10 +---- .../Generated/V5010/Layouts/Maps/ACK999Map.cs | 10 +---- .../Generated/V5010/Layouts/Maps/HC837DMap.cs | 14 +------ .../Generated/V5010/Layouts/Maps/HC837IMap.cs | 14 +------ .../Generated/V5010/Layouts/Maps/HC837PMap.cs | 14 +------ .../Generated/V5010/Layouts/Maps/HCA277Map.cs | 13 +----- .../V5010/Layouts/Maps/HCPA835Map.cs | 17 +------- .../V5010/Layouts/Maps/HCSR276Map.cs | 13 +----- .../V5010/Layouts/Maps/HEBI270Map.cs | 12 +----- .../V5010/Layouts/Maps/HEBR271Map.cs | 12 +----- .../V5010/Layouts/Maps/HISN277Map.cs | 12 +----- .../V5010/Layouts/Maps/ISNT277Map.cs | 26 ++++++++++++ .../Generated/V5010/Layouts/Maps/T270Map.cs | 26 ++++++++++++ .../Generated/V5010/Layouts/Maps/T271Map.cs | 26 ++++++++++++ .../Generated/V5010/Layouts/Maps/T276Map.cs | 27 ++++++++++++ .../Generated/V5010/Layouts/Maps/T277Map.cs | 27 ++++++++++++ .../Generated/V5010/Layouts/Maps/T835Map.cs | 31 ++++++++++++++ .../Generated/V5010/Layouts/Maps/T837DMap.cs | 28 +++++++++++++ .../Generated/V5010/Layouts/Maps/T837IMap.cs | 28 +++++++++++++ .../Generated/V5010/Layouts/Maps/T837PMap.cs | 28 +++++++++++++ .../Generated/V5010/Layouts/Maps/T997Map.cs | 24 +++++++++++ .../Generated/V5010/Layouts/Maps/T999Map.cs | 24 +++++++++++ .../Generated/V5010/Layouts/T270.cs | 30 ++++++++++++++ .../Generated/V5010/Layouts/T271.cs | 30 ++++++++++++++ .../Generated/V5010/Layouts/T276.cs | 32 +++++++++++++++ .../Generated/V5010/Layouts/T277.cs | 30 ++++++++++++++ .../Generated/V5010/Layouts/T835.cs | 40 ++++++++++++++++++ .../Generated/V5010/Layouts/T837D.cs | 32 +++++++++++++++ .../Generated/V5010/Layouts/T837I.cs | 32 +++++++++++++++ .../Generated/V5010/Layouts/T837P.cs | 32 +++++++++++++++ .../Generated/V5010/Layouts/T997.cs | 26 ++++++++++++ .../Generated/V5010/Layouts/T999.cs | 26 ++++++++++++ 51 files changed, 752 insertions(+), 360 deletions(-) create mode 100644 src/Machete.X12Schema/Generated/V5010/Layouts/ISNT277.cs create mode 100644 src/Machete.X12Schema/Generated/V5010/Layouts/Maps/ISNT277Map.cs create mode 100644 src/Machete.X12Schema/Generated/V5010/Layouts/Maps/T270Map.cs create mode 100644 src/Machete.X12Schema/Generated/V5010/Layouts/Maps/T271Map.cs create mode 100644 src/Machete.X12Schema/Generated/V5010/Layouts/Maps/T276Map.cs create mode 100644 src/Machete.X12Schema/Generated/V5010/Layouts/Maps/T277Map.cs create mode 100644 src/Machete.X12Schema/Generated/V5010/Layouts/Maps/T835Map.cs create mode 100644 src/Machete.X12Schema/Generated/V5010/Layouts/Maps/T837DMap.cs create mode 100644 src/Machete.X12Schema/Generated/V5010/Layouts/Maps/T837IMap.cs create mode 100644 src/Machete.X12Schema/Generated/V5010/Layouts/Maps/T837PMap.cs create mode 100644 src/Machete.X12Schema/Generated/V5010/Layouts/Maps/T997Map.cs create mode 100644 src/Machete.X12Schema/Generated/V5010/Layouts/Maps/T999Map.cs create mode 100644 src/Machete.X12Schema/Generated/V5010/Layouts/T270.cs create mode 100644 src/Machete.X12Schema/Generated/V5010/Layouts/T271.cs create mode 100644 src/Machete.X12Schema/Generated/V5010/Layouts/T276.cs create mode 100644 src/Machete.X12Schema/Generated/V5010/Layouts/T277.cs create mode 100644 src/Machete.X12Schema/Generated/V5010/Layouts/T835.cs create mode 100644 src/Machete.X12Schema/Generated/V5010/Layouts/T837D.cs create mode 100644 src/Machete.X12Schema/Generated/V5010/Layouts/T837I.cs create mode 100644 src/Machete.X12Schema/Generated/V5010/Layouts/T837P.cs create mode 100644 src/Machete.X12Schema/Generated/V5010/Layouts/T997.cs create mode 100644 src/Machete.X12Schema/Generated/V5010/Layouts/T999.cs diff --git a/src/Machete.Benchmarking/LayoutParserBenchmarks.cs b/src/Machete.Benchmarking/LayoutParserBenchmarks.cs index 4849d8d9b..00b3597d0 100644 --- a/src/Machete.Benchmarking/LayoutParserBenchmarks.cs +++ b/src/Machete.Benchmarking/LayoutParserBenchmarks.cs @@ -113,10 +113,22 @@ public void QueryLayoutBenchmark() Result, HC837I> result = _parse1.Query(query); int controlNumber1 = result.Select(x => x.InterchangeControlHeader).Select(x => x.ControlNumber).ValueOrDefault(); - string controlNumber2 = result.Select(x => x.TransactionSetHeader).Select(x => x.ControlNumber).ValueOrDefault(); - int controlNumber3 = result.Select(x => x.FunctionalGroupHeader).Select(x => x.ControlNumber).ValueOrDefault(); + string controlNumber2 = result.Select(x => x.Transactions)[0] + .Select(x => x.TransactionSetHeader) + .Select(x => x.ControlNumber) + .ValueOrDefault(); + int controlNumber3 = result + .Select(x => x.Transactions)[0] + .Select(x => x.FunctionalGroupHeader) + .Select(x => x.ControlNumber) + .ValueOrDefault(); - string firstName = result.Select(x => x.Submitter)[0].Select(x => x.Name).Select(x => x.FirstName).ValueOrDefault(); + string firstName = result + .Select(x => x.Transactions)[0] + .Select(x => x.Submitter)[0] + .Select(x => x.Name) + .Select(x => x.FirstName) + .ValueOrDefault(); } // [Benchmark] diff --git a/src/Machete.HL7.Tests/ParserTests/StreamingLayoutParserTests.cs b/src/Machete.HL7.Tests/ParserTests/StreamingLayoutParserTests.cs index dfaad3058..df10c7d8d 100644 --- a/src/Machete.HL7.Tests/ParserTests/StreamingLayoutParserTests.cs +++ b/src/Machete.HL7.Tests/ParserTests/StreamingLayoutParserTests.cs @@ -1,8 +1,10 @@ namespace Machete.HL7.Tests.ParserTests { using System; + using System.Diagnostics; using System.IO; using System.Threading.Tasks; + using HL7Schema.V26; using NUnit.Framework; using Testing; using TestSchema; @@ -264,5 +266,44 @@ public async Task Should_be_able_to_parse_file_with_multiple_messages2() Console.WriteLine(i); } } + + + [Test, Explicit] + public async Task Test() + { + var sw = new Stopwatch(); + + sw.Start(); + using (var stream = File.OpenRead("/users/albert/Documents/BigAssFile.txt")) + { + StreamText text = await new StreamTextReader(stream).Text; + + ParseResult result = await Parser.ParseStream(text, new TextSpan(0, text.Length)); + + if (!Schema.TryGetLayout(out ILayoutParserFactory layout)) + return; + + int i = 0; + while (result.HasResult) + { + IParser query = result.CreateQuery(layout); + Result, O01Event> queryResult = result.Query(query); + + if (queryResult.HasResult) + { + Console.WriteLine(queryResult.Result.PID.Select(x => x.PatientId).Select(x => x.IdNumber).ValueOrDefault()); + i++; + } + + result = await result.NextAsync(); + } + + sw.Stop(); +// Console.WriteLine(segments); + Console.WriteLine(i); + } + + Console.WriteLine($"00:{sw.Elapsed.TotalMinutes}:{sw.Elapsed.TotalSeconds}:{sw.Elapsed.TotalMilliseconds}"); + } } } \ No newline at end of file diff --git a/src/Machete.HL7.Tests/ParserTests/StreamingMessageParserTests.cs b/src/Machete.HL7.Tests/ParserTests/StreamingMessageParserTests.cs index 676bc9656..19be0e535 100644 --- a/src/Machete.HL7.Tests/ParserTests/StreamingMessageParserTests.cs +++ b/src/Machete.HL7.Tests/ParserTests/StreamingMessageParserTests.cs @@ -491,6 +491,7 @@ public async Task Test() ParseResult result = await Parser.ParseStream(text, new TextSpan(0, text.Length)); + int index = 0; int segments = 0; int messages = 0; diff --git a/src/Machete.X12.Tests/Layouts/Layout270Tests.cs b/src/Machete.X12.Tests/Layouts/Layout270Tests.cs index bfd541cbc..663c2b195 100644 --- a/src/Machete.X12.Tests/Layouts/Layout270Tests.cs +++ b/src/Machete.X12.Tests/Layouts/Layout270Tests.cs @@ -42,8 +42,8 @@ public void Verify_can_parse_270() Result, HEBI270> result = entityResult.Query(query); var interchangeSegment = result.Select(x => x.InterchangeControlHeader); - var transactionSetHeader = result.Select(x => x.TransactionSetHeader); - var groupSegment = result.Select(x => x.FunctionalGroupHeader); + var transactionSetHeader = result.Select(x => x.Transactions)[0].Select(x => x.TransactionSetHeader); + var groupSegment = result.Select(x => x.Transactions)[0].Select(x => x.FunctionalGroupHeader); Assert.IsTrue(result.HasResult); Assert.IsNotNull(interchangeSegment); @@ -51,7 +51,9 @@ public void Verify_can_parse_270() Assert.IsTrue(groupSegment.HasValue); Assert.IsTrue(transactionSetHeader.HasValue); - string organizationName = result.Select(x => x.InformationSourceDetail)[0] + string organizationName = result + .Select(x => x.Transactions)[0] + .Select(x => x.InformationSourceDetail)[0] .Select(x => x.InformationSourceDetail) .Select(x => x.InformationSource) .Select(x => x.LastNameOrOrganizationName).ValueOrDefault(); diff --git a/src/Machete.X12.Tests/Layouts/Layout271Tests.cs b/src/Machete.X12.Tests/Layouts/Layout271Tests.cs index 8ddf3c9fd..d9f2bf8a8 100644 --- a/src/Machete.X12.Tests/Layouts/Layout271Tests.cs +++ b/src/Machete.X12.Tests/Layouts/Layout271Tests.cs @@ -42,8 +42,8 @@ public void Verify_can_parse_271() Result, HEBI270> result = entityResult.Query(query); var interchangeSegment = result.Select(x => x.InterchangeControlHeader); - var transactionSetHeader = result.Select(x => x.TransactionSetHeader); - var groupSegment = result.Select(x => x.FunctionalGroupHeader); + var transactionSetHeader = result.Select(x => x.Transactions)[0].Select(x => x.TransactionSetHeader); + var groupSegment = result.Select(x => x.Transactions)[0].Select(x => x.FunctionalGroupHeader); Assert.IsTrue(result.HasResult); Assert.IsNotNull(interchangeSegment); @@ -51,10 +51,13 @@ public void Verify_can_parse_271() Assert.IsTrue(groupSegment.HasValue); Assert.IsTrue(transactionSetHeader.HasValue); - string organizationName = result.Select(x => x.InformationSourceDetail)[0] + string organizationName = result + .Select(x => x.Transactions)[0] + .Select(x => x.InformationSourceDetail)[0] .Select(x => x.InformationSourceDetail) .Select(x => x.InformationSource) - .Select(x => x.LastNameOrOrganizationName).ValueOrDefault(); + .Select(x => x.LastNameOrOrganizationName) + .ValueOrDefault(); Assert.AreEqual("ABC COMPANY", organizationName); } diff --git a/src/Machete.X12.Tests/Layouts/Layout835Tests.cs b/src/Machete.X12.Tests/Layouts/Layout835Tests.cs index c26cbddd6..bd6ed5d2b 100644 --- a/src/Machete.X12.Tests/Layouts/Layout835Tests.cs +++ b/src/Machete.X12.Tests/Layouts/Layout835Tests.cs @@ -13,34 +13,7 @@ public class Layout835Tests : public void Test() { string message = - @"ISA*00* *00* *ZZ*EMEDNYBAT *ZZ*00DJ *180625*0712*^*00501*176073292*0*P*: -GS*HP*EMEDNYBAT*00DJ*20180625*07121200*176073292*X*005010X221A1 -ST*835*212900796 -BPR*I*98229.13*C*ACH*CCP*01*021300556*DA*320993201765*1141797357**01*222370440*DA*7900644837*20180627 -TRN*1*021300078111613*1141797357 -REF*EV*00DJ -DTM*405*20180611 -N1*PR*NYSDOH -N3*OFFICE OF HEALTH INSURANCE PROGRAMS*CORNING TOWER, EMPIRE STATE PLAZA -N4*ALBANY*NY*122370080 -PER*BL*PROVIDER SERVICES*TE*321321321*UR*www.default.org -N1*PE*OPERATIONS ASSOCIATES LLC*XX*3333333333 -N4*NEW YORK*NY*104701104 -REF*TJ*8524556 -LX*1 -CLP*555555555555*1*1269.55*0**MC*11111111111*21*4 -CAS*CO*26*1269.55 -NM1*QC*1*SMITH*BOB****MI*CH21785G -NM1*74*1*SMITH*BOB*E -NM1*82*1******XX*8888888888888 -REF*EA*00446771 -REF*9A*3839 -DTM*232*20171216 -DTM*233*20171221 -QTY*CA*5 -SE*1301*212900796 -GE*1*176073292 -IEA*1*176073292"; + @"ISA*00* *00* *ZZ*EMEDNYBAT *ZZ*00DJ *180625*0712*^*00501*176073292*0*P*:~GS*HP*EMEDNYBAT*00DJ*20180625*07121200*176073292*X*005010X221A1~ST*835*212900796~BPR*I*98229.13*C*ACH*CCP*01*021300556*DA*320993201765*1141797357**01*222370440*DA*7900644837*20180627~TRN*1*021300078111613*1141797357~REF*EV*00DJ~DTM*405*20180611~N1*PR*NYSDOH~N3*OFFICE OF HEALTH INSURANCE PROGRAMS*CORNING TOWER, EMPIRE STATE PLAZA~N4*ALBANY*NY*122370080~PER*BL*PROVIDER SERVICES*TE*321321321*UR*www.default.org~N1*PE*OPERATIONS ASSOCIATES LLC*XX*3333333333~N4*NEW YORK*NY*104701104~REF*TJ*8524556~LX*1~CLP*555555555555*1*1269.55*0**MC*11111111111*21*4~CAS*CO*26*1269.55~NM1*QC*1*SMITH*BOB****MI*CH21785G~NM1*74*1*SMITH*BOB*E~NM1*82*1******XX*8888888888888~REF*EA*00446771~REF*9A*3839~DTM*232*20171216~DTM*233*20171221~QTY*CA*5~SE*1301*212900796~GE*1*176073292~IEA*1*176073292"; EntityResult entityResult = Parser.Parse(message); diff --git a/src/Machete.X12.Tests/Layouts/Layout837Tests.cs b/src/Machete.X12.Tests/Layouts/Layout837Tests.cs index a71524141..f0d87920c 100644 --- a/src/Machete.X12.Tests/Layouts/Layout837Tests.cs +++ b/src/Machete.X12.Tests/Layouts/Layout837Tests.cs @@ -70,8 +70,8 @@ public void Verify_can_parse_837_Institutional() Result, HC837I> result = entityResult.Query(query); var interchangeSegment = result.Select(x => x.InterchangeControlHeader); - var transactionSetHeader = result.Select(x => x.TransactionSetHeader); - var groupSegment = result.Select(x => x.FunctionalGroupHeader); + var transactionSetHeader = result.Select(x => x.Transactions)[0].Select(x => x.TransactionSetHeader); + var groupSegment = result.Select(x => x.Transactions)[0].Select(x => x.FunctionalGroupHeader); Assert.IsTrue(result.HasResult); Assert.IsNotNull(interchangeSegment); @@ -79,7 +79,11 @@ public void Verify_can_parse_837_Institutional() Assert.IsTrue(groupSegment.HasValue); Assert.IsTrue(transactionSetHeader.HasValue); - string firstName = result.Select(x => x.Submitter)[0].Select(x => x.Name).Select(x => x.FirstName).ValueOrDefault(); + string firstName = result.Select(x => x.Transactions)[0] + .Select(x => x.Submitter)[0] + .Select(x => x.Name) + .Select(x => x.FirstName) + .ValueOrDefault(); Assert.AreEqual("Joe", firstName); } @@ -145,8 +149,8 @@ public void Verify_can_parse_837_Dental() Result, HC837D> result = entityResult.Query(query); var interchangeSegment = result.Select(x => x.InterchangeControlHeader); - var transactionSetHeader = result.Select(x => x.TransactionSetHeader); - var groupSegment = result.Select(x => x.FunctionalGroupHeader); + var transactionSetHeader = result.Select(x => x.Transactions)[0].Select(x => x.TransactionSetHeader); + var groupSegment = result.Select(x => x.Transactions)[0].Select(x => x.FunctionalGroupHeader); Assert.IsTrue(result.HasResult); Assert.IsNotNull(interchangeSegment); @@ -154,7 +158,11 @@ public void Verify_can_parse_837_Dental() Assert.IsTrue(groupSegment.HasValue); Assert.IsTrue(transactionSetHeader.HasValue); - string firstName = result.Select(x => x.Submitter)[0].Select(x => x.Name).Select(x => x.FirstName).ValueOrDefault(); + string firstName = result.Select(x => x.Transactions)[0] + .Select(x => x.Submitter)[0] + .Select(x => x.Name) + .Select(x => x.FirstName) + .ValueOrDefault(); Assert.AreEqual("Joe", firstName); } diff --git a/src/Machete.X12Schema/Generated/V5010/Layouts/ACK997.cs b/src/Machete.X12Schema/Generated/V5010/Layouts/ACK997.cs index 2932e6f2a..9d73a82b2 100644 --- a/src/Machete.X12Schema/Generated/V5010/Layouts/ACK997.cs +++ b/src/Machete.X12Schema/Generated/V5010/Layouts/ACK997.cs @@ -11,19 +11,7 @@ public interface ACK997 : { Segment InterchangeControlHeader { get; } - Segment FunctionalGroupHeader { get; } - - Segment TransactionSetHeader { get; } - - Segment FunctionalGroupResponseHeader { get; } - - LayoutList TransactionSetResponseHeader { get; } - - Segment FunctionalGroupResponseTrailer { get; } - - Segment TransactionSetTrailer { get; } - - Segment FunctionalGroupTrailer { get; } + LayoutList Transactions { get; } Segment InterchangeControlTrailer { get; } } diff --git a/src/Machete.X12Schema/Generated/V5010/Layouts/ACK999.cs b/src/Machete.X12Schema/Generated/V5010/Layouts/ACK999.cs index a241d4c52..f4967fa16 100644 --- a/src/Machete.X12Schema/Generated/V5010/Layouts/ACK999.cs +++ b/src/Machete.X12Schema/Generated/V5010/Layouts/ACK999.cs @@ -11,19 +11,7 @@ public interface ACK999 : { Segment InterchangeControlHeader { get; } - Segment FunctionalGroupHeader { get; } - - Segment TransactionSetHeader { get; } - - Segment FunctionalGroupResponseHeader { get; } - - LayoutList TransactionSetResponseHeader { get; } - - Segment FunctionalGroupResponseTrailer { get; } - - Segment TransactionSetTrailer { get; } - - Segment FunctionalGroupTrailer { get; } + LayoutList Transactions { get; } Segment InterchangeControlTrailer { get; } } diff --git a/src/Machete.X12Schema/Generated/V5010/Layouts/HC837D.cs b/src/Machete.X12Schema/Generated/V5010/Layouts/HC837D.cs index 3e4522063..47ebfee66 100644 --- a/src/Machete.X12Schema/Generated/V5010/Layouts/HC837D.cs +++ b/src/Machete.X12Schema/Generated/V5010/Layouts/HC837D.cs @@ -11,25 +11,7 @@ public interface HC837D : { Segment InterchangeControlHeader { get; } - Segment FunctionalGroupHeader { get; } - - Segment TransactionSetHeader { get; } - - Segment BeginningOfHeirarchicalTransaction { get; } - - LayoutList Submitter { get; } - - LayoutList Receiver { get; } - - LayoutList BillingProviderDetail { get; } - - LayoutList SubscriberDetail { get; } - - LayoutList PatientDetail { get; } - - Segment TransactionSetTrailer { get; } - - Segment FunctionalGroupTrailer { get; } + LayoutList Transactions { get; } Segment InterchangeControlTrailer { get; } } diff --git a/src/Machete.X12Schema/Generated/V5010/Layouts/HC837I.cs b/src/Machete.X12Schema/Generated/V5010/Layouts/HC837I.cs index 5e8e7eab9..4d7e3ffc1 100644 --- a/src/Machete.X12Schema/Generated/V5010/Layouts/HC837I.cs +++ b/src/Machete.X12Schema/Generated/V5010/Layouts/HC837I.cs @@ -11,25 +11,7 @@ public interface HC837I : { Segment InterchangeControlHeader { get; } - Segment FunctionalGroupHeader { get; } - - Segment TransactionSetHeader { get; } - - Segment BeginningOfHeirarchicalTransaction { get; } - - LayoutList Submitter { get; } - - LayoutList Receiver { get; } - - LayoutList BillingProviderDetail { get; } - - LayoutList SubscriberDetail { get; } - - LayoutList PatientDetail { get; } - - Segment TransactionSetTrailer { get; } - - Segment FunctionalGroupTrailer { get; } + LayoutList Transactions { get; } Segment InterchangeControlTrailer { get; } } diff --git a/src/Machete.X12Schema/Generated/V5010/Layouts/HC837P.cs b/src/Machete.X12Schema/Generated/V5010/Layouts/HC837P.cs index f0b3c5881..56ccdb084 100644 --- a/src/Machete.X12Schema/Generated/V5010/Layouts/HC837P.cs +++ b/src/Machete.X12Schema/Generated/V5010/Layouts/HC837P.cs @@ -11,25 +11,7 @@ public interface HC837P : { Segment InterchangeControlHeader { get; } - Segment FunctionalGroupHeader { get; } - - Segment TransactionSetHeader { get; } - - Segment BeginningOfHeirarchicalTransaction { get; } - - LayoutList Submitter { get; } - - LayoutList Receiver { get; } - - LayoutList BillingProviderDetail { get; } - - LayoutList SubscriberDetail { get; } - - LayoutList PatientDetail { get; } - - Segment TransactionSetTrailer { get; } - - Segment FunctionalGroupTrailer { get; } + LayoutList Transactions { get; } Segment InterchangeControlTrailer { get; } } diff --git a/src/Machete.X12Schema/Generated/V5010/Layouts/HCA277.cs b/src/Machete.X12Schema/Generated/V5010/Layouts/HCA277.cs index a51b64a72..7933b6ea5 100644 --- a/src/Machete.X12Schema/Generated/V5010/Layouts/HCA277.cs +++ b/src/Machete.X12Schema/Generated/V5010/Layouts/HCA277.cs @@ -11,23 +11,7 @@ public interface HCA277 : { Segment InterchangeControlHeader { get; } - Segment FunctionalGroupHeader { get; } - - Segment TransactionSetHeader { get; } - - Segment BeginningOfHeirarchicalTransaction { get; } - - LayoutList InformationSourceDetail { get; } - - LayoutList InformationReceiverDetail { get; } - - LayoutList BillingProviderOfServiceDetail { get; } - - LayoutList PatientDetail { get; } - - Segment TransactionSetTrailer { get; } - - Segment FunctionalGroupTrailer { get; } + LayoutList Transactions { get; } Segment InterchangeControlTrailer { get; } } diff --git a/src/Machete.X12Schema/Generated/V5010/Layouts/HCPA835.cs b/src/Machete.X12Schema/Generated/V5010/Layouts/HCPA835.cs index 231b57af8..9e34566b9 100644 --- a/src/Machete.X12Schema/Generated/V5010/Layouts/HCPA835.cs +++ b/src/Machete.X12Schema/Generated/V5010/Layouts/HCPA835.cs @@ -11,33 +11,7 @@ public interface HCPA835 : { Segment InterchangeControlHeader { get; } - Segment FunctionalGroupHeader { get; } - - Segment TransactionSetHeader { get; } - - Segment FinancialInformation { get; } - - Segment ReassociationTraceNumber { get; } - - Segment ForeignCurrencyInformation { get; } - - Segment ReceiverIdentification { get; } - - Segment VersionIdentification { get; } - - Segment ProductionDate { get; } - - LayoutList PayerIdentification { get; } - - LayoutList PayeeIdentification { get; } - - LayoutList HeaderNumber { get; } - - SegmentList ProviderAdjustment { get; } - - Segment TransactionSetTrailer { get; } - - Segment FunctionalGroupTrailer { get; } + LayoutList Transactions { get; } Segment InterchangeControlTrailer { get; } } diff --git a/src/Machete.X12Schema/Generated/V5010/Layouts/HCSR276.cs b/src/Machete.X12Schema/Generated/V5010/Layouts/HCSR276.cs index 251a1155f..e93767150 100644 --- a/src/Machete.X12Schema/Generated/V5010/Layouts/HCSR276.cs +++ b/src/Machete.X12Schema/Generated/V5010/Layouts/HCSR276.cs @@ -11,25 +11,7 @@ public interface HCSR276 : { Segment InterchangeControlHeader { get; } - Segment FunctionalGroupHeader { get; } - - Segment TransactionSetHeader { get; } - - Segment BeginningOfHeirarchicalTransaction { get; } - - LayoutList InformationSourceDetail { get; } - - LayoutList InformationReceiverDetail { get; } - - LayoutList ServiceProviderDetail { get; } - - LayoutList SubscriberDetail { get; } - - LayoutList DependentDetail { get; } - - Segment TransactionSetTrailer { get; } - - Segment FunctionalGroupTrailer { get; } + LayoutList Transactions { get; } Segment InterchangeControlTrailer { get; } } diff --git a/src/Machete.X12Schema/Generated/V5010/Layouts/HEBI270.cs b/src/Machete.X12Schema/Generated/V5010/Layouts/HEBI270.cs index dd04622c2..0f40e7de3 100644 --- a/src/Machete.X12Schema/Generated/V5010/Layouts/HEBI270.cs +++ b/src/Machete.X12Schema/Generated/V5010/Layouts/HEBI270.cs @@ -11,23 +11,7 @@ public interface HEBI270 : { Segment InterchangeControlHeader { get; } - Segment FunctionalGroupHeader { get; } - - Segment TransactionSetHeader { get; } - - Segment BeginningOfHeirarchicalTransaction { get; } - - LayoutList InformationSourceDetail { get; } - - LayoutList InformationReceiverDetail { get; } - - LayoutList SubscriberDetail { get; } - - LayoutList DependentDetail { get; } - - Segment TransactionSetTrailer { get; } - - Segment FunctionalGroupTrailer { get; } + LayoutList Transactions { get; } Segment InterchangeControlTrailer { get; } } diff --git a/src/Machete.X12Schema/Generated/V5010/Layouts/HEBR271.cs b/src/Machete.X12Schema/Generated/V5010/Layouts/HEBR271.cs index b93896743..77863a563 100644 --- a/src/Machete.X12Schema/Generated/V5010/Layouts/HEBR271.cs +++ b/src/Machete.X12Schema/Generated/V5010/Layouts/HEBR271.cs @@ -11,23 +11,7 @@ public interface HEBR271 : { Segment InterchangeControlHeader { get; } - Segment FunctionalGroupHeader { get; } - - Segment TransactionSetHeader { get; } - - Segment BeginningOfHeirarchicalTransaction { get; } - - LayoutList InformationSourceDetail { get; } - - LayoutList InformationReceiverDetail { get; } - - LayoutList SubscriberDetail { get; } - - LayoutList DependentDetail { get; } - - Segment TransactionSetTrailer { get; } - - Segment FunctionalGroupTrailer { get; } + LayoutList Transactions { get; } Segment InterchangeControlTrailer { get; } } diff --git a/src/Machete.X12Schema/Generated/V5010/Layouts/HISN277.cs b/src/Machete.X12Schema/Generated/V5010/Layouts/HISN277.cs index bf5caaee9..3f1196e1d 100644 --- a/src/Machete.X12Schema/Generated/V5010/Layouts/HISN277.cs +++ b/src/Machete.X12Schema/Generated/V5010/Layouts/HISN277.cs @@ -11,23 +11,7 @@ public interface HISN277 : { Segment InterchangeControlHeader { get; } - Segment FunctionalGroupHeader { get; } - - Segment TransactionSetHeader { get; } - - Segment BeginningOfHeirarchicalTransaction { get; } - - LayoutList InformationSourceDetail { get; } - - LayoutList InformationReceiverDetail { get; } - - LayoutList ServiceProviderDetail { get; } - - LayoutList PatientDetail { get; } - - Segment TransactionSetTrailer { get; } - - Segment FunctionalGroupTrailer { get; } + LayoutList Transactions { get; } Segment InterchangeControlTrailer { get; } } diff --git a/src/Machete.X12Schema/Generated/V5010/Layouts/ISNT277.cs b/src/Machete.X12Schema/Generated/V5010/Layouts/ISNT277.cs new file mode 100644 index 000000000..031c83bab --- /dev/null +++ b/src/Machete.X12Schema/Generated/V5010/Layouts/ISNT277.cs @@ -0,0 +1,30 @@ +namespace Machete.X12Schema.V5010 +{ + using X12; + + + /// + /// 277 Information Status Notification Transaction + /// + public interface ISNT277 : + X12Layout + { + Segment FunctionalGroupHeader { get; } + + Segment TransactionSetHeader { get; } + + Segment BeginningOfHeirarchicalTransaction { get; } + + LayoutList InformationSourceDetail { get; } + + LayoutList InformationReceiverDetail { get; } + + LayoutList ServiceProviderDetail { get; } + + LayoutList PatientDetail { get; } + + Segment TransactionSetTrailer { get; } + + Segment FunctionalGroupTrailer { get; } + } +} \ No newline at end of file diff --git a/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/ACK997Map.cs b/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/ACK997Map.cs index 9f0189817..71667f56b 100644 --- a/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/ACK997Map.cs +++ b/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/ACK997Map.cs @@ -13,14 +13,8 @@ public ACK997Map() Name = "Functional Acknowledgement"; Segment(x => x.InterchangeControlHeader, 0, x => x.IsRequired()); - Segment(x => x.FunctionalGroupHeader, 1, x => x.IsRequired()); - Segment(x => x.TransactionSetHeader, 2); - Segment(x => x.FunctionalGroupResponseHeader, 3); - Layout(x => x.TransactionSetResponseHeader, 4); - Segment(x => x.FunctionalGroupResponseTrailer, 5, x => x.IsRequired()); - Segment(x => x.TransactionSetTrailer, 6, x => x.IsRequired()); - Segment(x => x.FunctionalGroupTrailer, 7); - Segment(x => x.InterchangeControlTrailer, 8); + Layout(x => x.Transactions, 1); + Segment(x => x.InterchangeControlTrailer, 2); } } } \ No newline at end of file diff --git a/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/ACK999Map.cs b/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/ACK999Map.cs index 72d7d8b40..66dde3fee 100644 --- a/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/ACK999Map.cs +++ b/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/ACK999Map.cs @@ -13,14 +13,8 @@ public ACK999Map() Name = "Acknowledgement"; Segment(x => x.InterchangeControlHeader, 0, x => x.IsRequired()); - Segment(x => x.FunctionalGroupHeader, 1, x => x.IsRequired()); - Segment(x => x.TransactionSetHeader, 2); - Segment(x => x.FunctionalGroupResponseHeader, 3); - Layout(x => x.TransactionSetResponseHeader, 4); - Segment(x => x.FunctionalGroupResponseTrailer, 5, x => x.IsRequired()); - Segment(x => x.TransactionSetTrailer, 6, x => x.IsRequired()); - Segment(x => x.FunctionalGroupTrailer, 7); - Segment(x => x.InterchangeControlTrailer, 8); + Layout(x => x.Transactions, 1); + Segment(x => x.InterchangeControlTrailer, 2); } } } \ No newline at end of file diff --git a/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/HC837DMap.cs b/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/HC837DMap.cs index d8de894ec..22eb97dc1 100644 --- a/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/HC837DMap.cs +++ b/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/HC837DMap.cs @@ -13,18 +13,8 @@ public HC837DMap() Name = "Healthcare Claim"; Segment(x => x.InterchangeControlHeader, 0); - Segment(x => x.FunctionalGroupHeader, 1); - Segment(x => x.TransactionSetHeader, 2, x => x.IsRequired()); - Segment(x => x.BeginningOfHeirarchicalTransaction, 3, x => x.IsRequired()); - Layout(x => x.Submitter, 4); - Layout(x => x.Receiver, 5); - Layout(x => x.BillingProviderDetail, 6); - Layout(x => x.Receiver, 7); - Layout(x => x.SubscriberDetail, 8); - Layout(x => x.PatientDetail, 9); - Segment(x => x.TransactionSetTrailer, 10); - Segment(x => x.FunctionalGroupTrailer, 11); - Segment(x => x.InterchangeControlTrailer, 12); + Layout(x => x.Transactions, 1); + Segment(x => x.InterchangeControlTrailer, 2); } } } \ No newline at end of file diff --git a/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/HC837IMap.cs b/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/HC837IMap.cs index e17839a21..308ab4196 100644 --- a/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/HC837IMap.cs +++ b/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/HC837IMap.cs @@ -13,18 +13,8 @@ public HC837IMap() Name = "Healthcare Claim"; Segment(x => x.InterchangeControlHeader, 0); - Segment(x => x.FunctionalGroupHeader, 1); - Segment(x => x.TransactionSetHeader, 2, x => x.IsRequired()); - Segment(x => x.BeginningOfHeirarchicalTransaction, 3, x => x.IsRequired()); - Layout(x => x.Submitter, 4); - Layout(x => x.Receiver, 5); - Layout(x => x.BillingProviderDetail, 6); - Layout(x => x.Receiver, 7); - Layout(x => x.SubscriberDetail, 8); - Layout(x => x.PatientDetail, 9); - Segment(x => x.TransactionSetTrailer, 10); - Segment(x => x.FunctionalGroupTrailer, 11); - Segment(x => x.InterchangeControlTrailer, 12); + Layout(x => x.Transactions, 1); + Segment(x => x.InterchangeControlTrailer, 2); } } } \ No newline at end of file diff --git a/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/HC837PMap.cs b/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/HC837PMap.cs index 4214674f3..d17e0aad0 100644 --- a/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/HC837PMap.cs +++ b/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/HC837PMap.cs @@ -13,18 +13,8 @@ public HC837PMap() Name = "Healthcare Claim"; Segment(x => x.InterchangeControlHeader, 0); - Segment(x => x.FunctionalGroupHeader, 1); - Segment(x => x.TransactionSetHeader, 2, x => x.IsRequired()); - Segment(x => x.BeginningOfHeirarchicalTransaction, 3, x => x.IsRequired()); - Layout(x => x.Submitter, 4); - Layout(x => x.Receiver, 5); - Layout(x => x.BillingProviderDetail, 6); - Layout(x => x.Receiver, 7); - Layout(x => x.SubscriberDetail, 8); - Layout(x => x.PatientDetail, 9); - Segment(x => x.TransactionSetTrailer, 10); - Segment(x => x.FunctionalGroupTrailer, 11); - Segment(x => x.InterchangeControlTrailer, 12); + Layout(x => x.Transactions, 1); + Segment(x => x.InterchangeControlTrailer, 2); } } } \ No newline at end of file diff --git a/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/HCA277Map.cs b/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/HCA277Map.cs index f4276fd2b..5e1fd4238 100644 --- a/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/HCA277Map.cs +++ b/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/HCA277Map.cs @@ -13,17 +13,8 @@ public HCA277Map() Name = "Healthcare Claim Acknowledgement"; Segment(x => x.InterchangeControlHeader, 0); - Segment(x => x.FunctionalGroupHeader, 1); - Segment(x => x.TransactionSetHeader, 2, x => x.IsRequired()); - Segment(x => x.BeginningOfHeirarchicalTransaction, 3, x => x.IsRequired()); - Layout(x => x.InformationSourceDetail, 4); - Layout(x => x.InformationReceiverDetail, 5); - Layout(x => x.BillingProviderOfServiceDetail, 6); - Layout(x => x.InformationReceiverDetail, 7); - Layout(x => x.PatientDetail, 8); - Segment(x => x.TransactionSetTrailer, 9); - Segment(x => x.FunctionalGroupTrailer, 10); - Segment(x => x.InterchangeControlTrailer, 11); + Layout(x => x.Transactions, 1); + Segment(x => x.InterchangeControlTrailer, 2); } } } \ No newline at end of file diff --git a/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/HCPA835Map.cs b/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/HCPA835Map.cs index 82502d1d3..7ec4c939d 100644 --- a/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/HCPA835Map.cs +++ b/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/HCPA835Map.cs @@ -13,21 +13,8 @@ public HCPA835Map() Name = "Healthcare Claim Payment/Advice"; Segment(x => x.InterchangeControlHeader, 0); - Segment(x => x.FunctionalGroupHeader, 1); - Segment(x => x.TransactionSetHeader, 2, x => x.IsRequired()); - Segment(x => x.FinancialInformation, 3, x => x.IsRequired()); - Segment(x => x.ReassociationTraceNumber, 4, x => x.IsRequired()); - Segment(x => x.ForeignCurrencyInformation, 5); - Segment(x => x.ReceiverIdentification, 6); - Segment(x => x.VersionIdentification, 7); - Segment(x => x.ProductionDate, 8); - Layout(x => x.PayerIdentification, 9); - Layout(x => x.PayeeIdentification, 10); - Layout(x => x.HeaderNumber, 11); - Segment(x => x.ProviderAdjustment, 12); - Segment(x => x.TransactionSetTrailer, 13, x => x.IsRequired()); - Segment(x => x.FunctionalGroupTrailer, 14); - Segment(x => x.InterchangeControlTrailer, 15); + Layout(x => x.Transactions, 1); + Segment(x => x.InterchangeControlTrailer, 2); } } } \ No newline at end of file diff --git a/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/HCSR276Map.cs b/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/HCSR276Map.cs index 30e9d4b0a..351560e86 100644 --- a/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/HCSR276Map.cs +++ b/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/HCSR276Map.cs @@ -13,17 +13,8 @@ public HCSR276Map() Name = "Healthcare Claim Status Request"; Segment(x => x.InterchangeControlHeader, 0); - Segment(x => x.FunctionalGroupHeader, 1); - Segment(x => x.TransactionSetHeader, 2, x => x.IsRequired()); - Segment(x => x.BeginningOfHeirarchicalTransaction, 3, x => x.IsRequired()); - Layout(x => x.InformationSourceDetail, 4); - Layout(x => x.InformationReceiverDetail, 5); - Layout(x => x.ServiceProviderDetail, 6); - Layout(x => x.SubscriberDetail, 7); - Layout(x => x.DependentDetail, 8); - Segment(x => x.TransactionSetTrailer, 9, x => x.IsRequired()); - Segment(x => x.FunctionalGroupTrailer, 10); - Segment(x => x.InterchangeControlTrailer, 11); + Layout(x => x.Transactions, 1); + Segment(x => x.InterchangeControlTrailer, 2); } } } \ No newline at end of file diff --git a/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/HEBI270Map.cs b/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/HEBI270Map.cs index 3cf004c75..5446ea8b7 100644 --- a/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/HEBI270Map.cs +++ b/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/HEBI270Map.cs @@ -13,16 +13,8 @@ public HEBI270Map() Name = "Healthcare Eligibility Benefit Inquiry"; Segment(x => x.InterchangeControlHeader, 0); - Segment(x => x.FunctionalGroupHeader, 1); - Segment(x => x.TransactionSetHeader, 2, x => x.IsRequired()); - Segment(x => x.BeginningOfHeirarchicalTransaction, 3, x => x.IsRequired()); - Layout(x => x.InformationSourceDetail, 4); - Layout(x => x.InformationReceiverDetail, 5); - Layout(x => x.SubscriberDetail, 6); - Layout(x => x.DependentDetail, 7); - Segment(x => x.TransactionSetTrailer, 8, x => x.IsRequired()); - Segment(x => x.FunctionalGroupTrailer, 9); - Segment(x => x.InterchangeControlTrailer, 10); + Layout(x => x.Transactions, 1); + Segment(x => x.InterchangeControlTrailer, 2); } } } \ No newline at end of file diff --git a/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/HEBR271Map.cs b/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/HEBR271Map.cs index c46e09e12..a650ed923 100644 --- a/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/HEBR271Map.cs +++ b/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/HEBR271Map.cs @@ -13,16 +13,8 @@ public HEBR271Map() Name = "Healthcare Eligibility Benefit Response"; Segment(x => x.InterchangeControlHeader, 0); - Segment(x => x.FunctionalGroupHeader, 1); - Segment(x => x.TransactionSetHeader, 2, x => x.IsRequired()); - Segment(x => x.BeginningOfHeirarchicalTransaction, 3, x => x.IsRequired()); - Layout(x => x.InformationSourceDetail, 4); - Layout(x => x.InformationReceiverDetail, 5); - Layout(x => x.SubscriberDetail, 6); - Layout(x => x.DependentDetail, 7); - Segment(x => x.TransactionSetTrailer, 8, x => x.IsRequired()); - Segment(x => x.FunctionalGroupTrailer, 9); - Segment(x => x.InterchangeControlTrailer, 10); + Layout(x => x.Transactions, 1); + Segment(x => x.InterchangeControlTrailer, 2); } } } \ No newline at end of file diff --git a/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/HISN277Map.cs b/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/HISN277Map.cs index 062a9603b..7078c723c 100644 --- a/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/HISN277Map.cs +++ b/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/HISN277Map.cs @@ -13,16 +13,8 @@ public HISN277Map() Name = "Healthcare Claim Request for Additional Information"; Segment(x => x.InterchangeControlHeader, 0); - Segment(x => x.FunctionalGroupHeader, 1); - Segment(x => x.TransactionSetHeader, 2, x => x.IsRequired()); - Segment(x => x.BeginningOfHeirarchicalTransaction, 3, x => x.IsRequired()); - Layout(x => x.InformationSourceDetail, 4); - Layout(x => x.InformationReceiverDetail, 5); - Layout(x => x.ServiceProviderDetail, 6); - Layout(x => x.PatientDetail, 7); - Segment(x => x.TransactionSetTrailer, 8, x => x.IsRequired()); - Segment(x => x.FunctionalGroupTrailer, 9); - Segment(x => x.InterchangeControlTrailer, 10); + Layout(x => x.Transactions, 1); + Segment(x => x.InterchangeControlTrailer, 2); } } } \ No newline at end of file diff --git a/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/ISNT277Map.cs b/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/ISNT277Map.cs new file mode 100644 index 000000000..ef82412dc --- /dev/null +++ b/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/ISNT277Map.cs @@ -0,0 +1,26 @@ +namespace Machete.X12Schema.V5010.Layouts.Maps +{ + using X12; + using X12.Configuration; + + + public class ISNT277Map : + X12LayoutMap + { + public ISNT277Map() + { + Id = "277"; + Name = "Healthcare Claim Request for Additional Information"; + + Segment(x => x.FunctionalGroupHeader, 0); + Segment(x => x.TransactionSetHeader, 1, x => x.IsRequired()); + Segment(x => x.BeginningOfHeirarchicalTransaction, 2, x => x.IsRequired()); + Layout(x => x.InformationSourceDetail, 3); + Layout(x => x.InformationReceiverDetail, 4); + Layout(x => x.ServiceProviderDetail, 5); + Layout(x => x.PatientDetail, 6); + Segment(x => x.TransactionSetTrailer, 7, x => x.IsRequired()); + Segment(x => x.FunctionalGroupTrailer, 8); + } + } +} \ No newline at end of file diff --git a/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/T270Map.cs b/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/T270Map.cs new file mode 100644 index 000000000..19d01ff58 --- /dev/null +++ b/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/T270Map.cs @@ -0,0 +1,26 @@ +namespace Machete.X12Schema.V5010.Layouts.Maps +{ + using X12; + using X12.Configuration; + + + public class T270Map : + X12LayoutMap + { + public T270Map() + { + Id = "270"; + Name = "270 Transaction"; + + Segment(x => x.FunctionalGroupHeader, 0); + Segment(x => x.TransactionSetHeader, 1, x => x.IsRequired()); + Segment(x => x.BeginningOfHeirarchicalTransaction, 2, x => x.IsRequired()); + Layout(x => x.InformationSourceDetail, 3); + Layout(x => x.InformationReceiverDetail, 4); + Layout(x => x.SubscriberDetail, 5); + Layout(x => x.DependentDetail, 6); + Segment(x => x.TransactionSetTrailer, 7, x => x.IsRequired()); + Segment(x => x.FunctionalGroupTrailer, 8); + } + } +} \ No newline at end of file diff --git a/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/T271Map.cs b/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/T271Map.cs new file mode 100644 index 000000000..29baced92 --- /dev/null +++ b/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/T271Map.cs @@ -0,0 +1,26 @@ +namespace Machete.X12Schema.V5010.Layouts.Maps +{ + using X12; + using X12.Configuration; + + + public class T271Map : + X12LayoutMap + { + public T271Map() + { + Id = "271"; + Name = "271 Transaction"; + + Segment(x => x.FunctionalGroupHeader, 0); + Segment(x => x.TransactionSetHeader, 1, x => x.IsRequired()); + Segment(x => x.BeginningOfHeirarchicalTransaction, 2, x => x.IsRequired()); + Layout(x => x.InformationSourceDetail, 3); + Layout(x => x.InformationReceiverDetail, 4); + Layout(x => x.SubscriberDetail, 5); + Layout(x => x.DependentDetail, 6); + Segment(x => x.TransactionSetTrailer, 7, x => x.IsRequired()); + Segment(x => x.FunctionalGroupTrailer, 8); + } + } +} \ No newline at end of file diff --git a/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/T276Map.cs b/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/T276Map.cs new file mode 100644 index 000000000..f7508edd8 --- /dev/null +++ b/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/T276Map.cs @@ -0,0 +1,27 @@ +namespace Machete.X12Schema.V5010.Layouts.Maps +{ + using X12; + using X12.Configuration; + + + public class T276Map : + X12LayoutMap + { + public T276Map() + { + Id = "276T"; + Name = "276 Transaction"; + + Segment(x => x.FunctionalGroupHeader, 0); + Segment(x => x.TransactionSetHeader, 1, x => x.IsRequired()); + Segment(x => x.BeginningOfHeirarchicalTransaction, 2, x => x.IsRequired()); + Layout(x => x.InformationSourceDetail, 3); + Layout(x => x.InformationReceiverDetail, 4); + Layout(x => x.ServiceProviderDetail, 5); + Layout(x => x.SubscriberDetail, 6); + Layout(x => x.DependentDetail, 7); + Segment(x => x.TransactionSetTrailer, 8, x => x.IsRequired()); + Segment(x => x.FunctionalGroupTrailer, 9); + } + } +} \ No newline at end of file diff --git a/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/T277Map.cs b/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/T277Map.cs new file mode 100644 index 000000000..149339a94 --- /dev/null +++ b/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/T277Map.cs @@ -0,0 +1,27 @@ +namespace Machete.X12Schema.V5010.Layouts.Maps +{ + using X12; + using X12.Configuration; + + + public class T277Map : + X12LayoutMap + { + public T277Map() + { + Id = "277"; + Name = "Healthcare Claim Acknowledgement"; + + Segment(x => x.FunctionalGroupHeader, 0); + Segment(x => x.TransactionSetHeader, 1, x => x.IsRequired()); + Segment(x => x.BeginningOfHeirarchicalTransaction, 2, x => x.IsRequired()); + Layout(x => x.InformationSourceDetail, 3); + Layout(x => x.InformationReceiverDetail, 4); + Layout(x => x.BillingProviderOfServiceDetail, 5); + Layout(x => x.InformationReceiverDetail, 6); + Layout(x => x.PatientDetail, 7); + Segment(x => x.TransactionSetTrailer, 8); + Segment(x => x.FunctionalGroupTrailer, 9); + } + } +} \ No newline at end of file diff --git a/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/T835Map.cs b/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/T835Map.cs new file mode 100644 index 000000000..96e84e037 --- /dev/null +++ b/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/T835Map.cs @@ -0,0 +1,31 @@ +namespace Machete.X12Schema.V5010 +{ + using X12; + using X12.Configuration; + + + public class T835Map : + X12LayoutMap + { + public T835Map() + { + Id = "TG835"; + Name = "835 Transaction"; + + Segment(x => x.FunctionalGroupHeader, 0); + Segment(x => x.TransactionSetHeader, 1, x => x.IsRequired()); + Segment(x => x.FinancialInformation, 2, x => x.IsRequired()); + Segment(x => x.ReassociationTraceNumber, 3, x => x.IsRequired()); + Segment(x => x.ForeignCurrencyInformation, 4); + Segment(x => x.ReceiverIdentification, 5); + Segment(x => x.VersionIdentification, 6); + Segment(x => x.ProductionDate, 7); + Layout(x => x.PayerIdentification, 8); + Layout(x => x.PayeeIdentification, 9); + Layout(x => x.HeaderNumber, 10); + Segment(x => x.ProviderAdjustment, 11); + Segment(x => x.TransactionSetTrailer, 12, x => x.IsRequired()); + Segment(x => x.FunctionalGroupTrailer, 13); + } + } +} \ No newline at end of file diff --git a/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/T837DMap.cs b/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/T837DMap.cs new file mode 100644 index 000000000..28ce47fc3 --- /dev/null +++ b/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/T837DMap.cs @@ -0,0 +1,28 @@ +namespace Machete.X12Schema.V5010.Layouts.Maps +{ + using X12; + using X12.Configuration; + + + public class T837DMap : + X12LayoutMap + { + public T837DMap() + { + Id = "837I"; + Name = "837D Transaction"; + + Segment(x => x.FunctionalGroupHeader, 0); + Segment(x => x.TransactionSetHeader, 1, x => x.IsRequired()); + Segment(x => x.BeginningOfHeirarchicalTransaction, 2, x => x.IsRequired()); + Layout(x => x.Submitter, 3); + Layout(x => x.Receiver, 4); + Layout(x => x.BillingProviderDetail, 5); + Layout(x => x.Receiver, 6); + Layout(x => x.SubscriberDetail, 7); + Layout(x => x.PatientDetail, 8); + Segment(x => x.TransactionSetTrailer, 9); + Segment(x => x.FunctionalGroupTrailer, 10); + } + } +} \ No newline at end of file diff --git a/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/T837IMap.cs b/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/T837IMap.cs new file mode 100644 index 000000000..66aef70a1 --- /dev/null +++ b/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/T837IMap.cs @@ -0,0 +1,28 @@ +namespace Machete.X12Schema.V5010.Layouts.Maps +{ + using X12; + using X12.Configuration; + + + public class T837IMap : + X12LayoutMap + { + public T837IMap() + { + Id = "837I"; + Name = "837I Transaction"; + + Segment(x => x.FunctionalGroupHeader, 0); + Segment(x => x.TransactionSetHeader, 1, x => x.IsRequired()); + Segment(x => x.BeginningOfHeirarchicalTransaction, 2, x => x.IsRequired()); + Layout(x => x.Submitter, 3); + Layout(x => x.Receiver, 4); + Layout(x => x.BillingProviderDetail, 5); + Layout(x => x.Receiver, 6); + Layout(x => x.SubscriberDetail, 7); + Layout(x => x.PatientDetail, 8); + Segment(x => x.TransactionSetTrailer, 9); + Segment(x => x.FunctionalGroupTrailer, 10); + } + } +} \ No newline at end of file diff --git a/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/T837PMap.cs b/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/T837PMap.cs new file mode 100644 index 000000000..a1413bef3 --- /dev/null +++ b/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/T837PMap.cs @@ -0,0 +1,28 @@ +namespace Machete.X12Schema.V5010.Layouts.Maps +{ + using X12; + using X12.Configuration; + + + public class T837PMap : + X12LayoutMap + { + public T837PMap() + { + Id = "837P"; + Name = "837P Transaction"; + + Segment(x => x.FunctionalGroupHeader, 0); + Segment(x => x.TransactionSetHeader, 1, x => x.IsRequired()); + Segment(x => x.BeginningOfHeirarchicalTransaction, 2, x => x.IsRequired()); + Layout(x => x.Submitter, 3); + Layout(x => x.Receiver, 4); + Layout(x => x.BillingProviderDetail, 5); + Layout(x => x.Receiver, 6); + Layout(x => x.SubscriberDetail, 7); + Layout(x => x.PatientDetail, 8); + Segment(x => x.TransactionSetTrailer, 9); + Segment(x => x.FunctionalGroupTrailer, 10); + } + } +} \ No newline at end of file diff --git a/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/T997Map.cs b/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/T997Map.cs new file mode 100644 index 000000000..1b3008d69 --- /dev/null +++ b/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/T997Map.cs @@ -0,0 +1,24 @@ +namespace Machete.X12Schema.V5010.Layouts.Maps +{ + using X12; + using X12.Configuration; + + + public class T997Map : + X12LayoutMap + { + public T997Map() + { + Id = "997"; + Name = "997 Transaction"; + + Segment(x => x.FunctionalGroupHeader, 0, x => x.IsRequired()); + Segment(x => x.TransactionSetHeader, 1); + Segment(x => x.FunctionalGroupResponseHeader, 2); + Layout(x => x.TransactionSetResponseHeader, 3); + Segment(x => x.FunctionalGroupResponseTrailer, 4, x => x.IsRequired()); + Segment(x => x.TransactionSetTrailer, 5, x => x.IsRequired()); + Segment(x => x.FunctionalGroupTrailer, 6); + } + } +} \ No newline at end of file diff --git a/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/T999Map.cs b/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/T999Map.cs new file mode 100644 index 000000000..2c1ed16bc --- /dev/null +++ b/src/Machete.X12Schema/Generated/V5010/Layouts/Maps/T999Map.cs @@ -0,0 +1,24 @@ +namespace Machete.X12Schema.V5010.Layouts.Maps +{ + using X12; + using X12.Configuration; + + + public class T999Map : + X12LayoutMap + { + public T999Map() + { + Id = "999"; + Name = "999 Transaction"; + + Segment(x => x.FunctionalGroupHeader, 0, x => x.IsRequired()); + Segment(x => x.TransactionSetHeader, 1); + Segment(x => x.FunctionalGroupResponseHeader, 2); + Layout(x => x.TransactionSetResponseHeader, 3); + Segment(x => x.FunctionalGroupResponseTrailer, 4, x => x.IsRequired()); + Segment(x => x.TransactionSetTrailer, 5, x => x.IsRequired()); + Segment(x => x.FunctionalGroupTrailer, 6); + } + } +} \ No newline at end of file diff --git a/src/Machete.X12Schema/Generated/V5010/Layouts/T270.cs b/src/Machete.X12Schema/Generated/V5010/Layouts/T270.cs new file mode 100644 index 000000000..8d5a66881 --- /dev/null +++ b/src/Machete.X12Schema/Generated/V5010/Layouts/T270.cs @@ -0,0 +1,30 @@ +namespace Machete.X12Schema.V5010 +{ + using X12; + + + /// + /// 270 Transaction + /// + public interface T270 : + X12Layout + { + Segment FunctionalGroupHeader { get; } + + Segment TransactionSetHeader { get; } + + Segment BeginningOfHeirarchicalTransaction { get; } + + LayoutList InformationSourceDetail { get; } + + LayoutList InformationReceiverDetail { get; } + + LayoutList SubscriberDetail { get; } + + LayoutList DependentDetail { get; } + + Segment TransactionSetTrailer { get; } + + Segment FunctionalGroupTrailer { get; } + } +} \ No newline at end of file diff --git a/src/Machete.X12Schema/Generated/V5010/Layouts/T271.cs b/src/Machete.X12Schema/Generated/V5010/Layouts/T271.cs new file mode 100644 index 000000000..58f04b1bc --- /dev/null +++ b/src/Machete.X12Schema/Generated/V5010/Layouts/T271.cs @@ -0,0 +1,30 @@ +namespace Machete.X12Schema.V5010 +{ + using X12; + + + /// + /// 271 Transaction + /// + public interface T271 : + X12Layout + { + Segment FunctionalGroupHeader { get; } + + Segment TransactionSetHeader { get; } + + Segment BeginningOfHeirarchicalTransaction { get; } + + LayoutList InformationSourceDetail { get; } + + LayoutList InformationReceiverDetail { get; } + + LayoutList SubscriberDetail { get; } + + LayoutList DependentDetail { get; } + + Segment TransactionSetTrailer { get; } + + Segment FunctionalGroupTrailer { get; } + } +} \ No newline at end of file diff --git a/src/Machete.X12Schema/Generated/V5010/Layouts/T276.cs b/src/Machete.X12Schema/Generated/V5010/Layouts/T276.cs new file mode 100644 index 000000000..27606cca6 --- /dev/null +++ b/src/Machete.X12Schema/Generated/V5010/Layouts/T276.cs @@ -0,0 +1,32 @@ +namespace Machete.X12Schema.V5010 +{ + using X12; + + + /// + /// 276 Transaction + /// + public interface T276 : + X12Layout + { + Segment FunctionalGroupHeader { get; } + + Segment TransactionSetHeader { get; } + + Segment BeginningOfHeirarchicalTransaction { get; } + + LayoutList InformationSourceDetail { get; } + + LayoutList InformationReceiverDetail { get; } + + LayoutList ServiceProviderDetail { get; } + + LayoutList SubscriberDetail { get; } + + LayoutList DependentDetail { get; } + + Segment TransactionSetTrailer { get; } + + Segment FunctionalGroupTrailer { get; } + } +} \ No newline at end of file diff --git a/src/Machete.X12Schema/Generated/V5010/Layouts/T277.cs b/src/Machete.X12Schema/Generated/V5010/Layouts/T277.cs new file mode 100644 index 000000000..6b39122b4 --- /dev/null +++ b/src/Machete.X12Schema/Generated/V5010/Layouts/T277.cs @@ -0,0 +1,30 @@ +namespace Machete.X12Schema.V5010 +{ + using X12; + + + /// + /// 277 Transaction + /// + public interface CAT277 : + X12Layout + { + Segment FunctionalGroupHeader { get; } + + Segment TransactionSetHeader { get; } + + Segment BeginningOfHeirarchicalTransaction { get; } + + LayoutList InformationSourceDetail { get; } + + LayoutList InformationReceiverDetail { get; } + + LayoutList BillingProviderOfServiceDetail { get; } + + LayoutList PatientDetail { get; } + + Segment TransactionSetTrailer { get; } + + Segment FunctionalGroupTrailer { get; } + } +} \ No newline at end of file diff --git a/src/Machete.X12Schema/Generated/V5010/Layouts/T835.cs b/src/Machete.X12Schema/Generated/V5010/Layouts/T835.cs new file mode 100644 index 000000000..f7ee18f75 --- /dev/null +++ b/src/Machete.X12Schema/Generated/V5010/Layouts/T835.cs @@ -0,0 +1,40 @@ +namespace Machete.X12Schema.V5010 +{ + using X12; + + + /// + /// 835 Transaction + /// + public interface T835 : + X12Layout + { + Segment FunctionalGroupHeader { get; } + + Segment TransactionSetHeader { get; } + + Segment FinancialInformation { get; } + + Segment ReassociationTraceNumber { get; } + + Segment ForeignCurrencyInformation { get; } + + Segment ReceiverIdentification { get; } + + Segment VersionIdentification { get; } + + Segment ProductionDate { get; } + + LayoutList PayerIdentification { get; } + + LayoutList PayeeIdentification { get; } + + LayoutList HeaderNumber { get; } + + SegmentList ProviderAdjustment { get; } + + Segment TransactionSetTrailer { get; } + + Segment FunctionalGroupTrailer { get; } + } +} \ No newline at end of file diff --git a/src/Machete.X12Schema/Generated/V5010/Layouts/T837D.cs b/src/Machete.X12Schema/Generated/V5010/Layouts/T837D.cs new file mode 100644 index 000000000..41ff35942 --- /dev/null +++ b/src/Machete.X12Schema/Generated/V5010/Layouts/T837D.cs @@ -0,0 +1,32 @@ +namespace Machete.X12Schema.V5010 +{ + using X12; + + + /// + /// 837D Transaction + /// + public interface T837D : + X12Layout + { + Segment FunctionalGroupHeader { get; } + + Segment TransactionSetHeader { get; } + + Segment BeginningOfHeirarchicalTransaction { get; } + + LayoutList Submitter { get; } + + LayoutList Receiver { get; } + + LayoutList BillingProviderDetail { get; } + + LayoutList SubscriberDetail { get; } + + LayoutList PatientDetail { get; } + + Segment TransactionSetTrailer { get; } + + Segment FunctionalGroupTrailer { get; } + } +} \ No newline at end of file diff --git a/src/Machete.X12Schema/Generated/V5010/Layouts/T837I.cs b/src/Machete.X12Schema/Generated/V5010/Layouts/T837I.cs new file mode 100644 index 000000000..f78e12bb7 --- /dev/null +++ b/src/Machete.X12Schema/Generated/V5010/Layouts/T837I.cs @@ -0,0 +1,32 @@ +namespace Machete.X12Schema.V5010 +{ + using X12; + + + /// + /// 837I Transaction + /// + public interface T837I : + X12Layout + { + Segment FunctionalGroupHeader { get; } + + Segment TransactionSetHeader { get; } + + Segment BeginningOfHeirarchicalTransaction { get; } + + LayoutList Submitter { get; } + + LayoutList Receiver { get; } + + LayoutList BillingProviderDetail { get; } + + LayoutList SubscriberDetail { get; } + + LayoutList PatientDetail { get; } + + Segment TransactionSetTrailer { get; } + + Segment FunctionalGroupTrailer { get; } + } +} \ No newline at end of file diff --git a/src/Machete.X12Schema/Generated/V5010/Layouts/T837P.cs b/src/Machete.X12Schema/Generated/V5010/Layouts/T837P.cs new file mode 100644 index 000000000..cf817a917 --- /dev/null +++ b/src/Machete.X12Schema/Generated/V5010/Layouts/T837P.cs @@ -0,0 +1,32 @@ +namespace Machete.X12Schema.V5010 +{ + using X12; + + + /// + /// 837P Transaction + /// + public interface T837P : + X12Layout + { + Segment FunctionalGroupHeader { get; } + + Segment TransactionSetHeader { get; } + + Segment BeginningOfHeirarchicalTransaction { get; } + + LayoutList Submitter { get; } + + LayoutList Receiver { get; } + + LayoutList BillingProviderDetail { get; } + + LayoutList SubscriberDetail { get; } + + LayoutList PatientDetail { get; } + + Segment TransactionSetTrailer { get; } + + Segment FunctionalGroupTrailer { get; } + } +} \ No newline at end of file diff --git a/src/Machete.X12Schema/Generated/V5010/Layouts/T997.cs b/src/Machete.X12Schema/Generated/V5010/Layouts/T997.cs new file mode 100644 index 000000000..008ec5211 --- /dev/null +++ b/src/Machete.X12Schema/Generated/V5010/Layouts/T997.cs @@ -0,0 +1,26 @@ +namespace Machete.X12Schema.V5010 +{ + using X12; + + + /// + /// 997 Transaction + /// + public interface T997 : + X12Layout + { + Segment FunctionalGroupHeader { get; } + + Segment TransactionSetHeader { get; } + + Segment FunctionalGroupResponseHeader { get; } + + LayoutList TransactionSetResponseHeader { get; } + + Segment FunctionalGroupResponseTrailer { get; } + + Segment TransactionSetTrailer { get; } + + Segment FunctionalGroupTrailer { get; } + } +} \ No newline at end of file diff --git a/src/Machete.X12Schema/Generated/V5010/Layouts/T999.cs b/src/Machete.X12Schema/Generated/V5010/Layouts/T999.cs new file mode 100644 index 000000000..22a821170 --- /dev/null +++ b/src/Machete.X12Schema/Generated/V5010/Layouts/T999.cs @@ -0,0 +1,26 @@ +namespace Machete.X12Schema.V5010 +{ + using X12; + + + /// + /// 999 Transaction + /// + public interface T999 : + X12Layout + { + Segment FunctionalGroupHeader { get; } + + Segment TransactionSetHeader { get; } + + Segment FunctionalGroupResponseHeader { get; } + + LayoutList TransactionSetResponseHeader { get; } + + Segment FunctionalGroupResponseTrailer { get; } + + Segment TransactionSetTrailer { get; } + + Segment FunctionalGroupTrailer { get; } + } +} \ No newline at end of file