@pih/esm-commons-app 2.1.1-pre.151 → 2.1.1-pre.154

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.
Files changed (55) hide show
  1. package/.turbo/turbo-build.log +2 -2
  2. package/dist/117.js +1 -1
  3. package/dist/117.js.map +1 -1
  4. package/dist/163.js +1 -1
  5. package/dist/347.js +1 -0
  6. package/dist/347.js.map +1 -0
  7. package/dist/378.js +1 -1
  8. package/dist/378.js.map +1 -1
  9. package/dist/{614.js → 395.js} +10 -10
  10. package/dist/395.js.map +1 -0
  11. package/dist/499.js +1 -0
  12. package/dist/499.js.map +1 -0
  13. package/dist/508.js +1 -1
  14. package/dist/508.js.map +1 -1
  15. package/dist/646.js +1 -1
  16. package/dist/664.js +1 -0
  17. package/dist/664.js.map +1 -0
  18. package/dist/701.js +1 -1
  19. package/dist/743.js +1 -0
  20. package/dist/743.js.map +1 -0
  21. package/dist/846.js +11 -0
  22. package/dist/846.js.map +1 -0
  23. package/dist/855.js +1 -1
  24. package/dist/867.js +1 -1
  25. package/dist/912.js +1 -1
  26. package/dist/912.js.map +1 -1
  27. package/dist/913.js +1 -1
  28. package/dist/959.js +1 -0
  29. package/dist/959.js.map +1 -0
  30. package/dist/main.js +2 -2
  31. package/dist/main.js.map +1 -1
  32. package/dist/pih-esm-commons-app.js +2 -2
  33. package/dist/pih-esm-commons-app.js.buildmanifest.json +164 -89
  34. package/dist/pih-esm-commons-app.js.map +1 -1
  35. package/dist/routes.json +1 -1
  36. package/package.json +1 -1
  37. package/src/dispensing/prescription-label-print-action.extension.test.tsx +47 -0
  38. package/src/dispensing/prescription-label-print-action.extension.tsx +45 -0
  39. package/src/dispensing/prescription-label-print.modal.test.tsx +125 -0
  40. package/src/dispensing/prescription-label-print.modal.tsx +139 -0
  41. package/src/dispensing/prescription-label-print.types.ts +16 -0
  42. package/src/dispensing/zebra-label-print-action.extension.tsx +8 -8
  43. package/src/dispensing/zebra-label-print.resource.ts +30 -9
  44. package/src/index.ts +10 -0
  45. package/src/routes.json +11 -0
  46. package/translations/en.json +8 -0
  47. package/translations/es.json +9 -1
  48. package/translations/fr.json +9 -1
  49. package/dist/324.js +0 -1
  50. package/dist/324.js.map +0 -1
  51. package/dist/614.js.map +0 -1
  52. package/dist/82.js +0 -11
  53. package/dist/82.js.map +0 -1
  54. package/dist/88.js +0 -1
  55. package/dist/88.js.map +0 -1
@@ -1,16 +1,37 @@
1
1
  import { openmrsFetch, restBaseUrl } from '@openmrs/esm-framework';
2
2
  import { getDefaultZebraDevice } from './zebra-pdf-print';
3
3
 
