From b8fff99aaa5409cdc6f7c0b4a2a6bf4fd7b271ef Mon Sep 17 00:00:00 2001 From: Christian Date: Fri, 24 Oct 2025 01:56:35 +0200 Subject: [PATCH] =?UTF-8?q?Bugfix=20Perseh=20Import=20f=C3=BCr=20LVW=20wen?= =?UTF-8?q?n=20keine=20Massnahmen=20vorhanden=20sind?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- Service/Import/Perseh/PersehReader.cs | 43 +++++++++++++++++++++++++-- Service/Import/TextAbschnittReader.cs | 10 +++++-- 2 files changed, 49 insertions(+), 4 deletions(-) diff --git a/Service/Import/Perseh/PersehReader.cs b/Service/Import/Perseh/PersehReader.cs index 23ca12bb7..4b97bcce5 100644 --- a/Service/Import/Perseh/PersehReader.cs +++ b/Service/Import/Perseh/PersehReader.cs @@ -214,7 +214,9 @@ namespace BeWo.Service.Import.Perseh startIdx = 0; while (startIdx >= 0) { - var ta = TextAbschnittReader.LeseBisText(zeilen, startIdx, "Lebensbereich ", true, false, false); + var ignore = new List() { "Lebensbereich Stunden pro Woche" }; + + var ta = TextAbschnittReader.LeseBisText(zeilen, startIdx, "Lebensbereich ", true, false, false, ignore); if (ta.Success) { ziele.AddRange(ErstelleBereichMitZielen(zeilen, ta)); @@ -1446,7 +1448,9 @@ gegen von Ärzten empfohlene medikamentöse Therapien, thematisieren. int idxBereichStart = ta.ZeilenIndex + 1; int idxBereichtEnde = zeilen.Length; - var taEnde = TextAbschnittReader.LeseBisText(zeilen, ta.ZeilenIndex + 1, "Lebensbereich ", true, false, false); + var ignore = new List() { "Lebensbereich Stunden pro Woche" }; + + var taEnde = TextAbschnittReader.LeseBisText(zeilen, ta.ZeilenIndex + 1, "Lebensbereich ", true, false, false, ignore); if (taEnde.Success) { idxBereichtEnde = taEnde.ZeilenIndex; @@ -1505,6 +1509,41 @@ gegen von Ärzten empfohlene medikamentöse Therapien, thematisieren. { return true; } + + if (zeile.StartsWith("Seite ") && zeile.Contains(" von ")) + { + return true; + } + + //LVR spezifisch: + if ("Übersicht der Leistungsplanung Eingliederungshilfe".Equals(zeile)) + { + return true; + } + if ("Stunden pro Woche für Fachleistungsstunden".Equals(zeile)) + { + return true; + } + if ("Lebensbereich Stunden pro Woche".Equals(zeile)) + { + return true; + } + if (zeile.StartsWith("Allgemeine Aufgaben und Anforderungen") && zeile.Length < 45) + { + return true; + } + if (zeile.StartsWith("Selbstversorgung") && zeile.Length < 24) + { + return true; + } + if (zeile.StartsWith("Häusliches Leben") && zeile.Length < 24) + { + return true; + } + if (zeile.StartsWith("Interpersonelle Interaktionen und Beziehungen") && zeile.Length < 53) + { + return true; + } return false; } diff --git a/Service/Import/TextAbschnittReader.cs b/Service/Import/TextAbschnittReader.cs index be713b0dc..9e667ec8c 100644 --- a/Service/Import/TextAbschnittReader.cs +++ b/Service/Import/TextAbschnittReader.cs @@ -12,18 +12,24 @@ namespace BeWo.Service.Import public class TextAbschnittReader { - public static TextAbschnitt LeseBisText(string[] lines, int index, String suchText, bool sucheAmZeilenAnfang, bool sucheInnerhalbDerZeile, bool sucheAmZeilenEnde) + public static TextAbschnitt LeseBisText(string[] lines, int index, String suchText, bool sucheAmZeilenAnfang, bool sucheInnerhalbDerZeile, bool sucheAmZeilenEnde, IList ignoreLines = null) { var ta = new TextAbschnitt(); StringBuilder sb = new StringBuilder(); ta.ZeilenIndex = index; + + if (ignoreLines == null) + { + ignoreLines = new List(); + + } while (index < lines.Length) { String line = lines[index]; sb.AppendLine(line); - if ((sucheAmZeilenAnfang && line.StartsWith(suchText)) || (sucheInnerhalbDerZeile && line.Contains(suchText)) || (sucheAmZeilenEnde && line.EndsWith(suchText))) + if (((sucheAmZeilenAnfang && line.StartsWith(suchText)) || (sucheInnerhalbDerZeile && line.Contains(suchText)) || (sucheAmZeilenEnde && line.EndsWith(suchText))) && !ignoreLines.Contains(line)) { ta.Success = true; ta.ZeilenIndex = index;