Skip to content

Commit

Permalink
Merge branch 'feat/v41-upgrade' into fix/number-inputs
Browse files Browse the repository at this point in the history
  • Loading branch information
MatiasArriola committed Feb 4, 2025
2 parents c369e39 + 814e5fa commit 3f5f42d
Show file tree
Hide file tree
Showing 6 changed files with 53 additions and 28 deletions.
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
"@dhis2/ui": "6.12.0",
"@emotion/react": "^11.11.1",
"@emotion/styled": "^11.11.0",
"@eyeseetea/d2-api": "1.17.0-beta.4",
"@eyeseetea/d2-api": "1.18.0-beta.1",
"@eyeseetea/d2-ui-components": "2.7.0",
"@eyeseetea/feedback-component": "0.0.3",
"@material-ui/core": "4.12.4",
Expand Down
49 changes: 37 additions & 12 deletions src/data/repositories/SurveyFormD2Repository.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import { D2Api } from "@eyeseetea/d2-api/2.36";
import { Future } from "../../domain/entities/generic/Future";
import { Id } from "../../domain/entities/Ref";
import { Id, NamedRef } from "../../domain/entities/Ref";
import { SurveyRepository } from "../../domain/repositories/SurveyRepository";
import { apiToFuture, FutureData } from "../api-futures";
import _ from "../../domain/entities/generic/Collection";
Expand Down Expand Up @@ -265,7 +265,6 @@ export class SurveyD2Repository implements SurveyRepository {
return filter;
}

//Currently tracker programs are only in Prevalence module
private getTrackerProgramSurveys(
surveyFormType: SURVEY_FORM_TYPES,
programId: Id,
Expand Down Expand Up @@ -300,8 +299,12 @@ export class SurveyD2Repository implements SurveyRepository {
})
).flatMap((trackedEntities: TrackedEntitiesGetResponse<typeof trackedEntityFields>) => {
const instances: D2TrackerEntitySelectedPick[] = trackedEntities.instances;
const surveys = mapTrackedEntityToSurvey(instances, surveyFormType);
return Future.success(surveys);
return this.getOrgUnitNames(instances.map(instance => instance.orgUnit)).flatMap(
orgUnits => {
const surveys = mapTrackedEntityToSurvey(instances, surveyFormType, orgUnits);
return Future.success(surveys);
}
);
});
}

Expand All @@ -327,14 +330,37 @@ export class SurveyD2Repository implements SurveyRepository {
).flatMap(
(trackedEntities: TrackedEntitiesGetResponse<typeof trackedEntityFields>) => {
const instances: D2TrackerEntitySelectedPick[] = trackedEntities.instances;
const surveys = mapTrackedEntityToSurvey(instances, surveyFormType);
return Future.success(surveys);
return this.getOrgUnitNames(
instances.map(instance => instance.orgUnit)
).flatMap(orgUnits => {
const surveys = mapTrackedEntityToSurvey(
instances,
surveyFormType,
orgUnits
);
return Future.success(surveys);
});
}
);
})
).flatMap(listOfSurveys => Future.success(_(listOfSurveys).flatten().value()));
}

private getOrgUnitNames(orgUnitIds: Id[]): FutureData<NamedRef[]> {
return apiToFuture(
this.api.models.organisationUnits.get({
fields: { id: true, name: true },
filter: { id: { in: orgUnitIds } },
paging: false,
})
).flatMap(orgUnitsResponse => {
const orgUnits = orgUnitsResponse.objects.map(ou => {
return { id: ou.id, name: ou.name };
});
return Future.success(orgUnits);
});
}

private getEventProgramSurveys(
surveyFormType: SURVEY_FORM_TYPES,
programId: Id,
Expand All @@ -360,8 +386,11 @@ export class SurveyD2Repository implements SurveyRepository {
})
).flatMap(response => {
const events = response.instances;
const surveys = mapEventToSurvey(events, surveyFormType, programId);
return Future.success(surveys);

return this.getOrgUnitNames(events.map(event => event.orgUnit)).flatMap(orgUnits => {
const surveys = mapEventToSurvey(events, surveyFormType, programId, orgUnits);
return Future.success(surveys);
});
});
}

Expand Down Expand Up @@ -481,7 +510,6 @@ export class SurveyD2Repository implements SurveyRepository {
occurredAt: "",
dataValues: [],
programStage: "",
scheduledAt: "",
};

