@openmrs/esm-patient-immunizations-app 11.3.1-pre.9294 → 11.3.1-pre.9296
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/.turbo/turbo-build.log +5 -5
- package/dist/3606.js +1 -1
- package/dist/3606.js.map +1 -1
- package/dist/3677.js +1 -1
- package/dist/3677.js.map +1 -1
- package/dist/5858.js +1 -1
- package/dist/5858.js.map +1 -1
- package/dist/main.js +1 -1
- package/dist/main.js.map +1 -1
- package/dist/openmrs-esm-patient-immunizations-app.js +1 -1
- package/dist/openmrs-esm-patient-immunizations-app.js.buildmanifest.json +13 -13
- package/dist/routes.json +1 -1
- package/package.json +2 -2
- package/src/immunizations/immunizations-detailed-summary.component.tsx +10 -5
- package/src/immunizations/immunizations-detailed-summary.test.tsx +24 -3
- package/src/immunizations/immunizations-form.test.tsx +2 -12
- package/src/immunizations/immunizations-form.workspace.tsx +10 -10
|
@@ -1 +1 @@
|
|
|
1
|
-
var _openmrs_esm_patient_immunizations_app;(()=>{"use strict";var e,r,t,n,o,a,i,s,l,u,p,f,d,c,m,h,v,g,b,y,w,_={1674:(e,r,t)=>{var n={"./start":()=>Promise.all([t.e(795),t.e(7575),t.e(1343),t.e(9152),t.e(3677)]).then((()=>()=>t(93677)))},o=(e,r)=>(t.R=r,r=t.o(n,e)?n[e]():Promise.resolve().then((()=>{throw new Error('Module "'+e+'" does not exist in container.')})),t.R=void 0,r),a=(e,r)=>{if(t.S){var n="default",o=t.S[n];if(o&&o!==e)throw new Error("Container initialization failed as it has already been initialized with a different share scope");return t.S[n]=e,t.I(n,r)}};t.d(r,{get:()=>o,init:()=>a})}},P={};function j(e){var r=P[e];if(void 0!==r)return r.exports;var t=P[e]={id:e,exports:{}};return _[e].call(t.exports,t,t.exports,j),t.exports}j.m=_,j.c=P,j.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return j.d(r,{a:r}),r},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,j.t=function(t,n){if(1&n&&(t=this(t)),8&n)return t;if("object"==typeof t&&t){if(4&n&&t.__esModule)return t;if(16&n&&"function"==typeof t.then)return t}var o=Object.create(null);j.r(o);var a={};e=e||[null,r({}),r([]),r(r)];for(var i=2&n&&t;"object"==typeof i&&!~e.indexOf(i);i=r(i))Object.getOwnPropertyNames(i).forEach((e=>a[e]=()=>t[e]));return a.default=()=>t,j.d(o,a),o},j.d=(e,r)=>{for(var t in r)j.o(r,t)&&!j.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},j.f={},j.e=e=>Promise.all(Object.keys(j.f).reduce(((r,t)=>(j.f[t](e,r),r)),[])),j.u=e=>e+".js",j.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),j.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t={},n="@openmrs/esm-patient-immunizations-app:",j.l=(e,r,o,a)=>{if(t[e])t[e].push(r);else{var i,s;if(void 0!==o)for(var l=document.getElementsByTagName("script"),u=0;u<l.length;u++){var p=l[u];if(p.getAttribute("src")==e||p.getAttribute("data-webpack")==n+o){i=p;break}}i||(s=!0,(i=document.createElement("script")).charset="utf-8",i.timeout=120,j.nc&&i.setAttribute("nonce",j.nc),i.setAttribute("data-webpack",n+o),i.src=e),t[e]=[r];var f=(r,n)=>{i.onerror=i.onload=null,clearTimeout(d);var o=t[e];if(delete t[e],i.parentNode&&i.parentNode.removeChild(i),o&&o.forEach((e=>e(n))),r)return r(n)},d=setTimeout(f.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=f.bind(null,i.onerror),i.onload=f.bind(null,i.onload),s&&document.head.appendChild(i)}},j.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{j.S={};var e={},r={};j.I=(t,n)=>{n||(n=[]);var o=r[t];if(o||(o=r[t]={}),!(n.indexOf(o)>=0)){if(n.push(o),e[t])return e[t];j.o(j.S,t)||(j.S[t]={});var a=j.S[t],i="@openmrs/esm-patient-immunizations-app",s=(e,r,t,n)=>{var o=a[e]=a[e]||{},s=o[r];(!s||!s.loaded&&(!n!=!s.eager?n:i>s.from))&&(o[r]={get:t,from:i,eager:!!n})},l=[];return"default"===t&&(s("@openmrs/esm-framework","8.0.1-pre.3485",(()=>Promise.all([j.e(1123),j.e(1268),j.e(795),j.e(5670),j.e(5434),j.e(1343),j.e(7109),j.e(9152)]).then((()=>()=>j(55670))))),s("@openmrs/esm-patient-common-lib","11.3.1-pre.
|
|
1
|
+
var _openmrs_esm_patient_immunizations_app;(()=>{"use strict";var e,r,t,n,o,a,i,s,l,u,p,f,d,c,m,h,v,g,b,y,w,_={1674:(e,r,t)=>{var n={"./start":()=>Promise.all([t.e(795),t.e(7575),t.e(1343),t.e(9152),t.e(3677)]).then((()=>()=>t(93677)))},o=(e,r)=>(t.R=r,r=t.o(n,e)?n[e]():Promise.resolve().then((()=>{throw new Error('Module "'+e+'" does not exist in container.')})),t.R=void 0,r),a=(e,r)=>{if(t.S){var n="default",o=t.S[n];if(o&&o!==e)throw new Error("Container initialization failed as it has already been initialized with a different share scope");return t.S[n]=e,t.I(n,r)}};t.d(r,{get:()=>o,init:()=>a})}},P={};function j(e){var r=P[e];if(void 0!==r)return r.exports;var t=P[e]={id:e,exports:{}};return _[e].call(t.exports,t,t.exports,j),t.exports}j.m=_,j.c=P,j.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return j.d(r,{a:r}),r},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,j.t=function(t,n){if(1&n&&(t=this(t)),8&n)return t;if("object"==typeof t&&t){if(4&n&&t.__esModule)return t;if(16&n&&"function"==typeof t.then)return t}var o=Object.create(null);j.r(o);var a={};e=e||[null,r({}),r([]),r(r)];for(var i=2&n&&t;"object"==typeof i&&!~e.indexOf(i);i=r(i))Object.getOwnPropertyNames(i).forEach((e=>a[e]=()=>t[e]));return a.default=()=>t,j.d(o,a),o},j.d=(e,r)=>{for(var t in r)j.o(r,t)&&!j.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},j.f={},j.e=e=>Promise.all(Object.keys(j.f).reduce(((r,t)=>(j.f[t](e,r),r)),[])),j.u=e=>e+".js",j.g=function(){if("object"==typeof globalThis)return globalThis;try{return this||new Function("return this")()}catch(e){if("object"==typeof window)return window}}(),j.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t={},n="@openmrs/esm-patient-immunizations-app:",j.l=(e,r,o,a)=>{if(t[e])t[e].push(r);else{var i,s;if(void 0!==o)for(var l=document.getElementsByTagName("script"),u=0;u<l.length;u++){var p=l[u];if(p.getAttribute("src")==e||p.getAttribute("data-webpack")==n+o){i=p;break}}i||(s=!0,(i=document.createElement("script")).charset="utf-8",i.timeout=120,j.nc&&i.setAttribute("nonce",j.nc),i.setAttribute("data-webpack",n+o),i.src=e),t[e]=[r];var f=(r,n)=>{i.onerror=i.onload=null,clearTimeout(d);var o=t[e];if(delete t[e],i.parentNode&&i.parentNode.removeChild(i),o&&o.forEach((e=>e(n))),r)return r(n)},d=setTimeout(f.bind(null,void 0,{type:"timeout",target:i}),12e4);i.onerror=f.bind(null,i.onerror),i.onload=f.bind(null,i.onload),s&&document.head.appendChild(i)}},j.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{j.S={};var e={},r={};j.I=(t,n)=>{n||(n=[]);var o=r[t];if(o||(o=r[t]={}),!(n.indexOf(o)>=0)){if(n.push(o),e[t])return e[t];j.o(j.S,t)||(j.S[t]={});var a=j.S[t],i="@openmrs/esm-patient-immunizations-app",s=(e,r,t,n)=>{var o=a[e]=a[e]||{},s=o[r];(!s||!s.loaded&&(!n!=!s.eager?n:i>s.from))&&(o[r]={get:t,from:i,eager:!!n})},l=[];return"default"===t&&(s("@openmrs/esm-framework","8.0.1-pre.3485",(()=>Promise.all([j.e(1123),j.e(1268),j.e(795),j.e(5670),j.e(5434),j.e(1343),j.e(7109),j.e(9152)]).then((()=>()=>j(55670))))),s("@openmrs/esm-patient-common-lib","11.3.1-pre.9296",(()=>Promise.all([j.e(1123),j.e(1268),j.e(795),j.e(5434),j.e(1343),j.e(7109),j.e(9152),j.e(5858),j.e(3833)]).then((()=>()=>j(75858))))),s("dayjs","1.11.13",(()=>j.e(3464).then((()=>()=>j(23464))))),s("react-i18next","16.0.0",(()=>Promise.all([j.e(6336),j.e(1343)]).then((()=>()=>j(16336))))),s("react-router-dom","6.16.0",(()=>Promise.all([j.e(2913),j.e(1343)]).then((()=>()=>j(52913))))),s("react","18.3.1",(()=>j.e(4041).then((()=>()=>j(14041))))),s("rxjs","6.6.7",(()=>j.e(2457).then((()=>()=>j(82457))))),s("swr/_internal","2.2.5",(()=>Promise.all([j.e(2372),j.e(1343)]).then((()=>()=>j(42372))))),s("swr/immutable","2.2.5",(()=>Promise.all([j.e(5434),j.e(1343),j.e(7495)]).then((()=>()=>j(29876))))),s("swr/infinite","2.2.5",(()=>Promise.all([j.e(5434),j.e(1343),j.e(89)]).then((()=>()=>j(52470)))))),e[t]=l.length?Promise.all(l).then((()=>e[t]=1)):1}}})(),(()=>{var e;j.g.importScripts&&(e=j.g.location+"");var r=j.g.document;if(!e&&r&&(r.currentScript&&"SCRIPT"===r.currentScript.tagName.toUpperCase()&&(e=r.currentScript.src),!e)){var t=r.getElementsByTagName("script");if(t.length)for(var n=t.length-1;n>-1&&(!e||!/^http(s?):/.test(e));)e=t[n--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),j.p=e})(),o=e=>{var r=e=>e.split(".").map((e=>+e==e?+e:e)),t=/^([^-+]+)?(?:-([^+]+))?(?:\+(.+))?$/.exec(e),n=t[1]?r(t[1]):[];return t[2]&&(n.length++,n.push.apply(n,r(t[2]))),t[3]&&(n.push([]),n.push.apply(n,r(t[3]))),n},a=(e,r)=>{e=o(e),r=o(r);for(var t=0;;){if(t>=e.length)return t<r.length&&"u"!=(typeof r[t])[0];var n=e[t],a=(typeof n)[0];if(t>=r.length)return"u"==a;var i=r[t],s=(typeof i)[0];if(a!=s)return"o"==a&&"n"==s||"s"==s||"u"==a;if("o"!=a&&"u"!=a&&n!=i)return n<i;t++}},i=e=>{var r=e[0],t="";if(1===e.length)return"*";if(r+.5){t+=0==r?">=":-1==r?"<":1==r?"^":2==r?"~":r>0?"=":"!=";for(var n=1,o=1;o<e.length;o++)n--,t+="u"==(typeof(s=e[o]))[0]?"-":(n>0?".":"")+(n=2,s);return t}var a=[];for(o=1;o<e.length;o++){var s=e[o];a.push(0===s?"not("+l()+")":1===s?"("+l()+" || "+l()+")":2===s?a.pop()+" "+a.pop():i(s))}return l();function l(){return a.pop().replace(/^\((.+)\)$/,"$1")}},s=(e,r)=>{if(0 in e){r=o(r);var t=e[0],n=t<0;n&&(t=-t-1);for(var a=0,i=1,l=!0;;i++,a++){var u,p,f=i<e.length?(typeof e[i])[0]:"";if(a>=r.length||"o"==(p=(typeof(u=r[a]))[0]))return!l||("u"==f?i>t&&!n:""==f!=n);if("u"==p){if(!l||"u"!=f)return!1}else if(l)if(f==p)if(i<=t){if(u!=e[i])return!1}else{if(n?u>e[i]:u<e[i])return!1;u!=e[i]&&(l=!1)}else if("s"!=f&&"n"!=f){if(n||i<=t)return!1;l=!1,i--}else{if(i<=t||p<f!=n)return!1;l=!1}else"s"!=f&&"n"!=f&&(l=!1,i--)}}var d=[],c=d.pop.bind(d);for(a=1;a<e.length;a++){var m=e[a];d.push(1==m?c()|c():2==m?c()&c():m?s(m,r):!c())}return!!c()},l=(e,r)=>e&&j.o(e,r),u=e=>(e.loaded=1,e.get()),p=e=>Object.keys(e).reduce(((r,t)=>(e[t].eager&&(r[t]=e[t]),r)),{}),f=(e,r,t)=>{var n=t?p(e[r]):e[r];return Object.keys(n).reduce(((e,r)=>!e||!n[e].loaded&&a(e,r)?r:e),0)},d=(e,r,t,n)=>"Unsatisfied version "+t+" from "+(t&&e[r][t].from)+" of shared singleton module "+r+" (required "+i(n)+")",c=e=>{throw new Error(e)},m=e=>{"undefined"!=typeof console&&console.warn&&console.warn(e)},h=(e,r,t)=>t?t():((e,r)=>c("Shared module "+r+" doesn't exist in shared scope "+e))(e,r),v=(e=>function(r,t,n,o,a){var i=j.I(r);return i&&i.then&&!n?i.then(e.bind(e,r,j.S[r],t,!1,o,a)):e(r,j.S[r],t,n,o,a)})(((e,r,t,n,o,a)=>{if(!l(r,t))return h(e,t,a);var i=f(r,t,n);return s(o,i)||m(d(r,t,i,o)),u(r[t][i])})),g={},b={55434:()=>v("default","swr/_internal",!1,[1,2],(()=>j.e(2372).then((()=>()=>j(42372))))),1343:()=>v("default","react",!1,[1,18],(()=>j.e(4041).then((()=>()=>j(14041))))),8877:()=>v("default","react-router-dom",!1,[1,6],(()=>j.e(2913).then((()=>()=>j(52913))))),88010:()=>v("default","swr/immutable",!1,[1,2],(()=>j.e(9876).then((()=>()=>j(29876))))),98394:()=>v("default","swr/infinite",!1,[1,2],(()=>j.e(2470).then((()=>()=>j(52470))))),24818:()=>v("default","rxjs",!1,[1,6],(()=>j.e(2457).then((()=>()=>j(82457))))),46372:()=>v("default","dayjs",!1,[1,1],(()=>j.e(3464).then((()=>()=>j(23464))))),54440:()=>v("default","@openmrs/esm-framework",!1,[1,8],(()=>Promise.all([j.e(1123),j.e(1268),j.e(5670),j.e(5434),j.e(7109)]).then((()=>()=>j(55670))))),72339:()=>v("default","react-i18next",!1,[1,16],(()=>j.e(6336).then((()=>()=>j(16336))))),36274:()=>v("default","@openmrs/esm-patient-common-lib",!1,[1,11],(()=>Promise.all([j.e(1123),j.e(1268),j.e(5434),j.e(7109),j.e(5858)]).then((()=>()=>j(75858)))))},y={1343:[1343],3677:[36274],5434:[55434],7109:[8877,88010,98394],9152:[24818,46372,54440,72339]},w={},j.f.consumes=(e,r)=>{j.o(y,e)&&y[e].forEach((e=>{if(j.o(g,e))return r.push(g[e]);if(!w[e]){var t=r=>{g[e]=0,j.m[e]=t=>{delete j.c[e],t.exports=r()}};w[e]=!0;var n=r=>{delete g[e],j.m[e]=t=>{throw delete j.c[e],r}};try{var o=b[e]();o.then?r.push(g[e]=o.then(t).catch(n)):t(o)}catch(e){n(e)}}}))},(()=>{var e={9271:0};j.f.j=(r,t)=>{var n=j.o(e,r)?e[r]:void 0;if(0!==n)if(n)t.push(n[2]);else if(/^(1343|5434|7109|9152)$/.test(r))e[r]=0;else{var o=new Promise(((t,o)=>n=e[r]=[t,o]));t.push(n[2]=o);var a=j.p+j.u(r),i=new Error;j.l(a,(t=>{if(j.o(e,r)&&(0!==(n=e[r])&&(e[r]=void 0),n)){var o=t&&("load"===t.type?"missing":t.type),a=t&&t.target&&t.target.src;i.message="Loading chunk "+r+" failed.\n("+o+": "+a+")",i.name="ChunkLoadError",i.type=o,i.request=a,n[1](i)}}),"chunk-"+r,r)}};var r=(r,t)=>{var n,o,[a,i,s]=t,l=0;if(a.some((r=>0!==e[r]))){for(n in i)j.o(i,n)&&(j.m[n]=i[n]);s&&s(j)}for(r&&r(t);l<a.length;l++)o=a[l],j.o(e,o)&&e[o]&&e[o][0](),e[o]=0},t=globalThis.webpackChunk_openmrs_esm_patient_immunizations_app=globalThis.webpackChunk_openmrs_esm_patient_immunizations_app||[];t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})(),j.nc=void 0;var S=j(1674);_openmrs_esm_patient_immunizations_app=S})();
|
|
@@ -480,9 +480,9 @@
|
|
|
480
480
|
"initial": false,
|
|
481
481
|
"entry": false,
|
|
482
482
|
"recorded": false,
|
|
483
|
-
"size":
|
|
483
|
+
"size": 64175,
|
|
484
484
|
"sizes": {
|
|
485
|
-
"javascript":
|
|
485
|
+
"javascript": 64175
|
|
486
486
|
},
|
|
487
487
|
"names": [],
|
|
488
488
|
"idHints": [],
|
|
@@ -496,7 +496,7 @@
|
|
|
496
496
|
"auxiliaryFiles": [
|
|
497
497
|
"3606.js.map"
|
|
498
498
|
],
|
|
499
|
-
"hash": "
|
|
499
|
+
"hash": "18139b92e95b207a",
|
|
500
500
|
"childrenByOrder": {}
|
|
501
501
|
},
|
|
502
502
|
{
|
|
@@ -504,9 +504,9 @@
|
|
|
504
504
|
"initial": false,
|
|
505
505
|
"entry": false,
|
|
506
506
|
"recorded": false,
|
|
507
|
-
"size":
|
|
507
|
+
"size": 127975,
|
|
508
508
|
"sizes": {
|
|
509
|
-
"javascript":
|
|
509
|
+
"javascript": 127933,
|
|
510
510
|
"consume-shared": 42
|
|
511
511
|
},
|
|
512
512
|
"names": [],
|
|
@@ -520,7 +520,7 @@
|
|
|
520
520
|
"auxiliaryFiles": [
|
|
521
521
|
"3677.js.map"
|
|
522
522
|
],
|
|
523
|
-
"hash": "
|
|
523
|
+
"hash": "7c29070a8ba0f27d",
|
|
524
524
|
"childrenByOrder": {}
|
|
525
525
|
},
|
|
526
526
|
{
|
|
@@ -891,9 +891,9 @@
|
|
|
891
891
|
"entry": false,
|
|
892
892
|
"recorded": false,
|
|
893
893
|
"reason": "reused as split chunk (cache group: default)",
|
|
894
|
-
"size":
|
|
894
|
+
"size": 240706,
|
|
895
895
|
"sizes": {
|
|
896
|
-
"javascript":
|
|
896
|
+
"javascript": 240706
|
|
897
897
|
},
|
|
898
898
|
"names": [],
|
|
899
899
|
"idHints": [],
|
|
@@ -907,7 +907,7 @@
|
|
|
907
907
|
"auxiliaryFiles": [
|
|
908
908
|
"5858.js.map"
|
|
909
909
|
],
|
|
910
|
-
"hash": "
|
|
910
|
+
"hash": "b458ab9be21a8df4",
|
|
911
911
|
"childrenByOrder": {}
|
|
912
912
|
},
|
|
913
913
|
{
|
|
@@ -1282,10 +1282,10 @@
|
|
|
1282
1282
|
"initial": true,
|
|
1283
1283
|
"entry": true,
|
|
1284
1284
|
"recorded": false,
|
|
1285
|
-
"size":
|
|
1285
|
+
"size": 3086840,
|
|
1286
1286
|
"sizes": {
|
|
1287
1287
|
"consume-shared": 252,
|
|
1288
|
-
"javascript":
|
|
1288
|
+
"javascript": 3063293,
|
|
1289
1289
|
"share-init": 420,
|
|
1290
1290
|
"runtime": 22875
|
|
1291
1291
|
},
|
|
@@ -1302,7 +1302,7 @@
|
|
|
1302
1302
|
"auxiliaryFiles": [
|
|
1303
1303
|
"main.js.map"
|
|
1304
1304
|
],
|
|
1305
|
-
"hash": "
|
|
1305
|
+
"hash": "a628d77bd8b8ec1d",
|
|
1306
1306
|
"childrenByOrder": {}
|
|
1307
1307
|
},
|
|
1308
1308
|
{
|
|
@@ -1372,7 +1372,7 @@
|
|
|
1372
1372
|
"auxiliaryFiles": [
|
|
1373
1373
|
"openmrs-esm-patient-immunizations-app.js.map"
|
|
1374
1374
|
],
|
|
1375
|
-
"hash": "
|
|
1375
|
+
"hash": "673ea0b097d42d02",
|
|
1376
1376
|
"childrenByOrder": {}
|
|
1377
1377
|
},
|
|
1378
1378
|
{
|
package/dist/routes.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"$schema":"https://json.openmrs.org/routes.schema.json","backendDependencies":{"webservices.rest":">=2.2.0"},"extensions":[{"name":"immunization-overview-widget","component":"immunizationsOverview","order":8},{"name":"immunization-detailed-history-card","component":"immunizationHistorySummary","slot":"patient-chart-immunizations-dashboard-slot","meta":{"fullWidth":true}},{"name":"immunization-details-widget","component":"immunizationsDetailedSummary","slot":"patient-chart-immunizations-dashboard-slot","meta":{"fullWidth":true}},{"name":"immunization-summary-dashboard","component":"immunizationsDashboardLink","slot":"patient-chart-dashboard-slot","meta":{"slot":"patient-chart-immunizations-dashboard-slot","path":"Immunizations"},"order":8}],"pages":[],"workspaces":[{"name":"immunization-form-workspace","title":"immunizationWorkspaceTitle","component":"immunizationFormWorkspace"}],"modals":[{"name":"immunization-delete-confirmation-modal","component":"deleteImmunizationConfirmationModal"}],"version":"11.3.1-pre.
|
|
1
|
+
{"$schema":"https://json.openmrs.org/routes.schema.json","backendDependencies":{"webservices.rest":">=2.2.0"},"extensions":[{"name":"immunization-overview-widget","component":"immunizationsOverview","order":8},{"name":"immunization-detailed-history-card","component":"immunizationHistorySummary","slot":"patient-chart-immunizations-dashboard-slot","meta":{"fullWidth":true}},{"name":"immunization-details-widget","component":"immunizationsDetailedSummary","slot":"patient-chart-immunizations-dashboard-slot","meta":{"fullWidth":true}},{"name":"immunization-summary-dashboard","component":"immunizationsDashboardLink","slot":"patient-chart-dashboard-slot","meta":{"slot":"patient-chart-immunizations-dashboard-slot","path":"Immunizations"},"order":8}],"pages":[],"workspaces":[{"name":"immunization-form-workspace","title":"immunizationWorkspaceTitle","component":"immunizationFormWorkspace"}],"modals":[{"name":"immunization-delete-confirmation-modal","component":"deleteImmunizationConfirmationModal"}],"version":"11.3.1-pre.9296"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@openmrs/esm-patient-immunizations-app",
|
|
3
|
-
"version": "11.3.1-pre.
|
|
3
|
+
"version": "11.3.1-pre.9296",
|
|
4
4
|
"license": "MPL-2.0",
|
|
5
5
|
"description": "Patient immunizations microfrontend for the OpenMRS SPA",
|
|
6
6
|
"browser": "dist/openmrs-esm-patient-immunizations-app.js",
|
|
@@ -54,7 +54,7 @@
|
|
|
54
54
|
"swr": "2.x"
|
|
55
55
|
},
|
|
56
56
|
"devDependencies": {
|
|
57
|
-
"@openmrs/esm-patient-common-lib": "11.3.1-pre.
|
|
57
|
+
"@openmrs/esm-patient-common-lib": "11.3.1-pre.9296",
|
|
58
58
|
"webpack": "^5.99.9"
|
|
59
59
|
},
|
|
60
60
|
"stableVersion": "11.3.0"
|
|
@@ -25,9 +25,14 @@ import {
|
|
|
25
25
|
useConfig,
|
|
26
26
|
useLayoutType,
|
|
27
27
|
usePagination,
|
|
28
|
-
useVisit,
|
|
29
28
|
} from '@openmrs/esm-framework';
|
|
30
|
-
import {
|
|
29
|
+
import {
|
|
30
|
+
CardHeader,
|
|
31
|
+
EmptyState,
|
|
32
|
+
ErrorState,
|
|
33
|
+
PatientChartPagination,
|
|
34
|
+
usePatientChartStore,
|
|
35
|
+
} from '@openmrs/esm-patient-common-lib';
|
|
31
36
|
import { immunizationFormSub, latestFirst, linkConfiguredSequences } from './utils';
|
|
32
37
|
import { useImmunizations } from '../hooks/useImmunizations';
|
|
33
38
|
import SequenceTable from './components/immunizations-sequence-table.component';
|
|
@@ -46,7 +51,7 @@ const ImmunizationsDetailedSummary: React.FC<ImmunizationsDetailedSummaryProps>
|
|
|
46
51
|
const { immunizationsConfig } = useConfig();
|
|
47
52
|
const displayText = t('immunizations__lower', 'immunizations');
|
|
48
53
|
const headerTitle = t('immunizations', 'Immunizations');
|
|
49
|
-
const {
|
|
54
|
+
const { visitContext } = usePatientChartStore(patientUuid);
|
|
50
55
|
const isTablet = useLayoutType() === 'tablet';
|
|
51
56
|
const sequenceDefinitions = immunizationsConfig?.sequenceDefinitions;
|
|
52
57
|
|
|
@@ -57,12 +62,12 @@ const ImmunizationsDetailedSummary: React.FC<ImmunizationsDetailedSummaryProps>
|
|
|
57
62
|
}, [existingImmunizations, sequenceDefinitions]);
|
|
58
63
|
|
|
59
64
|
const launchImmunizationsForm = useCallback(() => {
|
|
60
|
-
if (!
|
|
65
|
+
if (!visitContext) {
|
|
61
66
|
launchStartVisitPrompt();
|
|
62
67
|
return;
|
|
63
68
|
}
|
|
64
69
|
launchWorkspace('immunization-form-workspace');
|
|
65
|
-
}, [
|
|
70
|
+
}, [visitContext, launchStartVisitPrompt]);
|
|
66
71
|
|
|
67
72
|
const sortedImmunizations = useMemo(() => {
|
|
68
73
|
return orderBy(
|
|
@@ -5,15 +5,21 @@ import { getDefaultsFromConfigSchema, launchWorkspace, useVisit, type VisitRetur
|
|
|
5
5
|
import { configSchema } from '../config-schema';
|
|
6
6
|
import { mockPatient, renderWithSwr, waitForLoadingToFinish } from 'tools';
|
|
7
7
|
import ImmunizationsDetailedSummary from './immunizations-detailed-summary.component';
|
|
8
|
+
import { usePatientChartStore } from '@openmrs/esm-patient-common-lib';
|
|
9
|
+
import { mockCurrentVisit } from '__mocks__';
|
|
8
10
|
|
|
9
11
|
jest.mock('../hooks/useImmunizations', () => ({
|
|
10
12
|
useImmunizations: jest.fn(),
|
|
11
13
|
}));
|
|
14
|
+
jest.mock('@openmrs/esm-patient-common-lib', () => ({
|
|
15
|
+
...jest.requireActual('@openmrs/esm-patient-common-lib'),
|
|
16
|
+
usePatientChartStore: jest.fn(),
|
|
17
|
+
}));
|
|
12
18
|
|
|
13
19
|
const mockUseImmunizations = jest.mocked(require('../hooks/useImmunizations').useImmunizations);
|
|
14
20
|
const mockLaunchWorkspace = launchWorkspace as jest.Mock;
|
|
15
|
-
const mockUseVisit = jest.mocked(useVisit);
|
|
16
21
|
const mockUseConfig = jest.mocked(require('@openmrs/esm-framework').useConfig);
|
|
22
|
+
const mockUsePatientChartStore = jest.mocked(usePatientChartStore);
|
|
17
23
|
|
|
18
24
|
mockUseConfig.mockReturnValue({
|
|
19
25
|
...getDefaultsFromConfigSchema(configSchema),
|
|
@@ -74,6 +80,15 @@ describe('ImmunizationsDetailedSummary', () => {
|
|
|
74
80
|
],
|
|
75
81
|
},
|
|
76
82
|
});
|
|
83
|
+
|
|
84
|
+
mockUsePatientChartStore.mockReturnValue({
|
|
85
|
+
patientUuid: mockPatient.id,
|
|
86
|
+
patient: mockPatient,
|
|
87
|
+
visitContext: mockCurrentVisit,
|
|
88
|
+
mutateVisitContext: null,
|
|
89
|
+
setPatient: jest.fn(),
|
|
90
|
+
setVisitContext: jest.fn(),
|
|
91
|
+
});
|
|
77
92
|
});
|
|
78
93
|
|
|
79
94
|
it('shows empty state when no immunizations are recorded', async () => {
|
|
@@ -166,7 +181,6 @@ describe('ImmunizationsDetailedSummary', () => {
|
|
|
166
181
|
it('opens immunization form when add button is clicked during an active visit', async () => {
|
|
167
182
|
const user = userEvent.setup();
|
|
168
183
|
const mockLaunchStartVisitPrompt = jest.fn();
|
|
169
|
-
mockUseVisit.mockReturnValue({ currentVisit: { uuid: 'visit-uuid' } } as VisitReturnType);
|
|
170
184
|
mockUseImmunizations.mockReturnValueOnce({
|
|
171
185
|
data: mockImmunizationData,
|
|
172
186
|
isLoading: false,
|
|
@@ -191,7 +205,14 @@ describe('ImmunizationsDetailedSummary', () => {
|
|
|
191
205
|
it('prompts to start visit when add button is clicked without an active visit', async () => {
|
|
192
206
|
const user = userEvent.setup();
|
|
193
207
|
const mockLaunchStartVisitPrompt = jest.fn();
|
|
194
|
-
|
|
208
|
+
mockUsePatientChartStore.mockReturnValue({
|
|
209
|
+
patientUuid: mockPatient.id,
|
|
210
|
+
patient: mockPatient,
|
|
211
|
+
visitContext: null,
|
|
212
|
+
mutateVisitContext: null,
|
|
213
|
+
setPatient: jest.fn(),
|
|
214
|
+
setVisitContext: jest.fn(),
|
|
215
|
+
});
|
|
195
216
|
mockUseImmunizations.mockReturnValueOnce({
|
|
196
217
|
data: mockImmunizationData,
|
|
197
218
|
isLoading: false,
|
|
@@ -9,7 +9,6 @@ import {
|
|
|
9
9
|
toOmrsIsoString,
|
|
10
10
|
useConfig,
|
|
11
11
|
useSession,
|
|
12
|
-
useVisit,
|
|
13
12
|
} from '@openmrs/esm-framework';
|
|
14
13
|
import { configSchema, type ImmunizationConfigObject } from '../config-schema';
|
|
15
14
|
import { immunizationFormSub } from './utils';
|
|
@@ -26,8 +25,6 @@ const mockSavePatientImmunization = savePatientImmunization as jest.Mock;
|
|
|
26
25
|
const mockSetTitle = jest.fn();
|
|
27
26
|
const mockUseConfig = jest.mocked<() => ImmunizationConfigObject>(useConfig);
|
|
28
27
|
const mockUseSession = jest.mocked(useSession);
|
|
29
|
-
const mockUseVisit = jest.mocked(useVisit);
|
|
30
|
-
const mockMutate = jest.fn();
|
|
31
28
|
const mockToOmrsIsoString = jest.mocked(toOmrsIsoString);
|
|
32
29
|
const mockToDateObjectStrict = jest.mocked(toDateObjectStrict);
|
|
33
30
|
|
|
@@ -74,6 +71,8 @@ const testProps = {
|
|
|
74
71
|
closeWorkspaceWithSavedChanges: mockCloseWorkspaceWithSavedChanges,
|
|
75
72
|
promptBeforeClosing: mockPromptBeforeClosing,
|
|
76
73
|
setTitle: mockSetTitle,
|
|
74
|
+
visitContext: mockCurrentVisit,
|
|
75
|
+
mutateVisitContext: null,
|
|
77
76
|
};
|
|
78
77
|
|
|
79
78
|
mockUseConfig.mockReturnValue({
|
|
@@ -95,15 +94,6 @@ mockUseConfig.mockReturnValue({
|
|
|
95
94
|
});
|
|
96
95
|
|
|
97
96
|
mockUseSession.mockReturnValue(mockSessionDataResponse.data);
|
|
98
|
-
mockUseVisit.mockReturnValue({
|
|
99
|
-
activeVisit: mockCurrentVisit,
|
|
100
|
-
currentVisit: mockCurrentVisit,
|
|
101
|
-
currentVisitIsRetrospective: false,
|
|
102
|
-
error: null,
|
|
103
|
-
isLoading: false,
|
|
104
|
-
isValidating: false,
|
|
105
|
-
mutate: mockMutate,
|
|
106
|
-
});
|
|
107
97
|
|
|
108
98
|
describe('Immunizations Form', () => {
|
|
109
99
|
const isoFormat = 'YYYY-MM-DDTHH:mm:ss.SSSZZ';
|
|
@@ -14,7 +14,6 @@ import {
|
|
|
14
14
|
useConfig,
|
|
15
15
|
useLayoutType,
|
|
16
16
|
useSession,
|
|
17
|
-
useVisit,
|
|
18
17
|
} from '@openmrs/esm-framework';
|
|
19
18
|
import { type DefaultPatientWorkspaceProps } from '@openmrs/esm-patient-common-lib';
|
|
20
19
|
import { DoseInput } from './components/dose-input.component';
|
|
@@ -33,12 +32,12 @@ const ImmunizationsForm: React.FC<DefaultPatientWorkspaceProps> = ({
|
|
|
33
32
|
closeWorkspace,
|
|
34
33
|
closeWorkspaceWithSavedChanges,
|
|
35
34
|
promptBeforeClosing,
|
|
35
|
+
visitContext,
|
|
36
36
|
}) => {
|
|
37
37
|
const config = useConfig<ImmunizationConfigObject>();
|
|
38
38
|
const currentUser = useSession();
|
|
39
39
|
const isTablet = useLayoutType() === 'tablet';
|
|
40
40
|
const { t } = useTranslation();
|
|
41
|
-
const { currentVisit } = useVisit(patientUuid);
|
|
42
41
|
const { immunizationsConceptSet } = useImmunizationsConceptSet(config);
|
|
43
42
|
const { mutate } = useImmunizations(patientUuid);
|
|
44
43
|
|
|
@@ -46,6 +45,7 @@ const ImmunizationsForm: React.FC<DefaultPatientWorkspaceProps> = ({
|
|
|
46
45
|
immunizationObsUuid: string;
|
|
47
46
|
visitUuid?: string;
|
|
48
47
|
}>();
|
|
48
|
+
const now = useMemo(() => new Date(), []);
|
|
49
49
|
|
|
50
50
|
const immunizationFormSchema = useMemo(() => {
|
|
51
51
|
return z.object({
|
|
@@ -59,7 +59,7 @@ const ImmunizationsForm: React.FC<DefaultPatientWorkspaceProps> = ({
|
|
|
59
59
|
(date) => {
|
|
60
60
|
// Normalize both dates to start of day in local timezone
|
|
61
61
|
const inputDate = dayjs(date).startOf('day');
|
|
62
|
-
const today = dayjs().startOf('day');
|
|
62
|
+
const today = dayjs(now).startOf('day');
|
|
63
63
|
return inputDate.isSame(today) || inputDate.isBefore(today);
|
|
64
64
|
},
|
|
65
65
|
{
|
|
@@ -74,7 +74,7 @@ const ImmunizationsForm: React.FC<DefaultPatientWorkspaceProps> = ({
|
|
|
74
74
|
lotNumber: z.string().nullable().optional(),
|
|
75
75
|
manufacturer: z.string().nullable().optional(),
|
|
76
76
|
});
|
|
77
|
-
}, [patient.birthDate, t]);
|
|
77
|
+
}, [patient.birthDate, t, now]);
|
|
78
78
|
|
|
79
79
|
type ImmunizationFormInputData = z.infer<typeof immunizationFormSchema>;
|
|
80
80
|
const formProps = useForm<ImmunizationFormInputData>({
|
|
@@ -82,7 +82,7 @@ const ImmunizationsForm: React.FC<DefaultPatientWorkspaceProps> = ({
|
|
|
82
82
|
resolver: zodResolver(immunizationFormSchema),
|
|
83
83
|
defaultValues: {
|
|
84
84
|
vaccineUuid: '',
|
|
85
|
-
vaccinationDate: dayjs().startOf('day').toDate(),
|
|
85
|
+
vaccinationDate: dayjs(now).startOf('day').toDate(),
|
|
86
86
|
doseNumber: 1,
|
|
87
87
|
nextDoseDate: null,
|
|
88
88
|
note: '',
|
|
@@ -110,7 +110,7 @@ const ImmunizationsForm: React.FC<DefaultPatientWorkspaceProps> = ({
|
|
|
110
110
|
useEffect(() => {
|
|
111
111
|
const sub = immunizationFormSub.subscribe((props) => {
|
|
112
112
|
if (props) {
|
|
113
|
-
const vaccinationDateOrNow = props.vaccinationDate ? parseDate(props.vaccinationDate) :
|
|
113
|
+
const vaccinationDateOrNow = props.vaccinationDate ? parseDate(props.vaccinationDate) : now;
|
|
114
114
|
reset({
|
|
115
115
|
vaccineUuid: props.vaccineUuid,
|
|
116
116
|
vaccinationDate: vaccinationDateOrNow,
|
|
@@ -129,7 +129,7 @@ const ImmunizationsForm: React.FC<DefaultPatientWorkspaceProps> = ({
|
|
|
129
129
|
sub.unsubscribe();
|
|
130
130
|
immunizationFormSub.next(null);
|
|
131
131
|
};
|
|
132
|
-
}, [reset]);
|
|
132
|
+
}, [reset, now]);
|
|
133
133
|
|
|
134
134
|
const onSubmit = useCallback(
|
|
135
135
|
async (data: ImmunizationFormInputData) => {
|
|
@@ -163,7 +163,7 @@ const ImmunizationsForm: React.FC<DefaultPatientWorkspaceProps> = ({
|
|
|
163
163
|
await savePatientImmunization(
|
|
164
164
|
mapToFHIRImmunizationResource(
|
|
165
165
|
immunization,
|
|
166
|
-
immunizationToEditMeta?.visitUuid ||
|
|
166
|
+
immunizationToEditMeta?.visitUuid || visitContext?.uuid,
|
|
167
167
|
currentUser?.sessionLocation?.uuid,
|
|
168
168
|
currentUser?.currentProvider?.uuid,
|
|
169
169
|
),
|
|
@@ -190,7 +190,7 @@ const ImmunizationsForm: React.FC<DefaultPatientWorkspaceProps> = ({
|
|
|
190
190
|
currentUser?.sessionLocation?.uuid,
|
|
191
191
|
patientUuid,
|
|
192
192
|
currentUser?.currentProvider?.uuid,
|
|
193
|
-
|
|
193
|
+
visitContext?.uuid,
|
|
194
194
|
immunizationToEditMeta,
|
|
195
195
|
immunizationsConceptSet,
|
|
196
196
|
closeWorkspaceWithSavedChanges,
|
|
@@ -214,7 +214,7 @@ const ImmunizationsForm: React.FC<DefaultPatientWorkspaceProps> = ({
|
|
|
214
214
|
invalid={Boolean(fieldState?.error?.message)}
|
|
215
215
|
invalidText={fieldState?.error?.message}
|
|
216
216
|
labelText={t('vaccinationDate', 'Vaccination date')}
|
|
217
|
-
maxDate={
|
|
217
|
+
maxDate={now}
|
|
218
218
|
/>
|
|
219
219
|
)}
|
|
220
220
|
/>
|