List of usage examples for java.util Date getSeconds
@Deprecated public int getSeconds()
From source file:org.openmrs.module.dhisconnector.api.impl.DHISConnectorServiceImpl.java
@SuppressWarnings("deprecation") @Override//from w w w. java2 s .c o m public String getLastSyncedAt() { File backup = new File(OpenmrsUtil.getApplicationDataDirectory() + DHISCONNECTOR_DHIS2BACKUP_FOLDER + File.separator + "api"); if (dhis2BackupExists()) { Date lastModified = new Date(backup.lastModified()); return Context.getDateFormat().format(lastModified) + " " + lastModified.getHours() + ":" + lastModified.getMinutes() + ":" + lastModified.getSeconds(); } else { return ""; } }
From source file:org.pentaho.platform.dataaccess.datasource.wizard.service.agile.CsvTransformGeneratorIT.java
public void testLoadTable1() throws Exception { IPentahoSession session = new StandaloneSession("test"); KettleSystemListener.environmentInit(session); ModelInfo info = createModel();//from w w w . j a v a2s . c o m CsvTransformGenerator gen = new CsvTransformGenerator(info, getDatabaseMeta()); // create the model String tableName = info.getStageTableName(); try { gen.execSqlStatement(getDropTableStatement(tableName), getDatabaseMeta(), null); } catch (CsvTransformGeneratorException e) { // table might not be there yet, it is OK } // generate the database table gen.createOrModifyTable(session); // load the table loadTable(gen, info, true, session); // check the results long rowCount = this.getRowCount(tableName); assertEquals((long) 235, rowCount); DatabaseMeta databaseMeta = getDatabaseMeta(); assertNotNull(databaseMeta); Database database = new Database(databaseMeta); assertNotNull(database); database.connect(); Connection connection = null; Statement stmt = null; ResultSet sqlResult = null; try { connection = database.getConnection(); assertNotNull(connection); stmt = database.getConnection().createStatement(); // check the first row Date testDate = new Date(); testDate.setDate(1); testDate.setHours(0); testDate.setMinutes(0); testDate.setMonth(0); testDate.setSeconds(0); testDate.setYear(110); boolean ok = stmt.execute("select * from " + tableName); assertTrue(ok); sqlResult = stmt.getResultSet(); assertNotNull(sqlResult); ok = sqlResult.next(); assertTrue(ok); // test the values assertEquals((long) 3, sqlResult.getLong(1)); assertEquals(25677.96525, sqlResult.getDouble(2)); assertEquals((long) 1231, sqlResult.getLong(3)); assertEquals(testDate.getYear(), sqlResult.getDate(4).getYear()); assertEquals(testDate.getMonth(), sqlResult.getDate(4).getMonth()); assertEquals(testDate.getDate(), sqlResult.getDate(4).getDate()); assertEquals(testDate.getHours(), sqlResult.getTime(4).getHours()); // assertEquals( testDate.getMinutes(), ((Date)cells[3]).getMinutes() ); this fails, a bug in the PDI date parsing? assertEquals(testDate.getSeconds(), sqlResult.getTime(4).getSeconds()); // assertEquals( testDate, cells[3] ); assertEquals("Afghanistan", sqlResult.getString(5)); assertEquals((long) 11, sqlResult.getLong(6)); assertEquals(111.9090909, sqlResult.getDouble(7)); assertEquals(false, sqlResult.getBoolean(8)); } finally { sqlResult.close(); stmt.close(); connection.close(); } }
From source file:org.pentaho.platform.dataaccess.datasource.wizard.service.agile.CsvTransformGeneratorTest.java
public void testGoodTransform() throws Exception { IPentahoSession session = new StandaloneSession("test"); KettleSystemListener.environmentInit(session); ModelInfo info = createModel();/* www .j av a 2s.c o m*/ CsvTransformGenerator gen = new CsvTransformGenerator(info, getDatabaseMeta()); gen.preview(session); DataRow rows[] = info.getData(); assertNotNull(rows); assertEquals(235, rows.length); Date testDate = new Date(); testDate.setDate(1); testDate.setHours(0); testDate.setMinutes(0); testDate.setMonth(0); testDate.setSeconds(0); testDate.setYear(110); // test the first row // test the data types DataRow row = rows[0]; assertNotNull(row); Object cells[] = row.getCells(); assertNotNull(cells); // assertEquals( 8, cells.length ); assertTrue(cells[0] instanceof Long); assertTrue(cells[1] instanceof Double); assertTrue(cells[2] instanceof Long); assertTrue(cells[3] instanceof Date); assertTrue(cells[4] instanceof String); assertTrue(cells[5] instanceof Long); assertTrue(cells[6] instanceof Double); assertTrue(cells[7] instanceof Boolean); // test the values assertEquals((long) 3, cells[0]); assertEquals(25677.96525, cells[1]); assertEquals((long) 1231, cells[2]); assertEquals(testDate.getYear(), ((Date) cells[3]).getYear()); assertEquals(testDate.getMonth(), ((Date) cells[3]).getMonth()); assertEquals(testDate.getDate(), ((Date) cells[3]).getDate()); assertEquals(testDate.getHours(), ((Date) cells[3]).getHours()); // assertEquals( testDate.getMinutes(), ((Date)cells[3]).getMinutes() ); this fails, a bug in the PDI date parsing? assertEquals(testDate.getSeconds(), ((Date) cells[3]).getSeconds()); // assertEquals( testDate, cells[3] ); assertEquals("Afghanistan", cells[4]); assertEquals((long) 11, cells[5]); assertEquals(111.9090909, cells[6]); assertEquals(false, cells[7]); // test the second row testDate.setDate(2); // test the data types row = rows[1]; assertNotNull(row); cells = row.getCells(); assertNotNull(cells); assertTrue(cells[0] instanceof Long); assertTrue(cells[1] instanceof Double); assertTrue(cells[2] instanceof Long); assertTrue(cells[3] instanceof Date); assertTrue(cells[4] == null); assertTrue(cells[5] instanceof Long); assertTrue(cells[6] instanceof Double); assertTrue(cells[7] instanceof Boolean); // test the values assertEquals((long) 4, cells[0]); assertEquals(24261.81026, cells[1]); assertEquals((long) 1663, cells[2]); assertEquals(testDate.getYear(), ((Date) cells[3]).getYear()); assertEquals(testDate.getMonth(), ((Date) cells[3]).getMonth()); assertEquals(testDate.getDate(), ((Date) cells[3]).getDate()); assertEquals(testDate.getHours(), ((Date) cells[3]).getHours()); // assertEquals( testDate.getMinutes(), ((Date)cells[3]).getMinutes() ); this fails, a bug in the PDI date parsing? assertEquals(testDate.getSeconds(), ((Date) cells[3]).getSeconds()); // assertEquals( testDate, cells[3] ); assertEquals(null, cells[4]); // IfNull value does not seem to work assertEquals((long) 7, cells[5]); assertEquals(237.5714286, cells[6]); assertEquals(true, cells[7]); }
From source file:org.pentaho.platform.dataaccess.datasource.wizard.service.agile.CsvTransformGeneratorIT.java
public void testGoodTransform() throws Exception { IPentahoSession session = new StandaloneSession("test"); KettleSystemListener.environmentInit(session); String KETTLE_EMPTY_STRING_DIFFERS_FROM_NULL = System.getProperty("KETTLE_EMPTY_STRING_DIFFERS_FROM_NULL", "N"); ModelInfo info = createModel();// w w w.jav a 2s .c om CsvTransformGenerator gen = new CsvTransformGenerator(info, getDatabaseMeta()); gen.preview(session); DataRow rows[] = info.getData(); assertNotNull(rows); assertEquals(235, rows.length); Date testDate = new Date(); testDate.setDate(1); testDate.setHours(0); testDate.setMinutes(0); testDate.setMonth(0); testDate.setSeconds(0); testDate.setYear(110); // test the first row // test the data types DataRow row = rows[0]; assertNotNull(row); Object cells[] = row.getCells(); assertNotNull(cells); // assertEquals( 8, cells.length ); assertTrue(cells[0] instanceof Long); assertTrue(cells[1] instanceof Double); assertTrue(cells[2] instanceof Long); assertTrue(cells[3] instanceof Date); assertTrue(cells[4] instanceof String); assertTrue(cells[5] instanceof Long); assertTrue(cells[6] instanceof Double); assertTrue(cells[7] instanceof Boolean); // test the values assertEquals((long) 3, cells[0]); assertEquals(25677.96525, cells[1]); assertEquals((long) 1231, cells[2]); assertEquals(testDate.getYear(), ((Date) cells[3]).getYear()); assertEquals(testDate.getMonth(), ((Date) cells[3]).getMonth()); assertEquals(testDate.getDate(), ((Date) cells[3]).getDate()); assertEquals(testDate.getHours(), ((Date) cells[3]).getHours()); // assertEquals( testDate.getMinutes(), ((Date)cells[3]).getMinutes() ); this fails, a bug in the PDI date parsing? assertEquals(testDate.getSeconds(), ((Date) cells[3]).getSeconds()); // assertEquals( testDate, cells[3] ); assertEquals("Afghanistan", cells[4]); assertEquals((long) 11, cells[5]); assertEquals(111.9090909, cells[6]); assertEquals(false, cells[7]); // test the second row testDate.setDate(2); // test the data types row = rows[1]; assertNotNull(row); cells = row.getCells(); assertNotNull(cells); assertTrue(cells[0] instanceof Long); assertTrue(cells[1] instanceof Double); assertTrue(cells[2] instanceof Long); assertTrue(cells[3] instanceof Date); if ("Y".equals(KETTLE_EMPTY_STRING_DIFFERS_FROM_NULL)) { assertTrue("".equals(cells[4])); } else { assertTrue(cells[4] == null); } assertTrue(cells[5] instanceof Long); assertTrue(cells[6] instanceof Double); assertTrue(cells[7] instanceof Boolean); // test the values assertEquals((long) 4, cells[0]); assertEquals(24261.81026, cells[1]); assertEquals((long) 1663, cells[2]); assertEquals(testDate.getYear(), ((Date) cells[3]).getYear()); assertEquals(testDate.getMonth(), ((Date) cells[3]).getMonth()); assertEquals(testDate.getDate(), ((Date) cells[3]).getDate()); assertEquals(testDate.getHours(), ((Date) cells[3]).getHours()); // assertEquals( testDate.getMinutes(), ((Date)cells[3]).getMinutes() ); this fails, a bug in the PDI date parsing? assertEquals(testDate.getSeconds(), ((Date) cells[3]).getSeconds()); // assertEquals( testDate, cells[3] ); if ("Y".equals(KETTLE_EMPTY_STRING_DIFFERS_FROM_NULL)) { assertEquals("", cells[4]); assertEquals(cells[4], ""); } else { assertEquals(null, cells[4]); // IfNull value does not seem to work } assertEquals((long) 7, cells[5]); assertEquals(237.5714286, cells[6]); assertEquals(true, cells[7]); }
From source file:org.pentaho.di.core.ConstTest.java
@Test public void testRemoveTimeFromDate() { final Date date = Const.removeTimeFromDate(new Date()); assertEquals(0, date.getHours());//from w w w .j av a 2s .c om assertEquals(0, date.getMinutes()); assertEquals(0, date.getSeconds()); }
From source file:TimeFormatter.java
/** * Format the given date as a string, according to the given * format string.//from w ww. j av a 2 s. c o m * The format string is of the form used by the strftime(3) UNIX * call. * @param date The date to format * @param format The formatting string * @return the String with the formatted date. */ public static String format(Date date, String format) { StringBuffer buf = new StringBuffer(50); char ch; for (int i = 0; i < format.length(); i++) { ch = format.charAt(i); if (ch == '%') { ++i; if (i == format.length()) break; ch = format.charAt(i); if (ch == 'E') { // Alternate Era ++i; } else if (ch == 'Q') { // Alternate numeric symbols ++i; } if (i == format.length()) break; ch = format.charAt(i); switch (ch) { case 'A': buf.append(fullWeekDays[date.getDay()]); break; case 'a': buf.append(abrWeekDays[date.getDay()]); break; case 'B': buf.append(fullMonths[date.getMonth()]); break; case 'b': case 'h': buf.append(abrMonths[date.getMonth()]); break; case 'C': appendPadded(buf, (date.getYear() + 1900) / 100, 2); break; case 'c': buf.append(date.toLocaleString()); break; case 'D': buf.append(TimeFormatter.format(date, "%m/%d/%y")); break; case 'd': appendPadded(buf, date.getDate(), 2); break; case 'e': appendPadded(buf, date.getMonth() + 1, 2, ' '); break; case 'H': appendPadded(buf, date.getHours(), 2); break; case 'I': case 'l': int a = date.getHours() % 12; if (a == 0) a = 12; appendPadded(buf, a, 2, ch == 'I' ? '0' : ' '); break; case 'j': buf.append("[?]"); // No simple way to get this as of now break; case 'k': appendPadded(buf, date.getHours(), 2, ' '); break; case 'M': appendPadded(buf, date.getMinutes(), 2); break; case 'm': appendPadded(buf, date.getMonth() + 1, 2); break; case 'n': buf.append('\n'); break; case 'p': buf.append(date.getHours() < 12 ? "am" : "pm"); break; case 'R': buf.append(TimeFormatter.format(date, "%H:%M")); break; case 'r': buf.append(TimeFormatter.format(date, "%l:%M%p")); break; case 'S': appendPadded(buf, date.getSeconds(), 2); break; case 'T': buf.append(TimeFormatter.format(date, "%H:%M:%S")); break; case 't': buf.append('\t'); break; case 'U': case 'u': case 'V': case 'W': buf.append("[?]"); // Weekdays are a pain, especially // without day of year (0-365) ; break; case 'w': buf.append(date.getDay()); break; case 'X': buf.append(TimeFormatter.format(date, "%H:%M:%S")); break; case 'x': buf.append(TimeFormatter.format(date, "%B %e, %Y")); break; case 'y': appendPadded(buf, (date.getYear() + 1900) % 100, 2); break; case 'Y': appendPadded(buf, (date.getYear() + 1900), 4); break; case 'Z': String strdate = date.toString(); buf.append(strdate.substring(20, 23)); // (!) // There should be a better way // to do this... break; case '%': buf.append('%'); break; } } else { buf.append(ch); } } return buf.toString(); }
From source file:ProcessRequest.java
public JSONObject getWeight(final String host, final int port, final int numChars, final int weightBeginPos, final int weightEndPos, final int termChar, final int statusBeginPos, final int statusEndPos, final int normalChar, final int motionChar, int timeout, final String overcapacity) { //Thread socketThread = new Thread() { // public void run() { //cannot run in thread Socket connection = null;/* ww w . ja v a2 s. co m*/ JSONObject returnObject = new JSONObject(); try { System.out.println("opening socket"); connection = new Socket(host, port); System.out.println("getting stream"); InputStreamReader reader = new InputStreamReader(connection.getInputStream()); System.out.println("creating character buffer"); boolean success = false; java.util.Date beginDate = new java.util.Date(); java.util.Date endDate = (java.util.Date) beginDate.clone(); endDate.setSeconds(endDate.getSeconds() + timeout); while (!success) { beginDate = new java.util.Date(); if (beginDate.after(endDate)) { returnObject.put("error", "the operation timed out"); //out.println(returnObject.toString(5)); return returnObject; } String string = new String(); int count = 0; while (reader.read() != (char) (termChar)) { if (count > 5000) { break; } count++; } if (count > 5000) { returnObject.put("error", "termchar was not found in the stream. are you sure the scale is set up correctly?"); //out.println(returnObject.toString(5)); return returnObject; } for (int i = 0; i < numChars; i++) { string += (char) (reader.read()); } //get negative marker also String weight = string.substring(weightBeginPos - 1, weightEndPos); String status = string.substring(statusBeginPos - 1, statusEndPos); String uom = string.substring(9, 11); System.out.println("weight: '" + weight + "'"); System.out.println("status: '" + status + "'"); System.out.println("uom : '" + uom + "'"); if (string.contains(overcapacity)) { returnObject.put("error", "Over Capacity!"); return returnObject; } else { System.out.println("extracting weight value"); returnObject.put("weight", new Integer(weight).toString()); System.out.println("checking motion"); if (status.charAt(0) == ((char) (normalChar))) { returnObject.put("motion", false); } else if (status.charAt(0) == ((char) (motionChar))) { returnObject.put("motion", true); } else { returnObject.put("error", "Invalid Motion Char!\n(check web service settings)"); } System.out.println("checking uom"); if (uom.equals("LB")) { returnObject.put("uom", "lbs"); } else if (uom.equals("KG")) { returnObject.put("uom", "kg"); } else { //unknown weight type, no cause for error here. } } System.out.println("sending resultant json"); //out.println(returnObject.toString(5)); success = true; } } catch (Exception e) { System.out.println("ERROR"); System.out.println("ERROR: could not connect to scale: " + e.toString()); try { returnObject.put("error", "could not connect to scale: " + e.toString()); return returnObject; //out.println(returnObject.toString(5)); } catch (Exception je) { //out.println("parser error?"); returnObject.put("error", je.toString()); return returnObject; } } finally { try { connection.close(); } catch (Exception e) { //don't care at this point. } return returnObject; } // } //}; //socketThread.start(); }
From source file:org.opencastproject.capture.impl.SchedulerImpl.java
/** * Adds to the schedule polling the remote calendar for new jobs to add to the scheduler * //from ww w . j ava 2 s. c om * @param sched * The scheduler add the polling tasks to. * @param immediate * True to start the polling immediately, false to wait one polling period before starting */ private void addCalendarPolling(Scheduler sched, boolean immediate) { if (sched == null) { log.warn("Unable to add polling tasks to null scheduler!"); return; } try { // Find the remote endpoint for the scheduler and add the agent's name to it String remoteBase = StringUtils .trimToNull(configService.getItem(CaptureParameters.CAPTURE_SCHEDULE_REMOTE_ENDPOINT_URL)); if (remoteBase != null && remoteBase.charAt(remoteBase.length() - 1) != '/') { remoteBase = remoteBase + "/"; } else if (remoteBase == null) { log.error( "Key {} is missing from the config file or invalid, unable to start polling. Result was {}", CaptureParameters.CAPTURE_SCHEDULE_REMOTE_ENDPOINT_URL, StringUtils.trimToNull( configService.getItem(CaptureParameters.CAPTURE_SCHEDULE_REMOTE_ENDPOINT_URL))); return; } remoteCalendarURL = new URL(remoteBase); // Times are in minutes in the config file calendarPollTime = Long .parseLong(configService.getItem(CaptureParameters.CAPTURE_SCHEDULE_REMOTE_POLLING_INTERVAL)); calendarPollTime = calendarPollTime * CaptureParameters.MINUTES * CaptureParameters.MILLISECONDS; if (calendarPollTime >= (1 * CaptureParameters.MINUTES * CaptureParameters.MILLISECONDS)) { // Setup the polling JobDetail job = new JobDetail("calendarUpdate", JobParameters.RECURRING_TYPE, PollCalendarJob.class); Date start = null; // Possibly add a delay to prevent an infinite recursion: // A new calendar creating a new update which creates a new calendar which... if (immediate) { start = new Date(); } else { start = new Date(System.currentTimeMillis() + calendarPollTime); } // We are hardcoding the update to fire at least 10 seconds away from a possible capture start to prevent a // race condition between firing a capture and updating the internal calendar. The problem lies in the non- // deterministic order of execution when the calendar update fires: We first dump the existing schedule then // reschedule with the new data, so if somehow we have a capture which should start within that fraction of a // second it would be lost. Changing the update time to 10 seconds off of the full minute mark prevents the // issue without resorting to keeping two schedulers around (which doesn't work very well, tried it) or having // weird logic around either the start capture or poll calendar jobs to delay one or the other if there will // be a conflict. // If we're within the first 10 seconds push an extra 10 seconds onto the time if (start.getSeconds() < 10) { start.setTime(start.getTime() + (10 * CaptureParameters.MILLISECONDS)); // If we're within the last 10 seconds push an extra 20 seconds onto the time // (10 for the last 10 seconds, 10 for the first 10 of the next minute) } else if (start.getSeconds() > 50) { start.setTime(start.getTime() + (20 * CaptureParameters.MILLISECONDS)); } // Create a new trigger Name Group name Start End # of times to repeat Repeat interval SimpleTrigger trigger = new SimpleTrigger(calendarPollingJobName, JobParameters.RECURRING_TYPE, start, null, SimpleTrigger.REPEAT_INDEFINITELY, calendarPollTime); trigger.setMisfireInstruction(SimpleTrigger.MISFIRE_INSTRUCTION_FIRE_NOW); trigger.getJobDataMap().put(JobParameters.SCHEDULER, this); // Schedule the update sched.scheduleJob(job, trigger); } else { log.info("{} has been set to less than 1 minute, calendar updates disabled.", CaptureParameters.CAPTURE_SCHEDULE_REMOTE_POLLING_INTERVAL); } } catch (StringIndexOutOfBoundsException e) { log.warn( "Unable to build valid scheduling data endpoint from key {}: {}. Value must end in a / character.", CaptureParameters.CAPTURE_SCHEDULE_REMOTE_ENDPOINT_URL, configService.getItem(CaptureParameters.CAPTURE_SCHEDULE_REMOTE_ENDPOINT_URL)); } catch (MalformedURLException e) { log.warn("Invalid location specified for {} unable to retrieve new scheduling data: {}.", CaptureParameters.CAPTURE_SCHEDULE_REMOTE_ENDPOINT_URL, configService.getItem(CaptureParameters.CAPTURE_SCHEDULE_REMOTE_ENDPOINT_URL)); } catch (NumberFormatException e) { log.warn("Invalid polling interval for {} unable to retrieve new scheduling data: {}.", CaptureParameters.CAPTURE_SCHEDULE_REMOTE_POLLING_INTERVAL, configService.getItem(CaptureParameters.CAPTURE_SCHEDULE_REMOTE_POLLING_INTERVAL)); } catch (SchedulerException e) { log.warn("Scheduler exception when attempting to start polling tasks: {}", e); } }
From source file:org.openmrs.module.kenyaemr.fragment.controller.patient.ImportPatientsListFragmentController.java
@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 .j a v a 2 s . c o m*/ 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(discontinuedDate); } } } } 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) { if (visdr.getStopDatetime() != null) { if (oo.getDiscontinuedReason() == null) { if (!ooo.getDrugRegimen() .equals(drugoo.getDrugRegimen())) { drugoo.setDiscontinuedReason(discontinuedReason); } } } } } 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"); }