@ampath/esm-dha-workflow-app 4.0.0-claim-workflows.308 → 4.0.0-claim-workflows.309
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/esm-dha-workflow-app.js.buildmanifest.json +3 -3
- package/dist/routes.json +1 -1
- package/package.json +1 -1
- package/src/billing/billing-claims.resource.ts +19 -9
- package/src/billing/dashboard/v3/patient-bill-details/attachments/case-summary/case-summary.tsx +25 -9
- package/src/billing/dashboard/v3/patient-bill-details/attachments/dialysis/dialysis-chart.tsx +10 -4
- package/src/billing/dashboard/v3/patient-bill-details/attachments/general-discharge-summary/general-discharge-summary.tsx +92 -84
- package/src/billing/dashboard/v3/patient-bill-details/attachments/generate-attachments.component.tsx +19 -2
|
@@ -2163,9 +2163,9 @@
|
|
|
2163
2163
|
"entry": false,
|
|
2164
2164
|
"recorded": false,
|
|
2165
2165
|
"reason": "split chunk (cache group: default)",
|
|
2166
|
-
"size":
|
|
2166
|
+
"size": 94655,
|
|
2167
2167
|
"sizes": {
|
|
2168
|
-
"javascript":
|
|
2168
|
+
"javascript": 94655
|
|
2169
2169
|
},
|
|
2170
2170
|
"names": [],
|
|
2171
2171
|
"idHints": [],
|
|
@@ -2179,7 +2179,7 @@
|
|
|
2179
2179
|
"auxiliaryFiles": [
|
|
2180
2180
|
"9428.js.map"
|
|
2181
2181
|
],
|
|
2182
|
-
"hash": "
|
|
2182
|
+
"hash": "5e529218165a535e",
|
|
2183
2183
|
"childrenByOrder": {}
|
|
2184
2184
|
},
|
|
2185
2185
|
{
|
package/dist/routes.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"$schema":"https://json.openmrs.org/routes.schema.json","backendDependencies":{},"pages":[{"component":"root","route":"dha-workflow","online":true,"offline":true}],"extensions":[{"component":"navLinks","name":"side-nav-workflow-links","slot":"dha-workflow-slot","online":true,"offline":true},{"name":"dha-workflow-dashboard-link","component":"dhaWorkflowDashboardLink","slot":"homepage-dashboard-slot","privileges":["O3 View Facility Dashboard"],"meta":{"name":"dashboard","slot":"dha-workflow-dashboard-slot","title":"Dashboard"},"online":true,"offline":true,"order":1},{"component":"dhaWorkflowDashboard","name":"dashboardExt","slot":"dha-workflow-dashboard-slot"},{"name":"registry-dashboard-link","component":"registryDashboardLink","slot":"homepage-dashboard-slot","meta":{"name":"registration","slot":"client-registry-dashboard-slot","title":"Registration"},"online":true,"offline":true,"order":0},{"component":"registryExtension","name":"registry","slot":"client-registry-dashboard-slot","privileges":["O3 View Client Registry Dashboard"]},{"name":"triage-dashboard-link","component":"triageDashboardLink","slot":"homepage-dashboard-slot","privileges":["O3 View Triage Dashboard"],"meta":{"name":"triage","slot":"triage-queue-dashboard-slot","title":"Triage"},"online":true,"offline":false},{"component":"triageQueueExtension","name":"triage","slot":"triage-queue-dashboard-slot","privileges":["O3 View Triage Dashboard"]},{"name":"consultation-dashboard-link","component":"consultationDashboardLink","slot":"homepage-dashboard-slot","privileges":["O3 View Consultation Dashboard"],"meta":{"name":"consultation","slot":"consultation-dashboard-slot","title":"Consultation"},"online":true,"offline":false},{"component":"consultationQueue","name":"consultation","slot":"consultation-dashboard-slot","privileges":["O3 View Consultation Dashboard"]},{"name":"mnch-dashboard-link","component":"mnchQueueDashboardLink","slot":"homepage-dashboard-slot","privileges":["O3 View MNCH Dashboard"],"meta":{"name":"mnch","slot":"mnch-dashboard-slot","title":"MNCH"},"online":true,"offline":true},{"component":"MNCHRoot","name":"mnch","slot":"mnch-dashboard-slot","privileges":["O3 View MNCH Dashboard"]},{"name":"specialized-clinics-dashboard-link","component":"specializedClinicsDashboardLink","slot":"homepage-dashboard-slot","privileges":[],"meta":{"name":"specialized-clinics","slot":"specialized-clinics-dashboard-slot","title":"Specialized Clinics"},"online":true,"offline":true},{"component":"SpecializedClinicsRoot","name":"specialized-clinics","slot":"specialized-clinics-dashboard-slot","privileges":[]},{"name":"pharmacy-dashboard-link","component":"pharmacyDashboardLink","slot":"homepage-dashboard-slot","privileges":["O3 View Pharmacy Dashboard"],"meta":{"name":"dispensing","slot":"dispensing-dashboard-slot","title":"Pharmacy"},"online":true,"offline":true},{"name":"bookings-dashboard-link","component":"bookingsDashboardLink","slot":"homepage-dashboard-slot","privileges":["O3 View Bookings Dashboard"],"meta":{"name":"bookings","slot":"bookings-dashboard-slot","title":"Bookings"},"online":true,"offline":true},{"component":"bookings","name":"bookings","slot":"bookings-dashboard-slot","privileges":["O3 View Bookings Dashboard"]},{"name":"service-queue-admin-dashboard-link","component":"serviceQueuesAdminLink","privileges":["O3 View Service Queue Admin Panel"],"slot":"app-menu-slot","meta":{"name":"service-queue-admin","slot":"service-queue-admin-dashboard-slot","title":"Service Queue Admin"},"online":true,"offline":true},{"component":"serviceQueueAdmin","name":"service-queue-admin","slot":"service-queue-admin-dashboard-slot","privileges":["O3 View Service Queue Admin Panel"]},{"name":"admissions-dashboard-link","component":"admissionsDashboardLink","slot":"homepage-dashboard-slot","privileges":["O3 View Admissions Dashboard"],"meta":{"name":"admissions-dashboard","slot":"admissions-dashboard-slot","title":"Admissions Dashboard"},"online":true,"offline":true},{"component":"admissionsDashboard","name":"admissions-dashboard","slot":"admissions-dashboard-slot","privileges":["O3 View Admissions Dashboard"]},{"component":"serviceQueueBannerComponent","name":"service-queue-banne","slot":"patient-banner-tags-slot"},{"name":"admissions-summary-dashboard","slot":"patient-chart-dashboard-slot","component":"patientChartAdmissionsLink","meta":{"slot":"patient-chart-admissions-summary-dashboard-slot","path":"Admissions","layoutMode":"anchored"},"online":true,"offline":true},{"name":"admission-details","slot":"patient-chart-admissions-summary-dashboard-slot","component":"patientAdmissionSummary","order":1,"meta":{"title":"Admissions","view":"admissions"},"online":true,"offline":true},{"name":"case-summary-dashboard","slot":"patient-chart-dashboard-slot","component":"caseSummaryLink","meta":{"slot":"patient-chart-case-summary-dashboard-slot","path":"case-summary","layoutMode":"anchored"},"online":true,"offline":true},{"name":"case-summary-details","slot":"patient-chart-case-summary-dashboard-slot","component":"caseSummary","order":1,"meta":{"title":"Visit Case Summary","view":"case-summary"},"online":true,"offline":true},{"name":"ampath-billing-dashboard-link","component":"billingDashboardLink","slot":"homepage-dashboard-slot","privileges":["O3 View Accounting Dashboard"],"meta":{"name":"billing","slot":"ampath-billing-dashboard-slot","title":"Accounting"},"online":true,"offline":true},{"component":"billingRoot","name":"billing","slot":"ampath-billing-dashboard-slot","privileges":["O3 View Accounting Dashboard"]},{"name":"ampath-billing-checkin-form","slot":"extra-visit-attribute-slot","component":"visitBillingForm"},{"name":"claims","slot":"billing-claims-slot","component":"claims"},{"name":"generate-order-bill-button-slot","slot":"generate-order-bill-button-slot","component":"generateOrderBillButton"}],"workspaces":[{"name":"create-order-bill-form-workspace","component":"createOrderBillFormWorkspace","title":"Create order Bill","type":"other-form"},{"name":"upload-intervention-attachments-workspace","title":"Upload Attachments","component":"uploadInterventionAttachmentsWorkspace","type":"upload-intervention-attachments","canHide":true,"canMaximize":true,"width":"narrow"},{"name":"generate-intervention-attachments-workspace","title":"GenerateAttachments","component":"generateInterventionAttachmentsWorkspace","type":"generate-intervention-attachments","canHide":true,"canMaximize":true,"width":"narrow"},{"name":"bill-item-payment-workspace","title":"Bill item payment","component":"billItemPaymentWorkspace","type":"bill-item-payment","canHide":true,"width":"narrow"},{"name":"add-claim-line-workspace","title":"Add claim line","component":"addClaimLineWorkspace","type":"add-claim-line","canHide":true,"width":"narrow"},{"name":"switch-intervention-workspace","title":"Switch Intervention","component":"switchInterventionWorkspace","type":"switch-intervention","canHide":true,"canMaximize":true,"width":"narrow"},{"name":"preauth-form-workspace","title":"Raise Preauth","component":"preauthFormWorkspace","type":"preauth-form","canHide":true,"canMaximize":true,"width":"wider"},{"name":"pay-cash-workspace","title":"Pay Cash","component":"payCashWorkspace","type":"workspace","canHide":true,"canMaximize":true,"width":"narrow"},{"name":"record-details-workspace","title":"Details","component":"recordDetailsWorkspace","type":"record-details","canHide":true,"canMaximize":true,"width":"wider"},{"name":"send-to-queue-workspace","title":"Initiate SHA claim","component":"sendToQueueWorkspace","type":"send-to-queue","canHide":true,"canMaximize":true,"width":"wider"}],"workspaces2":[{"name":"admissions-form-entry","component":"formEntryWorkspace","window":"admissions-form-window"}],"workspaceWindows2":[{"name":"admissions-form-window","group":"admissions-form-group","canMaximize":true,"width":"extra-wide"}],"workspaceGroups2":[{"name":"admissions-form-group","scopePattern":"/admissions-clinical-forms","persistence":"closable","overlay":false}],"modals":[{"name":"sign-off-queue-entry-modal","component":"signOffModal"}],"version":"4.0.0-claim-workflows.
|
|
1
|
+
{"$schema":"https://json.openmrs.org/routes.schema.json","backendDependencies":{},"pages":[{"component":"root","route":"dha-workflow","online":true,"offline":true}],"extensions":[{"component":"navLinks","name":"side-nav-workflow-links","slot":"dha-workflow-slot","online":true,"offline":true},{"name":"dha-workflow-dashboard-link","component":"dhaWorkflowDashboardLink","slot":"homepage-dashboard-slot","privileges":["O3 View Facility Dashboard"],"meta":{"name":"dashboard","slot":"dha-workflow-dashboard-slot","title":"Dashboard"},"online":true,"offline":true,"order":1},{"component":"dhaWorkflowDashboard","name":"dashboardExt","slot":"dha-workflow-dashboard-slot"},{"name":"registry-dashboard-link","component":"registryDashboardLink","slot":"homepage-dashboard-slot","meta":{"name":"registration","slot":"client-registry-dashboard-slot","title":"Registration"},"online":true,"offline":true,"order":0},{"component":"registryExtension","name":"registry","slot":"client-registry-dashboard-slot","privileges":["O3 View Client Registry Dashboard"]},{"name":"triage-dashboard-link","component":"triageDashboardLink","slot":"homepage-dashboard-slot","privileges":["O3 View Triage Dashboard"],"meta":{"name":"triage","slot":"triage-queue-dashboard-slot","title":"Triage"},"online":true,"offline":false},{"component":"triageQueueExtension","name":"triage","slot":"triage-queue-dashboard-slot","privileges":["O3 View Triage Dashboard"]},{"name":"consultation-dashboard-link","component":"consultationDashboardLink","slot":"homepage-dashboard-slot","privileges":["O3 View Consultation Dashboard"],"meta":{"name":"consultation","slot":"consultation-dashboard-slot","title":"Consultation"},"online":true,"offline":false},{"component":"consultationQueue","name":"consultation","slot":"consultation-dashboard-slot","privileges":["O3 View Consultation Dashboard"]},{"name":"mnch-dashboard-link","component":"mnchQueueDashboardLink","slot":"homepage-dashboard-slot","privileges":["O3 View MNCH Dashboard"],"meta":{"name":"mnch","slot":"mnch-dashboard-slot","title":"MNCH"},"online":true,"offline":true},{"component":"MNCHRoot","name":"mnch","slot":"mnch-dashboard-slot","privileges":["O3 View MNCH Dashboard"]},{"name":"specialized-clinics-dashboard-link","component":"specializedClinicsDashboardLink","slot":"homepage-dashboard-slot","privileges":[],"meta":{"name":"specialized-clinics","slot":"specialized-clinics-dashboard-slot","title":"Specialized Clinics"},"online":true,"offline":true},{"component":"SpecializedClinicsRoot","name":"specialized-clinics","slot":"specialized-clinics-dashboard-slot","privileges":[]},{"name":"pharmacy-dashboard-link","component":"pharmacyDashboardLink","slot":"homepage-dashboard-slot","privileges":["O3 View Pharmacy Dashboard"],"meta":{"name":"dispensing","slot":"dispensing-dashboard-slot","title":"Pharmacy"},"online":true,"offline":true},{"name":"bookings-dashboard-link","component":"bookingsDashboardLink","slot":"homepage-dashboard-slot","privileges":["O3 View Bookings Dashboard"],"meta":{"name":"bookings","slot":"bookings-dashboard-slot","title":"Bookings"},"online":true,"offline":true},{"component":"bookings","name":"bookings","slot":"bookings-dashboard-slot","privileges":["O3 View Bookings Dashboard"]},{"name":"service-queue-admin-dashboard-link","component":"serviceQueuesAdminLink","privileges":["O3 View Service Queue Admin Panel"],"slot":"app-menu-slot","meta":{"name":"service-queue-admin","slot":"service-queue-admin-dashboard-slot","title":"Service Queue Admin"},"online":true,"offline":true},{"component":"serviceQueueAdmin","name":"service-queue-admin","slot":"service-queue-admin-dashboard-slot","privileges":["O3 View Service Queue Admin Panel"]},{"name":"admissions-dashboard-link","component":"admissionsDashboardLink","slot":"homepage-dashboard-slot","privileges":["O3 View Admissions Dashboard"],"meta":{"name":"admissions-dashboard","slot":"admissions-dashboard-slot","title":"Admissions Dashboard"},"online":true,"offline":true},{"component":"admissionsDashboard","name":"admissions-dashboard","slot":"admissions-dashboard-slot","privileges":["O3 View Admissions Dashboard"]},{"component":"serviceQueueBannerComponent","name":"service-queue-banne","slot":"patient-banner-tags-slot"},{"name":"admissions-summary-dashboard","slot":"patient-chart-dashboard-slot","component":"patientChartAdmissionsLink","meta":{"slot":"patient-chart-admissions-summary-dashboard-slot","path":"Admissions","layoutMode":"anchored"},"online":true,"offline":true},{"name":"admission-details","slot":"patient-chart-admissions-summary-dashboard-slot","component":"patientAdmissionSummary","order":1,"meta":{"title":"Admissions","view":"admissions"},"online":true,"offline":true},{"name":"case-summary-dashboard","slot":"patient-chart-dashboard-slot","component":"caseSummaryLink","meta":{"slot":"patient-chart-case-summary-dashboard-slot","path":"case-summary","layoutMode":"anchored"},"online":true,"offline":true},{"name":"case-summary-details","slot":"patient-chart-case-summary-dashboard-slot","component":"caseSummary","order":1,"meta":{"title":"Visit Case Summary","view":"case-summary"},"online":true,"offline":true},{"name":"ampath-billing-dashboard-link","component":"billingDashboardLink","slot":"homepage-dashboard-slot","privileges":["O3 View Accounting Dashboard"],"meta":{"name":"billing","slot":"ampath-billing-dashboard-slot","title":"Accounting"},"online":true,"offline":true},{"component":"billingRoot","name":"billing","slot":"ampath-billing-dashboard-slot","privileges":["O3 View Accounting Dashboard"]},{"name":"ampath-billing-checkin-form","slot":"extra-visit-attribute-slot","component":"visitBillingForm"},{"name":"claims","slot":"billing-claims-slot","component":"claims"},{"name":"generate-order-bill-button-slot","slot":"generate-order-bill-button-slot","component":"generateOrderBillButton"}],"workspaces":[{"name":"create-order-bill-form-workspace","component":"createOrderBillFormWorkspace","title":"Create order Bill","type":"other-form"},{"name":"upload-intervention-attachments-workspace","title":"Upload Attachments","component":"uploadInterventionAttachmentsWorkspace","type":"upload-intervention-attachments","canHide":true,"canMaximize":true,"width":"narrow"},{"name":"generate-intervention-attachments-workspace","title":"GenerateAttachments","component":"generateInterventionAttachmentsWorkspace","type":"generate-intervention-attachments","canHide":true,"canMaximize":true,"width":"narrow"},{"name":"bill-item-payment-workspace","title":"Bill item payment","component":"billItemPaymentWorkspace","type":"bill-item-payment","canHide":true,"width":"narrow"},{"name":"add-claim-line-workspace","title":"Add claim line","component":"addClaimLineWorkspace","type":"add-claim-line","canHide":true,"width":"narrow"},{"name":"switch-intervention-workspace","title":"Switch Intervention","component":"switchInterventionWorkspace","type":"switch-intervention","canHide":true,"canMaximize":true,"width":"narrow"},{"name":"preauth-form-workspace","title":"Raise Preauth","component":"preauthFormWorkspace","type":"preauth-form","canHide":true,"canMaximize":true,"width":"wider"},{"name":"pay-cash-workspace","title":"Pay Cash","component":"payCashWorkspace","type":"workspace","canHide":true,"canMaximize":true,"width":"narrow"},{"name":"record-details-workspace","title":"Details","component":"recordDetailsWorkspace","type":"record-details","canHide":true,"canMaximize":true,"width":"wider"},{"name":"send-to-queue-workspace","title":"Initiate SHA claim","component":"sendToQueueWorkspace","type":"send-to-queue","canHide":true,"canMaximize":true,"width":"wider"}],"workspaces2":[{"name":"admissions-form-entry","component":"formEntryWorkspace","window":"admissions-form-window"}],"workspaceWindows2":[{"name":"admissions-form-window","group":"admissions-form-group","canMaximize":true,"width":"extra-wide"}],"workspaceGroups2":[{"name":"admissions-form-group","scopePattern":"/admissions-clinical-forms","persistence":"closable","overlay":false}],"modals":[{"name":"sign-off-queue-entry-modal","component":"signOffModal"}],"version":"4.0.0-claim-workflows.309"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ampath/esm-dha-workflow-app",
|
|
3
|
-
"version": "4.0.0-claim-workflows.
|
|
3
|
+
"version": "4.0.0-claim-workflows.309",
|
|
4
4
|
"license": "MPL-2.0",
|
|
5
5
|
"description": "An OpenMRS seed application for building microfrontends",
|
|
6
6
|
"browser": "dist/esm-dha-workflow-app.js",
|
|
@@ -824,14 +824,24 @@ export async function fetchFacilityBedOccupancy(locationUuid: string): Promise<B
|
|
|
824
824
|
return data;
|
|
825
825
|
}
|
|
826
826
|
|
|
827
|
-
export async function fetchCaseSummary(
|
|
827
|
+
export async function fetchCaseSummary(
|
|
828
|
+
locationUuid: string,
|
|
829
|
+
patientUuid: string = '124233ca-3b45-48cf-b396-8a25912bb1d3',
|
|
830
|
+
): Promise<VisitSummaryResponse> {
|
|
828
831
|
const { hieBaseUrl } = await getHieBaseUrl();
|
|
829
|
-
|
|
830
|
-
|
|
831
|
-
|
|
832
|
-
|
|
833
|
-
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
832
|
+
try {
|
|
833
|
+
const url =
|
|
834
|
+
`${hieBaseUrl}/hie/case-summary` +
|
|
835
|
+
`?patientUuid=${encodeURIComponent(patientUuid)}` +
|
|
836
|
+
`&locationUuid=${encodeURIComponent(locationUuid)}`;
|
|
837
|
+
|
|
838
|
+
const response = await openmrsFetch(url);
|
|
839
|
+
const data = await response.json();
|
|
840
|
+
console.log('CASE SUMMARY RESPONSE DATA: ', data);
|
|
841
|
+
return data ?? null;
|
|
842
|
+
} catch (err) {
|
|
843
|
+
console.error(err);
|
|
844
|
+
|
|
845
|
+
throw new Error(err instanceof Error ? err.message : 'Unknown error occurred');
|
|
846
|
+
}
|
|
837
847
|
}
|
package/src/billing/dashboard/v3/patient-bill-details/attachments/case-summary/case-summary.tsx
CHANGED
|
@@ -1,5 +1,7 @@
|
|
|
1
|
-
import React, { useState } from 'react';
|
|
1
|
+
import React, { forwardRef, useState } from 'react';
|
|
2
2
|
import styles from './case-summary.scss';
|
|
3
|
+
import { fetchCaseSummary } from '../../../../../billing-claims.resource';
|
|
4
|
+
import { useSession } from '@openmrs/esm-framework';
|
|
3
5
|
|
|
4
6
|
const DEMO_PATIENT = {
|
|
5
7
|
facility: 'Sample County Government',
|
|
@@ -121,14 +123,28 @@ function SectionBlock({ number, title, children }) {
|
|
|
121
123
|
);
|
|
122
124
|
}
|
|
123
125
|
|
|
124
|
-
|
|
125
|
-
|
|
126
|
+
interface CaseSummaryProps {
|
|
127
|
+
patient?: typeof DEMO_PATIENT;
|
|
128
|
+
}
|
|
126
129
|
|
|
127
|
-
|
|
130
|
+
const CaseSummary = forwardRef<HTMLDivElement, CaseSummaryProps>(({ patient = DEMO_PATIENT }, ref) => {
|
|
128
131
|
const p = patient;
|
|
132
|
+
const session = useSession();
|
|
133
|
+
const locationUuid = session?.sessionLocation?.uuid;
|
|
134
|
+
|
|
135
|
+
const [caseSummary, setCasesummary] = useState();
|
|
136
|
+
|
|
137
|
+
const getCaseSummary = async () => {
|
|
138
|
+
try {
|
|
139
|
+
const res = await fetchCaseSummary(locationUuid!, '');
|
|
140
|
+
console.log('RESULTS ONE: ', res);
|
|
141
|
+
} catch (err) {
|
|
142
|
+
console.log(err);
|
|
143
|
+
}
|
|
144
|
+
};
|
|
129
145
|
|
|
130
146
|
return (
|
|
131
|
-
<div className={styles['cs-root']}>
|
|
147
|
+
<div className={styles['cs-root']} ref={ref}>
|
|
132
148
|
<div className={styles['cs-shell']}>
|
|
133
149
|
<header className={styles['cs-header']}>
|
|
134
150
|
<div className={styles['cs-header-bar']} />
|
|
@@ -146,9 +162,7 @@ const CaseSummary = ({ patient = DEMO_PATIENT }) => {
|
|
|
146
162
|
<div className={styles['cs-identity']}>
|
|
147
163
|
<div className={styles['cs-field']}>
|
|
148
164
|
<div className={styles['cs-field-label']}>Patient Name</div>
|
|
149
|
-
<div className={styles['cs-field-value']} cs-name-value>
|
|
150
|
-
{p.patientName}
|
|
151
|
-
</div>
|
|
165
|
+
<div className={`${styles['cs-field-value']} ${styles['cs-name-value']}`}>{p.patientName}</div>
|
|
152
166
|
</div>
|
|
153
167
|
<Field label="DOB" value={p.dob} />
|
|
154
168
|
<Field label="Age / Gender" value={`${p.age}y · ${p.gender}`} />
|
|
@@ -303,6 +317,8 @@ const CaseSummary = ({ patient = DEMO_PATIENT }) => {
|
|
|
303
317
|
</div>
|
|
304
318
|
</div>
|
|
305
319
|
);
|
|
306
|
-
};
|
|
320
|
+
});
|
|
321
|
+
|
|
322
|
+
CaseSummary.displayName = 'CaseSummary';
|
|
307
323
|
|
|
308
324
|
export default CaseSummary;
|
package/src/billing/dashboard/v3/patient-bill-details/attachments/dialysis/dialysis-chart.tsx
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { forwardRef } from 'react';
|
|
2
2
|
import styles from './dialysis-chart.scss';
|
|
3
3
|
|
|
4
4
|
const DEMO_SESSION = {
|
|
@@ -118,11 +118,15 @@ function SectionBlock({ number, title, children }) {
|
|
|
118
118
|
);
|
|
119
119
|
}
|
|
120
120
|
|
|
121
|
-
|
|
121
|
+
interface DialysisChartProps {
|
|
122
|
+
session?: typeof DEMO_SESSION;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
const DialysisChart = forwardRef<HTMLDivElement, DialysisChartProps>(({ session = DEMO_SESSION }, ref) => {
|
|
122
126
|
const s = session;
|
|
123
127
|
|
|
124
128
|
return (
|
|
125
|
-
<div className={styles['dc-root']}>
|
|
129
|
+
<div className={styles['dc-root']} ref={ref}>
|
|
126
130
|
<div className={styles['dc-shell']}>
|
|
127
131
|
<header className={styles['dc-header']}>
|
|
128
132
|
<div className={styles['dc-header-bar']} />
|
|
@@ -260,6 +264,8 @@ const DialysisChart: React.FC<{ session?: typeof DEMO_SESSION }> = ({ session =
|
|
|
260
264
|
</div>
|
|
261
265
|
</div>
|
|
262
266
|
);
|
|
263
|
-
};
|
|
267
|
+
});
|
|
268
|
+
|
|
269
|
+
DialysisChart.displayName = 'DialysisChart';
|
|
264
270
|
|
|
265
271
|
export default DialysisChart;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import React from 'react';
|
|
1
|
+
import React, { forwardRef } from 'react';
|
|
2
2
|
import styles from './general-discharge-summary.scss';
|
|
3
3
|
|
|
4
4
|
const DEMO_SUMMARY = {
|
|
@@ -74,97 +74,105 @@ function SectionBlock({ number, title, children }) {
|
|
|
74
74
|
);
|
|
75
75
|
}
|
|
76
76
|
|
|
77
|
-
|
|
78
|
-
|
|
77
|
+
interface GeneralDischargeSummaryProps {
|
|
78
|
+
summary?: typeof DEMO_SUMMARY;
|
|
79
|
+
}
|
|
79
80
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
<header className={styles['ds-header']}>
|
|
84
|
-
<div className={styles['ds-header-bar']} />
|
|
85
|
-
<div className={styles['ds-header-info']}>
|
|
86
|
-
<p className={styles['ds-org']}>{s.facility}</p>
|
|
87
|
-
<h1 className={styles['ds-title']}>Discharge Summary</h1>
|
|
88
|
-
</div>
|
|
89
|
-
<div className={styles['ds-meta-right']}>
|
|
90
|
-
Printed by {s.printedBy}
|
|
91
|
-
<br />
|
|
92
|
-
{s.printedAt}
|
|
93
|
-
</div>
|
|
94
|
-
</header>
|
|
81
|
+
const GeneralDischargeSummary = forwardRef<HTMLDivElement, GeneralDischargeSummaryProps>(
|
|
82
|
+
({ summary = DEMO_SUMMARY }, ref) => {
|
|
83
|
+
const s = summary;
|
|
95
84
|
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
<
|
|
101
|
-
<
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
<
|
|
106
|
-
|
|
107
|
-
|
|
85
|
+
return (
|
|
86
|
+
<div className={styles['ds-root']} ref={ref}>
|
|
87
|
+
<div className={styles['ds-shell']}>
|
|
88
|
+
<header className={styles['ds-header']}>
|
|
89
|
+
<div className={styles['ds-header-bar']} />
|
|
90
|
+
<div className={styles['ds-header-info']}>
|
|
91
|
+
<p className={styles['ds-org']}>{s.facility}</p>
|
|
92
|
+
<h1 className={styles['ds-title']}>Discharge Summary</h1>
|
|
93
|
+
</div>
|
|
94
|
+
<div className={styles['ds-meta-right']}>
|
|
95
|
+
Printed by {s.printedBy}
|
|
96
|
+
<br />
|
|
97
|
+
{s.printedAt}
|
|
98
|
+
</div>
|
|
99
|
+
</header>
|
|
108
100
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
101
|
+
<SectionBlock number="1" title="Patient Information">
|
|
102
|
+
<div className={styles['ds-field-grid']}>
|
|
103
|
+
<Field label="Patient Name" value={s.patient.name} />
|
|
104
|
+
<Field label="Patient ID" value={s.patient.patientId} />
|
|
105
|
+
<Field label="Date of Birth" value={s.patient.dob} />
|
|
106
|
+
<Field label="Gender" value={s.patient.gender} />
|
|
107
|
+
<Field label="National ID" value={s.patient.nationalId} />
|
|
108
|
+
<Field label="Hospital No" value={s.patient.hospitalNo} />
|
|
109
|
+
<Field label="Insurance No" value={s.patient.insuranceNo} />
|
|
110
|
+
<Field label="Mobile" value={s.patient.mobile} />
|
|
111
|
+
</div>
|
|
112
|
+
</SectionBlock>
|
|
120
113
|
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
131
|
-
</
|
|
132
|
-
</SectionBlock>
|
|
114
|
+
<SectionBlock number="2" title="Admission Details">
|
|
115
|
+
<div className={styles['ds-field-grid']}>
|
|
116
|
+
<Field label="Admission Date" value={s.admission.admissionDate} />
|
|
117
|
+
<Field label="Discharge Date" value={s.admission.dischargeDate} />
|
|
118
|
+
<Field label="Status" value={s.admission.status} />
|
|
119
|
+
<Field label="Primary Doctor" value={s.admission.primaryDoctor} />
|
|
120
|
+
<Field label="Ward / Bed" value={s.admission.ward} />
|
|
121
|
+
<Field label="Admission Diagnosis" value={s.admission.admissionDiagnosis} />
|
|
122
|
+
<Field label="Inpatient Record" value={s.admission.inpatientRecord} />
|
|
123
|
+
</div>
|
|
124
|
+
</SectionBlock>
|
|
133
125
|
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
<
|
|
138
|
-
|
|
139
|
-
|
|
140
|
-
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
126
|
+
<SectionBlock number="3" title="Medical Data">
|
|
127
|
+
<div className={styles['ds-field-grid']}>
|
|
128
|
+
<Field label="Discharge Diagnosis" value={s.clinical.dischargeDiagnosis} />
|
|
129
|
+
<Field label="Other Conditions" value={s.clinical.otherConditions} />
|
|
130
|
+
<Field label="Clinical Findings" value={s.clinical.findings} />
|
|
131
|
+
<Field label="Treatment" value={s.clinical.treatment} />
|
|
132
|
+
<Field label="Operations / Procedures" value={s.clinical.operations} />
|
|
133
|
+
<Field label="Laboratory Findings" value={s.clinical.labFindings} />
|
|
134
|
+
<Field label="Imaging Findings" value={s.clinical.imagingFindings} />
|
|
135
|
+
<Field label="Referrals / Other Instructions" value={s.clinical.referrals} />
|
|
136
|
+
</div>
|
|
137
|
+
</SectionBlock>
|
|
138
|
+
|
|
139
|
+
<SectionBlock number="4" title="Medications Prescribed During Admission">
|
|
140
|
+
<table className={styles['ds-table']}>
|
|
141
|
+
<thead>
|
|
142
|
+
<tr>
|
|
143
|
+
<th>Drug</th>
|
|
144
|
+
<th>Dose</th>
|
|
145
|
+
<th>Period</th>
|
|
146
|
+
<th>Notes</th>
|
|
151
147
|
</tr>
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
148
|
+
</thead>
|
|
149
|
+
<tbody>
|
|
150
|
+
{s.medications.map((m, i) => (
|
|
151
|
+
<tr key={i}>
|
|
152
|
+
<td className={styles['ds-drug-name']}>{m.drug}</td>
|
|
153
|
+
<td>{m.dose}</td>
|
|
154
|
+
<td>{m.period}</td>
|
|
155
|
+
<td className={styles['ds-drug-notes']}>{m.notes}</td>
|
|
156
|
+
</tr>
|
|
157
|
+
))}
|
|
158
|
+
</tbody>
|
|
159
|
+
</table>
|
|
160
|
+
</SectionBlock>
|
|
156
161
|
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
162
|
+
<SectionBlock number="5" title="Post-Discharge Instructions">
|
|
163
|
+
<div className={styles['ds-outcome']}>
|
|
164
|
+
Patient discharged in <strong>{s.outcome.condition}</strong>.
|
|
165
|
+
</div>
|
|
166
|
+
<Field label="Attending Doctor" value={s.outcome.attendingDoctor} />
|
|
167
|
+
</SectionBlock>
|
|
163
168
|
|
|
164
|
-
|
|
169
|
+
<div className={styles['ds-footer']}>Confidential — For authorized clinical use only</div>
|
|
170
|
+
</div>
|
|
165
171
|
</div>
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
172
|
+
);
|
|
173
|
+
},
|
|
174
|
+
);
|
|
175
|
+
|
|
176
|
+
GeneralDischargeSummary.displayName = 'GeneralDischargeSummary';
|
|
169
177
|
|
|
170
178
|
export default GeneralDischargeSummary;
|
package/src/billing/dashboard/v3/patient-bill-details/attachments/generate-attachments.component.tsx
CHANGED
|
@@ -14,6 +14,9 @@ import jsPDF from 'jspdf';
|
|
|
14
14
|
import html2canvas from 'html2canvas';
|
|
15
15
|
import { sendClaimAttachment } from '../../../../../registry/hie.resource';
|
|
16
16
|
import FinalBillComponent from './final-bill.component';
|
|
17
|
+
import CaseSummary from './case-summary/case-summary';
|
|
18
|
+
import DialysisChart from './dialysis/dialysis-chart';
|
|
19
|
+
import GeneralDischargeSummary from './general-discharge-summary/general-discharge-summary';
|
|
17
20
|
|
|
18
21
|
interface GenerateAttachmentsProps extends DefaultWorkspaceProps {
|
|
19
22
|
claimInterventions: VisitIntervention;
|
|
@@ -50,6 +53,7 @@ const GenerateAttachments: React.FC<GenerateAttachmentsProps> = ({
|
|
|
50
53
|
const finalBillRef = useRef<HTMLDivElement>(null);
|
|
51
54
|
const dialysisRef = useRef<HTMLDivElement>(null);
|
|
52
55
|
const caseSummaryRef = useRef<HTMLDivElement>(null);
|
|
56
|
+
const generalDischargeSummary = useRef<HTMLDivElement>(null);
|
|
53
57
|
|
|
54
58
|
if (!claimInterventions) return null;
|
|
55
59
|
|
|
@@ -149,7 +153,7 @@ const GenerateAttachments: React.FC<GenerateAttachmentsProps> = ({
|
|
|
149
153
|
|
|
150
154
|
switch (document.name) {
|
|
151
155
|
case 'INVOICE':
|
|
152
|
-
element =
|
|
156
|
+
element = caseSummaryRef.current;
|
|
153
157
|
break;
|
|
154
158
|
|
|
155
159
|
case 'FINAL_BILL':
|
|
@@ -157,7 +161,17 @@ const GenerateAttachments: React.FC<GenerateAttachmentsProps> = ({
|
|
|
157
161
|
break;
|
|
158
162
|
|
|
159
163
|
case 'DISCHARGE_SUMMARY':
|
|
160
|
-
element =
|
|
164
|
+
element = generalDischargeSummary.current;
|
|
165
|
+
break;
|
|
166
|
+
|
|
167
|
+
case 'CASE_SUMMARY':
|
|
168
|
+
element = caseSummaryRef.current;
|
|
169
|
+
break;
|
|
170
|
+
case 'DIALYSIS_CHART':
|
|
171
|
+
element = dialysisRef.current;
|
|
172
|
+
break;
|
|
173
|
+
case 'GENERAL_DISCHARGE_SUMMARY':
|
|
174
|
+
element = generalDischargeSummary.current;
|
|
161
175
|
break;
|
|
162
176
|
|
|
163
177
|
default:
|
|
@@ -307,6 +321,9 @@ const GenerateAttachments: React.FC<GenerateAttachmentsProps> = ({
|
|
|
307
321
|
<DischargeSummaryComponent ref={dischargeRef} claimIntervention={claimInterventions} bill={bill} />
|
|
308
322
|
|
|
309
323
|
<FinalBillComponent ref={finalBillRef} bill={bill} />
|
|
324
|
+
<CaseSummary ref={caseSummaryRef} />
|
|
325
|
+
<DialysisChart ref={dialysisRef} />
|
|
326
|
+
<GeneralDischargeSummary ref={generalDischargeSummary} />
|
|
310
327
|
</div>
|
|
311
328
|
</>
|
|
312
329
|
);
|