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

Merge pull request #30 from CCC-MF/issue_28

Änderung von Menü-Kategorie und Formularfeld-Standardwerten nun möglich
This commit is contained in:
Paul-Christian Volkmer 2024-03-18 15:21:58 +01:00 committed by GitHub
commit db6fb6b922
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
7 changed files with 916 additions and 15 deletions

View File

@ -186,6 +186,8 @@ forms:
form_field:
- name: "formularfeld"
hide: true
- name: "otherformfield"
default_value: "T"
form_references:
- name: "ref_first_mtb"
referenced_data_form: "Formularverweis.Variante"
@ -218,6 +220,9 @@ Ein zuvor bestehender Filter wird ersetzt.
Weiterhin wird die Eigenschaft "Speichern" des Formularfelds auf "Immer speichern" gesetzt um sicherzustellen, dass zuvor
enthaltene Daten weiterhin gespeichert bleiben und werden, auch wenn das Formularfeld nicht sichtbar ist.
Der Standardwert des Feldes `otherformfield` ist nun auf `T` gesetzt.
Zum Löschen eines Standardwerts ist `""` anzugeben.
**Achtung!** Diese Anwendung überprüft keine Scripts und verwendet angegebene Scripts als "valid" im resultierenden OSC-File.
Zudem kann die Menükategorie angepasst werden.

View File

