comparison OrthancServer/Plugins/Engine/OrthancPlugins.cpp @ 4392:3af1d763763a

confining Json::Reader and Json::*Writer into Toolbox
author Sebastien Jodogne <s.jodogne@gmail.com>
date Mon, 21 Dec 2020 18:09:47 +0100
parents 79ef2b6d8e76
children f7104e9d044c
comparison
equal deleted inserted replaced
4391:0c4ff5609548 4392:3af1d763763a
2668 return; 2668 return;
2669 2669
2670 case _OrthancPluginService_GetInstanceJson: 2670 case _OrthancPluginService_GetInstanceJson:
2671 case _OrthancPluginService_GetInstanceSimplifiedJson: 2671 case _OrthancPluginService_GetInstanceSimplifiedJson:
2672 { 2672 {
2673 Json::StyledWriter writer;
2674 std::string s; 2673 std::string s;
2675 2674
2676 if (service == _OrthancPluginService_GetInstanceJson) 2675 if (service == _OrthancPluginService_GetInstanceJson)
2677 { 2676 {
2678 s = writer.write(instance.GetJson()); 2677 Toolbox::WriteJson(s, instance.GetJson(), false /* styled writer */);
2679 } 2678 }
2680 else 2679 else
2681 { 2680 {
2682 Json::Value simplified; 2681 Json::Value simplified;
2683 Toolbox::SimplifyDicomAsJson(simplified, instance.GetJson(), DicomToJsonFormat_Human); 2682 Toolbox::SimplifyDicomAsJson(simplified, instance.GetJson(), DicomToJsonFormat_Human);
2684 s = writer.write(simplified); 2683 Toolbox::WriteJson(s, simplified, false /* styled writer */);
2685 } 2684 }
2686 2685
2687 *p.resultStringToFree = CopyString(s); 2686 *p.resultStringToFree = CopyString(s);
2688 return; 2687 return;
2689 } 2688 }
2880 Json::Value json; 2879 Json::Value json;
2881 instance.GetParsedDicomFile().DatasetToJson( 2880 instance.GetParsedDicomFile().DatasetToJson(
2882 json, Plugins::Convert(p.format), 2881 json, Plugins::Convert(p.format),
2883 static_cast<DicomToJsonFlags>(p.flags), p.maxStringLength); 2882 static_cast<DicomToJsonFlags>(p.flags), p.maxStringLength);
2884 2883
2885 Json::FastWriter writer; 2884 std::string s;
2886 *p.targetStringToFree = CopyString(writer.write(json)); 2885 Toolbox::WriteJson(s, json, true /* fast */);
2886 *p.targetStringToFree = CopyString(s);
2887 return; 2887 return;
2888 } 2888 }
2889 2889
2890 case _OrthancPluginService_GetInstanceDicomWebJson: 2890 case _OrthancPluginService_GetInstanceDicomWebJson:
2891 case _OrthancPluginService_GetInstanceDicomWebXml: 2891 case _OrthancPluginService_GetInstanceDicomWebXml:
3377 3377
3378 Json::Value json; 3378 Json::Value json;
3379 dicom->DatasetToJson(json, Plugins::Convert(p.format), 3379 dicom->DatasetToJson(json, Plugins::Convert(p.format),
3380 static_cast<DicomToJsonFlags>(p.flags), p.maxStringLength); 3380 static_cast<DicomToJsonFlags>(p.flags), p.maxStringLength);
3381 3381
3382 Json::FastWriter writer; 3382 std::string s;
3383 *p.result = CopyString(writer.write(json)); 3383 Toolbox::WriteJson(s, json, true /* fast */);
3384 *p.result = CopyString(s);
3384 } 3385 }
3385 3386
3386 3387
3387 void OrthancPlugins::ApplyCreateDicom(_OrthancPluginService service, 3388 void OrthancPlugins::ApplyCreateDicom(_OrthancPluginService service,
3388 const void* parameters) 3389 const void* parameters)
3394 3395
3395 if (p.json == NULL) 3396 if (p.json == NULL)
3396 { 3397 {
3397 json = Json::objectValue; 3398 json = Json::objectValue;
3398 } 3399 }
3399 else 3400 else if (!Toolbox::ReadJson(json, p.json))
3400 { 3401 {
3401 Json::Reader reader; 3402 throw OrthancException(ErrorCode_BadJson);
3402 if (!reader.parse(p.json, json))
3403 {
3404 throw OrthancException(ErrorCode_BadJson);
3405 }
3406 } 3403 }
3407 3404
3408 std::string dicom; 3405 std::string dicom;
3409 3406
3410 { 3407 {