/* eslint-disable unused-imports/no-unused-imports */ import { getAsyncLifecycle, defineConfigSchema, getSyncLifecycle, } from "@openmrs/esm-framework"; import { configSchema } from "./config-schema"; import { registerExpressionHelper } from "@openmrs/esm-form-engine-lib"; import { createDashboardGroup, createDashboardLink, } from "@openmrs/esm-patient-common-lib"; import { CHILD_HEALTH_SUMMARY, CLINICAL_VISITS, HIV_CARE_AND_TREATMENT, HIV_TESTING_SERVICE_META, INDEX_CASE_TESTING_META, PMTCT_META, POST_META, PREP_META, PROGRAM_MANAGEMENT_META, MOTHER_HEALTH_SUMMARY, } from "./ethiohri-dashboard.meta"; import { CalcNextVisitDate, CalcTreatmentEndDate, CalcPrepDoseEndDate, CalcMonthsOnART, CalcViralLoadStatus, CalcAdultNutritionalStatus, CalcNutritionalScreening, CalcOlderChildNutritionalStatus, CalcNextFollowupDateForCxCa, CalcBMI, getGender, getIdentifier, calcEGFR, isDateAlreadyUsed, isSupplementaryFoodVisible, isTreatmentVisible, loadFollowupStatus, getBirthdateFromAge, getAgeFromBirthdate, } from "./custom-expressions"; import { createConditionalDashboardGroup, createConditionalDashboardLink, } from "@ohri/openmrs-esm-ohri-commons-lib"; import ProgramManagment from "./views/program-management/program-managment-summary.component"; import VisitsSummary from "./views/followup/followup.component"; import MotherHealth from "./views/pmtct/mother/pmtct-mother.component"; import PreExposure from "./views/pre-exposure/pre-exposure-summary.component"; import PostExposure from "./views/post-exposure/post-exposure.component"; import HIVTestingService from "./views/hiv-testing-service/hiv-testing-service-summary.component"; import IndexCaseTesting from "./views/index-case-testing/index-case-testing-summary.component"; import ActiveMedications from "./views/medications/active-medications.component"; import VitalsSummary from "./views/vitals/vitals-summary.component"; import HivBaselineSummary from "./views/hiv-baseline/hiv-baseline-summary.component"; import ChildHealth from "./views/pmtct/child/hei.component"; import { PatientList } from "./components/patient-lists/patient-list.component"; export const moduleName = "@icap-ethiopia/esm-ethiohri-app"; export const options = { featureName: "ethiohri", moduleName }; export const importTranslation = require.context( "../translations", false, /.json$/, "lazy" ); export function startupApp() { defineConfigSchema(moduleName, configSchema); registerExpressionHelper("CustomNextVisitDateCalc", CalcNextVisitDate); registerExpressionHelper("CustomTreatmentEndDateCalc", CalcTreatmentEndDate); registerExpressionHelper("CustomPrepDoseEndDateCalc", CalcPrepDoseEndDate); registerExpressionHelper("CustomMonthsOnARTCalc", CalcMonthsOnART); registerExpressionHelper("CustomViralLoadStatusCalc", CalcViralLoadStatus); registerExpressionHelper( "CustomAdultNutritionalStatusCalc", CalcAdultNutritionalStatus ); registerExpressionHelper( "CustomNutritionalScreeningCalc", CalcNutritionalScreening ); registerExpressionHelper( "CustomOlderChildNutritionalStatusCalc", CalcOlderChildNutritionalStatus ); registerExpressionHelper( "CustomNextFollowupDateForCxCa", CalcNextFollowupDateForCxCa ); registerExpressionHelper("CustomBMICalc", CalcBMI); registerExpressionHelper("getGender", getGender); registerExpressionHelper("getIdentifier", getIdentifier); registerExpressionHelper("calcEGFR", calcEGFR); registerExpressionHelper("isDateAlreadyUsed", isDateAlreadyUsed); registerExpressionHelper("isTreatmentVisible", isTreatmentVisible); registerExpressionHelper( "isSupplementaryFoodVisible", isSupplementaryFoodVisible ); registerExpressionHelper("loadFollowupStatus", loadFollowupStatus); registerExpressionHelper("getBirthdateFromAge", getBirthdateFromAge); registerExpressionHelper("getAgeFromBirthdate", getAgeFromBirthdate); // registerControl({ // name: "eth-date", // load: () => import("./components/controls/date/ethiohri-date.component"), // type: "eth-date", // }); } export const patientDetailsButton = getAsyncLifecycle( () => import( "./components/actions-buttons/test-patient-details-button.component" ), options ); export const attributeTags = getAsyncLifecycle( () => import("./components/patient-banner-tags/test-attribute-tags.component"), { featureName: "test-attribute-tags", moduleName, } ); export const hivBaseline = getSyncLifecycle(HivBaselineSummary, { featureName: "hiv-baseline-summary", moduleName, }); export const ethiohriActiveMedications = getSyncLifecycle( ActiveMedications, options ); export const vitalsOverview = getSyncLifecycle(VitalsSummary, options); export const hivCareAndTreatmentMenu = getSyncLifecycle( createDashboardGroup(HIV_CARE_AND_TREATMENT), options ); export const facilityName = getAsyncLifecycle( () => import("./views/navbar/facility-name.component"), options ); export const programManagementMenu = getSyncLifecycle( createDashboardLink({ ...PROGRAM_MANAGEMENT_META, moduleName, }), options ); export const programManagementChart = getSyncLifecycle( ProgramManagment, options ); export const clinicalVisitsMenu = getSyncLifecycle( createDashboardLink({ ...CLINICAL_VISITS, moduleName, }), options ); export const clinicalVisitsChart = getSyncLifecycle(VisitsSummary, options); export const pmtctMenu = getSyncLifecycle( createConditionalDashboardGroup(PMTCT_META), options ); export const childHealthMenu = getSyncLifecycle( createConditionalDashboardLink({ ...CHILD_HEALTH_SUMMARY, moduleName, }), options ); export const childHealthChart = getSyncLifecycle(ChildHealth, options); export const motherHealthMenu = getSyncLifecycle( createConditionalDashboardLink({ ...MOTHER_HEALTH_SUMMARY, moduleName, }), options ); export const motherHealthChart = getSyncLifecycle(MotherHealth, options); export const prepMenu = getSyncLifecycle( createDashboardLink({ ...PREP_META, moduleName, }), options ); export const prepChart = getSyncLifecycle(PreExposure, options); export const pepMenu = getSyncLifecycle( createDashboardLink({ ...POST_META, moduleName, }), options ); export const pepChart = getSyncLifecycle(PostExposure, options); export const hivTestingServiceMenu = getSyncLifecycle( createDashboardLink({ ...HIV_TESTING_SERVICE_META, moduleName, }), options ); export const hivTestingServiceChart = getSyncLifecycle( HIVTestingService, options ); export const indexCaseTestingMenu = getSyncLifecycle( createDashboardLink({ ...INDEX_CASE_TESTING_META, moduleName, }), options ); export const indexCaseTestingChart = getSyncLifecycle( IndexCaseTesting, options ); export const patientList = getSyncLifecycle(PatientList, { featureName: "home", moduleName, }); export const helpMenu = getAsyncLifecycle( () => import("./views/navbar/help-button.component"), options );