diff --git a/ReportImp/HausDuelken/Klientenstammblatt.cs b/ReportImp/HausDuelken/Klientenstammblatt.cs index 5e77339e3..5075847d8 100644 --- a/ReportImp/HausDuelken/Klientenstammblatt.cs +++ b/ReportImp/HausDuelken/Klientenstammblatt.cs @@ -55,6 +55,7 @@ namespace BeWo.HPHBersenbrueck { if (pRO.EnvironmentPersons != null && pRO.EnvironmentPersons.Count > 0) { + var hauptbetreuer = pRO.EnvironmentPersons.FirstOrDefault(p => p.RelationRole.TypeDescription.Trim() == "Gesetzlicher Vertreter"); if (hauptbetreuer != null) { @@ -65,64 +66,85 @@ namespace BeWo.HPHBersenbrueck lblBetreuerRolle.Text = hauptbetreuer.RelationRole.DisplayName; lblBetreuerName.Text = hauptbetreuer.Person.FullName; - lblBetreuerStraße.Text = person.Address.Street; - lblBetreuerPlzOrt.Text = person.Address.PostalCode + " " + person.Address.Town; + lblBetreuerStraße.Text = person.Address != null && person.Address.Street != null ? person.Address.Street : "-"; + lblBetreuerPlzOrt.Text = person.Address != null && person.Address.PostalCode != null && person.Address.Town != null ? person.Address.PostalCode + " " + person.Address.Town : "-"; lblBetreuerTelefon.Text = phone != null ? phone.Value : "-"; lblBetreuerHandy.Text = mobile != null ? mobile.Value : "-"; } - // Hier zwei Angehörige holen, die NICHT Gesetzlicher Vertreter, Allgemeinmediziner und Arzt sind. 2. Angehöriger zustätzl. != erster AngehörigerB + // Hier zwei Angehörige holen, die NICHT Gesetzlicher Vertreter und Arzt sind. 2. Angehöriger zustätzl. != erster Angehöriger + List arztrollen = HoleListeMitSpeziellenArztrollen(); + var angehoeriger1 = pRO.EnvironmentPersons.FirstOrDefault(p => !p.RelationRole.TypeDescription.ToLower().Contains("gesetzlicher vertreter") - && !p.RelationRole.DisplayName.ToLower().Contains("allgemeinmediziner") && !p.RelationRole.DisplayName.ToLower().Contains("arzt")); + && !p.RelationRole.DisplayName.ToLower().Contains("allgemeinmediziner") && !p.RelationRole.DisplayName.ToLower().Contains("hausarzt") && !arztrollen.Contains(p.RelationRole.DisplayName.ToLower())); if (angehoeriger1 != null) { lblAngehoeriger1Verhaeltnis.Text = angehoeriger1.RelationRole.DisplayName; lblAngehoeriger1Name.Text = angehoeriger1.Person.FullName; - lblAngehoeriger1Straße.Text = angehoeriger1.Person.Street; - lblAngehoeriger1PlzOrt.Text = angehoeriger1.Person.PostalCode + " " + angehoeriger1.Person.Town; + lblAngehoeriger1Straße.Text = !angehoeriger1.Person.Street.IsNullOrEmpty() ? angehoeriger1.Person.Street : "-"; + lblAngehoeriger1PlzOrt.Text = !angehoeriger1.Person.PostalCode.IsNullOrEmpty() && !angehoeriger1.Person.Town.IsNullOrEmpty() ? angehoeriger1.Person.PostalCode + " " + angehoeriger1.Person.Town : "-"; lblAngehoeriger1Telefon.Text = !angehoeriger1.Person.Communication1.IsNullOrEmpty() ? angehoeriger1.Person.Communication1 : "-"; lblAngehoeriger1Handy.Text = !angehoeriger1.Person.Communication2.IsNullOrEmpty() ? angehoeriger1.Person.Communication2 : "-"; var angehoeriger2 = pRO.EnvironmentPersons.FirstOrDefault(p => !p.RelationRole.TypeDescription.ToLower().Contains("gesetzlicher vertreter") - && !p.RelationRole.DisplayName.ToLower().Contains("allgemeinmediziner") && !p.RelationRole.DisplayName.ToLower().Contains("arzt") && p.Customer2PersonOid != angehoeriger1.Customer2PersonOid); + && !p.RelationRole.DisplayName.ToLower().Contains("allgemeinmediziner") && !p.RelationRole.DisplayName.ToLower().Contains("hausarzt") && !arztrollen.Contains(p.RelationRole.DisplayName.ToLower()) && p.Customer2PersonOid != angehoeriger1.Customer2PersonOid); if (angehoeriger2 != null) { - var p2 = pRO.EnvironmentPersons[1]; - - lblAngehoeriger2Verhaeltnis.Text = p2.RelationRole.DisplayName; - lblAngehoeriger2Name.Text = p2.Person.FullName; - lblAngehoeriger2Straße.Text = p2.Person.Street; - lblAngehoeriger2PlzOrt.Text = p2.Person.PostalCode + " " + p2.Person.Town; - lblAngehoeriger2Telefon.Text = !p2.Person.Communication1.IsNullOrEmpty() ? p2.Person.Communication1 : "-"; - lblAngehoeriger2Handy.Text = !p2.Person.Communication2.IsNullOrEmpty() ? p2.Person.Communication2 : "-"; + lblAngehoeriger2Verhaeltnis.Text = angehoeriger2.RelationRole.DisplayName; + lblAngehoeriger2Name.Text = angehoeriger2.Person.FullName; + lblAngehoeriger2Straße.Text = !angehoeriger2.Person.Street.IsNullOrEmpty() ? angehoeriger2.Person.Street : "-"; + lblAngehoeriger2PlzOrt.Text = !angehoeriger2.Person.PostalCode.IsNullOrEmpty() && !angehoeriger2.Person.Town.IsNullOrEmpty() ? angehoeriger2.Person.PostalCode + " " + angehoeriger2.Person.Town : "-"; + lblAngehoeriger2Telefon.Text = !angehoeriger2.Person.Communication1.IsNullOrEmpty() ? angehoeriger2.Person.Communication1 : "-"; + lblAngehoeriger2Handy.Text = !angehoeriger2.Person.Communication2.IsNullOrEmpty() ? angehoeriger2.Person.Communication2 : "-"; } } - List c2pList = new List(); - c2pList.AddRange(pRO.EnvironmentPersons.Where(p => p.RelationRole.DisplayName.ToLower() == "allgemeinmediziner" || p.RelationRole.DisplayName.ToLower().Contains("arzt"))); - //var allgmemeinmediziner = pRO.EnvironmentPersons.FirstOrDefault(p => p.RelationRole.DisplayName.ToLower() == "allgemeinmediziner"); - if (c2pList.Count >= 1) + // Das erste Arztfeld ist IMMER Allgemeinmediziner oder Hausarzt. Wenn es den nicht gibt, bleibt es leer + var allgmemeinmediziner = pRO.EnvironmentPersons.FirstOrDefault(p => p.RelationRole.DisplayName.ToLower().Contains("allgemeinmediziner") || p.RelationRole.DisplayName.ToLower().Contains("hausarzt")); + if (allgmemeinmediziner != null) { - lblAerztlVersorgung1Verhaeltnis.Text = c2pList[0].RelationRole.DisplayName; - lblAerztlVersorgung1Name.Text = c2pList[0].Person.FullName; - lblAerztlVersorgung1Straße.Text = c2pList[0].Person.Street; - lblAerztlVersorgung1PlzOrt.Text = c2pList[0].Person.PostalCode + " " + c2pList[0].Person.Town; - lblAerztlVersorgung1Telefon.Text = c2pList[0].Person.Communication1 != null ? c2pList[0].Person.Communication1 : "-"; + lblAerztlVersorgung1Verhaeltnis.Text = allgmemeinmediziner.RelationRole.DisplayName; + lblAerztlVersorgung1Name.Text = allgmemeinmediziner.Person.FullName; + lblAerztlVersorgung1Straße.Text = allgmemeinmediziner.Person.Street; + lblAerztlVersorgung1PlzOrt.Text = allgmemeinmediziner.Person.PostalCode + " " + allgmemeinmediziner.Person.Town; + lblAerztlVersorgung1Telefon.Text = allgmemeinmediziner.Person.Communication1 != null ? allgmemeinmediziner.Person.Communication1 : "-"; } - //var arzt = pRO.EnvironmentPersons.FirstOrDefault(p => p.RelationRole.DisplayName.ToLower().Contains("arzt")); - if (c2pList.Count >= 1) + // Das zweite Arztfeld soll ein Arzt sein, dessen Rolle einen Begriff aus der Liste "arztrollen" enthält und nicht Hausarzt ist + var arzt = pRO.EnvironmentPersons.FirstOrDefault(p => !p.RelationRole.DisplayName.ToLower().Contains("hausarzt") && arztrollen.Contains(p.RelationRole.DisplayName.ToLower())); + if (arzt != null) { - lblAerztlVersorgung2Verhaeltnis.Text = c2pList[1].RelationRole.DisplayName; - lblAerztlVersorgung2Name.Text = c2pList[1].Person.FullName; - lblAerztlVersorgung2Straße.Text = c2pList[1].Person.Street; - lblAerztlVersorgung2PlzOrt.Text = c2pList[1].Person.PostalCode + " " + c2pList[1].Person.Town; - lblAerztlVersorgung2Telefon.Text = c2pList[1].Person.Communication1 != null ? c2pList[1].Person.Communication1 : "-"; + lblAerztlVersorgung2Verhaeltnis.Text = arzt.RelationRole.DisplayName; + lblAerztlVersorgung2Name.Text = arzt.Person.FullName; + lblAerztlVersorgung2Straße.Text = arzt.Person.Street; + lblAerztlVersorgung2PlzOrt.Text = arzt.Person.PostalCode + " " + arzt.Person.Town; + lblAerztlVersorgung2Telefon.Text = arzt.Person.Communication1 != null ? arzt.Person.Communication1 : "-"; } } //if (pRO.Customer.AssistanceBegin.HasValue) // lblAufnahmeAm.Text = pRO.Customer.AssistanceBegin.Value.Date.ToString(); } + // Allgemeinmediziner oder Hausarzt sind IMMER im ersten Arztfeld. Daher werden die nicht überprüft. + private List HoleListeMitSpeziellenArztrollen() + { + List rollen = new List(); + + // alle lowercase zur einfacheren Überprüfung + rollen.Add("arzt"); + rollen.Add("psychiater"); + rollen.Add("drogen- und suchtberatung"); + rollen.Add("internist"); + rollen.Add("kardiologe"); + rollen.Add("nephrologe"); + rollen.Add("neurologe"); + rollen.Add("orthopäde"); + rollen.Add("psychotherapeut"); + rollen.Add("sexualtherapeut"); + rollen.Add("urologe"); + + return rollen; + } + private void SetSupportConceptValue(CustomerDataRO pRO) { var allSCs = MapperFactory.SupportConceptDC_SupportConcept.MapToNewDCs(DAOFactory.SearchDAO.FindSupportConcept(pRO.FirstName, pRO.LastName, pRO.ReferenceNumber,