comparison Plugins/Engine/OrthancPluginDatabase.cpp @ 3082:847a0ed92654 db-changes

new extension for database plugin SDK: createInstance
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 04 Jan 2019 13:52:34 +0100
parents 1a75595d8e44
children 195ba4cbac3f
comparison
equal deleted inserted replaced
3081:2e5970ddcfeb 3082:847a0ed92654
1193 IDatabaseWrapper::CreateInstanceResult& result, 1193 IDatabaseWrapper::CreateInstanceResult& result,
1194 int64_t& instanceId, 1194 int64_t& instanceId,
1195 const std::string& patient, 1195 const std::string& patient,
1196 const std::string& study, 1196 const std::string& study,
1197 const std::string& series, 1197 const std::string& series,
1198 const std::string& instance, 1198 const std::string& instance)
1199 bool overwrite) 1199 {
1200 { 1200 if (extensions_.createInstance == NULL)
1201 // TODO optimized version 1201 {
1202 1202 // Fallback to compatibility mode
1203 return CompatibilityDatabaseWrapper::CreateInstance( 1203 return CompatibilityDatabaseWrapper::CreateInstance
1204 result, instanceId, patient, study, series, instance, overwrite); 1204 (result, instanceId, patient, study, series, instance);
1205 }
1206 else
1207 {
1208 OrthancPluginCreateInstanceResult output;
1209 memset(&output, 0, sizeof(output));
1210
1211 CheckSuccess(extensions_.createInstance(&output, payload_, patient.c_str(),
1212 study.c_str(), series.c_str(), instance.c_str()));
1213
1214 instanceId = output.instanceId;
1215
1216 if (output.isNewInstance)
1217 {
1218 result.isNewPatient_ = output.isNewPatient;
1219 result.isNewStudy_ = output.isNewStudy;
1220 result.isNewSeries_ = output.isNewSeries;
1221 result.patientId_ = output.patientId;
1222 result.studyId_ = output.studyId;
1223 result.seriesId_ = output.seriesId;
1224 return true;
1225 }
1226 else
1227 {
1228 return false;
1229 }
1230 }
1205 } 1231 }
1206 1232
1207 1233
1208 void OrthancPluginDatabase::LookupIdentifier(std::list<int64_t>& result, 1234 void OrthancPluginDatabase::LookupIdentifier(std::list<int64_t>& result,
1209 ResourceType level, 1235 ResourceType level,