comparison OrthancServer/OrthancRestApi.cpp @ 272:337c506461d2

protection from rest api
author Sebastien Jodogne <s.jodogne@gmail.com>
date Fri, 07 Dec 2012 18:21:04 +0100
parents 15fcd925b05b
children 4031f73fe0e4
comparison
equal deleted inserted replaced
271:98d78841066a 272:337c506461d2
605 call.GetOutput().AnswerJson(result); 605 call.GetOutput().AnswerJson(result);
606 } 606 }
607 } 607 }
608 608
609 609
610 // Get information about a single patient -----------------------------------
611
612 static void IsProtectedPatient(RestApi::GetCall& call)
613 {
614 RETRIEVE_CONTEXT(call);
615 std::string publicId = call.GetUriComponent("id", "");
616 bool isProtected = context.GetIndex().IsProtectedPatient(publicId);
617 call.GetOutput().AnswerBuffer(isProtected ? "1" : "0", "text/plain");
618 }
619
620
621 static void SetPatientProtection(RestApi::PutCall& call)
622 {
623 RETRIEVE_CONTEXT(call);
624 std::string publicId = call.GetUriComponent("id", "");
625 std::string s = Toolbox::StripSpaces(call.GetPutBody());
626
627 if (s == "0")
628 {
629 context.GetIndex().SetProtectedPatient(publicId, false);
630 call.GetOutput().AnswerBuffer("", "text/plain");
631 }
632 else if (s == "1")
633 {
634 context.GetIndex().SetProtectedPatient(publicId, true);
635 call.GetOutput().AnswerBuffer("", "text/plain");
636 }
637 else
638 {
639 // Bad request
640 }
641 }
642
643
610 // Get information about a single instance ---------------------------------- 644 // Get information about a single instance ----------------------------------
611 645
612 static void GetInstanceFile(RestApi::GetCall& call) 646 static void GetInstanceFile(RestApi::GetCall& call)
613 { 647 {
614 RETRIEVE_CONTEXT(call); 648 RETRIEVE_CONTEXT(call);
843 877
844 Register("/patients/{id}/archive", GetArchive<ResourceType_Patient>); 878 Register("/patients/{id}/archive", GetArchive<ResourceType_Patient>);
845 Register("/studies/{id}/archive", GetArchive<ResourceType_Study>); 879 Register("/studies/{id}/archive", GetArchive<ResourceType_Study>);
846 Register("/series/{id}/archive", GetArchive<ResourceType_Series>); 880 Register("/series/{id}/archive", GetArchive<ResourceType_Series>);
847 881
882 Register("/patients/{id}/protected", IsProtectedPatient);
883 Register("/patients/{id}/protected", SetPatientProtection);
848 Register("/instances/{id}/file", GetInstanceFile); 884 Register("/instances/{id}/file", GetInstanceFile);
849 Register("/instances/{id}/tags", GetInstanceTags<false>); 885 Register("/instances/{id}/tags", GetInstanceTags<false>);
850 Register("/instances/{id}/simplified-tags", GetInstanceTags<true>); 886 Register("/instances/{id}/simplified-tags", GetInstanceTags<true>);
851 Register("/instances/{id}/frames", ListFrames); 887 Register("/instances/{id}/frames", ListFrames);
852 888