Files
BeWoPlaner/ReportImp/HphBersenbrueckAph/CustomerDataReport.cs
2017-06-11 16:01:01 +02:00

366 lines
13 KiB
C#

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Linq;
using BeWo.Data.Access;
using BeWo.Data.Entities;
using BeWo.Report;
using BS.Shared;
using BS.Shared.Core;
using DevExpress.XtraReports.UI;
using BeWo.Report.ReportObjects;
namespace HphBersenbrueckAph
{
//Für Stammblatt:
//bei ergänzende Angaben
//Nur Zuzahlungbefreiung leigt vor
//Einstufung in die Pflegestufe = Pflegegrad
//Schwerbehindertenausweis:
// +Sonstiges
// - freitextfeld für: Bekannte Diagnosen, Stationäre Aufenthalte, Allergien
// Bezugsperson rechts oben = Hauptbetreuer im BWP
//Bereich "Stammblatt erstellt" kann raus
//Aufnahmedatum = Datum des ersten Hilfeplans
public partial class Klientenstammblatt : DevExpress.XtraReports.UI.XtraReport, IBeWoReport<CustomerDataRO>
{
public Klientenstammblatt()
{
InitializeComponent();
}
public void SetReportDataSource(CustomerDataRO pRO)
{
SetVarFieldValues(pRO);
SetRelationFields(pRO);
this.bindingSource1.DataSource = pRO;
}
private void SetRelationFields(CustomerDataRO pRO)
{
var x =
pRO.EnvironmentPersons.FirstOrDefault(
f => f.RelationRole.TypeDescription.ToLower().Equals("facharzt (psychiater)"));
if (x != null)
{
lblPsychiaterName.Text = x.Person.TitleFirstNameLastNameToString();
lblPsychiaterStr.Text = x.Person.Street;
lblPsychiaterOrt.Text = String.Format("{0} {1}", x.Person.PostalCode, x.Person.Town);
lblPsychiaterTel.Text = x.Person.Communication1;
lblPsychiaterFax.Text = x.Person.Communication4;
}
x = pRO.EnvironmentPersons.FirstOrDefault(f => f.RelationRole.TypeDescription.ToLower().Equals("hausarzt"));
if (x != null)
{
lblHausarztName.Text = x.Person.TitleFirstNameLastNameToString();
lblHausarztStr.Text = x.Person.Street;
lblHausarztOrt.Text = String.Format("{0} {1}", x.Person.PostalCode, x.Person.Town);
lblHausarztTel.Text = x.Person.Communication1;
lblHausarztFax.Text = x.Person.Communication4;
}
x =
pRO.EnvironmentPersons.FirstOrDefault(
f => f.RelationRole.TypeDescription.ToLower().Equals("gesetzliche betreuung"));
if (x != null)
{
lblGesetzBetreuerNachname.Text = x.Person.TitleFirstNameLastNameToString();
lblGesetzBetreuerStr.Text = x.Person.Street;
lblGesetzBetreuerOrt.Text = String.Format("{0} {1}", x.Person.PostalCode, x.Person.Town);
lblGesetzBetreuerTel.Text = x.Person.Communication1;
lblGesetzBetreuerFax.Text = x.Person.Communication4;
}
var k =
pRO.EnvironmentOrganisations.FirstOrDefault(f => f.RelationRole.TypeDescription.Equals("Krankenkasse"));
if (k != null)
{
var fod =
pRO.CostBearers.FirstOrDefault(
f => f.CostBearer.OrganisationOid.Equals(k.Organisation.OrganisationOid));
//kvNRTableCell.Text = fod.ReferenceNumber;
//krankenkasseTableCell.Text = fod.CostBearer.Name;
}
if (pRO.Customer.Pflegegrad.HasValue)
{
lblEinstufungPflegestufe1.Text = EnumTranslations.PflegegradTranslations[pRO.Customer.Pflegegrad.Value];
}
lblSchwerbehindertenausweis1.Text = "";
if (pRO.Customer.AusweisGueltigVon.HasValue || pRO.Customer.AusweisGueltigBis.HasValue ||
pRO.Customer.AusweisUnbefristetGueltig.HasValue)
{
if (pRO.Customer.AusweisGueltigVon.HasValue)
{
lblSchwerbehindertenausweis1.Text = String.Format("Gültig von {0:dd.MM.yyyy}",
pRO.Customer.AusweisGueltigVon);
}
if (lblSchwerbehindertenausweis1.Text.Length > 0)
{
lblSchwerbehindertenausweis1.Text += " ";
}
if (pRO.Customer.AusweisGueltigBis.HasValue)
{
lblSchwerbehindertenausweis1.Text += String.Format("bis {0:dd.MM.yyyy}",
pRO.Customer.AusweisGueltigBis);
}
else if (pRO.Customer.AusweisUnbefristetGueltig.HasValue && pRO.Customer.AusweisUnbefristetGueltig.Value)
{
lblSchwerbehindertenausweis1.Text += "unbefristet";
}
}
lblSchwerbehindertenausweis2.Text = "";
if (!String.IsNullOrWhiteSpace(pRO.Customer.GradDerBehinderung))
{
lblSchwerbehindertenausweis2.Text = "Grad der Behinderung: " + pRO.Customer.GradDerBehinderung + "%";
}
String merkzeichen = "";
if (pRO.Customer.MerkzeichenListe != null)
{
foreach (var mz in pRO.Customer.MerkzeichenListe)
{
if (merkzeichen.Length > 0)
{
merkzeichen += ", ";
}
merkzeichen += EnumTranslations.MerkzeichenTranslations[mz];
}
}
if (lblSchwerbehindertenausweis2.Text.Length > 0)
{
lblSchwerbehindertenausweis2.Text += ", ";
}
lblSchwerbehindertenausweis2.Text += "Merkzeichen: " + merkzeichen;
String bastr = "";
if (pRO.Customer.BehinderungsartenListe != null)
{
foreach (var ba in pRO.Customer.BehinderungsartenListe)
{
if (bastr.Length > 0)
{
bastr += ", ";
}
bastr += EnumTranslations.BehinderungsartTranslations[ba];
}
}
lblSchwerbehindertenausweis3.Text = bastr;
lblAufnahmedatum.Text = String.Format("{0:dd.MM.yyyy}", GetAufnahmedatum(pRO));
var e =
pRO.RelatedEmployees.FirstOrDefault(
f => f.RelationRole.TypeDescription.ToLower().Contains("hauptbetreuung"));
if (e != null)
{
//var emp = DAOFactory.GenericDAO.LoadByID<Employee>(e.Employee.EmployeeOid);
lblBezugsperson.Text = String.Format("{0} {1}", e.Employee.FirstName, e.Employee.LastName);
// if (emp.Person.Contacts != null)
// {
// var contact = emp.Person.Contacts.FirstOrDefault(c => c.Type == ContactType.business_Phone);
// if (contact != null)
// {
// lblHauptbetreuer1Tel.Text = contact.Value;
// }
// contact = emp.Person.Contacts.FirstOrDefault(c => c.Type == ContactType.business_MobilePhone);
// if (contact != null)
// {
// lblHauptbetreuer1Handy.Text = contact.Value;
// }
// }
//}
//e = pRO.RelatedEmployees.FirstOrDefault(f => f.RelationRole.TypeDescription.ToLower().Equals("hauptbetreuung ii"));
//if (e != null)
//{
// var emp = DAOFactory.GenericDAO.LoadByID<Employee>(e.Employee.EmployeeOid);
// lblHauptbetreuer2Name.Text = e.Employee.LastName;
// lblHauptbetreuer2Vorname.Text = e.Employee.FirstName;
// if (emp.Person.Contacts != null)
// {
// var contact = emp.Person.Contacts.FirstOrDefault(c => c.Type == ContactType.business_Phone);
// if (contact != null)
// {
// lblHauptbetreuer2Tel.Text = contact.Value;
// }
// contact = emp.Person.Contacts.FirstOrDefault(c => c.Type == ContactType.business_MobilePhone);
// if (contact != null)
// {
// lblHauptbetreuer2Handy.Text = contact.Value;
// }
// }
//}
}
}
private DateTime? GetAufnahmedatum(CustomerDataRO ro)
{
var customer = DAOFactory.GenericDAO.LoadByID<Customer>(ro.CustomerOid);
var scList = customer.SupportConcepts;
DateTime? minDate = null;
foreach (var sc in scList)
{
if (sc.IsActive != ActivationTypeId.Deleted && sc.StartDate.HasValue)
{
if (minDate == null || sc.StartDate < minDate)
{
minDate = sc.StartDate.Value;
}
}
}
return minDate;
}
private void SetVarFieldValues(CustomerDataRO pRO)
{
String beruf = ""; // Oid = 1
String arbeitgeber = ""; // Oid = 2
String taetigkeit = ""; // Oid = 3
String gruppenleiter = ""; // Oid = 4
String leistungsart = ""; // Oid = 5
String zuzahlungsbefreiung = ""; // Oid = 6
String aufnahmedatum = ""; // Oid = 7
String schwgueltig = ""; // Oid = 8
String schwProzent = ""; // Oid = 9
String merkzeichen = ""; // Oid = 10
String sorgeGesundheit = ""; // Oid = 11
String aufenthaltbetimmungr = ""; // Oid = 12
String rechtsAntrags = ""; // Oid = 13
String vermoegenssorge = ""; // Oid = 15
String betreuungSonstiges = ""; //Oid = 25
String angabenSonstiges = ""; //Oid = 27
String diagnosen = ""; //Oid = 28
String stationaereAufenthalte = ""; //Oid = 29
String allergien = ""; //Oid = 30
var c = DAOFactory.GenericDAO.LoadByID<Customer>(pRO.CustomerOid);
foreach (var vv in c.VarFieldValueList)
{
var varFieldValue = Utils.XMLDeserializeFromString(vv.SerializedValue, Type.GetType(vv.TypeName));
if (varFieldValue != null)
{
if (vv.VarFieldDefOid.Value == 1)
{
beruf = varFieldValue.ToString();
}
else if (vv.VarFieldDefOid.Value == 2)
{
arbeitgeber = varFieldValue.ToString();
}
else if (vv.VarFieldDefOid.Value == 3)
{
taetigkeit = varFieldValue.ToString();
}
else if (vv.VarFieldDefOid.Value == 4)
{
gruppenleiter = varFieldValue.ToString();
}
else if (vv.VarFieldDefOid.Value == 5)
{
leistungsart = varFieldValue.ToString();
}
else if (vv.VarFieldDefOid.Value == 6)
{
zuzahlungsbefreiung = varFieldValue.ToString();
}
else if (vv.VarFieldDefOid.Value == 7)
{
aufnahmedatum = String.Format("{0:dd.MM.yyyy}", varFieldValue);
}
else if (vv.VarFieldDefOid.Value == 11)
{
sorgeGesundheit = varFieldValue.ToString() == "True" ? "x" : "";
}
else if (vv.VarFieldDefOid.Value == 12)
{
aufenthaltbetimmungr = varFieldValue.ToString() == "True" ? "x" : "";
}
else if (vv.VarFieldDefOid.Value == 13)
{
rechtsAntrags = varFieldValue.ToString() == "True" ? "x" : "";
}
else if (vv.VarFieldDefOid.Value == 15)
{
vermoegenssorge = varFieldValue.ToString() == "True" ? "x" : "";
}
else if (vv.VarFieldDefOid.Value == 25)
{
betreuungSonstiges = varFieldValue.ToString();
}
else if (vv.VarFieldDefOid.Value == 27)
{
angabenSonstiges = varFieldValue.ToString();
}
else if (vv.VarFieldDefOid.Value == 28)
{
diagnosen = varFieldValue.ToString();
}
else if (vv.VarFieldDefOid.Value == 29)
{
stationaereAufenthalte = varFieldValue.ToString();
}
else if (vv.VarFieldDefOid.Value == 30)
{
allergien = varFieldValue.ToString();
}
}
}
lblBeruf.Text = beruf;
lblArbeitg.Text = arbeitgeber;
lblTaetigkeit.Text = taetigkeit;
lblLeistungsart.Text = leistungsart;
//lblKrankenkasseAnschr.Text = zuzahlungsbefreiung;
//lblKrankenkasseTel.Text = aufnahmedatum;
//lblKrankenkasseStr.Text = schwgueltig;
//lblSchwProzent.Text = schwProzent;
//lblSchwMerkz.Text = merkzeichen;
lblSorgeGesundheit.Text = sorgeGesundheit;
lblAufenthaltbestimmung.Text = aufenthaltbetimmungr;
lblRechtsAntrag.Text = rechtsAntrags;
lblVermoegenssorge.Text = vermoegenssorge;
lblZuzahlungsbefreiung1.Text = zuzahlungsbefreiung;
lblDiagnose4.Text = diagnosen;
lblStatAufenthalte3.Text = stationaereAufenthalte;
lblAllergien.Text = allergien;
//lblKostentraeger.Text = "xxxx";
lblBetreuungSonstiges.Text = betreuungSonstiges;
lblAngabenSonstiges2.Text = angabenSonstiges;
}
}
}