Case Study for Java Development

Application for acquiring tissue images during cancer surgeries

Customer

Innovative Swiss digital microscopy startup developing advanced fresh-tissue microscopy scanners for acquiring tissue images during surgical cancer interventions.

Objective

To develop the application that provides production grade GUI for the innovative optical ultra-high resolution scanner that helps surgeons to visualize tissue specimens within a minute. It acquires raw data from the scanner driver and converts it to industry supported image formats. Operator of the device has flexible tools to view images in whole or any select part of interest. Every image can be annotated with line graphics and plain text information. Images are stored and managed on the device in session classified manner, or can be exported through removable storage. Interaction with device is limited to touch screen taps and gestures.

Model of Cooperation

To select the vendor for building GUI for the Customer’s product, the Client arranged a tender between a number of software dev companies. After several stages of selection and based on the experience level of our Java/JavaFX specialists and price/quality ratio, we have reached the finals with one of the Eastern European companies.

At this stage we decided to make an extra step and prepared a small demo about the Client’s project-specific part, so the Customer could assess our developers’ skills and to understand our vision of project implementation. Moreover, all of the code and architecture were designed specifically for their application after the interview as a proof of concept, so they could be reused in further development.

The Customer was satisfied with the demo provided and decided to kick-off the project with us.

Two senior Java/JavaFX developers were assigned to the project and were responsible for the project implementation till the very end. Testing was provided by the Client on the Scanner at their premises.

Solution

The application is a next version of the prototype software. In the predecessor, a concept of fast scanning at ultra-high resolution has been successfully confirmed. However the Client realized that for the purpose of production the device in series, a new software version should be developed to address next major goals:

  • Provide a modern ergonomic GUI to operate scanner hardware and collections of images on a wide touch screen.
  • Establish database storage for image data.
  • Develop and implement methods of smooth real time operation with gigabyte size images.
  • Allow operator to annotate images with line graphics and positioned text.
  • Export images and data in varying formats.
  • Prepare high quality printable documents.

Based on these requirements, a completely new application has been developed, with minor adoption of prototype code. During the development process, all the prototype solutions were thoroughly examined and rearranged to meet design goals and provide a clear understanding of data structures, data flow and code dependencies.

As for the design, the customer presented a set of sketches/screenshots describing basic functionality, color palette and shapes of controls comprising GUI. Development team has implemented all these and derived forms, their varieties, as well as additional GUI components, all using JavaFX API. Most of the GUI customization was completed in a separate software layer, using CSS dialect of JavaFX.

A completely new hierarchy data representation has been developed. This data schema was mapped onto SQL storage. Because of moderate requirements to a database, a decent candidate, namely H2TM, appeared as a good solution.

The JavaFX platform provides a very fast kernel for all graphics operations with scanned images. However, its performance was found unsatisfactory for an image at high resolution. To address this issue, a development team created and implemented very specialized methods to process images of huge size with no delays noticeable by device operator.

Huge size of processed data affected almost every part of the application. To facilitate smooth operation of the device, features of contemporary Java multithreading API were intensively used, thanks to multi-core CPU of the target computer. Finally the application has met a main goal: to provide an image on a screen within a minute, which is an unprecedented level of performance in the industry.

The application provides a very natural way to operate images on a touch screen. Some proven methods were reimplemented from prototype software version but most are new. They include smooth real-time pan and zoom commands (regardless of heavy image size), image repainting and a snapshot feature. But the essence of this version is annotation of an image. Operator has a set of tools to put free line drawings, stick a text note and perform measurements. Multiple snapshots could be made to document important moments of image analysis.


Main view example (test scanner)

pic. Main view example (test scanner)


Results and next steps

The project was implemented successfully. After final testing we made some minor bug fixing and added improvements/enhancements according to the Client’s request.

As a next step during the course of the year the Product is planned to be advanced with Artificial Intelligence and Machine Learning offering capabilities of neural networks to help surgeons assess margins of surgical specimen. And while applying for the Horizon2020 program, the Customer referred to us as to their AI software provider.

Technologies and tools

Operating System: Windows Embedded 8.1 Industry Pro
Software platform: Java SE version 8
GUI platform: JavaFX
Application platform: Spring Boot 1.5
Database: H2 Database
Other 3rd party API’s: Liquibase, Apache FOP
Software development Instruments: IntelliJ IDEA IDE, Gradle, Git

Activation Module for Online Prepay Products

Customer

The customer is a company working in the sphere of gift card solutions.

Objective

