950 lines
35 KiB
C#
950 lines
35 KiB
C#
using System;
|
|
using BeWo.Report.ReportObjects;
|
|
using BeWo.Report;
|
|
using DevExpress.XtraReports.UI;
|
|
using System.Data;
|
|
using BeWo.Data.Access;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Xml.Schema;
|
|
using BeWo.Data.Entities;
|
|
using BeWo.Service.DCEntityMapper;
|
|
using BeWo.Service.Plugins;
|
|
using BeWo.Service.ServiceImplementations;
|
|
using BS.Shared;
|
|
using BS.Shared.Core;
|
|
using BS.Shared.Extensions;
|
|
using BS.Shared.Services;
|
|
using DevExpress.Xpo.DB;
|
|
|
|
namespace AlphaEv
|
|
{
|
|
[IDSpecificClass(Identifier = "AuswertungSozialdienst")]
|
|
public partial class AuswertungSozialdienst : DevExpress.XtraReports.UI.XtraReport, IBeWoReport<QueryRO>
|
|
{
|
|
private long servicecategoryOid = 0;
|
|
private DateTime reportStart = DateTime.MinValue;
|
|
private DateTime reportEnd = DateTime.MaxValue;
|
|
|
|
public AuswertungSozialdienst()
|
|
{
|
|
InitializeComponent();
|
|
|
|
}
|
|
|
|
public void SetReportDataSource(QueryRO queryRo)
|
|
{
|
|
var dict = CreateStrassenschluesselDict();
|
|
var ro = CreateRo(queryRo, dict);
|
|
|
|
//cellDifferenz.Text = string.Format("{0:0.00}", ro.GeleisteteFlsGesamtCount - ro.AbrechnungVereinbarteFlsCount);
|
|
|
|
ro.AbrechnungVereinbarteFlsCount = 1103;
|
|
ro.AbrechnungDifferenzCount = ro.AbrechnungVereinbarteFlsCount - ro.GeleisteteFlsGesamtCount;
|
|
|
|
this.bindingSource1.DataSource = ro;
|
|
}
|
|
|
|
private SozPsychErfassungBeratungRO CreateRo(QueryRO queryRo, Dictionary<string, Wohnplatz> dict)
|
|
{
|
|
SozPsychErfassungBeratungRO result = new SozPsychErfassungBeratungRO();
|
|
result.DetailList = new List<SozPsychErfassungBeratungDetailRO>();
|
|
|
|
//decimal flsKlientGesamt = 0;
|
|
//decimal flsKlientGesamt = 0;
|
|
//decimal hilfedauerInMonatenGesamt = 0;
|
|
Dictionary<long, bool> custOidDict = new Dictionary<long, bool>();
|
|
|
|
int idx = 1;
|
|
foreach (var row in queryRo.Rows)
|
|
{
|
|
result.NummerCount++;
|
|
SozPsychErfassungBeratungDetailRO ro = new SozPsychErfassungBeratungDetailRO();
|
|
|
|
if (servicecategoryOid == 0)
|
|
{
|
|
servicecategoryOid = Int64.Parse(row.Field17.ToString());
|
|
}
|
|
long oid = Int64.Parse(row.Field1.ToString());
|
|
bool add = true;
|
|
if (!custOidDict.ContainsKey(oid))
|
|
{
|
|
//custOidDict.Add(oid, true);
|
|
}
|
|
else
|
|
{
|
|
add = false;
|
|
}
|
|
Customer c = DAOFactory.GenericDAO.LoadByID<Customer>(oid);
|
|
|
|
ro.Nummer = idx++;
|
|
//ro.NummerUndName = String.Format("{0}: {1}, {2}", ro.Nummer, c.Person.LastName, c.Person.FirstName);
|
|
ro.NummerUndName = String.Format("{0}, {1}", c.Person.LastName, c.Person.FirstName);
|
|
|
|
ro.Ort = String.Format("{0}", row.Field3);
|
|
ro.Strasse = String.Format("{0}", row.Field4);
|
|
|
|
if (c.Person.Nationalitaet != null)
|
|
{
|
|
var staatsang = c.Person.Nationalitaet.Value;
|
|
if (staatsang.ToLower().Contains("deutsch"))
|
|
{
|
|
ro.Deutsch = "x";
|
|
result.DeutschCount++;
|
|
}
|
|
else
|
|
{
|
|
ro.Nationalitaet = staatsang;
|
|
result.NationalitaetCount++;
|
|
}
|
|
}
|
|
|
|
var wp = GetWohnplatz(dict, ro.Strasse, ro.Ort);
|
|
if (wp != null)
|
|
{
|
|
ro.Wohnplatz = wp.Wohnplatzname;
|
|
ro.Strasse = wp.Strasse;
|
|
ro.Hausnr = wp.HausNummer;
|
|
|
|
result.WohnplatzCount++;
|
|
}
|
|
|
|
bool containsNewAngebot = c.VarFieldValueList.Exists(vv => vv.VarFieldDefOid >= 38 && vv.VarFieldDefOid <= 42);
|
|
|
|
//ro.Strasse = c.Person.FirstNameLastName;
|
|
foreach (var vv in c.VarFieldValueList)
|
|
{
|
|
var varFieldValue = Utils.XMLDeserializeFromString(vv.SerializedValue, Type.GetType(vv.TypeName));
|
|
|
|
//SetzeNationalitaet(result, ro, vv, varFieldValue);
|
|
|
|
if (vv.VarFieldDefOid != 22 || !containsNewAngebot)
|
|
{
|
|
SetzeAngebot(result, ro, vv, varFieldValue);
|
|
}
|
|
|
|
SetzeFahrdienst(result, ro, vv, varFieldValue);
|
|
SetzeLebensumfeld(result, ro, vv, varFieldValue);
|
|
SetzeErkrankung(result, ro, vv, varFieldValue);
|
|
SetzeZugang(result, ro, vv, varFieldValue);
|
|
SetzeOhneWohnplatz(result, ro, vv, varFieldValue);
|
|
}
|
|
|
|
int sex = 0;
|
|
|
|
if (row.Field7 != null && Int32.TryParse(row.Field7.ToString(), out sex))
|
|
{
|
|
if ( sex == 1)
|
|
{
|
|
ro.Weiblich = "x";
|
|
result.WeiblichCount++;
|
|
}
|
|
else if (sex == 0)
|
|
{
|
|
ro.Maennlich = "x";
|
|
result.MaennlichCount++;
|
|
}
|
|
}
|
|
DateTime birthday = DateTime.MinValue;
|
|
|
|
if (row.Field12 != null)
|
|
{
|
|
DateTime.TryParse(row.Field12.ToString(), out reportStart);
|
|
//if (reportStart == DateTime.MinValue)
|
|
//{
|
|
// reportStart = DateTime.Now;
|
|
//}
|
|
}
|
|
|
|
if (row.Field13 != null)
|
|
{
|
|
DateTime.TryParse(row.Field13.ToString(), out reportEnd);
|
|
if (reportEnd >= DateTime.MaxValue.AddDays(-1))
|
|
{
|
|
reportEnd = DateTime.Now;
|
|
}
|
|
}
|
|
|
|
if (row.Field8 != null && DateTime.TryParse(row.Field8.ToString(), out birthday))
|
|
{
|
|
|
|
|
|
int alter = reportEnd.Year - birthday.Year;
|
|
birthday = birthday.AddYears(alter);
|
|
if (reportEnd.CompareTo(birthday) < 0)
|
|
{
|
|
alter--;
|
|
}
|
|
|
|
//if (servicecategoryOid == 8)
|
|
//{
|
|
// cellAlter1.Text = "unter 60";
|
|
// cellAlter2.Text = "60-70";
|
|
// cellAlter3.Text = "71-80";
|
|
// cellAlter4.Text = "81+";
|
|
|
|
// if (alter < 60)
|
|
// {
|
|
// ro.AlterBis18 = "x";
|
|
// result.AlterBis18Count++;
|
|
// }
|
|
// else if (alter >= 60 && alter <= 70)
|
|
// {
|
|
// ro.Alter18_25 = "x";
|
|
// result.Alter18_25Count++;
|
|
// }
|
|
// else if (alter >= 71 && alter <= 80)
|
|
// {
|
|
// ro.Alter26_65 = "x";
|
|
// result.Alter26_65Count++;
|
|
// }
|
|
// else if (alter >= 81)
|
|
// {
|
|
// ro.AlterAb65 = "x";
|
|
// result.AlterAb65Count++;
|
|
// }
|
|
//}
|
|
//else
|
|
//{
|
|
if (alter < 18)
|
|
{
|
|
ro.AlterBis18 = "x";
|
|
result.AlterBis18Count++;
|
|
}
|
|
else if (alter >= 18 && alter <= 25)
|
|
{
|
|
ro.Alter18_25 = "x";
|
|
result.Alter18_25Count++;
|
|
}
|
|
else if (alter >= 26 && alter <= 65)
|
|
{
|
|
ro.Alter26_65 = "x";
|
|
result.Alter26_65Count++;
|
|
}
|
|
else if (alter >= 66)
|
|
{
|
|
ro.AlterAb65 = "x";
|
|
result.AlterAb65Count++;
|
|
}
|
|
//}
|
|
}
|
|
|
|
ro.PrimaerErkrankung = CreateDiagnosisString(c.Diagnosis2CustomerList);
|
|
//ro.PrimaerErkrankung = c.Diagnosis2CustomerList.Select(s => s.ICD10DiagnosisCode).ToSeparatedString(", ");
|
|
|
|
|
|
SetzeVermittlung(result, ro, c);
|
|
SetzeBeendigungsgrund(result, ro, c);
|
|
|
|
DateTime beantragtAb = DateTime.MinValue;
|
|
DateTime beantragtBis = DateTime.MinValue;
|
|
DateTime bewilligtAb = DateTime.MinValue;
|
|
DateTime bewilligtBis = DateTime.MinValue;
|
|
|
|
if (row.Field9 != null)
|
|
{
|
|
DateTime.TryParse(row.Field9.ToString(), out bewilligtAb);
|
|
}
|
|
if (row.Field10 != null)
|
|
{
|
|
DateTime.TryParse(row.Field10.ToString(), out bewilligtBis);
|
|
}
|
|
if (row.Field14 != null)
|
|
{
|
|
DateTime.TryParse(row.Field14.ToString(), out beantragtAb);
|
|
}
|
|
if (row.Field15 != null)
|
|
{
|
|
DateTime.TryParse(row.Field15.ToString(), out beantragtBis);
|
|
}
|
|
|
|
if (beantragtAb > DateTime.MinValue)
|
|
{
|
|
ro.AnfrageHilfebeginn = beantragtAb;
|
|
}
|
|
if (bewilligtAb > DateTime.MinValue)
|
|
{
|
|
ro.AnfrageClearingbeginn = bewilligtAb;
|
|
|
|
}
|
|
if (beantragtAb > DateTime.MinValue && bewilligtAb > DateTime.MinValue)
|
|
{
|
|
ro.AnfrageWartezeit = (decimal)bewilligtAb.Subtract(beantragtAb).TotalDays;
|
|
}
|
|
|
|
|
|
if (bewilligtBis < reportEnd)
|
|
{
|
|
if (bewilligtBis > DateTime.MinValue)
|
|
{
|
|
ro.HilfsdauerFallende = bewilligtBis;
|
|
|
|
if (bewilligtAb > DateTime.MinValue)
|
|
{
|
|
ro.HilfsdauerInMonaten = BerechneDauerInMonaten(bewilligtAb, bewilligtBis);
|
|
}
|
|
}
|
|
}
|
|
|
|
long cb2scoid = Int64.Parse(row.Field16.ToString());
|
|
|
|
BerechneFls(result, ro, cb2scoid);
|
|
|
|
if (String.IsNullOrEmpty(ro.FahrdienstJa))
|
|
{
|
|
ro.FahrdienstNein = "x";
|
|
result.FahrdienstNeinCount++;
|
|
}
|
|
|
|
if (add)
|
|
{
|
|
result.DetailList.Add(ro);
|
|
}
|
|
}
|
|
|
|
return result;
|
|
}
|
|
|
|
private string CreateDiagnosisString(IList<Diagnosis2Customer> d2CList)
|
|
{
|
|
StringBuilder sb = new StringBuilder();
|
|
foreach (var d2c in d2CList)
|
|
{
|
|
if (!String.IsNullOrWhiteSpace(d2c.ICD10DiagnosisCode))
|
|
{
|
|
String code = d2c.ICD10DiagnosisCode;
|
|
if (code.StartsWith("F"))
|
|
{
|
|
if (code.StartsWith("F0"))
|
|
{
|
|
code = "F00-F09";
|
|
}
|
|
else if (code.StartsWith("F1"))
|
|
{
|
|
code = "F10-F19";
|
|
}
|
|
else if (code.StartsWith("F2"))
|
|
{
|
|
code = "F20-F29";
|
|
}
|
|
else if (code.StartsWith("F3"))
|
|
{
|
|
code = "F30-F39";
|
|
}
|
|
else if (code.StartsWith("F4"))
|
|
{
|
|
code = "F40-F49";
|
|
}
|
|
else if (code.StartsWith("F5"))
|
|
{
|
|
code = "F50-F59";
|
|
}
|
|
else if (code.StartsWith("F6"))
|
|
{
|
|
code = "F60-F69";
|
|
}
|
|
else if (code.StartsWith("F7"))
|
|
{
|
|
code = "F70-F79";
|
|
}
|
|
else if (code.StartsWith("F8"))
|
|
{
|
|
code = "F80-F89";
|
|
}
|
|
else if (code.StartsWith("F9"))
|
|
{
|
|
code = "F90-F99";
|
|
}
|
|
}
|
|
|
|
if (sb.Length > 0)
|
|
{
|
|
sb.Append(", ");
|
|
}
|
|
|
|
sb.Append(code);
|
|
}
|
|
}
|
|
return sb.ToString();
|
|
}
|
|
|
|
|
|
private Wohnplatz GetWohnplatz(Dictionary<string, Wohnplatz> dict, string strasse, string ort)
|
|
{
|
|
if (!String.IsNullOrWhiteSpace(ort))
|
|
{
|
|
if (ort.ToLower() == "berg. gladbach")
|
|
{
|
|
ort = "bergisch gladbach";
|
|
}
|
|
if (ort.ToLower() == "bgl")
|
|
{
|
|
ort = "bergisch gladbach";
|
|
}
|
|
if (ort.ToLower() == "gl")
|
|
{
|
|
ort = "bergisch gladbach";
|
|
}
|
|
if (ort.ToLower() == "b gladbach")
|
|
{
|
|
ort = "bergisch gladbach";
|
|
}
|
|
if (ort.ToLower().Contains("bergisch gladbach"))
|
|
{
|
|
ort = "bergisch gladbach";
|
|
}
|
|
}
|
|
ort = ort.Replace(" ", "").ToLower().Trim();
|
|
strasse = strasse.Replace(" ", "").ToLower().Trim();
|
|
|
|
String key = String.Format("{0} {1}", strasse, ort).ToLower();
|
|
|
|
if (dict.ContainsKey(key))
|
|
{
|
|
return dict[key];
|
|
}
|
|
key = String.Format("{0} {1}", strasse.ToLower().Replace("str.", "straße"), ort).ToLower();
|
|
if (dict.ContainsKey(key))
|
|
{
|
|
return dict[key];
|
|
}
|
|
key = String.Format("{0} {1}", strasse.ToLower().Replace("strasse", "straße"), ort).ToLower();
|
|
if (dict.ContainsKey(key))
|
|
{
|
|
return dict[key];
|
|
}
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
private void BerechneFls(SozPsychErfassungBeratungRO result, SozPsychErfassungBeratungDetailRO ro, long cb2scoid)
|
|
{
|
|
CostBearer2SupportConcept cb2sc = DAOFactory.GenericDAO.LoadByID<CostBearer2SupportConcept>(cb2scoid);
|
|
|
|
var servicerecords = DAOFactory.SearchDAO.FindServiceRecords(null, cb2scoid);
|
|
|
|
var frecords = AnalysisServiceImp.FilterGroupServiceRecords(servicerecords);
|
|
|
|
foreach (var serviceRecord in frecords)
|
|
{
|
|
if (serviceRecord.Start >= reportStart && serviceRecord.End < reportEnd)
|
|
{
|
|
if (serviceRecord.ServiceDescription.ServiceCategory.Oid == servicecategoryOid)
|
|
{
|
|
if (serviceRecord.ServiceDescription.Name.ToLower().Contains("ohne klient"))
|
|
{
|
|
ro.GeleisteteFlsOhneKlient += serviceRecord.RoundedDuration;
|
|
}
|
|
else
|
|
{
|
|
ro.GeleisteteFlsKlient += serviceRecord.RoundedDuration;
|
|
}
|
|
|
|
ro.GeleisteteFlsGesamt += serviceRecord.RoundedDuration;
|
|
}
|
|
}
|
|
//else
|
|
//{
|
|
// ro.GeleisteteFlsOhneKlient += serviceRecord.RoundedDuration;
|
|
//}
|
|
|
|
}
|
|
|
|
ro.GeleisteteFlsGesamt /= 60;
|
|
ro.GeleisteteFlsKlient /= 60;
|
|
ro.GeleisteteFlsOhneKlient /= 60;
|
|
|
|
result.GeleisteteFlsGesamtCount += ro.GeleisteteFlsGesamt;
|
|
|
|
|
|
var calc = PluginLoader.FindClass<Calculations>();
|
|
|
|
var reldc = MapperFactory.SupportConceptCostBearerRelDC_CostBearer2SupportConcept.MapToNewDC(cb2sc);
|
|
|
|
var genehmigt = calc.GetApprovedHoursTotal(reldc, false);
|
|
|
|
ro.AbrechnungVereinbarteFls = genehmigt ?? 0;
|
|
ro.AbrechnungDifferenz = ro.GeleisteteFlsGesamt - ro.AbrechnungVereinbarteFls;
|
|
|
|
result.AbrechnungVereinbarteFlsCount += ro.AbrechnungVereinbarteFls;
|
|
}
|
|
|
|
private decimal BerechneDauerInMonaten(DateTime bewilligtAb, DateTime bewilligtBis)
|
|
{
|
|
decimal monate = 0;
|
|
|
|
DateTime start = bewilligtAb.Date;
|
|
DateTime ende = bewilligtBis.Date;
|
|
|
|
while (start < ende)
|
|
{
|
|
monate++;
|
|
|
|
start = start.AddMonths(1);
|
|
}
|
|
if (start != ende.AddDays(1))
|
|
{
|
|
var days = start.Subtract(ende).TotalDays + 1;
|
|
|
|
monate += (decimal)(days/DateTime.DaysInMonth(start.Year, start.Month));
|
|
}
|
|
|
|
|
|
return monate;
|
|
}
|
|
|
|
private void SetzeBeendigungsgrund(SozPsychErfassungBeratungRO reportRo, SozPsychErfassungBeratungDetailRO ro, Customer customer)
|
|
{
|
|
|
|
if (customer.TerminationReason != null)
|
|
{
|
|
if (customer.TerminationReason.Value == "Ziel(e) erreicht (Sozialdienst)")
|
|
{
|
|
ro.BeendigungsgrundZeileErreicht = "x";
|
|
reportRo.BeendigungsgrundZeileErreichtCount++;
|
|
}
|
|
else if (customer.TerminationReason.Value == "KKH/Reha (Sozialdienst)")
|
|
{
|
|
ro.BeendigungsgrundKkhReha = "x";
|
|
reportRo.BeendigungsgrundKkhRehaCount++;
|
|
}
|
|
else if (customer.TerminationReason.Value == "Abbruch (Sozialdienst)")
|
|
{
|
|
ro.BeendigungsgrundAbbruch = "x";
|
|
reportRo.BeendigungsgrundAbbruchCount++;
|
|
}
|
|
else if (customer.TerminationReason.Value == "verstorben (Sozialdienst)")
|
|
{
|
|
ro.BeendigungsgrundVerstorben = "x";
|
|
reportRo.BeendigungsgrundVerstorbenCount++;
|
|
}
|
|
}
|
|
}
|
|
|
|
private void SetzeVermittlung(SozPsychErfassungBeratungRO reportRo, SozPsychErfassungBeratungDetailRO ro, Customer customer)
|
|
{
|
|
|
|
|
|
foreach (var placement in customer.PlacementList)
|
|
{
|
|
if (placement.Objective != null)
|
|
{
|
|
if (placement.Objective.Value == "langfristige Betreuung" || placement.Objective.Value == "langfristige Begleitung")
|
|
{
|
|
ro.VermittlungLangfristigeBegleitung = "x";
|
|
reportRo.VermittlungLangfristigeBegleitungCount++;
|
|
}
|
|
else if (placement.Objective.Value == "Behandlung/Therapie")
|
|
{
|
|
ro.VermittlungBehandlungTherapie = "x";
|
|
reportRo.VermittlungBehandlungTherapieCount++;
|
|
}
|
|
else if (placement.Objective.Value == "Wohnheim/Reha")
|
|
{
|
|
ro.VermittlungWohnheimReha = "x";
|
|
reportRo.VermittlungWohnheimRehaCount++;
|
|
}
|
|
else if (placement.Objective.Value == "BEWO" || placement.Objective.Value == "Betreutes Wohnen")
|
|
{
|
|
ro.VermittlungBeWo = "x";
|
|
reportRo.VermittlungBeWoCount++;
|
|
}
|
|
else if (placement.Objective.Value == "Tagesstätte" || placement.Objective.Value == "Tagesstätte/WfB")
|
|
{
|
|
ro.VermittlungTagestaette = "x";
|
|
reportRo.VermittlungTagestaetteCount++;
|
|
}
|
|
else if (placement.Objective.Value == "Kontaktstelle")
|
|
{
|
|
ro.VermittlungKontaktstelle = "x";
|
|
reportRo.VermittlungKontaktstelleCount++;
|
|
}
|
|
else if (placement.Objective.Value == "SPFH" || placement.Objective.Value == "Jugendamt" || placement.Objective.Value == "Jugendamt/SPFH")
|
|
{
|
|
ro.VermittlungJugendamtSpfh = "x";
|
|
reportRo.VermittlungJugendamtSpfhCount++;
|
|
}
|
|
else if (placement.Objective.Value == "Schuldnerberatung")
|
|
{
|
|
ro.VermittlungSchuldnerberatung = "x";
|
|
reportRo.VermittlungSchuldnerberatungCount++;
|
|
}
|
|
else if (placement.Objective.Value == "Sozialpsychiatrischer Dienst" || placement.Objective.Value == "SpDi")
|
|
{
|
|
ro.VermittlungSpdi = "x";
|
|
reportRo.VermittlungSpdiCount++;
|
|
}
|
|
else if (placement.Objective.Value == "sonstige Dienste")
|
|
{
|
|
ro.VermittlungSonstigeDienste = "x";
|
|
reportRo.VermittlungSonstigeDiensteCount++;
|
|
}
|
|
else if (placement.Objective.Value == "Selbsthilfe")
|
|
{
|
|
ro.VermittlungSelbsthilfe = "x";
|
|
reportRo.VermittlungSelbsthilfeCount++;
|
|
}
|
|
else if (placement.Objective.Value == "keine weiteren Hilfen bekannt")
|
|
{
|
|
ro.VermittlungUnbekannt = "x";
|
|
reportRo.VermittlungUnbekanntCount++;
|
|
}
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
private void SetzeOhneWohnplatz(SozPsychErfassungBeratungRO result, SozPsychErfassungBeratungDetailRO ro, VarFieldValue vv, object varFieldValue)
|
|
{
|
|
if (vv.VarFieldDefOid == 37)
|
|
{
|
|
if (varFieldValue != null)
|
|
{
|
|
String vvStr = varFieldValue as String;
|
|
if (!String.IsNullOrWhiteSpace(vvStr))
|
|
{
|
|
result.OhneFestenWohnsitzCount++;
|
|
|
|
ro.OhneFestenWohnsitz = vvStr;
|
|
}
|
|
|
|
}
|
|
}
|
|
}
|
|
|
|
private void SetzeZugang(SozPsychErfassungBeratungRO reportRo, SozPsychErfassungBeratungDetailRO ro, VarFieldValue vv, object varFieldValue)
|
|
{
|
|
|
|
if (vv.VarFieldDefOid == 36)
|
|
{
|
|
String angebot = varFieldValue as string;
|
|
|
|
if (angebot == "selbst/Familie/soz. Umfeld")
|
|
{
|
|
ro.ZugangUeberSelbst = "x";
|
|
reportRo.ZugangUeberSelbstCount++;
|
|
}
|
|
else if (angebot == "(Fach-)Arzt")
|
|
{
|
|
ro.ZugangUeberArzt = "x";
|
|
reportRo.ZugangUeberArztCount++;
|
|
}
|
|
else if (angebot == "KKH/Reha")
|
|
{
|
|
ro.ZugangUeberKkhReha = "x";
|
|
reportRo.ZugangUeberKkhRehaCount++;
|
|
}
|
|
else if (angebot == "SpDi")
|
|
{
|
|
ro.ZugangUeberSpDi = "x";
|
|
reportRo.ZugangUeberSpDiCount++;
|
|
}
|
|
else if (angebot == "Job Center")
|
|
{
|
|
ro.ZugangUeberJobCenter = "x";
|
|
reportRo.ZugangUeberJobCenterCount++;
|
|
}
|
|
else if (angebot == "Selbsthilfe")
|
|
{
|
|
ro.ZugangUeberSelbsthilfe = "x";
|
|
reportRo.ZugangUeberSelbsthilfeCount++;
|
|
}
|
|
else if (angebot == "Seniorenberatung")
|
|
{
|
|
ro.ZugangUeberSeniorenberatung = "x";
|
|
reportRo.ZugangUeberSeniorenberatungCount++;
|
|
}
|
|
else if (angebot == "Pflegedienst")
|
|
{
|
|
ro.ZugangUeberPflegedienst = "x";
|
|
reportRo.ZugangUeberPflegedienstCount++;
|
|
}
|
|
else if (angebot == "Kontaktstelle")
|
|
{
|
|
ro.ZugangUeberKontaktstelle = "x";
|
|
reportRo.ZugangUeberKontaktstelleCount++;
|
|
}
|
|
else
|
|
{
|
|
ro.ZugangUeberAndere = "x";
|
|
reportRo.ZugangUeberAndereCount++;
|
|
}
|
|
}
|
|
}
|
|
|
|
private void SetzeErkrankung(SozPsychErfassungBeratungRO reportRo, SozPsychErfassungBeratungDetailRO ro, VarFieldValue vv, object varFieldValue)
|
|
{
|
|
if (vv.VarFieldDefOid == 35)
|
|
{
|
|
String angebot = varFieldValue as string;
|
|
|
|
if (angebot == "Ja")
|
|
{
|
|
ro.PsychOderSuchterkrankungJa = "x";
|
|
reportRo.PsychOderSuchterkrankungJaCount++;
|
|
}
|
|
else if (angebot == "Nein")
|
|
{
|
|
ro.PsychOderSuchterkrankungNein = "x";
|
|
reportRo.PsychOderSuchterkrankungNeinCount++;
|
|
}
|
|
else if (angebot == "Unbekannt")
|
|
{
|
|
ro.PsychOderSuchterkrankungUnbekannt = "x";
|
|
reportRo.PsychOderSuchterkrankungUnbekanntCount++;
|
|
}
|
|
|
|
}
|
|
}
|
|
|
|
private void SetzeLebensumfeld(SozPsychErfassungBeratungRO reportRo, SozPsychErfassungBeratungDetailRO ro, VarFieldValue vv, object varFieldValue)
|
|
{
|
|
if (vv.VarFieldDefOid == 25 && varFieldValue.ToString() == "True")
|
|
{
|
|
ro.LebensumfeldAlleinLebend = "x";
|
|
reportRo.LebensumfeldAlleinLebendCount++;
|
|
}
|
|
else if (vv.VarFieldDefOid == 26 && varFieldValue.ToString() == "True")
|
|
{
|
|
ro.LebensumfeldMitPartnerLebend = "x";
|
|
reportRo.LebensumfeldMitPartnerLebendCount++;
|
|
}
|
|
else if (vv.VarFieldDefOid == 27 && varFieldValue.ToString() == "True")
|
|
{
|
|
ro.LebensumfeldKinderImHaushalt = "x";
|
|
reportRo.LebensumfeldKinderImHaushaltCount++;
|
|
}
|
|
else if (vv.VarFieldDefOid == 28 && varFieldValue.ToString() == "True")
|
|
{
|
|
ro.LebensumfeldKinderInAnderemHaushalt = "x";
|
|
reportRo.LebensumfeldKinderInAnderemHaushaltCount++;
|
|
}
|
|
else if (vv.VarFieldDefOid == 29 && varFieldValue.ToString() == "True")
|
|
{
|
|
ro.LebensumfeldWohnhaftInHerkunftsfamilie = "x";
|
|
reportRo.LebensumfeldWohnhaftInHerkunftsfamilieCount++;
|
|
}
|
|
else if (vv.VarFieldDefOid == 30 && varFieldValue.ToString() == "True")
|
|
{
|
|
ro.LebensumfeldInArbeit = "x";
|
|
reportRo.LebensumfeldInArbeitCount++;
|
|
}
|
|
else if (vv.VarFieldDefOid == 31 && varFieldValue.ToString() == "True")
|
|
{
|
|
ro.LebensumfeldBeziehtAlg = "x";
|
|
reportRo.LebensumfeldBeziehtAlgCount++;
|
|
}
|
|
else if (vv.VarFieldDefOid == 32 && varFieldValue.ToString() == "True")
|
|
{
|
|
ro.LebensumfeldBeziehtAlg2 = "x";
|
|
reportRo.LebensumfeldBeziehtAlg2Count++;
|
|
}
|
|
else if (vv.VarFieldDefOid == 33 && varFieldValue.ToString() == "True")
|
|
{
|
|
ro.LebensumfeldBeziehtGrundsicherung = "x";
|
|
reportRo.LebensumfeldBeziehtGrundsicherungCount++;
|
|
}
|
|
else if (vv.VarFieldDefOid == 34 && varFieldValue.ToString() == "True")
|
|
{
|
|
ro.LebensumfeldBeziehtRente = "x";
|
|
reportRo.LebensumfeldBeziehtRenteCount++;
|
|
}
|
|
else if (vv.VarFieldDefOid == 300 && varFieldValue.ToString() == "True")
|
|
{
|
|
ro.LebensumfeldSonstiges = "x";
|
|
reportRo.LebensumfeldSonstigesCount++;
|
|
}
|
|
else if (vv.VarFieldDefOid == 310 && varFieldValue.ToString() == "True")
|
|
{
|
|
ro.EinkommenGeringBeschaeftigt = "x";
|
|
reportRo.EinkommenGeringBeschaeftigtCount++;
|
|
}
|
|
else if (vv.VarFieldDefOid == 311 && varFieldValue.ToString() == "True")
|
|
{
|
|
ro.EinkommenErgaenzendesAlg2 = "x";
|
|
reportRo.EinkommenErgaenzendesAlg2Count++;
|
|
}
|
|
else if (vv.VarFieldDefOid == 312 && varFieldValue.ToString() == "True")
|
|
{
|
|
ro.EinkommenSonstiges = "x";
|
|
reportRo.EinkommenSonstigesCount++;
|
|
}
|
|
}
|
|
|
|
private void SetzeFahrdienst(SozPsychErfassungBeratungRO reportRo, SozPsychErfassungBeratungDetailRO ro, VarFieldValue vv, object varFieldValue)
|
|
{
|
|
if (vv.VarFieldDefOid == 23)
|
|
{
|
|
if (varFieldValue.ToString() == "True")
|
|
{
|
|
ro.FahrdienstJa = "x";
|
|
reportRo.FahrdienstJaCount++;
|
|
}
|
|
else
|
|
{
|
|
//ro.FahrdienstNein = "x";
|
|
//reportRo.FahrdienstNeinCount++;
|
|
}
|
|
}
|
|
else if (vv.VarFieldDefOid == 24)
|
|
{
|
|
if (varFieldValue.ToString() == "True")
|
|
{
|
|
ro.FahrdienstErfolgt = "x";
|
|
reportRo.FahrdienstErfolgtCount++;
|
|
}
|
|
}
|
|
}
|
|
|
|
private void SetzeAngebot(SozPsychErfassungBeratungRO reportRo, SozPsychErfassungBeratungDetailRO ro, VarFieldValue vv, object varFieldValue)
|
|
{
|
|
if (vv.VarFieldDefOid == 22)
|
|
{
|
|
String angebot = varFieldValue as string;
|
|
|
|
if (angebot == "Beratung")
|
|
{
|
|
ro.AngebotBeratung = "x";
|
|
reportRo.AngebotBeratungCount++;
|
|
}
|
|
else if (angebot == "Begleitung")
|
|
{
|
|
ro.AngebotBegleitung = "x";
|
|
reportRo.AngebotBegleitungCount++;
|
|
}
|
|
else if (angebot == "Krisenintervention")
|
|
{
|
|
ro.AngebotKrisenIntervention = "x";
|
|
reportRo.AngebotKrisenInterventionCount++;
|
|
}
|
|
else if (angebot == "Beratung Angehöriger")
|
|
{
|
|
ro.AngebotBeratungAngehoeriger = "x";
|
|
reportRo.AngebotBeratungAngehoerigerCount++;
|
|
}
|
|
else if (angebot == "Hausbesuch")
|
|
{
|
|
ro.AngebotHausbesuch = "x";
|
|
reportRo.AngebotHausbesuchCount++;
|
|
}
|
|
|
|
}
|
|
else if (vv.VarFieldDefOid == 38)
|
|
{
|
|
if (varFieldValue.ToString() == "True")
|
|
{
|
|
ro.AngebotBeratung = "x";
|
|
reportRo.AngebotBeratungCount++;
|
|
}
|
|
}
|
|
else if (vv.VarFieldDefOid == 39)
|
|
{
|
|
if (varFieldValue.ToString() == "True")
|
|
{
|
|
ro.AngebotBegleitung = "x";
|
|
reportRo.AngebotBegleitungCount++;
|
|
}
|
|
}
|
|
else if (vv.VarFieldDefOid == 40)
|
|
{
|
|
if (varFieldValue.ToString() == "True")
|
|
{
|
|
ro.AngebotKrisenIntervention = "x";
|
|
reportRo.AngebotKrisenInterventionCount++;
|
|
}
|
|
}
|
|
else if (vv.VarFieldDefOid == 41)
|
|
{
|
|
if (varFieldValue.ToString() == "True")
|
|
{
|
|
ro.AngebotBeratungAngehoeriger = "x";
|
|
reportRo.AngebotBeratungAngehoerigerCount++;
|
|
}
|
|
}
|
|
else if (vv.VarFieldDefOid == 42)
|
|
{
|
|
if (varFieldValue.ToString() == "True")
|
|
{
|
|
ro.AngebotHausbesuch = "x";
|
|
reportRo.AngebotHausbesuchCount++;
|
|
}
|
|
}
|
|
}
|
|
|
|
private void SetzeNationalitaet(SozPsychErfassungBeratungRO reportRo, SozPsychErfassungBeratungDetailRO ro, VarFieldValue vv, object varFieldValue)
|
|
{
|
|
if (vv.VarFieldDefOid == 1)
|
|
{
|
|
String staatsang = varFieldValue as string;
|
|
|
|
if (!String.IsNullOrWhiteSpace(staatsang))
|
|
{
|
|
if (staatsang.ToLower().Contains("deutsch"))
|
|
{
|
|
ro.Deutsch = "x";
|
|
reportRo.DeutschCount++;
|
|
}
|
|
else
|
|
{
|
|
ro.Nationalitaet = staatsang;
|
|
reportRo.NationalitaetCount++;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
private Dictionary<String, Wohnplatz> CreateStrassenschluesselDict()
|
|
{
|
|
var dict = new Dictionary<String, Wohnplatz>();
|
|
|
|
String sql = "Select StrassenName, HausNummer, Gemeinde, Wohnplatzname, Wohnplatznummer from Strassenschluessel";
|
|
var table = DAOFactory.AdoDAO.ExecuteQuery(sql).Tables[0];
|
|
|
|
foreach (DataRow row in table.Rows)
|
|
{
|
|
String strasse = row[0] as string;
|
|
String hausnr = row[1] as string;
|
|
String gemeinde = row[2] as string;
|
|
|
|
strasse = strasse.Replace(" ", "").Trim();
|
|
hausnr = hausnr.Replace(" ", "").Trim();
|
|
gemeinde = gemeinde.Replace(" ", "").Trim();
|
|
|
|
String key = String.Format("{0}{1} {2}", strasse, hausnr, gemeinde).ToLower();
|
|
|
|
if (!dict.ContainsKey(key))
|
|
{
|
|
Wohnplatz wp = new Wohnplatz();
|
|
wp.Strasse = row[0] as string;
|
|
wp.HausNummer = row[1] as string;
|
|
wp.Gemeinde = row[2] as string;
|
|
wp.Wohnplatzname = row[3] as string;
|
|
wp.Wohnplatznummer = row[4] as string;
|
|
|
|
dict.Add(key, wp);
|
|
}
|
|
else
|
|
{
|
|
String e = "ERROR";
|
|
}
|
|
}
|
|
return dict;
|
|
}
|
|
|
|
private class Wohnplatz
|
|
{
|
|
public String Strasse { get; set; }
|
|
|
|
public String HausNummer { get; set; }
|
|
|
|
public String Gemeinde { get; set; }
|
|
|
|
public String Wohnplatzname { get; set; }
|
|
|
|
public String Wohnplatznummer { get; set; }
|
|
}
|
|
}
|
|
}
|