3. Execution



1.1.    Identify the most competitive supplier
The most competitive in terms of both price and reliability. I had a disappointing experience with a company on our list of appointed suppliers. Parts I ordered didn't arrive and parts that did needed at times had to be replaced. Therefore I decided to order from the slightly more expensive but more reliable supplier (Misco), in order to prevent any delays with the project.
1.2.    Place orders
This was a simple matter once I had identified a cost effective and reliable supplier.
1.3.    Assemble components
I was able to assemble the parts as they arrived to prevent a delay when all parts were received.
1.4.    Test
The internal temperatures remained very low, with everything properly cooled. I needed to replace couple of hard drives as they had bad sectors but otherwise everything went without major problems.
1.5.    Implement basic software (operating systems and software)
There were no problems here either. I tweaked the systems to get the best results in every area of operation and then scanned for security holes with pen-testing software: OpenVAS and Nmap vulnerability scanners.
1.6.    Implement networking
I had to spend considerable time here, generating encryption keys, implementing encryption protocols, setting up strict firewall rules and making everything work together.
Transfer procedures between locations made me angaged in writing guides and training staff on how to extract data from peripheral devices (specialised medical devices that collect data in various formats – vendor support is minimal or nonexistent.). I had to write programs and scripts to upload files that could be converted from other formats to text format and then uploaded onto the database, also to organise all files in a certain way so they could be easily uploaded onto an encrypted hard drive, files older than one week needed to be moved to another directory and renamed, so they would be stored out of reach for security reasons. Finally, I developed procedures to ensure that files would not get corrupted or damaged in any way when uploaded onto the second server.
My goal at this point was to keep all available data (except for the binary files) in one centralised database. To achieve this I had to write programs to automate processing feeds from peripheral devices in such a way, that they would be easily populated into the database. Original copies of feeds are stored in a protected directory on the server.

PDF file describing geographical allocation of Projects' infrastructure (73 KB)






Graphical representation of infrastructure located in UD (67 KB)






Graphical representation of infrastructure located in NIHSC (74 KB) 





1.7.    Design, develop, test and implement software to support specific project requirements
I mentioned that I had to do some program design, coding, testing and implementing.
The major areas were:
             -      Database design, development, testing process and implementation.
-          Data file collation, rotation, renaming, copying to a backup directory and propagation to the database.
-          Database and server backup on a daily basis (having a binary log in storage at all times).
-          Error reporting, so I can receive daily reports from servers via e-mail when possible (from networked devices) and having the Munin and Nagios in place for monitoring
-          A program to download a weekly feed of demographic information about participants from RP over a secure channel, decrypt encrypted archive, populate data into the database server, run additional queries on the server to make the data available to clerical staff, send emails informing the relevant parties about new data feed arrival, clean up the local directory by renaming and copying downloaded files to a backup location and clean source files from the remote directory, so our colleagues in Ipsos-MORI would know, that we had downloaded files.
-          PHP/MySQL web interface over https protocol (over 900 PHP files and scripts plus design of the database) for clinical assessment data entry, so nurses could enter their data securely.






-          NICOLA website development as detailed previously.
-          Programs to make multi layer selective mail merges, so one participant in the study gets a letter about one thing, another gets a letter about the something else depending on some conditions, yet another receives a letter about yet another thing and another does not receive anything as he/she refused to take part in any further study, everything being depending on many factors and conditions.  In this case everything relies on the data in the demographics database. The script also ensures the correct usage of lowercase and uppercase characters during addressing process.
-          Design a procedure for effective and secure participant data sharing between centres, so nursing staff would know exactly who and when is expected for Clinical health assessment. At this point I considered few options including VMware Zimbra Collaboration Suite CRM which I fully implemented and abandoned due to its size and high system utilisation in favour of direct access from Belfast Trust to CAPI database using CITRIX gateway and also provided by QUB, MS SharePoint based document sharing. I decided to use SharePoint as a temporary solution until Belfast Trus would be connected to the Academic Network. Then, I would create restricted CAPI database access for staff located in NIHSC (Belfast Trus) to maintain participant appointment system.

ERR (enhanced entity-relationship) diagram of Clinical Health Assessment Database (885 KB)

Data Dictionary for Clinical Health Assessment Database (1 MB)

ERR (enhanced entity-relationship) diagram of CAPI Demographics database (226 KB)
1.8.    Documentation
I have produced full documentation to make the system as easy to use as possible, especially as most of the end users will not be IT professionals. This included producing many SOP sheets (Standard Operation Procedures) using simple language, using plenty of screenshots for demonstration purposes and also supporting everything with hands on training. For anyone succeeding me in looking after this project I have fully documented the script files and all program source code. This blog entry could also be useful as an overview.

No comments:

Post a Comment