metadata_t * getMetadata(const char *fileName) { metadata_t *mdata; if (metadataFromProgram) { if ((mdata = metadata_program(fileName, nFlag)) == NULL) return (NULL); if (!metadata_program_update(mdata, METADATA_ALL)) { metadata_free(&mdata); return (NULL); } } else { if ((mdata = metadata_file(fileName, nFlag)) == NULL) return (NULL); if (!metadata_file_update(mdata)) { metadata_free(&mdata); return (NULL); } } return (mdata); }
bool PatientTreeModel::Create(Patient data) { //Calculate Patient_ID = md5(datetime + patient:name) QString raw_id = QDateTime::currentDateTime().toString() + data.name() + data.surname(); QString patient_id = QString(QCryptographicHash::hash(raw_id.toAscii(), QCryptographicHash::Md5).toHex()); data.set_id(patient_id); //Create directory ./data/patients/Patient_ID QDir patient_dir(root_path_ + patient_id); if (!patient_dir.exists()) { if (!patient_dir.mkpath(".")) return false; } // Create directory for patient's scans ./data/patients/Patient_ID/scans QDir scans_dir(root_path_ + patient_id + "/scans"); if (!scans_dir.exists()) { if (!scans_dir.mkpath(".")) return false; } //Create patient's metadata file in ./data/patients/Patient_ID/metadata.json QFile metadata_file(root_path_ + patient_id + "/metadata.json"); if (!metadata_file.open(QIODevice::WriteOnly)) return false; metadata_file.write(QtJson::serialize(data.AsJsonObject())); metadata_file.close(); patients_.push_back(data); // Rebuild tree model clear(); Build(); return true; }