diff --git a/src/model/mod.rs b/src/model/mod.rs index 6767cf6..634357b 100644 --- a/src/model/mod.rs +++ b/src/model/mod.rs @@ -1,7 +1,7 @@ /* * MIT License * - * Copyright (c) 2023 Comprehensive Cancer Center Mainfranken + * Copyright (c) 2024 Comprehensive Cancer Center Mainfranken * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -35,6 +35,7 @@ use crate::profile::{FormField, FormReference, Profile}; pub mod data_catalogue; pub mod data_form; pub mod onkostar_editor; +pub mod other; pub mod property_catalogue; pub mod requirements; pub mod unterformular; diff --git a/src/model/onkostar_editor.rs b/src/model/onkostar_editor.rs index 61707c8..2e0f0b6 100644 --- a/src/model/onkostar_editor.rs +++ b/src/model/onkostar_editor.rs @@ -1,7 +1,7 @@ /* * MIT License * - * Copyright (c) 2023 Comprehensive Cancer Center Mainfranken + * Copyright (c) 2024 Comprehensive Cancer Center Mainfranken * * Permission is hereby granted, free of charge, to any person obtaining a copy * of this software and associated documentation files (the "Software"), to deal @@ -33,6 +33,7 @@ use serde::{Deserialize, Serialize}; use crate::checks::{CheckNotice, Checkable}; use crate::model::data_catalogue::DataCatalogue; use crate::model::data_form::DataForm; +use crate::model::other::{Ablaufschema, Akte, RecordLinkage, Rskript, SidGuid}; use crate::model::property_catalogue::PropertyCatalogue; use crate::model::requirements::{Requirement, Requires}; use crate::model::unterformular::Unterformular; @@ -515,4 +516,17 @@ pub struct Editor { pub unterformular: Vec, #[serde(rename = "DataForm", default)] pub data_form: Vec, + + #[serde(rename = "Ablaufschema", default)] + pub ablaufschema: Option>, + #[serde(rename = "Akte", default)] + pub akte: Option>, + #[serde(rename = "RecordLinkage", default)] + pub record_linkage: Option>, + #[serde(rename = "Rskript", default)] + pub rskript: Option>, + #[serde(rename = "FormulareLoeschen", default)] + pub formulare_loeschen: Option>, + #[serde(rename = "FormulareDeaktivieren", default)] + pub formulare_deaktivieren: Option>, } diff --git a/src/model/other.rs b/src/model/other.rs new file mode 100644 index 0000000..eb65474 --- /dev/null +++ b/src/model/other.rs @@ -0,0 +1,265 @@ +/* + * MIT License + * + * Copyright (c) 2024 Comprehensive Cancer Center Mainfranken + * + * Permission is hereby granted, free of charge, to any person obtaining a copy + * of this software and associated documentation files (the "Software"), to deal + * in the Software without restriction, including without limitation the rights + * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell + * copies of the Software, and to permit persons to whom the Software is + * furnished to do so, subject to the following conditions: + * + * The above copyright notice and this permission notice shall be included in all + * copies or substantial portions of the Software. + * + * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR + * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, + * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE + * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER + * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE + * SOFTWARE. + */ + +use crate::model::{Ansicht, Ordner}; +use serde::{Deserialize, Serialize}; + +// Ablaufschema ... +#[derive(Debug, Deserialize, Serialize)] +pub struct Ablaufschema { + #[serde(rename = "Name")] + pub name: String, + #[serde(rename = "Beschreibung")] + pub beschreibung: String, + #[serde(rename = "AblaufschemaFormulars")] + pub ablaufschema_formulars: Vec, + #[serde(rename = "AblaufschemaElements")] + pub ablaufschema_elements: Vec, + #[serde(rename = "Personenstamms")] + pub personenstamms: Vec, + #[serde(rename = "Ordner")] + pub ordner: Ordner, + #[serde(rename = "Aktiv")] + pub aktiv: bool, + #[serde(rename = "ReadOnly")] + pub read_only: bool, + #[serde(rename = "AusfuehrungIntervall")] + pub ausfuehrung_intervall: i32, + #[serde(rename = "Uhrzeit")] + pub uhrzeit: String, + #[serde(rename = "SID")] + pub sid: i32, + #[serde(rename = "GUID")] + pub guid: String, + #[serde(rename = "Revision")] + pub revision: i32, + #[serde(rename = "MeldungID")] + pub meldung_id: i32, +} + +#[derive(Debug, Deserialize, Serialize)] +pub struct AblaufschemaFormular { + #[serde(rename = "DataFormName")] + pub data_form_name: String, + #[serde(rename = "DataFormSID")] + pub data_form_sid: i32, + #[serde(rename = "DataFormGUID")] + pub data_form_guid: String, + #[serde(rename = "Vorbedingung")] + pub vorbedingung: String, + #[serde(rename = "VorbedingungGueltig")] + pub vorbedingung_gueltig: bool, +} + +#[derive(Debug, Deserialize, Serialize)] +pub struct AblaufschemaElement { + #[serde(rename = "Typ")] + pub typ: i32, + #[serde(rename = "Beschreibung")] + pub beschreibung: String, + #[serde(rename = "Name")] + pub name: String, + #[serde(rename = "Nummer")] + pub nummer: i32, + #[serde(rename = "Vorbedingung")] + pub vorbedingung: String, + #[serde(rename = "VorbedingungGueltig")] + pub vorbedingung_gueltig: bool, + #[serde(rename = "Uebergangsart")] + pub uebergangsart: i32, + #[serde(rename = "SID")] + pub sid: i32, + #[serde(rename = "GUID")] + pub guid: String, + #[serde(rename = "Revision")] + pub revision: i32, + #[serde(rename = "AktionTyp")] + pub aktion_typ: i32, + #[serde(rename = "Parameter")] + pub parameter: String, + #[serde(rename = "Sichtbar")] + pub sichtbar: bool, + #[serde(rename = "StartElementSID")] + pub start_element_sid: i32, + #[serde(rename = "StartElementGUID")] + pub start_element_guid: String, + #[serde(rename = "EndElementSID")] + pub end_element_sid: i32, + #[serde(rename = "EndElementGUID")] + pub end_element_guid: String, +} + +#[derive(Debug, Deserialize, Serialize)] +pub struct Akte { + #[serde(rename = "Name")] + pub name: String, + #[serde(rename = "Beschreibung")] + pub beschreibung: Option, + #[serde(rename = "Ordner")] + pub ordner: Ordner, + #[serde(rename = "Aktiv")] + pub aktiv: bool, + #[serde(rename = "Kontext")] + pub kontext: Option, + #[serde(rename = "SID")] + pub sid: Option, + #[serde(rename = "GUID")] + pub guid: Option, + #[serde(rename = "Revision")] + pub revision: Option, + #[serde(rename = "Modul")] + pub modul: Vec, + #[serde(rename = "BerechtigungenAktiv")] + pub berechtigungen_aktiv: Option, + #[serde(rename = "AkteRolle")] + pub akte_rolle: Vec, + #[serde(rename = "OffeneProzedurenReiterAktiv")] + pub offene_prozeduren_reiter_aktiv: Option, +} + +#[derive(Debug, Deserialize, Serialize)] +pub struct AkteRolle { + #[serde(rename = "Name")] + pub name: String, + #[serde(rename = "Beschreibung")] + pub beschreibung: Option, + #[serde(rename = "ModulBerechtigung")] + pub modul_berechtigung: Vec, +} + +#[derive(Debug, Deserialize, Serialize)] +pub struct RecordLinkage { + #[serde(rename = "ID")] + pub id: i32, + #[serde(rename = "Name")] + pub name: String, + #[serde(rename = "UntereGrenze")] + pub untere_grenze: i32, + #[serde(rename = "ObereGrenze")] + pub obere_grenze: i32, + #[serde(rename = "Verwenden")] + pub verwenden: bool, + #[serde(rename = "RecordLinkageAbgleichvariablen")] + pub record_linkage_abgleichvariablen: Vec, +} + +#[derive(Debug, Deserialize, Serialize)] +pub struct RecordLinkageAbgleichvariablen { + #[serde(rename = "Abgleichvariable")] + pub abgleichvariable: i32, + #[serde(rename = "Gewichtung")] + pub gewichtung: f64, + #[serde(rename = "Verwenden")] + pub verwenden: bool, +} + +#[derive(Debug, Deserialize, Serialize)] +pub struct Rskript { + #[serde(rename = "Name")] + pub name: String, + #[serde(rename = "Titel")] + pub titel: Option, + #[serde(rename = "Skript")] + pub skript: Option, + #[serde(rename = "Bemerkung")] + pub bemerkung: String, + #[serde(rename = "Felder")] + pub felder: Option, + #[serde(rename = "Ordner")] + pub ordner: Ordner, + #[serde(rename = "SID")] + pub sid: Option, + #[serde(rename = "GUID")] + pub guid: Option, + #[serde(rename = "Revision")] + pub revision: Option, +} + +#[derive(Debug, Deserialize, Serialize)] +pub struct SidGuid { + #[serde(rename = "Sid")] + pub sid: i32, + #[serde(rename = "Guid")] + pub guid: String, +} + +#[derive(Debug, Deserialize, Serialize)] +pub struct Modul { + #[serde(rename = "Name")] + pub name: String, + #[serde(rename = "Beschreibung")] + pub beschreibung: Option, + #[serde(rename = "MenuEntry")] + pub menu_entry: Option, + #[serde(rename = "Typ")] + pub typ: i32, + #[serde(rename = "Position")] + pub position: f64, + #[serde(rename = "Konfiguration")] + pub konfiguration: Option, + #[serde(rename = "SID")] + pub sid: Option, + #[serde(rename = "GUID")] + pub guid: Option, + #[serde(rename = "Revision")] + pub revision: Option, + #[serde(rename = "Formular")] + pub formular: Vec, + #[serde(rename = "Ansicht")] + pub ansicht: Option, + #[serde(rename = "ElementParentGUID")] + pub element_parent_guid: Option, + #[serde(rename = "GeoeffnetAnzeigen")] + pub geoeffnet_anzeigen: Option, + #[serde(rename = "AbAufschliessenAktiv")] + pub ab_aufschliessen_aktiv: Option, + #[serde(rename = "AnmerkungenAktiv")] + pub anmerkungen_aktiv: Option, + #[serde(rename = "AufgabenlisteAktiv")] + pub aufgabenliste_aktiv: Option, +} + +#[derive(Debug, Deserialize, Serialize)] +pub struct ModulBerechtigung { + #[serde(rename = "ModulName")] + pub modul_name: String, + #[serde(rename = "anzeigen")] + pub anzeigen: bool, + #[serde(rename = "anlegen")] + pub anlegen: bool, + #[serde(rename = "bearbeiten")] + pub bearbeiten: bool, + #[serde(rename = "loeschen")] + pub loeschen: bool, +} + +#[derive(Debug, Deserialize, Serialize)] +pub struct ModulFormular { + #[serde(rename = "Name")] + pub name: Option, + #[serde(rename = "SID")] + pub sid: i32, + #[serde(rename = "GUID")] + pub guid: String, +}