/****************************************************************************
** Leistungsorientierte Krankenanstaltenfinanzierung (LKF)                 **
** Scoring-C-Sourcen V2026.1                                               **
** (C) 2026 BMASGPK                                                        **
****************************************************************************
 ** satz.c - X-Satzarten                                                    **
 **                                                                         **
 **		 Alex.Holzer@chello.at                                              **
 **       Bernhard.Pesec@dothealth.at                                       **
 ****************************************************************************/

#include "lkfint5.h"
#include "lkfstru5.h"

/* Satzart X01 */

static const int x01_ident[] = {0,1,2,3,-1};

const SATZART X01Satzart = {"X01", 0, 26,24, (const int *) &x01_ident, "X01", 0, {
    {GEN_KANR,              TYP_ALPHA, 	 4, 20, 0, 0, "KANR"},
    {GEN_AUFNR,             TYP_ALPHA,	24, 12, 0, 0, "AUFNR"},
    {X01_DATENSATZID,       TYP_ALPHA,	36, 64, 0, 0, "DATENSATZ-ID"},
    {X01_AUFNAHMEDATUM,     TYP_ALPHA, 100,  8, 0, 0, "AUFNAHME-DATUM"},
    {X01_AUFNAHMEUHRZEIT,   TYP_ALPHA, 108,  4, 0, 0, "AUFNAHME-ZEIT"},
    {X01_BEHANDLUNGSART,    TYP_ALPHA, 112,  1, 0, 0, "BEHANDLUNGSART"},
    {X01_GEBURTSDATUM,      TYP_ALPHA, 113,  8, 0, 0, "GEBURTSDATUM"},
    {X01_ALTERSGRUPPE,      TYP_NUM,   121,  2, 0, 0, "ALTERSGRUPPE"},
    {X01_GESCHLECHT,        TYP_ALPHA, 123,  1, 0, 0, "GESCHLECHT"},
    {X01_STAATB,            TYP_ALPHA, 124,  2, 0, 0, "STAATSBUERGERSCHAFT"},
    {X01_STAATW,            TYP_ALPHA, 126,  2, 0, 0, "WOHNSITZ-STAAT"},
    {X01_PLZW,              TYP_NUM,   130,  4, 0, 0, "PLZW"},
    {X01_GEMEINDECODE,      TYP_NUM,   135,  5, 0, 0, "GEMEINDECODE"},
    {X01_AUFART1,           TYP_ALPHA, 136,  1, 0, 0, "AUFNAHMEART"},
    {X01_AUFART2,           TYP_ALPHA, 137,  1, 0, 0, "AUFNAHMEART 2"},
    {X01_TRANSPORTART,      TYP_ALPHA, 138,  1, 0, 0, "TRANSPORTART"},
    {X01_ZUGEWIESEN_VON,    TYP_ALPHA, 139,  6, 0, 0, "ZUGEWIESEN VON"},
    {X01_ZUGEWIESEN_AN,     TYP_ALPHA, 145,  6, 0, 0, "ZUGEWIESEN AN"},
    {X01_ENTART,            TYP_ALPHA, 151,  1, 0, 0, "ENTLASSUNGSART"},
    {X01_ENTDAT,            TYP_ALPHA, 152,  8, 0, 0, "ENTLASSUNGS-DATUM"},
    {X01_ENTZEIT,           TYP_ALPHA, 160,  4, 0, 0, "ENTLASSUNGS-ZEIT"},
    {X01_LEIST_KOST,        TYP_ALPHA, 164,  2, 0, 0, "LEISTUNGS-KOSTENSTELLE"},
    {X01_ABRECHNUNGSRELEVANZ, TYP_ALPHA,166,  1, 0, 0, "ABRECHNUNGSRELEVANZ"},
    {X01_PLAUSKZ,           TYP_NUM,	167,  1, 0, 0, "PLAUS-KENNZEICHEN"},
    {X01_UEBERMITTLUNG_KOST,TYP_ALPHA,	168,  2, 0, 0, "UEBERMITTLUNGS-KOSTENSTELLE"},
    {X01_ABRECHQUARTAL,     TYP_ALPHA,	170,  5, 0, 0, "ABRECHNUNGSQUARTAL"}
}};


/* Satzart X02 */

