From e3fdf3e71b896313f58118da4dbf2a666115c27c Mon Sep 17 00:00:00 2001 From: Dennis Kigen Date: Tue, 17 Dec 2024 15:56:45 +0300 Subject: [PATCH 1/5] (refactor) programs-form: Improve error handling and loading states (#2160) Improves form validation in the Programs form by: - Using React Hook Form's `isSubmitting` state instead of local state - Cleaning up styling for the submit button's loading state - Replacing a custom error message solution with the `Select` component's `invalidText` prop. With this change, we don't need additional styling for the error message. --- .../src/programs/programs-form.scss | 10 ++++---- .../src/programs/programs-form.workspace.tsx | 23 ++++++++----------- 2 files changed, 13 insertions(+), 20 deletions(-) diff --git a/packages/esm-patient-programs-app/src/programs/programs-form.scss b/packages/esm-patient-programs-app/src/programs/programs-form.scss index 8b266bd80..446323c5e 100644 --- a/packages/esm-patient-programs-app/src/programs/programs-form.scss +++ b/packages/esm-patient-programs-app/src/programs/programs-form.scss @@ -15,6 +15,10 @@ align-items: baseline; min-width: 50%; + :global(.cds--inline-loading) { + min-height: layout.$spacing-05 !important; + } + :global(.cds--inline-loading__text) { @include type.type-style('body-01'); } @@ -40,12 +44,6 @@ height: 100%; } -.errorMessage { - @include type.type-style('label-02'); - margin-top: layout.$spacing-03; - color: $danger; -} - .notification { margin: 0; min-width: 100%; diff --git a/packages/esm-patient-programs-app/src/programs/programs-form.workspace.tsx b/packages/esm-patient-programs-app/src/programs/programs-form.workspace.tsx index 926f3e74c..47965b73b 100644 --- a/packages/esm-patient-programs-app/src/programs/programs-form.workspace.tsx +++ b/packages/esm-patient-programs-app/src/programs/programs-form.workspace.tsx @@ -57,7 +57,6 @@ const ProgramsForm: React.FC = ({ const availableLocations = useLocations(); const { data: availablePrograms } = useAvailablePrograms(); const { data: enrollments, mutateEnrollments } = useEnrollments(patientUuid); - const [isSubmittingForm, setIsSubmittingForm] = useState(false); const { showProgramStatusField } = useConfig(); const programsFormSchema = useMemo(() => createProgramsFormSchema(t), [t]); @@ -90,7 +89,7 @@ const ProgramsForm: React.FC = ({ control, handleSubmit, watch, - formState: { isDirty }, + formState: { errors, isDirty, isSubmitting }, } = useForm({ mode: 'all', resolver: zodResolver(programsFormSchema), @@ -126,8 +125,6 @@ const ProgramsForm: React.FC = ({ }; try { - setIsSubmittingForm(true); - const abortController = new AbortController(); if (currentEnrollment) { @@ -155,8 +152,6 @@ const ProgramsForm: React.FC = ({ subtitle: error instanceof Error ? error.message : 'An unknown error occurred', }); } - - setIsSubmittingForm(false); }, [closeWorkspaceWithSavedChanges, currentEnrollment, currentState, mutateEnrollments, patientUuid, t], ); @@ -165,12 +160,13 @@ const ProgramsForm: React.FC = ({ ( + render={({ field: { onChange, value } }) => ( <> -

{fieldState?.error?.message}

)} /> @@ -267,12 +262,13 @@ const ProgramsForm: React.FC = ({ ( + render={({ field: { onChange, value } }) => ( <> -

{fieldState?.error?.message}

)} /> @@ -343,8 +338,8 @@ const ProgramsForm: React.FC = ({ - + ); + } + return null; + }, [formsJson, displayText, onFormSave, patientUuid, t, currentVisit]); + + if (isLoading === true || isLoadingFormsJson === true) { + return ; + } + + return ( + <> + {tableRows?.length > 0 || encounters.length > 0 ? ( + <> +
+
+

{t(headerTitle)}

+ {!(hideFormLauncher ?? deathStatus) &&
{formLauncher}
} +
+ + { + setCurrentPage(page); + setPageSize(pageSize); + }} + pageSize={pageSize} + totalItems={total} + /> +
+ + ) : ( + launchEncounterForm(formsJson, currentVisit, 'add', onFormSave, '', '*', patientUuid) + } + /> + )} + + ); +}; diff --git a/packages/esm-patient-chart-app/src/encounter-list/components/encounter-list.scss b/packages/esm-patient-chart-app/src/encounter-list/components/encounter-list.scss new file mode 100644 index 000000000..356541637 --- /dev/null +++ b/packages/esm-patient-chart-app/src/encounter-list/components/encounter-list.scss @@ -0,0 +1,28 @@ +@use '@carbon/layout'; +@use '@carbon/type'; +@use '@openmrs/esm-styleguide/src/vars' as *; + +.widgetContainer { + background-color: $ui-background; + border: 1px solid #e0e0e0; + margin-bottom: 1rem; +} + +.widgetHeaderContainer { + display: flex; + justify-content: space-between; + align-items: center; + padding: layout.$spacing-04 0 layout.$spacing-04 layout.$spacing-05; +} + +.widgetHeaderContainer > h4:after { + content: ''; + display: block; + width: 2rem; + padding-top: 0.188rem; + border-bottom: 0.375rem solid var(--brand-03); +} + +.widgetContainer :global(.cds--data-table) thead th button span { + height: unset !important; +} diff --git a/packages/esm-patient-chart-app/src/encounter-list/components/table.component.tsx b/packages/esm-patient-chart-app/src/encounter-list/components/table.component.tsx new file mode 100644 index 000000000..7ba30f4d7 --- /dev/null +++ b/packages/esm-patient-chart-app/src/encounter-list/components/table.component.tsx @@ -0,0 +1,56 @@ +import React from 'react'; +import { + DataTable, + Table, + TableCell, + TableContainer, + TableBody, + TableHead, + TableHeader, + TableRow, +} from '@carbon/react'; + +import styles from './table.scss'; + +interface TableProps { + tableHeaders: any; + tableRows: any; +} + +export const EncounterListDataTable: React.FC = ({ tableHeaders, tableRows }) => { + return ( + + + {({ rows, headers, getHeaderProps, getTableProps }) => ( + + + + {headers.map((header, index) => ( + + {header.header?.content ?? header.header} + + ))} + + + + {rows.map((row) => ( + + {row.cells.map((cell) => ( + {cell.value?.content ?? cell.value} + ))} + + ))} + +
+ )} +
+
+ ); +}; diff --git a/packages/esm-patient-chart-app/src/encounter-list/components/table.scss b/packages/esm-patient-chart-app/src/encounter-list/components/table.scss new file mode 100644 index 000000000..0d1c910d7 --- /dev/null +++ b/packages/esm-patient-chart-app/src/encounter-list/components/table.scss @@ -0,0 +1,7 @@ +@use '@carbon/layout'; +@use '@carbon/type'; +@use '@openmrs/esm-styleguide/src/vars' as *; + +.productiveHeading01 { + @include type.type-style('heading-compact-01'); +} diff --git a/packages/esm-patient-chart-app/src/encounter-list/components/tag.component.tsx b/packages/esm-patient-chart-app/src/encounter-list/components/tag.component.tsx new file mode 100644 index 000000000..5176174c6 --- /dev/null +++ b/packages/esm-patient-chart-app/src/encounter-list/components/tag.component.tsx @@ -0,0 +1,32 @@ +import React from 'react'; +import { Tag } from '@carbon/react'; +import { getObsFromEncounter, findObs } from '../utils/helpers'; +import { type ConfigConcepts, type Encounter } from '../types'; + +export const renderTag = ( + encounter: Encounter, + concept: string, + statusColorMappings: Record, + config: ConfigConcepts, +) => { + const columnStatus = getObsFromEncounter(encounter, concept, false, false, undefined, undefined, undefined, config); + const columnStatusObs = findObs(encounter, concept); + + if (columnStatus == '--') { + return '--'; + } else { + return ( + + {columnStatus} + + ); + } +}; diff --git a/packages/esm-patient-chart-app/src/encounter-list/encounter-list.resource.ts b/packages/esm-patient-chart-app/src/encounter-list/encounter-list.resource.ts new file mode 100644 index 000000000..f419d0c90 --- /dev/null +++ b/packages/esm-patient-chart-app/src/encounter-list/encounter-list.resource.ts @@ -0,0 +1,26 @@ +import { openmrsFetch, restBaseUrl } from '@openmrs/esm-framework'; + +export function fetchOpenMRSForms(formUuid: string) { + return openmrsFetch(`${restBaseUrl}/form/${formUuid}`).then(({ data }) => { + if (data.results.length) { + return data.results; + } + return null; + }); +} + +export function fetchPatientRelationships(patientUuid: string) { + return openmrsFetch(`${restBaseUrl}relationship?person=${patientUuid}&v=full`).then(({ data }) => { + if (data.results.length) { + return data.results; + } + return null; + }); +} + +export function deleteEncounter(encounterUuid: string, abortController: AbortController) { + return openmrsFetch(`${restBaseUrl}/encounter/${encounterUuid}`, { + method: 'DELETE', + signal: abortController.signal, + }); +} diff --git a/packages/esm-patient-chart-app/src/encounter-list/hooks/index.ts b/packages/esm-patient-chart-app/src/encounter-list/hooks/index.ts new file mode 100644 index 000000000..fd15cbc4d --- /dev/null +++ b/packages/esm-patient-chart-app/src/encounter-list/hooks/index.ts @@ -0,0 +1,2 @@ +export * from './useEncounterRows'; +export * from './useFormsJson'; diff --git a/packages/esm-patient-chart-app/src/encounter-list/hooks/useEncounterRows.ts b/packages/esm-patient-chart-app/src/encounter-list/hooks/useEncounterRows.ts new file mode 100644 index 000000000..0dcfb05da --- /dev/null +++ b/packages/esm-patient-chart-app/src/encounter-list/hooks/useEncounterRows.ts @@ -0,0 +1,58 @@ +import { useCallback, useEffect, useState } from 'react'; +import useSWR from 'swr'; +import { openmrsFetch, restBaseUrl } from '@openmrs/esm-framework'; +import { type Encounter } from '../types'; + +export const encounterRepresentation = + 'custom:(uuid,encounterDatetime,encounterType,location:(uuid,name),' + + 'patient:(uuid,display,age,identifiers,person),encounterProviders:(uuid,provider:(uuid,name)),' + + 'obs:(uuid,obsDatetime,voided,groupMembers,concept:(uuid,name:(uuid,name)),value:(uuid,name:(uuid,name),' + + 'names:(uuid,conceptNameType,name))),form:(uuid,name))'; + +interface EncounterResponse { + results: Encounter[]; + totalCount?: number; +} + +export function useEncounterRows( + patientUuid: string, + encounterType: string, + encounterFilter: (encounter) => boolean, + afterFormSaveAction: () => void, + pageSize?: number, + currentPage?: number, +) { + const startIndex = (currentPage - 1) * pageSize; + const [encounters, setEncounters] = useState([]); + const url = `${restBaseUrl}/encounter?encounterType=${encounterType}&patient=${patientUuid}&v=${encounterRepresentation}&totalCount=true&limit=${pageSize}&startIndex=${startIndex}`; + + const { data: response, error, isLoading, mutate } = useSWR<{ data: EncounterResponse }, Error>(url, openmrsFetch); + + useEffect(() => { + if (response) { + response.data.results.sort( + (a, b) => new Date(b.encounterDatetime).getTime() - new Date(a.encounterDatetime).getTime(), + ); + + if (encounterFilter) { + setEncounters(response.data.results.filter((encounter) => encounterFilter(encounter))); + } else { + setEncounters([...response.data.results]); + } + } + }, [encounterFilter, response]); + + const onFormSave = useCallback(() => { + mutate(); + afterFormSaveAction && afterFormSaveAction(); + }, [afterFormSaveAction, mutate]); + + return { + encounters, + total: response?.data?.totalCount, + isLoading, + error, + onFormSave, + mutate, + }; +} diff --git a/packages/esm-patient-chart-app/src/encounter-list/hooks/useFormsJson.ts b/packages/esm-patient-chart-app/src/encounter-list/hooks/useFormsJson.ts new file mode 100644 index 000000000..6027050da --- /dev/null +++ b/packages/esm-patient-chart-app/src/encounter-list/hooks/useFormsJson.ts @@ -0,0 +1,15 @@ +import useSWR from 'swr'; + +import { openmrsFetch, restBaseUrl } from '@openmrs/esm-framework'; +import { type Form } from '../types'; + +export function useFormsJson(formUuid: string) { + const url = `${restBaseUrl}/form/${formUuid}`; + const { data, isLoading, error } = useSWR<{ data: Form }, Error>(url, openmrsFetch); + + return { + formsJson: data?.data ?? null, + isLoading, + error, + }; +} diff --git a/packages/esm-patient-chart-app/src/encounter-list/types.ts b/packages/esm-patient-chart-app/src/encounter-list/types.ts new file mode 100644 index 000000000..c11972e56 --- /dev/null +++ b/packages/esm-patient-chart-app/src/encounter-list/types.ts @@ -0,0 +1,211 @@ +import { type OpenmrsResource } from '@openmrs/esm-framework'; +import { type ReactElement } from 'react'; + +export interface Encounter extends OpenmrsResource { + encounterDatetime: Date; + encounterType: { uuid: string; name: string }; + patient: { + uuid: string; + display: string; + age: number; + birthDate: string; + }; + location: { + uuid: string; + display: string; + name: string; + }; + encounterProviders?: Array<{ encounterRole: string; provider: { uuid: string; name: string } }>; + obs: Array; + form?: { + uuid: string; + }; + visit?: string; +} + +export interface Observation { + uuid: string; + concept: { uuid: string; name: string }; + value: + | { + uuid: string; + name: { + name: string; + }; + names?: Array<{ uuid: string; name: string; conceptNameType: string }>; + } + | string; + groupMembers?: Array; + obsDatetime: string; +} + +export interface ListResponse { + results: Array; +} + +export interface Privilege { + uuid: string; + name: string; + display?: string; + description?: string; +} + +export interface EncounterType { + uuid: string; + name: string; + viewPrivilege: Privilege | null; + editPrivilege: Privilege | null; +} + +export interface Form { + uuid: string; + encounterType?: EncounterType; + name: string; + display?: string; + version: string; + published: boolean; + retired: boolean; + resources: Array; + formCategory?: string; +} + +export interface FormEncounterResource { + uuid: string; + name: string; + dataType: string; + valueReference: string; +} + +export interface EncounterWithFormRef { + uuid: string; + encounterType?: EncounterType; + encounterDatetime: string; + form?: Form; +} + +export interface CompletedFormInfo { + form: Form; + associatedEncounters: Array; + lastCompleted?: Date; +} + +export interface HtmlFormEntryForm { + formUuid: string; + formName: string; + formUiResource: string; + formUiPage: 'enterHtmlFormWithSimpleUi' | 'enterHtmlFormWithStandardUi'; + formEditUiPage: 'editHtmlFormWithSimpleUi' | 'editHtmlFormWithStandardUi'; +} + +export interface FormsSection { + name: string; + forms: Array; +} + +export interface ConfigObject { + htmlFormEntryForms: Array; + formSections: Array; + customFormsUrl: string; + orderBy: 'name' | 'most-recent'; + showHtmlFormEntryForms: boolean; +} + +// encounter list types + +export interface ActionProps { + mode: string; + label: string; + formName: string; + intent?: string; +} + +export interface ConditionalActionProps { + mode: string; + label: string; + formName: string; + dependsOn?: string; + dependantConcept?: string; + dependantEncounter?: string; + intent?: string; +} + +export interface ColumnDefinition { + id: string; + title: string; + isComplex?: boolean; + concept?: string; + secondaryConcept?: string; + multipleConcepts?: Array; + fallbackConcepts?: Array; + actionOptions?: Array; + conditionalActionOptions?: Array; + isDate?: boolean; + isTrueFalseConcept?: boolean; + type?: string; + isLink?: boolean; + useMultipleObs?: boolean; + valueMappings?: Record; + conceptMappings?: Array; + statusColorMappings?: Record; + isConditionalConcept?: boolean; + conditionalConceptMappings?: Record; + conditionalEncounterMappings?: Record; +} + +export interface ConditionalEncounterMapping { + concept: string; + isDate?: boolean; +} + +interface LaunchOptions { + displayText: string; + hideFormLauncher?: boolean; +} +export interface TabSchema { + tabName: string; + hasFilter?: boolean; + headerTitle: string; + displayText: string; + encounterType: string; + columns: Array; + formList: Array<{ name: string; uuid: string; fixedIntent?: string; excludedIntents?: Array }>; + launchOptions: LaunchOptions; +} + +export type Mode = 'edit' | 'view'; + +export interface Action { + label: string; + mode: Mode; + form?: { name: string }; + intent?: string; +} + +export interface TableRow { + id: string; + actions: Action[] | ReactElement | null; +} + +export interface FormColumn { + form: { name: string }; + encounterUuid: string; + intent: string; + label: string; + mode: string; +} + +export type NamedColumn = + | string + | { + uuid: string; + name: { name: string }; + names?: { uuid: string; name: string; conceptNameType: string }[]; + }; + +export type ColumnValue = string | number | JSX.Element | NamedColumn | Array | Array | null; + +export interface ConfigConcepts { + trueConceptUuid: string; + falseConceptUuid: string; + otherConceptUuid: string; +} diff --git a/packages/esm-patient-chart-app/src/encounter-list/utils/encounter-list-config-builder.ts b/packages/esm-patient-chart-app/src/encounter-list/utils/encounter-list-config-builder.ts new file mode 100644 index 000000000..6a0b25297 --- /dev/null +++ b/packages/esm-patient-chart-app/src/encounter-list/utils/encounter-list-config-builder.ts @@ -0,0 +1,152 @@ +import { + getObsFromEncounter, + getMultipleObsFromEncounter, + resolveValueUsingMappings, + getConceptFromMappings, + getConditionalConceptValue, +} from './helpers'; +import { + type Encounter, + type ColumnDefinition, + type TabSchema, + type ActionProps, + type ConditionalActionProps, + type ColumnValue, + type NamedColumn, + type ConfigConcepts, +} from '../types'; +import { renderTag } from '../components/tag.component'; + +export interface FormattedColumn { + key: string; + header: string; + getValue: (encounter: Encounter) => ColumnValue; + link?: { getUrl: (encounter: Encounter) => string; handleNavigate?: (encounter: Encounter) => void }; + concept?: string; +} + +const getColumnValue = (encounter: Encounter, column: ColumnDefinition, config: ConfigConcepts): ColumnValue => { + if (column.id === 'actions') { + return getActions(encounter, column, config); + } + if (column.statusColorMappings) { + return renderTag(encounter, column.concept, column.statusColorMappings, config); + } + + if (column.isConditionalConcept) { + return getConditionalConceptValue(encounter, column.conditionalConceptMappings, column.isDate, config); + } + + if (column.useMultipleObs) { + return getMultipleObsFromEncounter(encounter, column.multipleConcepts, config); + } + + if (column.valueMappings) { + return resolveValueUsingMappings(encounter, column.concept, column.valueMappings); + } + + if (column.conceptMappings) { + return getMappedConceptValue(encounter, column, config); + } + + return getObsFromEncounter( + encounter, + column.concept, + column.isDate, + column.isTrueFalseConcept, + column.type, + column.fallbackConcepts, + column.secondaryConcept, + config, + ); +}; + +const createActionObject = (encounter: Encounter, action: ActionProps | ConditionalActionProps) => ({ + form: { name: action.formName }, + encounterUuid: encounter.uuid, + intent: action.intent || '*', + label: action.label, + mode: action.mode, +}); + +const getActions = (encounter: Encounter, column: ColumnDefinition, config: ConfigConcepts) => { + const baseActions = column.actionOptions?.map((action: ActionProps) => createActionObject(encounter, action)) || []; + + const conditionalActions = + column.conditionalActionOptions + ?.map((action) => createConditionalAction(encounter, action, config)) + .filter(Boolean) || []; + + return [...baseActions, ...conditionalActions]; +}; + +const createConditionalAction = (encounter: Encounter, action: ConditionalActionProps, config: ConfigConcepts) => { + const dependantObsValue = getObsFromEncounter( + encounter, + action.dependantConcept, + false, + false, + undefined, + undefined, + undefined, + config, + ); + if (dependantObsValue === action.dependsOn) { + return createActionObject(encounter, action); + } + + const dependantEncounterValue = encounter.encounterType?.uuid; + if (dependantEncounterValue === action.dependantEncounter) { + return createActionObject(encounter, action); + } + + return null; +}; + +const getMappedConceptValue = (encounter: Encounter, column: ColumnDefinition, config: ConfigConcepts): NamedColumn => { + const concept = getConceptFromMappings(encounter, column.conceptMappings); + return getObsFromEncounter( + encounter, + concept, + column.isDate, + column.isTrueFalseConcept, + column.type, + column.fallbackConcepts, + column.secondaryConcept, + config, + ); +}; + +export const getTabColumns = (columnsDefinition: Array, config: ConfigConcepts) => { + const columns: Array = columnsDefinition.map((column: ColumnDefinition) => ({ + key: column.id, + header: column.title, + concept: column.concept, + getValue: (encounter) => getColumnValue(encounter, column, config), + link: column.isLink + ? { + getUrl: (encounter) => encounter.url, + handleNavigate: (encounter) => encounter.launchFormActions?.viewEncounter(), + } + : null, + })); + + return columns; +}; + +export const getMenuItemTabsConfiguration = (tabDefinitions: Array, config: ConfigConcepts) => { + const tabs = tabDefinitions.map((tab) => { + return { + name: tab.tabName, + hasFilter: tab.hasFilter || false, + encounterType: tab.encounterType, + headerTitle: tab.headerTitle, + description: tab.displayText, + formList: tab.formList, + columns: getTabColumns(tab.columns, config), + launchOptions: tab.launchOptions, + }; + }); + + return tabs; +}; diff --git a/packages/esm-patient-chart-app/src/encounter-list/utils/helpers.ts b/packages/esm-patient-chart-app/src/encounter-list/utils/helpers.ts new file mode 100644 index 000000000..b189eaea0 --- /dev/null +++ b/packages/esm-patient-chart-app/src/encounter-list/utils/helpers.ts @@ -0,0 +1,182 @@ +import { launchPatientWorkspace } from '@openmrs/esm-patient-common-lib'; +import { formatDate, parseDate, formatDatetime, type Concept, age, type Visit } from '@openmrs/esm-framework'; +import { type Observation, type Encounter, type Form, type ConfigConcepts } from '../types'; + +type LaunchAction = 'add' | 'view' | 'edit' | 'embedded-view'; + +export function launchEncounterForm( + form: Form, + visit: Visit, + action: LaunchAction = 'add', + onFormSave: () => void, + encounterUuid?: string, + intent: string = '*', + patientUuid?: string, +) { + launchPatientWorkspace('patient-form-entry-workspace', { + workspaceTitle: form?.name, + mutateForm: onFormSave, + formInfo: { + encounterUuid, + formUuid: form?.uuid, + patientUuid: patientUuid, + visit: visit, + additionalProps: { + mode: action === 'add' ? 'enter' : action, + formSessionIntent: intent, + openClinicalFormsWorkspaceOnFormClose: false, + }, + }, + }); +} + +export function formatDateTime(dateString: string): string { + const parsedDate = parseDate(dateString.includes('.') ? dateString.split('.')[0] : dateString); + return formatDatetime(parsedDate); +} + +export function obsArrayDateComparator(left: Observation, right: Observation): number { + const leftDate = new Date(left.obsDatetime); + const rightDate = new Date(right.obsDatetime); + return rightDate.getTime() - leftDate.getTime(); +} + +export function findObs(encounter: Encounter, obsConcept: string): Observation | undefined { + const allObs = encounter?.obs?.filter((observation) => observation.concept.uuid === obsConcept) || []; + return !allObs ? undefined : allObs.length === 1 ? allObs[0] : allObs.sort(obsArrayDateComparator)[0]; +} + +export function getObsFromEncounters(encounters: Encounter, obsConcept: Concept) { + const filteredEnc = encounters?.find((enc) => enc.obs.find((obs) => obs.concept.uuid === obsConcept)); + return getObsFromEncounter(filteredEnc, obsConcept); +} + +export function resolveValueUsingMappings(encounter: Encounter, concept: string, mappings) { + const obs = findObs(encounter, concept); + for (const key in mappings) { + if (typeof obs?.value === 'object' && 'uuid' in obs.value) { + if (mappings[key] === obs.value.uuid) { + return key; + } + } + } + return '--'; +} + +export function getConditionalConceptValue( + encounter: Encounter, + conditionalConceptMappings, + isDate: boolean, + config: ConfigConcepts, +) { + const { trueConcept, nonTrueConcept, dependantConcept, conditionalConcept } = conditionalConceptMappings; + const obsValue = findObs(encounter, dependantConcept)?.value; + const dependantUuid = typeof obsValue === 'object' && 'uuid' in obsValue ? obsValue.uuid : null; + const finalConcept = dependantUuid === conditionalConcept ? trueConcept : nonTrueConcept; + return getObsFromEncounter(encounter, finalConcept, isDate, false, undefined, undefined, undefined, config); +} + +export function getConceptFromMappings(encounter: Encounter, concepts) { + for (const concept of concepts) { + const obs = findObs(encounter, concept); + if (obs && obs.value) { + return concept; + } + } + return null; +} + +export function getMultipleObsFromEncounter(encounter: Encounter, obsConcepts: Array, config: ConfigConcepts) { + let observations = []; + obsConcepts.map((concept) => { + const obs = getObsFromEncounter(encounter, concept, false, false, undefined, undefined, undefined, config); + if (obs !== '--') { + observations.push(obs); + } + }); + + return observations.length ? observations.join(', ') : '--'; +} + +export function getObsFromEncounter( + encounter: Encounter, + obsConcept, + isDate?: Boolean, + isTrueFalseConcept?: Boolean, + type?: string, + fallbackConcepts?: Array, + secondaryConcept?: string, + config?: ConfigConcepts, +) { + let obs = findObs(encounter, obsConcept); + + if (!encounter || !obsConcept) { + return '--'; + } + + if (isTrueFalseConcept) { + if (typeof obs?.value === 'object') { + if (obs?.value?.uuid === config.falseConceptUuid || obs?.value?.uuid === config.trueConceptUuid) { + return obs?.value?.name?.name; + } + } + } + + if (type === 'location') { + return encounter.location.name; + } + + if (type === 'provider') { + return encounter.encounterProviders.map((p) => p.provider.name).join(' | '); + } + + // TODO: This needs to be added later + if (type === 'mothersName') { + return; + } + + if (type === 'visitType') { + return encounter.encounterType.name; + } + + // TODO: Need to get a better place for this + if (type === 'ageAtHivTest') { + return age(encounter.patient.birthDate, encounter.encounterDatetime); + } + + // + if (secondaryConcept && typeof obs.value === 'object' && obs.value.names) { + const primaryValue = + obs.value.names.find((conceptName) => conceptName.conceptNameType === 'SHORT')?.name || obs.value.name.name; + if (primaryValue === config.otherConceptUuid) { + const secondaryObs = findObs(encounter, secondaryConcept); + return secondaryObs ? secondaryObs.value : '--'; + } + } + + if (!obs && fallbackConcepts?.length) { + const concept = fallbackConcepts.find((c) => findObs(encounter, c) != null); + obs = findObs(encounter, concept); + } + + if (!obs) { + return '--'; + } + + if (isDate) { + if (typeof obs.value === 'object' && obs.value?.names) { + return formatDate(parseDate(obs.obsDatetime), { mode: 'wide' }); + } else { + return typeof obs.value === 'string' ? formatDate(parseDate(obs.value), { mode: 'wide' }) : '--'; + } + } + + if (typeof obs.value === 'object' && obs.value?.names) { + return ( + obs.value?.names?.find((conceptName) => conceptName.conceptNameType === 'SHORT')?.name || obs.value.name.name + ); + } + return obs.value; +} + +export const filter = (encounter: Encounter, formUuid: string) => encounter?.form?.uuid === formUuid; diff --git a/packages/esm-patient-chart-app/src/index.ts b/packages/esm-patient-chart-app/src/index.ts index 4e1566570..d46d64369 100644 --- a/packages/esm-patient-chart-app/src/index.ts +++ b/packages/esm-patient-chart-app/src/index.ts @@ -225,3 +225,8 @@ export const activeVisitActionsComponent = getAsyncLifecycle( () => import('./visit/visits-widget/active-visit-buttons/active-visit-buttons'), { featureName: 'active-visit-actions', moduleName }, ); + +export const encounterListTableTabs = getAsyncLifecycle( + () => import('./encounter-list/components/encounter-list-tabs.component'), + { featureName: 'encounter-list-table-tabs', moduleName }, +); diff --git a/packages/esm-patient-chart-app/src/routes.json b/packages/esm-patient-chart-app/src/routes.json index 5973d07f3..4fa53595e 100644 --- a/packages/esm-patient-chart-app/src/routes.json +++ b/packages/esm-patient-chart-app/src/routes.json @@ -23,6 +23,12 @@ "online": true, "offline": true }, + { + "name": "encounter-list", + "component": "encounterListTableTabs", + "online": true, + "offline": true + }, { "name": "start-visit-button", "component": "startVisitActionButton", diff --git a/packages/esm-patient-chart-app/src/visit/visits-widget/past-visits-components/visits-table/visits-table.component.tsx b/packages/esm-patient-chart-app/src/visit/visits-widget/past-visits-components/visits-table/visits-table.component.tsx index 1a700f488..2fdba8fe6 100644 --- a/packages/esm-patient-chart-app/src/visit/visits-widget/past-visits-components/visits-table/visits-table.component.tsx +++ b/packages/esm-patient-chart-app/src/visit/visits-widget/past-visits-components/visits-table/visits-table.component.tsx @@ -147,7 +147,7 @@ const VisitTable: React.FC = ({ showAllEncounters, visits, pati showSnackbar({ isLowContrast: true, title: t('encounterDeleted', 'Encounter deleted'), - subtitle: `Encounter ${t('successfullyDeleted', 'successfully deleted')}`, + subtitle: t('encounterSuccessfullyDeleted', 'The encounter has been deleted successfully'), kind: 'success', }); }) @@ -155,7 +155,10 @@ const VisitTable: React.FC = ({ showAllEncounters, visits, pati showSnackbar({ isLowContrast: false, title: t('error', 'Error'), - subtitle: `Encounter ${t('failedDeleting', "couldn't be deleted")}`, + subtitle: t( + 'encounterWithError', + 'The encounter could not be deleted successfully. If the error persists, please contact your system administrator.', + ), kind: 'error', }); }); diff --git a/packages/esm-patient-chart-app/src/visit/visits-widget/past-visits-components/visits-table/visits-table.resource.tsx b/packages/esm-patient-chart-app/src/visit/visits-widget/past-visits-components/visits-table/visits-table.resource.tsx index a31d1544f..ddec57b21 100644 --- a/packages/esm-patient-chart-app/src/visit/visits-widget/past-visits-components/visits-table/visits-table.resource.tsx +++ b/packages/esm-patient-chart-app/src/visit/visits-widget/past-visits-components/visits-table/visits-table.resource.tsx @@ -3,9 +3,6 @@ import { openmrsFetch, restBaseUrl } from '@openmrs/esm-framework'; export function deleteEncounter(encounterUuid: string, abortController: AbortController) { return openmrsFetch(`${restBaseUrl}/encounter/${encounterUuid}`, { method: 'DELETE', - headers: { - 'Content-Type': 'application/json', - }, signal: abortController.signal, }); } diff --git a/packages/esm-patient-chart-app/translations/en.json b/packages/esm-patient-chart-app/translations/en.json index aaf1e2776..f1ac5d080 100644 --- a/packages/esm-patient-chart-app/translations/en.json +++ b/packages/esm-patient-chart-app/translations/en.json @@ -34,6 +34,7 @@ "diagnoses": "Diagnoses", "discard": "Discard", "dose": "Dose", + "editEncounter": "Edit", "editPastVisit": "Edit past visit", "editThisEncounter": "Edit this encounter", "editThisVisit": "Edit this visit", @@ -43,7 +44,9 @@ "encounters": "Encounters", "encounters__lower": "encounters", "encounters_title": "Encounters", + "encounterSuccessfullyDeleted": "The encounter has been deleted successfully", "encounterType": "Encounter type", + "encounterWithError": "The encounter could not be deleted successfully. If the error persists, please contact your system administrator.", "end": "End", "endActiveVisitConfirmation": "Are you sure you want to end this active visit?", "endDate": "End date", @@ -65,7 +68,6 @@ "errorUpdatingVisitAttribute": "Could not update {{attributeName}} attribute", "errorUpdatingVisitDetails": "Error updating visit details", "errorWhenRestoringVisit": "Error occured when restoring {{visit}}", - "failedDeleting": "couldn't be deleted", "failedToLoadCurrentVisit": "Failed loading current visit", "fieldRequired": "This field is required", "filterByEncounterType": "Filter by encounter type", @@ -144,7 +146,6 @@ "startNewVisit": "Start new visit", "startVisit": "Start visit", "startVisitError": "Error starting visit", - "successfullyDeleted": "successfully deleted", "tests": "Tests", "time": "Time", "timeFormat ": "Time Format", @@ -152,6 +153,7 @@ "undo": "Undo", "updateVisit": "Update visit", "updatingVisit": "Updating visit", + "viewEncounter": "View", "visit": "Visit", "visitAttributes": "Visit attributes", "visitCancelled": "Visit cancelled", From d812c12b6a79bb1d90e5f2a3a8bb658737713780 Mon Sep 17 00:00:00 2001 From: Dennis Kigen Date: Tue, 17 Dec 2024 19:54:27 +0300 Subject: [PATCH 3/5] (fix) Prevent status button text wrapping in the visit header (#2158) Fixes an issue where the status button text would wrap in the visit header when the text was long. Does so by adding `white-space: nowrap` to the status button. --- .../src/visit/queue-entry/edit-queue-entry.scss | 1 + packages/esm-patient-orders-app/translations/en.json | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/packages/esm-patient-chart-app/src/visit/queue-entry/edit-queue-entry.scss b/packages/esm-patient-chart-app/src/visit/queue-entry/edit-queue-entry.scss index 3d8992a1d..1fda6a8bd 100644 --- a/packages/esm-patient-chart-app/src/visit/queue-entry/edit-queue-entry.scss +++ b/packages/esm-patient-chart-app/src/visit/queue-entry/edit-queue-entry.scss @@ -2,6 +2,7 @@ @use '@openmrs/esm-styleguide/src/vars' as *; .editStatusBtn { + white-space: nowrap; margin-left: layout.$spacing-04; border: none; } diff --git a/packages/esm-patient-orders-app/translations/en.json b/packages/esm-patient-orders-app/translations/en.json index 136a4c3b1..9878c7699 100644 --- a/packages/esm-patient-orders-app/translations/en.json +++ b/packages/esm-patient-orders-app/translations/en.json @@ -30,9 +30,9 @@ "errorSavingLabResults": "Error saving lab results", "goToDrugOrderForm": "Order form", "indication": "Indication", - "labResultError": "Error loading lab results", "inStock": "In stock", "instructions": "Instructions", + "labResultError": "Error loading lab results", "launchOrderBasket": "Launch order basket", "loading": "Loading", "loadingInitialValues": "Loading initial values", From b52085672676d476505163d3a3289185a6c6325a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Tue, 17 Dec 2024 20:55:49 +0300 Subject: [PATCH 4/5] (chore) Update translations from Transifex (#2159) Co-authored-by: OpenMRS Bot --- .../translations/pt_BR.json | 90 +++++++++---------- .../translations/am.json | 2 + .../translations/ar.json | 2 + .../translations/de.json | 2 + .../translations/es.json | 2 + .../translations/fr.json | 2 + .../translations/he.json | 2 + .../translations/hi.json | 2 + .../translations/hi_IN.json | 2 + .../translations/id.json | 2 + .../translations/it.json | 2 + .../translations/km.json | 2 + .../translations/ne.json | 2 + .../translations/pt.json | 2 + .../translations/pt_BR.json | 2 + .../translations/qu.json | 2 + .../translations/si.json | 2 + .../translations/sw.json | 2 + .../translations/sw_KE.json | 2 + .../translations/tr.json | 2 + .../translations/tr_TR.json | 2 + .../translations/uk.json | 2 + .../translations/vi.json | 2 + .../translations/zh.json | 2 + .../translations/zh_CN.json | 2 + 25 files changed, 93 insertions(+), 45 deletions(-) diff --git a/packages/esm-patient-allergies-app/translations/pt_BR.json b/packages/esm-patient-allergies-app/translations/pt_BR.json index 92d41f0b4..9b9669067 100644 --- a/packages/esm-patient-allergies-app/translations/pt_BR.json +++ b/packages/esm-patient-allergies-app/translations/pt_BR.json @@ -1,47 +1,47 @@ { - "add": "Add", - "allergen": "Allergen", - "allergies": "Allergies", - "Allergies": "Allergies", - "allergyDeleted": "Allergy deleted", - "allergyIntolerances": "allergy intolerances", - "allergyNowVisible": "It is now visible on the Allergies page", - "allergySaved": "Allergy saved", - "allergySaveError": "Error saving allergy", - "allergyUpdated": "Allergy updated", - "cancel": "Cancel", - "dateOfOnsetAndComments": "Date of onset and comments", - "delete": "Delete", - "deleteModalConfirmationText": "Are you sure you want to delete this allergy?", - "deletePatientAllergy": "Delete allergy", - "deleting": "Deleting", - "discard": "Discard", - "edit": "Edit", - "editAllergy": "Edit an Allergy", - "editOrDeleteAllergy": "Edit or delete allergy", - "errorDeletingAllergy": "Error deleting allergy", - "invalidComment": "Invalid comment, try again", - "loading": "Loading", - "mild": "Mild", - "moderate": "Moderate", - "name": "Name", - "nonCodedAllergenWarningDescription": "Adding a custom allergen may impact system-wide allergy notifications. It's recommended to choose from the provided list for accurate alerts. Custom entries may not trigger notifications in all relevant contexts.", - "nonCodedAllergenWarningTitle": "Warning: Custom Allergen Entry", - "onsetDateAndComments": "Onset date and comments", - "other": "Other", - "otherNonCodedAllergen": "Other non-coded allergen", - "otherNonCodedAllergicReaction": "Other non-coded allergic reaction", - "reaction": "Reaction", - "reactions": "Reactions", - "recordNewAllergy": "Record a new allergy", - "saveAndClose": "Save and close", - "seeAll": "See all", - "selectAllergen": "Select the allergen", - "selectReactions": "Select the reactions", - "severe": "Severe", - "severityandReaction": "Severity", - "severityOfWorstReaction": "Severity of worst reaction", - "typeAdditionalComments": "Type any additional comments here", - "typeAllergenName": "Please type in the name of the allergen", - "typeAllergicReactionName": "Please type in the name of the allergic reaction" + "add": "Adicionar", + "allergen": "Alérgeno", + "allergies": "Alergias", + "Allergies": "Alergias", + "allergyDeleted": "Alergia excluída", + "allergyIntolerances": "intolerâncias alérgicas", + "allergyNowVisible": "Agora está visível na página de Alergias", + "allergySaved": "Alergia gravada", + "allergySaveError": "Erro ao gravar alergia", + "allergyUpdated": "Alergia atualizada", + "cancel": "Cancelar", + "dateOfOnsetAndComments": "Data de início e comentários", + "delete": "Apagar", + "deleteModalConfirmationText": "Tem certeza de que deseja remover esta alergia?", + "deletePatientAllergy": "Apagar alergia", + "deleting": "Removendo", + "discard": "Descartar", + "edit": "Editar", + "editAllergy": "Editar uma Alergia", + "editOrDeleteAllergy": "Editar ou apagar alergia", + "errorDeletingAllergy": "Erro ao apagar alergia", + "invalidComment": "Comentário inválido, tente novamente", + "loading": "Carregando", + "mild": "Leve", + "moderate": "Moderado", + "name": "Nome", + "nonCodedAllergenWarningDescription": "Adicionar um alérgeno personalizado pode afetar as notificações de alergia em todo o sistema. É recomendado escolher na lista correta fornecida para melhores alertas. As entradas personalizadas podem não acionar notificações em todos os contextos relevantes.", + "nonCodedAllergenWarningTitle": "Aviso: Entrada personalizada de alérgenos", + "onsetDateAndComments": "Data de início e comentários", + "other": "Outro", + "otherNonCodedAllergen": "Outro alergeno não codificado", + "otherNonCodedAllergicReaction": "Outra reação alérgica não codificada", + "reaction": "Reação", + "reactions": "Reações", + "recordNewAllergy": "Registar nova alergia", + "saveAndClose": "Salvar e fechar", + "seeAll": "Ver tudo", + "selectAllergen": "Selecione o alérgeno", + "selectReactions": "Selecione as reações", + "severe": "Severa", + "severityandReaction": "Gravidade", + "severityOfWorstReaction": "Gravidade da pior reação", + "typeAdditionalComments": "Descreva qualquer comentário adicional aqui", + "typeAllergenName": "Por favor digite o nome do alérgeno", + "typeAllergicReactionName": "Por favor digite o nome da reação alérgica" } diff --git a/packages/esm-patient-orders-app/translations/am.json b/packages/esm-patient-orders-app/translations/am.json index 9d3d18d84..136a4c3b1 100644 --- a/packages/esm-patient-orders-app/translations/am.json +++ b/packages/esm-patient-orders-app/translations/am.json @@ -30,11 +30,13 @@ "errorSavingLabResults": "Error saving lab results", "goToDrugOrderForm": "Order form", "indication": "Indication", + "labResultError": "Error loading lab results", "inStock": "In stock", "instructions": "Instructions", "launchOrderBasket": "Launch order basket", "loading": "Loading", "loadingInitialValues": "Loading initial values", + "loadinglabresults": "Loading lab results", "loadingTestDetails": "Loading test details", "medicationDurationAndUnit": "for {{duration}} {{durationUnit}}", "medicationIndefiniteDuration": "Indefinite duration", diff --git a/packages/esm-patient-orders-app/translations/ar.json b/packages/esm-patient-orders-app/translations/ar.json index 91d4b9a16..2cd81f407 100644 --- a/packages/esm-patient-orders-app/translations/ar.json +++ b/packages/esm-patient-orders-app/translations/ar.json @@ -30,11 +30,13 @@ "errorSavingLabResults": "Error saving lab results", "goToDrugOrderForm": "Order form", "indication": "Indication", + "labResultError": "Error loading lab results", "inStock": "In stock", "instructions": "Instructions", "launchOrderBasket": "Launch order basket", "loading": "Loading", "loadingInitialValues": "Loading initial values", + "loadinglabresults": "Loading lab results", "loadingTestDetails": "Loading test details", "medicationDurationAndUnit": "for {{duration}} {{durationUnit}}", "medicationIndefiniteDuration": "Indefinite duration", diff --git a/packages/esm-patient-orders-app/translations/de.json b/packages/esm-patient-orders-app/translations/de.json index 9d3d18d84..136a4c3b1 100644 --- a/packages/esm-patient-orders-app/translations/de.json +++ b/packages/esm-patient-orders-app/translations/de.json @@ -30,11 +30,13 @@ "errorSavingLabResults": "Error saving lab results", "goToDrugOrderForm": "Order form", "indication": "Indication", + "labResultError": "Error loading lab results", "inStock": "In stock", "instructions": "Instructions", "launchOrderBasket": "Launch order basket", "loading": "Loading", "loadingInitialValues": "Loading initial values", + "loadinglabresults": "Loading lab results", "loadingTestDetails": "Loading test details", "medicationDurationAndUnit": "for {{duration}} {{durationUnit}}", "medicationIndefiniteDuration": "Indefinite duration", diff --git a/packages/esm-patient-orders-app/translations/es.json b/packages/esm-patient-orders-app/translations/es.json index f44c7abdc..30f536017 100644 --- a/packages/esm-patient-orders-app/translations/es.json +++ b/packages/esm-patient-orders-app/translations/es.json @@ -30,11 +30,13 @@ "errorSavingLabResults": "Error al guardar los resultados de laboratorio", "goToDrugOrderForm": "Order form", "indication": "Indicación", + "labResultError": "Error loading lab results", "inStock": "In stock", "instructions": "Instructions", "launchOrderBasket": "Iniciar cesta de órdenes", "loading": "Cargando", "loadingInitialValues": "Cargando valores iniciales", + "loadinglabresults": "Loading lab results", "loadingTestDetails": "Cargando detalles de la prueba", "medicationDurationAndUnit": "por {{duration}} {{durationUnit}}", "medicationIndefiniteDuration": "Duración indefinida", diff --git a/packages/esm-patient-orders-app/translations/fr.json b/packages/esm-patient-orders-app/translations/fr.json index e0dbe331b..2c5fdae83 100644 --- a/packages/esm-patient-orders-app/translations/fr.json +++ b/packages/esm-patient-orders-app/translations/fr.json @@ -30,11 +30,13 @@ "errorSavingLabResults": "Erreur lors de la sauvegarde du résultat de laboratoire", "goToDrugOrderForm": "Bon de commande", "indication": "Indication", + "labResultError": "Error loading lab results", "inStock": "En stock", "instructions": "Instructions", "launchOrderBasket": "Charger le panier de commande", "loading": "Chargement", "loadingInitialValues": "Chargement des valeurs initiales", + "loadinglabresults": "Loading lab results", "loadingTestDetails": "Chargement des détails du test", "medicationDurationAndUnit": "pour {{duration}} {{durationUnit}}", "medicationIndefiniteDuration": "Durée indéfinie", diff --git a/packages/esm-patient-orders-app/translations/he.json b/packages/esm-patient-orders-app/translations/he.json index 11030a477..4a14d1ddd 100644 --- a/packages/esm-patient-orders-app/translations/he.json +++ b/packages/esm-patient-orders-app/translations/he.json @@ -30,11 +30,13 @@ "errorSavingLabResults": "Error saving lab results", "goToDrugOrderForm": "Order form", "indication": "Indication", + "labResultError": "Error loading lab results", "inStock": "In stock", "instructions": "Instructions", "launchOrderBasket": "Launch order basket", "loading": "Loading", "loadingInitialValues": "Loading initial values", + "loadinglabresults": "Loading lab results", "loadingTestDetails": "Loading test details", "medicationDurationAndUnit": "for {{duration}} {{durationUnit}}", "medicationIndefiniteDuration": "Indefinite duration", diff --git a/packages/esm-patient-orders-app/translations/hi.json b/packages/esm-patient-orders-app/translations/hi.json index 9d3d18d84..136a4c3b1 100644 --- a/packages/esm-patient-orders-app/translations/hi.json +++ b/packages/esm-patient-orders-app/translations/hi.json @@ -30,11 +30,13 @@ "errorSavingLabResults": "Error saving lab results", "goToDrugOrderForm": "Order form", "indication": "Indication", + "labResultError": "Error loading lab results", "inStock": "In stock", "instructions": "Instructions", "launchOrderBasket": "Launch order basket", "loading": "Loading", "loadingInitialValues": "Loading initial values", + "loadinglabresults": "Loading lab results", "loadingTestDetails": "Loading test details", "medicationDurationAndUnit": "for {{duration}} {{durationUnit}}", "medicationIndefiniteDuration": "Indefinite duration", diff --git a/packages/esm-patient-orders-app/translations/hi_IN.json b/packages/esm-patient-orders-app/translations/hi_IN.json index 9d3d18d84..136a4c3b1 100644 --- a/packages/esm-patient-orders-app/translations/hi_IN.json +++ b/packages/esm-patient-orders-app/translations/hi_IN.json @@ -30,11 +30,13 @@ "errorSavingLabResults": "Error saving lab results", "goToDrugOrderForm": "Order form", "indication": "Indication", + "labResultError": "Error loading lab results", "inStock": "In stock", "instructions": "Instructions", "launchOrderBasket": "Launch order basket", "loading": "Loading", "loadingInitialValues": "Loading initial values", + "loadinglabresults": "Loading lab results", "loadingTestDetails": "Loading test details", "medicationDurationAndUnit": "for {{duration}} {{durationUnit}}", "medicationIndefiniteDuration": "Indefinite duration", diff --git a/packages/esm-patient-orders-app/translations/id.json b/packages/esm-patient-orders-app/translations/id.json index 9d3d18d84..136a4c3b1 100644 --- a/packages/esm-patient-orders-app/translations/id.json +++ b/packages/esm-patient-orders-app/translations/id.json @@ -30,11 +30,13 @@ "errorSavingLabResults": "Error saving lab results", "goToDrugOrderForm": "Order form", "indication": "Indication", + "labResultError": "Error loading lab results", "inStock": "In stock", "instructions": "Instructions", "launchOrderBasket": "Launch order basket", "loading": "Loading", "loadingInitialValues": "Loading initial values", + "loadinglabresults": "Loading lab results", "loadingTestDetails": "Loading test details", "medicationDurationAndUnit": "for {{duration}} {{durationUnit}}", "medicationIndefiniteDuration": "Indefinite duration", diff --git a/packages/esm-patient-orders-app/translations/it.json b/packages/esm-patient-orders-app/translations/it.json index 9d3d18d84..136a4c3b1 100644 --- a/packages/esm-patient-orders-app/translations/it.json +++ b/packages/esm-patient-orders-app/translations/it.json @@ -30,11 +30,13 @@ "errorSavingLabResults": "Error saving lab results", "goToDrugOrderForm": "Order form", "indication": "Indication", + "labResultError": "Error loading lab results", "inStock": "In stock", "instructions": "Instructions", "launchOrderBasket": "Launch order basket", "loading": "Loading", "loadingInitialValues": "Loading initial values", + "loadinglabresults": "Loading lab results", "loadingTestDetails": "Loading test details", "medicationDurationAndUnit": "for {{duration}} {{durationUnit}}", "medicationIndefiniteDuration": "Indefinite duration", diff --git a/packages/esm-patient-orders-app/translations/km.json b/packages/esm-patient-orders-app/translations/km.json index 9d3d18d84..136a4c3b1 100644 --- a/packages/esm-patient-orders-app/translations/km.json +++ b/packages/esm-patient-orders-app/translations/km.json @@ -30,11 +30,13 @@ "errorSavingLabResults": "Error saving lab results", "goToDrugOrderForm": "Order form", "indication": "Indication", + "labResultError": "Error loading lab results", "inStock": "In stock", "instructions": "Instructions", "launchOrderBasket": "Launch order basket", "loading": "Loading", "loadingInitialValues": "Loading initial values", + "loadinglabresults": "Loading lab results", "loadingTestDetails": "Loading test details", "medicationDurationAndUnit": "for {{duration}} {{durationUnit}}", "medicationIndefiniteDuration": "Indefinite duration", diff --git a/packages/esm-patient-orders-app/translations/ne.json b/packages/esm-patient-orders-app/translations/ne.json index 9d3d18d84..136a4c3b1 100644 --- a/packages/esm-patient-orders-app/translations/ne.json +++ b/packages/esm-patient-orders-app/translations/ne.json @@ -30,11 +30,13 @@ "errorSavingLabResults": "Error saving lab results", "goToDrugOrderForm": "Order form", "indication": "Indication", + "labResultError": "Error loading lab results", "inStock": "In stock", "instructions": "Instructions", "launchOrderBasket": "Launch order basket", "loading": "Loading", "loadingInitialValues": "Loading initial values", + "loadinglabresults": "Loading lab results", "loadingTestDetails": "Loading test details", "medicationDurationAndUnit": "for {{duration}} {{durationUnit}}", "medicationIndefiniteDuration": "Indefinite duration", diff --git a/packages/esm-patient-orders-app/translations/pt.json b/packages/esm-patient-orders-app/translations/pt.json index 92b0c1f98..f6d5512fc 100644 --- a/packages/esm-patient-orders-app/translations/pt.json +++ b/packages/esm-patient-orders-app/translations/pt.json @@ -30,11 +30,13 @@ "errorSavingLabResults": "Erro ao salvar resultados laboratoriais", "goToDrugOrderForm": "Order form", "indication": "Indicação", + "labResultError": "Error loading lab results", "inStock": "Em stock", "instructions": "Instructions", "launchOrderBasket": "Iniciar carrinho de pedido", "loading": "Carregando", "loadingInitialValues": "Carregando valores iniciais", + "loadinglabresults": "Loading lab results", "loadingTestDetails": "Carregando detalhes do teste", "medicationDurationAndUnit": "para {{duration}} {{durationUnit}}", "medicationIndefiniteDuration": "Duração indefinida", diff --git a/packages/esm-patient-orders-app/translations/pt_BR.json b/packages/esm-patient-orders-app/translations/pt_BR.json index 9d3d18d84..136a4c3b1 100644 --- a/packages/esm-patient-orders-app/translations/pt_BR.json +++ b/packages/esm-patient-orders-app/translations/pt_BR.json @@ -30,11 +30,13 @@ "errorSavingLabResults": "Error saving lab results", "goToDrugOrderForm": "Order form", "indication": "Indication", + "labResultError": "Error loading lab results", "inStock": "In stock", "instructions": "Instructions", "launchOrderBasket": "Launch order basket", "loading": "Loading", "loadingInitialValues": "Loading initial values", + "loadinglabresults": "Loading lab results", "loadingTestDetails": "Loading test details", "medicationDurationAndUnit": "for {{duration}} {{durationUnit}}", "medicationIndefiniteDuration": "Indefinite duration", diff --git a/packages/esm-patient-orders-app/translations/qu.json b/packages/esm-patient-orders-app/translations/qu.json index 9d3d18d84..136a4c3b1 100644 --- a/packages/esm-patient-orders-app/translations/qu.json +++ b/packages/esm-patient-orders-app/translations/qu.json @@ -30,11 +30,13 @@ "errorSavingLabResults": "Error saving lab results", "goToDrugOrderForm": "Order form", "indication": "Indication", + "labResultError": "Error loading lab results", "inStock": "In stock", "instructions": "Instructions", "launchOrderBasket": "Launch order basket", "loading": "Loading", "loadingInitialValues": "Loading initial values", + "loadinglabresults": "Loading lab results", "loadingTestDetails": "Loading test details", "medicationDurationAndUnit": "for {{duration}} {{durationUnit}}", "medicationIndefiniteDuration": "Indefinite duration", diff --git a/packages/esm-patient-orders-app/translations/si.json b/packages/esm-patient-orders-app/translations/si.json index 9d3d18d84..136a4c3b1 100644 --- a/packages/esm-patient-orders-app/translations/si.json +++ b/packages/esm-patient-orders-app/translations/si.json @@ -30,11 +30,13 @@ "errorSavingLabResults": "Error saving lab results", "goToDrugOrderForm": "Order form", "indication": "Indication", + "labResultError": "Error loading lab results", "inStock": "In stock", "instructions": "Instructions", "launchOrderBasket": "Launch order basket", "loading": "Loading", "loadingInitialValues": "Loading initial values", + "loadinglabresults": "Loading lab results", "loadingTestDetails": "Loading test details", "medicationDurationAndUnit": "for {{duration}} {{durationUnit}}", "medicationIndefiniteDuration": "Indefinite duration", diff --git a/packages/esm-patient-orders-app/translations/sw.json b/packages/esm-patient-orders-app/translations/sw.json index 9d3d18d84..136a4c3b1 100644 --- a/packages/esm-patient-orders-app/translations/sw.json +++ b/packages/esm-patient-orders-app/translations/sw.json @@ -30,11 +30,13 @@ "errorSavingLabResults": "Error saving lab results", "goToDrugOrderForm": "Order form", "indication": "Indication", + "labResultError": "Error loading lab results", "inStock": "In stock", "instructions": "Instructions", "launchOrderBasket": "Launch order basket", "loading": "Loading", "loadingInitialValues": "Loading initial values", + "loadinglabresults": "Loading lab results", "loadingTestDetails": "Loading test details", "medicationDurationAndUnit": "for {{duration}} {{durationUnit}}", "medicationIndefiniteDuration": "Indefinite duration", diff --git a/packages/esm-patient-orders-app/translations/sw_KE.json b/packages/esm-patient-orders-app/translations/sw_KE.json index 9d3d18d84..136a4c3b1 100644 --- a/packages/esm-patient-orders-app/translations/sw_KE.json +++ b/packages/esm-patient-orders-app/translations/sw_KE.json @@ -30,11 +30,13 @@ "errorSavingLabResults": "Error saving lab results", "goToDrugOrderForm": "Order form", "indication": "Indication", + "labResultError": "Error loading lab results", "inStock": "In stock", "instructions": "Instructions", "launchOrderBasket": "Launch order basket", "loading": "Loading", "loadingInitialValues": "Loading initial values", + "loadinglabresults": "Loading lab results", "loadingTestDetails": "Loading test details", "medicationDurationAndUnit": "for {{duration}} {{durationUnit}}", "medicationIndefiniteDuration": "Indefinite duration", diff --git a/packages/esm-patient-orders-app/translations/tr.json b/packages/esm-patient-orders-app/translations/tr.json index 9d3d18d84..136a4c3b1 100644 --- a/packages/esm-patient-orders-app/translations/tr.json +++ b/packages/esm-patient-orders-app/translations/tr.json @@ -30,11 +30,13 @@ "errorSavingLabResults": "Error saving lab results", "goToDrugOrderForm": "Order form", "indication": "Indication", + "labResultError": "Error loading lab results", "inStock": "In stock", "instructions": "Instructions", "launchOrderBasket": "Launch order basket", "loading": "Loading", "loadingInitialValues": "Loading initial values", + "loadinglabresults": "Loading lab results", "loadingTestDetails": "Loading test details", "medicationDurationAndUnit": "for {{duration}} {{durationUnit}}", "medicationIndefiniteDuration": "Indefinite duration", diff --git a/packages/esm-patient-orders-app/translations/tr_TR.json b/packages/esm-patient-orders-app/translations/tr_TR.json index 9d3d18d84..136a4c3b1 100644 --- a/packages/esm-patient-orders-app/translations/tr_TR.json +++ b/packages/esm-patient-orders-app/translations/tr_TR.json @@ -30,11 +30,13 @@ "errorSavingLabResults": "Error saving lab results", "goToDrugOrderForm": "Order form", "indication": "Indication", + "labResultError": "Error loading lab results", "inStock": "In stock", "instructions": "Instructions", "launchOrderBasket": "Launch order basket", "loading": "Loading", "loadingInitialValues": "Loading initial values", + "loadinglabresults": "Loading lab results", "loadingTestDetails": "Loading test details", "medicationDurationAndUnit": "for {{duration}} {{durationUnit}}", "medicationIndefiniteDuration": "Indefinite duration", diff --git a/packages/esm-patient-orders-app/translations/uk.json b/packages/esm-patient-orders-app/translations/uk.json index 9d3d18d84..136a4c3b1 100644 --- a/packages/esm-patient-orders-app/translations/uk.json +++ b/packages/esm-patient-orders-app/translations/uk.json @@ -30,11 +30,13 @@ "errorSavingLabResults": "Error saving lab results", "goToDrugOrderForm": "Order form", "indication": "Indication", + "labResultError": "Error loading lab results", "inStock": "In stock", "instructions": "Instructions", "launchOrderBasket": "Launch order basket", "loading": "Loading", "loadingInitialValues": "Loading initial values", + "loadinglabresults": "Loading lab results", "loadingTestDetails": "Loading test details", "medicationDurationAndUnit": "for {{duration}} {{durationUnit}}", "medicationIndefiniteDuration": "Indefinite duration", diff --git a/packages/esm-patient-orders-app/translations/vi.json b/packages/esm-patient-orders-app/translations/vi.json index 9ed13ee54..b28b89db0 100644 --- a/packages/esm-patient-orders-app/translations/vi.json +++ b/packages/esm-patient-orders-app/translations/vi.json @@ -30,11 +30,13 @@ "errorSavingLabResults": "Error saving lab results", "goToDrugOrderForm": "Order form", "indication": "Chỉ định", + "labResultError": "Error loading lab results", "inStock": "In stock", "instructions": "Instructions", "launchOrderBasket": "Launch order basket", "loading": "Đang tải", "loadingInitialValues": "Loading initial values", + "loadinglabresults": "Loading lab results", "loadingTestDetails": "Loading test details", "medicationDurationAndUnit": "for {{duration}} {{durationUnit}}", "medicationIndefiniteDuration": "Indefinite duration", diff --git a/packages/esm-patient-orders-app/translations/zh.json b/packages/esm-patient-orders-app/translations/zh.json index 67546dee1..9a6ff1abc 100644 --- a/packages/esm-patient-orders-app/translations/zh.json +++ b/packages/esm-patient-orders-app/translations/zh.json @@ -30,11 +30,13 @@ "errorSavingLabResults": "保存检验结果时出现错误", "goToDrugOrderForm": "Order form", "indication": "适应症", + "labResultError": "Error loading lab results", "inStock": "In stock", "instructions": "Instructions", "launchOrderBasket": "开启医嘱篮", "loading": "加载中", "loadingInitialValues": "Loading initial values", + "loadinglabresults": "Loading lab results", "loadingTestDetails": "正在加载检验信息", "medicationDurationAndUnit": "持续 {{duration}} {{durationUnit}}", "medicationIndefiniteDuration": "无限期", diff --git a/packages/esm-patient-orders-app/translations/zh_CN.json b/packages/esm-patient-orders-app/translations/zh_CN.json index 67546dee1..9a6ff1abc 100644 --- a/packages/esm-patient-orders-app/translations/zh_CN.json +++ b/packages/esm-patient-orders-app/translations/zh_CN.json @@ -30,11 +30,13 @@ "errorSavingLabResults": "保存检验结果时出现错误", "goToDrugOrderForm": "Order form", "indication": "适应症", + "labResultError": "Error loading lab results", "inStock": "In stock", "instructions": "Instructions", "launchOrderBasket": "开启医嘱篮", "loading": "加载中", "loadingInitialValues": "Loading initial values", + "loadinglabresults": "Loading lab results", "loadingTestDetails": "正在加载检验信息", "medicationDurationAndUnit": "持续 {{duration}} {{durationUnit}}", "medicationIndefiniteDuration": "无限期", From 19351560c0c4973039e11c988d9370bdf9ec2e87 Mon Sep 17 00:00:00 2001 From: Dennis Kigen Date: Tue, 17 Dec 2024 23:15:08 +0300 Subject: [PATCH 5/5] (chore) Release v9.0.0 (#2162) Cuts a major release of Patient Chart, v9.0.0 with a breaking change, new features and fixes, and host of other changes. --- package.json | 2 +- packages/esm-form-engine-app/package.json | 4 +- packages/esm-form-entry-app/package.json | 2 +- .../package.json | 4 +- .../esm-patient-allergies-app/package.json | 4 +- .../esm-patient-attachments-app/package.json | 6 +- packages/esm-patient-banner-app/package.json | 6 +- packages/esm-patient-chart-app/package.json | 2 +- packages/esm-patient-common-lib/package.json | 2 +- .../esm-patient-conditions-app/package.json | 6 +- packages/esm-patient-flags-app/package.json | 4 +- packages/esm-patient-forms-app/package.json | 6 +- .../package.json | 4 +- packages/esm-patient-lists-app/package.json | 4 +- .../esm-patient-medications-app/package.json | 6 +- packages/esm-patient-notes-app/package.json | 6 +- packages/esm-patient-orders-app/package.json | 6 +- .../esm-patient-programs-app/package.json | 6 +- packages/esm-patient-tests-app/package.json | 6 +- packages/esm-patient-vitals-app/package.json | 6 +- yarn.lock | 348 +++++++++--------- 21 files changed, 220 insertions(+), 220 deletions(-) diff --git a/package.json b/package.json index 218909ae4..3d0a362d5 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "@openmrs/esm-patient-chart", "private": true, - "version": "8.2.0", + "version": "9.0.0", "workspaces": [ "packages/*" ], diff --git a/packages/esm-form-engine-app/package.json b/packages/esm-form-engine-app/package.json index ebb7da4ef..7ab6f51dc 100644 --- a/packages/esm-form-engine-app/package.json +++ b/packages/esm-form-engine-app/package.json @@ -1,6 +1,6 @@ { "name": "@openmrs/esm-form-engine-app", - "version": "8.2.0", + "version": "9.0.0", "license": "MPL-2.0", "description": "Wrapper ESM for the O3 React Form Engine", "browser": "dist/openmrs-esm-form-engine-app.js", @@ -44,7 +44,7 @@ }, "peerDependencies": { "@openmrs/esm-framework": "6.x", - "@openmrs/esm-patient-common-lib": "8.x", + "@openmrs/esm-patient-common-lib": "9.x", "dayjs": "1.x", "react": "18.x", "react-i18next": "11.x", diff --git a/packages/esm-form-entry-app/package.json b/packages/esm-form-entry-app/package.json index 06a33052f..3bc10fbe3 100644 --- a/packages/esm-form-entry-app/package.json +++ b/packages/esm-form-entry-app/package.json @@ -1,6 +1,6 @@ { "name": "@openmrs/esm-form-entry-app", - "version": "8.2.0", + "version": "9.0.0", "license": "MPL-2.0", "description": "Angular form engine for O3", "browser": "dist/openmrs-esm-form-entry-app.js", diff --git a/packages/esm-generic-patient-widgets-app/package.json b/packages/esm-generic-patient-widgets-app/package.json index 9920bc7f7..2ed4638d3 100644 --- a/packages/esm-generic-patient-widgets-app/package.json +++ b/packages/esm-generic-patient-widgets-app/package.json @@ -1,6 +1,6 @@ { "name": "@openmrs/esm-generic-patient-widgets-app", - "version": "8.2.0", + "version": "9.0.0", "license": "MPL-2.0", "description": "Generic widgets for the patient chart", "browser": "dist/openmrs-esm-generic-patient-widgets-app.js", @@ -44,7 +44,7 @@ }, "peerDependencies": { "@openmrs/esm-framework": "6.x", - "@openmrs/esm-patient-common-lib": "8.x", + "@openmrs/esm-patient-common-lib": "9.x", "dayjs": "1.x", "react": "^18.2.0", "react-i18next": "11.x", diff --git a/packages/esm-patient-allergies-app/package.json b/packages/esm-patient-allergies-app/package.json index 00c172435..838dfeaa0 100644 --- a/packages/esm-patient-allergies-app/package.json +++ b/packages/esm-patient-allergies-app/package.json @@ -1,6 +1,6 @@ { "name": "@openmrs/esm-patient-allergies-app", - "version": "8.2.0", + "version": "9.0.0", "license": "MPL-2.0", "description": "Patient allergies microfrontend for the OpenMRS SPA", "browser": "dist/openmrs-esm-patient-allergies-app.js", @@ -42,7 +42,7 @@ }, "peerDependencies": { "@openmrs/esm-framework": "6.x", - "@openmrs/esm-patient-common-lib": "8.x", + "@openmrs/esm-patient-common-lib": "9.x", "dayjs": "1.x", "react": "^18.2.0", "react-i18next": "11.x", diff --git a/packages/esm-patient-attachments-app/package.json b/packages/esm-patient-attachments-app/package.json index 911e3aec4..3d33ea078 100644 --- a/packages/esm-patient-attachments-app/package.json +++ b/packages/esm-patient-attachments-app/package.json @@ -1,6 +1,6 @@ { "name": "@openmrs/esm-patient-attachments-app", - "version": "8.2.0", + "version": "9.0.0", "license": "MPL-2.0", "description": "Patient attachments microfrontend for the OpenMRS SPA", "browser": "dist/openmrs-esm-patient-attachments-app.js", @@ -38,14 +38,14 @@ }, "dependencies": { "@carbon/react": "^1.12.0", - "@openmrs/esm-patient-common-lib": "^8.2.0", + "@openmrs/esm-patient-common-lib": "^9.0.0", "lodash-es": "^4.17.21", "react-grid-gallery": "^0.5.6", "react-html5-camera-photo": "^1.5.11" }, "peerDependencies": { "@openmrs/esm-framework": "6.x", - "@openmrs/esm-patient-common-lib": "8.x", + "@openmrs/esm-patient-common-lib": "9.x", "dayjs": "1.x", "react": "^18.2.0", "react-i18next": "11.x", diff --git a/packages/esm-patient-banner-app/package.json b/packages/esm-patient-banner-app/package.json index d6dcae521..320e88edb 100644 --- a/packages/esm-patient-banner-app/package.json +++ b/packages/esm-patient-banner-app/package.json @@ -1,6 +1,6 @@ { "name": "@openmrs/esm-patient-banner-app", - "version": "8.2.0", + "version": "9.0.0", "license": "MPL-2.0", "description": "Patient banner microfrontend for the OpenMRS SPA", "browser": "dist/openmrs-esm-patient-banner-app.js", @@ -38,12 +38,12 @@ }, "dependencies": { "@carbon/react": "^1.12.0", - "@openmrs/esm-patient-common-lib": "^8.2.0", + "@openmrs/esm-patient-common-lib": "^9.0.0", "lodash-es": "^4.17.21" }, "peerDependencies": { "@openmrs/esm-framework": "6.x", - "@openmrs/esm-patient-common-lib": "8.x", + "@openmrs/esm-patient-common-lib": "9.x", "dayjs": "1.x", "react": "18.x", "react-i18next": "11.x", diff --git a/packages/esm-patient-chart-app/package.json b/packages/esm-patient-chart-app/package.json index 202bc5525..b47bbcb07 100644 --- a/packages/esm-patient-chart-app/package.json +++ b/packages/esm-patient-chart-app/package.json @@ -1,6 +1,6 @@ { "name": "@openmrs/esm-patient-chart-app", - "version": "8.2.0", + "version": "9.0.0", "license": "MPL-2.0", "description": "Patient dashboard microfrontend for the OpenMRS SPA", "browser": "dist/openmrs-esm-patient-chart-app.js", diff --git a/packages/esm-patient-common-lib/package.json b/packages/esm-patient-common-lib/package.json index c468a04e3..186ad2d99 100644 --- a/packages/esm-patient-common-lib/package.json +++ b/packages/esm-patient-common-lib/package.json @@ -1,6 +1,6 @@ { "name": "@openmrs/esm-patient-common-lib", - "version": "8.2.0", + "version": "9.0.0", "license": "MPL-2.0", "description": "Library for common patient chart components", "browser": "dist/openmrs-esm-patient-common-lib.js", diff --git a/packages/esm-patient-conditions-app/package.json b/packages/esm-patient-conditions-app/package.json index 253a79589..a50d3651f 100644 --- a/packages/esm-patient-conditions-app/package.json +++ b/packages/esm-patient-conditions-app/package.json @@ -1,6 +1,6 @@ { "name": "@openmrs/esm-patient-conditions-app", - "version": "8.2.0", + "version": "9.0.0", "license": "MPL-2.0", "description": "Patient conditions microfrontend for the OpenMRS SPA", "browser": "dist/openmrs-esm-patient-conditions-app.js", @@ -38,12 +38,12 @@ }, "dependencies": { "@carbon/react": "^1.12.0", - "@openmrs/esm-patient-common-lib": "^8.2.0", + "@openmrs/esm-patient-common-lib": "^9.0.0", "lodash-es": "^4.17.21" }, "peerDependencies": { "@openmrs/esm-framework": "6.x", - "@openmrs/esm-patient-common-lib": "8.x", + "@openmrs/esm-patient-common-lib": "9.x", "dayjs": "1.x", "react": "18.x", "react-i18next": "11.x", diff --git a/packages/esm-patient-flags-app/package.json b/packages/esm-patient-flags-app/package.json index 2c4ee5129..64963e52b 100644 --- a/packages/esm-patient-flags-app/package.json +++ b/packages/esm-patient-flags-app/package.json @@ -1,6 +1,6 @@ { "name": "@openmrs/esm-patient-flags-app", - "version": "8.2.0", + "version": "9.0.0", "license": "MPL-2.0", "description": "An OpenMRS frontend module for managing patient flags", "browser": "dist/openmrs-esm-patient-flags-app.js", @@ -41,7 +41,7 @@ }, "peerDependencies": { "@openmrs/esm-framework": "6.x", - "@openmrs/esm-patient-common-lib": "8.x", + "@openmrs/esm-patient-common-lib": "9.x", "dayjs": "1.x", "react": "18.x", "react-i18next": "11.x", diff --git a/packages/esm-patient-forms-app/package.json b/packages/esm-patient-forms-app/package.json index 567de3122..24ebdac51 100644 --- a/packages/esm-patient-forms-app/package.json +++ b/packages/esm-patient-forms-app/package.json @@ -1,6 +1,6 @@ { "name": "@openmrs/esm-patient-forms-app", - "version": "8.2.0", + "version": "9.0.0", "license": "MPL-2.0", "description": "Patient forms microfrontend for the OpenMRS SPA", "browser": "dist/openmrs-esm-patient-forms-app.js", @@ -38,13 +38,13 @@ }, "dependencies": { "@carbon/react": "^1.12.0", - "@openmrs/esm-patient-common-lib": "^8.2.0", + "@openmrs/esm-patient-common-lib": "^9.0.0", "fuzzy": "^0.1.3", "lodash-es": "^4.17.21" }, "peerDependencies": { "@openmrs/esm-framework": "6.x", - "@openmrs/esm-patient-common-lib": "8.x", + "@openmrs/esm-patient-common-lib": "9.x", "dayjs": "1.x", "react": "18.x", "react-i18next": "11.x", diff --git a/packages/esm-patient-immunizations-app/package.json b/packages/esm-patient-immunizations-app/package.json index 6523fab2b..b6859728c 100644 --- a/packages/esm-patient-immunizations-app/package.json +++ b/packages/esm-patient-immunizations-app/package.json @@ -1,6 +1,6 @@ { "name": "@openmrs/esm-patient-immunizations-app", - "version": "8.2.0", + "version": "9.0.0", "license": "MPL-2.0", "description": "Patient immunizations microfrontend for the OpenMRS SPA", "browser": "dist/openmrs-esm-patient-immunizations-app.js", @@ -45,7 +45,7 @@ }, "peerDependencies": { "@openmrs/esm-framework": "6.x", - "@openmrs/esm-patient-common-lib": "8.x", + "@openmrs/esm-patient-common-lib": "9.x", "dayjs": "1.x", "react": "18.x", "react-i18next": "11.x", diff --git a/packages/esm-patient-lists-app/package.json b/packages/esm-patient-lists-app/package.json index 67b05f6f9..a08711938 100644 --- a/packages/esm-patient-lists-app/package.json +++ b/packages/esm-patient-lists-app/package.json @@ -1,6 +1,6 @@ { "name": "@openmrs/esm-patient-lists-app", - "version": "8.2.0", + "version": "9.0.0", "license": "MPL-2.0", "description": "An OpenMRS frontend module for managing patient lists in the Patient Chart", "browser": "dist/openmrs-esm-patient-lists-app.js", @@ -41,7 +41,7 @@ }, "peerDependencies": { "@openmrs/esm-framework": "6.x", - "@openmrs/esm-patient-common-lib": "8.x", + "@openmrs/esm-patient-common-lib": "9.x", "dayjs": "1.x", "react": "18.x", "react-i18next": "11.x", diff --git a/packages/esm-patient-medications-app/package.json b/packages/esm-patient-medications-app/package.json index 5b5959033..7dd8ae14d 100644 --- a/packages/esm-patient-medications-app/package.json +++ b/packages/esm-patient-medications-app/package.json @@ -1,6 +1,6 @@ { "name": "@openmrs/esm-patient-medications-app", - "version": "8.2.0", + "version": "9.0.0", "license": "MPL-2.0", "description": "Patient medications microfrontend for the OpenMRS SPA", "browser": "dist/openmrs-esm-patient-medications-app.js", @@ -38,12 +38,12 @@ }, "dependencies": { "@carbon/react": "^1.12.0", - "@openmrs/esm-patient-common-lib": "^8.2.0", + "@openmrs/esm-patient-common-lib": "^9.0.0", "lodash-es": "^4.17.21" }, "peerDependencies": { "@openmrs/esm-framework": "6.x", - "@openmrs/esm-patient-common-lib": "8.x", + "@openmrs/esm-patient-common-lib": "9.x", "dayjs": "1.x", "react": "18.x", "react-i18next": "11.x", diff --git a/packages/esm-patient-notes-app/package.json b/packages/esm-patient-notes-app/package.json index fa3d78a7a..6661e7c0e 100644 --- a/packages/esm-patient-notes-app/package.json +++ b/packages/esm-patient-notes-app/package.json @@ -1,6 +1,6 @@ { "name": "@openmrs/esm-patient-notes-app", - "version": "8.2.0", + "version": "9.0.0", "license": "MPL-2.0", "description": "Patient notes microfrontend for the OpenMRS SPA", "browser": "dist/openmrs-esm-patient-notes-app.js", @@ -37,12 +37,12 @@ "url": "https://github.com/openmrs/openmrs-esm-patient-chart/issues" }, "dependencies": { - "@openmrs/esm-patient-common-lib": "^8.2.0", + "@openmrs/esm-patient-common-lib": "^9.0.0", "lodash-es": "^4.17.21" }, "peerDependencies": { "@openmrs/esm-framework": "6.x", - "@openmrs/esm-patient-common-lib": "8.x", + "@openmrs/esm-patient-common-lib": "9.x", "dayjs": "1.x", "react": "18.x", "react-i18next": "11.x", diff --git a/packages/esm-patient-orders-app/package.json b/packages/esm-patient-orders-app/package.json index edc0b8acb..7bc06fa62 100644 --- a/packages/esm-patient-orders-app/package.json +++ b/packages/esm-patient-orders-app/package.json @@ -1,6 +1,6 @@ { "name": "@openmrs/esm-patient-orders-app", - "version": "8.2.0", + "version": "9.0.0", "license": "MPL-2.0", "description": "Microfrontend for the OpenMRS SPA providing the order basket for the patient chart", "browser": "dist/openmrs-esm-patient-orders-app.js", @@ -38,12 +38,12 @@ }, "dependencies": { "@carbon/react": "^1.12.0", - "@openmrs/esm-patient-common-lib": "^8.2.0", + "@openmrs/esm-patient-common-lib": "^9.0.0", "lodash-es": "^4.17.21" }, "peerDependencies": { "@openmrs/esm-framework": "6.x", - "@openmrs/esm-patient-common-lib": "8.x", + "@openmrs/esm-patient-common-lib": "9.x", "dayjs": "1.x", "react": "18.x", "react-i18next": "11.x", diff --git a/packages/esm-patient-programs-app/package.json b/packages/esm-patient-programs-app/package.json index 11b005106..17f854efe 100644 --- a/packages/esm-patient-programs-app/package.json +++ b/packages/esm-patient-programs-app/package.json @@ -1,6 +1,6 @@ { "name": "@openmrs/esm-patient-programs-app", - "version": "8.2.0", + "version": "9.0.0", "license": "MPL-2.0", "description": "Patient programs microfrontend for the OpenMRS SPA", "browser": "dist/openmrs-esm-patient-programs-app.js", @@ -38,12 +38,12 @@ }, "dependencies": { "@carbon/react": "^1.12.0", - "@openmrs/esm-patient-common-lib": "^8.2.0", + "@openmrs/esm-patient-common-lib": "^9.0.0", "lodash-es": "^4.17.21" }, "peerDependencies": { "@openmrs/esm-framework": "6.x", - "@openmrs/esm-patient-common-lib": "8.x", + "@openmrs/esm-patient-common-lib": "9.x", "dayjs": "1.x", "react": "18.x", "react-i18next": "11.x", diff --git a/packages/esm-patient-tests-app/package.json b/packages/esm-patient-tests-app/package.json index fa26d839b..bbd845398 100644 --- a/packages/esm-patient-tests-app/package.json +++ b/packages/esm-patient-tests-app/package.json @@ -1,6 +1,6 @@ { "name": "@openmrs/esm-patient-tests-app", - "version": "8.2.0", + "version": "9.0.0", "license": "MPL-2.0", "description": "Patient test order and results microfrontend for the OpenMRS SPA", "browser": "dist/openmrs-esm-patient-tests-app.js", @@ -40,14 +40,14 @@ "@carbon/charts": "^1.5.2", "@carbon/charts-react": "^1.5.2", "@carbon/react": "^1.12.0", - "@openmrs/esm-patient-common-lib": "^8.2.0", + "@openmrs/esm-patient-common-lib": "^9.0.0", "d3": "^7.6.1", "fuzzy": "^0.1.3", "lodash-es": "^4.17.21" }, "peerDependencies": { "@openmrs/esm-framework": "6.x", - "@openmrs/esm-patient-common-lib": "8.x", + "@openmrs/esm-patient-common-lib": "9.x", "react": "18.x", "react-i18next": "11.x", "react-router-dom": "6.x", diff --git a/packages/esm-patient-vitals-app/package.json b/packages/esm-patient-vitals-app/package.json index 38c0734ce..0ac0bb385 100644 --- a/packages/esm-patient-vitals-app/package.json +++ b/packages/esm-patient-vitals-app/package.json @@ -1,6 +1,6 @@ { "name": "@openmrs/esm-patient-vitals-app", - "version": "8.2.0", + "version": "9.0.0", "license": "MPL-2.0", "description": "Patient vitals microfrontend for the OpenMRS SPA", "browser": "dist/openmrs-esm-patient-vitals-app.js", @@ -39,13 +39,13 @@ "dependencies": { "@carbon/charts-react": "^1.5.2", "@carbon/react": "^1.12.0", - "@openmrs/esm-patient-common-lib": "^8.2.0", + "@openmrs/esm-patient-common-lib": "^9.0.0", "d3": "^7.6.1", "lodash-es": "^4.17.21" }, "peerDependencies": { "@openmrs/esm-framework": "6.x", - "@openmrs/esm-patient-common-lib": "8.x", + "@openmrs/esm-patient-common-lib": "9.x", "dayjs": "1.x", "react": "18.x", "react-i18next": "11.x", diff --git a/yarn.lock b/yarn.lock index 7a2afaf3d..98c2a79b2 100644 --- a/yarn.lock +++ b/yarn.lock @@ -5516,28 +5516,28 @@ __metadata: languageName: node linkType: hard -"@openmrs/esm-api@npm:6.0.1-pre.2544": - version: 6.0.1-pre.2544 - resolution: "@openmrs/esm-api@npm:6.0.1-pre.2544" +"@openmrs/esm-api@npm:6.0.3-pre.2587": + version: 6.0.3-pre.2587 + resolution: "@openmrs/esm-api@npm:6.0.3-pre.2587" dependencies: "@types/fhir": "npm:0.0.31" lodash-es: "npm:^4.17.21" peerDependencies: - "@openmrs/esm-config": 5.x - "@openmrs/esm-error-handling": 5.x - "@openmrs/esm-navigation": 5.x - "@openmrs/esm-offline": 5.x - checksum: 10/92314f079f2e1896729a8c6dfae064af4586063702017d09e170287c71525f62695de1ab9577534d3ca8efe7ca516164829ef384effd79b8a5eb667e1b4ed440 + "@openmrs/esm-config": 6.x + "@openmrs/esm-error-handling": 6.x + "@openmrs/esm-navigation": 6.x + "@openmrs/esm-offline": 6.x + checksum: 10/f60fa558f94b2c25e0b9a41d3545106fa8374873eb3964274da9c5b62815b24f421f6fa37466a1d880c3e1d1c628d12f989ac061f9a1fca050b1e265f83018df languageName: node linkType: hard -"@openmrs/esm-app-shell@npm:6.0.1-pre.2544": - version: 6.0.1-pre.2544 - resolution: "@openmrs/esm-app-shell@npm:6.0.1-pre.2544" +"@openmrs/esm-app-shell@npm:6.0.3-pre.2587": + version: 6.0.3-pre.2587 + resolution: "@openmrs/esm-app-shell@npm:6.0.3-pre.2587" dependencies: "@carbon/react": "npm:~1.37.0" - "@openmrs/esm-framework": "npm:6.0.1-pre.2544" - "@openmrs/esm-styleguide": "npm:6.0.1-pre.2544" + "@openmrs/esm-framework": "npm:6.0.3-pre.2587" + "@openmrs/esm-styleguide": "npm:6.0.3-pre.2587" dayjs: "npm:^1.10.4" dexie: "npm:^3.0.3" html-webpack-plugin: "npm:^5.5.0" @@ -5562,58 +5562,58 @@ __metadata: workbox-strategies: "npm:^6.1.5" workbox-webpack-plugin: "npm:^6.1.5" workbox-window: "npm:^6.1.5" - checksum: 10/1b9b190dd20f4b2b4a8649e47432da5b72bbb223205e802c9827362241e8ea43a8adbdf0567a20b9e37f5cd59e9074961b02d6798435cafd76b86850076705f6 + checksum: 10/41d62d459bc14cc289867ace21703eb59718850cff490b557cf411d0cae710f83aed67272c1d9c735802139e68dfa5ae5aeabae90bef1a34c9a036dec0454169 languageName: node linkType: hard -"@openmrs/esm-config@npm:6.0.1-pre.2544": - version: 6.0.1-pre.2544 - resolution: "@openmrs/esm-config@npm:6.0.1-pre.2544" +"@openmrs/esm-config@npm:6.0.3-pre.2587": + version: 6.0.3-pre.2587 + resolution: "@openmrs/esm-config@npm:6.0.3-pre.2587" dependencies: ramda: "npm:^0.26.1" peerDependencies: - "@openmrs/esm-globals": 5.x - "@openmrs/esm-state": 5.x - "@openmrs/esm-utils": 5.x - single-spa: 5.x - checksum: 10/7caa9c509bd52d1c80ff7f989f2401d0b4bb675b956e903bae42ce9664bd239bbc69268dbed41005af11fedd65d3b268f4f55173b2c0bde8aab42e5f0f8a03bb + "@openmrs/esm-globals": 6.x + "@openmrs/esm-state": 6.x + "@openmrs/esm-utils": 6.x + single-spa: 6.x + checksum: 10/394f7771cb1c79a7e86ebfdd744b88635694ae40ddcd7480eae6307dbfd1edf384e6472709da8b69c8af3023457fe1903dca4b6b46e950671ef204e3a4f72ce6 languageName: node linkType: hard -"@openmrs/esm-context@npm:6.0.1-pre.2544": - version: 6.0.1-pre.2544 - resolution: "@openmrs/esm-context@npm:6.0.1-pre.2544" +"@openmrs/esm-context@npm:6.0.3-pre.2587": + version: 6.0.3-pre.2587 + resolution: "@openmrs/esm-context@npm:6.0.3-pre.2587" dependencies: immer: "npm:^10.0.4" peerDependencies: - "@openmrs/esm-globals": 5.x - "@openmrs/esm-state": 5.x - checksum: 10/2f27a6f0580afd97e443850dbec0df436b078868e60f103fd2a047e981f38bef802626e6c1d73264d89b23392a3cb1a158364ac7a6d5a7cf2875772e86461f14 + "@openmrs/esm-globals": 6.x + "@openmrs/esm-state": 6.x + checksum: 10/44c3a1a0075fea0bc7e46606f5c92acfbf8acf258649d014831433bb1bc35393692afe94dd1d19a5ebe70c17b66a72963bdd1353dd0afa4aff7d4b17e48ba624 languageName: node linkType: hard -"@openmrs/esm-dynamic-loading@npm:6.0.1-pre.2544": - version: 6.0.1-pre.2544 - resolution: "@openmrs/esm-dynamic-loading@npm:6.0.1-pre.2544" +"@openmrs/esm-dynamic-loading@npm:6.0.3-pre.2587": + version: 6.0.3-pre.2587 + resolution: "@openmrs/esm-dynamic-loading@npm:6.0.3-pre.2587" peerDependencies: - "@openmrs/esm-globals": 5.x - "@openmrs/esm-translations": 5.x - checksum: 10/a8c485c495c20dd096d997cf01909560a31d0ed692c73e1f677a1a6c06ea59d776358009f28356eb5a29b6867fdc7ec44ba04f1debc8cc65769ee93455504f97 + "@openmrs/esm-globals": 6.x + "@openmrs/esm-translations": 6.x + checksum: 10/e06ce23bbcc251f52ed6ff575b5b75bcd48064705cc93b29b5130b3bb0308a19bb1b27a60407daf561fa9994f2c2ba23af502c6e5ba16f4fb6d178e8fb1f8add languageName: node linkType: hard -"@openmrs/esm-error-handling@npm:6.0.1-pre.2544": - version: 6.0.1-pre.2544 - resolution: "@openmrs/esm-error-handling@npm:6.0.1-pre.2544" +"@openmrs/esm-error-handling@npm:6.0.3-pre.2587": + version: 6.0.3-pre.2587 + resolution: "@openmrs/esm-error-handling@npm:6.0.3-pre.2587" peerDependencies: - "@openmrs/esm-globals": 5.x - checksum: 10/ce01de36f5632d21228daf855f0ec22b146b70a6a115ea2804f3a97543b357d166bac3265cc3b2d0c024880feda7aaa03b68b8ac3878fbbdbe12ddf763509bdb + "@openmrs/esm-globals": 6.x + checksum: 10/979df883355efa40ba0afa52aa0bcab2934578daa8486be0b30d3c264fd9994cd7cc777477b8c6fb2912a49cb4e463deebec6bdbf024161362b5236257176ab4 languageName: node linkType: hard -"@openmrs/esm-expression-evaluator@npm:6.0.1-pre.2544": - version: 6.0.1-pre.2544 - resolution: "@openmrs/esm-expression-evaluator@npm:6.0.1-pre.2544" +"@openmrs/esm-expression-evaluator@npm:6.0.3-pre.2587": + version: 6.0.3-pre.2587 + resolution: "@openmrs/esm-expression-evaluator@npm:6.0.3-pre.2587" dependencies: "@jsep-plugin/arrow": "npm:^1.0.5" "@jsep-plugin/new": "npm:^1.0.3" @@ -5622,37 +5622,37 @@ __metadata: "@jsep-plugin/template": "npm:^1.0.4" "@jsep-plugin/ternary": "npm:^1.1.3" jsep: "npm:^1.3.9" - checksum: 10/0ef3f93e302b9cefb84f048b4da518d5505100e597a46794ef4a7f184ef32c2214df8d50009c3b2271ab53c4fa2474132280d33214fa77f21c259511445394f1 + checksum: 10/f9784c806af4362ab01be17f265de10eaff37b45a3f5e8bb952c6a1929cf166a9e7b65ec35370119c7287ec23839868ac7e9f72121231a6465630c85b82dde76 languageName: node linkType: hard -"@openmrs/esm-extensions@npm:6.0.1-pre.2544": - version: 6.0.1-pre.2544 - resolution: "@openmrs/esm-extensions@npm:6.0.1-pre.2544" +"@openmrs/esm-extensions@npm:6.0.3-pre.2587": + version: 6.0.3-pre.2587 + resolution: "@openmrs/esm-extensions@npm:6.0.3-pre.2587" dependencies: lodash-es: "npm:^4.17.21" peerDependencies: - "@openmrs/esm-api": 5.x - "@openmrs/esm-config": 5.x - "@openmrs/esm-expression-evaluator": 5.x - "@openmrs/esm-feature-flags": 5.x - "@openmrs/esm-state": 5.x - "@openmrs/esm-utils": 5.x - single-spa: 5.x - checksum: 10/ce8d223adb0af0b75c9b374cd19d12c623856449db72eee51f540e29ee3f7dd9c6123c06d84ae0aad0ca1ac70ad2092a4d9326cd7dc7a34045b758e344491ac8 + "@openmrs/esm-api": 6.x + "@openmrs/esm-config": 6.x + "@openmrs/esm-expression-evaluator": 6.x + "@openmrs/esm-feature-flags": 6.x + "@openmrs/esm-state": 6.x + "@openmrs/esm-utils": 6.x + single-spa: 6.x + checksum: 10/026c8971aa678f2ea0a666a72675986f574e0e5557285fc72dad761c5722183fb4ef4c531e920cb8526c506115e753726e01f01f7ca6a096749fcba1ed959ec0 languageName: node linkType: hard -"@openmrs/esm-feature-flags@npm:6.0.1-pre.2544": - version: 6.0.1-pre.2544 - resolution: "@openmrs/esm-feature-flags@npm:6.0.1-pre.2544" +"@openmrs/esm-feature-flags@npm:6.0.3-pre.2587": + version: 6.0.3-pre.2587 + resolution: "@openmrs/esm-feature-flags@npm:6.0.3-pre.2587" dependencies: ramda: "npm:^0.26.1" peerDependencies: - "@openmrs/esm-globals": 5.x - "@openmrs/esm-state": 5.x - single-spa: 5.x - checksum: 10/896ec61ef7ea3ae30793a57a8cbaf6794c2f0930b2b3fee82f1f6b5b8595ecb358da49b97c048c57d18f16ed44cceaa91716f6de2237da281f2fcf549497cea9 + "@openmrs/esm-globals": 6.x + "@openmrs/esm-state": 6.x + single-spa: 6.x + checksum: 10/6ee655072ff5967eda26d1ee0b4ac2de79f8cf64378364aecd0f0dd25140744099f6ba9392b0fdf648e79d71a373f47d2c9a746043d0f768b64b34ee7c92b6a9 languageName: node linkType: hard @@ -5668,7 +5668,7 @@ __metadata: webpack: "npm:^5.94.0" peerDependencies: "@openmrs/esm-framework": 6.x - "@openmrs/esm-patient-common-lib": 8.x + "@openmrs/esm-patient-common-lib": 9.x dayjs: 1.x react: 18.x react-i18next: 11.x @@ -5769,27 +5769,27 @@ __metadata: languageName: unknown linkType: soft -"@openmrs/esm-framework@npm:6.0.1-pre.2544, @openmrs/esm-framework@npm:next": - version: 6.0.1-pre.2544 - resolution: "@openmrs/esm-framework@npm:6.0.1-pre.2544" - dependencies: - "@openmrs/esm-api": "npm:6.0.1-pre.2544" - "@openmrs/esm-config": "npm:6.0.1-pre.2544" - "@openmrs/esm-context": "npm:6.0.1-pre.2544" - "@openmrs/esm-dynamic-loading": "npm:6.0.1-pre.2544" - "@openmrs/esm-error-handling": "npm:6.0.1-pre.2544" - "@openmrs/esm-expression-evaluator": "npm:6.0.1-pre.2544" - "@openmrs/esm-extensions": "npm:6.0.1-pre.2544" - "@openmrs/esm-feature-flags": "npm:6.0.1-pre.2544" - "@openmrs/esm-globals": "npm:6.0.1-pre.2544" - "@openmrs/esm-navigation": "npm:6.0.1-pre.2544" - "@openmrs/esm-offline": "npm:6.0.1-pre.2544" - "@openmrs/esm-react-utils": "npm:6.0.1-pre.2544" - "@openmrs/esm-routes": "npm:6.0.1-pre.2544" - "@openmrs/esm-state": "npm:6.0.1-pre.2544" - "@openmrs/esm-styleguide": "npm:6.0.1-pre.2544" - "@openmrs/esm-translations": "npm:6.0.1-pre.2544" - "@openmrs/esm-utils": "npm:6.0.1-pre.2544" +"@openmrs/esm-framework@npm:6.0.3-pre.2587, @openmrs/esm-framework@npm:next": + version: 6.0.3-pre.2587 + resolution: "@openmrs/esm-framework@npm:6.0.3-pre.2587" + dependencies: + "@openmrs/esm-api": "npm:6.0.3-pre.2587" + "@openmrs/esm-config": "npm:6.0.3-pre.2587" + "@openmrs/esm-context": "npm:6.0.3-pre.2587" + "@openmrs/esm-dynamic-loading": "npm:6.0.3-pre.2587" + "@openmrs/esm-error-handling": "npm:6.0.3-pre.2587" + "@openmrs/esm-expression-evaluator": "npm:6.0.3-pre.2587" + "@openmrs/esm-extensions": "npm:6.0.3-pre.2587" + "@openmrs/esm-feature-flags": "npm:6.0.3-pre.2587" + "@openmrs/esm-globals": "npm:6.0.3-pre.2587" + "@openmrs/esm-navigation": "npm:6.0.3-pre.2587" + "@openmrs/esm-offline": "npm:6.0.3-pre.2587" + "@openmrs/esm-react-utils": "npm:6.0.3-pre.2587" + "@openmrs/esm-routes": "npm:6.0.3-pre.2587" + "@openmrs/esm-state": "npm:6.0.3-pre.2587" + "@openmrs/esm-styleguide": "npm:6.0.3-pre.2587" + "@openmrs/esm-translations": "npm:6.0.3-pre.2587" + "@openmrs/esm-utils": "npm:6.0.3-pre.2587" dayjs: "npm:^1.10.7" peerDependencies: dayjs: 1.x @@ -5798,9 +5798,9 @@ __metadata: react-dom: 18.x react-i18next: 11.x rxjs: 6.x - single-spa: 5.x + single-spa: 6.x swr: 2.x - checksum: 10/eb71c682d7b9769b4c5f3bbe5464bc03bcffa64f3da7bca1367f4ebc4a7843d951b77fe359c5177f5b16f360138fd9fc19c522e4eea3d4e1d7355680005abc30 + checksum: 10/1f2fff68cfb68a6a0de8a43f3c64f3b1b7571914eebda97eb7bf30f1f15f39901e770d490e38eab6ff69847718c07aefd379cddb3504aa98cf8907ada4d641f4 languageName: node linkType: hard @@ -5816,7 +5816,7 @@ __metadata: webpack: "npm:^5.94.0" peerDependencies: "@openmrs/esm-framework": 6.x - "@openmrs/esm-patient-common-lib": 8.x + "@openmrs/esm-patient-common-lib": 9.x dayjs: 1.x react: ^18.2.0 react-i18next: 11.x @@ -5826,42 +5826,42 @@ __metadata: languageName: unknown linkType: soft -"@openmrs/esm-globals@npm:6.0.1-pre.2544": - version: 6.0.1-pre.2544 - resolution: "@openmrs/esm-globals@npm:6.0.1-pre.2544" +"@openmrs/esm-globals@npm:6.0.3-pre.2587": + version: 6.0.3-pre.2587 + resolution: "@openmrs/esm-globals@npm:6.0.3-pre.2587" dependencies: "@types/fhir": "npm:0.0.31" peerDependencies: - single-spa: 5.x - checksum: 10/c2f37f6f237d3de84947fce75bd2bc814839d263dbb6d6097ccdc08d4cc069984bcc466c5748ef36ec4c132fdec91ca072a812c7daa9a02f5f45598c90c812d7 + single-spa: 6.x + checksum: 10/7a42d76bbb85bcc7525a2edcfd74c5ce3e6986e3d9d87e6c3979ef2a7c0e40ef1acdbd101a1b02f146371e18efb36f1309d6467cc35abe99678fb605aed0275c languageName: node linkType: hard -"@openmrs/esm-navigation@npm:6.0.1-pre.2544": - version: 6.0.1-pre.2544 - resolution: "@openmrs/esm-navigation@npm:6.0.1-pre.2544" +"@openmrs/esm-navigation@npm:6.0.3-pre.2587": + version: 6.0.3-pre.2587 + resolution: "@openmrs/esm-navigation@npm:6.0.3-pre.2587" dependencies: path-to-regexp: "npm:6.1.0" peerDependencies: - "@openmrs/esm-state": 5.x - checksum: 10/76d4f72bf8ed5b37127d109b03f596a6b6d914f211a1402f82bbc3f5bef30b71c61beb5d10b34b853c184edf46e28ef813781099864ccc09a3f45c490b39e09d + "@openmrs/esm-state": 6.x + checksum: 10/6e59e244048341a2842a079a345df889f5cb55f6a389f29b623616e85c39becdd6d18d1806a6de848784ddf8bd8281776ff33ac6ebf37cca4eac6e4fc3bfdd0e languageName: node linkType: hard -"@openmrs/esm-offline@npm:6.0.1-pre.2544": - version: 6.0.1-pre.2544 - resolution: "@openmrs/esm-offline@npm:6.0.1-pre.2544" +"@openmrs/esm-offline@npm:6.0.3-pre.2587": + version: 6.0.3-pre.2587 + resolution: "@openmrs/esm-offline@npm:6.0.3-pre.2587" dependencies: dexie: "npm:^3.0.3" lodash-es: "npm:^4.17.21" uuid: "npm:^9.0.1" workbox-window: "npm:^6.1.5" peerDependencies: - "@openmrs/esm-api": 5.x - "@openmrs/esm-globals": 5.x - "@openmrs/esm-state": 5.x + "@openmrs/esm-api": 6.x + "@openmrs/esm-globals": 6.x + "@openmrs/esm-state": 6.x rxjs: 6.x - checksum: 10/8e3e60086818d5dcb2734362f08723254b3ea2141cccdb53466a14f1a7f66f0968d15f5d22ffa196318856bdcac1d195a6ed4f79661eff70e7d795b57f3a177c + checksum: 10/dae8840d8d45596bed64e6f1e8362fa126b1eaba7274c70f144c75be68d967780000b297d061a7c4b405cedf6b67eb09de5c25f6d26a6c61ff0117f57ef2db12 languageName: node linkType: hard @@ -5875,7 +5875,7 @@ __metadata: webpack: "npm:^5.94.0" peerDependencies: "@openmrs/esm-framework": 6.x - "@openmrs/esm-patient-common-lib": 8.x + "@openmrs/esm-patient-common-lib": 9.x dayjs: 1.x react: ^18.2.0 react-i18next: 11.x @@ -5897,7 +5897,7 @@ __metadata: webpack: "npm:^5.94.0" peerDependencies: "@openmrs/esm-framework": 6.x - "@openmrs/esm-patient-common-lib": 8.x + "@openmrs/esm-patient-common-lib": 9.x dayjs: 1.x react: ^18.2.0 react-i18next: 11.x @@ -5917,7 +5917,7 @@ __metadata: webpack: "npm:^5.94.0" peerDependencies: "@openmrs/esm-framework": 6.x - "@openmrs/esm-patient-common-lib": 8.x + "@openmrs/esm-patient-common-lib": 9.x dayjs: 1.x react: 18.x react-i18next: 11.x @@ -6040,7 +6040,7 @@ __metadata: webpack: "npm:^5.94.0" peerDependencies: "@openmrs/esm-framework": 6.x - "@openmrs/esm-patient-common-lib": 8.x + "@openmrs/esm-patient-common-lib": 9.x dayjs: 1.x react: 18.x react-i18next: 11.x @@ -6059,7 +6059,7 @@ __metadata: webpack: "npm:^5.94.0" peerDependencies: "@openmrs/esm-framework": 6.x - "@openmrs/esm-patient-common-lib": 8.x + "@openmrs/esm-patient-common-lib": 9.x dayjs: 1.x react: 18.x react-i18next: 11.x @@ -6080,7 +6080,7 @@ __metadata: webpack: "npm:^5.94.0" peerDependencies: "@openmrs/esm-framework": 6.x - "@openmrs/esm-patient-common-lib": 8.x + "@openmrs/esm-patient-common-lib": 9.x dayjs: 1.x react: 18.x react-i18next: 11.x @@ -6103,7 +6103,7 @@ __metadata: zod: "npm:^3.22.2" peerDependencies: "@openmrs/esm-framework": 6.x - "@openmrs/esm-patient-common-lib": 8.x + "@openmrs/esm-patient-common-lib": 9.x dayjs: 1.x react: 18.x react-i18next: 11.x @@ -6122,7 +6122,7 @@ __metadata: webpack: "npm:^5.94.0" peerDependencies: "@openmrs/esm-framework": 6.x - "@openmrs/esm-patient-common-lib": 8.x + "@openmrs/esm-patient-common-lib": 9.x dayjs: 1.x react: 18.x react-i18next: 11.x @@ -6142,7 +6142,7 @@ __metadata: webpack: "npm:^5.94.0" peerDependencies: "@openmrs/esm-framework": 6.x - "@openmrs/esm-patient-common-lib": 8.x + "@openmrs/esm-patient-common-lib": 9.x dayjs: 1.x react: 18.x react-i18next: 11.x @@ -6161,7 +6161,7 @@ __metadata: webpack: "npm:^5.94.0" peerDependencies: "@openmrs/esm-framework": 6.x - "@openmrs/esm-patient-common-lib": 8.x + "@openmrs/esm-patient-common-lib": 9.x dayjs: 1.x react: 18.x react-i18next: 11.x @@ -6181,7 +6181,7 @@ __metadata: webpack: "npm:^5.94.0" peerDependencies: "@openmrs/esm-framework": 6.x - "@openmrs/esm-patient-common-lib": 8.x + "@openmrs/esm-patient-common-lib": 9.x dayjs: 1.x react: 18.x react-i18next: 11.x @@ -6201,7 +6201,7 @@ __metadata: webpack: "npm:^5.94.0" peerDependencies: "@openmrs/esm-framework": 6.x - "@openmrs/esm-patient-common-lib": 8.x + "@openmrs/esm-patient-common-lib": 9.x dayjs: 1.x react: 18.x react-i18next: 11.x @@ -6225,7 +6225,7 @@ __metadata: webpack: "npm:^5.94.0" peerDependencies: "@openmrs/esm-framework": 6.x - "@openmrs/esm-patient-common-lib": 8.x + "@openmrs/esm-patient-common-lib": 9.x react: 18.x react-i18next: 11.x react-router-dom: 6.x @@ -6246,7 +6246,7 @@ __metadata: webpack: "npm:^5.94.0" peerDependencies: "@openmrs/esm-framework": 6.x - "@openmrs/esm-patient-common-lib": 8.x + "@openmrs/esm-patient-common-lib": 9.x dayjs: 1.x react: 18.x react-i18next: 11.x @@ -6256,22 +6256,22 @@ __metadata: languageName: unknown linkType: soft -"@openmrs/esm-react-utils@npm:6.0.1-pre.2544": - version: 6.0.1-pre.2544 - resolution: "@openmrs/esm-react-utils@npm:6.0.1-pre.2544" +"@openmrs/esm-react-utils@npm:6.0.3-pre.2587": + version: 6.0.3-pre.2587 + resolution: "@openmrs/esm-react-utils@npm:6.0.3-pre.2587" dependencies: lodash-es: "npm:^4.17.21" single-spa-react: "npm:^6.0.0" peerDependencies: - "@openmrs/esm-api": 5.x - "@openmrs/esm-config": 5.x - "@openmrs/esm-context": 5.x - "@openmrs/esm-error-handling": 5.x - "@openmrs/esm-extensions": 5.x - "@openmrs/esm-feature-flags": 5.x - "@openmrs/esm-globals": 5.x - "@openmrs/esm-navigation": 5.x - "@openmrs/esm-utils": 5.x + "@openmrs/esm-api": 6.x + "@openmrs/esm-config": 6.x + "@openmrs/esm-context": 6.x + "@openmrs/esm-error-handling": 6.x + "@openmrs/esm-extensions": 6.x + "@openmrs/esm-feature-flags": 6.x + "@openmrs/esm-globals": 6.x + "@openmrs/esm-navigation": 6.x + "@openmrs/esm-utils": 6.x dayjs: 1.x i18next: 21.x react: 18.x @@ -6279,40 +6279,40 @@ __metadata: react-i18next: 11.x rxjs: 6.x swr: 2.x - checksum: 10/1c082be0268aeb0274763c9626315f7dc000341a231d17c8a538eda2f53929dbce602792d362e3b239e052a93d5e2771e5ba123aa6386c6f46e9f0a5f87e3c8a + checksum: 10/10a4626ce25701630016dcd0c6d6de895e729f76322a8007b90a1adc603adae292cf0655c3667c1370dd0bba6f79844eef08ea8b0f888a15e57d47e9fcba8617 languageName: node linkType: hard -"@openmrs/esm-routes@npm:6.0.1-pre.2544": - version: 6.0.1-pre.2544 - resolution: "@openmrs/esm-routes@npm:6.0.1-pre.2544" +"@openmrs/esm-routes@npm:6.0.3-pre.2587": + version: 6.0.3-pre.2587 + resolution: "@openmrs/esm-routes@npm:6.0.3-pre.2587" peerDependencies: - "@openmrs/esm-config": 5.x - "@openmrs/esm-dynamic-loading": 5.x - "@openmrs/esm-extensions": 5.x - "@openmrs/esm-feature-flags": 5.x - "@openmrs/esm-globals": 5.x - "@openmrs/esm-utils": 5.x + "@openmrs/esm-config": 6.x + "@openmrs/esm-dynamic-loading": 6.x + "@openmrs/esm-extensions": 6.x + "@openmrs/esm-feature-flags": 6.x + "@openmrs/esm-globals": 6.x + "@openmrs/esm-utils": 6.x single-spa: 6.x - checksum: 10/de50be219d0dd3ade2ea912092794d3f98a3227fa49af04f16c94131ca6546f00f14e692952143a356f379e2f45120372ce57c6937a1cf3867279c4a80032f5e + checksum: 10/6044fb142356fad114cc3fdf5deb918450f5c7830c1700bb75b4d5d5ee4ef72b9db72819129c15b822d198fe4974b60e0e595009bec401fd104d6d31e152db80 languageName: node linkType: hard -"@openmrs/esm-state@npm:6.0.1-pre.2544": - version: 6.0.1-pre.2544 - resolution: "@openmrs/esm-state@npm:6.0.1-pre.2544" +"@openmrs/esm-state@npm:6.0.3-pre.2587": + version: 6.0.3-pre.2587 + resolution: "@openmrs/esm-state@npm:6.0.3-pre.2587" dependencies: zustand: "npm:^4.5.5" peerDependencies: - "@openmrs/esm-globals": 5.x - "@openmrs/esm-utils": 5.x - checksum: 10/6c629cdf5a24d74868f455c22bdb10937ffa173ca74d73ce5705953bf06e45c2fc27e3b96f11dbb8332666e9f783cffb29ab04dfe620fec6155cef5eb9bd355d + "@openmrs/esm-globals": 6.x + "@openmrs/esm-utils": 6.x + checksum: 10/baa6fbc847d7995773ea208795daf316d921fd25fa556c80c7217e6d042e5720317b8d0a2272a2e4c598741f44a1d0558e6c185d397a7916477a3ce270b3eecd languageName: node linkType: hard -"@openmrs/esm-styleguide@npm:6.0.1-pre.2544": - version: 6.0.1-pre.2544 - resolution: "@openmrs/esm-styleguide@npm:6.0.1-pre.2544" +"@openmrs/esm-styleguide@npm:6.0.3-pre.2587": + version: 6.0.3-pre.2587 + resolution: "@openmrs/esm-styleguide@npm:6.0.3-pre.2587" dependencies: "@carbon/charts": "npm:^1.12.0" "@carbon/react": "npm:~1.37.0" @@ -6324,46 +6324,46 @@ __metadata: react-aria-components: "npm:^1.3.3" react-avatar: "npm:^5.0.3" peerDependencies: - "@openmrs/esm-error-handling": 5.x - "@openmrs/esm-extensions": 5.x - "@openmrs/esm-navigation": 5.x - "@openmrs/esm-react-utils": 5.x - "@openmrs/esm-state": 5.x - "@openmrs/esm-translations": 5.x + "@openmrs/esm-error-handling": 6.x + "@openmrs/esm-extensions": 6.x + "@openmrs/esm-navigation": 6.x + "@openmrs/esm-react-utils": 6.x + "@openmrs/esm-state": 6.x + "@openmrs/esm-translations": 6.x dayjs: 1.x i18next: 21.x react: 18.x react-dom: 18.x react-i18next: 11.x rxjs: 6.x - checksum: 10/a2fe13b54d67058917e49cbea233f296f74e2e6bd0a4ccd32c280a45509e114fbdd67c1f2b3382fdc421f875477585be78d1cc24c2ed119ca76a87fd207d5eed + checksum: 10/293429860234fb5559d164056188f70c3bb6b5b7010655355b1a1503e21f482e2313596a99bd1dd6be63fe04c1ffe39be057796832b0671db11a2ddff90caa38 languageName: node linkType: hard -"@openmrs/esm-translations@npm:6.0.1-pre.2544": - version: 6.0.1-pre.2544 - resolution: "@openmrs/esm-translations@npm:6.0.1-pre.2544" +"@openmrs/esm-translations@npm:6.0.3-pre.2587": + version: 6.0.3-pre.2587 + resolution: "@openmrs/esm-translations@npm:6.0.3-pre.2587" dependencies: i18next: "npm:21.10.0" peerDependencies: i18next: 21.x - checksum: 10/35fb85a84bbefa973e2767c41d19ccb9b37d7460949630d2a501d6fa750a565e4a03732c1ea8b63b5c6d47ca8f0bed9c95b9ca6121e011507c798eea1b51b96d + checksum: 10/b93c3064a6ac88481711d1d4083abd16995dab2e546ae26f71d42a673e705a0632968675657f49c47094495916e7ef1fa0664f163a5765bdea1ea910ebd3fd8f languageName: node linkType: hard -"@openmrs/esm-utils@npm:6.0.1-pre.2544": - version: 6.0.1-pre.2544 - resolution: "@openmrs/esm-utils@npm:6.0.1-pre.2544" +"@openmrs/esm-utils@npm:6.0.3-pre.2587": + version: 6.0.3-pre.2587 + resolution: "@openmrs/esm-utils@npm:6.0.3-pre.2587" dependencies: "@formatjs/intl-durationformat": "npm:^0.2.4" "@internationalized/date": "npm:^3.5.5" semver: "npm:7.3.2" peerDependencies: - "@openmrs/esm-globals": 5.x + "@openmrs/esm-globals": 6.x dayjs: 1.x i18next: 21.x rxjs: 6.x - checksum: 10/3e0d0b563f14753724bcb62d7041aee24c576e4b65b23e94934e8a5579867f3cc1581d407572c1c4ec5bd90a22cb145829dee0987343062db9305a4000b86dc5 + checksum: 10/1b66bfa4cc3600b170b423764e6cef553c8cb0779941ac23dd13e3a008720cdd521e2d529a1659b65268bc48b3fd5f8b4cb1771514795674ea2abf7733f6eeee languageName: node linkType: hard @@ -6414,9 +6414,9 @@ __metadata: languageName: node linkType: hard -"@openmrs/webpack-config@npm:6.0.1-pre.2544": - version: 6.0.1-pre.2544 - resolution: "@openmrs/webpack-config@npm:6.0.1-pre.2544" +"@openmrs/webpack-config@npm:6.0.3-pre.2587": + version: 6.0.3-pre.2587 + resolution: "@openmrs/webpack-config@npm:6.0.3-pre.2587" dependencies: "@swc/core": "npm:^1.3.58" clean-webpack-plugin: "npm:^4.0.0" @@ -6434,7 +6434,7 @@ __metadata: webpack-stats-plugin: "npm:^1.0.3" peerDependencies: webpack: 5.x - checksum: 10/ade6266c4329718e662f1e1a0331f2c32fbed5f44bced40d7beb44559f5ca7919ba746903796db97ffdd85c3396e9639a8986b90fe7a76d1b363e7d9d15252e2 + checksum: 10/9fe6fcec0a35dff6ef177e18d9ff9f72d4cec47d829af04a26e96496ccc797bfed14714f7e35c5826833686580da76d455ff4b3484d19f69b46674811f9279b8 languageName: node linkType: hard @@ -21277,11 +21277,11 @@ __metadata: linkType: hard "openmrs@npm:next": - version: 6.0.1-pre.2544 - resolution: "openmrs@npm:6.0.1-pre.2544" + version: 6.0.3-pre.2587 + resolution: "openmrs@npm:6.0.3-pre.2587" dependencies: - "@openmrs/esm-app-shell": "npm:6.0.1-pre.2544" - "@openmrs/webpack-config": "npm:6.0.1-pre.2544" + "@openmrs/esm-app-shell": "npm:6.0.3-pre.2587" + "@openmrs/webpack-config": "npm:6.0.3-pre.2587" "@pnpm/npm-conf": "npm:^2.1.0" "@swc/core": "npm:^1.3.58" autoprefixer: "npm:^10.4.20" @@ -21320,7 +21320,7 @@ __metadata: yargs: "npm:^17.6.2" bin: openmrs: ./dist/cli.js - checksum: 10/114414d66faaea61f30785a83bd612278377f75c9387af517232f283ef29855d7deb250b32266e0521d383eb0b273d5cf2097d1c429931eeae337e32ef512b9b + checksum: 10/6099a55dfaf8b057b7e3420569a839d0f8d9ed4e8c36af8a6a58279c389600bd5549b00ac2e436e88b1e551c959c2994daca811ec6725d6f4f1ba4d6a548c4c0 languageName: node linkType: hard