1
0
mirror of https://github.com/pcvolkmer/osc-variant.git synced 2025-04-19 11:46:50 +00:00

Merge pull request #17 from CCC-MF/issue_16

Issue #16: Add missing model entries and add optional declaration
This commit is contained in:
Paul-Christian Volkmer 2023-11-06 11:46:34 +01:00 committed by GitHub
commit dce2a5cdda
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
5 changed files with 103 additions and 17 deletions

View File

@ -29,7 +29,7 @@ use serde::{Deserialize, Serialize};
use crate::model::onkostar_editor::OnkostarEditor;
use crate::model::requirements::{Requirement, Requires};
use crate::model::{Comparable, FolderContent, Listable, Ordner, Sortable};
use crate::model::{Ansichten, Comparable, FolderContent, Listable, Ordner, Sortable};
#[derive(Serialize, Deserialize, Debug)]
#[serde(deny_unknown_fields)]
@ -58,6 +58,9 @@ pub struct DataCatalogue {
entries: Entries,
#[serde(rename = "Ordner")]
ordner: Ordner,
#[serde(rename = "Ansichten", default)]
#[serde(skip_serializing_if = "Option::is_none")]
ansichten: Option<Ansichten>,
}
impl Listable for DataCatalogue {

View File

@ -32,7 +32,7 @@ use crate::model::onkostar_editor::OnkostarEditor;
use crate::model::requirements::{Requirement, Requires};
use crate::model::{
apply_profile_to_form_entry, apply_profile_to_form_field, Ansichten, Comparable, Entries,
Filter, FolderContent, FormEntry, FormEntryContainer, Listable, MenuCategory,
Filter, FolderContent, FormEntry, FormEntryContainer, Kennzahlen, Listable, MenuCategory,
PlausibilityRules, RefEntries, Script, Sortable,
};
use crate::model::{Haeufigkeiten, Ordner};
@ -80,18 +80,26 @@ pub struct DataForm {
#[serde(rename = "EmailTemplate")]
#[serde(skip_serializing_if = "Option::is_none")]
mail_template: Option<String>,
#[serde(rename = "ErkrankungText")]
erkrankung_text: String,
#[serde(rename = "ErkrankungText", default)]
#[serde(skip_serializing_if = "Option::is_none")]
erkrankung_text: Option<String>,
#[serde(rename = "ErkrankungTextLong")]
erkrankung_text_long: String,
#[serde(skip_serializing_if = "Option::is_none")]
erkrankung_text_long: Option<String>,
#[serde(rename = "ErkrankungProzedurText")]
erkrankung_prozedur_text: String,
#[serde(skip_serializing_if = "Option::is_none")]
erkrankung_prozedur_text: Option<String>,
#[serde(rename = "ErkrankungSummary")]
erkrankung_summary: String,
#[serde(skip_serializing_if = "Option::is_none")]
erkrankung_summary: Option<String>,
#[serde(rename = "ErkrankungBigSummary")]
erkrankung_big_summary: String,
#[serde(skip_serializing_if = "Option::is_none")]
erkrankung_big_summary: Option<String>,
#[serde(rename = "Kontext")]
kontext: String,
#[serde(rename = "Datenart")]
#[serde(skip_serializing_if = "Option::is_none")]
datenart: Option<String>,
#[serde(rename = "TudokReadonly")]
tudok_readonly: bool,
#[serde(rename = "VitalstatusRelevant")]
@ -138,6 +146,9 @@ pub struct DataForm {
guid: String,
#[serde(rename = "Revision")]
revision: u16,
#[serde(rename = "VerknuepftGUID")]
#[serde(skip_serializing_if = "Option::is_none")]
verknuepft_guid: Option<String>,
#[serde(rename = "SeitenzahlSichtbar")]
#[serde(skip_serializing_if = "Option::is_none")]
seitenanzahl_sichtbar: Option<bool>,
@ -148,7 +159,7 @@ pub struct DataForm {
#[serde(rename = "Haeufigkeiten")]
haeufigkeiten: Haeufigkeiten,
#[serde(rename = "Kennzahlen")]
kennzahlen: String,
kennzahlen: Kennzahlen,
#[serde(rename = "Ordner")]
ordner: Ordner,
#[serde(rename = "MenuCategory")]
@ -437,6 +448,9 @@ pub struct Entry {
grafik_ausrichtung: Option<String>,
#[serde(rename = "Mandatory")]
mandatory: String,
#[serde(rename = "Datenart", default)]
#[serde(skip_serializing_if = "Option::is_none")]
datenart: Option<String>,
#[serde(rename = "Filter")]
#[serde(skip_serializing_if = "Option::is_none")]
filter: Option<Filter>,
@ -456,6 +470,9 @@ pub struct Entry {
#[serde(rename = "AnzeigeAuswahl")]
#[serde(skip_serializing_if = "Option::is_none")]
anzeige_auswahl: Option<String>,
#[serde(rename = "Druckvorlage")]
#[serde(skip_serializing_if = "Option::is_none")]
druckvorlage: Option<String>,
#[serde(rename = "VersionFrom")]
#[serde(skip_serializing_if = "Option::is_none")]
version_from: Option<String>,
@ -463,6 +480,9 @@ pub struct Entry {
speichern: String,
#[serde(rename = "LeerAusblenden")]
leer_ausblenden: bool,
#[serde(rename = "Inhalt")]
#[serde(skip_serializing_if = "Option::is_none")]
inhalt: Option<String>,
#[serde(rename = "GeschlossenAnzeigen")]
geschlossen_anzeigen: bool,
#[serde(rename = "Min")]
@ -472,7 +492,8 @@ pub struct Entry {
#[serde(rename = "InUebersichtAnzeigen")]
in_uebersicht_anzeigen: bool,
#[serde(rename = "Hinweis")]
hinweis: String,
#[serde(skip_serializing_if = "Option::is_none")]
hinweis: Option<String>,
#[serde(rename = "Vorschlagskategorie")]
#[serde(skip_serializing_if = "Option::is_none")]
vorschlagskategorie: Option<String>,
@ -544,6 +565,12 @@ pub struct Entry {
in_auswertung: bool,
#[serde(rename = "InAuswertungGraph")]
in_auswertung_graph: bool,
#[serde(rename = "FragebogenItemNummer")]
#[serde(skip_serializing_if = "Option::is_none")]
fragebogen_item_nummer: Option<u8>,
#[serde(rename = "Score")]
#[serde(skip_serializing_if = "Option::is_none")]
score: Option<String>,
#[serde(rename = "AlignmentPatModul")]
alignment_pat_modul: String,
#[serde(rename = "DirectionPatModul")]

View File

@ -96,11 +96,15 @@ pub struct Ansicht {
#[serde(rename = "Konfiguration")]
konfiguration: String,
#[serde(rename = "DataForm")]
data_form: String,
#[serde(skip_serializing_if = "Option::is_none")]
data_form: Option<String>,
#[serde(rename = "DataCatalogue")]
data_catalogue: String,
#[serde(rename = "TypAuswahl")]
typ_auswahl: String,
#[serde(rename = "PersonenstammKontext", default)]
#[serde(skip_serializing_if = "Option::is_none")]
personenstamm_kontext: Option<String>,
#[serde(rename = "Suche")]
suche: bool,
#[serde(rename = "SID")]
@ -189,8 +193,12 @@ pub struct Haeufigkeit {
taeglich_aktualisieren: bool,
#[serde(rename = "Typ")]
typ: String,
#[serde(rename = "NichtBerechnen")]
#[serde(skip_serializing_if = "Option::is_none")]
nicht_berechnen: Option<String>,
#[serde(rename = "TabellenName")]
tabellen_name: String,
#[serde(skip_serializing_if = "Option::is_none")]
tabellen_name: Option<String>,
}
#[derive(Serialize, Deserialize, Debug)]
@ -214,6 +222,32 @@ pub struct Ordner {
parent_order: Option<Box<Ordner>>,
}
#[derive(Serialize, Deserialize, Debug)]
#[serde(deny_unknown_fields)]
pub struct Kennzahlen {
#[serde(rename = "Kennzahl", default)]
kennzahl: Vec<Kennzahl>,
}
#[derive(Serialize, Deserialize, Debug)]
#[serde(deny_unknown_fields)]
pub struct Kennzahl {
#[serde(rename = "Name")]
name: String,
#[serde(rename = "Nummer")]
nummer: String,
#[serde(rename = "Beschreibung")]
beschreibung: String,
#[serde(rename = "Notiz")]
notiz: String,
#[serde(rename = "Vorgabe")]
vorgabe: String,
#[serde(rename = "Haeufigkeitenzaehler")]
haeufigkeitenzaehler: String,
#[serde(rename = "Haeufigkeitennenner")]
haeufigkeitennenner: String,
}
fn apply_profile_to_form_entry<E>(entry: &mut E, form_reference: &FormReference)
where
E: FormEntry,

View File

@ -191,6 +191,9 @@ pub struct VersionEntry {
#[serde(rename = "Note", default)]
#[serde(skip_serializing_if = "Option::is_none")]
note: Option<String>,
#[serde(rename = "Type", default)]
#[serde(skip_serializing_if = "Option::is_none")]
type_: Option<String>,
#[serde(rename = "Position")]
position: String,
}
@ -331,8 +334,9 @@ pub struct AbbildungEntry {
#[serde(rename = "Synonyms")]
#[serde(skip_serializing_if = "Option::is_none")]
synonyms: Option<String>,
#[serde(rename = "Note")]
note: String,
#[serde(rename = "Note", default)]
#[serde(skip_serializing_if = "Option::is_none")]
note: Option<String>,
#[serde(rename = "Position")]
position: String,
}

View File

@ -32,7 +32,7 @@ use crate::model::onkostar_editor::OnkostarEditor;
use crate::model::requirements::{Requirement, Requires};
use crate::model::{
apply_profile_to_form_entry, apply_profile_to_form_field, Ansichten, Comparable, Entries,
Filter, FolderContent, FormEntry, FormEntryContainer, Listable, MenuCategory,
Filter, FolderContent, FormEntry, FormEntryContainer, Kennzahlen, Listable, MenuCategory,
PlausibilityRules, RefEntries, Script, Sortable,
};
use crate::model::{Haeufigkeiten, Ordner};
@ -80,7 +80,7 @@ pub struct Unterformular {
#[serde(rename = "EmailTemplate")]
#[serde(skip_serializing_if = "Option::is_none")]
mail_template: Option<String>,
#[serde(rename = "ErkrankungText")]
#[serde(rename = "ErkrankungText", default)]
#[serde(skip_serializing_if = "Option::is_none")]
erkrankung_text: Option<String>,
#[serde(rename = "ErkrankungTextLong")]
@ -97,6 +97,9 @@ pub struct Unterformular {
erkrankung_big_summary: Option<String>,
#[serde(rename = "Kontext")]
kontext: String,
#[serde(rename = "Datenart")]
#[serde(skip_serializing_if = "Option::is_none")]
datenart: Option<String>,
#[serde(rename = "TudokReadonly")]
tudok_readonly: bool,
#[serde(rename = "VitalstatusRelevant")]
@ -159,7 +162,7 @@ pub struct Unterformular {
#[serde(rename = "Haeufigkeiten")]
haeufigkeiten: Haeufigkeiten,
#[serde(rename = "Kennzahlen")]
kennzahlen: String,
kennzahlen: Kennzahlen,
#[serde(rename = "Ordner")]
ordner: Ordner,
#[serde(rename = "MenuCategory")]
@ -442,6 +445,9 @@ pub struct Entry {
grafik_ausrichtung: Option<String>,
#[serde(rename = "Mandatory")]
mandatory: String,
#[serde(rename = "Datenart", default)]
#[serde(skip_serializing_if = "Option::is_none")]
datenart: Option<String>,
#[serde(rename = "Filter")]
#[serde(skip_serializing_if = "Option::is_none")]
filter: Option<Filter>,
@ -461,6 +467,9 @@ pub struct Entry {
#[serde(rename = "AnzeigeAuswahl")]
#[serde(skip_serializing_if = "Option::is_none")]
anzeige_auswahl: Option<String>,
#[serde(rename = "Druckvorlage")]
#[serde(skip_serializing_if = "Option::is_none")]
druckvorlage: Option<String>,
#[serde(rename = "VersionFrom")]
#[serde(skip_serializing_if = "Option::is_none")]
version_from: Option<String>,
@ -468,6 +477,9 @@ pub struct Entry {
speichern: String,
#[serde(rename = "LeerAusblenden")]
leer_ausblenden: bool,
#[serde(rename = "Inhalt")]
#[serde(skip_serializing_if = "Option::is_none")]
inhalt: Option<String>,
#[serde(rename = "GeschlossenAnzeigen")]
geschlossen_anzeigen: bool,
#[serde(rename = "Min")]
@ -550,6 +562,12 @@ pub struct Entry {
in_auswertung: bool,
#[serde(rename = "InAuswertungGraph")]
in_auswertung_graph: bool,
#[serde(rename = "FragebogenItemNummer")]
#[serde(skip_serializing_if = "Option::is_none")]
fragebogen_item_nummer: Option<u8>,
#[serde(rename = "Score")]
#[serde(skip_serializing_if = "Option::is_none")]
score: Option<String>,
#[serde(rename = "AlignmentPatModul")]
alignment_pat_modul: String,
#[serde(rename = "DirectionPatModul")]