diff --git a/Dakota/DakotaValidator.cs b/Dakota/DakotaValidator.cs
index abae6914b..edf6b48e7 100644
--- a/Dakota/DakotaValidator.cs
+++ b/Dakota/DakotaValidator.cs
@@ -65,8 +65,8 @@ namespace Dakota
throw new DakotaException(error);
}
- public static bool ValidateIKNumbers(Organisation orga)
- => ValidateIKNumbers(orga.IKDatenannahmestelle, orga.IKKostentrager, orga.IKKrankenkasse);
+ public static bool ValidateOrganisationInformations(Organisation orga)
+ => ValidateIKNumbers(orga.IKDatenannahmestelle, orga.IKKostentrager, orga.IKKrankenkasse) && !string.IsNullOrEmpty(orga.BezDatenannahmestelle);
private static bool ValidateIKNumbers(params string[] iks)
=> iks?.All(ValidateIKNumber) ?? false;
diff --git a/Dakota/Logic/DakotaKTDReader.cs b/Dakota/Logic/DakotaKTDReader.cs
index e6c0f0466..27af3edcb 100644
--- a/Dakota/Logic/DakotaKTDReader.cs
+++ b/Dakota/Logic/DakotaKTDReader.cs
@@ -44,14 +44,23 @@ namespace Dakota.Logic
/// Item1:Datenannahmestelle -
/// Item2:Kostenträger -
/// Item3:Krankenkasse
- public Tuple Resolve(string ikkrankenkasse, string abrechnungscode, string tarifkennzeichen)
+ public Tuple Resolve(string ikkrankenkasse, string abrechnungscode, string tarifkennzeichen)
{
foreach (var kv in FileDictionary)
{
- var search = GetIKNummern(kv.Value, ikkrankenkasse, abrechnungscode, tarifkennzeichen);
+ var dict = kv.Value;
+
+ var search = GetIKNummern(dict, ikkrankenkasse, abrechnungscode, tarifkennzeichen);
if (search is object)
- return search;
+ {
+ var datenannahmestelle = search.Item1;
+
+ var bez = dict[datenannahmestelle].SegmentIDK.Kurzbezeichnung;
+
+ return new Tuple(datenannahmestelle, search.Item2, search.Item3, bez);
+ }
+
}
return null;
diff --git a/Host/GkvAbrechnungView.aspx.cs b/Host/GkvAbrechnungView.aspx.cs
index 077c25651..5e0e8439d 100644
--- a/Host/GkvAbrechnungView.aspx.cs
+++ b/Host/GkvAbrechnungView.aspx.cs
@@ -269,6 +269,7 @@ namespace Host
response.IKDatenannahmestelle = resolved.Item1;
response.IKKostentrager = resolved.Item2;
response.IKKrankenkasse = resolved.Item3;
+ response.BezDatenannahmestelle = resolved.Item4;
}
SendResponse(response);
diff --git a/Service/ServiceImplementations/AccountingServiceImp.cs b/Service/ServiceImplementations/AccountingServiceImp.cs
index d2b500d67..92034611f 100644
--- a/Service/ServiceImplementations/AccountingServiceImp.cs
+++ b/Service/ServiceImplementations/AccountingServiceImp.cs
@@ -936,7 +936,7 @@ namespace BeWo.Service.ServiceImplementations
DakotaValidator.ValidateOrganisation(orga);
- if (!DakotaValidator.ValidateIKNumbers(orga))
+ if (!DakotaValidator.ValidateOrganisationInformations(orga))
{
var res = SendApp8GetIKRequest(orga);
@@ -952,8 +952,8 @@ namespace BeWo.Service.ServiceImplementations
orga.IKKostentrager = res.IKKostentrager;
orga.BezDatenannahmestelle = res.BezDatenannahmestelle;
- if (!DakotaValidator.ValidateIKNumbers(orga))
- throw new DakotaException($"Für die Organisation \"{orga.Name}\" konnten die hinterlegten IKs nicht verifiziert werden: \"{orga.IKDatenannahmestelle}\", \"{orga.IKKostentrager}\", \"{orga.IKKrankenkasse}\"", "Interner Fehler");
+ if (!DakotaValidator.ValidateOrganisationInformations(orga))
+ throw new DakotaException($"Für die Organisation \"{orga.Name}\" konnten die hinterlegten IKs nicht verifiziert werden: \"{orga.BezDatenannahmestelle}\", \"{orga.IKDatenannahmestelle}\", \"{orga.IKKostentrager}\", \"{orga.IKKrankenkasse}\"", "Interner Fehler");
DAOFactory.GenericDAO.Update(orga);