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

Use 'form_references' instead of 'fields' in profile

This commit is contained in:
Paul-Christian Volkmer 2023-06-03 13:03:31 +02:00
parent 636fa34efc
commit 5681b1dee3
2 changed files with 18 additions and 15 deletions

View File

@ -19,7 +19,7 @@ In ihr sind die durchzuführenden Änderungen definiert. Eine Profildatei hat di
``` ```
forms: forms:
- name: "ExampleForm" - name: "ExampleForm"
fields: form_references:
- name: "ref_first_mtb" - name: "ref_first_mtb"
referenced_data_form: "Formularverweis.Variante" referenced_data_form: "Formularverweis.Variante"
anzeige_auswahl: "Referenziertes Formular vom: {Datum}" anzeige_auswahl: "Referenziertes Formular vom: {Datum}"

View File

@ -44,11 +44,11 @@ impl FromStr for Profile {
#[derive(Deserialize)] #[derive(Deserialize)]
struct Form { struct Form {
name: String, name: String,
fields: Vec<FieldChanges>, form_references: Vec<FormReference>,
} }
#[derive(Deserialize)] #[derive(Deserialize)]
struct FieldChanges { struct FormReference {
name: String, name: String,
referenced_data_form: Option<String>, referenced_data_form: Option<String>,
anzeige: Option<String>, anzeige: Option<String>,
@ -64,7 +64,7 @@ mod tests {
fn should_deserialize_profile() { fn should_deserialize_profile() {
let content = "forms: let content = "forms:
- name: 'DNPM Therapieplan' - name: 'DNPM Therapieplan'
fields: form_references:
- name: ref_first_mtb - name: ref_first_mtb
referenced_data_form: 'OS.Tumorkonferenz.VarianteUKW' referenced_data_form: 'OS.Tumorkonferenz.VarianteUKW'
anzeige: 'Datum: {Datum}' anzeige: 'Datum: {Datum}'
@ -75,18 +75,18 @@ mod tests {
Ok(profile) => { Ok(profile) => {
assert_eq!(profile.forms.len(), 1); assert_eq!(profile.forms.len(), 1);
assert_eq!(profile.forms[0].name, "DNPM Therapieplan"); assert_eq!(profile.forms[0].name, "DNPM Therapieplan");
assert_eq!(profile.forms[0].fields.len(), 1); assert_eq!(profile.forms[0].form_references.len(), 1);
assert_eq!(profile.forms[0].fields[0].name, "ref_first_mtb"); assert_eq!(profile.forms[0].form_references[0].name, "ref_first_mtb");
assert_eq!( assert_eq!(
profile.forms[0].fields[0].referenced_data_form, profile.forms[0].form_references[0].referenced_data_form,
Some("OS.Tumorkonferenz.VarianteUKW".to_string()) Some("OS.Tumorkonferenz.VarianteUKW".to_string())
); );
assert_eq!( assert_eq!(
profile.forms[0].fields[0].anzeige, profile.forms[0].form_references[0].anzeige,
Some("Datum: {Datum}".to_string()) Some("Datum: {Datum}".to_string())
); );
assert_eq!( assert_eq!(
profile.forms[0].fields[0].anzeige_auswahl, profile.forms[0].form_references[0].anzeige_auswahl,
Some("TK vom {Datum}".to_string()) Some("TK vom {Datum}".to_string())
); );
} }
@ -98,7 +98,7 @@ mod tests {
fn should_deserialize_profile_with_no_changes() { fn should_deserialize_profile_with_no_changes() {
let content = "forms: let content = "forms:
- name: 'DNPM Therapieplan' - name: 'DNPM Therapieplan'
fields: form_references:
- name: ref_first_mtb - name: ref_first_mtb
"; ";
@ -106,11 +106,14 @@ mod tests {
Ok(profile) => { Ok(profile) => {
assert_eq!(profile.forms.len(), 1); assert_eq!(profile.forms.len(), 1);
assert_eq!(profile.forms[0].name, "DNPM Therapieplan"); assert_eq!(profile.forms[0].name, "DNPM Therapieplan");
assert_eq!(profile.forms[0].fields.len(), 1); assert_eq!(profile.forms[0].form_references.len(), 1);
assert_eq!(profile.forms[0].fields[0].name, "ref_first_mtb"); assert_eq!(profile.forms[0].form_references[0].name, "ref_first_mtb");
assert_eq!(profile.forms[0].fields[0].referenced_data_form, None); assert_eq!(
assert_eq!(profile.forms[0].fields[0].anzeige, None); profile.forms[0].form_references[0].referenced_data_form,
assert_eq!(profile.forms[0].fields[0].anzeige_auswahl, None); None
);
assert_eq!(profile.forms[0].form_references[0].anzeige, None);
assert_eq!(profile.forms[0].form_references[0].anzeige_auswahl, None);
} }
Err(e) => panic!("Cannot deserialize profile: {}", e), Err(e) => panic!("Cannot deserialize profile: {}", e),
} }