comparison Core/DicomNetworking/Internals/StoreScp.cpp @ 3786:3801435e34a1 SylvainRouquette/fix-issue169-95b752c

integration Orthanc-1.6.0->SylvainRouquette
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 19 Mar 2020 11:48:30 +0100
parents 58f92b1c8061
children
comparison
equal deleted inserted replaced
3785:763533d6dd67 3786:3801435e34a1
1 /** 1 /**
2 * Orthanc - A Lightweight, RESTful DICOM Store 2 * Orthanc - A Lightweight, RESTful DICOM Store
3 * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics 3 * Copyright (C) 2012-2016 Sebastien Jodogne, Medical Physics
4 * Department, University Hospital of Liege, Belgium 4 * Department, University Hospital of Liege, Belgium
5 * Copyright (C) 2017-2019 Osimis S.A., Belgium 5 * Copyright (C) 2017-2020 Osimis S.A., Belgium
6 * 6 *
7 * This program is free software: you can redistribute it and/or 7 * This program is free software: you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License as 8 * modify it under the terms of the GNU General Public License as
9 * published by the Free Software Foundation, either version 3 of the 9 * published by the Free Software Foundation, either version 3 of the
10 * License, or (at your option) any later version. 10 * License, or (at your option) any later version.
249 */ 249 */
250 OFCondition Internals::storeScp(T_ASC_Association * assoc, 250 OFCondition Internals::storeScp(T_ASC_Association * assoc,
251 T_DIMSE_Message * msg, 251 T_DIMSE_Message * msg,
252 T_ASC_PresentationContextID presID, 252 T_ASC_PresentationContextID presID,
253 IStoreRequestHandler& handler, 253 IStoreRequestHandler& handler,
254 const std::string& remoteIp) 254 const std::string& remoteIp,
255 int timeout)
255 { 256 {
256 OFCondition cond = EC_Normal; 257 OFCondition cond = EC_Normal;
257 T_DIMSE_C_StoreRQ *req; 258 T_DIMSE_C_StoreRQ *req;
258 259
259 // assign the actual information of the C-STORE-RQ command to a local variable 260 // assign the actual information of the C-STORE-RQ command to a local variable
292 // define an address where the information which will be received over the network will be stored 293 // define an address where the information which will be received over the network will be stored
293 DcmDataset *dset = dcmff.getDataset(); 294 DcmDataset *dset = dcmff.getDataset();
294 295
295 cond = DIMSE_storeProvider(assoc, presID, req, NULL, /*opt_useMetaheader*/OFFalse, &dset, 296 cond = DIMSE_storeProvider(assoc, presID, req, NULL, /*opt_useMetaheader*/OFFalse, &dset,
296 storeScpCallback, &data, 297 storeScpCallback, &data,
297 /*opt_blockMode*/ DIMSE_BLOCKING, 298 /*opt_blockMode*/ (timeout ? DIMSE_NONBLOCKING : DIMSE_BLOCKING),
298 /*opt_dimse_timeout*/ 0); 299 /*opt_dimse_timeout*/ timeout);
299 300
300 // if some error occured, dump corresponding information and remove the outfile if necessary 301 // if some error occured, dump corresponding information and remove the outfile if necessary
301 if (cond.bad()) 302 if (cond.bad())
302 { 303 {
303 OFString temp_str; 304 OFString temp_str;