const SATZART X02Satzart = {"X02", 0, 17, 17,(const int *) &x01_ident, "X02", 0, {
    {GEN_KANR,              TYP_ALPHA, 	 4, 20, 0, 0, "KANR"},
    {GEN_AUFNR,             TYP_ALPHA,	24, 12, 0, 0, "AUFNR"},
    {X01_DATENSATZID,       TYP_ALPHA,	36, 64, 0, 0, "DATENSATZ-ID"},
    {X01_AUFNAHMEDATUM,     TYP_ALPHA, 100,  8, 0, 0, "AUFNAHME-DATUM"},
    {X02_POSITIONSNUMMER,   TYP_ALPHA, 108,  3, 0, 0, "POSITIONSNUMMER"},
    {X02_ABTFC,             TYP_NUM,   111,  8, 0, 0, "ABTFC"},
    {X02_AUFDAT,            TYP_ALPHA, 119,  8, 0, 0, "AUFNAHME-DATUM"},
    {X02_AUFZEIT,           TYP_ALPHA, 127,  4, 0, 0, "AUFNAHME-ZEIT"},
    {X02_PHYSANW,           TYP_ALPHA, 131,  1, 0, 0, "PHYSISCHE ANWESENHEIT"},
    {X02_ENTDAT,            TYP_ALPHA, 132,  8, 0, 0, "ENTLASSUNG-DATUM"},
    {X02_ENTZEIT,           TYP_ALPHA, 140,  4, 0, 0, "ENTLASSUNG-ZEIT"},
    {X02_ENTART,            TYP_NUM,   144,  1, 0, 0, "ENTLASSUNGSART"},
    {X02_FACH_FC,           TYP_NUM,   145,  8, 0, 0, "FACHLICHER ABTFC"},
    {X02_PFLEG_FC,          TYP_NUM,   153,  8, 0, 0, "PFLEGERISCHER ABTFC"},
    {X02_NEONAT,            TYP_ALPHA, 161,  1, 0, 0, "NEUGEBORENES"},
    {X02_ALTERSGRUPPE,      TYP_NUM,   162,  2, 0, 0, "ALTERSGRUPPE (ZUGANG)"},
    {X02_AUFNAHME_FUCO,     TYP_ALPHA, 164, 12, 0, 0, "AUFNAHMEZAHL - FUNKTIONSCODEBEZOGEN"}
}};

/* Satzart X03 */


const SATZART X03Satzart = {"X03", 0, 9, 9, (const int *) &x01_ident, "X03", 0, {
    {GEN_KANR,              TYP_ALPHA, 	 4, 20, 0, 0, "KANR"},
    {GEN_AUFNR,             TYP_ALPHA,	24, 12, 0, 0, "AUFNR"},
    {X01_DATENSATZID,       TYP_ALPHA,	36, 64, 0, 0, "DATENSATZ-ID"},
    {X01_AUFNAHMEDATUM,     TYP_ALPHA, 100,  8, 0, 0, "AUFNAHME-DATUM"},
    {X03_DIAG,              TYP_ALPHA, 108,  7, 0, 0, "DIAGNOSE"},
    {X03_DIAGTYP,           TYP_ALPHA, 115,  1, 0, 0, "TYP"},
    {X03_DIAGART,           TYP_ALPHA, 116,  1, 0, 0, "ART"},
    {X03_DIAGSTATIONAER,    TYP_ALPHA, 117,  1, 0, 0, "STAT. DIAGNOSE"},
    {X03_AUFNAHME_FUCO,     TYP_ALPHA, 118, 12, 0, 0, "AUFNAHMEZAHL - FUNKTIONSCODEBEZOGEN"}
}};

/* Satzart X04 */

const SATZART X04Satzart = {"X04", 0, 13, 13, (const int *) &x01_ident, "X04", 0, {
    {GEN_KANR,              TYP_ALPHA, 	 4, 20, 0, 0, "KANR"},
    {GEN_AUFNR,             TYP_ALPHA,	24, 12, 0, 0, "AUFNR"},
    {X01_DATENSATZID,       TYP_ALPHA,	36, 64, 0, 0, "DATENSATZ-ID"},
    {X01_AUFNAHMEDATUM,     TYP_ALPHA, 100,  8, 0, 0, "AUFNAHME-DATUM"},
    {X04_MEL,               TYP_ALPHA, 108, 10, 0, 0, "MEL"},
    {X04_SEITE,             TYP_ALPHA, 113,  1, 0, 0, "SEITE"},
    {X04_ABRECHNUNGSRELEVANZ, TYP_ALPHA, 114,1, 0, 0, "ABRECHNUNGSRELEVANZ"},
    {X04_ANZAHL,            TYP_NUM,   115,  7, 0, 0, "ANZAHL"},
    {X04_DATUM,             TYP_ALPHA, 122,  8, 0, 0, "LEISTUNG-DATUM"},
    {X04_UHRZEIT,           TYP_ALPHA, 130,  4, 0, 0, "LEISTUNG-ZEIT"},
    {X04_FCLEIST,           TYP_NUM,   134,  8, 0, 0, "ABTFC LEISTUNGSERBRINGEND"},
    {X04_KALEIST,           TYP_ALPHA, 142,  6, 0, 0, "KANR  LEISTUNGSERBRINGEND"},
    {X04_AUFNAHME_FUCO,     TYP_ALPHA, 148, 12, 0, 0, "AUFNAHMEZAHL - FUNKTIONSCODEBEZOGEN"}
}};

