@pih/esm-pathology-app 1.0.6 → 1.1.1-pre.25
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 +40 -0
- package/__mocks__/fileMock.js +1 -0
- package/__mocks__/react-i18next.js +17 -16
- package/dist/00ebb57bb20c59433e84.gif +0 -0
- package/dist/449.js +2 -0
- package/dist/449.js.map +1 -0
- package/dist/574.js +1 -0
- package/dist/5b8bb278fcab4da4972e.ttf +0 -0
- package/dist/635.js +3 -0
- package/dist/635.js.LICENSE.txt +16 -0
- package/dist/635.js.map +1 -0
- package/dist/784.js +3 -0
- package/dist/784.js.LICENSE.txt +14 -0
- package/dist/784.js.map +1 -0
- package/dist/858.js +3 -0
- package/dist/858.js.LICENSE.txt +1 -0
- package/dist/858.js.map +1 -0
- package/dist/862.js +2 -0
- package/dist/862.js.map +1 -0
- package/dist/958.js +3 -0
- package/dist/958.js.LICENSE.txt +75 -0
- package/dist/958.js.map +1 -0
- package/dist/a5fad24f075c978ac04b.ttf +0 -0
- package/dist/pih-esm-pathology-app.js +1 -0
- package/dist/pih-esm-pathology-app.js.buildmanifest.json +225 -0
- package/dist/pih-esm-pathology-app.js.map +1 -0
- package/dist/pih-esm-pathology-app.old +2 -0
- package/jest.config.json +2 -1
- package/package.json +13 -58
- package/src/Pathology-getter/Pathology-encounter-getter-resource.ts +15 -0
- package/src/Pathology-getter/Pathology-patient-encounters-getter-resource.ts +15 -0
- package/src/Pathology-getter/Pathology-patients-getter-resource.ts +12 -0
- package/src/{pathology-report → Pathology-getter}/ReportComponent.resource.ts +17 -18
- package/src/Print-to-PDF/Document-Component.tsx +1 -1
- package/src/config-schema.ts +15 -16
- package/src/declarations.d.tsx +4 -3
- package/src/pathology-report/ReportComponent.tsx +2 -3
- package/src/pathology-report/TableRow.tsx +24 -0
- package/src/pathology.test.tsx +43 -0
- package/.babelrc +0 -10
- package/.eslintignore +0 -1
- package/.eslintrc +0 -5
- package/.gitattributes +0 -1
- package/.husky/pre-commit +0 -7
- package/.prettierignore +0 -2
- package/README.md +0 -4
- package/babel.config.json +0 -8
- package/src/pathology-report/ReportComponent.test.tsx +0 -251
- package/src/test.html +0 -0
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
@pih/esm-pathology-app:build: cache hit, replaying output 0971ddc816044d13
|
|
2
|
+
@pih/esm-pathology-app:build: $ webpack --mode production
|
|
3
|
+
@pih/esm-pathology-app:build: assets by path [1m[32m*.js[39m[22m 2.61 MiB
|
|
4
|
+
@pih/esm-pathology-app:build: assets by chunk 2.56 MiB (id hint: vendors)
|
|
5
|
+
@pih/esm-pathology-app:build: asset [1m[33m958.js[39m[22m [1m[33m1.88 MiB[39m[22m [1m[32m[emitted][39m[22m [1m[32m[minimized][39m[22m [1m[33m[big][39m[22m (id hint: vendors) 2 related assets
|
|
6
|
+
@pih/esm-pathology-app:build: asset [1m[33m858.js[39m[22m [1m[33m472 KiB[39m[22m [1m[32m[emitted][39m[22m [1m[32m[minimized][39m[22m [1m[33m[big][39m[22m (id hint: vendors) 2 related assets
|
|
7
|
+
@pih/esm-pathology-app:build: asset [1m[32m635.js[39m[22m 228 KiB [1m[32m[emitted][39m[22m [1m[32m[minimized][39m[22m (id hint: vendors) 2 related assets
|
|
8
|
+
@pih/esm-pathology-app:build: asset [1m[32m449.js[39m[22m 25.8 KiB [1m[32m[emitted][39m[22m [1m[32m[minimized][39m[22m 1 related asset
|
|
9
|
+
@pih/esm-pathology-app:build: asset [1m[32m784.js[39m[22m 7.17 KiB [1m[32m[emitted][39m[22m [1m[32m[minimized][39m[22m 2 related assets
|
|
10
|
+
@pih/esm-pathology-app:build: asset [1m[32mpih-esm-pathology-app.js[39m[22m 6.89 KiB [1m[32m[emitted][39m[22m [1m[32m[minimized][39m[22m (name: @pih/esm-pathology-app) 1 related asset
|
|
11
|
+
@pih/esm-pathology-app:build: asset [1m[32m862.js[39m[22m 4.89 KiB [1m[32m[emitted][39m[22m [1m[32m[minimized][39m[22m 1 related asset
|
|
12
|
+
@pih/esm-pathology-app:build: asset [1m[32m574.js[39m[22m 138 bytes [1m[32m[emitted][39m[22m [1m[32m[minimized][39m[22m
|
|
13
|
+
@pih/esm-pathology-app:build: assets by info 211 KiB [1m[32m[immutable][39m[22m
|
|
14
|
+
@pih/esm-pathology-app:build: asset [1m[32m5b8bb278fcab4da4972e.ttf[39m[22m 146 KiB [1m[32m[emitted][39m[22m [1m[32m[immutable][39m[22m [from: src/Fonts/georgia/Georgia.ttf]
|
|
15
|
+
@pih/esm-pathology-app:build: asset [1m[32ma5fad24f075c978ac04b.ttf[39m[22m 58.9 KiB [1m[32m[emitted][39m[22m [1m[32m[immutable][39m[22m [from: src/Fonts/georgia/georgia-bold.ttf]
|
|
16
|
+
@pih/esm-pathology-app:build: asset [1m[32m00ebb57bb20c59433e84.gif[39m[22m 6.15 KiB [1m[32m[emitted][39m[22m [1m[32m[immutable][39m[22m [from: src/images/ButaroHospitalLogo.gif]
|
|
17
|
+
@pih/esm-pathology-app:build: asset [1m[32mpih-esm-pathology-app.js.buildmanifest.json[39m[22m 4.52 KiB [1m[32m[emitted][39m[22m
|
|
18
|
+
@pih/esm-pathology-app:build: orphan modules 10.4 MiB [1m[33m[orphan][39m[22m 345 modules
|
|
19
|
+
@pih/esm-pathology-app:build: runtime modules 17.6 KiB 15 modules
|
|
20
|
+
@pih/esm-pathology-app:build: built modules 6.38 MiB (javascript) 211 KiB (asset) 126 bytes (share-init) 126 bytes (consume-shared) [1m[33m[built][39m[22m
|
|
21
|
+
@pih/esm-pathology-app:build: modules by path [1m../../node_modules/[39m[22m 6.32 MiB 145 modules
|
|
22
|
+
@pih/esm-pathology-app:build: modules by path [1m./[39m[22m 65.5 KiB (javascript) 211 KiB (asset)
|
|
23
|
+
@pih/esm-pathology-app:build: modules by path [1m./src/[39m[22m 65.3 KiB (javascript) 211 KiB (asset) 7 modules
|
|
24
|
+
@pih/esm-pathology-app:build: modules by path [1m./translations/[39m[22m 172 bytes 2 modules
|
|
25
|
+
@pih/esm-pathology-app:build: provide-module modules 126 bytes
|
|
26
|
+
@pih/esm-pathology-app:build: [1mprovide shared module (default) @openmrs/esm-framework@3.3.2-pre.69 = ../../node_modules/@openmrs/esm-framework/src/internal.ts[39m[22m 42 bytes [1m[33m[built][39m[22m [1m[33m[code generated][39m[22m
|
|
27
|
+
@pih/esm-pathology-app:build: + 2 modules
|
|
28
|
+
@pih/esm-pathology-app:build: consume-shared-module modules 126 bytes
|
|
29
|
+
@pih/esm-pathology-app:build: [1mconsume shared module (default) @openmrs/esm-framework@^3.14.0-pre (singleton) (fallback: ../../node_modules/@openmrs/esm-framework/src/internal.ts)[39m[22m 42 bytes [1m[33m[built][39m[22m [1m[33m[code generated][39m[22m
|
|
30
|
+
@pih/esm-pathology-app:build: + 2 modules
|
|
31
|
+
@pih/esm-pathology-app:build: [1mcontainer entry[39m[22m 42 bytes [1m[33m[built][39m[22m [1m[33m[code generated][39m[22m
|
|
32
|
+
@pih/esm-pathology-app:build: [1mcrypto (ignored)[39m[22m 15 bytes [1m[33m[optional][39m[22m [1m[33m[built][39m[22m [1m[33m[code generated][39m[22m
|
|
33
|
+
@pih/esm-pathology-app:build:
|
|
34
|
+
@pih/esm-pathology-app:build: [1m[33mWARNING[39m[22m in [1masset size limit: The following asset(s) exceed the recommended size limit (244 KiB).
|
|
35
|
+
@pih/esm-pathology-app:build: This can impact web performance.
|
|
36
|
+
@pih/esm-pathology-app:build: Assets:
|
|
37
|
+
@pih/esm-pathology-app:build: 958.js (1.88 MiB)
|
|
38
|
+
@pih/esm-pathology-app:build: 858.js (472 KiB)[39m[22m
|
|
39
|
+
@pih/esm-pathology-app:build:
|
|
40
|
+
@pih/esm-pathology-app:build: webpack 5.73.0 compiled with [1m[33m1 warning[39m[22m in 53237 ms
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
module.exports = "";
|
|
@@ -1,14 +1,16 @@
|
|
|
1
1
|
/** At present, this entire mock is boilerplate. */
|
|
2
2
|
|
|
3
|
-
const React = require(
|
|
4
|
-
const reactI18next = require(
|
|
3
|
+
const React = require("react");
|
|
4
|
+
const reactI18next = require("react-i18next");
|
|
5
5
|
|
|
6
|
-
const hasChildren = node =>
|
|
6
|
+
const hasChildren = (node) =>
|
|
7
|
+
node && (node.children || (node.props && node.props.children));
|
|
7
8
|
|
|
8
|
-
const getChildren = node =>
|
|
9
|
+
const getChildren = (node) =>
|
|
10
|
+
node && node.children ? node.children : node.props && node.props.children;
|
|
9
11
|
|
|
10
|
-
const renderNodes = reactNodes => {
|
|
11
|
-
if (typeof reactNodes ===
|
|
12
|
+
const renderNodes = (reactNodes) => {
|
|
13
|
+
if (typeof reactNodes === "string") {
|
|
12
14
|
return reactNodes;
|
|
13
15
|
}
|
|
14
16
|
|
|
@@ -16,29 +18,32 @@ const renderNodes = reactNodes => {
|
|
|
16
18
|
const child = reactNodes[key];
|
|
17
19
|
const isElement = React.isValidElement(child);
|
|
18
20
|
|
|
19
|
-
if (typeof child ===
|
|
21
|
+
if (typeof child === "string") {
|
|
20
22
|
return child;
|
|
21
23
|
}
|
|
22
24
|
if (hasChildren(child)) {
|
|
23
25
|
const inner = renderNodes(getChildren(child));
|
|
24
26
|
return React.cloneElement(child, { ...child.props, key: i }, inner);
|
|
25
27
|
}
|
|
26
|
-
if (typeof child ===
|
|
27
|
-
return Object.keys(child).reduce(
|
|
28
|
+
if (typeof child === "object" && !isElement) {
|
|
29
|
+
return Object.keys(child).reduce(
|
|
30
|
+
(str, childKey) => `${str}${child[childKey]}`,
|
|
31
|
+
""
|
|
32
|
+
);
|
|
28
33
|
}
|
|
29
34
|
|
|
30
35
|
return child;
|
|
31
36
|
});
|
|
32
37
|
};
|
|
33
38
|
|
|
34
|
-
const useMock = [k => k, {}];
|
|
35
|
-
useMock.t = (k, o) => (o && o.defaultValue) || (typeof o ===
|
|
39
|
+
const useMock = [(k) => k, {}];
|
|
40
|
+
useMock.t = (k, o) => (o && o.defaultValue) || (typeof o === "string" ? o : k);
|
|
36
41
|
useMock.i18n = {};
|
|
37
42
|
|
|
38
43
|
module.exports = {
|
|
39
44
|
// this mock makes sure any components using the translate HoC receive the t function as a prop
|
|
40
45
|
Trans: ({ children }) => renderNodes(children),
|
|
41
|
-
Translation: ({ children }) => children(k => k, { i18n: {} }),
|
|
46
|
+
Translation: ({ children }) => children((k) => k, { i18n: {} }),
|
|
42
47
|
useTranslation: () => useMock,
|
|
43
48
|
|
|
44
49
|
// mock if needed
|
|
@@ -49,7 +54,3 @@ module.exports = {
|
|
|
49
54
|
setI18n: reactI18next.setI18n,
|
|
50
55
|
getI18n: reactI18next.getI18n,
|
|
51
56
|
};
|
|
52
|
-
|
|
53
|
-
// export function openmrsFetch() {
|
|
54
|
-
// return new Promise(() => {});
|
|
55
|
-
// }
|
|
Binary file
|
package/dist/449.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
(self.webpackChunk_pih_esm_pathology_app=self.webpackChunk_pih_esm_pathology_app||[]).push([[449],{4511:(e,t,n)=>{"use strict";n.r(t),n.d(t,{default:()=>se});var r=n(2403),o=n.n(r),a=n(6062),s=n.n(a),u=n(4036),c=n.n(u),i=n(6793),l=n.n(i),p=n(7892),d=n.n(p),m=n(1173),f=n.n(m),y=n(2464),h=n.n(y),v=n(3147),g={};g.styleTagTransform=h(),g.setAttributes=d(),g.insert=l().bind(null,"head"),g.domAPI=c(),g.insertStyleElement=f(),s()(v.Z,g);const b=v.Z&&v.Z.locals?v.Z.locals:void 0;var x=n(9120),E=n(5919),A=n(3843),w=n(364),U=n(7500),_=n(8804),S=n(1358),C=n(2427),I=n(3783),D=n(9513),B=n(8814),k={};k.styleTagTransform=h(),k.setAttributes=d(),k.insert=l().bind(null,"head"),k.domAPI=c(),k.insertStyleElement=f(),s()(B.Z,k);const O=B.Z&&B.Z.locals?B.Z.locals:void 0;var F=n(5047),L=n.n(F);function P(e,t,n,r,o,a,s){try{var u=e[a](s),c=u.value}catch(e){return void n(e)}u.done?t(c):Promise.resolve(c).then(r,o)}function R(e){return function(){var t=this,n=arguments;return new Promise((function(r,o){var a=e.apply(t,n);function s(e){P(a,r,o,s,u,"next",e)}function u(e){P(a,r,o,s,u,"throw",e)}s(void 0)}))}}function T(e){return Z.apply(this,arguments)}function Z(){return(Z=R(L().mark((function e(t){var n,r,o,a;return L().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,x.openmrsFetch)("/ws/rest/v1/session");case 2:return n=e.sent,r=n.data.user.person.uuid,e.next=6,(0,x.openmrsFetch)("/ws/rest/v1/person/".concat(r,"/attribute"));case 6:return o=e.sent,a=o.data.results.filter((function(e){return e.attributeType.uuid===t})),e.abrupt("return",a[0]&&a[0].value.uuid);case 9:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function N(e){return G.apply(this,arguments)}function G(){return(G=R(L().mark((function e(t){var n;return L().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,x.openmrsFetch)("/ws/rest/v1/concept/".concat(t,"?v=full"));case 2:return n=e.sent,e.abrupt("return",n.data.answers);case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function j(){return(j=R(L().mark((function e(){var t;return L().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,x.openmrsFetch)("/ws/rest/v1/location");case 2:return t=e.sent,e.abrupt("return",t.data.results);case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function W(){return W=R(L().mark((function e(t,n){var r,o,a;return L().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,T(t);case 2:if(r=e.sent,o=null,!r||r==n){e.next=10;break}return e.next=7,(0,x.openmrsFetch)("/ws/rest/v1/reportingrest/reportdata/996cf192-ff54-11eb-a63a-080027ce9ca0?location=".concat(r));case 7:o=e.sent,e.next=13;break;case 10:return e.next=12,(0,x.openmrsFetch)("/ws/rest/v1/reportingrest/reportdata/996cf192-ff54-11eb-a63a-080027ce9ca0");case 12:o=e.sent;case 13:return a=o.data.dataSets[0].rows.map(function(){var e=R(L().mark((function e(t){var n;return L().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:if(!t.resultsEncounterUuid){e.next=6;break}return o.data.dataSets[0].rows.findIndex((function(e){return e.encounterUuid==t.encounterUuid})),e.next=4,X(t.resultsEncounterUuid);case 4:n=e.sent,t.resultsEncounter=n;case 6:return e.abrupt("return",t);case 7:case"end":return e.stop()}}),e)})));return function(t){return e.apply(this,arguments)}}()),e.abrupt("return",Promise.all(a));case 15:case"end":return e.stop()}}),e)}))),W.apply(this,arguments)}function Y(){return(Y=R(L().mark((function e(t,n,r,o){var a,s;return L().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.t0=t.patientUuid,e.t1=(new Date).toISOString(),e.t2=n,e.next=5,T(r);case 5:return e.t3=e.sent,e.t4=t.encounterUuid,e.t5=o,a={person:e.t0,obsDatetime:e.t1,concept:e.t2,location:e.t3,encounter:e.t4,value:e.t5,voided:!1},e.next=11,(0,x.openmrsFetch)("/ws/rest/v1/obs",{method:"POST",headers:{"content-type":"application/json"},body:a});case 11:return s=e.sent,e.abrupt("return",s);case 13:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function q(){return(q=R(L().mark((function e(t){var n,r;return L().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return n={voided:!0},e.next=3,(0,x.openmrsFetch)("/ws/rest/v1/obs/".concat(t),{method:"POST",headers:{"content-type":"application/json"},body:n});case 3:return r=e.sent,e.abrupt("return",r);case 5:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function H(){return(H=R(L().mark((function e(t,n,r,o){var a,s;return L().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.t0=n.patientUuid,e.t1=(new Date).toISOString(),e.t2=r,e.next=5,T(o);case 5:return e.t3=e.sent,e.t4=n.encounterUuid,e.t5=t,a={person:e.t0,obsDatetime:e.t1,concept:e.t2,location:e.t3,encounter:e.t4,value:e.t5,voided:!1},e.next=11,(0,x.openmrsFetch)("/ws/rest/v1/obs",{method:"POST",headers:{"content-type":"application/json"},body:a});case 11:return s=e.sent,e.abrupt("return",s);case 13:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function M(){return(M=R(L().mark((function e(t,n,r,o){var a,s;return L().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.t0=n.patientUuid,e.t1=(new Date).toISOString(),e.t2=r,e.next=5,T(o);case 5:return e.t3=e.sent,e.t4=n.encounterUuid,e.t5=t.uuid,e.t6=!t,a={person:e.t0,obsDatetime:e.t1,concept:e.t2,location:e.t3,encounter:e.t4,value:e.t5,voided:e.t6},e.next=12,(0,x.openmrsFetch)("/ws/rest/v1/obs/".concat(n.sampleStatusObsUuid),{method:"POST",headers:{"content-type":"application/json"},body:a});case 12:return s=e.sent,e.abrupt("return",s);case 14:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function z(){return(z=R(L().mark((function e(t,n,r,o){var a,s;return L().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.t0=n.patientUuid,e.t1=(new Date).toISOString(),e.t2=r,e.next=5,T(o);case 5:return e.t3=e.sent,e.t4=n.encounterUuid,e.t5=t,a={person:e.t0,obsDatetime:e.t1,concept:e.t2,location:e.t3,encounter:e.t4,value:e.t5,voided:!1},e.next=11,(0,x.openmrsFetch)("/ws/rest/v1/obs",{method:"POST",headers:{"content-type":"application/json"},body:a});case 11:return s=e.sent,e.abrupt("return",s);case 13:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function V(){return(V=R(L().mark((function e(t,n,r,o){var a,s;return L().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.t0=n.patientUuid,e.t1=(new Date).toISOString(),e.t2=r,e.next=5,T(o);case 5:return e.t3=e.sent,e.t4=n.encounterUuid,e.t5=t.uuid,e.t6=!t,a={person:e.t0,obsDatetime:e.t1,concept:e.t2,location:e.t3,encounter:e.t4,value:e.t5,voided:e.t6},e.next=12,(0,x.openmrsFetch)("/ws/rest/v1/obs/".concat(n.referralStatusObsUuid),{method:"POST",headers:{"content-type":"application/json"},body:a});case 12:return s=e.sent,e.abrupt("return",s);case 14:case"end":return e.stop()}}),e)})))).apply(this,arguments)}function X(e){return $.apply(this,arguments)}function $(){return($=R(L().mark((function e(t){var n;return L().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,(0,x.openmrsFetch)("/ws/rest/v1/encounter/".concat(t,"?v=full"));case 2:return n=e.sent,e.abrupt("return",n.data);case 4:case"end":return e.stop()}}),e)})))).apply(this,arguments)}const J=n.p+"00ebb57bb20c59433e84.gif",K=n.p+"a5fad24f075c978ac04b.ttf",Q=n.p+"5b8bb278fcab4da4972e.ttf";D.Zx.register({family:"GeorgiaBold",src:K}),D.Zx.register({family:"Georgia",src:Q});var ee=D.mM.create({page:{flexDirection:"row"},section:{margin:10,padding:20,flexGrow:1},textLabels:{padding:7,fontFamily:"GeorgiaBold",fontSize:16,fontWeight:"bold",paddingBottom:30},sentenceLabels:{paddingTop:7,fontFamily:"GeorgiaBold",fontSize:16,fontWeight:"bold",paddingBottom:3},textAnswers:{margin:10,padding:20,fontFamily:"Georgia",fontSize:14},sentenceAnswers:{marginBottom:10,paddingBottom:20,fontFamily:"Georgia",fontSize:14},logo:{width:61}});const te=function(e){return o().createElement(D.BB,{title:"Pathology report \n ".concat(e.encounterInfo.family_name," \n ").concat(e.encounterInfo.given_name," \n ").concat(e.encounterInfo.middle_name," ")},o().createElement(D.T3,{size:"A4",style:ee.page},o().createElement(D.G7,{style:ee.section},o().createElement(D.Ee,{style:ee.logo,src:J}),o().createElement(D.xv,{style:{fontSize:8}},"Butaro Hospital"),o().createElement(D.xv,{style:{position:"absolute",top:0,left:300,width:300}},o().createElement(D.xv,{style:ee.textAnswers},"Lab phone number:"),o().createElement(D.xv,null," ",e.config.LabPhoneNumber)),o().createElement(D.xv,{style:{position:"absolute",top:15,left:300,width:300}},o().createElement(D.xv,{style:ee.textAnswers},"Accession number:"),o().createElement(D.xv,null," ",e.encounterInfo.resultsEncounter.obs.map((function(t){return t.concept.uuid==e.config.AccessionNumberconceptUUID&&t.value})))),o().createElement(D.xv,{style:{borderBottom:"1px",textAlign:"center",fontWeight:1500,marginBottom:30,fontFamily:"GeorgiaBold"}},"Pathology Report"),o().createElement(D.xv,{style:{paddingBottom:10}},o().createElement(D.xv,{style:ee.textAnswers},"Patient Name:"),o().createElement(D.xv,{style:ee.textAnswers}," ",e.encounterInfo.family_name," ",e.encounterInfo.given_name," ",e.encounterInfo.middle_name)),o().createElement(D.xv,{style:{paddingBottom:10,position:"absolute",top:140,left:335}},o().createElement(D.xv,{style:ee.textAnswers},"Surgery Date:"),o().createElement(D.xv,{style:ee.textAnswers}," ",e.encounterInfo.resultsEncounter.obs.map((function(t){return t.concept.uuid==e.config.DateBiopsySpecimenTakenconceptUUID&&new Date(t.value).toLocaleString(["en-GB","en-US","en","fr-RW"],{day:"numeric",month:"numeric",year:"numeric"})})))),o().createElement(D.xv,{style:{paddingBottom:10}},o().createElement(D.xv,{style:ee.textAnswers},"Patient Birthdate:"),o().createElement(D.xv,{style:ee.textAnswers}," ",new Date(e.encounterInfo.personBirthdate).toLocaleString(["en-GB","en-US","en","fr-RW"],{day:"numeric",month:"numeric",year:"numeric"}))),o().createElement(D.xv,{style:{paddingBottom:10,position:"absolute",top:168,left:335,width:200}},o().createElement(D.xv,{style:ee.textAnswers},"Specimen Reception Date:"),o().createElement(D.xv,{style:ee.textAnswers}," ",e.encounterInfo.resultsEncounter.obs.map((function(t){return t.concept.uuid==e.config.SpecimenSubmissionDateconceptUUID&&new Date(t.value).toLocaleString(["en-GB","en-US","en","fr-RW"],{day:"numeric",month:"numeric",year:"numeric"})})))),o().createElement(D.xv,{style:{paddingBottom:10,borderBottom:"1px"}},o().createElement(D.xv,{style:ee.textAnswers},"Patient Gender:"),o().createElement(D.xv,{style:ee.textAnswers}," ",e.encounterInfo.personGender)),o().createElement(D.xv,{style:{paddingBottom:10,position:"absolute",top:200,left:335,width:250}},o().createElement(D.xv,{style:ee.textAnswers},"Signout Date:"),o().createElement(D.xv,{style:ee.textAnswers}," ",new Date(e.encounterInfo.resultsEncounter.encounterDatetime).toLocaleString(["en-GB","en-US","en","fr-RW"],{day:"numeric",month:"numeric",year:"numeric"}))),o().createElement(D.xv,{style:{paddingBottom:10}},o().createElement(D.xv,{style:ee.textLabels},"Sending Physician:"),o().createElement(D.xv,{style:ee.textAnswers}," ",e.encounterInfo.resultsEncounter.obs.map((function(t){return t.concept.uuid==e.config.SendingPhysicianconceptUUID&&t.value})))),o().createElement(D.xv,{style:{paddingBottom:10}},o().createElement(D.xv,{style:ee.textLabels},"Sending Facility:"),o().createElement(D.xv,{style:ee.textAnswers}," ",e.encounterInfo.resultsEncounter.obs.map((function(t){return t.concept.uuid==e.config.OtherBiopsyLocationconceptUUID&&t.value})))),o().createElement(D.xv,{style:{paddingBottom:10,fontFamily:"Georgia"}},"Anatomical location:"),o().createElement(D.xv,{style:{paddingBottom:10,paddingLeft:10}},o().createElement(D.xv,{style:ee.textLabels},"i.System:"),o().createElement(D.xv,{style:ee.textAnswers}," ",e.encounterInfo.resultsEncounter.obs.map((function(t){return t.concept.uuid==e.config.OrganSystemconceptUUID&&t.value.name.display+", "})))),o().createElement(D.xv,{style:{paddingBottom:10,paddingLeft:10}},o().createElement(D.xv,{style:ee.textLabels},"ii.Organ:"),o().createElement(D.xv,{style:ee.textAnswers}," ",e.encounterInfo.resultsEncounter.obs.map((function(t){return t.concept.uuid==e.config.OrganconceptUUID&&t.value.name.display+", "})))),o().createElement(D.xv,{style:{paddingBottom:10,paddingLeft:10}},o().createElement(D.xv,{style:ee.textLabels},"iii.Detail:"),o().createElement(D.xv,{style:ee.textAnswers}," ",e.encounterInfo.resultsEncounter.obs.map((function(t){return t.concept.uuid==e.config.SpecimenDetailconceptUUID&&t.value})))),o().createElement(D.xv,{style:{paddingBottom:10}},o().createElement(D.xv,{style:ee.textLabels},"Procedure type:"),o().createElement(D.xv,{style:ee.textAnswers}," ",e.encounterInfo.resultsEncounter.obs.map((function(t){return t.concept.uuid==e.config.OtherTestsOrProceduresconceptUUID&&t.value})))),o().createElement(D.xv,{style:[ee.sentenceLabels]},"Gross Description:"),o().createElement(D.xv,{style:[ee.sentenceAnswers]},e.encounterInfo.resultsEncounter.obs.map((function(t){return t.concept.uuid==e.config.GrossDescriptionconceptUUID&&t.value}))),o().createElement(D.xv,{style:ee.sentenceLabels},"Microscopic Examination:"),o().createElement(D.xv,{style:ee.sentenceAnswers},e.encounterInfo.resultsEncounter.obs.map((function(t){return t.concept.uuid==e.config.MacroscopicExaminationconceptUUID&&t.value}))),o().createElement(D.xv,{style:ee.sentenceLabels},"Conclusion:"),o().createElement(D.xv,{style:ee.sentenceAnswers},e.encounterInfo.resultsEncounter.obs.map((function(t){return t.concept.uuid==e.config.COMMENTSATCONCLUSIONOFEXAMINATIONconceptUUID&&t.value}))),o().createElement(D.xv,{style:{paddingBottom:10}},o().createElement(D.xv,{style:ee.textLabels},"Validated by pathologist:"),o().createElement(D.xv,{style:[ee.textAnswers,{fontWeight:"bold"}]}," ",e.encounterInfo.approvedBy)))))};function ne(e,t){(null==t||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function re(){return re=Object.assign||function(e){for(var t=1;t<arguments.length;t++){var n=arguments[t];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(e[r]=n[r])}return e},re.apply(this,arguments)}function oe(e,t){return function(e){if(Array.isArray(e))return e}(e)||function(e,t){var n=null==e?null:"undefined"!=typeof Symbol&&e[Symbol.iterator]||e["@@iterator"];if(null!=n){var r,o,a=[],s=!0,u=!1;try{for(n=n.call(e);!(s=(r=n.next()).done)&&(a.push(r.value),!t||a.length!==t);s=!0);}catch(e){u=!0,o=e}finally{try{s||null==n.return||n.return()}finally{if(u)throw o}}return a}}(e,t)||function(e,t){if(e){if("string"==typeof e)return ne(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);return"Object"===n&&e.constructor&&(n=e.constructor.name),"Map"===n||"Set"===n?Array.from(n):"Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)?ne(e,t):void 0}}(e,t)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}const ae=function(){var e=(0,x.useConfig)(),t=oe(o().useState(),2),n=t[0],r=t[1],a=oe(o().useState([]),2),s=a[0],u=a[1],c=oe(o().useState(""),2),i=c[0],l=c[1],p=oe(o().useState([]),2),d=p[0],m=p[1],f=oe(o().useState([]),2),y=f[0],h=f[1],v=oe(o().useState([]),2),g=v[0],b=v[1],B=oe(o().useState(""),2),k=B[0],F=B[1],L=oe(o().useState(""),2),P=L[0],R=L[1],Z=oe(o().useState(""),2),G=Z[0],X=Z[1];o().useEffect((function(){T(e.healthCenterAttrTypeUUID).then(r),function(){return j.apply(this,arguments)}().then(m),N(e.sampleStatusConceptUUID).then(h),N(e.referralStatusConceptUUID).then(b),function(e,t){return W.apply(this,arguments)}(e.healthCenterAttrTypeUUID,e.pathologyFullAllowedLocationUUID).then(u)}),[]);var $=s.filter((function(e){var t;return!k||(null===(t=e.sampleStatusObs)||void 0===t?void 0:t.toLowerCase())==k.toLowerCase()})).filter((function(e){var t;return!P||(null===(t=e.referralStatusObs)||void 0===t?void 0:t.toLowerCase())==P.toLowerCase()})).filter((function(e){var t;return!i||(null===(t=e.patientHealthCenter)||void 0===t?void 0:t.toLowerCase())==i.toLowerCase()})).filter((function(e){if(G){var t=G.split(/\s+/),n="".concat(e.family_name," ").concat(e.middle_name," ").concat(e.given_name);return t.every((function(e){return new RegExp("\\b"+e,"i").test(n)}))}return!0})).map((function(t){return{id:t.encounterId,patientNames:o().createElement("a",{"data-testid":"patientNames",href:"/openmrs/patientDashboard.form?patientId=".concat(t.personId)},t.family_name," ",t.given_name," ",t.middle_name),pathologyRequest:o().createElement("a",{href:"/openmrs/module/htmlformentry/htmlFormEntry.form?encounterId=".concat(t.encounterId,"&mode=VIEW")}," ","Link"," "),sendingHospital:t.patientHealthCenter,phoneNumber:t.patientPhoneNumber||"",sampleStatus:o().createElement("select",{onChange:function(e){return K({uuid:e.target.value,display:e.target.options[e.target.selectedIndex].text},t)}},o().createElement("option",{value:""}),y.map((function(e){return o().createElement("option",{"data-testid":"sampleStatus-option",value:e.uuid,key:e.uuid,selected:!!t.sampleStatusObs&&t.sampleStatusObs===e.display&&!0},e.display)}))),dateOfRequest:new Date(t.encounterDatetime).toLocaleString(["en-GB","en-US","en","fr-RW"],{day:"numeric",month:"numeric",year:"numeric"}),referralStatus:o().createElement("select",{onChange:function(e){return Q({uuid:e.target.value,display:e.target.options[e.target.selectedIndex].text},t)}},o().createElement("option",{"data-testid":"referralStatus-option",value:""}),g.map((function(e){return o().createElement("option",{value:e.uuid,key:e.uuid,selected:t.referralStatusObs&&t.referralStatusObs===e.display},e.display)}))),sampleDropOff:o().createElement("input",{"data-testid":"sampleDropOff",type:"checkbox",checked:Boolean(t.sampleDropoffObs),onChange:function(e){return J(t)}}),pathologicDiagnosisObs:t.pathologicDiagnosisObs,resultsEncounter:t.resultsEncounterId?o().createElement("a",{"data-testid":"resultsEncounter",href:"/openmrs/module/htmlformentry/htmlFormEntry.form?encounterId=".concat(t.resultsEncounterId,"&mode=VIEW")}," ","Results"," "):(!n||n===e.pathologyFullAllowedLocationUUID)&&o().createElement("a",{href:"/openmrs/module/htmlformentry/htmlFormEntry.form?personId=".concat(t.personId,"&patientId=").concat(t.personId,"&returnUrl=&formId=").concat(e.pathologyResultsFromID,"&uuid=").concat(t.encounterUuid)}," ","Fill in results"," "),PDFReport:t.resultsEncounterId&&t.approvedBy&&o().createElement(D.WD,{document:o().createElement(te,{encounterInfo:t,config:e}),fileName:"Pathology Report"},(function(e){return e.loading?"loading...":o().createElement("button",null,"Download")}))}})),J=function(t){var n=(0,E.Z)(s);t.sampleDropoffObs?function(e){return q.apply(this,arguments)}(t.sampleDropoffObsUuid).then((function(e){if(e.ok){var r=n.findIndex((function(e){return e.encounterUuid==t.encounterUuid}));n[r].sampleDropoffObs="",n[r].sampleDropoffObsUuid="",u(n)}})):function(e,t,n,r){return Y.apply(this,arguments)}(t,e.sampleDropOffconceptUUID,e.healthCenterAttrTypeUUID,e.yesConceptUUID).then((function(r){if(r.ok){var o=n.findIndex((function(e){return e.encounterUuid==t.encounterUuid}));n[o].sampleDropoffObs=e.yesConceptName,n[o].sampleDropoffObsUuid=r.data.uuid,u(n)}}))},K=function(t,n){var r=(0,E.Z)(s);n.sampleStatusObs?function(e,t,n,r){return M.apply(this,arguments)}(t,n,e.sampleStatusConceptUUID,e.healthCenterAttrTypeUUID).then((function(e){if(e.ok){var o=r.findIndex((function(e){return e.encounterUuid==n.encounterUuid}));r[o].sampleStatusObs=t.display,r[o].sampleStatusObsUuid=e.data.uuid,u(r)}else u(r)})):function(e,t,n,r){return H.apply(this,arguments)}(t.uuid,n,e.sampleStatusConceptUUID,e.healthCenterAttrTypeUUID).then((function(e){if(e.ok){var o=r.findIndex((function(e){return e.encounterUuid==n.encounterUuid}));r[o].sampleStatusObs=t.display,r[o].sampleStatusObsUuid=e.data.uuid,u(r)}else u(r)}))},Q=function(t,n){var r=(0,E.Z)(s);n.referralStatusObs?function(e,t,n,r){return V.apply(this,arguments)}(t,n,e.referralStatusConceptUUID,e.healthCenterAttrTypeUUID).then((function(e){if(e.ok){var o=r.findIndex((function(e){return e.encounterUuid==n.encounterUuid}));r[o].referralStatusObs=t.display,r[o].referralStatusObsUuid=e.data.uuid,u(r)}else u(r)})):function(e,t,n,r){return z.apply(this,arguments)}(t.uuid,n,e.referralStatusConceptUUID,e.healthCenterAttrTypeUUID).then((function(e){if(e.ok){var o=r.findIndex((function(e){return e.encounterUuid==n.encounterUuid}));r[o].referralStatusObs=t.display,r[o].referralStatusObsUuid=e.data.uuid,u(r)}else u(r)}))};return o().createElement("div",null,o().createElement("div",{className:O.filtersContainer},o().createElement("label",{htmlFor:"sending-hospital"},"Sending Hospital "),o().createElement("select",{id:"sending-hospital",className:O.dropdown,value:i,onChange:function(e){return l(e.target.value)}},o().createElement("option",{value:""}),d.map((function(t){return n&&n!==e.pathologyFullAllowedLocationUUID?t.uuid===n?o().createElement("option",{value:t.display,key:t.uuid},t.display):null:o().createElement("option",{value:t.display,key:t.uuid},t.display)}))),o().createElement("label",{htmlFor:"sample-status"},"Sample Status "),o().createElement("select",{id:"sample-status",className:O.dropdown,value:k,onChange:function(e){return F(e.target.value)}},o().createElement("option",{value:""}),y.map((function(e){return o().createElement("option",{value:e.display,key:e.uuid},e.display)}))),o().createElement("label",{htmlFor:"referral-status"},"Referral Status "),o().createElement("select",{id:"referral-status",className:O.dropdown,value:P,onChange:function(e){return R(e.target.value)}},o().createElement("option",{value:""}),g.map((function(e){return o().createElement("option",{value:e.display,key:e.uuid},e.display)}))),o().createElement("label",{htmlFor:"patient-name"},"Patient Name "),o().createElement("input",{id:"patient-name",className:O.textBox,type:"text",onChange:function(e){return X(e.target.value)}})),o().createElement("div",{className:O.tableContainer},o().createElement(A.ZP,{rows:$,headers:[{key:"patientNames",header:"Patient name"},{key:"pathologyRequest",header:"pathology request"},{key:"sendingHospital",header:"Sending Hospital"},{key:"phoneNumber",header:"Phone number"},{key:"sampleStatus",header:"Sample status"},{key:"dateOfRequest",header:"Date of Request"},{key:"referralStatus",header:"Referral status"},{key:"sampleDropOff",header:"Sample drop off?"},{key:"pathologicDiagnosisObs",header:"Pathologic diagnosis"},{key:"resultsEncounter",header:"Results"},{key:"PDFReport",header:"Report"}]},(function(e){var t=e.rows,n=e.headers,r=e.getTableProps,a=e.getHeaderProps,s=e.getRowProps;return o().createElement(w.Z,re({},r()),o().createElement(U.Z,null,o().createElement(_.Z,null,n.map((function(e){return o().createElement(S.Z,re({},a({header:e})),e.header)})))),o().createElement(C.Z,null,t.map((function(e){return o().createElement(_.Z,re({},s({row:e})),e.cells.map((function(e){return o().createElement(I.Z,{key:e.id},e.value)})))}))))}))),o().createElement("div",null))},se=function(){return o().createElement("div",{className:"omrs-main-content ".concat(b.container)},o().createElement(ae,null))}},8814:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});var r=n(1799),o=n.n(r),a=n(2609),s=n.n(a)()(o());s.push([e.id,".-esm-pathology__ReportComponent__tableContainer___uOmmk {\n height: 500px;\n overflow-x: auto;\n margin: 0 1rem;\n border: 2px solid lightgrey;\n border-radius: 0.25rem;\n}\n\n.-esm-pathology__ReportComponent__filtersContainer___avnpi {\n border-radius: 0.25rem;\n margin: 0 1rem;\n padding-top: 4%;\n}\n\n.-esm-pathology__ReportComponent__dropdown___Lr3Fe {\n width: 10%;\n height: 2rem;\n background: transparent;\n border: 1px solid var(--omrs-color-ink-lowest-contrast);\n background-clip: padding-box;\n border-radius: 4px;\n margin: 1rem;\n}\n.-esm-pathology__ReportComponent__dropdown___Lr3Fe:disabled {\n opacity: 0.8;\n background: lightgrey;\n cursor: not-allowed;\n}\n.-esm-pathology__ReportComponent__dropdown___Lr3Fe:focus {\n border: 2px solid var(--omrs-color-interaction);\n outline: 0;\n}\n.-esm-pathology__ReportComponent__textBox___-gvpP {\n background: transparent;\n border: 1px solid var(--omrs-color-ink-lowest-contrast);\n background-clip: padding-box;\n border-radius: 4px;\n margin: 1rem;\n}\n","",{version:3,sources:["webpack://./src/pathology-report/ReportComponent.css"],names:[],mappings:"AAAA;EACE,aAAa;EACb,gBAAgB;EAChB,cAAc;EACd,2BAA2B;EAC3B,sBAAsB;AACxB;;AAEA;EACE,sBAAsB;EACtB,cAAc;EACd,eAAe;AACjB;;AAEA;EACE,UAAU;EACV,YAAY;EACZ,uBAAuB;EACvB,uDAAuD;EACvD,4BAA4B;EAC5B,kBAAkB;EAClB,YAAY;AACd;AACA;EACE,YAAY;EACZ,qBAAqB;EACrB,mBAAmB;AACrB;AACA;EACE,+CAA+C;EAC/C,UAAU;AACZ;AACA;EACE,uBAAuB;EACvB,uDAAuD;EACvD,4BAA4B;EAC5B,kBAAkB;EAClB,YAAY;AACd",sourcesContent:[".tableContainer {\n height: 500px;\n overflow-x: auto;\n margin: 0 1rem;\n border: 2px solid lightgrey;\n border-radius: 0.25rem;\n}\n\n.filtersContainer {\n border-radius: 0.25rem;\n margin: 0 1rem;\n padding-top: 4%;\n}\n\n.dropdown {\n width: 10%;\n height: 2rem;\n background: transparent;\n border: 1px solid var(--omrs-color-ink-lowest-contrast);\n background-clip: padding-box;\n border-radius: 4px;\n margin: 1rem;\n}\n.dropdown:disabled {\n opacity: 0.8;\n background: lightgrey;\n cursor: not-allowed;\n}\n.dropdown:focus {\n border: 2px solid var(--omrs-color-interaction);\n outline: 0;\n}\n.textBox {\n background: transparent;\n border: 1px solid var(--omrs-color-ink-lowest-contrast);\n background-clip: padding-box;\n border-radius: 4px;\n margin: 1rem;\n}\n"],sourceRoot:""}]),s.locals={tableContainer:"-esm-pathology__ReportComponent__tableContainer___uOmmk",filtersContainer:"-esm-pathology__ReportComponent__filtersContainer___avnpi",dropdown:"-esm-pathology__ReportComponent__dropdown___Lr3Fe",textBox:"-esm-pathology__ReportComponent__textBox___-gvpP"};const u=s},3147:(e,t,n)=>{"use strict";n.d(t,{Z:()=>u});var r=n(1799),o=n.n(r),a=n(2609),s=n.n(a)()(o());s.push([e.id,".-esm-pathology__pathology__container___ny2VS {\n padding: 2em;\n}\n","",{version:3,sources:["webpack://./src/pathology.css"],names:[],mappings:"AAAA;EACE,YAAY;AACd",sourcesContent:[".container {\n padding: 2em;\n}\n"],sourceRoot:""}]),s.locals={container:"-esm-pathology__pathology__container___ny2VS"};const u=s},633:()=>{}}]);
|
|
2
|
+
//# sourceMappingURL=449.js.map
|
package/dist/449.js.map
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"449.js","mappings":"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","sources":["webpack://@pih/esm-pathology-app/./src/pathology.css?c303","webpack://@pih/esm-pathology-app/./src/pathology-report/ReportComponent.css?4b89","webpack://@pih/esm-pathology-app/./src/Pathology-getter/ReportComponent.resource.ts","webpack://@pih/esm-pathology-app/./src/Print-to-PDF/Document-Component.tsx","webpack://@pih/esm-pathology-app/./src/pathology-report/ReportComponent.tsx","webpack://@pih/esm-pathology-app/./src/PathologySystem.tsx","webpack://@pih/esm-pathology-app/./src/pathology-report/ReportComponent.css","webpack://@pih/esm-pathology-app/./src/pathology.css"],"sourcesContent":["\n import API from \"!../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./pathology.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./pathology.css\";\n export default content && content.locals ? content.locals : undefined;\n","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./ReportComponent.css\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js??ruleSet[1].rules[1].use[1]!./ReportComponent.css\";\n export default content && content.locals ? content.locals : undefined;\n","import { openmrsFetch } from \"@openmrs/esm-framework\";\nimport cloneDeep from \"lodash-es/cloneDeep\";\n\nexport interface EncounterResult {\n family_name: string;\n given_name: string;\n middle_name: string;\n patientPhoneNumber: { value: string };\n patientHealthCenter: string;\n patientUuid: string;\n encounterUuid: string;\n encounterId: number;\n personId: number;\n encounterDatetime: Date;\n sampleStatusObs: string;\n referralStatusObs: string;\n sampleDropoffObs: string;\n resultsEncounterId: string;\n resultsEncounterUuid: string;\n resultsEncounter: [];\n approvedBy: string;\n approvalObsUuid: string;\n pathologicDiagnosisObs: string;\n}\nexport interface Patient {\n uuid: string;\n}\nexport interface Concept {\n uuid: string;\n name: string;\n display: string;\n}\n\nexport interface Obs {\n patientUuid: string;\n obsDateTime: string;\n sampleDropoffObsUuid: string;\n referralStatusObsUuid: string;\n sampleStatusObsUuid: string;\n location: string;\n encounterUuid: string;\n valueCodedName: string;\n voided: boolean;\n resultsEncounterUuid: string;\n}\n\nexport async function getUserLocation(healthCenterAttrTypeUUID) {\n const session = await openmrsFetch(`/ws/rest/v1/session`);\n const personUuid = session.data.user.person.uuid;\n const person = await openmrsFetch(\n `/ws/rest/v1/person/${personUuid}/attribute`\n );\n const hcPersonAttribute = person.data.results.filter(\n (attr) => attr.attributeType.uuid === healthCenterAttrTypeUUID\n );\n return hcPersonAttribute[0] && hcPersonAttribute[0].value.uuid;\n}\n\nexport async function getConceptAnswers(conceptUuid) {\n const concept = await openmrsFetch(\n `/ws/rest/v1/concept/${conceptUuid}?v=full`\n );\n return concept.data.answers;\n}\n\nexport async function getLocations() {\n const location = await openmrsFetch(`/ws/rest/v1/location`);\n\n return location.data.results;\n}\n\nexport async function getEncounters(\n healthCenterAttrTypeUUID: string,\n pathologyFullAllowedLocationUUID: string\n): Promise<Array<EncounterResult>> {\n const userLocationUUID = await getUserLocation(healthCenterAttrTypeUUID);\n\n let searchEncounter = null;\n if (\n userLocationUUID &&\n userLocationUUID != pathologyFullAllowedLocationUUID\n ) {\n searchEncounter = await openmrsFetch(\n `/ws/rest/v1/reportingrest/reportdata/996cf192-ff54-11eb-a63a-080027ce9ca0?location=${userLocationUUID}`\n );\n } else {\n searchEncounter = await openmrsFetch(\n `/ws/rest/v1/reportingrest/reportdata/996cf192-ff54-11eb-a63a-080027ce9ca0`\n );\n }\n\n const EncListClone = searchEncounter.data.dataSets[0].rows.map(\n async (encObject) => {\n if (encObject.resultsEncounterUuid) {\n const encIndex = searchEncounter.data.dataSets[0].rows.findIndex(\n (enc) => enc.encounterUuid == encObject.encounterUuid\n );\n const resultsEnc = await getEncounter(encObject.resultsEncounterUuid);\n encObject.resultsEncounter = resultsEnc;\n }\n return encObject;\n }\n );\n\n return Promise.all(EncListClone);\n}\n\nexport async function postSampleDropoffObs(\n obsObject: Obs,\n sampleDropOffconceptUUID: string,\n healthCenterAttrTypeUUID: string,\n yesConceptName: string\n) {\n const ObsObjectTocreate = {\n person: obsObject.patientUuid,\n obsDatetime: new Date().toISOString(),\n concept: sampleDropOffconceptUUID,\n location: await getUserLocation(healthCenterAttrTypeUUID),\n encounter: obsObject.encounterUuid,\n value: yesConceptName,\n voided: false,\n };\n\n const response = await openmrsFetch(\"/ws/rest/v1/obs\", {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: ObsObjectTocreate,\n });\n return response;\n}\n\nexport async function voidSampleDropoff(sampleDropoffObsUuid: string) {\n const ObsObjectTocreate = {\n voided: true,\n };\n\n const response = await openmrsFetch(\n `/ws/rest/v1/obs/${sampleDropoffObsUuid}`,\n {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: ObsObjectTocreate,\n }\n );\n\n return response;\n}\n\nexport async function postSampleStatusChangeObs(\n newStatusUuid: string,\n obs: Obs,\n sampleStatusConceptUUID: string,\n healthCenterAttrTypeUUID: string\n) {\n const postBody = {\n person: obs.patientUuid,\n obsDatetime: new Date().toISOString(),\n concept: sampleStatusConceptUUID,\n location: await getUserLocation(healthCenterAttrTypeUUID),\n encounter: obs.encounterUuid,\n value: newStatusUuid,\n voided: false,\n };\n\n const response = await openmrsFetch(\"/ws/rest/v1/obs\", {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: postBody,\n });\n\n return response;\n}\n\nexport async function updateSampleStatusChangeObs(\n newStatus: null | { uuid: string; display: string },\n obsObject: Obs,\n sampleStatusConceptUUID: string,\n healthCenterAttrTypeUUID: string\n) {\n const ObsObjectTocreate = {\n person: obsObject.patientUuid,\n obsDatetime: new Date().toISOString(),\n concept: sampleStatusConceptUUID,\n location: await getUserLocation(healthCenterAttrTypeUUID),\n encounter: obsObject.encounterUuid,\n value: newStatus.uuid,\n voided: newStatus ? false : true,\n };\n\n const response = await openmrsFetch(\n `/ws/rest/v1/obs/${obsObject.sampleStatusObsUuid}`,\n {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: ObsObjectTocreate,\n }\n );\n\n return response;\n}\n\nexport async function postReferralStatusChangeObs(\n targetValueUuid: string,\n obsObject: Obs,\n referralStatusConceptUUID: string,\n healthCenterAttrTypeUUID: string\n) {\n const ObsObjectTocreate = {\n person: obsObject.patientUuid,\n obsDatetime: new Date().toISOString(),\n concept: referralStatusConceptUUID,\n location: await getUserLocation(healthCenterAttrTypeUUID),\n encounter: obsObject.encounterUuid,\n value: targetValueUuid,\n voided: false,\n };\n\n const response = await openmrsFetch(\"/ws/rest/v1/obs\", {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: ObsObjectTocreate,\n });\n\n return response;\n}\n\nexport async function updateReferralStatusChangeObs(\n targetValue,\n obsObject: Obs,\n referralStatusConceptUUID,\n healthCenterAttrTypeUUID\n) {\n const ObsObjectTocreate = {\n person: obsObject.patientUuid,\n obsDatetime: new Date().toISOString(),\n concept: referralStatusConceptUUID,\n location: await getUserLocation(healthCenterAttrTypeUUID),\n encounter: obsObject.encounterUuid,\n value: targetValue.uuid,\n voided: targetValue ? false : true,\n };\n\n const response = await openmrsFetch(\n `/ws/rest/v1/obs/${obsObject.referralStatusObsUuid}`,\n {\n method: \"POST\",\n headers: {\n \"content-type\": \"application/json\",\n },\n body: ObsObjectTocreate,\n }\n );\n\n return response;\n}\n\nexport async function getUser(userUuid: string) {\n const user = await openmrsFetch(`/ws/rest/v1/user/${userUuid}`);\n\n return user.data;\n}\nexport async function getEncounter(encounterUuid) {\n const encResult = await openmrsFetch(\n `/ws/rest/v1/encounter/${encounterUuid}?v=full`\n );\n\n return encResult.data;\n}\n","import React from \"react\";\nimport {\n Document,\n Page,\n Text,\n Image,\n View,\n StyleSheet,\n Font,\n} from \"@react-pdf/renderer\";\nimport ButaroLogo from \"../images/ButaroHospitalLogo.gif\";\nimport GeorgiaFontBold from \"../Fonts/georgia/georgia-bold.ttf\";\nimport GeorgiaFont from \"../Fonts/georgia/Georgia.ttf\";\n\nFont.register({ family: \"GeorgiaBold\", src: GeorgiaFontBold });\nFont.register({ family: \"Georgia\", src: GeorgiaFont });\n\n// Create styles\nconst styles = StyleSheet.create({\n page: {\n flexDirection: \"row\",\n },\n section: {\n margin: 10,\n padding: 20,\n flexGrow: 1,\n },\n textLabels: {\n padding: 7,\n fontFamily: \"GeorgiaBold\",\n fontSize: 16,\n fontWeight: \"bold\",\n paddingBottom: 30,\n },\n sentenceLabels: {\n paddingTop: 7,\n fontFamily: \"GeorgiaBold\",\n fontSize: 16,\n fontWeight: \"bold\",\n paddingBottom: 3,\n },\n textAnswers: {\n margin: 10,\n padding: 20,\n fontFamily: \"Georgia\",\n fontSize: 14,\n },\n sentenceAnswers: {\n marginBottom: 10,\n paddingBottom: 20,\n fontFamily: \"Georgia\",\n fontSize: 14,\n },\n logo: {\n width: 61,\n },\n});\n\n// Create Document Component\nconst MyDocument = (props) => (\n <Document\n title={`Pathology report \n ${props.encounterInfo.family_name} \n ${props.encounterInfo.given_name} \n ${props.encounterInfo.middle_name} `}\n >\n <Page size=\"A4\" style={styles.page}>\n <View style={styles.section}>\n <Image style={styles.logo} src={ButaroLogo} />\n <Text style={{ fontSize: 8 }}>Butaro Hospital</Text>\n <Text style={{ position: \"absolute\", top: 0, left: 300, width: 300 }}>\n <Text style={styles.textAnswers}>Lab phone number:</Text>\n <Text> {props.config.LabPhoneNumber}</Text>\n </Text>\n <Text style={{ position: \"absolute\", top: 15, left: 300, width: 300 }}>\n <Text style={styles.textAnswers}>Accession number:</Text>\n <Text>\n {\" \"}\n {props.encounterInfo.resultsEncounter.obs.map(\n (obser) =>\n obser.concept.uuid == props.config.AccessionNumberconceptUUID &&\n obser.value\n )}\n </Text>\n </Text>\n <Text\n style={{\n borderBottom: \"1px\",\n textAlign: \"center\",\n fontWeight: 1500,\n marginBottom: 30,\n fontFamily: \"GeorgiaBold\",\n }}\n >\n Pathology Report\n </Text>\n <Text style={{ paddingBottom: 10 }}>\n <Text style={styles.textAnswers}>Patient Name:</Text>\n <Text style={styles.textAnswers}>\n {\" \"}\n {props.encounterInfo.family_name} {props.encounterInfo.given_name}{\" \"}\n {props.encounterInfo.middle_name}\n </Text>\n </Text>\n <Text\n style={{\n paddingBottom: 10,\n position: \"absolute\",\n top: 140,\n left: 335,\n }}\n >\n <Text style={styles.textAnswers}>Surgery Date:</Text>\n <Text style={styles.textAnswers}>\n {\" \"}\n {props.encounterInfo.resultsEncounter.obs.map(\n (obser) =>\n obser.concept.uuid ==\n props.config.DateBiopsySpecimenTakenconceptUUID &&\n new Date(obser.value).toLocaleString(\n [\"en-GB\", \"en-US\", \"en\", \"fr-RW\"],\n { day: \"numeric\", month: \"numeric\", year: \"numeric\" }\n )\n )}\n </Text>\n </Text>\n <Text style={{ paddingBottom: 10 }}>\n <Text style={styles.textAnswers}>Patient Birthdate:</Text>\n <Text style={styles.textAnswers}>\n {\" \"}\n {new Date(props.encounterInfo.personBirthdate).toLocaleString(\n [\"en-GB\", \"en-US\", \"en\", \"fr-RW\"],\n { day: \"numeric\", month: \"numeric\", year: \"numeric\" }\n )}\n </Text>\n </Text>\n <Text\n style={{\n paddingBottom: 10,\n position: \"absolute\",\n top: 168,\n left: 335,\n width: 200,\n }}\n >\n <Text style={styles.textAnswers}>Specimen Reception Date:</Text>\n <Text style={styles.textAnswers}>\n {\" \"}\n {props.encounterInfo.resultsEncounter.obs.map(\n (obser) =>\n obser.concept.uuid ==\n props.config.SpecimenSubmissionDateconceptUUID &&\n new Date(obser.value).toLocaleString(\n [\"en-GB\", \"en-US\", \"en\", \"fr-RW\"],\n { day: \"numeric\", month: \"numeric\", year: \"numeric\" }\n )\n )}\n </Text>\n </Text>\n <Text style={{ paddingBottom: 10, borderBottom: \"1px\" }}>\n <Text style={styles.textAnswers}>Patient Gender:</Text>\n <Text style={styles.textAnswers}>\n {\" \"}\n {props.encounterInfo.personGender}\n </Text>\n </Text>\n <Text\n style={{\n paddingBottom: 10,\n position: \"absolute\",\n top: 200,\n left: 335,\n width: 250,\n }}\n >\n <Text style={styles.textAnswers}>Signout Date:</Text>\n <Text style={styles.textAnswers}>\n {\" \"}\n {new Date(\n props.encounterInfo.resultsEncounter.encounterDatetime\n ).toLocaleString([\"en-GB\", \"en-US\", \"en\", \"fr-RW\"], {\n day: \"numeric\",\n month: \"numeric\",\n year: \"numeric\",\n })}\n </Text>\n </Text>\n\n <Text style={{ paddingBottom: 10 }}>\n <Text style={styles.textLabels}>Sending Physician:</Text>\n <Text style={styles.textAnswers}>\n {\" \"}\n {props.encounterInfo.resultsEncounter.obs.map(\n (obser) =>\n obser.concept.uuid ==\n props.config.SendingPhysicianconceptUUID && obser.value\n )}\n </Text>\n </Text>\n <Text style={{ paddingBottom: 10 }}>\n <Text style={styles.textLabels}>Sending Facility:</Text>\n <Text style={styles.textAnswers}>\n {\" \"}\n {props.encounterInfo.resultsEncounter.obs.map(\n (obser) =>\n obser.concept.uuid ==\n props.config.OtherBiopsyLocationconceptUUID && obser.value\n )}\n </Text>\n </Text>\n <Text style={{ paddingBottom: 10, fontFamily: \"Georgia\" }}>\n Anatomical location:\n </Text>\n <Text style={{ paddingBottom: 10, paddingLeft: 10 }}>\n <Text style={styles.textLabels}>i.System:</Text>\n <Text style={styles.textAnswers}>\n {\" \"}\n {props.encounterInfo.resultsEncounter.obs.map(\n (obser) =>\n obser.concept.uuid == props.config.OrganSystemconceptUUID &&\n obser.value.name.display + \", \"\n )}\n </Text>\n </Text>\n <Text style={{ paddingBottom: 10, paddingLeft: 10 }}>\n <Text style={styles.textLabels}>ii.Organ:</Text>\n <Text style={styles.textAnswers}>\n {\" \"}\n {props.encounterInfo.resultsEncounter.obs.map(\n (obser) =>\n obser.concept.uuid == props.config.OrganconceptUUID &&\n obser.value.name.display + \", \"\n )}\n </Text>\n </Text>\n <Text style={{ paddingBottom: 10, paddingLeft: 10 }}>\n <Text style={styles.textLabels}>iii.Detail:</Text>\n <Text style={styles.textAnswers}>\n {\" \"}\n {props.encounterInfo.resultsEncounter.obs.map(\n (obser) =>\n obser.concept.uuid == props.config.SpecimenDetailconceptUUID &&\n obser.value\n )}\n </Text>\n </Text>\n <Text style={{ paddingBottom: 10 }}>\n <Text style={styles.textLabels}>Procedure type:</Text>\n <Text style={styles.textAnswers}>\n {\" \"}\n {props.encounterInfo.resultsEncounter.obs.map(\n (obser) =>\n obser.concept.uuid ==\n props.config.OtherTestsOrProceduresconceptUUID && obser.value\n )}\n </Text>\n </Text>\n <Text style={[styles.sentenceLabels]}>Gross Description:</Text>\n <Text style={[styles.sentenceAnswers]}>\n {props.encounterInfo.resultsEncounter.obs.map(\n (obser) =>\n obser.concept.uuid == props.config.GrossDescriptionconceptUUID &&\n obser.value\n )}\n </Text>\n <Text style={styles.sentenceLabels}>Microscopic Examination:</Text>\n <Text style={styles.sentenceAnswers}>\n {props.encounterInfo.resultsEncounter.obs.map(\n (obser) =>\n obser.concept.uuid ==\n props.config.MacroscopicExaminationconceptUUID && obser.value\n )}\n </Text>\n <Text style={styles.sentenceLabels}>Conclusion:</Text>\n <Text style={styles.sentenceAnswers}>\n {props.encounterInfo.resultsEncounter.obs.map(\n (obser) =>\n obser.concept.uuid ==\n props.config.COMMENTSATCONCLUSIONOFEXAMINATIONconceptUUID &&\n obser.value\n )}\n </Text>\n\n <Text style={{ paddingBottom: 10 }}>\n <Text style={styles.textLabels}>Validated by pathologist:</Text>\n <Text style={[styles.textAnswers, { fontWeight: \"bold\" }]}>\n {\" \"}\n {props.encounterInfo.approvedBy}\n </Text>\n </Text>\n </View>\n </Page>\n </Document>\n);\n\nexport default MyDocument;\n","import React from \"react\";\nimport { useConfig } from \"@openmrs/esm-framework\";\nimport cloneDeep from \"lodash-es/cloneDeep\";\nimport DataTable, {\n Table,\n TableHead,\n TableRow,\n TableHeader,\n TableBody,\n TableCell,\n} from \"carbon-components-react/es/components/DataTable\";\nimport { PDFDownloadLink } from \"@react-pdf/renderer\";\n\nimport styles from \"./ReportComponent.css\";\nimport {\n getUserLocation,\n getConceptAnswers,\n getLocations,\n getEncounters,\n postSampleDropoffObs,\n voidSampleDropoff,\n postSampleStatusChangeObs,\n updateSampleStatusChangeObs,\n postReferralStatusChangeObs,\n updateReferralStatusChangeObs,\n EncounterResult,\n getUser,\n Concept,\n getEncounter,\n} from \"../Pathology-getter/ReportComponent.resource\";\nimport MyDocument from \"../Print-to-PDF/Document-Component\";\nimport { Config } from \"../config-schema\";\n\nconst ReportComponent = () => {\n const config = useConfig() as Config;\n const [userLocation, setUserLocation] = React.useState();\n const [encountersList, setEncountersList] = React.useState<\n Array<EncounterResult>\n >([]);\n const [sendingHospital, setSendingHospital] = React.useState(\"\");\n const [listOfHospitals, setListOfHospitals] = React.useState([]);\n const [sampleStatusAnswers, setSampleStatusAnswers] = React.useState<\n Array<Concept>\n >([]);\n const [referralStatusAnswers, setReferralStatusAnswers] = React.useState<\n Array<Concept>\n >([]);\n const [sampleStatus, setSampleStatus] = React.useState(\"\");\n const [referralStatus, setReferralStatus] = React.useState(\"\");\n const [patientName, setPatientName] = React.useState(\"\");\n const headers = [\n {\n key: \"patientNames\",\n header: \"Patient name\",\n },\n {\n key: \"pathologyRequest\",\n header: \"pathology request\",\n },\n {\n key: \"sendingHospital\",\n header: \"Sending Hospital\",\n },\n {\n key: \"phoneNumber\",\n header: \"Phone number\",\n },\n {\n key: \"sampleStatus\",\n header: \"Sample status\",\n },\n {\n key: \"dateOfRequest\",\n header: \"Date of Request\",\n },\n {\n key: \"referralStatus\",\n header: \"Referral status\",\n },\n {\n key: \"sampleDropOff\",\n header: \"Sample drop off?\",\n },\n {\n key: \"pathologicDiagnosisObs\",\n header: \"Pathologic diagnosis\",\n },\n {\n key: \"resultsEncounter\",\n header: \"Results\",\n },\n {\n key: \"PDFReport\",\n header: \"Report\",\n },\n ];\n\n React.useEffect(() => {\n getUserLocation(config.healthCenterAttrTypeUUID).then(setUserLocation);\n getLocations().then(setListOfHospitals);\n getConceptAnswers(config.sampleStatusConceptUUID).then(\n setSampleStatusAnswers\n );\n getConceptAnswers(config.referralStatusConceptUUID).then(\n setReferralStatusAnswers\n );\n getEncounters(\n config.healthCenterAttrTypeUUID,\n config.pathologyFullAllowedLocationUUID\n ).then(setEncountersList);\n }, []);\n\n const filteredEncList = encountersList\n .filter(\n (encList) =>\n !sampleStatus ||\n encList.sampleStatusObs?.toLowerCase() == sampleStatus.toLowerCase()\n )\n .filter(\n (encList) =>\n !referralStatus ||\n encList.referralStatusObs?.toLowerCase() == referralStatus.toLowerCase()\n )\n .filter(\n (encList) =>\n !sendingHospital ||\n encList.patientHealthCenter?.toLowerCase() ==\n sendingHospital.toLowerCase()\n )\n .filter((encList) => {\n if (!patientName) {\n return true;\n } else {\n // Given a patient name filter input, break it up into tokens.\n // Filter to patients for which each token matches.\n // Matching is case-insensitive and matches the beginning of each name.\n const nameTokens = patientName.split(/\\s+/);\n const name = `${encList.family_name} ${encList.middle_name} ${encList.given_name}`;\n return nameTokens.every((token) =>\n new RegExp(\"\\\\b\" + token, \"i\").test(name)\n );\n }\n });\n\n const rows = filteredEncList.map((encounterInfo) => {\n return {\n id: encounterInfo.encounterId,\n patientNames: (\n <a\n data-testid=\"patientNames\"\n href={`/openmrs/patientDashboard.form?patientId=${encounterInfo.personId}`}\n >\n {encounterInfo.family_name}\n {\" \"}\n {encounterInfo.given_name}\n {\" \"}\n {encounterInfo.middle_name}\n </a>\n ),\n pathologyRequest: (\n <a\n href={`/openmrs/module/htmlformentry/htmlFormEntry.form?encounterId=${encounterInfo.encounterId}&mode=VIEW`}\n >\n {\" \"}\n Link{\" \"}\n </a>\n ),\n sendingHospital: encounterInfo.patientHealthCenter,\n phoneNumber: encounterInfo.patientPhoneNumber || \"\",\n sampleStatus: (\n <select\n onChange={(e) =>\n sampleStatusChange(\n {\n uuid: e.target.value,\n display: e.target.options[e.target.selectedIndex].text,\n },\n encounterInfo\n )\n }\n >\n <option value=\"\"></option>\n {sampleStatusAnswers.map((ans) => (\n <option\n data-testid=\"sampleStatus-option\"\n value={ans.uuid}\n key={ans.uuid}\n selected={\n encounterInfo.sampleStatusObs\n ? encounterInfo.sampleStatusObs === ans.display && true\n : false\n }\n >\n {ans.display}\n </option>\n ))}\n </select>\n ),\n dateOfRequest: new Date(encounterInfo.encounterDatetime).toLocaleString(\n [\"en-GB\", \"en-US\", \"en\", \"fr-RW\"],\n { day: \"numeric\", month: \"numeric\", year: \"numeric\" }\n ),\n referralStatus: (\n <select\n onChange={(e) =>\n referralStatusChange(\n {\n uuid: e.target.value,\n display: e.target.options[e.target.selectedIndex].text,\n },\n encounterInfo\n )\n }\n >\n <option data-testid=\"referralStatus-option\" value=\"\"></option>\n {referralStatusAnswers.map((ans) => (\n <option\n value={ans.uuid}\n key={ans.uuid}\n selected={\n encounterInfo.referralStatusObs &&\n encounterInfo.referralStatusObs === ans.display\n }\n >\n {ans.display}\n </option>\n ))}\n </select>\n ),\n sampleDropOff: (\n <input\n data-testid=\"sampleDropOff\"\n type=\"checkbox\"\n checked={Boolean(encounterInfo.sampleDropoffObs)}\n onChange={(e) => sampleDropOffChange(encounterInfo)}\n />\n ),\n pathologicDiagnosisObs: encounterInfo.pathologicDiagnosisObs,\n resultsEncounter: encounterInfo.resultsEncounterId ? (\n <a\n data-testid=\"resultsEncounter\"\n href={`/openmrs/module/htmlformentry/htmlFormEntry.form?encounterId=${encounterInfo.resultsEncounterId}&mode=VIEW`}\n >\n {\" \"}\n Results{\" \"}\n </a>\n ) : (\n (!userLocation ||\n userLocation === config.pathologyFullAllowedLocationUUID) && (\n <a\n href={`/openmrs/module/htmlformentry/htmlFormEntry.form?personId=${encounterInfo.personId}&patientId=${encounterInfo.personId}&returnUrl=&formId=${config.pathologyResultsFromID}&uuid=${encounterInfo.encounterUuid}`}\n >\n {\" \"}\n Fill in results{\" \"}\n </a>\n )\n ),\n PDFReport: encounterInfo.resultsEncounterId &&\n encounterInfo.approvedBy && (\n <PDFDownloadLink\n document={\n <MyDocument encounterInfo={encounterInfo} config={config} />\n }\n fileName=\"Pathology Report\"\n >\n {({ loading }) =>\n loading ? \"loading...\" : <button>Download</button>\n }\n </PDFDownloadLink>\n ),\n };\n });\n\n const sampleDropOffChange = (encounterInfo) => {\n const tempEncList = cloneDeep(encountersList);\n if (!encounterInfo.sampleDropoffObs) {\n postSampleDropoffObs(\n encounterInfo,\n config.sampleDropOffconceptUUID,\n config.healthCenterAttrTypeUUID,\n config.yesConceptUUID\n ).then((response) => {\n if (response.ok) {\n const encIndex = tempEncList.findIndex(\n (enc) => enc.encounterUuid == encounterInfo.encounterUuid\n );\n tempEncList[encIndex].sampleDropoffObs = config.yesConceptName;\n tempEncList[encIndex].sampleDropoffObsUuid = response.data.uuid;\n setEncountersList(tempEncList);\n }\n });\n } else {\n voidSampleDropoff(encounterInfo.sampleDropoffObsUuid).then((response) => {\n if (response.ok) {\n const encIndex = tempEncList.findIndex(\n (enc) => enc.encounterUuid == encounterInfo.encounterUuid\n );\n tempEncList[encIndex].sampleDropoffObs = \"\";\n tempEncList[encIndex].sampleDropoffObsUuid = \"\";\n setEncountersList(tempEncList);\n }\n });\n }\n };\n\n const sampleStatusChange = (\n newStatus: { uuid: string; display: string },\n encounterInfo\n ) => {\n const tempEncList = cloneDeep(encountersList);\n if (!encounterInfo.sampleStatusObs) {\n postSampleStatusChangeObs(\n newStatus.uuid,\n encounterInfo,\n config.sampleStatusConceptUUID,\n config.healthCenterAttrTypeUUID\n ).then((response) => {\n if (response.ok) {\n const encIndex = tempEncList.findIndex(\n (enc) => enc.encounterUuid == encounterInfo.encounterUuid\n );\n tempEncList[encIndex].sampleStatusObs = newStatus.display;\n tempEncList[encIndex].sampleStatusObsUuid = response.data.uuid;\n\n setEncountersList(tempEncList);\n } else {\n setEncountersList(tempEncList);\n //Need error message\n }\n });\n } else {\n updateSampleStatusChangeObs(\n newStatus,\n encounterInfo,\n config.sampleStatusConceptUUID,\n config.healthCenterAttrTypeUUID\n ).then((response) => {\n if (response.ok) {\n const encIndex = tempEncList.findIndex(\n (enc) => enc.encounterUuid == encounterInfo.encounterUuid\n );\n tempEncList[encIndex].sampleStatusObs = newStatus.display;\n tempEncList[encIndex].sampleStatusObsUuid = response.data.uuid;\n setEncountersList(tempEncList);\n } else {\n setEncountersList(tempEncList);\n //Need error message\n }\n });\n }\n };\n\n const referralStatusChange = (targetedElem, encounterInfo) => {\n const tempEncList = cloneDeep(encountersList);\n if (!encounterInfo.referralStatusObs) {\n postReferralStatusChangeObs(\n targetedElem.uuid,\n encounterInfo,\n config.referralStatusConceptUUID,\n config.healthCenterAttrTypeUUID\n ).then((response) => {\n if (response.ok) {\n const encIndex = tempEncList.findIndex(\n (enc) => enc.encounterUuid == encounterInfo.encounterUuid\n );\n tempEncList[encIndex].referralStatusObs = targetedElem.display;\n tempEncList[encIndex].referralStatusObsUuid = response.data.uuid;\n setEncountersList(tempEncList);\n } else {\n setEncountersList(tempEncList);\n //Need error message\n }\n });\n } else {\n updateReferralStatusChangeObs(\n targetedElem,\n encounterInfo,\n config.referralStatusConceptUUID,\n config.healthCenterAttrTypeUUID\n ).then((response) => {\n if (response.ok) {\n const encIndex = tempEncList.findIndex(\n (enc) => enc.encounterUuid == encounterInfo.encounterUuid\n );\n tempEncList[encIndex].referralStatusObs = targetedElem.display;\n tempEncList[encIndex].referralStatusObsUuid = response.data.uuid;\n setEncountersList(tempEncList);\n } else {\n setEncountersList(tempEncList);\n //Need error message\n }\n });\n }\n };\n\n return (\n <div>\n <div className={styles.filtersContainer}>\n <label htmlFor=\"sending-hospital\">Sending Hospital </label>\n <select\n id=\"sending-hospital\"\n className={styles.dropdown}\n value={sendingHospital}\n onChange={(e) => setSendingHospital(e.target.value)}\n >\n <option value=\"\"></option>\n {listOfHospitals.map((loc) =>\n userLocation &&\n userLocation !== config.pathologyFullAllowedLocationUUID ? (\n loc.uuid === userLocation ? (\n <option value={loc.display} key={loc.uuid}>\n {loc.display}\n </option>\n ) : null\n ) : (\n <option value={loc.display} key={loc.uuid}>\n {loc.display}\n </option>\n )\n )}\n </select>\n <label htmlFor=\"sample-status\">Sample Status </label>\n <select\n id=\"sample-status\"\n className={styles.dropdown}\n value={sampleStatus}\n onChange={(e) => setSampleStatus(e.target.value)}\n >\n <option value=\"\"></option>\n {sampleStatusAnswers.map((ans) => (\n <option value={ans.display} key={ans.uuid}>\n {ans.display}\n </option>\n ))}\n </select>\n <label htmlFor=\"referral-status\">Referral Status </label>\n <select\n id=\"referral-status\"\n className={styles.dropdown}\n value={referralStatus}\n onChange={(e) => setReferralStatus(e.target.value)}\n >\n <option value=\"\"></option>\n {referralStatusAnswers.map((ans) => (\n <option value={ans.display} key={ans.uuid}>\n {ans.display}\n </option>\n ))}\n </select>\n\n <label htmlFor=\"patient-name\">Patient Name </label>\n <input\n id=\"patient-name\"\n className={styles.textBox}\n type=\"text\"\n onChange={(e) => setPatientName(e.target.value)}\n />\n </div>\n <div className={styles.tableContainer}>\n <DataTable rows={rows} headers={headers}>\n {({ rows, headers, getTableProps, getHeaderProps, getRowProps }) => (\n <Table {...getTableProps()}>\n <TableHead>\n <TableRow>\n {headers.map((header) => (\n <TableHeader {...getHeaderProps({ header })}>\n {header.header}\n </TableHeader>\n ))}\n </TableRow>\n </TableHead>\n <TableBody>\n {rows.map((row) => (\n <TableRow {...getRowProps({ row })}>\n {row.cells.map((cell) => (\n <TableCell key={cell.id}>{cell.value}</TableCell>\n ))}\n </TableRow>\n ))}\n </TableBody>\n </Table>\n )}\n </DataTable>\n </div>\n <div></div>\n </div>\n );\n};\n\nexport default ReportComponent;\n","import React from \"react\";\nimport styles from \"./pathology.css\";\nimport ReportComponent from \"./pathology-report/ReportComponent\";\n\nconst PathologySystem = () => {\n return (\n <div className={`omrs-main-content ${styles.container}`}>\n <ReportComponent />\n </div>\n );\n};\nexport default PathologySystem;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".-esm-pathology__ReportComponent__tableContainer___uOmmk {\\n height: 500px;\\n overflow-x: auto;\\n margin: 0 1rem;\\n border: 2px solid lightgrey;\\n border-radius: 0.25rem;\\n}\\n\\n.-esm-pathology__ReportComponent__filtersContainer___avnpi {\\n border-radius: 0.25rem;\\n margin: 0 1rem;\\n padding-top: 4%;\\n}\\n\\n.-esm-pathology__ReportComponent__dropdown___Lr3Fe {\\n width: 10%;\\n height: 2rem;\\n background: transparent;\\n border: 1px solid var(--omrs-color-ink-lowest-contrast);\\n background-clip: padding-box;\\n border-radius: 4px;\\n margin: 1rem;\\n}\\n.-esm-pathology__ReportComponent__dropdown___Lr3Fe:disabled {\\n opacity: 0.8;\\n background: lightgrey;\\n cursor: not-allowed;\\n}\\n.-esm-pathology__ReportComponent__dropdown___Lr3Fe:focus {\\n border: 2px solid var(--omrs-color-interaction);\\n outline: 0;\\n}\\n.-esm-pathology__ReportComponent__textBox___-gvpP {\\n background: transparent;\\n border: 1px solid var(--omrs-color-ink-lowest-contrast);\\n background-clip: padding-box;\\n border-radius: 4px;\\n margin: 1rem;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/pathology-report/ReportComponent.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,aAAa;EACb,gBAAgB;EAChB,cAAc;EACd,2BAA2B;EAC3B,sBAAsB;AACxB;;AAEA;EACE,sBAAsB;EACtB,cAAc;EACd,eAAe;AACjB;;AAEA;EACE,UAAU;EACV,YAAY;EACZ,uBAAuB;EACvB,uDAAuD;EACvD,4BAA4B;EAC5B,kBAAkB;EAClB,YAAY;AACd;AACA;EACE,YAAY;EACZ,qBAAqB;EACrB,mBAAmB;AACrB;AACA;EACE,+CAA+C;EAC/C,UAAU;AACZ;AACA;EACE,uBAAuB;EACvB,uDAAuD;EACvD,4BAA4B;EAC5B,kBAAkB;EAClB,YAAY;AACd\",\"sourcesContent\":[\".tableContainer {\\n height: 500px;\\n overflow-x: auto;\\n margin: 0 1rem;\\n border: 2px solid lightgrey;\\n border-radius: 0.25rem;\\n}\\n\\n.filtersContainer {\\n border-radius: 0.25rem;\\n margin: 0 1rem;\\n padding-top: 4%;\\n}\\n\\n.dropdown {\\n width: 10%;\\n height: 2rem;\\n background: transparent;\\n border: 1px solid var(--omrs-color-ink-lowest-contrast);\\n background-clip: padding-box;\\n border-radius: 4px;\\n margin: 1rem;\\n}\\n.dropdown:disabled {\\n opacity: 0.8;\\n background: lightgrey;\\n cursor: not-allowed;\\n}\\n.dropdown:focus {\\n border: 2px solid var(--omrs-color-interaction);\\n outline: 0;\\n}\\n.textBox {\\n background: transparent;\\n border: 1px solid var(--omrs-color-ink-lowest-contrast);\\n background-clip: padding-box;\\n border-radius: 4px;\\n margin: 1rem;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"tableContainer\": \"-esm-pathology__ReportComponent__tableContainer___uOmmk\",\n\t\"filtersContainer\": \"-esm-pathology__ReportComponent__filtersContainer___avnpi\",\n\t\"dropdown\": \"-esm-pathology__ReportComponent__dropdown___Lr3Fe\",\n\t\"textBox\": \"-esm-pathology__ReportComponent__textBox___-gvpP\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/cssWithMappingToString.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".-esm-pathology__pathology__container___ny2VS {\\n padding: 2em;\\n}\\n\", \"\",{\"version\":3,\"sources\":[\"webpack://./src/pathology.css\"],\"names\":[],\"mappings\":\"AAAA;EACE,YAAY;AACd\",\"sourcesContent\":[\".container {\\n padding: 2em;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\n___CSS_LOADER_EXPORT___.locals = {\n\t\"container\": \"-esm-pathology__pathology__container___ny2VS\"\n};\nexport default ___CSS_LOADER_EXPORT___;\n"],"names":["options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","undefined","getUserLocation","healthCenterAttrTypeUUID","session","personUuid","person","hcPersonAttribute","openmrsFetch","data","user","uuid","results","filter","attr","attributeType","value","getConceptAnswers","conceptUuid","concept","answers","getLocations","location","getEncounters","pathologyFullAllowedLocationUUID","userLocationUUID","searchEncounter","EncListClone","dataSets","rows","map","encObject","resultsEnc","resultsEncounterUuid","findIndex","enc","encounterUuid","getEncounter","resultsEncounter","Promise","all","postSampleDropoffObs","obsObject","sampleDropOffconceptUUID","yesConceptName","ObsObjectTocreate","response","patientUuid","Date","toISOString","obsDatetime","encounter","voided","method","headers","body","voidSampleDropoff","sampleDropoffObsUuid","postSampleStatusChangeObs","newStatusUuid","obs","sampleStatusConceptUUID","postBody","updateSampleStatusChangeObs","newStatus","sampleStatusObsUuid","postReferralStatusChangeObs","targetValueUuid","referralStatusConceptUUID","updateReferralStatusChangeObs","targetValue","referralStatusObsUuid","encResult","Font","family","src","GeorgiaFontBold","GeorgiaFont","styles","StyleSheet","page","flexDirection","section","margin","padding","flexGrow","textLabels","fontFamily","fontSize","fontWeight","paddingBottom","sentenceLabels","paddingTop","textAnswers","sentenceAnswers","marginBottom","logo","width","props","Document","title","encounterInfo","family_name","given_name","middle_name","Page","size","style","View","Image","ButaroLogo","Text","position","top","left","config","LabPhoneNumber","obser","AccessionNumberconceptUUID","borderBottom","textAlign","DateBiopsySpecimenTakenconceptUUID","toLocaleString","day","month","year","personBirthdate","SpecimenSubmissionDateconceptUUID","personGender","encounterDatetime","SendingPhysicianconceptUUID","OtherBiopsyLocationconceptUUID","paddingLeft","OrganSystemconceptUUID","name","display","OrganconceptUUID","SpecimenDetailconceptUUID","OtherTestsOrProceduresconceptUUID","GrossDescriptionconceptUUID","MacroscopicExaminationconceptUUID","COMMENTSATCONCLUSIONOFEXAMINATIONconceptUUID","approvedBy","useConfig","React","userLocation","setUserLocation","encountersList","setEncountersList","sendingHospital","setSendingHospital","listOfHospitals","setListOfHospitals","sampleStatusAnswers","setSampleStatusAnswers","referralStatusAnswers","setReferralStatusAnswers","sampleStatus","setSampleStatus","referralStatus","setReferralStatus","patientName","setPatientName","then","encList","sampleStatusObs","toLowerCase","referralStatusObs","patientHealthCenter","nameTokens","split","every","token","RegExp","test","id","encounterId","patientNames","a","data-testid","href","personId","pathologyRequest","phoneNumber","patientPhoneNumber","select","onChange","e","sampleStatusChange","target","selectedIndex","text","option","ans","key","selected","dateOfRequest","referralStatusChange","sampleDropOff","input","type","checked","Boolean","sampleDropoffObs","sampleDropOffChange","pathologicDiagnosisObs","resultsEncounterId","pathologyResultsFromID","PDFReport","PDFDownloadLink","document","MyDocument","fileName","loading","button","tempEncList","cloneDeep","ok","encIndex","yesConceptUUID","targetedElem","div","className","label","htmlFor","loc","DataTable","header","getTableProps","getHeaderProps","getRowProps","Table","TableHead","TableRow","TableHeader","TableBody","row","cells","cell","TableCell","ReportComponent","___CSS_LOADER_EXPORT___","push","module","locals"],"sourceRoot":""}
|
package/dist/574.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";(self.webpackChunk_pih_esm_pathology_app=self.webpackChunk_pih_esm_pathology_app||[]).push([[574],{3574:p=>{p.exports={}}}]);
|
|
Binary file
|