const payload: TrackerPostRequest = {
Expand Down Expand Up @@ -510,10 +538,7 @@ export class SurveyD2Repository implements SurveyRepository {
orgUnit: orgUnitId,
trackedEntity: teiId,
trackedEntityType: getTrackedEntityAttributeType(programId),
createdAtClient: "",
enrollments: [],
relationships: [],
updatedAtClient: "",
attributes: [],
};

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -155,7 +155,6 @@ export class SurveyTestRepository implements SurveyRepository {
{
dataElement: "de1",
value: "0",
providedElsewhere: false,
updatedAt: "",
storedBy: "",
createdAt: "",
Expand Down
3 changes: 1 addition & 2 deletions src/data/utils/surveyFormMappers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -324,10 +324,8 @@ export const mapQuestionnaireToEvent = (
program: programId,
status: "ACTIVE",
occurredAt: new Date().toISOString().split("T")?.at(0) || "",

dataValues: dataValues,
programStage: "",
scheduledAt: "",
};
return Future.success({ events: [event] });
}
Expand Down Expand Up @@ -394,6 +392,7 @@ export const mapQuestionnaireToTrackedEntities = (

const enrollments: D2TrackerEnrollment[] = [
{
trackedEntity: teiId ?? "",
orgUnit: orgUnitId,
program: programId,
enrollment: questionnaire.subLevelDetails?.enrollmentId ?? "",
Expand Down
18 changes: 10 additions & 8 deletions src/data/utils/surveyListMappers.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ import {
SURVEY_PATIENT_CODE_TEA_ID,
} from "../entities/D2Survey";
import { getSurveyNameBySurveyFormType } from "./surveyProgramHelper";
import { Id } from "../../domain/entities/Ref";
import { Id, NamedRef } from "../../domain/entities/Ref";
import { SelectedPick } from "@eyeseetea/d2-api/api";
import { D2TrackerEvent } from "@eyeseetea/d2-api/api/trackerEvents";

Expand All @@ -45,7 +45,8 @@ export type D2TrackerEntitySelectedPick = SelectedPick<

export const mapTrackedEntityToSurvey = (
trackedEntities: D2TrackerEntitySelectedPick[],
surveyFormType: SURVEY_FORM_TYPES
surveyFormType: SURVEY_FORM_TYPES,
orgUnits?: NamedRef[]
): Survey[] => {
return trackedEntities.map(trackedEntityInstance => {
const parentPrevalenceSurveyId =
Expand Down Expand Up @@ -106,7 +107,6 @@ export const mapTrackedEntityToSurvey = (
name: "",
surveyType: "",
},
//TO DO : Fix for upgrade
//@ts-ignore
startDate: trackedEntityInstance.enrollments[0]?.createdAt
? //@ts-ignore
Expand All @@ -116,9 +116,7 @@ export const mapTrackedEntityToSurvey = (
status: "ACTIVE",
assignedOrgUnit: {
id: trackedEntityInstance.orgUnit ?? "",
//TO DO : Fix for upgrade
//@ts-ignore
name: trackedEntityInstance.enrollments?.[0]?.orgUnitName ?? "",
name: orgUnits?.find(ou => ou.id === trackedEntityInstance.orgUnit)?.name ?? "",
},
surveyType: "",
parentWardRegisterId: parentWardId,
Expand All @@ -134,7 +132,8 @@ export const mapTrackedEntityToSurvey = (
export const mapEventToSurvey = (
events: D2TrackerEvent[],
surveyFormType: SURVEY_FORM_TYPES,
programId: Id
programId: Id,
orgUnits?: NamedRef[]
): Survey[] => {
return events.map((event: D2TrackerEvent) => {
const surveyProperties = new Map(
Expand Down Expand Up @@ -195,7 +194,10 @@ export const mapEventToSurvey = (
: event.status === "COMPLETED"
? ("COMPLETED" as SURVEY_STATUSES)
: ("ACTIVE" as SURVEY_STATUSES),
assignedOrgUnit: { id: event.orgUnit, name: event.orgUnitName ?? "" },
assignedOrgUnit: {
id: event.orgUnit,
name: orgUnits?.find(ou => ou.id === event.orgUnit)?.name ?? "",
},
surveyType: surveyType,
parentWardRegisterId: parentWardRegisterId,
surveyFormType: surveyFormType,
Expand Down
8 changes: 4 additions & 4 deletions yarn.lock
Original file line number Diff line number Diff line change
Expand Up @@ -3423,10 +3423,10 @@
resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.49.0.tgz#86f79756004a97fa4df866835093f1df3d03c333"
integrity sha512-1S8uAY/MTJqVx0SC4epBq+N2yhuwtNwLbJYNZyhL2pO1ZVKn5HFXav5T41Ryzy9K9V7ZId2JB2oy/W4aCd9/2w==

"@eyeseetea/d2-api@1.17.0-beta.4":
version "1.17.0-beta.4"
resolved "https://registry.yarnpkg.com/@eyeseetea/d2-api/-/d2-api-1.17.0-beta.4.tgz#10352f472a86430b4153b1bdc6f7f2279ce8675a"
integrity sha512-1NexOomGQUqg31QdFmSxKDfIUAVH9f9EyUkcEhWoOU6w+gveoSz8a87gp1cuC0s/KgBnf4mn9BczHtNKGz4YEQ==
"@eyeseetea/d2-api@1.18.0-beta.1":
version "1.18.0-beta.1"
resolved "https://registry.yarnpkg.com/@eyeseetea/d2-api/-/d2-api-1.18.0-beta.1.tgz#9d99e21091bcf62e74988449a8cbf6ad18448bb7"
integrity sha512-PV3534gcPU3600T4xFWozs0upy3J5fg1lC3EYtEblMsqjkmUQFw00RVBAo0B/WcHth5fOVVkABc3jEKfMuWTSQ==
dependencies:
abort-controller "3.0.0"
axios "1.6.4"
Expand Down

0 comments on commit 3f5f42d

Please sign in to comment.