Skip to content

Commit

Permalink
Merge pull request #693 from lantanagroup/frontend/develop
Browse files Browse the repository at this point in the history
Frontend/develop
  • Loading branch information
szydlofj committed Feb 7, 2024
2 parents 367d893 + 08231e7 commit ee26a53
Show file tree
Hide file tree
Showing 13 changed files with 134 additions and 38 deletions.
17 changes: 17 additions & 0 deletions web/src/app/helpers/GlobalPipes.pipe.ts
Original file line number Diff line number Diff line change
@@ -1,4 +1,5 @@
import { Pipe, PipeTransform } from "@angular/core"
import { DatePipe } from "@angular/common";

// ID from Title
@Pipe({
Expand Down Expand Up @@ -148,4 +149,20 @@ export class ConvertDateString implements PipeTransform {
const parts = date.split('-')
return `${parts[1]}.${parts[2]}.${parts[0]}`
}
}

// Convert to local time
@Pipe({
name: 'convertToLocaleTime',
standalone: true
})
export class ConvertToLocaleTime implements PipeTransform {
transform(date: string): string {
if (!date) return ''

let datePipe = new DatePipe('en-US'),
formattedDate = datePipe.transform(date, 'MM.dd.yyyy h:mm a zzz', 'America/New_York') || ''

return formattedDate.replace('GMT-6', 'EST')
}
}
4 changes: 2 additions & 2 deletions web/src/app/helpers/SystemPerformanceHelper.ts
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ export const errorHistory: ChartDataModel[] = [
export const reportGenerationCurrent: ChartDatapoint[] = [
{
name: "Average Time per day",
value: 10686
value: 10432
}
]

Expand Down Expand Up @@ -158,7 +158,7 @@ export const reportGenerationHistory: ChartDataModel[] = [{

export const activeTenantCurrent: ChartDatapoint[] = [{
name: "Total Tenants",
value: 20
value: 21
}]

export const activeTenantHistory: ChartDataModel[] = [{
Expand Down
11 changes: 8 additions & 3 deletions web/src/app/pages/activities/activities.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@ import { MetricApiService } from 'src/services/api/metric/metric-api.service';
import { MetricCard, TimePeriod } from 'src/app/shared/interfaces/metrics.model';

import { calculatePeriodLength, formatDate } from 'src/app/helpers/ReportHelper';
import { PascalCaseToSpace, ConvertDateString } from 'src/app/helpers/GlobalPipes.pipe';
import { PascalCaseToSpace, ConvertDateString, ConvertToLocaleTime } from 'src/app/helpers/GlobalPipes.pipe';
import { LoaderComponent } from 'src/app/shared/loader/loader.component';

@Component({
Expand All @@ -34,6 +34,7 @@ export class ActivitiesComponent implements OnInit {
isDataLoaded: boolean = false;
private pascalCaseToSpace = new PascalCaseToSpace
private convertDateString = new ConvertDateString
private convertToLocaleTime = new ConvertToLocaleTime

constructor(
private reportsApiService: ReportApiService,
Expand Down Expand Up @@ -140,6 +141,10 @@ export class ActivitiesComponent implements OnInit {
orderable: false,
createdCell: (cell, cellData) => {
$(cell).addClass('timestamp');
},
render: function(data, type, row) {
let parts = data.split(' ', 2)
return parts[0] + '<br>' + data.substring(parts[0].length).trim()
}
},
{
Expand Down Expand Up @@ -261,9 +266,9 @@ export class ActivitiesComponent implements OnInit {
// timestamp
let timestamp
if (report.generatedTime && status === 'submitted') {
timestamp = this.convertDateString.transform(report.generatedTime)
timestamp = this.convertToLocaleTime.transform(report.generatedTime)
} else if (report.submittedTime) {
timestamp = this.convertDateString.transform(report.submittedTime)
timestamp = this.convertToLocaleTime.transform(report.submittedTime)
} else {
timestamp = 'n/a'
}
Expand Down
16 changes: 9 additions & 7 deletions web/src/app/pages/activities/bundle/bundle.component.html
Original file line number Diff line number Diff line change
Expand Up @@ -47,11 +47,13 @@
titleAlign="center"
>
<app-loader *ngIf="!isDataLoaded" />
<app-mini-content *ngFor="let n of [1,2,3]" [title]="'Concept Map ' + n">
<strong>ID:</strong> 923123124<br>
<strong>Contexts:</strong> FHIRPath<br>
<strong>Path:</strong> 921837271<br>
<strong>Map:</strong> FHIR Concept Map
<app-mini-content *ngFor="let conceptMap of conceptMaps; index as i" title='Concept Map {{ i + 1 }}'>
<strong>ID:</strong> {{ conceptMap.id }}<br>
<strong>Contexts:</strong>
<ng-container *ngFor="let context of conceptMap.contexts">
{{ context }}<br>
</ng-container>
<!-- <strong>Path:</strong> 921837271<br> -->
</app-mini-content>

</app-card>
Expand All @@ -69,7 +71,7 @@
<div class="chip mr-1">CDI</div>
<div>
<p class="text-primary mb-1"><strong>C. difficile infection</strong></p>
<strong>Total in census:</strong> 6,441<br>
<strong>Total in census:</strong> 17,213<br>
<strong>Total that met IP:</strong> 5,887
</div>
</div>
Expand Down Expand Up @@ -97,7 +99,7 @@
[hasPadding]="true"
>
<div class="row">
<div class="col col-6 col-md-4" *ngFor="let methods of mockBundleDetails?.normalizations?.methods">
<div class="col col-6 col-md-" *ngFor="let methods of mockBundleDetails?.normalizations?.methods">
<app-mini-content [title]="methods.name">
<p>{{ methods.value }}</p>
</app-mini-content>
Expand Down
6 changes: 5 additions & 1 deletion web/src/app/pages/activities/bundle/bundle.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@ import { TableComponent } from 'src/app/shared/table/table.component';
import { LinkComponent } from 'src/app/shared/link/link.component';
import { LoaderComponent } from 'src/app/shared/loader/loader.component';
import { GlobalApiService } from 'src/services/api/globals/globals-api.service';
import { TenantConceptMap } from 'src/app/shared/interfaces/tenant.model';

/* dummy data */
import { normalizationData } from 'src/app/helpers/ReportHelper';
Expand All @@ -31,6 +32,7 @@ export class BundleComponent {
dtOptions: DataTables.Settings = {}
bundleDetails: any = {}
isDataLoaded: boolean = false
conceptMaps: TenantConceptMap[] = []


// purely placeholder
Expand Down Expand Up @@ -94,10 +96,12 @@ export class BundleComponent {

forkJoin({
bundleDetails: this.globalApiService.getContentObservable(`${this.tenantId}/report/${this.bundleId}/aggregate`),
conceptMaps: this.globalApiService.getContentObservable<TenantConceptMap[]>(`${this.tenantId}/conceptMap`)
// other stuff, if needed
}).subscribe(({ bundleDetails }) => {
}).subscribe(({ bundleDetails, conceptMaps }) => {
// currently this endpoint doesn't return anything, but someday
this.bundleDetails = bundleDetails
this.conceptMaps = conceptMaps

this.isDataLoaded = true
})
Expand Down
12 changes: 8 additions & 4 deletions web/src/app/pages/dashboard/dashboard.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ import { ReportApiService } from 'src/services/api/report/report-api.service';
import { MetricApiService } from 'src/services/api/metric/metric-api.service';
import { MetricCard, TimePeriod } from 'src/app/shared/interfaces/metrics.model';

import { ConvertDateString } from 'src/app/helpers/GlobalPipes.pipe';
import { ConvertToLocaleTime } from 'src/app/helpers/GlobalPipes.pipe';

@Component({
selector: 'app-dashboard',
Expand All @@ -32,7 +32,7 @@ export class DashboardComponent {
cardCount: number = 3;
columnSpan: number = 4;

private convertDateString = new ConvertDateString
private convertToLocaleTime = new ConvertToLocaleTime

constructor(
private reportsApiService: ReportApiService,
Expand Down Expand Up @@ -152,6 +152,10 @@ export class DashboardComponent {
data: columnIdMap[2],
createdCell: (cell, cellData) => {
$(cell).addClass('timestamp')
},
render: function(data, type, row) {
let parts = data.split(' ', 2)
return parts[0] + '<br>' + data.substring(parts[0].length).trim()
}
}
]
Expand All @@ -172,9 +176,9 @@ export class DashboardComponent {
// timestamp
let timestamp
if (report.generatedTime && status === 'submitted') {
timestamp = this.convertDateString.transform(report.generatedTime)
timestamp = this.convertToLocaleTime.transform(report.generatedTime)
} else if (report.submittedTime) {
timestamp = this.convertDateString.transform(report.submittedTime)
timestamp = this.convertToLocaleTime.transform(report.submittedTime)
} else {
timestamp = 'n/a'
}
Expand Down
24 changes: 15 additions & 9 deletions web/src/app/pages/facilities/facilities.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import { TableComponent } from 'src/app/shared/table/table.component';
import { Tenant } from 'src/app/shared/interfaces/tenant.model';
import { SearchBar } from 'src/app/shared/interfaces/table.model';
import { FacilitiesApiService } from 'src/services/api/facilities/facilities-api.service';
import { PascalCaseToSpace, ConvertDateString } from 'src/app/helpers/GlobalPipes.pipe';
import { PascalCaseToSpace, ConvertDateString, ConvertToLocaleTime } from 'src/app/helpers/GlobalPipes.pipe';

@Component({
selector: 'app-facilities',
Expand All @@ -25,12 +25,13 @@ export class FacilitiesComponent implements OnInit {
) { }
private pascalCaseToSpace = new PascalCaseToSpace
private convertDateString = new ConvertDateString
private convertToLocaleTime = new ConvertToLocaleTime

dtOptions: DataTables.Settings = {};

dtSearchBar: SearchBar = {
title: 'Search Facilities',
placeholder: 'Enter facility name, CDC ID, etc.'
placeholder: 'Enter facility name, NHSN Org ID, etc.'
};
tableOptionsLoaded = false;

Expand All @@ -55,7 +56,7 @@ export class FacilitiesComponent implements OnInit {
calculateDtOptions(): DataTables.Settings {
// DataTable configuration
const columnIdMap = ['NAME', 'NHSN_ORG_ID', 'DETAILS', 'SUBMISSION_DATE', 'MEASURES'],
pageLength = 15
pageLength = 5

return {
serverSide: true,
Expand All @@ -72,8 +73,8 @@ export class FacilitiesComponent implements OnInit {
from(this.facilitiesApiService.fetchAllFacilities({page: page, sort: orderBy, sortAscend: sortAscend, searchCriteria: searchValue}))
.subscribe(response => {
callback({
recordsTotal: response?.total,
recordsFiltered: response?.tenants.length,
recordsTotal: response?.tenants.length,
recordsFiltered: response?.total,
data: this.processDataForTable(response?.tenants)
})
})
Expand Down Expand Up @@ -117,7 +118,11 @@ export class FacilitiesComponent implements OnInit {
{
title: 'Last Submission',
data: columnIdMap[3],
orderable: true
orderable: true,
render: function(data, type, row) {
let parts = data.split(' ', 2)
return parts[0] + '<br>' + data.substring(parts[0].length).trim()
}
},
{
title: 'Current Measures',
Expand Down Expand Up @@ -147,10 +152,11 @@ export class FacilitiesComponent implements OnInit {
let submissionDate = td.lastSubmissionDate

if(submissionDate) {
const [datePart, timePart] = td.lastSubmissionDate.split(' '),
transformedDate = this.convertDateString.transform(datePart)
// const [datePart, timePart] = td.lastSubmissionDate.split(' '),
// transformedDate = this.convertDateString.transform(datePart)

submissionDate = `${transformedDate} ${timePart}`
// submissionDate = `${transformedDate} ${timePart}`
submissionDate = this.convertToLocaleTime.transform(submissionDate)
}

return {
Expand Down
Loading

0 comments on commit ee26a53

Please sign in to comment.