@ampath/esm-reports-app 1.0.0-next.11 → 1.0.0-next.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/812.js +1 -1
- package/dist/{339.js → 925.js} +1 -1
- package/dist/925.js.map +1 -0
- package/dist/ampath-esm-reports-app.js.buildmanifest.json +26 -26
- package/dist/main.js +1 -1
- package/dist/routes.json +1 -1
- package/package.json +1 -1
- package/src/reports/moh-706/moh-706.component.tsx +95 -24
- package/src/reports/moh-706/sub-reports/bacteriology/bacteriology.component.tsx +7 -3
- package/src/reports/moh-706/sub-reports/blood-chemistry/blood-chemistry.component.tsx +45 -41
- package/src/reports/moh-706/sub-reports/haematology/haematology.component.tsx +16 -12
- package/src/reports/moh-706/sub-reports/parasitology/parasitology.component.tsx +18 -14
- package/src/reports/moh-706/sub-reports/serology/serology.component.tsx +15 -11
- package/src/reports/moh-706/sub-reports/urine-analysis/urine-analysis.component.tsx +22 -18
- package/src/reports/moh-740/moh-740.resource.ts +2 -1
- package/src/reports/table-wrapper/table-row-mapper.component.tsx +4 -3
- package/src/resources/moh-706.resource.ts +43 -0
- package/src/utils/utils.ts +30 -1
- package/dist/339.js.map +0 -1
package/dist/main.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
(()=>{var e,r,t,o,n={8812(e,r,t){"use strict";t.d(r,{moduleName:()=>l});var o,n=t(2141),a=(n.Type.String,t(6072)),i=t(7114),s={path:"reports",slot:"ampath-reports",title:"Reports",basePath:"".concat(window.spaBase,"/home")},l="@ampath/esm-reports-app",u={featureName:"ampath-esm-reports",moduleName:l};t(4767),(0,n.getAsyncLifecycle)(function(){return Promise.all([t.e(961),t.e(138),t.e(231),t.e(
|
|
1
|
+
(()=>{var e,r,t,o,n={8812(e,r,t){"use strict";t.d(r,{moduleName:()=>l});var o,n=t(2141),a=(n.Type.String,t(6072)),i=t(7114),s={path:"reports",slot:"ampath-reports",title:"Reports",basePath:"".concat(window.spaBase,"/home")},l="@ampath/esm-reports-app",u={featureName:"ampath-esm-reports",moduleName:l};t(4767),(0,n.getAsyncLifecycle)(function(){return Promise.all([t.e(961),t.e(138),t.e(231),t.e(925)]).then(t.bind(t,8925))},u),(0,n.getSyncLifecycle)((o=s,function(){return a.createElement(i.BrowserRouter,null,a.createElement(n.DashboardExtension,{path:o.path,title:o.title,basePath:o.basePath,icon:o.icon}))}),u)},4767(e,r,t){var o={"./am.json":[1197,[197]],"./en.json":[4300,[300]],"./es.json":[3099,[99]],"./fr.json":[4055,[55]],"./he.json":[4652,[652]],"./km.json":[4335,[335]]};function n(e){try{if(!t.o(o,e))return Promise.resolve().then(()=>{var r=new Error("Cannot find module '"+e+"'");throw r.code="MODULE_NOT_FOUND",r})}catch(e){return Promise.reject(e)}var r=o[e],n=r[0];return t.e(r[1][0]).then(()=>t(n))}n.keys=()=>Object.keys(o),n.id=4767,e.exports=n}},a={};function i(e){var r=a[e];if(void 0!==r)return r.exports;var t=a[e]={id:e,exports:{}};return n[e].call(t.exports,t,t.exports,i),t.exports}i.m=n,i.c=a,i.n=e=>{var r=e&&e.__esModule?()=>e.default:()=>e;return i.d(r,{a:r}),r},r=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,i.t=function(t,o){if(1&o&&(t=this(t)),8&o)return t;if("object"==typeof t&&t){if(4&o&&t.__esModule)return t;if(16&o&&"function"==typeof t.then)return t}var n=Object.create(null);i.r(n);var a={};e=e||[null,r({}),r([]),r(r)];for(var s=2&o&&t;("object"==typeof s||"function"==typeof s)&&!~e.indexOf(s);s=r(s))Object.getOwnPropertyNames(s).forEach(e=>a[e]=()=>t[e]);return a.default=()=>t,i.d(n,a),n},i.d=(e,r)=>{for(var t in r)i.o(r,t)&&!i.o(e,t)&&Object.defineProperty(e,t,{enumerable:!0,get:r[t]})},i.f={},i.e=e=>Promise.all(Object.keys(i.f).reduce((r,t)=>(i.f[t](e,r),r),[])),i.u=e=>e+".js",i.o=(e,r)=>Object.prototype.hasOwnProperty.call(e,r),t={},o="@ampath/esm-reports-app:",i.l=(e,r,n,a)=>{if(t[e])t[e].push(r);else{var s,l;if(void 0!==n)for(var u=document.getElementsByTagName("script"),p=0;p<u.length;p++){var f=u[p];if(f.getAttribute("src")==e||f.getAttribute("data-webpack")==o+n){s=f;break}}s||(l=!0,(s=document.createElement("script")).charset="utf-8",i.nc&&s.setAttribute("nonce",i.nc),s.setAttribute("data-webpack",o+n),s.src=e),t[e]=[r];var c=(r,o)=>{s.onerror=s.onload=null,clearTimeout(h);var n=t[e];if(delete t[e],s.parentNode&&s.parentNode.removeChild(s),n&&n.forEach(e=>e(o)),r)return r(o)},h=setTimeout(c.bind(null,void 0,{type:"timeout",target:s}),12e4);s.onerror=c.bind(null,s.onerror),s.onload=c.bind(null,s.onload),l&&document.head.appendChild(s)}},i.r=e=>{"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},(()=>{i.S={};var e={},r={};i.I=(t,o)=>{o||(o=[]);var n=r[t];if(n||(n=r[t]={}),!(o.indexOf(n)>=0)){if(o.push(n),e[t])return e[t];i.o(i.S,t)||(i.S[t]={});var a=i.S[t],s="@ampath/esm-reports-app",l=(e,r,t,o)=>{var n=a[e]=a[e]||{},i=n[r];(!i||!i.loaded&&(!o!=!i.eager?o:s>i.from))&&(n[r]={get:t,from:s,eager:!!o})},u=[];return"default"===t&&(l("@openmrs/esm-framework","9.0.3-pre.4482",()=>Promise.all([i.e(961),i.e(138),i.e(478),i.e(205),i.e(72),i.e(231),i.e(757),i.e(114)]).then(()=>()=>i(9205))),l("dayjs","1.11.20",()=>i.e(353).then(()=>()=>i(4353))),l("react-i18next","16.6.6",()=>Promise.all([i.e(478),i.e(311),i.e(72)]).then(()=>()=>i(3311))),l("react-router-dom","6.30.3",()=>Promise.all([i.e(961),i.e(282),i.e(72)]).then(()=>()=>i(282))),l("react","18.3.1",()=>i.e(540).then(()=>()=>i(6540))),l("rxjs","6.6.7",()=>i.e(184).then(()=>()=>i(3184)))),e[t]=u.length?Promise.all(u).then(()=>e[t]=1):1}}})(),(()=>{var e;globalThis.importScripts&&(e=globalThis.location+"");var r=globalThis.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 o=t.length-1;o>-1&&(!e||!/^http(s?):/.test(e));)e=t[o--].src}if(!e)throw new Error("Automatic publicPath is not supported in this browser");e=e.replace(/^blob:/,"").replace(/#.*$/,"").replace(/\?.*$/,"").replace(/\/[^\/]+$/,"/"),i.p=e})(),(()=>{var e=e=>{var r=e=>e.split(".").map(e=>+e==e?+e:e),t=/^([^-+]+)?(?:-([^+]+))?(?:\+(.+))?$/.exec(e),o=t[1]?r(t[1]):[];return t[2]&&(o.length++,o.push.apply(o,r(t[2]))),t[3]&&(o.push([]),o.push.apply(o,r(t[3]))),o},r=e=>{var t=e[0],o="";if(1===e.length)return"*";if(t+.5){o+=0==t?">=":-1==t?"<":1==t?"^":2==t?"~":t>0?"=":"!=";for(var n=1,a=1;a<e.length;a++)n--,o+="u"==(typeof(s=e[a]))[0]?"-":(n>0?".":"")+(n=2,s);return o}var i=[];for(a=1;a<e.length;a++){var s=e[a];i.push(0===s?"not("+l()+")":1===s?"("+l()+" || "+l()+")":2===s?i.pop()+" "+i.pop():r(s))}return l();function l(){return i.pop().replace(/^\((.+)\)$/,"$1")}},t=(r,o)=>{if(0 in r){o=e(o);var n=r[0],a=n<0;a&&(n=-n-1);for(var i=0,s=1,l=!0;;s++,i++){var u,p,f=s<r.length?(typeof r[s])[0]:"";if(i>=o.length||"o"==(p=(typeof(u=o[i]))[0]))return!l||("u"==f?s>n&&!a:""==f!=a);if("u"==p){if(!l||"u"!=f)return!1}else if(l)if(f==p)if(s<=n){if(u!=r[s])return!1}else{if(a?u>r[s]:u<r[s])return!1;u!=r[s]&&(l=!1)}else if("s"!=f&&"n"!=f){if(a||s<=n)return!1;l=!1,s--}else{if(s<=n||p<f!=a)return!1;l=!1}else"s"!=f&&"n"!=f&&(l=!1,s--)}}var c=[],h=c.pop.bind(c);for(i=1;i<r.length;i++){var d=r[i];c.push(1==d?h()|h():2==d?h()&h():d?t(d,o):!h())}return!!h()},o=(r,t,o)=>{var n=o?(e=>Object.keys(e).reduce((r,t)=>(e[t].eager&&(r[t]=e[t]),r),{}))(r[t]):r[t];return Object.keys(n).reduce((r,t)=>!r||!n[r].loaded&&((r,t)=>{r=e(r),t=e(t);for(var o=0;;){if(o>=r.length)return o<t.length&&"u"!=(typeof t[o])[0];var n=r[o],a=(typeof n)[0];if(o>=t.length)return"u"==a;var i=t[o],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;o++}})(r,t)?t:r,0)},n=(e,r,t)=>t?t():((e,r)=>(e=>{throw new Error(e)})("Shared module "+r+" doesn't exist in shared scope "+e))(e,r),a=(e=>function(r,t,o,n,a){var s=i.I(r);return s&&s.then&&!o?s.then(e.bind(e,r,i.S[r],t,!1,n,a)):e(r,i.S[r],t,o,n,a)})((e,a,s,l,u,p)=>{if(!((e,r)=>e&&i.o(e,r))(a,s))return n(e,s,p);var f,c,h=o(a,s,l);return t(u,h)||(c=((e,t,o,n)=>"Unsatisfied version "+o+" from "+(o&&e[t][o].from)+" of shared singleton module "+t+" (required "+r(n)+")")(a,s,h,u),"undefined"!=typeof console&&console.warn&&console.warn(c)),(f=a[s][h]).loaded=1,f.get()}),s={},l={2141:()=>a("default","@openmrs/esm-framework",!1,[0],()=>Promise.all([i.e(961),i.e(138),i.e(478),i.e(205),i.e(231),i.e(757)]).then(()=>()=>i(9205))),6072:()=>a("default","react",!1,[1,18],()=>i.e(540).then(()=>()=>i(6540))),7114:()=>a("default","react-router-dom",!1,[1,6],()=>Promise.all([i.e(961),i.e(282)]).then(()=>()=>i(282))),231:()=>a("default","dayjs",!1,[1,1],()=>i.e(353).then(()=>()=>i(4353))),2076:()=>a("default","react-i18next",!1,[1,16],()=>i.e(311).then(()=>()=>i(3311))),3083:()=>a("default","rxjs",!1,[1,6],()=>i.e(184).then(()=>()=>i(3184)))};[2141,6072,7114].forEach(e=>{i.m[e]=r=>{s[e]=0,delete i.c[e];var t=l[e]();if("function"!=typeof t)throw new Error("Shared module is not available for eager consumption: "+e);r.exports=t()}});var u={72:[6072],114:[7114],231:[231],757:[2076,3083],792:[2141,6072,7114]},p={};i.f.consumes=(e,r)=>{i.o(u,e)&&u[e].forEach(e=>{if(i.o(s,e))return r.push(s[e]);if(!p[e]){var t=r=>{s[e]=0,i.m[e]=t=>{delete i.c[e],t.exports=r()}};p[e]=!0;var o=r=>{delete s[e],i.m[e]=t=>{throw delete i.c[e],r}};try{var n=l[e]();n.then?r.push(s[e]=n.then(t).catch(o)):t(n)}catch(e){o(e)}}})}})(),(()=>{var e={72:0,114:0,792:0,812:0};i.f.j=(r,t)=>{var o=i.o(e,r)?e[r]:void 0;if(0!==o)if(o)t.push(o[2]);else if(/^(114|231|72|757)$/.test(r))e[r]=0;else{var n=new Promise((t,n)=>o=e[r]=[t,n]);t.push(o[2]=n);var a=i.p+i.u(r),s=new Error;i.l(a,t=>{if(i.o(e,r)&&(0!==(o=e[r])&&(e[r]=void 0),o)){var n=t&&("load"===t.type?"missing":t.type),a=t&&t.target&&t.target.src;s.message="Loading chunk "+r+" failed.\n("+n+": "+a+")",s.name="ChunkLoadError",s.type=n,s.request=a,o[1](s)}},"chunk-"+r,r)}};var r=(r,t)=>{var o,n,[a,s,l]=t,u=0;if(a.some(r=>0!==e[r])){for(o in s)i.o(s,o)&&(i.m[o]=s[o]);l&&l(i)}for(r&&r(t);u<a.length;u++)n=a[u],i.o(e,n)&&e[n]&&e[n][0](),e[n]=0},t=globalThis.webpackChunk_ampath_esm_reports_app=globalThis.webpackChunk_ampath_esm_reports_app||[];t.forEach(r.bind(null,0)),t.push=r.bind(null,t.push.bind(t))})(),i.nc=void 0,i(8812)})();
|
package/dist/routes.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"$schema":"https://json.openmrs.org/routes.schema.json","backendDependencies":{"fhir2":">=1.2","webservices.rest":">=2.2.0"},"extensions":[{"name":"ampath-reports-dashboard-link","component":"reportsDashboardLink","slot":"homepage-dashboard-slot","meta":{"name":"reports","slot":"ampath-reports-dashboard-slot","title":"Reports"},"online":true,"offline":true},{"component":"root","name":"ampath-reports-dashboard-root","slot":"ampath-reports-dashboard-slot"}],"pages":[],"version":"1.0.0-next.
|
|
1
|
+
{"$schema":"https://json.openmrs.org/routes.schema.json","backendDependencies":{"fhir2":">=1.2","webservices.rest":">=2.2.0"},"extensions":[{"name":"ampath-reports-dashboard-link","component":"reportsDashboardLink","slot":"homepage-dashboard-slot","meta":{"name":"reports","slot":"ampath-reports-dashboard-slot","title":"Reports"},"online":true,"offline":true},{"component":"root","name":"ampath-reports-dashboard-root","slot":"ampath-reports-dashboard-slot"}],"pages":[],"version":"1.0.0-next.13"}
|
package/package.json
CHANGED
|
@@ -1,26 +1,97 @@
|
|
|
1
|
-
import React from
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
import
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
|
+
import { useSession } from '@openmrs/esm-framework';
|
|
3
|
+
import { Loading } from '@carbon/react';
|
|
4
|
+
import UrineAnalysis from './sub-reports/urine-analysis/urine-analysis.component';
|
|
5
|
+
import BloodChemistry from './sub-reports/blood-chemistry/blood-chemistry.component';
|
|
6
|
+
import Parasitology from './sub-reports/parasitology/parasitology.component';
|
|
7
|
+
import Haematology from './sub-reports/haematology/haematology.component';
|
|
8
|
+
import Bacteriology from './sub-reports/bacteriology/bacteriology.component';
|
|
9
|
+
import HistologyAndCytology from './sub-reports/histology-and-cytology/histology-and-cytology.component';
|
|
10
|
+
import Serology from './sub-reports/serology/serology.component';
|
|
11
|
+
import SpecimenReferralToHigherLevels from './sub-reports/specimen-referral-to-higher-levels/specimen-referral-to-higher-levels.component';
|
|
12
|
+
import DrugSusceptibilityTesting from './sub-reports/drug-susceptibility-testing/drug-susceptibility-testing.component';
|
|
13
|
+
import ReportFiltersComponent from '../../common/report-filters/report-filters.component';
|
|
14
|
+
import { getMoh706 } from '../../resources/moh-706.resource';
|
|
11
15
|
|
|
12
16
|
const MoH706Report: React.FC = () => {
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
17
|
+
const [moh706Data, setMoh706Data] = useState<any>({});
|
|
18
|
+
const [isLoading, setIsLoading] = useState<boolean>(false);
|
|
19
|
+
const [errorMessage, setErrorMessage] = useState<string>('');
|
|
20
|
+
|
|
21
|
+
const session = useSession();
|
|
22
|
+
const locationUuids = session?.sessionLocation?.uuid;
|
|
23
|
+
|
|
24
|
+
const fetchMoh706Data = async (filters: { startDate?: string; endDate?: string; month?: string }) => {
|
|
25
|
+
setErrorMessage('');
|
|
26
|
+
setIsLoading(true);
|
|
27
|
+
|
|
28
|
+
let startDate = filters.startDate;
|
|
29
|
+
let endDate = filters.endDate;
|
|
30
|
+
|
|
31
|
+
if (filters.month) {
|
|
32
|
+
const [year, monthIndex] = filters.month.split('-').map(Number);
|
|
33
|
+
const start = new Date(year, monthIndex - 1, 1);
|
|
34
|
+
const end = new Date(year, monthIndex, 0);
|
|
35
|
+
|
|
36
|
+
const formatLocalDate = (d: Date) => {
|
|
37
|
+
const y = d.getFullYear();
|
|
38
|
+
const m = String(d.getMonth() + 1).padStart(2, '0');
|
|
39
|
+
const day = String(d.getDate()).padStart(2, '0');
|
|
40
|
+
return `${y}-${m}-${day}`;
|
|
41
|
+
};
|
|
42
|
+
|
|
43
|
+
startDate = formatLocalDate(start);
|
|
44
|
+
endDate = formatLocalDate(end);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
const params = {
|
|
48
|
+
locationUuids: locationUuids || '',
|
|
49
|
+
startDate,
|
|
50
|
+
endDate,
|
|
51
|
+
};
|
|
52
|
+
|
|
53
|
+
try {
|
|
54
|
+
const result = await getMoh706(params);
|
|
55
|
+
const flatData = Object.assign({}, ...result);
|
|
56
|
+
setMoh706Data(flatData);
|
|
57
|
+
} catch (error: any) {
|
|
58
|
+
setErrorMessage(error instanceof Error ? error.message : String(error));
|
|
59
|
+
} finally {
|
|
60
|
+
setIsLoading(false);
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
return (
|
|
65
|
+
<>
|
|
66
|
+
<ReportFiltersComponent reportName="MOH-706 Report" mode="monthly" onGenerate={fetchMoh706Data} isLoding={isLoading} />
|
|
67
|
+
{isLoading && <Loading description="Fetching data...." />}
|
|
68
|
+
{!isLoading && errorMessage && (
|
|
69
|
+
<div>
|
|
70
|
+
<a href="#" className="close" data-dismiss="alert">
|
|
71
|
+
×
|
|
72
|
+
</a>
|
|
73
|
+
<h4>
|
|
74
|
+
<strong>
|
|
75
|
+
<span className="glyphicon glyphicon-warning-sign"></span>{' '}
|
|
76
|
+
</strong>{' '}
|
|
77
|
+
An error occurred while trying to load the report. Please try again.
|
|
78
|
+
</h4>
|
|
79
|
+
<p>
|
|
80
|
+
<small>{errorMessage}</small>
|
|
81
|
+
</p>
|
|
82
|
+
</div>
|
|
83
|
+
)}
|
|
84
|
+
<UrineAnalysis data={moh706Data} />
|
|
85
|
+
<BloodChemistry data={moh706Data} />
|
|
86
|
+
<Parasitology data={moh706Data} />
|
|
87
|
+
<Haematology data={moh706Data} />
|
|
88
|
+
<Bacteriology data={moh706Data} />
|
|
89
|
+
<HistologyAndCytology />
|
|
90
|
+
<Serology data={moh706Data} />
|
|
91
|
+
<SpecimenReferralToHigherLevels />
|
|
92
|
+
<DrugSusceptibilityTesting />
|
|
93
|
+
</>
|
|
94
|
+
);
|
|
95
|
+
};
|
|
96
|
+
|
|
97
|
+
export default MoH706Report;
|
|
@@ -3,7 +3,11 @@ import TableWrapper from "../../../table-wrapper/table-wrapper.component";
|
|
|
3
3
|
import TableRowMapper from "../../../table-wrapper/table-row-mapper.component";
|
|
4
4
|
import { getCell } from "../../../../utils/utils";
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
interface BacteriologyProps {
|
|
7
|
+
data?: any
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const Bacteriology: React.FC<BacteriologyProps> = ({ data }) => {
|
|
7
11
|
const tableRows = useMemo(() => {
|
|
8
12
|
return [
|
|
9
13
|
{
|
|
@@ -46,7 +50,7 @@ const Bacteriology: React.FC = () => {
|
|
|
46
50
|
getCell("", "Number Positive", 1, 1, true),
|
|
47
51
|
]
|
|
48
52
|
},
|
|
49
|
-
{ tableCells: [getCell("", "5.11 Salmonella typhi", 3), getCell()] },
|
|
53
|
+
{ tableCells: [getCell("", "5.11 Salmonella typhi", 3), getCell("positive_salmonella")] },
|
|
50
54
|
{ tableCells: [getCell("", "5.12 Shigella - dysenteriae type1", 3), getCell()] },
|
|
51
55
|
{ tableCells: [getCell("", "5.13 E. coli O157:H7", 3), getCell()] },
|
|
52
56
|
{ tableCells: [getCell("", "5.14 V. cholerae O1", 3), getCell()] },
|
|
@@ -110,7 +114,7 @@ const Bacteriology: React.FC = () => {
|
|
|
110
114
|
|
|
111
115
|
|
|
112
116
|
return <TableWrapper>
|
|
113
|
-
<TableRowMapper tableRows={tableRows} />
|
|
117
|
+
<TableRowMapper tableRows={tableRows} data={data} />
|
|
114
118
|
</TableWrapper>
|
|
115
119
|
}
|
|
116
120
|
|
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import React, { useMemo } from "react";
|
|
2
|
-
import { TableRow, TableCell } from '@carbon/react';
|
|
3
2
|
import TableWrapper from "../../../table-wrapper/table-wrapper.component";
|
|
4
3
|
import styles from '../../../table-wrapper/table-wrapper.scss';
|
|
5
4
|
import TableRowMapper from "../../../table-wrapper/table-row-mapper.component";
|
|
6
5
|
import { getCell } from "../../../../utils/utils";
|
|
7
6
|
|
|
8
|
-
|
|
7
|
+
interface BloodChemistryProps {
|
|
8
|
+
data?: any
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
const BloodChemistry: React.FC<BloodChemistryProps> = ({ data }) => {
|
|
9
12
|
const tableRows = useMemo(() => {
|
|
10
13
|
return [
|
|
11
14
|
{
|
|
@@ -29,17 +32,17 @@ const BloodChemistry: React.FC = () => {
|
|
|
29
32
|
{
|
|
30
33
|
tableCells: [
|
|
31
34
|
getCell("", "2.1 Blood sugar"),
|
|
32
|
-
getCell(),
|
|
33
|
-
getCell(),
|
|
34
|
-
getCell(),
|
|
35
|
+
getCell("total_exam"),
|
|
36
|
+
getCell("min_blood_sugar"),
|
|
37
|
+
getCell("max_blood_sugar"),
|
|
35
38
|
]
|
|
36
39
|
},
|
|
37
40
|
{
|
|
38
41
|
tableCells: [
|
|
39
42
|
getCell("", "2.2 OGTT"),
|
|
40
43
|
getCell(),
|
|
41
|
-
getCell(),
|
|
42
|
-
getCell(),
|
|
44
|
+
getCell("min_ogtt"),
|
|
45
|
+
getCell("max_ogtt"),
|
|
43
46
|
]
|
|
44
47
|
},
|
|
45
48
|
{
|
|
@@ -54,8 +57,8 @@ const BloodChemistry: React.FC = () => {
|
|
|
54
57
|
tableCells: [
|
|
55
58
|
getCell("", "2.4 Creatinine"),
|
|
56
59
|
getCell(),
|
|
57
|
-
getCell(),
|
|
58
|
-
getCell(),
|
|
60
|
+
getCell("min_creatinine"),
|
|
61
|
+
getCell("max_creatinine"),
|
|
59
62
|
]
|
|
60
63
|
},
|
|
61
64
|
{
|
|
@@ -70,10 +73,11 @@ const BloodChemistry: React.FC = () => {
|
|
|
70
73
|
tableCells: [
|
|
71
74
|
getCell("", "2.5 Urea"),
|
|
72
75
|
getCell(),
|
|
73
|
-
getCell(),
|
|
74
|
-
getCell(),
|
|
76
|
+
getCell("min_urea"),
|
|
77
|
+
getCell("max_urea"),
|
|
75
78
|
]
|
|
76
79
|
},
|
|
80
|
+
|
|
77
81
|
{
|
|
78
82
|
tableCells: [
|
|
79
83
|
getCell("", "2.6 Sodium"),
|
|
@@ -110,40 +114,40 @@ const BloodChemistry: React.FC = () => {
|
|
|
110
114
|
tableCells: [
|
|
111
115
|
getCell("", "2.9 Direct bilirubin"),
|
|
112
116
|
getCell(),
|
|
113
|
-
getCell(),
|
|
114
|
-
getCell(),
|
|
117
|
+
getCell("min_direct_bili"),
|
|
118
|
+
getCell("max_direct_bili"),
|
|
115
119
|
]
|
|
116
120
|
},
|
|
117
121
|
{
|
|
118
122
|
tableCells: [
|
|
119
123
|
getCell("", "2.10 Total bilirubin"),
|
|
120
124
|
getCell(),
|
|
121
|
-
getCell(),
|
|
122
|
-
getCell(),
|
|
125
|
+
getCell("min_total_bili"),
|
|
126
|
+
getCell("max_total_bili"),
|
|
123
127
|
]
|
|
124
128
|
},
|
|
125
129
|
{
|
|
126
130
|
tableCells: [
|
|
127
131
|
getCell("", "2.11 ASAT (SGOT)"),
|
|
128
132
|
getCell(),
|
|
129
|
-
getCell(),
|
|
130
|
-
getCell(),
|
|
133
|
+
getCell("min_ast"),
|
|
134
|
+
getCell("max_ast"),
|
|
131
135
|
]
|
|
132
136
|
},
|
|
133
137
|
{
|
|
134
138
|
tableCells: [
|
|
135
139
|
getCell("", "2.12 ALAT (SGPT)"),
|
|
136
140
|
getCell(),
|
|
137
|
-
getCell(),
|
|
138
|
-
getCell(),
|
|
141
|
+
getCell("min_alt"),
|
|
142
|
+
getCell("max_alt"),
|
|
139
143
|
]
|
|
140
144
|
},
|
|
141
145
|
{
|
|
142
146
|
tableCells: [
|
|
143
147
|
getCell("", "2.13 Serum Protein"),
|
|
144
148
|
getCell(),
|
|
145
|
-
getCell(),
|
|
146
|
-
getCell(),
|
|
149
|
+
getCell("min_total_protein"),
|
|
150
|
+
getCell("max_total_protein"),
|
|
147
151
|
]
|
|
148
152
|
},
|
|
149
153
|
{
|
|
@@ -158,40 +162,41 @@ const BloodChemistry: React.FC = () => {
|
|
|
158
162
|
tableCells: [
|
|
159
163
|
getCell("", "2.15 Alkaline Phosphatase"),
|
|
160
164
|
getCell(),
|
|
161
|
-
getCell(),
|
|
162
|
-
getCell(),
|
|
165
|
+
getCell("min_alk_phos"),
|
|
166
|
+
getCell("max_alk_phos"),
|
|
163
167
|
]
|
|
164
168
|
},
|
|
165
169
|
{
|
|
166
170
|
tableCells: [
|
|
167
171
|
getCell("", "2.16 Lipid Profile", 1, 1, true),
|
|
168
172
|
getCell(),
|
|
169
|
-
getCell(),
|
|
170
|
-
getCell(),
|
|
173
|
+
getCell("min_lipid_profile"),
|
|
174
|
+
getCell("max_lipid_profile"),
|
|
171
175
|
]
|
|
172
176
|
},
|
|
173
177
|
{
|
|
174
178
|
tableCells: [
|
|
175
179
|
getCell("", "2.17 Total cholesterol"),
|
|
176
180
|
getCell(),
|
|
177
|
-
getCell(),
|
|
178
|
-
getCell(),
|
|
181
|
+
getCell("min_total_cholesterol"),
|
|
182
|
+
getCell("max_total_cholesterol"),
|
|
179
183
|
]
|
|
180
184
|
},
|
|
185
|
+
|
|
181
186
|
{
|
|
182
187
|
tableCells: [
|
|
183
188
|
getCell("", "2.18 Triglycerides"),
|
|
184
189
|
getCell(),
|
|
185
|
-
getCell(),
|
|
186
|
-
getCell(),
|
|
190
|
+
getCell("min_triglycerides"),
|
|
191
|
+
getCell("max_triglycerides"),
|
|
187
192
|
]
|
|
188
193
|
},
|
|
189
194
|
{
|
|
190
195
|
tableCells: [
|
|
191
196
|
getCell("", "2.19 LDL"),
|
|
192
197
|
getCell(),
|
|
193
|
-
getCell(),
|
|
194
|
-
getCell(),
|
|
198
|
+
getCell("min_ldl"),
|
|
199
|
+
getCell("max_ldl"),
|
|
195
200
|
]
|
|
196
201
|
},
|
|
197
202
|
{
|
|
@@ -206,24 +211,24 @@ const BloodChemistry: React.FC = () => {
|
|
|
206
211
|
tableCells: [
|
|
207
212
|
getCell("", "2.20 T3"),
|
|
208
213
|
getCell(),
|
|
209
|
-
getCell(),
|
|
210
|
-
getCell(),
|
|
214
|
+
getCell("min_t3"),
|
|
215
|
+
getCell("max_t3"),
|
|
211
216
|
]
|
|
212
217
|
},
|
|
213
218
|
{
|
|
214
219
|
tableCells: [
|
|
215
220
|
getCell("", "2.21 T4"),
|
|
216
221
|
getCell(),
|
|
217
|
-
getCell(),
|
|
218
|
-
getCell(),
|
|
222
|
+
getCell("min_t4"),
|
|
223
|
+
getCell("max_t4"),
|
|
219
224
|
]
|
|
220
225
|
},
|
|
221
226
|
{
|
|
222
227
|
tableCells: [
|
|
223
228
|
getCell("", "2.22 TSH"),
|
|
224
229
|
getCell(),
|
|
225
|
-
getCell(),
|
|
226
|
-
getCell(),
|
|
230
|
+
getCell("min_tsh"),
|
|
231
|
+
getCell("max_tsh"),
|
|
227
232
|
]
|
|
228
233
|
},
|
|
229
234
|
{
|
|
@@ -236,8 +241,8 @@ const BloodChemistry: React.FC = () => {
|
|
|
236
241
|
{
|
|
237
242
|
tableCells: [
|
|
238
243
|
getCell("", "2.23 PSA"),
|
|
239
|
-
getCell(),
|
|
240
|
-
getCell("", "", 2),
|
|
244
|
+
getCell("total_psa"),
|
|
245
|
+
getCell("positive_psa", "", 2),
|
|
241
246
|
]
|
|
242
247
|
},
|
|
243
248
|
{
|
|
@@ -302,9 +307,8 @@ const BloodChemistry: React.FC = () => {
|
|
|
302
307
|
]
|
|
303
308
|
}, []);
|
|
304
309
|
|
|
305
|
-
|
|
306
310
|
return <TableWrapper>
|
|
307
|
-
|
|
311
|
+
<TableRowMapper tableRows={tableRows} data={data} />
|
|
308
312
|
</TableWrapper>
|
|
309
313
|
}
|
|
310
314
|
|
|
@@ -3,7 +3,11 @@ import TableWrapper from "../../../table-wrapper/table-wrapper.component";
|
|
|
3
3
|
import { getCell } from "../../../../utils/utils";
|
|
4
4
|
import TableRowMapper from "../../../table-wrapper/table-row-mapper.component";
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
interface HaematologyProps {
|
|
7
|
+
data?: any
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const Haematology: React.FC<HaematologyProps> = ({ data }) => {
|
|
7
11
|
const tableRows = useMemo(() => {
|
|
8
12
|
return [
|
|
9
13
|
{
|
|
@@ -22,9 +26,9 @@ const Haematology: React.FC = () => {
|
|
|
22
26
|
{
|
|
23
27
|
tableCells: [
|
|
24
28
|
getCell("", "4.1 Full blood count"),
|
|
25
|
-
getCell(),
|
|
26
|
-
getCell(),
|
|
27
|
-
getCell()
|
|
29
|
+
getCell("total_fbc"),
|
|
30
|
+
getCell("fbc_hb_less_than_5"),
|
|
31
|
+
getCell("fbc_hb_5_to_10")
|
|
28
32
|
]
|
|
29
33
|
},
|
|
30
34
|
{
|
|
@@ -61,8 +65,8 @@ const Haematology: React.FC = () => {
|
|
|
61
65
|
{
|
|
62
66
|
tableCells: [
|
|
63
67
|
getCell("", "4.4 CD4"),
|
|
64
|
-
getCell(),
|
|
65
|
-
getCell("", "", 2),
|
|
68
|
+
getCell("total_cd4"),
|
|
69
|
+
getCell("cd4_less_than_500", "", 2),
|
|
66
70
|
]
|
|
67
71
|
},
|
|
68
72
|
{
|
|
@@ -110,7 +114,7 @@ const Haematology: React.FC = () => {
|
|
|
110
114
|
{
|
|
111
115
|
tableCells: [
|
|
112
116
|
getCell("", "4.11 Total blood group tests", 3),
|
|
113
|
-
getCell(),
|
|
117
|
+
getCell("total_blood_group"),
|
|
114
118
|
]
|
|
115
119
|
},
|
|
116
120
|
{
|
|
@@ -149,23 +153,23 @@ const Haematology: React.FC = () => {
|
|
|
149
153
|
]
|
|
150
154
|
},
|
|
151
155
|
{
|
|
152
|
-
tableCells: [getCell("", "4.19 HIV", 3), getCell()]
|
|
156
|
+
tableCells: [getCell("", "4.19 HIV", 3), getCell("positive_hiv")]
|
|
153
157
|
},
|
|
154
158
|
{
|
|
155
|
-
tableCells: [getCell("", "4.20 Hepatitis B", 3), getCell()]
|
|
159
|
+
tableCells: [getCell("", "4.20 Hepatitis B", 3), getCell("positive_hep_b")]
|
|
156
160
|
},
|
|
157
161
|
{
|
|
158
|
-
tableCells: [getCell("", "4.21 Hepatitis C", 3), getCell()]
|
|
162
|
+
tableCells: [getCell("", "4.21 Hepatitis C", 3), getCell("positive_hep_c")]
|
|
159
163
|
},
|
|
160
164
|
{
|
|
161
|
-
tableCells: [getCell("", "4.22 Syphilis", 3), getCell()]
|
|
165
|
+
tableCells: [getCell("", "4.22 Syphilis", 3), getCell("positive_syphilis")]
|
|
162
166
|
},
|
|
163
167
|
]
|
|
164
168
|
}, []);
|
|
165
169
|
|
|
166
170
|
|
|
167
171
|
return <TableWrapper>
|
|
168
|
-
<TableRowMapper tableRows={tableRows} />
|
|
172
|
+
<TableRowMapper tableRows={tableRows} data={data} />
|
|
169
173
|
</TableWrapper>
|
|
170
174
|
}
|
|
171
175
|
|
|
@@ -3,7 +3,11 @@ import TableWrapper from "../../../table-wrapper/table-wrapper.component";
|
|
|
3
3
|
import TableRowMapper from "../../../table-wrapper/table-row-mapper.component";
|
|
4
4
|
import { getCell } from "../../../../utils/utils";
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
interface ParasitologyProps {
|
|
7
|
+
data?: any
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const Parasitology: React.FC<ParasitologyProps> = ({ data }) => {
|
|
7
11
|
const tableRows = useMemo(() => {
|
|
8
12
|
return [
|
|
9
13
|
{
|
|
@@ -21,29 +25,29 @@ const Parasitology: React.FC = () => {
|
|
|
21
25
|
{
|
|
22
26
|
tableCells: [
|
|
23
27
|
getCell("", "3.1 Malaria BS (Under five years)"),
|
|
24
|
-
getCell(),
|
|
25
|
-
getCell()
|
|
28
|
+
getCell("total_malaria_bs_under_5"),
|
|
29
|
+
getCell("positive_malaria_bs_under_5")
|
|
26
30
|
]
|
|
27
31
|
},
|
|
28
32
|
{
|
|
29
33
|
tableCells: [
|
|
30
34
|
getCell("", "3.2 Malaria BS (5 years and above)"),
|
|
31
|
-
getCell(),
|
|
32
|
-
getCell(),
|
|
35
|
+
getCell("total_malaria_bs_5_and_above"),
|
|
36
|
+
getCell("positive_malaria_bs_5_and_above"),
|
|
33
37
|
]
|
|
34
38
|
},
|
|
35
39
|
{
|
|
36
40
|
tableCells: [
|
|
37
41
|
getCell("", "3.3 Malaria Rapid Diagnostic Tests (Under five years)"),
|
|
38
|
-
getCell(),
|
|
39
|
-
getCell(),
|
|
42
|
+
getCell("total_malaria_rdt_under_5"),
|
|
43
|
+
getCell("positive_malaria_rdt_under_5"),
|
|
40
44
|
]
|
|
41
45
|
},
|
|
42
46
|
{
|
|
43
47
|
tableCells: [
|
|
44
48
|
getCell("", "3.4 Malaria Rapid Diagnostic Tests (5 years and above)"),
|
|
45
|
-
getCell(),
|
|
46
|
-
getCell(),
|
|
49
|
+
getCell("total_malaria_rdt_5_and_above"),
|
|
50
|
+
getCell("positive_malaria_rdt_5_and_above"),
|
|
47
51
|
]
|
|
48
52
|
},
|
|
49
53
|
{
|
|
@@ -70,15 +74,15 @@ const Parasitology: React.FC = () => {
|
|
|
70
74
|
{
|
|
71
75
|
tableCells: [
|
|
72
76
|
getCell("", "3.7 Hookworm"),
|
|
73
|
-
getCell(),
|
|
74
|
-
getCell(),
|
|
77
|
+
getCell("total_hookworm"),
|
|
78
|
+
getCell("positive_hookworm"),
|
|
75
79
|
]
|
|
76
80
|
},
|
|
77
81
|
{
|
|
78
82
|
tableCells: [
|
|
79
83
|
getCell("", "3.8 Roundworm"),
|
|
80
|
-
getCell(),
|
|
81
|
-
getCell(),
|
|
84
|
+
getCell("total_roundworms"),
|
|
85
|
+
getCell("positive_roundworms"),
|
|
82
86
|
]
|
|
83
87
|
},
|
|
84
88
|
{
|
|
@@ -107,7 +111,7 @@ const Parasitology: React.FC = () => {
|
|
|
107
111
|
|
|
108
112
|
|
|
109
113
|
return <TableWrapper>
|
|
110
|
-
<TableRowMapper tableRows={tableRows} />
|
|
114
|
+
<TableRowMapper tableRows={tableRows} data={data} />
|
|
111
115
|
</TableWrapper>
|
|
112
116
|
}
|
|
113
117
|
|
|
@@ -3,7 +3,11 @@ import TableWrapper from "../../../table-wrapper/table-wrapper.component";
|
|
|
3
3
|
import TableRowMapper from "../../../table-wrapper/table-row-mapper.component";
|
|
4
4
|
import { getCell } from "../../../../utils/utils";
|
|
5
5
|
|
|
6
|
-
|
|
6
|
+
interface SerologyProps {
|
|
7
|
+
data?: any
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
const Serology: React.FC<SerologyProps> = ({ data }) => {
|
|
7
11
|
const tableRows = useMemo(() => {
|
|
8
12
|
return [
|
|
9
13
|
{
|
|
@@ -16,24 +20,24 @@ const Serology: React.FC = () => {
|
|
|
16
20
|
getCell("", "Number Positive", 1, 1, true),
|
|
17
21
|
]
|
|
18
22
|
},
|
|
19
|
-
{ tableCells: [getCell("", "7.1 VDRL"), getCell(), getCell()] },
|
|
23
|
+
{ tableCells: [getCell("", "7.1 VDRL"), getCell("total_vdrl"), getCell("positive_vdrl")] },
|
|
20
24
|
{ tableCells: [getCell("", "7.2 TPHA"), getCell(), getCell()] },
|
|
21
25
|
{ tableCells: [getCell("", "7.3 ASOT"), getCell(), getCell()] },
|
|
22
|
-
{ tableCells: [getCell("", "7.4 HIV"), getCell(), getCell()] },
|
|
23
|
-
{ tableCells: [getCell("", "7.5 Brucella"), getCell(), getCell()] },
|
|
24
|
-
{ tableCells: [getCell("", "7.6 Rheumatoid factor"), getCell(), getCell()] },
|
|
25
|
-
{ tableCells: [getCell("", "7.7 Helicobacter pylori"), getCell(), getCell()] },
|
|
26
|
+
{ tableCells: [getCell("", "7.4 HIV"), getCell("total_hiv"), getCell("positive_hiv")] },
|
|
27
|
+
{ tableCells: [getCell("", "7.5 Brucella"), getCell("total_brucella"), getCell("positive_brucella")] },
|
|
28
|
+
{ tableCells: [getCell("", "7.6 Rheumatoid factor"), getCell("total_rheumatoid_factor"), getCell("positive_rheumatoid_factor")] },
|
|
29
|
+
{ tableCells: [getCell("", "7.7 Helicobacter pylori"), getCell("total_h_pylori"), getCell("positive_h_pylori")] },
|
|
26
30
|
{ tableCells: [getCell("", "7.8 Hepatitis A test"), getCell(), getCell()] },
|
|
27
|
-
{ tableCells: [getCell("", "7.9 Hepatitis B test"), getCell(), getCell()] },
|
|
28
|
-
{ tableCells: [getCell("", "7.10 Hepatitis C test"), getCell(), getCell()] },
|
|
29
|
-
{ tableCells: [getCell("", "7.11 HCG"), getCell(), getCell()] },
|
|
30
|
-
{ tableCells: [getCell("", "7.12 CRAG Test"), getCell(), getCell()] },
|
|
31
|
+
{ tableCells: [getCell("", "7.9 Hepatitis B test"), getCell("total_hep_b"), getCell("positive_hep_b")] },
|
|
32
|
+
{ tableCells: [getCell("", "7.10 Hepatitis C test"), getCell("total_hep_c"), getCell("positive_hep_c")] },
|
|
33
|
+
{ tableCells: [getCell("", "7.11 HCG"), getCell("total_hcg"), getCell("positive_hcg")] },
|
|
34
|
+
{ tableCells: [getCell("", "7.12 CRAG Test"), getCell("total_crag"), getCell("positive_crag")] },
|
|
31
35
|
]
|
|
32
36
|
}, []);
|
|
33
37
|
|
|
34
38
|
|
|
35
39
|
return <TableWrapper>
|
|
36
|
-
<TableRowMapper tableRows={tableRows} />
|
|
40
|
+
<TableRowMapper tableRows={tableRows} data={data} />
|
|
37
41
|
</TableWrapper>
|
|
38
42
|
}
|
|
39
43
|
|