306 lines
12 KiB
C#
306 lines
12 KiB
C#
using System;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Windows.Forms;
|
|
using BeWo.Data.Access;
|
|
using BeWo.Data.Entities;
|
|
using BeWo.Data.ICD10;
|
|
using BeWo.Report;
|
|
using BeWo.Report.ReportObjects;
|
|
|
|
using BS.Shared.Core;
|
|
using BS.Shared.DataContracts;
|
|
using BS.Shared.Extensions;
|
|
|
|
namespace BeWo.Fortis
|
|
{
|
|
public partial class Klientenstammblatt : DevExpress.XtraReports.UI.XtraReport, IBeWoReport<CustomerDataRO>
|
|
{
|
|
public Klientenstammblatt()
|
|
{
|
|
InitializeComponent();
|
|
}
|
|
|
|
public void SetReportDataSource(CustomerDataRO pRO)
|
|
{
|
|
var c = DAOFactory.GenericDAO.LoadByID<Customer>(pRO.CustomerOid);
|
|
|
|
foreach (var faufau in c.VarFieldValueList)
|
|
{
|
|
var varFieldValue = Utils.XMLDeserializeFromString(faufau.SerializedValue, Type.GetType(faufau.TypeName));
|
|
if (varFieldValue != null)
|
|
{
|
|
var vValue = varFieldValue.ToString();
|
|
|
|
switch (faufau.VarFieldDefOid)
|
|
{
|
|
case 32:
|
|
geburtsortTableCell.Text = vValue;
|
|
break;
|
|
case 33:
|
|
geburtsnameTableCell.Text = vValue;
|
|
break;
|
|
case 34:
|
|
staatsangehoerigkeitsTableCell.Text = vValue;
|
|
break;
|
|
case 35:
|
|
arbeitsplatzTableCell.Text = vValue;
|
|
break;
|
|
case 36:
|
|
aufnahmedatumTableCell.Text = ((DateTime) varFieldValue).ToShortDateString();
|
|
break;
|
|
case 37:
|
|
letzterWohnsitzTableCell.Text = vValue;
|
|
break;
|
|
case 38:
|
|
hbgTableCell.Text = vValue;
|
|
break;
|
|
case 39:
|
|
behindertCB.Checked = (bool) varFieldValue;
|
|
break;
|
|
case 40:
|
|
GDBTableCell.Text = vValue;
|
|
break;
|
|
case 41:
|
|
behindertenAGueltigBisTableCell.Text = vValue;
|
|
break;
|
|
case 42:
|
|
befrZuzhlgBisTableCell.Text = ((DateTime)varFieldValue).ToShortDateString();
|
|
break;
|
|
case 43:
|
|
rentenTableCell.Text = vValue + " €";
|
|
break;
|
|
case 44:
|
|
aktualisiertAmTableCell.Text = ((DateTime)varFieldValue).ToShortDateString();
|
|
break;
|
|
case 46:
|
|
wkGesundheitCB.Checked = (bool) varFieldValue;
|
|
break;
|
|
case 47:
|
|
wkVermoegenCB.Checked = (bool) varFieldValue;
|
|
break;
|
|
case 48:
|
|
wkEinwilligungsvorbehaltCB.Checked = (bool) varFieldValue;
|
|
break;
|
|
case 50:
|
|
wkSonstigeCB.Checked = true;
|
|
sonstigeWirkungskreiseTableCell.Text = vValue;
|
|
break;
|
|
case 51:
|
|
ansteckendeKrankheitenTableCell.Text = vValue;
|
|
break;
|
|
case 52:
|
|
unvertraeglichkeitenTableCell.Text = vValue;
|
|
break;
|
|
case 53:
|
|
letzterKlinikaufenthaltTableCell.Text = ((DateTime)varFieldValue).ToShortDateString();
|
|
break;
|
|
case 54:
|
|
suizidVersucheTableCell.Text = vValue;
|
|
break;
|
|
case 55:
|
|
krisenanzeichenTableCell.Text = vValue;
|
|
break;
|
|
case 56:
|
|
krisenabsprachenTableCell.Text = vValue;
|
|
break;
|
|
case 57:
|
|
krisenSonstigesTableCell.Text = vValue;
|
|
break;
|
|
case 58:
|
|
kontoinhaberTableCell.Text = vValue;
|
|
break;
|
|
case 59:
|
|
bankTableCell.Text = vValue;
|
|
break;
|
|
case 60:
|
|
ibanTableCell.Text = vValue;
|
|
break;
|
|
case 61:
|
|
bicTableCell.Text = vValue;
|
|
break;
|
|
case 62:
|
|
einkommensTableCell.Text = vValue + " €";
|
|
break;
|
|
case 63:
|
|
wkAufenthaltCB.Checked = (bool)varFieldValue;
|
|
|
|
break;
|
|
case 64:
|
|
vermoegenTableCell.Text = vValue;
|
|
break;
|
|
case 65:
|
|
cellMerkzeichen.Text = vValue;
|
|
break;
|
|
}
|
|
}
|
|
}
|
|
|
|
var x = pRO.EnvironmentPersons.OrderByDescending(i => i.Customer2PersonOid).FirstOrDefault(f => !String.IsNullOrEmpty(f.RelationRole.TypeDescription) && f.RelationRole.TypeDescription.Equals("Hausärzt/in"));
|
|
var y = pRO.EnvironmentPersons.OrderByDescending(i => i.Customer2PersonOid).Where(f => !String.IsNullOrEmpty(f.RelationRole.TypeDescription) && f.RelationRole.TypeDescription.Equals("Fachärzt/in"));
|
|
|
|
|
|
if (x != null)
|
|
{
|
|
cellHausarzt.Text = CreateArztString(x);
|
|
}
|
|
|
|
if (y != null)
|
|
{
|
|
cellFacharzt.Text = "";
|
|
foreach (var c2p in y)
|
|
{
|
|
if (cellFacharzt.Text.Length > 0)
|
|
{
|
|
cellFacharzt.Text += Environment.NewLine + Environment.NewLine;
|
|
}
|
|
cellFacharzt.Text += CreateArztString(c2p);
|
|
}
|
|
}
|
|
|
|
var b = pRO.EnvironmentPersons.FirstOrDefault(f => !String.IsNullOrEmpty(f.RelationRole.TypeDescription) && f.RelationRole.TypeDescription.Equals("Rechtliche/r Betreuer/in"));
|
|
if (b != null)
|
|
{
|
|
var bt = !string.IsNullOrEmpty(b.Person.Title) ? b.Person.Title + " " : "";
|
|
gesetzBetrTableCell.Text = bt + b.Person.FullName;
|
|
gesetzBetrAdresseTableCell.Text = b.Person.AddressString;
|
|
gesetzBetrPhoneTableCell.Text = "";
|
|
if (!String.IsNullOrEmpty(b.Person.Communication1))
|
|
{
|
|
gesetzBetrPhoneTableCell.Text = b.Person.Communication1;
|
|
}
|
|
if (!String.IsNullOrEmpty(b.Person.Communication2))
|
|
{
|
|
if (gesetzBetrPhoneTableCell.Text.Length > 0)
|
|
{
|
|
gesetzBetrPhoneTableCell.Text += ", ";
|
|
}
|
|
gesetzBetrPhoneTableCell.Text = b.Person.Communication2;
|
|
}
|
|
}
|
|
|
|
var k = pRO.EnvironmentOrganisations.FirstOrDefault(f => !String.IsNullOrEmpty(f.RelationRole.TypeDescription) && f.RelationRole.TypeDescription.Equals("Krankenkasse"));
|
|
if (k != null)
|
|
{
|
|
//var fod = pRO.CostBearers.FirstOrDefault(f => f.CostBearer.OrganisationOid.Equals(k.Organisation.OrganisationOid));
|
|
//var test = fod.ReferenceNumber;
|
|
|
|
kvNRTableCell.Text = k.Customer2OrganisationNotice;
|
|
krankenkasseTableCell.Text = k.Organisation.Name;
|
|
}
|
|
|
|
if(c.TerminationDate.HasValue)
|
|
xrTableCell100.Text = c.TerminationDate.Value.ToShortDateString();
|
|
|
|
|
|
|
|
|
|
var bp = pRO.RelatedEmployees.FirstOrDefault(f => f.RelationRole.TypeDescription.Equals("Erste Bezugsperson"));
|
|
if (bp != null)
|
|
{
|
|
var emp = DAOFactory.GenericDAO.LoadByID<Employee>(bp.Employee.EmployeeOid);
|
|
bezugspersonTableCell.Text = emp.Person.FirstNameLastName;
|
|
}
|
|
|
|
bp = pRO.RelatedEmployees.FirstOrDefault(f => f.RelationRole.TypeDescription.Equals("Zweite Bezugsperson"));
|
|
if (bp != null)
|
|
{
|
|
var emp = DAOFactory.GenericDAO.LoadByID<Employee>(bp.Employee.EmployeeOid);
|
|
vertretungTableCell.Text = emp.Person.FirstNameLastName;
|
|
}
|
|
|
|
StringBuilder dtext = new StringBuilder();
|
|
|
|
foreach (var d2c in c.Diagnosis2CustomerList)
|
|
{
|
|
if (dtext.Length > 0)
|
|
{
|
|
dtext.Append(Environment.NewLine);
|
|
}
|
|
dtext.Append(d2c.ICD10DiagnosisCode);
|
|
dtext.Append(" - ");
|
|
dtext.Append(ICD10DAO.GetDiagnosisForCode(d2c.ICD10DiagnosisCode));
|
|
}
|
|
|
|
cellDiagnosenText.Text = dtext.ToString();
|
|
|
|
aktuelleMedikationTableCell1.Text = c.Medication;
|
|
|
|
var kontaktPersonen = pRO.EnvironmentPersons.Where(w => w.RelationRole.TypeDescription.Equals("Kontaktperson")).ToArray();
|
|
|
|
kontaktAndereTableCell.Text = "";
|
|
for (var i = 0; i < kontaktPersonen.Length; i++)
|
|
{
|
|
var t = string.IsNullOrEmpty(kontaktPersonen[i].Person.Title) ? "" : kontaktPersonen[i].Person.Title + " ";
|
|
var fn = t + kontaktPersonen[i].Person.FullName;
|
|
var addr = kontaktPersonen[i].Person.AddressString;
|
|
var tel = kontaktPersonen[i].Person.ContactSummaryInfo.Replace("\n", ", ");
|
|
|
|
StringBuilder sb = new StringBuilder();
|
|
sb.Append(fn);
|
|
if (sb.Length > 0)
|
|
sb.Append(Environment.NewLine);
|
|
sb.Append(addr);
|
|
if (sb.Length > 0)
|
|
sb.Append(Environment.NewLine);
|
|
sb.Append(tel);
|
|
|
|
if (i == 0)
|
|
{
|
|
kontakt1ATableCell.Text = fn;
|
|
kontakt1BTableCell.Text = addr;
|
|
kontakt1CTableCell.Text = tel;
|
|
}
|
|
else if (i == 1)
|
|
{
|
|
kontakt2ATableCell.Text = fn;
|
|
kontakt2BTableCell.Text = addr;
|
|
kontakt2CTableCell.Text = tel;
|
|
}
|
|
else
|
|
{
|
|
if (kontaktAndereTableCell.Text.Length > 0)
|
|
kontaktAndereTableCell.Text += Environment.NewLine;
|
|
|
|
kontaktAndereTableCell.Text += sb.ToString();
|
|
}
|
|
}
|
|
|
|
var cb = pRO.CostBearers.FirstOrDefault();
|
|
if (cb != null)
|
|
{
|
|
leistungstraegerTableCell.Text = cb.CostBearer.Name;
|
|
aktenzeichenTableCell.Text = cb.ReferenceNumber;
|
|
}
|
|
|
|
bindingSource1.DataSource = pRO;
|
|
}
|
|
|
|
private string CreateArztString(CustomerPersonRelationDC x)
|
|
{
|
|
StringBuilder sb = new StringBuilder();
|
|
sb.Append(!string.IsNullOrEmpty(x.Person.Title) ? x.Person.Title + " " : "");
|
|
sb.Append(x.Person.FullName);
|
|
|
|
if (!string.IsNullOrEmpty(x.Person.Function))
|
|
{
|
|
sb.Append(" (");
|
|
sb.Append(x.Person.Function);
|
|
sb.Append(")");
|
|
}
|
|
if (sb.Length > 0)
|
|
{
|
|
sb.Append(Environment.NewLine);
|
|
}
|
|
sb.Append(x.Person.AddressString);
|
|
if (sb.Length > 0)
|
|
{
|
|
sb.Append(Environment.NewLine);
|
|
}
|
|
sb.Append(x.Person.ContactSummaryInfo.Replace("\n", ", "));
|
|
|
|
return sb.ToString();
|
|
}
|
|
}
|
|
}
|