comparison OrthancServer/LuaScripting.cpp @ 3187:4bbadcd03966

refactoring retrieval of metadata from database
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 04 Feb 2019 12:06:19 +0100
parents 4e43e67f8ecf
children dd1e68f2d0c0
comparison
equal deleted inserted replaced
3184:5d1f5984dc41 3187:4bbadcd03966
162 { 162 {
163 return; 163 return;
164 } 164 }
165 } 165 }
166 166
167 Json::Value tags, metadata; 167 Json::Value tags;
168 if (that.context_.GetIndex().LookupResource(tags, change_.GetPublicId(), change_.GetResourceType()) && 168
169 that.context_.GetIndex().GetMetadata(metadata, change_.GetPublicId())) 169 if (that.context_.GetIndex().LookupResource(tags, change_.GetPublicId(), change_.GetResourceType()))
170 { 170 {
171 LuaScripting::Lock lock(that); 171 std::map<MetadataType, std::string> metadata;
172 172 that.context_.GetIndex().GetAllMetadata(metadata, change_.GetPublicId());
173 if (lock.GetLua().IsExistingFunction(name)) 173
174 Json::Value formattedMetadata = Json::objectValue;
175
176 for (std::map<MetadataType, std::string>::const_iterator
177 it = metadata.begin(); it != metadata.end(); ++it)
174 { 178 {
175 that.InitializeJob(); 179 std::string key = EnumerationToString(it->first);
176 180 formattedMetadata[key] = it->second;
177 LuaFunctionCall call(lock.GetLua(), name); 181 }
178 call.PushString(change_.GetPublicId()); 182
179 call.PushJson(tags["MainDicomTags"]); 183 {
180 call.PushJson(metadata); 184 LuaScripting::Lock lock(that);
181 call.Execute(); 185
182 186 if (lock.GetLua().IsExistingFunction(name))
183 that.SubmitJob(); 187 {
188 that.InitializeJob();
189
190 LuaFunctionCall call(lock.GetLua(), name);
191 call.PushString(change_.GetPublicId());
192 call.PushJson(tags["MainDicomTags"]);
193 call.PushJson(formattedMetadata);
194 call.Execute();
195
196 that.SubmitJob();
197 }
184 } 198 }
185 } 199 }
186 } 200 }
187 }; 201 };
188 202