From 6196053f02f747c7fd7c45e67cfbafd35c388edc Mon Sep 17 00:00:00 2001 From: gabu90 Date: Tue, 29 Oct 2024 15:56:49 +0300 Subject: [PATCH] In the Cacx register add a column for CCC Number and Nupi number --- .../cacx/CACXRegisterReportBuilder.java | 7 +++++++ .../reports/cacx_register_template.xls | Bin 23040 -> 8704 bytes 2 files changed, 7 insertions(+) diff --git a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/cacx/CACXRegisterReportBuilder.java b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/cacx/CACXRegisterReportBuilder.java index b533088569..a99d1e709d 100644 --- a/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/cacx/CACXRegisterReportBuilder.java +++ b/api/src/main/java/org/openmrs/module/kenyaemr/reporting/builder/cacx/CACXRegisterReportBuilder.java @@ -94,8 +94,13 @@ protected DataSetDefinition datasetColumns() { DataConverter nameFormatter = new ObjectFormatter("{familyName}, {givenName} {middleName}"); DataDefinition nameDef = new ConvertedPersonDataDefinition("name", new PreferredNameDataDefinition(), nameFormatter); PatientIdentifierType nationalId = MetadataUtils.existing(PatientIdentifierType.class, CommonMetadata._PatientIdentifierType.NATIONAL_ID); + PatientIdentifierType nupi = MetadataUtils.existing(PatientIdentifierType.class, CommonMetadata._PatientIdentifierType.NATIONAL_UNIQUE_PATIENT_IDENTIFIER); DataConverter identifierFormatter = new ObjectFormatter("{identifier}"); DataDefinition identifierDef = new ConvertedPatientDataDefinition("identifier", new PatientIdentifierDataDefinition(nationalId.getName(), nationalId), identifierFormatter); + PatientIdentifierType upn = MetadataUtils.existing(PatientIdentifierType.class, HivMetadata._PatientIdentifierType.UNIQUE_PATIENT_NUMBER); + DataDefinition cccNumberDef = new ConvertedPatientDataDefinition("identifier", new PatientIdentifierDataDefinition(upn.getName(), upn), identifierFormatter); + DataDefinition nupiDef = new ConvertedPatientDataDefinition("identifier", new PatientIdentifierDataDefinition(nupi.getName(), nupi), identifierFormatter); + PersonAttributeType phoneNumber = MetadataUtils.existing(PersonAttributeType.class, CommonMetadata._PersonAttributeType.TELEPHONE_CONTACT); @@ -104,6 +109,8 @@ protected DataSetDefinition datasetColumns() { dsd.addColumn("Visit Type", new CACXVisitTypeDataDefinition(), null); dsd.addColumn("Name", nameDef, ""); dsd.addColumn("ID Number", identifierDef, ""); + dsd.addColumn("CCC No", cccNumberDef, ""); + dsd.addColumn("NUPI", nupiDef, ""); dsd.addColumn("Sex", new GenderDataDefinition(), ""); dsd.addColumn("Phone Number", new PersonAttributeDataDefinition(phoneNumber), ""); dsd.addColumn("Age in years", new AgeDataDefinition(), ""); diff --git a/omod/src/main/webapp/resources/reports/cacx_register_template.xls b/omod/src/main/webapp/resources/reports/cacx_register_template.xls index 1a8cd2f1f2597b3f7e0399e3c3a565651dc7c741..04b90e06feb2907cab8d1ab0f9df3074856d3730 100644 GIT binary patch literal 8704 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 HjFA5UW(ed1