first half of basic code impl
This commit is contained in:
@@ -29,6 +29,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ReportingService", "ReportS
|
|||||||
EndProject
|
EndProject
|
||||||
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ChatController", "..\Chat\ChatController\ChatController.csproj", "{8A83C4DC-A0B1-4A51-AE1D-366D7A05B298}"
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ChatController", "..\Chat\ChatController\ChatController.csproj", "{8A83C4DC-A0B1-4A51-AE1D-366D7A05B298}"
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Dakota", "Dakota\Dakota.csproj", "{47331732-DD96-4075-869F-83AA9F3F9937}"
|
||||||
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
Debug|.NET = Debug|.NET
|
Debug|.NET = Debug|.NET
|
||||||
@@ -139,6 +141,18 @@ Global
|
|||||||
{8A83C4DC-A0B1-4A51-AE1D-366D7A05B298}.Release|Any CPU.Build.0 = Release|Any CPU
|
{8A83C4DC-A0B1-4A51-AE1D-366D7A05B298}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
{8A83C4DC-A0B1-4A51-AE1D-366D7A05B298}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
{8A83C4DC-A0B1-4A51-AE1D-366D7A05B298}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||||
{8A83C4DC-A0B1-4A51-AE1D-366D7A05B298}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
{8A83C4DC-A0B1-4A51-AE1D-366D7A05B298}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||||
|
{47331732-DD96-4075-869F-83AA9F3F9937}.Debug|.NET.ActiveCfg = Debug|Any CPU
|
||||||
|
{47331732-DD96-4075-869F-83AA9F3F9937}.Debug|.NET.Build.0 = Debug|Any CPU
|
||||||
|
{47331732-DD96-4075-869F-83AA9F3F9937}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{47331732-DD96-4075-869F-83AA9F3F9937}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{47331732-DD96-4075-869F-83AA9F3F9937}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||||
|
{47331732-DD96-4075-869F-83AA9F3F9937}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||||
|
{47331732-DD96-4075-869F-83AA9F3F9937}.Release|.NET.ActiveCfg = Release|Any CPU
|
||||||
|
{47331732-DD96-4075-869F-83AA9F3F9937}.Release|.NET.Build.0 = Release|Any CPU
|
||||||
|
{47331732-DD96-4075-869F-83AA9F3F9937}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{47331732-DD96-4075-869F-83AA9F3F9937}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{47331732-DD96-4075-869F-83AA9F3F9937}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||||
|
{47331732-DD96-4075-869F-83AA9F3F9937}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
|||||||
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