Skip to content

Commit f0199dc

Browse files
authored
Add visits (#489)
1 parent da70059 commit f0199dc

26 files changed

+301
-324
lines changed

src/app/_services/helper.service.ts

+12-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import {
99
getYear,
1010
startOfISOWeek,
1111
} from 'date-fns';
12-
import { of } from 'rxjs';
12+
import { Observable, of } from 'rxjs';
1313
import { Filter } from '../_models/common';
1414
import {
1515
BRIEF_DATE_FORMAT,
@@ -167,4 +167,15 @@ export class HelperService {
167167
.filter((item) => typesMap[type].includes(item.key))
168168
);
169169
}
170+
171+
getFirstSymptomOptions(filters: any): Observable<any> {
172+
const result: any[] = [];
173+
filters.forEach(({ value }: any) => {
174+
if (Object.values(value)[0] === 'YES') {
175+
const key = Object.keys(value)[0];
176+
result.push({ key, value: `captions.Symptoms.${key}` });
177+
}
178+
});
179+
return of(result);
180+
}
170181
}

src/app/cases/case_components/case-follow-up-add-visit/case-follow-up-add-visit.component.ts

-72
This file was deleted.

src/app/cases/case_components/case-follow-up/case-follow-up.component.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,7 @@ import { defaultColumnDefs } from './case-follow-up-table-data';
1717
import { ExportService } from '../../../_services/api/export.service';
1818
import { NotificationService } from '../../../_services/notification.service';
1919
import { AddEditBaseModalComponent } from '../../../shared/modals/add-edit-base-modal/add-edit-base-modal.component';
20-
import { CaseFollowUpAddVisitComponent } from '../case-follow-up-add-visit/case-follow-up-add-visit.component';
20+
import { FollowUpVisitAddComponent } from '../../../shared/follow-up-visit-add/follow-up-visit-add.component';
2121

2222
@Component({
2323
selector: 'app-case-follow-up',
@@ -66,7 +66,7 @@ export class CaseFollowUpComponent {
6666
maxWidth: MODAL_LARGE_WIDTH,
6767
data: {
6868
title: this.translateService.instant('strings.headingCreateNewVisit'),
69-
component: CaseFollowUpAddVisitComponent,
69+
component: FollowUpVisitAddComponent,
7070
},
7171
});
7272

src/app/cases/case_components/case-symptoms/case-symptoms-form-data.ts

+3
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,9 @@ export const FORM_DATA_CASE_SYMPTOMS = [
5454
{
5555
...FORM_DATA_WIDGET,
5656
widget: 'app-symptoms-group-select',
57+
widgetInfo: {
58+
type: 'SYMPTOMS',
59+
},
5760
},
5861
],
5962
},

src/app/cases/case_components/clinical-course-add/clinical-course-add-form-data.ts

+4-1
Original file line numberDiff line numberDiff line change
@@ -145,7 +145,10 @@ export const FORM_DATA_CLINICAL_COURSE_ADD = [
145145
fields: [
146146
{
147147
...FORM_DATA_WIDGET,
148-
widget: 'app-clinical-course-group-select',
148+
widget: 'app-symptoms-group-select',
149+
widgetInfo: {
150+
type: 'CLINICAL_COURSE',
151+
},
149152
},
150153
],
151154
},

src/app/cases/cases.module.ts

-2
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,6 @@ import { CasePortHealthComponent } from './case_components/case-port-health/case
2121
import { CaseEditComponent } from './case-edit/case-edit.component';
2222
import { TherapyFiltersComponent } from './case_components/therapy-filters/therapy-filters.component';
2323
import { CaseGuideComponent } from './case-guide/case-guide.component';
24-
import { CaseFollowUpAddVisitComponent } from './case_components/case-follow-up-add-visit/case-follow-up-add-visit.component';
2524
import { ClinicalCourseAddComponent } from './case_components/clinical-course-add/clinical-course-add.component';
2625
import { ClassificationRulesComponent } from './classification-rules/classification-rules.component';
2726

@@ -44,7 +43,6 @@ import { ClassificationRulesComponent } from './classification-rules/classificat
4443
CaseEditComponent,
4544
TherapyFiltersComponent,
4645
CaseGuideComponent,
47-
CaseFollowUpAddVisitComponent,
4846
ClinicalCourseAddComponent,
4947
ClassificationRulesComponent,
5048
],

src/app/contacts/contact-components/contact-follow-up/contact-follow-up.component.html

+3
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ <h2 class="assessments-title">
44
{{ 'captions.caseFollowupVisitsView' | translate }}
55
</h2>
66
<div class="actions">
7+
<button mat-flat-button color="primary" (click)="openAddVisitModal()">
8+
{{ 'captions.visitNewVisit' | translate }}
9+
</button>
710
<button mat-stroked-button color="primary" (click)="export()">
811
{{ 'captions.export' | translate }}
912
</button>
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,15 @@
11
header {
22
display: flex;
33
justify-content: space-between;
4+
align-items: center;
5+
margin-bottom: 24px;
6+
}
7+
8+
.assessments-title {
9+
margin: 0;
10+
}
11+
12+
.actions {
13+
display: flex;
14+
gap: 16px;
415
}

