List of usage examples for org.apache.poi.ss.usermodel Workbook getNumberOfSheets
int getNumberOfSheets();
From source file:org.interpss.util.reader.ExcelFileReader.java
License:Open Source License
/** * Load the spreadsheet and process the row, one row at a time, * using the File processor //ww w . j a v a 2s.c o m * * @param procer * @return sheet name */ public String processFile(IExcelFileProcessor<Row> procer) throws InterpssException { final File file = new File(this.filepath); Workbook wb; try { final InputStream stream = new FileInputStream(file); wb = WorkbookFactory.create(stream); } catch (Exception e) { ipssLogger.severe(e.toString()); throw new InterpssException(e.toString()); } if (wb.getNumberOfSheets() <= this.indexSheet) // index starts from 0 throw new InterpssException(this.sheetname + " does not exit in " + this.filepath); Sheet sheet = wb.getSheetAt(this.indexSheet); Iterator<Row> rowIter = sheet.rowIterator(); while (rowIter.hasNext()) { procer.processRow(rowIter.next()); } return sheet.getSheetName(); }
From source file:org.joeffice.spreadsheet.SpreadsheetComponent.java
License:Apache License
public void load(Workbook workbook) { this.workbook = workbook; int numberOfSheets = workbook.getNumberOfSheets(); for (int i = 0; i < numberOfSheets; i++) { Sheet sheet = workbook.getSheetAt(i); String sheetName = workbook.getSheetName(i); JPanel sheetPanel = new SheetComponent(sheet, this); addTab(sheetName, sheetPanel);//w w w .ja v a 2 s . c o m } setSelectedIndex(workbook.getActiveSheetIndex()); formulaEvaluator = workbook.getCreationHelper().createFormulaEvaluator(); }
From source file:org.jplus.compare.excel.service.CompareService.java
public static List<String> getSheetNames(String excelPath) { List<String> names = new ArrayList<String>(); InputStream inputStream = null; try {//from w ww .j a v a 2s .com File file = new File(excelPath); inputStream = new FileInputStream(file); Workbook workbook = new HSSFWorkbook(inputStream); int numberOfSheets = workbook.getNumberOfSheets(); for (int i = 0; i < numberOfSheets; i++) { names.add(workbook.getSheetName(i)); } } catch (IOException ex) { Logger.getLogger(CompareService.class.getName()).log(Level.SEVERE, null, ex); } finally { if (inputStream != null) { try { inputStream.close(); } catch (IOException ex) { Logger.getLogger(CompareService.class.getName()).log(Level.SEVERE, null, ex); } } } return names; }
From source file:org.mifos.dmt.excel.CreateExcel.java
License:Open Source License
public Workbook generate(String baseTemplate, DMTMigrationParams params) throws InvalidFormatException, IOException, DMTException { InputStream inp = new FileInputStream(baseTemplate); Workbook wb = WorkbookFactory.create(inp); ArrayList<String> sheetSpec = readSheetSpec(params); for (int i = wb.getNumberOfSheets(); i > 0; i--) { String sheetName = wb.getSheetName(i - 1); if (sheetSpec.contains(sheetName)) { wb.removeSheetAt(i - 1);/*from w w w .jav a2 s.c o m*/ } else { logger.info("Adding sheet : " + sheetName); } } Sheet configSheet = wb.getSheetAt(0); editConfigSheet(configSheet); return wb; }
From source file:org.netxilia.impexp.impl.ExcelImportService.java
License:Open Source License
@Override public List<SheetFullName> importSheets(INetxiliaSystem workbookProcessor, WorkbookId workbookName, InputStream is, IProcessingConsole console) throws ImportException { List<SheetFullName> sheetNames = new ArrayList<SheetFullName>(); try {// ww w. ja v a 2s .c o m log.info("Starting import:" + workbookName); Workbook poiWorkbook = new HSSFWorkbook(is); IWorkbook nxWorkbook = workbookProcessor.getWorkbook(workbookName); log.info("Read POI"); NetxiliaStyleResolver styleResolver = new NetxiliaStyleResolver( styleService.getStyleDefinitions(workbookName)); HSSFPalette palette = ((HSSFWorkbook) poiWorkbook).getCustomPalette(); for (int s = 0; s < poiWorkbook.getNumberOfSheets(); ++s) { Sheet poiSheet = poiWorkbook.getSheetAt(s); SheetFullName sheetName = new SheetFullName(workbookName, getNextFreeSheetName(nxWorkbook, poiSheet.getSheetName())); ISheet nxSheet = null; BlockCellCommandBuilder cellCommandBuilder = new BlockCellCommandBuilder(); try { List<CellReference> refreshCells = new ArrayList<CellReference>(); for (Row poiRow : poiSheet) { if (poiRow.getRowNum() % 100 == 0) { log.info("importing row #" + poiRow.getRowNum()); } for (Cell poiCell : poiRow) { if (nxSheet == null) { // lazy creation while (true) { try { nxSheet = nxWorkbook.addNewSheet(sheetName.getSheetName(), SheetType.normal); nxSheet.setRefreshEnabled(false); break; } catch (AlreadyExistsException e) { // may happen is simultaneous imports take place sheetName = new SheetFullName(workbookName, getNextFreeSheetName(nxWorkbook, poiSheet.getSheetName())); } } } CellReference ref = new CellReference(sheetName.getSheetName(), poiRow.getRowNum(), poiCell.getColumnIndex()); try { ICellCommand cmd = copyCell(poiCell, ref, palette, styleResolver); if (cmd != null) { cellCommandBuilder.command(cmd); } if (poiCell.getCellType() == Cell.CELL_TYPE_FORMULA) { refreshCells.add(ref); } } catch (Exception e) { if (console != null) { console.println("Could import cell " + ref + ":" + poiCell + ":" + e); } log.error("Could import cell " + ref + ":" + poiCell + ":" + e, e); } } if (poiRow.getRowNum() % 100 == 0 && !cellCommandBuilder.isEmpty()) { nxSheet.sendCommandNoUndo(cellCommandBuilder.build()); cellCommandBuilder = new BlockCellCommandBuilder(); } } if (nxSheet == null) { // empty sheet continue; } if (!cellCommandBuilder.isEmpty()) { nxSheet.sendCommandNoUndo(cellCommandBuilder.build()); } // add the columns after as is not very clear how to get the number of cols in poi for (int c = 0; c < nxSheet.getDimensions().getNonBlocking().getColumnCount(); ++c) { int width = 50; try { width = PoiUtils.widthUnits2Pixel(poiSheet.getColumnWidth(c)); nxSheet.sendCommand(ColumnCommands.width(Range.range(c), width)); } catch (NullPointerException ex) { // ignore it // NPE in at org.apache.poi.hssf.model.Sheet.getColumnWidth(Sheet.java:998) // defaultColumnWidth can be null !? } CellStyle poiStyle = poiSheet.getColumnStyle(c); if (poiStyle == null) { continue; } Styles styles = PoiUtils.poiStyle2Netxilia(poiStyle, poiSheet.getWorkbook().getFontAt(poiStyle.getFontIndex()), palette, styleResolver); if (styles != null) { nxSheet.sendCommand(ColumnCommands.styles(Range.range(c), styles)); } } // merge List<AreaReference> spans = new ArrayList<AreaReference>(poiSheet.getNumMergedRegions()); for (int i = 0; i < poiSheet.getNumMergedRegions(); ++i) { CellRangeAddress poiSpan = poiSheet.getMergedRegion(i); spans.add(new AreaReference(sheetName.getSheetName(), poiSpan.getFirstRow(), poiSpan.getFirstColumn(), poiSpan.getLastRow(), poiSpan.getLastColumn())); } nxSheet.sendCommand(SheetCommands.spans(spans)); // refresh all the cells now nxSheet.setRefreshEnabled(true); nxSheet.sendCommandNoUndo(moreCellCommands.refresh(refreshCells, false)); } finally { if (nxSheet != null) { sheetNames.add(sheetName); } } } } catch (IOException e) { throw new ImportException(null, "Cannot open workbook:" + e, e); } catch (StorageException e) { throw new ImportException(null, "Error storing sheet:" + e, e); } catch (NotFoundException e) { throw new ImportException(null, "Cannot find workbook:" + e, e); } catch (NetxiliaResourceException e) { throw new ImportException(null, e.getMessage(), e); } catch (NetxiliaBusinessException e) { throw new ImportException(null, e.getMessage(), e); } return sheetNames; }
From source file:org.nuclos.server.report.export.ExcelExport.java
License:Open Source License
private NuclosFile export(Workbook wb, String sheetname, ResultVO result, List<ReportFieldDefinition> fields, String name) throws NuclosReportException { sheetname = sheetname != null ? sheetname : SpringLocaleDelegate.getInstance().getMessage("XLSExport.2", "Daten aus Nucleus"); Sheet s = wb.getSheet(sheetname);//from w ww.j av a2 s .c om if (s == null) { s = wb.createSheet(sheetname); } int iRowNum = 0; int iColumnNum = 0; CreationHelper createHelper = wb.getCreationHelper(); Row row = getRow(s, 0); Map<Integer, CellStyle> styles = new HashMap<Integer, CellStyle>(); for (Iterator<ResultColumnVO> i = result.getColumns().iterator(); i.hasNext(); iColumnNum++) { i.next(); Cell cell = getCell(row, iColumnNum); cell.setCellValue(fields.get(iColumnNum).getLabel()); CellStyle style = wb.createCellStyle(); String f = getFormat(fields.get(iColumnNum)); if (f != null) { style.setDataFormat(createHelper.createDataFormat().getFormat(f)); } styles.put(iColumnNum, style); } iRowNum++; // export data for (int i = 0; i < result.getRows().size(); i++, iRowNum++) { iColumnNum = 0; Object[] dataRow = result.getRows().get(i); row = getRow(s, iRowNum); for (int j = 0; j < result.getColumns().size(); j++, iColumnNum++) { Object value = dataRow[j]; Cell c = getCell(row, iColumnNum); ReportFieldDefinition def = fields.get(j); if (value != null) { if (value instanceof List) { final StringBuilder sb = new StringBuilder(); for (Iterator<?> it = ((List<?>) value).iterator(); it.hasNext();) { final Object v = it.next(); sb.append(CollectableFieldFormat.getInstance(def.getJavaClass()) .format(def.getOutputformat(), v)); if (it.hasNext()) { sb.append(", "); } } c.setCellValue(sb.toString()); } else { if (Date.class.isAssignableFrom(def.getJavaClass())) { c.setCellStyle(styles.get(iColumnNum)); c.setCellValue((Date) value); } else if (Integer.class.isAssignableFrom(def.getJavaClass())) { c.setCellStyle(styles.get(iColumnNum)); c.setCellValue((Integer) value); } else if (Double.class.isAssignableFrom(def.getJavaClass())) { c.setCellStyle(styles.get(iColumnNum)); c.setCellValue((Double) value); } else { c.setCellValue(String.valueOf(value)); } } } else { c.setCellValue(""); } } } try { FormulaEvaluator evaluator = wb.getCreationHelper().createFormulaEvaluator(); for (int sheetNum = 0; sheetNum < wb.getNumberOfSheets(); sheetNum++) { Sheet sheet = wb.getSheetAt(sheetNum); for (Row r : sheet) { for (Cell c : r) { if (c.getCellType() == Cell.CELL_TYPE_FORMULA) { evaluator.evaluateFormulaCell(c); } } } } } catch (Exception e) { } // ignore any Exception ByteArrayOutputStream baos = new ByteArrayOutputStream(1024); try { wb.write(baos); return new NuclosFile(name + format.getExtension(), baos.toByteArray()); } catch (IOException e) { throw new NuclosReportException(e); } finally { try { baos.close(); } catch (IOException e) { } } }
From source file:org.ojbc.adapters.analyticsstaging.custody.service.DescriptionCodeLookupFromExcelService.java
License:RPL License
private void loadMapOfCodeMaps(String codeTableExcelFilePath) throws FileNotFoundException, IOException { log.info("Recache code table maps."); mapOfCodeMaps = new HashMap<String, Map<String, Integer>>(); FileInputStream inputStream = new FileInputStream(new File(codeTableExcelFilePath)); Workbook workbook = new XSSFWorkbook(inputStream); for (int i = 0; i < workbook.getNumberOfSheets(); i++) { Sheet sheet = workbook.getSheetAt(i); Map<String, Integer> codePkMap = new HashMap<String, Integer>(); for (int j = 1; j <= sheet.getLastRowNum(); j++) { Row row = sheet.getRow(j);/* www .j a v a 2 s .co m*/ if (row.getCell(row.getLastCellNum() - 1).getCellType() == Cell.CELL_TYPE_NUMERIC) { row.getCell(row.getLastCellNum() - 1).setCellType(Cell.CELL_TYPE_STRING); } String codeOrDescription = StringUtils .upperCase(row.getCell(row.getLastCellNum() - 1).getStringCellValue()); Integer pkId = Double.valueOf(row.getCell(0).getNumericCellValue()).intValue(); codePkMap.put(codeOrDescription, pkId); } mapOfCodeMaps.put(sheet.getSheetName(), codePkMap); } workbook.close(); inputStream.close(); }
From source file:org.ojbc.adapters.analyticsstaging.custody.service.SimpleExcelReaderExample.java
License:RPL License
public static void main(String[] args) throws IOException { Map<String, Map<String, Integer>> mapOfCodeMaps = new HashMap<String, Map<String, Integer>>(); String excelFilePath = "src/test/resources/codeSpreadSheets/PimaCountyAnalyticsCodeTables.xlsx"; FileInputStream inputStream = new FileInputStream(new File(excelFilePath)); Workbook workbook = new XSSFWorkbook(inputStream); for (int i = 0; i < workbook.getNumberOfSheets(); i++) { Sheet sheet = workbook.getSheetAt(i); System.out.println("Sheet Name: " + sheet.getSheetName()); Map<String, Integer> codePkMap = new HashMap<String, Integer>(); for (int j = 1; j <= sheet.getLastRowNum(); j++) { Row row = sheet.getRow(j);/*w w w .j a v a 2s.c o m*/ if (row.getCell(row.getLastCellNum() - 1).getCellType() == Cell.CELL_TYPE_NUMERIC) { row.getCell(row.getLastCellNum() - 1).setCellType(Cell.CELL_TYPE_STRING); } String codeOrDescription = row.getCell(row.getLastCellNum() - 1).getStringCellValue(); Integer pkId = Double.valueOf(row.getCell(0).getNumericCellValue()).intValue(); codePkMap.put(codeOrDescription, pkId); } mapOfCodeMaps.put(sheet.getSheetName(), codePkMap); } workbook.close(); inputStream.close(); }
From source file:org.ojbc.adapters.analyticsstaging.custody.service.SqlScriptFromExcelGenerator.java
License:RPL License
private static void generatePolulateCodeTableScript(String sqlScriptPath, String excelFilePath, boolean isSqlServerInsert) throws FileNotFoundException, IOException { Path adamsSqlPath = Paths.get(sqlScriptPath); FileInputStream inputStream = new FileInputStream(new File(excelFilePath)); Workbook workbook = new XSSFWorkbook(inputStream); StringBuilder sb = new StringBuilder(); sb.append("/*\n "/* w w w. j a va2 s. c o m*/ + "* Unless explicitly acquired and licensed from Licensor under another license, the contents of\n " + "* this file are subject to the Reciprocal Public License (\"RPL\") Version 1.5, or subsequent\n " + "* versions as allowed by the RPL, and You may not copy or use this file in either source code\n " + "* or executable form, except in compliance with the terms and conditions of the RPL\n " + "* \n " + "* All software distributed under the RPL is provided strictly on an \"AS IS\" basis, WITHOUT\n " + "* WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, AND LICENSOR HEREBY DISCLAIMS ALL SUCH\n " + "* WARRANTIES, INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, FITNESS FOR A\n " + "* PARTICULAR PURPOSE, QUIET ENJOYMENT, OR NON-INFRINGEMENT. See the RPL for specific language\n " + "* governing rights and limitations under the RPL.\n " + "*\n " + "* http://opensource.org/licenses/RPL-1.5\n " + "*\n " + "* Copyright 2012-2015 Open Justice Broker Consortium\n " + "*/\n"); for (int i = 0; i < workbook.getNumberOfSheets(); i++) { Sheet sheet = workbook.getSheetAt(i); if (isSqlServerInsert) { sb.append("SET IDENTITY_INSERT dbo." + sheet.getSheetName() + " ON;\n"); } String idColumnName = sheet.getRow(0).getCell(0).getStringCellValue(); String descriptionColumnName = sheet.getRow(0).getCell(1).getStringCellValue(); System.out.println("descriptionColumnName: " + descriptionColumnName); String baseString = "insert into " + sheet.getSheetName() + " (" + idColumnName + ", " + descriptionColumnName + ") values ("; for (int j = 1; j <= sheet.getLastRowNum(); j++) { Row row = sheet.getRow(j); String description = row.getCell(1).getStringCellValue(); Integer pkId = Double.valueOf(row.getCell(0).getNumericCellValue()).intValue(); String insertString = baseString + "'" + pkId + "', " + "'" + description.replace("'", "''") + "');\n"; sb.append(insertString); } if (isSqlServerInsert) { sb.append("SET IDENTITY_INSERT dbo." + sheet.getSheetName() + " OFF;\n"); } } workbook.close(); inputStream.close(); try (BufferedWriter writer = Files.newBufferedWriter(adamsSqlPath)) { writer.write(sb.toString()); } System.out.println("Sql script " + sqlScriptPath + " generated. "); }
From source file:org.openmrs.module.kenyaemr.fragment.controller.patient.ImportPatientsListFragmentController.java
License:Open Source License
@SuppressWarnings("deprecation") public Object submit(HttpServletRequest request) throws Exception { // Constant values used across all the code MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request; MultipartFile multipartModuleFile = multipartRequest.getFile("upload"); InputStream inputStream = multipartModuleFile.getInputStream(); Workbook workbook = new XSSFWorkbook(inputStream); Sheet firstSheet = workbook.getSheetAt(0); Iterator<Row> iterator = firstSheet.iterator(); int rowCount = 0; while (iterator.hasNext()) { Row nextRow = iterator.next();/*from w w w . jav a 2 s . com*/ Iterator<Cell> cellIterator = nextRow.cellIterator(); try { if (rowCount > 0) { ArrayList<String> legacyData = new ArrayList<String>(); int columnCount = 0; while (cellIterator.hasNext() && columnCount < 31) { Cell cell = cellIterator.next(); switch (cell.getCellType()) { case Cell.CELL_TYPE_STRING: legacyData.add(cell.getColumnIndex(), cell.getStringCellValue().trim()); break; case Cell.CELL_TYPE_NUMERIC: if (HSSFDateUtil.isCellDateFormatted(cell)) { legacyData.add(cell.getColumnIndex(), String.valueOf(cell.getDateCellValue())); } else { legacyData.add(cell.getColumnIndex(), NumberToTextConverter.toText(cell.getNumericCellValue())); } break; case Cell.CELL_TYPE_BLANK: legacyData.add(cell.getColumnIndex(), null); break; } columnCount++; } int i = 0; for (String s : legacyData) { i++; } /* * Start Patient Creation */ try { if (legacyData.get(0) != null) { Patient toSave = new Patient(); // Creating a new // patient // and // person PersonName personName = new PersonName(); PersonAddress personAddress = new PersonAddress(); Location location; SimpleDateFormat formatter = new SimpleDateFormat("E MMM dd HH:mm:ss Z yyyy"); Date dateBith = new Date(); try { dateBith = (Date) formatter.parse(legacyData.get(2)); } catch (ParseException e) { e.printStackTrace(); } toSave.setGender(legacyData.get(3)); toSave.setBirthdate(dateBith); toSave.setBirthdateEstimated(false); toSave.setDead(false); /* * toSave.setDeathDate(deathDate); * toSave.setCauseOfDeath(dead ? Dictionary * .getConcept(CAUSE_OF_DEATH_PLACEHOLDER) : null); */ if (legacyData.get(1) != "") { personName.setGivenName(legacyData.get(1)); personName.setFamilyName("(NULL)"); toSave.addName(personName); } // toSave. personAddress.setAddress1(legacyData.get(9)); personAddress.setCountyDistrict(legacyData.get(10)); toSave.addAddress(personAddress); PatientWrapper wrapper = new PatientWrapper(toSave); wrapper.getPerson().setTelephoneContact(legacyData.get(8)); location = Context.getService(KenyaEmrService.class).getDefaultLocation(); if (legacyData.get(4) != null) { wrapper.setPreArtRegistrationNumber(legacyData.get(4), location); } if (legacyData.get(6) != null) { wrapper.setArtRegistrationNumber(legacyData.get(6), location); } if (legacyData.get(5) != null) { wrapper.setNapArtRegistrationNumber(legacyData.get(5), location); } // Algorithm to generate system generated patient // Identifier Calendar now = Calendar.getInstance(); String shortName = Context.getAdministrationService() .getGlobalProperty(OpenmrsConstants.GLOBAL_PROPERTY_PATIENT_IDENTIFIER_PREFIX); String noCheck = shortName + String.valueOf(now.get(Calendar.YEAR)).substring(2, 4) + String.valueOf(now.get(Calendar.MONTH) + 1) + String.valueOf(now.get(Calendar.DATE)) + String.valueOf(now.get(Calendar.HOUR)) + String.valueOf(now.get(Calendar.MINUTE)) + String.valueOf(now.get(Calendar.SECOND)) + String.valueOf(new Random().nextInt(9999 - 999 + 1)); wrapper.setSystemPatientId(noCheck + "-" + generateCheckdigit(noCheck), location); wrapper.setNextOfKinName(legacyData.get(11)); wrapper.setNextOfKinContact(legacyData.get(12)); if (legacyData.get(13) != null) { wrapper.setPreviousHivTestStatus("Yes"); wrapper.setPreviousHivTestPlace(legacyData.get(14)); Date capturedTestDate = new Date(); try { capturedTestDate = formatter.parse(legacyData.get(13)); } catch (ParseException e) { e.printStackTrace(); } DateFormat testDate = new SimpleDateFormat("dd-MMMM-yyyy"); wrapper.setPreviousHivTestDate(testDate.format(capturedTestDate)); } else { wrapper.setPreviousHivTestStatus("No"); } wrapper.setPreviousClinicName(legacyData.get(16)); // Make sure everyone gets an OpenMRS ID PatientIdentifierType openmrsIdType = MetadataUtils.existing( PatientIdentifierType.class, CommonMetadata._PatientIdentifierType.OPENMRS_ID); PatientIdentifier openmrsId = toSave.getPatientIdentifier(openmrsIdType); if (openmrsId == null) { String generated = Context.getService(IdentifierSourceService.class) .generateIdentifier(openmrsIdType, "Registration"); openmrsId = new PatientIdentifier(generated, openmrsIdType, location); toSave.addIdentifier(openmrsId); if (!toSave.getPatientIdentifier().isPreferred()) { openmrsId.setPreferred(true); } } Patient ret = Context.getPatientService().savePatient(toSave); // Explicitly save all identifier objects including // voided for (PatientIdentifier identifier : toSave.getIdentifiers()) { Context.getPatientService().savePatientIdentifier(identifier); } /* * End Patient Creation */ /** ** Start : Visit, Encounter and Program creation for * Patient entered as Legacy Data Visit start date **/ Date curDate = new Date(); Date dateVisit = null; try { dateVisit = formatter.parse(legacyData.get(18)); } catch (ParseException e) { e.printStackTrace(); } DateFormat visitDateInExcel = new SimpleDateFormat("dd-MMM-yyyy"); String dateCheck = visitDateInExcel.format(dateVisit); SimpleDateFormat mysqlDateTimeFormatter = new SimpleDateFormat("dd-MMM-yy HH:mm:ss"); if (legacyData.get(18) != null) { try { dateVisit = mysqlDateTimeFormatter.parse(dateCheck + " " + curDate.getHours() + ":" + curDate.getMinutes() + ":" + curDate.getSeconds()); } catch (ParseException e) { dateVisit = curDate; // TODO Auto-generated catch block e.printStackTrace(); } } Visit visit = new Visit(); visit.setPatient(ret); visit.setStartDatetime(dateVisit); visit.setVisitType( MetadataUtils.existing(VisitType.class, CommonMetadata._VisitType.OUTPATIENT)); visit.setLocation(Context.getService(KenyaEmrService.class).getDefaultLocation()); VisitAttributeType attrType = Context.getService(VisitService.class) .getVisitAttributeTypeByUuid(CommonMetadata._VisitAttributeType.NEW_PATIENT); if (attrType != null) { VisitAttribute attr = new VisitAttribute(); attr.setAttributeType(attrType); attr.setVisit(visit); attr.setDateCreated(curDate); attr.setValue(true); visit.addAttribute(attr); } Visit visitSave = Context.getVisitService().saveVisit(visit); // With value text and Date if (legacyData.get(15) != null) { Date dateTransfer = null; if (legacyData.get(17) != null) { try { dateTransfer = formatter.parse(legacyData.get(17)); } catch (ParseException e) { e.printStackTrace(); } } Concept enrollementConcept = Context.getConceptService() .getConcept(Integer.parseInt(legacyData.get(15))); handleOncePerPatientObs(ret, Dictionary.getConcept(Dictionary.METHOD_OF_ENROLLMENT), enrollementConcept, "", dateTransfer, null, visitSave); } if (legacyData.get(7) != null) { Concept ingoConcept = Context.getConceptService() .getConcept(Integer.parseInt(legacyData.get(7))); handleOncePerPatientObs(ret, Dictionary.getConcept(Dictionary.INGO_NAME), ingoConcept, "", null, null, visitSave); } EncounterType hivEnrollEncType = MetadataUtils.existing(EncounterType.class, HivMetadata._EncounterType.HIV_ENROLLMENT); EncounterType registrationEncType = MetadataUtils.existing(EncounterType.class, CommonMetadata._EncounterType.REGISTRATION); Encounter hivEnrollmentEncounter = new Encounter(); hivEnrollmentEncounter.setEncounterType(hivEnrollEncType); hivEnrollmentEncounter.setPatient(ret); hivEnrollmentEncounter .setLocation(Context.getService(KenyaEmrService.class).getDefaultLocation()); hivEnrollmentEncounter.setDateCreated(curDate); hivEnrollmentEncounter.setEncounterDatetime(dateVisit); hivEnrollmentEncounter .setForm(MetadataUtils.existing(Form.class, HivMetadata._Form.HIV_ENROLLMENT)); hivEnrollmentEncounter.setVisit(visitSave); hivEnrollmentEncounter.setVoided(false); Encounter enHivNew = Context.getEncounterService() .saveEncounter(hivEnrollmentEncounter); PatientProgram patientProgram = new PatientProgram(); patientProgram.setPatient(ret); patientProgram .setProgram(MetadataUtils.existing(Program.class, HivMetadata._Program.HIV)); patientProgram.setDateEnrolled(enHivNew.getEncounterDatetime()); patientProgram.setDateCreated(curDate); Context.getProgramWorkflowService().savePatientProgram(patientProgram); Encounter personalEncounter = new Encounter(); personalEncounter.setEncounterType(hivEnrollEncType); personalEncounter.setPatient(ret); personalEncounter.setDateCreated(curDate); personalEncounter.setEncounterDatetime(dateVisit); personalEncounter .setLocation(Context.getService(KenyaEmrService.class).getDefaultLocation()); personalEncounter.setForm( MetadataUtils.existing(Form.class, Metadata.Form.HIV_PERSONAL_HISTORY)); personalEncounter.setVisit(visitSave); personalEncounter.setVoided(false); Encounter enpersonalrecordresultNew = Context.getEncounterService() .saveEncounter(personalEncounter); if (legacyData.get(19) != null) { Concept literate = Context.getConceptService() .getConcept(Integer.parseInt(legacyData.get(19))); handleOncePerPatientObs(ret, Dictionary.getConcept(Dictionary.LITERATE), literate, "", null, null, enpersonalrecordresultNew, null, visitSave); } if (legacyData.get(21) != null) { String value = legacyData.get(21); String[] valueList = value.split("\\s*,\\s*"); for (String riskname : valueList) { Concept riskConcept = Context.getConceptService().getConcept(riskname); handleOncePerPatientObs(ret, Dictionary.getConcept(Dictionary.HIV_RISK_FACTOR), riskConcept, "", null, null, enpersonalrecordresultNew, null, visitSave); } } if (legacyData.get(22) != null) { Concept idssubstituion = Context.getConceptService() .getConcept(Integer.parseInt(legacyData.get(22))); handleOncePerPatientObs(ret, Dictionary.getConcept(Dictionary.IDU_PERSONAL_HISTORY), idssubstituion, "", null, null, enpersonalrecordresultNew, null, visitSave); } if (legacyData.get(23) != null) { Concept idssubstituionvalue = Context.getConceptService() .getConcept(Integer.parseInt(legacyData.get(23))); handleOncePerPatientObs(ret, Dictionary.getConcept(Dictionary.IDU_NAME_PERSONAL_HISTORY), idssubstituionvalue, "", null, null, enpersonalrecordresultNew, null, visitSave); } if (legacyData.get(29) != null) { Concept employedvalue = Context.getConceptService() .getConcept(Integer.parseInt(legacyData.get(29))); handleOncePerPatientObs(ret, Dictionary.getConcept(Dictionary.EMPLOYED), employedvalue, "", null, null, enpersonalrecordresultNew, null, visitSave); } if (legacyData.get(30) != null) { Concept alcoholicvalue = Context.getConceptService() .getConcept(Integer.parseInt(legacyData.get(30))); handleOncePerPatientObs(ret, Dictionary.getConcept(Dictionary.ALCOHOLIC_TYPE), alcoholicvalue, "", null, null, enpersonalrecordresultNew, null, visitSave); } Encounter familyEncounter = new Encounter(); familyEncounter.setEncounterType(registrationEncType); familyEncounter.setPatient(ret); familyEncounter.setDateCreated(curDate); familyEncounter.setEncounterDatetime(dateVisit); familyEncounter .setLocation(Context.getService(KenyaEmrService.class).getDefaultLocation()); familyEncounter .setForm(MetadataUtils.existing(Form.class, Metadata.Form.HIV_FAMILY_HISTORY)); familyEncounter.setVisit(visitSave); familyEncounter.setVoided(false); Encounter enfamilyrecordresultNew = Context.getEncounterService() .saveEncounter(familyEncounter); if (legacyData.get(20) != null) { Concept martalstatus = Context.getConceptService() .getConcept(Integer.parseInt(legacyData.get(20))); handleOncePerPatientObs(ret, Dictionary.getConcept(Dictionary.CIVIL_STATUS), martalstatus, "", null, null, enfamilyrecordresultNew, null, visitSave); } Encounter drugEncounter = new Encounter(); drugEncounter.setEncounterType(hivEnrollEncType); drugEncounter.setPatient(ret); drugEncounter.setDateCreated(curDate); drugEncounter.setEncounterDatetime(dateVisit); drugEncounter .setLocation(Context.getService(KenyaEmrService.class).getDefaultLocation()); drugEncounter .setForm(MetadataUtils.existing(Form.class, Metadata.Form.HIV_DRUG_HISTORY)); drugEncounter.setVisit(visitSave); drugEncounter.setVoided(false); Encounter endrugrecordresultNew = Context.getEncounterService() .saveEncounter(drugEncounter); if (legacyData.get(24) != null) { Concept drughistoryart = Context.getConceptService() .getConcept(Integer.parseInt(legacyData.get(24))); handleOncePerPatientObs(ret, Dictionary.getConcept(Dictionary.DRUG_HISTORY_ART_RECEIVED), drughistoryart, "", null, null, endrugrecordresultNew, null, visitSave); } if (legacyData.get(25) != null) { Concept drughistoryarttype = Context.getConceptService() .getConcept(Integer.parseInt(legacyData.get(25))); handleOncePerPatientObs(ret, Dictionary.getConcept(Dictionary.DRUG_HISTORY_ART_RECEIVED_TYPE), drughistoryarttype, "", null, null, endrugrecordresultNew, null, visitSave); } if (legacyData.get(26) != null && legacyData.get(27) != null && legacyData.get(28) != null) { boolean value = false; Obs drugtreatmentGroup = new Obs(); drugtreatmentGroup.setPerson(ret); drugtreatmentGroup.setConcept(Dictionary.getConcept(Dictionary.DRUG_HISTORY_GROUP)); drugtreatmentGroup.setObsDatetime(endrugrecordresultNew.getEncounterDatetime()); // Added value coded as per default obs object // format. //drugtreatmentGroup.setValueCoded(null); // drugtreatmentGroup.setValueText(text); drugtreatmentGroup.setLocation( Context.getService(KenyaEmrService.class).getDefaultLocation()); drugtreatmentGroup.setEncounter(endrugrecordresultNew); drugtreatmentGroup.setValueBoolean(value); Obs drugtreat = Context.getObsService().saveObs(drugtreatmentGroup, "KenyaEMR History Details"); if (legacyData.get(26) != null) { Concept place = Context.getConceptService() .getConcept(Integer.parseInt(legacyData.get(26))); handleOncePerPatientObs(ret, Dictionary.getConcept(Dictionary.DRUG_HISTORY_ART_RECEIVED_PLACE), place, "", null, null, endrugrecordresultNew, drugtreat, visitSave); } if (legacyData.get(27) != null) { Concept drugarv = Context.getConceptService() .getConcept(Integer.parseInt(legacyData.get(27))); handleOncePerPatientObs(ret, Dictionary.getConcept(Dictionary.DRUG_REGIMEN_DRUG_HISTORY), drugarv, "", null, null, endrugrecordresultNew, drugtreat, visitSave); } if (legacyData.get(28) != null) { Double dur = 0.0; Integer durationreslt = 0; durationreslt = Integer.parseInt(legacyData.get(28)); dur = durationreslt.doubleValue(); handleOncePerPatientObs(ret, Dictionary.getConcept(Dictionary.DRUG_DURATION), null, null, null, dur, endrugrecordresultNew, drugtreat, visitSave); } } /* * End : Visit, Encounter and Program creation for * Patient entered as Legacy Data */ } } catch (IndexOutOfBoundsException e) { break; } } } catch (IndexOutOfBoundsException e) { break; } rowCount++; } int noOfSheets = workbook.getNumberOfSheets(); if (noOfSheets > 1) { Sheet secondSheet = workbook.getSheetAt(1); Iterator<Row> iteratorSecond = secondSheet.iterator(); int rowCountVisit = 0; while (iteratorSecond.hasNext()) { Row nextRow = iteratorSecond.next(); Iterator<Cell> cellIterator = nextRow.cellIterator(); try { if (rowCountVisit > 0) { ArrayList<String> legacyData = new ArrayList<String>(); int columnCount = 0; while (cellIterator.hasNext() && columnCount < 44) { Cell cell = cellIterator.next(); switch (cell.getCellType()) { case Cell.CELL_TYPE_STRING: legacyData.add(cell.getColumnIndex(), cell.getStringCellValue().trim()); break; case Cell.CELL_TYPE_NUMERIC: if (HSSFDateUtil.isCellDateFormatted(cell)) { legacyData.add(cell.getColumnIndex(), String.valueOf(cell.getDateCellValue())); } else { legacyData.add(cell.getColumnIndex(), NumberToTextConverter.toText(cell.getNumericCellValue())); } break; case Cell.CELL_TYPE_BLANK: legacyData.add(cell.getColumnIndex(), ""); break; } columnCount++; } int i = 0; for (String s : legacyData) { i++; } Person person = null; Patient patient = null; PatientWrapper wrapper = null; int count = 0; Location location; location = Context.getService(KenyaEmrService.class).getDefaultLocation(); if (legacyData.get(3) != null && legacyData.get(3) != "") { try { if (!legacyData.get(0).isEmpty()) { PatientIdentifierType pt = Context.getPatientService() .getPatientIdentifierTypeByUuid("d59d0f67-4a05-4e41-bfad-342da68feb6f"); List<PatientIdentifier> patList = Context.getPatientService() .getPatientIdentifiers(legacyData.get(0).toString(), pt); for (PatientIdentifier p : patList) { patient = Context.getPatientService() .getPatient(p.getPatient().getPatientId()); wrapper = new PatientWrapper(patient); person = Context.getPersonService().getPerson(patient); } } else if (!legacyData.get(1).isEmpty()) { PatientIdentifierType pt = Context.getPatientService() .getPatientIdentifierTypeByUuid("3e5493e8-e76e-4d3f-a166-9a88b40747fa"); List<PatientIdentifier> patList = Context.getPatientService() .getPatientIdentifiers(legacyData.get(1).toString(), pt); for (PatientIdentifier p : patList) { patient = Context.getPatientService() .getPatient(p.getPatient().getPatientId()); wrapper = new PatientWrapper(patient); person = Context.getPersonService().getPerson(patient); } } else if (!legacyData.get(2).isEmpty()) { PatientIdentifierType pt = Context.getPatientService() .getPatientIdentifierTypeByUuid("9e10c5d6-a58c-4236-8b65-b6b932beff1a"); List<PatientIdentifier> patList = Context.getPatientService() .getPatientIdentifiers(legacyData.get(2).toString(), pt); for (PatientIdentifier p : patList) { patient = Context.getPatientService() .getPatient(p.getPatient().getPatientId()); wrapper = new PatientWrapper(patient); person = Context.getPersonService().getPerson(patient); } } else { break; } SimpleDateFormat formatter = new SimpleDateFormat("E MMM dd HH:mm:ss Z yyyy"); Date curDate = new Date(); Date dateVisit = null; try { if (legacyData.get(3) != null && legacyData.get(3) != "") { dateVisit = formatter.parse(legacyData.get(3)); } } catch (ParseException e) { e.printStackTrace(); } DateFormat visitDateInExcel = new SimpleDateFormat("dd-MMM-yyyy"); String dateCheck = ""; SimpleDateFormat mysqlDateTimeFormatter = new SimpleDateFormat( "dd-MMM-yy HH:mm:ss"); if (legacyData.get(3) != null && legacyData.get(3) != "") { Date curDatenew = new Date(); dateCheck = visitDateInExcel.format(dateVisit); try { dateVisit = mysqlDateTimeFormatter .parse(dateCheck + " " + curDatenew.getHours() + ":" + curDatenew.getMinutes() + ":" + curDatenew.getSeconds()); } catch (ParseException e) { dateVisit = curDatenew; e.printStackTrace(); } } List<Visit> visits = Context.getVisitService().getActiveVisitsByPatient(patient); Visit v = new Visit(); if (visits.isEmpty()) { Visit visit = new Visit(); visit.setPatient(patient); visit.setStartDatetime(dateVisit); visit.setVisitType(MetadataUtils.existing(VisitType.class, CommonMetadata._VisitType.OUTPATIENT)); visit.setLocation( Context.getService(KenyaEmrService.class).getDefaultLocation()); if (person.getDead() == false) { v = Context.getVisitService().saveVisit(visit); } } else { for (Visit vLoop : visits) { v = vLoop; } } if (v.getId() != null) { EncounterType artEnrollEncType = MetadataUtils.existing(EncounterType.class, ArtMetadata._EncounterType.INITIATE_ART); Encounter artEncounter = new Encounter(); artEncounter.setEncounterType(artEnrollEncType); artEncounter.setPatient(patient); artEncounter.setLocation( Context.getService(KenyaEmrService.class).getDefaultLocation()); artEncounter.setDateCreated(curDate); artEncounter.setEncounterDatetime(dateVisit); artEncounter.setForm( MetadataUtils.existing(Form.class, ArtMetadata._Form.INITIATE_ART)); artEncounter.setVisit(v); artEncounter.setVoided(false); if (!legacyData.get(9).isEmpty()) { Encounter enartNew = Context.getEncounterService() .saveEncounter(artEncounter); } PatientProgram pp = new PatientProgram(); if (!legacyData.get(9).isEmpty()) { pp.setPatient(patient); pp.setProgram( MetadataUtils.existing(Program.class, ArtMetadata._Program.ART)); Date artStartDate = null; Date curDatenew = new Date(); try { artStartDate = (Date) formatter.parse(legacyData.get(9)); dateCheck = visitDateInExcel.format(artStartDate); artStartDate = mysqlDateTimeFormatter.parse(dateCheck + " " + curDatenew.getHours() + ":" + curDatenew.getMinutes() + ":" + curDatenew.getSeconds()); pp.setDateEnrolled(artStartDate); } catch (ParseException e) { e.printStackTrace(); } if (pp.getDateEnrolled() != null && pp.getDateCompleted() == null) { PatientProgram program = Context.getProgramWorkflowService() .savePatientProgram(pp); } } /* * Changes code */ String reg = ""; if (!legacyData.get(4).isEmpty()) { Concept regimenConcept = Context.getConceptService() .getConcept(Integer.parseInt(legacyData.get(4))); reg = reg.concat(regimenConcept.getName().toString()); KenyaEmrService kes = (KenyaEmrService) Context .getService(KenyaEmrService.class); List<DrugOrderProcessed> dopp = kes.getDrugOrderProcessedByPatient(patient); // Created drug order processed DrugOrderProcessed orderprocess = new DrugOrderProcessed(); orderprocess.setPatient(patient); orderprocess.setDrugRegimen(reg); orderprocess.setCreatedDate(dateVisit); orderprocess.setStartDate(dateVisit); orderprocess.setVisit(v); orderprocess.setRoute(Context.getConceptService() .getConceptByUuid("160240AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA")); Integer tablet = 0; if (legacyData.get(4).equals("163494") || legacyData.get(4).equals("163495") || legacyData.get(4).equals("163496") || legacyData.get(4).equals("162959") || legacyData.get(4).equals("163503") || legacyData.get(4).equals("163505") || legacyData.get(4).equals("163506") || legacyData.get(4).equals(" 163507") || legacyData.get(4).equals("163508") || legacyData.get(4).equals("163510")) { orderprocess.setNoOfTablet(1); tablet = Integer.parseInt(legacyData.get(6)); } else { tablet = Integer.parseInt(legacyData.get(6)) * 2; orderprocess.setNoOfTablet(2); } if (!legacyData.get(6).isEmpty()) { orderprocess.setDurationPreProcess(Integer.parseInt(legacyData.get(6))); orderprocess.setQuantityPostProcess(tablet); orderprocess.setProcessedStatus(true); try { Date curDat = new Date(); dateVisit = mysqlDateTimeFormatter .parse(dateCheck + " " + curDat.getHours() + ":" + curDat.getMinutes() + ":" + curDat.getSeconds()); orderprocess.setProcessedDate(dateVisit); } catch (ParseException e) { e.printStackTrace(); } } if (!legacyData.get(5).isEmpty()) { orderprocess.setDose(legacyData.get(5)); orderprocess.setDoseRegimen(legacyData.get(5)); } String cahngeRegimenType = ""; if (patient.getAge() > 14) { for (String firstline : firstlineConcept) { if (legacyData.get(4).equals(firstline)) { orderprocess .setTypeOfRegimen("First line Anti-retoviral drugs"); cahngeRegimenType = "First line Anti-retoviral drugs"; } } for (String secndline : secondlineConcept) { if (legacyData.get(4).equals(secndline)) { orderprocess.setTypeOfRegimen("Second line ART"); cahngeRegimenType = "Second line ART"; } } for (String thirdline : thirdlineConcept) { if (legacyData.get(4).equals(thirdline)) { orderprocess.setTypeOfRegimen("HIV/HBV co-infection"); cahngeRegimenType = "HIV/HBV co-infection"; } } } else { for (String child : childArvConcept) { if (legacyData.get(4).equals(child)) { orderprocess.setTypeOfRegimen("ARV drugs for child"); cahngeRegimenType = "ARV drugs for child"; } } } if (dopp.size() == 0) { orderprocess.setRegimenChangeType("Start"); // Encounter Created EncounterType regEnrollEncType = MetadataUtils.existing( EncounterType.class, CommonMetadata._EncounterType.REGIMEN_ORDER); Encounter regEncounter = new Encounter(); regEncounter.setEncounterType(regEnrollEncType); regEncounter.setPatient(patient); regEncounter.setLocation(Context.getLocationService() .getLocationByUuid("8d6c993e-c2cc-11de-8d13-0010c6dffd0f")); regEncounter.setDateCreated(curDate); regEncounter.setEncounterDatetime(dateVisit); regEncounter.setVisit(v); regEncounter.setVoided(false); // Save encounter Encounter enregNew = Context.getEncounterService() .saveEncounter(regEncounter); // Create order Order ordersave = new Order(); // Create Drug order DrugOrder dod = new DrugOrder(); dod.setOrderType(Context.getOrderService().getOrderType(2)); dod.setConcept(Context.getConceptService() .getConcept(Integer.parseInt(legacyData.get(4)))); dod.setEncounter(enregNew); dod.setStartDate(dateVisit); dod.setDateCreated(curDate); dod.setPatient(patient); dod.setUnits("tab"); if (legacyData.get(4).equals("163494") || legacyData.get(4).equals("163495") || legacyData.get(4).equals("163496") || legacyData.get(4).equals("162959") || legacyData.get(4).equals("163503") || legacyData.get(4).equals("163505") || legacyData.get(4).equals("163506") || legacyData.get(4).equals(" 163507") || legacyData.get(4).equals("163508") || legacyData.get(4).equals("163510")) { dod.setFrequency("od"); } else { dod.setFrequency("bd"); } // /Save drug order ordersave = Context.getOrderService().saveOrder(dod); orderprocess.setDrugOrder(dod); } if (dopp.size() > 0) { DrugOrderProcessed dd = dopp.get(dopp.size() - 1); // for (DrugOrderProcessed dd : // dopp) { if (dd.getDrugRegimen().equals(reg) && !legacyData.get(5).isEmpty() && dd.getDoseRegimen().equals(legacyData.get(5)) && dd.getTypeOfRegimen().equals(cahngeRegimenType)) { orderprocess.setRegimenChangeType("Continue"); orderprocess.setDrugOrder(dd.getDrugOrder()); } else { if (dd.getTypeOfRegimen().equals(cahngeRegimenType)) { orderprocess.setRegimenChangeType("Substitue"); } else if (dd.getTypeOfRegimen().equals(cahngeRegimenType)) { orderprocess.setRegimenChangeType("Switch"); } // Encounter Created EncounterType regEnrollEncType = MetadataUtils.existing( EncounterType.class, CommonMetadata._EncounterType.REGIMEN_ORDER); Encounter regEncounter = new Encounter(); regEncounter.setEncounterType(regEnrollEncType); regEncounter.setPatient(patient); regEncounter.setLocation(Context.getLocationService() .getLocationByUuid("8d6c993e-c2cc-11de-8d13-0010c6dffd0f")); regEncounter.setDateCreated(curDate); regEncounter.setEncounterDatetime(dateVisit); regEncounter.setVisit(v); regEncounter.setVoided(false); // Save encounter Encounter enregNew = Context.getEncounterService() .saveEncounter(regEncounter); // Create order Order ordersave = new Order(); // Create Drug order DrugOrder dod = new DrugOrder(); dod.setOrderType(Context.getOrderService().getOrderType(2)); dod.setConcept(Context.getConceptService() .getConcept(Integer.parseInt(legacyData.get(4)))); dod.setEncounter(enregNew); dod.setStartDate(dateVisit); dod.setDateCreated(curDate); dod.setPatient(patient); dod.setUnits("tab"); if (legacyData.get(4).equals("163494") || legacyData.get(4).equals("163495") || legacyData.get(4).equals("163496") || legacyData.get(4).equals("162959") || legacyData.get(4).equals("163503") || legacyData.get(4).equals("163505") || legacyData.get(4).equals("163506") || legacyData.get(4).equals(" 163507") || legacyData.get(4).equals("163508") || legacyData.get(4).equals("163510")) { dod.setFrequency("od"); } else { dod.setFrequency("bd"); } // /Save drug order ordersave = Context.getOrderService().saveOrder(dod); orderprocess.setDrugOrder(dod); } } kes.saveDrugOrderProcessed(orderprocess); Order oo = new Order(); DrugOrderProcessed drugoo = new DrugOrderProcessed(); for (DrugOrderProcessed ooo : dopp) { if (!legacyData.get(36).isEmpty()) { Date discontinuedDate = new Date(); discontinuedDate = (Date) formatter.parse(legacyData.get(36)); String dtechk = visitDateInExcel.format(discontinuedDate); try { Date curDat = new Date(); List<Visit> visitdrug = Context.getVisitService() .getVisitsByPatient(patient); for (Visit visdr : visitdrug) { if (visdr.getStopDatetime() != null) { if (drugoo.getDiscontinuedDate() == null) { discontinuedDate = mysqlDateTimeFormatter .parse(dtechk + " " + curDat.getHours() + ":" + curDat.getMinutes() + ":" + curDat.getSeconds()); drugoo.setDiscontinuedDate(dateVisit); break; } } } } catch (ParseException e) { e.printStackTrace(); } } if (!legacyData.get(35).isEmpty()) { List<Visit> visitdrug = Context.getVisitService() .getVisitsByPatient(patient); Concept discontinuedReason = Context.getConceptService() .getConcept(Integer.parseInt(legacyData.get(35))); for (Visit visdr : visitdrug) { Order orderPrevious = Context.getOrderService() .getOrder(ooo.getDrugOrder().getOrderId()); if (visdr.getStopDatetime() != null) { if (orderPrevious.getDiscontinuedReason() == null) { if (!ooo.getDrugRegimen() .equals(drugoo.getDrugRegimen())) { drugoo.setDiscontinuedReason(discontinuedReason); orderPrevious.setDiscontinued(true); orderPrevious .setDiscontinuedBy(Context.getUserService() .getUserByUsername("admin")); orderPrevious .setDiscontinuedReason(discontinuedReason); orderPrevious.setDiscontinuedDate(dateVisit); Context.getOrderService().saveOrder(orderPrevious); break; } } } } } drugoo = ooo; kes.saveDrugOrderProcessed(drugoo); } } EncounterType labEnrollEncType = MetadataUtils.existing(EncounterType.class, CommonMetadata._EncounterType.LAB_ORDERS); Encounter labEncounter = new Encounter(); labEncounter.setEncounterType(labEnrollEncType); labEncounter.setPatient(patient); labEncounter.setLocation( Context.getService(KenyaEmrService.class).getDefaultLocation()); labEncounter.setDateCreated(curDate); labEncounter.setEncounterDatetime(dateVisit); labEncounter.setForm( MetadataUtils.existing(Form.class, CommonMetadata._Form.LAB_ORDERS)); labEncounter.setVisit(v); labEncounter.setVoided(false); Encounter enlabNew = Context.getEncounterService().saveEncounter(labEncounter); if (!legacyData.get(7).isEmpty()) { Concept labOrder = Dictionary.getConcept(Dictionary.CD4_COUNT); handleOncePerPatientObs(patient, Dictionary.getConcept(Dictionary.lABORATORY_ORDER), labOrder, "", null, null, enlabNew, null, v); } if (!legacyData.get(39).isEmpty()) { Concept labOrder = Context.getConceptService() .getConceptByUuid("122858AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"); handleOncePerPatientObs(patient, Dictionary.getConcept(Dictionary.lABORATORY_ORDER), labOrder, "", null, null, enlabNew, null, v); } if (!legacyData.get(38).isEmpty()) { Concept labOrder = Context.getConceptService() .getConceptByUuid("654AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"); handleOncePerPatientObs(patient, Dictionary.getConcept(Dictionary.lABORATORY_ORDER), labOrder, "", null, null, enlabNew, null, v); } if (!legacyData.get(8).isEmpty()) { Concept labviralOrder = Dictionary.getConcept(Dictionary.HIV_VIRAL_LOAD); handleOncePerPatientObs(patient, Dictionary.getConcept(Dictionary.lABORATORY_ORDER), labviralOrder, "", null, null, enlabNew, null, v); } if (!legacyData.get(37).isEmpty()) { Concept labhaemoOrder = Context.getConceptService() .getConceptByUuid("1019AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"); handleOncePerPatientObs(patient, Dictionary.getConcept(Dictionary.lABORATORY_ORDER), labhaemoOrder, "", null, null, enlabNew, null, v); } if (!legacyData.get(40).isEmpty()) { Concept labcreatinineOrder = Context.getConceptService() .getConceptByUuid("790AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"); handleOncePerPatientObs(patient, Dictionary.getConcept(Dictionary.lABORATORY_ORDER), labcreatinineOrder, "", null, null, enlabNew, null, v); } EncounterType labresultEnrollEncType = MetadataUtils.existing( EncounterType.class, CommonMetadata._EncounterType.LAB_RESULTS); Encounter labresultEncounter = new Encounter(); labresultEncounter.setEncounterType(labresultEnrollEncType); labresultEncounter.setPatient(patient); labresultEncounter.setDateCreated(curDate); labresultEncounter.setEncounterDatetime(dateVisit); labresultEncounter.setVisit(v); labresultEncounter.setVoided(false); Encounter enlabresultNew = Context.getEncounterService() .saveEncounter(labresultEncounter); if (!legacyData.get(7).isEmpty()) { String cd4Result = legacyData.get(7); Double cd4Count = Double.parseDouble(cd4Result); handleOncePerPatientObs(patient, Dictionary.getConcept(Dictionary.CD4_COUNT), null, legacyData.get(7), null, cd4Count, enlabresultNew, null, v); } if (!legacyData.get(37).isEmpty()) { String labResult = legacyData.get(37); handleOncePerPatientObs(patient, Context.getConceptService() .getConceptByUuid("1019AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"), null, labResult, null, null, enlabresultNew, null, v); } if (!legacyData.get(38).isEmpty()) { String labResult = legacyData.get(38); Double lab = Double.parseDouble(labResult); handleOncePerPatientObs(patient, Context.getConceptService() .getConceptByUuid("122858AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"), null, labResult, null, lab, enlabresultNew, null, v); } if (!legacyData.get(39).isEmpty()) { String labResult = legacyData.get(39); Double lab = Double.parseDouble(labResult); handleOncePerPatientObs(patient, Context.getConceptService() .getConceptByUuid("654AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"), null, labResult, null, lab, enlabresultNew, null, v); } if (!legacyData.get(8).isEmpty()) { String labResult = legacyData.get(8); Double lab = Double.parseDouble(labResult); handleOncePerPatientObs(patient, Dictionary.getConcept(Dictionary.HIV_VIRAL_LOAD), null, labResult, null, lab, enlabresultNew, null, v); } if (!legacyData.get(40).isEmpty()) { String labResult = legacyData.get(40); Double lab = Double.parseDouble(labResult); handleOncePerPatientObs(patient, Context.getConceptService() .getConceptByUuid("790AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"), null, labResult, null, lab, enlabresultNew, null, v); } EncounterType tbOIEnrollEncType = MetadataUtils.existing(EncounterType.class, CommonMetadata._EncounterType.CONSULTATION); Encounter tbOIEncounter = new Encounter(); tbOIEncounter.setEncounterType(tbOIEnrollEncType); tbOIEncounter.setPatient(patient); tbOIEncounter.setDateCreated(curDate); tbOIEncounter.setEncounterDatetime(dateVisit); tbOIEncounter.setLocation( Context.getService(KenyaEmrService.class).getDefaultLocation()); tbOIEncounter.setForm( MetadataUtils.existing(Form.class, CommonMetadata._Form.TB_SCREENING)); tbOIEncounter.setVisit(v); tbOIEncounter.setVoided(false); Encounter entbOIresultNew = Context.getEncounterService() .saveEncounter(tbOIEncounter); Obs o = null; if (!legacyData.get(27).isEmpty()) { String text = ""; Obs OIGroup = new Obs(); OIGroup.setPerson(patient); OIGroup.setConcept(Dictionary.getConcept(Dictionary.OI_GROUP_TB_FORM)); OIGroup.setObsDatetime(entbOIresultNew.getEncounterDatetime()); // Added value coded as per default obs // object // format. OIGroup.setValueCoded(null); OIGroup.setValueText(text); OIGroup.setLocation( Context.getService(KenyaEmrService.class).getDefaultLocation()); OIGroup.setEncounter(entbOIresultNew); if (!legacyData.get(27).isEmpty()) { o = Context.getObsService().saveObs(OIGroup, "KenyaEMR History Details"); } if (!legacyData.get(27).isEmpty()) { String oivalue = legacyData.get(27); String[] valueList = oivalue.split("\\s*,\\s*"); for (String oiname : valueList) { Concept oiConcept = Context.getConceptService().getConcept(oiname); handleOncePerPatientObs(patient, Dictionary.getConcept(Dictionary.HIV_CARE_DIAGNOSIS), oiConcept, "", null, null, entbOIresultNew, o, v); } } } if (!legacyData.get(10).isEmpty()) { Concept tbStatus = Context.getConceptService() .getConcept(Integer.parseInt(legacyData.get(10))); handleOncePerPatientObs(patient, Dictionary.getConcept(Dictionary.TB_PATIENT), tbStatus, "", null, null, entbOIresultNew, null, v); } if (!legacyData.get(11).isEmpty()) { Concept tbDiseaseClassification = Context.getConceptService() .getConcept(Integer.parseInt(legacyData.get(11))); handleOncePerPatientObs(patient, Dictionary.getConcept(Dictionary.SITE_OF_TUBERCULOSIS_DISEASE), tbDiseaseClassification, "", null, null, entbOIresultNew, null, v); if (!legacyData.get(12).isEmpty()) { if (!tbDiseaseClassification.equals("42")) { Concept tbsiteClassification = Context.getConceptService() .getConcept(Integer.parseInt(legacyData.get(12))); handleOncePerPatientObs(patient, Dictionary.getConcept(Dictionary.TB_SITE), tbsiteClassification, "", null, null, entbOIresultNew, null, v); } } } if (!legacyData.get(13).isEmpty()) { SimpleDateFormat sdf = new SimpleDateFormat("E MMM dd HH:mm:ss Z yyyy"); Date tbStartDate = new Date(); try { tbStartDate = (Date) formatter.parse(legacyData.get(13)); } catch (ParseException e) { e.printStackTrace(); } handleOncePerPatientObs(patient, Dictionary.getConcept( Dictionary.TUBERCULOSIS_DRUG_TREATMENT_START_DATE), null, null, tbStartDate, null, entbOIresultNew, null, v); } if (!legacyData.get(14).isEmpty()) { Concept tbTownship = Context.getConceptService() .getConcept(Integer.parseInt(legacyData.get(14))); handleOncePerPatientObs(patient, Dictionary.getConcept(Dictionary.TOWNSHIP), tbTownship, "", null, null, entbOIresultNew, null, v); } if (!legacyData.get(15).isEmpty()) { String tbclinicName = ""; tbclinicName = legacyData.get(15); handleOncePerPatientObs(patient, Dictionary.getConcept(Dictionary.TB_CLINIC_NAME), null, tbclinicName, null, null, entbOIresultNew, null, v); } if (!legacyData.get(16).isEmpty()) { String tbregistrationNumber = ""; tbregistrationNumber = legacyData.get(16); handleOncePerPatientObs(patient, Dictionary.getConcept(Dictionary.TUBERCULOSIS_TREATMENT_NUMBER), null, tbregistrationNumber, null, null, entbOIresultNew, null, v); } if (!legacyData.get(17).isEmpty()) { Concept tbRegimen = Context.getConceptService() .getConcept(Integer.parseInt(legacyData.get(17))); handleOncePerPatientObs(patient, Dictionary.getConcept(Dictionary.TB_FORM_REGIMEN), tbRegimen, "", null, null, entbOIresultNew, null, v); } if (!legacyData.get(18).isEmpty()) { Concept tbOutcome = Context.getConceptService() .getConcept(Integer.parseInt(legacyData.get(18))); handleOncePerPatientObs(patient, Dictionary.getConcept(Dictionary.TUBERCULOSIS_TREATMENT_OUTCOME), tbOutcome, null, null, null, entbOIresultNew, null, v); } if (!legacyData.get(19).isEmpty()) { Date tbOutcomeDate = null; Date curDatenew = new Date(); try { tbOutcomeDate = (Date) formatter.parse(legacyData.get(19)); dateCheck = visitDateInExcel.format(tbOutcomeDate); tbOutcomeDate = mysqlDateTimeFormatter.parse(dateCheck + " " + curDatenew.getHours() + ":" + curDatenew.getMinutes() + ":" + curDatenew.getSeconds()); } catch (ParseException e) { e.printStackTrace(); } handleOncePerPatientObs(patient, Dictionary.getConcept(Dictionary.TB_OUTCOME_DATE), null, null, tbOutcomeDate, null, entbOIresultNew, null, v); } int flag = 0; if (!legacyData.get(20).isEmpty()) { EncounterType HivdiscontEnrollEncType = MetadataUtils.existing( EncounterType.class, HivMetadata._EncounterType.HIV_DISCONTINUATION); Encounter hivDiscontEncounter = new Encounter(); hivDiscontEncounter.setEncounterType(HivdiscontEnrollEncType); hivDiscontEncounter.setPatient(patient); hivDiscontEncounter.setDateCreated(curDate); hivDiscontEncounter.setEncounterDatetime(dateVisit); hivDiscontEncounter.setLocation( Context.getService(KenyaEmrService.class).getDefaultLocation()); hivDiscontEncounter.setForm(MetadataUtils.existing(Form.class, HivMetadata._Form.HIV_DISCONTINUATION)); hivDiscontEncounter.setVisit(v); hivDiscontEncounter.setVoided(false); Encounter enhivDiscontresultNew = Context.getEncounterService() .saveEncounter(hivDiscontEncounter); Concept endOfFollowup = Context.getConceptService() .getConcept(Integer.parseInt(legacyData.get(20))); if (legacyData.get(20).equals("160034")) { handleOncePerPatientObs(patient, Dictionary.getConcept( Dictionary.REASON_FOR_PROGRAM_DISCONTINUATION), endOfFollowup, null, null, null, enhivDiscontresultNew, null, v); handleOncePerPatientObs(patient, Dictionary.getConcept(Dictionary.DEATH_DATE), null, null, dateVisit, null, enhivDiscontresultNew, null, v); flag = 1; } else if (legacyData.get(20).equals("159492")) { handleOncePerPatientObs(patient, Dictionary.getConcept( Dictionary.REASON_FOR_PROGRAM_DISCONTINUATION), endOfFollowup, null, null, null, enhivDiscontresultNew, null, v); if (!legacyData.get(22).isEmpty()) { String transferdto = legacyData.get(22); handleOncePerPatientObs(patient, Dictionary.getConcept(Dictionary.TRANSFERRED_OUT_TO), null, transferdto, null, null, enhivDiscontresultNew, null, v); } handleOncePerPatientObs(patient, Dictionary.getConcept(Dictionary.DATE_TRANSFERRED_OUT), null, null, dateVisit, null, enhivDiscontresultNew, null, v); } else { handleOncePerPatientObs(patient, Dictionary.getConcept( Dictionary.REASON_FOR_PROGRAM_DISCONTINUATION), endOfFollowup, null, null, null, enhivDiscontresultNew, null, v); } if (!legacyData.get(21).isEmpty()) { Date programcmpleteDate = null; Date curDatenew = new Date(); try { programcmpleteDate = (Date) formatter.parse(legacyData.get(21)); dateCheck = visitDateInExcel.format(programcmpleteDate); programcmpleteDate = mysqlDateTimeFormatter.parse(dateCheck + " " + curDatenew.getHours() + ":" + curDatenew.getMinutes() + ":" + curDatenew.getSeconds()); Collection<PatientProgram> hivprogram = Context .getProgramWorkflowService().getPatientPrograms(patient); for (PatientProgram prog : hivprogram) { if (prog.getPatient().equals(patient)) { if (prog.getProgram().getUuid() .equals("dfdc6d40-2f2f-463d-ba90-cc97350441a8") && prog.getDateCompleted() == null) { prog.setDateCompleted(programcmpleteDate); Context.getProgramWorkflowService() .savePatientProgram(prog); } } } } catch (ParseException e) { e.printStackTrace(); } } } if (!legacyData.get(23).isEmpty() && !legacyData.get(24).isEmpty()) { PatientProgram activeArtProgram = null; Collection<PatientProgram> artProgram = Context.getProgramWorkflowService() .getPatientPrograms(patient); for (PatientProgram artProg : artProgram) { if (artProg.getProgram().getUuid() .equals("96ec813f-aaf0-45b2-add6-e661d5bf79d6") && artProg.getDateCompleted() == null) { activeArtProgram = artProg; } } EncounterType ArtdiscontEnrollEncType = MetadataUtils .existing(EncounterType.class, ArtMetadata._EncounterType.STOP_ART); Encounter artDiscontEncounter = new Encounter(); artDiscontEncounter.setEncounterType(ArtdiscontEnrollEncType); artDiscontEncounter.setPatient(patient); artDiscontEncounter.setDateCreated(curDate); artDiscontEncounter.setEncounterDatetime(dateVisit); artDiscontEncounter.setLocation( Context.getService(KenyaEmrService.class).getDefaultLocation()); artDiscontEncounter.setForm( MetadataUtils.existing(Form.class, ArtMetadata._Form.STOP_ART)); artDiscontEncounter.setVisit(v); artDiscontEncounter.setVoided(false); Encounter enartDiscontresultNew = Context.getEncounterService() .saveEncounter(artDiscontEncounter); Date programcmpleteDate = null; Date curDatenew = new Date(); try { programcmpleteDate = (Date) formatter.parse(legacyData.get(23)); dateCheck = visitDateInExcel.format(programcmpleteDate); programcmpleteDate = mysqlDateTimeFormatter.parse(dateCheck + " " + curDatenew.getHours() + ":" + curDatenew.getMinutes() + ":" + curDatenew.getSeconds()); if (activeArtProgram != null) { activeArtProgram.setDateCompleted(programcmpleteDate); } } catch (ParseException e) { e.printStackTrace(); } Context.getProgramWorkflowService().savePatientProgram(activeArtProgram); if (!legacyData.get(24).isEmpty()) { Concept endOfArt = Context.getConceptService() .getConcept(Integer.parseInt(legacyData.get(24))); handleOncePerPatientObs(patient, Context.getConceptService().getConceptByUuid( "1252AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"), endOfArt, null, null, null, enartDiscontresultNew, null, v); } } EncounterType consultEnrollEncType = MetadataUtils.existing(EncounterType.class, CommonMetadata._EncounterType.CONSULTATION); Encounter consultEncounter = new Encounter(); consultEncounter.setEncounterType(consultEnrollEncType); consultEncounter.setPatient(patient); consultEncounter.setDateCreated(curDate); consultEncounter.setEncounterDatetime(dateVisit); consultEncounter.setLocation( Context.getService(KenyaEmrService.class).getDefaultLocation()); consultEncounter.setForm(MetadataUtils.existing(Form.class, CommonMetadata._Form.CONSULTATION_ENCOUNTER)); consultEncounter.setVisit(v); consultEncounter.setVoided(false); Encounter enconsultresultNew = Context.getEncounterService() .saveEncounter(consultEncounter); if (!legacyData.get(30).isEmpty()) { Concept sideffectsOfArt = Context.getConceptService() .getConcept(Integer.parseInt(legacyData.get(30))); handleOncePerPatientObs(patient, Context.getConceptService() .getConceptByUuid("159935AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"), Dictionary.getConcept(Dictionary.YES), null, null, null, enconsultresultNew, null, v); handleOncePerPatientObs(patient, Dictionary.getConcept(Dictionary.ART_SIDE_EFFECTS_VALUES), sideffectsOfArt, null, null, null, enconsultresultNew, null, v); } if (!legacyData.get(31).isEmpty()) { String levelOfAdherence = legacyData.get(31); handleOncePerPatientObs(patient, Dictionary.getConcept(Dictionary.ART_ADHERENCE), null, levelOfAdherence, null, null, enconsultresultNew, null, v); } if (!legacyData.get(41).isEmpty()) { Concept temporaryreferal = Context.getConceptService() .getConcept(Integer.parseInt(legacyData.get(41))); handleOncePerPatientObs(patient, Context.getConceptService() .getConceptByUuid("5e05d243-e039-4f04-9988-18d5a499329e"), Dictionary.getConcept(Dictionary.YES), null, null, null, enconsultresultNew, null, v); handleOncePerPatientObs(patient, Context.getConceptService() .getConceptByUuid("c648f69b-7065-4255-9af2-6076348c87dc"), temporaryreferal, null, null, null, enconsultresultNew, null, v); } if (!legacyData.get(28).isEmpty()) { Concept tbOutcome = new Concept(); String performance = legacyData.get(28); if (performance.equals("A")) { tbOutcome = Dictionary.getConcept(Dictionary.PERFSCALE_A); } else if (performance.equals("B")) { tbOutcome = Dictionary.getConcept(Dictionary.PERFSCALE_B); } else { tbOutcome = Dictionary.getConcept(Dictionary.PERFSCALE_C); } handleOncePerPatientObs(patient, Dictionary.getConcept(Dictionary.PERFORMANCE), tbOutcome, null, null, null, entbOIresultNew, null, v); } if (!legacyData.get(29).isEmpty()) { Concept tbOutcome = new Concept(); String stage = legacyData.get(29); if (stage.equals("IV")) { tbOutcome = Dictionary.getConcept(Dictionary.WHO_STAGE_4_ADULT); } else if (stage.equals("III")) { tbOutcome = Dictionary.getConcept(Dictionary.WHO_STAGE_3_ADULT); } else if (stage.equals("II")) { tbOutcome = Dictionary.getConcept(Dictionary.WHO_STAGE_2_ADULT); } else { tbOutcome = Dictionary.getConcept(Dictionary.WHO_STAGE_1_ADULT); } handleOncePerPatientObs(patient, Dictionary.getConcept(Dictionary.CURRENT_WHO_STAGE), tbOutcome, null, null, null, entbOIresultNew, null, v); } EncounterType nextAppointEncType = MetadataUtils.existing(EncounterType.class, CommonMetadata._EncounterType.CONSULTATION); Encounter nextAppointEncounter = new Encounter(); nextAppointEncounter.setEncounterType(nextAppointEncType); nextAppointEncounter.setPatient(patient); nextAppointEncounter.setDateCreated(curDate); nextAppointEncounter.setEncounterDatetime(dateVisit); nextAppointEncounter.setLocation( Context.getService(KenyaEmrService.class).getDefaultLocation()); nextAppointEncounter.setVisit(v); nextAppointEncounter.setVoided(false); Encounter ennextAppointresultNew = new Encounter(); if (!legacyData.get(32).isEmpty()) { ennextAppointresultNew = Context.getEncounterService() .saveEncounter(nextAppointEncounter); } if (!legacyData.get(32).isEmpty()) { SimpleDateFormat sdf = new SimpleDateFormat("E MMM dd HH:mm:ss Z yyyy"); Date nextAppointDate = new Date(); try { nextAppointDate = (Date) formatter.parse(legacyData.get(32)); } catch (ParseException e) { e.printStackTrace(); } handleOncePerPatientObs(patient, Dictionary.getConcept(Dictionary.RETURN_VISIT_DATE), null, null, nextAppointDate, null, ennextAppointresultNew, null, v); } // For OI or PROPHYLAXIS if (!legacyData.get(33).isEmpty() || !legacyData.get(34).isEmpty()) { // For Duration of Medication if (!legacyData.get(6).isEmpty()) { EncounterType otherMedicationEnrollEncType = MetadataUtils.existing( EncounterType.class, CommonMetadata._EncounterType.CONSULTATION); Encounter otherMedEncounter = new Encounter(); otherMedEncounter.setEncounterType(otherMedicationEnrollEncType); otherMedEncounter.setPatient(patient); otherMedEncounter.setDateCreated(curDate); otherMedEncounter.setEncounterDatetime(dateVisit); otherMedEncounter.setLocation( Context.getService(KenyaEmrService.class).getDefaultLocation()); otherMedEncounter.setForm(MetadataUtils.existing(Form.class, CommonMetadata._Form.OTHER_MEDICATIONS)); otherMedEncounter.setVisit(v); otherMedEncounter.setVoided(false); Encounter enotherresultNew = Context.getEncounterService() .saveEncounter(otherMedEncounter); String duration = legacyData.get(6); Double durationDouble = Double.parseDouble(duration); int durationInteger = Integer.parseInt(legacyData.get(6)); /* * PROPHYLAXIS start */ if (!legacyData.get(33).isEmpty()) { String value = legacyData.get(33); String[] valueList = value.split("\\s*,\\s*"); for (String prop : valueList) { // Group for each Drug String text = ""; Obs prophylGroup = new Obs(); prophylGroup.setPerson(patient); prophylGroup.setConcept( Context.getConceptService().getConceptByUuid( "163022AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA")); prophylGroup.setObsDatetime( enotherresultNew.getEncounterDatetime()); prophylGroup.setValueCoded(null); prophylGroup.setValueText(text); prophylGroup .setLocation(Context.getService(KenyaEmrService.class) .getDefaultLocation()); prophylGroup.setEncounter(enotherresultNew); prophylGroup.setComment("1"); Obs prophyl = Context.getObsService().saveObs(prophylGroup, "KenyaEMR History Details"); Concept oivalue = Context.getConceptService().getConcept(prop); // CPT for CTX if (oivalue.getUuid().toString() .equals("105281AAAAAAAAAAAAAAAAAAAAAAAAAAAAAA")) { handleOncePerPatientObs(patient, Dictionary.getConcept(Dictionary.CPT_VALUE), Context.getConceptService().getConcept(1065), "", null, null, enotherresultNew, null, v); } // IPT for Isoniazid if (oivalue.getUuid().toString() .equals("78280AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA")) { handleOncePerPatientObs(patient, Dictionary.getConcept(Dictionary.IPT_VALUE), Context.getConceptService().getConcept(1065), "", null, null, enotherresultNew, null, v); } handleOncePerPatientObs(patient, Dictionary.getConcept(Dictionary.PROPHYLAXIS), oivalue, "", null, null, enotherresultNew, prophyl, v); handleOncePerPatientObs(patient, Dictionary.getConcept(Dictionary.MEDICATION_DURATION), null, "", null, durationDouble, enotherresultNew, prophyl, v); // Capture Drug in Drug obs // processed DrugObsProcessed dop = new DrugObsProcessed(); dop.setObs(prophyl); dop.setCreatedDate(curDate); dop.setPatient(patient); dop.setProcessedDate(dateVisit); dop.setQuantityPostProcess(durationInteger); KenyaEmrService kes = (KenyaEmrService) Context .getService(KenyaEmrService.class); kes.saveDrugObsProcessed(dop); } } /* * PROPHYLAXIS End */ if (!legacyData.get(34).isEmpty()) { String value = legacyData.get(34); String[] valueList = value.split("\\s*,\\s*"); for (String oil : valueList) { // Group for each Drug String text = ""; Obs oitreatmentGroup = new Obs(); oitreatmentGroup.setPerson(patient); oitreatmentGroup.setConcept( Context.getConceptService().getConceptByUuid( "163021AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA")); oitreatmentGroup.setObsDatetime( enotherresultNew.getEncounterDatetime()); oitreatmentGroup.setValueCoded(null); oitreatmentGroup.setValueText(text); oitreatmentGroup .setLocation(Context.getService(KenyaEmrService.class) .getDefaultLocation()); oitreatmentGroup.setEncounter(enotherresultNew); oitreatmentGroup.setComment("1"); Obs oitreat = Context.getObsService().saveObs(oitreatmentGroup, "KenyaEMR History Details"); Concept oivalue = Context.getConceptService().getConcept(oil); handleOncePerPatientObs(patient, Dictionary.getConcept(Dictionary.OI_TREATMENT_DRUG), oivalue, "", null, null, enotherresultNew, oitreat, v); handleOncePerPatientObs(patient, Dictionary.getConcept(Dictionary.MEDICATION_DURATION), null, "", null, durationDouble, enotherresultNew, oitreat, v); // Capture Drug in Drug obs // processed DrugObsProcessed dop = new DrugObsProcessed(); dop.setObs(oitreat); dop.setCreatedDate(curDate); dop.setPatient(patient); dop.setProcessedDate(dateVisit); dop.setQuantityPostProcess(durationInteger); KenyaEmrService kes = (KenyaEmrService) Context .getService(KenyaEmrService.class); kes.saveDrugObsProcessed(dop); } } } } EncounterType recordEncType = MetadataUtils.existing(EncounterType.class, CommonMetadata._EncounterType.CONSULTATION); Encounter recordEncounter = new Encounter(); recordEncounter.setEncounterType(recordEncType); recordEncounter.setPatient(patient); recordEncounter.setDateCreated(curDate); recordEncounter.setEncounterDatetime(dateVisit); recordEncounter.setLocation( Context.getService(KenyaEmrService.class).getDefaultLocation()); recordEncounter.setForm( MetadataUtils.existing(Form.class, CommonMetadata._Form.TRIAGE)); recordEncounter.setVisit(v); recordEncounter.setVoided(false); Encounter enrecordvitalresultNew = Context.getEncounterService() .saveEncounter(recordEncounter); if (!legacyData.get(25).isEmpty()) { String labResult = legacyData.get(25); Double lab = Double.parseDouble(labResult); handleOncePerPatientObs(patient, Dictionary.getConcept(Dictionary.WEIGHT_KG), null, null, null, lab, enrecordvitalresultNew, null, v); } if (!legacyData.get(26).isEmpty()) { String labResult = legacyData.get(26); Double lab = Double.parseDouble(labResult); handleOncePerPatientObs(patient, Dictionary.getConcept(Dictionary.HEIGHT_CM), null, null, null, lab, enrecordvitalresultNew, null, v); } EncounterType hivEnrollEncType = MetadataUtils.existing(EncounterType.class, HivMetadata._EncounterType.HIV_ENROLLMENT); EncounterType registrationEncType = MetadataUtils.existing(EncounterType.class, CommonMetadata._EncounterType.REGISTRATION); Encounter obstericEncounter = new Encounter(); obstericEncounter.setEncounterType(registrationEncType); obstericEncounter.setPatient(patient); obstericEncounter.setDateCreated(curDate); obstericEncounter.setEncounterDatetime(dateVisit); obstericEncounter.setLocation( Context.getService(KenyaEmrService.class).getDefaultLocation()); obstericEncounter.setForm( MetadataUtils.existing(Form.class, Metadata.Form.OBSTETRIC_HISTORY)); obstericEncounter.setVisit(v); obstericEncounter.setVoided(false); Encounter enobstericrecordresultNew = Context.getEncounterService() .saveEncounter(obstericEncounter); if (!legacyData.get(42).isEmpty()) { Concept pregstatus = Context.getConceptService() .getConcept(Integer.parseInt(legacyData.get(42))); handleOncePerPatientObs(patient, Dictionary.getConcept(Dictionary.PREGNANCY_STATUS), pregstatus, "", null, null, enobstericrecordresultNew, null, v); } if (!legacyData.get(43).isEmpty()) { Concept familyplanningstatus = Dictionary.getConcept(Dictionary.YES); handleOncePerPatientObs(patient, Context.getConceptService() .getConceptByUuid("5271AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA"), familyplanningstatus, "", null, null, enobstericrecordresultNew, null, v); } if (!legacyData.get(43).isEmpty()) { Concept familyplanningvalue = Context.getConceptService() .getConcept(Integer.parseInt(legacyData.get(43))); handleOncePerPatientObs(patient, Dictionary.getConcept(Dictionary.METHOD_OF_FAMILY_PLANNING), familyplanningvalue, "", null, null, enobstericrecordresultNew, null, v); } DateFormat visitDatesInExcel = new SimpleDateFormat("dd-MMM-yyyy"); String dateChecks = visitDatesInExcel.format(dateVisit); if (legacyData.get(3) != null) { Date Datenew = new Date(); try { dateVisit = mysqlDateTimeFormatter .parse(dateChecks + " " + Datenew.getHours() + ":" + Datenew.getMinutes() + ":" + Datenew.getSeconds()); } catch (ParseException e) { dateVisit = Datenew; e.printStackTrace(); } } v.setStopDatetime(dateVisit); Context.getVisitService().saveVisit(v); if (flag == 1) { person.setDead(true); person.setDeathDate(dateVisit); person.setCauseOfDeath(Dictionary.getConcept(Dictionary.UNKNOWN)); Context.getPersonService().savePerson(person); } } } catch (IndexOutOfBoundsException e) { e.printStackTrace(); } } else { break; } } } catch (IndexOutOfBoundsException e) { break; } rowCountVisit++; } } inputStream.close(); // workbook.close(); return new SuccessResult("Saved Patient Data"); }