first half of basic code impl
This commit is contained in:
73
Dakota/Dakota.csproj
Normal file
73
Dakota/Dakota.csproj
Normal file
@@ -0,0 +1,73 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
|
||||
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
|
||||
<PropertyGroup>
|
||||
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
|
||||
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
|
||||
<ProjectGuid>{47331732-DD96-4075-869F-83AA9F3F9937}</ProjectGuid>
|
||||
<OutputType>Library</OutputType>
|
||||
<AppDesignerFolder>Properties</AppDesignerFolder>
|
||||
<RootNamespace>Dakota</RootNamespace>
|
||||
<AssemblyName>Dakota</AssemblyName>
|
||||
<TargetFrameworkVersion>v4.7.2</TargetFrameworkVersion>
|
||||
<FileAlignment>512</FileAlignment>
|
||||
<Deterministic>true</Deterministic>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
|
||||
<DebugSymbols>true</DebugSymbols>
|
||||
<DebugType>full</DebugType>
|
||||
<Optimize>false</Optimize>
|
||||
<OutputPath>bin\Debug\</OutputPath>
|
||||
<DefineConstants>DEBUG;TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
|
||||
<DebugType>pdbonly</DebugType>
|
||||
<Optimize>true</Optimize>
|
||||
<OutputPath>bin\Release\</OutputPath>
|
||||
<DefineConstants>TRACE</DefineConstants>
|
||||
<ErrorReport>prompt</ErrorReport>
|
||||
<WarningLevel>4</WarningLevel>
|
||||
</PropertyGroup>
|
||||
<ItemGroup>
|
||||
<Reference Include="System" />
|
||||
<Reference Include="System.Core" />
|
||||
<Reference Include="System.Xml.Linq" />
|
||||
<Reference Include="System.Data.DataSetExtensions" />
|
||||
<Reference Include="Microsoft.CSharp" />
|
||||
<Reference Include="System.Data" />
|
||||
<Reference Include="System.Net.Http" />
|
||||
<Reference Include="System.Xml" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="DakotaConfig.cs" />
|
||||
<Compile Include="Dateneinheit.cs" />
|
||||
<Compile Include="Datenelement.cs" />
|
||||
<Compile Include="Datenelementgruppe.cs" />
|
||||
<Compile Include="Nachricht.cs" />
|
||||
<Compile Include="NachrichtSLGA.cs" />
|
||||
<Compile Include="NachrichtSLLA.cs" />
|
||||
<Compile Include="Nutzdatendatei.cs" />
|
||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||
<Compile Include="Segmente\Segment.cs" />
|
||||
<Compile Include="Segmente\SegmentSLGAFKT.cs" />
|
||||
<Compile Include="Segmente\SegmentSLGAGES.cs" />
|
||||
<Compile Include="Segmente\SegmentSLGANAM.cs" />
|
||||
<Compile Include="Segmente\SegmentSLGAREC.cs" />
|
||||
<Compile Include="Segmente\SegmentSLGASKO.cs" />
|
||||
<Compile Include="Segmente\SegmentSLLAFKT.cs" />
|
||||
<Compile Include="Segmente\SegmentSLLAINV.cs" />
|
||||
<Compile Include="Segmente\SegmentSLLANAD.cs" />
|
||||
<Compile Include="Segmente\SegmentSLLAREC.cs" />
|
||||
<Compile Include="Segmente\SegmentSLLAURI.cs" />
|
||||
<Compile Include="Segmente\SegmentSLLAIMG.cs" />
|
||||
<Compile Include="Segmente\SegmentUNB.cs" />
|
||||
<Compile Include="Segmente\SegmentUNH.cs" />
|
||||
<Compile Include="Segmente\SegmentUNT.cs" />
|
||||
<Compile Include="Segmente\SegmentUNZ.cs" />
|
||||
<Compile Include="Segmente\SegmentSLGAUST.cs" />
|
||||
<Compile Include="SozioTherapieDatei.cs" />
|
||||
</ItemGroup>
|
||||
<Import Project="$(MSBuildToolsPath)\Microsoft.CSharp.targets" />
|
||||
</Project>
|
||||
16
Dakota/DakotaConfig.cs
Normal file
16
Dakota/DakotaConfig.cs
Normal file
@@ -0,0 +1,16 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota
|
||||
{
|
||||
public static class DakotaConfig
|
||||
{
|
||||
public static string TrennzeichenInnerhalb => ":";
|
||||
public static string Trennzeichen => "+";
|
||||
public static string Aufhebungszeichen => "?";
|
||||
public static string Segmentendezeichen => "'";
|
||||
}
|
||||
}
|
||||
13
Dakota/Dateneinheit.cs
Normal file
13
Dakota/Dateneinheit.cs
Normal file
@@ -0,0 +1,13 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota
|
||||
{
|
||||
internal abstract class Dateneinheit
|
||||
{
|
||||
public abstract string GetValue();
|
||||
}
|
||||
}
|
||||
37
Dakota/Datenelement.cs
Normal file
37
Dakota/Datenelement.cs
Normal file
@@ -0,0 +1,37 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota
|
||||
{
|
||||
internal class Datenelement : Dateneinheit
|
||||
{
|
||||
public string Value { get; set; }
|
||||
public int MinStellen { get; set; }
|
||||
public int MaxStellen { get; set; }
|
||||
|
||||
public Datenelement()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public Datenelement(int min, int max)
|
||||
{
|
||||
MinStellen = min;
|
||||
MaxStellen = max;
|
||||
}
|
||||
|
||||
public Datenelement(int count)
|
||||
{
|
||||
MinStellen = count;
|
||||
MaxStellen = count;
|
||||
}
|
||||
|
||||
public override string GetValue()
|
||||
{
|
||||
return Value;
|
||||
}
|
||||
}
|
||||
}
|
||||
36
Dakota/Datenelementgruppe.cs
Normal file
36
Dakota/Datenelementgruppe.cs
Normal file
@@ -0,0 +1,36 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota
|
||||
{
|
||||
internal class Datenelementgruppe : Dateneinheit
|
||||
{
|
||||
public Datenelement[] Datenelemente { get; set; }
|
||||
|
||||
public Datenelementgruppe(int count)
|
||||
{
|
||||
if (count < 2)
|
||||
throw new ArgumentOutOfRangeException("#37493218741616891269821");
|
||||
|
||||
Datenelemente = new Datenelement[count];
|
||||
}
|
||||
|
||||
public void SetValue(int loc, string val)
|
||||
{
|
||||
Datenelemente[loc].Value = val;
|
||||
}
|
||||
|
||||
public string GetValue(int loc)
|
||||
{
|
||||
return Datenelemente[loc].GetValue();
|
||||
}
|
||||
|
||||
public override string GetValue()
|
||||
{
|
||||
return string.Join(DakotaConfig.TrennzeichenInnerhalb, Datenelemente.Select(x => x.GetValue()));
|
||||
}
|
||||
}
|
||||
}
|
||||
18
Dakota/Nachricht.cs
Normal file
18
Dakota/Nachricht.cs
Normal file
@@ -0,0 +1,18 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota
|
||||
{
|
||||
internal class Nachricht
|
||||
{
|
||||
//public List<Segment> Segmente { get; set; }
|
||||
|
||||
//public Nachricht()
|
||||
//{
|
||||
// Segmente = new List<Segment>();
|
||||
//}
|
||||
}
|
||||
}
|
||||
43
Dakota/NachrichtSLGA.cs
Normal file
43
Dakota/NachrichtSLGA.cs
Normal file
@@ -0,0 +1,43 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota
|
||||
{
|
||||
/// <summary>
|
||||
/// Gesamtaufstellung der
|
||||
/// Abrechnung(Rechnung)
|
||||
/// </summary>
|
||||
internal class NachrichtSLGA
|
||||
{
|
||||
/// <summary>
|
||||
/// 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
|
||||
/// </summary>
|
||||
public SegmentSLGAFKT SegmentFKT { get; set; }
|
||||
/// <summary>
|
||||
/// Das Segment enthält die Rechnungsinformationen, wie Rechnungsnummer und Rechnungsdatum.
|
||||
/// </summary>
|
||||
public SegmentSLGAREC SegmentREC { get; set; }
|
||||
/// <summary>
|
||||
/// Das Segment enthält Informationen zur Umsatzsteuer.
|
||||
/// </summary>
|
||||
public SegmentSLGAUST SegmentUST { get; set; }
|
||||
/// <summary>
|
||||
/// Das Segment enthält Informationen, ob Skonto gewährt wird
|
||||
/// (Skonto in Prozent, Zahlungsziel).
|
||||
/// </summary>
|
||||
public SegmentSLGASKO SegmentSKO { get; set; }
|
||||
/// <summary>
|
||||
/// Das Segment enthält Rechnungssummen (Bruttobetrag, Zuzahlungsbetrag, Nettobetrag je Status).
|
||||
/// </summary>
|
||||
public SegmentSLGAGES SegmentGES { get; set; }
|
||||
/// <summary>
|
||||
/// Das Segment enthält den Namen und die Firmenbezeichnung des Leistungserbringers
|
||||
/// </summary>
|
||||
public SegmentSLGANAM SegmentNAM { get; set; }
|
||||
}
|
||||
}
|
||||
49
Dakota/NachrichtSLLA.cs
Normal file
49
Dakota/NachrichtSLLA.cs
Normal file
@@ -0,0 +1,49 @@
|
||||
using Dakota.Segmente;
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota
|
||||
{
|
||||
/// <summary>
|
||||
/// Leistungserbringer
|
||||
/// </summary>
|
||||
internal class NachrichtSLLA
|
||||
{
|
||||
/// <summary>
|
||||
/// 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.
|
||||
/// </summary>
|
||||
public SegmentSLLAFKT SegmentSLLAFKT { get; private set; }
|
||||
/// <summary>
|
||||
/// Das Segment enthält die Rechnungsinformationen, wie Rechnungsnummer und Rechnungsdatum
|
||||
/// </summary>
|
||||
public SegmentSLLAREC SegmentSLLAREC { get; private set; }
|
||||
/// <summary>
|
||||
/// 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.
|
||||
/// </summary>
|
||||
public SegmentSLLAINV SegmentSLLAINV { get; private set; }
|
||||
/// <summary>
|
||||
/// 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
|
||||
/// </summary>
|
||||
public SegmentSLLAURI SegmentSLLAURI { get; private set; }
|
||||
/// <summary>
|
||||
/// Das Segment enthält den Namen und die Adressdaten des
|
||||
/// Versicherten.
|
||||
/// </summary>
|
||||
public SegmentSLLANAD SegmentSLLANAD { get; private set; }
|
||||
/// <summary>
|
||||
/// Das Segment enthält den Imagenamen bei Übermittlung von
|
||||
/// Imagearchiven durch den Absender.
|
||||
/// </summary>
|
||||
18
Dakota/Nutzdatendatei.cs
Normal file
18
Dakota/Nutzdatendatei.cs
Normal file
@@ -0,0 +1,18 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota
|
||||
{
|
||||
internal class Nutzdatendatei
|
||||
{
|
||||
//public List<Nachricht> Nachrichten { get; set; }
|
||||
|
||||
//public Nutzdatendatei()
|
||||
//{
|
||||
// Nachrichten = new List<Nachricht>();
|
||||
//}
|
||||
}
|
||||
}
|
||||
36
Dakota/Properties/AssemblyInfo.cs
Normal file
36
Dakota/Properties/AssemblyInfo.cs
Normal file
@@ -0,0 +1,36 @@
|
||||
using System.Reflection;
|
||||
using System.Runtime.CompilerServices;
|
||||
using System.Runtime.InteropServices;
|
||||
|
||||
// Allgemeine Informationen über eine Assembly werden über die folgenden
|
||||
// Attribute gesteuert. Ändern Sie diese Attributwerte, um die Informationen zu ändern,
|
||||
// die einer Assembly zugeordnet sind.
|
||||
[assembly: AssemblyTitle("Dakota")]
|
||||
[assembly: AssemblyDescription("")]
|
||||
[assembly: AssemblyConfiguration("")]
|
||||
[assembly: AssemblyCompany("")]
|
||||
[assembly: AssemblyProduct("Dakota")]
|
||||
[assembly: AssemblyCopyright("Copyright © 2023")]
|
||||
[assembly: AssemblyTrademark("")]
|
||||
[assembly: AssemblyCulture("")]
|
||||
|
||||
// Durch Festlegen von ComVisible auf FALSE werden die Typen in dieser Assembly
|
||||
// für COM-Komponenten unsichtbar. Wenn Sie auf einen Typ in dieser Assembly von
|
||||
// COM aus zugreifen müssen, sollten Sie das ComVisible-Attribut für diesen Typ auf "True" festlegen.
|
||||
[assembly: ComVisible(false)]
|
||||
|
||||
// Die folgende GUID bestimmt die ID der Typbibliothek, wenn dieses Projekt für COM verfügbar gemacht wird
|
||||
[assembly: Guid("47331732-dd96-4075-869f-83aa9f3f9937")]
|
||||
|
||||
// Versionsinformationen für eine Assembly bestehen aus den folgenden vier Werten:
|
||||
//
|
||||
// Hauptversion
|
||||
// Nebenversion
|
||||
// Buildnummer
|
||||
// Revision
|
||||
//
|
||||
// Sie können alle Werte angeben oder Standardwerte für die Build- und Revisionsnummern verwenden,
|
||||
// indem Sie "*" wie unten gezeigt eingeben:
|
||||
// [assembly: AssemblyVersion("1.0.*")]
|
||||
[assembly: AssemblyVersion("1.0.0.0")]
|
||||
[assembly: AssemblyFileVersion("1.0.0.0")]
|
||||
21
Dakota/Segmente/Segment.cs
Normal file
21
Dakota/Segmente/Segment.cs
Normal file
@@ -0,0 +1,21 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Segmente
|
||||
{
|
||||
internal abstract class Segment
|
||||
{
|
||||
//public List<Datenelement> Datenelemente { get; set; }
|
||||
|
||||
public abstract string GetHead();
|
||||
public abstract List<Dateneinheit> GetBody();
|
||||
|
||||
public string ToString()
|
||||
{
|
||||
return GetHead() + DakotaConfig.Trennzeichen + string.Join(DakotaConfig.Trennzeichen, GetBody().Select(x => x.GetValue())) + DakotaConfig.Segmentendezeichen;
|
||||
}
|
||||
}
|
||||
}
|
||||
67
Dakota/Segmente/SegmentSLGAFKT.cs
Normal file
67
Dakota/Segmente/SegmentSLGAFKT.cs
Normal file
@@ -0,0 +1,67 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Segmente
|
||||
{
|
||||
/// <summary>
|
||||
/// Das Segment ist je Nachricht einmal
|
||||
/// zu übermitteln.
|
||||
/// </summary>
|
||||
internal class SegmentSLGAFKT : Segment
|
||||
{
|
||||
/// <summary>
|
||||
/// siehe Schlüssel Verarbeitungskennzeichen Anlage 3 Abschnitt 8.1.7
|
||||
/// </summary>
|
||||
public Datenelement Verarbeitungskennzeichen { get; private set; }
|
||||
/// <summary>
|
||||
/// Feld ist nur anzugeben und mit „J“ zu
|
||||
/// füllen, wenn es sich um eine Sammelrechnung handelt
|
||||
/// </summary>
|
||||
public Datenelement Sammelrechnung { get; private set; }
|
||||
/// <summary>
|
||||
/// 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.
|
||||
/// </summary>
|
||||
public Datenelement IKLeistungserbringers { get; private set; }
|
||||
/// <summary>
|
||||
/// 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.
|
||||
/// </summary>
|
||||
public Datenelement IKKostenträger { get; private set; }
|
||||
/// <summary>
|
||||
/// 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.
|
||||
/// </summary>
|
||||
public Datenelement IKKrankenkasse { get; private set; }
|
||||
/// <summary>
|
||||
/// Einzutragen ist das IK des Absenders der Datei. Diese Angabe ist identisch mit UNB.Absender
|
||||
/// </summary>
|
||||
public Datenelement IKAbsender { get; private set; }
|
||||
|
||||
public SegmentSLGAFKT()
|
||||
{
|
||||
Verarbeitungskennzeichen = new Datenelement(2);
|
||||
Sammelrechnung = new Datenelement(1);
|
||||
IKLeistungserbringers = new Datenelement(9);
|
||||
IKKostenträger = new Datenelement(9);
|
||||
IKKrankenkasse = new Datenelement(9);
|
||||
IKAbsender = new Datenelement(9);
|
||||
}
|
||||
|
||||
public override string GetHead() => "FKT";
|
||||
public override List<Dateneinheit> GetBody()
|
||||
=> new List<Dateneinheit>() { Verarbeitungskennzeichen, Sammelrechnung };
|
||||
}
|
||||
}
|
||||
82
Dakota/Segmente/SegmentSLGAGES.cs
Normal file
82
Dakota/Segmente/SegmentSLGAGES.cs
Normal file
@@ -0,0 +1,82 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Segmente
|
||||
{
|
||||
/// <summary>
|
||||
/// Das Segment muss je Nachricht mindestens zweimal und kann höchstens
|
||||
/// neunmal vorkommen.Es ist stets ein
|
||||
/// GES-Segment für den Summenstatus
|
||||
/// 00 zuerst zu übermitteln.Diese
|
||||
/// Summe ergibt sich aus der Addition
|
||||
/// der nachfolgend anzugebenden Betragssummen des jeweiligen Versichertenstatus (SLGA). Die Betragssumme des Versichertenstatus
|
||||
/// (SLGA) entspricht den Summen der
|
||||
/// Abrechnungsfälle (SLLA), die diesen
|
||||
/// Status beinhalten.
|
||||
/// </summary>
|
||||
internal class SegmentSLGAGES : Segment
|
||||
{
|
||||
/// <summary>
|
||||
/// Siehe Schlüssel Summenstatus
|
||||
/// Anlage 3 Abschnitt 8.1.6
|
||||
/// </summary>
|
||||
public Datenelement Status { get; private set; }
|
||||
/// <summary>
|
||||
/// 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.
|
||||
/// </summary>
|
||||
public Datenelement Gesamtrechnungsbetrag { get; private set; }
|
||||
/// <summary>
|
||||
/// 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.
|
||||
/// </summary>
|
||||
public Datenelement Gesamtbruttobetrag { get; private set; }
|
||||
/// <summary>
|
||||
/// 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).
|
||||
/// </summary>
|
||||
public Datenelement GesamtbetragZuzahlung { get; private set; }
|
||||
|
||||
public SegmentSLGAGES()
|
||||
{
|
||||
Status = new Datenelement(2);
|
||||
Gesamtrechnungsbetrag = new Datenelement(3, 13);
|
||||
Gesamtbruttobetrag = new Datenelement(3, 13);
|
||||
GesamtbetragZuzahlung = new Datenelement(3, 13);
|
||||
}
|
||||
|
||||
public override string GetHead() => "GES";
|
||||
public override List<Dateneinheit> GetBody()
|
||||
=> new List<Dateneinheit>() { Status, Gesamtrechnungsbetrag, Gesamtbruttobetrag, GesamtbetragZuzahlung };
|
||||
}
|
||||
}
|
||||
46
Dakota/Segmente/SegmentSLGANAM.cs
Normal file
46
Dakota/Segmente/SegmentSLGANAM.cs
Normal file
@@ -0,0 +1,46 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Segmente
|
||||
{
|
||||
/// <summary>
|
||||
/// Das Segment ist je Nachricht einmal
|
||||
/// zu übermitteln
|
||||
/// </summary>
|
||||
internal class SegmentSLGANAM : Segment
|
||||
{
|
||||
/// <summary>
|
||||
/// Name bzw. Firmenbezeichnung des
|
||||
/// Rechnungsstellers(Leistungserbringer oder Abrechnungsstelle
|
||||
/// </summary>
|
||||
public Datenelement Name1 { get; private set; }
|
||||
/// <summary>
|
||||
/// ggf. Ansprechpartner und Telefonnummer.
|
||||
/// </summary>
|
||||
public Datenelement Name2 { get; private set; }
|
||||
/// <summary>
|
||||
/// ggf. Ansprechpartner und Telefonnummer.
|
||||
/// </summary>
|
||||
public Datenelement Name3 { get; private set; }
|
||||
/// <summary>
|
||||
/// E-Mail-Adresse;
|
||||
/// zugelassen sind Buchstaben und Ziffern, ausgenommen Umlaute
|
||||
/// </summary>
|
||||
public Datenelement Name4 { get; private set; }
|
||||
|
||||
public SegmentSLGANAM()
|
||||
{
|
||||
Name1 = new Datenelement(0, 30);
|
||||
Name2 = new Datenelement(0, 30);
|
||||
Name3 = new Datenelement(0, 30);
|
||||
Name4 = new Datenelement(0, 70);
|
||||
}
|
||||
|
||||
public override string GetHead() => "NAM";
|
||||
public override List<Dateneinheit> GetBody()
|
||||
=> new List<Dateneinheit>() { Name1, Name2, Name3, Name4 };
|
||||
}
|
||||
}
|
||||
84
Dakota/Segmente/SegmentSLGAREC.cs
Normal file
84
Dakota/Segmente/SegmentSLGAREC.cs
Normal file
@@ -0,0 +1,84 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Segmente
|
||||
{
|
||||
/// <summary>
|
||||
/// Das Segment ist je Nachricht einmal zu
|
||||
/// übermitteln und ist identisch mit dem
|
||||
/// REC-Segment der zugehörigen SLLANachricht.
|
||||
/// </summary>
|
||||
internal class SegmentSLGAREC : Segment
|
||||
{
|
||||
/// <summary>
|
||||
/// Datenelementgruppe bestehend aus
|
||||
/// Sammel-Rechnungsnummer:EinzelRechnungsnummer.
|
||||
/// Einzutragen ist die eindeutige Rechnungsnummer, die der Rechnungssteller vergibt.Eine Rechnungsnummer ist
|
||||
/// eindeutig, wenn sie über alle Rechnungsjahre hinweg - ohne Kombination mit anderen identifizierenden
|
||||
/// Schlüsseln oder Merkmalen (z.B.IK des
|
||||
/// Leistungserbringers, Rechnungsdatum)
|
||||
/// – für eine Krankenkasse nur einer einzigen Rechnung zugeordnet werden
|
||||
/// kann.
|
||||
/// Diese Rechnungsnummer ist vollständig und unverändert auf die Urbelege
|
||||
/// zu übernehmen (siehe Richtlinien § 4
|
||||
/// Abs.1 und § 3 des Richtlinientextes).
|
||||
/// Außer bei der Sammelrechnung-SLGA
|
||||
/// muss diese Angabe übereinstimmen
|
||||
/// mit SLLA.REC.Rechnungsnummer der
|
||||
/// zugehörigen SLLA-Nachricht.Die
|
||||
/// Rechnungsnummer im Datensatz muss
|
||||
/// identisch sein mit der Rechnungsnummer auf dem Begleitzettel(vgl.Anlage
|
||||
/// 4).
|
||||
/// Sonderzeichen(einschließlich Leerzeichen) sind nicht zugelassen, ausgenommen sind der Bindestrich „-„ und
|
||||
/// der Schrägstrich „/“ als Gliederungszeichen.Aufeinanderfolgende Gliederungszeichen sind unzulässig.Die
|
||||
/// Rechnungsnummer darf nicht mit einem Gliederungszeichen beginnen
|
||||
/// bzw.enden.
|
||||
/// </summary>
|
||||
public Datenelementgruppe Rechnungsnummer { get; private set; }
|
||||
/// <summary>
|
||||
/// 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
|
||||
/// </summary>
|
||||
public Datenelement SammelRechnungsnummer { get; private set; }
|
||||
/// <summary>
|
||||
/// Ist der Absender der Datei eine Abrechnungsstelle mit Inkassovollmacht
|
||||
/// erhält jeder Leistungserbringer innerhalb einer Rechnung eine eigene eindeutige Einzel-Rechnungsnummer.
|
||||
/// Beispiel: Sammel-Rechnungsnummer
|
||||
/// Abrechnungszentrum: 001, daraus
|
||||
/// ergibt sich die Rechnungsnummer für
|
||||
/// den 1. Leistungserbringer 001:1, für
|
||||
/// den 2. Leistungserbringer 001 :2 usw
|
||||
/// </summary>
|
||||
public Datenelement EinzelRechnungsnummer { get; private set; }
|
||||
/// <summary>
|
||||
/// Rechnungsdatum JJJJMMTT
|
||||
/// </summary>
|
||||
public Datenelement Datum { get; private set; }
|
||||
/// <summary>
|
||||
/// 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.
|
||||
/// </summary>
|
||||
public Datenelement Rechnungsart { get; private set; }
|
||||
|
||||
public SegmentSLGAREC()
|
||||
{
|
||||
Rechnungsnummer = new Datenelementgruppe(2);
|
||||
SammelRechnungsnummer = Rechnungsnummer.Datenelemente[0] = new Datenelement(0, 14);
|
||||
EinzelRechnungsnummer = Rechnungsnummer.Datenelemente[1] = new Datenelement(0, 6);
|
||||
Datum = new Datenelement(8);
|
||||
Rechnungsart = new Datenelement(1);
|
||||
}
|
||||
|
||||
public override List<Dateneinheit> GetBody()
|
||||
=> new List<Dateneinheit>() { Rechnungsnummer, Datum, Rechnungsart };
|
||||
|
||||
public override string GetHead() => "REC";
|
||||
}
|
||||
}
|
||||
43
Dakota/Segmente/SegmentSLGASKO.cs
Normal file
43
Dakota/Segmente/SegmentSLGASKO.cs
Normal file
@@ -0,0 +1,43 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Segmente
|
||||
{
|
||||
/// <summary>
|
||||
/// Das Segment kann je Nachricht
|
||||
/// mehrfach übermittelt werden.
|
||||
/// Das Skonto ist bei Inanspruchnahme
|
||||
/// durch den Kostenträger abzuziehen.
|
||||
/// Der Leistungserbringer hat immer
|
||||
/// den vollen Gesamtrechnungsbetrag
|
||||
/// anzugeben.
|
||||
/// </summary>
|
||||
internal class SegmentSLGASKO : Segment
|
||||
{
|
||||
/// <summary>
|
||||
/// Angabe des gewährten Skonto in
|
||||
/// Prozent. Ohne führende 0 wenn.
|
||||
/// xx,xy%
|
||||
/// </summary>
|
||||
public Datenelement SkontoProzent { get; private set; }
|
||||
/// <summary>
|
||||
/// Angabe des Zahlungsziels in Tagen.
|
||||
/// Bei Zahlung innerhalb der hier angegebenen Tage wird Skonto gewährt
|
||||
/// </summary>
|
||||
public Datenelement Zahlungsziel { get; private set; }
|
||||
|
||||
public SegmentSLGASKO()
|
||||
{
|
||||
SkontoProzent = new Datenelement(3, 5);
|
||||
Zahlungsziel = new Datenelement(0, 3);
|
||||
}
|
||||
|
||||
public override string GetHead() => "SKO";
|
||||
|
||||
public override List<Dateneinheit> GetBody()
|
||||
=> new List<Dateneinheit>() { SkontoProzent, Zahlungsziel };
|
||||
}
|
||||
}
|
||||
37
Dakota/Segmente/SegmentSLGAUST.cs
Normal file
37
Dakota/Segmente/SegmentSLGAUST.cs
Normal file
@@ -0,0 +1,37 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Segmente
|
||||
{
|
||||
/// <summary>
|
||||
/// Das Segment kann je Nachricht einmal übermittelt werden. Es ist nicht
|
||||
/// in der Sammelrechnung-SLGA zu
|
||||
/// übermitteln
|
||||
/// </summary>
|
||||
internal class SegmentSLGAUST : Segment
|
||||
{
|
||||
/// <summary>
|
||||
/// Steuernummer gemäß § 14 Abs. 1a
|
||||
/// UStG oder Umsatzsteuer-Identifikationsnummer.
|
||||
/// </summary>
|
||||
public Datenelement Steuernummer { get; private set; }
|
||||
/// <summary>
|
||||
/// "J" wenn befreit gem. § 4 UStG
|
||||
/// </summary>
|
||||
public Datenelement Kennung { get; private set; }
|
||||
|
||||
public SegmentSLGAUST()
|
||||
{
|
||||
Steuernummer = new Datenelement(0, 20);
|
||||
Kennung = new Datenelement(1);
|
||||
}
|
||||
|
||||
public override string GetHead() => "UST";
|
||||
|
||||
public override List<Dateneinheit> GetBody()
|
||||
=> new List<Dateneinheit>() { Steuernummer, Kennung };
|
||||
}
|
||||
}
|
||||
12
Dakota/Segmente/SegmentSLLAFKT.cs
Normal file
12
Dakota/Segmente/SegmentSLLAFKT.cs
Normal file
@@ -0,0 +1,12 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Segmente
|
||||
{
|
||||
internal class SegmentSLLAFKT
|
||||
{
|
||||
}
|
||||
}
|
||||
12
Dakota/Segmente/SegmentSLLAIMG.cs
Normal file
12
Dakota/Segmente/SegmentSLLAIMG.cs
Normal file
@@ -0,0 +1,12 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Segmente
|
||||
{
|
||||
internal class SegmentSLLAIMG
|
||||
{
|
||||
}
|
||||
}
|
||||
12
Dakota/Segmente/SegmentSLLAINV.cs
Normal file
12
Dakota/Segmente/SegmentSLLAINV.cs
Normal file
@@ -0,0 +1,12 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Segmente
|
||||
{
|
||||
internal class SegmentSLLAINV
|
||||
{
|
||||
}
|
||||
}
|
||||
12
Dakota/Segmente/SegmentSLLANAD.cs
Normal file
12
Dakota/Segmente/SegmentSLLANAD.cs
Normal file
@@ -0,0 +1,12 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Segmente
|
||||
{
|
||||
internal class SegmentSLLANAD
|
||||
{
|
||||
}
|
||||
}
|
||||
12
Dakota/Segmente/SegmentSLLAREC.cs
Normal file
12
Dakota/Segmente/SegmentSLLAREC.cs
Normal file
@@ -0,0 +1,12 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Segmente
|
||||
{
|
||||
internal class SegmentSLLAREC
|
||||
{
|
||||
}
|
||||
}
|
||||
12
Dakota/Segmente/SegmentSLLAURI.cs
Normal file
12
Dakota/Segmente/SegmentSLLAURI.cs
Normal file
@@ -0,0 +1,12 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Segmente
|
||||
{
|
||||
internal class SegmentSLLAURI
|
||||
{
|
||||
}
|
||||
}
|
||||
101
Dakota/Segmente/SegmentUNB.cs
Normal file
101
Dakota/Segmente/SegmentUNB.cs
Normal file
@@ -0,0 +1,101 @@
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace Dakota.Segmente
|
||||
{
|
||||
/// <summary>
|
||||
/// Kopf-Segment einer Nutzdatendatei; es dient zur Eröffnung,
|
||||
/// Identifizierung und Beschreibung der Datei.Eine Nutzdatendatei
|
||||
/// besteht aus der Folge UNB bis UNZ.Sie beinhaltet die Nachrichten SLGA und SLLA, die mehrfach wiederholbar sind.So ist es
|
||||
/// möglich, dass ein oder mehrere Leistungserbringer Abrechnungen für ein oder mehrere Kostenträger übermitteln.
|
||||
/// </summary>
|
||||
internal class SegmentUNB : Segment
|
||||
{
|
||||
/// <summary>
|
||||
/// UNOC:3
|
||||
/// </summary>
|
||||
public Datenelementgruppe Syntax { get; private set; }
|
||||
/// <summary>
|
||||
/// Vereinbarte EDIFACT-Syntax;
|
||||
/// hier: UNOC = Groß- und Kleinbuchstaben, Umlaut
|
||||
/// </summary>
|
||||
public Datenelement SyntaxKennung { get; private set; }
|
||||
/// <summary>
|
||||
/// Vereinbarte Version der Syntax;
|
||||
/// hier: Version 3 (derzeit aktuell)
|
||||
/// </summary>
|
||||
public Datenelement SyntaxVersionsnummer { get; private set; }
|
||||
/// <summary>
|
||||
/// 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.
|
||||
/// </summary>
|
||||
public Datenelement Absenderdatei { get; private set; }
|
||||
/// <summary>
|
||||
/// IK des Empfängers (d.h. Datenannahmestelle mit Entschlüsselungsbefugnis);
|
||||
/// genutzt werden die ersten 9 Stellen;
|
||||
/// einzutragen ist das IK der empfangenden Stelle
|
||||
/// </summary>
|
||||
public Datenelement Empfangdatei { get; private set; }
|
||||
/// <summary>
|
||||
/// JJJJMMTT:HHMM
|
||||
/// </summary>
|
||||
public Datenelementgruppe DatumUhrzeit { get; private set; }
|
||||
/// <summary>
|
||||
/// Erstelldatum der Datei
|
||||
/// </summary>
|
||||
public Datenelement Datum { get; private set; }
|
||||
/// <summary>
|
||||
/// Erstelluhrzeit der Datei
|
||||
/// </summary>
|
||||
public Datenelement Uhrzeit { get; private set; }
|
||||
/// <summary>
|
||||
/// 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
|
||||
/// </summary>
|
||||
public Dateneinheit Datenaustauschreferenz { get; private set; }
|
||||
/// <summary>
|
||||
/// Einzutragen ist der Leistungserbringer-Sammelgruppenschlüssel,
|
||||
/// siehe Schlüssel Anlage 3 Abschnitt 8.1.14
|
||||
/// </summary>
|
||||
public Datenelement Leistungsbereich { get; private set; }
|
||||
/// <summary>
|
||||
/// Genutzt werden die ersten 11 Stellen;
|
||||
/// einzutragen ist der logische Dateiname s.Anhang 1 zur Anlage 1
|
||||
/// zum Kapitel 4.
|
||||
/// </summary>
|
||||
public Datenelement Anwengundsreferenz { get; private set; }
|
||||
/// <summary>
|
||||
/// Inhalt = 0 wenn Testdatei
|
||||
/// Inhalt = 1 wenn Erprobungsdatei
|
||||
/// Inhalt = 2 wenn Echtdatei
|
||||
/// </summary>
|
||||
public Datenelement Testindikator { get; private set; }
|
||||
|
||||
public SegmentUNB()
|
||||
{
|
||||
Syntax = new Datenelementgruppe(2);
|
||||
SyntaxKennung = Syntax.Datenelemente[0] = new Datenelement(4);
|
||||
SyntaxVersionsnummer = Syntax.Datenelemente[1] = new Datenelement(1);
|
||||
Absenderdatei = new Datenelement(0, 35);
|
||||
Empfangdatei = new Datenelement(0, 35);
|
||||
DatumUhrzeit = new Datenelementgruppe(2);
|
||||
Datum = DatumUhrzeit.Datenelemente[0] = new Datenelement(8);
|
||||
Uhrzeit = DatumUhrzeit.Datenelemente[1] = new Datenelement(4);
|
||||
Datenaustauschreferenz = new Datenelement(0, 14);
|
||||
Leistungsbereich = new Datenelement(1);
|
||||
Anwengundsreferenz = new Datenelement(0, 14);
|
||||
Testindikator = new Datenelement(1);
|
||||
}
|
||||
|
||||
public override string GetHead() => "UNB";
|
||||
|
||||
public override List<Dateneinheit> GetBody()
|
||||
=> new List<Dateneinheit> { Syntax, Absenderdatei, Empfangdatei, DatumUhrzeit, Datenaustauschreferenz, Leistungsbereich, Anwengundsreferenz, Testindikator };
|
||||
}
|
||||
}
|
||||
74
Dakota/Segmente/SegmentUNH.cs
Normal file
74
Dakota/Segmente/SegmentUNH.cs
Normal file
@@ -0,0 +1,74 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Segmente
|
||||
{
|
||||
/// <summary>
|
||||
/// Kopf-Segment einer Nachricht; es dient dazu, eine Nachricht zu
|
||||
/// eröffnen, zu identifizieren und zu beschreiben.Eine Nachricht
|
||||
/// besteht aus einer definierten Folge von Segmenten, die einmal
|
||||
/// oder mehrfach vorkommen können oder nur bei bestimmten
|
||||
/// Geschäftsvorfällen erforderlich sind
|
||||
/// </summary>
|
||||
internal class SegmentUNH : Segment
|
||||
{
|
||||
/// <summary>
|
||||
/// Genutzt werden die ersten 5 Stellen;
|
||||
/// einzutragen ist die fortlaufende
|
||||
/// Nummer der UNH-Segmente zwischen UNB und UNZ mit führenden
|
||||
/// Nullen,
|
||||
/// z.B. 00001 für 1. UNH
|
||||
/// </summary>
|
||||
public Datenelement Nachrichtenreferenznummer { get; private set; }
|
||||
/// <summary>
|
||||
/// Bei Nachricht SLGA ist einzutragen:
|
||||
/// SLGA:18:0:0
|
||||
/// Bei Nachricht SLLA ist einzutragen:
|
||||
/// SLLA:18:0:0
|
||||
/// </summary>
|
||||
public Datenelementgruppe Nachrichtenerkennung { get; private set; }
|
||||
/// <summary>
|
||||
/// Genutzt werden die ersten 4 Stellen;
|
||||
/// einzutragen sind: SLGA oder SLLA
|
||||
/// </summary>
|
||||
public Datenelement NachrichtenTypKennung { get; private set; }
|
||||
/// <summary>
|
||||
/// Genutzt werden die ersten 2 Stellen;
|
||||
/// einzutragen ist die Nummer der
|
||||
/// benutzten Version des Nachrichtentypes lt.Abschnitt 5.5 dieser
|
||||
/// Anlage; d.h.Version 18.
|
||||
/// </summary>
|
||||
public Datenelement Verionsnummer { get; private set; }
|
||||
/// <summary>
|
||||
/// Genutzt wird die erste Stelle;
|
||||
/// Inhalt = 0 („Null“ muss angegeben
|
||||
/// werden).
|
||||
/// </summary>
|
||||
public Datenelement FreigabeNrDesTypes { get; private set; }
|
||||
/// <summary>
|
||||
/// Genutzt wird die erste Stelle;
|
||||
/// Inhalt = 0 („Null“ muss angegeben
|
||||
/// werden).
|
||||
/// </summary>
|
||||
public Datenelement VerwaltendeOrganisation { get; private set; }
|
||||
|
||||
|
||||
public SegmentUNH()
|
||||
{
|
||||
Nachrichtenreferenznummer = new Datenelement(0, 14);
|
||||
Nachrichtenerkennung = new Datenelementgruppe(4);
|
||||
NachrichtenTypKennung = Nachrichtenerkennung.Datenelemente[0] = new Datenelement(0, 6);
|
||||
Verionsnummer = Nachrichtenerkennung.Datenelemente[1] = new Datenelement(0, 3);
|
||||
FreigabeNrDesTypes = Nachrichtenerkennung.Datenelemente[2] = new Datenelement(0, 3);
|
||||
VerwaltendeOrganisation = Nachrichtenerkennung.Datenelemente[3] = new Datenelement(0, 2);
|
||||
}
|
||||
|
||||
public override string GetHead() => "UNH";
|
||||
|
||||
public override List<Dateneinheit> GetBody()
|
||||
=> new List<Dateneinheit> { Nachrichtenreferenznummer, Nachrichtenerkennung};
|
||||
}
|
||||
}
|
||||
34
Dakota/Segmente/SegmentUNT.cs
Normal file
34
Dakota/Segmente/SegmentUNT.cs
Normal file
@@ -0,0 +1,34 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Segmente
|
||||
{
|
||||
/// <summary>
|
||||
/// Ende-Segment einer Nachricht. Beendet eine Nachricht und ermöglicht die Prüfung auf Vollständigkeit
|
||||
/// </summary>
|
||||
internal class SegmentUNT : Segment
|
||||
{
|
||||
/// <summary>
|
||||
/// Anzahl der Segmente in der Nachricht einschließlich der Segmente
|
||||
/// UNH und UNT mit führenden Nullen.
|
||||
/// </summary>
|
||||
public Datenelement AnzahlEinheiten { get; private set; }
|
||||
/// <summary>
|
||||
/// wie in UNH
|
||||
/// </summary>
|
||||
public Datenelement Nachrichtenreferenznummer { get; private set; }
|
||||
|
||||
public SegmentUNT()
|
||||
{
|
||||
AnzahlEinheiten = new Datenelement(6);
|
||||
Nachrichtenreferenznummer = new Datenelement(0, 14);
|
||||
}
|
||||
|
||||
public override string GetHead() => "UNT";
|
||||
public override List<Dateneinheit> GetBody()
|
||||
=> new List<Dateneinheit>() { AnzahlEinheiten, Nachrichtenreferenznummer };
|
||||
}
|
||||
}
|
||||
35
Dakota/Segmente/SegmentUNZ.cs
Normal file
35
Dakota/Segmente/SegmentUNZ.cs
Normal file
@@ -0,0 +1,35 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota.Segmente
|
||||
{
|
||||
/// <summary>
|
||||
/// Ende-Segment einer Datei. Beendet eine Datei und ermöglicht
|
||||
/// die Prüfung auf Vollständigkeit
|
||||
/// </summary>
|
||||
internal class SegmentUNZ : Segment
|
||||
{
|
||||
/// <summary>
|
||||
/// Anzahl UNHs in der Nutzdatendatei
|
||||
/// </summary>
|
||||
public Datenelement AnzahlNachrichten { get; private set; }
|
||||
/// <summary>
|
||||
/// wie in UNB
|
||||
/// </summary>
|
||||
public Datenelement Datenaustauschreferenz { get; private set; }
|
||||
|
||||
public SegmentUNZ()
|
||||
{
|
||||
AnzahlNachrichten = new Datenelement(6);
|
||||
Datenaustauschreferenz = new Datenelement(0, 14);
|
||||
}
|
||||
|
||||
public override string GetHead() => "UNZ";
|
||||
|
||||
public override List<Dateneinheit> GetBody()
|
||||
=> new List<Dateneinheit> { AnzahlNachrichten, Datenaustauschreferenz};
|
||||
}
|
||||
}
|
||||
15
Dakota/SozioTherapieDatei.cs
Normal file
15
Dakota/SozioTherapieDatei.cs
Normal file
@@ -0,0 +1,15 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace Dakota
|
||||
{
|
||||
internal class SozioTherapieDatei : Nutzdatendatei
|
||||
{
|
||||
public SegmentUNB UNB { get; set; }
|
||||
|
||||
public SegmentUNZ UNZ { get; set; }
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user