src/app/contacts/contact-components/contact-follow-up/contact-follow-up.component.ts

+32-3
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
1-
import { Component } from '@angular/core';
1+
import { Component, OnDestroy } from '@angular/core';
2+
import { MatDialog } from '@angular/material/dialog';
23
import { TranslateService } from '@ngx-translate/core';
4+
import { Subscription } from 'rxjs';
35
import {
46
API_ROUTE_CONTACTS_FOLLOW_UP,
57
EXPORT_TYPES,
8+
MODAL_LARGE_WIDTH,
69
SMALL_NOTIFICATION_MODAL_WIDTH,
710
TableAppearanceOptions,
811
} from '../../../app.constants';
12+
import { FollowUpVisitAddComponent } from '../../../shared/follow-up-visit-add/follow-up-visit-add.component';
13+
import { AddEditBaseModalComponent } from '../../../shared/modals/add-edit-base-modal/add-edit-base-modal.component';
914
import { Filter, TableColumn } from '../../../_models/common';
1015
import { CaseDataDto, VisitDto } from '../../../_models/models';
1116
import { BaseService } from '../../../_services/api/base.service';
@@ -19,19 +24,21 @@ import { defaultColumnDefs } from './contact-follow-up-table-data';
1924
templateUrl: './contact-follow-up.component.html',
2025
styleUrls: ['./contact-follow-up.component.scss'],
2126
})
22-
export class ContactFollowUpComponent {
27+
export class ContactFollowUpComponent implements OnDestroy {
2328
visits: VisitDto[] = [];
2429
defaultColumns: TableColumn[] = defaultColumnDefs;
2530
tableAppearanceOptions = TableAppearanceOptions;
2631
preSetFilters: Filter[];
2732

2833
public resourceService: BaseService<any>;
34+
private subscriptions: Subscription = new Subscription();
2935

3036
constructor(
3137
public visitService: VisitService,
3238
private notificationService: NotificationService,
3339
private translateService: TranslateService,
34-
private exportService: ExportService
40+
private exportService: ExportService,
41+
private dialog: MatDialog
3542
) {}
3643

3744
updateComponent(caseItem: CaseDataDto, resourceService: BaseService<any>): void {
@@ -53,4 +60,26 @@ export class ContactFollowUpComponent {
5360

5461
this.exportService.executeExport(EXPORT_TYPES.BASIC, API_ROUTE_CONTACTS_FOLLOW_UP.EXPORT);
5562
}
63+
64+
openAddVisitModal(): void {
65+
const dialogRef = this.dialog.open(AddEditBaseModalComponent, {
66+
maxWidth: MODAL_LARGE_WIDTH,
67+
data: {
68+
title: this.translateService.instant('strings.headingCreateNewVisit'),
69+
component: FollowUpVisitAddComponent,
70+
},
71+
});
72+
73+
this.subscriptions.add(
74+
dialogRef.afterClosed().subscribe((result) => {
75+
if (result) {
76+
// callback
77+
}
78+
})
79+
);
80+
}
81+
82+
ngOnDestroy(): void {
83+
this.subscriptions.unsubscribe();
84+
}
5685
}

src/app/shared/dynamic-form/components/form-widget/form-widget.component.ts

-4
Original file line numberDiff line numberDiff line change
@@ -29,16 +29,13 @@ import { CasePersonContactsListComponent } from '../../../widgets/case-person-co
2929
import { LineListingNewCasesComponent } from '../../../widgets/line-listing-new-cases/line-listing-new-cases.component';
3030
import { LineListingNewContactsComponent } from '../../../widgets/line-listing-new-contacts/line-listing-new-contacts.component';
3131
import { GroupSelectComponent } from '../../../widgets/group-select/group-select.component';
32-
import { AddVisitsGroupSelectComponent } from '../../../widgets/add-visits-group-select/add-visits-group-select.component';
3332
import { InfoModalComponent } from '../../../widgets/info-modal/info-modal.component';
3433
import { CalculateCaseClassificationComponent } from '../../../widgets/calculate-case-classification/calculate-case-classification.component';
35-
import { ClinicalCourseGroupSelectComponent } from '../../../widgets/clinical-course-group-select/clinical-course-group-select.component';
3634

3735
const COMPONENTS_MAP: any = {
3836
'app-follow-up-status': FollowUpStatusComponent,
3937
'app-new-epid-number': NewEpidNumberComponent,
4038
'app-symptoms-group-select': SymptomsGroupSelectComponent,
41-
'app-add-visits-group-select': AddVisitsGroupSelectComponent,
4239
'app-exposures-list': ExposuresListComponent,
4340
'app-activities-list': ActivitiesListComponent,
4441
'app-addresses-list': AddressesListComponent,
@@ -59,7 +56,6 @@ const COMPONENTS_MAP: any = {
5956
'app-group-select': GroupSelectComponent,
6057
'app-info-modal': InfoModalComponent,
6158
'app-calculate-case-classification': CalculateCaseClassificationComponent,
62-
'app-clinical-course-group-select': ClinicalCourseGroupSelectComponent,
6359
};
6460

6561
@Component({

0 commit comments

Comments
 (0)