104 lines
4.9 KiB
C#
104 lines
4.9 KiB
C#
using Dakota.Models.Daten;
|
|
using System;
|
|
using System.Collections.Generic;
|
|
|
|
namespace Dakota.Models.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 DatenelementDateTime Datum { get; private set; }
|
|
/// <summary>
|
|
/// Erstelluhrzeit der Datei
|
|
/// </summary>
|
|
public DatenelementDateTime 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 DatenelementFiller 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() : base(Feldart.Muss)
|
|
{
|
|
Syntax = new Datenelementgruppe("Syntax", 2);
|
|
SyntaxKennung = Syntax.Datenelemente[0] = new Datenelement("SyntaxKennung", 4, Feldart.Muss);
|
|
SyntaxVersionsnummer = Syntax.Datenelemente[1] = new Datenelement("SyntaxVersionsnummer", 1, Feldart.Muss);
|
|
Absenderdatei = new Datenelement("Absenderdatei", 0, 35, Feldart.Muss);
|
|
Empfangdatei = new Datenelement("Empfangdatei", 0, 35, Feldart.Muss);
|
|
DatumUhrzeit = new Datenelementgruppe("DatumUhrzeit", 2);
|
|
DatumUhrzeit.Datenelemente[0] = Datum = new DatenelementDateTime("Datum", 8, "yyyyMMdd", Feldart.Muss);
|
|
DatumUhrzeit.Datenelemente[1] = Uhrzeit = new DatenelementDateTime("Uhrzeit", 4, "HHmm", Feldart.Muss);
|
|
Datenaustauschreferenz = new DatenelementFiller("Datenaustauschreferenz", 0, 14, 5);
|
|
Leistungsbereich = new Datenelement("Leistungsbereich", 1, Feldart.Muss);
|
|
Anwengundsreferenz = new Datenelement("Anwengundsreferenz", 0, 14, Feldart.Muss);
|
|
Testindikator = new Datenelement("Testindikator", 1, Feldart.Muss);
|
|
}
|
|
|
|
public override string GetHead() => "UNB";
|
|
|
|
public override List<Dateneinheit> GetBody()
|
|
=> new List<Dateneinheit> { Syntax, Absenderdatei, Empfangdatei, DatumUhrzeit, Datenaustauschreferenz, Leistungsbereich, Anwengundsreferenz, Testindikator };
|
|
}
|
|
}
|