The aim was to develop a message broker for gift card transactions, which online sales partners can send after the sales process and route to several integration partners like ePay, BHN and others. The system also holds the activation status of all sold and generated cards to be able to react in the shortest possible timeframe.

Solution

The project started with a deep dive into a business idea after meeting with the customer. The client’s company works in the gift card sphere and the goal was to develop proxy server to handle card transactions.

Gift card companies provide interfaces of web services for communication with the server, but the interfaces are different and the consumer company needs to implement integration with each of them.

The idea of the project was to develop basic web service interface and kernel that can translate requests and send them to the web service of a particular gift card provider.

It has been decided to implement two modules: admin panel and web services.

  • Admin panel is a web application for setting up unit data, managing objects and displaying statistics. This module has been implemented based on Spring MVC and JSP.
  • Web services module is the main application that handles transaction from gift card terminals. It's based on SOAP protocol. Logic includes steps of validation, converting and sending request to the endpoint of the integration partner. Kernel supports about 40 types of transactions.

We’ve developed a reconciliation process which helps to generate the daily report files and send them to the ftp/sftp server of the partner for verification. Most code has been covered with unit tests to have stable functionality.

After the development process the team has been supporting the project and customizing it for customer’s clients.

Technologies and tools

Java, Spring MVC, Spring Security, Spring Boot, REST, SOAP, JPA, Hibernate, Maven, JSP, JavaScript

Next generation enterprise semantic search engine project for a Swiss Start-up company

Customer

The customer is an IT start-up from Switzerland specialized in enterprise search solutions and semantic technologies.

Objective

From the product's perspective the aim was to design a next generation technology to enable enterprises perform semantic search and analysis of heterogeneous and unstructured data and then efficiently organize, classify and turn it into smart content.

For this project realization the client was searching for a dedicated team of innovative and highly-experienced JAVA developers who can enrich the project with their knowledge and expertise. Also the project start was planned very shortly.

Solution

The customer wanted 2-3 extremely experienced specialists to be assigned to their project, and Altabel preselected several candidates. The client decided to start from two dedicated team members and selected two candidatures based on CVs and interviews held; organizational and commercial discussions were conducted very promptly and the agreement was signed soon.

The team of two Senior JAVA developers was set up to work on a dedicated basis. In the project Agile approach to development was broadly used, project management was on the customer's side. Communication and technical discussions were very active during the project and Altabel's team was always providing recommendations on implementation options and technologies to the customer. Visits to the client's and Altabel's premises were arranged to make the project progress even more aggressive ans smooth.

Upon joint work of the client and Altabel's team, the targeted enterprise solution was developed - an intuitive and user-friendly engine. It is cloud-based and indexes and integrates multiple data sources of raw content including cloud-based applications and consolidates information into one single place. The solution provides a bespoke set of semantic services: semantic indexing, FT & concept search, auto-categorization and related content. The engine is available as a standalone platform which can be accessed through web user interface; alternatively the solution natively supports enterprise portals such as Liferay or Magnolia. For custom integrations there is also a full featured REST API to plug the engine on any system within an organization.

Results

The dedicated team of highly experienced JAVA developers was set up for the client on a short notice, and the successful cooperation has lasted for almost 3 years and resulted in development of the next-generation powerful Enterprise Semantic Engine providing a unique and comprehensive set of semantic services. During the project Agile approach was religiously used. With their products, the customer has become a winner of RedHerring Europe, the Jury vote at SemTech, a finalist at TechCrunch50 and the IKS Semantic contest.

Automated MRI data analysis system

Customer

The UK-based innovation driven and agile team, working in partnership with leading academics and clinical specialists and delivering the best medical imaging solutions and expert advice to ensure success of your clinical study.

Objective

To develop specialized software for automated Magnetic Resonance Imaging (MRI) data analysis. The software package is to be used in clinical studies, imaging biomarkers research, clinical trials of inflammatory, cardio and neurologic diseases. The system provides information to accurately quantify treatment changes, categorize drug efficacy, and identify subgroups of patients.

Solution

While computerizing medical image analysis, this unique product distinguishes peculiar imaging biomarkers, thus accelerating the process of customary image interpretation.

It aims at facilitating image analysis workflow seamlessly integrating with major Picture Archiving Systems. After analysis study results are converted into structured reports with images, notes and statistics.

