Skip to content

Commit

Permalink
Delegate date parsing to HAPI
Browse files Browse the repository at this point in the history
  • Loading branch information
smailliwcs committed Mar 14, 2024
1 parent ef2b0e8 commit 349ae6a
Show file tree
Hide file tree
Showing 3 changed files with 11 additions and 34 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -37,25 +37,17 @@ public List<GlobalReportResponse> getReports(
if (!startDate.isEmpty()) {
Date date = Helper.parseFhirDate(startDate);

reports = reports.stream().filter(x -> {
try {
return Helper.parseFhirDate(x.getPeriodStart()).after(date) || Helper.parseFhirDate(x.getPeriodStart()).equals(date);
} catch (ParseException e) {
throw new RuntimeException(e);
}
}).collect(Collectors.toList());
reports = reports.stream().filter(x ->
Helper.parseFhirDate(x.getPeriodStart()).after(date) || Helper.parseFhirDate(x.getPeriodStart()).equals(date)
).collect(Collectors.toList());
}

if (!endDate.isEmpty()) {
Date date = Helper.parseFhirDate(endDate);

reports = reports.stream().filter(x -> {
try {
return Helper.parseFhirDate(x.getPeriodEnd()).before(date) || Helper.parseFhirDate(x.getPeriodStart()).equals(date);
} catch (ParseException e) {
throw new RuntimeException(e);
}
}).collect(Collectors.toList());
reports = reports.stream().filter(x ->
Helper.parseFhirDate(x.getPeriodEnd()).before(date) || Helper.parseFhirDate(x.getPeriodStart()).equals(date)
).collect(Collectors.toList());
}

if (!tenantId.isEmpty()) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,12 +34,8 @@ public LogSearchResponse getLogs(@RequestParam(required = false) String startDat
Date startDateObj;
Date endDateObj;

try {
startDateObj = Helper.parseFhirDate(startDate);
endDateObj = Helper.parseFhirDate(endDate);
} catch (ParseException ex) {
throw new IllegalArgumentException("Invalid date format, must be in the format yyyy-MM-dd'T'HH:mm:ss.SSSXXX or yyyy-MM-dd'T'HH:mm:ssXXX");
}
startDateObj = Helper.parseFhirDate(startDate);
endDateObj = Helper.parseFhirDate(endDate);

List<LogMessage> logMessages = this.sharedService.findLogMessages(startDateObj, endDateObj, severity, page, content);
LogSearchResponse res = new LogSearchResponse();
Expand Down
17 changes: 3 additions & 14 deletions core/src/main/java/com/lantanagroup/link/Helper.java
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
import org.apache.commons.text.StringEscapeUtils;
import org.hl7.fhir.r4.model.Bundle;
import org.hl7.fhir.r4.model.CapabilityStatement;
import org.hl7.fhir.r4.model.DateTimeType;
import org.hl7.fhir.r4.model.Resource;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
Expand Down Expand Up @@ -66,20 +67,8 @@ public static String getFhirDate(Date date) {
return new SimpleDateFormat(SIMPLE_DATE_MILLIS_FORMAT).format(date);
}

public static Date parseFhirDate(String dateStr) throws ParseException {
if (StringUtils.isEmpty(dateStr)) {
return null;
}

SimpleDateFormat formatterMillis = new SimpleDateFormat(SIMPLE_DATE_MILLIS_FORMAT);
SimpleDateFormat formatterSec = new SimpleDateFormat(SIMPLE_DATE_SECONDS_FORMAT);
Date dateReturned;
try {
dateReturned = formatterMillis.parse(dateStr);
} catch (Exception ex) {
dateReturned = formatterSec.parse(dateStr);
}
return dateReturned;
public static Date parseFhirDate(String dateStr) {
return new DateTimeType(dateStr).getValue();
}

public static <T> List<T> concatenate(List<T> list1, List<T> list2) {
Expand Down

0 comments on commit 349ae6a

Please sign in to comment.