Kofax RPA

·

·

Kofax RPA

From December 2019 to current

Pilot

I was the technical lead on the implementation and roll-out of the Kofax RPA system within a large NHS trust. This involved the design of system architecture, implementation of the system itself, and the introduction of several automated business processes within the organisation, resulting in a successful pilot.

Setting up the system required the configuration of several server technologies, including Apache Tomcat, Microsoft IIS, Microsoft SQL Server, SQL Server Reporting Services, industry standard TLS encryption, multiple Desktop Automation devices and many others.

I was also responsible for the development of several proof-of-concept robots, and introduced standard development processes for an RPA team to follow.

Business as Usual

My day to day responsibilities include:

  • Routine maintenance and monitoring of the entire RPA system
  • Checking various system reports
  • Fixing technical issues
  • Overseeing server updates and patching
  • Responding to user queries
  • Managing requests for new robots and changes
  • Continued development of new robots, improvements and changes

When developing RPA robots, I am responsible for driving business change in other departments and encouraging end users to optimise their existing manual processes. This has led to the realisation of many benefits, including:

  • Improved patient care
  • Time cost savings
  • Improved data quality
  • Consistency across multiple hospital sites

Robots

EvolveToPAS

This is a robot that will process referrals for elective surgery and add patients to waiting lists.

IntranetToPAS

Similar to EvolveToPAS, this robot will process referrals for elective endoscopy, adding patients to waiting lists.

eRSClinicPrep

This is a robot that will automatically download referrals from the national e-RS system and add them to the patient record.

eRSController

This is a robot that will handle any automation required in the national e-RS system, and has been developed as a single controller for other robots that perform actions in e-RS.

SCOPASCleanse

This was a one-off robot to automate the data cleansing of over half a million patient records.

SalfordTheatreMan

This robot copies operating theatre bookings from one system to another, and has helped to improve patient care by improving data quality.

SalfordAdHocRequests

This is a robot and a web application which replaces a generic mailbox with a dedicated workflow application, and automates the creation of ad-hoc outpatient clinics.

EmailAddressUpdateBRO

TODO description

Extending The System

To extend the RPA system, and to more easily integrate with other systems within the organisation, I have developed several programs, services and interfaces:

HL7Receiver

This is a Windows service that provides real-time patient data to the RPA database via an HL7 interface, and has been written in C# using the .NET Framework.

RESTRobotExecutor

This is a RESTful API that allows for on-demand robot execution from other systems, allowing for greater flexibility when designing automations. This is a Windows service that has been written in C# using the .NET Framework.

TelnetProxyService

This is another Windows service that acts as a proxy for our Patient Administration System (PAS), which sits on another corporate network. This service allows for seamless access to a remote system, and is also written in C# using the .NET Framework.

RPADACertificateRenewal

This is a C# .NET application which automates the renewal of self-signed certificates, which are widely used throughout the RPA system. This program automates a complex and error-prone maintenance task, and has saved many hours of downtime.

ScreenRecorder

This is a C# .NET application which will record a computer’s screen while a robot is running, and allows us to more easily debug problems. This was quickly written as a free in-house alternative to the costly solutions available on the internet.

Technologies

During the implementation of this system, I have used many different technologies for different problems and tasks. While Kofax RPA is great for developing automations, additional technologies were understandably required in order to meet the complex requirements of the organisation, and to ensure a system that was deemed fit for purpose.

Microsoft .NET Framework / C#

I have extensively used the .NET Framework throughout the RPA system as a go-to framework for most development tasks. This includes several Windows services, automations and maintenance tasks.

I also found that while the toolkit provided by Kofax RPA is great for automating tasks where no back-end interface is available (i.e. Desktop Automation), it did struggle with complex processing and data gathering tasks that would be more suited to a scripting or programming language. To work around this, I have used the .NET Framework wherever possible to improve performance and efficiency.

Microsoft SQL Server

As with many other systems, the RPA system also uses a Microsoft SQL Server database. As a result, I have gained several years of experience working with T-SQL and managing various Microsoft SQL Servers.

Microsoft IIS

I have used Microsoft Internet Information Services (IIS) for hosting various different websites and services in the past. In Kofax RPA, I used IIS in some automations to develop .NET forms and workflow applications.

Apache Tomcat

The Kofax RPA Management Console runs in an Apache Tomcat environment. During the implementation of the system, I was responsible for the installation and configuration of Apache Tomcat and the RPA Management Console.

Nginx

To improve security, I have used Nginx as a reverse proxy to encrypt any HTTP services wherever HTTPS isn’t available or feasible. As a result, this has become standard good practice within the team, ensuring that HTTP is not used anywhere within the RPA system.

HL7

I developed the HL7Receiver for the RPA system, which is a Windows service that provides real-time patient information to the RPA database, via an HL7 interface. This is something that most clinical systems within the organisation have, and has proven to be invaluable when developing robots that require access to real-time patient data.

OpenSSL

The RPA system has several Desktop Automation servers where robots are able to perform actions in a desktop environment. For additional security, I decided to use unique self-signed certificates, however this resulted in a complex renewal process. For example, here’s a diagram illustrating just one set of certificates:

I used OpenSSL to generate these certificates, and later developed the RPADACertificateRenewal script, which completely automates the renewal process.

TODO Challenges


Leave a Reply

Your email address will not be published. Required fields are marked *