From 79d4a06bd52ab125ba97bc42cb38e27445d6027c Mon Sep 17 00:00:00 2001 From: kyampeire Hadijah <30952856+hadijahkyampeire@users.noreply.github.com> Date: Mon, 15 Jul 2024 07:07:02 +0300 Subject: [PATCH] remove tabs and combine the configs (#4) --- .../care-and-treatment.component.tsx | 57 ++---- .../care-treatment-config.json | 193 ++++++++++++++++++ .../tabs/allergies-config.json | 40 ---- .../tabs/allergies.component.tsx | 26 --- .../tabs/hospitalization-config.json | 39 ---- .../tabs/hospitalization.component.tsx | 27 --- src/care-and-treatment/tabs/image-config.json | 23 --- .../tabs/image.component.tsx | 25 --- src/care-and-treatment/tabs/oi-config.json | 39 ---- src/care-and-treatment/tabs/oi.component.tsx | 25 --- .../tabs/problem.component.tsx | 17 -- src/care-and-treatment/tabs/visit-config.json | 47 ----- .../tabs/visit.component.tsx | 25 --- 13 files changed, 211 insertions(+), 372 deletions(-) create mode 100644 src/care-and-treatment/care-treatment-config.json delete mode 100644 src/care-and-treatment/tabs/allergies-config.json delete mode 100644 src/care-and-treatment/tabs/allergies.component.tsx delete mode 100644 src/care-and-treatment/tabs/hospitalization-config.json delete mode 100644 src/care-and-treatment/tabs/hospitalization.component.tsx delete mode 100644 src/care-and-treatment/tabs/image-config.json delete mode 100644 src/care-and-treatment/tabs/image.component.tsx delete mode 100644 src/care-and-treatment/tabs/oi-config.json delete mode 100644 src/care-and-treatment/tabs/oi.component.tsx delete mode 100644 src/care-and-treatment/tabs/problem.component.tsx delete mode 100644 src/care-and-treatment/tabs/visit-config.json delete mode 100644 src/care-and-treatment/tabs/visit.component.tsx diff --git a/src/care-and-treatment/care-and-treatment.component.tsx b/src/care-and-treatment/care-and-treatment.component.tsx index e703c2b..854c76a 100644 --- a/src/care-and-treatment/care-and-treatment.component.tsx +++ b/src/care-and-treatment/care-and-treatment.component.tsx @@ -1,52 +1,31 @@ import React from "react"; -import { Tabs, Tab, TabList, TabPanels, TabPanel } from "@carbon/react"; +import { useConfig } from "@openmrs/esm-framework"; import styles from "../common.scss"; -import { useTranslation } from "react-i18next"; -import Problem from "./tabs/problem.component"; -import Visit from "./tabs/visit.component"; -import OI from "./tabs/oi.component"; -import Allergies from "./tabs/allergies.component"; -import Hospitalization from "./tabs/hospitalization.component"; -import Image from "./tabs/image.component"; + +import careTreatmentConfigWorkflow from "./care-treatment-config.json"; +import { + SummaryCard, + getSummaryCardProps, +} from "@ohri/openmrs-esm-ohri-commons-lib"; interface OverviewListProps { patientUuid: string; } const CareAndTreatment: React.FC = ({ patientUuid }) => { - const { t } = useTranslation(); + const config = useConfig(); + const cards = careTreatmentConfigWorkflow.cardDefinitions; + return (
- - - {t("visit", "Visit")} - {t("problem", "Problem")} - {t("oi", "OI")} - {t("image", "Image")} - {t("allergies", "Allergies")} - {t("hospitalization", "Hospitalization")} - - - - - - - - - - - - - - - - - - - - - - + {cards.map((cardContent) => ( + + ))}
); }; diff --git a/src/care-and-treatment/care-treatment-config.json b/src/care-and-treatment/care-treatment-config.json new file mode 100644 index 0000000..35df65e --- /dev/null +++ b/src/care-and-treatment/care-treatment-config.json @@ -0,0 +1,193 @@ +{ + "menuId": "careAndTreatment", + "cardDefinitions": [ + { + "cardId": "visit", + "cardTitle": "Visit", + "columns": [ + { + "id": "weight", + "title": "Weight", + "encounterTypes": [ + "visitEncounterType" + ], + "concept": "weightConcept" + }, + { + "id": "tbScreening", + "title": "Tb Screening", + "encounterTypes": [ + "visitEncounterType" + ], + "concept": "tbScreeningConcept" + }, + { + "id": "contraception", + "title": "Contraception", + "encounterTypes": [ + "visitEncounterType" + ], + "concept": "contraceptionConcept" + }, + { + "id": "pregnant", + "title": "Pregnant", + "encounterTypes": [ + "visitEncounterType" + ], + "concept": "pregnantConcept" + }, + { + "id": "nextVisit", + "isDate": true, + "title": "Next Visit", + "encounterTypes": [ + "visitEncounterType" + ], + "concept": "nextVisitConcept" + } + ] + }, + { + "cardId": "opportunisticInfections", + "cardTitle": "Opportunistic Infections", + "columns": [ + { + "id": "encounterDate", + "isDate": true, + "title": "Encounter Date", + "encounterTypes": [ + "oiEncounterType" + ], + "concept": "encounterDate" + }, + { + "id": "chronicCareDx", + "title": "Suspected Drug", + "encounterTypes": [ + "oiEncounterType" + ], + "concept": "chronicCareDxConcept" + }, + { + "id": "whoStage", + "title": "WHO Stage", + "encounterTypes": [ + "oiEncounterType" + ], + "concept": "whoStageConcept" + }, + { + "id": "criteria", + "title": "Criteria", + "encounterTypes": [ + "oiEncounterType" + ], + "concept": "criteriaConcept" + } + ] + }, + { + "cardId": "image", + "cardTitle": "Image", + "columns": [ + { + "id": "encounterDate", + "isDate": true, + "title": "Encounter Date", + "encounterTypes": [ + "imageEncounterType" + ], + "concept": "encounterDate" + }, + { + "id": "imageOrdered", + "title": "Image ordered", + "encounterTypes": [ + "imageEncounterType" + ], + "concept": "imageOrderedConcept" + } + ] + }, + { + "cardId": "allergies", + "cardTitle": "Allergies", + "columns": [ + { + "id": "encounterDate", + "isDate": true, + "title": "Encounter Date", + "encounterTypes": [ + "allergyEncounterType" + ], + "concept": "encounterDate" + }, + { + "id": "suspectedDrug", + "title": "Suspected Drug", + "encounterTypes": [ + "allergyEncounterType" + ], + "concept": "suspectedDrugConcept" + }, + + { + "id": "drugEffect", + "title": "Drug Effect", + "encounterTypes": [ + "allergyEncounterType" + ], + "concept": "drugEffectConcept" + }, + { + "id": "actionTaken", + "title": "Action Taken", + "encounterTypes": [ + "allergyEncounterType" + ], + "concept": "actionTakenConcept" + } + ] + }, + { + "cardId": "hospitalization", + "cardTitle": "Hospitalization", + "columns": [ + { + "id": "encounterDate", + "isDate": true, + "title": "Encounter Date", + "encounterTypes": [ + "hospitalizationEncounterType" + ], + "concept": "encounterDate" + }, + { + "id": "reasonForHospitalization", + "title": "Reason For Hospitalization", + "encounterTypes": [ + "hospitalizationEncounterType" + ], + "concept": "reasonForHospitalizationConcept" + }, + { + "id": "duration", + "title": "Duration", + "encounterTypes": [ + "hospitalizationEncounterType" + ], + "concept": "durationConcept" + }, + { + "id": "durationUnit", + "title": "Duration Unit", + "encounterTypes": [ + "hospitalizationEncounterType" + ], + "concept": "durationUnitConcept" + } + ] + } + ] +} diff --git a/src/care-and-treatment/tabs/allergies-config.json b/src/care-and-treatment/tabs/allergies-config.json deleted file mode 100644 index 5a5a3fb..0000000 --- a/src/care-and-treatment/tabs/allergies-config.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "menuId": "allergies", - "cardTitle": "Allergies", - "columns": [ - { - "id": "encounterDate", - "isDate": true, - "title": "Encounter Date", - "encounterTypes": [ - "allergyEncounterType" - ], - "concept": "encounterDate" - }, - { - "id": "suspectedDrug", - "title": "Suspected Drug", - "encounterTypes": [ - "allergyEncounterType" - ], - "concept": "suspectedDrugConcept" - }, - - { - "id": "drugEffect", - "title": "Drug Effect", - "encounterTypes": [ - "allergyEncounterType" - ], - "concept": "drugEffectConcept" - }, - { - "id": "actionTaken", - "title": "Action Taken", - "encounterTypes": [ - "allergyEncounterType" - ], - "concept": "actionTakenConcept" - } - ] -} \ No newline at end of file diff --git a/src/care-and-treatment/tabs/allergies.component.tsx b/src/care-and-treatment/tabs/allergies.component.tsx deleted file mode 100644 index cf9caf1..0000000 --- a/src/care-and-treatment/tabs/allergies.component.tsx +++ /dev/null @@ -1,26 +0,0 @@ -import React from "react"; -import { - getSummaryCardProps, - SummaryCard, -} from "@ohri/openmrs-esm-ohri-commons-lib"; -import { useTranslation } from "react-i18next"; -import allergiesCongif from "./allergies-config.json"; -import { useConfig } from "@openmrs/esm-framework"; - -const Allergies: React.FC<{ patientUuid: string }> = ({ patientUuid }) => { - const { t } = useTranslation(); - const config = useConfig(); - const allergyCardColumns = getSummaryCardProps(allergiesCongif, config); - - const title = t("allergies", "Allergies"); - - return ( - - ); -}; - -export default Allergies; diff --git a/src/care-and-treatment/tabs/hospitalization-config.json b/src/care-and-treatment/tabs/hospitalization-config.json deleted file mode 100644 index f938607..0000000 --- a/src/care-and-treatment/tabs/hospitalization-config.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "menuId": "hospitalization", - "cardTitle": "Hospitalization", - "columns": [ - { - "id": "encounterDate", - "isDate": true, - "title": "Encounter Date", - "encounterTypes": [ - "hospitalizationEncounterType" - ], - "concept": "encounterDate" - }, - { - "id": "reasonForHospitalization", - "title": "Reason For Hospitalization", - "encounterTypes": [ - "hospitalizationEncounterType" - ], - "concept": "reasonForHospitalizationConcept" - }, - { - "id": "duration", - "title": "Duration", - "encounterTypes": [ - "hospitalizationEncounterType" - ], - "concept": "durationConcept" - }, - { - "id": "durationUnit", - "title": "Duration Unit", - "encounterTypes": [ - "hospitalizationEncounterType" - ], - "concept": "durationUnitConcept" - } - ] -} \ No newline at end of file diff --git a/src/care-and-treatment/tabs/hospitalization.component.tsx b/src/care-and-treatment/tabs/hospitalization.component.tsx deleted file mode 100644 index 4b13b0b..0000000 --- a/src/care-and-treatment/tabs/hospitalization.component.tsx +++ /dev/null @@ -1,27 +0,0 @@ -import React from "react"; -import { - getSummaryCardProps, - SummaryCard, -} from "@ohri/openmrs-esm-ohri-commons-lib"; -import { useTranslation } from "react-i18next"; -import hospitalizationConfig from "./hospitalization-config.json"; -import { useConfig } from "@openmrs/esm-framework"; - -const Hospitalization: React.FC<{ patientUuid: string }> = ({ - patientUuid, -}) => { - const { t } = useTranslation(); - const config = useConfig(); - const allergyCardColumns = getSummaryCardProps(hospitalizationConfig, config); - const title = t("hospitalization", "Hospitalization"); - - return ( - - ); -}; - -export default Hospitalization; diff --git a/src/care-and-treatment/tabs/image-config.json b/src/care-and-treatment/tabs/image-config.json deleted file mode 100644 index 47d7852..0000000 --- a/src/care-and-treatment/tabs/image-config.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "menuId": "opportunisticInfections", - "cardTitle": "Opportunistic Infections", - "columns": [ - { - "id": "encounterDate", - "isDate": true, - "title": "Encounter Date", - "encounterTypes": [ - "imageEncounterType" - ], - "concept": "encounterDate" - }, - { - "id": "imageOrdered", - "title": "Image ordered", - "encounterTypes": [ - "imageEncounterType" - ], - "concept": "imageOrderedConcept" - } - ] -} \ No newline at end of file diff --git a/src/care-and-treatment/tabs/image.component.tsx b/src/care-and-treatment/tabs/image.component.tsx deleted file mode 100644 index 7c90696..0000000 --- a/src/care-and-treatment/tabs/image.component.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import React from "react"; -import { - getSummaryCardProps, - SummaryCard, -} from "@ohri/openmrs-esm-ohri-commons-lib"; -import { useTranslation } from "react-i18next"; -import imageConfig from "./image-config.json"; -import { useConfig } from "@openmrs/esm-framework"; - -const Image: React.FC<{ patientUuid: string }> = ({ patientUuid }) => { - const { t } = useTranslation(); - const config = useConfig(); - const imageCardColumns = getSummaryCardProps(imageConfig, config); - const title = t("image", "Image"); - - return ( - - ); -}; - -export default Image; diff --git a/src/care-and-treatment/tabs/oi-config.json b/src/care-and-treatment/tabs/oi-config.json deleted file mode 100644 index 7a05c46..0000000 --- a/src/care-and-treatment/tabs/oi-config.json +++ /dev/null @@ -1,39 +0,0 @@ -{ - "menuId": "opportunisticInfections", - "cardTitle": "Opportunistic Infections", - "columns": [ - { - "id": "encounterDate", - "isDate": true, - "title": "Encounter Date", - "encounterTypes": [ - "oiEncounterType" - ], - "concept": "encounterDate" - }, - { - "id": "chronicCareDx", - "title": "Suspected Drug", - "encounterTypes": [ - "oiEncounterType" - ], - "concept": "chronicCareDxConcept" - }, - { - "id": "whoStage", - "title": "WHO Stage", - "encounterTypes": [ - "oiEncounterType" - ], - "concept": "whoStageConcept" - }, - { - "id": "criteria", - "title": "Criteria", - "encounterTypes": [ - "oiEncounterType" - ], - "concept": "criteriaConcept" - } - ] -} \ No newline at end of file diff --git a/src/care-and-treatment/tabs/oi.component.tsx b/src/care-and-treatment/tabs/oi.component.tsx deleted file mode 100644 index 3d9e29e..0000000 --- a/src/care-and-treatment/tabs/oi.component.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import React from "react"; -import { - getSummaryCardProps, - SummaryCard, -} from "@ohri/openmrs-esm-ohri-commons-lib"; -import { useTranslation } from "react-i18next"; -import { useConfig } from "@openmrs/esm-framework"; -import oiConfig from "./oi-config.json"; - -const OI: React.FC<{ patientUuid: string }> = ({ patientUuid }) => { - const { t } = useTranslation(); - const config = useConfig(); - const oiCardColumns = getSummaryCardProps(oiConfig, config); - const title = t("opportunisticInfections", "Opportunistic Infections"); - - return ( - - ); -}; - -export default OI; diff --git a/src/care-and-treatment/tabs/problem.component.tsx b/src/care-and-treatment/tabs/problem.component.tsx deleted file mode 100644 index d19dc30..0000000 --- a/src/care-and-treatment/tabs/problem.component.tsx +++ /dev/null @@ -1,17 +0,0 @@ -import React from "react"; -import { useTranslation } from "react-i18next"; -import { EmptyStateComingSoon } from "@ohri/openmrs-esm-ohri-commons-lib"; - -const Problem: React.FC<{ patientUuid: string }> = ({ patientUuid }) => { - const { t } = useTranslation(); - - const title = t("problem", "Problem"); - - return ( - <> - - - ); -}; - -export default Problem; diff --git a/src/care-and-treatment/tabs/visit-config.json b/src/care-and-treatment/tabs/visit-config.json deleted file mode 100644 index 2995142..0000000 --- a/src/care-and-treatment/tabs/visit-config.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "menuId": "visit", - "cardTitle": "Visit", - "columns": [ - { - "id": "weight", - "title": "Weight", - "encounterTypes": [ - "visitEncounterType" - ], - "concept": "weightConcept" - }, - { - "id": "tbScreening", - "title": "Tb Screening", - "encounterTypes": [ - "visitEncounterType" - ], - "concept": "tbScreeningConcept" - }, - { - "id": "contraception", - "title": "Contraception", - "encounterTypes": [ - "visitEncounterType" - ], - "concept": "contraceptionConcept" - }, - { - "id": "pregnant", - "title": "Pregnant", - "encounterTypes": [ - "visitEncounterType" - ], - "concept": "pregnantConcept" - }, - { - "id": "nextVisit", - "isDate": true, - "title": "Next Visit", - "encounterTypes": [ - "visitEncounterType" - ], - "concept": "nextVisitConcept" - } - ] -} \ No newline at end of file diff --git a/src/care-and-treatment/tabs/visit.component.tsx b/src/care-and-treatment/tabs/visit.component.tsx deleted file mode 100644 index b459689..0000000 --- a/src/care-and-treatment/tabs/visit.component.tsx +++ /dev/null @@ -1,25 +0,0 @@ -import React from "react"; -import { - getSummaryCardProps, - SummaryCard, -} from "@ohri/openmrs-esm-ohri-commons-lib"; -import { useTranslation } from "react-i18next"; -import { useConfig } from "@openmrs/esm-framework"; -import visitConfig from "./visit-config.json"; - -const Visit: React.FC<{ patientUuid: string }> = ({ patientUuid }) => { - const { t } = useTranslation(); - const config = useConfig(); - const visitCardColumns = getSummaryCardProps(visitConfig, config); - const title = t("visit", "Visit"); - - return ( - - ); -}; - -export default Visit;