/* Satzart X05 */

const SATZART X05Satzart = {"X05", 0, 15, 15, (const int *) &x01_ident, "X05", 0, {
    {GEN_KANR,              TYP_ALPHA, 	 4, 20, 0, 0, "KANR"},
    {GEN_AUFNR,             TYP_ALPHA,	24, 12, 0, 0, "AUFNR"},
    {X01_DATENSATZID,       TYP_ALPHA,	36, 64, 0, 0, "DATENSATZ-ID"},
    {X01_AUFNAHMEDATUM,     TYP_ALPHA, 100,  8, 0, 0, "AUFNAHME-DATUM"},
    {X05_GRUPPE,            TYP_ALPHA, 108,  8, 0, 0, "GRUPPE"},
    {X05_KNOTEN,            TYP_ALPHA, 116,  3, 0, 0, "KNOTEN"},
    {X05_LEIST,             TYP_NUM,   119,  8, 0, 0, "LEISTUNGSANTEIL"},
    {X05_TAG,               TYP_NUM,   127,  8, 0, 0, "TAGESANTEIL"},
    {X05_LEIST_UNT,         TYP_NUM,   135,  8, 0, 0, "LEISTUNGSANTEIL BEI UNTERSCHREITUNG"},
    {X05_TAG_UNT,           TYP_NUM,   143,  8, 0, 0, "TAGESANTEIL BEI UNTERSCHREITUNG"},
    {X05_TAG_OBEN,          TYP_NUM,   151,  8, 0, 0, "ZUSCHUSS FUER UEBERSCHREITUNG"},
    {X05_INTENSIV,          TYP_NUM,   159,  8, 0, 0, "INTENSIV-ZUSCHLAG"},
    {X05_MELZU,             TYP_NUM,   167,  8, 0, 0, "MEHRFACH-LEISTUNGS-ZUSCHLAG"},
    {X05_SPEZ,              TYP_NUM,   175,  8, 0, 0, "SPEZ-ZUSCHLAG"},
    {X05_SUMME,             TYP_NUM,   183,  8, 0, 0, "SUMME"}

}};

/* Satzart X06 */

const SATZART X06Satzart = {"X06", 0, 7, 7, (const int *) &x01_ident, "X06", 0, {
    {GEN_KANR,              TYP_ALPHA, 	 4, 20, 0, 0, "KANR"},
    {GEN_AUFNR,             TYP_ALPHA,	24, 12, 0, 0, "AUFNR"},
    {X01_DATENSATZID,       TYP_ALPHA,	36, 64, 0, 0, "DATENSATZ-ID"},
    {X01_AUFNAHMEDATUM,     TYP_ALPHA, 100,  8, 0, 0, "AUFNAHME-DATUM"},
    {X06_WERT,              TYP_ALPHA, 108, 20, 0, 0, "WERT"},
    {X06_CODE,              TYP_ALPHA, 128,  4, 0, 0, "ERRORCODE"},
    {X06_KOMMENTAR,         TYP_ALPHA_TRUNC, 132,200, 0, 0, "KOMMENTAR"}
}};


/* Satzart X07 */

const SATZART X07Satzart = {"X07", 0, 10, 10, (const int *) &x01_ident, "X07", 0, {
    {GEN_KANR,              TYP_ALPHA, 	 4, 20, 0, 0, "KANR"},
    {GEN_AUFNR,             TYP_ALPHA,	24, 12, 0, 0, "AUFNR"},
    {X01_DATENSATZID,       TYP_ALPHA,	36, 64, 0, 0, "DATENSATZ-ID"},
    {X01_AUFNAHMEDATUM,     TYP_ALPHA, 100,  8, 0, 0, "AUFNAHME-DATUM"},
    {X07_KOMM1,             TYP_ALPHA_TRUNC, 108,200, 0, 0, "KOMMENTAR 1"},
    {X07_KOMM2,             TYP_ALPHA_TRUNC, 308,200, 0, 0, "KOMMENTAR 2"},
    {X07_KOMM3,             TYP_ALPHA_TRUNC, 508,200, 0, 0, "KOMMENTAR 3"},
    {X07_KOMM4,             TYP_ALPHA_TRUNC, 708,200, 0, 0, "KOMMENTAR 4"},
    {X07_KOMM5,             TYP_ALPHA_TRUNC, 908,200, 0, 0, "KOMMENTAR 5"},
    {X07_KOMM6,             TYP_ALPHA_TRUNC,1108,200, 0, 0, "KOMMENTAR 6"}
}};
