Skip to content

Commit

Permalink
Merge pull request #78 from KotlinDevIanBore/main
Browse files Browse the repository at this point in the history
(Feat)Added HEI Register
Rugute authored Jun 13, 2024
2 parents ebcd6b2 + b468843 commit fed5b76
Showing 12 changed files with 631 additions and 90 deletions.
4 changes: 4 additions & 0 deletions packages/esm-report-app/src/registers/MOH-267/prep.scss
Original file line number Diff line number Diff line change
@@ -37,6 +37,10 @@ p {

th {
background-color: #f2f2f2;
background-color: #f2f2f2;
color: #000000;
font-size: 14px;
font-weight: normal;
}

tr:nth-child(even) {
42 changes: 20 additions & 22 deletions packages/esm-report-app/src/registers/MOH-362/MOH-362.scss
Original file line number Diff line number Diff line change
@@ -1,12 +1,3 @@
// body {
// font-family: 'Arial', sans-serif;
// color: #bb0b0b;
// background-color: #fff;
// margin: 0;
// padding: 0;
// box-sizing: border-box;
// }

h1,
h2,
h3,
@@ -33,28 +24,39 @@ p {
border-collapse: collapse;
width: 100%;
color: #000000;
font-size: 12px;
font-family: Arial, sans-serif;

th,
td {
border: 1px solid black;
padding: 8px;
padding: 4px;
text-align: center;
vertical-align: middle;
font-family: inherit;
color: inherit;
color: #000000;
}

th {
background-color: #f2f2f2;
font-weight: normal; // Match the image
padding: 4px;
}

tr:nth-child(even) {
background-color: #f9f9f9;
background-color: #ffffff; // Ensure no background for even rows
}

tr:nth-child(odd) {
background-color: #ffffff; // Ensure no background for odd rows
}

td.dotted-border {
border: 1px dotted black;
}

thead th {
border-bottom: 2px solid black; // Thicker border for header
}
}

.header {
@@ -64,24 +66,20 @@ p {
margin-bottom: 10px;
width: 100%;
color: #000000;
font-size: 14px; // Adjust font size

.left {
.left,
.right {
flex: 1;
display: flex;
justify-content: flex-start;
justify-content: center; // Center align for left and right
align-items: center;
}

.center {
flex: 2;
text-align: center;
}

.right {
flex: 1;
display: flex;
justify-content: flex-end;
align-items: center;
font-size: 16px; // Adjust font size
}
}
}
112 changes: 93 additions & 19 deletions packages/esm-report-app/src/registers/MOH-362/MOH-362a.tsx
Original file line number Diff line number Diff line change
@@ -29,32 +29,89 @@ const RenderMOH362a: React.FC = () => {
Serial <br />
Number
</TableHeader>
<TableHeader rowSpan={1}>National Identification Number</TableHeader>
<TableHeader rowSpan={5}>Date of visit (DD/MM/YYYY)</TableHeader>
<TableHeader rowSpan={5}>Client Name (First,Middle,Last)</TableHeader>
<TableHeader rowSpan={1}>
National <br />
Identification <br />
Number
</TableHeader>
<TableHeader rowSpan={5}>
Date of visit <br />
(DD/MM/YYYY)
</TableHeader>
<TableHeader rowSpan={5}>
Client Name <br />
(First, Middle, Last)
</TableHeader>
<TableHeader rowSpan={5}>Age</TableHeader>
<TableHeader rowSpan={5}>Sex (M/F)</TableHeader>
<TableHeader rowSpan={5}>Telephone Number</TableHeader>
<TableHeader rowSpan={5}>Marital Status 1=Married 2=Widowed 3=Single 4=Divorced 5=Separated</TableHeader>
<TableHeader rowSpan={5}>
Population Type 1.Gen Pop 2.Key and Vulnerable Pop. Codes for KVP -DC -MSM/MSW -FSW -PWID/PWUD -VP
Sex <br />
(M/F)
</TableHeader>
<TableHeader rowSpan={5}>
Telephone <br />
Number
</TableHeader>
<TableHeader rowSpan={5}>
Marital Status <br />
1=Married <br />
2=Widowed <br />
3=Single <br />
4=Divorced <br />
5=Separated
</TableHeader>
<TableHeader rowSpan={5}>
Population Type <br />
1. Gen Pop <br />
2. Key and <br />
Vulnerable Pop. <br />
Codes for KVP <br />
-DC <br />
-MSM/MSW <br />
-FSW <br />
-PWID/PWUD <br />
-VP
</TableHeader>
<TableHeader rowSpan={5}>
Setting <br /> (1=Facility <br />
2=Community)
</TableHeader>
<TableHeader rowSpan={5}>Setting</TableHeader>
<TableHeader rowSpan={1}>HIV Test 1</TableHeader>
<TableHeader rowSpan={1}>HIV Test 2</TableHeader>
<TableHeader rowSpan={1}>HIV Test 3</TableHeader>
<TableHeader rowSpan={4}>Final HIV Result</TableHeader>
<TableHeader rowSpan={4}>Discordant Couple</TableHeader>
<TableHeader rowSpan={5}>Referred for Prevention Services 1.Prep 2.PEP 3.VMMC 4.PMTCT 5.NA</TableHeader>
<TableHeader rowSpan={5}>HTS Provider (Name)</TableHeader>
<TableHeader rowSpan={4}>
Final HIV <br />
Result
</TableHeader>
<TableHeader rowSpan={4}>
Discordant <br />
Couple
</TableHeader>
<TableHeader rowSpan={5}>
Referred for <br />
Prevention <br />
Services <br />
1. PrEP <br />
2. PEP <br />
3. VMMC <br />
4. PMTCT <br />
5. NA
</TableHeader>
<TableHeader rowSpan={5}>
HTS Provider <br />
(Name)
</TableHeader>
<TableHeader rowSpan={5}>Remarks</TableHeader>
</TableRow>

<TableRow>
<TableHeader rowSpan={4}>National Unique Patient Identifier (NUPI) Number</TableHeader>
<TableHeader rowSpan={4}>
National Unique <br />
Patient Identifier <br />
(NUPI) Number
</TableHeader>
<TableHeader rowSpan={1}>Kit Name:</TableHeader>
<TableHeader rowSpan={1}>Kit Name:</TableHeader>
<TableHeader rowSpan={1}>Kit Name:</TableHeader>
<TableHeader rowSpan={1}>Kit Name</TableHeader>
</TableRow>
<TableRow>
<TableHeader rowSpan={1}>Lot No.</TableHeader>
@@ -75,6 +132,26 @@ const RenderMOH362a: React.FC = () => {
<TableHeader rowSpan={1}>(N,P,Ic)</TableHeader>
<TableHeader rowSpan={1}>(Y/N/NA)</TableHeader>
</TableRow>
<TableRow>
<TableCell rowSpan={2}>(a)</TableCell>
<TableCell rowSpan={2}>(b)</TableCell>
<TableCell rowSpan={2}>(c)</TableCell>
<TableCell rowSpan={2}>(d)</TableCell>
<TableCell rowSpan={2}>(e)</TableCell>
<TableCell rowSpan={2}>(f)</TableCell>
<TableCell rowSpan={2}>(g)</TableCell>
<TableCell rowSpan={2}>(h)</TableCell>
<TableCell rowSpan={2}>(i)</TableCell>
<TableCell rowSpan={2}>(j)</TableCell>
<TableCell rowSpan={2}>(k)</TableCell>
<TableCell rowSpan={2}>(l)</TableCell>
<TableCell rowSpan={2}>(m)</TableCell>
<TableCell rowSpan={2}>(n)</TableCell>
<TableCell rowSpan={2}>(o)</TableCell>
<TableCell rowSpan={2}>(p)</TableCell>
<TableCell rowSpan={2}>(q)</TableCell>
<TableCell rowSpan={2}>(r)</TableCell>
</TableRow>
</TableHead>
<TableBody>
{moh362a && moh362a.length > 0 ? (
@@ -91,8 +168,6 @@ const RenderMOH362a: React.FC = () => {
<TableCell rowSpan={2}>{item.patient_id}</TableCell>
<TableCell rowSpan={2}>{item.patient_id}</TableCell>
<TableCell rowSpan={2}>{item.patient_id}</TableCell>
<TableCell rowSpan={2}>{item.patient_id}</TableCell>
<TableCell rowSpan={2}>{item.patient_id}</TableCell>
<TableCell className={styles['dotted-border']} rowSpan={1}>
{item.patient_id}
</TableCell>
@@ -103,6 +178,8 @@ const RenderMOH362a: React.FC = () => {
<TableCell rowSpan={2}>{item.patient_id}</TableCell>
<TableCell rowSpan={2}>{item.patient_id}</TableCell>
<TableCell rowSpan={2}>{item.patient_id}</TableCell>
<TableCell rowSpan={2}>{item.patient_id}</TableCell>
<TableCell rowSpan={2}>{item.patient_id}</TableCell>
</TableRow>
<TableRow>
<TableCell className={styles['dotted-border']} rowSpan={1}>
@@ -111,9 +188,6 @@ const RenderMOH362a: React.FC = () => {
<TableCell className={styles['dotted-border']} rowSpan={1}>
{item.patient_id}
</TableCell>
{/* <TableCell className={styles['dotted-border']} rowSpan={1}>
{item.patient_id}
</TableCell> */}
</TableRow>
</React.Fragment>
))
7 changes: 6 additions & 1 deletion packages/esm-report-app/src/registers/MOH-362/MOH-362b.tsx
Original file line number Diff line number Diff line change
@@ -32,7 +32,12 @@ const RenderMOH362b: React.FC = () => {
Serial <br />
Number
</TableHeader>
<TableHeader rowSpan={1}>National Identification Number</TableHeader>
<TableHeader rowSpan={1}>
{' '}
National <br />
Identification <br />
Number
</TableHeader>
<TableHeader rowSpan={2}>Client Names</TableHeader>
<TableHeader rowSpan={1}>Telephone Number</TableHeader>
<TableHeader rowSpan={2}>Identification Strategy (VCT/IT/HIVST/SNS)</TableHeader>
111 changes: 70 additions & 41 deletions packages/esm-report-app/src/registers/MOH-405/MOH-405.scss
Original file line number Diff line number Diff line change
@@ -1,25 +1,37 @@
body {
font-family: 'Arial', sans-serif;
// body {
// font-family: 'Arial', sans-serif;
// color: #000000;
// background-color: #fff;
// margin: 0;
// padding: 0;
// box-sizing: border-box;
// font-size: 12px;
// font-weight: normal;
// }

h1,
h2 {
color: #000000;
background-color: #fff;
margin: 0;
padding: 0;
box-sizing: border-box;
font-size: 14px;
font-weight: bold;
}

h1,
h2,
h3,
h4,
h5,
h6 {
color: #000000;
margin: 0;
font-size: 14px;
font-weight: normal;
}

p {
margin: 0;
padding: 0;
color: #000000;
font-size: 14px;
font-weight: normal;
}

.table-container {
@@ -29,6 +41,9 @@ p {
text-align: center;
width: 100%;
padding: 10px;
font-size: 12px;
color: #000000;
font-weight: normal;

.header {
display: flex;
@@ -37,6 +52,8 @@ p {
margin-bottom: 10px;
width: 100%;
color: #000000;
font-size: 12px;
font-weight: normal;
}

.left,
@@ -45,66 +62,78 @@ p {
width: 100%;
text-align: center;
margin-bottom: 5px;
color: #000000;
font-size: 12px;
font-weight: normal;
}

@media (min-width: 768px) {
.header {
flex-direction: row;
justify-content: space-between;
align-items: center;
}
.header {
flex-direction: row;
justify-content: space-between;
align-items: center;
}

.left,
.center,
.right {
width: auto;
margin-bottom: 0;
}
.left,
.center,
.right {
width: auto;
margin-bottom: 0;
}

.left {
flex: 1;
display: flex;
justify-content: flex-start;
align-items: center;
}
.left {
flex: 1;
display: flex;
justify-content: flex-start;
align-items: center;
}

.center {
flex: 2;
text-align: center;
}
.center {
flex: 2;
text-align: center;
}

.right {
flex: 1;
display: flex;
justify-content: flex-end;
align-items: center;
}
.right {
flex: 1;
display: flex;
justify-content: flex-end;
align-items: center;
}

.table-wrapper {
width: 100%;
overflow-x: auto; /* Add horizontal scrolling */
overflow-x: auto;
}

table {
border-collapse: collapse;
width: 100%; /* Ensure the table width is 100% */
max-width: 100%; /* Ensure the table width is 100% */
width: 100%;
max-width: 100%;
color: #000000;
font-size: 12px;
font-family: Arial, sans-serif;
font-weight: normal;

th,
td {
border: 1px solid black;
padding: 8px;
text-align: center;
vertical-align: middle;
font-family: inherit;
color: inherit;
font-family: Arial, sans-serif;

color: #000000;
font-size: 14px;
word-wrap: break-word;
}

th {
background-color: #f2f2f2;
font-weight: normal;
padding: 4px;
}

td {
font-weight: normal;
}

tr:nth-child(even) {
3 changes: 3 additions & 0 deletions packages/esm-report-app/src/registers/MOH-406/MOH_406.scss
Original file line number Diff line number Diff line change
@@ -41,6 +41,9 @@ p {

th {
background-color: #f2f2f2;
color: #000000;
font-size: 14px;
font-weight: normal;
}

tr:nth-child(even) {
Original file line number Diff line number Diff line change
@@ -13,7 +13,7 @@ const RenderMOH406: React.FC = () => (
<p>Ministry of Health</p>
</div>
<div className={styles['center']}>
<h2>MOH 406a PNC REGISTER</h2>
<h2>MOH 406 PNC REGISTER</h2>
</div>
<div className={styles['right']}>
<p>Ver. July 2023</p>
@@ -45,7 +45,6 @@ const RenderMOH406: React.FC = () => (
</TableHeader>
<TableHeader colSpan={6} rowSpan={1}>
{' '}
Blank
</TableHeader>
<TableHeader colSpan={4} rowSpan={1}>
{' '}
@@ -157,11 +156,11 @@ const RenderMOH406: React.FC = () => (
</TableHeader>
<TableHeader rowSpan={5} colSpan={1}>
{' '}
1 = no change, 2 = 10 days to 14 days, 3 = 4 to 6 weeks, 4 = 4 to 6 months
1 = no change <br /> 2 = 10 days to 14 days <br /> 3 = 4 to 6 weeks <br /> 4 = 4 to 6 months
</TableHeader>
<TableHeader rowSpan={5} colSpan={1}>
{' '}
1 = no change, 2 = 10 days to 14 days, 3 = 4 to 6 weeks, 4 = 4 to 6 months
1 = no change <br /> 2 = 10 days to 14 days <br /> 3 = 4 to 6 weeks <br /> 4 = 4 to 6 months
</TableHeader>
<TableHeader rowSpan={5} colSpan={1}>
{' '}
3 changes: 3 additions & 0 deletions packages/esm-report-app/src/registers/MOH-407/nutrition.scss
Original file line number Diff line number Diff line change
@@ -42,6 +42,9 @@ p {

th {
background-color: #f2f2f2;
color: #000000;
font-size: 14px;
font-weight: normal;
}

tr:nth-child(even) {
291 changes: 291 additions & 0 deletions packages/esm-report-app/src/registers/MOH-408/MOH-408-component.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,291 @@
import React from 'react';
import styles from './MOH-408.scss';
import { TableContainer, TableHead, TableRow, TableHeader } from '@carbon/react';
import { Table } from '@carbon/react';
import { TableBody } from '@carbon/react';
import { TableCell } from '@carbon/react';
const RenderMOH408: React.FC = () => {
return (
<TableContainer className={styles['table-container']}>
<div className={styles['header']}>
<div className={styles['left']}>
<p>Ministry of Health</p>
</div>
<div className={styles['center']}>
<h2>HIV EXPOSED INFANT REGISTER MOH 408</h2>
</div>
<div className={styles['right']}>
<p>Ver. July 2023</p>
</div>
</div>

<div className={styles['table-wrapper']}>
<Table>
<TableHead>
<TableRow>
<TableHeader colSpan={31} rowSpan={1}>
Cohort: Month/year(MMM YYY)
</TableHeader>
</TableRow>
<TableRow>
<TableHeader colSpan={9} rowSpan={1}>
Infant and Mother/Guardian Information
</TableHeader>
<TableHeader colSpan={3} rowSpan={2}>
First HIV DNA PCR Test at Birth <br />6 weeks or First Contact
</TableHeader>
<TableHeader colSpan={2} rowSpan={2}>
Second HIV DNA <br /> PCR Test
</TableHeader>
<TableHeader colSpan={2} rowSpan={2}>
Third HIV DNA PCR <br /> Test
</TableHeader>
<TableHeader colSpan={2} rowSpan={2}>
Hei Outcomes at 12 months
</TableHeader>
<TableHeader colSpan={2} rowSpan={2}>
Confirmatory PCR
</TableHeader>
<TableHeader colSpan={2} rowSpan={2}>
Antibody test <br /> (18 to 24 months)
</TableHeader>
<TableHeader colSpan={2} rowSpan={2}>
Hei Outcomes at 24 <br /> months
</TableHeader>
<TableHeader colSpan={1} rowSpan={4}>
Comments{' '}
</TableHeader>
</TableRow>
<TableRow>
<TableHeader rowSpan={1} colSpan={4}>
Registration Information
</TableHeader>
<TableHeader rowSpan={1} colSpan={4}>
Infant's Information
</TableHeader>
<TableHeader rowSpan={1} colSpan={1}>
Parent's Information
</TableHeader>
</TableRow>
<TableRow>
<TableHeader rowSpan={2} colSpan={1}>
Serial No
</TableHeader>
<TableHeader rowSpan={2} colSpan={1}>
Date of <br /> Enrollment (DD/MM/YYY)
</TableHeader>
<TableHeader rowSpan={1} colSpan={1}>
Birth Certificate <br /> Number
</TableHeader>
<TableHeader rowSpan={2} colSpan={1}>
HEI ID
</TableHeader>
<TableHeader rowSpan={2} colSpan={1}>
Infant's Name
</TableHeader>
<TableHeader rowSpan={2} colSpan={1}>
DOB
</TableHeader>
<TableHeader rowSpan={1} colSpan={1}>
Sex
</TableHeader>
<TableHeader rowSpan={1} colSpan={1}>
Infant Prophylaxis <br /> 1=NVP <br /> 2=AZT <br /> 3=NVP&AZT <br /> 4=None
</TableHeader>
<TableHeader rowSpan={1} colSpan={1}>
Father's/Mothers/Guardian's Name
</TableHeader>

<TableHeader rowSpan={2} colSpan={1}>
Age at Test (in wks)
</TableHeader>
<TableHeader rowSpan={2} colSpan={1}>
Type&nbsp;of&nbsp;Test
<br /> 1=At Birth <br /> 2= At 6 WWeeks <br /> 3=at First Contact
</TableHeader>
<TableHeader rowSpan={1} colSpan={1}>
Date Sample
<br /> Collected
</TableHeader>
<TableHeader rowSpan={2} colSpan={1}>
Age at
<br /> Test <br /> in <br /> Months
</TableHeader>
<TableHeader rowSpan={1} colSpan={1}>
Date Sample
<br /> Collected
</TableHeader>
<TableHeader rowSpan={2} colSpan={1}>
Age at
<br /> Test <br /> in <br /> Months
</TableHeader>
<TableHeader rowSpan={1} colSpan={1}>
Date Sample
<br /> Collected
</TableHeader>
<TableHeader rowSpan={1} colSpan={1}>
Infant Feeding
</TableHeader>
<TableHeader rowSpan={2} colSpan={1}>
1=Infected <br /> 2= Uninfected <br /> 3=Lost to Follow <br /> 4=Transfer Out <br /> 5=Dead
</TableHeader>
<TableHeader rowSpan={2} colSpan={1}>
Age at
<br /> Test <br /> in <br /> Months
</TableHeader>
<TableHeader rowSpan={1} colSpan={1}>
Date Sample
<br /> Collected
</TableHeader>
<TableHeader rowSpan={2} colSpan={1}>
Age at
<br /> Test <br /> in <br /> Months
</TableHeader>
<TableHeader rowSpan={1} colSpan={1}>
Date Sample
<br /> Collected
</TableHeader>
<TableHeader rowSpan={1} colSpan={1}>
Infant Feeding
</TableHeader>
<TableHeader rowSpan={2} colSpan={1}>
1=Infected <br /> 2= Uninfected <br /> 3=Lost to Follow <br /> 4=Transfer Out <br /> 5=Dead{' '}
</TableHeader>
</TableRow>
<TableRow>
<TableHeader rowSpan={1} colSpan={1}>
Client Unique Number (NUPI)
</TableHeader>
<TableHeader rowSpan={1} colSpan={1}>
(M/F)
</TableHeader>
<TableHeader rowSpan={1} colSpan={1}>
(M/F)
</TableHeader>
<TableHeader rowSpan={1} colSpan={1}>
Telephone number
</TableHeader>
<TableHeader rowSpan={1} colSpan={1}>
Test Result (P,N)
</TableHeader>
<TableHeader rowSpan={1} colSpan={1}>
Test Result (P,N)
</TableHeader>
<TableHeader rowSpan={1} colSpan={1}>
Test Result (P,N)
</TableHeader>
<TableHeader rowSpan={1} colSpan={1}>
BF= Breast Feeding NBF= Not Breast Feeding
</TableHeader>
<TableHeader rowSpan={1} colSpan={1}>
Test Result (P,N)
</TableHeader>
<TableHeader rowSpan={1} colSpan={1}>
Test Result (P,N)
</TableHeader>

<TableHeader rowSpan={1} colSpan={1}>
BF= Breast Feeding NBF= Not Breast Feeding
</TableHeader>
</TableRow>
<TableRow>
<TableCell rowSpan={1}>(a)</TableCell>
<TableCell rowSpan={1}>(b)</TableCell>
<TableCell rowSpan={1}>(c)</TableCell>
<TableCell rowSpan={1}>(d)</TableCell>
<TableCell rowSpan={1}>(e)</TableCell>
<TableCell rowSpan={1}>(f)</TableCell>
<TableCell rowSpan={1}>(g)</TableCell>
<TableCell rowSpan={1}>(h)</TableCell>
<TableCell rowSpan={1}>(i)</TableCell>
<TableCell rowSpan={1}>(j)</TableCell>
<TableCell rowSpan={1}>(k)</TableCell>
<TableCell rowSpan={1}>(l)</TableCell>
<TableCell rowSpan={1}>(m)</TableCell>
<TableCell rowSpan={1}>(n)</TableCell>
<TableCell rowSpan={1}>(o)</TableCell>
<TableCell rowSpan={1}>(p)</TableCell>
<TableCell rowSpan={1}>(q)</TableCell>
<TableCell rowSpan={1}>(r)</TableCell>
<TableCell rowSpan={1}>(s)</TableCell>
<TableCell rowSpan={1}>(t)</TableCell>
<TableCell rowSpan={1}>(u)</TableCell>
<TableCell rowSpan={1}>(v)</TableCell>
<TableCell rowSpan={1}>(w)</TableCell>
<TableCell rowSpan={1}>(x)</TableCell>
<TableCell rowSpan={1}>(y)</TableCell>
</TableRow>
</TableHead>
<TableBody>
{Array.from({ length: 2 }, (_, i) => (
<React.Fragment key={i}>
<TableRow>
<TableCell rowSpan={2}></TableCell>
{/* a */}
<TableCell rowSpan={2}></TableCell> {/* b */}
<TableCell className={styles['dotted-border']} rowSpan={1}></TableCell>
{/* c */}
<TableCell rowSpan={2}></TableCell>
{/* d */}
<TableCell rowSpan={2}></TableCell>
{/* e */}
<TableCell rowSpan={2}></TableCell>
{/* f */}
<TableCell rowSpan={1}></TableCell>
{/* g */}
<TableCell rowSpan={2}></TableCell>
{/* h */}
<TableCell className={styles['dotted-border']} rowSpan={1}></TableCell>
{/* i */}
<TableCell rowSpan={2}></TableCell>
{/* j */}
<TableCell rowSpan={2}></TableCell>
{/* k */}
<TableCell rowSpan={1}></TableCell>
{/* l */}
<TableCell rowSpan={2}></TableCell>
{/* m */}
<TableCell rowSpan={1}></TableCell>
{/* n */}
<TableCell rowSpan={2}></TableCell>
{/* o */}
<TableCell rowSpan={1}></TableCell>
{/* p */}
<TableCell rowSpan={1}></TableCell>
{/* q */}
<TableCell rowSpan={2}></TableCell>
{/* r */}
<TableCell rowSpan={2}></TableCell>
{/* s */}
<TableCell className={styles['dotted-border']} rowSpan={1}></TableCell>
{/* t */}
<TableCell rowSpan={2}></TableCell>
<TableCell className={styles['dotted-border']} rowSpan={1}></TableCell>
<TableCell className={styles['dotted-border']} rowSpan={1}></TableCell>
<TableCell rowSpan={1}></TableCell>
<TableCell rowSpan={2}></TableCell>
{/* <TableCell rowSpan={2}></TableCell> */}
</TableRow>
<TableRow>
<TableCell rowSpan={1}></TableCell>
<TableCell rowSpan={1}></TableCell>
<TableCell rowSpan={1}></TableCell>
<TableCell rowSpan={1}></TableCell>
<TableCell rowSpan={1}></TableCell>
<TableCell rowSpan={1}></TableCell>
<TableCell rowSpan={1}></TableCell>
<TableCell rowSpan={1}></TableCell>
<TableCell rowSpan={1}></TableCell>
<TableCell rowSpan={1}></TableCell>
<TableCell rowSpan={1}></TableCell>
</TableRow>
</React.Fragment>
))}
</TableBody>
</Table>
</div>
</TableContainer>
);
};

export default RenderMOH408;
93 changes: 93 additions & 0 deletions packages/esm-report-app/src/registers/MOH-408/MOH-408.scss
Original file line number Diff line number Diff line change
@@ -0,0 +1,93 @@
h1,
h2,
h3,
h4,
h5,
h6 {
color: #000000;
margin: 0;
}

p {
margin: 0;
padding: 0;
}


.table-container {
display: flex;
flex-direction: column;
align-items: center;
text-align: center;
width: 100%;
overflow-x: auto; /* Add horizontal scrolling */


.table-wrapper {
width: 100%;
overflow-x: auto; /* Add horizontal scrolling */
}

table {
border-collapse: collapse;
width: 100%;
color: #000000;
font-size: 12px;
font-family: Arial, sans-serif;

th,
td {
border: 1px solid black;
padding: 4px;
text-align: center;
vertical-align: middle;
color: #000000;
}

th {
background-color: #f2f2f2;
font-weight: normal; // Match the image
padding: 4px;
}

tr:nth-child(even) {
background-color: #ffffff; // Ensure no background for even rows
}

tr:nth-child(odd) {
background-color: #ffffff; // Ensure no background for odd rows
}

td.dotted-border {
border: 1px dotted black;
}

thead th {
border-bottom: 2px solid black; // Thicker border for header
}
}

.header {
display: flex;
justify-content: space-between;
align-items: center;
margin-bottom: 10px;
width: 100%;
color: #000000;
font-size: 14px; // Adjust font size

.left,
.right {
flex: 1;
display: flex;
justify-content: center; // Center align for left and right
align-items: center;
}

.center {
flex: 2;
text-align: center;
font-size: 16px; // Adjust font size
}
}
}
Original file line number Diff line number Diff line change
@@ -6,13 +6,15 @@ import NutritionRegisters from '../../registers/MOH-407/nutrition-register-compo
import PrepRegister from '../../registers/MOH-267/prep-activity-register.component';
import { useParams } from 'react-router-dom';
import styles from './dynamic-report-loader.scss';
import RenderMOH408 from '../../registers/MOH-408/MOH-408-component';

const reportComponentMapping = {
'MOH 405 - AnteNatal(ANC) Register': RenderMOH405,
'MOH 406 A PNC REGISTER': RenderMOH406,
'MOH 362 A - HTS LABS REGISTER': RenderMOH362,
'MOH 407 Nutrition Service Register': NutritionRegisters,
'uuid-for-prep-register': PrepRegister,
'MOH 408 HEI REGISTER': RenderMOH408,
};

const DynamicReportLoader: React.FC = () => {
46 changes: 43 additions & 3 deletions yarn.lock
Original file line number Diff line number Diff line change
@@ -5,7 +5,9 @@ __metadata:
version: 8
cacheKey: 10


"@adobe/css-tools@npm:^4.4.0":

version: 4.4.0
resolution: "@adobe/css-tools@npm:4.4.0"
checksum: 10/9c6315fe9efa5075d6ddb6ded7a1424bc9c41a01f2314b6bdcc368723985fe161008d03ddcc2b27b2da50cb9c14190fbce965d15cefe5f9a31bdd43f35b52115
@@ -3036,8 +3038,10 @@ __metadata:
linkType: hard

"@ohri/openmrs-esm-ohri-commons-lib@npm:next":
version: 2.3.2-pre.319
resolution: "@ohri/openmrs-esm-ohri-commons-lib@npm:2.3.2-pre.319"

version: 2.3.2-pre.312
resolution: "@ohri/openmrs-esm-ohri-commons-lib@npm:2.3.2-pre.312"

dependencies:
"@carbon/react": "npm:^1.13.0"
"@openmrs/openmrs-form-engine-lib": "npm:2.0.0-pre.1029"
@@ -3052,7 +3056,10 @@ __metadata:
react: 18.x
react-i18next: 11.x
swr: 2.x
checksum: 10/a57948c204b2dca10833967ae6fe2ca466e3492c52e3e3282ad800b302f9579d041b7b77f1936d9cc4b6c32790137f9f5ab07148c1d033a6ff0fa65b12e6ca6a

checksum: 10/f4698f477af51a36d0370d8c49b99ffde0235e119c5a4bf83ab69f1b2009a71dd49a8ae9ae16648f998631c1cc7f23c1553d4741aecdf64e73077e21fa6936e7


languageName: node
linkType: hard

@@ -3253,8 +3260,10 @@ __metadata:
linkType: hard

"@openmrs/esm-patient-common-lib@npm:next":

version: 8.0.2-pre.4670
resolution: "@openmrs/esm-patient-common-lib@npm:8.0.2-pre.4670"

dependencies:
"@carbon/react": "npm:^1.12.0"
lodash-es: "npm:^4.17.21"
@@ -3263,7 +3272,9 @@ __metadata:
"@openmrs/esm-framework": 5.x
react: 18.x
single-spa: 6.x

checksum: 10/4be1363270a500e0ad01b0442f993aa899702cf0bf857d2a8e30707d271cf92c5bb34045a3b353be9959d8ec241c613d216e69c0c9dd9bbafdc266b959e1e690

languageName: node
linkType: hard

@@ -5545,77 +5556,97 @@ __metadata:
languageName: node
linkType: hard


"@swc/core-darwin-arm64@npm:1.5.28":
version: 1.5.28
resolution: "@swc/core-darwin-arm64@npm:1.5.28"

conditions: os=darwin & cpu=arm64
languageName: node
linkType: hard


"@swc/core-darwin-x64@npm:1.5.28":
version: 1.5.28
resolution: "@swc/core-darwin-x64@npm:1.5.28"

conditions: os=darwin & cpu=x64
languageName: node
linkType: hard


"@swc/core-linux-arm-gnueabihf@npm:1.5.28":
version: 1.5.28
resolution: "@swc/core-linux-arm-gnueabihf@npm:1.5.28"

conditions: os=linux & cpu=arm
languageName: node
linkType: hard


"@swc/core-linux-arm64-gnu@npm:1.5.28":
version: 1.5.28
resolution: "@swc/core-linux-arm64-gnu@npm:1.5.28"

conditions: os=linux & cpu=arm64 & libc=glibc
languageName: node
linkType: hard


"@swc/core-linux-arm64-musl@npm:1.5.28":
version: 1.5.28
resolution: "@swc/core-linux-arm64-musl@npm:1.5.28"

conditions: os=linux & cpu=arm64 & libc=musl
languageName: node
linkType: hard


"@swc/core-linux-x64-gnu@npm:1.5.28":
version: 1.5.28
resolution: "@swc/core-linux-x64-gnu@npm:1.5.28"

conditions: os=linux & cpu=x64 & libc=glibc
languageName: node
linkType: hard


"@swc/core-linux-x64-musl@npm:1.5.28":
version: 1.5.28
resolution: "@swc/core-linux-x64-musl@npm:1.5.28"

conditions: os=linux & cpu=x64 & libc=musl
languageName: node
linkType: hard


"@swc/core-win32-arm64-msvc@npm:1.5.28":
version: 1.5.28
resolution: "@swc/core-win32-arm64-msvc@npm:1.5.28"

conditions: os=win32 & cpu=arm64
languageName: node
linkType: hard


"@swc/core-win32-ia32-msvc@npm:1.5.28":
version: 1.5.28
resolution: "@swc/core-win32-ia32-msvc@npm:1.5.28"

conditions: os=win32 & cpu=ia32
languageName: node
linkType: hard

"@swc/core-win32-x64-msvc@npm:1.5.28":
version: 1.5.28
resolution: "@swc/core-win32-x64-msvc@npm:1.5.28"

conditions: os=win32 & cpu=x64
languageName: node
linkType: hard

"@swc/core@npm:^1.2.165, @swc/core@npm:^1.3.58":

version: 1.5.28
resolution: "@swc/core@npm:1.5.28"
dependencies:
@@ -5629,6 +5660,7 @@ __metadata:
"@swc/core-win32-arm64-msvc": "npm:1.5.28"
"@swc/core-win32-ia32-msvc": "npm:1.5.28"
"@swc/core-win32-x64-msvc": "npm:1.5.28"

"@swc/counter": "npm:^0.1.3"
"@swc/types": "npm:^0.1.8"
peerDependencies:
@@ -5657,7 +5689,9 @@ __metadata:
peerDependenciesMeta:
"@swc/helpers":
optional: true

checksum: 10/8afa15c6212222f6966d40a15942678da14aede097b53b24f993f598b09e227e1a4a39d67875bbaf2b5eea999ef16ad4add6f71fe1fe4edce56ca757b18ad8be

languageName: node
linkType: hard

@@ -9853,9 +9887,11 @@ __metadata:
linkType: hard

"electron-to-chromium@npm:^1.4.796":

version: 1.4.799
resolution: "electron-to-chromium@npm:1.4.799"
checksum: 10/e1ea97e77175dbc4d3390778cfa557c29dc2a7067ec9b7d9df13600d98ade5f5a1b3fa2ade9c8340a807edac14dc17269c92efe76c9cd80b1d0ed6bd7113c148

languageName: node
linkType: hard

@@ -9926,7 +9962,9 @@ __metadata:
languageName: node
linkType: hard


"enhanced-resolve@npm:^5.17.0":

version: 5.17.0
resolution: "enhanced-resolve@npm:5.17.0"
dependencies:
@@ -15950,11 +15988,13 @@ __metadata:
linkType: hard

"prettier@npm:^3.1.1":

version: 3.3.2
resolution: "prettier@npm:3.3.2"
bin:
prettier: bin/prettier.cjs
checksum: 10/83214e154afa5aa9b664c2506640212323eb1376b13379b2413dc351b7de0687629dca3f00ff2ec895ebd7e3a2adb7d7e231b6c77606e2358137f2150807405b

languageName: node
linkType: hard

0 comments on commit fed5b76

Please sign in to comment.