Brief functionality summary:

  • Single/network/cloud based application for both single imaging specialists and imaging departments
  • Highly scalable, web based infrastructure
  • Customizable functionality for image analysis and consequently payment
  • Customizable structured reports containing images, comments and statistics
  • Inter-user communication functionality
  • Toolboxes for 2D, 3D and 4D image analysis and biomarker scoring

At the outset the cooperation negotiations started from discussing setting up a Dedicated Development Team for the Customer - the specialists who would be focused on the client’s project on a full-time dedicated basis. That was especially important since the client’s team core has housed doctors, researches and scientists, while in terms of software development with the course of time they would prefer to completely rely on a nearshore partner like Altabel Group.

As a start point, the candidates for JAVA dev were preselected based on the provided requirements, and they passed interviews successfully. The contract was signed for 2 Senior JAVA back end and front end specialists.

Down the road the team was strengthened with one more Senior JAVA developer as well as QA specialist and Project Coordinator. Additionally the talks have been about entitling even more architecture decisions to the nearshore team making their activities proactive in these terms.

As the result, with such team composition recently the customer has been able to concentrate on the scientific research and product strategy development activities.

Actually while currently the product is applicable partially in the PACS and subcontractors segments, in future it’s planned that the system will be evolving into a comprehensive platform covering the whole anatomy of a clinical trial, from Drug Supply, CRO / CSMO, Legal / Finance, Overall PM, etc, up to embedding Ontology workflow incorporating Artificial Intelligence and Machine Learning (IBM Watson / Google DeepMind, etc).

For example, as the step during the course of the year, it’s expected to add a bunch of intelligence, data mining and text understanding. For this purpose the team is going to be enhanced with Big Data specialists with Machine Learning / AI skills as a plus.

Technologies and tools

Java 7, HTML5 / CSS3, GWTP, AngularJS, Node.js, Spring, Hibernate / JPA2, Oracle / PostgresSQL / Cassandra, Tomcat, PixelMed, Jenkins / TeamCity, JUnit, Mockito / PowerMock, Karma + PhantomJS, JSP, JasperReports, Apache Tiles, d3/nvd3, FusionCharts, ImageJ, Maven, Grunt, Git, SVN, JIRA, Confluence

Population alerting systems

Customer

Norwegian technology company with international operations, an industry leader within the area of critical communication and population alerting systems. The client specializes in creating of solutions for citizen communication and public warning for people’s security, convenience and welfare, being a pioneer in the development of advanced systems for critical messages and having many unique patents known in the industry for their technological and lifesaving capabilities.

Objective

To support the current project and extend the system’s functionalities. The product should be able to notify people about disasters, both natural and manmade, to help to react quickly in affected areas and avoid potential threats through various communication channels, as Voice, SMS, Location based SMS, Email, Fax, Facebook, Twitter, etc.

Team & Cooperation Approach

The customer was looking for an innovative and initiative highly skilled Java Engineer with experience in Ember JS (which was quite a rare framework for Java specialists). In addition to their development center in India the customer was also searching out a reliable partner in Eastern Europe, a well-known location for strong IT specialists along with affordable prices.

The selection process was quite tough, as the client wanted to see only comprehensively advanced specialists on their project. Upon СV review by the customer candidates are supposed to pass a set of tests: mathematical and logic test, programming questions and a short test task on Java. In case a candidate qualifies well, technical interviews with the Product Owner and the Team Lead follow. For our candidature the interviews passed successfully, and the developer joined the project.

On verifying Altabel’s technical competency and business flexibility, the client decided on extension of the team. A couple of other skilled Full-stack Java specialists were added to the team down the road.

Later, to strengthen the customer’s internal team even more, one of our engineers was reassigned from the external team to the internal team who had not had any experience of working with remote specialists before.

The cooperation between our companies has been successfully lasting for more than three years. Periodically in case of skilled resources shortage, the client requests additional hands power from Altabel Group.

Team and model: DDT, 3-6 Senior full-stack JAVA developers.

Solution

The product stack includes several solutions:

  • Population Alert solution - a multi-channel, scalable platform that can be used by one or several disaster management agencies affiliated with governing bodies or by private entities (university campuses, football stadiums, shopping malls, etc) to mitigate disaster risk by timely dissemination of accurate information which helps people react quickly in affected areas and avoid potential threats;
  • Emergency Preparedness suite – a web-based software modules for managing the incident life-cycle including planning for, responding to and recovery from all hazards incident and events;
  • SMS Lifesaver App – a mobile app, that makes it possible for volunteer lifesavers located near a sudden cardiac arrest to be notified, etc.

Technologies and tools

Oracle Java SE version 8, Ember JS