4
- export async function printDispenseLabelToZebra(
5
- dispenseUuid: string,
6
- reportDefinitionUuid: string,
7
- reportDesignUuid: string,
8
- printMethod: 'pdf-direct' | 'browser-print' = 'pdf-direct',
4
+ export interface PrintDispenseLabelsOptions {
5
+ /** Medication dispenses to print a label for; one page is printed per dispense. */
6
+ dispenseUuids: Array<string>;
7
+ /** Also print the summary label for the outer bag. */
8
+ printBagLabel?: boolean;
9
+ /** Prescription encounter, used by the report to build the bag label. */
10
+ encounterUuid?: string;
11
+ reportDefinitionUuid: string;
12
+ reportDesignUuid: string;
13
+ printMethod?: 'pdf-direct' | 'browser-print';
14
+ browserPrintFeatureKey?: string;
15
+ }
16
+
17
+ export async function printDispenseLabelsToZebra({
18
+ dispenseUuids,
19
+ printBagLabel = false,
20
+ encounterUuid,
21
+ reportDefinitionUuid,
22
+ reportDesignUuid,
23
+ printMethod = 'pdf-direct',
9
24
  browserPrintFeatureKey = '',
10
- ): Promise<void> {
11
- const url =
12
- `${restBaseUrl}/reportingrest/runReport/${reportDefinitionUuid}/${reportDesignUuid}` +
13
- `?medicationDispenseUuid=${encodeURIComponent(dispenseUuid)}`;
25
+ }: PrintDispenseLabelsOptions): Promise<void> {
26
+ // The reporting REST endpoint only reads single-valued parameters, so the list is sent comma-separated.
27
+ const params = new URLSearchParams({
28
+ medicationDispenseUuids: dispenseUuids.join(','),
29
+ printBagLabel: String(printBagLabel),
30
+ });
31
+ if (encounterUuid) {
32
+ params.set('encounterUuid', encounterUuid);
33
+ }
34
+ const url = `${restBaseUrl}/reportingrest/runReport/${reportDefinitionUuid}/${reportDesignUuid}?${params.toString()}`;
14
35
 
15
36
  const [response, device] = await Promise.all([openmrsFetch(url, { method: 'POST' }), getDefaultZebraDevice()]);
16
37
 
package/src/index.ts CHANGED
@@ -52,6 +52,16 @@ export const zebraLabelPrintAction = getAsyncLifecycle(
52
52
  { featureName: 'zebraLabelPrintAction', moduleName },
53
53
  );
54
54
 
55
+ export const prescriptionLabelPrintAction = getAsyncLifecycle(
56
+ () => import('./dispensing/prescription-label-print-action.extension'),
57
+ { featureName: 'prescriptionLabelPrintAction', moduleName },
58
+ );
59
+
60
+ export const prescriptionLabelPrintModal = getAsyncLifecycle(
61
+ () => import('./dispensing/prescription-label-print.modal'),
62
+ { featureName: 'prescriptionLabelPrintModal', moduleName },
63
+ );
64
+
55
65
  export const inbornOutbornTag = getAsyncLifecycle(() => import('./ward-app/inborn-outborn-tag-row.extension'), {
56
66
  featureName: 'inbornOutbornTag',
57
67
  moduleName,
package/src/routes.json CHANGED
@@ -34,12 +34,23 @@
34
34
  "component": "zebraLabelPrintAction",
35
35
  "slot": "medication-dispense-action-slot"
36
36
  },
37
+ {
38
+ "name": "prescription-label-print-action",
39
+ "component": "prescriptionLabelPrintAction",
40
+ "slot": "prescription-actions-footer-slot"
41
+ },
37
42
  {
38
43
  "name": "inborn-outborn-tag",
39
44
  "component": "inbornOutbornTag",
40
45
  "slot": "maternal-ward-patient-card-header-slot"
41
46
  }
42
47
  ],
48
+ "modals": [
49
+ {
50
+ "name": "prescription-label-print-modal",
51
+ "component": "prescriptionLabelPrintModal"
52
+ }
53
+ ],
43
54
  "workspaces2": [
44
55
  {
45
56
  "name": "o2-visit-summary-workspace",
@@ -1,5 +1,7 @@
1
1
  {
2
2
  "back": "Back",
3
+ "bagLabel": "Bag label",
4
+ "cancel": "Cancel",
3
5
  "delete": "Delete",
4
6
  "edit": "Edit",
5
7
  "errorLoadingPatientForm": "Error loading patient form",
@@ -8,15 +10,21 @@
8
10
  "fullPregnancyDashboard": "Full Pregnancy Dashboard",
9
11
  "inborn": "Inborn",
10
12
  "labelSentToPrinter": "Label sent to printer",
13
+ "labelsSentToPrinter": "Labels sent to printer",
11
14
  "maternalTriageForm": "Maternal triage form",
15
+ "notDispensed": "Not dispensed",
12
16
  "outborn": "Outborn",
13
17
  "patientDischarged": "Patient discharged",
14
18
  "patientDischargedMessage": "{{patientName}} has been discharged from the ward.",
15
19
  "patientHasNoActiveVisit": "Patient has no active visit",
20
+ "print": "Print",
16
21
  "printing": "Printing…",
17
22
  "printLabel": "Print label",
18
23
  "printLabelFailed": "Print label failed",
24
+ "printLabels": "Print labels",
25
+ "printLabelsFailed": "Print labels failed",
19
26
  "removePatient": "Remove patient",
27
+ "selectLabelsToPrint": "Select the labels you want to print",
20
28
  "success": "Success",
21
29
  "transition": "Transition",
22
30
  "triage": "Triage",
@@ -1,9 +1,17 @@
1
1
  {
2
+ "bagLabel": "Etiqueta de bolsa",
3
+ "cancel": "Cancelar",
2
4
  "labelSentToPrinter": "Etiqueta enviada a la impresora",
5
+ "labelsSentToPrinter": "Etiquetas enviadas a la impresora",
6
+ "notDispensed": "No dispensado",
3
7
  "patientVisitSummary": "Patient visit summary",
8
+ "print": "Imprimir",
9
+ "printing": "Imprimiendo…",
4
10
  "printLabel": "Imprimir etiqueta",
5
11
  "printLabelFailed": "Error al imprimir la etiqueta",
6
- "printing": "Imprimiendo…",
12
+ "printLabels": "Imprimir etiquetas",
13
+ "printLabelsFailed": "Error al imprimir las etiquetas",
14
+ "selectLabelsToPrint": "Seleccione las etiquetas que desea imprimir",
7
15
  "success": "Éxito",
8
16
  "unknownError": "Se produjo un error desconocido",
9
17
  "visitSummary": "Resumen de la visita"
@@ -1,9 +1,17 @@
1
1
  {
2
+ "bagLabel": "Étiquette de sac",
3
+ "cancel": "Annuler",
2
4
  "labelSentToPrinter": "Étiquette envoyée à l'imprimante",
5
+ "labelsSentToPrinter": "Étiquettes envoyées à l'imprimante",
6
+ "notDispensed": "Non délivré",
3
7
  "patientVisitSummary": "Patient visit summary",
8
+ "print": "Imprimer",
9
+ "printing": "Impression en cours…",
4
10
  "printLabel": "Imprimer l'étiquette",
5
11
  "printLabelFailed": "Échec de l'impression de l'étiquette",
6
- "printing": "Impression en cours…",
12
+ "printLabels": "Imprimer les étiquettes",
13
+ "printLabelsFailed": "Échec de l'impression des étiquettes",
14
+ "selectLabelsToPrint": "Sélectionnez les étiquettes à imprimer",
7
15
  "success": "Succès",
8
16
  "unknownError": "Une erreur inconnue s'est produite",
9
17
  "visitSummary": "Résumé de la visite"
package/dist/324.js DELETED
@@ -1 +0,0 @@
1
- "use strict";(globalThis.webpackChunk_pih_esm_commons_app=globalThis.webpackChunk_pih_esm_commons_app||[]).push([["324"],{9247(e,t,r){r.r(t),r.d(t,{default:()=>g});var n=r(9485),o=r.n(n),a=r(1764),i=r(5795),u=r(761),l=r(4683);function c(e,t,r,n,o,a,i){try{var u=e[a](i),l=u.value}catch(e){r(e);return}u.done?t(l):Promise.resolve(l).then(n,o)}function s(e){return function(){var t=this,r=arguments;return new Promise(function(n,o){var a=e.apply(t,r);function i(e){c(a,n,o,i,u,"next",e)}function u(e){c(a,n,o,i,u,"throw",e)}i(void 0)})}}function f(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function p(e,t){var r,n,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),u=Object.defineProperty;return u(i,"next",{value:l(0)}),u(i,"throw",{value:l(1)}),u(i,"return",{value:l(2)}),"function"==typeof Symbol&&u(i,Symbol.iterator,{value:function(){return this}}),i;function l(u){return function(l){var c=[u,l];if(r)throw TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(r=1,n&&(o=2&c[0]?n.return:c[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,c[1])).done)return o;switch(n=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,n=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],n=0}finally{r=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}var h="u">typeof location&&"https:"===location.protocol?"https://127.0.0.1:9101":"http://127.0.0.1:9100";function b(e,t,r){return s(function(){var n,o,a;return p(this,function(i){switch(i.label){case 0:return n={method:e},void 0!==r&&("string"==typeof r&&(n.headers={"Content-Type":"text/plain;charset=UTF-8"}),n.body=r),[4,fetch(h+t,n)];case 1:return[4,(o=i.sent()).text()];case 2:if(a=i.sent(),!o.ok)throw Error("Zebra helper ".concat(e," ").concat(t," → ").concat(o.status,": ").concat(a));return[2,a]}})})()}var d=function(){var e;function t(e){if(!(this instanceof t))throw TypeError("Cannot call a class as a function");f(this,"_json",void 0),f(this,"_queue",Promise.resolve()),this._json=e}return e=[{key:"_enqueue",value:function(e){var t=this._queue.then(function(){return e()},function(){return e()});return this._queue=t.catch(function(){}),t}},{key:"sendFile",value:function(e){var t=this;return this._enqueue(function(){var r=new FormData;return r.append("json",JSON.stringify({device:t._json})),r.append("blob",e),b("POST","/write",r)})}},{key:"convertAndSendFile",value:function(e,t){var r=this;return this._enqueue(function(){var n=function(e){for(var t=1;t<arguments.length;t++){var r=null!=arguments[t]?arguments[t]:{},n=Object.keys(r);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(r).filter(function(e){return Object.getOwnPropertyDescriptor(r,e).enumerable}))),n.forEach(function(t){f(e,t,r[t])})}return e}({action:"print"},t);if(!n.fromFormat&&e.type){var o=e.type.toLowerCase();(o.startsWith("image/")||o.startsWith("application/"))&&(n.fromFormat=o.replace("image/","").replace("application/","").replace("x-ms-",""))}var a=new FormData;return a.append("json",JSON.stringify({options:n,device:r._json})),a.append("blob",e),b("POST","/convert",a)})}}],function(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}(t.prototype,e),t}();function y(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}function v(e,t,r,n,o,a,i){try{var u=e[a](i),l=u.value}catch(e){r(e);return}u.done?t(l):Promise.resolve(l).then(n,o)}function m(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var r,n,o=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=o){var a=[],i=!0,u=!1;try{for(o=o.call(e);!(i=(r=o.next()).done)&&(a.push(r.value),!t||a.length!==t);i=!0);}catch(e){u=!0,n=e}finally{try{i||null==o.return||o.return()}finally{if(u)throw n}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return y(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if("Object"===r&&e.constructor&&(r=e.constructor.name),"Map"===r||"Set"===r)return Array.from(r);if("Arguments"===r||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return y(e,t)}}(e,t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function w(e,t){(null==t||t>e.length)&&(t=e.length);for(var r=0,n=Array(t);r<t;r++)n[r]=e[r];return n}let g=function(e){var t,r=e.medicationDispense,c=(0,u.useTranslation)().t,f=(0,l.useConfig)().dispensing.medicationDispenseLabel,h=function(e){if(Array.isArray(e))return e}(t=(0,n.useState)(!1))||function(e){var t,r,n=null==e?null:"u">typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var o=[],a=!0,i=!1;try{for(n=n.call(e);!(a=(t=n.next()).done)&&(o.push(t.value),2!==o.length);a=!0);}catch(e){i=!0,r=e}finally{try{a||null==n.return||n.return()}finally{if(i)throw r}}return o}}(t)||function(e){if(e){if("string"==typeof e)return w(e,2);var t=Object.prototype.toString.call(e).slice(8,-1);if("Object"===t&&e.constructor&&(t=e.constructor.name),"Map"===t||"Set"===t)return Array.from(t);if("Arguments"===t||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t))return w(e,2)}}(t)||function(){throw TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),y=h[0],g=h[1];return f.enabled&&(null==r?void 0:r.status)==="completed"&&(null==r?void 0:r.id)?o().createElement(a.$nd,{kind:"ghost",size:"sm",renderIcon:i.xj,disabled:y,onClick:function(){g(!0),(function(e,t,r){var n,o=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"pdf-direct",a=arguments.length>4&&void 0!==arguments[4]?arguments[4]:"";return(n=function(){var n,i,u,c,f,h;return function(e,t){var r,n,o,a={label:0,sent:function(){if(1&o[0])throw o[1];return o[1]},trys:[],ops:[]},i=Object.create(("function"==typeof Iterator?Iterator:Object).prototype),u=Object.defineProperty;return u(i,"next",{value:l(0)}),u(i,"throw",{value:l(1)}),u(i,"return",{value:l(2)}),"function"==typeof Symbol&&u(i,Symbol.iterator,{value:function(){return this}}),i;function l(u){return function(l){var c=[u,l];if(r)throw TypeError("Generator is already executing.");for(;i&&(i=0,c[0]&&(a=0)),a;)try{if(r=1,n&&(o=2&c[0]?n.return:c[0]?n.throw||((o=n.return)&&o.call(n),0):n.next)&&!(o=o.call(n,c[1])).done)return o;switch(n=0,o&&(c=[2&c[0],o.value]),c[0]){case 0:case 1:o=c;break;case 4:return a.label++,{value:c[1],done:!1};case 5:a.label++,n=c[1],c=[0];continue;case 7:c=a.ops.pop(),a.trys.pop();continue;default:if(!(o=(o=a.trys).length>0&&o[o.length-1])&&(6===c[0]||2===c[0])){a=0;continue}if(3===c[0]&&(!o||c[1]>o[0]&&c[1]<o[3])){a.label=c[1];break}if(6===c[0]&&a.label<o[1]){a.label=o[1],o=c;break}if(o&&a.label<o[2]){a.label=o[2],a.ops.push(c);break}o[2]&&a.ops.pop(),a.trys.pop();continue}c=t.call(e,a)}catch(e){c=[6,e],n=0}finally{r=o=0}if(5&c[0])throw c[1];return{value:c[0]?c[1]:void 0,done:!0}}}}(this,function(y){switch(y.label){case 0:return n="".concat(l.restBaseUrl,"/reportingrest/runReport/").concat(t,"/").concat(r)+"?medicationDispenseUuid=".concat(encodeURIComponent(e)),[4,Promise.all([(0,l.openmrsFetch)(n,{method:"POST"}),s(function(){var e;return p(this,function(t){switch(t.label){case 0:return t.trys.push([0,2,,3]),[4,b("GET","/default?type=printer")];case 1:if(!(e=t.sent()))return[2,null];return[2,new d(JSON.parse(e))];case 2:return t.sent(),[2,null];case 3:return[2]}})})()])];case 1:return u=(i=m.apply(void 0,[y.sent(),2]))[0],c=i[1],[4,u.blob()];case 2:if(f=y.sent(),!c)return[3,9];y.label=3;case 3:if(y.trys.push([3,8,,9]),"pdf-direct"!==o)return[3,5];return[4,c.sendFile(f)];case 4:return y.sent(),[3,7];case 5:return h=a?{keys:{pdf:a}}:void 0,[4,c.convertAndSendFile(f,h)];case 6:y.sent(),y.label=7;case 7:return[2];case 8:return y.sent(),[3,9];case 9:var v,w,g;return v=f,w=URL.createObjectURL(v),(g=document.createElement("iframe")).style.cssText="position:fixed;width:0;height:0;opacity:0;pointer-events:none;",g.src=w,document.body.appendChild(g),g.onload=function(){var e;null==(e=g.contentWindow)||e.print(),setTimeout(function(){document.body.removeChild(g),URL.revokeObjectURL(w)},6e4)},[2]}})},function(){var e=this,t=arguments;return new Promise(function(r,o){var a=n.apply(e,t);function i(e){v(a,r,o,i,u,"next",e)}function u(e){v(a,r,o,i,u,"throw",e)}i(void 0)})})()})(r.id,f.reportDefinitionUuid,f.reportDesignUuid,f.printMethod,f.browserPrintFeatureKey).then(function(){(0,l.showSnackbar)({kind:"success",title:c("success","Success"),subtitle:c("labelSentToPrinter","Label sent to printer")})}).catch(function(e){var t;(0,l.showSnackbar)({kind:"error",title:c("printLabelFailed","Print label failed"),subtitle:null!=(t=null==e?void 0:e.message)?t:c("unknownError","An unknown error occurred")})}).finally(function(){return g(!1)})}},y?c("printing","Printing…"):c("printLabel","Print label")):null}}}]);
package/dist/324.js.map DELETED
@@ -1 +0,0 @@
1
- {"version":3,"file":"324.js","sources":["webpack://@pih/esm-commons-app/./src/dispensing/zebra-pdf-print.ts","webpack://@pih/esm-commons-app/./src/dispensing/zebra-label-print-action.extension.tsx","webpack://@pih/esm-commons-app/./src/dispensing/zebra-label-print.resource.ts"],"names":["HELPER_BASE","location","helperRequest","method","path","body","opts","r","text","undefined","fetch","Error","ZebraDevice","json","Promise","_enqueue","op","next","sendFile","pdfBlob","fd","FormData","JSON","t","convertAndSendFile","options","medicationDispense","useTranslation","config","_useConfig_dispensing","_useState","isPrinting","setIsPrinting","Button","Printer","printDispenseLabelToZebra","dispenseUuid","reportDefinitionUuid","reportDesignUuid","printMethod","browserPrintFeatureKey","url","_ref","response","device","pdf","restBaseUrl","encodeURIComponent","openmrsFetch","blob","iframe","URL","document","_iframe_contentWindow","setTimeout","showSnackbar","err"],"mappings":"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"}