# Import and update shoulderDB Author: Alexandre Terrier, EPFL-LBO Last update: 2019-02-19 ## Project description This repository contains Matlab codes to import anonymised clinical cases in a shoulder database (shoulderDB), and update this database with complementary clinical, radiological, morphological, or biomechanical data. This project is a collaboration between Laboratory of Biomechanical Orthopedics of the Ecole Polytechnique Federal de Lausanne (EPFL-LBO), the Orthopedic Service of the University Hospital of Lausanne (CHUV-OTR), and the Radiological Department of the University Hospital of Lausanne (CHUV-RAD). Matlab codes are tested with version 2018a. A config.txt file can be add in the main directory to locate the shoulderDB, which should be mounted locally. The config file is described and used by function openConfigFile. ## ImportSCase The import code is located in the sub-directory **importSCase**. Its description is detailed there. It currently only work for Windows. ## Update The update of the shoulderDB is performed by the function measureSCase. This function should be run from current directory. The update function is based on the matlab class ShoulderCase. ## Analyse Currently, the analysis is limited to the graphical display of an entry (SCase) of the shoulderDB, with the function plotSCase. ## Updated in 2018 * measureSCase.m: function to measure (and save) SCase (all or part of database) * dicominfoSCase.m: function to get dicom info if SCase, to replace CT/infoCT * listSCase.m: funcion to list SCase in /shoulder/data/ * plotSCase.m: function to plot SCase * csv2xlsSCase.m: fonction to write a xls file from a csv file (for SCase) * statSCase.m: script to perform statistical analyses on SCaseDB * ShoulderCase: directory with classes related to the shoulder cases * log: Directory with log files * segmentation: Directory with functions related to the automatic segementaton of the CT ## Oldies to be rewritten and/or removed * anatomy: Directory with functions related to the anatomical analysis of the shoulder CT * CT: Directory with functions for the reading of dicom field * Generated_Amira_TCL_Scripts: Ditrectory with tcl scripts for Amira, created by matlab functions * muscles: Directory with functions related to the analysis of muscle degeneration * XLS_MySQL_DB: Directory with function related to the access to the MySQL database * CylinderReferences_P403_AmiraCode.dat: To be checked ## To be cleaned * imageToolsExperimentation.m: ?? * Button 1 pushed.ps: ?? * LBODicomViewer.fig: ?? * LBODicomViewer.m: ?? * tempInfo.mat: ?? ## To do * Link to the automated segmentation * R/L identification at import * Glenoid type automated identification * Batch update * Automated muscle degeneration * Humerus bone quality * Deltoid Tuberosity Index * Restore link with MySQL * Link with musculoskeletal model * Web interface for import, update, and analyse ## Main repository should not be divided (it seems to increase complexity without gain) It might still be organized as folder, well documented in a README * One folder for class ShoulderCase * One folder for importSCase * One folder for measureSCase * One folder for anatomy (to be removed) * One folder for CT (to be removed) * One folder for muscles (integrated to class and measure, and removed) * One folder for XLS_MySQL_DB (to be integrated to import and measure, and removed) * One folder for other common files ## Contributors * Julien Ston * Antoine Dewarrat * Raphael Obrist * Killian Cosendey * Valérie Malfroy Camine * Jorge Solana-Muñoz * Bharath Narayanan * Paul Cimadomo ## Current Files and Folders at 2019.04.03, explained by JSM ## Files - *config.txt*: used by some Matlab scripts to find the working directory (usually data or dataDev). Needed when running - *csv2xlxSCase.m*: (not mine) Matlab script to transform CSV files into XLS files - *dicominfoSCase.m*: Matlab script used after new SCase importations. Check utility in ImportSCase SOP - *LBODicomViewer.fig*: (don't know this file) - *LBODicomViewer.m*: (don't know this file) - *list.txt*: temporary text file summarizing this directory content - *listSCase.m*: Matlab script that create a list of SCases - *listSCase_before20190211.m*: version of *listSCase.m* previous to 2019.02.11 (don't know the differences) - *loadDicomCTscan*: (don't know this file) - *measureSCase.m*: Matlab Script used at the end of Anatomical Measurement process (check SOP for more details) - *openConfigFile.m*: Matlab Script to read and use the text file *configFile* - *openConfigFile_before20190211*: version of *openConfigFile.m* previous to 2019.02.11 (don't know the differences) - *openLogFile.m*: (don't know this file) - *plotSCase.m*: (don't know this file) - *readDicomMetaData*: (maybe old file not longer needed) not used in *importSCase.m*, neither in *measureSCase.m* - *README.md*: This is this current file - *README_importSCaseDev_fServer.md*: Temp notes, removable - *statSCase.m*: (don't know this file) - *tempInfo.mat*: temporal file created by ImportSCase (removable) ## Directories - **anatomy**: folder containing *anatomy* measurement scripts - **CT**: rests of old *dicomCopier.m*. Old versions of current *importSCase.m*. Removable - **Generated_Amira_TCL_Scripts** this directory is used to store TCL scripts - **ImportSCase**: contains scripts needed to import new SCases into the shoulder database - **log**: contains *log* text files from some of the Matlab scripts in the current directory (*dicominfoSCase*, *listSCase*, *measureSCase* and *segmentScapula*) for debugging purposes - **muscles**: contains Matlab scripts for muscles calculations - **ShoulderCase**: contains Matlab scripts, unkown to JSM - **upsert**: I don't recognize this folder and I don't understand why it shows that I have modify it - **XLS_MySQL_DB**: contains Matlab scripts, unkown to JSM