From 866020d12cedc8bc9bd574635de3f16c8610eb65 Mon Sep 17 00:00:00 2001 From: Rene Evertz Date: Tue, 19 Sep 2023 14:32:05 +0200 Subject: [PATCH] =?UTF-8?q?Mehr=20Schl=C3=BCssel,=20mehr=20logik,=20automa?= =?UTF-8?q?tische=20Erzeugung=20von=20Verg=C3=BCtungsart?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Dakota/Dakota.csproj | 44 +- Dakota/DakotaFile.cs | 551 +++++++++++------- Dakota/DakotaFileCreator.cs | 164 ++++-- Dakota/DakotaFileInfo.cs | 186 ------ Dakota/Models/Blocke/Block.cs | 14 + .../{Block => Blocke}/BlockAbrechnungsfall.cs | 9 +- .../{Block => Blocke}/BlockKostenträger.cs | 31 +- .../BlockKrankenkarteVerordnung.cs | 30 +- .../{Block => Blocke}/BlockNutzdatendatei.cs | 23 +- Dakota/Models/{ => Daten}/Dateneinheit.cs | 2 +- Dakota/Models/{ => Daten}/Datenelement.cs | 48 +- .../Models/{ => Daten}/DatenelementCounter.cs | 15 +- Dakota/Models/Daten/DatenelementDateTime.cs | 24 + Dakota/Models/Daten/DatenelementDecimal.cs | 28 + Dakota/Models/Daten/DatenelementFiller.cs | 36 ++ .../Models/{ => Daten}/Datenelementgruppe.cs | 2 +- Dakota/Models/Infos/DakotaFileInfo.cs | 56 ++ Dakota/Models/Infos/DakotaInvoiceItemInfo.cs | 66 +++ Dakota/Models/Nachrichten/Nachricht.cs | 2 +- Dakota/Models/Nachrichten/NachrichtSLGA.cs | 114 ++-- Dakota/Models/Nachrichten/NachrichtSLGA2.cs | 102 ++-- Dakota/Models/Nachrichten/NachrichtSLGA3.cs | 7 +- Dakota/Models/Nachrichten/NachrichtSLLA.cs | 258 ++++---- Dakota/Models/Nachrichten/NachrichtSLLA2.cs | 220 +++---- Dakota/Models/Nachrichten/NachrichtSLLA3.cs | 4 +- .../{Schlüssel => Schlüssels}/Schlüssel.cs | 2 +- .../Schlüssels/SchlüsselAbrechnungscode.cs | 17 + .../Schlüssels/SchlüsselBeleginformation.cs | 17 + ...elLeistungserbringerSammelgruppenschlussel.cs | 2 +- Dakota/Models/Schlüssels/SchlüsselPos.cs | 13 + .../SchlüsselPosArtDerEinrichtung.cs | 32 + .../Schlüssels/SchlüsselPosBehandlungsart.cs | 17 + .../Schlüssels/SchlüsselPosVergütungsart.cs | 166 ++++++ .../SchlüsselRechnungsart.cs | 2 +- .../SchlüsselSummenstatus.cs | 2 +- .../Schlüssels/SchlüsselTarifkennzeichen.cs | 16 + .../SchlüsselTarifkennzeichenBereich.cs | 67 +++ .../SchlüsselTarifkennzeichenSondertarif.cs | 19 + .../SchlüsselTestindikator.cs | 2 +- .../SchlüsselVerarbeitungskennzeichen.cs | 2 +- Dakota/Models/Segmente/SLGA/SegmentSLGAFKT.cs | 3 +- Dakota/Models/Segmente/SLGA/SegmentSLGAGES.cs | 15 +- Dakota/Models/Segmente/SLGA/SegmentSLGANAM.cs | 3 +- Dakota/Models/Segmente/SLGA/SegmentSLGAREC.cs | 7 +- Dakota/Models/Segmente/SLGA/SegmentSLGASKO.cs | 3 +- Dakota/Models/Segmente/SLGA/SegmentSLGAUST.cs | 3 +- Dakota/Models/Segmente/SLLA/SegmentSLLABES.cs | 23 +- Dakota/Models/Segmente/SLLA/SegmentSLLADIA.cs | 3 +- Dakota/Models/Segmente/SLLA/SegmentSLLAENF.cs | 20 +- Dakota/Models/Segmente/SLLA/SegmentSLLAFKT.cs | 9 +- Dakota/Models/Segmente/SLLA/SegmentSLLAIMG.cs | 3 +- Dakota/Models/Segmente/SLLA/SegmentSLLAINV.cs | 3 +- Dakota/Models/Segmente/SLLA/SegmentSLLAMWS.cs | 3 +- Dakota/Models/Segmente/SLLA/SegmentSLLANAD.cs | 7 +- Dakota/Models/Segmente/SLLA/SegmentSLLASKZ.cs | 3 +- Dakota/Models/Segmente/SLLA/SegmentSLLASUT.cs | 23 +- Dakota/Models/Segmente/SLLA/SegmentSLLATXT.cs | 3 +- Dakota/Models/Segmente/SLLA/SegmentSLLAURI.cs | 3 +- Dakota/Models/Segmente/SLLA/SegmentSLLAZUV.cs | 3 +- Dakota/Models/Segmente/SLLA/SegmentSLLAZUZ.cs | 3 +- Dakota/Models/Segmente/Segment.cs | 3 +- Dakota/Models/Segmente/SegmentUNB.cs | 16 +- Dakota/Models/Segmente/SegmentUNH.cs | 7 +- Dakota/Models/Segmente/SegmentUNT.cs | 7 +- Dakota/Models/Segmente/SegmentUNZ.cs | 14 +- 65 files changed, 1614 insertions(+), 988 deletions(-) delete mode 100644 Dakota/DakotaFileInfo.cs create mode 100644 Dakota/Models/Blocke/Block.cs rename Dakota/Models/{Block => Blocke}/BlockAbrechnungsfall.cs (97%) rename Dakota/Models/{Block => Blocke}/BlockKostenträger.cs (76%) rename Dakota/Models/{Block => Blocke}/BlockKrankenkarteVerordnung.cs (57%) rename Dakota/Models/{Block => Blocke}/BlockNutzdatendatei.cs (72%) rename Dakota/Models/{ => Daten}/Dateneinheit.cs (92%) rename Dakota/Models/{ => Daten}/Datenelement.cs (63%) rename Dakota/Models/{ => Daten}/DatenelementCounter.cs (55%) create mode 100644 Dakota/Models/Daten/DatenelementDateTime.cs create mode 100644 Dakota/Models/Daten/DatenelementDecimal.cs create mode 100644 Dakota/Models/Daten/DatenelementFiller.cs rename Dakota/Models/{ => Daten}/Datenelementgruppe.cs (96%) create mode 100644 Dakota/Models/Infos/DakotaFileInfo.cs create mode 100644 Dakota/Models/Infos/DakotaInvoiceItemInfo.cs rename Dakota/Models/{Schlüssel => Schlüssels}/Schlüssel.cs (89%) create mode 100644 Dakota/Models/Schlüssels/SchlüsselAbrechnungscode.cs create mode 100644 Dakota/Models/Schlüssels/SchlüsselBeleginformation.cs rename Dakota/Models/{Schlüssel => Schlüssels}/SchlüsselLeistungserbringerSammelgruppenschlussel.cs (98%) create mode 100644 Dakota/Models/Schlüssels/SchlüsselPos.cs create mode 100644 Dakota/Models/Schlüssels/SchlüsselPosArtDerEinrichtung.cs create mode 100644 Dakota/Models/Schlüssels/SchlüsselPosBehandlungsart.cs create mode 100644 Dakota/Models/Schlüssels/SchlüsselPosVergütungsart.cs rename Dakota/Models/{Schlüssel => Schlüssels}/SchlüsselRechnungsart.cs (95%) rename Dakota/Models/{Schlüssel => Schlüssels}/SchlüsselSummenstatus.cs (95%) create mode 100644 Dakota/Models/Schlüssels/SchlüsselTarifkennzeichen.cs create mode 100644 Dakota/Models/Schlüssels/SchlüsselTarifkennzeichenBereich.cs create mode 100644 Dakota/Models/Schlüssels/SchlüsselTarifkennzeichenSondertarif.cs rename Dakota/Models/{Schlüssel => Schlüssels}/SchlüsselTestindikator.cs (93%) rename Dakota/Models/{Schlüssel => Schlüssels}/SchlüsselVerarbeitungskennzeichen.cs (95%) diff --git a/Dakota/Dakota.csproj b/Dakota/Dakota.csproj index c28ba3841..2615c7799 100644 --- a/Dakota/Dakota.csproj +++ b/Dakota/Dakota.csproj @@ -46,14 +46,19 @@ - - - - - - - - + + + + + + + + + + + + + @@ -62,12 +67,21 @@ - - - - - - + + + + + + + + + + + + + + + @@ -95,7 +109,7 @@ - + diff --git a/Dakota/DakotaFile.cs b/Dakota/DakotaFile.cs index 88b828c7c..52bd8795a 100644 --- a/Dakota/DakotaFile.cs +++ b/Dakota/DakotaFile.cs @@ -1,7 +1,8 @@ using BeWo.Data.Entities; using BS.Shared.DataContracts; using Dakota.Models; -using Dakota.Models.Block; +using Dakota.Models.Blocke; +using Dakota.Models.Infos; using Dakota.Models.Nachrichten; using Dakota.Models.Segmente; using System; @@ -16,12 +17,7 @@ namespace Dakota internal class DakotaFile : Nachricht { internal BlockNutzdatendatei Nutzdatendatei { get; private set; } - internal DateTime Created { get; private set; } - - internal int NachrichtenCounter { get; set; } internal int AnzahlUNHCounter { get; set; } - internal int SegmentSLGACounter { get; set; } - internal int SegmentSLLACounter { get; set; } // Rene26 Comment //// UNB @@ -40,85 +36,18 @@ namespace Dakota //// UNZ //internal SegmentUNZ SegmentUNZ => SozioTherapieEinzelnachweis.UNZ; - internal DakotaFileInfo Info { get; set; } + internal DakotaFileInfo FileInfo { get; set; } internal DakotaFile(DakotaFileInfo info) { Nutzdatendatei = new BlockNutzdatendatei(); + // Updates = new List(); - Info = info; + FileInfo = info; - Created = DateTime.Now; - - NachrichtenCounter = 1; AnzahlUNHCounter = 0; - SegmentSLGACounter = 0; - SegmentSLLACounter = 0; GenerateUNBSegment(); - } - - internal void AddInvoiceItem(InvoiceItem invoice) - { - var kostentrager = "123456789"; - var kostentragerblock = Nutzdatendatei.BlockKostenträger.FirstOrDefault(block => block.IKKostenträger == kostentrager); - - if (kostentragerblock is null) - { - kostentragerblock = GenerateBlockKostentrager(invoice); - - Nutzdatendatei.BlockKostenträger.Add(kostentragerblock); - } - - var krankenversichten = "987654321"; - var krankenversichtenblock = kostentragerblock.BlockKrankenkarteVerordnung.FirstOrDefault(block => block.IKKrankenkasseKVKarte == krankenversichten); - - AddInvoiceItemIntoBlock(krankenversichtenblock, invoice); - - kostentragerblock.Update(); - } - - internal void AddInvoiceItemIntoBlock(BlockKrankenkarteVerordnung block, InvoiceItem invoice) - { - // Wie soll das hier sein - - // SLLA - } - - private BlockKostenträger GenerateBlockKostentrager(InvoiceItem invoice) - { - var block = new BlockKostenträger(); - - var nachrefnum = ++AnzahlUNHCounter; - - block.SegmentUNH.Nachrichtenreferenznummer.SetFilledIntValue(nachrefnum, 5); - block.SegmentUNH.NachrichtenTypKennung.SetValue("SLGA"); - block.SegmentUNH.Verionsnummer.SetValue("18"); - block.SegmentUNH.FreigabeNrDesTypes.SetValue("0"); - block.SegmentUNH.VerwaltendeOrganisation.SetValue("0"); - - block.SegmentUNT.Nachrichtenreferenznummer.SetFilledIntValue(nachrefnum, 5); - // ! block.SegmentUNT.AnzahlEinheiten.SetValue("0"); - } - - private BlockKrankenkarteVerordnung GenerateBlockKrankenkarte(InvoiceItem invoice) - { - var block = new BlockKrankenkarteVerordnung(); - - var nachrefnum = ++AnzahlUNHCounter; - - block.SegmentSLGAUNH.Nachrichtenreferenznummer.SetFilledIntValue(nachrefnum, 5); - block.SegmentSLGAUNH.NachrichtenTypKennung.SetValue("SLGA"); - block.SegmentSLGAUNH.Verionsnummer.SetValue("18"); - block.SegmentSLGAUNH.FreigabeNrDesTypes.SetValue("0"); - block.SegmentSLGAUNH.VerwaltendeOrganisation.SetValue("0"); - - block.SegmentSLGAUNT.Nachrichtenreferenznummer.SetFilledIntValue(nachrefnum, 5); - // ! block.SegmentSLGAUNT.AnzahlEinheiten.SetValue("0"); - } - - internal void Finish() - { GenerateUNZSegment(); } @@ -126,172 +55,356 @@ namespace Dakota { Nutzdatendatei.SegmentUNB.SyntaxKennung.SetValue("UNOC"); Nutzdatendatei.SegmentUNB.SyntaxVersionsnummer.SetValue("3"); - Nutzdatendatei.SegmentUNB.Absenderdatei.SetValue(Info.Absenderbezeichnung); - Nutzdatendatei.SegmentUNB.Empfangdatei.SetValue(Info.Empfangerbezeichnung); - Nutzdatendatei.SegmentUNB.Datum.SetValue(Created.ToString("yyyyMMdd")); - Nutzdatendatei.SegmentUNB.Uhrzeit.SetValue(Created.ToString("HHmm")); - Nutzdatendatei.SegmentUNB.Datenaustauschreferenz.SetFilledIntValue(Info.Datenaustauschreferenz, 5); - Nutzdatendatei.SegmentUNB.Leistungsbereich.SetValue(Info.Leistungsbereich.Value); - Nutzdatendatei.SegmentUNB.Anwengundsreferenz.SetValue(Info.Anwendungsreferenz); - Nutzdatendatei.SegmentUNB.Testindikator.SetValue(Info.Testindikator.Value); + Nutzdatendatei.SegmentUNB.Absenderdatei.SetValue(FileInfo.Absenderbezeichnung); + Nutzdatendatei.SegmentUNB.Empfangdatei.SetValue(FileInfo.Empfangerbezeichnung); + Nutzdatendatei.SegmentUNB.Datum.SetValue(FileInfo.Created); + Nutzdatendatei.SegmentUNB.Uhrzeit.SetValue(FileInfo.Created); + Nutzdatendatei.SegmentUNB.Datenaustauschreferenz.SetValue(FileInfo.Datenaustauschreferenz); + Nutzdatendatei.SegmentUNB.Leistungsbereich.SetValue(FileInfo.Leistungsbereich.Value); + Nutzdatendatei.SegmentUNB.Anwengundsreferenz.SetValue(FileInfo.Anwendungsreferenz); + Nutzdatendatei.SegmentUNB.Testindikator.SetValue(FileInfo.Testindikator.Value); + } + private void GenerateUNZSegment() + { + Nutzdatendatei.SegmentUNZ.AnzahlNachrichten.SetValue(AnzahlUNHCounter); + Nutzdatendatei.SegmentUNZ.Datenaustauschreferenz.SetValue(FileInfo.Datenaustauschreferenz); + } + + internal void AddInvoiceItem(DakotaInvoiceItemInfo invoiceInfo) + { + var kostentrager = "123456789"; + var kostentragerblock = GetBlockKostenträger(kostentrager, invoiceInfo); + + var krankenversichten = "987654321"; + var krankenversichtenblock = GetBlockKrankenkarte(kostentragerblock, krankenversichten, invoiceInfo); + + AddInvoiceItemIntoBlock(krankenversichtenblock, invoiceInfo); + } + internal void AddInvoiceItemIntoBlock(BlockKrankenkarteVerordnung block, DakotaInvoiceItemInfo invoiceInfo) + { + + } + private BlockKostenträger GetBlockKostenträger(string kostentrager, DakotaInvoiceItemInfo invoiceInfo) + { + var kostentragerblock = Nutzdatendatei.BlockKostenträger.FirstOrDefault(block => block.IKKostenträger == kostentrager); + + if (kostentragerblock is null) + { + kostentragerblock = GenerateBlockKostentrager(invoiceInfo); + + Nutzdatendatei.BlockKostenträger.Add(kostentragerblock); + } + + return kostentragerblock; + } + private BlockKrankenkarteVerordnung GetBlockKrankenkarte(BlockKostenträger blockkt, string kvkarte, DakotaInvoiceItemInfo invoiceInfo) + { + var krankenkartenBlock = blockkt.BlockKrankenkarteVerordnung.FirstOrDefault(block => block.IKKrankenkasseKVKarte == kvkarte); + + if (krankenkartenBlock is null) + { + krankenkartenBlock = GenerateBlockKrankenkarte(invoiceInfo); + + blockkt.BlockKrankenkarteVerordnung.Add(krankenkartenBlock); + } + + return krankenkartenBlock; + } + private BlockKostenträger GenerateBlockKostentrager(DakotaInvoiceItemInfo invoiceinfo) + { + var block = new BlockKostenträger(); + + var nachrefnum = ++AnzahlUNHCounter; + + block.SegmentUNH.Nachrichtenreferenznummer.SetValue(nachrefnum); + block.SegmentUNH.NachrichtenTypKennung.SetValue("SLGA"); + block.SegmentUNH.Verionsnummer.SetValue("18"); + block.SegmentUNH.FreigabeNrDesTypes.SetValue("0"); + block.SegmentUNH.VerwaltendeOrganisation.SetValue("0"); + + block.NachrichtSLGA.SegmentFKT.Verarbeitungskennzeichen.SetValue(FileInfo.Verarbeitungskennzeichen); + block.NachrichtSLGA.SegmentFKT.IKLeistungserbringers.SetValue(invoiceinfo.IKLeistungserbringer); + block.NachrichtSLGA.SegmentFKT.IKKostenträger.SetValue(invoiceinfo.IKKostentrager); + block.NachrichtSLGA.SegmentFKT.IKKrankenkasseKVKarte.SetValue(invoiceinfo.IKKVKarte); + block.NachrichtSLGA.SegmentFKT.IKAbsender.SetValue(invoiceinfo.IKAbsender); + + block.NachrichtSLGA.SegmentREC.SammelRechnungsnummer.SetValue(FileInfo.Rechnungsnummer); + block.NachrichtSLGA.SegmentREC.EinzelRechnungsnummer.SetValue("0"); + block.NachrichtSLGA.SegmentREC.Datum.SetValue(FileInfo.Rechnungsdatum); + block.NachrichtSLGA.SegmentREC.Rechnungsart.SetValue(FileInfo.Rechnungsart); + + block.NachrichtSLGA.SegmentGES00.Status.SetValue(FileInfo.Summenstatus00); + block.NachrichtSLGA.SegmentGES00.Gesamtbruttobetrag.SetValue(FileInfo.Gesamtbruttobetrag00); + block.NachrichtSLGA.SegmentGES00.Gesamtrechnungsbetrag.SetValue(FileInfo.Gesamtrechnungsbetrag00); + block.NachrichtSLGA.SegmentGES00.GesamtbetragZuzahlung.SetValue(FileInfo.GesamtbetragZuzahlung00); + + block.NachrichtSLGA.SegmentGES.Status.SetValue(FileInfo.Summenstatus); + block.NachrichtSLGA.SegmentGES.Gesamtbruttobetrag.SetValue(FileInfo.Gesamtbruttobetrag); + block.NachrichtSLGA.SegmentGES.Gesamtrechnungsbetrag.SetValue(FileInfo.Gesamtrechnungsbetrag); + block.NachrichtSLGA.SegmentGES.GesamtbetragZuzahlung.SetValue(FileInfo.GesamtbetragZuzahlung); + + block.NachrichtSLGA.SegmentNAM.Name1.SetValue(FileInfo.Name1); + block.NachrichtSLGA.SegmentNAM.Name2.SetValue(FileInfo.Name2); + block.NachrichtSLGA.SegmentNAM.Name3.SetValue(FileInfo.Name3); + block.NachrichtSLGA.SegmentNAM.Name4.SetValue(FileInfo.Name4); + + block.SegmentUNT.Nachrichtenreferenznummer.SetValue(nachrefnum); + + return block; + } + private BlockKrankenkarteVerordnung GenerateBlockKrankenkarte(DakotaInvoiceItemInfo invoiceInfo) + { + var block = new BlockKrankenkarteVerordnung(); + + var nachrefnum = ++AnzahlUNHCounter; + var nachrefnum2 = ++AnzahlUNHCounter; + // block.SegmentSLGAUNH.Nachrichtenreferenznummer.SetFilled + + block.SegmentSLGAUNH.Nachrichtenreferenznummer.SetValue(nachrefnum); + block.SegmentSLGAUNH.NachrichtenTypKennung.SetValue("SLGA"); + block.SegmentSLGAUNH.Verionsnummer.SetValue("18"); + block.SegmentSLGAUNH.FreigabeNrDesTypes.SetValue("0"); + block.SegmentSLGAUNH.VerwaltendeOrganisation.SetValue("0"); + + block.NachrichtSLGA.SegmentFKT.Verarbeitungskennzeichen.SetValue(FileInfo.Verarbeitungskennzeichen); + block.NachrichtSLGA.SegmentFKT.IKLeistungserbringers.SetValue(invoiceInfo.IKLeistungserbringer); + block.NachrichtSLGA.SegmentFKT.IKKostenträger.SetValue(invoiceInfo.IKKostentrager); + block.NachrichtSLGA.SegmentFKT.IKKrankenkasseKVKarte.SetValue(invoiceInfo.IKKVKarte); + block.NachrichtSLGA.SegmentFKT.IKAbsender.SetValue(invoiceInfo.IKAbsender); + + block.NachrichtSLGA.SegmentREC.SammelRechnungsnummer.SetValue(FileInfo.Rechnungsnummer); + block.NachrichtSLGA.SegmentREC.EinzelRechnungsnummer.SetValue("0"); + block.NachrichtSLGA.SegmentREC.Datum.SetValue(FileInfo.Rechnungsdatum); + block.NachrichtSLGA.SegmentREC.Rechnungsart.SetValue(FileInfo.Rechnungsart); + + block.NachrichtSLGA.SegmentGES00.Status.SetValue(FileInfo.Summenstatus00); + block.NachrichtSLGA.SegmentGES00.Gesamtbruttobetrag.SetValue(FileInfo.Gesamtbruttobetrag00); + block.NachrichtSLGA.SegmentGES00.Gesamtrechnungsbetrag.SetValue(FileInfo.Gesamtrechnungsbetrag00); + block.NachrichtSLGA.SegmentGES00.GesamtbetragZuzahlung.SetValue(FileInfo.GesamtbetragZuzahlung00); + + block.NachrichtSLGA.SegmentGES.Status.SetValue(FileInfo.Summenstatus); + block.NachrichtSLGA.SegmentGES.Gesamtbruttobetrag.SetValue(FileInfo.Gesamtbruttobetrag); + block.NachrichtSLGA.SegmentGES.Gesamtrechnungsbetrag.SetValue(FileInfo.Gesamtrechnungsbetrag); + block.NachrichtSLGA.SegmentGES.GesamtbetragZuzahlung.SetValue(FileInfo.GesamtbetragZuzahlung); + + block.NachrichtSLGA.SegmentNAM.Name1.SetValue(FileInfo.Name1); + block.NachrichtSLGA.SegmentNAM.Name2.SetValue(FileInfo.Name2); + block.NachrichtSLGA.SegmentNAM.Name3.SetValue(FileInfo.Name3); + block.NachrichtSLGA.SegmentNAM.Name4.SetValue(FileInfo.Name4); + + block.SegmentSLGAUNT.Nachrichtenreferenznummer.SetValue(nachrefnum); + + block.SegmentSLLAUNH.Nachrichtenreferenznummer.SetValue(nachrefnum2); + block.SegmentSLLAUNH.NachrichtenTypKennung.SetValue("SLLA"); + block.SegmentSLLAUNH.Verionsnummer.SetValue("18"); + block.SegmentSLLAUNH.FreigabeNrDesTypes.SetValue("0"); + block.SegmentSLLAUNH.VerwaltendeOrganisation.SetValue("0"); + + block.NachrichtSLLA.SegmentSLLAFKT.Verarbeitungskennzeichen.SetValue(FileInfo.Verarbeitungskennzeichen); + block.NachrichtSLLA.SegmentSLLAFKT.IKLeistungserbringers.SetValue(invoiceInfo.IKLeistungserbringer); + block.NachrichtSLLA.SegmentSLLAFKT.IKKostenträgers.SetValue(invoiceInfo.IKKostentrager); + block.NachrichtSLLA.SegmentSLLAFKT.IKKVKarte.SetValue(invoiceInfo.IKKVKarte); + block.NachrichtSLLA.SegmentSLLAFKT.IKRechnungsstellers.SetValue(invoiceInfo.IKAbsender); + + // Abrechnungsfalle + + AddBlockAbrechnungsfall(block, invoiceInfo); + + block.SegmentSLLAUNT.Nachrichtenreferenznummer.SetValue(nachrefnum2); + + return block; + } + private BlockAbrechnungsfall AddBlockAbrechnungsfall(BlockKrankenkarteVerordnung blockkvkarte, DakotaInvoiceItemInfo info) + { + var block = new BlockAbrechnungsfall(); + + block.SegmentSLLAINV.VersichertenNummer.SetValue(info.VersichtertenNummer); + block.SegmentSLLAINV.Versichertenstatus.SetValue(info.Versichertenstatus); + block.SegmentSLLAINV.Beleginformation.SetValue(info.Beleginformation); + block.SegmentSLLAINV.Belegnummer.SetValue(info.Belegnummer); + // block.SegmentSLLAINV.KennzeichenBesondereVersorgungsform.SetValue(invoiceInfo.Kenn) + + block.SegmentSLLANAD.Vorname.SetValue(info.VersichtertenVorname); + block.SegmentSLLANAD.Nachname.SetValue(info.VersichtertenNachname); + block.SegmentSLLANAD.Geburtsdatum.SetValue(info.VersichtertenGeburtstag); + block.SegmentSLLANAD.StraßeNr.SetValue(info.VersichtertenStraßeNr); + block.SegmentSLLANAD.PLZ.SetValue(info.VersichtertenPLZ); + block.SegmentSLLANAD.Wohnort.SetValue(info.VersichtertenWohnort); + block.SegmentSLLANAD.Länderkennzeichen.SetValue(info.VersichtertenLanderkennung); + + block.SegmentSLLAENF.Identifikationsnummer.SetValue(info.EinzelfallIdentifikationsnummer); + block.SegmentSLLAENF.Abrechnungscode.SetValue(info.EinzelfallAbrechnungscode); + block.SegmentSLLAENF.Tarifkennzeichen.SetValue(info.EinzelfallTarifkennzeichen); + block.SegmentSLLAENF.ArtLeistung.SetValue(info.Abrechnungsposition); + block.SegmentSLLAENF.AnzahlMenge.SetValue(info.EinzelfallAnzahlMenge); + block.SegmentSLLAENF.EinzelbetragAbrechnungsposition.SetValue(info.EinzelfallEinzelbetragAbrechnungsposition); + block.SegmentSLLAENF.DatumLeistungserbringung.SetValue(info.EinzelfallDatumDerLeistungserbringung); + block.SegmentSLLAENF.BetragZuzahlung.SetValue(info.EinzelfallBetragZuzahlung); + + block.SegmentSLLASUT.GefahreneKilometer.SetValue(info.EinzelfallGefahreneKilometer); + block.SegmentSLLASUT.Uhrzeit.SetValue(info.EinzelfallUhrzeit); + block.SegmentSLLASUT.Dauer.SetValue(info.EinzelfallDauer); + block.SegmentSLLASUT.VersorgungszeitraumVon.SetValue(info.EinzelfallVersorgungszeitraum); + block.SegmentSLLASUT.VersorgungszeitraumBis.SetValue(info.EinzelfallVersorgungszeitraumBis); + + block.SegmentSLLATXT.Text.SetValue(info.Text); + + block.SegmentSLLABES.GesamtbetragBrutto.SetValue(info.GesamtbetragBrutto); + block.SegmentSLLABES.GesamtbetragGesetzlicheZuzahlung.SetValue(info.GesamtbetragGesetzlicheZuzahlung); + block.SegmentSLLABES.GesamtbetragProzentualeZuzahlung.SetValue(info.GesamtbetragProzentualeZuzahlung); + block.SegmentSLLABES.PauschalerZuzahlungsbetrag.SetValue(info.PauschalerZuzahlungsbetrag); + block.SegmentSLLABES.GesamtbetragEigenanteil.SetValue(info.GesamtbetragEigenanteil); + + blockkvkarte.NachrichtSLLA.Abrechnungsfalle.Add(block); + + return block; } private void GenerateBlockSLGA(DakotaFileInfo info) { - //UNH, UNT, FKT, REC, GES00, GES, NAM - SegmentSLGACounter += 7; - var nachrefnum = ++AnzahlUNHCounter; // Head - BlockSLGAUNH.Nachrichtenreferenznummer.SetFilledIntValue(nachrefnum, 5); - BlockSLGAUNH.NachrichtenTypKennung.SetValue("SLGA"); - BlockSLGAUNH.Verionsnummer.SetValue("18"); - BlockSLGAUNH.FreigabeNrDesTypes.SetValue("0"); - BlockSLGAUNH.VerwaltendeOrganisation.SetValue("0"); + //BlockSLGAUNH.Nachrichtenreferenznummer.SetFilledIntValue(nachrefnum, 5); + //BlockSLGAUNH.NachrichtenTypKennung.SetValue("SLGA"); + //BlockSLGAUNH.Verionsnummer.SetValue("18"); + //BlockSLGAUNH.FreigabeNrDesTypes.SetValue("0"); + //BlockSLGAUNH.VerwaltendeOrganisation.SetValue("0"); - // Body - // FKT - BlockSLGANachricht.SegmentFKT.Verarbeitungskennzeichen.SetValue(info.Verarbeitungskennzeichen.Value); - BlockSLGANachricht.SegmentFKT.IKLeistungserbringers.SetValue(info.IKLeistungserbringers); - BlockSLGANachricht.SegmentFKT.IKKostenträger.SetValue(info.IKKostenträger); - BlockSLGANachricht.SegmentFKT.IKKrankenkasse.SetValue(info.IKKrankenkasse); - BlockSLGANachricht.SegmentFKT.IKAbsender.SetValue(info.Absenderbezeichnung); - // REC - BlockSLGANachricht.SegmentREC.SammelRechnungsnummer.SetValue(info.Rechnungsnummer); - BlockSLGANachricht.SegmentREC.EinzelRechnungsnummer.SetValue("0"); - BlockSLGANachricht.SegmentREC.Datum.SetValue(info.Rechnungsdatum.ToString("yyyyMMdd")); - BlockSLGANachricht.SegmentREC.Rechnungsart.SetValue(info.Rechnungsart.Value); - // UST - wird nicht gebraucht - //BlockSLGANachricht.SegmentUST.Steuernummer.SetValue(string.Empty); - //BlockSLGANachricht.SegmentUST.Kennung.SetValue(string.Empty); - // SKO - wird nicht gebraucht - //BlockSLGANachricht.SegmentSKO.SkontoProzent.SetValue(string.Empty); - //BlockSLGANachricht.SegmentSKO.Zahlungsziel.SetValue(string.Empty); - // GES00 - BlockSLGANachricht.SegmentGES00.Status.SetValue("00"); - BlockSLGANachricht.SegmentGES00.Gesamtrechnungsbetrag.SetDecimalValue(info.Gesamtrechnungsbetrag) ; - BlockSLGANachricht.SegmentGES00.Gesamtbruttobetrag.SetDecimalValue(info.Gesamtbruttobetrag); - BlockSLGANachricht.SegmentGES00.GesamtbetragZuzahlung.SetDecimalValue(info.GesamtbetragZuzahlung); - // GES - BlockSLGANachricht.SegmentGES.Status.SetValue(info.Summenstatus.Value); - BlockSLGANachricht.SegmentGES.Gesamtrechnungsbetrag.SetDecimalValue(info.Gesamtrechnungsbetrag); - BlockSLGANachricht.SegmentGES.Gesamtbruttobetrag.SetDecimalValue(info.Gesamtbruttobetrag); - BlockSLGANachricht.SegmentGES.GesamtbetragZuzahlung.SetDecimalValue(info.GesamtbetragZuzahlung); - // NAM - BlockSLGANachricht.SegmentNAM.Name1.SetValue(info.Name1); - BlockSLGANachricht.SegmentNAM.Name2.SetValue(info.Name2); - BlockSLGANachricht.SegmentNAM.Name3.SetValue(info.Name3); - BlockSLGANachricht.SegmentNAM.Name4.SetValue(info.Name4); + //// Body + //// FKT + //BlockSLGANachricht.SegmentFKT.Verarbeitungskennzeichen.SetValue(info.Verarbeitungskennzeichen.Value); + //BlockSLGANachricht.SegmentFKT.IKLeistungserbringers.SetValue(info.IKLeistungserbringers); + //BlockSLGANachricht.SegmentFKT.IKKostenträger.SetValue(info.IKKostenträger); + //BlockSLGANachricht.SegmentFKT.IKKrankenkasse.SetValue(info.IKKrankenkasse); + //BlockSLGANachricht.SegmentFKT.IKAbsender.SetValue(info.Absenderbezeichnung); + //// REC + //BlockSLGANachricht.SegmentREC.SammelRechnungsnummer.SetValue(info.Rechnungsnummer); + //BlockSLGANachricht.SegmentREC.EinzelRechnungsnummer.SetValue("0"); + //BlockSLGANachricht.SegmentREC.Datum.SetValue(info.Rechnungsdatum.ToString("yyyyMMdd")); + //BlockSLGANachricht.SegmentREC.Rechnungsart.SetValue(info.Rechnungsart.Value); + //// UST - wird nicht gebraucht + ////BlockSLGANachricht.SegmentUST.Steuernummer.SetValue(string.Empty); + ////BlockSLGANachricht.SegmentUST.Kennung.SetValue(string.Empty); + //// SKO - wird nicht gebraucht + ////BlockSLGANachricht.SegmentSKO.SkontoProzent.SetValue(string.Empty); + ////BlockSLGANachricht.SegmentSKO.Zahlungsziel.SetValue(string.Empty); + //// GES00 + //BlockSLGANachricht.SegmentGES00.Status.SetValue("00"); + //BlockSLGANachricht.SegmentGES00.Gesamtrechnungsbetrag.SetDecimalValue(info.Gesamtrechnungsbetrag) ; + //BlockSLGANachricht.SegmentGES00.Gesamtbruttobetrag.SetDecimalValue(info.Gesamtbruttobetrag); + //BlockSLGANachricht.SegmentGES00.GesamtbetragZuzahlung.SetDecimalValue(info.GesamtbetragZuzahlung); + //// GES + //BlockSLGANachricht.SegmentGES.Status.SetValue(info.Summenstatus.Value); + //BlockSLGANachricht.SegmentGES.Gesamtrechnungsbetrag.SetDecimalValue(info.Gesamtrechnungsbetrag); + //BlockSLGANachricht.SegmentGES.Gesamtbruttobetrag.SetDecimalValue(info.Gesamtbruttobetrag); + //BlockSLGANachricht.SegmentGES.GesamtbetragZuzahlung.SetDecimalValue(info.GesamtbetragZuzahlung); + //// NAM + //BlockSLGANachricht.SegmentNAM.Name1.SetValue(info.Name1); + //BlockSLGANachricht.SegmentNAM.Name2.SetValue(info.Name2); + //BlockSLGANachricht.SegmentNAM.Name3.SetValue(info.Name3); + //BlockSLGANachricht.SegmentNAM.Name4.SetValue(info.Name4); - // End - BlockSLGAUNT.AnzahlEinheiten.SetFilledIntValue(SegmentSLGACounter, 6); - BlockSLGAUNT.Nachrichtenreferenznummer.SetFilledIntValue(nachrefnum, 5); + //// End + //BlockSLGAUNT.AnzahlEinheiten.SetFilledIntValue(SegmentSLGACounter, 6); + //BlockSLGAUNT.Nachrichtenreferenznummer.SetFilledIntValue(nachrefnum, 5); } - private void GenerateBlockSLLA(DakotaFileInfo info) { - SegmentSLLACounter++; AnzahlUNHCounter++; var nachrefnum = ++AnzahlUNHCounter; // Head - BlockSLLAUNH.Nachrichtenreferenznummer.SetFilledIntValue(nachrefnum, 5); - BlockSLLAUNH.NachrichtenTypKennung.SetValue("SLLA"); - BlockSLLAUNH.Verionsnummer.SetValue("18"); - BlockSLLAUNH.FreigabeNrDesTypes.SetValue("0"); - BlockSLLAUNH.VerwaltendeOrganisation.SetValue("0"); + //BlockSLLAUNH.Nachrichtenreferenznummer.SetFilledIntValue(nachrefnum, 5); + //BlockSLLAUNH.NachrichtenTypKennung.SetValue("SLLA"); + //BlockSLLAUNH.Verionsnummer.SetValue("18"); + //BlockSLLAUNH.FreigabeNrDesTypes.SetValue("0"); + //BlockSLLAUNH.VerwaltendeOrganisation.SetValue("0"); - // Body - // FKT Funktion - BlockSLLANachricht.SegmentSLLAFKT.Verarbeitungskennzeichen.SetValue(info.Verarbeitungskennzeichen.Value); - BlockSLLANachricht.SegmentSLLAFKT.IKLeistungserbringers.SetValue(info.IKLeistungserbringers); - BlockSLLANachricht.SegmentSLLAFKT.IKKostenträgers.SetValue(info.IKKostenträger); - BlockSLLANachricht.SegmentSLLAFKT.IKKrankenkasse.SetValue(info.IKKrankenkasse); - //BlockSLLANachricht.SegmentSLLAFKT.IKRechnungsstellers.SetValue(string.Empty); - // REC - BlockSLLANachricht.SegmentSLLAREC.SammelRechnungsnummer.SetValue(info.Rechnungsnummer); - BlockSLLANachricht.SegmentSLLAREC.EinzelRechnungsnummer.SetValue("0"); - BlockSLLANachricht.SegmentSLLAREC.Datum.SetValue(info.Rechnungsdatum.ToString("yyyyMMdd")); - BlockSLLANachricht.SegmentSLLAREC.Rechnungsart.SetValue(info.Rechnungsart.Value); - // INV - // Information Versicherte - BlockSLLANachricht.SegmentSLLAINV.VersichertenNummer.SetValue(string.Empty); - BlockSLLANachricht.SegmentSLLAINV.Versichertenstatus.SetValue(string.Empty); - BlockSLLANachricht.SegmentSLLAINV.Beleginformation.SetValue("0"); - BlockSLLANachricht.SegmentSLLAINV.Belegnummer.SetValue(string.Empty); - BlockSLLANachricht.SegmentSLLAINV.KennzeichenBesondereVersorgungsform.SetValue(string.Empty); - // URI - // Wird erst bei Korrekturen verwendet - // NAD - BlockSLLANachricht.SegmentSLLANAD.Nachname.SetValue(string.Empty); - BlockSLLANachricht.SegmentSLLANAD.Vorname.SetValue(string.Empty); - BlockSLLANachricht.SegmentSLLANAD.Geburtsdatum.SetValue(string.Empty); - BlockSLLANachricht.SegmentSLLANAD.StraßeNr.SetValue(string.Empty); - BlockSLLANachricht.SegmentSLLANAD.PLZ.SetValue(string.Empty); - BlockSLLANachricht.SegmentSLLANAD.Wohnort.SetValue(string.Empty); - BlockSLLANachricht.SegmentSLLANAD.Länderkennzeichen.SetValue(string.Empty); - // IMG - BlockSLLANachricht.SegmentSLLAIMG.Abrechnungsjahr.SetValue(string.Empty); - BlockSLLANachricht.SegmentSLLAIMG.Abrechnungsmonat.SetValue(string.Empty); - BlockSLLANachricht.SegmentSLLAIMG.Identifikationsmerkmal.SetValue(string.Empty); + //// Body + //// FKT Funktion + //BlockSLLANachricht.SegmentSLLAFKT.Verarbeitungskennzeichen.SetValue(info.Verarbeitungskennzeichen.Value); + //BlockSLLANachricht.SegmentSLLAFKT.IKLeistungserbringers.SetValue(info.IKLeistungserbringers); + //BlockSLLANachricht.SegmentSLLAFKT.IKKostenträgers.SetValue(info.IKKostenträger); + //BlockSLLANachricht.SegmentSLLAFKT.IKKrankenkasse.SetValue(info.IKKrankenkasse); + ////BlockSLLANachricht.SegmentSLLAFKT.IKRechnungsstellers.SetValue(string.Empty); + //// REC + //BlockSLLANachricht.SegmentSLLAREC.SammelRechnungsnummer.SetValue(info.Rechnungsnummer); + //BlockSLLANachricht.SegmentSLLAREC.EinzelRechnungsnummer.SetValue("0"); + //BlockSLLANachricht.SegmentSLLAREC.Datum.SetValue(info.Rechnungsdatum.ToString("yyyyMMdd")); + //BlockSLLANachricht.SegmentSLLAREC.Rechnungsart.SetValue(info.Rechnungsart.Value); + //// INV + //// Information Versicherte + //BlockSLLANachricht.SegmentSLLAINV.VersichertenNummer.SetValue(string.Empty); + //BlockSLLANachricht.SegmentSLLAINV.Versichertenstatus.SetValue(string.Empty); + //BlockSLLANachricht.SegmentSLLAINV.Beleginformation.SetValue("0"); + //BlockSLLANachricht.SegmentSLLAINV.Belegnummer.SetValue(string.Empty); + //BlockSLLANachricht.SegmentSLLAINV.KennzeichenBesondereVersorgungsform.SetValue(string.Empty); + //// URI + //// Wird erst bei Korrekturen verwendet + //// NAD + //BlockSLLANachricht.SegmentSLLANAD.Nachname.SetValue(string.Empty); + //BlockSLLANachricht.SegmentSLLANAD.Vorname.SetValue(string.Empty); + //BlockSLLANachricht.SegmentSLLANAD.Geburtsdatum.SetValue(string.Empty); + //BlockSLLANachricht.SegmentSLLANAD.StraßeNr.SetValue(string.Empty); + //BlockSLLANachricht.SegmentSLLANAD.PLZ.SetValue(string.Empty); + //BlockSLLANachricht.SegmentSLLANAD.Wohnort.SetValue(string.Empty); + //BlockSLLANachricht.SegmentSLLANAD.Länderkennzeichen.SetValue(string.Empty); + //// IMG + //BlockSLLANachricht.SegmentSLLAIMG.Abrechnungsjahr.SetValue(string.Empty); + //BlockSLLANachricht.SegmentSLLAIMG.Abrechnungsmonat.SetValue(string.Empty); + //BlockSLLANachricht.SegmentSLLAIMG.Identifikationsmerkmal.SetValue(string.Empty); - var test = new List(); - var abrechnungspositionen = new List(); - foreach (var position in abrechnungspositionen) - { - var pos = new Abrechnungsposition(); - // ENF - pos.SegmentSLLAENF.Identifikationsnummer.SetValue(string.Empty); - pos.SegmentSLLAENF.Abrechnungscode.SetValue("69"); - pos.SegmentSLLAENF.Tarifkennzeichen.SetValue(string.Empty); - pos.SegmentSLLAENF.ArtLeistung.SetValue(string.Empty); - pos.SegmentSLLAENF.AnzahlMenge.SetValue(string.Empty); - pos.SegmentSLLAENF.EinzelbetragAbrechnungsposition.SetValue(string.Empty); - pos.SegmentSLLAENF.DatumLeistungserbringung.SetValue(string.Empty); - pos.SegmentSLLAENF.BetragZuzahlung.SetValue(string.Empty); - // SUT - pos.SegmentSLLASUT.GefahreneKilometer.SetValue(string.Empty); - pos.SegmentSLLASUT.Uhrzeit.SetValue(string.Empty); - pos.SegmentSLLASUT.UhrzeitBis.SetValue(string.Empty); - pos.SegmentSLLASUT.Dauer.SetValue(string.Empty); - pos.SegmentSLLASUT.VersorgungszeitraumVon.SetValue(string.Empty); - pos.SegmentSLLASUT.VersorgungszeitraumBis.SetValue(string.Empty); - // TXT - pos.SegmentSLLATXT.Text.SetValue(string.Empty); - // MWS - //pos.SegmentSLLAMWS.Mehrwertsteuersatz.SetValue(string.Empty); - //pos.SegmentSLLAMWS.BetragMehrwertsteuer.SetValue(string.Empty); + //var test = new List(); + //var abrechnungspositionen = new List(); + //foreach (var position in abrechnungspositionen) + //{ + // var pos = new Abrechnungsposition(); + // // ENF + // pos.SegmentSLLAENF.Identifikationsnummer.SetValue(string.Empty); + // pos.SegmentSLLAENF.Abrechnungscode.SetValue("69"); + // pos.SegmentSLLAENF.Tarifkennzeichen.SetValue(string.Empty); + // pos.SegmentSLLAENF.ArtLeistung.SetValue(string.Empty); + // pos.SegmentSLLAENF.AnzahlMenge.SetValue(string.Empty); + // pos.SegmentSLLAENF.EinzelbetragAbrechnungsposition.SetValue(string.Empty); + // pos.SegmentSLLAENF.DatumLeistungserbringung.SetValue(string.Empty); + // pos.SegmentSLLAENF.BetragZuzahlung.SetValue(string.Empty); + // // SUT + // pos.SegmentSLLASUT.GefahreneKilometer.SetValue(string.Empty); + // pos.SegmentSLLASUT.Uhrzeit.SetValue(string.Empty); + // pos.SegmentSLLASUT.UhrzeitBis.SetValue(string.Empty); + // pos.SegmentSLLASUT.Dauer.SetValue(string.Empty); + // pos.SegmentSLLASUT.VersorgungszeitraumVon.SetValue(string.Empty); + // pos.SegmentSLLASUT.VersorgungszeitraumBis.SetValue(string.Empty); + // // TXT + // pos.SegmentSLLATXT.Text.SetValue(string.Empty); + // // MWS + // //pos.SegmentSLLAMWS.Mehrwertsteuersatz.SetValue(string.Empty); + // //pos.SegmentSLLAMWS.BetragMehrwertsteuer.SetValue(string.Empty); - BlockSLLANachricht.AddPosition(pos); - } + // BlockSLLANachricht.AddPosition(pos); + //} - // ZUV - //BlockSLLANachricht.SegmentSLLAZUV.Betriebsstättennummer.SetValue(string.Empty); - //BlockSLLANachricht.SegmentSLLAZUV.LebenslangeArztnummer.SetValue(string.Empty); - //BlockSLLANachricht.SegmentSLLAZUV.VerordnungsAusstellEinsatzdatum.SetValue(string.Empty); - //BlockSLLANachricht.SegmentSLLAZUV.Zuzahlungskennzeichen.SetValue(string.Empty); - //BlockSLLANachricht.SegmentSLLAZUV.Unfallkennzeichen.SetValue(string.Empty); - //BlockSLLANachricht.SegmentSLLAZUV.KennzeichenBVGSonstiges.SetValue(string.Empty); - //BlockSLLANachricht.SegmentSLLAZUV.KennzeichenVerordnungsbesonderheiten.SetValue(string.Empty); + //// ZUV + ////BlockSLLANachricht.SegmentSLLAZUV.Betriebsstättennummer.SetValue(string.Empty); + ////BlockSLLANachricht.SegmentSLLAZUV.LebenslangeArztnummer.SetValue(string.Empty); + ////BlockSLLANachricht.SegmentSLLAZUV.VerordnungsAusstellEinsatzdatum.SetValue(string.Empty); + ////BlockSLLANachricht.SegmentSLLAZUV.Zuzahlungskennzeichen.SetValue(string.Empty); + ////BlockSLLANachricht.SegmentSLLAZUV.Unfallkennzeichen.SetValue(string.Empty); + ////BlockSLLANachricht.SegmentSLLAZUV.KennzeichenBVGSonstiges.SetValue(string.Empty); + ////BlockSLLANachricht.SegmentSLLAZUV.KennzeichenVerordnungsbesonderheiten.SetValue(string.Empty); - // BES - BlockSLLANachricht.SegmentSLLABES.GesamtbetragBrutto.SetValue(string.Empty); - BlockSLLANachricht.SegmentSLLABES.GesamtbetragGesetzlicheZuzahlung.SetValue(string.Empty); - BlockSLLANachricht.SegmentSLLABES.GesamtbetragProzentualeZuzahlung.SetValue(string.Empty); - BlockSLLANachricht.SegmentSLLABES.PauschalerZuzahlungsbetrag.SetValue(string.Empty); - BlockSLLANachricht.SegmentSLLABES.GesamtbetragEigenanteil.SetValue(string.Empty); + //// BES + //BlockSLLANachricht.SegmentSLLABES.GesamtbetragBrutto.SetValue(string.Empty); + //BlockSLLANachricht.SegmentSLLABES.GesamtbetragGesetzlicheZuzahlung.SetValue(string.Empty); + //BlockSLLANachricht.SegmentSLLABES.GesamtbetragProzentualeZuzahlung.SetValue(string.Empty); + //BlockSLLANachricht.SegmentSLLABES.PauschalerZuzahlungsbetrag.SetValue(string.Empty); + //BlockSLLANachricht.SegmentSLLABES.GesamtbetragEigenanteil.SetValue(string.Empty); - // End - BlockSLLAUNT.AnzahlEinheiten.SetFilledIntValue(SegmentSLLACounter, 6); - BlockSLLAUNT.Nachrichtenreferenznummer.SetFilledIntValue(nachrefnum, 5); - } - - private void GenerateUNZSegment() - { - Nutzdatendatei.SegmentUNZ.AnzahlNachrichten.SetFilledIntValue(AnzahlUNHCounter, 6); - Nutzdatendatei.SegmentUNZ.Datenaustauschreferenz.SetFilledIntValue(Info.Datenaustauschreferenz, 5); + //// End + //BlockSLLAUNT.AnzahlEinheiten.SetFilledIntValue(SegmentSLLACounter, 6); + //BlockSLLAUNT.Nachrichtenreferenznummer.SetFilledIntValue(nachrefnum, 5); } public void foo(long? invoiceBaseOid) diff --git a/Dakota/DakotaFileCreator.cs b/Dakota/DakotaFileCreator.cs index 33521bc2b..d0d6622e5 100644 --- a/Dakota/DakotaFileCreator.cs +++ b/Dakota/DakotaFileCreator.cs @@ -2,7 +2,9 @@ using BeWo.Data.Entities; using BS.Shared.DataContracts; using Dakota; -using Dakota.Models.Schlüssel; +using Dakota.Models; +using Dakota.Models.Infos; +using Dakota.Models.Schlüssels; using System; using System.Collections.Generic; using System.Linq; @@ -34,22 +36,6 @@ namespace BeWo.Service.ServiceUtils.Generell } } - /// - /// Ein Datei erzeungnis - /// - /// - /// - //public static string generateasciicode(list invoiceitems) - //{ - // var info = loadinfo(invoiceitems); - - // var file = new dakotafile(info); - - // file.generate(); - - // return file.getrows(); - //} - public static List GenerateDakotaFilesByMonth(int year, int month) { var dict = GenerateDakotaFiles(year, month); @@ -78,68 +64,122 @@ namespace BeWo.Service.ServiceUtils.Generell // Leistungsbereich - immer soziotherapie - DakotaKeyDictionary currentkey = new DakotaKeyDictionary(); - currentkey.DateTime = first; - currentkey.Kassenart = Kassenart.BKK; - currentkey.Kostenträger = ""; - - var dakota = res.FirstOrDefault(keypair => keypair.Key.Equals(currentkey)).Value; - - if (dakota is null) + DakotaKeyDictionary currentkey = new DakotaKeyDictionary { - var info = LoadInfo(invoice); + DateTime = first, + Kassenart = Kassenart.BKK, + Kostenträger = "" + }; - dakota = new DakotaFile(info); + var dakota = GetDakotaFile(res, currentkey, invoice); - res.Add(currentkey, dakota); - } + var invoiceinfo = GetDakotaFileInvoiceItem(dakota.FileInfo, invoice); - dakota.AddInvoiceItem(invoice); + dakota.AddInvoiceItem(invoiceinfo); } return res; } + /// + /// Get Dakota File. Creates if doesn't exist + /// + /// current Dict + /// + /// + /// + internal static DakotaFile GetDakotaFile(Dictionary dict, DakotaKeyDictionary key, InvoiceItem invoice) + { + var dakota = dict.FirstOrDefault(keypair => keypair.Key.Equals(key)).Value; + + if (dakota is null) + { + var info = LoadInfo(invoice); + + dakota = new DakotaFile(info); + + dict.Add(key, dakota); + } + + return dakota; + } + + internal static DakotaInvoiceItemInfo GetDakotaFileInvoiceItem(DakotaFileInfo fileinfo, InvoiceItem invoice) + { + var invoiceinfo = new DakotaInvoiceItemInfo(); + + invoiceinfo.IKLeistungserbringer = fileinfo.IKLeistungserbringers; + invoiceinfo.IKAbsender = fileinfo.Absenderbezeichnung; + invoiceinfo.IKEmpfänger = fileinfo.Empfangerbezeichnung; + invoiceinfo.IKKostentrager = fileinfo.Empfangerbezeichnung; + invoiceinfo.IKKrankenkasse = "112233445"; + invoiceinfo.IKKVKarte = "566778899"; + + invoiceinfo.Verarbeitungskennzeichen = SchlüsselVerarbeitungskennzeichen.AbrechnungOhneBesonderheit; + // invoiceinfo. + + return invoiceinfo; + } + public static DakotaFileInfo LoadInfo(InvoiceItem invoice) { - throw new NotImplementedException(); + var info = new DakotaFileInfo(); + + info.IKLeistungserbringers = "999888777"; + info.Absenderbezeichnung = "123456789"; + info.Empfangerbezeichnung = "987654321"; + info.Datenaustauschreferenz = 1; + info.Leistungsbereich = SchlüsselLeistungserbringerSammelgruppenschlussel.SoziotherapeutischerLeistungserbringer; + info.Anwendungsreferenz = "abovollkra.txt"; + info.Testindikator = SchlüsselTestindikator.Testdatei; + + info.Created = DateTime.Now; + + info.Rechnungsdatum = invoice.ItemPeriodEnd.Value; + info.Rechnungsart = SchlüsselRechnungsart.AbrechnungVonLeistungserbringer; + + info.Summenstatus = SchlüsselSummenstatus.Mitglieder; + info.Gesamtrechnungsbetrag = 1; + info.GesamtbetragZuzahlung = 1; + info.Gesamtbruttobetrag = 1; + + info.Name1 = "Hallo Dies"; + info.Name2 = "Dies nicht gut"; + info.Name3 = "Nein"; + info.Name4 = "omg"; + + return info; } - public static DakotaFileInfo LoadInfos(List invoiceItems) - { - var res = new DakotaFileInfo(); + //public static DakotaFileInfo LoadInfos(List invoiceItems) + //{ + // var res = new DakotaFileInfo(); - res.Absenderbezeichnung = "123456789"; - res.Empfangerbezeichnung = "987654321"; - res.Datenaustauschreferenz = 1; - res.Leistungsbereich = SchlüsselLeistungserbringerSammelgruppenschlussel.SoziotherapeutischerLeistungserbringer; - res.Anwendungsreferenz = "abovollkra.txt"; - res.Testindikator = SchlüsselTestindikator.Testdatei; + // res.Absenderbezeichnung = "123456789"; + // res.Empfangerbezeichnung = "987654321"; + // res.Datenaustauschreferenz = 1; + // res.Leistungsbereich = SchlüsselLeistungserbringerSammelgruppenschlussel.SoziotherapeutischerLeistungserbringer; + // res.Anwendungsreferenz = "abovollkra.txt"; + // res.Testindikator = SchlüsselTestindikator.Testdatei; - res.IKLeistungserbringers = "abovollkrass.txt"; - res.IKKostenträger = "abovollkrass.txt"; - res.IKKrankenkasse = "abovollkrass.txt"; - // res.Rechnungsnummer = dc.InvoiceBase.InvoiceNumber; - // Einheitlich monatlich - // res.Rechnungsdatum = dc.InvoiceBase.InvoiceDate.Value; + // res.IKLeistungserbringers = "abovollkrass.txt"; + // // res.Rechnungsnummer = dc.InvoiceBase.InvoiceNumber; + // // Einheitlich monatlich + // // res.Rechnungsdatum = dc.InvoiceBase.InvoiceDate.Value; - res.Summenstatus = SchlüsselSummenstatus.Mitglieder; - res.Gesamtrechnungsbetrag = 3.5m; - res.Gesamtbruttobetrag = 3.5m; - res.GesamtbetragZuzahlung = 3.5m; - res.Rechnungsart = SchlüsselRechnungsart.AbrechnungVonLeistungserbringer; - res.Name1 = "nam7"; - res.Name2 = "nam4"; - res.Name3 = "nam3"; - res.Name4 = "nam1"; + // res.Summenstatus = SchlüsselSummenstatus.Mitglieder; + // res.Gesamtrechnungsbetrag = 3.5m; + // res.Gesamtbruttobetrag = 3.5m; + // res.GesamtbetragZuzahlung = 3.5m; + // res.Rechnungsart = SchlüsselRechnungsart.AbrechnungVonLeistungserbringer; + // res.Name1 = "nam7"; + // res.Name2 = "nam4"; + // res.Name3 = "nam3"; + // res.Name4 = "nam1"; - res.Verarbeitungskennzeichen = SchlüsselVerarbeitungskennzeichen.AbrechnungOhneBesonderheit; + // res.Verarbeitungskennzeichen = SchlüsselVerarbeitungskennzeichen.AbrechnungOhneBesonderheit; - res.IKKrankenkasse = "abovollkrass.txt"; - - res.InvoiceItems = invoiceItems; - - return res; - } + // return res; + //} } } diff --git a/Dakota/DakotaFileInfo.cs b/Dakota/DakotaFileInfo.cs deleted file mode 100644 index 89ba51179..000000000 --- a/Dakota/DakotaFileInfo.cs +++ /dev/null @@ -1,186 +0,0 @@ -using BS.Shared.DataContracts; -using Dakota.Models.Schlüssel; -using System; -using System.Collections.Generic; - -namespace Dakota -{ - /// - /// Klasse zum Erzeugen von Dakota Files - /// - public class DakotaFileInfo - { - private int _Datenaustauschreferenz; - - /// - /// IK des Absenders ( Abrechnungsstelle mit oder ohne Inkassobefugnis oder LE) - /// Genutzt werden die ersten 9 Stellen; - /// einzutragen ist das IK der absendenden Stelle. - /// Diese Angabe muss übereinstimmen mit SLGA.FKT.IK Absender der Datei. - /// - public string Absenderbezeichnung { get; set; } - /// - /// IK des Empfängers (d.h. Datenannahmestelle mit Entschlüsselungsbefugnis); - /// genutzt werden die ersten 9 Stellen; - /// einzutragen ist das IK der empfangenden Stelle - /// - public string Empfangerbezeichnung { get; set; } - /// - /// Ab Version 12 ist die Datenaustauschreferenz zwingend zu füllen. - /// Genutzt werden die ersten 5 Stellen; - /// einzutragen ist die fortlaufende - /// Nummer der Lieferungen zwischen - /// Absender und Empfänger mit führenden Nullen. - /// Bei Überlauf der Datenaustauschreferenz („99999“) ist wieder - /// bei Eins(„00001“) zu beginnen - /// - public int Datenaustauschreferenz - { - get { return _Datenaustauschreferenz; } - set - { - if (value < 1) - throw new ArgumentOutOfRangeException("Datenaustauschreferenz", "Referenz darf nicht negativ sein"); - else if (value == 0) - throw new ArgumentOutOfRangeException("Datenaustauschreferenz", "Referenz darf nicht gleich null sein"); - else if (value > 100000) - throw new ArgumentOutOfRangeException("Datenaustauschreferenz", "Referenz darf nicht größer als 99999 sein"); - else if (value == 100000) - value = 1; - - _Datenaustauschreferenz = value; - } - } - /// - /// Einzutragen ist der Leistungserbringer-Sammelgruppenschlüssel, - /// siehe Schlüssel Anlage 3 Abschnitt - /// 8.1.14. - /// - public SchlüsselLeistungserbringerSammelgruppenschlussel Leistungsbereich { get; set; } - /// - /// Genutzt werden die ersten 11 Stellen; - /// einzutragen ist der logische Dateiname s.Anhang 1 zur Anlage 1 - /// zum Kapitel 4. - /// - public string Anwendungsreferenz { get; set; } - /// - /// Inhalt = 0 wenn Testdatei - /// Inhalt = 1 wenn Erprobungsdatei - /// Inhalt = 2 wenn Echtdatei - /// - public SchlüsselTestindikator Testindikator { get; set; } - - /// - /// Es ist das IK des Leistungserbringers - /// anzugeben – mit folgender Ausnahme: - /// Erfolgt die Abrechnung über eine - /// Abrechnungsstelle mit Inkassovollmacht, so ist in der Sammelrechnungs-SLGA das IK der Abrechnungsstelle anzugeben. - /// - public string IKLeistungserbringers { get; set; } - /// - /// Einzutragen ist das IK des Kostenträ- - /// gers auf den das IK der KV-Karte in - /// der Kostenträgerdatei verweist; diese - /// Angabe ist identisch mit dem IK des - /// Kostenträgers im FKT-Segment der - /// zugehörigen SLLA-Nachricht. - /// - public string IKKostenträger { get; set; } - /// - /// IK der Krankenkasse von der KVKarte bzw. der ärztlichen Verordnung - /// ist zwingend anzugeben, außer es - /// handelt sich um eine Sammelrechnung-SLGA.Bei allen SLGA-Nachrichten als Gesamtrechnung ist diese - /// Angabe identisch mit SLLA.FKT.IK der - /// Krankenkasse der zugehörigen SLLANachricht. - /// - public string IKKrankenkasse { get; set; } - /// - /// Die Einzel-Rechnungsnummer ist zusätzlich zur Sammel-Rechnungsnummer anzugeben, wenn eine SLGANachricht als Sammelrechnung zusätzlich in der Nutzdatendatei übermittelt - /// wird, ansonsten wird lediglich das Datenelement Sammel-Rechnungsnummer gefüllt und die Einzel-Rechnungsnummer auf „0“ gesetzt(zum Beispiel - /// 00234567:0 - /// - public string Rechnungsnummer { get; set; } - /// - /// Rechnungsdatum JJJJMMTT - /// - public DateTime Rechnungsdatum { get; set; } - - /// - /// Siehe Schlüssel Summenstatus - /// Anlage 3 Abschnitt 8.1.6 - /// - public SchlüsselSummenstatus Summenstatus { get; set; } - /// - /// Bei Verarbeitungskennzeichen „01“, - /// „02“ und „04“: - /// Gesamtrechnungsbetrag(ggf.inklusive Mehrwertsteuer) - /// Berechnungsregel: - /// GES.Gesamtbruttobetrag minus - /// GES.Gesamtbetrag Zuzahlung und/oder Eigenanteil und/oder Pauschale - /// Korrekturbetrag. - /// Bei Verarbeitungskennzeichen „03“: - /// Entspricht dem Wert aus GES.Gesamtbetrag Zuzahlung und/oder Eigenanteil und/oder Pauschale Korrekturbetrag. - /// - public decimal Gesamtrechnungsbetrag { get; set; } - /// - /// Bei Verarbeitungskennzeichen „01“, - /// „02“ und „04“: - /// Summe der Gesamtbruttobeträge der - /// Abrechnungsfälle(inklusive gesetzlicher Zuzahlungsbeträge oder Eigenanteil und/oder Pauschale Korrekturbetrag sowie ggf.Mehrwertsteuer) - /// aus BES. - /// Bei Verarbeitungskennzeichen „03“: - /// Ist der Gesamtbruttobetrag mit 0,00 - /// zu übermitteln. - /// - public decimal Gesamtbruttobetrag { get; set; } - /// - /// Bei Verarbeitungskennzeichen „01“ - /// und „02“: - /// Summe der gesetzlichen Zuzahlungen und/oder der Eigenanteile der - /// Abrechnungsfälle aus BES - /// Berechnungsregel: - /// Summe aller Abrechnungsfälle(BES.Gesambetrag gesetzliche Zuzahlung + BES.Gesamtbetrag Eigenanteil). - /// Bei Verarbeitungskennzeichen „03“: - /// Summe der gesetzlichen Zuzahlungen und/oder der Eigenanteile der - /// Abrechnungsfälle aus GZF - /// Berechnungsregel: - /// Summe aller Abrechnungsfälle(GZF.Gesambetrag gesetzliche Zuzahlung + GZF.Gesamtbetrag Eigenanteil). - /// Bei Verarbeitungskennzeichen „04“: - /// Summe der gesetzlichen Zuzahlungen und/oder der Eigenanteile der - /// Abrechnungsfälle aus BES - /// Berechnungsregel: - /// Summe aller Abrechnungsfälle(BES.Gesambetrag gesetzliche Zuzahlung + BES.Gesamtbetrag Eigenanteil + BES.Pauschale Korrekturbetrag). - /// - public decimal GesamtbetragZuzahlung { get; set; } - /// - /// Siehe Schlüssel Rechnungsart - /// Anlage 3 Abschnitt 8.1.4. - /// Dieser Schlüsselwert muss in der - /// Sammelrechnungs-SLGA und allen - /// zugehörigen SLGA-und SLLA-Nachrichten gleich sein. - /// - public SchlüsselRechnungsart Rechnungsart { get; set; } - /// - /// Name bzw. Firmenbezeichnung des - /// Rechnungsstellers(Leistungserbringer oder Abrechnungsstelle - /// - public string Name1 { get; set; } - /// - /// ggf. Ansprechpartner und Telefonnummer. - /// - public string Name2 { get; set; } - /// - /// ggf. Ansprechpartner und Telefonnummer. - /// - public string Name3 { get; set; } - /// - /// E-Mail-Adresse; - /// zugelassen sind Buchstaben und Ziffern, ausgenommen Umlaute - /// - public string Name4 { get; set; } - /// - /// Siehe Schlüssel Verarbeitungskennzeichen Anlage 3 Abschnitt 8.1.7. - /// - public SchlüsselVerarbeitungskennzeichen Verarbeitungskennzeichen { get; set; } - } -} diff --git a/Dakota/Models/Blocke/Block.cs b/Dakota/Models/Blocke/Block.cs new file mode 100644 index 000000000..efdaf4c1c --- /dev/null +++ b/Dakota/Models/Blocke/Block.cs @@ -0,0 +1,14 @@ +using Dakota.Models.Nachrichten; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Dakota.Models.Blocke +{ + internal abstract class Block : Nachricht + { + public abstract int GetUNHCount(); + } +} diff --git a/Dakota/Models/Block/BlockAbrechnungsfall.cs b/Dakota/Models/Blocke/BlockAbrechnungsfall.cs similarity index 97% rename from Dakota/Models/Block/BlockAbrechnungsfall.cs rename to Dakota/Models/Blocke/BlockAbrechnungsfall.cs index 28ac2e723..946779ef9 100644 --- a/Dakota/Models/Block/BlockAbrechnungsfall.cs +++ b/Dakota/Models/Blocke/BlockAbrechnungsfall.cs @@ -7,9 +7,9 @@ using System.Text; using System.Threading.Tasks; using Dakota.Models.Segmente.SLLA; -namespace Dakota.Models.Block +namespace Dakota.Models.Blocke { - internal class BlockAbrechnungsfall : Nachricht + internal class BlockAbrechnungsfall : Block { /// @@ -117,5 +117,10 @@ namespace Dakota.Models.Block SegmentSLLAENF, SegmentSLLASUT, SegmentSLLATXT, SegmentSLLAMWS, SegmentSLLAZUZ, SegmentSLLAZUV, SegmentSLLADIA, SegmentSLLASKZ, SegmentSLLABES}; } + + public override int GetUNHCount() + { + return 0; + } } } diff --git a/Dakota/Models/Block/BlockKostenträger.cs b/Dakota/Models/Blocke/BlockKostenträger.cs similarity index 76% rename from Dakota/Models/Block/BlockKostenträger.cs rename to Dakota/Models/Blocke/BlockKostenträger.cs index b7a894a37..d792d24c8 100644 --- a/Dakota/Models/Block/BlockKostenträger.cs +++ b/Dakota/Models/Blocke/BlockKostenträger.cs @@ -6,31 +6,30 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace Dakota.Models.Block +namespace Dakota.Models.Blocke { /// /// Wiederhole folgenden Block je IK des Kostenträgers /// - internal class BlockKostenträger : Nachricht + internal class BlockKostenträger : Block { public SegmentUNH SegmentUNH { get; private set; } - public NachrichtSLGA NachrichtSLGA { get; private set; } + public NachrichtSLGA3 NachrichtSLGA { get; private set; } public SegmentUNT SegmentUNT { get; private set; } public List BlockKrankenkarteVerordnung { get; private set; } - public string IKKostenträger - { - get { return NachrichtSLGA.SegmentFKT.IKKostenträger.GetValue(); } - set { NachrichtSLGA.SegmentFKT.IKKostenträger.SetValue(value); } - } - internal BlockKostenträger() { SegmentUNH = new SegmentUNH(); - NachrichtSLGA = new NachrichtSLGA(); + NachrichtSLGA = new NachrichtSLGA3(); SegmentUNT = new SegmentUNT(GetSegmentLength); BlockKrankenkarteVerordnung = new List(); } + public string IKKostenträger + { + get { return NachrichtSLGA.SegmentFKT.IKKostenträger.GetValue(); } + set { NachrichtSLGA.SegmentFKT.IKKostenträger.SetValue(value); } + } public override List GetSegments() { @@ -47,5 +46,17 @@ namespace Dakota.Models.Block return list; } + + public override int GetUNHCount() + { + var i = 1; + + foreach (var block in BlockKrankenkarteVerordnung) + { + i += block.GetUNHCount(); + } + + return i; + } } } diff --git a/Dakota/Models/Block/BlockKrankenkarteVerordnung.cs b/Dakota/Models/Blocke/BlockKrankenkarteVerordnung.cs similarity index 57% rename from Dakota/Models/Block/BlockKrankenkarteVerordnung.cs rename to Dakota/Models/Blocke/BlockKrankenkarteVerordnung.cs index fab2ba01a..08548006b 100644 --- a/Dakota/Models/Block/BlockKrankenkarteVerordnung.cs +++ b/Dakota/Models/Blocke/BlockKrankenkarteVerordnung.cs @@ -1,55 +1,61 @@ using Dakota.Models.Nachrichten; using Dakota.Models.Segmente; +using Dakota.Models.Segmente.SLLA; using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; -namespace Dakota.Models.Block +namespace Dakota.Models.Blocke { /// /// Wiederhole folgenden Block je IK der Krankenkarte bzw der Verordnung /// - internal class BlockKrankenkarteVerordnung : Nachricht + internal class BlockKrankenkarteVerordnung : Block { public SegmentUNH SegmentSLGAUNH { get; private set; } - public NachrichtSLGA2 SLGANachricht2 { get; private set; } + public NachrichtSLGA3 NachrichtSLGA { get; private set; } public SegmentUNT SegmentSLGAUNT { get; private set; } public SegmentUNH SegmentSLLAUNH { get; private set; } - public NachrichtSLLA2 SLLANachricht2 { get; private set; } + public NachrichtSLLA3 NachrichtSLLA { get; private set; } public SegmentUNT SegmentSLLAUNT { get; private set; } public BlockKrankenkarteVerordnung() { SegmentSLGAUNH = new SegmentUNH(); - SLGANachricht2 = new NachrichtSLGA2(); + NachrichtSLGA = new NachrichtSLGA3(); SegmentSLGAUNT = new SegmentUNT(SLGASegmentLength); SegmentSLLAUNH = new SegmentUNH(); - SLLANachricht2 = new NachrichtSLLA2(); + NachrichtSLLA = new NachrichtSLLA3(); SegmentSLLAUNT = new SegmentUNT(SLLASegmentLength); } public string IKKrankenkasseKVKarte { - get { return SLGANachricht2.SegmentFKT.IKKrankenkasseKVKarte.GetValue(); } - set { SLGANachricht2.SegmentFKT.IKKrankenkasseKVKarte.SetValue(value); } + get { return NachrichtSLGA.SegmentFKT.IKKrankenkasseKVKarte.GetValue(); } + set { NachrichtSLGA.SegmentFKT.IKKrankenkasseKVKarte.SetValue(value); } } - public int SLGASegmentLength() => SLGANachricht2.GetSegmentLength() + 2; - public int SLLASegmentLength() => SLLANachricht2.GetSegmentLength() + 2; + public int SLGASegmentLength() => NachrichtSLGA.GetSegmentLength() + 2; + public int SLLASegmentLength() => NachrichtSLLA.GetSegmentLength() + 2; public override List GetSegments() { var list = new List() { SegmentSLGAUNH }; - list.AddRange(SLGANachricht2.GetSegments()); + list.AddRange(NachrichtSLGA.GetSegments()); list.Add(SegmentSLGAUNT); list.Add(SegmentSLLAUNH); - list.AddRange(SLLANachricht2.GetSegments()); + list.AddRange(NachrichtSLLA.GetSegments()); list.Add(SegmentSLLAUNT); return list; } + + public override int GetUNHCount() + { + return 2; + } } } diff --git a/Dakota/Models/Block/BlockNutzdatendatei.cs b/Dakota/Models/Blocke/BlockNutzdatendatei.cs similarity index 72% rename from Dakota/Models/Block/BlockNutzdatendatei.cs rename to Dakota/Models/Blocke/BlockNutzdatendatei.cs index c7deb01ba..a13e491b5 100644 --- a/Dakota/Models/Block/BlockNutzdatendatei.cs +++ b/Dakota/Models/Blocke/BlockNutzdatendatei.cs @@ -6,7 +6,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace Dakota.Models.Block +namespace Dakota.Models.Blocke { /// /// Nutzdatendatei ohne Logik @@ -21,15 +21,14 @@ namespace Dakota.Models.Block { SegmentUNB = new SegmentUNB(); BlockKostenträger = new List(); - SegmentUNZ = new SegmentUNZ(); + SegmentUNZ = new SegmentUNZ(GetUNHCount); } public override List GetSegments() { - var list = new List() - { - SegmentUNB - }; + var list = new List(); + + list.Add(SegmentUNB); foreach (var block in BlockKostenträger) { @@ -40,5 +39,17 @@ namespace Dakota.Models.Block return list; } + + public int GetUNHCount() + { + int i = 0; + + foreach (var block in BlockKostenträger) + { + i += block.GetUNHCount(); + } + + return i; + } } } diff --git a/Dakota/Models/Dateneinheit.cs b/Dakota/Models/Daten/Dateneinheit.cs similarity index 92% rename from Dakota/Models/Dateneinheit.cs rename to Dakota/Models/Daten/Dateneinheit.cs index 39152d4db..9b5b3d225 100644 --- a/Dakota/Models/Dateneinheit.cs +++ b/Dakota/Models/Daten/Dateneinheit.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace Dakota.Models +namespace Dakota.Models.Daten { public abstract class Dateneinheit { diff --git a/Dakota/Models/Datenelement.cs b/Dakota/Models/Daten/Datenelement.cs similarity index 63% rename from Dakota/Models/Datenelement.cs rename to Dakota/Models/Daten/Datenelement.cs index 1898f5da8..6fefde2b4 100644 --- a/Dakota/Models/Datenelement.cs +++ b/Dakota/Models/Daten/Datenelement.cs @@ -1,31 +1,29 @@ -using System; +using Dakota.Models.Schlüssels; +using System; -namespace Dakota.Models +namespace Dakota.Models.Daten { internal class Datenelement : Dateneinheit { - private string _Value; - private bool _IsDecimal; + private protected string _Value; + private protected bool _IgnoreCheck; public int MinStellen { get; set; } public int MaxStellen { get; set; } - public Feldart Feldart { get; set; } public Datenelement(string title) { Title = title; - _IsDecimal = false; + _IgnoreCheck = false; } - public Datenelement(string title, int min, int max, Feldart art) : this(title) { MinStellen = min; MaxStellen = max; Feldart = art; } - public Datenelement(string title, int count, Feldart art) : this(title, count, count, art) { @@ -49,7 +47,7 @@ namespace Dakota.Models } } - if (!_IsDecimal && (_Value.Length < MinStellen || _Value.Length > MaxStellen)) + if (!_IgnoreCheck && (_Value.Length < MinStellen || _Value.Length > MaxStellen)) { throw new NotImplementedException("Error Code: 3483091097897"); } @@ -57,14 +55,15 @@ namespace Dakota.Models return _Value; } - public void SetFilledIntValue(int value, int length) + + public void SetValue(int value) { - if (value.ToString().Length > length) - throw new ArgumentOutOfRangeException("length", $"the length of {value} is bigger than len {length}"); - - SetValue(value.ToString("D" + length.ToString())); + SetValue(value.ToString()); + } + public void SetValue(Schlüssel schlussel) + { + SetValue(schlussel.Value); } - public void SetValue(string value) { if (value is string) @@ -83,24 +82,7 @@ namespace Dakota.Models _Value = value; - _IsDecimal = false; - } - - public void SetDecimalValue(Decimal input) - { - var dec = input.ToString("#.00").Replace(".", ","); - var tester = Math.Abs(input).ToString("#.00").Replace(".", ""); - - if (tester.Length < MinStellen || tester.Length > MaxStellen) - { - throw new NotImplementedException("Error Code: 3483091097895"); - } - else - { - _Value = dec; - } - - _IsDecimal = true; + _IgnoreCheck = false; } } } diff --git a/Dakota/Models/DatenelementCounter.cs b/Dakota/Models/Daten/DatenelementCounter.cs similarity index 55% rename from Dakota/Models/DatenelementCounter.cs rename to Dakota/Models/Daten/DatenelementCounter.cs index bbe6b65e7..e8eeb364d 100644 --- a/Dakota/Models/DatenelementCounter.cs +++ b/Dakota/Models/Daten/DatenelementCounter.cs @@ -4,20 +4,27 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace Dakota.Models +namespace Dakota.Models.Daten { - internal class DatenelementCounter : Datenelement + internal class DatenelementCounter : DatenelementFiller { public Func Counter { get; private set; } - public DatenelementCounter(string title, int count, Func counter) : base(title, count, Feldart.Muss) + public DatenelementCounter(string title, int count, Func counter) : this(title, count, counter, count) + { + + } + + public DatenelementCounter(string title, int count, Func counter, int filllen) : base(title, count, filllen) { Counter = counter; } public void Update() { - SetFilledIntValue(Counter(), MinStellen); + var value = Counter(); + + SetValue(value.ToString("D" + MinStellen.ToString())); } public override string GetValue() diff --git a/Dakota/Models/Daten/DatenelementDateTime.cs b/Dakota/Models/Daten/DatenelementDateTime.cs new file mode 100644 index 000000000..ee369610b --- /dev/null +++ b/Dakota/Models/Daten/DatenelementDateTime.cs @@ -0,0 +1,24 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Dakota.Models.Daten +{ + internal class DatenelementDateTime : Datenelement + { + public string Format { get; set; } + + public DatenelementDateTime(string title, int count, string format, Feldart art) : base(title, count, count, art) + { + _IgnoreCheck = true; + Format = format; + } + + public void SetValue(DateTime input) + { + base.SetValue(input.ToString(Format)); + } + } +} diff --git a/Dakota/Models/Daten/DatenelementDecimal.cs b/Dakota/Models/Daten/DatenelementDecimal.cs new file mode 100644 index 000000000..c85d7ff93 --- /dev/null +++ b/Dakota/Models/Daten/DatenelementDecimal.cs @@ -0,0 +1,28 @@ +using Dakota.Models.Schlüssels; +using System; + +namespace Dakota.Models.Daten +{ + internal class DatenelementDecimal : Datenelement + { + public DatenelementDecimal(string title, int min, int max, Feldart art) : base(title, min, max, art) + { + _IgnoreCheck = true; + } + + public void SetValue(Decimal input) + { + var dec = input.ToString("#.00").Replace(".", ","); + var tester = Math.Abs(input).ToString("#.00").Replace(".", ""); + + if (tester.Length < MinStellen || tester.Length > MaxStellen) + { + throw new NotImplementedException("Error Code: 3483091097895"); + } + else + { + _Value = dec; + } + } + } +} diff --git a/Dakota/Models/Daten/DatenelementFiller.cs b/Dakota/Models/Daten/DatenelementFiller.cs new file mode 100644 index 000000000..66df15a7f --- /dev/null +++ b/Dakota/Models/Daten/DatenelementFiller.cs @@ -0,0 +1,36 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Dakota.Models.Daten +{ + internal class DatenelementFiller : Datenelement + { + public int Value { get; set; } + public int FillLength { get; set; } + + public DatenelementFiller(string title, int count, int filllength) : base(title, count, Feldart.Muss) + { + FillLength = filllength; + Title = title; + } + + public DatenelementFiller(string title, int min, int max, int filllength) : base(title, min, max, Feldart.Muss) + { + FillLength = filllength; + Title = title; + } + + public void SetValue(int value) + { + if (value.ToString().Length > FillLength) + throw new ArgumentOutOfRangeException("length", $"the length of {value} is bigger than len {FillLength}"); + + Value = value; + + SetValue(value.ToString("D" + FillLength.ToString())); + } + } +} diff --git a/Dakota/Models/Datenelementgruppe.cs b/Dakota/Models/Daten/Datenelementgruppe.cs similarity index 96% rename from Dakota/Models/Datenelementgruppe.cs rename to Dakota/Models/Daten/Datenelementgruppe.cs index 615923d61..9b16cece9 100644 --- a/Dakota/Models/Datenelementgruppe.cs +++ b/Dakota/Models/Daten/Datenelementgruppe.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace Dakota.Models +namespace Dakota.Models.Daten { internal class Datenelementgruppe : Dateneinheit { diff --git a/Dakota/Models/Infos/DakotaFileInfo.cs b/Dakota/Models/Infos/DakotaFileInfo.cs new file mode 100644 index 000000000..39bcb245a --- /dev/null +++ b/Dakota/Models/Infos/DakotaFileInfo.cs @@ -0,0 +1,56 @@ +using BS.Shared.DataContracts; +using Dakota.Models.Schlüssels; +using System; +using System.Collections.Generic; + +namespace Dakota.Models.Infos +{ + /// + /// Klasse zum Erzeugen von Dakota Files + /// + public class DakotaFileInfo + { + private int _Datenaustauschreferenz; + + public string Absenderbezeichnung { get; set; } + public string Empfangerbezeichnung { get; set; } + public int Datenaustauschreferenz + { + get { return _Datenaustauschreferenz; } + set + { + if (value < 1) + throw new ArgumentOutOfRangeException("Datenaustauschreferenz", "Referenz darf nicht negativ sein"); + else if (value == 0) + throw new ArgumentOutOfRangeException("Datenaustauschreferenz", "Referenz darf nicht gleich null sein"); + else if (value > 100000) + throw new ArgumentOutOfRangeException("Datenaustauschreferenz", "Referenz darf nicht größer als 99999 sein"); + else if (value == 100000) + value = 1; + + _Datenaustauschreferenz = value; + } + } + public DateTime Created { get; set; } + public SchlüsselLeistungserbringerSammelgruppenschlussel Leistungsbereich { get; set; } + public string Anwendungsreferenz { get; set; } + public SchlüsselTestindikator Testindikator { get; set; } + public string IKLeistungserbringers { get; set; } + public string Rechnungsnummer { get; set; } + public DateTime Rechnungsdatum { get; set; } + public SchlüsselSummenstatus Summenstatus00 { get; set; } + public SchlüsselSummenstatus Summenstatus { get; set; } + public decimal Gesamtrechnungsbetrag00 { get; set; } + public decimal Gesamtbruttobetrag00 { get; set; } + public decimal GesamtbetragZuzahlung00 { get; set; } + public decimal Gesamtrechnungsbetrag { get; set; } + public decimal Gesamtbruttobetrag { get; set; } + public decimal GesamtbetragZuzahlung { get; set; } + public SchlüsselRechnungsart Rechnungsart { get; set; } + public string Name1 { get; set; } + public string Name2 { get; set; } + public string Name3 { get; set; } + public string Name4 { get; set; } + public SchlüsselVerarbeitungskennzeichen Verarbeitungskennzeichen { get; set; } + } +} diff --git a/Dakota/Models/Infos/DakotaInvoiceItemInfo.cs b/Dakota/Models/Infos/DakotaInvoiceItemInfo.cs new file mode 100644 index 000000000..5c22e0e2a --- /dev/null +++ b/Dakota/Models/Infos/DakotaInvoiceItemInfo.cs @@ -0,0 +1,66 @@ +using Dakota.Models.Schlüssels; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Dakota.Models.Infos +{ + public class DakotaInvoiceItemInfo + { + public string IKAbsender { get; set; } + public string IKEmpfänger { get; set; } + public string IKLeistungserbringer { get; set; } + public string IKKrankenkasse { get; set; } + public string IKKVKarte { get; set; } + public string IKKostentrager { get; set; } + + public SchlüsselVerarbeitungskennzeichen Verarbeitungskennzeichen { get; set; } + + public string VersichtertenVorname { get; set; } + public string VersichtertenNachname { get; set; } + public DateTime VersichtertenGeburtstag { get; set; } + public string VersichtertenStraßeNr { get; set; } + public string VersichtertenPLZ { get; set; } + public string VersichtertenWohnort { get; set; } + public string VersichtertenLanderkennung { get; set; } + + public string VersichtertenNummer { get; set; } + public string Versichertenstatus { get; set; } + + public SchlüsselBeleginformation Beleginformation { get; set; } + public string Belegnummer { get; set; } + + public string EinzelfallIdentifikationsnummer { get; set; } + public SchlüsselAbrechnungscodes EinzelfallAbrechnungscode { get; set; } + public SchlüsselTarifkennzeichen EinzelfallTarifkennzeichen => new SchlüsselTarifkennzeichen(EinzelfallTarifkennzeichenBereich, EinzelfallTarifkennzeichenSondertarif); + public SchlüsselTarifkennzeichenBereich EinzelfallTarifkennzeichenBereich { get; set; } + public SchlüsselTarifkennzeichenSondertarif EinzelfallTarifkennzeichenSondertarif { get; set; } + + public SchlüsselPos Abrechnungsposition => new SchlüsselPos(AbrechnungspositionArtDerEinrichtung, AbrechnungspositionBehandlungsart, AbrechnungspositionVergütungsart); + public SchlüsselPosArtDerEinrichtung AbrechnungspositionArtDerEinrichtung { get; set; } + public SchlüsselPosBehandlungsart AbrechnungspositionBehandlungsart { get; set; } + public SchlüsselPosVergütungsart AbrechnungspositionVergütungsart { get; set; } + + public decimal EinzelfallAnzahlMenge { get; set; } + public decimal EinzelfallEinzelbetragAbrechnungsposition { get; set; } + public DateTime EinzelfallDatumDerLeistungserbringung { get; set; } + public decimal EinzelfallBetragZuzahlung { get; set; } + + public decimal EinzelfallGefahreneKilometer { get; set; } + public DateTime EinzelfallUhrzeit { get; set; } + public DateTime EinzelfallUhrzeitBis { get; set; } + public int EinzelfallDauer { get; set; } + public DateTime EinzelfallVersorgungszeitraum { get; set; } + public DateTime EinzelfallVersorgungszeitraumBis { get; set; } + + public string Text { get; set; } + + public decimal GesamtbetragBrutto { get; set; } + public decimal GesamtbetragGesetzlicheZuzahlung { get; set; } + public decimal GesamtbetragProzentualeZuzahlung { get; set; } + public decimal PauschalerZuzahlungsbetrag { get; set; } + public decimal GesamtbetragEigenanteil { get; set; } + } +} diff --git a/Dakota/Models/Nachrichten/Nachricht.cs b/Dakota/Models/Nachrichten/Nachricht.cs index c7f4ce221..affc9736e 100644 --- a/Dakota/Models/Nachrichten/Nachricht.cs +++ b/Dakota/Models/Nachrichten/Nachricht.cs @@ -10,7 +10,7 @@ namespace Dakota.Models.Nachrichten internal abstract class Nachricht : IRow { public abstract List GetSegments(); - + public int GetSegmentLength() { return GetSegments().Count; diff --git a/Dakota/Models/Nachrichten/NachrichtSLGA.cs b/Dakota/Models/Nachrichten/NachrichtSLGA.cs index caddada42..8cabba567 100644 --- a/Dakota/Models/Nachrichten/NachrichtSLGA.cs +++ b/Dakota/Models/Nachrichten/NachrichtSLGA.cs @@ -1,60 +1,60 @@ -using Dakota.Models.Segmente; -using Dakota.Models.Segmente.SLGA; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; +//using Dakota.Models.Segmente; +//using Dakota.Models.Segmente.SLGA; +//using System; +//using System.Collections.Generic; +//using System.Linq; +//using System.Text; +//using System.Threading.Tasks; -namespace Dakota.Models.Nachrichten -{ - /// - /// Gesamtaufstellung der - /// Abrechnung(Rechnung) - /// - internal class NachrichtSLGA : Nachricht - { - /// - /// Das Segment enthält Informationen über die zu verarbeitende Rechnung, den Rechnungssteller - /// (Leistungserbringer oder Abrechnungsstelle) und das IK der Krankenkasse von - /// der Krankenversichertenkarte bzw.von der ärztlichen Verordnung - /// - public SegmentSLGAFKT SegmentFKT { get; set; } - /// - /// Das Segment enthält die Rechnungsinformationen, wie Rechnungsnummer und Rechnungsdatum. - /// - public SegmentSLGAREC SegmentREC { get; set; } - /// - /// Das Segment enthält Informationen zur Umsatzsteuer. - /// - public SegmentSLGAUST SegmentUST { get; set; } - /// - /// Das Segment enthält Informationen, ob Skonto gewährt wird - /// (Skonto in Prozent, Zahlungsziel). - /// - public SegmentSLGASKO SegmentSKO { get; set; } - /// - /// Das Segment enthält Rechnungssummen (Bruttobetrag, Zuzahlungsbetrag, Nettobetrag je Status). - /// - public SegmentSLGAGES SegmentGES { get; set; } - /// - /// Das Segment enthält den Namen und die Firmenbezeichnung des Leistungserbringers - /// - public SegmentSLGANAM SegmentNAM { get; set; } +//namespace Dakota.Models.Nachrichten +//{ +// /// +// /// Gesamtaufstellung der +// /// Abrechnung(Rechnung) +// /// +// internal class NachrichtSLGA : Nachricht +// { +// /// +// /// Das Segment enthält Informationen über die zu verarbeitende Rechnung, den Rechnungssteller +// /// (Leistungserbringer oder Abrechnungsstelle) und das IK der Krankenkasse von +// /// der Krankenversichertenkarte bzw.von der ärztlichen Verordnung +// /// +// public SegmentSLGAFKT SegmentFKT { get; set; } +// /// +// /// Das Segment enthält die Rechnungsinformationen, wie Rechnungsnummer und Rechnungsdatum. +// /// +// public SegmentSLGAREC SegmentREC { get; set; } +// /// +// /// Das Segment enthält Informationen zur Umsatzsteuer. +// /// +// public SegmentSLGAUST SegmentUST { get; set; } +// /// +// /// Das Segment enthält Informationen, ob Skonto gewährt wird +// /// (Skonto in Prozent, Zahlungsziel). +// /// +// public SegmentSLGASKO SegmentSKO { get; set; } +// /// +// /// Das Segment enthält Rechnungssummen (Bruttobetrag, Zuzahlungsbetrag, Nettobetrag je Status). +// /// +// public SegmentSLGAGES SegmentGES { get; set; } +// /// +// /// Das Segment enthält den Namen und die Firmenbezeichnung des Leistungserbringers +// /// +// public SegmentSLGANAM SegmentNAM { get; set; } - public NachrichtSLGA() - { - SegmentFKT = new SegmentSLGAFKT(); - SegmentREC = new SegmentSLGAREC(); - SegmentUST = new SegmentSLGAUST(); - SegmentSKO = new SegmentSLGASKO(); - SegmentGES = new SegmentSLGAGES(); - SegmentNAM = new SegmentSLGANAM(); - } +// public NachrichtSLGA() +// { +// SegmentFKT = new SegmentSLGAFKT(); +// SegmentREC = new SegmentSLGAREC(); +// SegmentUST = new SegmentSLGAUST(); +// SegmentSKO = new SegmentSLGASKO(); +// SegmentGES = new SegmentSLGAGES(); +// SegmentNAM = new SegmentSLGANAM(); +// } - public override List GetSegments() - { - return new List() { SegmentFKT, SegmentREC, SegmentUST, SegmentSKO, SegmentGES, SegmentNAM }; - } - } -} +// public override List GetSegments() +// { +// return new List() { SegmentFKT, SegmentREC, SegmentUST, SegmentSKO, SegmentGES, SegmentNAM }; +// } +// } +//} diff --git a/Dakota/Models/Nachrichten/NachrichtSLGA2.cs b/Dakota/Models/Nachrichten/NachrichtSLGA2.cs index 0002cdb78..b180892b1 100644 --- a/Dakota/Models/Nachrichten/NachrichtSLGA2.cs +++ b/Dakota/Models/Nachrichten/NachrichtSLGA2.cs @@ -1,54 +1,54 @@ -using Dakota.Models.Segmente; -using Dakota.Models.Segmente.SLGA; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; +//using Dakota.Models.Segmente; +//using Dakota.Models.Segmente.SLGA; +//using System; +//using System.Collections.Generic; +//using System.Linq; +//using System.Text; +//using System.Threading.Tasks; -namespace Dakota.Models.Nachrichten -{ - /// - /// Gesamtaufstellung der - /// Abrechnung(Rechnung) - /// - internal class NachrichtSLGA2 : Nachricht - { - /// - /// Das Segment enthält Informationen über die zu verarbeitende Rechnung, den Rechnungssteller - /// (Leistungserbringer oder Abrechnungsstelle) und das IK der Krankenkasse von - /// der Krankenversichertenkarte bzw.von der ärztlichen Verordnung - /// - public SegmentSLGAFKT SegmentFKT { get; set; } - /// - /// Das Segment enthält die Rechnungsinformationen, wie Rechnungsnummer und Rechnungsdatum. - /// - public SegmentSLGAREC SegmentREC { get; set; } - /// - /// Das Segment enthält Informationen zur Umsatzsteuer. - /// - public SegmentSLGAGES SegmentGES { get; set; } - /// - /// Das Segment enthält den Namen und die Firmenbezeichnung des Leistungserbringers - /// - public SegmentSLGAGES SegmentGES00 { get; set; } - /// - /// Das Segment enthält den Namen und die Firmenbezeichnung des Leistungserbringers - /// - public SegmentSLGANAM SegmentNAM { get; set; } +//namespace Dakota.Models.Nachrichten +//{ +// /// +// /// Gesamtaufstellung der +// /// Abrechnung(Rechnung) +// /// +// internal class NachrichtSLGA2 : Nachricht +// { +// /// +// /// Das Segment enthält Informationen über die zu verarbeitende Rechnung, den Rechnungssteller +// /// (Leistungserbringer oder Abrechnungsstelle) und das IK der Krankenkasse von +// /// der Krankenversichertenkarte bzw.von der ärztlichen Verordnung +// /// +// public SegmentSLGAFKT SegmentFKT { get; set; } +// /// +// /// Das Segment enthält die Rechnungsinformationen, wie Rechnungsnummer und Rechnungsdatum. +// /// +// public SegmentSLGAREC SegmentREC { get; set; } +// /// +// /// Das Segment enthält Informationen zur Umsatzsteuer. +// /// +// public SegmentSLGAGES SegmentGES { get; set; } +// /// +// /// Das Segment enthält den Namen und die Firmenbezeichnung des Leistungserbringers +// /// +// public SegmentSLGAGES SegmentGES00 { get; set; } +// /// +// /// Das Segment enthält den Namen und die Firmenbezeichnung des Leistungserbringers +// /// +// public SegmentSLGANAM SegmentNAM { get; set; } - public NachrichtSLGA2() - { - SegmentFKT = new SegmentSLGAFKT(); - SegmentREC = new SegmentSLGAREC(); - SegmentGES = new SegmentSLGAGES(); - SegmentGES00 = new SegmentSLGAGES(); - SegmentNAM = new SegmentSLGANAM(); - } +// public NachrichtSLGA2() +// { +// SegmentFKT = new SegmentSLGAFKT(); +// SegmentREC = new SegmentSLGAREC(); +// SegmentGES = new SegmentSLGAGES(); +// SegmentGES00 = new SegmentSLGAGES(); +// SegmentNAM = new SegmentSLGANAM(); +// } - public override List GetSegments() - { - return new List() { SegmentFKT, SegmentREC, SegmentGES00, SegmentGES, SegmentNAM }; - } - } -} +// public override List GetSegments() +// { +// return new List() { SegmentFKT, SegmentREC, SegmentGES00, SegmentGES, SegmentNAM }; +// } +// } +//} diff --git a/Dakota/Models/Nachrichten/NachrichtSLGA3.cs b/Dakota/Models/Nachrichten/NachrichtSLGA3.cs index a72c9327d..6db0b1608 100644 --- a/Dakota/Models/Nachrichten/NachrichtSLGA3.cs +++ b/Dakota/Models/Nachrichten/NachrichtSLGA3.cs @@ -36,6 +36,10 @@ namespace Dakota.Models.Nachrichten /// /// Das Segment enthält Rechnungssummen (Bruttobetrag, Zuzahlungsbetrag, Nettobetrag je Status). /// + public SegmentSLGAGES SegmentGES00 { get; set; } + /// + /// Das Segment enthält Rechnungssummen (Bruttobetrag, Zuzahlungsbetrag, Nettobetrag je Status). + /// public SegmentSLGAGES SegmentGES { get; set; } /// /// Das Segment enthält den Namen und die Firmenbezeichnung des Leistungserbringers @@ -48,13 +52,14 @@ namespace Dakota.Models.Nachrichten SegmentREC = new SegmentSLGAREC(); SegmentUST = new SegmentSLGAUST(); SegmentSKO = new SegmentSLGASKO(); + SegmentGES00 = new SegmentSLGAGES(); SegmentGES = new SegmentSLGAGES(); SegmentNAM = new SegmentSLGANAM(); } public override List GetSegments() { - return new List() { SegmentFKT, SegmentREC, SegmentUST, SegmentSKO, SegmentGES, SegmentNAM }; + return new List() { SegmentFKT, SegmentREC, SegmentUST, SegmentSKO, SegmentGES00, SegmentGES, SegmentNAM }; } } } diff --git a/Dakota/Models/Nachrichten/NachrichtSLLA.cs b/Dakota/Models/Nachrichten/NachrichtSLLA.cs index 48eba537a..b78aaf5a2 100644 --- a/Dakota/Models/Nachrichten/NachrichtSLLA.cs +++ b/Dakota/Models/Nachrichten/NachrichtSLLA.cs @@ -1,134 +1,134 @@ -using Dakota.Models.Segmente; -using Dakota.Models.Segmente.SLLA; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; +//using Dakota.Models.Segmente; +//using Dakota.Models.Segmente.SLLA; +//using System; +//using System.Collections.Generic; +//using System.Linq; +//using System.Text; +//using System.Threading.Tasks; -namespace Dakota.Models.Nachrichten -{ - /// - /// Leistungserbringer - /// - internal class NachrichtSLLA : Nachricht - { - /// - /// Das Segment enthält Informationen über den tatsächlichen - /// Leistungserbringer und das IK der Krankenkasse von der - /// Krankenversichertenkarte bzw.der ärztlichen Verordnung bezogen auf die folgenden Abrechnungsfälle.Es kommt je Nachricht nur einmal vor. - /// - public SegmentSLLAFKT SegmentSLLAFKT { get; private set; } - /// - /// Das Segment enthält die Rechnungsinformationen, wie Rechnungsnummer und Rechnungsdatum - /// - public SegmentSLLAREC SegmentSLLAREC { get; private set; } - /// - /// Das Segment enthält die Versichertendaten eines Abrechnungsfalles (Verordnung), und gilt gleichzeitig als BeginnSegment für einen Abrechnungsfall. Jeder Abrechnungsfall ist - /// mit einer eindeutigen Belegnummer zu kennzeichnen, die der - /// auf der Verordnung zu übertragenen Belegnummer(s. § 4 des - /// Richtlinientextes) entsprechen muss. - /// - public SegmentSLLAINV SegmentSLLAINV { get; private set; } - /// - /// Dieses Segment enthält bei Korrekturlieferungen die ursprünglichen Rechnungsinformationen. Es wird zunächst nur - /// in Abhängigkeit für die Verarbeitungskennzeichen - /// '02' Nachforderung, - /// ‚03‘ Zuzahlungsforderung und - /// ‚04‘ Korrekturrechnung - /// (Schlüsselverzeichnis Anlage 3, Kapitel 8.1.7) geliefert - /// - public SegmentSLLAURI SegmentSLLAURI { get; private set; } - /// - /// Das Segment enthält den Namen und die Adressdaten des - /// Versicherten. - /// - public SegmentSLLANAD SegmentSLLANAD { get; private set; } - /// - /// Das Segment enthält den Imagenamen bei Übermittlung von - /// Imagearchiven durch den Absender. - /// - public SegmentSLLAIMG SegmentSLLAIMG { get; private set; } +//namespace Dakota.Models.Nachrichten +//{ +// /// +// /// Leistungserbringer +// /// +// internal class NachrichtSLLA : Nachricht +// { +// /// +// /// Das Segment enthält Informationen über den tatsächlichen +// /// Leistungserbringer und das IK der Krankenkasse von der +// /// Krankenversichertenkarte bzw.der ärztlichen Verordnung bezogen auf die folgenden Abrechnungsfälle.Es kommt je Nachricht nur einmal vor. +// /// +// public SegmentSLLAFKT SegmentSLLAFKT { get; private set; } +// /// +// /// Das Segment enthält die Rechnungsinformationen, wie Rechnungsnummer und Rechnungsdatum +// /// +// public SegmentSLLAREC SegmentSLLAREC { get; private set; } +// /// +// /// Das Segment enthält die Versichertendaten eines Abrechnungsfalles (Verordnung), und gilt gleichzeitig als BeginnSegment für einen Abrechnungsfall. Jeder Abrechnungsfall ist +// /// mit einer eindeutigen Belegnummer zu kennzeichnen, die der +// /// auf der Verordnung zu übertragenen Belegnummer(s. § 4 des +// /// Richtlinientextes) entsprechen muss. +// /// +// public SegmentSLLAINV SegmentSLLAINV { get; private set; } +// /// +// /// Dieses Segment enthält bei Korrekturlieferungen die ursprünglichen Rechnungsinformationen. Es wird zunächst nur +// /// in Abhängigkeit für die Verarbeitungskennzeichen +// /// '02' Nachforderung, +// /// ‚03‘ Zuzahlungsforderung und +// /// ‚04‘ Korrekturrechnung +// /// (Schlüsselverzeichnis Anlage 3, Kapitel 8.1.7) geliefert +// /// +// public SegmentSLLAURI SegmentSLLAURI { get; private set; } +// /// +// /// Das Segment enthält den Namen und die Adressdaten des +// /// Versicherten. +// /// +// public SegmentSLLANAD SegmentSLLANAD { get; private set; } +// /// +// /// Das Segment enthält den Imagenamen bei Übermittlung von +// /// Imagearchiven durch den Absender. +// /// +// public SegmentSLLAIMG SegmentSLLAIMG { get; private set; } - /// - /// Das Segment dient zur Abrechnung der einzelnen Positionen, - /// die für den abzurechnenden Fall angefallen sind.Es ist so oft - /// wiederholbar, wie Abrechnungspositionen vorkommen. - /// - public SegmentSLLAENF SegmentSLLAENF { get; private set; } - /// - /// Mit diesem Segment können weitere Informationen, bezogen - /// auf die abzurechnende Position übermittelt werden.Hier können u.a.die Uhrzeit und die gefahrenen Kilometer angegeben - /// werden. Es kann je abzurechnende Position einmal vorkommen - /// - public SegmentSLLASUT SegmentSLLASUT { get; private set; } - /// - /// Mit diesem Segment kann zu jeder abzurechnenden Position - /// ein Text(z.B.als Begründung) hinterlegt werden.Es kann je - /// abzurechnende Position einmal vorkommen. - /// - public SegmentSLLATXT SegmentSLLATXT { get; private set; } - /// - /// Mit diesem Segment kann zu jeder abzurechnenden Position - /// Mehrwertsteuer angegeben werden.Benutzt werden soll das - /// Segment nur dann, wenn dem in ENF genannten Einzelbetrag - /// die Mehrwertsteuer hinzuzurechnen ist. - /// - public SegmentSLLAMWS SegmentSLLAMWS { get; private set; } - /// - /// Das Segment enthält Angaben über die Zuzahlung. Das Segment ist bis auf weiteres nicht zu übermitteln. Das Segment ist - /// für spätere Ausprägungen reserviert. - /// - public SegmentSLLAZUZ SegmentSLLAZUZ { get; private set; } - /// - /// Das Segment enthält allgemeine Angaben zum Abrechnungsfall (Verordnung) und ist zu übermitteln, wenn eine ärztliche - /// Verordnung, ein Reparatur- oder Berechtigungsschein oder - /// Unfall/BVG vorliegt. - /// - public SegmentSLLAZUV SegmentSLLAZUV { get; private set; } - /// - /// Das Segment dient zur Angabe der Diagnose und ist so oft - /// wiederholbar, wie Diagnosen vorliegen - /// - public SegmentSLLADIA SegmentSLLADIA { get; private set; } - /// - /// Das Segment enthält Angaben über die von der Krankenkasse - /// ausgesprochene Kostenzusage/Genehmigung und ist nur zu - /// übermitteln, wenn diese vorliegt. - /// - public SegmentSLLASKZ SegmentSLLASKZ { get; private set; } - /// - /// Das Segment enthält Angaben über den abzurechnenden Gesamtbruttobetrag eines Abrechnungsfalles (Verordnung) - /// (Summe aller ENF-Beträge ggf.zuzüglich der Mehrwertsteuer) - /// - public SegmentSLLABES SegmentSLLABES { get; private set; } +// /// +// /// Das Segment dient zur Abrechnung der einzelnen Positionen, +// /// die für den abzurechnenden Fall angefallen sind.Es ist so oft +// /// wiederholbar, wie Abrechnungspositionen vorkommen. +// /// +// public SegmentSLLAENF SegmentSLLAENF { get; private set; } +// /// +// /// Mit diesem Segment können weitere Informationen, bezogen +// /// auf die abzurechnende Position übermittelt werden.Hier können u.a.die Uhrzeit und die gefahrenen Kilometer angegeben +// /// werden. Es kann je abzurechnende Position einmal vorkommen +// /// +// public SegmentSLLASUT SegmentSLLASUT { get; private set; } +// /// +// /// Mit diesem Segment kann zu jeder abzurechnenden Position +// /// ein Text(z.B.als Begründung) hinterlegt werden.Es kann je +// /// abzurechnende Position einmal vorkommen. +// /// +// public SegmentSLLATXT SegmentSLLATXT { get; private set; } +// /// +// /// Mit diesem Segment kann zu jeder abzurechnenden Position +// /// Mehrwertsteuer angegeben werden.Benutzt werden soll das +// /// Segment nur dann, wenn dem in ENF genannten Einzelbetrag +// /// die Mehrwertsteuer hinzuzurechnen ist. +// /// +// public SegmentSLLAMWS SegmentSLLAMWS { get; private set; } +// /// +// /// Das Segment enthält Angaben über die Zuzahlung. Das Segment ist bis auf weiteres nicht zu übermitteln. Das Segment ist +// /// für spätere Ausprägungen reserviert. +// /// +// public SegmentSLLAZUZ SegmentSLLAZUZ { get; private set; } +// /// +// /// Das Segment enthält allgemeine Angaben zum Abrechnungsfall (Verordnung) und ist zu übermitteln, wenn eine ärztliche +// /// Verordnung, ein Reparatur- oder Berechtigungsschein oder +// /// Unfall/BVG vorliegt. +// /// +// public SegmentSLLAZUV SegmentSLLAZUV { get; private set; } +// /// +// /// Das Segment dient zur Angabe der Diagnose und ist so oft +// /// wiederholbar, wie Diagnosen vorliegen +// /// +// public SegmentSLLADIA SegmentSLLADIA { get; private set; } +// /// +// /// Das Segment enthält Angaben über die von der Krankenkasse +// /// ausgesprochene Kostenzusage/Genehmigung und ist nur zu +// /// übermitteln, wenn diese vorliegt. +// /// +// public SegmentSLLASKZ SegmentSLLASKZ { get; private set; } +// /// +// /// Das Segment enthält Angaben über den abzurechnenden Gesamtbruttobetrag eines Abrechnungsfalles (Verordnung) +// /// (Summe aller ENF-Beträge ggf.zuzüglich der Mehrwertsteuer) +// /// +// public SegmentSLLABES SegmentSLLABES { get; private set; } - public NachrichtSLLA() - { - SegmentSLLAFKT = new SegmentSLLAFKT(); - SegmentSLLAREC = new SegmentSLLAREC(); - SegmentSLLAINV = new SegmentSLLAINV(); - SegmentSLLAURI = new SegmentSLLAURI(); - SegmentSLLANAD = new SegmentSLLANAD(); - SegmentSLLAIMG = new SegmentSLLAIMG(); +// public NachrichtSLLA() +// { +// SegmentSLLAFKT = new SegmentSLLAFKT(); +// SegmentSLLAREC = new SegmentSLLAREC(); +// SegmentSLLAINV = new SegmentSLLAINV(); +// SegmentSLLAURI = new SegmentSLLAURI(); +// SegmentSLLANAD = new SegmentSLLANAD(); +// SegmentSLLAIMG = new SegmentSLLAIMG(); - SegmentSLLAENF = new SegmentSLLAENF(); - SegmentSLLASUT = new SegmentSLLASUT(); - SegmentSLLATXT = new SegmentSLLATXT(); - SegmentSLLAMWS = new SegmentSLLAMWS(); - SegmentSLLAZUZ = new SegmentSLLAZUZ(); - SegmentSLLAZUV = new SegmentSLLAZUV(); - SegmentSLLADIA = new SegmentSLLADIA(); - SegmentSLLASKZ = new SegmentSLLASKZ(); - SegmentSLLABES = new SegmentSLLABES(); - } +// SegmentSLLAENF = new SegmentSLLAENF(); +// SegmentSLLASUT = new SegmentSLLASUT(); +// SegmentSLLATXT = new SegmentSLLATXT(); +// SegmentSLLAMWS = new SegmentSLLAMWS(); +// SegmentSLLAZUZ = new SegmentSLLAZUZ(); +// SegmentSLLAZUV = new SegmentSLLAZUV(); +// SegmentSLLADIA = new SegmentSLLADIA(); +// SegmentSLLASKZ = new SegmentSLLASKZ(); +// SegmentSLLABES = new SegmentSLLABES(); +// } - public override List GetSegments() - { - return new List() { SegmentSLLAFKT, SegmentSLLAREC, SegmentSLLAINV, SegmentSLLAURI, SegmentSLLANAD, SegmentSLLAIMG, - SegmentSLLAENF, SegmentSLLASUT, SegmentSLLATXT, SegmentSLLAMWS, - SegmentSLLAZUZ, SegmentSLLAZUV, SegmentSLLADIA, SegmentSLLASKZ, SegmentSLLABES - }; - } - } -} +// public override List GetSegments() +// { +// return new List() { SegmentSLLAFKT, SegmentSLLAREC, SegmentSLLAINV, SegmentSLLAURI, SegmentSLLANAD, SegmentSLLAIMG, +// SegmentSLLAENF, SegmentSLLASUT, SegmentSLLATXT, SegmentSLLAMWS, +// SegmentSLLAZUZ, SegmentSLLAZUV, SegmentSLLADIA, SegmentSLLASKZ, SegmentSLLABES +// }; +// } +// } +//} diff --git a/Dakota/Models/Nachrichten/NachrichtSLLA2.cs b/Dakota/Models/Nachrichten/NachrichtSLLA2.cs index 74001e25e..a0585375f 100644 --- a/Dakota/Models/Nachrichten/NachrichtSLLA2.cs +++ b/Dakota/Models/Nachrichten/NachrichtSLLA2.cs @@ -1,119 +1,119 @@ -using Dakota.Models.Segmente; -using Dakota.Models.Segmente.SLLA; -using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; +//using Dakota.Models.Segmente; +//using Dakota.Models.Segmente.SLLA; +//using System; +//using System.Collections.Generic; +//using System.Linq; +//using System.Text; +//using System.Threading.Tasks; -namespace Dakota.Models.Nachrichten -{ - /// - /// Leistungserbringer - /// - internal class NachrichtSLLA2 : Nachricht - { - /// - /// Das Segment enthält Informationen über den tatsächlichen - /// Leistungserbringer und das IK der Krankenkasse von der - /// Krankenversichertenkarte bzw.der ärztlichen Verordnung bezogen auf die folgenden Abrechnungsfälle.Es kommt je Nachricht nur einmal vor. - /// - public SegmentSLLAFKT SegmentSLLAFKT { get; private set; } - /// - /// Das Segment enthält die Rechnungsinformationen, wie Rechnungsnummer und Rechnungsdatum - /// - public SegmentSLLAREC SegmentSLLAREC { get; private set; } - /// - /// Das Segment enthält die Versichertendaten eines Abrechnungsfalles (Verordnung), und gilt gleichzeitig als BeginnSegment für einen Abrechnungsfall. Jeder Abrechnungsfall ist - /// mit einer eindeutigen Belegnummer zu kennzeichnen, die der - /// auf der Verordnung zu übertragenen Belegnummer(s. § 4 des - /// Richtlinientextes) entsprechen muss. - /// - public SegmentSLLAINV SegmentSLLAINV { get; private set; } - /// - /// Dieses Segment enthält bei Korrekturlieferungen die ursprünglichen Rechnungsinformationen. Es wird zunächst nur - /// in Abhängigkeit für die Verarbeitungskennzeichen - /// '02' Nachforderung, - /// ‚03‘ Zuzahlungsforderung und - /// ‚04‘ Korrekturrechnung - /// (Schlüsselverzeichnis Anlage 3, Kapitel 8.1.7) geliefert - /// - public SegmentSLLAURI SegmentSLLAURI { get; private set; } - /// - /// Das Segment enthält den Namen und die Adressdaten des - /// Versicherten. - /// - public SegmentSLLANAD SegmentSLLANAD { get; private set; } - /// - /// Das Segment enthält den Imagenamen bei Übermittlung von - /// Imagearchiven durch den Absender. - /// - public SegmentSLLAIMG SegmentSLLAIMG { get; private set; } - /// - /// Das Segment dient zur Abrechnung der einzelnen Positionen, - /// die für den abzurechnenden Fall angefallen sind. - /// Es ist so oft - /// wiederholbar, wie Abrechnungspositionen vorkommen. - /// - public List Abrechnungspositions { get; set; } - /// - /// Das Segment enthält Angaben über die Zuzahlung. Das Segment ist bis auf weiteres nicht zu übermitteln. Das Segment ist - /// für spätere Ausprägungen reserviert. - /// - public SegmentSLLAZUV SegmentSLLAZUV { get; private set; } - /// - /// Das Segment dient zur Angabe der Diagnose und ist so oft - /// wiederholbar, wie Diagnosen vorliegen - /// - public SegmentSLLADIA SegmentSLLADIA { get; private set; } - /// - /// Das Segment enthält Angaben über die von der Krankenkasse - /// ausgesprochene Kostenzusage/Genehmigung und ist nur zu - /// übermitteln, wenn diese vorliegt. - /// - public SegmentSLLASKZ SegmentSLLASKZ { get; private set; } - /// - /// Das Segment enthält Angaben über den abzurechnenden Gesamtbruttobetrag eines Abrechnungsfalles (Verordnung) - /// (Summe aller ENF-Beträge ggf.zuzüglich der Mehrwertsteuer) - /// - public SegmentSLLABES SegmentSLLABES { get; private set; } +//namespace Dakota.Models.Nachrichten +//{ +// /// +// /// Leistungserbringer +// /// +// internal class NachrichtSLLA2 : Nachricht +// { +// /// +// /// Das Segment enthält Informationen über den tatsächlichen +// /// Leistungserbringer und das IK der Krankenkasse von der +// /// Krankenversichertenkarte bzw.der ärztlichen Verordnung bezogen auf die folgenden Abrechnungsfälle.Es kommt je Nachricht nur einmal vor. +// /// +// public SegmentSLLAFKT SegmentSLLAFKT { get; private set; } +// /// +// /// Das Segment enthält die Rechnungsinformationen, wie Rechnungsnummer und Rechnungsdatum +// /// +// public SegmentSLLAREC SegmentSLLAREC { get; private set; } +// /// +// /// Das Segment enthält die Versichertendaten eines Abrechnungsfalles (Verordnung), und gilt gleichzeitig als BeginnSegment für einen Abrechnungsfall. Jeder Abrechnungsfall ist +// /// mit einer eindeutigen Belegnummer zu kennzeichnen, die der +// /// auf der Verordnung zu übertragenen Belegnummer(s. § 4 des +// /// Richtlinientextes) entsprechen muss. +// /// +// public SegmentSLLAINV SegmentSLLAINV { get; private set; } +// /// +// /// Dieses Segment enthält bei Korrekturlieferungen die ursprünglichen Rechnungsinformationen. Es wird zunächst nur +// /// in Abhängigkeit für die Verarbeitungskennzeichen +// /// '02' Nachforderung, +// /// ‚03‘ Zuzahlungsforderung und +// /// ‚04‘ Korrekturrechnung +// /// (Schlüsselverzeichnis Anlage 3, Kapitel 8.1.7) geliefert +// /// +// public SegmentSLLAURI SegmentSLLAURI { get; private set; } +// /// +// /// Das Segment enthält den Namen und die Adressdaten des +// /// Versicherten. +// /// +// public SegmentSLLANAD SegmentSLLANAD { get; private set; } +// /// +// /// Das Segment enthält den Imagenamen bei Übermittlung von +// /// Imagearchiven durch den Absender. +// /// +// public SegmentSLLAIMG SegmentSLLAIMG { get; private set; } +// /// +// /// Das Segment dient zur Abrechnung der einzelnen Positionen, +// /// die für den abzurechnenden Fall angefallen sind. +// /// Es ist so oft +// /// wiederholbar, wie Abrechnungspositionen vorkommen. +// /// +// public List Abrechnungspositions { get; set; } +// /// +// /// Das Segment enthält Angaben über die Zuzahlung. Das Segment ist bis auf weiteres nicht zu übermitteln. Das Segment ist +// /// für spätere Ausprägungen reserviert. +// /// +// public SegmentSLLAZUV SegmentSLLAZUV { get; private set; } +// /// +// /// Das Segment dient zur Angabe der Diagnose und ist so oft +// /// wiederholbar, wie Diagnosen vorliegen +// /// +// public SegmentSLLADIA SegmentSLLADIA { get; private set; } +// /// +// /// Das Segment enthält Angaben über die von der Krankenkasse +// /// ausgesprochene Kostenzusage/Genehmigung und ist nur zu +// /// übermitteln, wenn diese vorliegt. +// /// +// public SegmentSLLASKZ SegmentSLLASKZ { get; private set; } +// /// +// /// Das Segment enthält Angaben über den abzurechnenden Gesamtbruttobetrag eines Abrechnungsfalles (Verordnung) +// /// (Summe aller ENF-Beträge ggf.zuzüglich der Mehrwertsteuer) +// /// +// public SegmentSLLABES SegmentSLLABES { get; private set; } - public NachrichtSLLA2() - { - SegmentSLLAFKT = new SegmentSLLAFKT(); - SegmentSLLAREC = new SegmentSLLAREC(); - SegmentSLLAINV = new SegmentSLLAINV(); - SegmentSLLAURI = new SegmentSLLAURI(); - SegmentSLLANAD = new SegmentSLLANAD(); - SegmentSLLAIMG = new SegmentSLLAIMG(); +// public NachrichtSLLA2() +// { +// SegmentSLLAFKT = new SegmentSLLAFKT(); +// SegmentSLLAREC = new SegmentSLLAREC(); +// SegmentSLLAINV = new SegmentSLLAINV(); +// SegmentSLLAURI = new SegmentSLLAURI(); +// SegmentSLLANAD = new SegmentSLLANAD(); +// SegmentSLLAIMG = new SegmentSLLAIMG(); - Abrechnungspositions = new List(); +// Abrechnungspositions = new List(); - SegmentSLLAZUV = new SegmentSLLAZUV(); - SegmentSLLADIA = new SegmentSLLADIA(); - SegmentSLLASKZ = new SegmentSLLASKZ(); - SegmentSLLABES = new SegmentSLLABES(); - } +// SegmentSLLAZUV = new SegmentSLLAZUV(); +// SegmentSLLADIA = new SegmentSLLADIA(); +// SegmentSLLASKZ = new SegmentSLLASKZ(); +// SegmentSLLABES = new SegmentSLLABES(); +// } - public void AddPosition(Abrechnungsposition pos) - { - Abrechnungspositions.Add(pos); - } +// public void AddPosition(Abrechnungsposition pos) +// { +// Abrechnungspositions.Add(pos); +// } - public override List GetSegments() - { - var list = new List() { SegmentSLLAFKT, SegmentSLLAREC, SegmentSLLAINV, SegmentSLLAURI, SegmentSLLANAD, SegmentSLLAIMG }; - var list2 = new List() { SegmentSLLABES }; - //var list2 = new List() { SegmentSLLAZUZ, SegmentSLLAZUV, SegmentSLLADIA, SegmentSLLASKZ, SegmentSLLABES }; +// public override List GetSegments() +// { +// var list = new List() { SegmentSLLAFKT, SegmentSLLAREC, SegmentSLLAINV, SegmentSLLAURI, SegmentSLLANAD, SegmentSLLAIMG }; +// var list2 = new List() { SegmentSLLABES }; +// //var list2 = new List() { SegmentSLLAZUZ, SegmentSLLAZUV, SegmentSLLADIA, SegmentSLLASKZ, SegmentSLLABES }; - foreach (var seg in Abrechnungspositions) - { - list.AddRange(seg.GetSegments()); - } +// foreach (var seg in Abrechnungspositions) +// { +// list.AddRange(seg.GetSegments()); +// } - list.AddRange(list2); +// list.AddRange(list2); - return list; - } - } -} +// return list; +// } +// } +//} diff --git a/Dakota/Models/Nachrichten/NachrichtSLLA3.cs b/Dakota/Models/Nachrichten/NachrichtSLLA3.cs index 6f06f1781..4256c9fbe 100644 --- a/Dakota/Models/Nachrichten/NachrichtSLLA3.cs +++ b/Dakota/Models/Nachrichten/NachrichtSLLA3.cs @@ -1,4 +1,4 @@ -using Dakota.Models.Block; +using Dakota.Models.Blocke; using Dakota.Models.Segmente; using Dakota.Models.Segmente.SLLA; using System; @@ -33,6 +33,8 @@ namespace Dakota.Models.Nachrichten { SegmentSLLAFKT = new SegmentSLLAFKT(); SegmentSLLAREC = new SegmentSLLAREC(); + + Abrechnungsfalle = new List(); } public override List GetSegments() diff --git a/Dakota/Models/Schlüssel/Schlüssel.cs b/Dakota/Models/Schlüssels/Schlüssel.cs similarity index 89% rename from Dakota/Models/Schlüssel/Schlüssel.cs rename to Dakota/Models/Schlüssels/Schlüssel.cs index a6781a8f8..f9ea1e01a 100644 --- a/Dakota/Models/Schlüssel/Schlüssel.cs +++ b/Dakota/Models/Schlüssels/Schlüssel.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace Dakota.Models.Schlüssel +namespace Dakota.Models.Schlüssels { public abstract class Schlüssel { diff --git a/Dakota/Models/Schlüssels/SchlüsselAbrechnungscode.cs b/Dakota/Models/Schlüssels/SchlüsselAbrechnungscode.cs new file mode 100644 index 000000000..8b5805feb --- /dev/null +++ b/Dakota/Models/Schlüssels/SchlüsselAbrechnungscode.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Dakota.Models.Schlüssels +{ + public class SchlüsselAbrechnungscodes : Schlüssel + { + public SchlüsselAbrechnungscodes(string val) : base(val) { } + + public static SchlüsselAbrechnungscodes SozialpädiatrischeZentren => new SchlüsselAbrechnungscodes("68"); + public static SchlüsselAbrechnungscodes SoziotherapeutischerLeistungserbringer => new SchlüsselAbrechnungscodes("69"); + public static SchlüsselAbrechnungscodes SpezialisierteAmbulantePalliativversorgung => new SchlüsselAbrechnungscodes("75"); + } +} diff --git a/Dakota/Models/Schlüssels/SchlüsselBeleginformation.cs b/Dakota/Models/Schlüssels/SchlüsselBeleginformation.cs new file mode 100644 index 000000000..870a98ce8 --- /dev/null +++ b/Dakota/Models/Schlüssels/SchlüsselBeleginformation.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Dakota.Models.Schlüssels +{ + public class SchlüsselBeleginformation : Schlüssel + { + public SchlüsselBeleginformation(string val) : base(val) { } + + public static SchlüsselBeleginformation KeineBeleguebermittlung => new SchlüsselBeleginformation("0"); + public static SchlüsselBeleginformation BelegePerPost => new SchlüsselBeleginformation("1"); + public static SchlüsselBeleginformation BelegeElektronisch => new SchlüsselBeleginformation("2"); + } +} diff --git a/Dakota/Models/Schlüssel/SchlüsselLeistungserbringerSammelgruppenschlussel.cs b/Dakota/Models/Schlüssels/SchlüsselLeistungserbringerSammelgruppenschlussel.cs similarity index 98% rename from Dakota/Models/Schlüssel/SchlüsselLeistungserbringerSammelgruppenschlussel.cs rename to Dakota/Models/Schlüssels/SchlüsselLeistungserbringerSammelgruppenschlussel.cs index 62e48d4a3..bafe90fea 100644 --- a/Dakota/Models/Schlüssel/SchlüsselLeistungserbringerSammelgruppenschlussel.cs +++ b/Dakota/Models/Schlüssels/SchlüsselLeistungserbringerSammelgruppenschlussel.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace Dakota.Models.Schlüssel +namespace Dakota.Models.Schlüssels { public class SchlüsselLeistungserbringerSammelgruppenschlussel : Schlüssel { diff --git a/Dakota/Models/Schlüssels/SchlüsselPos.cs b/Dakota/Models/Schlüssels/SchlüsselPos.cs new file mode 100644 index 000000000..ffcac19c0 --- /dev/null +++ b/Dakota/Models/Schlüssels/SchlüsselPos.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Dakota.Models.Schlüssels +{ + public class SchlüsselPos : Schlüssel + { + public SchlüsselPos(SchlüsselPosArtDerEinrichtung s1, SchlüsselPosBehandlungsart s2, SchlüsselPosVergütungsart s3) : base(s1.Value + s2.Value + s3.Value) { } + } +} diff --git a/Dakota/Models/Schlüssels/SchlüsselPosArtDerEinrichtung.cs b/Dakota/Models/Schlüssels/SchlüsselPosArtDerEinrichtung.cs new file mode 100644 index 000000000..e89af9c4e --- /dev/null +++ b/Dakota/Models/Schlüssels/SchlüsselPosArtDerEinrichtung.cs @@ -0,0 +1,32 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Dakota.Models.Schlüssels +{ + public class SchlüsselPosArtDerEinrichtung : Schlüssel + { + public SchlüsselPosArtDerEinrichtung(string val) : base(val) { } + + public static SchlüsselPosArtDerEinrichtung SozialpädiatrischesZentrum => new SchlüsselPosArtDerEinrichtung("01"); + public static SchlüsselPosArtDerEinrichtung Frühfördereinrichtung => new SchlüsselPosArtDerEinrichtung("02"); + public static SchlüsselPosArtDerEinrichtung integrativerKindergarten => new SchlüsselPosArtDerEinrichtung("03"); + public static SchlüsselPosArtDerEinrichtung Tagesstätte => new SchlüsselPosArtDerEinrichtung("04"); + public static SchlüsselPosArtDerEinrichtung AmbulanteIntensivförderungseinrichtung => new SchlüsselPosArtDerEinrichtung("05"); + public static SchlüsselPosArtDerEinrichtung WohnheimWerkstattFörderstätte => new SchlüsselPosArtDerEinrichtung("06"); + public static SchlüsselPosArtDerEinrichtung TagesstättePsychischKranke => new SchlüsselPosArtDerEinrichtung("07"); + public static SchlüsselPosArtDerEinrichtung Sonderkindergarten => new SchlüsselPosArtDerEinrichtung("08"); + public static SchlüsselPosArtDerEinrichtung Sprachheilambulanz => new SchlüsselPosArtDerEinrichtung("09"); + public static SchlüsselPosArtDerEinrichtung Institutsambulanz => new SchlüsselPosArtDerEinrichtung("10"); + public static SchlüsselPosArtDerEinrichtung Gebärdendolmetscher => new SchlüsselPosArtDerEinrichtung("11"); + public static SchlüsselPosArtDerEinrichtung Hochschulambulanz => new SchlüsselPosArtDerEinrichtung("12"); + public static SchlüsselPosArtDerEinrichtung PsychiatrischeHochschulambulanz => new SchlüsselPosArtDerEinrichtung("13"); + public static SchlüsselPosArtDerEinrichtung PsychiatrischeInstitutsambulanz => new SchlüsselPosArtDerEinrichtung("14"); + public static SchlüsselPosArtDerEinrichtung SoziotherapeutischerLeistungserbringer => new SchlüsselPosArtDerEinrichtung("20"); + public static SchlüsselPosArtDerEinrichtung VollstationärePflegeeinrichtung => new SchlüsselPosArtDerEinrichtung("30"); + public static SchlüsselPosArtDerEinrichtung EinrichtungEingliederungshilfe => new SchlüsselPosArtDerEinrichtung("31"); + public static SchlüsselPosArtDerEinrichtung SonstigeEinrichtung => new SchlüsselPosArtDerEinrichtung("99"); + } +} diff --git a/Dakota/Models/Schlüssels/SchlüsselPosBehandlungsart.cs b/Dakota/Models/Schlüssels/SchlüsselPosBehandlungsart.cs new file mode 100644 index 000000000..a2353aed5 --- /dev/null +++ b/Dakota/Models/Schlüssels/SchlüsselPosBehandlungsart.cs @@ -0,0 +1,17 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Dakota.Models.Schlüssels +{ + public class SchlüsselPosBehandlungsart : Schlüssel + { + public SchlüsselPosBehandlungsart(string val) : base(val) { } + + public static SchlüsselPosBehandlungsart Einzelbehandlung => new SchlüsselPosBehandlungsart("01"); + public static SchlüsselPosBehandlungsart Gruppenbehandlung => new SchlüsselPosBehandlungsart("02"); + public static SchlüsselPosBehandlungsart Sonstiges => new SchlüsselPosBehandlungsart("09"); + } +} diff --git a/Dakota/Models/Schlüssels/SchlüsselPosVergütungsart.cs b/Dakota/Models/Schlüssels/SchlüsselPosVergütungsart.cs new file mode 100644 index 000000000..94d992b50 --- /dev/null +++ b/Dakota/Models/Schlüssels/SchlüsselPosVergütungsart.cs @@ -0,0 +1,166 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Dakota.Models.Schlüssels +{ + public class SchlüsselPosVergütungsart : Schlüssel + { + public string FullText { get; set; } + + public SchlüsselPosVergütungsart(string val, string full) : base(val) + { + FullText = full; + } + + public static SchlüsselPosVergütungsart Pauschale1 => new SchlüsselPosVergütungsart("001", "Pauschale 1"); + public static SchlüsselPosVergütungsart Pauschale2 => new SchlüsselPosVergütungsart("002", "Pauschale 2"); + public static SchlüsselPosVergütungsart Pauschale3 => new SchlüsselPosVergütungsart("003", "Pauschale 3"); + public static SchlüsselPosVergütungsart Pauschale4 => new SchlüsselPosVergütungsart("004", "Pauschale 4"); + public static SchlüsselPosVergütungsart Pauschale5 => new SchlüsselPosVergütungsart("005", "Pauschale 5"); + public static SchlüsselPosVergütungsart Pauschale6 => new SchlüsselPosVergütungsart("006", "Pauschale 6"); + public static SchlüsselPosVergütungsart Pauschale7 => new SchlüsselPosVergütungsart("007", "Pauschale 7"); + public static SchlüsselPosVergütungsart Pauschale8 => new SchlüsselPosVergütungsart("008", "Pauschale 8"); + public static SchlüsselPosVergütungsart Pauschale9 => new SchlüsselPosVergütungsart("009", "Pauschale 9"); + public static SchlüsselPosVergütungsart Pauschale10 => new SchlüsselPosVergütungsart("010", "Pauschale 10"); + public static SchlüsselPosVergütungsart Pauschale11 => new SchlüsselPosVergütungsart("011", "Pauschale 11"); + public static SchlüsselPosVergütungsart Pauschale12 => new SchlüsselPosVergütungsart("012", "Pauschale 12"); + public static SchlüsselPosVergütungsart Pauschale13 => new SchlüsselPosVergütungsart("013", "Pauschale 13"); + public static SchlüsselPosVergütungsart Pauschale14 => new SchlüsselPosVergütungsart("014", "Pauschale 14"); + public static SchlüsselPosVergütungsart Pauschale15 => new SchlüsselPosVergütungsart("015", "Pauschale 15"); + public static SchlüsselPosVergütungsart Pauschale16 => new SchlüsselPosVergütungsart("016", "Pauschale 16"); + public static SchlüsselPosVergütungsart Pauschale17 => new SchlüsselPosVergütungsart("017", "Pauschale 17"); + public static SchlüsselPosVergütungsart Pauschale18 => new SchlüsselPosVergütungsart("018", "Pauschale 18"); + public static SchlüsselPosVergütungsart Pauschale19 => new SchlüsselPosVergütungsart("019", "Pauschale 19"); + public static SchlüsselPosVergütungsart Pauschale20 => new SchlüsselPosVergütungsart("020", "Pauschale 20"); + public static SchlüsselPosVergütungsart KrankenhilfepauschaleHeilmittel => new SchlüsselPosVergütungsart("021", "Krankenhilfepauschale Heilmittel"); + public static SchlüsselPosVergütungsart KrankenhilfepauschaleArzneimittel => new SchlüsselPosVergütungsart("022", "Krankenhilfepauschale Arzneimittel"); + + public static SchlüsselPosVergütungsart GrundpauschaleJeNeuZuTherapierendenPatienten => new SchlüsselPosVergütungsart("600", "Grundpauschale je neu zu therapierenden Patienten"); + public static SchlüsselPosVergütungsart GrundpauschaleNach60Therapiestunde => new SchlüsselPosVergütungsart("601", "Grundpauschale nach 60. Therapiestunde"); + public static SchlüsselPosVergütungsart GrundpauschaleNach90Therapiestunde => new SchlüsselPosVergütungsart("602", "Grundpauschale nach 90. Therapiestunde"); + public static SchlüsselPosVergütungsart ErstellungEinesBetreuungsplanesUndAbstimmungMitArzt => new SchlüsselPosVergütungsart("603", "Erstellung eines Betreuungsplanes und Abstimmung mit Arzt (60 Minuten)"); + public static SchlüsselPosVergütungsart ProbestundeOhneVerordnung60Minuten => new SchlüsselPosVergütungsart("604", "Probestunde ohne Verordnung 60 Minuten"); + public static SchlüsselPosVergütungsart ProbestundeOhneVerordnung10Minuten => new SchlüsselPosVergütungsart("605", "Probestunde ohne Verordnung 10 Minuten"); + public static SchlüsselPosVergütungsart ProbestundeOhneVerordnung1Minute => new SchlüsselPosVergütungsart("606", "Probestunde ohne Verordnung 1 Minute"); + public static SchlüsselPosVergütungsart ProbestundeMitVerordnung60Minuten => new SchlüsselPosVergütungsart("607", "Probestunde mit Verordnung 60 Minuten"); + public static SchlüsselPosVergütungsart ProbestundeMitVerordnung10Minuten => new SchlüsselPosVergütungsart("608", "Probestunde mit Verordnung 10 Minuten"); + public static SchlüsselPosVergütungsart ProbestundeMitVerordnung1Minute => new SchlüsselPosVergütungsart("609", "Probestunde mit Verordnung 1 Minute"); + public static SchlüsselPosVergütungsart Einzelbehandlung60Minuten => new SchlüsselPosVergütungsart("610", "Einzelbehandlung 60 Minuten"); + public static SchlüsselPosVergütungsart Einzelbehandlung45Minuten => new SchlüsselPosVergütungsart("611", "Einzelbehandlung 45 Minuten"); + public static SchlüsselPosVergütungsart Einzelbehandlung30Minuten => new SchlüsselPosVergütungsart("612", "Einzelbehandlung 30 Minuten"); + public static SchlüsselPosVergütungsart Einzelbehandlung10Minuten => new SchlüsselPosVergütungsart("613", "Einzelbehandlung 10 Minuten"); + public static SchlüsselPosVergütungsart Einzelbehandlung1Minute => new SchlüsselPosVergütungsart("614", "Einzelbehandlung 1 Minute"); + public static SchlüsselPosVergütungsart EinzelbehandlungPerVideotelefonie60Minuten => new SchlüsselPosVergütungsart("615", "Einzelbehandlung per Videotelefonie - 60 Minuten"); + public static SchlüsselPosVergütungsart EinzelbehandlungPerVideotelefonie30Minuten => new SchlüsselPosVergütungsart("616", "Einzelbehandlung per Videotelefonie - 30 Minuten"); + public static SchlüsselPosVergütungsart EinzelbehandlungPerTelefonie60Minuten => new SchlüsselPosVergütungsart("617", "Einzelbehandlung per Telefonie - 60 Minuten"); + public static SchlüsselPosVergütungsart EinzelbehandlungPerTelefonie30Minuten => new SchlüsselPosVergütungsart("618", "Einzelbehandlung per Telefonie - 30 Minuten"); + public static SchlüsselPosVergütungsart TherapieeinheitBeiÜberweisungZurIndikationsstellung60Minuten => new SchlüsselPosVergütungsart("620", "Therapieeinheit bei Überweisung zur Indikationsstellung 60 Minuten"); + public static SchlüsselPosVergütungsart TherapieeinheitBeiÜberweisungZurIndikationsstellung10Minuten => new SchlüsselPosVergütungsart("621", "Therapieeinheit bei Überweisung zur Indikationsstellung 10 Minuten"); + public static SchlüsselPosVergütungsart TherapieeinheitBeiÜberweisungZurIndikationsstellung1Minute => new SchlüsselPosVergütungsart("622", "Therapieeinheit bei Überweisung zur Indikationsstellung 1 Minute"); + + public static SchlüsselPosVergütungsart GrundpauschaleJeNeuZuTherapierendenPatientenGruppe => new SchlüsselPosVergütungsart("640", "Grundpauschale je neu zu therapierenden Patienten"); + public static SchlüsselPosVergütungsart GrundpauschaleAb60Therapiestunde => new SchlüsselPosVergütungsart("641", "Grundpauschale ab 60. Therapiestunde"); + public static SchlüsselPosVergütungsart GrundpauschaleAb90Therapiestunde => new SchlüsselPosVergütungsart("642", "Grundpauschale ab 90. Therapiestunde"); + public static SchlüsselPosVergütungsart Gruppenbehandlung90Minuten2Teilnehmer => new SchlüsselPosVergütungsart("650", "Gruppenbehandlung 90 Minuten – 2 Teilnehmer"); + public static SchlüsselPosVergütungsart Gruppenbehandlung90Minuten3Teilnehmer => new SchlüsselPosVergütungsart("651", "Gruppenbehandlung 90 Minuten – 3 Teilnehmer"); + public static SchlüsselPosVergütungsart Gruppenbehandlung90Minuten4Teilnehmer => new SchlüsselPosVergütungsart("652", "Gruppenbehandlung 90 Minuten – 4 Teilnehmer"); + public static SchlüsselPosVergütungsart Gruppenbehandlung90Minuten5Teilnehmer => new SchlüsselPosVergütungsart("653", "Gruppenbehandlung 90 Minuten – 5 Teilnehmer"); + public static SchlüsselPosVergütungsart Gruppenbehandlung90Minuten6Teilnehmer => new SchlüsselPosVergütungsart("654", "Gruppenbehandlung 90 Minuten – 6 Teilnehmer"); + public static SchlüsselPosVergütungsart Gruppenbehandlung90Minuten7Teilnehmer => new SchlüsselPosVergütungsart("655", "Gruppenbehandlung 90 Minuten – 7 Teilnehmer"); + public static SchlüsselPosVergütungsart Gruppenbehandlung90Minuten8Teilnehmer => new SchlüsselPosVergütungsart("656", "Gruppenbehandlung 90 Minuten – 8 Teilnehmer"); + public static SchlüsselPosVergütungsart Gruppenbehandlung90Minuten9Teilnehmer => new SchlüsselPosVergütungsart("657", "Gruppenbehandlung 90 Minuten – 9 Teilnehmer"); + public static SchlüsselPosVergütungsart Gruppenbehandlung90Minuten10Teilnehmer => new SchlüsselPosVergütungsart("658", "Gruppenbehandlung 90 Minuten – 10 Teilnehmer"); + public static SchlüsselPosVergütungsart Gruppenbehandlung90Minuten11Teilnehmer => new SchlüsselPosVergütungsart("659", "Gruppenbehandlung 90 Minuten – 11 Teilnehmer"); + public static SchlüsselPosVergütungsart Gruppenbehandlung90Minuten12Teilnehmer => new SchlüsselPosVergütungsart("660", "Gruppenbehandlung 90 Minuten – 12 Teilnehmer"); + public static SchlüsselPosVergütungsart Gruppenbehandlung90Minuten2bis3Teilnehmer => new SchlüsselPosVergütungsart("670", "Gruppenbehandlung 90 Minuten – 2 bis 3 Teilnehmer"); + public static SchlüsselPosVergütungsart Gruppenbehandlung90Minuten2bis4Teilnehmer => new SchlüsselPosVergütungsart("671", "Gruppenbehandlung 90 Minuten – 2 bis 4 Teilnehmer"); + public static SchlüsselPosVergütungsart Gruppenbehandlung90Minuten2bis5Personen => new SchlüsselPosVergütungsart("672", "Gruppenbehandlung 90 Minuten – 2 bis 5 Personen"); + public static SchlüsselPosVergütungsart Gruppenbehandlung90Minuten4bis6Teilnehmer => new SchlüsselPosVergütungsart("673", "Gruppenbehandlung 90 Minuten – 4 bis 6 Teilnehmer"); + public static SchlüsselPosVergütungsart Gruppenbehandlung90Minuten5bis7Teilnehmer => new SchlüsselPosVergütungsart("674", "Gruppenbehandlung 90 Minuten – 5 bis 7 Teilnehmer"); + public static SchlüsselPosVergütungsart Gruppenbehandlung90Minuten6bis12Personen => new SchlüsselPosVergütungsart("675", "Gruppenbehandlung 90 Minuten – 6 bis 12 Personen"); + public static SchlüsselPosVergütungsart Gruppenbehandlung90Minuten8bis12Teilnehmer => new SchlüsselPosVergütungsart("676", "Gruppenbehandlung 90 Minuten – 8 bis 12 Teilnehmer"); + public static SchlüsselPosVergütungsart Gruppenbehandlung60Minuten2bis5Personen => new SchlüsselPosVergütungsart("677", "Gruppenbehandlung 60 Minuten – 2 bis 5 Personen"); + public static SchlüsselPosVergütungsart Gruppenbehandlung45Minuten2bis5Personen => new SchlüsselPosVergütungsart("678", "Gruppenbehandlung 45 Minuten – 2 bis 5 Personen"); + + public static SchlüsselPosVergütungsart HausbesuchspauschaleFahrtkosten => new SchlüsselPosVergütungsart("690", "Hausbesuchspauschale/Fahrtkosten"); + public static SchlüsselPosVergütungsart WegegeldpauschaleWegegebühren => new SchlüsselPosVergütungsart("691", "Wegegeldpauschale/Wegegebühren"); + public static SchlüsselPosVergütungsart WegegeldJeKm => new SchlüsselPosVergütungsart("692", "Wegegeld je km"); + public static SchlüsselPosVergütungsart FahrkostenÖPNV => new SchlüsselPosVergütungsart("693", "Fahrkosten ÖPNV"); + public static SchlüsselPosVergütungsart BesuchspauschaleFürFahrtenBis15KmEinfach => new SchlüsselPosVergütungsart("694", "Besuchspauschale für Fahrten bis 15 km (einfach)"); + public static SchlüsselPosVergütungsart BesuchspauschaleFürFahrtenÜber15KmEinfach => new SchlüsselPosVergütungsart("695", "Besuchspauschale für Fahrten über 15 km (einfach)"); + public static SchlüsselPosVergütungsart KHVermeidung01bis03Tage => new SchlüsselPosVergütungsart("680", "KH Vermeidung 01 bis 03 Tage"); + public static SchlüsselPosVergütungsart KHVermeidung04bis12Tage => new SchlüsselPosVergütungsart("681", "KH Vermeidung 04 bis 12 Tage"); + public static SchlüsselPosVergütungsart KHVermeidung13bis21Tage => new SchlüsselPosVergütungsart("682", "KH Vermeidung 13 bis 21 Tage"); + public static SchlüsselPosVergütungsart KHVermeidung22bis29Tage => new SchlüsselPosVergütungsart("683", "KH Vermeidung 22 bis 29 Tage"); + public static SchlüsselPosVergütungsart KHVermeidung30bis34Tage => new SchlüsselPosVergütungsart("684", "KH Vermeidung 30 bis 34 Tage"); + public static SchlüsselPosVergütungsart KHVermeidung35undmehrTage => new SchlüsselPosVergütungsart("685", "KH Vermeidung 35 und mehr Tage"); + public static SchlüsselPosVergütungsart BesuchspauschalenFürFahrtenBis20Km => new SchlüsselPosVergütungsart("686", "Besuchspauschalen für Fahrten bis 20 km"); + public static SchlüsselPosVergütungsart BesuchspauschalenFürFahrtenÜber20Km => new SchlüsselPosVergütungsart("687", "Besuchspauschalen für Fahrten über 20 km"); + + public static SchlüsselPosVergütungsart Teamgespräch => new SchlüsselPosVergütungsart("901", "Teamgespräch"); + public static SchlüsselPosVergütungsart MobileBehandlung => new SchlüsselPosVergütungsart("902", "Mobile Behandlung"); + public static SchlüsselPosVergütungsart TeamgesprächKrankengymnastik => new SchlüsselPosVergütungsart("903", "Teamgespräch Krankengymnastik"); + public static SchlüsselPosVergütungsart TeamgesprächLogopädie => new SchlüsselPosVergütungsart("904", "Teamgespräch Logopädie"); + public static SchlüsselPosVergütungsart TeamgesprächErgotherapie => new SchlüsselPosVergütungsart("905", "Teamgespräch Ergotherapie"); + public static SchlüsselPosVergütungsart TeamgesprächsaufschlagJeTherapietagKrankengymnastik => new SchlüsselPosVergütungsart("910", "Teamgesprächsaufschlag je Therapietag Krankengymnastik"); + public static SchlüsselPosVergütungsart TeamgesprächsaufschlagJeTherapietagLogopädie => new SchlüsselPosVergütungsart("912", "Teamgesprächsaufschlag je Therapietag Logopädie"); + public static SchlüsselPosVergütungsart TeamgesprächsaufschlagJeTherapietagErgotherapie => new SchlüsselPosVergütungsart("914", "Teamgesprächsaufschlag je Therapietag Ergotherapie"); + public static SchlüsselPosVergütungsart AbrechungspauschaleFürDenVerordnetenHausbesuchInklusiveWegegeldEinesPatientenInSeinerWohnungKrankengymnastik => new SchlüsselPosVergütungsart("916", "Abrechungspauschale für den verordneten Hausbesuch inklusive Wegegeld eines Patienten in seiner Wohnung (Krankengymnastik)"); + public static SchlüsselPosVergütungsart AbrechungspauschaleFürDenVerordnetenHausbesuchInklusiveWegegeldEinesPatientenInSeinerWohnungLogopädie => new SchlüsselPosVergütungsart("918", "Abrechungspauschale für den verordneten Hausbesuch inklusive Wegegeld eines Patienten in seiner Wohnung (Logopädie)"); + public static SchlüsselPosVergütungsart AbrechungspauschaleFürDenVerordnetenHausbesuchInklusiveWegegeldEinesPatientenInSeinerWohnungErgotherapie => new SchlüsselPosVergütungsart("920", "Abrechungspauschale für den verordneten Hausbesuch inklusive Wegegeld eines Patienten in seiner Wohnung (Ergotherapie)"); + public static SchlüsselPosVergütungsart KilometerpauschaleFürÄrztlichVerordneteHausbesuche => new SchlüsselPosVergütungsart("921", "Kilometerpauschale für ärztlich verordnete Hausbesuche"); + public static SchlüsselPosVergütungsart AbrechungspauschaleFürDenVerordnetenHausbesuchInklusiveWegegeldEinesOderMehrererPatientenInDerselbenSozialenEinrichtungAnEinemTagJePatientKrankengymnastik => new SchlüsselPosVergütungsart("922", "Abrechungspauschale für den verordneten Hausbesuch inklusive Wegegeld eines oder mehrerer Patienten in derselben sozialen Einrichtung (z. B. Pflegeheime etc.) an einem Tag - je Patient (Krankengymnastik)"); + public static SchlüsselPosVergütungsart AbrechungspauschaleFürDenVerordnetenHausbesuchInklusiveWegegeldEinesOderMehrererPatientenInDerselbenSozialenEinrichtungAnEinemTagJePatientLogopädie => new SchlüsselPosVergütungsart("924", "Abrechungspauschale für den verordneten Hausbesuch inklusive Wegegeld eines oder mehrerer Patienten in derselben sozialen Einrichtung (z. B. Pflegeheime etc.) an einem Tag - je Patient (Logopädie)"); + public static SchlüsselPosVergütungsart AbrechungspauschaleFürDenVerordnetenHausbesuchInklusiveWegegeldEinesOderMehrererPatientenInDerselbenSozialenEinrichtungAnEinemTagJePatientErgotherapie => new SchlüsselPosVergütungsart("926", "Abrechungspauschale für den verordneten Hausbesuch inklusive Wegegeld eines oder mehrerer Patienten in derselben sozialen Einrichtung (z. B. Pflegeheime etc.) an einem Tag - je Patient (Ergotherapie)"); + public static SchlüsselPosVergütungsart VergütungNach132gSGBVPauschale => new SchlüsselPosVergütungsart("927", "Vergütung nach § 132g SGB V Pauschale"); + + public static List Pauschalen = new List() + { + Pauschale1, Pauschale2, Pauschale3, Pauschale4, Pauschale5, Pauschale6, Pauschale7, Pauschale8, + Pauschale9, Pauschale10, Pauschale11, Pauschale12, Pauschale13, Pauschale14, Pauschale15, Pauschale16, + Pauschale17, Pauschale18, Pauschale19, Pauschale20, KrankenhilfepauschaleHeilmittel, KrankenhilfepauschaleArzneimittel + }; + + public static List SozioEinzel = new List() + { + GrundpauschaleJeNeuZuTherapierendenPatienten, GrundpauschaleNach60Therapiestunde, GrundpauschaleNach90Therapiestunde, + ErstellungEinesBetreuungsplanesUndAbstimmungMitArzt, ProbestundeOhneVerordnung60Minuten, ProbestundeOhneVerordnung10Minuten, + ProbestundeOhneVerordnung1Minute, ProbestundeMitVerordnung60Minuten, ProbestundeMitVerordnung10Minuten, ProbestundeMitVerordnung1Minute, + Einzelbehandlung60Minuten, Einzelbehandlung45Minuten, Einzelbehandlung30Minuten, Einzelbehandlung10Minuten, Einzelbehandlung1Minute, + EinzelbehandlungPerVideotelefonie60Minuten, EinzelbehandlungPerVideotelefonie30Minuten, EinzelbehandlungPerTelefonie60Minuten, EinzelbehandlungPerTelefonie30Minuten, + TherapieeinheitBeiÜberweisungZurIndikationsstellung60Minuten, TherapieeinheitBeiÜberweisungZurIndikationsstellung10Minuten, TherapieeinheitBeiÜberweisungZurIndikationsstellung1Minute + }; + + public static List SozioGruppe = new List() + { + GrundpauschaleJeNeuZuTherapierendenPatientenGruppe, GrundpauschaleAb60Therapiestunde, GrundpauschaleAb90Therapiestunde, Gruppenbehandlung90Minuten2Teilnehmer, + Gruppenbehandlung90Minuten3Teilnehmer, Gruppenbehandlung90Minuten4Teilnehmer, Gruppenbehandlung90Minuten5Teilnehmer, Gruppenbehandlung90Minuten6Teilnehmer, + Gruppenbehandlung90Minuten7Teilnehmer, Gruppenbehandlung90Minuten8Teilnehmer, Gruppenbehandlung90Minuten9Teilnehmer, Gruppenbehandlung90Minuten10Teilnehmer, + Gruppenbehandlung90Minuten11Teilnehmer, Gruppenbehandlung90Minuten12Teilnehmer, Gruppenbehandlung90Minuten2bis3Teilnehmer, Gruppenbehandlung90Minuten2bis4Teilnehmer, + Gruppenbehandlung90Minuten2bis5Personen, Gruppenbehandlung90Minuten4bis6Teilnehmer, Gruppenbehandlung90Minuten5bis7Teilnehmer, Gruppenbehandlung90Minuten6bis12Personen, + Gruppenbehandlung90Minuten8bis12Teilnehmer, Gruppenbehandlung60Minuten2bis5Personen, Gruppenbehandlung45Minuten2bis5Personen + }; + + public static List SozioSonst = new List() + { + HausbesuchspauschaleFahrtkosten, WegegeldpauschaleWegegebühren, WegegeldJeKm, FahrkostenÖPNV, BesuchspauschaleFürFahrtenBis15KmEinfach, + BesuchspauschaleFürFahrtenÜber15KmEinfach, KHVermeidung01bis03Tage, KHVermeidung04bis12Tage, KHVermeidung13bis21Tage, KHVermeidung22bis29Tage, KHVermeidung30bis34Tage, + KHVermeidung35undmehrTage, BesuchspauschalenFürFahrtenBis20Km, BesuchspauschalenFürFahrtenÜber20Km + }; + public static List Sonstiges = new List() + { + Teamgespräch, MobileBehandlung, TeamgesprächKrankengymnastik, TeamgesprächLogopädie, TeamgesprächErgotherapie, TeamgesprächsaufschlagJeTherapietagKrankengymnastik, + TeamgesprächsaufschlagJeTherapietagLogopädie, TeamgesprächsaufschlagJeTherapietagErgotherapie, + AbrechungspauschaleFürDenVerordnetenHausbesuchInklusiveWegegeldEinesPatientenInSeinerWohnungKrankengymnastik, + AbrechungspauschaleFürDenVerordnetenHausbesuchInklusiveWegegeldEinesPatientenInSeinerWohnungLogopädie, + AbrechungspauschaleFürDenVerordnetenHausbesuchInklusiveWegegeldEinesPatientenInSeinerWohnungErgotherapie, KilometerpauschaleFürÄrztlichVerordneteHausbesuche, + AbrechungspauschaleFürDenVerordnetenHausbesuchInklusiveWegegeldEinesOderMehrererPatientenInDerselbenSozialenEinrichtungAnEinemTagJePatientKrankengymnastik, + AbrechungspauschaleFürDenVerordnetenHausbesuchInklusiveWegegeldEinesOderMehrererPatientenInDerselbenSozialenEinrichtungAnEinemTagJePatientLogopädie, + AbrechungspauschaleFürDenVerordnetenHausbesuchInklusiveWegegeldEinesOderMehrererPatientenInDerselbenSozialenEinrichtungAnEinemTagJePatientErgotherapie, + VergütungNach132gSGBVPauschale + }; + } +} diff --git a/Dakota/Models/Schlüssel/SchlüsselRechnungsart.cs b/Dakota/Models/Schlüssels/SchlüsselRechnungsart.cs similarity index 95% rename from Dakota/Models/Schlüssel/SchlüsselRechnungsart.cs rename to Dakota/Models/Schlüssels/SchlüsselRechnungsart.cs index 21387786d..6fe5865f4 100644 --- a/Dakota/Models/Schlüssel/SchlüsselRechnungsart.cs +++ b/Dakota/Models/Schlüssels/SchlüsselRechnungsart.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace Dakota.Models.Schlüssel +namespace Dakota.Models.Schlüssels { public class SchlüsselRechnungsart : Schlüssel { diff --git a/Dakota/Models/Schlüssel/SchlüsselSummenstatus.cs b/Dakota/Models/Schlüssels/SchlüsselSummenstatus.cs similarity index 95% rename from Dakota/Models/Schlüssel/SchlüsselSummenstatus.cs rename to Dakota/Models/Schlüssels/SchlüsselSummenstatus.cs index d7d169226..c7c425614 100644 --- a/Dakota/Models/Schlüssel/SchlüsselSummenstatus.cs +++ b/Dakota/Models/Schlüssels/SchlüsselSummenstatus.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace Dakota.Models.Schlüssel +namespace Dakota.Models.Schlüssels { public class SchlüsselSummenstatus : Schlüssel { diff --git a/Dakota/Models/Schlüssels/SchlüsselTarifkennzeichen.cs b/Dakota/Models/Schlüssels/SchlüsselTarifkennzeichen.cs new file mode 100644 index 000000000..f0fe8fe5f --- /dev/null +++ b/Dakota/Models/Schlüssels/SchlüsselTarifkennzeichen.cs @@ -0,0 +1,16 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Dakota.Models.Schlüssels +{ + public class SchlüsselTarifkennzeichen : Schlüssel + { + public SchlüsselTarifkennzeichen(SchlüsselTarifkennzeichenBereich bereich, SchlüsselTarifkennzeichenSondertarif sonder) : base(bereich.Value + sonder.Value) + { + + } + } +} diff --git a/Dakota/Models/Schlüssels/SchlüsselTarifkennzeichenBereich.cs b/Dakota/Models/Schlüssels/SchlüsselTarifkennzeichenBereich.cs new file mode 100644 index 000000000..57cb08e44 --- /dev/null +++ b/Dakota/Models/Schlüssels/SchlüsselTarifkennzeichenBereich.cs @@ -0,0 +1,67 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Dakota.Models.Schlüssels +{ + public class SchlüsselTarifkennzeichenBereich : Schlüssel + { + public SchlüsselTarifkennzeichenBereich(string val) : base(val) { } + + public static SchlüsselTarifkennzeichenBereich Bundeseinheitlich => new SchlüsselTarifkennzeichenBereich("00"); + public static SchlüsselTarifkennzeichenBereich BadenWürtenberg => new SchlüsselTarifkennzeichenBereich("01"); + public static SchlüsselTarifkennzeichenBereich Bayern => new SchlüsselTarifkennzeichenBereich("02"); + public static SchlüsselTarifkennzeichenBereich BerlinOst => new SchlüsselTarifkennzeichenBereich("03"); + public static SchlüsselTarifkennzeichenBereich Bremen => new SchlüsselTarifkennzeichenBereich("04"); + public static SchlüsselTarifkennzeichenBereich Hamburg => new SchlüsselTarifkennzeichenBereich("05"); + public static SchlüsselTarifkennzeichenBereich Hessen => new SchlüsselTarifkennzeichenBereich("06"); + public static SchlüsselTarifkennzeichenBereich Niedersachsen => new SchlüsselTarifkennzeichenBereich("07"); + public static SchlüsselTarifkennzeichenBereich NordRheinWestfalen => new SchlüsselTarifkennzeichenBereich("08"); + public static SchlüsselTarifkennzeichenBereich RheinlandPfalz => new SchlüsselTarifkennzeichenBereich("09"); + public static SchlüsselTarifkennzeichenBereich Saarland => new SchlüsselTarifkennzeichenBereich("10"); + public static SchlüsselTarifkennzeichenBereich SchleswigHolstein => new SchlüsselTarifkennzeichenBereich("11"); + public static SchlüsselTarifkennzeichenBereich Brandenburg => new SchlüsselTarifkennzeichenBereich("12"); + public static SchlüsselTarifkennzeichenBereich Sachsen => new SchlüsselTarifkennzeichenBereich("13"); + public static SchlüsselTarifkennzeichenBereich SachsenAnhalt => new SchlüsselTarifkennzeichenBereich("14"); + public static SchlüsselTarifkennzeichenBereich MecklenburgVorpommern => new SchlüsselTarifkennzeichenBereich("15"); + public static SchlüsselTarifkennzeichenBereich Thüringen => new SchlüsselTarifkennzeichenBereich("16"); + public static SchlüsselTarifkennzeichenBereich StuttgartKarlsruhe => new SchlüsselTarifkennzeichenBereich("17"); + public static SchlüsselTarifkennzeichenBereich FreiburgTübingen => new SchlüsselTarifkennzeichenBereich("18"); + public static SchlüsselTarifkennzeichenBereich BerlinWest => new SchlüsselTarifkennzeichenBereich("19"); + public static SchlüsselTarifkennzeichenBereich Nordrhein => new SchlüsselTarifkennzeichenBereich("20"); + public static SchlüsselTarifkennzeichenBereich WestfalenLippe => new SchlüsselTarifkennzeichenBereich("21"); + public static SchlüsselTarifkennzeichenBereich Lippe => new SchlüsselTarifkennzeichenBereich("22"); + public static SchlüsselTarifkennzeichenBereich BerlinGesamt => new SchlüsselTarifkennzeichenBereich("23"); + public static SchlüsselTarifkennzeichenBereich BundeseinheitlicherTarifWest => new SchlüsselTarifkennzeichenBereich("24"); + public static SchlüsselTarifkennzeichenBereich BundeseinheitlicherTarifOst => new SchlüsselTarifkennzeichenBereich("25"); + public static SchlüsselTarifkennzeichenBereich Bundesvertrag => new SchlüsselTarifkennzeichenBereich("50"); + public static SchlüsselTarifkennzeichenBereich BadenWürttemberg => new SchlüsselTarifkennzeichenBereich("51"); + public static SchlüsselTarifkennzeichenBereich Bayern2 => new SchlüsselTarifkennzeichenBereich("52"); + public static SchlüsselTarifkennzeichenBereich BerlinOst2 => new SchlüsselTarifkennzeichenBereich("53"); + public static SchlüsselTarifkennzeichenBereich Bremen2 => new SchlüsselTarifkennzeichenBereich("54"); + public static SchlüsselTarifkennzeichenBereich Hamburg2 => new SchlüsselTarifkennzeichenBereich("55"); + public static SchlüsselTarifkennzeichenBereich Hessen2 => new SchlüsselTarifkennzeichenBereich("56"); + public static SchlüsselTarifkennzeichenBereich Niedersachsen2 => new SchlüsselTarifkennzeichenBereich("57"); + public static SchlüsselTarifkennzeichenBereich NordRheinWestfalen2 => new SchlüsselTarifkennzeichenBereich("58"); + public static SchlüsselTarifkennzeichenBereich RheinlandPfalz2 => new SchlüsselTarifkennzeichenBereich("59"); + public static SchlüsselTarifkennzeichenBereich Saarland2 => new SchlüsselTarifkennzeichenBereich("60"); + public static SchlüsselTarifkennzeichenBereich SchleswigHolstein2 => new SchlüsselTarifkennzeichenBereich("61"); + public static SchlüsselTarifkennzeichenBereich Brandenburg2 => new SchlüsselTarifkennzeichenBereich("62"); + public static SchlüsselTarifkennzeichenBereich Sachsen2 => new SchlüsselTarifkennzeichenBereich("63"); + public static SchlüsselTarifkennzeichenBereich SachsenAnhalt2 => new SchlüsselTarifkennzeichenBereich("64"); + public static SchlüsselTarifkennzeichenBereich MecklenburgVorpommern2 => new SchlüsselTarifkennzeichenBereich("65"); + public static SchlüsselTarifkennzeichenBereich Thüringen2 => new SchlüsselTarifkennzeichenBereich("66"); + public static SchlüsselTarifkennzeichenBereich StuttgartKarlsruhe2 => new SchlüsselTarifkennzeichenBereich("67"); + public static SchlüsselTarifkennzeichenBereich FreiburgTübingen2 => new SchlüsselTarifkennzeichenBereich("68"); + public static SchlüsselTarifkennzeichenBereich BerlinWest2 => new SchlüsselTarifkennzeichenBereich("69"); + public static SchlüsselTarifkennzeichenBereich Nordrhein2 => new SchlüsselTarifkennzeichenBereich("70"); + public static SchlüsselTarifkennzeichenBereich WestfalenLippe2 => new SchlüsselTarifkennzeichenBereich("71"); + public static SchlüsselTarifkennzeichenBereich Lippe2 => new SchlüsselTarifkennzeichenBereich("72"); + public static SchlüsselTarifkennzeichenBereich BerlinGesamt2 => new SchlüsselTarifkennzeichenBereich("73"); + public static SchlüsselTarifkennzeichenBereich BundeseinheitlicherTarifWest2 => new SchlüsselTarifkennzeichenBereich("74"); + public static SchlüsselTarifkennzeichenBereich BundeseinheitlicherTarifOst2 => new SchlüsselTarifkennzeichenBereich("75"); + public static SchlüsselTarifkennzeichenBereich SonstigeländerübergreifenderTarig => new SchlüsselTarifkennzeichenBereich("90"); + } +} diff --git a/Dakota/Models/Schlüssels/SchlüsselTarifkennzeichenSondertarif.cs b/Dakota/Models/Schlüssels/SchlüsselTarifkennzeichenSondertarif.cs new file mode 100644 index 000000000..ea21ffb1c --- /dev/null +++ b/Dakota/Models/Schlüssels/SchlüsselTarifkennzeichenSondertarif.cs @@ -0,0 +1,19 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace Dakota.Models.Schlüssels +{ + public class SchlüsselTarifkennzeichenSondertarif : Schlüssel + { + public SchlüsselTarifkennzeichenSondertarif(string val) : base(val) { } + + public static SchlüsselTarifkennzeichenSondertarif OhneBesonderheiten => new SchlüsselTarifkennzeichenSondertarif("000"); + public static SchlüsselTarifkennzeichenSondertarif NichtBesetzt => new SchlüsselTarifkennzeichenSondertarif("091"); + public static SchlüsselTarifkennzeichenSondertarif LeistungOhnePreislicheRegelung => new SchlüsselTarifkennzeichenSondertarif("099"); + public static SchlüsselTarifkennzeichenSondertarif NichtBesetzt2 => new SchlüsselTarifkennzeichenSondertarif("U00"); + public static SchlüsselTarifkennzeichenSondertarif Sondertarigvereinbarungen => new SchlüsselTarifkennzeichenSondertarif("err"); + } +} diff --git a/Dakota/Models/Schlüssel/SchlüsselTestindikator.cs b/Dakota/Models/Schlüssels/SchlüsselTestindikator.cs similarity index 93% rename from Dakota/Models/Schlüssel/SchlüsselTestindikator.cs rename to Dakota/Models/Schlüssels/SchlüsselTestindikator.cs index a72c4c449..1d841e8fa 100644 --- a/Dakota/Models/Schlüssel/SchlüsselTestindikator.cs +++ b/Dakota/Models/Schlüssels/SchlüsselTestindikator.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace Dakota.Models.Schlüssel +namespace Dakota.Models.Schlüssels { public class SchlüsselTestindikator : Schlüssel { diff --git a/Dakota/Models/Schlüssel/SchlüsselVerarbeitungskennzeichen.cs b/Dakota/Models/Schlüssels/SchlüsselVerarbeitungskennzeichen.cs similarity index 95% rename from Dakota/Models/Schlüssel/SchlüsselVerarbeitungskennzeichen.cs rename to Dakota/Models/Schlüssels/SchlüsselVerarbeitungskennzeichen.cs index 59f4dd7a9..6de657813 100644 --- a/Dakota/Models/Schlüssel/SchlüsselVerarbeitungskennzeichen.cs +++ b/Dakota/Models/Schlüssels/SchlüsselVerarbeitungskennzeichen.cs @@ -4,7 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; -namespace Dakota.Models.Schlüssel +namespace Dakota.Models.Schlüssels { public class SchlüsselVerarbeitungskennzeichen : Schlüssel { diff --git a/Dakota/Models/Segmente/SLGA/SegmentSLGAFKT.cs b/Dakota/Models/Segmente/SLGA/SegmentSLGAFKT.cs index 60e88daa3..5ed237c01 100644 --- a/Dakota/Models/Segmente/SLGA/SegmentSLGAFKT.cs +++ b/Dakota/Models/Segmente/SLGA/SegmentSLGAFKT.cs @@ -1,4 +1,5 @@ -using System; +using Dakota.Models.Daten; +using System; using System.Collections.Generic; using System.Linq; using System.Text; diff --git a/Dakota/Models/Segmente/SLGA/SegmentSLGAGES.cs b/Dakota/Models/Segmente/SLGA/SegmentSLGAGES.cs index 43e14e4cb..2f36273d4 100644 --- a/Dakota/Models/Segmente/SLGA/SegmentSLGAGES.cs +++ b/Dakota/Models/Segmente/SLGA/SegmentSLGAGES.cs @@ -1,4 +1,5 @@ -using System; +using Dakota.Models.Daten; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -35,7 +36,7 @@ namespace Dakota.Models.Segmente.SLGA /// Bei Verarbeitungskennzeichen „03“: /// Entspricht dem Wert aus GES.Gesamtbetrag Zuzahlung und/oder Eigenanteil und/oder Pauschale Korrekturbetrag. /// - public Datenelement Gesamtrechnungsbetrag { get; private set; } + public DatenelementDecimal Gesamtrechnungsbetrag { get; private set; } /// /// Bei Verarbeitungskennzeichen „01“, /// „02“ und „04“: @@ -46,7 +47,7 @@ namespace Dakota.Models.Segmente.SLGA /// Ist der Gesamtbruttobetrag mit 0,00 /// zu übermitteln. /// - public Datenelement Gesamtbruttobetrag { get; private set; } + public DatenelementDecimal Gesamtbruttobetrag { get; private set; } /// /// Bei Verarbeitungskennzeichen „01“ /// und „02“: @@ -65,14 +66,14 @@ namespace Dakota.Models.Segmente.SLGA /// Berechnungsregel: /// Summe aller Abrechnungsfälle(BES.Gesambetrag gesetzliche Zuzahlung + BES.Gesamtbetrag Eigenanteil + BES.Pauschale Korrekturbetrag). /// - public Datenelement GesamtbetragZuzahlung { get; private set; } + public DatenelementDecimal GesamtbetragZuzahlung { get; private set; } public SegmentSLGAGES() { Status = new Datenelement("Status", 2, Feldart.Muss); - Gesamtrechnungsbetrag = new Datenelement("Gesamtrechnungsbetrag", 3, 13, Feldart.Muss); - Gesamtbruttobetrag = new Datenelement("Gesamtbruttobetrag", 3, 13, Feldart.Muss); - GesamtbetragZuzahlung = new Datenelement("GesamtbetragZuzahlung", 3, 13, Feldart.Kann); + Gesamtrechnungsbetrag = new DatenelementDecimal("Gesamtrechnungsbetrag", 3, 13, Feldart.Muss); + Gesamtbruttobetrag = new DatenelementDecimal("Gesamtbruttobetrag", 3, 13, Feldart.Muss); + GesamtbetragZuzahlung = new DatenelementDecimal("GesamtbetragZuzahlung", 3, 13, Feldart.Kann); } public override string GetHead() => "GES"; diff --git a/Dakota/Models/Segmente/SLGA/SegmentSLGANAM.cs b/Dakota/Models/Segmente/SLGA/SegmentSLGANAM.cs index d58a92872..fecaf5486 100644 --- a/Dakota/Models/Segmente/SLGA/SegmentSLGANAM.cs +++ b/Dakota/Models/Segmente/SLGA/SegmentSLGANAM.cs @@ -1,4 +1,5 @@ -using System; +using Dakota.Models.Daten; +using System; using System.Collections.Generic; using System.Linq; using System.Text; diff --git a/Dakota/Models/Segmente/SLGA/SegmentSLGAREC.cs b/Dakota/Models/Segmente/SLGA/SegmentSLGAREC.cs index 77c35188a..ce555af57 100644 --- a/Dakota/Models/Segmente/SLGA/SegmentSLGAREC.cs +++ b/Dakota/Models/Segmente/SLGA/SegmentSLGAREC.cs @@ -1,4 +1,5 @@ -using System; +using Dakota.Models.Daten; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -57,7 +58,7 @@ namespace Dakota.Models.Segmente.SLGA /// /// Rechnungsdatum JJJJMMTT /// - public Datenelement Datum { get; private set; } + public DatenelementDateTime Datum { get; private set; } /// /// Siehe Schlüssel Rechnungsart /// Anlage 3 Abschnitt 8.1.4. @@ -72,7 +73,7 @@ namespace Dakota.Models.Segmente.SLGA Rechnungsnummer = new Datenelementgruppe("Rechnungsnummer", 2); SammelRechnungsnummer = Rechnungsnummer.Datenelemente[0] = new Datenelement("SammelRechnungsnummer", 0, 14, Feldart.Muss); EinzelRechnungsnummer = Rechnungsnummer.Datenelemente[1] = new Datenelement("EinzelRechnungsnummer", 0, 6, Feldart.Muss); - Datum = new Datenelement("Datum", 8, Feldart.Muss); + Datum = new DatenelementDateTime("Datum", 8, "yyyyMMdd", Feldart.Muss); Rechnungsart = new Datenelement("Rechnungsart", 1, Feldart.Muss); } diff --git a/Dakota/Models/Segmente/SLGA/SegmentSLGASKO.cs b/Dakota/Models/Segmente/SLGA/SegmentSLGASKO.cs index 50a1b0673..6de249666 100644 --- a/Dakota/Models/Segmente/SLGA/SegmentSLGASKO.cs +++ b/Dakota/Models/Segmente/SLGA/SegmentSLGASKO.cs @@ -1,4 +1,5 @@ -using System; +using Dakota.Models.Daten; +using System; using System.Collections.Generic; using System.Linq; using System.Text; diff --git a/Dakota/Models/Segmente/SLGA/SegmentSLGAUST.cs b/Dakota/Models/Segmente/SLGA/SegmentSLGAUST.cs index 3912b2a8d..908a6dbae 100644 --- a/Dakota/Models/Segmente/SLGA/SegmentSLGAUST.cs +++ b/Dakota/Models/Segmente/SLGA/SegmentSLGAUST.cs @@ -1,4 +1,5 @@ -using System; +using Dakota.Models.Daten; +using System; using System.Collections.Generic; using System.Linq; using System.Text; diff --git a/Dakota/Models/Segmente/SLLA/SegmentSLLABES.cs b/Dakota/Models/Segmente/SLLA/SegmentSLLABES.cs index fbace1712..33a410f34 100644 --- a/Dakota/Models/Segmente/SLLA/SegmentSLLABES.cs +++ b/Dakota/Models/Segmente/SLLA/SegmentSLLABES.cs @@ -1,4 +1,5 @@ -using System; +using Dakota.Models.Daten; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -17,7 +18,7 @@ namespace Dakota.Models.Segmente.SLLA /// Berechnungsregel: /// Summe über alle Abrechnungspositionen des Abrechnungsfalls von: /// (((ENF.Einzelbetrag der Abrechnungsposition mal ENF.Anzahl/Menge) plus ggf.MWS.Betrag /// Mehrwertsteuer)) kaufmännisch gerundet). /// - public Datenelement GesamtbetragBrutto { get; private set; } + public DatenelementDecimal GesamtbetragBrutto { get; private set; } /// /// Gesamtbetrag gesetzliche Zuzahlung je Abrechnungsfall. /// Berechnungsregel: @@ -25,32 +26,32 @@ namespace Dakota.Models.Segmente.SLLA /// Abrechnungsfall /// +(Summe über alle Leistungen /// (ZUZ.Betrag Gesetzliche Zuzahlung)) /// - public Datenelement GesamtbetragGesetzlicheZuzahlung { get; private set; } + public DatenelementDecimal GesamtbetragGesetzlicheZuzahlung { get; private set; } /// /// Gesamtbetrag prozentuale Zuzahlung je Abrechnungsfall. /// Berechnungsregel: /// Summe über alle Abrechnungspositionen des Abrechnungsfalls von: /// (ENF.Betrag der Zuzahlung mal /// ENF.Anzahl/Menge) kaufmännisch /// gerundet /// - public Datenelement GesamtbetragProzentualeZuzahlung { get; private set; } + public DatenelementDecimal GesamtbetragProzentualeZuzahlung { get; private set; } /// /// Pauschaler Zuzahlungsbetrag je Abrechnungsfall (Verordnungsblatt). /// 10 Euro maximal, jedoch höchstens /// die Differenz Gesamtbetrag Brutto /// abzüglich Gesamtbetrag prozentuale Zuzahlung /// - public Datenelement PauschalerZuzahlungsbetrag { get; private set; } + public DatenelementDecimal PauschalerZuzahlungsbetrag { get; private set; } /// /// Gesamtbetrag Eigenanteil /// Berechnungsregel: /// Summe über alle Abrechnungspositionen(ZUZ.Betrag Eigenanteil). /// - public Datenelement GesamtbetragEigenanteil { get; private set; } + public DatenelementDecimal GesamtbetragEigenanteil { get; private set; } public SegmentSLLABES() { - GesamtbetragBrutto = new Datenelement("GesamtbetragBrutto", 3, 13, Feldart.Muss); - GesamtbetragGesetzlicheZuzahlung = new Datenelement("GesamtbetragGesetzlicheZuzahlung", 3, 13, Feldart.Kann); - GesamtbetragProzentualeZuzahlung = new Datenelement("GesamtbetragProzentualeZuzahlung", 3, 13, Feldart.Kann); - PauschalerZuzahlungsbetrag = new Datenelement("PauschalerZuzahlungsbetrag", 3, 13, Feldart.Kann); - GesamtbetragEigenanteil = new Datenelement("GesamtbetragEigenanteil", 3, 13, Feldart.Kann); + GesamtbetragBrutto = new DatenelementDecimal("GesamtbetragBrutto", 3, 13, Feldart.Muss); + GesamtbetragGesetzlicheZuzahlung = new DatenelementDecimal("GesamtbetragGesetzlicheZuzahlung", 3, 13, Feldart.Kann); + GesamtbetragProzentualeZuzahlung = new DatenelementDecimal("GesamtbetragProzentualeZuzahlung", 3, 13, Feldart.Kann); + PauschalerZuzahlungsbetrag = new DatenelementDecimal("PauschalerZuzahlungsbetrag", 3, 13, Feldart.Kann); + GesamtbetragEigenanteil = new DatenelementDecimal("GesamtbetragEigenanteil", 3, 13, Feldart.Kann); } public override string GetHead() => "BES"; diff --git a/Dakota/Models/Segmente/SLLA/SegmentSLLADIA.cs b/Dakota/Models/Segmente/SLLA/SegmentSLLADIA.cs index 113a89f19..282bb3030 100644 --- a/Dakota/Models/Segmente/SLLA/SegmentSLLADIA.cs +++ b/Dakota/Models/Segmente/SLLA/SegmentSLLADIA.cs @@ -1,4 +1,5 @@ -using System; +using Dakota.Models.Daten; +using System; using System.Collections.Generic; using System.Linq; using System.Text; diff --git a/Dakota/Models/Segmente/SLLA/SegmentSLLAENF.cs b/Dakota/Models/Segmente/SLLA/SegmentSLLAENF.cs index 8d289eac8..c5613065c 100644 --- a/Dakota/Models/Segmente/SLLA/SegmentSLLAENF.cs +++ b/Dakota/Models/Segmente/SLLA/SegmentSLLAENF.cs @@ -1,4 +1,6 @@ -using System.Collections.Generic; +using Dakota.Models.Daten; +using System; +using System.Collections.Generic; namespace Dakota.Models.Segmente.SLLA { @@ -56,7 +58,7 @@ namespace Dakota.Models.Segmente.SLLA /// der Leistungserbringung ein eigenes /// ENF-Segment zu erstellen. /// - public Datenelement AnzahlMenge { get; private set; } + public DatenelementDecimal AnzahlMenge { get; private set; } /// /// Einzelpreis (vereinbarter Preis/Festbetrag) /// Als Einzelpreis ist immer der Preis @@ -66,12 +68,12 @@ namespace Dakota.Models.Segmente.SLLA /// der Einzelpreis inklusive MwSt. vereinbart, ist dieser in ENF anzugeben /// und kein Segment MWS anzugeben /// - public Datenelement EinzelbetragAbrechnungsposition { get; private set; } + public DatenelementDecimal EinzelbetragAbrechnungsposition { get; private set; } /// /// Tag der Leistungserbringung /// (JJJJMMTT). /// - public Datenelement DatumLeistungserbringung { get; private set; } + public DatenelementDateTime DatumLeistungserbringung { get; private set; } /// /// Der Einzelbetrag der prozentualen /// Zuzahlung bzw. der Zuzahlungsbetrag pro Tag ist zwingend je Abrechnungsposition zu berechnen @@ -84,7 +86,7 @@ namespace Dakota.Models.Segmente.SLLA /// kaufmännisch zu runden. /// (Der ermittelte Betrag ist kaufmännisch zu runden). /// - public Datenelement BetragZuzahlung { get; private set; } + public DatenelementDecimal BetragZuzahlung { get; private set; } public SegmentSLLAENF() { @@ -93,10 +95,10 @@ namespace Dakota.Models.Segmente.SLLA Abrechnungscode = Leistungserbringergruppe.Datenelemente[0] = new Datenelement("Abrechnungscode", 2, Feldart.Muss); Tarifkennzeichen = Leistungserbringergruppe.Datenelemente[1] = new Datenelement("Tarifkennzeichen", 5, Feldart.Muss); ArtLeistung = new Datenelement("ArtLeistung", 0, 10, Feldart.Muss); - AnzahlMenge = new Datenelement("AnzahlMenge", 3, 7, Feldart.Muss); - EinzelbetragAbrechnungsposition = new Datenelement("EinzelbetragAbrechnungsposition", 3, 13, Feldart.Muss); - DatumLeistungserbringung = new Datenelement("DatumLeistungserbringung", 8, Feldart.Muss); - BetragZuzahlung = new Datenelement("BetragZuzahlung", 3, 13, Feldart.Kann); + AnzahlMenge = new DatenelementDecimal("AnzahlMenge", 3, 7, Feldart.Muss); + EinzelbetragAbrechnungsposition = new DatenelementDecimal("EinzelbetragAbrechnungsposition", 3, 13, Feldart.Muss); + DatumLeistungserbringung = new DatenelementDateTime("DatumLeistungserbringung", 8, "yyyyMMdd", Feldart.Muss); + BetragZuzahlung = new DatenelementDecimal("BetragZuzahlung", 3, 13, Feldart.Kann); } public override string GetHead() => "ENF"; diff --git a/Dakota/Models/Segmente/SLLA/SegmentSLLAFKT.cs b/Dakota/Models/Segmente/SLLA/SegmentSLLAFKT.cs index b44118c24..3eb8f2a66 100644 --- a/Dakota/Models/Segmente/SLLA/SegmentSLLAFKT.cs +++ b/Dakota/Models/Segmente/SLLA/SegmentSLLAFKT.cs @@ -1,4 +1,5 @@ -using System; +using Dakota.Models.Daten; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -41,7 +42,7 @@ namespace Dakota.Models.Segmente.SLLA /// zwingend anzugeben.Diese Angabe ist /// identisch mit SLGA.FKT.IK der Krankenkasse der zugehörigen SLGA-Nachricht als Gesamtrechnung. /// - public Datenelement IKKrankenkasse { get; private set; } + public Datenelement IKKVKarte { get; private set; } /// /// IK des Rechnungsstellers, ist nur anzugeben, wenn die Abrechnung durch /// eine Abrechnungsstelle mit Inkassovollmacht erfolgt.In diesem Fall muss @@ -55,12 +56,12 @@ namespace Dakota.Models.Segmente.SLLA Freifeld = new Datenelement("Freifeld", 1, Feldart.Kann); IKLeistungserbringers = new Datenelement("IKLeistungserbringers", 9, Feldart.Muss); IKKostenträgers = new Datenelement("IKKostenträgers", 9, Feldart.Muss); - IKKrankenkasse = new Datenelement("IKKrankenkasse", 9, Feldart.Muss); + IKKVKarte = new Datenelement("IKKVKarte", 9, Feldart.Muss); IKRechnungsstellers = new Datenelement("IKRechnungsstellers", 9, Feldart.Kann); } public override string GetHead() => "FKT"; public override List GetBody() - => new List() { Verarbeitungskennzeichen, Freifeld, IKLeistungserbringers, IKKostenträgers, IKKrankenkasse, IKRechnungsstellers }; + => new List() { Verarbeitungskennzeichen, Freifeld, IKLeistungserbringers, IKKostenträgers, IKKVKarte, IKRechnungsstellers }; } } diff --git a/Dakota/Models/Segmente/SLLA/SegmentSLLAIMG.cs b/Dakota/Models/Segmente/SLLA/SegmentSLLAIMG.cs index 8147f03db..7d9d7dd14 100644 --- a/Dakota/Models/Segmente/SLLA/SegmentSLLAIMG.cs +++ b/Dakota/Models/Segmente/SLLA/SegmentSLLAIMG.cs @@ -1,4 +1,5 @@ -using System; +using Dakota.Models.Daten; +using System; using System.Collections.Generic; using System.Linq; using System.Text; diff --git a/Dakota/Models/Segmente/SLLA/SegmentSLLAINV.cs b/Dakota/Models/Segmente/SLLA/SegmentSLLAINV.cs index 5ba247420..670d40455 100644 --- a/Dakota/Models/Segmente/SLLA/SegmentSLLAINV.cs +++ b/Dakota/Models/Segmente/SLLA/SegmentSLLAINV.cs @@ -1,4 +1,5 @@ -using System; +using Dakota.Models.Daten; +using System; using System.Collections.Generic; using System.Linq; using System.Text; diff --git a/Dakota/Models/Segmente/SLLA/SegmentSLLAMWS.cs b/Dakota/Models/Segmente/SLLA/SegmentSLLAMWS.cs index 91245bb36..f7e5b2d55 100644 --- a/Dakota/Models/Segmente/SLLA/SegmentSLLAMWS.cs +++ b/Dakota/Models/Segmente/SLLA/SegmentSLLAMWS.cs @@ -1,4 +1,5 @@ -using System; +using Dakota.Models.Daten; +using System; using System.Collections.Generic; using System.Linq; using System.Text; diff --git a/Dakota/Models/Segmente/SLLA/SegmentSLLANAD.cs b/Dakota/Models/Segmente/SLLA/SegmentSLLANAD.cs index 896bf42b7..862013543 100644 --- a/Dakota/Models/Segmente/SLLA/SegmentSLLANAD.cs +++ b/Dakota/Models/Segmente/SLLA/SegmentSLLANAD.cs @@ -1,4 +1,5 @@ -using System; +using Dakota.Models.Daten; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -27,7 +28,7 @@ namespace Dakota.Models.Segmente.SLLA /// „0000“ für nicht bekannte Geburtstage und Geburtsmonate verwendet /// werden. /// - public Datenelement Geburtsdatum { get; private set; } + public DatenelementDateTime Geburtsdatum { get; private set; } /// /// Die Anschrift ist zwingend anzugeben, sofern die Versichertennummer/Versichertenstatus nicht bekannt ist. /// @@ -53,7 +54,7 @@ namespace Dakota.Models.Segmente.SLLA { Nachname = new Datenelement("Nachname", 0, 47, Feldart.Muss); Vorname = new Datenelement("Vorname", 0, 30, Feldart.Muss); - Geburtsdatum = new Datenelement("Geburtsdatum", 8, Feldart.Muss); + Geburtsdatum = new DatenelementDateTime("Geburtsdatum", 8, "yyyyMMdd", Feldart.Muss); StraßeNr = new Datenelement("StraßeNr", 0, 30, Feldart.Kann); PLZ = new Datenelement("PLZ", 0, 7, Feldart.Kann); Wohnort = new Datenelement("Wohnort", 0, 25, Feldart.Kann); diff --git a/Dakota/Models/Segmente/SLLA/SegmentSLLASKZ.cs b/Dakota/Models/Segmente/SLLA/SegmentSLLASKZ.cs index 2279b5b59..2e387586a 100644 --- a/Dakota/Models/Segmente/SLLA/SegmentSLLASKZ.cs +++ b/Dakota/Models/Segmente/SLLA/SegmentSLLASKZ.cs @@ -1,4 +1,5 @@ -using System.Collections.Generic; +using Dakota.Models.Daten; +using System.Collections.Generic; namespace Dakota.Models.Segmente.SLLA { diff --git a/Dakota/Models/Segmente/SLLA/SegmentSLLASUT.cs b/Dakota/Models/Segmente/SLLA/SegmentSLLASUT.cs index e1225f59a..9d1cd411b 100644 --- a/Dakota/Models/Segmente/SLLA/SegmentSLLASUT.cs +++ b/Dakota/Models/Segmente/SLLA/SegmentSLLASUT.cs @@ -1,4 +1,5 @@ -using System; +using Dakota.Models.Daten; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -16,17 +17,17 @@ namespace Dakota.Models.Segmente.SLLA /// Anzahl der gefahrenen Kilometer/ /// bzw.anteilige Kilometer.Das Datenfeld enthält Angaben über die Kilometeranzahl, die z.B. in einer Pauschale abgerechnet werden. Sofern /// Einzelkilometer abgerechnet werden, sind diese im Datenfeld Anzahl/Menge in ENF angegeben. /// - public Datenelement GefahreneKilometer { get; private set; } + public DatenelementDecimal GefahreneKilometer { get; private set; } /// /// HHMM (Wertebereich HH 00 bis 23, /// MM 00 bis 59) /// - public Datenelement Uhrzeit { get; private set; } + public DatenelementDateTime Uhrzeit { get; private set; } /// /// HHMM (Wertebereich HH 00 bis 23, /// MM 00 bis 59) /// - public Datenelement UhrzeitBis { get; private set; } + public DatenelementDateTime UhrzeitBis { get; private set; } /// /// Zeitangabe in Minuten. /// @@ -35,21 +36,21 @@ namespace Dakota.Models.Segmente.SLLA /// JJJJMMTT. Beginn des Versorgungszeitraumes. /// Angabe erfolgt soweit vorgesehen /// bzw.vertraglich vereinbart /// - public Datenelement VersorgungszeitraumVon { get; private set; } + public DatenelementDateTime VersorgungszeitraumVon { get; private set; } /// /// JJJJMMTT. Ende des Versorgungszeitraumes. /// Angabe erfolgt soweit vorgesehen /// bzw.vertraglich vereinbart /// Das Feld "Versorgungszeitraum bis" /// ist zwingend anzugeben, wenn das /// Feld "Versorgungszeitraum von" /// vorhanden ist. /// - public Datenelement VersorgungszeitraumBis { get; private set; } + public DatenelementDateTime VersorgungszeitraumBis { get; private set; } public SegmentSLLASUT() { - GefahreneKilometer = new Datenelement("GefahreneKilometer", 0, 6, Feldart.Kann); - Uhrzeit = new Datenelement("Uhrzeit", 4, Feldart.Kann); - UhrzeitBis = new Datenelement("UhrzeitBis", 4, Feldart.Kann); + GefahreneKilometer = new DatenelementDecimal("GefahreneKilometer", 0, 6, Feldart.Kann); + Uhrzeit = new DatenelementDateTime("Uhrzeit", 4, "HHmm", Feldart.Kann); + UhrzeitBis = new DatenelementDateTime("UhrzeitBis", 4, "HHmm", Feldart.Kann); Dauer = new Datenelement("Dauer", 0, 4, Feldart.Kann); - VersorgungszeitraumVon = new Datenelement("VersorgungszeitraumVon", 8, Feldart.Kann); - VersorgungszeitraumBis = new Datenelement("VersorgungszeitraumBis", 8, Feldart.Kann); + VersorgungszeitraumVon = new DatenelementDateTime("VersorgungszeitraumVon", 8, "yyyyMMdd", Feldart.Kann); + VersorgungszeitraumBis = new DatenelementDateTime("VersorgungszeitraumBis", 8, "yyyyMMdd", Feldart.Kann); } public override string GetHead() => "SUT"; diff --git a/Dakota/Models/Segmente/SLLA/SegmentSLLATXT.cs b/Dakota/Models/Segmente/SLLA/SegmentSLLATXT.cs index 7e15b4f82..9c96f82a3 100644 --- a/Dakota/Models/Segmente/SLLA/SegmentSLLATXT.cs +++ b/Dakota/Models/Segmente/SLLA/SegmentSLLATXT.cs @@ -1,4 +1,5 @@ -using System.Collections.Generic; +using Dakota.Models.Daten; +using System.Collections.Generic; namespace Dakota.Models.Segmente.SLLA { diff --git a/Dakota/Models/Segmente/SLLA/SegmentSLLAURI.cs b/Dakota/Models/Segmente/SLLA/SegmentSLLAURI.cs index 6c8cd1d80..8e0284285 100644 --- a/Dakota/Models/Segmente/SLLA/SegmentSLLAURI.cs +++ b/Dakota/Models/Segmente/SLLA/SegmentSLLAURI.cs @@ -1,4 +1,5 @@ -using System.Collections.Generic; +using Dakota.Models.Daten; +using System.Collections.Generic; namespace Dakota.Models.Segmente.SLLA { diff --git a/Dakota/Models/Segmente/SLLA/SegmentSLLAZUV.cs b/Dakota/Models/Segmente/SLLA/SegmentSLLAZUV.cs index cba82a668..50195b8d6 100644 --- a/Dakota/Models/Segmente/SLLA/SegmentSLLAZUV.cs +++ b/Dakota/Models/Segmente/SLLA/SegmentSLLAZUV.cs @@ -1,4 +1,5 @@ -using System; +using Dakota.Models.Daten; +using System; using System.Collections.Generic; using System.Linq; using System.Text; diff --git a/Dakota/Models/Segmente/SLLA/SegmentSLLAZUZ.cs b/Dakota/Models/Segmente/SLLA/SegmentSLLAZUZ.cs index 253f40819..a7c4532d9 100644 --- a/Dakota/Models/Segmente/SLLA/SegmentSLLAZUZ.cs +++ b/Dakota/Models/Segmente/SLLA/SegmentSLLAZUZ.cs @@ -1,4 +1,5 @@ -using System; +using Dakota.Models.Daten; +using System; using System.Collections.Generic; using System.Linq; using System.Text; diff --git a/Dakota/Models/Segmente/Segment.cs b/Dakota/Models/Segmente/Segment.cs index 80c353dba..129f04f7d 100644 --- a/Dakota/Models/Segmente/Segment.cs +++ b/Dakota/Models/Segmente/Segment.cs @@ -1,4 +1,5 @@ -using System; +using Dakota.Models.Daten; +using System; using System.Collections.Generic; using System.Linq; using System.Text; diff --git a/Dakota/Models/Segmente/SegmentUNB.cs b/Dakota/Models/Segmente/SegmentUNB.cs index 9b8c226ea..25a1cb1f9 100644 --- a/Dakota/Models/Segmente/SegmentUNB.cs +++ b/Dakota/Models/Segmente/SegmentUNB.cs @@ -1,4 +1,6 @@ -using System.Collections.Generic; +using Dakota.Models.Daten; +using System; +using System.Collections.Generic; namespace Dakota.Models.Segmente { @@ -44,11 +46,11 @@ namespace Dakota.Models.Segmente /// /// Erstelldatum der Datei /// - public Datenelement Datum { get; private set; } + public DatenelementDateTime Datum { get; private set; } /// /// Erstelluhrzeit der Datei /// - public Datenelement Uhrzeit { get; private set; } + public DatenelementDateTime Uhrzeit { get; private set; } /// /// Ab Version 12 ist die Datenaustauschreferenz zwingend zu füllen. /// Genutzt werden die ersten 5 Stellen; @@ -58,7 +60,7 @@ namespace Dakota.Models.Segmente /// Bei Überlauf der Datenaustauschreferenz („99999“) ist wieder /// bei Eins(„00001“) zu beginnen /// - public Datenelement Datenaustauschreferenz { get; private set; } + public DatenelementFiller Datenaustauschreferenz { get; private set; } /// /// Einzutragen ist der Leistungserbringer-Sammelgruppenschlüssel, /// siehe Schlüssel Anlage 3 Abschnitt 8.1.14 @@ -85,9 +87,9 @@ namespace Dakota.Models.Segmente Absenderdatei = new Datenelement("Absenderdatei", 0, 35, Feldart.Muss); Empfangdatei = new Datenelement("Empfangdatei", 0, 35, Feldart.Muss); DatumUhrzeit = new Datenelementgruppe("DatumUhrzeit", 2); - Datum = DatumUhrzeit.Datenelemente[0] = new Datenelement("Datum", 8, Feldart.Muss); - Uhrzeit = DatumUhrzeit.Datenelemente[1] = new Datenelement("Uhrzeit", 4, Feldart.Muss); - Datenaustauschreferenz = new Datenelement("Datenaustauschreferenz", 0, 14, Feldart.Muss); + DatumUhrzeit.Datenelemente[0] = Datum = new DatenelementDateTime("Datum", 8, "yyyyMMdd", Feldart.Muss); + DatumUhrzeit.Datenelemente[1] = Uhrzeit = new DatenelementDateTime("Uhrzeit", 4, "HHmm", Feldart.Muss); + Datenaustauschreferenz = new DatenelementFiller("Datenaustauschreferenz", 0, 14, 5); Leistungsbereich = new Datenelement("Leistungsbereich", 1, Feldart.Muss); Anwengundsreferenz = new Datenelement("Anwengundsreferenz", 0, 14, Feldart.Muss); Testindikator = new Datenelement("Testindikator", 1, Feldart.Muss); diff --git a/Dakota/Models/Segmente/SegmentUNH.cs b/Dakota/Models/Segmente/SegmentUNH.cs index 063dace54..c9dd6fc2a 100644 --- a/Dakota/Models/Segmente/SegmentUNH.cs +++ b/Dakota/Models/Segmente/SegmentUNH.cs @@ -1,4 +1,5 @@ -using System; +using Dakota.Models.Daten; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -22,7 +23,7 @@ namespace Dakota.Models.Segmente /// Nullen, /// z.B. 00001 für 1. UNH /// - public Datenelement Nachrichtenreferenznummer { get; private set; } + public DatenelementFiller Nachrichtenreferenznummer { get; private set; } /// /// Bei Nachricht SLGA ist einzutragen: /// SLGA:18:0:0 @@ -58,7 +59,7 @@ namespace Dakota.Models.Segmente public SegmentUNH() { - Nachrichtenreferenznummer = new Datenelement("Nachrichtenreferenznummer", 0, 14, Feldart.Muss); + Nachrichtenreferenznummer = new DatenelementFiller("Nachrichtenreferenznummer", 0, 14, 5); Nachrichtenerkennung = new Datenelementgruppe("Nachrichtenerkennung", 4); NachrichtenTypKennung = Nachrichtenerkennung.Datenelemente[0] = new Datenelement("NachrichtenTypKennung", 0, 6, Feldart.Muss); Verionsnummer = Nachrichtenerkennung.Datenelemente[1] = new Datenelement("Verionsnummer", 0, 3, Feldart.Muss); diff --git a/Dakota/Models/Segmente/SegmentUNT.cs b/Dakota/Models/Segmente/SegmentUNT.cs index 8a6329d8c..2b36eee17 100644 --- a/Dakota/Models/Segmente/SegmentUNT.cs +++ b/Dakota/Models/Segmente/SegmentUNT.cs @@ -1,4 +1,5 @@ -using System; +using Dakota.Models.Daten; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -19,12 +20,12 @@ namespace Dakota.Models.Segmente /// /// wie in UNH /// - public Datenelement Nachrichtenreferenznummer { get; private set; } + public DatenelementFiller Nachrichtenreferenznummer { get; private set; } public SegmentUNT(Func counter) { AnzahlEinheiten = new DatenelementCounter("AnzahlEinheiten", 6, counter); - Nachrichtenreferenznummer = new Datenelement("Nachrichtenreferenznummer", 0, 14, Feldart.Muss); + Nachrichtenreferenznummer = new DatenelementFiller("Nachrichtenreferenznummer", 0, 14, 5); } public override string GetHead() => "UNT"; diff --git a/Dakota/Models/Segmente/SegmentUNZ.cs b/Dakota/Models/Segmente/SegmentUNZ.cs index 71e8f6f1c..be1d197e0 100644 --- a/Dakota/Models/Segmente/SegmentUNZ.cs +++ b/Dakota/Models/Segmente/SegmentUNZ.cs @@ -1,4 +1,5 @@ -using System; +using Dakota.Models.Daten; +using System; using System.Collections.Generic; using System.Linq; using System.Text; @@ -15,16 +16,17 @@ namespace Dakota.Models.Segmente /// /// Anzahl UNHs in der Nutzdatendatei /// - public Datenelement AnzahlNachrichten { get; private set; } + public DatenelementCounter AnzahlNachrichten { get; private set; } /// /// wie in UNB /// - public Datenelement Datenaustauschreferenz { get; private set; } + public DatenelementFiller Datenaustauschreferenz { get; private set; } - public SegmentUNZ() + public SegmentUNZ(Func counter) { - AnzahlNachrichten = new Datenelement("AnzahlNachrichten", 6, Feldart.Muss); - Datenaustauschreferenz = new Datenelement("Datenaustauschreferenz", 0, 14, Feldart.Muss); + AnzahlNachrichten = new DatenelementCounter("AnzahlNachrichten", 6, counter); + //new Datenelement("AnzahlNachrichten", 6, Feldart.Muss); + Datenaustauschreferenz = new DatenelementFiller("Datenaustauschreferenz", 0, 14, 5); } public override string GetHead() => "UNZ";