From 449d0da264c50a7271dec0a421d7c8f375808aeb Mon Sep 17 00:00:00 2001 From: Jakob Odersky Date: Tue, 21 Nov 2017 22:41:51 -0800 Subject: Add eligibility service endpoint and supporting domain model --- .../rest/RestEligibilitySnapshotService.scala | 35 ++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 src/main/scala/xyz/driver/pdsuidomain/services/rest/RestEligibilitySnapshotService.scala (limited to 'src/main/scala/xyz/driver/pdsuidomain/services/rest/RestEligibilitySnapshotService.scala') diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestEligibilitySnapshotService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestEligibilitySnapshotService.scala new file mode 100644 index 0000000..8754165 --- /dev/null +++ b/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestEligibilitySnapshotService.scala @@ -0,0 +1,35 @@ +package xyz.driver.pdsuidomain.services.rest + +import akka.http.scaladsl.model.{HttpMethods, HttpRequest, Uri} +import akka.stream.Materializer +import xyz.driver.core.rest.{AuthorizedServiceRequestContext, ServiceTransport} +import xyz.driver.entities.users +import xyz.driver.entities.users.AuthUserInfo +import xyz.driver.pdsuicommon.domain.UuidId +import xyz.driver.pdsuidomain.entities.eligibility.EligibleTrial +import xyz.driver.pdsuidomain.entities.{Patient, eligibility} +import xyz.driver.pdsuidomain.services.EligibilitySnapshotService + +import scala.concurrent.{ExecutionContext, Future} + +class RestEligibilitySnapshotService(transport: ServiceTransport, baseUrl: Uri)( + implicit protected val materializer: Materializer, + protected val exec: ExecutionContext) extends EligibilitySnapshotService with RestHelper { + + import akka.http.scaladsl.marshallers.sprayjson.SprayJsonSupport._ + import spray.json.DefaultJsonProtocol._ + import xyz.driver.pdsuidomain.formats.json.eligibility._ + + override def eligibilitySnapshot(patientId: UuidId[Patient]) + (implicit requestContext: AuthorizedServiceRequestContext[AuthUserInfo]): + Future[Seq[eligibility.EligibleTrial]] = { + val request = HttpRequest(HttpMethods.GET, endpointUri(baseUrl, s"/v1/patient/$patientId/eligibilitySnapshot")) + for { + response <- transport.sendRequestGetResponse(requestContext)(request) + reply <- apiResponse[Seq[EligibleTrial]](response) + } yield { + reply + } + } + +} -- cgit v1.2.3 From d49e62fc847f6eb4b68c93e40053d3bfeb02d3e2 Mon Sep 17 00:00:00 2001 From: vlad Date: Thu, 30 Nov 2017 14:25:36 -0800 Subject: Adding EV to the roles able to read Trials --- src/main/scala/xyz/driver/pdsuicommon/acl/ACL.scala | 2 +- .../pdsuidomain/services/rest/RestEligibilitySnapshotService.scala | 1 - 2 files changed, 1 insertion(+), 2 deletions(-) (limited to 'src/main/scala/xyz/driver/pdsuidomain/services/rest/RestEligibilitySnapshotService.scala') diff --git a/src/main/scala/xyz/driver/pdsuicommon/acl/ACL.scala b/src/main/scala/xyz/driver/pdsuicommon/acl/ACL.scala index 1d843e4..6987100 100644 --- a/src/main/scala/xyz/driver/pdsuicommon/acl/ACL.scala +++ b/src/main/scala/xyz/driver/pdsuicommon/acl/ACL.scala @@ -126,7 +126,7 @@ object ACL extends PhiLogging { object Trial extends BaseACL( label = "trial", - read = TcRoles + RoutesCurator + TreatmentMatchingAdmin + ResearchOncologist + AdministratorRole, + read = TcRoles ++ TreatmentMatchingRoles + ResearchOncologist + AdministratorRole, update = TcRoles ) diff --git a/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestEligibilitySnapshotService.scala b/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestEligibilitySnapshotService.scala index 8754165..2187ec2 100644 --- a/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestEligibilitySnapshotService.scala +++ b/src/main/scala/xyz/driver/pdsuidomain/services/rest/RestEligibilitySnapshotService.scala @@ -3,7 +3,6 @@ package xyz.driver.pdsuidomain.services.rest import akka.http.scaladsl.model.{HttpMethods, HttpRequest, Uri} import akka.stream.Materializer import xyz.driver.core.rest.{AuthorizedServiceRequestContext, ServiceTransport} -import xyz.driver.entities.users import xyz.driver.entities.users.AuthUserInfo import xyz.driver.pdsuicommon.domain.UuidId import xyz.driver.pdsuidomain.entities.eligibility.EligibleTrial -- cgit v1.2.3