From 3908d6b412156453b9d400bb04a19b48f562c801 Mon Sep 17 00:00:00 2001 From: Dheepak Ramanathan Date: Wed, 4 Feb 2026 14:11:09 -0700 Subject: [PATCH 01/10] Update get institution API --- ...oller.getInstitutionDetailById.e2e-spec.ts | 23 +++++++++++- .../institution.controller.service.ts | 5 +++ .../institution/models/institution.dto.ts | 18 +++++++--- .../test-utils/src/factories/institution.ts | 35 ++++++++++++++++--- 4 files changed, 71 insertions(+), 10 deletions(-) diff --git a/sources/packages/backend/apps/api/src/route-controllers/institution/_tests_/e2e/institution.aest.controller.getInstitutionDetailById.e2e-spec.ts b/sources/packages/backend/apps/api/src/route-controllers/institution/_tests_/e2e/institution.aest.controller.getInstitutionDetailById.e2e-spec.ts index c5f6daec2a..b7f9bbd598 100644 --- a/sources/packages/backend/apps/api/src/route-controllers/institution/_tests_/e2e/institution.aest.controller.getInstitutionDetailById.e2e-spec.ts +++ b/sources/packages/backend/apps/api/src/route-controllers/institution/_tests_/e2e/institution.aest.controller.getInstitutionDetailById.e2e-spec.ts @@ -13,6 +13,12 @@ import { } from "@sims/test-utils"; import { InstitutionDetailAPIOutDTO } from "../../models/institution.dto"; import { getISODateOnlyString } from "@sims/utilities"; +import { BC_PROVINCE_CODE, CANADA_COUNTRY_CODE } from "@sims/sims-db/constant"; +import { + InstitutionClassification, + InstitutionMedicalSchoolStatus, + InstitutionOrganizationStatus, +} from "@sims/sims-db"; describe("InstitutionAESTController(e2e)-getInstitutionDetailById", () => { let app: INestApplication; @@ -26,7 +32,17 @@ describe("InstitutionAESTController(e2e)-getInstitutionDetailById", () => { it("Should return institution details when an institution with given institution id exist.", async () => { // Arrange - const institution = await db.institution.save(createFakeInstitution()); + const institution = await db.institution.save( + createFakeInstitution(undefined, { + initialValues: { + country: CANADA_COUNTRY_CODE, + province: BC_PROVINCE_CODE, + classification: InstitutionClassification.Private, + organizationStatus: InstitutionOrganizationStatus.Profit, + medicalSchoolStatus: InstitutionMedicalSchoolStatus.No, + }, + }), + ); const mailingAddress = institution.institutionAddress.mailingAddress; const institutionType = await db.institutionType.findOne({ select: { id: true, name: true }, @@ -60,6 +76,11 @@ describe("InstitutionAESTController(e2e)-getInstitutionDetailById", () => { isBCPrivate: true, isBCPublic: false, hasBusinessGuid: true, + country: CANADA_COUNTRY_CODE, + province: BC_PROVINCE_CODE, + classification: InstitutionClassification.Private, + organizationStatus: InstitutionOrganizationStatus.Profit, + medicalSchoolStatus: InstitutionMedicalSchoolStatus.No, }; const endpoint = `/aest/institution/${institution.id}`; const token = await getAESTToken(AESTGroups.Operations); diff --git a/sources/packages/backend/apps/api/src/route-controllers/institution/institution.controller.service.ts b/sources/packages/backend/apps/api/src/route-controllers/institution/institution.controller.service.ts index 448b7b747a..2891f17581 100644 --- a/sources/packages/backend/apps/api/src/route-controllers/institution/institution.controller.service.ts +++ b/sources/packages/backend/apps/api/src/route-controllers/institution/institution.controller.service.ts @@ -70,6 +70,11 @@ export class InstitutionControllerService { isBCPrivate, isBCPublic, hasBusinessGuid: !!institutionDetail.businessGuid, + country: institutionDetail.country, + province: institutionDetail.province, + classification: institutionDetail.classification, + organizationStatus: institutionDetail.organizationStatus, + medicalSchoolStatus: institutionDetail.medicalSchoolStatus, }; } diff --git a/sources/packages/backend/apps/api/src/route-controllers/institution/models/institution.dto.ts b/sources/packages/backend/apps/api/src/route-controllers/institution/models/institution.dto.ts index 6c0b691dd7..5f0c8cae72 100644 --- a/sources/packages/backend/apps/api/src/route-controllers/institution/models/institution.dto.ts +++ b/sources/packages/backend/apps/api/src/route-controllers/institution/models/institution.dto.ts @@ -18,6 +18,9 @@ import { import { OPERATING_NAME_MAX_LENGTH, LEGAL_OPERATING_NAME_MAX_LENGTH, + InstitutionClassification, + InstitutionOrganizationStatus, + InstitutionMedicalSchoolStatus, } from "@sims/sims-db"; import { OTHER_REGULATING_BODY_MAX_LENGTH } from "../../../constants"; @@ -117,7 +120,12 @@ export class InstitutionProfileAPIInDTO extends InstitutionContactAPIInDTO { institutionType: number; } -export class InstitutionProfileAPIOutDTO extends InstitutionContactAPIOutDTO { +export class InstitutionDetailAPIOutDTO { + primaryContactEmail: string; + primaryContactFirstName: string; + primaryContactLastName: string; + primaryContactPhone: string; + mailingAddress: AddressDetailsAPIOutDTO; operatingName: string; primaryPhone: string; primaryEmail: string; @@ -126,9 +134,6 @@ export class InstitutionProfileAPIOutDTO extends InstitutionContactAPIOutDTO { otherRegulatingBody?: string; establishedDate: string; institutionType: number; -} - -export class InstitutionDetailAPIOutDTO extends InstitutionProfileAPIOutDTO { legalOperatingName: string; institutionTypeName?: string; isBCPrivate: boolean; @@ -138,6 +143,11 @@ export class InstitutionDetailAPIOutDTO extends InstitutionProfileAPIOutDTO { * associated with, if not it is a basic BCeID institution. */ hasBusinessGuid: boolean; + country?: string; + province?: string; + classification?: InstitutionClassification; + organizationStatus?: InstitutionOrganizationStatus; + medicalSchoolStatus?: InstitutionMedicalSchoolStatus; } export class InstitutionBasicAPIOutDTO { diff --git a/sources/packages/backend/libs/test-utils/src/factories/institution.ts b/sources/packages/backend/libs/test-utils/src/factories/institution.ts index a43cc21f27..656ec3ac25 100644 --- a/sources/packages/backend/libs/test-utils/src/factories/institution.ts +++ b/sources/packages/backend/libs/test-utils/src/factories/institution.ts @@ -1,16 +1,31 @@ import { faker } from "@faker-js/faker"; -import { Institution, InstitutionType } from "@sims/sims-db"; -import { INSTITUTION_TYPE_BC_PRIVATE } from "@sims/sims-db/constant"; +import { + Institution, + InstitutionClassification, + InstitutionMedicalSchoolStatus, + InstitutionOrganizationStatus, + InstitutionType, +} from "@sims/sims-db"; +import { + BC_PROVINCE_CODE, + CANADA_COUNTRY_CODE, + INSTITUTION_TYPE_BC_PRIVATE, +} from "@sims/sims-db/constant"; /** * Create fake institution. * @param relations institution relations. * - `institutionType` institution type. + * @param options institution options. + * - `initialValues` initial values for the institution creation. * @returns institution. */ -export function createFakeInstitution(relations?: { - institutionType?: InstitutionType; -}): Institution { +export function createFakeInstitution( + relations?: { + institutionType?: InstitutionType; + }, + options?: { initialValues?: Partial }, +): Institution { const institution = new Institution(); institution.businessGuid = faker.string.uuid(); institution.legalOperatingName = faker.company.name(); @@ -42,5 +57,15 @@ export function createFakeInstitution(relations?: { postalCode: faker.location.zipCode("A9A9A9"), }, }; + institution.country = options?.initialValues?.country ?? CANADA_COUNTRY_CODE; + institution.province = options?.initialValues?.province ?? BC_PROVINCE_CODE; + institution.classification = + options?.initialValues?.classification ?? InstitutionClassification.Private; + institution.organizationStatus = + options?.initialValues?.organizationStatus ?? + InstitutionOrganizationStatus.Profit; + institution.medicalSchoolStatus = + options?.initialValues?.medicalSchoolStatus ?? + InstitutionMedicalSchoolStatus.No; return institution; } From bc905263578709c28b0c8dc48f62007e5acf9aab Mon Sep 17 00:00:00 2001 From: Dheepak Ramanathan Date: Wed, 4 Feb 2026 15:59:23 -0700 Subject: [PATCH 02/10] Added institution E2E test. --- ...ontroller.getInstitutionDetail.e2e-spec.ts | 118 ++++++++++++++++++ .../auth/institution-user-helpers.ts | 2 +- 2 files changed, 119 insertions(+), 1 deletion(-) create mode 100644 sources/packages/backend/apps/api/src/route-controllers/institution/_tests_/e2e/institution.institutions.controller.getInstitutionDetail.e2e-spec.ts diff --git a/sources/packages/backend/apps/api/src/route-controllers/institution/_tests_/e2e/institution.institutions.controller.getInstitutionDetail.e2e-spec.ts b/sources/packages/backend/apps/api/src/route-controllers/institution/_tests_/e2e/institution.institutions.controller.getInstitutionDetail.e2e-spec.ts new file mode 100644 index 0000000000..7f86c69fa3 --- /dev/null +++ b/sources/packages/backend/apps/api/src/route-controllers/institution/_tests_/e2e/institution.institutions.controller.getInstitutionDetail.e2e-spec.ts @@ -0,0 +1,118 @@ +import { HttpStatus, INestApplication } from "@nestjs/common"; +import * as request from "supertest"; +import { + BEARER_AUTH_TYPE, + createTestingAppModule, + getInstitutionToken, + InstitutionTokenTypes, + mockInstitutionUserAuthorization, +} from "../../../../testHelpers"; +import { + E2EDataSources, + createE2EDataSources, + createFakeInstitution, +} from "@sims/test-utils"; +import { + InstitutionClassification, + InstitutionMedicalSchoolStatus, + InstitutionOrganizationStatus, + InstitutionUserTypes, +} from "@sims/sims-db"; +import { CANADA_COUNTRY_CODE, BC_PROVINCE_CODE } from "@sims/sims-db/constant"; +import { getISODateOnlyString } from "@sims/utilities"; +import { InstitutionUserAuthorizations } from "../../../../services"; +import { TestingModule } from "@nestjs/testing"; + +describe("InstitutionInstitutionsController(e2e)-getInstitutionDetail", () => { + let app: INestApplication; + let db: E2EDataSources; + let appModule: TestingModule; + const endpoint = "/institutions/institution"; + + beforeAll(async () => { + const { nestApplication, module, dataSource } = + await createTestingAppModule(); + app = nestApplication; + appModule = module; + db = createE2EDataSources(dataSource); + }); + + it("Should return details of the institution associated to the institution user from the user token when the institution is already set up.", async () => { + // Arrange + const institution = await db.institution.save( + createFakeInstitution(undefined, { + initialValues: { + country: CANADA_COUNTRY_CODE, + province: BC_PROVINCE_CODE, + classification: InstitutionClassification.Private, + organizationStatus: InstitutionOrganizationStatus.Profit, + medicalSchoolStatus: InstitutionMedicalSchoolStatus.No, + }, + }), + ); + const mailingAddress = institution.institutionAddress.mailingAddress; + const institutionType = await db.institutionType.findOne({ + select: { id: true, name: true }, + where: { id: institution.institutionType.id }, + }); + const expectedInstitutionDetails = { + legalOperatingName: institution.legalOperatingName, + operatingName: institution.operatingName, + primaryPhone: institution.primaryPhone, + primaryEmail: institution.primaryEmail, + website: institution.website, + regulatingBody: institution.regulatingBody, + otherRegulatingBody: institution.otherRegulatingBody ?? null, + institutionType: institutionType.id, + institutionTypeName: institutionType.name, + establishedDate: getISODateOnlyString(institution.establishedDate), + primaryContactEmail: institution.institutionPrimaryContact.email, + primaryContactFirstName: institution.institutionPrimaryContact.firstName, + primaryContactLastName: institution.institutionPrimaryContact.lastName, + primaryContactPhone: institution.institutionPrimaryContact.phone, + mailingAddress: { + addressLine1: mailingAddress.addressLine1, + addressLine2: mailingAddress.addressLine2, + provinceState: mailingAddress.provinceState, + country: mailingAddress.country, + city: mailingAddress.city, + postalCode: mailingAddress.postalCode, + canadaPostalCode: mailingAddress.postalCode, + selectedCountry: mailingAddress.selectedCountry, + }, + isBCPrivate: true, + isBCPublic: false, + hasBusinessGuid: true, + country: CANADA_COUNTRY_CODE, + province: BC_PROVINCE_CODE, + classification: InstitutionClassification.Private, + organizationStatus: InstitutionOrganizationStatus.Profit, + medicalSchoolStatus: InstitutionMedicalSchoolStatus.No, + }; + // Mock institution user authorization so that the user token will return the fake institution id and mocked roles. + await mockInstitutionUserAuthorization( + appModule, + new InstitutionUserAuthorizations(institution.id, [ + { + locationId: null, + userRole: null, + userType: InstitutionUserTypes.admin, + }, + ]), + ); + const institutionUserToken = await getInstitutionToken( + InstitutionTokenTypes.CollegeFUser, + ); + + // Act/Assert + await request(app.getHttpServer()) + .get(endpoint) + .auth(institutionUserToken, BEARER_AUTH_TYPE) + .expect(HttpStatus.OK) + .expect(expectedInstitutionDetails); + }); + + afterAll(async () => { + await app?.close(); + }); +}); diff --git a/sources/packages/backend/apps/api/src/testHelpers/auth/institution-user-helpers.ts b/sources/packages/backend/apps/api/src/testHelpers/auth/institution-user-helpers.ts index 609414246b..6f3294a8a8 100644 --- a/sources/packages/backend/apps/api/src/testHelpers/auth/institution-user-helpers.ts +++ b/sources/packages/backend/apps/api/src/testHelpers/auth/institution-user-helpers.ts @@ -22,7 +22,7 @@ export async function mockInstitutionUserAuthorization( ); jest .spyOn(institutionUserAuthService, "getAuthorizationsByUserName") - .mockImplementation(() => { + .mockImplementationOnce(() => { return Promise.resolve(institutionUserAuthorizations); }); } From 42f6adbfd4c1d8ec20c3486c92c2518235b4075d Mon Sep 17 00:00:00 2001 From: Dheepak Ramanathan Date: Wed, 4 Feb 2026 16:35:02 -0700 Subject: [PATCH 03/10] Update Web DTO --- ...oller.getInstitutionDetailById.e2e-spec.ts | 33 ++++++----- ...ontroller.getInstitutionDetail.e2e-spec.ts | 41 +++++++------ .../src/services/http/dto/Institution.dto.ts | 58 +++++++++---------- .../types/contracts/InstitutionContract.ts | 24 ++++++++ 4 files changed, 95 insertions(+), 61 deletions(-) diff --git a/sources/packages/backend/apps/api/src/route-controllers/institution/_tests_/e2e/institution.aest.controller.getInstitutionDetailById.e2e-spec.ts b/sources/packages/backend/apps/api/src/route-controllers/institution/_tests_/e2e/institution.aest.controller.getInstitutionDetailById.e2e-spec.ts index b7f9bbd598..dc74183a92 100644 --- a/sources/packages/backend/apps/api/src/route-controllers/institution/_tests_/e2e/institution.aest.controller.getInstitutionDetailById.e2e-spec.ts +++ b/sources/packages/backend/apps/api/src/route-controllers/institution/_tests_/e2e/institution.aest.controller.getInstitutionDetailById.e2e-spec.ts @@ -13,7 +13,11 @@ import { } from "@sims/test-utils"; import { InstitutionDetailAPIOutDTO } from "../../models/institution.dto"; import { getISODateOnlyString } from "@sims/utilities"; -import { BC_PROVINCE_CODE, CANADA_COUNTRY_CODE } from "@sims/sims-db/constant"; +import { + BC_PROVINCE_CODE, + CANADA_COUNTRY_CODE, + INSTITUTION_TYPE_BC_PRIVATE, +} from "@sims/sims-db/constant"; import { InstitutionClassification, InstitutionMedicalSchoolStatus, @@ -32,22 +36,25 @@ describe("InstitutionAESTController(e2e)-getInstitutionDetailById", () => { it("Should return institution details when an institution with given institution id exist.", async () => { // Arrange + const institutionType = await db.institutionType.findOne({ + select: { id: true, name: true }, + where: { id: INSTITUTION_TYPE_BC_PRIVATE }, + }); const institution = await db.institution.save( - createFakeInstitution(undefined, { - initialValues: { - country: CANADA_COUNTRY_CODE, - province: BC_PROVINCE_CODE, - classification: InstitutionClassification.Private, - organizationStatus: InstitutionOrganizationStatus.Profit, - medicalSchoolStatus: InstitutionMedicalSchoolStatus.No, + createFakeInstitution( + { institutionType }, + { + initialValues: { + country: CANADA_COUNTRY_CODE, + province: BC_PROVINCE_CODE, + classification: InstitutionClassification.Private, + organizationStatus: InstitutionOrganizationStatus.Profit, + medicalSchoolStatus: InstitutionMedicalSchoolStatus.No, + }, }, - }), + ), ); const mailingAddress = institution.institutionAddress.mailingAddress; - const institutionType = await db.institutionType.findOne({ - select: { id: true, name: true }, - where: { id: institution.institutionType.id }, - }); const expectedInstitutionDetails: InstitutionDetailAPIOutDTO = { legalOperatingName: institution.legalOperatingName, operatingName: institution.operatingName, diff --git a/sources/packages/backend/apps/api/src/route-controllers/institution/_tests_/e2e/institution.institutions.controller.getInstitutionDetail.e2e-spec.ts b/sources/packages/backend/apps/api/src/route-controllers/institution/_tests_/e2e/institution.institutions.controller.getInstitutionDetail.e2e-spec.ts index 7f86c69fa3..524b184179 100644 --- a/sources/packages/backend/apps/api/src/route-controllers/institution/_tests_/e2e/institution.institutions.controller.getInstitutionDetail.e2e-spec.ts +++ b/sources/packages/backend/apps/api/src/route-controllers/institution/_tests_/e2e/institution.institutions.controller.getInstitutionDetail.e2e-spec.ts @@ -18,7 +18,11 @@ import { InstitutionOrganizationStatus, InstitutionUserTypes, } from "@sims/sims-db"; -import { CANADA_COUNTRY_CODE, BC_PROVINCE_CODE } from "@sims/sims-db/constant"; +import { + CANADA_COUNTRY_CODE, + BC_PROVINCE_CODE, + INSTITUTION_TYPE_BC_PUBLIC, +} from "@sims/sims-db/constant"; import { getISODateOnlyString } from "@sims/utilities"; import { InstitutionUserAuthorizations } from "../../../../services"; import { TestingModule } from "@nestjs/testing"; @@ -39,22 +43,25 @@ describe("InstitutionInstitutionsController(e2e)-getInstitutionDetail", () => { it("Should return details of the institution associated to the institution user from the user token when the institution is already set up.", async () => { // Arrange + const institutionType = await db.institutionType.findOne({ + select: { id: true, name: true }, + where: { id: INSTITUTION_TYPE_BC_PUBLIC }, + }); const institution = await db.institution.save( - createFakeInstitution(undefined, { - initialValues: { - country: CANADA_COUNTRY_CODE, - province: BC_PROVINCE_CODE, - classification: InstitutionClassification.Private, - organizationStatus: InstitutionOrganizationStatus.Profit, - medicalSchoolStatus: InstitutionMedicalSchoolStatus.No, + createFakeInstitution( + { institutionType }, + { + initialValues: { + country: CANADA_COUNTRY_CODE, + province: BC_PROVINCE_CODE, + classification: InstitutionClassification.Public, + organizationStatus: InstitutionOrganizationStatus.NotForProfit, + medicalSchoolStatus: InstitutionMedicalSchoolStatus.No, + }, }, - }), + ), ); const mailingAddress = institution.institutionAddress.mailingAddress; - const institutionType = await db.institutionType.findOne({ - select: { id: true, name: true }, - where: { id: institution.institutionType.id }, - }); const expectedInstitutionDetails = { legalOperatingName: institution.legalOperatingName, operatingName: institution.operatingName, @@ -80,13 +87,13 @@ describe("InstitutionInstitutionsController(e2e)-getInstitutionDetail", () => { canadaPostalCode: mailingAddress.postalCode, selectedCountry: mailingAddress.selectedCountry, }, - isBCPrivate: true, - isBCPublic: false, + isBCPrivate: false, + isBCPublic: true, hasBusinessGuid: true, country: CANADA_COUNTRY_CODE, province: BC_PROVINCE_CODE, - classification: InstitutionClassification.Private, - organizationStatus: InstitutionOrganizationStatus.Profit, + classification: InstitutionClassification.Public, + organizationStatus: InstitutionOrganizationStatus.NotForProfit, medicalSchoolStatus: InstitutionMedicalSchoolStatus.No, }; // Mock institution user authorization so that the user token will return the fake institution id and mocked roles. diff --git a/sources/packages/web/src/services/http/dto/Institution.dto.ts b/sources/packages/web/src/services/http/dto/Institution.dto.ts index c8840bf9ba..48d7dfd70b 100644 --- a/sources/packages/web/src/services/http/dto/Institution.dto.ts +++ b/sources/packages/web/src/services/http/dto/Institution.dto.ts @@ -1,18 +1,15 @@ -import { ClientIdType, DesignationAgreementStatus } from "@/types"; +import { + DesignationAgreementStatus, + InstitutionClassification, + InstitutionMedicalSchoolStatus, + InstitutionOrganizationStatus, +} from "@/types"; import { AddressAPIOutDTO, AddressDetailsFormAPIDTO, } from "@/services/http/dto"; import { Expose } from "class-transformer"; -export interface InstitutionContactAPIOutDTO { - primaryContactEmail: string; - primaryContactFirstName: string; - primaryContactLastName: string; - primaryContactPhone: string; - mailingAddress: AddressAPIOutDTO; -} - export class InstitutionContactAPIInDTO { @Expose() primaryContactEmail: string; @@ -26,18 +23,6 @@ export class InstitutionContactAPIInDTO { mailingAddress: AddressDetailsFormAPIDTO; } -export interface InstitutionProfileAPIOutDTO - extends InstitutionContactAPIOutDTO { - operatingName: string; - primaryPhone: string; - primaryEmail: string; - website: string; - regulatingBody: string; - otherRegulatingBody?: string; - establishedDate: string; - institutionType: number; -} - export class InstitutionProfileAPIInDTO extends InstitutionContactAPIInDTO { @Expose() operatingName: string; @@ -57,23 +42,34 @@ export class InstitutionProfileAPIInDTO extends InstitutionContactAPIInDTO { institutionType: number; } -export interface InstitutionDetailAPIOutDTO - extends InstitutionProfileAPIOutDTO { +export interface InstitutionDetailAPIOutDTO { + primaryContactEmail: string; + primaryContactFirstName: string; + primaryContactLastName: string; + primaryContactPhone: string; + mailingAddress: AddressAPIOutDTO; + operatingName: string; + primaryPhone: string; + primaryEmail: string; + website: string; + regulatingBody: string; + otherRegulatingBody?: string; + establishedDate: string; + institutionType: number; legalOperatingName: string; - /** - * @deprecated Need to be removed. - * Not removed here as it fails to compile the cypress code. - */ - formattedEstablishedDate?: string; institutionTypeName?: string; - isBCPrivate?: boolean; - isBCPublic?: boolean; - clientType?: ClientIdType; + isBCPrivate: boolean; + isBCPublic: boolean; /** * Indicates if the institution has a BCeID business guid * associated with, if not it is a basic BCeID institution. */ hasBusinessGuid: boolean; + country?: string; + province?: string; + classification?: InstitutionClassification; + organizationStatus?: InstitutionOrganizationStatus; + medicalSchoolStatus?: InstitutionMedicalSchoolStatus; } export interface InstitutionDetailAPIInDTO extends InstitutionProfileAPIInDTO { diff --git a/sources/packages/web/src/types/contracts/InstitutionContract.ts b/sources/packages/web/src/types/contracts/InstitutionContract.ts index 3ba593b3ef..387292618d 100644 --- a/sources/packages/web/src/types/contracts/InstitutionContract.ts +++ b/sources/packages/web/src/types/contracts/InstitutionContract.ts @@ -26,3 +26,27 @@ export interface InstitutionProfileForm { institutionType: number; institutionTypeName?: string; } + +/** + * Institution classification types. + */ +export enum InstitutionClassification { + Public = "Public", + Private = "Private", +} + +/** + * Institution organization status types. + */ +export enum InstitutionOrganizationStatus { + Profit = "Profit", + NotForProfit = "Not for profit", +} + +/** + * Institution medical school status types. + */ +export enum InstitutionMedicalSchoolStatus { + Yes = "Yes", + No = "No", +} From b7a92ac39b25ca67909a400bd6e385f910737e01 Mon Sep 17 00:00:00 2001 From: Dheepak Ramanathan Date: Wed, 4 Feb 2026 22:56:59 -0700 Subject: [PATCH 04/10] Update the insitution form --- .../profile/InstitutionProfileForm.vue | 21 +++++---- .../SystemLookupConfigurationService.ts | 25 ++++++++++ .../web/src/services/http/ApiClient.ts | 2 + .../http/SystemLookupConfigurationApi.ts | 18 ++++++++ .../http/dto/SystemLookupConfiguration.dto.ts | 14 ++++++ .../web/src/services/http/dto/index.ts | 1 + .../web/src/types/contracts/Common.ts | 8 ++++ .../types/contracts/InstitutionContract.ts | 46 +++++++++++++------ .../contracts/SystemLookupConfiguration.ts | 7 +++ sources/packages/web/src/types/index.ts | 1 + .../views/aest/institution/ProfileCreate.vue | 19 +++----- .../views/aest/institution/ProfileEdit.vue | 35 +++++++++----- 12 files changed, 150 insertions(+), 47 deletions(-) create mode 100644 sources/packages/web/src/services/SystemLookupConfigurationService.ts create mode 100644 sources/packages/web/src/services/http/SystemLookupConfigurationApi.ts create mode 100644 sources/packages/web/src/services/http/dto/SystemLookupConfiguration.dto.ts create mode 100644 sources/packages/web/src/types/contracts/SystemLookupConfiguration.ts diff --git a/sources/packages/web/src/components/institutions/profile/InstitutionProfileForm.vue b/sources/packages/web/src/components/institutions/profile/InstitutionProfileForm.vue index aeeba69ad8..d360718aa3 100644 --- a/sources/packages/web/src/components/institutions/profile/InstitutionProfileForm.vue +++ b/sources/packages/web/src/components/institutions/profile/InstitutionProfileForm.vue @@ -1,7 +1,7 @@