Skip to content

Commit 8b71e8e

Browse files
Update QueryTests.cs
* fix broken integration tests
1 parent 32041ee commit 8b71e8e

1 file changed

Lines changed: 35 additions & 23 deletions

File tree

DotNet/ServiceTests/IntegrationTests/Census/QueryTests.cs

Lines changed: 35 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
using Microsoft.Extensions.DependencyInjection;
88
using Microsoft.EntityFrameworkCore;
99
using Task = System.Threading.Tasks.Task;
10+
using LantanaGroup.Link.Census.Application.Factories;
1011

1112
namespace IntegrationTests.Census;
1213

@@ -212,9 +213,12 @@ public async Task GetPatientEncounterByCorrelationIdAsync_ReturnsCorrectEncounte
212213
var facilityId = "TestFacility" + Guid.NewGuid().ToString();
213214
var patientId = Guid.NewGuid().ToString();
214215

216+
var encounterId = Guid.NewGuid().ToString();
217+
var patientIdentifierId = Guid.NewGuid().ToString();
218+
215219
var encounter = new PatientEncounter
216220
{
217-
Id = Guid.NewGuid().ToString(),
221+
Id = encounterId,
218222
FacilityId = facilityId,
219223
CorrelationId = correlationId,
220224
AdmitDate = DateTime.UtcNow.AddDays(-5),
@@ -223,9 +227,10 @@ public async Task GetPatientEncounterByCorrelationIdAsync_ReturnsCorrectEncounte
223227
{
224228
new PatientIdentifier
225229
{
226-
Id = Guid.NewGuid().ToString(),
230+
Id = patientIdentifierId,
227231
Identifier = patientId,
228-
SourceType = SourceType.FHIR.ToString()
232+
SourceType = SourceType.FHIR.ToString(),
233+
PatientEncounterId = encounterId
229234
}
230235
}
231236
};
@@ -269,7 +274,7 @@ public async Task GetAdmittedPatientEventModelsByDateRange_ReturnsCorrectEvents(
269274
{
270275
// Arrange
271276
var db = _fixture.DbContext;
272-
var queries = _fixture.ServiceProvider.GetRequiredService<IPatientEventQueries>();
277+
var queries = _fixture.ServiceProvider.GetRequiredService<IPatientEncounterQueries>();
273278

274279
var facilityId = "TestFacility" + Guid.NewGuid().ToString();
275280
var patientId1 = Guid.NewGuid().ToString();
@@ -281,12 +286,17 @@ public async Task GetAdmittedPatientEventModelsByDateRange_ReturnsCorrectEvents(
281286

282287
// Create the events and their payloads
283288
var events = new List<PatientEvent>();
289+
var encounters = new List<PatientEncounter>();
284290
// Within date range, admit event, patient 1
285291
var admitCorrelationId1 = Guid.NewGuid().ToString();
286292
var patient1AdmitPayload = new FHIRListAdmitPayload(patientId1, DateTime.UtcNow.AddDays(-3));
287293
var patient1AdmitEvent = patient1AdmitPayload.CreatePatientEvent(facilityId, admitCorrelationId1);
294+
var patient1Encounter = new PatientEncounterBuilder(facilityId,null,patient1AdmitEvent.EventDate, null, admitCorrelationId1).AddPatientIdentifier(patientId1, SourceType.FHIR).GetPatientEncounter();
288295
events.Add(patient1AdmitEvent);
289296

297+
patient1Encounter.PatientIdentifiers.FirstOrDefault().Id = Guid.NewGuid().ToString();
298+
db.PatientEncounters.Add(patient1Encounter);
299+
290300
// Within date range, discharge event, patient 1 (latest for patient 1)
291301
//var dischargeCorrelationId1 = Guid.NewGuid().ToString();
292302
//var patient1DischargePayload = new FHIRListDischargePayload(patientId1, DateTime.UtcNow.AddDays(-1));
@@ -297,28 +307,40 @@ public async Task GetAdmittedPatientEventModelsByDateRange_ReturnsCorrectEvents(
297307
var admitCorrelationId2 = Guid.NewGuid().ToString();
298308
var patient2AdmitPayload = new FHIRListAdmitPayload(patientId2, DateTime.UtcNow.AddDays(-2));
299309
var patient2AdmitEvent = patient2AdmitPayload.CreatePatientEvent(facilityId, admitCorrelationId2);
310+
var patient2Encounter = new PatientEncounterBuilder(facilityId, null, patient2AdmitEvent.EventDate, null, admitCorrelationId2).AddPatientIdentifier(patientId2, SourceType.FHIR).GetPatientEncounter();
300311
events.Add(patient2AdmitEvent);
301312

313+
patient2Encounter.PatientIdentifiers.FirstOrDefault().Id = Guid.NewGuid().ToString();
314+
db.PatientEncounters.Add(patient2Encounter);
315+
302316
// Outside date range, admit event
303317
var outsidePatientId = Guid.NewGuid().ToString();
304318
var outsideCorrelationId = Guid.NewGuid().ToString();
305-
var outsideAdmitPayload = new FHIRListAdmitPayload(outsidePatientId, DateTime.UtcNow.AddDays(-10));
319+
var outsideAdmitPayload = new FHIRListAdmitPayload(outsidePatientId, DateTime.UtcNow.AddDays(1));
306320
var outsideAdmitEvent = outsideAdmitPayload.CreatePatientEvent(facilityId, outsideCorrelationId);
321+
var outsideEncounter = new PatientEncounterBuilder(facilityId, null, outsideAdmitEvent.EventDate, null, outsideCorrelationId).AddPatientIdentifier(outsidePatientId, SourceType.FHIR).GetPatientEncounter();
307322
events.Add(outsideAdmitEvent);
308323

324+
outsideEncounter.PatientIdentifiers.FirstOrDefault().Id = Guid.NewGuid().ToString();
325+
db.PatientEncounters.Add(outsideEncounter);
326+
309327
// Different facility, within date range
310328
var otherFacilityPatientId = Guid.NewGuid().ToString();
311329
var otherFacilityCorrelationId = Guid.NewGuid().ToString();
312330
var otherFacilityPayload = new FHIRListAdmitPayload(otherFacilityPatientId, DateTime.UtcNow.AddDays(-3));
313331
var otherFacilityEvent = otherFacilityPayload.CreatePatientEvent("OtherFacility", otherFacilityCorrelationId);
332+
var otherFacilityEncounter = new PatientEncounterBuilder("OtherFacility", null, otherFacilityEvent.EventDate, null, otherFacilityCorrelationId).AddPatientIdentifier(otherFacilityPatientId, SourceType.FHIR).GetPatientEncounter();
314333
events.Add(otherFacilityEvent);
315334

335+
otherFacilityEncounter.PatientIdentifiers.FirstOrDefault().Id = Guid.NewGuid().ToString();
336+
db.PatientEncounters.Add(otherFacilityEncounter);
337+
316338
await db.PatientEvents.AddRangeAsync(events);
317339
await db.SaveChangesAsync();
318340

319341
// Act
320342
var results =
321-
await queries.GetAdmittedPatientEventModelsByDateRange(facilityId, startDate, endDate,
343+
await queries.GetAdmittedPatientEncounterModelsByDateRange(facilityId, startDate, endDate,
322344
CancellationToken.None);
323345

324346
// Assert
@@ -327,19 +349,17 @@ await queries.GetAdmittedPatientEventModelsByDateRange(facilityId, startDate, en
327349
Assert.Equal(2, results?.Count() ?? 0);
328350

329351
// Verify both admitted patients are in the results
330-
Assert.Contains(results, e => e.SourcePatientId == patientId1);
331-
Assert.Contains(results, e => e.SourcePatientId == patientId2);
352+
Assert.Contains(results, e => e.PatientIdentifiers.FirstOrDefault().Identifier == patientId1);
353+
Assert.Contains(results, e => e.PatientIdentifiers.FirstOrDefault().Identifier == patientId2);
332354

333355
foreach (var result in results)
334356
{
335357
// Extract the date from the payload
336-
var eventDate = GetDateFromPayload(result.Payload);
358+
//var eventDate = GetDateFromPayload(result.Payload);
337359

338-
Assert.True(eventDate >= startDate && eventDate <= endDate,
339-
$"Event date {eventDate} for event {result.Id} should be between {startDate} and {endDate}");
360+
Assert.True(result.AdmitDate >= startDate && result.AdmitDate <= endDate,
361+
$"Event date {result.AdmitDate} for event {result.Id} should be between {startDate} and {endDate}");
340362
}
341-
342-
343363
}
344364

345365
private DateTime GetDateFromPayload(IPayload payload)
@@ -359,23 +379,15 @@ public async Task GetAdmittedPatientEventModelsByDateRange_WithInvalidParameters
359379
{
360380
// Arrange
361381
var db = _fixture.DbContext;
362-
var queries = _fixture.ServiceProvider.GetRequiredService<IPatientEventQueries>();
382+
var queries = _fixture.ServiceProvider.GetRequiredService<IPatientEncounterQueries>();
363383

364384
var facilityId = "TestFacility" + Guid.NewGuid().ToString();
365385
var startDate = DateTime.UtcNow.AddDays(-5);
366386
var endDate = DateTime.UtcNow;
367387

368388
// Act & Assert - Invalid facility ID
369389
await Assert.ThrowsAsync<ArgumentException>(() =>
370-
queries.GetAdmittedPatientEventModelsByDateRange(null, startDate, endDate, CancellationToken.None));
371-
372-
// Act & Assert - Default start date
373-
await Assert.ThrowsAsync<ArgumentException>(() =>
374-
queries.GetAdmittedPatientEventModelsByDateRange(facilityId, default, endDate, CancellationToken.None));
375-
376-
// Act & Assert - Default end date
377-
await Assert.ThrowsAsync<ArgumentException>(() =>
378-
queries.GetAdmittedPatientEventModelsByDateRange(facilityId, startDate, default, CancellationToken.None));
390+
queries.GetAdmittedPatientEncounterModelsByDateRange(null, startDate, endDate, CancellationToken.None));
379391
}
380392

381393
[Fact]

0 commit comments

Comments
 (0)