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