@kenyaemr/esm-adr-app 5.4.2-pre.2904 → 5.4.2-pre.2906

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":{"kenyaemr":"^19.0.0"},"pages":[{"component":"adrAssessmentApp","route":"adr-assessment"}],"workspaces":[{"name":"patient-adr-workspace","title":"ADR Assessment Review","component":"patientAdrWorkspace","type":"workspace","canMaximize":true,"canHide":true,"width":"extra-wide"}],"extensions":[{"name":"adr-assessment-side-nav","slot":"adr-assessment-side-nav-slot","component":"adrAssessmentSideNav"},{"name":"adr-assessment-search-dashboard-db-link","slot":"adr-assessment-page-dashboard-slot","component":"overviewDashboardLink","meta":{"name":"adr-assessment-overview","title":"Overview","slot":"adr-assessment-overview-dashboard-slot"}},{"name":"adr-assessment-summary","component":"adrAssessmentSummary","slot":"adr-assessment-overview-dashboard-slot"}],"modals":[{"name":"adr-print-preview-modal","component":"adrPrintPreviewModal"}],"version":"5.4.2-pre.2904"}
1
+ {"$schema":"https://json.openmrs.org/routes.schema.json","backendDependencies":{"kenyaemr":"^19.0.0"},"pages":[{"component":"adrAssessmentApp","route":"adr-assessment"}],"workspaces":[{"name":"patient-adr-workspace","title":"ADR Assessment Review","component":"patientAdrWorkspace","type":"workspace","canMaximize":true,"canHide":true,"width":"extra-wide"}],"extensions":[{"name":"adr-assessment-side-nav","slot":"adr-assessment-side-nav-slot","component":"adrAssessmentSideNav"},{"name":"adr-assessment-search-dashboard-db-link","slot":"adr-assessment-page-dashboard-slot","component":"overviewDashboardLink","meta":{"name":"adr-assessment-overview","title":"Overview","slot":"adr-assessment-overview-dashboard-slot"}},{"name":"adr-assessment-summary","component":"adrAssessmentSummary","slot":"adr-assessment-overview-dashboard-slot"}],"modals":[{"name":"adr-print-preview-modal","component":"adrPrintPreviewModal"},{"name":"adr-email-modal","component":"adrEmailModal"}],"version":"5.4.2-pre.2906"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kenyaemr/esm-adr-app",
3
- "version": "5.4.2-pre.2904",
3
+ "version": "5.4.2-pre.2906",
4
4
  "description": "ADR App for KenyaEMR",
5
5
  "keywords": [
6
6
  "openmrs"
@@ -29,7 +29,7 @@ import {
29
29
  } from '@openmrs/esm-framework';
30
30
  import { EmptyState } from '@openmrs/esm-patient-common-lib';
31
31
  import { MappedAdrEncounter } from '../../types';
32
- import { Printer, TaskView } from '@carbon/react/icons';
32
+ import { Email, Printer, TaskView } from '@carbon/react/icons';
33
33
  type adrEncounterProps = {
34
34
  encounters: Array<MappedAdrEncounter>;
35
35
  };
@@ -59,6 +59,16 @@ const AdrEncounter: React.FC<adrEncounterProps> = ({ encounters }) => {
59
59
  const handler = (encounter) => {
60
60
  launchWorkspace('patient-adr-workspace', { encounter: encounter });
61
61
  };
62
+ const handleSendEmail = (encounter) => {
63
+ const dispose = showModal('adr-email-modal', {
64
+ onClose: () => dispose(),
65
+ encounter,
66
+ onEmailSent: () => {
67
+ // checkEmailStatus();
68
+ dispose();
69
+ },
70
+ });
71
+ };
62
72
 
63
73
  const tableRows = sortedEncounters.map((encounter) => ({
64
74
  encounterDatetime: encounter?.encounterDatetime
@@ -87,6 +97,14 @@ const AdrEncounter: React.FC<adrEncounterProps> = ({ encounters }) => {
87
97
  renderIcon={Printer}>
88
98
  {t('printReport', 'Print Report')}
89
99
  </Button>
100
+ <Button
101
+ kind="ghost"
102
+ size="sm"
103
+ onClick={() => handleSendEmail(encounter)}
104
+ renderIcon={Email}
105
+ title={t('sendEmail', 'Send Email')}>
106
+ {t('sendEmail', 'Send Email')}
107
+ </Button>
90
108
  </>
91
109
  ),
92
110
  }));
@@ -0,0 +1,156 @@
1
+ import React, { useState } from 'react';
2
+ import {
3
+ ComposedModal,
4
+ ModalHeader,
5
+ ModalBody,
6
+ ModalFooter,
7
+ TextInput,
8
+ InlineNotification,
9
+ Loading,
10
+ Stack,
11
+ Button,
12
+ } from '@carbon/react';
13
+ import { useTranslation } from 'react-i18next';
14
+ import { showToast, restBaseUrl } from '@openmrs/esm-framework';
15
+ import styles from './print-preview.scss';
16
+
17
+ interface EmailModalProps {
18
+ encounter: {
19
+ patientUuid: string;
20
+ encounterUuid: string;
21
+ patientName: string;
22
+ };
23
+ onEmailSent: () => void;
24
+ onClose: () => void;
25
+ }
26
+
27
+ const ADREmailModal: React.FC<EmailModalProps> = ({ encounter, onEmailSent, onClose }) => {
28
+ const { t } = useTranslation();
29
+ const [email, setEmail] = useState('');
30
+ const [isSending, setIsSending] = useState(false);
31
+ const [error, setError] = useState<string | null>(null);
32
+ const [emailError, setEmailError] = useState('');
33
+
34
+ const validateEmail = (email: string): boolean => {
35
+ const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;
36
+ return emailRegex.test(email);
37
+ };
38
+
39
+ const handleEmailChange = (e: React.ChangeEvent<HTMLInputElement>) => {
40
+ const value = e.target.value;
41
+ setEmail(value);
42
+
43
+ if (value && !validateEmail(value)) {
44
+ setEmailError(t('invalidEmail', 'Please enter a valid email address'));
45
+ } else {
46
+ setEmailError('');
47
+ }
48
+ };
49
+
50
+ const handleSendEmail = async () => {
51
+ if (!email || !validateEmail(email)) {
52
+ setEmailError(t('invalidEmail', 'Please enter a valid email address'));
53
+ return;
54
+ }
55
+
56
+ setIsSending(true);
57
+ setError(null);
58
+
59
+ try {
60
+ const response = await fetch(`/openmrs/ws/rest/v1/kenyaemr/adpdf/send-email`, {
61
+ method: 'POST',
62
+ headers: {
63
+ 'Content-Type': 'application/json',
64
+ Authorization: `Bearer ${sessionStorage.getItem('token')}`,
65
+ },
66
+ body: JSON.stringify({
67
+ patientUuid: encounter.patientUuid,
68
+ encounterUuid: encounter.encounterUuid,
69
+ patientName: encounter.patientName,
70
+ recipientEmail: email,
71
+ }),
72
+ });
73
+
74
+ const data = await response.json();
75
+
76
+ if (!response.ok) {
77
+ if (response.status === 409) {
78
+ setError(
79
+ t('reportAlreadySent', 'This report has already been sent. Each report can only be sent once per patient.'),
80
+ );
81
+ } else {
82
+ setError(data.error || t('sendEmailError', 'Failed to send email'));
83
+ }
84
+ return;
85
+ }
86
+
87
+ showToast({
88
+ title: t('emailSentSuccessfully', 'Email Sent Successfully'),
89
+ description: t('reportSentTo', `ADR report has been sent to ${email}`),
90
+ kind: 'success',
91
+ critical: false,
92
+ });
93
+
94
+ onEmailSent();
95
+ } catch (err) {
96
+ console.error('Error sending email:', err);
97
+ setError(t('networkError', 'Network error occurred. Please check your connection and try again.'));
98
+ } finally {
99
+ setIsSending(false);
100
+ }
101
+ };
102
+
103
+ return (
104
+ <div>
105
+ <ModalHeader
106
+ title={t('sendADRReport', 'Send ADR Report via Email')}
107
+ label={encounter.patientName}
108
+ closeModal={onClose}
109
+ />
110
+
111
+ <ModalBody>
112
+ <Stack gap={6}>
113
+ {error && (
114
+ <InlineNotification kind="error" title={t('error', 'Error')} subtitle={error} lowContrast hideCloseButton />
115
+ )}
116
+
117
+ <TextInput
118
+ id="recipient-email"
119
+ labelText={t('recipientEmail', 'Recipient Email Address')}
120
+ placeholder="example@hospital.org"
121
+ value={email}
122
+ onChange={handleEmailChange}
123
+ invalid={!!emailError}
124
+ invalidText={emailError}
125
+ disabled={isSending}
126
+ required
127
+ />
128
+
129
+ <InlineNotification
130
+ kind="info"
131
+ title={t('importantNote', 'Important Note')}
132
+ subtitle={t(
133
+ 'oneTimeEmail',
134
+ 'This report can only be sent once per patient. Please ensure the email address is correct before sending.',
135
+ )}
136
+ lowContrast
137
+ hideCloseButton
138
+ />
139
+
140
+ {isSending && <Loading description={t('sendingEmail', 'Sending email...')} withOverlay={false} />}
141
+ </Stack>
142
+ </ModalBody>
143
+
144
+ <ModalFooter>
145
+ <Button kind="secondary" onClick={onClose} disabled={isSending}>
146
+ {t('cancel', 'Cancel')}
147
+ </Button>
148
+ <Button kind="primary" onClick={handleSendEmail} disabled={isSending || !email || !!emailError}>
149
+ {t('sendEmail', 'Send Email')}
150
+ </Button>
151
+ </ModalFooter>
152
+ </div>
153
+ );
154
+ };
155
+
156
+ export default ADREmailModal;
package/src/index.ts CHANGED
@@ -5,6 +5,7 @@ import { createDashboardLink } from '@openmrs/esm-patient-common-lib';
5
5
  import SideMenu from './components/side-menu/side-menu.component';
6
6
  import Summary from './components/summary/summary.component';
7
7
  import AdrPrintPreviewModal from './components/print-preview/print-preview.modal';
8
+ import ADREmailModal from './components/print-preview/email.modal';
8
9
 
9
10
  const moduleName = '@kenyaemr/esm-adr-app';
10
11
 
@@ -21,6 +22,7 @@ export const adrAssessmentSummary = getSyncLifecycle(Summary, options);
21
22
  export const patientAdrWorkspace = getAsyncLifecycle(() => import('./components/patient-adr.workspace'), options);
22
23
  // Print Preview Components
23
24
  export const adrPrintPreviewModal = getSyncLifecycle(AdrPrintPreviewModal, options);
25
+ export const adrEmailModal = getSyncLifecycle(ADREmailModal, options);
24
26
 
25
27
  // Dashboard link for the search page
26
28
  export const overviewDashboardLink = getSyncLifecycle(
package/src/routes.json CHANGED
@@ -48,6 +48,10 @@
48
48
  {
49
49
  "name": "adr-print-preview-modal",
50
50
  "component": "adrPrintPreviewModal"
51
+ },
52
+ {
53
+ "name": "adr-email-modal",
54
+ "component": "adrEmailModal"
51
55
  }
52
56
  ]
53
57
  }
package/dist/736.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"736.js","sources":["webpack://@kenyaemr/esm-adr-app/./src/components/dashboard/dashboard-view.scss","webpack://@kenyaemr/esm-adr-app/./src/components/dashboard/home-dashboard.scss","webpack://@kenyaemr/esm-adr-app/./src/components/encounters/encounter.scss","webpack://@kenyaemr/esm-adr-app/./src/components/print-preview/print-preview.scss","webpack://@kenyaemr/esm-adr-app/./src/components/summary/summary.scss","webpack://@kenyaemr/esm-adr-app/./src/config-schema.ts","webpack://@kenyaemr/esm-adr-app/./src/components/dashboard/dashboard-view.scss?8d6c","webpack://@kenyaemr/esm-adr-app/./src/components/dashboard/dashboard-view.component.tsx","webpack://@kenyaemr/esm-adr-app/./src/components/dashboard/home-dashboard.scss?4cbc","webpack://@kenyaemr/esm-adr-app/./src/components/dashboard/home-dashboard.component.tsx","webpack://@kenyaemr/esm-adr-app/./src/components/summary/summary.scss?ab97","webpack://@kenyaemr/esm-adr-app/./src/components/encounters/encounter.scss?30b7","webpack://@kenyaemr/esm-adr-app/./src/components/encounters/adr-encounter.component.tsx","webpack://@kenyaemr/esm-adr-app/./src/components/encounters/encounter.resource.tsx","webpack://@kenyaemr/esm-adr-app/./src/components/print-preview/print-preview.scss?d5b9","webpack://@kenyaemr/esm-adr-app/./src/usePrintPreview.tsx","webpack://@kenyaemr/esm-adr-app/./src/index.ts","webpack://@kenyaemr/esm-adr-app/./src/root.component.tsx","webpack://@kenyaemr/esm-adr-app/./src/components/side-menu/side-menu.component.tsx","webpack://@kenyaemr/esm-adr-app/./src/components/summary/summary.component.tsx","webpack://@kenyaemr/esm-adr-app/./src/components/print-preview/print-preview.modal.tsx","webpack://@kenyaemr/esm-adr-app//home/runner/work/kenyaemr-esm-3.x/kenyaemr-esm-3.x/packages/esm-adr-app/translationslazynonrecursive/.json$/"],"names":["configSchema","dashboardSlot","title","t","useTranslation","PageHeader","className","styles","PageHeaderContent","illustration","AppointmentsPictogram","ExtensionSlot","name","state","dashboardTitle","Dashboard","extensionStore","params","useParams","useExtensionStore","layout","useLayoutType","ungroupedDashboards","slots","assignedExtensions","map","e","meta","filter","Object","keys","length","activeDashboard","dashboards","find","dashboard","div","section","isDesktop","key","DashboardView","slot","WorkspaceContainer","overlay","contextKey","encounters","responsiveSize","useState","pageSize","setPageSize","sortedEncounters","sort","a","b","dateA","Date","encounterDatetime","getTime","dateB","usePagination","paginated","goTo","currentPage","results","ReviewIcon","props","TaskView","handler","encounter","launchWorkspace","tableRows","formatDatetime","parseDate","mode","patientName","visitTypeName","formName","id","encounterUuid","provider","action","Button","kind","renderIcon","onClick","size","dispose","showModal","onClose","documentUrl","restBaseUrl","patientUuid","Printer","EmptyState","displayText","headerTitle","DataTable","rows","headers","header","getHeaderProps","getRowProps","getTableProps","getToolbarProps","onInputChange","getTableContainerProps","TableContainer","description","TableToolbar","aria-label","TableToolbarContent","TableToolbarSearch","persistent","onChange","Table","TableHead","TableRow","TableHeader","TableBody","row","cells","cell","TableCell","value","Pagination","forwardText","backwardText","page","pageSizes","totalItems","newPageSize","newPage","useAdrAssessmentEncounter","fromDate","toDate","data","url","useSWR","openmrsFetch","error","isLoading","fetcher","blob","fetch","res","arrayBuffer","Blob","type","URL","createObjectURL","usePrintPreview","mutate","moduleName","options","featureName","importTranslation","require","adrAssessmentApp","getSyncLifecycle","spaBasePath","window","spaBase","useEffect","setLeftNav","basePath","unsetLeftNav","main","BrowserRouter","basename","Routes","Route","path","element","adrAssessmentSideNav","LeftNavMenu","adrAssessmentSummary","defaultDateRange","dayjs","startOf","endOf","dateRange","setDateRange","format","assessment","counts","setCounts","encounterTypeUuid","DataTableSkeleton","showHeader","showToolbar","zebra","DatePicker","maxDate","datePickerType","start","end","DatePickerInput","placeholder","labelText","h4","h6","p","AdrEncounter","patientAdrWorkspace","getAsyncLifecycle","adrPrintPreviewModal","ModalHeader","closeModal","ModalBody","InlineLoading","status","iconDescription","ErrorState","iframe","src","String","ModalFooter","overviewDashboardLink","createDashboardLink","icon","startupApp","defineConfigSchema","Promise","Error"],"mappings":"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"}