From 6f9faffd2b640e69ef8405c00e89bdb9e0558c36 Mon Sep 17 00:00:00 2001 From: Dennis Kigen Date: Sat, 21 Sep 2024 19:34:20 +0300 Subject: [PATCH 01/12] (feat) Visual tweaks to the service queues ChangeStatus modal --- .../change-status-dialog.component.tsx | 279 +++++++++--------- .../change-status-dialog.test.tsx | 10 +- .../translations/en.json | 7 +- 3 files changed, 150 insertions(+), 146 deletions(-) diff --git a/packages/esm-service-queues-app/src/active-visits/change-status-dialog.component.tsx b/packages/esm-service-queues-app/src/active-visits/change-status-dialog.component.tsx index cfabd3a89..e9d9bad2a 100644 --- a/packages/esm-service-queues-app/src/active-visits/change-status-dialog.component.tsx +++ b/packages/esm-service-queues-app/src/active-visits/change-status-dialog.component.tsx @@ -1,31 +1,32 @@ import React, { useMemo } from 'react'; import { Button, + ContentSwitcher, + Form, + InlineLoading, + InlineNotification, ModalBody, ModalFooter, ModalHeader, - Form, - ContentSwitcher, - Switch, - Select, - SelectItem, - InlineNotification, RadioButton, RadioButtonGroup, - InlineLoading, + Select, + SelectItem, + Stack, + Switch, } from '@carbon/react'; import { useTranslation } from 'react-i18next'; -import { navigate, showSnackbar, useConfig } from '@openmrs/esm-framework'; -import { type MappedQueueEntry } from '../types'; -import { updateQueueEntry } from './active-visits-table.resource'; -import { useQueueLocations } from '../patient-search/hooks/useQueueLocations'; -import styles from './change-status-dialog.scss'; -import { useQueues } from '../hooks/useQueues'; import { useForm, Controller } from 'react-hook-form'; import { z } from 'zod'; import { zodResolver } from '@hookform/resolvers/zod'; +import { navigate, showSnackbar, useConfig } from '@openmrs/esm-framework'; +import { type MappedQueueEntry } from '../types'; import { type ConfigObject } from '../config-schema'; +import { useQueues } from '../hooks/useQueues'; +import { updateQueueEntry } from './active-visits-table.resource'; import { useMutateQueueEntries } from '../hooks/useQueueEntries'; +import { useQueueLocations } from '../patient-search/hooks/useQueueLocations'; +import styles from './change-status-dialog.scss'; interface ChangeStatusDialogProps { queueEntry: MappedQueueEntry; @@ -41,9 +42,9 @@ const ChangeStatus: React.FC = ({ queueEntry, closeModa () => z.object({ location: z.string({ required_error: t('queueLocationRequired', 'Queue location is required') }), + priority: z.string({ required_error: t('priorityIsRequired', 'Priority is required') }), service: z.string({ required_error: t('serviceIsRequired', 'Service is required') }), status: z.string({ required_error: t('statusIsRequired', 'Status is required') }), - priority: z.string({ required_error: t('priorityIsRequired', 'Priority is required') }), }), [], ); @@ -82,18 +83,16 @@ const ChangeStatus: React.FC = ({ queueEntry, closeModa endDate, sortWeight, ).then( - ({ status }) => { - if (status === 201) { - showSnackbar({ - isLowContrast: true, - title: t('updateEntry', 'Update entry'), - kind: 'success', - subtitle: t('queueEntryUpdateSuccessfully', 'Queue Entry Updated Successfully'), - }); - closeModal(); - mutateQueueEntries(); - navigate({ to: `${window.spaBase}/home/service-queues` }); - } + () => { + showSnackbar({ + isLowContrast: true, + title: t('updateEntry', 'Update entry'), + kind: 'success', + subtitle: t('queueEntryUpdateSuccessfully', 'Queue Entry Updated Successfully'), + }); + closeModal(); + mutateQueueEntries(); + navigate({ to: `${window.spaBase}/home/service-queues` }); }, (error) => { showSnackbar({ @@ -121,127 +120,131 @@ const ChangeStatus: React.FC = ({ queueEntry, closeModa
- {queueEntry.name}   ·  {queueEntry.patientSex}   ·  {queueEntry.patientAge}  - {t('years', 'Years')} + {t('patientInfo', '{{name}}{{sexInfo}}{{ageInfo}}', { + name: queueEntry.name, + sexInfo: queueEntry.patientSex ? ` · ${queueEntry.patientSex} · ` : '', + ageInfo: queueEntry.patientAge ? `${queueEntry.patientAge} ${t('years', 'Years')}` : '', + })}
-
- ( - - )} - /> -
- -
-
{t('queueService', 'Queue service')}
- ( - - )} - /> -
- -
-
{t('queueStatus', 'Queue status')}
- {!allowedStatuses?.length ? ( - - ) : ( + +
+
{t('queueLocation', 'Queue location')}
( - { - onChange(uuid); + render={({ field: { onChange, value } }) => ( + )} /> - )} -
- -
-
{t('queuePriority', 'Queue priority')}
- ( - <> - { - onChange(event.name as any); - }}> - {allowedPriorities?.length > 0 ? ( - allowedPriorities.map(({ uuid, display }) => { - return ; - }) - ) : ( - - )} - - {errors.priority &&
{errors.priority.message}
} - +
+
+
{t('queueService', 'Queue service')}
+ ( + + )} + /> +
+
+
{t('queueStatus', 'Queue status')}
+ {!allowedStatuses?.length ? ( + + ) : ( + ( + { + onChange(uuid); + }}> + {allowedStatuses?.length > 0 && + allowedStatuses.map(({ uuid, display }) => ( + + ))} + + )} + /> )} - /> -
+
+
+
{t('queuePriority', 'Queue priority')}
+ ( + <> + { + onChange(event.name as any); + }}> + {allowedPriorities?.length > 0 ? ( + allowedPriorities.map(({ uuid, display }) => { + return ; + }) + ) : ( + + )} + + {errors.priority &&
{errors.priority.message}
} + + )} + /> +
+
diff --git a/packages/esm-appointments-app/src/calendar/monthly/monthly-workload-view.component.tsx b/packages/esm-appointments-app/src/calendar/monthly/monthly-workload-view.component.tsx index 6b9c80ae2..044b0da07 100644 --- a/packages/esm-appointments-app/src/calendar/monthly/monthly-workload-view.component.tsx +++ b/packages/esm-appointments-app/src/calendar/monthly/monthly-workload-view.component.tsx @@ -1,14 +1,14 @@ import React, { useContext, useMemo } from 'react'; import classNames from 'classnames'; import dayjs, { type Dayjs } from 'dayjs'; +import { User } from '@carbon/react/icons'; import { navigate, useLayoutType } from '@openmrs/esm-framework'; -import { isSameMonth } from '../../helpers'; import { spaHomePage } from '../../constants'; -import styles from './monthly-view-workload.scss'; +import { isSameMonth } from '../../helpers'; import { type DailyAppointmentsCountByService } from '../../types'; import SelectedDateContext from '../../hooks/selectedDateContext'; -import { User } from '@carbon/react/icons'; import MonthlyWorkloadViewExpanded from './monthly-workload-view-expanded.component'; +import styles from './monthly-view-workload.scss'; export interface MonthlyWorkloadViewProps { events: Array; diff --git a/packages/esm-appointments-app/src/constants.ts b/packages/esm-appointments-app/src/constants.ts index 5cd36ccc7..377a28b21 100644 --- a/packages/esm-appointments-app/src/constants.ts +++ b/packages/esm-appointments-app/src/constants.ts @@ -1,6 +1,6 @@ export const spaRoot = window['getOpenmrsSpaBase']; export const basePath = '/appointments'; -export const spaHomePage = ` ${window.getOpenmrsSpaBase()}home`; +export const spaHomePage = `${window.spaBase}/home`; export const omrsDateFormat = 'YYYY-MM-DDTHH:mm:ss.SSSZZ'; export const appointmentLocationTagName = 'Appointment Location'; diff --git a/packages/esm-appointments-app/src/metrics/metrics-header.component.tsx b/packages/esm-appointments-app/src/metrics/metrics-header.component.tsx index 5c2fb6eeb..8b2a915e6 100644 --- a/packages/esm-appointments-app/src/metrics/metrics-header.component.tsx +++ b/packages/esm-appointments-app/src/metrics/metrics-header.component.tsx @@ -1,14 +1,13 @@ import React, { useContext } from 'react'; import dayjs from 'dayjs'; import isToday from 'dayjs/plugin/isToday'; -import { launchWorkspace } from '@openmrs/esm-framework'; import { useTranslation } from 'react-i18next'; import { Calendar, Hospital } from '@carbon/react/icons'; import { Button } from '@carbon/react'; -import { ExtensionSlot, isDesktop, navigate, useLayoutType } from '@openmrs/esm-framework'; +import { ExtensionSlot, isDesktop, launchWorkspace, navigate, useLayoutType } from '@openmrs/esm-framework'; import { spaHomePage } from '../constants'; -import styles from './metrics-header.scss'; import SelectedDateContext from '../hooks/selectedDateContext'; +import styles from './metrics-header.scss'; dayjs.extend(isToday); @@ -39,7 +38,7 @@ const MetricsHeader: React.FC = () => { onClick={() => navigate({ to: `${spaHomePage}/appointments/calendar/${dayjs(selectedDate).format('YYYY-MM-DD')}` }) }> - {t('appointmentsCalendar', 'Appointments Calendar')} + {t('appointmentsCalendar', 'Appointments calendar')} Date: Mon, 23 Sep 2024 19:33:03 +0300 Subject: [PATCH 03/12] (fix) O3-3737: Fix pending items configuration on ward patient card (#1324) * feat: configure pending orders * rename pending-orders to pending-items slot name * (fix): fix pendingItems config --- .../config-schema-pending-items-extension.ts | 29 +++++++++++ .../config-schema-pending-orders-extension.ts | 25 ---------- packages/esm-ward-app/src/config-schema.ts | 16 +++--- packages/esm-ward-app/src/index.ts | 8 +-- packages/esm-ward-app/src/routes.json | 4 +- .../pending-items-car-row.extension.tsx | 50 +++++++++++++++++++ .../card-rows/pending-orders.extension.tsx | 28 ----------- .../ward-patient-pending-order.component.tsx | 16 +++++- .../ward-patient-card.component.tsx | 32 ++++-------- .../ward-patient-card/ward-patient-card.scss | 11 ++-- 10 files changed, 127 insertions(+), 92 deletions(-) create mode 100644 packages/esm-ward-app/src/config-schema-pending-items-extension.ts delete mode 100644 packages/esm-ward-app/src/config-schema-pending-orders-extension.ts create mode 100644 packages/esm-ward-app/src/ward-patient-card/card-rows/pending-items-car-row.extension.tsx delete mode 100644 packages/esm-ward-app/src/ward-patient-card/card-rows/pending-orders.extension.tsx diff --git a/packages/esm-ward-app/src/config-schema-pending-items-extension.ts b/packages/esm-ward-app/src/config-schema-pending-items-extension.ts new file mode 100644 index 000000000..985b5a1b2 --- /dev/null +++ b/packages/esm-ward-app/src/config-schema-pending-items-extension.ts @@ -0,0 +1,29 @@ +import { Type } from '@openmrs/esm-framework'; + +export const pendingItemsExtensionConfigSchema = { + orders: { + orderTypes: { + _type: Type.Array, + _description: 'Defines order types displayed on the ward patient card pending items section.', + _default: [{ label: 'Labs', uuid: '52a447d3-a64a-11e3-9aeb-50e549534c5e' }], + _elements: { + uuid: { + _type: Type.UUID, + _description: 'Identifies the order type.', + }, + label: { + _type: Type.String, + _description: + "The label or i18n key to the translated label to display. If not provided, defaults to 'Orders'", + _default: null, + }, + }, + }, + }, + showPendingItems: { + _type: Type.Boolean, + _description: + 'Optional. If true, pending items (e.g., number of pending orders) will be displayed on the patient card.', + _default: true, + }, +}; diff --git a/packages/esm-ward-app/src/config-schema-pending-orders-extension.ts b/packages/esm-ward-app/src/config-schema-pending-orders-extension.ts deleted file mode 100644 index ed6ebc540..000000000 --- a/packages/esm-ward-app/src/config-schema-pending-orders-extension.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { Type } from '@openmrs/esm-framework'; - -export const pendingOrdersExtensionConfigSchema = { - orderTypes: { - _type: Type.Array, - _description: 'Defines order types displayed on the ward patient card pending items section.', - _default: [{ label: 'Labs', uuid: '52a447d3-a64a-11e3-9aeb-50e549534c5e' }], - _elements: { - uuid: { - _type: Type.UUID, - _description: 'Identifies the order type.', - }, - label: { - _type: Type.String, - _description: "The label or i18n key to the translated label to display. If not provided, defaults to 'Orders'", - _default: null, - }, - }, - }, - enabled: { - _type: Type.Boolean, - _description: 'Optional. Enable pending order visibility on ward card pending items', - _default: true, - }, -}; diff --git a/packages/esm-ward-app/src/config-schema.ts b/packages/esm-ward-app/src/config-schema.ts index c574313ca..a4dfb5945 100644 --- a/packages/esm-ward-app/src/config-schema.ts +++ b/packages/esm-ward-app/src/config-schema.ts @@ -185,18 +185,20 @@ export interface WardConfigObject { export interface WardPatientCardsConfig { obsElementDefinitions: Array; - pendingOrderTypesDefinitions: Array; + pendingItemsDefinitions: Array; identifierElementDefinitions: Array; addressElementDefinitions: Array; cardDefinitions: Array; } -export interface PendingOrderTypesDefinition { - enabled: boolean; - orderTypes: Array<{ - label?: string; - uuid: string; - }>; +export interface PendingItemsDefinition { + showPendingItems: boolean; + orders: { + orderTypes: Array<{ + label?: string; + uuid: string; + }>; + }; } export interface ObsElementDefinition { diff --git a/packages/esm-ward-app/src/index.ts b/packages/esm-ward-app/src/index.ts index 06a6a344d..7474a605e 100644 --- a/packages/esm-ward-app/src/index.ts +++ b/packages/esm-ward-app/src/index.ts @@ -13,7 +13,7 @@ import { moduleName } from './constant'; import { createDashboardLink } from './createDashboardLink.component'; import rootComponent from './root.component'; import { motherChildRowConfigSchema } from './config-schema-mother-child-row'; -import { pendingOrdersExtensionConfigSchema } from './config-schema-pending-orders-extension'; +import { pendingItemsExtensionConfigSchema } from './config-schema-pending-items-extension'; export const importTranslation = require.context('../translations', false, /.json$/, 'lazy'); @@ -74,8 +74,8 @@ export const motherChildRowExtension = getAsyncLifecycle( options, ); -export const pendingOrdersExtension = getAsyncLifecycle( - () => import('./ward-patient-card/card-rows/pending-orders.extension'), +export const pendingItemsCardRowExtension = getAsyncLifecycle( + () => import('./ward-patient-card/card-rows/pending-items-car-row.extension'), options, ); @@ -113,7 +113,7 @@ export function startupApp() { defineExtensionConfigSchema('colored-obs-tags-card-row', coloredObsTagsCardRowConfigSchema); defineExtensionConfigSchema('admission-request-note-card-row', admissionRequestNoteRowConfigSchema); defineExtensionConfigSchema('mother-child-card-row', motherChildRowConfigSchema); - defineExtensionConfigSchema('ward-patient-pending-orders', pendingOrdersExtensionConfigSchema); + defineExtensionConfigSchema('ward-patient-pending-items-card-row', pendingItemsExtensionConfigSchema); registerFeatureFlag( 'bedmanagement-module', diff --git a/packages/esm-ward-app/src/routes.json b/packages/esm-ward-app/src/routes.json index 9b5690071..77f9d532a 100644 --- a/packages/esm-ward-app/src/routes.json +++ b/packages/esm-ward-app/src/routes.json @@ -66,8 +66,8 @@ "slot": "ward-patient-card-slot" }, { - "component": "pendingOrdersExtension", - "name": "ward-patient-pending-orders", + "component": "pendingItemsCardRowExtension", + "name": "ward-patient-pending-items-card-row", "slot": "ward-patient-card-pending-items-slot" } ], diff --git a/packages/esm-ward-app/src/ward-patient-card/card-rows/pending-items-car-row.extension.tsx b/packages/esm-ward-app/src/ward-patient-card/card-rows/pending-items-car-row.extension.tsx new file mode 100644 index 000000000..4cded2d6f --- /dev/null +++ b/packages/esm-ward-app/src/ward-patient-card/card-rows/pending-items-car-row.extension.tsx @@ -0,0 +1,50 @@ +import React, { useCallback, useEffect } from 'react'; +import { type WardPatientCard } from '../../types'; +import { Hourglass } from '@carbon/react/icons'; + +import { useConfig } from '@openmrs/esm-framework'; +import type { PendingItemsDefinition } from '../../config-schema'; +import { WardPatientPendingOrder } from '../row-elements/ward-patient-pending-order.component'; +import styles from '../ward-patient-card.scss'; +import WardPatientPendingTransfer from '../row-elements/ward-patient-pending-transfer'; + +const PendingItemsCarRowExtension: WardPatientCard = (wardPatient) => { + const { orders, showPendingItems } = useConfig(); + const [hasPendingOrders, setHasPendingOrders] = React.useState(false); + + const hasPendingItems = !!wardPatient?.inpatientRequest || hasPendingOrders; + + const handlePendingOrderCount = useCallback((count: number) => { + if (count > 0) { + setHasPendingOrders(true); + } + }, []); + + useEffect(() => { + if (!orders?.orderTypes?.length) { + setHasPendingOrders(false); + } + }, [orders]); + + return ( +
+ {showPendingItems && hasPendingItems ? ( + <> + : + + ) : null} + {orders?.orderTypes.map(({ uuid, label }) => ( + + ))} + {wardPatient?.inpatientRequest ? : null} +
+ ); +}; + +export default PendingItemsCarRowExtension; diff --git a/packages/esm-ward-app/src/ward-patient-card/card-rows/pending-orders.extension.tsx b/packages/esm-ward-app/src/ward-patient-card/card-rows/pending-orders.extension.tsx deleted file mode 100644 index fb7291508..000000000 --- a/packages/esm-ward-app/src/ward-patient-card/card-rows/pending-orders.extension.tsx +++ /dev/null @@ -1,28 +0,0 @@ -import React from 'react'; -import { type WardPatientCard } from '../../types'; -import { useConfig } from '@openmrs/esm-framework'; -import type { PendingOrderTypesDefinition } from '../../config-schema'; -import { WardPatientPendingOrder } from '../row-elements/ward-patient-pending-order.component'; - -const PendingOrdersExtension: WardPatientCard = (wardPatient) => { - const { orderTypes, enabled } = useConfig(); - - if (!enabled || !orderTypes) { - return <>; - } - - return ( - <> - {orderTypes.map(({ uuid, label }) => ( - - ))} - - ); -}; - -export default PendingOrdersExtension; diff --git a/packages/esm-ward-app/src/ward-patient-card/row-elements/ward-patient-pending-order.component.tsx b/packages/esm-ward-app/src/ward-patient-card/row-elements/ward-patient-pending-order.component.tsx index ca73df645..dbaa9129a 100644 --- a/packages/esm-ward-app/src/ward-patient-card/row-elements/ward-patient-pending-order.component.tsx +++ b/packages/esm-ward-app/src/ward-patient-card/row-elements/ward-patient-pending-order.component.tsx @@ -1,4 +1,4 @@ -import React from 'react'; +import React, { useEffect } from 'react'; import { ChemistryReference } from '@carbon/react/icons'; import styles from '../ward-patient-card.scss'; import { useTranslation } from 'react-i18next'; @@ -9,9 +9,15 @@ export interface WardPatientPendingOrderProps { wardPatient: WardPatient; orderUuid: string; label: string; + onOrderCount: (count: number) => void; // New prop for notifying parent } -export const WardPatientPendingOrder: React.FC = ({ wardPatient, orderUuid, label }) => { +export const WardPatientPendingOrder: React.FC = ({ + wardPatient, + orderUuid, + label, + onOrderCount, +}) => { const { t } = useTranslation(); const { count, isLoading } = usePatientPendingOrders( wardPatient?.patient?.uuid, @@ -19,6 +25,12 @@ export const WardPatientPendingOrder: React.FC = ( wardPatient?.visit?.startDatetime.split('T')[0], ); + useEffect(() => { + if (!isLoading) { + onOrderCount(count); // Notify parent when count is available + } + }, [count, isLoading, onOrderCount]); + if (isLoading || !count || count == 0) { return null; } diff --git a/packages/esm-ward-app/src/ward-patient-card/ward-patient-card.component.tsx b/packages/esm-ward-app/src/ward-patient-card/ward-patient-card.component.tsx index 35bf1e1e0..d7b87084a 100644 --- a/packages/esm-ward-app/src/ward-patient-card/ward-patient-card.component.tsx +++ b/packages/esm-ward-app/src/ward-patient-card/ward-patient-card.component.tsx @@ -1,20 +1,16 @@ -import { ExtensionSlot, getPatientName, launchWorkspace, useConfig } from '@openmrs/esm-framework'; +import { ExtensionSlot, getPatientName, launchWorkspace } from '@openmrs/esm-framework'; import classNames from 'classnames'; import React from 'react'; -import { Hourglass } from '@carbon/react/icons'; import { useCurrentWardCardConfig } from '../hooks/useCurrentWardCardConfig'; import { type WardPatientCard, type WardPatientWorkspaceProps } from '../types'; import WardPatientBedNumber from './row-elements/ward-patient-bed-number'; import WardPatientName from './row-elements/ward-patient-name'; import { WardPatientCardElement } from './ward-patient-card-element.component'; import styles from './ward-patient-card.scss'; -import WardPatientPendingTransfer from './row-elements/ward-patient-pending-transfer'; -import { type PendingOrderTypesDefinition } from '../config-schema'; const WardPatientCard: WardPatientCard = (wardPatient) => { const { patient, bed } = wardPatient; const { id, headerRowElements, footerRowElements } = useCurrentWardCardConfig(); - const { enabled: showPendingOrders } = useConfig(); const headerExtensionSlotName = id == 'default' ? 'ward-patient-card-header-slot' : `ward-patient-card-header-${id}-slot`; @@ -36,6 +32,16 @@ const WardPatientCard: WardPatientCard = (wardPatient) => { ))} + +
{footerRowElements.map((elementId, i) => ( { ))}
- {wardPatient?.inpatientRequest || showPendingOrders ? ( -
- : - - {wardPatient?.inpatientRequest ? : null} -
- ) : null} - - - +
+ ); }; diff --git a/packages/esm-patient-registration-app/src/widgets/delete-identifier-confirmation.scss b/packages/esm-patient-registration-app/src/widgets/delete-identifier-confirmation.scss deleted file mode 100644 index cb98f12b6..000000000 --- a/packages/esm-patient-registration-app/src/widgets/delete-identifier-confirmation.scss +++ /dev/null @@ -1,34 +0,0 @@ -@use '@carbon/layout'; -@use '@carbon/type'; -@use '@openmrs/esm-styleguide/src/vars' as *; - -.productiveHeading { - @include type.type-style('heading-compact-02'); -} - -.modalContent { - width: 100%; - background-color: $ui-01; - padding: layout.$spacing-05; -} - -.modalSubtitle { - @include type.type-style('body-compact-01'); -} - -.modalBody { - @include type.type-style('body-compact-01'); - margin: layout.$spacing-05 0; -} - -.buttonSet { - display: grid; - grid-template-columns: 1fr 1fr; - margin-left: -(layout.$spacing-05); - margin-right: -(layout.$spacing-05); - margin-bottom: -(layout.$spacing-05); -} - -.buttonSet > button { - max-width: unset !important; -} diff --git a/packages/esm-patient-registration-app/src/widgets/delete-identifier-confirmation.test.tsx b/packages/esm-patient-registration-app/src/widgets/delete-identifier-confirmation.test.tsx index 785a851bb..2066906d0 100644 --- a/packages/esm-patient-registration-app/src/widgets/delete-identifier-confirmation.test.tsx +++ b/packages/esm-patient-registration-app/src/widgets/delete-identifier-confirmation.test.tsx @@ -3,7 +3,7 @@ import userEvent from '@testing-library/user-event'; import { render, screen } from '@testing-library/react'; import DeleteIdentifierConfirmationModal from './delete-identifier-confirmation.modal'; -describe('DeleteIdentifierConfirmationModal component', () => { +describe('DeleteIdentifierConfirmationModal', () => { const mockDeleteIdentifier = jest.fn(); const mockIdentifierName = 'Identifier Name'; const mockIdentifierValue = 'Identifier Value'; @@ -13,6 +13,7 @@ describe('DeleteIdentifierConfirmationModal component', () => { render( Date: Thu, 26 Sep 2024 23:02:03 +0300 Subject: [PATCH 10/12] (chore) Update translations from Transifex (#1329) Co-authored-by: OpenMRS Bot --- .../translations/fr.json | 2 +- .../translations/fr.json | 34 +++++++++--------- .../translations/fr.json | 4 +-- .../translations/fr.json | 36 +++++++++---------- 4 files changed, 38 insertions(+), 38 deletions(-) diff --git a/packages/esm-bed-management-app/translations/fr.json b/packages/esm-bed-management-app/translations/fr.json index eba7c6fef..c17698032 100644 --- a/packages/esm-bed-management-app/translations/fr.json +++ b/packages/esm-bed-management-app/translations/fr.json @@ -43,7 +43,7 @@ "pleaseFillField": "", "required": "Requis", "save": "Enregistrer", - "saveSuccessMessage": "was saved successfully.", + "saveSuccessMessage": "a été enregistré avec succès.", "selectBedLocation": "Sélectionner un emplacement de lit", "viewBeds": "Voir lits", "wardAllocation": "Ward Allocation", diff --git a/packages/esm-patient-list-management-app/translations/fr.json b/packages/esm-patient-list-management-app/translations/fr.json index 2c6921868..dc5293a18 100644 --- a/packages/esm-patient-list-management-app/translations/fr.json +++ b/packages/esm-patient-list-management-app/translations/fr.json @@ -7,8 +7,8 @@ "cancel": "Annuler", "checkFilters": "Vérifiez les filtres ci-dessus", "configureList": "Configurez votre liste de patients à l'aide des champs ci-dessous", - "confirmDeletePatientList": "Are you sure you want to delete this patient list?", - "created": "Created", + "confirmDeletePatientList": "Êtes-vous sûr de vouloir supprimer cette liste de patients?", + "created": "Créé(e)", "createdOn": "Créé le", "createList": "Créer une liste", "createNewPatientList": "Créer une nouvelle liste de patients", @@ -19,26 +19,26 @@ "editList": "Modifier la liste", "editNameDescription": "Modifier le Nom/ la Description", "editPatientListHeader": "Modifier la liste des patients", - "emptyList": "This list has no patients", + "emptyList": "Cette liste ne contient aucun patient", "emptyStateIllustration": "Empty state illustration", "emptyStateText": "Il n'y a pas de liste de patient {{listType}} à afficher", "error": "Erreur", "errorAddPatientToList": "Patient non ajouté à la liste", "errorCopy": "Désolé, une erreur s’est produite à l’affichage. Vous pouvez tenter de rafraîchir la page, ou bien contacter l'administrateur du site et transmettre le message d'erreur ci-dessus.", - "errorCreatingList": "Error creating list", - "errorDeletingList": "Error deleting patient list", - "errorRemovingPatientFromList": "Failed to remove patient from list", - "errorUpdatingList": "Error updating list", + "errorCreatingList": "Erreur lors de la création de la liste", + "errorDeletingList": "Erreur lors de la suppression de la liste de patients", + "errorRemovingPatientFromList": "Échec de la suppression du patient de la liste", + "errorUpdatingList": "Erreur lors de la mise à jour de la liste", "identifier": "Identifiant", "items": "eléments", "itemsDisplayed": "{{numberOfItemsDisplayed}} eléments", - "listCreated": "List created successfully", + "listCreated": "Liste créée avec succès", "listDescriptionPlaceholder": "par ex. Les patients atteints d'asthme diagnostiqué qui peuvent être disposés à faire partie d'une étude de recherche universitaire", - "listName": "List name", + "listName": "Nom de la liste", "listNamePlaceholder": "par ex. Participants potentiels de la recherche", - "listType": "List type", - "listUpdated": "List updated successfully", - "listUpToDate": "The list is now up to date", + "listType": "Type de liste", + "listUpdated": "Liste mise à jour avec succès", + "listUpToDate": "La liste est maintenant à jour", "myLists": "Mes listes", "name": "Nom", "newList": "Nouvelle liste", @@ -48,15 +48,15 @@ "nextPage": "Page suivante", "noMatchingLists": "Aucun liste à afficher", "noMatchingPatients": "Aucun patient correspondant à afficher", - "noOfPatients": "No. of patients", + "noOfPatients": "Nombre de patients", "noPatientListFound": "Aucune liste de patients trouvée", "noPatientsInList": "Il n'y a pas de patient dans cette liste", "offlinePatients": "Patients hors ligne", "openPatientList": "Ajouter à la liste", - "patientListMemberCount_one": "This list has {{count}} patient", - "patientListMemberCount_other": "This list has {{count}} patients", + "patientListMemberCount_one": "Cette liste a {{count}} patient", + "patientListMemberCount_other": "Cette liste a {{count}} patients", "patientLists": "Listes de patients", - "patientRemovedFromList": "Patient removed from list", + "patientRemovedFromList": "Patient retiré de la liste", "patients": "Patients", "previousPage": "Page précédente", "problemCreatingList": "Problème lors de la création de la liste", @@ -78,6 +78,6 @@ "systemDefined": "définie par le système", "systemLists": "Listes du système", "unstarList": "Enlever comme étoilée", - "updated": "Updated", + "updated": "Mis à jour", "userDefined": "définie par I'utilisateur" } diff --git a/packages/esm-patient-search-app/translations/fr.json b/packages/esm-patient-search-app/translations/fr.json index 210588ccb..733ba4e71 100644 --- a/packages/esm-patient-search-app/translations/fr.json +++ b/packages/esm-patient-search-app/translations/fr.json @@ -4,8 +4,8 @@ "apply": "Appliquer", "clear": "Effacer", "clearSearch": "Effacer", - "closeSearch": "Close Search Panel", - "countOfFiltersApplied": "Filtres appliqués", + "closeSearch": "Fermer le Panneau de Recherche", + "countOfFiltersApplied": "filtres appliqués", "dayOfBirth": "Jour de Naissance", "error": "Erreur", "errorCopy": "Désolé, une erreur s'est produite. Vous pouvez tenter de rafraîchir la page, ou bien contacter l'administrateur du site et transmettre le message d'erreur ci-dessus.", diff --git a/packages/esm-service-queues-app/translations/fr.json b/packages/esm-service-queues-app/translations/fr.json index 5e11f053b..071bd4c38 100644 --- a/packages/esm-service-queues-app/translations/fr.json +++ b/packages/esm-service-queues-app/translations/fr.json @@ -108,7 +108,7 @@ "male": "Masculin", "maleLabelText": "Masculin", "match": "Match", - "medications": "Medications", + "medications": "Médicaments", "middleName": "Deuxième prénom", "minuteFormatted": "{{minutes}} minute(s)", "minutes": "Minutes", @@ -185,8 +185,8 @@ "program": "Programme", "provider": "Prestataire", "quantity": "Quantité", - "queueAddedSuccessfully": "Queue added successfully", - "queueEntryAddedSuccessfully": "Queue entry added successfully", + "queueAddedSuccessfully": "File d'attente ajoutée avec succès", + "queueEntryAddedSuccessfully": "Entrée dans la file d'attente ajoutée avec succès", "queueEntryAddFailed": "Error adding queue entry status", "queueEntryDeleteFailed": "Error deleting queue entry", "queueEntryDeleteSuccessful": "Queue entry deleted successfully", @@ -197,11 +197,11 @@ "queueEntryRemoved": "Queue entry removed", "queueEntryRemovedSuccessfully": "", "queueEntryStatusUpdateFailed": "Error updating queue entry status", - "queueEntryTransitioned": "Queue entry transitioned", - "queueEntryTransitionedSuccessfully": "Queue entry transitioned successfully", - "queueEntryTransitionFailed": "Error transitioning queue entry", - "queueEntryTransitionUndoFailed": "Error undoing transition", - "queueEntryTransitionUndoSuccessful": "Queue entry transition undo success", + "queueEntryTransitioned": "Entrée dans la file d'attente transitionnée", + "queueEntryTransitionedSuccessfully": "Entrée dans la file d'attente transitionnée avec succès", + "queueEntryTransitionFailed": "Erreur lors de la transition de l'entrée dans la file d'attente", + "queueEntryTransitionUndoFailed": "Erreur lors de l'annulation de la transition", + "queueEntryTransitionUndoSuccessful": "Annulation de la transition de l'entrée dans la file d'attente réussie", "queueEntryUpdateFailed": "Erreur lors de la mise à jour du statut de l'entrée dans la file d'attente", "queueEntryUpdateSuccessfully": "Entrée de la file d'attente mise à jour avec succès", "queueLocation": "Emplacement de la file d'attente", @@ -276,27 +276,27 @@ "time": "Temps", "timeCannotBeInFuture": "Time cannot be in the future", "timeCannotBePriorToPreviousQueueEntry": "L’heure ne peut être antérieure au début de la file d’attente précédente: {{time}}", - "timeOfTransition": "Time of transition", + "timeOfTransition": "Heure de la transition", "tirageNotYetCompleted": "Le triage n'est pas encore terminé", "today": "Aujourd'hui", "totalPatients": "Nombre total de patients", "transition": "Transition", - "TransitionLatestQueueEntry": "Transition patient to latest queue", - "transitionPatient": "Transition patient", - "transitionPatientStatusOrQueue": "Select a new status or queue for patient to transition to.", + "TransitionLatestQueueEntry": "Transitionner le patient vers la file d'attente la plus récente", + "transitionPatient": "Transition du patient", + "transitionPatientStatusOrQueue": "Sélectionnez un nouveau statut ou une file d'attente vers laquelle le patient doit être transféré.", "triageForm": "Formulaire de triage", "triageNote": "Note de triage", "trySearchWithPatientUniqueID": "Essayez de faire une recherche avec le numéro d'identification unique du patient.", - "undoQueueEntryTransitionSuccess": "Undo transition success", - "undoTransition": "Undo transition", - "unexpectedServerResponse": "Unexpected Server Response", + "undoQueueEntryTransitionSuccess": "Annuler la transition réussie", + "undoTransition": "Annuler la transition", + "unexpectedServerResponse": "Réponse du serveur inattendue", "unknown": "Inconnue", "updateEntry": "Mettre à jour l'entrée", - "updateRoom": "Update room", + "updateRoom": "Mettre à jour la salle", "useTodaysDate": "Utiliser la date d'aujourd'hui", - "visitQueueNumberAttributeUuid not configured": "visitQueueNumberAttributeUuid not configured", + "visitQueueNumberAttributeUuid not configured": "visitQueueNumberAttributeUuid non configuré", "visitStartTime": "Heure de la consultation", - "visitTabs": "Visit tabs", + "visitTabs": "Onglets de visite", "visitType": "Type de Consultation", "vitals": "Signes Vitaux", "vitalsForm": "Formulaire de signes vitaux", From 33b89e8dcde8dec5b05fdb62e9e7ea10d42e160a Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Mon, 30 Sep 2024 10:46:58 +0300 Subject: [PATCH 11/12] (chore) Update translations from Transifex (#1330) Co-authored-by: OpenMRS Bot --- .../translations/es.json | 14 +- .../esm-appointments-app/translations/es.json | 138 +++++++-------- .../esm-appointments-app/translations/fr.json | 24 +-- .../translations/es.json | 82 ++++----- .../translations/fr.json | 30 ++-- .../translations/am.json | 2 +- .../translations/ar.json | 2 +- .../translations/es.json | 80 ++++----- .../translations/fr.json | 50 +++--- .../translations/he.json | 2 +- .../translations/km.json | 2 +- .../translations/zh.json | 2 +- .../translations/zh_CN.json | 2 +- .../translations/es.json | 160 +++++++++--------- .../translations/fr.json | 102 +++++------ 15 files changed, 346 insertions(+), 346 deletions(-) diff --git a/packages/esm-active-visits-app/translations/es.json b/packages/esm-active-visits-app/translations/es.json index 5e7899bb1..08ec3ff89 100644 --- a/packages/esm-active-visits-app/translations/es.json +++ b/packages/esm-active-visits-app/translations/es.json @@ -16,21 +16,21 @@ "noActiveVisitsForLocation": "No hay visitas activas para esta ubicación.", "noDiagnosesFound": "No se encontraron diagnósticos", "noEncountersFound": "No se encontraron encuentros", - "noMedicationsFound": "No se encontraron medicaciones", - "noNotesToShowForPatient": "No hay notas para mostrar de este paciente", + "noMedicationsFound": "No se encontraron medicamentos", + "noNotesToShowForPatient": "No hay notas para mostrar para este paciente", "noObservationsFound": "No se encontraron observaciones", "notes": "Notas", "noVisitsToDisplay": "No hay visitas para mostrar", - "orderDurationAndUnit": "para {{duration}} {{durationUnit}}", + "orderDurationAndUnit": "por {{duration}} {{durationUnit}}", "orderIndefiniteDuration": "Duración indefinida", - "patients": "Patients", + "patients": "Pacientes", "provider": "Proveedor", "quantity": "Cantidad", - "refills": "Recargas", + "refills": "Reposiciones", "tests": "Pruebas", "thereIsNoInformationToDisplayHere": "No hay información para mostrar aquí", - "time": "Tiempo", - "totalVisits": "Total Visits Today", + "time": "Hora", + "totalVisits": "Total de Visitas Hoy", "visitStartTime": "Tiempo de Visita", "visitSummary": "Resumen de Visita", "visitType": "Tipo de Visita" diff --git a/packages/esm-appointments-app/translations/es.json b/packages/esm-appointments-app/translations/es.json index 784d82588..d65589c12 100644 --- a/packages/esm-appointments-app/translations/es.json +++ b/packages/esm-appointments-app/translations/es.json @@ -8,34 +8,34 @@ "appointmentCancelled": "Cita cancelada", "appointmentCancelledSuccessfully": "Cita cancelada con éxito", "appointmentColor": "Color de la cita", - "appointmentConflict": "Appointment conflict", - "appointmentEdited": "Appointment edited", - "appointmentEditError": "Error editing appointment", - "appointmentEnded": "Appointment ended", - "appointmentEndedAndVisitClosedSuccessfully": "Appointment successfully ended and visit successfully closed.", - "appointmentEndedButVisitNotClosedError": "Appointment ended, but error closing visit", - "appointmentEndedSuccessfully": "Appointment successfully ended.", - "appointmentEndError": "Error ending appointment", + "appointmentConflict": "Conflicto en las citas", + "appointmentEdited": "Cita editada", + "appointmentEditError": "Error al editar cita", + "appointmentEnded": "Cita finalizada", + "appointmentEndedAndVisitClosedSuccessfully": "Cita finalizada con éxito y visita cerrada con éxito ", + "appointmentEndedButVisitNotClosedError": "Cita finalizada, pero hubo un error al cerrar la visita", + "appointmentEndedSuccessfully": "Cita finalizada con éxito ", + "appointmentEndError": "Error al finalizar cita", "appointmentFormError": "Error al programar la cita", "appointmentHistory": "Historial de citas", "appointmentMetrics": "Métricas de citas", "appointmentMetricsLoadError": "", - "appointmentNoteLabel": "Write an additional note", - "appointmentNotePlaceholder": "Write any additional points here", + "appointmentNoteLabel": "Escriba una nota adicional", + "appointmentNotePlaceholder": "Escriba algún punto adicional aquí", "appointmentNotes": "Notas de cita", "appointmentNowVisible": "Ahora es visible en la página de Citas", "appointments": "Citas", - "Appointments": "Appointments", - "appointments_lower": "appointments", - "appointmentsCalendar": "Appointments calendar", + "Appointments": "Citas", + "appointments_lower": "citas", + "appointmentsCalendar": "Calendario de citas", "appointmentScheduled": "Cita programada", "appointmentService": "Servicio de citas", "appointmentServiceCreate": "Servicio de citas creado exitosamente", "appointmentServiceName": "Nombre del servicio de citas", - "appointmentsScheduledForToday": "appointments scheduled for today", - "appointmentsTable": "Appointments table", + "appointmentsScheduledForToday": "citas agendadas para hoy", + "appointmentsTable": "Tabla de citas", "appointmentStatus": "Appointment status", - "appointmentToFulfill": "Select appointment to fulfill", + "appointmentToFulfill": "Seleccione cita para completar", "appointmentType": "Tipo de cita", "appointmentType_title": "Tipo de cita", "back": "Atrás", @@ -47,113 +47,113 @@ "cancelled": "Cancelada", "checkedIn": "Checked in", "checkedOut": "Completada", - "checkFilters": "Check the filters above", + "checkFilters": "Compruebe los filtros anteriores", "checkIn": "Registrar", "checkOut": "Finalizar", - "chooseAppointmentType": "Choose appointment type", - "chooseLocation": "Choose a location", - "chooseProvider": "Choose a provider", + "chooseAppointmentType": "Escoja un tipo de cita", + "chooseLocation": "Escoja una ubicación", + "chooseProvider": "Escoja un proveedor", "chooseService": "Seleccionar servicio", "completed": "Completado", - "Contact": "Contact {{index}}", - "countMore_one": "{{count}} more", - "countMore_other": "{{count}} more", + "Contact": "Contacto {{index}}", + "countMore_one": "{{count}} más", + "countMore_other": "{{count}} más", "createAppointmentService": "Crear servicios de citas", "createNewAppointment": "Crear nueva cita", "date": "Fecha", "date&Time": "Date & time", - "dateAppointmentIssuedCannotBeAfterAppointmentDate": "Date appointment issued cannot be after the appointment date", - "dateOfBirth": "Date of birth", - "dateScheduled": "Date appointment issued", - "dateScheduledDetail": "Date appointment issued", - "dateTime": "Date & Time", - "day": "Day", - "daysOfWeek": "Days of the week", + "dateAppointmentIssuedCannotBeAfterAppointmentDate": "La fecha en que se emitió la cita no puede ser posterior a la fecha de la cita", + "dateOfBirth": "Fecha de nacimiento", + "dateScheduled": "Fecha de emisión de la cita", + "dateScheduledDetail": "Fecha de emisión de la cita", + "dateTime": "Fecha y hora", + "day": "Día", + "daysOfWeek": "Días de la semana", "discard": "Descartar", "download": "Descargar", - "durationErrorMessage": "Duration should be greater than zero", - "durationInMinutes": "Duration (minutes)", + "durationErrorMessage": "La duración debería ser mayor a cero", + "durationInMinutes": "Duración (minutos)", "durationMins": "Duración (min)", "edit": "Editar", "editAppointment": "Editar cita", "editAppointments": "Editar cita", - "emptyStateText": "There are no <1>{{displayText}} to display", + "emptyStateText": "No hay <1>{{displayText}} para mostrar", "encounters": "Encuentros", "encounterType": "Tipo de encuentro", - "endAppointmentAndVisitConfirmationMessage": "Checking the patient out will mark the appointment as complete, and close out the active visit for this patient.", - "endAppointmentConfirmation": "Are you sure you want to check the patient out for this appointment?", - "endAppointmentConfirmationMessage": "Checking the patient out will mark the appointment as complete.", - "endDate": "End date", + "endAppointmentAndVisitConfirmationMessage": "Marcar al paciente como dado de alta indicará que la cita está completa y cerrará la visita activa para este paciente.", + "endAppointmentConfirmation": "¿Está seguro de que desea marcar al paciente como dado de alta para esta cita?", + "endAppointmentConfirmationMessage": "Marcar al paciente como dado de alta indicará que la cita está completa.", + "endDate": "Fecha de finalización", "endTime": "Hora de finalización", "errorCreatingAppointmentService": "Error creating appointment service", "expected": "Expected", - "filterTable": "Filter table", + "filterTable": "Filtrar tabla", "gender": "Género", - "highestServiceVolume": "Highest volume service: {{time}}", + "highestServiceVolume": "Servicio de mayor volumen: {{time}}", "identifier": "Identificador", - "invalidNumber": "Number is not valid", - "invalidTime": "Invalid time", - "isRecurringAppointment": "Is this a recurring appointment?", - "itemsPerPage": "Items per page", + "invalidNumber": "El número no es válido", + "invalidTime": "Hora inválida", + "isRecurringAppointment": "¿Esta es una cita recurrente?", + "itemsPerPage": "Elementos por página", "loading": "Loading", "location": "Ubicación", "medications": "Medicamentos", "missed": "Perdida", - "next": "Next", - "nextMonth": "Next month", - "nextPage": "Next page", + "next": "Siguiente", + "nextMonth": "Siguiente mes", + "nextPage": "Siguiente página", "no": "No", - "noAppointmentsToDisplay": "No appointments to display", - "noContent": "No Content", + "noAppointmentsToDisplay": "No hay citas para mostrar", + "noContent": "No hay contenido", "noCurrentAppointments": "No hay citas programadas que mostrar para hoy para este paciente", "noEncountersFound": "No se encontraron encuentros", "noPastAppointments": "No hay citas anteriores para mostrar para este paciente", "noPreviousVisitFound": "No se encontraron visitas anteriores", "notArrived": "No ha llegado", - "note": "Note", + "note": "Nota", "notes": "Notas", "noUpcomingAppointments": "No hay próximas citas para mostrar para este paciente", "noUpcomingAppointmentsForPatient": "No hay próximas citas para mostrar para este paciente", - "pageNumber": "Page number", + "pageNumber": "Número de página", "past": "Anterior", "patientDetails": "Detalles del paciente", - "patientDoubleBooking": "Patient already booked for an appointment at this time", + "patientDoubleBooking": "El paciente ya agendó una cita para esta hora", "patientName": "Nombre del paciente", "patients": "Pacientes", - "period": "Period", - "prev": "Prev", - "previousMonth": "Previous month", - "previousPage": "Previous page", + "period": "Periodo", + "prev": "Ant", + "previousMonth": "Mes anterior", + "previousPage": "Página anterior", "provider": "Proveedor", "providers": "Proveedores", - "providersBooked": "Providers booked: {{time}}", - "recurringAppointment": "Recurring Appointment", - "recurringAppointmentShouldHaveEndDate": "A recurring appointment should have an end date", - "repeatEvery": "Repeat every", + "providersBooked": "Proveedores agendados: {{time}}", + "recurringAppointment": "Cita recurrente", + "recurringAppointmentShouldHaveEndDate": "Una cita recurrente debería tener una fecha de finalización", + "repeatEvery": "Repetir cada", "save": "Guardar", - "saveAndClose": "Save and close", + "saveAndClose": "Guardar y cerrar", "scheduled": "Programada", "scheduledAppointments": "Citas programadas", - "scheduledForToday": "Scheduled For Today", - "selectALocation": "Select a location", + "scheduledForToday": "Agendada Para Hoy", + "selectALocation": "Seleccionar una ubicación", "selectAppointmentStatus": "Seleccionar estado", "selectAppointmentType": "Seleccionar tipo de cita", "selectLocation": "Seleccionar ubicación", "selectOption": "Seleccionar una opción", - "selectProvider": "Select a provider", + "selectProvider": "Seleccionar un proveedor", "selectService": "Seleccionar servicio", "selectServiceType": "Seleccionar tipo de servicio", "service": "Servicio", "serviceName": "Nombre del servicio", "serviceType": "Tipo de servicio", - "serviceUnavailable": "Appointment time is outside of service hours", - "startDate": "Start date", + "serviceUnavailable": "La hora de la cita está fuera de las horas de servicio", + "startDate": "Fecha de inicio", "startTime": "Hora de inicio", - "status": "Status", + "status": "Estado", "time": "Tiempo", "today": "Hoy", - "todays": "Today's", - "type": "Type", + "todays": "Hoy día es", + "type": "Tip", "unscheduled": "No programada", "unscheduledAppointments": "Citas no programadas", "unscheduledAppointments_lower": "citas no programadas", @@ -161,6 +161,6 @@ "upcomingAppointments": "Próximas citas", "view": "Ver", "vitals": "Signos vitales", - "week": "Week", + "week": "Semana", "yes": "Sí" } diff --git a/packages/esm-appointments-app/translations/fr.json b/packages/esm-appointments-app/translations/fr.json index 466505034..d30f5b8a4 100644 --- a/packages/esm-appointments-app/translations/fr.json +++ b/packages/esm-appointments-app/translations/fr.json @@ -58,20 +58,20 @@ "Contact": "Contact {{index}}", "countMore_one": "{{count}} de plus", "countMore_other": "{{count}} de plus", - "createAppointmentService": "Create appointment services", + "createAppointmentService": "Créer des services de rendez-vous", "createNewAppointment": "Créer un nouveau rendez-vous", "date": "Date", "date&Time": "Date et heure", - "dateAppointmentIssuedCannotBeAfterAppointmentDate": "Date appointment issued cannot be after the appointment date", + "dateAppointmentIssuedCannotBeAfterAppointmentDate": "La date du rendez-vous ne peut pas être postérieure à la date du rendez-vous", "dateOfBirth": "Date de naissance", - "dateScheduled": "Date appointment issued", - "dateScheduledDetail": "Date appointment issued", + "dateScheduled": "Date de rendez vous émise", + "dateScheduledDetail": "Date de rendez vous émise", "dateTime": "Date et heure", "day": "Jour", "daysOfWeek": "Jours de la semaine", "discard": "Abandonner", "download": "Télécharger", - "durationErrorMessage": "Duration should be greater than zero", + "durationErrorMessage": "La durée doit être supérieure à zéro", "durationInMinutes": "Durée (minutes)", "durationMins": "Durée min", "edit": "Modifier", @@ -80,12 +80,12 @@ "emptyStateText": "Pas de <1>{{displayText}} à afficher", "encounters": "Rencontres", "encounterType": "Type de rencontre", - "endAppointmentAndVisitConfirmationMessage": "Checking the patient out will mark the appointment as complete, and close out the active visit for this patient.", - "endAppointmentConfirmation": "Are you sure you want to check the patient out for this appointment?", - "endAppointmentConfirmationMessage": "Checking the patient out will mark the appointment as complete.", + "endAppointmentAndVisitConfirmationMessage": " La sortie du patient marquera le rendez-vous comme terminé et clôturera la visite active pour ce patient.", + "endAppointmentConfirmation": " Etes-vous sûr de vouloir enregistrer le patient pour ce rendez-vous ?", + "endAppointmentConfirmationMessage": " La sortie du patient marquera le rendez-vous comme terminé.", "endDate": "Date de fin", "endTime": "Heure de fin", - "errorCreatingAppointmentService": "Error creating appointment service", + "errorCreatingAppointmentService": " Erreur lors de la création du service de rendez-vous", "expected": "Prévus:", "filterTable": "Filtrer le tableau", "gender": "Genre", @@ -117,10 +117,10 @@ "pageNumber": "Numéro de page", "past": "Passé", "patientDetails": "Détails du patient", - "patientDoubleBooking": "Patient already booked for an appointment at this time", + "patientDoubleBooking": "Le patient a déjà un rendez vous à cette date", "patientName": "Nom du patient", "patients": "Patients", - "period": "Period", + "period": "Période", "prev": "Préc", "previousMonth": "Mois précédent", "previousPage": "Page précédente", @@ -146,7 +146,7 @@ "service": "Service", "serviceName": "Nom du service", "serviceType": "Type de service", - "serviceUnavailable": "Appointment time is outside of service hours", + "serviceUnavailable": "L'heure du rendez-vous est en dehors des heures de service", "startDate": "Date de début", "startTime": "Heure de début", "status": "Statut", diff --git a/packages/esm-bed-management-app/translations/es.json b/packages/esm-bed-management-app/translations/es.json index dba1d2c0e..3a191820d 100644 --- a/packages/esm-bed-management-app/translations/es.json +++ b/packages/esm-bed-management-app/translations/es.json @@ -1,51 +1,51 @@ { - "actions": "Actions", - "addBed": "Add bed", - "addBedTag": "Create Bed Tag", - "addBedtype": "Add Bed Type", - "addBedType": "Create Bed type", - "allocationStatus": "Allocated", - "bedId": "Bed ID", - "bedIdPlaceholder": "e.g. BMW-201", - "bedLocation": "Location", - "bedManagement": "Bed Management", - "bedName": "Bed Name", - "beds": "Beds", - "bedTag": "Bed Tag Name", + "actions": "Acciones", + "addBed": "Añadir cama", + "addBedTag": "Crear Etiqueta de Cama", + "addBedtype": "Añadir Tipo de Cama", + "addBedType": "Crear Tipo de Cama", + "allocationStatus": "Asignado", + "bedId": "ID de la Cama", + "bedIdPlaceholder": "p. ej. BMW-201", + "bedLocation": "Ubicación", + "bedManagement": "Administración de Camas", + "bedName": "Nombre de la Cama", + "beds": "Camas", + "bedTag": "Nombre de la Etiqueta de la Cama", "bedTagPlaceholder": "", - "bedType": "Add Bed Type", + "bedType": "Añadir Tipo de Cama", "bedTypePlaceholder": "", - "checkFilters": "Check the filters above", - "chooseBedtype": "Choose a bed type", - "chooseOccupiedStatus": "Choose occupied status", - "createNewBed": "Create a new bed", - "description": "Description", - "displayName": "Display Name", + "checkFilters": "Compruebe los filtros anteriores", + "chooseBedtype": "Elija un tipo de cama", + "chooseOccupiedStatus": "Elija el estado ocupado", + "createNewBed": "Crear una nueva cama", + "description": "Descripción", + "displayName": "Mostrar Nombre", "displayNamePlaceholder": "", - "editBed": "Edit Tag", - "editBedTag": "Edit Bed Tag", - "editBedType": "Edit Bed Type", + "editBed": "Editar etiqueta", + "editBedTag": "Editar Etiqueta de la Cama", + "editBedType": "Editar Tipo de Cama", "error": "Error", - "errorCreatingForm": "Error creating bed", - "errorFetchingbedInformation": "Error fetching bed information", - "filterByOccupancyStatus": "Filter by occupancy status", - "formCreated": "Add bed Type", - "formSaved": "Bed Type", + "errorCreatingForm": "Error al crear cama", + "errorFetchingbedInformation": "Error al obtener información de la cama", + "filterByOccupancyStatus": "Filtrar por estado de ocupación", + "formCreated": "Añadir Tipo de Cama", + "formSaved": "Tipo de Cama", "headerTitle": "", "ids": "Id", - "location": "Locations", - "manageBeds": "Manage Beds", - "name": "Name", + "location": "Ubicaciones", + "manageBeds": "Administrar Camas", + "name": "Nombre", "no": "No", - "No data": "No data to display", - "occupancyStatus": "Occupied", - "or": "or", + "No data": "No hay datos para mostrar", + "occupancyStatus": "Ocupada", + "or": "o", "pleaseFillField": "", - "required": "Required", - "save": "Save", - "saveSuccessMessage": "was saved successfully.", - "selectBedLocation": "Select a bed location", - "viewBeds": "View beds", - "wardAllocation": "Ward Allocation", - "yes": "Yes" + "required": "Obligatorio", + "save": "Guardar", + "saveSuccessMessage": "fue guardado exitosamente.", + "selectBedLocation": "Seleccione una ubicación para la cama", + "viewBeds": "Ver camas", + "wardAllocation": "Asignación de sala", + "yes": "Sí" } diff --git a/packages/esm-bed-management-app/translations/fr.json b/packages/esm-bed-management-app/translations/fr.json index c17698032..2ed9929f3 100644 --- a/packages/esm-bed-management-app/translations/fr.json +++ b/packages/esm-bed-management-app/translations/fr.json @@ -1,11 +1,11 @@ { "actions": "Actions", "addBed": "Ajouter un lit", - "addBedTag": "Create Bed Tag", - "addBedtype": "Add Bed Type", - "addBedType": "Create Bed type", - "allocationStatus": "Allocated", - "bedId": "Bed ID", + "addBedTag": "Créer une étiquette de lit", + "addBedtype": "Ajouter type de lit", + "addBedType": "Créer Type de lit", + "allocationStatus": "Attribué", + "bedId": "Identifiant du Lit", "bedIdPlaceholder": "exemple : BMW-201", "bedLocation": "Emplacement", "bedManagement": "Gestion du lit", @@ -17,24 +17,24 @@ "bedTypePlaceholder": "", "checkFilters": "Vérifiez les filtres ci-dessus", "chooseBedtype": "Choisir un type de lit", - "chooseOccupiedStatus": "Choose occupied status", + "chooseOccupiedStatus": " Choisissez le statut occupé", "createNewBed": "Créer un nouveau lit", "description": "Description", "displayName": "Display Name", "displayNamePlaceholder": "", - "editBed": "Edit Tag", - "editBedTag": "Edit Bed Tag", - "editBedType": "Edit Bed Type", + "editBed": "Afficher un tag", + "editBedTag": "Afficher un Tag de lit", + "editBedType": "Afficher un type de lit", "error": "Erreur", - "errorCreatingForm": "Error creating bed", - "errorFetchingbedInformation": "Error fetching bed information", - "filterByOccupancyStatus": "Filter by occupancy status", - "formCreated": "Add bed Type", - "formSaved": "Bed Type", + "errorCreatingForm": "Erreur lors de la création du lit", + "errorFetchingbedInformation": " Erreur lors de la récupération des informations sur le lit", + "filterByOccupancyStatus": "Filtrer par statut d'occupation", + "formCreated": "Ajouter un type de lit", + "formSaved": "Type de lit", "headerTitle": "", "ids": "Identifiant", "location": "Emplacements", - "manageBeds": "Manage Beds", + "manageBeds": "Gestion des lits", "name": "Nom", "no": "Non", "No data": "Pas de données à afficher", diff --git a/packages/esm-patient-registration-app/translations/am.json b/packages/esm-patient-registration-app/translations/am.json index 756bdc9c5..ff2890d24 100644 --- a/packages/esm-patient-registration-app/translations/am.json +++ b/packages/esm-patient-registration-app/translations/am.json @@ -93,7 +93,7 @@ "relationshipToPatient": "Relationship to patient", "relativeFullNameLabelText": "Full name", "relativeNamePlaceholder": "Firstname Familyname", - "removeIdentifierButton": "Remove Identifier", + "removeIdentifierButton": "Remove identifier", "resetIdentifierTooltip": "Reset", "restoreRelationshipActionButton": "Undo", "searchAddress": "Search address", diff --git a/packages/esm-patient-registration-app/translations/ar.json b/packages/esm-patient-registration-app/translations/ar.json index 49c9496ef..d41dfda59 100644 --- a/packages/esm-patient-registration-app/translations/ar.json +++ b/packages/esm-patient-registration-app/translations/ar.json @@ -93,7 +93,7 @@ "relationshipToPatient": "العلاقة بالمريض", "relativeFullNameLabelText": "Full name", "relativeNamePlaceholder": "الاسم الأول اسم العائلة", - "removeIdentifierButton": "Remove Identifier", + "removeIdentifierButton": "Remove identifier", "resetIdentifierTooltip": "إعادة تعيين", "restoreRelationshipActionButton": "تراجع", "searchAddress": "ابحث عن العنوان", diff --git a/packages/esm-patient-registration-app/translations/es.json b/packages/esm-patient-registration-app/translations/es.json index 7687b950b..0afa1e8eb 100644 --- a/packages/esm-patient-registration-app/translations/es.json +++ b/packages/esm-patient-registration-app/translations/es.json @@ -3,38 +3,38 @@ "addressHeader": "Dirección", "allFieldsRequiredText": "Todos los campos son obligatorios a menos que se indique como opcionales", "autoGeneratedPlaceholderText": "Autogenerado", - "birthdayNotInTheFuture": "Birthday cannot be in future", - "birthdayNotOver140YearsAgo": "Birthday cannot be more than 140 years ago", + "birthdayNotInTheFuture": "La fecha de nacimiento no puede ser en el futuro", + "birthdayNotOver140YearsAgo": "La fecha de nacimiento no puede ser de hace más de 140 años", "birthdayRequired": "Cumpleaños es obligatorio", "birthFieldLabelText": "Nacimiento", "cancel": "Cancelar", - "causeOfDeathInputLabel": "Cause of death", + "causeOfDeathInputLabel": "Causa de muerte", "closeOverlay": "Cerrar superposición", "codedPersonAttributeAnswerSetEmpty": "El campo de atributo de persona codificado '{{codedPersonAttributeFieldId}}' se ha definido con un conjunto de conceptos de respuesta UUID '{{answerConceptSetUuid}}' que no tiene respuestas de concepto.", "codedPersonAttributeAnswerSetInvalid": "El campo de atributo de persona codificado '{{codedPersonAttributeFieldId}}' se ha definido con un UUID de conjunto de conceptos de respuesta no válido '{{answerConceptSetUuid}}'.", "codedPersonAttributeNoAnswerSet": "El campo de atributo de persona '{{codedPersonAttributeFieldId}}' es de tipo 'codificado' pero se ha definido sin UUID de conjunto de conceptos de respuesta. La clave 'answerConceptSetUuid' es requerida.", "configure": "Configurar", "configureIdentifiers": "Configurar identificadores", - "confirmDiscardChangesBody": "Your unsaved changes will be lost if you proceed to discard the form", - "confirmDiscardChangesTitle": "Are you sure you want to discard these changes?", - "confirmIdentifierDeletionText": "Are you sure you want to remove this identifier?", + "confirmDiscardChangesBody": "Tus cambios sin guardar serán perdidos si procedes a descartar el formulario", + "confirmDiscardChangesTitle": "¿Estás seguro de que deseas descartar estos cambios?", + "confirmIdentifierDeletionText": "¿Estás seguro de que deseas eliminar este identificador?", "contactSection": "Detalles de Contacto", - "createNewPatient": "Create new patient", - "dateOfBirthLabelText": "Date of birth", - "deathCauseRequired": "Cause of death is required", - "deathDateInFuture": "Death date cannot be in future", - "deathDateInputLabel": "Date of death", - "deathDateRequired": "Death date is required", - "deathdayInvalidDate": "Death date and time cannot be before the birthday", - "deathdayIsRequired": "Death date is required when the patient is marked as deceased.", + "createNewPatient": "Crear nuevo paciente", + "dateOfBirthLabelText": "Fecha de nacimiento", + "deathCauseRequired": "La causa de muerte es obligatoria", + "deathDateInFuture": "La fecha de fallecimiento no puede ser en el futuro", + "deathDateInputLabel": "Fecha de fallecimiento", + "deathDateRequired": "La fecha de nacimiento es obligatoria", + "deathdayInvalidDate": "La fecha y hora del fallecimiento no pueden ser anteriores a la fecha de nacimiento", + "deathdayIsRequired": "La fecha de fallecimiento es obligatoria cuando el paciente se marca como fallecido", "deathdayNotInTheFuture": "", "deathSection": "Información de Fallecimiento", - "deathTimeFormatInvalid": "Time format is invalid", - "deathTimeFormatRequired": "Time format is required", - "deathTimeInvalid": "Time doesn't match the format 'hh:mm'", - "deathTimeRequired": "Death time is required", - "deleteIdentifierModalHeading": "Remove identifier?", - "deleteIdentifierModalText": " has a value of ", + "deathTimeFormatInvalid": "El formato de hora es inválido", + "deathTimeFormatRequired": "El formato de hora es obligatorio", + "deathTimeInvalid": "La hora no coincide con el formato 'hh:mm'", + "deathTimeRequired": "La hora de fallecimiento es requerida", + "deleteIdentifierModalHeading": "¿Eliminar identificador?", + "deleteIdentifierModalText": "tiene un valor de", "deleteIdentifierTooltip": "Eliminar", "deleteRelationshipTooltipText": "Eliminar", "demographicsSection": "Información Básica", @@ -43,45 +43,45 @@ "editIdentifierTooltip": "Editar", "editPatientDetails": "Modificar los datos del paciente", "editPatientDetailsBreadcrumb": "Editar detalles del paciente", - "enterNonCodedCauseOfDeath": "Enter non-coded cause of death", + "enterNonCodedCauseOfDeath": "Ingresar causa del fallecimiento no-codificada", "error": "Error", - "errorFetchingCodedCausesOfDeath": "Error fetching coded causes of death", + "errorFetchingCodedCausesOfDeath": "Error al obtener causas del fallecimiento codificadas", "errorFetchingOrderedFields": "Ocurrió un error al obtener campos ordenados para la jerarquía de direcciones", "estimatedAgeInMonthsLabelText": "Edad estimada en meses", "estimatedAgeInYearsLabelText": "Edad estimada en años", "familyNameLabelText": "Apellidos", "familyNameRequired": "Apellidos es obligatorio", "female": "Femenino", - "fieldsWithErrors": "The following fields have errors: ", + "fieldsWithErrors": "Los siguientes campos tienen errores:", "fullNameLabelText": "Nombre y Apellidos", "genderLabelText": "Sexo", "genderRequired": "El sexo es obligatorio", - "genderUnspecified": "Gender unspecified", + "genderUnspecified": "Género no especificado", "givenNameLabelText": "Nombre", "givenNameRequired": "El nombre es obligatorio", "identifierValueRequired": "El valor del identificador es obligatorio", "idFieldLabelText": "Identificadores", "IDInstructions": "Selecciona los identificadores que te gustaría agregar para este paciente:", - "invalidEmail": "Invalid email", + "invalidEmail": "Email inválido", "invalidInput": "Entrada no válida", - "isDeadInputLabel": "Is dead", + "isDeadInputLabel": "Está fallecido", "jumpTo": "Ir a", "male": "Masculino", "middleNameLabelText": "Segundo Nombre", - "negativeMonths": "Estimated months cannot be negative", - "negativeYears": "Estimated years cannot be negative", + "negativeMonths": "Los meses estimados no pueden ser negativos", + "negativeYears": "Los años estimados no pueden ser negativos", "no": "No", - "nonCodedCauseOfDeath": "Non-coded cause of death", - "nonCodedCauseOfDeathRequired": "Cause of death is required", - "nonsensicalYears": "Estimated years cannot be more than 140", + "nonCodedCauseOfDeath": "Causa del fallecimiento no-codificada", + "nonCodedCauseOfDeathRequired": "La causa del fallecimiento es obligatoria", + "nonsensicalYears": "Los años estimados no pueden ser mayores a 140", "numberInNameDubious": "Número en nombre es dudoso", "obsFieldUnknownDatatype": "El concepto para el campo de observación '{{fieldDefinitionId}}' tiene un tipo de datos desconocido '{{datatypeName}}'", "optional": "Opcional", "other": "Otro", "patientNameKnown": "¿Se sabe el nombre del paciente?", "patientRegistrationBreadcrumb": "Registro de Pacientes", - "refreshOrContactAdmin": "Try refreshing the page or contact your system administrator", - "registerPatient": "Register patient", + "refreshOrContactAdmin": "Intente refrescar la página o contactar al administrador de tu sistema", + "registerPatient": "Registrar paciente", "registerPatientSuccessSnackbarSubtitle": "El paciente ahora se puede encontrar buscándolo por su nombre o número de identificación", "registerPatientSuccessSnackbarTitle": "Nuevo paciente creado", "registrationErrorSnackbarTitle": "Error en el registro del paciente", @@ -91,9 +91,9 @@ "relationshipRemovedText": "Relación eliminada", "relationshipsSection": "Relaciones", "relationshipToPatient": "Relación con el paciente", - "relativeFullNameLabelText": "Full name", + "relativeFullNameLabelText": "Nombre completo", "relativeNamePlaceholder": "Nombre Apellido", - "removeIdentifierButton": "Remove Identifier", + "removeIdentifierButton": "Eliminar identificador", "resetIdentifierTooltip": "Resetear", "restoreRelationshipActionButton": "Deshacer", "searchAddress": "Buscar dirección", @@ -102,15 +102,15 @@ "sexFieldLabelText": "Sexo", "source": "Fuente", "submitting": "Enviando", - "timeFormat": "Time Format", - "timeOfDeathInputLabel": "Time of death (hh:mm)", - "unableToFetch": "Unable to fetch person attribute type - {{personattributetype}}", + "timeFormat": "Formato de hora", + "timeOfDeathInputLabel": "Hora del fallecimiento (hh:mm)", + "unableToFetch": "No se puede obtener el tipo de atributo de persona - {{personattributetype}}", "unknown": "Desconocido", "unknownPatientAttributeType": "El tipo de atributo del paciente tiene un formato desconocido {{personAttributeTypeFormat}}", - "updatePatient": "Update patient", + "updatePatient": "Actualizar paciente", "updatePatientErrorSnackbarTitle": "Error al actualizar los detalles del paciente", "updatePatientSuccessSnackbarSubtitle": "La información del paciente se ha actualizado correctamente", "updatePatientSuccessSnackbarTitle": "Detalles del paciente actualizados", - "yearsEstimateRequired": "Estimated years required", + "yearsEstimateRequired": "Los años estimados son obligatorios", "yes": "Sí" } diff --git a/packages/esm-patient-registration-app/translations/fr.json b/packages/esm-patient-registration-app/translations/fr.json index acf75badb..c7958fef2 100644 --- a/packages/esm-patient-registration-app/translations/fr.json +++ b/packages/esm-patient-registration-app/translations/fr.json @@ -4,7 +4,7 @@ "allFieldsRequiredText": "Tous les champs sont requis sauf si explicitement indiqués facultatifs", "autoGeneratedPlaceholderText": "Généré automatiquement", "birthdayNotInTheFuture": "La date de naissance ne peut pas être dans le futur", - "birthdayNotOver140YearsAgo": "Birthday cannot be more than 140 years ago", + "birthdayNotOver140YearsAgo": "La date de naissance ne peut être antérieure à 140 ans", "birthdayRequired": "La date de naissance est requise", "birthFieldLabelText": "Naissance", "cancel": "Annuler", @@ -15,26 +15,26 @@ "codedPersonAttributeNoAnswerSet": "Le champ d'attribut de personne '{{codedPersonAttributeFieldId}}' est de type 'codé' mais a été défini sans UUID d'ensemble de concepts de réponse. La clé 'answerConceptSetUuid' est requise.", "configure": "Configurer", "configureIdentifiers": "Configurer les identifiants", - "confirmDiscardChangesBody": "Your unsaved changes will be lost if you proceed to discard the form", - "confirmDiscardChangesTitle": "Are you sure you want to discard these changes?", + "confirmDiscardChangesBody": " Vos modifications non enregistrées seront perdues si vous supprimez le formulaire.", + "confirmDiscardChangesTitle": " Êtes-vous sûr de vouloir annuler ces modifications ?", "confirmIdentifierDeletionText": "Voulez-vous vraiment supprimer cet identifiant?", "contactSection": "Coordonnées du contact", "createNewPatient": "Créer un nouveau patient", "dateOfBirthLabelText": "Date de naissance", "deathCauseRequired": "La date du décès est requise", - "deathDateInFuture": "Death date cannot be in future", + "deathDateInFuture": "La date de décès ne peut être dans le future", "deathDateInputLabel": "Date du décès", "deathDateRequired": "La date du décès est requise", - "deathdayInvalidDate": "Death date and time cannot be before the birthday", - "deathdayIsRequired": "Death date is required when the patient is marked as deceased.", + "deathdayInvalidDate": "La date et l'heure de décès ne peuvent être antérieures à la date de naissance", + "deathdayIsRequired": "La date de décès est obligatoire quand le patient est déclaré décédé", "deathdayNotInTheFuture": "", "deathSection": "Informations sur le décès", - "deathTimeFormatInvalid": "Time format is invalid", - "deathTimeFormatRequired": "Time format is required", - "deathTimeInvalid": "Time doesn't match the format 'hh:mm'", - "deathTimeRequired": "Death time is required", + "deathTimeFormatInvalid": "Format de temps invalide", + "deathTimeFormatRequired": "Un format de temps est obligatoire", + "deathTimeInvalid": "Le temps ne correspond pas au format 'hh:mm'", + "deathTimeRequired": "L'heure de décès est requis", "deleteIdentifierModalHeading": "Supprimer l'identifiant?", - "deleteIdentifierModalText": " has a value of ", + "deleteIdentifierModalText": "a une valeur de", "deleteIdentifierTooltip": "Supprimer", "deleteRelationshipTooltipText": "Supprimer", "demographicsSection": "Informations basiques", @@ -43,20 +43,20 @@ "editIdentifierTooltip": "Éditer", "editPatientDetails": "Modifier les détails du patient", "editPatientDetailsBreadcrumb": "Modifier les détails du patient", - "enterNonCodedCauseOfDeath": "Enter non-coded cause of death", + "enterNonCodedCauseOfDeath": " Entrez la cause du décès non codée", "error": "Erreur", - "errorFetchingCodedCausesOfDeath": "Error fetching coded causes of death", + "errorFetchingCodedCausesOfDeath": " Erreur lors de la récupération des causes de décès codées", "errorFetchingOrderedFields": "Une erreur s'est produite lors de la récupération des champs ordonnés pour la hiérarchie d'adresse", "estimatedAgeInMonthsLabelText": "Âge estimé en mois", "estimatedAgeInYearsLabelText": "Âge estimé en années", "familyNameLabelText": "Nom de famille", "familyNameRequired": "Le nom de famille est requis", "female": "Féminin", - "fieldsWithErrors": "The following fields have errors: ", + "fieldsWithErrors": "Ces lignes suivantes contiennent des erreurs:", "fullNameLabelText": "Nom et prénom", "genderLabelText": "Sexe", "genderRequired": "Le genre est requis", - "genderUnspecified": "Gender unspecified", + "genderUnspecified": "Genre non précisé", "givenNameLabelText": "Prénom", "givenNameRequired": "Le prénom est requis", "identifierValueRequired": "La valeur de l'identifiant est requise", @@ -68,19 +68,19 @@ "jumpTo": "Aller à", "male": "Masculin", "middleNameLabelText": "Deuxième Prénom", - "negativeMonths": "Estimated months cannot be negative", - "negativeYears": "Estimated years cannot be negative", + "negativeMonths": "L'estimation du mois ne peut être une valeur négative", + "negativeYears": "L'estimation de l'année ne peut être une valeur négative", "no": "Non", - "nonCodedCauseOfDeath": "Non-coded cause of death", - "nonCodedCauseOfDeathRequired": "Cause of death is required", - "nonsensicalYears": "Estimated years cannot be more than 140", + "nonCodedCauseOfDeath": "Cause de décès non-codé", + "nonCodedCauseOfDeathRequired": "La cause du décès est requise", + "nonsensicalYears": "L'âge estimé ne peut excéder 140 ans", "numberInNameDubious": "Le chiffre dans le nom est suspect", "obsFieldUnknownDatatype": "Le concept pour le champ d'observation '{{fieldDefinitionId}}' a un type de données inconnu '{{datatypeName}}'", "optional": "Optionnel", "other": "Autre", "patientNameKnown": "Le nom du patient est-il connu?", "patientRegistrationBreadcrumb": "Enregistrement du patient", - "refreshOrContactAdmin": "Try refreshing the page or contact your system administrator", + "refreshOrContactAdmin": "Essayer de rafraichir la page ou contacter l'administrateur", "registerPatient": "Enregistrer un patient", "registerPatientSuccessSnackbarSubtitle": "Le patient peut maintenant être trouvé en le recherchant par son nom ou son numéro d'identification", "registerPatientSuccessSnackbarTitle": "Nouveau patient créé", @@ -102,15 +102,15 @@ "sexFieldLabelText": "Sexe", "source": "Source", "submitting": "En cours de soumission", - "timeFormat": "Time Format", - "timeOfDeathInputLabel": "Time of death (hh:mm)", - "unableToFetch": "Unable to fetch person attribute type - {{personattributetype}}", + "timeFormat": "Format de temps", + "timeOfDeathInputLabel": "Heure de décès (hh:mm)", + "unableToFetch": " Impossible de récupérer le type d'attribut de la personne - {{personattributetype}}", "unknown": "Inconnu", "unknownPatientAttributeType": "Le type d'attribut de patient a un format inconnu {{personAttributeTypeFormat}}", "updatePatient": "Mettre à jour le patient", "updatePatientErrorSnackbarTitle": "Échec de la mise à jour des détails du patient", "updatePatientSuccessSnackbarSubtitle": "Les informations du patient ont été mises à jour avec succès", "updatePatientSuccessSnackbarTitle": "Détails du patient mis à jour", - "yearsEstimateRequired": "Estimated years required", + "yearsEstimateRequired": "estimation de l'année obligatoire", "yes": "Oui" } diff --git a/packages/esm-patient-registration-app/translations/he.json b/packages/esm-patient-registration-app/translations/he.json index 49f5e38f0..8bfd511eb 100644 --- a/packages/esm-patient-registration-app/translations/he.json +++ b/packages/esm-patient-registration-app/translations/he.json @@ -93,7 +93,7 @@ "relationshipToPatient": "קשר למטופל", "relativeFullNameLabelText": "Full name", "relativeNamePlaceholder": "שם פרטי שם משפחה", - "removeIdentifierButton": "Remove Identifier", + "removeIdentifierButton": "Remove identifier", "resetIdentifierTooltip": "איפוס", "restoreRelationshipActionButton": "ביטול", "searchAddress": "חיפוש כתובת", diff --git a/packages/esm-patient-registration-app/translations/km.json b/packages/esm-patient-registration-app/translations/km.json index c9aba5f11..865a427a4 100644 --- a/packages/esm-patient-registration-app/translations/km.json +++ b/packages/esm-patient-registration-app/translations/km.json @@ -93,7 +93,7 @@ "relationshipToPatient": "ការទាក់ទងទៅនឹងអ្នកជំងឺ", "relativeFullNameLabelText": "Full name", "relativeNamePlaceholder": "នាមត្រកូលនាមខ្លួន", - "removeIdentifierButton": "Remove Identifier", + "removeIdentifierButton": "Remove identifier", "resetIdentifierTooltip": "រៀបចំឡើងវិញ", "restoreRelationshipActionButton": "វិលត្រឡប់មកដើមវិញ", "searchAddress": "ស្វែងរកអាសយដ្ឋាន", diff --git a/packages/esm-patient-registration-app/translations/zh.json b/packages/esm-patient-registration-app/translations/zh.json index 7008353b0..ac7fedd3c 100644 --- a/packages/esm-patient-registration-app/translations/zh.json +++ b/packages/esm-patient-registration-app/translations/zh.json @@ -93,7 +93,7 @@ "relationshipToPatient": "与患者的关系", "relativeFullNameLabelText": "Full name", "relativeNamePlaceholder": "名字 姓氏", - "removeIdentifierButton": "Remove Identifier", + "removeIdentifierButton": "Remove identifier", "resetIdentifierTooltip": "重置", "restoreRelationshipActionButton": "撤销", "searchAddress": "搜索地址", diff --git a/packages/esm-patient-registration-app/translations/zh_CN.json b/packages/esm-patient-registration-app/translations/zh_CN.json index 7008353b0..ac7fedd3c 100644 --- a/packages/esm-patient-registration-app/translations/zh_CN.json +++ b/packages/esm-patient-registration-app/translations/zh_CN.json @@ -93,7 +93,7 @@ "relationshipToPatient": "与患者的关系", "relativeFullNameLabelText": "Full name", "relativeNamePlaceholder": "名字 姓氏", - "removeIdentifierButton": "Remove Identifier", + "removeIdentifierButton": "Remove identifier", "resetIdentifierTooltip": "重置", "restoreRelationshipActionButton": "撤销", "searchAddress": "搜索地址", diff --git a/packages/esm-service-queues-app/translations/es.json b/packages/esm-service-queues-app/translations/es.json index a172806bc..da09cae24 100644 --- a/packages/esm-service-queues-app/translations/es.json +++ b/packages/esm-service-queues-app/translations/es.json @@ -2,15 +2,15 @@ "actions": "Actions", "activeVisits": "Active Visits", "activeVisitsNotInQueue": "Active visits not in queue", - "addAProviderQueueRoom": "Add a provider queue room?", + "addAProviderQueueRoom": "¿Agregar una sala de espera para el proveedor?", "addEntry": "Add entry", "addisitToQueueTooltip": "Add to queue", - "addNewQueueService": "Add New Queue Service", + "addNewQueueService": "Añadir Nuevo Servicio de Cola", "addNewQueueServiceRoom": "Add new queue service room", "addNewService": "Add new service", "addNewServiceRoom": "Add new service room", "addPatientToQueue": "Add patient to queue", - "addProviderQueueRoom": "Add provider queue room", + "addProviderQueueRoom": "Añadir Sala de Espera del Proveedor", "addQueue": "Add queue", "addQueueName": "Please add a queue name", "addQueueRoom": "Add queue room", @@ -26,10 +26,10 @@ "and": "And", "anotherVisitType": "Start another visit type", "any": "Any", - "applyFilters": "Apply filters", + "applyFilters": "Aplicar filtros", "averageWaitTime": "Average wait time today", "backToScheduledVisits": "Back to scheduled visits", - "backToSearchResults": "Back to search results", + "backToSearchResults": "Volver a los resultados de búsqueda", "backToSimpleSearch": "Back to simple search", "between": "Between", "bmi": "Bmi", @@ -41,50 +41,50 @@ "chooseRoom": "Select a room", "chooseService": "Select a service", "clearAllQueueEntries": "Clear all queue entries?", - "clearAllQueueEntriesWarningMessage": "Clearing all queue entries will remove all the patients from the queues", + "clearAllQueueEntriesWarningMessage": "Limpiar todas las entradas en la cola eliminará todos los pacientes de las colas", "clearQueue": "Clear queue", "clinicMetrics": "Clinic metrics", "configurePriorities": "Please configure priorities to continue.", "configureServices": "Please configure services to continue.", "configureStatus": "Please configure status to continue.", - "confirmDeleteQueueEntry": "Are you sure you want to delete this queue entry?", - "confirmMoveBackQueueAndStatus": "Are you sure you want to move patient back to queue \"{{queue}}\" with status \"{{status}}\"?", - "confirmMoveBackStatus": "Are you sure you want to move patient back to status \"{{status}}\"?", - "confirmRemovePatientFromQueue": "Are you sure you want to remove this patient from this queue?", - "currentValueFormatted": "{{value}} (Current)", + "confirmDeleteQueueEntry": "¿Está seguro de que desea eliminar esta entrada de cola?", + "confirmMoveBackQueueAndStatus": "¿Está seguro de que desea mover el paciente atrás a la cola \"{{queue}}\" con el estado \"{{status}}\"?", + "confirmMoveBackStatus": "¿Está seguro de que desea mover el paciente de regreso al estado \"{{status}}\"?", + "confirmRemovePatientFromQueue": "¿Está seguro de que desea eliminar este paciente de esta cola?", + "currentValueFormatted": "{{value}} (Actual)", "currentVisit": "Current visit", "date": "Date", "date&Time": "Date & time", "dateAndTimeOfVisit": "Date and time of visit", "dateOfBirth": "Date of birth", - "delete": "Delete", - "deleteQueueEntry": "Delete queue entry", + "delete": "Eliminar", + "deleteQueueEntry": "Eliminar entrada de la cola", "discard": "Discard", "dose": "Dose", - "edit": "Edit", + "edit": "Editar", "editPatientDetails": "Edit patient details", - "editQueueEntry": "Edit queue entry", - "editQueueEntryInstruction": "Edit fields of existing queue entry", + "editQueueEntry": "Editar entrada de la colaq", + "editQueueEntryInstruction": "Editar campos de la entrada de la cola existente", "encounterType": "Encounter type", "endAgeRangeInvalid": "End age range is not valid", "endDate": "End date", "endVisit": "End Visit", "endVisitWarningMessage": "Ending this visit will remove this patient from the queue and will not allow you to fill another encounter form for this patient", - "enterCommentHere": "Enter Comment here", + "enterCommentHere": "Ingresar Comentario Aquí", "errorAddingQueue": "Error adding queue", "errorAddingQueueRoom": "Error adding queue room", "errorClearingQueues": "Error clearing queues", - "errorFetchingAppointments": "Error fetching appointments", - "errorLoadingQueueEntries": "Error loading queue entries", + "errorFetchingAppointments": "Error al obtener las citas", + "errorLoadingQueueEntries": "Error al cargar las entradas de la cola", "errorPostingToScreen": "Error posting to screen", "facility": "Facility", - "failedToLoadRecommendedVisitTypes": "Failed to load recommended visit types", + "failedToLoadRecommendedVisitTypes": "Fallo al cargar tipos de visita recomendados", "female": "Female", "femaleLabelText": "Female", "fields": "of the following fields", "filter": "Filter (1)", - "filterByService": "Filter by service :", - "filterByStatus": "Filter by status :", + "filterByService": "Filtrar por servicio:", + "filterByStatus": "Filtrar por estado:", "filterTable": "Filter table", "firstName": "First name", "firstNameSort": "First name (a-z)", @@ -93,24 +93,24 @@ "gender": "Gender", "heartRate": "Heart rate", "height": "Height", - "hourAndMinuteFormatted": "{{hours}} hour(s) and {{minutes}} minute(s)", + "hourAndMinuteFormatted": "{{hours}} hora(s) y {{minutes}} minutos)", "idNumber": "ID Number", "indication": "Indication", - "invalidQueue": "Invalid Queue", - "invalidtableConfig": "Invalid table configuration", + "invalidQueue": "Cola Inválida", + "invalidtableConfig": "Tabla de configuración inválida", "lastEncounter": "Last encounter", "lastName": "Last name", "lastNameSort": "Last name (a-z)", "lastVisit": "Last visit", "lastVisitDate": "Date", "loading": "Loading...", - "location": "Location", + "location": "Ubicación", "male": "Male", "maleLabelText": "Male", "match": "Match", "medications": "Medications", "middleName": "Middle name", - "minuteFormatted": "{{minutes}} minute(s)", + "minuteFormatted": "{{minutes}} minuto(s)", "minutes": "Minutes", "missingLocation": "Missing location", "missingPriority": "Please select a priority", @@ -118,16 +118,16 @@ "missingQueueRoom": "Please select a queue room", "missingQueueRoomName": "Missing queue room name", "missingQueueRoomService": "Missing queue room service", - "missingService": "Missing service", + "missingService": "Servicio faltante", "missingVisitType": "Missing visit type", - "modifyDefaultValue": "Modify default value", + "modifyDefaultValue": "Modificar valor por defecto", "movePatientToNextService": "Move patient to the next service?", "moveToNextService": "Move to next service", "name": "Name", - "nextPage": "Next page", + "nextPage": "Siguiente página", "noActiveVisitsForLocation": "There are no active visits to display for this location.", "noAppointmentsFound": "No appointments found", - "noColumnsDefined": "No table columns defined. Check Configuration", + "noColumnsDefined": "No hay columnas de la tabla definidas. Revisar Configuración", "noEncountersFound": "No encounters found", "noLastEncounter": "There is no last encounter to display for this patient", "noLocationsAvailable": "No locations available", @@ -137,18 +137,18 @@ "noPatientsToDisplay": "No patients to display", "noPreviousVisitFound": "No previous visit found", "noPrioritiesConfigured": "No priorities configured", - "noPrioritiesForService": "The selected service does not have any allowed priorities. This is an error in configuration. Please contact your system administrator.", - "noPrioritiesForServiceTitle": "No priorities available", + "noPrioritiesForService": "El servicio seleccionado no tiene prioridades permitidas. Este es un error de configuración. Por favor, contacte a su administrador del sistema.", + "noPrioritiesForServiceTitle": "No hay prioridades disponibles", "noPriorityFound": "No priority found", "noResultsFound": "No results found", "noReturnDate": "There is no return date to display for this patient", "noServicesAvailable": "No services available", "noServicesConfigured": "No services configured", "noStatusConfigured": "No status configured", - "notableConfig": "No table configuration", + "notableConfig": "No hay tabla de configuración", "notes": "Notes", "noVisitsNotInQueueFound": "No visits currently not in queue found", - "noVisitTypesMatchingSearch": "There are no visit types matching this search text", + "noVisitTypesMatchingSearch": "No existen tipos de visita que coincidan con el texto a buscar", "noVitalsFound": "No vitals found", "oldest": "Oldest first", "onTime": "On time", @@ -157,17 +157,17 @@ "orderIndefiniteDuration": "Indefinite duration", "orInProperFormat": "Or", "orPatientName": "OR the patient's name(s)", - "patientAge": "Age", - "patientAlreadyInQueue": "Patient is already in the queue", + "patientAge": "Edad", + "patientAlreadyInQueue": "El paciente ya está en la cola", "patientAttendingService": "Patient attending service", "patientHasActiveVisit": "The patient already has an active visit", "patientInfo": "{{name}}{{sexInfo}}{{ageInfo}}", "patientList": "Patient list", "patientName": "Patient name", "patientNotInQueue": "The patient is not in the queue", - "patientRemoved": "Patient removed", - "patientRemovedFailed": "Error removing patient from queue", - "patientRemovedSuccessfully": "Paient removed from queue successfully", + "patientRemoved": "Paciente removido", + "patientRemovedFailed": "Error al eliminar el paciente de la cola", + "patientRemovedSuccessfully": "Paciente eliminado de la cola con éxito", "patientRequeued": "Patient has been requeued", "patients": "Patients", "patientsCurrentlyInQueue": "Patients currently in queue", @@ -176,44 +176,44 @@ "pleaseSelectLocation": "Please select a location", "pleaseSelectService": "Please select a service", "postCode": "Post code", - "previousPage": "Previous page", + "previousPage": "Página anterior", "previousVisit": "Previous visit", "primaryHelperText": "Search for a patient", "priority": "Priority", - "priorityComment": "Priority comment", - "priorityIsRequired": "Priority is required", + "priorityComment": "Comentario de prioridad", + "priorityIsRequired": "La prioridad es obligatoria", "program": "Program", "provider": "Provider", "quantity": "Quantity", - "queueAddedSuccessfully": "Queue added successfully", - "queueEntryAddedSuccessfully": "Queue entry added successfully", + "queueAddedSuccessfully": "La cola fue añadida con éxito", + "queueEntryAddedSuccessfully": "La entrada en la cola fue añadida con éxito", "queueEntryAddFailed": "Error adding queue entry status", - "queueEntryDeleteFailed": "Error deleting queue entry", - "queueEntryDeleteSuccessful": "Queue entry deleted successfully", - "queueEntryEdited": "Queue entry edited", - "queueEntryEditedSuccessfully": "Queue entry edited successfully", - "queueEntryEditingFailed": "Error editing queue entry", + "queueEntryDeleteFailed": "Error al eliminar la entrada de la cola", + "queueEntryDeleteSuccessful": "La entrada de la cola fue eliminada con éxito", + "queueEntryEdited": "Entrada de la cola editada", + "queueEntryEditedSuccessfully": "La entrada de la cola fue editada con éxito", + "queueEntryEditingFailed": "Error al editar entrada de la cola", "queueEntryError": "Error adding patient to the queue", "queueEntryRemoved": "Queue entry removed", "queueEntryRemovedSuccessfully": "", "queueEntryStatusUpdateFailed": "Error updating queue entry status", - "queueEntryTransitioned": "Queue entry transitioned", - "queueEntryTransitionedSuccessfully": "Queue entry transitioned successfully", - "queueEntryTransitionFailed": "Error transitioning queue entry", - "queueEntryTransitionUndoFailed": "Error undoing transition", - "queueEntryTransitionUndoSuccessful": "Queue entry transition undo success", + "queueEntryTransitioned": "Entrada de la cola trasladada", + "queueEntryTransitionedSuccessfully": "Entrada de la cola trasladada exitosamente", + "queueEntryTransitionFailed": "Error al trasladar la entrada de la cola", + "queueEntryTransitionUndoFailed": "Error al deshacer el traslado", + "queueEntryTransitionUndoSuccessful": "Traslado de la entrada de la cola deshecho con éxito", "queueEntryUpdateFailed": "Error updating queue entry", "queueEntryUpdateSuccessfully": "Queue Entry Updated Successfully", - "queueLocation": "Queue location", - "queueLocationRequired": "Queue location is required", + "queueLocation": "Ubicación de la cola", + "queueLocationRequired": "La ubicación de la cola es obligatoria", "queueName": "Queue name", "queuePriority": "Queue priority", "queueRoom": "Queue room", - "queueRoomAddedSuccessfully": "Queue room added successfully", + "queueRoomAddedSuccessfully": "Sala de espera añadida con éxito", "queueRoomAddFailed": "Error adding queue room", "queueRoomName": "Queue room name", "queueRoomUpdatedSuccessfully": "Queue room updated successfully", - "queuesClearedSuccessfully": "Queues cleared successfully", + "queuesClearedSuccessfully": "Colas limpiadas con éxito", "queueScreen": "Queue screen", "queueService": "Queue service", "queueStatus": "Queue status", @@ -222,8 +222,8 @@ "recommended": "Recommended", "refills": "Refills", "removeFromQueueAndEndVisit": "Remove patient from queue and end active visit?", - "removePatient": "Remove patient", - "removePatientFromQueue": "Remove patient from queue", + "removePatient": "Eliminar paciente", + "removePatientFromQueue": "Eliminar paciente de la cola", "removeQueueEntryError": "Error removing queue entry", "requeue": "Requeue", "retainLocation": "Retain location", @@ -237,15 +237,15 @@ "searchboxPlaceholder": "Search for a patient name or ID number", "searchForAVisitType": "Search for a visit type", "searchForPatient": "Search for a patient", - "searchPatient": "Search Patient", + "searchPatient": "Buscar Paciente", "searchThisList": "Search this list", "secondaryHelperText": "Type the patient's name or unique ID number", - "selectALocation": "Select a location", + "selectALocation": "Seleccionar una ubicación", "selectAVisitType": "Select visit type", "selectFacility": "Select a facility", "selectOption": "Select an option", "selectProgramType": "Select program type", - "selectQueue": "Select a queue", + "selectQueue": "Seleccionar una cola", "selectQueueLocation": "Select a queue location", "selectQueueService": "Select a queue service", "selectRoom": "Select a room", @@ -255,7 +255,7 @@ "serve": "Serve", "servePatient": "Serve patient", "service": "Service", - "serviceIsRequired": "Service is required", + "serviceIsRequired": "El servicio es obligatorio", "serviceQueue": "Service queue", "serviceQueues": "Service queues", "sex": "Sex", @@ -268,35 +268,35 @@ "startVisitError": "Error starting visit", "startVisitQueueSuccessfully": "Patient has been added to active visits list and queue.", "status": "Status", - "statusIsRequired": "Status is required", - "submitting": "Submitting...", + "statusIsRequired": "El estado es obligatorio", + "submitting": "Enviando...", "success": "Success", "temperature": "Temperature", "ticketNumber": "Ticket number", "time": "Time", - "timeCannotBeInFuture": "Time cannot be in the future", - "timeCannotBePriorToPreviousQueueEntry": "Time cannot be before start of previous queue entry: {{time}}", - "timeOfTransition": "Time of transition", + "timeCannotBeInFuture": "La hora no puede estar en el futuro", + "timeCannotBePriorToPreviousQueueEntry": "La hora no puede estar antes del inicio de la anterior entrada de la cola: {{time}}", + "timeOfTransition": "Hora del traslado", "tirageNotYetCompleted": "Triage has not yet been completed", "today": "Today", - "totalPatients": "Total Patients", - "transition": "Transition", - "TransitionLatestQueueEntry": "Transition patient to latest queue", - "transitionPatient": "Transition patient", - "transitionPatientStatusOrQueue": "Select a new status or queue for patient to transition to.", + "totalPatients": "Total de Pacientes", + "transition": "Traslado", + "TransitionLatestQueueEntry": "Paciente trasladado a la última cola", + "transitionPatient": "Trasladar paciente", + "transitionPatientStatusOrQueue": "Seleccione un nuevo estado o cola para el paciente a trasladar", "triageForm": "Triage form", "triageNote": "Triage note", "trySearchWithPatientUniqueID": "Try searching with the patient's unique ID number", - "undoQueueEntryTransitionSuccess": "Undo transition success", - "undoTransition": "Undo transition", - "unexpectedServerResponse": "Unexpected Server Response", + "undoQueueEntryTransitionSuccess": "Traslado deshecho con éxito", + "undoTransition": "Deshacer traslado", + "unexpectedServerResponse": "Respuesta del servidor no esperada", "unknown": "Unknown", "updateEntry": "Update entry", "updateRoom": "Update room", "useTodaysDate": "Use today's date", - "visitQueueNumberAttributeUuid not configured": "visitQueueNumberAttributeUuid not configured", + "visitQueueNumberAttributeUuid not configured": "visitQueueNumberAttributeUuid no configurado", "visitStartTime": "Visit Time", - "visitTabs": "Visit tabs", + "visitTabs": "Pestañas de visita", "visitType": "Visit Type", "vitals": "Vitals", "vitalsForm": "Vitals form", diff --git a/packages/esm-service-queues-app/translations/fr.json b/packages/esm-service-queues-app/translations/fr.json index 071bd4c38..7996b92d0 100644 --- a/packages/esm-service-queues-app/translations/fr.json +++ b/packages/esm-service-queues-app/translations/fr.json @@ -2,7 +2,7 @@ "actions": "Actions", "activeVisits": "Visites Actives", "activeVisitsNotInQueue": "Visites actives non dans la file d'attente", - "addAProviderQueueRoom": "Ajouter une salle d'attente pour les prestataires des service?", + "addAProviderQueueRoom": "Ajouter une salle d'attente pour les prestataires de service?", "addEntry": "Ajouter une entrée", "addisitToQueueTooltip": "Ajouter", "addNewQueueService": "Ajouter un nouveau service de file d'attente", @@ -18,7 +18,7 @@ "addQueueRoomService": "Veuillez ajouter un service de salle de file d'attente", "addRoom": "Ajouter une salle", "addToQueue": "Ajouter à la file d'attente", - "addVisitToQueue": "Add Visit To Queue?", + "addVisitToQueue": " Ajouter une visite à la file d’attente?", "advancedSearch": "Recherche avancée", "age": "Âge", "alistOfClients": "Liste de patients attendus", @@ -44,13 +44,13 @@ "clearAllQueueEntriesWarningMessage": "L'effacement de toutes les entrées de la file d'attente supprimera tous les patients de la file d'attente.", "clearQueue": "Effacer la file d'attente", "clinicMetrics": "Parametres de I'Etablissement de soins", - "configurePriorities": "Please configure priorities to continue.", - "configureServices": "Please configure services to continue.", - "configureStatus": "Please configure status to continue.", - "confirmDeleteQueueEntry": "Are you sure you want to delete this queue entry?", - "confirmMoveBackQueueAndStatus": "Are you sure you want to move patient back to queue \"{{queue}}\" with status \"{{status}}\"?", - "confirmMoveBackStatus": "Are you sure you want to move patient back to status \"{{status}}\"?", - "confirmRemovePatientFromQueue": "Are you sure you want to remove this patient from this queue?", + "configurePriorities": " Veuillez configurer les priorités pour pouvoir continuer.", + "configureServices": " Veuillez configurer les services pour pouvoir continuer.", + "configureStatus": " Veuillez configurer les statuts pour pouvoir continuer.", + "confirmDeleteQueueEntry": " Êtes-vous sûr de vouloir supprimer cette entrée de file d’attente ?", + "confirmMoveBackQueueAndStatus": " Êtes-vous sûr de vouloir déplacer le patient vers la file d'attente « {{queue}} » avec le statut « {{status}} » ?", + "confirmMoveBackStatus": " Êtes-vous sûr de vouloir ramener le patient au statut « {{status}} » ?", + "confirmRemovePatientFromQueue": " Êtes-vous sûr de vouloir supprimer ce patient de cette file d’attente ?", "currentValueFormatted": "{{value}} (Actuel)", "currentVisit": "Visite en cours", "date": "Date", @@ -64,21 +64,21 @@ "edit": "Modifier", "editPatientDetails": "Modifier les détails du patient", "editQueueEntry": "Modifier l'entrée dans la file d'attente.", - "editQueueEntryInstruction": "Edit fields of existing queue entry", + "editQueueEntryInstruction": " Modifier les champs d'une file d'attente existante", "encounterType": "Type de Rencontre", "endAgeRangeInvalid": "La fin de la tranche d'âge n'est pas valide", "endDate": "Date de fin", "endVisit": "Fin de la visite", - "endVisitWarningMessage": "Ending this visit will not allow you to fill another encounter form for this patient", - "enterCommentHere": "Enter Comment here", + "endVisitWarningMessage": "En terminant cette visite il ne vous sera pas permis de remplir un autre formulaire de rencontre pour ce patient", + "enterCommentHere": "Ecrire un commentaire ici", "errorAddingQueue": "Erreur lors de l'ajout de la file d'attente", - "errorAddingQueueRoom": "Error adding queue room", - "errorClearingQueues": "Error clearing queues", - "errorFetchingAppointments": "Error fetching appointments", - "errorLoadingQueueEntries": "Error loading queue entries", - "errorPostingToScreen": "Error posting to screen", + "errorAddingQueueRoom": "Erreur lors de l'ajout d'une salle d'attente", + "errorClearingQueues": "Erreur lors de la suppression des files d'attente", + "errorFetchingAppointments": " Erreur lors de la récupération des rendez-vous", + "errorLoadingQueueEntries": " Erreur lors du chargement des files d'attente", + "errorPostingToScreen": " Erreur lors de l'affichage sur l'écran", "facility": "Facilité", - "failedToLoadRecommendedVisitTypes": "Failed to load recommended visit types", + "failedToLoadRecommendedVisitTypes": " Échec du chargement des types de visites recommandées", "female": "Féminin", "femaleLabelText": "Féminin", "fields": "des champs suivants", @@ -88,16 +88,16 @@ "filterTable": "Filter table", "firstName": "Prénom", "firstNameSort": "Prénom (a-z)", - "futureScheduledVisits_one": "{{count}} visit scheduled for dates in the future", - "futureScheduledVisits_other": "{{count}} visits scheduled for dates in the future", + "futureScheduledVisits_one": "{{count}} visites prévues à des dates ultérieures", + "futureScheduledVisits_other": "{{count}} visites prévues à des dates ultérieures", "gender": "Genre", "heartRate": "Fréquence cardiaque", "height": "Hauteur", - "hourAndMinuteFormatted": "{{hours}} hour(s) and {{minutes}} minute(s)", + "hourAndMinuteFormatted": " {{hours}} heure(s) et {{minutes}} minute(s)", "idNumber": "ID Number", "indication": "Indication", "invalidQueue": "File d'attente non valide", - "invalidtableConfig": "Invalid table configuration", + "invalidtableConfig": "Configuration de table non valide", "lastEncounter": "Dernière rencontre", "lastName": "Nom de famille", "lastNameSort": "Nom de famille (a-z)", @@ -114,20 +114,20 @@ "minutes": "Minutes", "missingLocation": "L'emplacement est manquant", "missingPriority": "Veuillez sélectionner une priorité", - "missingQueueName": "Missing queue name", - "missingQueueRoom": "Please select a queue room", - "missingQueueRoomName": "Missing queue room name", - "missingQueueRoomService": "Missing queue room service", + "missingQueueName": "Nom de file d'attente manquant", + "missingQueueRoom": "Veuillez sélectionner une salle de file d'attente", + "missingQueueRoomName": "Nom de salle de file d'attente manquant", + "missingQueueRoomService": "Service de salle de file d'attente manquant", "missingService": "Service manquant", - "missingVisitType": "Missing visit type", - "modifyDefaultValue": "Modify default value", + "missingVisitType": " Type de visite manquant", + "modifyDefaultValue": "Modifier la valeur par défaut", "movePatientToNextService": "Déplacer le patient vers le service suivant?", "moveToNextService": "Déplacer vers le service suivant", "name": "Nom", "nextPage": "Page suivante", "noActiveVisitsForLocation": "Il n'y a pas de visite en cours pour cet emplacement", "noAppointmentsFound": "Aucun rendez-vous trouvé", - "noColumnsDefined": "No table columns defined. Check Configuration", + "noColumnsDefined": "Aucune colonne de tableau définie. Vérifier la configuration", "noEncountersFound": "Aucune rencontre trouvée", "noLastEncounter": "Il n'y a pas de dernier rendez-vous à afficher pour ce patient", "noLocationsAvailable": "Aucun emplacement disponible", @@ -137,15 +137,15 @@ "noPatientsToDisplay": "Aucun patient affiché", "noPreviousVisitFound": "Aucune visite précédente trouvée", "noPrioritiesConfigured": "Aucune priorité n'est configurée", - "noPrioritiesForService": "The selected service does not have any allowed priorities. This is an error in configuration. Please contact your system administrator.", - "noPrioritiesForServiceTitle": "No priorities available", - "noPriorityFound": "No priority found", + "noPrioritiesForService": "Le service sélectionné n'a aucune priorité autorisée. Il s'agit d'une erreur de configuration. Veuillez contacter votre administrateur système.", + "noPrioritiesForServiceTitle": "Aucunes priorités disponible", + "noPriorityFound": " Aucune priorité trouvée", "noResultsFound": "Aucun résultat trouvé", "noReturnDate": "There is no return date to display for this patient", - "noServicesAvailable": "No services available", - "noServicesConfigured": "No services configured", + "noServicesAvailable": "Aucun services disponibles", + "noServicesConfigured": "Aucun service configuré", "noStatusConfigured": "No status configured", - "notableConfig": "No table configuration", + "notableConfig": "Aucune configuration de table", "notes": "Notes", "noVisitsNotInQueueFound": "No visits currently not in queue found", "noVisitTypesMatchingSearch": "Il n'y a pas de visite correspondante à cette recherche", @@ -159,16 +159,16 @@ "orPatientName": "OU le nom(s) du patient", "patientAge": "Âge", "patientAlreadyInQueue": "Patient déjà dans la file d'attente", - "patientAttendingService": "Patient attending service", + "patientAttendingService": "Patient en attente de service", "patientHasActiveVisit": "Le patient a déjà une visite active", "patientInfo": "{{name}}{{sexInfo}}{{ageInfo}}", "patientList": "Liste de patients", "patientName": "Nom du patient", "patientNotInQueue": "Le patient n'est pas dans la file d'attente", "patientRemoved": "Patient enlevé", - "patientRemovedFailed": "Error removing patient from queue", - "patientRemovedSuccessfully": "Paient removed from queue successfully", - "patientRequeued": "Patient has been requeued", + "patientRemovedFailed": " Erreur lors de la suppression du patient de la file d'attente", + "patientRemovedSuccessfully": "Le patient a été retiré de la file d'attente avec succès", + "patientRequeued": "Le patient a été remis dans la file d'attente", "patients": "Les patients", "patientsCurrentlyInQueue": "Patients actuellement en file d'attente", "personalDetails": "Détails personnels", @@ -187,21 +187,21 @@ "quantity": "Quantité", "queueAddedSuccessfully": "File d'attente ajoutée avec succès", "queueEntryAddedSuccessfully": "Entrée dans la file d'attente ajoutée avec succès", - "queueEntryAddFailed": "Error adding queue entry status", - "queueEntryDeleteFailed": "Error deleting queue entry", - "queueEntryDeleteSuccessful": "Queue entry deleted successfully", - "queueEntryEdited": "Queue entry edited", - "queueEntryEditedSuccessfully": "Queue entry edited successfully", - "queueEntryEditingFailed": "Error editing queue entry", - "queueEntryError": "Error adding patient to the queue", - "queueEntryRemoved": "Queue entry removed", + "queueEntryAddFailed": " Erreur lors de l'ajout du statut de la file d'attente ", + "queueEntryDeleteFailed": "Erreur lors de la suppression de l'entrée de la file d'attente", + "queueEntryDeleteSuccessful": "Entrée de la file d'attente supprimée avec succès ", + "queueEntryEdited": "Entrée de la file d'attente affichée", + "queueEntryEditedSuccessfully": " Entrée de file d'attente affichée avec succès", + "queueEntryEditingFailed": " Erreur lors de l'affichage de l'entrée de la file d'attente", + "queueEntryError": " Erreur lors de l'ajout du patient à la file d'attente", + "queueEntryRemoved": " Entrée de file d'attente supprimée", "queueEntryRemovedSuccessfully": "", - "queueEntryStatusUpdateFailed": "Error updating queue entry status", + "queueEntryStatusUpdateFailed": " Erreur lors de la mise à jour du statut de l'entrée de la file d'attente", "queueEntryTransitioned": "Entrée dans la file d'attente transitionnée", "queueEntryTransitionedSuccessfully": "Entrée dans la file d'attente transitionnée avec succès", "queueEntryTransitionFailed": "Erreur lors de la transition de l'entrée dans la file d'attente", "queueEntryTransitionUndoFailed": "Erreur lors de l'annulation de la transition", - "queueEntryTransitionUndoSuccessful": "Annulation de la transition de l'entrée dans la file d'attente réussie", + "queueEntryTransitionUndoSuccessful": "Annulation de la transition de l'entrée de la file d'attente réussie", "queueEntryUpdateFailed": "Erreur lors de la mise à jour du statut de l'entrée dans la file d'attente", "queueEntryUpdateSuccessfully": "Entrée de la file d'attente mise à jour avec succès", "queueLocation": "Emplacement de la file d'attente", @@ -274,14 +274,14 @@ "temperature": "Température", "ticketNumber": "Numéro de Ticket", "time": "Temps", - "timeCannotBeInFuture": "Time cannot be in the future", + "timeCannotBeInFuture": " Le temps ne peut pas être dans le futur", "timeCannotBePriorToPreviousQueueEntry": "L’heure ne peut être antérieure au début de la file d’attente précédente: {{time}}", "timeOfTransition": "Heure de la transition", "tirageNotYetCompleted": "Le triage n'est pas encore terminé", "today": "Aujourd'hui", "totalPatients": "Nombre total de patients", "transition": "Transition", - "TransitionLatestQueueEntry": "Transitionner le patient vers la file d'attente la plus récente", + "TransitionLatestQueueEntry": "Transfert du patient vers la file d'attente la plus récente", "transitionPatient": "Transition du patient", "transitionPatientStatusOrQueue": "Sélectionnez un nouveau statut ou une file d'attente vers laquelle le patient doit être transféré.", "triageForm": "Formulaire de triage", From be1f84c98e42c456df7937e9de681651a867617a Mon Sep 17 00:00:00 2001 From: chibongho Date: Mon, 30 Sep 2024 12:58:16 -0400 Subject: [PATCH 12/12] (feat) - O3-4044 - Ward App - add support for vertical tiling of cards (#1331) --- packages/esm-ward-app/src/index.ts | 8 ++++- .../src/ward-view/ward-view.component.tsx | 29 ++++++++++--------- .../esm-ward-app/src/ward-view/ward-view.scss | 16 ++++++++++ 3 files changed, 38 insertions(+), 15 deletions(-) diff --git a/packages/esm-ward-app/src/index.ts b/packages/esm-ward-app/src/index.ts index 7474a605e..2d6832298 100644 --- a/packages/esm-ward-app/src/index.ts +++ b/packages/esm-ward-app/src/index.ts @@ -117,7 +117,13 @@ export function startupApp() { registerFeatureFlag( 'bedmanagement-module', - 'Bed Management Module', + 'Bed management module', 'Enables features related to bed management / assignment. Requires the backend bed management module to be installed.', ); + + registerFeatureFlag( + 'ward-view-vertical-tiling', + 'Ward view vertical tiling', + 'Enable tiling of bed cards vertically in the ward view.', + ); } diff --git a/packages/esm-ward-app/src/ward-view/ward-view.component.tsx b/packages/esm-ward-app/src/ward-view/ward-view.component.tsx index 3bc67ced8..d3946363d 100644 --- a/packages/esm-ward-app/src/ward-view/ward-view.component.tsx +++ b/packages/esm-ward-app/src/ward-view/ward-view.component.tsx @@ -1,9 +1,5 @@ import { InlineNotification } from '@carbon/react'; -import { - useAppContext, - useDefineAppContext, - WorkspaceContainer -} from '@openmrs/esm-framework'; +import { useAppContext, useDefineAppContext, useFeatureFlag, WorkspaceContainer } from '@openmrs/esm-framework'; import React, { useEffect, useRef } from 'react'; import { useTranslation } from 'react-i18next'; import EmptyBedSkeleton from '../beds/empty-bed-skeleton'; @@ -15,6 +11,7 @@ import WardViewHeader from '../ward-view-header/ward-view-header.component'; import WardBed from './ward-bed.component'; import { bedLayoutToBed } from './ward-view.resource'; import styles from './ward-view.scss'; +import classNames from 'classnames'; const WardView = () => { const response = useWardLocation(); @@ -23,6 +20,7 @@ const WardView = () => { const wardPatientsGroupDetails = useWardPatientGrouping(); useDefineAppContext('ward-patients-group', wardPatientsGroupDetails); + const isVertical = useFeatureFlag('ward-view-vertical-tiling'); if (isLoadingLocation) { return <>; @@ -33,27 +31,30 @@ const WardView = () => { } return ( -
- - + <> +
+ + +
-
+ ); }; const WardViewMain = () => { const { location } = useWardLocation(); const { t } = useTranslation(); + const isVertical = useFeatureFlag('ward-view-vertical-tiling'); const wardPatientsGrouping = useAppContext('ward-patients-group'); const { bedLayouts, wardAdmittedPatientsWithBed, wardUnassignedPatientsList } = wardPatientsGrouping ?? {}; const { isLoading: isLoadingAdmissionLocation, error: errorLoadingAdmissionLocation } = wardPatientsGrouping?.admissionLocationResponse ?? {}; const { - isLoading: isLoadingInpatientAdmissions, - error: errorLoadingInpatientAdmissions, - hasMore: hasMoreInpatientAdmissions, - loadMore: loadMoreInpatientAdmissions + isLoading: isLoadingInpatientAdmissions, + error: errorLoadingInpatientAdmissions, + hasMore: hasMoreInpatientAdmissions, + loadMore: loadMoreInpatientAdmissions, } = wardPatientsGrouping?.inpatientAdmissionResponse ?? {}; const scrollToLoadMoreTrigger = useRef(null); @@ -124,7 +125,7 @@ const WardViewMain = () => { }); return ( -
+
{wardBeds} {bedLayouts?.length == 0 && ( div { + break-inside: avoid; + margin-bottom: 10px; + } + } }