@ -28,16 +28,16 @@ use std::collections::HashSet;
use console::style;
use serde::{Deserialize, Serialize};
use crate::checks::{Checkable, CheckNotice};
use crate::checks::CheckNotice::ErrorWithCode;
use crate::checks::{CheckNotice, Checkable};
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,
Ansichten, apply_profile_to_form_entry, apply_profile_to_form_field, Comparable, Entries,
Filter, FolderContent, FormEntry, FormEntryContainer, Kennzahlen, Listable, MenuCategory,
PlausibilityRules, PunkteKategorien, RefEntries, Script, Sortable,
};
use crate::model::{Haeufigkeiten, Ordner};
use crate::model::onkostar_editor::OnkostarEditor;
use crate::model::requirements::{Requirement, Requires};
use crate::profile::Profile;
#[derive(Serialize, Deserialize, Debug)]
@ -190,7 +190,7 @@ impl FormEntryContainer for DataForm {
apply_profile_to_form_entry(entry, form_reference)
});
// Hide form field using filter set to "false" if requested
// Hide form field using filter set to "false" if requested and change default value
profile_form
.form_fields
.iter()
@ -647,6 +647,10 @@ impl FormEntry for Entry {
});
}
fn update_default_value(&mut self, value: String) {
self.default_value = value
}
fn hide(&mut self) {
self.filter = Some(Filter {
condition: "false".into(),
@ -683,3 +687,112 @@ pub struct DataFormEntries {
#[serde(rename = "EntryName")]
entry_name: Option<Vec<String>>,
}
#[cfg(test)]
mod tests {
use std::str::FromStr;
use crate::model::onkostar_editor::OnkostarEditor;
use crate::profile::Profile;
#[test]
fn should_change_dataform_entry_default_value() {
let onkostar_editor = OnkostarEditor::from_str(include_str!("../../tests/test.osc"));
assert!(onkostar_editor.is_ok());
let mut onkostar_editor = onkostar_editor.unwrap();
let profile = "forms:
- name: 'Hauptformular'
form_fields:
- name: Auswahl
default_value: 'B'
";
let profile = Profile::from_str(profile);
assert!(profile.is_ok());
let profile = profile.unwrap();
assert_eq!(onkostar_editor.editor.data_form[0].entries.entry[2].name, "Auswahl");
assert_eq!(onkostar_editor.editor.data_form[0].entries.entry[2].default_value, "");
onkostar_editor.apply_profile(&profile);
assert_eq!(onkostar_editor.editor.data_form[0].entries.entry[2].name, "Auswahl");
assert_eq!(onkostar_editor.editor.data_form[0].entries.entry[2].default_value, "B")
}
#[test]
fn should_not_change_dataform_entry_default_value() {
let onkostar_editor = OnkostarEditor::from_str(include_str!("../../tests/test.osc"));
assert!(onkostar_editor.is_ok());
let mut onkostar_editor = onkostar_editor.unwrap();
let profile = "forms:
- name: 'Hauptformular'
";
let profile = Profile::from_str(profile);
assert!(profile.is_ok());
let profile = profile.unwrap();
assert_eq!(onkostar_editor.editor.data_form[0].entries.entry[2].name, "Auswahl");
assert_eq!(onkostar_editor.editor.data_form[0].entries.entry[2].default_value, "");
onkostar_editor.apply_profile(&profile);
assert_eq!(onkostar_editor.editor.data_form[0].entries.entry[2].name, "Auswahl");
assert_eq!(onkostar_editor.editor.data_form[0].entries.entry[2].default_value, "")
}
#[test]
fn should_change_menu_category() {
let onkostar_editor = OnkostarEditor::from_str(include_str!("../../tests/test.osc"));
assert!(onkostar_editor.is_ok());
let mut onkostar_editor = onkostar_editor.unwrap();
let profile = "forms:
- name: 'Hauptformular'
menu_category:
name: Testformulare
position: 1.0
column: 1
";
let profile = Profile::from_str(profile);
assert!(profile.is_ok());
let profile = profile.unwrap();
onkostar_editor.apply_profile(&profile);
match &onkostar_editor.editor.data_form[0].menu_category {
Some(menu_category) => assert_eq!(menu_category.name, "Testformulare"),
_ => panic!("Test failed: MenuCategory not found!")
}
}
#[test]
fn should_keep_menu_category() {
let onkostar_editor = OnkostarEditor::from_str(include_str!("../../tests/test.osc"));
assert!(onkostar_editor.is_ok());
let mut onkostar_editor = onkostar_editor.unwrap();
let profile = "forms:
- name: 'Hauptformular'
";
let profile = Profile::from_str(profile);
assert!(profile.is_ok());
let profile = profile.unwrap();
onkostar_editor.apply_profile(&profile);
match &onkostar_editor.editor.data_form[0].menu_category {
Some(menu_category) => assert_eq!(menu_category.name, "Test"),
_ => panic!("Test failed: MenuCategory not found!")
}
}
}

View File

@ -335,6 +335,12 @@ where
if entry.get_name() == form_field.name && form_field.hide {
entry.hide()
}
if entry.get_name() == form_field.name {
if let Some(new_default_value) = &form_field.default_value {
entry.update_default_value(new_default_value.to_string())
}
}
}
pub trait FormEntryContainer {
@ -379,6 +385,7 @@ pub trait FormEntry {
fn update_anzeige(&mut self, value: String);
fn update_anzeige_auswahl(&mut self, value: String);
fn update_scripts_code(&mut self, value: String);
fn update_default_value(&mut self, value: String);
fn hide(&mut self);
}

View File

@ -45,7 +45,7 @@ pub struct OnkostarEditor {
#[serde(rename = "InfoXML")]
info_xml: InfoXML,
#[serde(rename = "Editor")]
editor: Editor,
pub editor: Editor,
}
impl OnkostarEditor {
@ -506,13 +506,13 @@ pub struct InfoXML {
#[derive(Serialize, Deserialize, Debug)]
#[serde(deny_unknown_fields)]
struct Editor {
pub struct Editor {
#[serde(rename = "PropertyCatalogue", default)]
property_catalogue: Vec<PropertyCatalogue>,
#[serde(rename = "DataCatalogue", default)]
data_catalogue: Vec<DataCatalogue>,
#[serde(rename = "Unterformular", default)]
unterformular: Vec<Unterformular>,
pub unterformular: Vec<Unterformular>,
#[serde(rename = "DataForm", default)]
data_form: Vec<DataForm>,
pub data_form: Vec<DataForm>,
}

View File

@ -25,19 +25,19 @@
use std::cmp::Ordering;
use std::collections::HashSet;
use crate::checks::CheckNotice::ErrorWithCode;
use crate::checks::{CheckNotice, Checkable};
use console::style;
use serde::{Deserialize, Serialize};
use crate::model::onkostar_editor::OnkostarEditor;
use crate::model::requirements::{Requirement, Requires};
use crate::checks::{Checkable, CheckNotice};
use crate::checks::CheckNotice::ErrorWithCode;
use crate::model::{
apply_profile_to_form_entry, apply_profile_to_form_field, Ansichten, Comparable, Entries,
Ansichten, apply_profile_to_form_entry, apply_profile_to_form_field, Comparable, Entries,
Filter, FolderContent, FormEntry, FormEntryContainer, Kennzahlen, Listable, MenuCategory,
PlausibilityRules, PunkteKategorien, RefEntries, Script, Sortable,
};
use crate::model::{Haeufigkeiten, Ordner};
use crate::model::onkostar_editor::OnkostarEditor;
use crate::model::requirements::{Requirement, Requires};
use crate::profile::Profile;
#[derive(Serialize, Deserialize, Debug)]
@ -193,7 +193,7 @@ impl FormEntryContainer for Unterformular {
apply_profile_to_form_entry(entry, form_reference)
});
// Hide form field using filter set to "false" if requested
// Hide form field using filter set to "false" if requested and change default value
profile_form
.form_fields
.iter()
@ -645,6 +645,10 @@ impl FormEntry for Entry {
});
}
fn update_default_value(&mut self, value: String) {
self.default_value = value
}
fn hide(&mut self) {
self.filter = Some(Filter {
condition: "false".into(),
@ -682,3 +686,82 @@ pub struct DataFormEntries {
#[serde(skip_serializing_if = "Option::is_none")]
entry_name: Option<Vec<String>>,
}
#[cfg(test)]
mod tests {
use std::str::FromStr;
use crate::model::onkostar_editor::OnkostarEditor;
use crate::profile::Profile;
#[test]
fn should_change_dataform_entry_default_value() {
let onkostar_editor = OnkostarEditor::from_str(include_str!("../../tests/test.osc"));
assert!(onkostar_editor.is_ok());
let mut onkostar_editor = onkostar_editor.unwrap();
let profile = "forms:
- name: 'Unterformular'
form_fields:
- name: Termin
default_value: '2024-03-18'
";
let profile = Profile::from_str(profile);
assert!(profile.is_ok());
let profile = profile.unwrap();
assert_eq!(onkostar_editor.editor.unterformular[0].entries.entry[1].name, "Termin");
assert_eq!(onkostar_editor.editor.unterformular[0].entries.entry[1].default_value, "");
onkostar_editor.apply_profile(&profile);
assert_eq!(onkostar_editor.editor.unterformular[0].entries.entry[1].name, "Termin");
assert_eq!(onkostar_editor.editor.unterformular[0].entries.entry[1].default_value, "2024-03-18")
}
#[test]
fn should_not_change_dataform_entry_default_value() {
let onkostar_editor = OnkostarEditor::from_str(include_str!("../../tests/test.osc"));
assert!(onkostar_editor.is_ok());
let mut onkostar_editor = onkostar_editor.unwrap();
let profile = "forms:
- name: 'Unterformular'
";
let profile = Profile::from_str(profile);
assert!(profile.is_ok());
let profile = profile.unwrap();
assert_eq!(onkostar_editor.editor.unterformular[0].entries.entry[1].name, "Termin");
assert_eq!(onkostar_editor.editor.unterformular[0].entries.entry[1].default_value, "");
onkostar_editor.apply_profile(&profile);
assert_eq!(onkostar_editor.editor.unterformular[0].entries.entry[1].name, "Termin");
assert_eq!(onkostar_editor.editor.unterformular[0].entries.entry[1].default_value, "")
}
#[test]
fn should_ignore_menu_category_for_subform() {
let onkostar_editor = OnkostarEditor::from_str(include_str!("../../tests/test.osc"));
assert!(onkostar_editor.is_ok());
let mut onkostar_editor = onkostar_editor.unwrap();
let profile = "forms:
- name: 'Unterformular'
";
let profile = Profile::from_str(profile);
assert!(profile.is_ok());
let profile = profile.unwrap();
onkostar_editor.apply_profile(&profile);
assert!(&onkostar_editor.editor.unterformular[0].menu_category.is_none());
}
}

View File

@ -88,6 +88,7 @@ pub struct FormField {
pub name: String,
#[serde(default)]
pub hide: bool,
pub default_value: Option<String>
}
#[derive(Deserialize)]
@ -263,4 +264,24 @@ mod tests {
Err(e) => panic!("Cannot deserialize profile: {}", e),
}
}
#[test]
fn should_deserialize_form_fields_with_default_value() {
let content = "forms:
- name: 'DNPM Therapieplan'
form_fields:
- name: formularfeld_to_keep
default_value: 'X'
";
match Profile::from_str(content) {
Ok(profile) => {
assert_eq!(profile.forms.len(), 1);
assert_eq!(profile.forms[0].name, "DNPM Therapieplan");
assert_eq!(profile.forms[0].form_fields[0].name, "formularfeld_to_keep");
assert_eq!(profile.forms[0].form_fields[0].default_value, Some("X".to_string()));
}
Err(e) => panic!("Cannot deserialize profile: {}", e),
}
}
}

672
tests/test.osc Normal file
View File

@ -0,0 +1,672 @@
<?xml version="1.0" encoding="UTF-8"?>
<OnkostarEditor>
<InfoXML>
<DatumXML>2024-03-18Z</DatumXML>
<Name>OnkoStar</Name>
<Version>2.12.4</Version>
</InfoXML>
<Editor>
<PropertyCatalogue>
<Name>TEST.Property</Name>
<Description>Testproperty</Description>
<Standard>SIMPLE</Standard>
<Readonly>true</Readonly>
<SID>1001</SID>
<GUID>6461ffdd-d708-11e5-b199-0050568f1add</GUID>
<Revision>1</Revision>
<Versions>
<Version>
<VersionNumber>1</VersionNumber>
<ValidFrom>2024-03-18Z</ValidFrom>
<OID>TEST.Property.v1</OID>
<Active>true</Active>
<Description>V1</Description>
<SID>1001</SID>
<GUID>646601a4-d708-11e5-b199-0050568f1add</GUID>
<Revision>1</Revision>
<Entries>
<Entry>
<Code>A</Code>
<ShortDescription>A-Wert</ShortDescription>
<Description>Der A-Wert</Description>
<Note/>
<Position>2.0</Position>
</Entry>
<Entry>
<Code>B</Code>
<ShortDescription>B-Wert</ShortDescription>
<Description>Der B-Wert</Description>
<Note/>
<Position>3.0</Position>
</Entry>
</Entries>
<Categories/>
</Version>
</Versions>
<Ordner>
<Bibliothek>
<Name>ONKOSTAR Bibliothek</Name>
</Bibliothek>
<Name>Test</Name>
<Typ>1</Typ>
<ParentOrdner>
<Bibliothek>
<Name>ONKOSTAR Bibliothek</Name>
</Bibliothek>
<Name>Basis</Name>
<Typ>1</Typ>
</ParentOrdner>
</Ordner>
</PropertyCatalogue>
<DataCatalogue>
<Name>Hauptformulardaten</Name>
<NameExport>Hauptformulardaten</NameExport>
<Category>-3</Category>
<Description>Hauptformulardaten</Description>
<Note/>
<Readonly>false</Readonly>
<BestOf>false</BestOf>
<SID>20119</SID>
<GUID>4d1488e7-c4d6-459a-be1e-330097d815ce</GUID>
<Revision>4</Revision>
<Entries>
<Entry>
<Name>Auswahl</Name>
<NameExport>Auswahl</NameExport>
<Description>Auswahl A oder B</Description>
<Type>shorttext</Type>
<SubTable/>
<ScaleUnit/>
<MaxLength>255</MaxLength>
<DefaultValue/>
<Active>true</Active>
<Readonly>false</Readonly>
<Filterable>false</Filterable>
<MultipleChoice>false</MultipleChoice>
<Position>0.0</Position>
<Note/>
<DateEstimatedAllowed>false</DateEstimatedAllowed>
<DateUnknownAllowed>false</DateUnknownAllowed>
<oeChoiceOptions>0</oeChoiceOptions>
<Fachabteilungsbezug>false</Fachabteilungsbezug>
<Use/>
<SID>20119</SID>
<GUID>ee1e178f-cdb1-4d7f-a415-7b19cc5da21d</GUID>
<Revision>1</Revision>
</Entry>
<Entry>
<Name>Datum</Name>
<NameExport>Datum</NameExport>
<Description>Datum</Description>
<Type>date</Type>
<SubTable/>
<ScaleUnit/>
<MaxLength>0</MaxLength>
<DefaultValue/>
<Active>true</Active>
<Readonly>false</Readonly>
<Filterable>false</Filterable>
<MultipleChoice>false</MultipleChoice>
<Position>0.0</Position>
<Note/>
<DateEstimatedAllowed>false</DateEstimatedAllowed>
<DateUnknownAllowed>false</DateUnknownAllowed>
<oeChoiceOptions>0</oeChoiceOptions>
<Fachabteilungsbezug>false</Fachabteilungsbezug>
<Use/>
<SID>20119</SID>
<GUID>34874112-d651-457b-a554-178a43ed38ed</GUID>
<Revision>1</Revision>
</Entry>
</Entries>
<Ordner>
<Bibliothek>
<Name>Benutzer Bibliothek</Name>
</Bibliothek>
<Name>Test</Name>
<Typ>2</Typ>
</Ordner>
</DataCatalogue>
<DataCatalogue>
<Name>Unterformulardaten</Name>
<NameExport>Unterformulardaten</NameExport>
<Category>-3</Category>
<Description>Unterformulardaten</Description>
<Note/>
<Readonly>false</Readonly>
<BestOf>false</BestOf>
<SID>20119</SID>
<GUID>4d1488e7-c4d6-459a-be1e-330097d815cd</GUID>
<Revision>4</Revision>
<Entries>
<Entry>
<Name>Termin</Name>
<NameExport>Termin</NameExport>
<Description>Termin</Description>
<Type>date</Type>
<SubTable/>
<ScaleUnit/>
<MaxLength>0</MaxLength>
<DefaultValue/>
<Active>true</Active>
<Readonly>false</Readonly>
<Filterable>false</Filterable>
<MultipleChoice>false</MultipleChoice>
<Position>0.0</Position>
<Note/>
<DateEstimatedAllowed>false</DateEstimatedAllowed>
<DateUnknownAllowed>false</DateUnknownAllowed>
<oeChoiceOptions>0</oeChoiceOptions>
<Fachabteilungsbezug>false</Fachabteilungsbezug>
<Use/>
<SID>20119</SID>
<GUID>44874112-e651-457b-a554-178a43ed38ed</GUID>
<Revision>1</Revision>
</Entry>
</Entries>
<Ordner>
<Bibliothek>
<Name>Benutzer Bibliothek</Name>
</Bibliothek>
<Name>Test</Name>
<Typ>2</Typ>
</Ordner>
</DataCatalogue>
<Unterformular>
<DataCatalogues>
<DataCatalogue>Unterformulardaten</DataCatalogue>
</DataCatalogues>
<Category>-3</Category>
<Name>Unterformular</Name>
<Version>1</Version>
<MenuEntry>Unterformular</MenuEntry>
<Title>Unterformulardaten</Title>
<Description>Unterformular</Description>
<Note/>
<Readonly>false</Readonly>
<Active>true</Active>
<TudokPosition>0</TudokPosition>
<Aktenbereich>-1</Aktenbereich>
<BefragungRelevant>false</BefragungRelevant>
<Summary/>
<BigSummary/>
<KalenderSchnipsel/>
<EmailTemplate/>
<ErkrankungText/>
<ErkrankungTextLong/>
<ErkrankungProzedurText/>
<ErkrankungSummary/>
<ErkrankungBigSummary/>
<Kontext>2</Kontext>
<TudokReadonly>false</TudokReadonly>
<VitalstatusRelevant>true</VitalstatusRelevant>
<AutoNummerierung>false</AutoNummerierung>
<Zwischenspeichern>true</Zwischenspeichern>
<Zurueckblaettern>false</Zurueckblaettern>
<Datenbankexport>false</Datenbankexport>
<DatenschutzRelevant>false</DatenschutzRelevant>
<KonferenzRelevant>false</KonferenzRelevant>
<hatUnterformulare>false</hatUnterformulare>
<SID>20119</SID>
<GUID>b6c986ee-9f6e-4052-be71-f5c20efbb7d8</GUID>
<Revision>1</Revision>
<SeitenzahlSichtbar>true</SeitenzahlSichtbar>
<Entries>
<Entry parentId="10290">
<Type>group</Type>
<Name>Feldgruppe1</Name>
<Description>Feldgruppe1</Description>
<Active>true</Active>
<Readonly>false</Readonly>
<Printable>true</Printable>
<Position>1.0</Position>
<Note/>
<Beschriftung1/>
<Beschriftung2/>
<WertAnzeigenPatmodul>false</WertAnzeigenPatmodul>
<MultipleChoice>false</MultipleChoice>
<DefaultValue/>
<Alignment>0</Alignment>
<Direction>0</Direction>
<DataCatalogueEntry/>
<ElementParent/>
<ProcedureDateStatus>none</ProcedureDateStatus>
<ZuordnungErkrankung>0</ZuordnungErkrankung>
<GrafikAusrichtung>0</GrafikAusrichtung>
<Mandatory>false</Mandatory>
<NotSpecified>false</NotSpecified>
<ReferencedDataFormField/>
<Anzeige/>
<AnzeigeAuswahl/>
<Speichern>1</Speichern>
<LeerAusblenden>true</LeerAusblenden>
<GeschlossenAnzeigen>false</GeschlossenAnzeigen>
<Min>0</Min>
<Max>0</Max>
<InUebersichtAnzeigen>false</InUebersichtAnzeigen>
<Hinweis/>
<Platzhalter/>
<ShowAuspraegungen>true</ShowAuspraegungen>
<ProzedurdatumUebernehmen>false</ProzedurdatumUebernehmen>
<Vorschlaege>false</Vorschlaege>
<AnzeigeAuswahldialog/>
<SucheAuswahldialog/>
<MindestbreiteLabel>0</MindestbreiteLabel>
<MindestbreiteFeld>0</MindestbreiteFeld>
<OrganisationunitFilter>0</OrganisationunitFilter>
<Aktion>0</Aktion>
<GroesseTextfeld>0</GroesseTextfeld>
<FilterAufheben>false</FilterAufheben>
<Resizable>false</Resizable>
<Verschluesselt>false</Verschluesselt>
<MemoArt>1</MemoArt>
<DateValidFrom>0</DateValidFrom>
<DateValidTo>0</DateValidTo>
<DateValidFuture>true</DateValidFuture>
<Titel/>
<InAuswertung>false</InAuswertung>
<InAuswertungGraph>false</InAuswertungGraph>
<AlignmentPatModul>0</AlignmentPatModul>
<DirectionPatModul>0</DirectionPatModul>
<SeitenumbruchPatModul>true</SeitenumbruchPatModul>
<MarkierungIgnorieren>false</MarkierungIgnorieren>
<SucheArt>0</SucheArt>
<SID>20119</SID>
<GUID>317f11b6-41be-4d80-abf6-78d7100f2f58</GUID>
<Revision>2</Revision>
<vorherigeWerte>false</vorherigeWerte>
<EinfuegenVerhindern>false</EinfuegenVerhindern>
</Entry>
<Entry parentRefId="10290">
<Type>datefield</Type>
<Name>Termin</Name>
<Description>Termin</Description>
<Active>true</Active>
<Readonly>false</Readonly>
<Printable>true</Printable>
<Position>1.0</Position>
<Note/>
<Beschriftung1/>
<Beschriftung2/>
<WertAnzeigenPatmodul>false</WertAnzeigenPatmodul>
<MultipleChoice>false</MultipleChoice>
<DefaultValue/>
<Alignment>0</Alignment>
<Direction>0</Direction>
<DataCatalogueEntry>Termin</DataCatalogueEntry>
<DataCatalogueEntryTable>Unterformulardaten</DataCatalogueEntryTable>
<ElementParent>Feldgruppe1</ElementParent>
<ProcedureDateStatus>date</ProcedureDateStatus>
<ZuordnungErkrankung>0</ZuordnungErkrankung>
<GrafikAusrichtung>0</GrafikAusrichtung>
<Mandatory>false</Mandatory>
<NotSpecified>false</NotSpecified>
<ReferencedDataFormField/>
<Anzeige/>
<AnzeigeAuswahl/>
<Speichern>1</Speichern>
<LeerAusblenden>true</LeerAusblenden>
<GeschlossenAnzeigen>false</GeschlossenAnzeigen>
<Min>0</Min>
<Max>0</Max>
<InUebersichtAnzeigen>false</InUebersichtAnzeigen>
<Hinweis/>
<Platzhalter/>
<ShowAuspraegungen>true</ShowAuspraegungen>
<ProzedurdatumUebernehmen>false</ProzedurdatumUebernehmen>
<Vorschlaege>false</Vorschlaege>
<AnzeigeAuswahldialog/>
<SucheAuswahldialog/>
<MindestbreiteLabel>0</MindestbreiteLabel>
<MindestbreiteFeld>0</MindestbreiteFeld>
<OrganisationunitFilter>0</OrganisationunitFilter>
<Aktion>0</Aktion>
<GroesseTextfeld>0</GroesseTextfeld>
<FilterAufheben>false</FilterAufheben>
<Resizable>false</Resizable>
<Verschluesselt>false</Verschluesselt>
<MemoArt>1</MemoArt>
<DateValidFrom>0</DateValidFrom>
<DateValidTo>0</DateValidTo>
<DateValidFuture>true</DateValidFuture>
<Titel/>
<InAuswertung>false</InAuswertung>
<InAuswertungGraph>false</InAuswertungGraph>
<AlignmentPatModul>0</AlignmentPatModul>
<DirectionPatModul>0</DirectionPatModul>
<SeitenumbruchPatModul>true</SeitenumbruchPatModul>
<MarkierungIgnorieren>false</MarkierungIgnorieren>
<SucheArt>0</SucheArt>
<SID>20119</SID>
<GUID>c95c0989-4489-4eb6-916e-000e1bfc8453</GUID>
<Revision>1</Revision>
<vorherigeWerte>false</vorherigeWerte>
<EinfuegenVerhindern>false</EinfuegenVerhindern>
</Entry>
</Entries>
<PlausibilityRules/>
<Haeufigkeiten/>
<Kennzahlen/>
<Ordner>
<Bibliothek>
<Name>Benutzer Bibliothek</Name>
</Bibliothek>
<Name>DNPM</Name>
<Typ>3</Typ>
</Ordner>
</Unterformular>
<DataForm>
<DataCatalogues>
<DataCatalogue>Hauptformulardaten</DataCatalogue>
</DataCatalogues>
<Category>-3</Category>
<Name>Hauptformular</Name>
<Version>1</Version>
<MenuEntry>Hauptformular</MenuEntry>
<Title>Hauptformular</Title>
<Description>Test Hauptformular</Description>
<Note/>
<Readonly>false</Readonly>
<Active>true</Active>
<TudokPosition>0</TudokPosition>
<Aktenbereich>0</Aktenbereich>
<BefragungRelevant>false</BefragungRelevant>
<Summary>&lt;div style="margin-left:10px"&gt;&amp;#10;&lt;font style="font-weight: bold;color: orange"&gt;Hauptformular&lt;/font&gt; &amp;#10;&lt;p&gt;Datum: {datum}&lt;/p&gt;&amp;#10;&lt;/div&gt;</Summary>
<BigSummary>&lt;div style="margin-left:10px"&gt;&amp;#10;&lt;font style="font-weight: bold;color: orange"&gt;Hauptformular&lt;/font&gt; &amp;#10;&lt;p&gt;Datum: {datum}&lt;/p&gt;&amp;#10;&lt;/div&gt;</BigSummary>
<KalenderSchnipsel/>
<EmailTemplate/>
<ErkrankungText/>
<ErkrankungTextLong/>
<ErkrankungProzedurText/>
<ErkrankungSummary/>
<ErkrankungBigSummary/>
<Kontext>0</Kontext>
<TudokReadonly>false</TudokReadonly>
<VitalstatusRelevant>false</VitalstatusRelevant>
<AutoNummerierung>true</AutoNummerierung>
<Zwischenspeichern>true</Zwischenspeichern>
<Zurueckblaettern>false</Zurueckblaettern>
<Datenbankexport>false</Datenbankexport>
<DatenschutzRelevant>false</DatenschutzRelevant>
<KonferenzRelevant>false</KonferenzRelevant>
<hatUnterformulare>true</hatUnterformulare>
<SID>20119</SID>
<GUID>24dd2b02-a9ed-4bc3-8d6f-e82e037068cd</GUID>
<Revision>166</Revision>
<SeitenzahlSichtbar>true</SeitenzahlSichtbar>
<Entries>
<Entry parentId="10291">
<Type>group</Type>
<Name>Feldgruppe2</Name>
<Description>Feldgruppe2</Description>
<Active>true</Active>
<Readonly>false</Readonly>
<Printable>true</Printable>
<Position>1.0</Position>
<Note/>
<Beschriftung1/>
<Beschriftung2/>
<WertAnzeigenPatmodul>false</WertAnzeigenPatmodul>
<MultipleChoice>false</MultipleChoice>
<DefaultValue/>
<Alignment>0</Alignment>
<Direction>0</Direction>
<DataCatalogueEntry/>
<ElementParent/>
<ProcedureDateStatus>none</ProcedureDateStatus>
<ZuordnungErkrankung>0</ZuordnungErkrankung>
<GrafikAusrichtung>0</GrafikAusrichtung>
<Mandatory>false</Mandatory>
<NotSpecified>false</NotSpecified>
<ReferencedDataFormField/>
<Anzeige/>
<AnzeigeAuswahl/>
<Speichern>1</Speichern>
<LeerAusblenden>true</LeerAusblenden>
<GeschlossenAnzeigen>false</GeschlossenAnzeigen>
<Min>0</Min>
<Max>0</Max>
<InUebersichtAnzeigen>false</InUebersichtAnzeigen>
<Hinweis/>
<Platzhalter/>
<ShowAuspraegungen>true</ShowAuspraegungen>
<ProzedurdatumUebernehmen>false</ProzedurdatumUebernehmen>
<Vorschlaege>false</Vorschlaege>
<AnzeigeAuswahldialog/>
<SucheAuswahldialog/>
<MindestbreiteLabel>0</MindestbreiteLabel>
<MindestbreiteFeld>0</MindestbreiteFeld>
<OrganisationunitFilter>0</OrganisationunitFilter>
<Aktion>0</Aktion>
<GroesseTextfeld>0</GroesseTextfeld>
<FilterAufheben>false</FilterAufheben>
<Resizable>false</Resizable>
<Verschluesselt>false</Verschluesselt>
<MemoArt>1</MemoArt>
<DateValidFrom>0</DateValidFrom>
<DateValidTo>0</DateValidTo>
<DateValidFuture>true</DateValidFuture>
<Titel/>
<InAuswertung>false</InAuswertung>
<InAuswertungGraph>false</InAuswertungGraph>
<AlignmentPatModul>0</AlignmentPatModul>
<DirectionPatModul>0</DirectionPatModul>
<SeitenumbruchPatModul>true</SeitenumbruchPatModul>
<MarkierungIgnorieren>false</MarkierungIgnorieren>
<SucheArt>0</SucheArt>
<SID>20119</SID>
<GUID>317f11b6-41be-4d80-abf6-78d7100f2f58</GUID>
<Revision>2</Revision>
<vorherigeWerte>false</vorherigeWerte>
<EinfuegenVerhindern>false</EinfuegenVerhindern>
</Entry>
<Entry parentRefId="10399">
<Type>button</Type>
<Name>Button1</Name>
<Description>Testbutton</Description>
<Active>true</Active>
<Readonly>false</Readonly>
<Printable>false</Printable>
<Position>10.0</Position>
<Note/>
<Beschriftung1/>
<Beschriftung2/>
<WertAnzeigenPatmodul>false</WertAnzeigenPatmodul>
<MultipleChoice>false</MultipleChoice>
<DefaultValue/>
<Alignment>0</Alignment>
<Direction>0</Direction>
<DataCatalogueEntry/>
<ElementParent>Feldgruppe2</ElementParent>
<ProcedureDateStatus>none</ProcedureDateStatus>
<ZuordnungErkrankung>0</ZuordnungErkrankung>
<GrafikAusrichtung>0</GrafikAusrichtung>
<Mandatory>false</Mandatory>
<NotSpecified>false</NotSpecified>
<ReferencedDataFormField/>
<Anzeige/>
<AnzeigeAuswahl/>
<Speichern>1</Speichern>
<LeerAusblenden>true</LeerAusblenden>
<GeschlossenAnzeigen>false</GeschlossenAnzeigen>
<Min>0</Min>
<Max>0</Max>
<InUebersichtAnzeigen>false</InUebersichtAnzeigen>
<Hinweis/>
<Platzhalter/>
<ShowAuspraegungen>true</ShowAuspraegungen>
<ProzedurdatumUebernehmen>false</ProzedurdatumUebernehmen>
<Vorschlaege>false</Vorschlaege>
<AnzeigeAuswahldialog/>
<SucheAuswahldialog/>
<MindestbreiteLabel>0</MindestbreiteLabel>
<MindestbreiteFeld>0</MindestbreiteFeld>
<OrganisationunitFilter>0</OrganisationunitFilter>
<Aktion>-1</Aktion>
<GroesseTextfeld>0</GroesseTextfeld>
<FilterAufheben>false</FilterAufheben>
<Resizable>false</Resizable>
<Verschluesselt>false</Verschluesselt>
<MemoArt>1</MemoArt>
<DateValidFrom>0</DateValidFrom>
<DateValidTo>0</DateValidTo>
<DateValidFuture>true</DateValidFuture>
<Titel/>
<InAuswertung>false</InAuswertung>
<InAuswertungGraph>false</InAuswertungGraph>
<AlignmentPatModul>0</AlignmentPatModul>
<DirectionPatModul>0</DirectionPatModul>
<SeitenumbruchPatModul>true</SeitenumbruchPatModul>
<MarkierungIgnorieren>false</MarkierungIgnorieren>
<SucheArt>0</SucheArt>
<SID>20119</SID>
<GUID>8a7627c4-79ff-4d01-a0ae-915dfb9be0be</GUID>
<Revision>4</Revision>
<vorherigeWerte>false</vorherigeWerte>
<EinfuegenVerhindern>false</EinfuegenVerhindern>
</Entry>
<Entry parentRefId="10395">
<Type>combobox</Type>
<Name>Auswahl</Name>
<Description>Aktueller Wert</Description>
<Active>true</Active>
<Readonly>false</Readonly>
<Printable>true</Printable>
<Position>1.0</Position>
<Note/>
<MultipleChoice>false</MultipleChoice>
<DefaultValue/>
<Alignment>1</Alignment>
<Direction>0</Direction>
<DataCatalogueEntry>Auswahl</DataCatalogueEntry>
<DataCatalogueEntryTable>TEST.Property</DataCatalogueEntryTable>
<ElementParent/>
<ProcedureDateStatus>none</ProcedureDateStatus>
<ZuordnungErkrankung>0</ZuordnungErkrankung>
<GrafikAusrichtung>0</GrafikAusrichtung>
<Mandatory>mandatory</Mandatory>
<NotSpecified>false</NotSpecified>
<ReferencedDataFormField/>
<Anzeige/>
<AnzeigeAuswahl/>
<Speichern>1</Speichern>
<LeerAusblenden>true</LeerAusblenden>
<GeschlossenAnzeigen>false</GeschlossenAnzeigen>
<Min>0</Min>
<Max>0</Max>
<InUebersichtAnzeigen>false</InUebersichtAnzeigen>
<Hinweis>Wählen Sie hier den Wert aus.</Hinweis>
<Platzhalter/>
<ShowAuspraegungen>true</ShowAuspraegungen>
<ProzedurdatumUebernehmen>false</ProzedurdatumUebernehmen>
<Vorschlaege>false</Vorschlaege>
<AnzeigeAuswahldialog>code</AnzeigeAuswahldialog>
<SucheAuswahldialog>code,kurz</SucheAuswahldialog>
<MindestbreiteLabel>0</MindestbreiteLabel>
<MindestbreiteFeld>0</MindestbreiteFeld>
<OrganisationunitFilter>0</OrganisationunitFilter>
<Aktion>0</Aktion>
<GroesseTextfeld>0</GroesseTextfeld>
<FilterAufheben>false</FilterAufheben>
<Resizable>false</Resizable>
<Verschluesselt>false</Verschluesselt>
<MemoArt>1</MemoArt>
<DateValidFrom>0</DateValidFrom>
<DateValidTo>0</DateValidTo>
<DateValidFuture>true</DateValidFuture>
<Titel/>
<InAuswertung>false</InAuswertung>
<InAuswertungGraph>false</InAuswertungGraph>
<AlignmentPatModul>1</AlignmentPatModul>
<DirectionPatModul>0</DirectionPatModul>
<SeitenumbruchPatModul>true</SeitenumbruchPatModul>
<MarkierungIgnorieren>false</MarkierungIgnorieren>
<SucheArt>0</SucheArt>
<SID>20119</SID>
<GUID>9c9cf713-efd9-4089-b615-1519d7701af9</GUID>
<Revision>6</Revision>
<vorherigeWerte>false</vorherigeWerte>
<EinfuegenVerhindern>false</EinfuegenVerhindern>
</Entry>
<Entry>
<Type>subform</Type>
<Name>Unterformular</Name>
<Description>Unterformular</Description>
<Active>true</Active>
<Readonly>false</Readonly>
<Printable>false</Printable>
<Position>7.5</Position>
<Note/>
<MultipleChoice>false</MultipleChoice>
<DefaultValue/>
<Alignment>0</Alignment>
<Direction>0</Direction>
<DataCatalogueEntry/>
<ElementParent/>
<ProcedureDateStatus>none</ProcedureDateStatus>
<ZuordnungErkrankung>0</ZuordnungErkrankung>
<GrafikAusrichtung>0</GrafikAusrichtung>
<Mandatory>false</Mandatory>
<NotSpecified>false</NotSpecified>
<ReferencedDataForm>Unterformular</ReferencedDataForm>
<ReferencedDataFormField/>
<Anzeige/>
<AnzeigeAuswahl/>
<Speichern>1</Speichern>
<LeerAusblenden>true</LeerAusblenden>
<GeschlossenAnzeigen>false</GeschlossenAnzeigen>
<Min>0</Min>
<Max>0</Max>
<InUebersichtAnzeigen>false</InUebersichtAnzeigen>
<Hinweis/>
<Platzhalter/>
<ShowAuspraegungen>true</ShowAuspraegungen>
<ProzedurdatumUebernehmen>false</ProzedurdatumUebernehmen>
<Vorschlaege>false</Vorschlaege>
<AnzeigeAuswahldialog/>
<SucheAuswahldialog/>
<MindestbreiteLabel>0</MindestbreiteLabel>
<MindestbreiteFeld>0</MindestbreiteFeld>
<OrganisationunitFilter>0</OrganisationunitFilter>
<Aktion>0</Aktion>
<GroesseTextfeld>0</GroesseTextfeld>
<FilterAufheben>false</FilterAufheben>
<Resizable>false</Resizable>
<Verschluesselt>false</Verschluesselt>
<MemoArt>1</MemoArt>
<DateValidFrom>0</DateValidFrom>
<DateValidTo>0</DateValidTo>
<DateValidFuture>true</DateValidFuture>
<Titel/>
<InAuswertung>false</InAuswertung>
<InAuswertungGraph>false</InAuswertungGraph>
<AlignmentPatModul>0</AlignmentPatModul>
<DirectionPatModul>0</DirectionPatModul>
<SeitenumbruchPatModul>true</SeitenumbruchPatModul>
<MarkierungIgnorieren>false</MarkierungIgnorieren>
<SucheArt>0</SucheArt>
<SID>20119</SID>
<GUID>443217be-d7c4-45c0-b9a1-0cc59483ef8d</GUID>
<Revision>3</Revision>
<vorherigeWerte>false</vorherigeWerte>
<EinfuegenVerhindern>false</EinfuegenVerhindern>
</Entry>
</Entries>
<PlausibilityRules/>
<Haeufigkeiten/>
<Kennzahlen/>
<Ordner>
<Bibliothek>
<Name>Benutzer Bibliothek</Name>
</Bibliothek>
<Name>Test</Name>
<Typ>3</Typ>
</Ordner>
<MenuCategory>
<name>Test</name>
<position>3.0</position>
<column>1</column>
</MenuCategory>
</DataForm>
</Editor>
</OnkostarEditor>