@kenyaemr/esm-ward-app 8.5.3-pre.82 → 8.5.3-pre.87

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/routes.json CHANGED
@@ -1 +1 @@
1
- {"$schema":"https://json.openmrs.org/routes.schema.json","backendDependencies":{"webservices.rest":"^2.2.0","emrapi":"^2.0.0 || 2.0.0-SNAPSHOT"},"optionalBackendDependencies":{"bedmanagement":{"version":"^6.0.0 || 6.0.0-SNAPSHOT","feature":{"flagName":"bedmanagement-module","label":"Ward App Patient Service","description":"This module, if installed, provides services for managing patients admitted to the ward."}}},"extensions":[{"name":"ward-dashboard-link","component":"wardDashboardLink","slot":"homepage-dashboard-slot","meta":{"name":"ward","slot":"ward-dashboard-slot","title":"Wards"}},{"component":"root","name":"ward-dashboard","slot":"ward-dashboard-slot"},{"component":"wardView","name":"ward-view","slot":"ward-view-slot"},{"component":"wardPatientActionButtonExtension","name":"ward-patient-action-button","slot":"action-menu-ward-patient-items-slot"},{"component":"wardPatientNotesActionButtonExtension","name":"ward-inpatient-notes-form-action-button","slot":"action-menu-ward-patient-items-slot"},{"component":"coloredObsTagCardRowExtension","name":"colored-obs-tags-card-row","slot":"ward-patient-card-slot"},{"name":"transfer-swap-patient-siderail-button","slot":"action-menu-ward-patient-items-slot","component":"patientTransferAndSwapWorkspaceSiderailIcon"},{"name":"patient-discharge-siderail-button","slot":"action-menu-ward-patient-items-slot","component":"patientDischargeWorkspaceSideRailIcon"},{"name":"clinical-forms-workspace-siderail-button","component":"clinicalFormWorkspaceSideRailIcon","slot":"action-menu-ward-patient-items-slot"},{"name":"admission-requests-workspace-siderail-button","component":"admissionRequestsWorkspaceSideRailIcon","slot":"action-menu-ward-patient-admission-requests-items-slot"},{"name":"create-admission-request-workspace-siderail-button","component":"createAdmissionEncounterWorkspaceSideRailIcon","slot":"action-menu-ward-patient-admission-requests-items-slot"},{"component":"defaultWardView","name":"default-ward","slot":"default-ward"},{"component":"maternalWardView","name":"maternal-ward","slot":"maternal-ward"},{"component":"patientDischargeDocumentPreview","name":"patient-discharge-document-preview-modal"},{"component":"wardPatientWorkspaceBanner","name":"ward-patient-workspace-banner","slot":"ward-workspace-patient-banner-slot"},{"name":"in-patient-dashboard-link","component":"inPatientChartLink","order":7,"meta":{"slot":"patient-chart-in-patient-dashboard-slot","path":"in-patient","layoutMode":"anchored","columns":1,"columnSpan":1}},{"name":"in-patient-dashboard","slot":"patient-chart-in-patient-dashboard-slot","component":"inPatientChartDashboard","meta":{"fullWidth":false}}],"workspaces":[{"name":"admission-requests-workspace","component":"admissionRequestWorkspace","title":"admissionRequests","type":"pending-admission-requests","width":"wider"},{"name":"create-admission-encounter-workspace","component":"createAdmissionEncounterWorkspace","title":"admitPatient","type":"patient-search-workspace","width":"wider"},{"name":"ward-patient-notes-workspace","component":"wardPatientNotesWorkspace","type":"ward-patient-notes","title":"inpatientNotesWorkspaceTitle"},{"name":"admit-patient-form-workspace","component":"admitPatientFormWorkspace","title":"admissionRequests","type":"admission-requests"},{"name":"ward-patient-workspace","component":"wardPatientWorkspace","type":"ward","title":"Ward patient","width":"extra-wide"},{"name":"patient-transfer-swap-workspace","component":"patientTransferAndSwapWorkspace","title":"transfers","type":"transfer-swap-bed-form"},{"name":"patient-transfer-request-workspace","component":"patientTransferRequestWorkspace","title":"transferRequest","type":"transfer-request-form"},{"name":"patient-discharge-workspace","component":"patientDischargeWorkspace","title":"discharge","width":"extra-wide","canMaximize":true,"type":"ward-patient-discharge"},{"name":"ward-patient-clinical-forms-workspace","component":"patientClinicalFormsWorkspace","title":"clinicalForms","type":"ward-patient-clinical-forms","width":"wider"},{"name":"cancel-admission-request-workspace","component":"cancelAdmissionRequestWorkspace","title":"cancelAdmissionRequest","type":"cancel-admission-request"}],"workspaceGroups":[{"name":"ward-patient","members":["ward-patient-workspace","ward-patient-notes-workspace","patient-transfer-swap-workspace","patient-discharge-workspace","ward-patient-clinical-forms-workspace","add-drug-order","order-basket","add-lab-order"]},{"name":"ward-patient-admission-requests","members":["admission-requests-workspace","create-admission-encounter-workspace"]}],"version":"8.5.3-pre.82"}
1
+ {"$schema":"https://json.openmrs.org/routes.schema.json","backendDependencies":{"webservices.rest":"^2.2.0","emrapi":"^2.0.0 || 2.0.0-SNAPSHOT"},"optionalBackendDependencies":{"bedmanagement":{"version":"^6.0.0 || 6.0.0-SNAPSHOT","feature":{"flagName":"bedmanagement-module","label":"Ward App Patient Service","description":"This module, if installed, provides services for managing patients admitted to the ward."}}},"extensions":[{"name":"ward-dashboard-link","component":"wardDashboardLink","slot":"homepage-dashboard-slot","meta":{"name":"ward","slot":"ward-dashboard-slot","title":"Wards"}},{"component":"root","name":"ward-dashboard","slot":"ward-dashboard-slot"},{"component":"wardView","name":"ward-view","slot":"ward-view-slot"},{"component":"wardPatientActionButtonExtension","name":"ward-patient-action-button","slot":"action-menu-ward-patient-items-slot"},{"component":"wardPatientNotesActionButtonExtension","name":"ward-inpatient-notes-form-action-button","slot":"action-menu-ward-patient-items-slot"},{"component":"coloredObsTagCardRowExtension","name":"colored-obs-tags-card-row","slot":"ward-patient-card-slot"},{"name":"transfer-swap-patient-siderail-button","slot":"action-menu-ward-patient-items-slot","component":"patientTransferAndSwapWorkspaceSiderailIcon"},{"name":"patient-discharge-siderail-button","slot":"action-menu-ward-patient-items-slot","component":"patientDischargeWorkspaceSideRailIcon"},{"name":"clinical-forms-workspace-siderail-button","component":"clinicalFormWorkspaceSideRailIcon","slot":"action-menu-ward-patient-items-slot"},{"name":"admission-requests-workspace-siderail-button","component":"admissionRequestsWorkspaceSideRailIcon","slot":"action-menu-ward-patient-admission-requests-items-slot"},{"name":"create-admission-request-workspace-siderail-button","component":"createAdmissionEncounterWorkspaceSideRailIcon","slot":"action-menu-ward-patient-admission-requests-items-slot"},{"component":"defaultWardView","name":"default-ward","slot":"default-ward"},{"component":"maternalWardView","name":"maternal-ward","slot":"maternal-ward"},{"component":"patientDischargeDocumentPreview","name":"patient-discharge-document-preview-modal"},{"component":"wardPatientWorkspaceBanner","name":"ward-patient-workspace-banner","slot":"ward-workspace-patient-banner-slot"},{"name":"in-patient-dashboard-link","component":"inPatientChartLink","order":7,"meta":{"slot":"patient-chart-in-patient-dashboard-slot","path":"in-patient","layoutMode":"anchored","columns":1,"columnSpan":1}},{"name":"in-patient-dashboard","slot":"patient-chart-in-patient-dashboard-slot","component":"inPatientChartDashboard","meta":{"fullWidth":false}}],"workspaces":[{"name":"admission-requests-workspace","component":"admissionRequestWorkspace","title":"admissionRequests","type":"pending-admission-requests","width":"wider"},{"name":"create-admission-encounter-workspace","component":"createAdmissionEncounterWorkspace","title":"admitPatient","type":"patient-search-workspace","width":"wider"},{"name":"ward-patient-notes-workspace","component":"wardPatientNotesWorkspace","type":"ward-patient-notes","title":"inpatientNotesWorkspaceTitle"},{"name":"admit-patient-form-workspace","component":"admitPatientFormWorkspace","title":"admissionRequests","type":"admission-requests"},{"name":"ward-patient-workspace","component":"wardPatientWorkspace","type":"ward","title":"Ward patient","width":"extra-wide"},{"name":"patient-transfer-swap-workspace","component":"patientTransferAndSwapWorkspace","title":"transfers","type":"transfer-swap-bed-form"},{"name":"patient-transfer-request-workspace","component":"patientTransferRequestWorkspace","title":"transferRequest","type":"transfer-request-form"},{"name":"patient-discharge-workspace","component":"patientDischargeWorkspace","title":"discharge","width":"extra-wide","canMaximize":true,"type":"ward-patient-discharge"},{"name":"ward-patient-clinical-forms-workspace","component":"patientClinicalFormsWorkspace","title":"clinicalForms","type":"ward-patient-clinical-forms","width":"wider"},{"name":"cancel-admission-request-workspace","component":"cancelAdmissionRequestWorkspace","title":"cancelAdmissionRequest","type":"cancel-admission-request"}],"workspaceGroups":[{"name":"ward-patient","members":["ward-patient-workspace","ward-patient-notes-workspace","patient-transfer-swap-workspace","patient-discharge-workspace","ward-patient-clinical-forms-workspace","add-drug-order","order-basket","add-lab-order"]},{"name":"ward-patient-admission-requests","members":["admission-requests-workspace","create-admission-encounter-workspace"]}],"version":"8.5.3-pre.87"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kenyaemr/esm-ward-app",
3
- "version": "8.5.3-pre.82",
3
+ "version": "8.5.3-pre.87",
4
4
  "description": "Ward and bed management module for O3",
5
5
  "browser": "dist/kenyaemr-esm-ward-app.js",
6
6
  "main": "src/index.ts",
@@ -400,11 +400,6 @@ export const configSchema: ConfigSchema = {
400
400
  hideExpression: 'ageInDays < 28',
401
401
  tags: [],
402
402
  },
403
- {
404
- label: 'Partograph Form',
405
- uuid: '3791e5b7-2cdc-44fc-982b-a81135367c96',
406
- tags: [{ uuid: '7680b7ee-6880-450c-8b7e-2a748b6f9dc7', tag: 'Labour & Delivery Ward' }],
407
- },
408
403
  {
409
404
  uuid: '87379b0a-738b-4799-9736-cdac614cee2a',
410
405
  label: 'Doctors Note',
@@ -6,7 +6,7 @@ import { useIpdDischargeEncounter } from './useIpdDischargeEncounter';
6
6
  import { useWardPatientGrouping } from './useWardPatientGrouping';
7
7
 
8
8
  export const useWardsSummaryMetrics = () => {
9
- const rep = 'custom:(tags:(uuid,display),totalBeds,occupiedBeds,bedLayouts:(patients:(uuid,display)))';
9
+ const rep = 'custom:(ward:(tags:(uuid,display)),totalBeds,occupiedBeds,bedLayouts:(patients:(uuid,display)))';
10
10
 
11
11
  const apiUrl = `${restBaseUrl}/admissionLocation?v=${rep}`;
12
12
  const { data = [], isLoading, error } = useOpenmrsFetchAll<AdmissionLocationFetchResponse>(apiUrl);
@@ -17,6 +17,7 @@ import { useTranslation } from 'react-i18next';
17
17
  import { Add } from '@carbon/react/icons';
18
18
  import type { WardConfigObject } from '../config-schema';
19
19
  import { useAdmissionRequest } from './in-patient.resource';
20
+ import useCurrentPatientAdmissionEncounter from '../hooks/useCurrentPatientAdmissionEncounter';
20
21
 
21
22
  type AdmissionRequestProps = {
22
23
  patientUuid: string;
@@ -28,6 +29,8 @@ const AdmissionRequest: React.FC<AdmissionRequestProps> = ({ patientUuid }) => {
28
29
  const controlSize = isDesktop(layout) ? 'sm' : 'md';
29
30
  const { admissionRequestFormUuid } = useConfig<WardConfigObject>();
30
31
  const { admissionRequest, isLoading, error, mutate } = useAdmissionRequest(patientUuid);
32
+ const { isPatientAdmitted } = useCurrentPatientAdmissionEncounter(patientUuid);
33
+
31
34
  const rows = useMemo(() => {
32
35
  return admissionRequest.map((admissionRequest) => ({
33
36
  id: admissionRequest.patient.uuid,
@@ -73,7 +76,7 @@ const AdmissionRequest: React.FC<AdmissionRequestProps> = ({ patientUuid }) => {
73
76
  <EmptyState
74
77
  displayText={t('admissionRequests', 'admission requests')}
75
78
  headerTitle={t('admissionRequest', 'Admission Request')}
76
- launchForm={handleLaunchAdmissionRequestForm}
79
+ launchForm={isPatientAdmitted ? undefined : handleLaunchAdmissionRequestForm}
77
80
  />
78
81
  );
79
82
  }
@@ -81,9 +84,7 @@ const AdmissionRequest: React.FC<AdmissionRequestProps> = ({ patientUuid }) => {
81
84
  return (
82
85
  <div>
83
86
  <CardHeader title={t('admissionRequest', 'Admission Request')}>
84
- <Button renderIcon={Add} onClick={handleLaunchAdmissionRequestForm} kind="ghost">
85
- {t('add', 'Add')}
86
- </Button>
87
+ <></>
87
88
  </CardHeader>
88
89
  <DataTable size={controlSize} rows={rows} headers={headers}>
89
90
  {({ rows, headers, getTableProps, getHeaderProps, getRowProps, getCellProps }) => (
@@ -309,45 +309,6 @@ describe('AdmissionRequest', () => {
309
309
  expect(screen.getAllByText('ADMIT')).toHaveLength(2);
310
310
  });
311
311
 
312
- it('should render Add button in header when data is available', () => {
313
- mockUseAdmissionRequest.mockReturnValue({
314
- admissionRequest: mockAdmissionRequestData,
315
- isLoading: false,
316
- error: undefined,
317
- mutate: mockMutate,
318
- });
319
-
320
- render(<AdmissionRequest patientUuid={patientUuid} />);
321
-
322
- const addButton = screen.getByRole('button', { name: /Add/i });
323
- expect(addButton).toBeInTheDocument();
324
- });
325
-
326
- it('should launch admission request form when clicking Add button', async () => {
327
- const user = userEvent.setup();
328
-
329
- mockUseAdmissionRequest.mockReturnValue({
330
- admissionRequest: mockAdmissionRequestData,
331
- isLoading: false,
332
- error: undefined,
333
- mutate: mockMutate,
334
- });
335
-
336
- render(<AdmissionRequest patientUuid={patientUuid} />);
337
-
338
- const addButton = screen.getByRole('button', { name: /Add/i });
339
- await user.click(addButton);
340
-
341
- expect(mockLaunchWorkspace).toHaveBeenCalledWith('patient-form-entry-workspace', {
342
- workspaceTitle: 'Admission Request',
343
- mutateForm: mockMutate,
344
- formInfo: {
345
- formUuid: 'test-admission-form-uuid',
346
- encounterUuid: '',
347
- },
348
- });
349
- });
350
-
351
312
  test('should format dates correctly in the table', () => {
352
313
  mockUseAdmissionRequest.mockReturnValue({
353
314
  admissionRequest: mockAdmissionRequestData,