diff --git a/frontend/src/components/cytology/CytologyCaseView.js b/frontend/src/components/cytology/CytologyCaseView.js index 50fc46fad4..af7176b4fb 100644 --- a/frontend/src/components/cytology/CytologyCaseView.js +++ b/frontend/src/components/cytology/CytologyCaseView.js @@ -821,7 +821,7 @@ function CytologyCaseView() { }} /> - + { reportTypes.filter( (type) => type.id === report.reportType, @@ -849,7 +849,23 @@ function CytologyCaseView() { )} - + + + + +
           
diff --git a/src/main/java/org/openelisglobal/reports/action/implementation/PatientCytologyReport.java b/src/main/java/org/openelisglobal/reports/action/implementation/PatientCytologyReport.java new file mode 100644 index 0000000000..0b55c75348 --- /dev/null +++ b/src/main/java/org/openelisglobal/reports/action/implementation/PatientCytologyReport.java @@ -0,0 +1,42 @@ +package org.openelisglobal.reports.action.implementation; +import java.util.ArrayList; +import java.util.List; + +import org.openelisglobal.program.service.cytology.CytologySampleService; +import org.openelisglobal.program.valueholder.cytology.CytologySample; +import org.openelisglobal.reports.form.ReportForm; +import org.openelisglobal.spring.util.SpringContext; + +public class PatientCytologyReport extends PatientProgramReport { + + protected CytologySampleService cytologySampleService = SpringContext.getBean(CytologySampleService.class); + private CytologySample cytologySample; + + @Override + protected String getReportName() { + return "PatientCytologyReport"; + } + + @Override + protected void setAdditionalReportItems() { + data.setSpecimenAdequacy("Dummy specimenn"); + data.setDiagnosis("NEGATIVE DIAGNOSIS"); + + List stringList = new ArrayList<>(); + stringList.add("dummy diagnosis"); + stringList.add("sample diagnosis"); + stringList.add("example diagnosis"); + + data.setEpithelialCellAbnomalities(stringList); + data.setReactiveCellularChanges(stringList); + data.setOrganisms(stringList); + data.setOtherDiagnoses(stringList); + } + + @Override + protected void innitializeSample(ReportForm form) { + cytologySample = cytologySampleService.get(Integer.valueOf(form.getProgramSampleId())); + sample = cytologySample.getSample(); + } + +} diff --git a/src/main/java/org/openelisglobal/reports/action/implementation/ReportImplementationFactory.java b/src/main/java/org/openelisglobal/reports/action/implementation/ReportImplementationFactory.java index d32d3536f5..2e5af3d7e2 100644 --- a/src/main/java/org/openelisglobal/reports/action/implementation/ReportImplementationFactory.java +++ b/src/main/java/org/openelisglobal/reports/action/implementation/ReportImplementationFactory.java @@ -279,6 +279,9 @@ else if (report.equals("covidResultsReport")) { }else if (report.equals("PatientPathologyReport")){ return new PatientPathologyReport(); } + else if(report.equals("PatientCytologyReport")){ + return new PatientCytologyReport(); + } } return null; diff --git a/src/main/java/org/openelisglobal/reports/action/implementation/reportBeans/ProgramSampleReportData.java b/src/main/java/org/openelisglobal/reports/action/implementation/reportBeans/ProgramSampleReportData.java index 78f5876351..f7e3fefae9 100644 --- a/src/main/java/org/openelisglobal/reports/action/implementation/reportBeans/ProgramSampleReportData.java +++ b/src/main/java/org/openelisglobal/reports/action/implementation/reportBeans/ProgramSampleReportData.java @@ -1,5 +1,7 @@ package org.openelisglobal.reports.action.implementation.reportBeans; +import java.util.List; + public final class ProgramSampleReportData { private String patientName = ""; @@ -94,6 +96,7 @@ public final class ProgramSampleReportData { private String labOrderType = ""; + //Pathology data private String grossExam; private String microExam; @@ -102,6 +105,21 @@ public final class ProgramSampleReportData { private String textConclusion; + //Cytology data + private String specimenAdequacy; + + private String diagnosis; + + private List nonNeoplasticCellularVariations; + + private List reactiveCellularChanges; + + private List organisms; + + private List epithelialCellAbnomalities; + + private List otherDiagnoses; + public ProgramSampleReportData() { } @@ -569,4 +587,59 @@ public void setTextConclusion(String textConclusion) { this.textConclusion = textConclusion; } + public String getSpecimenAdequacy() { + return specimenAdequacy; + } + + public void setSpecimenAdequacy(String specimenAdequacy) { + this.specimenAdequacy = specimenAdequacy; + } + + public String getDiagnosis() { + return diagnosis; + } + + public void setDiagnosis(String diagnosis) { + this.diagnosis = diagnosis; + } + + public List getNonNeoplasticCellularVariations() { + return nonNeoplasticCellularVariations; + } + + public void setNonNeoplasticCellularVariations(List nonNeoplasticCellularVariations) { + this.nonNeoplasticCellularVariations = nonNeoplasticCellularVariations; + } + + public List getReactiveCellularChanges() { + return reactiveCellularChanges; + } + + public void setReactiveCellularChanges(List reactiveCellularChanges) { + this.reactiveCellularChanges = reactiveCellularChanges; + } + + public List getOrganisms() { + return organisms; + } + + public void setOrganisms(List organisms) { + this.organisms = organisms; + } + + public List getEpithelialCellAbnomalities() { + return epithelialCellAbnomalities; + } + + public void setEpithelialCellAbnomalities(List epithelialCellAbnomalities) { + this.epithelialCellAbnomalities = epithelialCellAbnomalities; + } + + public List getOtherDiagnoses() { + return otherDiagnoses; + } + + public void setOtherDiagnoses(List otherDiagnoses) { + this.otherDiagnoses = otherDiagnoses; + } } diff --git a/src/main/resources/languages/message_en.properties b/src/main/resources/languages/message_en.properties index 79a3b5d8c1..2d111c812c 100644 --- a/src/main/resources/languages/message_en.properties +++ b/src/main/resources/languages/message_en.properties @@ -7812,4 +7812,15 @@ pathology.label.grossexam = Gross Exam pathology.label.microexam = Microscopy Exam pathology.label.conclusion = Conclusion pathology.label.textconclusion = Text Conclusion -pathology.label.report = HistoPathology Report +pathology.label.report = HistoPathology Report +cytology.label.specimen = Specimen Adequacy +cytology.label.negative = Negative For Intraepithelial Lesion or Malignancy +cytology.label.cellabnomality = Epithelial Cell Abnomality +cytology.label.other = Other Malignant Neoplasms +cytology.label.neoplastic = Non-neoplastic cellular variations +cytology.label.reactive = Reactive cellular changes +cytology.label.organisms = Organisms +cytology.label.otherResult = Other Diagnosis Result +cytology.label.diagnosis = Diagnosis/Impression +cytology.label.papsmear = PAP SMEAR REPORT + diff --git a/src/main/resources/languages/message_fr.properties b/src/main/resources/languages/message_fr.properties index 5cf657740b..4e1d58a604 100644 --- a/src/main/resources/languages/message_fr.properties +++ b/src/main/resources/languages/message_fr.properties @@ -7309,3 +7309,14 @@ pathology.label.microexam = Examen Macroscopique pathology.label.conclusion = Conclusion pathology.label.textconclusion = Conclusion Textuelle pathology.label.report = Rapport d'histopathologie +pathology.label.report = Rapport d'histopathologie +cytology.label.specimen = Adéquation de spécimen +cytology.label.negative = Négatif pour des lésions intraépithéliales ou malignes +cytology.label.cellabnormality = Anomalie des cellules épithéliales +cytology.label.other = Autres néoplasmes malins +cytology.label.neoplastic = Variations cellulaires non néoplasiques +cytology.label.reactive = Changements cellulaires réactifs +cytology.label.organisms = Organismes +cytology.label.otherResult = Autre résultat de diagnostic +cytology.label.diagnosis = Diagnostic/Impression +cytology.label.papsmear = Rapport du frottis de PAP diff --git a/src/main/resources/reports/PatientCytologyReport.jasper b/src/main/resources/reports/PatientCytologyReport.jasper new file mode 100644 index 0000000000..9afc24c68b Binary files /dev/null and b/src/main/resources/reports/PatientCytologyReport.jasper differ diff --git a/src/main/resources/reports/PatientCytologyReport.jrxml b/src/main/resources/reports/PatientCytologyReport.jrxml new file mode 100644 index 0000000000..3a5e8d5ac1 --- /dev/null +++ b/src/main/resources/reports/PatientCytologyReport.jrxml @@ -0,0 +1,1010 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + 1]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <band height="2" splitType="Stretch"> + <line> + <reportElement key="line" x="0" y="-45" width="534" height="1" forecolor="#000000" uuid="d79c2f6c-c1be-408f-b5ad-1d81ab9a43bd"/> + <graphicElement> + <pen lineWidth="2.0" lineStyle="Solid"/> + </graphicElement> + </line> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + " + $R{cytology.label.specimen} + ""]]> + + + + + + + + + + + + + + " + $R{cytology.label.diagnosis} + ""]]> + + + + + + + + + + + + + + " + $R{cytology.label.neoplastic} + ""]]> + + + + + + + + "• " + s).collect(java.util.stream.Collectors.joining("\n"))]]> + + + + + + + " + $R{cytology.label.reactive}+ ""]]> + + + + + + + + "• " + s).collect(java.util.stream.Collectors.joining("\n"))]]> + + + + + + + + " + $R{cytology.label.organisms}+ ""]]> + + + + + + + + "• " + s).collect(java.util.stream.Collectors.joining("\n"))]]> + + + + + + + + " + $R{cytology.label.cellabnomality}+ ""]]> + + + + + + + + "• " + s).collect(java.util.stream.Collectors.joining("\n"))]]> + + + + + + + + " + $R{cytology.label.otherResult}+ ""]]> + + + + + + + + "• " + s).collect(java.util.stream.Collectors.joining("\n"))]]> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +