Skip to content

Commit cd48e7a

Browse files
authored
Abstract out default implementation from HIP service (#71)
* Temp commit * Let the repository take care of building expression * Abstract out default implementation * Removed duplicate code introduced in link * Abstract out link implementation * Lookup for migrations in HipService * Reuse discovery repository in link too * Remove unnecessary return statement
1 parent d8a2646 commit cd48e7a

81 files changed

Lines changed: 430 additions & 518 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

src/In.ProjectEKA.DefaultHip/Discovery/Matcher/EmptyMatcher.cs renamed to src/In.ProjectEKA.DefaultHip/Discovery/EmptyMatcher.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
namespace In.ProjectEKA.DefaultHip.Discovery.Matcher
1+
namespace In.ProjectEKA.DefaultHip.Discovery
22
{
33
using System;
44
using System.Linq.Expressions;
5-
using Model;
5+
using HipLibrary.Patient.Model;
66

77
public class EmptyMatcher : IIdentifierMatcher
88
{

src/In.ProjectEKA.DefaultHip/Discovery/Helper/ExpressionBuilder.cs renamed to src/In.ProjectEKA.DefaultHip/Discovery/ExpressionBuilder.cs

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,10 @@
1-
namespace In.ProjectEKA.DefaultHip.Discovery.Helper
1+
namespace In.ProjectEKA.DefaultHip.Discovery
22
{
33
using System;
44
using System.Linq.Expressions;
55

66
public static class ExpressionBuilder
77
{
8-
public static Expression<Func<T, bool>> True<T>()
9-
{
10-
return f => true;
11-
}
12-
138
public static Expression<Func<T, bool>> False<T>()
149
{
1510
return f => false;
@@ -23,6 +18,7 @@ public static Expression<Func<T, bool>> Or<T>(this Expression<Func<T, bool>> exp
2318
(Expression.OrElse(expr1.Body, invokedExpr), expr1.Parameters);
2419
}
2520

21+
// ReSharper disable once UnusedMember.Global
2622
public static Expression<Func<T, bool>> And<T>(this Expression<Func<T, bool>> expr1,
2723
Expression<Func<T, bool>> expr2)
2824
{

src/In.ProjectEKA.DefaultHip/Discovery/IMatchingRepository.cs

Lines changed: 0 additions & 13 deletions
This file was deleted.

src/In.ProjectEKA.DefaultHip/Discovery/Matcher/IIdentifierMatcher.cs

Lines changed: 0 additions & 11 deletions
This file was deleted.

src/In.ProjectEKA.DefaultHip/Discovery/Model/CareContext.cs

Lines changed: 0 additions & 8 deletions
This file was deleted.

src/In.ProjectEKA.DefaultHip/Discovery/Model/Patient.cs

Lines changed: 0 additions & 17 deletions
This file was deleted.
Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
namespace In.ProjectEKA.DefaultHip.Discovery
22
{
3-
using System;
43
using System.Linq;
5-
using System.Linq.Expressions;
64
using System.Threading.Tasks;
7-
using Helper;
8-
using Model;
5+
using HipLibrary.Patient;
6+
using HipLibrary.Patient.Model;
7+
using Patient;
8+
using DiscoveryRequest = HipLibrary.Patient.Model.Request.DiscoveryRequest;
9+
using static StrongMatcherFactory;
910

1011
public class PatientMatchingRepository : IMatchingRepository
1112
{
@@ -15,11 +16,11 @@ public PatientMatchingRepository(string patientFilePath)
1516
{
1617
this.patientFilePath = patientFilePath;
1718
}
18-
19-
public async Task<IQueryable<Patient>> Where(Expression<Func<Patient, bool>> predicate)
19+
public async Task<IQueryable<Patient>> Where(DiscoveryRequest request)
2020
{
21+
var expression = GetExpression(request.Patient.VerifiedIdentifiers);
2122
var patientsInfo = await FileReader.ReadJsonAsync(patientFilePath);
22-
return patientsInfo.Where(predicate.Compile()).AsQueryable();
23+
return patientsInfo.Where(expression.Compile()).AsQueryable();
2324
}
2425
}
2526
}

src/In.ProjectEKA.DefaultHip/Discovery/Matcher/PhoneNumberMatcher.cs renamed to src/In.ProjectEKA.DefaultHip/Discovery/PhoneNumberMatcher.cs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
1-
namespace In.ProjectEKA.DefaultHip.Discovery.Matcher
1+
namespace In.ProjectEKA.DefaultHip.Discovery
22
{
33
using System;
44
using System.Linq.Expressions;
5-
using Model;
5+
using HipLibrary.Patient.Model;
66

77
public class PhoneNumberMatcher : IIdentifierMatcher
88
{

src/In.ProjectEKA.DefaultHip/Discovery/Matcher/StrongMatcherFactory.cs renamed to src/In.ProjectEKA.DefaultHip/Discovery/StrongMatcherFactory.cs

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,10 @@
1-
namespace In.ProjectEKA.DefaultHip.Discovery.Matcher
1+
namespace In.ProjectEKA.DefaultHip.Discovery
22
{
33
using System;
44
using System.Collections.Generic;
55
using System.Linq;
66
using System.Linq.Expressions;
7-
using Helper;
87
using HipLibrary.Patient.Model;
9-
using Model;
108

119
public static class StrongMatcherFactory
1210
{
@@ -29,4 +27,9 @@ public static Expression<Func<Patient, bool>> GetExpression(IEnumerable<Identifi
2927
(accumulate, next) => accumulate.Or(next));
3028
}
3129
}
30+
31+
public interface IIdentifierMatcher
32+
{
33+
Expression<Func<Patient, bool>> Of(string value);
34+
}
3235
}
Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
<Project Sdk="Microsoft.NET.Sdk">
1+
<Project Sdk="Microsoft.NET.Sdk">
22

33
<PropertyGroup>
44
<TargetFramework>netcoreapp3.1</TargetFramework>
55
</PropertyGroup>
66

77
<ItemGroup>
8-
<PackageReference Include="health-information-provider-library" Version="0.1.0" />
8+
<PackageReference Include="health-information-provider-library" Version="0.1.3" />
99
<PackageReference Include="Newtonsoft.Json" Version="12.0.2" />
1010
<PackageReference Include="Microsoft.EntityFrameworkCore.Design" Version="3.1.0">
1111
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
@@ -15,9 +15,5 @@
1515
<PackageReference Include="NpgSql.EntityFrameworkCore.PostgreSQL.Design" Version="1.1.1" />
1616
<PackageReference Include="Optional" Version="4.0.0" />
1717
</ItemGroup>
18-
19-
<ItemGroup>
20-
<Folder Include="Link\Database\Migrations" />
21-
</ItemGroup>
2218

2319
</Project>

0 commit comments

Comments
 (0)