diff --git a/hip-service.sln b/hip-service.sln index 71c85c89..58665f62 100644 --- a/hip-service.sln +++ b/hip-service.sln @@ -9,9 +9,9 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "test", "test", "{C6699092-7 EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "In.ProjectEKA.HipServiceTest", "test\In.ProjectEKA.HipServiceTest\In.ProjectEKA.HipServiceTest.csproj", "{B5A9C0B9-25EC-472E-B2CD-3EC5A69584F7}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "In.ProjectEKA.DefaultHip", "src\In.ProjectEKA.DefaultHip\In.ProjectEKA.DefaultHip.csproj", "{23976B61-FBF9-41B8-AEA2-B70AD47F00A8}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "In.ProjectEKA.FHIRHip", "src\In.ProjectEKA.FHIRHip\In.ProjectEKA.FHIRHip.csproj", "{23976B61-FBF9-41B8-AEA2-B70AD47F00A8}" EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "In.ProjectEKA.DefaultHipTest", "test\In.ProjectEKA.DefaultHipTest\In.ProjectEKA.DefaultHipTest.csproj", "{4412373D-2E69-412A-8264-FA2806902173}" +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "In.ProjectEKA.FHIRHipTest", "test\In.ProjectEKA.FHIRHipTest\In.ProjectEKA.FHIRHipTest.csproj", "{4412373D-2E69-412A-8264-FA2806902173}" EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "In.ProjectEKA.HipLibrary", "src\In.ProjectEKA.HipLibrary\In.ProjectEKA.HipLibrary.csproj", "{40B6794D-AA65-4B3D-B929-0180CA40E3D6}" EndProject diff --git a/src/In.ProjectEKA.DefaultHip/Discovery/PatientMatchingRepository.cs b/src/In.ProjectEKA.DefaultHip/Discovery/PatientMatchingRepository.cs deleted file mode 100644 index 1017965e..00000000 --- a/src/In.ProjectEKA.DefaultHip/Discovery/PatientMatchingRepository.cs +++ /dev/null @@ -1,26 +0,0 @@ -namespace In.ProjectEKA.DefaultHip.Discovery -{ - using System.Linq; - using System.Threading.Tasks; - using HipLibrary.Matcher; - using HipLibrary.Patient.Model; - using Patient; - using static HipLibrary.Matcher.StrongMatcherFactory; - - public class PatientMatchingRepository : IMatchingRepository - { - private readonly string patientFilePath; - - public PatientMatchingRepository(string patientFilePath) - { - this.patientFilePath = patientFilePath; - } - - public async Task> Where(DiscoveryRequest request) - { - var expression = GetVerifiedExpression(request.Patient.VerifiedIdentifiers); - var patientsInfo = await FileReader.ReadJsonAsync(patientFilePath); - return patientsInfo.Where(expression.Compile()).AsQueryable(); - } - } -} \ No newline at end of file diff --git a/src/In.ProjectEKA.DefaultHip/Link/PatientRepository.cs b/src/In.ProjectEKA.DefaultHip/Link/PatientRepository.cs deleted file mode 100644 index b8a03c79..00000000 --- a/src/In.ProjectEKA.DefaultHip/Link/PatientRepository.cs +++ /dev/null @@ -1,40 +0,0 @@ -namespace In.ProjectEKA.DefaultHip.Link -{ - using System; - using System.Collections.Generic; - using System.Linq; - using HipLibrary.Patient; - using HipLibrary.Patient.Model; - using Optional; - using Patient; - - public class PatientRepository : IPatientRepository - { - private readonly string filePath; - - public PatientRepository(string filePath) - { - this.filePath = filePath; - } - - public Option PatientWith(string referenceNumber) - { - try - { - var patientsInfo = All(); - var patient = patientsInfo.First(p => p.Identifier == referenceNumber); - return Option.Some(patient); - } - catch (Exception) - { - return Option.None(); - } - } - - private IEnumerable All() - { - var patientsInfo = FileReader.ReadJson(filePath); - return patientsInfo; - } - } -} \ No newline at end of file diff --git a/src/In.ProjectEKA.DefaultHip/DataFlow/CareContextRecord.cs b/src/In.ProjectEKA.FHIRHip/DataFlow/CareContextRecord.cs similarity index 82% rename from src/In.ProjectEKA.DefaultHip/DataFlow/CareContextRecord.cs rename to src/In.ProjectEKA.FHIRHip/DataFlow/CareContextRecord.cs index 529e8b47..59633a53 100644 --- a/src/In.ProjectEKA.DefaultHip/DataFlow/CareContextRecord.cs +++ b/src/In.ProjectEKA.FHIRHip/DataFlow/CareContextRecord.cs @@ -1,4 +1,4 @@ -namespace In.ProjectEKA.DefaultHip.DataFlow +namespace In.ProjectEKA.FHIRHip.DataFlow { using System.Collections.Generic; diff --git a/src/In.ProjectEKA.FHIRHip/DataFlow/Collect.cs b/src/In.ProjectEKA.FHIRHip/DataFlow/Collect.cs new file mode 100644 index 00000000..f86f1b32 --- /dev/null +++ b/src/In.ProjectEKA.FHIRHip/DataFlow/Collect.cs @@ -0,0 +1,125 @@ +namespace In.ProjectEKA.FHIRHip.DataFlow +{ + using System; + using System.Collections.Generic; + using System.IO; + using System.Linq; + using System.Net.Http; + using System.Net.Mime; + using System.Text; + using System.Threading.Tasks; + using HipLibrary.Patient; + using HipLibrary.Patient.Model; + using Hl7.Fhir.Model; + using Hl7.Fhir.Serialization; + using Hl7.Fhir.Utility; + using Model; + using Newtonsoft.Json; + using Newtonsoft.Json.Serialization; + using Optional; + using Serilog; + + public class Collect : ICollect + { + private readonly DataFlowConfiguration DataFlowConfiguration; + private readonly HttpClient HttpClient; + + public Collect(DataFlowConfiguration dataFlowConfiguration, HttpClient httpClient) + { + DataFlowConfiguration = dataFlowConfiguration; + HttpClient = httpClient; + } + + public async Task> CollectData(TraceableDataRequest dataRequest) + { + var bundles = new List(); + var patientData = await FindPatientsData(dataRequest).ConfigureAwait(false); + var careContextReferences = patientData.Keys.ToList(); + foreach (var careContextReference in careContextReferences) + { + foreach (var result in patientData.GetOrDefault(careContextReference)) + { + Log.Information($"Returning file: {result}"); + var fjp = new FhirJsonParser(); + bundles.Add(new CareBundle(careContextReference, fjp.Parse(result))); + } + } + var entries = new Entries(bundles); + return Option.Some(entries); + } + + private async Task>> FindPatientsData(TraceableDataRequest request) + { + LogDataRequest(request); + + var patientReferenceNumber = request.CareContexts.First().PatientReference; + var careContexts = request.CareContexts.Select(careContext => careContext.CareContextReference).ToList(); + var dataResponse = await GetPatientsData(new NetworkDataRequest(patientReferenceNumber, + careContexts, + request.DateRange, + request.HiType)).ConfigureAwait(false); + var structuredData = new Dictionary>(); + return dataResponse.Map(content => + { + foreach (var result in content.Results) + { + if (structuredData.ContainsKey(result.CareContext)) + { + structuredData[result.CareContext].Add(result.FHIRData); + } + else + { + structuredData.Add(result.CareContext, new List {result.FHIRData}); + } + } + return structuredData; + }).ValueOr(structuredData); + } + + private async Task> GetPatientsData(NetworkDataRequest networkDataRequest) + { + try + { + var json = JsonConvert.SerializeObject(networkDataRequest, new JsonSerializerSettings + { + NullValueHandling = NullValueHandling.Ignore, + ContractResolver = new DefaultContractResolver + { + NamingStrategy = new CamelCaseNamingStrategy() + } + }); + var httpRequestMessage = new HttpRequestMessage(HttpMethod.Post, new Uri($"{DataFlowConfiguration.Url}")) + { + Content = new StringContent(json, Encoding.UTF8, MediaTypeNames.Application.Json) + }; + var response = await HttpClient.SendAsync(httpRequestMessage).ConfigureAwait(false); + if (!response.IsSuccessStatusCode) + { + return Option.None(); + } + var responseContent = response.Content; + using var reader = new StreamReader(await responseContent.ReadAsStreamAsync()); + var result = await reader.ReadToEndAsync().ConfigureAwait(false); + return Option.Some(JsonConvert.DeserializeObject(result)); + } + catch (Exception exception) + { + Log.Error(exception, exception.StackTrace); + return Option.None(); + } + } + + private static void LogDataRequest(TraceableDataRequest request) + { + var ccList = JsonConvert.SerializeObject(request.CareContexts); + var requestedHiTypes = string.Join(", ", request.HiType.Select(hiType => hiType.ToString())); + Log.Information("Data request received." + + $" transactionId:{request.TransactionId} , " + + $"CareContexts:{ccList}, " + + $"HiTypes:{requestedHiTypes}," + + $" From date:{request.DateRange.From}," + + $" To date:{request.DateRange.To}, " + + $"CallbackUrl:{request.DataPushUrl}"); + } + } +} \ No newline at end of file diff --git a/src/In.ProjectEKA.FHIRHip/DataFlow/Model/DataFlowConfiguration.cs b/src/In.ProjectEKA.FHIRHip/DataFlow/Model/DataFlowConfiguration.cs new file mode 100644 index 00000000..6810d9fc --- /dev/null +++ b/src/In.ProjectEKA.FHIRHip/DataFlow/Model/DataFlowConfiguration.cs @@ -0,0 +1,11 @@ +namespace In.ProjectEKA.FHIRHip.DataFlow.Model +{ + public class DataFlowConfiguration + { + public int DataSizeLimitInMbs { get; set; } + public int DataLinkTtlInMinutes { get; set; } + public string Url { get; set; } + public bool IsAuthEnabled { get; set; } + public string AuthUrl { get; set; } + } +} \ No newline at end of file diff --git a/src/In.ProjectEKA.FHIRHip/DataFlow/Model/NetworkData.cs b/src/In.ProjectEKA.FHIRHip/DataFlow/Model/NetworkData.cs new file mode 100644 index 00000000..1c75382b --- /dev/null +++ b/src/In.ProjectEKA.FHIRHip/DataFlow/Model/NetworkData.cs @@ -0,0 +1,18 @@ +namespace In.ProjectEKA.FHIRHip.DataFlow.Model +{ + using HipLibrary.Patient.Model; + + public class NetworkData + { + public string CareContext { get; set; } + public HiType HiType { get; set; } + public string FHIRData { get; set; } + + public NetworkData(string careContext, HiType hiType, string fhirData) + { + CareContext = careContext; + HiType = hiType; + FHIRData = fhirData; + } + } +} \ No newline at end of file diff --git a/src/In.ProjectEKA.FHIRHip/DataFlow/Model/NetworkDataRequest.cs b/src/In.ProjectEKA.FHIRHip/DataFlow/Model/NetworkDataRequest.cs new file mode 100644 index 00000000..5d9382e7 --- /dev/null +++ b/src/In.ProjectEKA.FHIRHip/DataFlow/Model/NetworkDataRequest.cs @@ -0,0 +1,21 @@ +namespace In.ProjectEKA.FHIRHip.DataFlow.Model +{ + using System.Collections.Generic; + using HipLibrary.Patient.Model; + + public class NetworkDataRequest + { + public string PatientReference { get; set; } + public IEnumerable CareContexts { get; set; } + public DateRange DataRange { get; set; } + public IEnumerable HiTypes { get; set; } + + public NetworkDataRequest(string patientReference, IEnumerable careContexts, DateRange dataRange, IEnumerable hiTypes) + { + PatientReference = patientReference; + CareContexts = careContexts; + DataRange = dataRange; + HiTypes = hiTypes; + } + } +} \ No newline at end of file diff --git a/src/In.ProjectEKA.FHIRHip/DataFlow/Model/NetworkDataResponse.cs b/src/In.ProjectEKA.FHIRHip/DataFlow/Model/NetworkDataResponse.cs new file mode 100644 index 00000000..87625481 --- /dev/null +++ b/src/In.ProjectEKA.FHIRHip/DataFlow/Model/NetworkDataResponse.cs @@ -0,0 +1,14 @@ +namespace In.ProjectEKA.FHIRHip.DataFlow.Model +{ + using System.Collections.Generic; + + public class NetworkDataResponse + { + public IEnumerable Results { get; set; } + + public NetworkDataResponse(IEnumerable results) + { + Results = results; + } + } +} \ No newline at end of file diff --git a/src/In.ProjectEKA.FHIRHip/Discovery/Model/PatientConfiguration.cs b/src/In.ProjectEKA.FHIRHip/Discovery/Model/PatientConfiguration.cs new file mode 100644 index 00000000..6bf92449 --- /dev/null +++ b/src/In.ProjectEKA.FHIRHip/Discovery/Model/PatientConfiguration.cs @@ -0,0 +1,9 @@ +namespace In.ProjectEKA.FHIRHip.Discovery.Model +{ + public class PatientConfiguration + { + public string BaseUrl { get; set; } + public string PathDiscovery { get; set; } + public string PathLink { get; set; } + } +} \ No newline at end of file diff --git a/src/In.ProjectEKA.FHIRHip/Discovery/Model/PatientResponse.cs b/src/In.ProjectEKA.FHIRHip/Discovery/Model/PatientResponse.cs new file mode 100644 index 00000000..b9770d2b --- /dev/null +++ b/src/In.ProjectEKA.FHIRHip/Discovery/Model/PatientResponse.cs @@ -0,0 +1,17 @@ +namespace In.ProjectEKA.FHIRHip.Discovery.Model +{ + using System.Collections.Generic; + using HipLibrary.Patient.Model; + + public class PatientResponse + { + public string PhoneNumber { get; set; } + public string Identifier { get; set; } + public string Email { get; set; } + public string Name { get; set; } + public string CaseReferenceNumber { get; set; } + public Gender Gender { get; set; } + public ushort YearOfBirth { get; set; } + public IEnumerable CareContexts { get; set; } + } +} \ No newline at end of file diff --git a/src/In.ProjectEKA.FHIRHip/Discovery/Model/PatientResponseResult.cs b/src/In.ProjectEKA.FHIRHip/Discovery/Model/PatientResponseResult.cs new file mode 100644 index 00000000..8b5f45e6 --- /dev/null +++ b/src/In.ProjectEKA.FHIRHip/Discovery/Model/PatientResponseResult.cs @@ -0,0 +1,10 @@ +namespace In.ProjectEKA.FHIRHip.Discovery.Model +{ + using System.Collections.Generic; + + public class PatientResponseResult + { + public IEnumerable Results { get; set; } + + } +} \ No newline at end of file diff --git a/src/In.ProjectEKA.FHIRHip/Discovery/PatientMatchingRepository.cs b/src/In.ProjectEKA.FHIRHip/Discovery/PatientMatchingRepository.cs new file mode 100644 index 00000000..d729508c --- /dev/null +++ b/src/In.ProjectEKA.FHIRHip/Discovery/PatientMatchingRepository.cs @@ -0,0 +1,64 @@ +namespace In.ProjectEKA.FHIRHip.Discovery +{ + using System; + using System.IO; + using System.Linq; + using System.Net.Http; + using System.Text; + using System.Threading.Tasks; + using HipLibrary.Matcher; + using HipLibrary.Patient.Model; + using Model; + using Newtonsoft.Json; + using Serilog; + + public class PatientMatchingRepository : IMatchingRepository + { + private readonly HttpClient client; + private readonly PatientConfiguration patientConfiguration; + + + public PatientMatchingRepository(HttpClient client, PatientConfiguration patientConfiguration) + { + this.client = client; + this.patientConfiguration = patientConfiguration; + } + + public async Task> Where(DiscoveryRequest predicate) + { + try + { + var request = new HttpRequestMessage(HttpMethod.Post, patientConfiguration.BaseUrl + patientConfiguration.PathDiscovery) + { + Content = new StringContent( + JsonConvert.SerializeObject(new + { + mobileNumber = predicate.Patient.VerifiedIdentifiers.First().Value + }), + Encoding.UTF8, + "application/json") + }; + var response = await client.SendAsync(request); + var responseContent = response.Content; + using var reader = new StreamReader(await responseContent.ReadAsStreamAsync()); + var result = await reader.ReadToEndAsync().ConfigureAwait(false); + var patientResponseResult = JsonConvert.DeserializeObject(result); + return patientResponseResult.Results.Select(patient => new Patient + { + Name = patient.Name, + Gender = patient.Gender, + Identifier = patient.Identifier, + CareContexts = patient.CareContexts, + PhoneNumber = patient.PhoneNumber, + YearOfBirth = patient.YearOfBirth + }).AsQueryable(); + + } + catch (Exception e) + { + Log.Error(e.Message); + return null; + } + } + } +} \ No newline at end of file diff --git a/src/In.ProjectEKA.DefaultHip/In.ProjectEKA.DefaultHip.csproj b/src/In.ProjectEKA.FHIRHip/In.ProjectEKA.FHIRHip.csproj similarity index 97% rename from src/In.ProjectEKA.DefaultHip/In.ProjectEKA.DefaultHip.csproj rename to src/In.ProjectEKA.FHIRHip/In.ProjectEKA.FHIRHip.csproj index 41fe1b77..513d3d11 100644 --- a/src/In.ProjectEKA.DefaultHip/In.ProjectEKA.DefaultHip.csproj +++ b/src/In.ProjectEKA.FHIRHip/In.ProjectEKA.FHIRHip.csproj @@ -2,6 +2,7 @@ netcoreapp3.1 + In.ProjectEKA.FHIRHip diff --git a/src/In.ProjectEKA.FHIRHip/Link/PatientRepository.cs b/src/In.ProjectEKA.FHIRHip/Link/PatientRepository.cs new file mode 100644 index 00000000..59f3045e --- /dev/null +++ b/src/In.ProjectEKA.FHIRHip/Link/PatientRepository.cs @@ -0,0 +1,66 @@ +namespace In.ProjectEKA.FHIRHip.Link +{ + using System; + using System.Collections.Generic; + using System.IO; + using System.Linq; + using System.Net.Http; + using System.Text; + using System.Threading.Tasks; + using Discovery.Model; + using HipLibrary.Patient; + using HipLibrary.Patient.Model; + using Newtonsoft.Json; + using Optional; + using Patient; + using Serilog; + + public class PatientRepository : IPatientRepository + { + private readonly HttpClient client; + private readonly PatientConfiguration patientConfiguration; + + public PatientRepository(HttpClient client, PatientConfiguration patientConfiguration) + { + this.client = client; + this.patientConfiguration = patientConfiguration; + } + + public async Task> PatientWith(string referenceNumber) + { + try + { + var request = new HttpRequestMessage(HttpMethod.Post, patientConfiguration.BaseUrl + patientConfiguration.PathLink) + { + Content = new StringContent( + JsonConvert.SerializeObject(new + { + identifier = referenceNumber + }), + Encoding.UTF8, + "application/json") + }; + var response = await client.SendAsync(request); + var responseContent = response.Content; + using var reader = new StreamReader(await responseContent.ReadAsStreamAsync()); + var result = await reader.ReadToEndAsync().ConfigureAwait(false); + var patientResponseResult = JsonConvert.DeserializeObject(result); + var patients = patientResponseResult.Results.Select(patient => new Patient + { + Name = patient.Name, + Gender = patient.Gender, + Identifier = patient.Identifier, + CareContexts = patient.CareContexts, + PhoneNumber = patient.PhoneNumber, + YearOfBirth = patient.YearOfBirth + }).AsQueryable(); + return Option.Some(patients.First()); + } + catch (Exception e) + { + Log.Error(e.Message); + return Option.None(); + } + } + } +} \ No newline at end of file diff --git a/src/In.ProjectEKA.DefaultHip/MAXNCC1543DischargeSummaryDoc20190409.json b/src/In.ProjectEKA.FHIRHip/MAXNCC1543DischargeSummaryDoc20190409.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/MAXNCC1543DischargeSummaryDoc20190409.json rename to src/In.ProjectEKA.FHIRHip/MAXNCC1543DischargeSummaryDoc20190409.json diff --git a/src/In.ProjectEKA.DefaultHip/MAXNCC1543DischargeSummaryDoc20190419.json b/src/In.ProjectEKA.FHIRHip/MAXNCC1543DischargeSummaryDoc20190419.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/MAXNCC1543DischargeSummaryDoc20190419.json rename to src/In.ProjectEKA.FHIRHip/MAXNCC1543DischargeSummaryDoc20190419.json diff --git a/src/In.ProjectEKA.DefaultHip/MAXRVH9999DiagnosticReportDoc20160801.json b/src/In.ProjectEKA.FHIRHip/MAXRVH9999DiagnosticReportDoc20160801.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/MAXRVH9999DiagnosticReportDoc20160801.json rename to src/In.ProjectEKA.FHIRHip/MAXRVH9999DiagnosticReportDoc20160801.json diff --git a/src/In.ProjectEKA.DefaultHip/MAXRVH9999DiagnosticReportDoc20160803.json b/src/In.ProjectEKA.FHIRHip/MAXRVH9999DiagnosticReportDoc20160803.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/MAXRVH9999DiagnosticReportDoc20160803.json rename to src/In.ProjectEKA.FHIRHip/MAXRVH9999DiagnosticReportDoc20160803.json diff --git a/src/In.ProjectEKA.DefaultHip/MAXRVH9999DischargeSummaryDoc20160801.json b/src/In.ProjectEKA.FHIRHip/MAXRVH9999DischargeSummaryDoc20160801.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/MAXRVH9999DischargeSummaryDoc20160801.json rename to src/In.ProjectEKA.FHIRHip/MAXRVH9999DischargeSummaryDoc20160801.json diff --git a/src/In.ProjectEKA.DefaultHip/MAXRVH9999DischargeSummaryDoc20160811.json b/src/In.ProjectEKA.FHIRHip/MAXRVH9999DischargeSummaryDoc20160811.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/MAXRVH9999DischargeSummaryDoc20160811.json rename to src/In.ProjectEKA.FHIRHip/MAXRVH9999DischargeSummaryDoc20160811.json diff --git a/src/In.ProjectEKA.DefaultHip/MAXRVH9999OPConsultationDoc20160801.json b/src/In.ProjectEKA.FHIRHip/MAXRVH9999OPConsultationDoc20160801.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/MAXRVH9999OPConsultationDoc20160801.json rename to src/In.ProjectEKA.FHIRHip/MAXRVH9999OPConsultationDoc20160801.json diff --git a/src/In.ProjectEKA.DefaultHip/MAXRVH9999OPConsultationDoc20160803.json b/src/In.ProjectEKA.FHIRHip/MAXRVH9999OPConsultationDoc20160803.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/MAXRVH9999OPConsultationDoc20160803.json rename to src/In.ProjectEKA.FHIRHip/MAXRVH9999OPConsultationDoc20160803.json diff --git a/src/In.ProjectEKA.DefaultHip/MAXRVH9999PrescriptionDoc20160801.json b/src/In.ProjectEKA.FHIRHip/MAXRVH9999PrescriptionDoc20160801.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/MAXRVH9999PrescriptionDoc20160801.json rename to src/In.ProjectEKA.FHIRHip/MAXRVH9999PrescriptionDoc20160801.json diff --git a/src/In.ProjectEKA.DefaultHip/MAXRVH9999PrescriptionDoc20160803.json b/src/In.ProjectEKA.FHIRHip/MAXRVH9999PrescriptionDoc20160803.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/MAXRVH9999PrescriptionDoc20160803.json rename to src/In.ProjectEKA.FHIRHip/MAXRVH9999PrescriptionDoc20160803.json diff --git a/src/In.ProjectEKA.DefaultHip/MAXRVH9999PrescriptionDoc20160805.json b/src/In.ProjectEKA.FHIRHip/MAXRVH9999PrescriptionDoc20160805.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/MAXRVH9999PrescriptionDoc20160805.json rename to src/In.ProjectEKA.FHIRHip/MAXRVH9999PrescriptionDoc20160805.json diff --git a/src/In.ProjectEKA.DefaultHip/MAXRVH9999PrescriptionDoc20160807.json b/src/In.ProjectEKA.FHIRHip/MAXRVH9999PrescriptionDoc20160807.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/MAXRVH9999PrescriptionDoc20160807.json rename to src/In.ProjectEKA.FHIRHip/MAXRVH9999PrescriptionDoc20160807.json diff --git a/src/In.ProjectEKA.DefaultHip/Patient/FileReader.cs b/src/In.ProjectEKA.FHIRHip/Patient/FileReader.cs similarity index 93% rename from src/In.ProjectEKA.DefaultHip/Patient/FileReader.cs rename to src/In.ProjectEKA.FHIRHip/Patient/FileReader.cs index 752e0186..2499bc24 100644 --- a/src/In.ProjectEKA.DefaultHip/Patient/FileReader.cs +++ b/src/In.ProjectEKA.FHIRHip/Patient/FileReader.cs @@ -1,4 +1,4 @@ -namespace In.ProjectEKA.DefaultHip.Patient +namespace In.ProjectEKA.FHIRHip.Patient { using System.Collections.Generic; using System.IO; diff --git a/src/In.ProjectEKA.DefaultHip/Resources/BI-KTH-12FirstVisitConditions.json b/src/In.ProjectEKA.FHIRHip/Resources/BI-KTH-12FirstVisitConditions.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/BI-KTH-12FirstVisitConditions.json rename to src/In.ProjectEKA.FHIRHip/Resources/BI-KTH-12FirstVisitConditions.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/MAXLIVNO09PrescriptionDoc20150801.json b/src/In.ProjectEKA.FHIRHip/Resources/MAXLIVNO09PrescriptionDoc20150801.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/MAXLIVNO09PrescriptionDoc20150801.json rename to src/In.ProjectEKA.FHIRHip/Resources/MAXLIVNO09PrescriptionDoc20150801.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/MAXLIVNO10DiagnosticReportDoc20190801.json b/src/In.ProjectEKA.FHIRHip/Resources/MAXLIVNO10DiagnosticReportDoc20190801.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/MAXLIVNO10DiagnosticReportDoc20190801.json rename to src/In.ProjectEKA.FHIRHip/Resources/MAXLIVNO10DiagnosticReportDoc20190801.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/MAXLIVNO10PrescriptionDoc20180801.json b/src/In.ProjectEKA.FHIRHip/Resources/MAXLIVNO10PrescriptionDoc20180801.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/MAXLIVNO10PrescriptionDoc20180801.json rename to src/In.ProjectEKA.FHIRHip/Resources/MAXLIVNO10PrescriptionDoc20180801.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/MAXLIVNO11OPConsultationDoc20180801.json b/src/In.ProjectEKA.FHIRHip/Resources/MAXLIVNO11OPConsultationDoc20180801.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/MAXLIVNO11OPConsultationDoc20180801.json rename to src/In.ProjectEKA.FHIRHip/Resources/MAXLIVNO11OPConsultationDoc20180801.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/MAXLIVNO11PrescriptionDoc20190801.json b/src/In.ProjectEKA.FHIRHip/Resources/MAXLIVNO11PrescriptionDoc20190801.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/MAXLIVNO11PrescriptionDoc20190801.json rename to src/In.ProjectEKA.FHIRHip/Resources/MAXLIVNO11PrescriptionDoc20190801.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/MAXLIVNO14PrescriptionDoc20110801.json b/src/In.ProjectEKA.FHIRHip/Resources/MAXLIVNO14PrescriptionDoc20110801.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/MAXLIVNO14PrescriptionDoc20110801.json rename to src/In.ProjectEKA.FHIRHip/Resources/MAXLIVNO14PrescriptionDoc20110801.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/MAXLIVNO15DiagnosticReportDoc20140122.json b/src/In.ProjectEKA.FHIRHip/Resources/MAXLIVNO15DiagnosticReportDoc20140122.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/MAXLIVNO15DiagnosticReportDoc20140122.json rename to src/In.ProjectEKA.FHIRHip/Resources/MAXLIVNO15DiagnosticReportDoc20140122.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/MAXLIVNO15DiagnosticReportDoc20140201.json b/src/In.ProjectEKA.FHIRHip/Resources/MAXLIVNO15DiagnosticReportDoc20140201.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/MAXLIVNO15DiagnosticReportDoc20140201.json rename to src/In.ProjectEKA.FHIRHip/Resources/MAXLIVNO15DiagnosticReportDoc20140201.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/MAXLIVNO15DiagnosticReportDoc20161211.json b/src/In.ProjectEKA.FHIRHip/Resources/MAXLIVNO15DiagnosticReportDoc20161211.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/MAXLIVNO15DiagnosticReportDoc20161211.json rename to src/In.ProjectEKA.FHIRHip/Resources/MAXLIVNO15DiagnosticReportDoc20161211.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/MAXLIVNO15DischargeSummaryDoc20140122.json b/src/In.ProjectEKA.FHIRHip/Resources/MAXLIVNO15DischargeSummaryDoc20140122.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/MAXLIVNO15DischargeSummaryDoc20140122.json rename to src/In.ProjectEKA.FHIRHip/Resources/MAXLIVNO15DischargeSummaryDoc20140122.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/MAXLIVNO15DischargeSummaryDoc20140201.json b/src/In.ProjectEKA.FHIRHip/Resources/MAXLIVNO15DischargeSummaryDoc20140201.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/MAXLIVNO15DischargeSummaryDoc20140201.json rename to src/In.ProjectEKA.FHIRHip/Resources/MAXLIVNO15DischargeSummaryDoc20140201.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/MAXLIVNO15DischargeSummaryDoc20161209.json b/src/In.ProjectEKA.FHIRHip/Resources/MAXLIVNO15DischargeSummaryDoc20161209.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/MAXLIVNO15DischargeSummaryDoc20161209.json rename to src/In.ProjectEKA.FHIRHip/Resources/MAXLIVNO15DischargeSummaryDoc20161209.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/MAXLIVNO15OPConsultationDoc20140122.json b/src/In.ProjectEKA.FHIRHip/Resources/MAXLIVNO15OPConsultationDoc20140122.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/MAXLIVNO15OPConsultationDoc20140122.json rename to src/In.ProjectEKA.FHIRHip/Resources/MAXLIVNO15OPConsultationDoc20140122.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/MAXLIVNO15OPConsultationDoc20161209.json b/src/In.ProjectEKA.FHIRHip/Resources/MAXLIVNO15OPConsultationDoc20161209.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/MAXLIVNO15OPConsultationDoc20161209.json rename to src/In.ProjectEKA.FHIRHip/Resources/MAXLIVNO15OPConsultationDoc20161209.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/MAXLIVNO15OPConsultationDoc20161211.json b/src/In.ProjectEKA.FHIRHip/Resources/MAXLIVNO15OPConsultationDoc20161211.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/MAXLIVNO15OPConsultationDoc20161211.json rename to src/In.ProjectEKA.FHIRHip/Resources/MAXLIVNO15OPConsultationDoc20161211.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/MAXLIVNO15PrescriptionDoc20140122.json b/src/In.ProjectEKA.FHIRHip/Resources/MAXLIVNO15PrescriptionDoc20140122.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/MAXLIVNO15PrescriptionDoc20140122.json rename to src/In.ProjectEKA.FHIRHip/Resources/MAXLIVNO15PrescriptionDoc20140122.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/MAXLIVNO15PrescriptionDoc20161209.json b/src/In.ProjectEKA.FHIRHip/Resources/MAXLIVNO15PrescriptionDoc20161209.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/MAXLIVNO15PrescriptionDoc20161209.json rename to src/In.ProjectEKA.FHIRHip/Resources/MAXLIVNO15PrescriptionDoc20161209.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/MAXLIVNO15PrescriptionDoc20161211.json b/src/In.ProjectEKA.FHIRHip/Resources/MAXLIVNO15PrescriptionDoc20161211.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/MAXLIVNO15PrescriptionDoc20161211.json rename to src/In.ProjectEKA.FHIRHip/Resources/MAXLIVNO15PrescriptionDoc20161211.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/MAXNCC1543DischargeSummaryDoc20190409.json b/src/In.ProjectEKA.FHIRHip/Resources/MAXNCC1543DischargeSummaryDoc20190409.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/MAXNCC1543DischargeSummaryDoc20190409.json rename to src/In.ProjectEKA.FHIRHip/Resources/MAXNCC1543DischargeSummaryDoc20190409.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/MAXNCC1543DischargeSummaryDoc20190419.json b/src/In.ProjectEKA.FHIRHip/Resources/MAXNCC1543DischargeSummaryDoc20190419.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/MAXNCC1543DischargeSummaryDoc20190419.json rename to src/In.ProjectEKA.FHIRHip/Resources/MAXNCC1543DischargeSummaryDoc20190419.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/MAXNCC1702PrescriptionDoc20180801.json b/src/In.ProjectEKA.FHIRHip/Resources/MAXNCC1702PrescriptionDoc20180801.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/MAXNCC1702PrescriptionDoc20180801.json rename to src/In.ProjectEKA.FHIRHip/Resources/MAXNCC1702PrescriptionDoc20180801.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/MAXNCC1702PrescriptionDoc20180803.json b/src/In.ProjectEKA.FHIRHip/Resources/MAXNCC1702PrescriptionDoc20180803.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/MAXNCC1702PrescriptionDoc20180803.json rename to src/In.ProjectEKA.FHIRHip/Resources/MAXNCC1702PrescriptionDoc20180803.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/MAXNCC1702PrescriptionDoc20180805.json b/src/In.ProjectEKA.FHIRHip/Resources/MAXNCC1702PrescriptionDoc20180805.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/MAXNCC1702PrescriptionDoc20180805.json rename to src/In.ProjectEKA.FHIRHip/Resources/MAXNCC1702PrescriptionDoc20180805.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/MAXNCP1702DiagnosticReportDoc20190101.json b/src/In.ProjectEKA.FHIRHip/Resources/MAXNCP1702DiagnosticReportDoc20190101.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/MAXNCP1702DiagnosticReportDoc20190101.json rename to src/In.ProjectEKA.FHIRHip/Resources/MAXNCP1702DiagnosticReportDoc20190101.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/MAXNCP1702DiagnosticReportDoc20190103.json b/src/In.ProjectEKA.FHIRHip/Resources/MAXNCP1702DiagnosticReportDoc20190103.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/MAXNCP1702DiagnosticReportDoc20190103.json rename to src/In.ProjectEKA.FHIRHip/Resources/MAXNCP1702DiagnosticReportDoc20190103.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/MAXRVH9999DiagnosticReportDoc20160801.json b/src/In.ProjectEKA.FHIRHip/Resources/MAXRVH9999DiagnosticReportDoc20160801.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/MAXRVH9999DiagnosticReportDoc20160801.json rename to src/In.ProjectEKA.FHIRHip/Resources/MAXRVH9999DiagnosticReportDoc20160801.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/MAXRVH9999DiagnosticReportDoc20160803.json b/src/In.ProjectEKA.FHIRHip/Resources/MAXRVH9999DiagnosticReportDoc20160803.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/MAXRVH9999DiagnosticReportDoc20160803.json rename to src/In.ProjectEKA.FHIRHip/Resources/MAXRVH9999DiagnosticReportDoc20160803.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/MAXRVH9999DischargeSummaryDoc20160801.json b/src/In.ProjectEKA.FHIRHip/Resources/MAXRVH9999DischargeSummaryDoc20160801.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/MAXRVH9999DischargeSummaryDoc20160801.json rename to src/In.ProjectEKA.FHIRHip/Resources/MAXRVH9999DischargeSummaryDoc20160801.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/MAXRVH9999DischargeSummaryDoc20160811.json b/src/In.ProjectEKA.FHIRHip/Resources/MAXRVH9999DischargeSummaryDoc20160811.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/MAXRVH9999DischargeSummaryDoc20160811.json rename to src/In.ProjectEKA.FHIRHip/Resources/MAXRVH9999DischargeSummaryDoc20160811.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/MAXRVH9999OPConsultationDoc20160801.json b/src/In.ProjectEKA.FHIRHip/Resources/MAXRVH9999OPConsultationDoc20160801.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/MAXRVH9999OPConsultationDoc20160801.json rename to src/In.ProjectEKA.FHIRHip/Resources/MAXRVH9999OPConsultationDoc20160801.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/MAXRVH9999OPConsultationDoc20160803.json b/src/In.ProjectEKA.FHIRHip/Resources/MAXRVH9999OPConsultationDoc20160803.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/MAXRVH9999OPConsultationDoc20160803.json rename to src/In.ProjectEKA.FHIRHip/Resources/MAXRVH9999OPConsultationDoc20160803.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/MAXRVH9999PrescriptionDoc20160801.json b/src/In.ProjectEKA.FHIRHip/Resources/MAXRVH9999PrescriptionDoc20160801.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/MAXRVH9999PrescriptionDoc20160801.json rename to src/In.ProjectEKA.FHIRHip/Resources/MAXRVH9999PrescriptionDoc20160801.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/MAXRVH9999PrescriptionDoc20160803.json b/src/In.ProjectEKA.FHIRHip/Resources/MAXRVH9999PrescriptionDoc20160803.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/MAXRVH9999PrescriptionDoc20160803.json rename to src/In.ProjectEKA.FHIRHip/Resources/MAXRVH9999PrescriptionDoc20160803.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/MAXRVH9999PrescriptionDoc20160805.json b/src/In.ProjectEKA.FHIRHip/Resources/MAXRVH9999PrescriptionDoc20160805.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/MAXRVH9999PrescriptionDoc20160805.json rename to src/In.ProjectEKA.FHIRHip/Resources/MAXRVH9999PrescriptionDoc20160805.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/MAXRVH9999PrescriptionDoc20160807.json b/src/In.ProjectEKA.FHIRHip/Resources/MAXRVH9999PrescriptionDoc20160807.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/MAXRVH9999PrescriptionDoc20160807.json rename to src/In.ProjectEKA.FHIRHip/Resources/MAXRVH9999PrescriptionDoc20160807.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/NCP1006DiagnosticReportWithRadiologyImageInline.json b/src/In.ProjectEKA.FHIRHip/Resources/NCP1006DiagnosticReportWithRadiologyImageInline.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/NCP1006DiagnosticReportWithRadiologyImageInline.json rename to src/In.ProjectEKA.FHIRHip/Resources/NCP1006DiagnosticReportWithRadiologyImageInline.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/NCP1006FirstVisitDiagnosticReports.json b/src/In.ProjectEKA.FHIRHip/Resources/NCP1006FirstVisitDiagnosticReports.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/NCP1006FirstVisitDiagnosticReports.json rename to src/In.ProjectEKA.FHIRHip/Resources/NCP1006FirstVisitDiagnosticReports.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/NCP1006SecondVisitDiagnosticRepots.json b/src/In.ProjectEKA.FHIRHip/Resources/NCP1006SecondVisitDiagnosticRepots.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/NCP1006SecondVisitDiagnosticRepots.json rename to src/In.ProjectEKA.FHIRHip/Resources/NCP1006SecondVisitDiagnosticRepots.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/NCP1006ThirdVisitImagingStudy.json b/src/In.ProjectEKA.FHIRHip/Resources/NCP1006ThirdVisitImagingStudy.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/NCP1006ThirdVisitImagingStudy.json rename to src/In.ProjectEKA.FHIRHip/Resources/NCP1006ThirdVisitImagingStudy.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/NCP1007DiagnosticReportDocument.json b/src/In.ProjectEKA.FHIRHip/Resources/NCP1007DiagnosticReportDocument.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/NCP1007DiagnosticReportDocument.json rename to src/In.ProjectEKA.FHIRHip/Resources/NCP1007DiagnosticReportDocument.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/NCP1007DiagnosticReportDocument1.json b/src/In.ProjectEKA.FHIRHip/Resources/NCP1007DiagnosticReportDocument1.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/NCP1007DiagnosticReportDocument1.json rename to src/In.ProjectEKA.FHIRHip/Resources/NCP1007DiagnosticReportDocument1.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/NCP1007DischargeSummary1.json b/src/In.ProjectEKA.FHIRHip/Resources/NCP1007DischargeSummary1.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/NCP1007DischargeSummary1.json rename to src/In.ProjectEKA.FHIRHip/Resources/NCP1007DischargeSummary1.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/NCP1007DischargeSummary2.json b/src/In.ProjectEKA.FHIRHip/Resources/NCP1007DischargeSummary2.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/NCP1007DischargeSummary2.json rename to src/In.ProjectEKA.FHIRHip/Resources/NCP1007DischargeSummary2.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/NCP1007PrescriptionDocument1.json b/src/In.ProjectEKA.FHIRHip/Resources/NCP1007PrescriptionDocument1.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/NCP1007PrescriptionDocument1.json rename to src/In.ProjectEKA.FHIRHip/Resources/NCP1007PrescriptionDocument1.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/NCP1007PrescriptionDocument2.json b/src/In.ProjectEKA.FHIRHip/Resources/NCP1007PrescriptionDocument2.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/NCP1007PrescriptionDocument2.json rename to src/In.ProjectEKA.FHIRHip/Resources/NCP1007PrescriptionDocument2.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/NCP1007PrescriptionDocument3.json b/src/In.ProjectEKA.FHIRHip/Resources/NCP1007PrescriptionDocument3.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/NCP1007PrescriptionDocument3.json rename to src/In.ProjectEKA.FHIRHip/Resources/NCP1007PrescriptionDocument3.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/NCP1008ClinicalDocumentComposition.json b/src/In.ProjectEKA.FHIRHip/Resources/NCP1008ClinicalDocumentComposition.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/NCP1008ClinicalDocumentComposition.json rename to src/In.ProjectEKA.FHIRHip/Resources/NCP1008ClinicalDocumentComposition.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/NCP1008DiagnosticReportDoc20191001.json b/src/In.ProjectEKA.FHIRHip/Resources/NCP1008DiagnosticReportDoc20191001.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/NCP1008DiagnosticReportDoc20191001.json rename to src/In.ProjectEKA.FHIRHip/Resources/NCP1008DiagnosticReportDoc20191001.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/NCP1008DiagnosticReportDoc20191003.json b/src/In.ProjectEKA.FHIRHip/Resources/NCP1008DiagnosticReportDoc20191003.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/NCP1008DiagnosticReportDoc20191003.json rename to src/In.ProjectEKA.FHIRHip/Resources/NCP1008DiagnosticReportDoc20191003.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/NCP1008DiagnosticReportDoc20191005.json b/src/In.ProjectEKA.FHIRHip/Resources/NCP1008DiagnosticReportDoc20191005.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/NCP1008DiagnosticReportDoc20191005.json rename to src/In.ProjectEKA.FHIRHip/Resources/NCP1008DiagnosticReportDoc20191005.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/NCP1008DiagnosticReportWithRadiologyImageInline.json b/src/In.ProjectEKA.FHIRHip/Resources/NCP1008DiagnosticReportWithRadiologyImageInline.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/NCP1008DiagnosticReportWithRadiologyImageInline.json rename to src/In.ProjectEKA.FHIRHip/Resources/NCP1008DiagnosticReportWithRadiologyImageInline.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/NCP1008FifthVisitPrescription.json b/src/In.ProjectEKA.FHIRHip/Resources/NCP1008FifthVisitPrescription.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/NCP1008FifthVisitPrescription.json rename to src/In.ProjectEKA.FHIRHip/Resources/NCP1008FifthVisitPrescription.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/NCP1008FirstVisitCondition.json b/src/In.ProjectEKA.FHIRHip/Resources/NCP1008FirstVisitCondition.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/NCP1008FirstVisitCondition.json rename to src/In.ProjectEKA.FHIRHip/Resources/NCP1008FirstVisitCondition.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/NCP1008FirstVisitDiagnosticReport.json b/src/In.ProjectEKA.FHIRHip/Resources/NCP1008FirstVisitDiagnosticReport.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/NCP1008FirstVisitDiagnosticReport.json rename to src/In.ProjectEKA.FHIRHip/Resources/NCP1008FirstVisitDiagnosticReport.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/NCP1008FirstVisitObservations.json b/src/In.ProjectEKA.FHIRHip/Resources/NCP1008FirstVisitObservations.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/NCP1008FirstVisitObservations.json rename to src/In.ProjectEKA.FHIRHip/Resources/NCP1008FirstVisitObservations.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/NCP1008FourthVisitDocumentReference.json b/src/In.ProjectEKA.FHIRHip/Resources/NCP1008FourthVisitDocumentReference.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/NCP1008FourthVisitDocumentReference.json rename to src/In.ProjectEKA.FHIRHip/Resources/NCP1008FourthVisitDocumentReference.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/NCP1008NRCOPConsultationNote.json b/src/In.ProjectEKA.FHIRHip/Resources/NCP1008NRCOPConsultationNote.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/NCP1008NRCOPConsultationNote.json rename to src/In.ProjectEKA.FHIRHip/Resources/NCP1008NRCOPConsultationNote.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/NCP1008PrescriptionDoc20190801.json b/src/In.ProjectEKA.FHIRHip/Resources/NCP1008PrescriptionDoc20190801.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/NCP1008PrescriptionDoc20190801.json rename to src/In.ProjectEKA.FHIRHip/Resources/NCP1008PrescriptionDoc20190801.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/NCP1008PrescriptionDoc20190803.json b/src/In.ProjectEKA.FHIRHip/Resources/NCP1008PrescriptionDoc20190803.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/NCP1008PrescriptionDoc20190803.json rename to src/In.ProjectEKA.FHIRHip/Resources/NCP1008PrescriptionDoc20190803.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/NCP1008PrescriptionDoc20190805.json b/src/In.ProjectEKA.FHIRHip/Resources/NCP1008PrescriptionDoc20190805.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/NCP1008PrescriptionDoc20190805.json rename to src/In.ProjectEKA.FHIRHip/Resources/NCP1008PrescriptionDoc20190805.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/NCP1008SecondVisitDiagnosticReport.json b/src/In.ProjectEKA.FHIRHip/Resources/NCP1008SecondVisitDiagnosticReport.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/NCP1008SecondVisitDiagnosticReport.json rename to src/In.ProjectEKA.FHIRHip/Resources/NCP1008SecondVisitDiagnosticReport.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/NCP1008SecondVisitMedications.json b/src/In.ProjectEKA.FHIRHip/Resources/NCP1008SecondVisitMedications.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/NCP1008SecondVisitMedications.json rename to src/In.ProjectEKA.FHIRHip/Resources/NCP1008SecondVisitMedications.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/NCP1008SecondVisitObsWithMembers.json b/src/In.ProjectEKA.FHIRHip/Resources/NCP1008SecondVisitObsWithMembers.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/NCP1008SecondVisitObsWithMembers.json rename to src/In.ProjectEKA.FHIRHip/Resources/NCP1008SecondVisitObsWithMembers.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/NCP1008ThirdVisitDischargeSummary.json b/src/In.ProjectEKA.FHIRHip/Resources/NCP1008ThirdVisitDischargeSummary.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/NCP1008ThirdVisitDischargeSummary.json rename to src/In.ProjectEKA.FHIRHip/Resources/NCP1008ThirdVisitDischargeSummary.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/NCP1008WEBEMROPConsultationNote.json b/src/In.ProjectEKA.FHIRHip/Resources/NCP1008WEBEMROPConsultationNote.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/NCP1008WEBEMROPConsultationNote.json rename to src/In.ProjectEKA.FHIRHip/Resources/NCP1008WEBEMROPConsultationNote.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/NCP1702DischargeSummary20190203.json b/src/In.ProjectEKA.FHIRHip/Resources/NCP1702DischargeSummary20190203.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/NCP1702DischargeSummary20190203.json rename to src/In.ProjectEKA.FHIRHip/Resources/NCP1702DischargeSummary20190203.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/NCP1702DischargeSummary20191003.json b/src/In.ProjectEKA.FHIRHip/Resources/NCP1702DischargeSummary20191003.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/NCP1702DischargeSummary20191003.json rename to src/In.ProjectEKA.FHIRHip/Resources/NCP1702DischargeSummary20191003.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/NCP1702OPConsultationNote20200709.json b/src/In.ProjectEKA.FHIRHip/Resources/NCP1702OPConsultationNote20200709.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/NCP1702OPConsultationNote20200709.json rename to src/In.ProjectEKA.FHIRHip/Resources/NCP1702OPConsultationNote20200709.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/NCP1702OPConsultationNote20200710.json b/src/In.ProjectEKA.FHIRHip/Resources/NCP1702OPConsultationNote20200710.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/NCP1702OPConsultationNote20200710.json rename to src/In.ProjectEKA.FHIRHip/Resources/NCP1702OPConsultationNote20200710.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/RVMHD01PrescriptionDoc06012019.json b/src/In.ProjectEKA.FHIRHip/Resources/RVMHD01PrescriptionDoc06012019.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/RVMHD01PrescriptionDoc06012019.json rename to src/In.ProjectEKA.FHIRHip/Resources/RVMHD01PrescriptionDoc06012019.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/RVMHD01PrescriptionDoc06032019.json b/src/In.ProjectEKA.FHIRHip/Resources/RVMHD01PrescriptionDoc06032019.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/RVMHD01PrescriptionDoc06032019.json rename to src/In.ProjectEKA.FHIRHip/Resources/RVMHD01PrescriptionDoc06032019.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/RVMHD01PrescriptionDoc06052019.json b/src/In.ProjectEKA.FHIRHip/Resources/RVMHD01PrescriptionDoc06052019.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/RVMHD01PrescriptionDoc06052019.json rename to src/In.ProjectEKA.FHIRHip/Resources/RVMHD01PrescriptionDoc06052019.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/RVMHD01PrescriptionDoc06072019.json b/src/In.ProjectEKA.FHIRHip/Resources/RVMHD01PrescriptionDoc06072019.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/RVMHD01PrescriptionDoc06072019.json rename to src/In.ProjectEKA.FHIRHip/Resources/RVMHD01PrescriptionDoc06072019.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/RVMHD01PrescriptionDoc06092019.json b/src/In.ProjectEKA.FHIRHip/Resources/RVMHD01PrescriptionDoc06092019.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/RVMHD01PrescriptionDoc06092019.json rename to src/In.ProjectEKA.FHIRHip/Resources/RVMHD01PrescriptionDoc06092019.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/RVMHD01PrescriptionDoc08012019.json b/src/In.ProjectEKA.FHIRHip/Resources/RVMHD01PrescriptionDoc08012019.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/RVMHD01PrescriptionDoc08012019.json rename to src/In.ProjectEKA.FHIRHip/Resources/RVMHD01PrescriptionDoc08012019.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/RVMHD01PrescriptionDocument1.json b/src/In.ProjectEKA.FHIRHip/Resources/RVMHD01PrescriptionDocument1.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/RVMHD01PrescriptionDocument1.json rename to src/In.ProjectEKA.FHIRHip/Resources/RVMHD01PrescriptionDocument1.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/RVMHD01PrescriptionDocument2.json b/src/In.ProjectEKA.FHIRHip/Resources/RVMHD01PrescriptionDocument2.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/RVMHD01PrescriptionDocument2.json rename to src/In.ProjectEKA.FHIRHip/Resources/RVMHD01PrescriptionDocument2.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/RVMHD01PrescriptionDocument3.json b/src/In.ProjectEKA.FHIRHip/Resources/RVMHD01PrescriptionDocument3.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/RVMHD01PrescriptionDocument3.json rename to src/In.ProjectEKA.FHIRHip/Resources/RVMHD01PrescriptionDocument3.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/RVMHD01PrescriptionDocument4.json b/src/In.ProjectEKA.FHIRHip/Resources/RVMHD01PrescriptionDocument4.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/RVMHD01PrescriptionDocument4.json rename to src/In.ProjectEKA.FHIRHip/Resources/RVMHD01PrescriptionDocument4.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/SC1701FirstVisitDiagnosticReport.json b/src/In.ProjectEKA.FHIRHip/Resources/SC1701FirstVisitDiagnosticReport.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/SC1701FirstVisitDiagnosticReport.json rename to src/In.ProjectEKA.FHIRHip/Resources/SC1701FirstVisitDiagnosticReport.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/ShriyaTMHFirstVisitConditionAndObs.json b/src/In.ProjectEKA.FHIRHip/Resources/ShriyaTMHFirstVisitConditionAndObs.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/ShriyaTMHFirstVisitConditionAndObs.json rename to src/In.ProjectEKA.FHIRHip/Resources/ShriyaTMHFirstVisitConditionAndObs.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/ShriyaTMHFirstVisitDiagnosticReport.json b/src/In.ProjectEKA.FHIRHip/Resources/ShriyaTMHFirstVisitDiagnosticReport.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/ShriyaTMHFirstVisitDiagnosticReport.json rename to src/In.ProjectEKA.FHIRHip/Resources/ShriyaTMHFirstVisitDiagnosticReport.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/ShriyaTMHThirdVisitDiagnosticReports.json b/src/In.ProjectEKA.FHIRHip/Resources/ShriyaTMHThirdVisitDiagnosticReports.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/ShriyaTMHThirdVisitDiagnosticReports.json rename to src/In.ProjectEKA.FHIRHip/Resources/ShriyaTMHThirdVisitDiagnosticReports.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/ShriyaTMHThirdVisitMedication.json b/src/In.ProjectEKA.FHIRHip/Resources/ShriyaTMHThirdVisitMedication.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/ShriyaTMHThirdVisitMedication.json rename to src/In.ProjectEKA.FHIRHip/Resources/ShriyaTMHThirdVisitMedication.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/ShriyaTMHThirdVisitObsWithRef.json b/src/In.ProjectEKA.FHIRHip/Resources/ShriyaTMHThirdVisitObsWithRef.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/ShriyaTMHThirdVisitObsWithRef.json rename to src/In.ProjectEKA.FHIRHip/Resources/ShriyaTMHThirdVisitObsWithRef.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/bundleTemplate.json b/src/In.ProjectEKA.FHIRHip/Resources/bundleTemplate.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/bundleTemplate.json rename to src/In.ProjectEKA.FHIRHip/Resources/bundleTemplate.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/demoPatientCareContextDataMap.json b/src/In.ProjectEKA.FHIRHip/Resources/demoPatientCareContextDataMap.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/demoPatientCareContextDataMap.json rename to src/In.ProjectEKA.FHIRHip/Resources/demoPatientCareContextDataMap.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/demoPatients.json b/src/In.ProjectEKA.FHIRHip/Resources/demoPatients.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/demoPatients.json rename to src/In.ProjectEKA.FHIRHip/Resources/demoPatients.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/diagnosticReport.json b/src/In.ProjectEKA.FHIRHip/Resources/diagnosticReport.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/diagnosticReport.json rename to src/In.ProjectEKA.FHIRHip/Resources/diagnosticReport.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/dignosticReportWithMediaDicomFileAsUrl.json b/src/In.ProjectEKA.FHIRHip/Resources/dignosticReportWithMediaDicomFileAsUrl.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/dignosticReportWithMediaDicomFileAsUrl.json rename to src/In.ProjectEKA.FHIRHip/Resources/dignosticReportWithMediaDicomFileAsUrl.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/dignosticReportWithPresentedFormPdfFileAsUrl.json b/src/In.ProjectEKA.FHIRHip/Resources/dignosticReportWithPresentedFormPdfFileAsUrl.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/dignosticReportWithPresentedFormPdfFileAsUrl.json rename to src/In.ProjectEKA.FHIRHip/Resources/dignosticReportWithPresentedFormPdfFileAsUrl.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/observation.json b/src/In.ProjectEKA.FHIRHip/Resources/observation.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/observation.json rename to src/In.ProjectEKA.FHIRHip/Resources/observation.json diff --git a/src/In.ProjectEKA.DefaultHip/Resources/patients.json b/src/In.ProjectEKA.FHIRHip/Resources/patients.json similarity index 100% rename from src/In.ProjectEKA.DefaultHip/Resources/patients.json rename to src/In.ProjectEKA.FHIRHip/Resources/patients.json diff --git a/src/In.ProjectEKA.HipLibrary/Patient/IPatientRepository.cs b/src/In.ProjectEKA.HipLibrary/Patient/IPatientRepository.cs index 86b50d3d..b64e9334 100644 --- a/src/In.ProjectEKA.HipLibrary/Patient/IPatientRepository.cs +++ b/src/In.ProjectEKA.HipLibrary/Patient/IPatientRepository.cs @@ -1,10 +1,11 @@ namespace In.ProjectEKA.HipLibrary.Patient { + using System.Threading.Tasks; using Model; using Optional; public interface IPatientRepository { - Option PatientWith(string referenceNumber); + Task> PatientWith(string referenceNumber); } } \ No newline at end of file diff --git a/src/In.ProjectEKA.HipService/DataFlow/DataFlowConfiguration.cs b/src/In.ProjectEKA.HipService/DataFlow/DataFlowConfiguration.cs index 9774dc3a..f2cc50c3 100644 --- a/src/In.ProjectEKA.HipService/DataFlow/DataFlowConfiguration.cs +++ b/src/In.ProjectEKA.HipService/DataFlow/DataFlowConfiguration.cs @@ -4,5 +4,8 @@ public class DataFlowConfiguration { public int DataSizeLimitInMbs { get; set; } public int DataLinkTtlInMinutes { get; set; } + public string Url { get; set; } + public bool IsAuthEnabled { get; set; } + public string AuthUrl { get; set; } } } \ No newline at end of file diff --git a/src/In.ProjectEKA.HipService/Discovery/PatientDiscovery.cs b/src/In.ProjectEKA.HipService/Discovery/PatientDiscovery.cs index d1683d91..c025669f 100644 --- a/src/In.ProjectEKA.HipService/Discovery/PatientDiscovery.cs +++ b/src/In.ProjectEKA.HipService/Discovery/PatientDiscovery.cs @@ -62,8 +62,9 @@ public virtual async Task + var patientInfo = + await patientRepository.PatientWith(linkedCareContexts.First().PatientReferenceNumber); + return await patientInfo.Map(async patient => { await discoveryRequestRepository.Add(new Model.DiscoveryRequest(request.TransactionId, request.Patient.Id, diff --git a/src/In.ProjectEKA.HipService/In.ProjectEKA.HipService.csproj b/src/In.ProjectEKA.HipService/In.ProjectEKA.HipService.csproj index 74ffeb4f..ef414420 100644 --- a/src/In.ProjectEKA.HipService/In.ProjectEKA.HipService.csproj +++ b/src/In.ProjectEKA.HipService/In.ProjectEKA.HipService.csproj @@ -40,7 +40,7 @@ - + diff --git a/src/In.ProjectEKA.HipService/Link/LinkPatient.cs b/src/In.ProjectEKA.HipService/Link/LinkPatient.cs index b5d0dc31..78cc78fd 100644 --- a/src/In.ProjectEKA.HipService/Link/LinkPatient.cs +++ b/src/In.ProjectEKA.HipService/Link/LinkPatient.cs @@ -40,7 +40,7 @@ public LinkPatient( public virtual async Task> LinkPatients( PatientLinkEnquiry request) { - var (patient, error) = PatientAndCareContextValidation(request); + var (patient, error) = await PatientAndCareContextValidation(request).ConfigureAwait(false); if (error != null) { Log.Error(error.Error.Message); @@ -95,11 +95,13 @@ await discoveryRequestRepository.Delete(request.TransactionId, request.Patient.C return (patientLinkReferenceResponse, null); } - private ValueTuple PatientAndCareContextValidation( + + private async Task> PatientAndCareContextValidation( PatientLinkEnquiry request) { - return patientRepository.PatientWith(request.Patient.ReferenceNumber) - .Map( + var patientInfo = + await patientRepository.PatientWith(request.Patient.ReferenceNumber).ConfigureAwait(false); + return patientInfo.Map( patient => { var programs = request.Patient.CareContexts @@ -133,9 +135,9 @@ public virtual async Task + var patientInfo = + await patientRepository.PatientWith(linkEnquires.PatientReferenceNumber).ConfigureAwait(false); + return await patientInfo.Map(async patient => { var savedLinkRequests = await linkPatientRepository.Get(request.LinkReferenceNumber); savedLinkRequests.MatchSome(linkRequests => diff --git a/src/In.ProjectEKA.HipService/Startup.cs b/src/In.ProjectEKA.HipService/Startup.cs index 3017a5cb..ff402ce6 100644 --- a/src/In.ProjectEKA.HipService/Startup.cs +++ b/src/In.ProjectEKA.HipService/Startup.cs @@ -13,11 +13,11 @@ namespace In.ProjectEKA.HipService using DataFlow; using DataFlow.Database; using DataFlow.Encryptor; - using DefaultHip.DataFlow; - using DefaultHip.Discovery; - using DefaultHip.Link; using Discovery; using Discovery.Database; + using FHIRHip.DataFlow; + using FHIRHip.Discovery; + using FHIRHip.Link; using Gateway; using Hangfire; using Hangfire.MemoryStorage; @@ -80,15 +80,15 @@ public void ConfigureServices(IServiceCollection services) x => x.MigrationsAssembly("In.ProjectEKA.HipService"))) .AddHangfire(config => { config.UseMemoryStorage(); }) .AddSingleton() - .AddSingleton(new PatientRepository("demoPatients.json")) - .AddSingleton(new Collect("demoPatientCareContextDataMap.json")) - .AddSingleton(new PatientRepository("demoPatients.json")) + .AddSingleton(new PatientRepository(HttpClient, Configuration.GetSection("patientConfig").Get())) + .AddSingleton(new Collect(Configuration.GetSection("dataFlow").Get(), HttpClient)) + .AddSingleton(new PatientRepository(HttpClient, Configuration.GetSection("patientConfig").Get())) .AddRabbit(Configuration) .Configure(Configuration.GetSection("OtpService")) .Configure(Configuration.GetSection("dataFlow")) .Configure(Configuration.GetSection("hip")) .AddScoped() - .AddSingleton(new PatientMatchingRepository("demoPatients.json")) + .AddSingleton(new PatientMatchingRepository(HttpClient, Configuration.GetSection("patientConfig").Get())) .AddScoped() .AddScoped() .AddScoped() diff --git a/src/In.ProjectEKA.HipService/appsettings.Development.json b/src/In.ProjectEKA.HipService/appsettings.Development.json index 69b3bdbe..64c309b4 100644 --- a/src/In.ProjectEKA.HipService/appsettings.Development.json +++ b/src/In.ProjectEKA.HipService/appsettings.Development.json @@ -2,10 +2,10 @@ "Serilog": { "Using": [], "MinimumLevel": { - "Default": "Debug", + "Default": "Information", "Override": { - "Microsoft": "Debug", - "System": "Debug" + "Microsoft": "Warning", + "System": "Information" } }, "Enrich": [ @@ -38,7 +38,10 @@ }, "dataFlow": { "dataSizeLimitInMbs": 5, - "dataLinkTTLInMinutes": 10 + "dataLinkTTLInMinutes": 10, + "url": "http://localhost:8003/getData", + "isAuthEnabled": false, + "authUrl": "" }, "hip": { "url": "http://localhost:8000" @@ -48,7 +51,14 @@ }, "Gateway": { "url": "http://localhost:8000", - "timeout": 3 + "timeout": 3, + "clientId": "10000005", + "clientSecret": "95ca9a9d-1473-4172-9d87-0fd4d87ee1d6" + }, + "patientConfig": { + "baseUrl": "http://localhost:8003", + "pathDiscovery": "/discovery/patients", + "pathLink": "/discovery/search/patient" }, "BackgroundJobs": { "cancellationCheckInterval": 5 diff --git a/src/In.ProjectEKA.HipService/appsettings.json b/src/In.ProjectEKA.HipService/appsettings.json index c0111f9b..cdf55a64 100644 --- a/src/In.ProjectEKA.HipService/appsettings.json +++ b/src/In.ProjectEKA.HipService/appsettings.json @@ -5,7 +5,7 @@ "Default": "Information", "Override": { "Microsoft": "Warning", - "System": "Warning" + "System": "Information" } }, "Enrich": [ @@ -42,18 +42,26 @@ "Password": "guest" }, "dataFlow": { - "dataSizeLimitInMbs": 5 + "dataSizeLimitInMbs": 5, + "url": "http://localhost:8003/getData", + "isAuthEnabled": false, + "authUrl": "" }, "hip": { "url": "http://hip:8000" }, "Gateway": { "url": "http://gateway:8000", - "timeout": 40, + "timeout": 3000, "clientId": "10000005", - "clientSecret": "93ef283e-1968-46ab-8731-cfccda83680a", + "clientSecret": "95ca9a9d-1473-4172-9d87-0fd4d87ee1d6", "CmSuffix": "ncg" }, + "patientConfig": { + "baseUrl": "http://localhost:8003", + "pathDiscovery": "/discovery/patients", + "pathLink": "/discovery/search/patient" + }, "BackgroundJobs": { "cancellationCheckInterval": 5 } diff --git a/src/In.ProjectEKA.HipService/appsettings.local.json b/src/In.ProjectEKA.HipService/appsettings.local.json index 16ec6f46..ca7ed545 100644 --- a/src/In.ProjectEKA.HipService/appsettings.local.json +++ b/src/In.ProjectEKA.HipService/appsettings.local.json @@ -39,7 +39,10 @@ }, "dataFlow": { "dataSizeLimitInMbs": 5, - "dataLinkTTLInMinutes": 10 + "dataLinkTTLInMinutes": 10, + "url": "http://localhost:8003/getData", + "isAuthEnabled": false, + "authUrl": "" }, "hip": { "url": "http://localhost:8000" @@ -53,6 +56,11 @@ "clientId": "10000005", "clientSecret": "$CLIENT_SECRET" }, + "patientConfig": { + "baseUrl": "http://localhost:8003", + "pathDiscovery": "/discovery/patients", + "pathLink": "/discovery/search/patient" + }, "BackgroundJobs": { "cancellationCheckInterval": 5 } diff --git a/test/In.ProjectEKA.DefaultHipTest/Discovery/PatientMatchingRepositoryTest.cs b/test/In.ProjectEKA.DefaultHipTest/Discovery/PatientMatchingRepositoryTest.cs deleted file mode 100644 index 961ebde7..00000000 --- a/test/In.ProjectEKA.DefaultHipTest/Discovery/PatientMatchingRepositoryTest.cs +++ /dev/null @@ -1,35 +0,0 @@ -namespace In.ProjectEKA.DefaultHipTest.Discovery -{ - using System; - using System.Collections.Generic; - using System.Linq; - using DefaultHip.Discovery; - using FluentAssertions; - using HipLibrary.Patient.Model; - using Xunit; - - [Collection("Patient Repository Tests")] - public class PatientMatchingRepositoryTest - { - [Fact] - private async void ShouldReturnPatientsBasedOnExpression() - { - var patientMatchingRepository = new PatientMatchingRepository("demoPatients.json"); - var phoneNumberIdentifier = new Identifier(IdentifierType.MOBILE, "+91-7777777777"); - var request = new DiscoveryRequest( - new PatientEnquiry(string.Empty, - new List {phoneNumberIdentifier}, - null, - string.Empty, - Gender.F, - (ushort) DateTime.Now.Year), - string.Empty, - "transactionId", - DateTime.Now); - - var patientInfo = await patientMatchingRepository.Where(request); - - patientInfo.Count().Should().Be(1); - } - } -} diff --git a/test/In.ProjectEKA.DefaultHipTest/Link/PatientRepositoryTest.cs b/test/In.ProjectEKA.DefaultHipTest/Link/PatientRepositoryTest.cs deleted file mode 100644 index aa12bc94..00000000 --- a/test/In.ProjectEKA.DefaultHipTest/Link/PatientRepositoryTest.cs +++ /dev/null @@ -1,46 +0,0 @@ -namespace In.ProjectEKA.DefaultHipTest.Link -{ - using DefaultHip.Link; - using FluentAssertions; - using HipLibrary.Patient.Model; - using Xunit; - - [Collection("Patient Repository Tests")] - public class PatientRepositoryTest - { - private readonly PatientRepository patientRepository = new PatientRepository("demoPatients.json"); - - [Fact] - private void ReturnPatient() - { - const string patientReferenceNumber = "RVH1002"; - var testPatient = new Patient - { - PhoneNumber = "+91-7777777777", - Identifier = patientReferenceNumber, - Gender = Gender.F, - Name = "Navjot Singh", - CareContexts = new [] - { - new CareContextRepresentation("NCP1007", "National Cancer program"), - new CareContextRepresentation("RV-MHD-01.17.0024", "Dept of Psychiatry - Episode 1"), - }, - YearOfBirth = 2001 - }; - - var patient = patientRepository.PatientWith(patientReferenceNumber); - - patient.ValueOr(new Patient()).Should().BeEquivalentTo(testPatient); - } - - [Fact] - private void ReturnNullForUnknownPatient() - { - const string patientReferenceNumber = "1234"; - - var patient = patientRepository.PatientWith(patientReferenceNumber); - - patient.ValueOr((Patient) null).Should().BeNull(); - } - } -} \ No newline at end of file diff --git a/test/In.ProjectEKA.FHIRHipTest/DataFlow/CollectTest.cs b/test/In.ProjectEKA.FHIRHipTest/DataFlow/CollectTest.cs new file mode 100644 index 00000000..400636de --- /dev/null +++ b/test/In.ProjectEKA.FHIRHipTest/DataFlow/CollectTest.cs @@ -0,0 +1,94 @@ +namespace In.ProjectEKA.FHIRHipTest.DataFlow +{ + using System; + using System.Collections.Generic; + using System.Net; + using System.Net.Http; + using System.Threading; + using System.Threading.Tasks; + using FHIRHip.DataFlow; + using FHIRHip.DataFlow.Model; + using FluentAssertions; + using HipLibrary.Patient.Model; + using Microsoft.Extensions.Options; + using Moq; + using Moq.Protected; + using Optional.Unsafe; + using Xunit; + + [Collection("Collect Tests")] + public class CollectTest + { + private readonly IOptions dataFlowConfiguration; + + public CollectTest() + { + var dataFlow = new DataFlowConfiguration {Url = "http://localhost:8003/getData", + AuthUrl = "", + DataLinkTtlInMinutes = 0, + DataSizeLimitInMbs = 0, + IsAuthEnabled = false}; + dataFlowConfiguration = Options.Create(dataFlow); + } + + [Fact] + private async void ReturnCallDataFlowService() + { + var handlerMock = new Mock(MockBehavior.Strict); + var httpClient = new HttpClient(handlerMock.Object); + var expectedUri = new Uri("http://localhost:8003/getData"); + + const string consentId = "ConsentId"; + const string consentManagerId = "ConsentManagerId"; + var grantedContexts = new List + { + new GrantedContext("RVH1003", "BI-KTH-12.05.0024"), + new GrantedContext("RVH1003", "NCP1008") + }; + + var dateRange = new DateRange("2017-12-01T15:43:00.818234", "2021-12-31T15:43:00.818234"); + var hiTypes = new List + { + HiType.Condition, + HiType.Observation, + HiType.DiagnosticReport, + HiType.MedicationRequest, + HiType.DocumentReference, + HiType.Prescription, + HiType.DischargeSummary, + HiType.OPConsultation + }; + handlerMock + .Protected() + .Setup>( + "SendAsync", + ItExpr.IsAny(), + ItExpr.IsAny()) + .ReturnsAsync(new HttpResponseMessage + { + StatusCode = HttpStatusCode.OK + }) + .Verifiable(); + + var dataRequest = new TraceableDataRequest(grantedContexts, + dateRange, + "/someUrl", + hiTypes, + "someTxnId", + null, + consentManagerId, + consentId, + "sometext", + "someValue"); + var collect = new Collect(dataFlowConfiguration.Value, httpClient); + var entries = await collect.CollectData(dataRequest); + entries.ValueOrDefault().CareBundles.Should().NotBeNull(); + handlerMock.Protected().Verify( + "SendAsync", + Times.Exactly(1), + ItExpr.Is(message => message.Method == HttpMethod.Post + && message.RequestUri == expectedUri), + ItExpr.IsAny()); + } + } +} \ No newline at end of file diff --git a/test/In.ProjectEKA.FHIRHipTest/Discovery/PatientMatchingRepositoryTest.cs b/test/In.ProjectEKA.FHIRHipTest/Discovery/PatientMatchingRepositoryTest.cs new file mode 100644 index 00000000..e4573865 --- /dev/null +++ b/test/In.ProjectEKA.FHIRHipTest/Discovery/PatientMatchingRepositoryTest.cs @@ -0,0 +1,74 @@ +namespace In.ProjectEKA.FHIRHipTest.Discovery +{ + using System; + using System.Collections.Generic; + using System.Linq; + using System.Net; + using System.Net.Http; + using System.Threading; + using System.Threading.Tasks; + using FHIRHip.DataFlow.Model; + using FHIRHip.Discovery; + using FHIRHip.Discovery.Model; + using FluentAssertions; + using HipLibrary.Patient.Model; + using Microsoft.Extensions.Options; + using Moq; + using Moq.Protected; + using Xunit; + + [Collection("Patient Repository Tests")] + public class PatientMatchingRepositoryTest + { + private readonly IOptions patientConfiguration; + + public PatientMatchingRepositoryTest() + { + var dataFlow = new PatientConfiguration {BaseUrl = "http://localhost:8003", + PathDiscovery = "/discovery/patients", + PathLink = "/discovery/search/patient"}; + patientConfiguration = Options.Create(dataFlow); + } + + [Fact] + private async void ShouldReturnPatientsBasedOnExpression() + { + var expectedUri = new Uri("http://localhost:8003/discovery/patients"); + var handlerMock = new Mock(MockBehavior.Strict); + var httpClient = new HttpClient(handlerMock.Object); + var phoneNumberIdentifier = new Identifier(IdentifierType.MOBILE, "+91-7777777777"); + var request = new DiscoveryRequest( + new PatientEnquiry(string.Empty, + new List {phoneNumberIdentifier}, + null, + string.Empty, + Gender.F, + (ushort) DateTime.Now.Year), + string.Empty, + "transactionId", + DateTime.Now); + handlerMock + .Protected() + .Setup>( + "SendAsync", + ItExpr.IsAny(), + ItExpr.IsAny()) + .ReturnsAsync(new HttpResponseMessage + { + StatusCode = HttpStatusCode.OK + }) + .Verifiable(); + + var patientMatchingRepository = new PatientMatchingRepository(httpClient, patientConfiguration.Value); + + await patientMatchingRepository.Where(request); + + handlerMock.Protected().Verify( + "SendAsync", + Times.Exactly(1), + ItExpr.Is(message => message.Method == HttpMethod.Post + && message.RequestUri == expectedUri), + ItExpr.IsAny()); + } + } +} diff --git a/test/In.ProjectEKA.DefaultHipTest/In.ProjectEKA.DefaultHipTest.csproj b/test/In.ProjectEKA.FHIRHipTest/In.ProjectEKA.FHIRHipTest.csproj similarity index 80% rename from test/In.ProjectEKA.DefaultHipTest/In.ProjectEKA.DefaultHipTest.csproj rename to test/In.ProjectEKA.FHIRHipTest/In.ProjectEKA.FHIRHipTest.csproj index 40d4d379..9c4b0e7d 100644 --- a/test/In.ProjectEKA.DefaultHipTest/In.ProjectEKA.DefaultHipTest.csproj +++ b/test/In.ProjectEKA.FHIRHipTest/In.ProjectEKA.FHIRHipTest.csproj @@ -2,6 +2,7 @@ netcoreapp3.1 + In.ProjectEKA.FHIRHipTest @@ -9,6 +10,7 @@ runtime; build; native; contentfiles; analyzers; buildtransitive all + @@ -21,7 +23,7 @@ - + diff --git a/test/In.ProjectEKA.FHIRHipTest/Link/PatientRepositoryTest.cs b/test/In.ProjectEKA.FHIRHipTest/Link/PatientRepositoryTest.cs new file mode 100644 index 00000000..d85c6657 --- /dev/null +++ b/test/In.ProjectEKA.FHIRHipTest/Link/PatientRepositoryTest.cs @@ -0,0 +1,63 @@ +namespace In.ProjectEKA.FHIRHipTest.Link +{ + using System; + using System.Net; + using System.Net.Http; + using System.Threading; + using System.Threading.Tasks; + using FHIRHip.Discovery.Model; + using FHIRHip.Link; + using FluentAssertions; + using HipLibrary.Patient.Model; + using Microsoft.Extensions.Options; + using Moq; + using Moq.Protected; + using Xunit; + + [Collection("Patient Repository Tests")] + public class PatientRepositoryTest + { + private readonly IOptions patientConfiguration; + + public PatientRepositoryTest() + { + var dataFlow = new PatientConfiguration + { + BaseUrl = "http://localhost:8003", + PathDiscovery = "/discovery/patients", + PathLink = "/discovery/search/patient" + }; + patientConfiguration = Options.Create(dataFlow); + } + + [Fact] + private void ReturnPatient() + { + var expectedUri = new Uri("http://localhost:8003/discovery/search/patient"); + const string patientReferenceNumber = "RVH1002"; + var handlerMock = new Mock(MockBehavior.Strict); + var httpClient = new HttpClient(handlerMock.Object); + handlerMock + .Protected() + .Setup>( + "SendAsync", + ItExpr.IsAny(), + ItExpr.IsAny()) + .ReturnsAsync(new HttpResponseMessage + { + StatusCode = HttpStatusCode.OK + }) + .Verifiable(); + var patientRepository = new PatientRepository(httpClient, patientConfiguration.Value); + + patientRepository.PatientWith(patientReferenceNumber); + + handlerMock.Protected().Verify( + "SendAsync", + Times.Exactly(1), + ItExpr.Is(message => message.Method == HttpMethod.Post + && message.RequestUri == expectedUri), + ItExpr.IsAny()); + } + } +} \ No newline at end of file diff --git a/test/In.ProjectEKA.HipServiceTest/Discovery/PatientDiscoveryTest.cs b/test/In.ProjectEKA.HipServiceTest/Discovery/PatientDiscoveryTest.cs index 4477f188..b4541bc0 100644 --- a/test/In.ProjectEKA.HipServiceTest/Discovery/PatientDiscoveryTest.cs +++ b/test/In.ProjectEKA.HipServiceTest/Discovery/PatientDiscoveryTest.cs @@ -87,7 +87,7 @@ private async void ShouldReturnPatientForAlreadyLinkedPatient() new List {testLinkAccounts}, null)); patientRepository.Setup(x => x.PatientWith(testPatient.Identifier)) - .Returns(Option.Some(testPatient)); + .ReturnsAsync(Option.Some(testPatient)); var (discoveryResponse, error) = await patientDiscovery.PatientFor(discoveryRequest); diff --git a/test/In.ProjectEKA.HipServiceTest/Link/LinkPatientTest.cs b/test/In.ProjectEKA.HipServiceTest/Link/LinkPatientTest.cs index ccb635c5..dafab57b 100644 --- a/test/In.ProjectEKA.HipServiceTest/Link/LinkPatientTest.cs +++ b/test/In.ProjectEKA.HipServiceTest/Link/LinkPatientTest.cs @@ -90,8 +90,8 @@ private async void ShouldReturnLinkReferenceResponse() linkReferenceNumber)) .ReturnsAsync(Option.Some(initiatedLinkRequest)); - patientRepository.Setup(x => x.PatientWith(testPatient.Identifier)) - .Returns(Option.Some(testPatient)); + patientRepository.Setup( x => x.PatientWith(testPatient.Identifier)) + .ReturnsAsync(Option.Some(testPatient)); var (response, _) = await linkPatient.LinkPatients(patientReferenceRequest); @@ -131,7 +131,7 @@ private async void ShouldReturnCareContextNotFoundError() var patientReferenceRequest = new PatientLinkEnquiry(TestBuilders.Faker().Random.Hash(), TestBuilders.Faker().Random.Hash(), patient); patientRepository.Setup(e => e.PatientWith(testPatient.Identifier)) - .Returns(Option.Some(testPatient)); + .ReturnsAsync(Option.Some(testPatient)); var expectedError = new ErrorRepresentation( new Error(ErrorCode.CareContextNotFound, ErrorMessage.CareContextNotFound)); @@ -228,7 +228,7 @@ private async void SuccessLinkPatientForValidOtp() linkRepository.Setup(e => e.GetPatientFor(sessionId)) .ReturnsAsync(new Tuple(testLinkRequest, null)); patientRepository.Setup(x => x.PatientWith(testPatient.Identifier)) - .Returns(Option.Some(testPatient)); + .ReturnsAsync(Option.Some(testPatient)); linkRepository.Setup(x => x.Save(testLinkRequest.ConsentManagerUserId, testLinkRequest.PatientReferenceNumber, testLinkRequest.LinkReferenceNumber, @@ -276,7 +276,7 @@ private async void ErrorOnDuplicateRequestId() linkReferenceNumber)) .ReturnsAsync(Option.None()); patientRepository.Setup(x => x.PatientWith(testPatient.Identifier)) - .Returns(Option.Some(testPatient)); + .ReturnsAsync(Option.Some(testPatient)); var (_, errorRepresentation) = await linkPatient.LinkPatients(patientReferenceRequest); patientVerification.Verify();