⬆️ ⬇️

Imagine Cup 2014 through the eyes of C4L

Hello, dear Habr!



Here is the story of the C4L team, the National Winner of the Imagine Cup 2014 in the Social Projects category!



Idea



It all started with the idea of ​​two years ago - to create a system that allows you to monitor the state of the blood circulation of the body and, as a result, save millions of lives. Everyone knows that a stroke does not cause the best effects (disability and mortality).

')

We decided not to remain indifferent and began to create our own system. Her idea is that anyone can shoot a 15-second video and get information about their condition. And someone else can do it. For example, you worry about the health of your relatives, then you can install our application on their PC and ask them to periodically check on it.

The trick of the idea is that a standard camera can track changes in blood circulation that are invisible to the human eye. Our system, based on our unique mathematical apparatus, tracks these changes, analyzes them and displays the result not only numerical, but also graphical and diagrammatic.



Implementation



The development of ARGUS is planned in 5 directions, but we placed greater emphasis on one direction - the Mobile version. The user experience with the ARGUS mobile app is simple:



shooting a face (gives more complete information);

shooting a finger (gives general information);





Results are displayed not only by numerical indicators, but also by graphs. The user can also save all the results in the Microsoft Health Vault and give them access to their primary care physician.



ARGUS mobile client



The mobile client is designed for the Windows Phone 8 platform. The application records for a duration of 18 seconds (15 is enough, but 3 seconds is enough), after which the user selects the key points to be surveyed. When the points are selected, the data is sent to the Windows Azure Storage, and the data processing service begins its mysterious operation.

image

Screenshot video recording screen



The service, by the way, is also located in Windows Azure, it enables instant data exchange between the source data storage that came from the client software and the virtual machine on which the service “runs”. The service extracts the necessary data for processing (which is the secret) from the video, analyzes the data, counts the pulse, determines the difference between the venous and arterial pulses of vases, builds pulse wave graphs for each of the points, gives a conclusion about the stability of the pulse (how it all happens, we also do not say).

At this time, the client sends requests to the service like “well, are you there soon?” (Or “the result is ready?”), When processing is completed, the service sends the client the result that can be seen on the screen.

image

Screenshot of survey results



Below is the code to send data to the repository (there is nothing secret here, it is almost the code from the examples from Microsoft):

//   string AccountKey = ; string AccountName =  string ContainerName = ; //     CloudBlobClient blobStorage; //  Uri baseUri = new Uri(string.Format("http://{0}.blob.core.windows.net", AccountName)); //  StorageCredentials cred = new StorageCredentials(AccountName, AccountKey); blobStorage = new CloudBlobClient(baseUri, cred); //  CloudBlobContainer blobContainer = blobStorage.GetContainerReference(ContainerName); //      azure CloudBlockBlob blobFromSASCredential = blobContainer.GetBlockBlobReference(isoVideoFileName);//   isoVideoFile = new IsolatedStorageFileStream(storageFile.Path, FileMode.Open, FileAccess.Read, IsolatedStorageFile.GetUserStoreForApplication()); byte[] fileContent = new byte[isoVideoFile.Length]; await isoVideoFile.ReadAsync(fileContent, 0, fileContent.Length); HashSet<string> blocklist = new HashSet<string>(); var fileBlocks = GetFileBlocks(fileContent, ref countOfFileBlocks); foreach (FileBlock block in fileBlocks) { await blobFromSASCredential.PutBlockAsync( block.Id, new MemoryStream(block.Content, true), null); blocklist.Add(block.Id);} await blobFromSASCredential.PutBlockListAsync(blocklist); 




The bottom line is that we divide the files into parts and send them, and then we glue them together.

  FileBlock public class FileBlock { public string Id { get; set; } public byte[] Content { get; set; } } 




Blocking method:

 private IEnumerable<FileBlock> GetFileBlocks(byte[] fileContent, ref double count) { HashSet<FileBlock> hashSet = new HashSet<FileBlock>(); if (fileContent.Length == 0) return new HashSet<FileBlock>(); int blockId = 0; int ix = 0; int currentBlockSize = MaxBlockSize; while (currentBlockSize == MaxBlockSize) { if ((ix + currentBlockSize) > fileContent.Length) currentBlockSize = fileContent.Length - ix; byte[] chunk = new byte[currentBlockSize]; Array.Copy(fileContent, ix, chunk, 0, currentBlockSize); hashSet.Add( new FileBlock() { Content = chunk, Id = Convert.ToBase64String(System.BitConverter.GetBytes(blockId)) }); ix += currentBlockSize; blockId++; } count = blockId; return hashSet; } 




Also clinical trials of the application were carried out:





Prototypes



To demonstrate all the capabilities of our ARGUSa, we, together with cool designer Andrei Vaskov, developed models of two devices:

1. smartDS is a docking station for a Mobile device, this is important for patients with neurological diseases and those who have already had a stroke;

2. smartEYE is a device that allows you to make a complete overview of the entire room where it is installed. It is installed servy, board and camera.

After that, we printed all the necessary blanks on a 3D printer with the support of CyberCom and began to assemble our future prototypes. In the assembly, we were helped by the designers of the robot snow blower and the promoter robot Promobot.

Prototype smartDS:

image

Ready and working smartEYE prototype:





Imagine Cup 2014



Our C4L team decided to participate in the Imagine Cup 2014 to show what progress we have made from the past of the Imagine Cup, how we were able to translate our idea into a working prototype, what ideas of use cases have appeared and how it can more globally affect our main goal - to donate a chance to live and enjoy this life!

Our team arrived at IC 2014 in February. We passed the correspondence regional stage and got to the Regional final, which took 2nd place, but in view of our cool idea, we were invited to the Russian final! We did an excellent job with the Russian finals - we won in the Social Projects category and took a special prize from Intel!

image

Now we have an online final, where we will choose a team that will represent our country at the International Final of the Imagine Cup 2014 in Seattle!

We are doing our best to go The International final of the 2014 Imagine Cup by Microsoft. We hope you will be able to get in on the badges - NEVER GIVE UP!

C4L - We give YOUR Chance 4 Life!

Source: https://habr.com/ru/post/222739/



All Articles