Mercurial > hg > orthanc
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 { |