@iapps/ng-dhis2-ui 1.1.64 → 1.1.65
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -3338,8 +3338,12 @@ class LineListService {
|
|
|
3338
3338
|
const dateFilter = [
|
|
3339
3339
|
startDate ? `enrollmentEnrolledAfter=${startDate}` : '',
|
|
3340
3340
|
endDate ? `enrollmentEnrolledBefore=${endDate}` : '',
|
|
3341
|
-
]
|
|
3342
|
-
|
|
3341
|
+
]
|
|
3342
|
+
.filter(Boolean)
|
|
3343
|
+
.join('&');
|
|
3344
|
+
const ouModeIdentifier = ouMode && useOuModeWithOlderDHIS2Instance
|
|
3345
|
+
? `&ouMode=${ouMode}`
|
|
3346
|
+
: `&orgUnitMode=${ouMode}`;
|
|
3343
3347
|
return this.httpClient
|
|
3344
3348
|
.get(`tracker/trackedEntities.json?program=${programId}&orgUnit=${orgUnit}${ouModeIdentifier}&page=${page}&pageSize=${pageSize}&fields=trackedEntity,orgUnit,attributes[*],enrollments[*]&totalPages=true&${filterParams}${dateFilter}&order=createdAt:desc`)
|
|
3345
3349
|
.pipe(switchMap((response) => {
|
|
@@ -3348,13 +3352,27 @@ class LineListService {
|
|
|
3348
3352
|
}
|
|
3349
3353
|
// **Step 1:** Extract unique orgUnits from enrollments
|
|
3350
3354
|
const uniqueOrgUnitIds = new Set();
|
|
3351
|
-
response.trackedEntities
|
|
3352
|
-
|
|
3353
|
-
|
|
3354
|
-
|
|
3355
|
-
|
|
3355
|
+
if (response && response.trackedEntities) {
|
|
3356
|
+
console.log('THIS IS HERE', JSON.stringify(response));
|
|
3357
|
+
response.trackedEntities.forEach((tei) => {
|
|
3358
|
+
tei.enrollments?.forEach((enrollment) => {
|
|
3359
|
+
if (enrollment.program === programId) {
|
|
3360
|
+
uniqueOrgUnitIds.add(enrollment.orgUnit);
|
|
3361
|
+
}
|
|
3362
|
+
});
|
|
3356
3363
|
});
|
|
3357
|
-
}
|
|
3364
|
+
}
|
|
3365
|
+
else {
|
|
3366
|
+
if (response && response.instances) {
|
|
3367
|
+
response?.instances?.forEach((tei) => {
|
|
3368
|
+
tei.enrollments?.forEach((enrollment) => {
|
|
3369
|
+
if (enrollment.program === programId) {
|
|
3370
|
+
uniqueOrgUnitIds.add(enrollment?.orgUnit);
|
|
3371
|
+
}
|
|
3372
|
+
});
|
|
3373
|
+
});
|
|
3374
|
+
}
|
|
3375
|
+
}
|
|
3358
3376
|
// If no unique orgUnits found, return immediately
|
|
3359
3377
|
if (uniqueOrgUnitIds.size === 0) {
|
|
3360
3378
|
return of({ ...response, orgUnitsMap: new Map() });
|
|
@@ -3385,7 +3403,9 @@ class LineListService {
|
|
|
3385
3403
|
getEvents(programId, orgUnit, page, pageSize, filters = [], startDate, endDate, ouMode, useOuModeWithOlderDHIS2Instance) {
|
|
3386
3404
|
const filterParams = buildFilters(filters);
|
|
3387
3405
|
const dateFilter = startDate && endDate ? `&startDate=${startDate}&endDate=${endDate}` : '';
|
|
3388
|
-
const ouModeIdentifier = ouMode && useOuModeWithOlderDHIS2Instance
|
|
3406
|
+
const ouModeIdentifier = ouMode && useOuModeWithOlderDHIS2Instance
|
|
3407
|
+
? `&ouMode=${ouMode}`
|
|
3408
|
+
: `&ouMode=${ouMode}`;
|
|
3389
3409
|
// const ouModeIdentifier = ouMode ? `&ouMode=${ouMode}`: ``;
|
|
3390
3410
|
return this.httpClient.get(`events.json?program=${programId}&orgUnit=${orgUnit}${ouModeIdentifier}&page=${page}&pageSize=${pageSize}&fields=*&totalPages=true&${filterParams}${dateFilter}`);
|
|
3391
3411
|
}
|
|
@@ -3407,7 +3427,7 @@ class LineListService {
|
|
|
3407
3427
|
return this.getTrackedEntityInstances(programId, orgUnit, page, pageSize, filters, startDate, endDate, ouMode, filterRootOrgUnit, useOuModeWithOlderDHIS2Instance).pipe(map$1((teis) => ({
|
|
3408
3428
|
metadata: programMetadata,
|
|
3409
3429
|
data: teis,
|
|
3410
|
-
orgUnits: teis.orgUnitsMap
|
|
3430
|
+
orgUnits: teis.orgUnitsMap,
|
|
3411
3431
|
})));
|
|
3412
3432
|
}
|
|
3413
3433
|
else {
|
|
@@ -3440,7 +3460,7 @@ const getProgramStageData = (response, programStageId, pager) => {
|
|
|
3440
3460
|
key: dataElementId,
|
|
3441
3461
|
}));
|
|
3442
3462
|
const dataElementsData = events.map((event, idx) => {
|
|
3443
|
-
|
|
3463
|
+
const row = {
|
|
3444
3464
|
event: event.event,
|
|
3445
3465
|
index: (pager.page - 1) * pager.pageSize + idx + 1,
|
|
3446
3466
|
};
|
|
@@ -3451,9 +3471,10 @@ const getProgramStageData = (response, programStageId, pager) => {
|
|
|
3451
3471
|
return { columns: entityColumns, data: dataElementsData };
|
|
3452
3472
|
};
|
|
3453
3473
|
const getTrackedEntityData = (response, programId, pager, filters) => {
|
|
3454
|
-
let teis = response.data
|
|
3455
|
-
.
|
|
3456
|
-
|
|
3474
|
+
let teis = response.data?.trackedEntities ??
|
|
3475
|
+
response.data?.instances ??
|
|
3476
|
+
[];
|
|
3477
|
+
const programMetaData = response.metadata.programTrackedEntityAttributes;
|
|
3457
3478
|
// //organisation units from metadata
|
|
3458
3479
|
// let orgUnitsFromMetaData = response.metadata.organisationUnits;
|
|
3459
3480
|
// //a Map to efficiently look up orgUnit names by ID
|
|
@@ -3520,7 +3541,7 @@ const getTrackedEntityData = (response, programId, pager, filters) => {
|
|
|
3520
3541
|
// Filter entityColumns to keep only those whose key exists in searchableAttributes
|
|
3521
3542
|
const filteredEntityColumns = entityColumns.filter((column) => searchableKeys.has(column.key));
|
|
3522
3543
|
const attributesData = teis.map((tei, idx) => {
|
|
3523
|
-
|
|
3544
|
+
const row = {
|
|
3524
3545
|
trackedEntityInstance: tei.trackedEntity,
|
|
3525
3546
|
index: (pager.page - 1) * pager.pageSize + idx + 1,
|
|
3526
3547
|
};
|
|
@@ -3550,15 +3571,15 @@ const getTrackedEntityData = (response, programId, pager, filters) => {
|
|
|
3550
3571
|
const getEventData = (response, pager) => {
|
|
3551
3572
|
const events = response.data.events;
|
|
3552
3573
|
const uniqueDataElements = new Set();
|
|
3553
|
-
events
|
|
3554
|
-
event
|
|
3574
|
+
events?.forEach((event) => {
|
|
3575
|
+
event?.dataValues.forEach((dv) => uniqueDataElements.add(dv.dataElement));
|
|
3555
3576
|
});
|
|
3556
3577
|
const entityColumns = Array.from(uniqueDataElements).map((dataElement) => ({
|
|
3557
3578
|
label: response.metadata.programStages[0].programStageDataElements.find((psde) => psde.dataElement.id === dataElement)?.dataElement.name || dataElement,
|
|
3558
3579
|
key: dataElement,
|
|
3559
3580
|
}));
|
|
3560
3581
|
const dataElementsData = events.map((event, idx) => {
|
|
3561
|
-
|
|
3582
|
+
const row = {
|
|
3562
3583
|
event: event.event,
|
|
3563
3584
|
index: (pager.page - 1) * pager.pageSize + idx + 1,
|
|
3564
3585
|
};
|
|
@@ -3836,8 +3857,15 @@ class LineListTableComponent extends ReactWrapperModule {
|
|
|
3836
3857
|
entityColumns = columns;
|
|
3837
3858
|
entityData = data;
|
|
3838
3859
|
}
|
|
3839
|
-
else if ('trackedEntities' in response.data
|
|
3840
|
-
|
|
3860
|
+
else if ('trackedEntities' in response.data ||
|
|
3861
|
+
'instances' in response.data) {
|
|
3862
|
+
const responseData = response.data;
|
|
3863
|
+
responsePager = response.data.pager || {
|
|
3864
|
+
page: responseData.page,
|
|
3865
|
+
pageSize: responseData.pageSize,
|
|
3866
|
+
total: responseData.total,
|
|
3867
|
+
pageCount: responseData.pageCount,
|
|
3868
|
+
};
|
|
3841
3869
|
const { columns, data, filteredEntityColumns } = getTrackedEntityData(response, this.programId, pager, this.filters);
|
|
3842
3870
|
entityColumns = columns;
|
|
3843
3871
|
entityData = data;
|
|
@@ -3845,7 +3873,10 @@ class LineListTableComponent extends ReactWrapperModule {
|
|
|
3845
3873
|
const checkValues = [
|
|
3846
3874
|
...new Set(response.data?.trackedEntities?.[0]?.enrollments?.[0]?.events?.flatMap((event) => event.dataValues
|
|
3847
3875
|
.filter((dataValue) => /^[A-Za-z]{3}$/.test(dataValue.value))
|
|
3848
|
-
.map((dataValue) => dataValue.value))
|
|
3876
|
+
.map((dataValue) => dataValue.value)) ??
|
|
3877
|
+
response.data?.instances?.[0]?.enrollments?.[0]?.events?.flatMap((event) => event.dataValues
|
|
3878
|
+
.filter((dataValue) => /^[A-Za-z]{3}$/.test(dataValue.value))
|
|
3879
|
+
.map((dataValue) => dataValue.value))),
|
|
3849
3880
|
];
|
|
3850
3881
|
if (checkValues) {
|
|
3851
3882
|
// this.firstValue.emit(firstTei);
|
|
@@ -3894,7 +3925,8 @@ class LineListTableComponent extends ReactWrapperModule {
|
|
|
3894
3925
|
this.lineListService
|
|
3895
3926
|
.getLineListData(this.programId, this.orgUnit, this.programStageId, pager.page, 1000, this.attributeFilters, this.startDate, this.endDate, this.ouMode)
|
|
3896
3927
|
.subscribe((response) => {
|
|
3897
|
-
if ('trackedEntities' in response.data
|
|
3928
|
+
if ('trackedEntities' in response.data ||
|
|
3929
|
+
'instances' in response.data) {
|
|
3898
3930
|
const trackedEntityInstances = response.data.trackedEntities;
|
|
3899
3931
|
// Map TEIs to objects with teiId and enrollmentId
|
|
3900
3932
|
const teiEnrollmentList = trackedEntityInstances
|
|
@@ -6757,7 +6789,6 @@ class SelectionFiltersComponent extends ReactWrapperModule {
|
|
|
6757
6789
|
} },
|
|
6758
6790
|
React__default.createElement("div", { style: { width: '100%' } },
|
|
6759
6791
|
React__default.createElement(InputField$1, { value: displayValue, label: "Organization Unit", readOnly: false, onFocus: () => setShowOrgUnit(true), onBlur: () => {
|
|
6760
|
-
this.ngZone.run(() => console.log('THIS IS IT::: '));
|
|
6761
6792
|
setTouched(true);
|
|
6762
6793
|
} }),
|
|
6763
6794
|
showOrgUnit && (React__default.createElement(this.FieldOrgUnitSelector, { onCancelOrgUnit: () => {
|