Umstrikturierung (noch Rechnungsart 1) + Berechnungsregeln
This commit is contained in:
@@ -65,9 +65,9 @@
|
||||
<Compile Include="Models\Daten\DatenelementFiller.cs" />
|
||||
<Compile Include="Models\Infos\InfoDateiAuftrags.cs" />
|
||||
<Compile Include="Models\Infos\InfoDateiNutzdaten.cs" />
|
||||
<Compile Include="Models\Blocke\BlockAbrechnungsfall.cs" />
|
||||
<Compile Include="Models\Blocke\BlockKlient.cs" />
|
||||
<Compile Include="Models\Blocke\BlockKostenträger.cs" />
|
||||
<Compile Include="Models\Blocke\BlockKrankenkarteVerordnung.cs" />
|
||||
<Compile Include="Models\Blocke\BlockKrankenkasse.cs" />
|
||||
<Compile Include="Models\Infos\InfoAbrechnungsfall.cs" />
|
||||
<Compile Include="Models\Infos\InfoAbrechnungsposition.cs" />
|
||||
<Compile Include="Models\Infos\InfoBlockDiagnosen.cs" />
|
||||
|
||||
@@ -18,12 +18,12 @@ namespace Dakota.Logic
|
||||
public ServiceInvoice ServiceInvoice { get; set; }
|
||||
public InvoiceBase InvoiceBase { get; set; }
|
||||
public Customer Customer { get; set; }
|
||||
public SozioInvoiceItem SozioInvoiceItem { get; set; }
|
||||
|
||||
public string IKKostentrager => "111222333";
|
||||
public string IKKvkarte => "333444555";
|
||||
public string Versichertenstatus => "55555";
|
||||
public string Belegnummer => "444444test";
|
||||
public string Identifikationsnummer => "111";
|
||||
}
|
||||
|
||||
public struct InfoCreatorParameter2
|
||||
@@ -137,9 +137,9 @@ namespace Dakota.Logic
|
||||
info.Verschlusselungsart = 0;
|
||||
info.ElektronischeUnterschrift = 0;
|
||||
|
||||
// info.Satzformat = "";
|
||||
// info.Satzlange = 0;
|
||||
// info.Blocklange = 0;
|
||||
info.Satzformat = " ";
|
||||
info.Satzlange = 0;
|
||||
info.Blocklange = 0;
|
||||
|
||||
// Part 3 nicht vom Absender
|
||||
|
||||
@@ -212,7 +212,6 @@ namespace Dakota.Logic
|
||||
|
||||
internal static InfoAbrechnungsposition GetDakotaInfoAbrechnungsposition(this InfoAbrechnungsfall fall, InfoCreatorParameter para, InfoCreatorParameter2 para2)
|
||||
{
|
||||
var id = para.Identifikationsnummer;
|
||||
var pos = CreateDakotaInfoAbrechnungsposition(para);
|
||||
|
||||
return pos;
|
||||
@@ -294,18 +293,6 @@ namespace Dakota.Logic
|
||||
info.VersichtertenWohnort = para.Customer.Person.Address.Town;
|
||||
info.VersichtertenLanderkennung = null;
|
||||
|
||||
// info.DakotaInfosAbrechnungsposition.Add(GetDakotaInfoAbrechnungsposition(para));
|
||||
|
||||
// Kann
|
||||
|
||||
// info.DakotaInfoDiagnosen.Add(GetDakotaInfoDiagnosen());
|
||||
|
||||
//info.GesamtbetragGesetzlicheZuzahlung = 0;
|
||||
//info.GesamtbetragProzentualeZuzahlung = 0;
|
||||
//info.PauschalerZuzahlungsbetrag = 0;
|
||||
//info.GesamtbetragEigenanteil = 0;
|
||||
//info.GesamtbetragBrutto = 0;
|
||||
|
||||
return info;
|
||||
}
|
||||
|
||||
@@ -313,19 +300,21 @@ namespace Dakota.Logic
|
||||
{
|
||||
var info = new InfoAbrechnungsposition();
|
||||
|
||||
info.Identifikationsnummer = para.Identifikationsnummer;
|
||||
info.Abrechnungscode = SchlüsselAbrechnungscodes.SoziotherapeutischerLeistungserbringer;
|
||||
info.Identifikationsnummer = para.SozioInvoiceItem.Identifikationsnummer;
|
||||
|
||||
info.TarifkennzeichenBereich = SchlüsselTarifkennzeichenBereich.NordRheinWestfalen;
|
||||
info.TarifkennzeichenSondertarif = SchlüsselTarifkennzeichenSondertarif.OhneBesonderheiten;
|
||||
info.Abrechnungscode = new SchlüsselAbrechnungscodes(para.SozioInvoiceItem.Abrechnungscode);
|
||||
|
||||
info.AbrechnungspositionArtDerEinrichtung = SchlüsselPosArtDerEinrichtung.SoziotherapeutischerLeistungserbringer;
|
||||
info.AbrechnungspositionBehandlungsart = SchlüsselPosBehandlungsart.Einzelbehandlung;
|
||||
info.AbrechnungspositionVergütungsart = SchlüsselPosVergütungsart.Gruppenbehandlung90Minuten9Teilnehmer;
|
||||
info.TarifkennzeichenBereich = new SchlüsselTarifkennzeichenBereich(para.SozioInvoiceItem.TarifkennzeichenBereich);
|
||||
info.TarifkennzeichenSondertarif = new SchlüsselTarifkennzeichenSondertarif(para.SozioInvoiceItem.TarifkennzeichenSondertarif);
|
||||
|
||||
info.AbrechnungspositionArtDerEinrichtung = new SchlüsselPosArtDerEinrichtung(para.SozioInvoiceItem.AbrechnungspositionArtDerEinrichtung);
|
||||
info.AbrechnungspositionBehandlungsart = new SchlüsselPosBehandlungsart(para.SozioInvoiceItem.AbrechnungspositionBehandlungsart);
|
||||
info.AbrechnungspositionVergütungsart = new SchlüsselPosVergütungsart(para.SozioInvoiceItem.AbrechnungspositionVergütungsart, para.SozioInvoiceItem.AbrechnungspositionVergütungsart2);
|
||||
|
||||
info.AnzahlMenge = para.InvoiceItem.UnitCount.Value;
|
||||
info.EinzelbetragAbrechnungsposition = para.InvoiceItem.AmountTotal.Value;
|
||||
info.DatumDerLeistungserbringung = para.InvoiceBase.InvoiceDate.Value;
|
||||
info.EinzelbetragAbrechnungsposition = para.InvoiceItem.AmountPerUnit.Value;
|
||||
info.DatumDerLeistungserbringung = para.InvoiceItem.ItemPeriodStart.Value;
|
||||
|
||||
info.BetragZuzahlung = 0;
|
||||
|
||||
return info;
|
||||
|
||||
@@ -12,7 +12,7 @@ namespace Dakota.Models.Blocke
|
||||
/// <summary>
|
||||
/// Nutzdatendatei ohne Logik
|
||||
/// </summary>
|
||||
internal class BlockFile : Nachricht
|
||||
internal class BlockFile : Block
|
||||
{
|
||||
public SegmentUNB SegmentUNB { get; private set; }
|
||||
public List<BlockKostenträger> BlockKostenträger { get; private set; }
|
||||
@@ -40,7 +40,7 @@ namespace Dakota.Models.Blocke
|
||||
|
||||
return list;
|
||||
}
|
||||
public int GetUNHCount()
|
||||
public override int GetUNHCount()
|
||||
{
|
||||
int i = 0;
|
||||
|
||||
|
||||
@@ -10,7 +10,7 @@ using Dakota.Models.Infos;
|
||||
|
||||
namespace Dakota.Models.Blocke
|
||||
{
|
||||
internal class BlockAbrechnungsfall : Block
|
||||
internal class BlockKlient : Block
|
||||
{
|
||||
|
||||
/// <summary>
|
||||
@@ -82,7 +82,7 @@ namespace Dakota.Models.Blocke
|
||||
public decimal GesamtbetragProzentualeZuzahlung => SegmentSLLABES.GesamtbetragProzentualeZuzahlung.DecimalValue;
|
||||
public decimal PauschalerZuzahlungsbetrag => SegmentSLLABES.PauschalerZuzahlungsbetrag.DecimalValue;
|
||||
|
||||
public BlockAbrechnungsfall()
|
||||
public BlockKlient()
|
||||
{
|
||||
SegmentSLLAINV = new SegmentSLLAINV();
|
||||
SegmentSLLAURI = new SegmentSLLAURI();
|
||||
@@ -19,14 +19,14 @@ namespace Dakota.Models.Blocke
|
||||
public SegmentUNH SegmentUNH { get; private set; }
|
||||
public NachrichtSLGA NachrichtSLGA { get; private set; }
|
||||
public SegmentUNT SegmentUNT { get; private set; }
|
||||
public List<BlockKrankenkarteVerordnung> BlockKrankenkarteVerordnung { get; private set; }
|
||||
public List<BlockKrankenkasse> BlockKrankenkasse { get; private set; }
|
||||
|
||||
internal BlockKostenträger()
|
||||
{
|
||||
SegmentUNH = new SegmentUNH();
|
||||
NachrichtSLGA = new NachrichtSLGA();
|
||||
SegmentUNT = new SegmentUNT(NachrichtSLGA.GetSegmentLength);
|
||||
BlockKrankenkarteVerordnung = new List<BlockKrankenkarteVerordnung>();
|
||||
BlockKrankenkasse = new List<BlockKrankenkasse>();
|
||||
}
|
||||
|
||||
public string IKKostenträger
|
||||
@@ -43,7 +43,7 @@ namespace Dakota.Models.Blocke
|
||||
list.AddRange(NachrichtSLGA.GetSegments());
|
||||
list.Add(SegmentUNT);
|
||||
|
||||
foreach (var block in BlockKrankenkarteVerordnung)
|
||||
foreach (var block in BlockKrankenkasse)
|
||||
{
|
||||
list.AddRange(block.GetSegments());
|
||||
}
|
||||
@@ -54,7 +54,7 @@ namespace Dakota.Models.Blocke
|
||||
{
|
||||
var i = 1;
|
||||
|
||||
foreach (var block in BlockKrankenkarteVerordnung)
|
||||
foreach (var block in BlockKrankenkasse)
|
||||
{
|
||||
i += block.GetUNHCount();
|
||||
}
|
||||
@@ -62,9 +62,9 @@ namespace Dakota.Models.Blocke
|
||||
return i;
|
||||
}
|
||||
|
||||
public void Add(BlockKrankenkarteVerordnung block)
|
||||
public void Add(BlockKrankenkasse block)
|
||||
{
|
||||
BlockKrankenkarteVerordnung.Add(block);
|
||||
BlockKrankenkasse.Add(block);
|
||||
}
|
||||
public void Apply(InfoBlockKostentrager info)
|
||||
{
|
||||
@@ -78,7 +78,7 @@ namespace Dakota.Models.Blocke
|
||||
|
||||
foreach (var infoblock in info.BlockKvKarte)
|
||||
{
|
||||
var blockkvkarte = new BlockKrankenkarteVerordnung();
|
||||
var blockkvkarte = new BlockKrankenkasse();
|
||||
|
||||
blockkvkarte.Apply(infoblock);
|
||||
|
||||
@@ -94,7 +94,7 @@ namespace Dakota.Models.Blocke
|
||||
{
|
||||
Dictionary<string, decimal[]> segments = new Dictionary<string, decimal[]>();
|
||||
|
||||
foreach (var block in BlockKrankenkarteVerordnung)
|
||||
foreach (var block in BlockKrankenkasse)
|
||||
{
|
||||
// Gesamt
|
||||
CalculateSLGAStep(segments, block.NachrichtSLGA.SegmentGES00);
|
||||
|
||||
@@ -15,7 +15,7 @@ namespace Dakota.Models.Blocke
|
||||
/// <summary>
|
||||
/// Wiederhole folgenden Block je IK der Krankenkarte bzw der Verordnung
|
||||
/// </summary>
|
||||
internal class BlockKrankenkarteVerordnung : Block
|
||||
internal class BlockKrankenkasse : Block
|
||||
{
|
||||
public SegmentUNH SegmentSLGAUNH { get; private set; }
|
||||
public NachrichtSLGA NachrichtSLGA { get; private set; }
|
||||
@@ -24,7 +24,7 @@ namespace Dakota.Models.Blocke
|
||||
public NachrichtSLLA NachrichtSLLA { get; private set; }
|
||||
public SegmentUNT SegmentSLLAUNT { get; private set; }
|
||||
|
||||
public BlockKrankenkarteVerordnung()
|
||||
public BlockKrankenkasse()
|
||||
{
|
||||
SegmentSLGAUNH = new SegmentUNH();
|
||||
NachrichtSLGA = new NachrichtSLGA();
|
||||
@@ -104,7 +104,7 @@ namespace Dakota.Models.Blocke
|
||||
|
||||
Dictionary<int, decimal[]> segments = new Dictionary<int, decimal[]>();
|
||||
|
||||
foreach (var fall in NachrichtSLLA.Abrechnungsfalle)
|
||||
foreach (var fall in NachrichtSLLA.BlockKlienten)
|
||||
{
|
||||
int status = 11;
|
||||
|
||||
@@ -76,6 +76,7 @@ namespace Dakota.Models.Nachrichten
|
||||
public void Apply(InfoNachrichtSLGA info)
|
||||
{
|
||||
SegmentFKT.Verarbeitungskennzeichen.SetValue(info.Verarbeitungskennzeichen);
|
||||
SegmentFKT.Sammelrechnung.SetValue("J");
|
||||
SegmentFKT.IKLeistungserbringers.SetValue(info.IKLeistungserbringer);
|
||||
SegmentFKT.IKKostenträger.SetValue(info.IKKostentrager);
|
||||
SegmentFKT.IKKrankenkasseKVKarte.SetValue(info.IKKvKarte);
|
||||
|
||||
@@ -28,7 +28,7 @@ namespace Dakota.Models.Nachrichten
|
||||
/// <summary>
|
||||
/// Abrechnungsfälle (INV - BES)
|
||||
/// </summary>
|
||||
public List<BlockAbrechnungsfall> Abrechnungsfalle { get; set; }
|
||||
public List<BlockKlient> BlockKlienten { get; set; }
|
||||
|
||||
|
||||
|
||||
@@ -37,14 +37,14 @@ namespace Dakota.Models.Nachrichten
|
||||
SegmentSLLAFKT = new SegmentSLLAFKT();
|
||||
SegmentSLLAREC = new SegmentSLLAREC();
|
||||
|
||||
Abrechnungsfalle = new List<BlockAbrechnungsfall>();
|
||||
BlockKlienten = new List<BlockKlient>();
|
||||
}
|
||||
|
||||
public override List<Segment> GetAllSegments()
|
||||
{
|
||||
var list = new List<Segment>() { SegmentSLLAFKT, SegmentSLLAREC };
|
||||
|
||||
foreach (var block in Abrechnungsfalle)
|
||||
foreach (var block in BlockKlienten)
|
||||
{
|
||||
list.AddRange(block.GetSegments());
|
||||
}
|
||||
@@ -52,9 +52,9 @@ namespace Dakota.Models.Nachrichten
|
||||
return list;
|
||||
}
|
||||
|
||||
public void Add(BlockAbrechnungsfall fall)
|
||||
public void Add(BlockKlient fall)
|
||||
{
|
||||
Abrechnungsfalle.Add(fall);
|
||||
BlockKlienten.Add(fall);
|
||||
}
|
||||
public void Apply(InfoNachrichtSLLA info)
|
||||
{
|
||||
@@ -66,7 +66,7 @@ namespace Dakota.Models.Nachrichten
|
||||
|
||||
foreach (var infofall in info.Abrechnungsfalle)
|
||||
{
|
||||
var block = new BlockAbrechnungsfall();
|
||||
var block = new BlockKlient();
|
||||
|
||||
block.Apply(infofall);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user