2016年6月29日星期三

Web Application - - Medicurator



I use Maven-Tomcat7-plugin to implement a website.

This web application is for user to consume the Medicurator.

It will run at http://localhost:2222/index

It contains

  • Signup 
  • Login
  • Logout
  • personal page which lists all the replicaset
  • function: 
    • add a replicaset
    • add a dataset
    • delete a dataset
    • download a dataset
To add:
  1. All the images are organized by hierarchy, which will be showed directly level by level to help the potential user easily get access to what they want.
  2. The implementation is relatively robust. It won't be influenced by the collapse of the server, which means it will remember all the users' information no matter what happened to the server.
Further to learn about this:

https://bitbucket.org/BMI/medicurator

 

2016年6月8日星期三

The code hierarchy of MediCurator version 1 (before mid evaluation)

/medicurator/src/main/java/edu/emory/bmi/medicurator/
.
├── dupdetect     ----------------- Near-duplicate detection module
│   │
│   ├── DetectImage.java    ----- Detect duplicate image pairs
│   │
│   ├── DetectMetadata.java  ----- Detect near-duplicate metadata pairs
│   │
│   ├── DupDetect.java   --------- Entry of the detection module
│   │
│   ├── DuplicatePair.java  ------ Define the data type of duplicate pair
│   │
│   └── Verify.java    ---------- Check if a pair is really near-duplicate


├── general    -------------------- Define the abstract data structures
│   │
│   ├── DataSet.java  ------------ A DataSet may contains several Images
│   │                      and sub DataSets. Maintained as a tree.
│   │
│   ├── DataSource.java  --------- DataSource has a root DataSet
│   │
│   │
│   ├── Metadata.java  ----------- Metadata is a collection of key-value
│   │                      pairs Both of key and value are String.
│   │
│   ├── ReplicaSet.java  --------- ReplicaSet contains many Datasets. The
│   │                      DataSets might from different DataSource
│   │
│   └── User.java  --------------- User has username and password as well
│                          as several ReplicaSets.

├── image  ------------------------- Various image types
│   │
│   ├── DicomImage.java  --------- Implementation of DICOM image type.
│   │
│   └── Image.java  -------------- The abstraction of image, a image is
│                          consists of a Metadata and a byte[] of
│                          raw image data.


├── infinispan   ------------------- Contact with Infinispan
│   │
│   ├── ID.java  ----------------- Put and get various data with data id
│   │
│   ├── Manager.java  ------------ The global only DefaultCacheManager
│   │
│   └── StartInfinispan.java  ---- Just start a Infinispan node


├── storage   --------------------- Persist storage
│   │
│   ├── HdfsStorage.java   ------ (TODO)store to HDFS
│   │
│   ├── LocalStorage.java  ------ Store to local disk
│   │
│   └── Storage.java   ---------- Interface of storage, save and load


└── tcia   ------------------------ Implementation of TCIA data source
    │
    ├── TciaAPI.java  ----------- Implementation of TCIA RESTful API
    │
    ├── TciaDataSet.java  ------- DataSet
    │
    ├── TciaDataSource.java  ---- DataSource
    │
    ├── TciaHierarchy.java  ----- Five hierarchy of TCIA DataSet
    │  
    └── TciaQuery.java  --------- Generate and send request with HTTPS get