CRUK | StratMed
- Project Category: .Net | Bootstrap | AngularJS
- Client: Cancer Research UK
- Start Date: May 2014
- End Date: Sept 2014
- Creation and management of treatment centres
- Import of anonymized patient data
- Matching of tumor DNA to targeted treatment
- Outcome auditing and reporting
- User management for external users
- IE6 no JS implementation for the NHS
Cancer Research UK need no introductions as Europes largest charity. Their research is only one strand of the work they do. So you've got all these amazing new drugs, now you need to get them into patients but more importantly you need to get them in to the right patient. Stratified medicine is the new way to treat cancer. The old ways, chemotherapy and radiotherapy, are like using small thermonuclear devices to kill a platoon of the enemy, this is war you know. The new way are surgical laser guilded munitions that kills only the bad guys. The tumor is gene sequenced and drug selected that only targets the tumor and there is a lot less collateral damage.
While the StratMed team had decided to go down the agile road there were a couple of stumbling blocks. The first one to sort out was the absence of a estimation feedback loop in the sprint retrospectives. This had meant no sprints were atomic and users were not getting stuff when we said, this was easily solved.
Fortunately the team had the foresight to implement some engineering practice inside scrum and were making a very good attempt at TDD red/green refactoring. They had also started taking the functional spec and creating BDD feature in Fitnesse, however it was very time consuming with upto 30% of time per feature taken up implement acceptance test. As these test were engineer led there was no need for Fitnesse and the test were moved to SpecFlow on my recommendation, much time was saved.
I know, IE6 with no JS. This wasn't as bad as it sounds as it was just flat HTML round tripping that was served by MVC 5 controllers. As the IE6 version was for use by the NHS, only a subset of functionality was needed there. I joined the project about 25% into the IE6 implementation which we quickly finished off and moved onto the main bulk of a the implementation.
The previous project the team had delivered had used KendoUI MVVM implementation served by MVC controllers pumping out JSON. While the Dataviz capability of Kendo were not in question the MVVM is not a good one. At this point I presented AngularJS/Jasmine/Angular-Kendo to the team and this was promptly adopted not just on StratMed but all future projects too. The MVC controller were substituted with a web API and the rest was plain sailing, almost.
The last stumbling block to over come was the actual gene matching process. There were many suggestion made by scientist made over a number of months. With the project on the brink of being canned I took matters into my own hands. I contacted HUGO Gene Nomenclature Committee for advice. As it turn out there are a number of genes to target, a number of prohibited genes that must not be targeted and one or more missing proteins that must be supplied. It turned out to be a 4 line linq statement, never send a scientist to do an engineers job.
- .Net 4.5
- Web Api 2.2
- Entity Framework 6
- Sql Server 2012
- Fake It Easy
- AngularJS 1.3
Here are some projects that use similar technologies