diff --git a/apps/meta-app/pom.xml b/apps/meta-app/pom.xml index 571765a72..5d1fd225f 100644 --- a/apps/meta-app/pom.xml +++ b/apps/meta-app/pom.xml @@ -1,125 +1,129 @@ shrine-base net.shrine 1.23.5.1-SNAPSHOT ../../pom.xml 4.0.0 meta-app MetaData App jar net.alchim31.maven scala-maven-plugin com.propensive rapture-json_2.11 ${rapture-version} com.propensive rapture-json-jawn_2.11 ${rapture-version} net.shrine shrine-utility-commons ${project.version} net.shrine shrine-config ${project.version} net.shrine shrine-auth ${project.version} + + net.shrine + shrine-mom + ${project.version} + net.shrine shrine-qep ${project.version} log4j log4j io.spray spray-routing_2.11 ${spray-version} io.spray spray-servlet_2.11 ${spray-version} io.spray spray-util_2.11 ${spray-version} io.spray spray-testkit_2.11 ${spray-version} test com.typesafe.akka akka-actor_2.11 ${akka-version} com.typesafe.akka akka-slf4j_2.11 ${akka-version} com.typesafe.akka akka-testkit_2.11 ${akka-testkit-version} test org.json4s json4s-native_2.11 ${json4s-version} com.typesafe config ${typesafe-config-version} mysql mysql-connector-java ${mysql-version} com.h2database h2 test - org.slf4j - slf4j-simple + slf4j-log4j12 ${slf4j-version} test \ No newline at end of file diff --git a/apps/meta-app/src/main/scala/net/shrine/metadata/HornetQMomWebApi.scala b/apps/meta-app/src/main/scala/net/shrine/metadata/HornetQMomWebApi.scala new file mode 100644 index 000000000..c087df5be --- /dev/null +++ b/apps/meta-app/src/main/scala/net/shrine/metadata/HornetQMomWebApi.scala @@ -0,0 +1,100 @@ +package net.shrine.metadata + +import akka.event.Logging +import net.shrine.log.Loggable +import net.shrine.mom.{LocalHornetQMom, Message, MessageSerializer, Queue} +import org.json4s.native.JsonMethods._ +import org.json4s.native.Serialization +import org.json4s.native.Serialization.write +import org.json4s.{JValue, NoTypeHints, _} +import spray.http.StatusCodes +import spray.routing.directives.LogEntry +import spray.routing.{HttpService, Route} + +import scala.concurrent.duration.Duration +/** + * A web API that provides access to the internal HornetQMom library. + * Allows client to createQueue, deleteQueue, sendMessage, receiveMessage, getQueues, and sendReceipt + * + * Created by yifan on 7/24/17. + */ + +trait HornetQMomWebApi extends HttpService + with Loggable { + + def momRoute: Route = pathPrefix("mom") { + put { + createQueue ~ + deleteQueue ~ + sendMessage ~ + acknowledge + } ~ receiveMessage ~ getQueues + } + + // SQS returns CreateQueueResult, which contains queueUrl: String + def createQueue: Route = path("createQueue" / Segment) { queueName => + val createdQueue: Queue = LocalHornetQMom.createQueueIfAbsent(queueName) + implicit val formats = Serialization.formats(NoTypeHints) + val response: String = write[Queue](createdQueue)(formats) + respondWithStatus(StatusCodes.Created) { complete(response) } + } + + + // SQS takes in DeleteMessageRequest, which contains a queueUrl: String and a ReceiptHandle: String + // returns a DeleteMessageResult, toString for debugging + def deleteQueue: Route = path("deleteQueue" / Segment) { queueName => + LocalHornetQMom.deleteQueue(queueName) + complete(StatusCodes.OK) + } + + // SQS sendMessage(String queueUrl, String messageBody) => SendMessageResult + def sendMessage: Route = path("sendMessage" / Segment / Segment) { (messageContent, toQueue) => + LocalHornetQMom.send(messageContent, Queue.apply(toQueue)) + complete(StatusCodes.Accepted) + } + + // SQS ReceiveMessageResult receiveMessage(String queueUrl) + def receiveMessage: Route = + get { + path("receiveMessage" / Segment) { fromQueue => + parameter('timeOutSeconds ? 20) { timeOutSeconds => + val timeout: Duration = Duration.create(timeOutSeconds, "seconds") + val response: Message = LocalHornetQMom.receive(Queue.apply(fromQueue), timeout).get + implicit val formats = Serialization.formats(NoTypeHints) + new MessageSerializer + respondWithStatus(StatusCodes.OK) { + complete(write[Message](response)(formats)) + } + } + } + } + + // SQS has DeleteMessageResult deleteMessage(String queueUrl, String receiptHandle) + def acknowledge: Route = path("acknowledge") { + entity(as[String]) { messageJSON => + implicit val formats: Formats = Serialization.formats(NoTypeHints) + new MessageSerializer + val messageJValue: JValue = parse(messageJSON) + try { + val msg: Message = messageJValue.extract[Message](formats, manifest[Message]) + LocalHornetQMom.completeMessage(msg) + complete(StatusCodes.NoContent) + } catch { + case x => { + LogEntry(s"\n Request: acknowledge/$messageJSON\n Response: $x", Logging.DebugLevel) + throw x} + } + } + } + + // Returns the names of the queues created on this server. Seq[Any] + def getQueues: Route = path("getQueues") { + get { + val queues = LocalHornetQMom.queues + + implicit val formats = Serialization.formats(NoTypeHints) + val response = write(queues) + + respondWithStatus(StatusCodes.OK) {complete(response)} + } + } + +} \ No newline at end of file diff --git a/apps/meta-app/src/main/scala/net/shrine/metadata/MetaDataService.scala b/apps/meta-app/src/main/scala/net/shrine/metadata/MetaDataService.scala index 0b3c1a838..1e2a9b5b7 100644 --- a/apps/meta-app/src/main/scala/net/shrine/metadata/MetaDataService.scala +++ b/apps/meta-app/src/main/scala/net/shrine/metadata/MetaDataService.scala @@ -1,66 +1,70 @@ package net.shrine.metadata import akka.event.Logging import net.shrine.authentication.UserAuthenticator import net.shrine.i2b2.protocol.pm.User import net.shrine.log.Loggable import net.shrine.source.ConfigSource import spray.http.{HttpRequest, HttpResponse} import spray.routing.directives.LogEntry import spray.routing.{HttpService, _} import scala.concurrent.ExecutionContext /** * An outer API to mix in sub services */ trait MetaDataService extends HttpService with StaticDataService with QepService + with HornetQMomWebApi with Loggable { lazy val route: Route = logRequestResponse(logEntryForRequestResponse _) { //logging is controlled by Akka's config, slf4j, and log4j config metaDataRoute ~ staticDataRoute ~ - authenticatedRoute + authenticatedRoute ~ + hornetQMomRoute } //todo use this val shrineInfo = """ |The SHRINE Metadata service. | |This web API gives you access to sub-services within this shrine node. |You can access these services by calling shrine-medadata/[service name]. |You can learn more about each service by calling shrine-metadata/[service name] |for top-level information about each. """.stripMargin /** logs the request method, uri and response at info level */ def logEntryForRequestResponse(req: HttpRequest): Any => Option[LogEntry] = { case res: HttpResponse => Some(LogEntry(s"\n Request: $req\n Response: $res", Logging.InfoLevel)) case _ => None // other kind of responses } /** logs just the request method, uri and response status at info level */ def logEntryForRequest(req: HttpRequest): Any => Option[LogEntry] = { case res: HttpResponse => Some(LogEntry(s"\n Request: $req\n Response status: ${res.status}", Logging.InfoLevel)) case _ => None // other kind of responses } /****/ lazy val metaDataRoute: Route = get { - pathPrefix("ping") { complete("pong")} ~ - pathEnd {complete(shrineInfo)} + path("ping") { complete("pong")} ~ + pathEnd {complete(shrineInfo)} } lazy val authenticatedRoute: Route = authenticate(userAuthenticator.basicUserAuthenticator) { user:User => - qepRoute(user) + qepRoute(user) } + lazy val hornetQMomRoute: Route = momRoute + lazy val userAuthenticator = UserAuthenticator(ConfigSource.config) implicit val ec: ExecutionContext -} +} \ No newline at end of file diff --git a/apps/meta-app/src/test/scala/net/shrine/metadata/HornetQMomWebApiTest.scala b/apps/meta-app/src/test/scala/net/shrine/metadata/HornetQMomWebApiTest.scala new file mode 100644 index 000000000..7e060877d --- /dev/null +++ b/apps/meta-app/src/test/scala/net/shrine/metadata/HornetQMomWebApiTest.scala @@ -0,0 +1,74 @@ +import akka.actor.ActorRefFactory +import net.shrine.metadata.HornetQMomWebApi +import net.shrine.mom.{Message, MessageSerializer, Queue} +import org.json4s.NoTypeHints +import org.json4s.native.Serialization +import org.json4s.native.Serialization.read +import org.junit.runner.RunWith +import org.scalatest.FlatSpec +import org.scalatest.junit.JUnitRunner +import spray.http.HttpEntity +import spray.http.StatusCodes._ +import spray.testkit.ScalatestRouteTest + +/** + * Created by yifan on 7/27/17. + */ + + +@RunWith(classOf[JUnitRunner]) +class HornetQMomWebApiTest extends FlatSpec with ScalatestRouteTest with HornetQMomWebApi { + override def actorRefFactory: ActorRefFactory = system + + private val queueName = "testQueue" + private val messageContent = "testContent" + private var receivedMessage: String = "" + + "RemoteHornetQMom" should "create/delete the given queue, send/receive message, get queues" in { + + Put(s"/mom/createQueue/$queueName") ~> momRoute ~> check { + val response = new String(body.data.toByteArray) + implicit val formats = Serialization.formats(NoTypeHints) + val jsonToQueue = read[Queue](response)(formats, manifest[Queue]) + val responseQueueName = jsonToQueue.name + assertResult(Created)(status) + assertResult(queueName)(responseQueueName) + } + + Put(s"/mom/sendMessage/$messageContent/$queueName") ~> momRoute ~> check { + assertResult(Accepted)(status) + } + + Get(s"/mom/getQueues") ~> momRoute ~> check { + + implicit val formats = Serialization.formats(NoTypeHints) + val response: String = new String(body.data.toByteArray) + val jsonToSeq: Seq[Queue] = read[Seq[Queue]](response, false)(formats, manifest[Seq[Queue]]) + + assertResult(OK)(status) + assertResult(queueName)(jsonToSeq.head.name) + } + + // given timeout is 2 seconds + Get(s"/mom/receiveMessage/$queueName?timeOutSeconds=2") ~> momRoute ~> check { + val response = new String(body.data.toByteArray) + receivedMessage = response + + implicit val formats = Serialization.formats(NoTypeHints) + new MessageSerializer + val responseToMessage: Message = read[Message](response)(formats, manifest[Message]) + + assertResult(OK)(status) + assert(responseToMessage.isInstanceOf[Message]) + } + + Put("/mom/acknowledge", HttpEntity(s"""$receivedMessage""")) ~> + momRoute ~> check { + implicit val formats = Serialization.formats(NoTypeHints) + new MessageSerializer + assertResult(NoContent)(status) + } + + Put(s"/mom/deleteQueue/$queueName") ~> momRoute ~> check { + assertResult(OK)(status) + } + } +} \ No newline at end of file diff --git a/commons/mom/src/main/scala/net/shrine/mom/HornetQMom.scala b/commons/mom/src/main/scala/net/shrine/mom/LocalHornetQMom.scala similarity index 61% rename from commons/mom/src/main/scala/net/shrine/mom/HornetQMom.scala rename to commons/mom/src/main/scala/net/shrine/mom/LocalHornetQMom.scala index 61c14eea7..514b0c05c 100644 --- a/commons/mom/src/main/scala/net/shrine/mom/HornetQMom.scala +++ b/commons/mom/src/main/scala/net/shrine/mom/LocalHornetQMom.scala @@ -1,149 +1,145 @@ +/** + * Created by yifan on 7/24/17. + */ + package net.shrine.mom import com.typesafe.config.Config import net.shrine.source.ConfigSource -import org.hornetq.api.core.{HornetQQueueExistsException, TransportConfiguration} -import org.hornetq.api.core.client.{ClientMessage, ClientSession, ClientSessionFactory, HornetQClient, ServerLocator} +import org.hornetq.api.core.client.{ClientConsumer, ClientMessage, ClientSession, ClientSessionFactory, HornetQClient, ServerLocator} import org.hornetq.api.core.management.HornetQServerControl +import org.hornetq.api.core.{HornetQQueueExistsException, TransportConfiguration} import org.hornetq.core.config.impl.ConfigurationImpl import org.hornetq.core.remoting.impl.invm.{InVMAcceptorFactory, InVMConnectorFactory} import org.hornetq.core.server.{HornetQServer, HornetQServers} -import scala.concurrent.blocking -import scala.concurrent.duration.Duration -import scala.collection.immutable.Seq - +import scala.collection.concurrent.{TrieMap, Map => ConcurrentMap} /** - * This object mostly imitates AWS SQS' API via an embedded HornetQ. See http://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/examples-sqs.html - * - * @author david + * This object is the local version of the Message-Oriented Middleware API, which uses HornetQ service + * @author david * @since 7/18/17 */ -//todo a better name -//todo split into a trait, this LocalHornetQ, and RemoteHornetQ versions. The server side of RemoteHornetQ will call this local version. -//todo in 1.23 all but the server side will use the client RemoteHornetQ implementation (which will call to the server at the hub) -//todo in 1.24, create an AwsSqs implementation of the trait -object HornetQMom { +import scala.collection.immutable.Seq +import scala.concurrent.blocking +import scala.concurrent.duration.Duration +object LocalHornetQMom extends MessageQueueService { val config:Config = ConfigSource.config.getConfig("shrine.hub.mom.hornetq") // todo use the config to set everything needed here that isn't hard-coded. val hornetQConfiguration = new ConfigurationImpl() // todo from config? What is the journal file about? If temporary, use a Java temp file. hornetQConfiguration.setJournalDirectory("target/data/journal") // todo want this. There are likely many other config bits hornetQConfiguration.setPersistenceEnabled(false) // todo maybe want this hornetQConfiguration.setSecurityEnabled(false) // todo probably just want the InVM version, but need to read up on options hornetQConfiguration.getAcceptorConfigurations.add(new TransportConfiguration(classOf[InVMAcceptorFactory].getName)) // Create and start the server val hornetQServer: HornetQServer = HornetQServers.newHornetQServer(hornetQConfiguration) hornetQServer.start() val serverLocator: ServerLocator = HornetQClient.createServerLocatorWithoutHA(new TransportConfiguration(classOf[InVMConnectorFactory].getName)) val sessionFactory: ClientSessionFactory = serverLocator.createSessionFactory() + //arguments are boolean xa, boolean autoCommitSends, boolean autoCommitAcks . + val session: ClientSession = sessionFactory.createSession(false,true,true) + session.start() + + //keep a map of live queues to ClientConsumers to provide a path for completing messages + val queuesToConsumers:ConcurrentMap[Queue, ClientConsumer] = TrieMap.empty + val propName = "contents" /** * Use HornetQMomStopper to stop the hornetQServer without unintentially starting it */ private[mom] def stop() = { + queuesToConsumers.values.foreach(_.close()) + + session.close() sessionFactory.close() hornetQServer.stop() } - private def withSession[T](block: ClientSession => T):T = { - //arguments are boolean xa, boolean autoCommitSends, boolean autoCommitAcks . - //todo do we want to use any of the createSession parameters? - val session: ClientSession = sessionFactory.createSession() - try { - block(session) - } - finally { - session.close() - } - } - //queue lifecycle def createQueueIfAbsent(queueName:String):Queue = { val serverControl: HornetQServerControl = hornetQServer.getHornetQServerControl if(!queues.map(_.name).contains(queueName)) { - try serverControl.createQueue(queueName, queueName) //todo how is the address (first argument) used? I'm just throwing in the queue name. Seems to work but why? + try serverControl.createQueue(queueName, queueName, true) catch { - case alreadyExists: HornetQQueueExistsException => //already has what we want + case alreadyExists: HornetQQueueExistsException => //Already have what we want. Something slipped in between checking queues for this queue and creating it. } } - Queue(queueName) + val queue = Queue(queueName) + queuesToConsumers.getOrElseUpdate(queue,{session.createConsumer(queue.name)}) + queue } def deleteQueue(queueName:String) = { + queuesToConsumers.remove(Queue(queueName)).foreach(_.close()) + val serverControl: HornetQServerControl = hornetQServer.getHornetQServerControl serverControl.destroyQueue(queueName) } - def queues:Seq[Queue] = { + override def queues:Seq[Queue] = { val serverControl: HornetQServerControl = hornetQServer.getHornetQServerControl val queueNames: Array[String] = serverControl.getQueueNames queueNames.map(Queue(_)).to[Seq] } //send a message - def send(contents:String,to:Queue):Unit = withSession{ session => + def send(contents:String,to:Queue):Unit = { val producer = session.createProducer(to.name) - val message = session.createMessage(false) - message.putStringProperty(propName, contents) + try { + val message = session.createMessage(true) + message.putStringProperty(propName, contents) - producer.send(message) + producer.send(message) + } finally { + producer.close() + } } //receive a message /** * Always do AWS SQS-style long polling. * Be sure your code can handle receiving the same message twice. * * @return Some message before the timeout, or None */ - def receive(from:Queue,timeout:Duration):Option[Message] = withSession{ session => - val messageConsumer = session.createConsumer(from.name) - session.start() + def receive(from:Queue,timeout:Duration):Option[Message] = { + val messageConsumer: ClientConsumer = queuesToConsumers(from) //todo handle the case where either stop or close has been called on something gracefully blocking { val messageReceived: Option[ClientMessage] = Option(messageConsumer.receive(timeout.toMillis)) - messageReceived.map(Message(_)) + val message = messageReceived.map(Message(_)) + + message } } //todo dead letter queue for all messages. See http://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/examples-sqs-dead-letter-queues.html //complete a message //todo better here or on the message itself?? - //todo if we can find API that takes a message ID instead of the message. Otherwise its a state puzzle for the web server implementation - def complete(message:Message):Unit = message.complete() - - case class Queue(name:String) - - case class Message(hornetQMessage:ClientMessage) { - def contents = hornetQMessage.getStringProperty(propName) - - def complete() = hornetQMessage.acknowledge() - } - + override def completeMessage(message:Message):Unit = message.complete() } /** * If the configuration is such that HornetQ should have been started use this object to stop it */ //todo is this a good way to write this code? -object HornetQMomStopper { +object LocalHornetQMomStopper { def stop() = { //todo fill in as part of SHIRINE-2128 val config: Config = ConfigSource.config.getConfig("shrine.hub.mom.hornetq") - HornetQMom.stop() + LocalHornetQMom.stop() } -} +} \ No newline at end of file diff --git a/commons/mom/src/main/scala/net/shrine/mom/MessageQueueService.scala b/commons/mom/src/main/scala/net/shrine/mom/MessageQueueService.scala new file mode 100644 index 000000000..014e36c26 --- /dev/null +++ b/commons/mom/src/main/scala/net/shrine/mom/MessageQueueService.scala @@ -0,0 +1,61 @@ +package net.shrine.mom +import net.shrine.spray.DefaultJsonSupport +import org.hornetq.api.core.client.ClientMessage +import org.hornetq.core.client.impl.ClientMessageImpl +import org.json4s.JsonAST.{JField, JObject} +import org.json4s.{CustomSerializer, DefaultFormats, Formats, _} + +import scala.collection.immutable.Seq +import scala.concurrent.duration.Duration +/** + * This object mostly imitates AWS SQS' API via an embedded HornetQ. See http://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/examples-sqs.html + * + * @author david + * @since 7/18/17 + */ +//todo in 1.23 all but the server side will use the client RemoteHornetQ implementation (which will call to the server at the hub) +//todo in 1.24, create an AwsSqs implementation of the trait + +trait MessageQueueService { + def createQueueIfAbsent(queueName:String):Queue + def deleteQueue(queueName:String) + def queues:Seq[Queue] + def send(contents:String,to:Queue):Unit + def receive(from:Queue,timeout:Duration):Option[Message] + def completeMessage(message:Message):Unit + +} + +case class Message(hornetQMessage:ClientMessage) extends DefaultJsonSupport { + override implicit def json4sFormats: Formats = DefaultFormats + val propName = "contents" + + def getClientMessage = hornetQMessage + + def contents = hornetQMessage.getStringProperty(propName) + + def getMessageID = hornetQMessage.getMessageID + + def complete() = hornetQMessage.acknowledge() +} + +case class Queue(name:String) extends DefaultJsonSupport + +class MessageSerializer extends CustomSerializer[Message](format => ( + { + //JObject(List((hornetQMessage,JObject(List((type,JInt(0)), (durable,JBool(false)), (expiration,JInt(0)), (timestamp,JInt(1502218873012)), (priority,JInt(4))))))) + // type, durable, expiration, timestamp, priority, initialMessageBufferSize + case JObject(JField("hornetQMessage", JObject(JField("type", JInt(s)) :: JField("durable", JBool(d)) :: JField("expiration", JInt(e)) + :: JField("timestamp", JInt(t)) :: JField("priority", JInt(p)) :: Nil)) :: Nil) => + new Message(new ClientMessageImpl(s.toByte, d, e.toLong, t.toLong, p.toByte, 0)) + }, + { + case msg: Message => + JObject(JField("hornetQMessage", + JObject(JField("type", JLong(msg.getClientMessage.getType)) :: + JField("durable", JBool(msg.getClientMessage.isDurable)) :: + JField("expiration", JLong(msg.getClientMessage.getExpiration)) :: + JField("timestamp", JLong(msg.getClientMessage.getTimestamp)) :: + JField("priority", JLong(msg.getClientMessage.getPriority)) :: Nil)) :: Nil) + } +)) \ No newline at end of file diff --git a/commons/mom/src/test/scala/net/shrine/mom/HornetQMomTest.scala b/commons/mom/src/test/scala/net/shrine/mom/HornetQMomTest.scala deleted file mode 100644 index 6412ccc2c..000000000 --- a/commons/mom/src/test/scala/net/shrine/mom/HornetQMomTest.scala +++ /dev/null @@ -1,57 +0,0 @@ -package net.shrine.mom - -import net.shrine.mom.HornetQMom.Message -import org.junit.runner.RunWith -import org.scalatest.concurrent.ScalaFutures -import org.scalatest.junit.JUnitRunner -import org.scalatest.{BeforeAndAfter, BeforeAndAfterAll, FlatSpec, Matchers} - -import scala.concurrent.duration._ -import scala.language.postfixOps - -/** - * Test creation, insertion, querying, and deletion of ProblemDigest values into an - * in-memory H2 database. Demonstrates proof of concept mapping of ProblemDigest - * case class into a database. - */ -@RunWith(classOf[JUnitRunner]) -class HornetQMomTest extends FlatSpec with BeforeAndAfterAll with ScalaFutures with Matchers { - - "HornetQ" should "be able to send and receive a message" in { - - val queueName = "testQueue" - - assert(HornetQMom.queues.isEmpty) - - val queue = HornetQMom.createQueueIfAbsent(queueName) - - assert(HornetQMom.queues == Seq(queue)) - - - val testContents = "Test message" - HornetQMom.send(testContents,queue) - - val message: Option[Message] = HornetQMom.receive(queue,1 second) - - assert(message.isDefined) - assert(message.get.contents == testContents) - - message.fold()(HornetQMom.complete) - - HornetQMom.deleteQueue(queueName) - assert(HornetQMom.queues.isEmpty) - - } - - - "HornetQ" should "be OK if asked to create the same queue twice " in { - - val queueName = "testQueue" - HornetQMom.createQueueIfAbsent(queueName) - HornetQMom.createQueueIfAbsent(queueName) - - HornetQMom.deleteQueue(queueName) - } - - override def afterAll() = HornetQMomStopper.stop() -} diff --git a/commons/mom/src/test/scala/net/shrine/mom/LocalHornetQMomTest.scala b/commons/mom/src/test/scala/net/shrine/mom/LocalHornetQMomTest.scala new file mode 100644 index 000000000..45aa8fd82 --- /dev/null +++ b/commons/mom/src/test/scala/net/shrine/mom/LocalHornetQMomTest.scala @@ -0,0 +1,106 @@ +package net.shrine.mom + +import org.junit.runner.RunWith +import org.scalatest.concurrent.ScalaFutures +import org.scalatest.junit.JUnitRunner +import org.scalatest.{BeforeAndAfterAll, FlatSpec, Matchers} +import scala.collection.immutable.Seq +import scala.concurrent.duration._ +import scala.language.postfixOps +/** + * Test create, delete queue, send, and receive message, getQueueNames, and acknoledge using HornetQ service + */ +@RunWith(classOf[JUnitRunner]) +class LocalHornetQMomTest extends FlatSpec with BeforeAndAfterAll with ScalaFutures with Matchers { + + "HornetQ" should "be able to send and receive just one message" in { + + val queueName = "testQueue" + + assert(LocalHornetQMom.queues.isEmpty) + + val queue = LocalHornetQMom.createQueueIfAbsent(queueName) + + assert(LocalHornetQMom.queues == Seq(queue)) + + val testContents = "Test message" + LocalHornetQMom.send(testContents,queue) + + val message: Option[Message] = LocalHornetQMom.receive(queue,1 second) + + assert(message.isDefined) + assert(message.get.contents == testContents) + + LocalHornetQMom.completeMessage(message.get) + + val shouldBeNoMessage: Option[Message] = LocalHornetQMom.receive(queue,1 second) + + assert(shouldBeNoMessage.isEmpty) + + LocalHornetQMom.deleteQueue(queueName) + assert(LocalHornetQMom.queues.isEmpty) + } + + "HornetQ" should "be able to send and receive a few messages" in { + + val queueName = "testQueue" + + assert(LocalHornetQMom.queues.isEmpty) + + val queue = LocalHornetQMom.createQueueIfAbsent(queueName) + + assert(LocalHornetQMom.queues == Seq(queue)) + + val testContents1 = "Test message1" + LocalHornetQMom.send(testContents1,queue) + + val message1: Option[Message] = LocalHornetQMom.receive(queue,1 second) + + assert(message1.isDefined) + assert(message1.get.contents == testContents1) + + LocalHornetQMom.completeMessage(message1.get) + + val shouldBeNoMessage1: Option[Message] = LocalHornetQMom.receive(queue,1 second) + + assert(shouldBeNoMessage1.isEmpty) + + val testContents2 = "Test message2" + LocalHornetQMom.send(testContents2,queue) + + val testContents3 = "Test message3" + LocalHornetQMom.send(testContents3,queue) + + val message2: Option[Message] = LocalHornetQMom.receive(queue,1 second) + + assert(message2.isDefined) + assert(message2.get.contents == testContents2) + + LocalHornetQMom.completeMessage(message2.get) + + val message3: Option[Message] = LocalHornetQMom.receive(queue,1 second) + + assert(message3.isDefined) + assert(message3.get.contents == testContents3) + + LocalHornetQMom.completeMessage(message3.get) + + val shouldBeNoMessage4: Option[Message] = LocalHornetQMom.receive(queue,1 second) + + assert(shouldBeNoMessage4.isEmpty) + + LocalHornetQMom.deleteQueue(queueName) + assert(LocalHornetQMom.queues.isEmpty) + } + + "HornetQ" should "be OK if asked to create the same queue twice " in { + + val queueName = "testQueue" + LocalHornetQMom.createQueueIfAbsent(queueName) + LocalHornetQMom.createQueueIfAbsent(queueName) + + LocalHornetQMom.deleteQueue(queueName) + } + + override def afterAll() = LocalHornetQMomStopper.stop() +} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-i2b2/cells/CRC/CRC_ctrlr_QryStatus.js b/shrine-webclient/src/main/js/client/js-i2b2/cells/CRC/CRC_ctrlr_QryStatus.js index 19312b86d..605a0a344 100644 --- a/shrine-webclient/src/main/js/client/js-i2b2/cells/CRC/CRC_ctrlr_QryStatus.js +++ b/shrine-webclient/src/main/js/client/js-i2b2/cells/CRC/CRC_ctrlr_QryStatus.js @@ -1,447 +1,447 @@ /** * @projectDescription The Asynchronous Query Status controller (GUI-only controller). * @inherits i2b2.CRC.ctrlr * @namespace i2b2.CRC.ctrlr.QueryStatus * @author Nick Benik, Griffin Weber MD PhD * @version 1.0 * ---------------------------------------------------------------------------------------- * updated 8-10-09: Initial Creation [Nick Benik] */ function cgmUtcDateParser(dateString) { //Date format: 2011-02-21T14:35:03.480-05:00 try { splitDateAndTime = dateString.split("T"); vrDate = splitDateAndTime[0].split("-"); vrTime = splitDateAndTime[1].split(":"); strYear = vrDate[0]; strMonth = vrDate[1] - 1; strDay = vrDate[2]; /* alert("Year: "+ strYear); alert("Month: "+ strMonth); alert("Day: "+ strDay);*/ strHours = vrTime[0]; strMins = vrTime[1]; strSecs = null; strMills = null; vSecs = vrTime[2].split("."); strSecs = vSecs[0]; vMills = vSecs[1].split("-"); strMills = vMills[0]; /* alert("Hours: "+ strHours); alert("Minutes: "+ strMins); alert("Seconds: "+ strSecs); alert("MilliSeconds: "+ strMills);*/ return new Date(strYear, strMonth, strDay, strHours, strMins, strSecs, strMills); } catch (e) { return null; } } i2b2.CRC.ctrlr.QueryStatus = function (dispDIV) { this.dispDIV = dispDIV; }; i2b2.CRC.ctrlr.currentQueryResults = null; function trim(sString) { while (sString.substring(0, 1) == '\n') { sString = sString.substring(1, sString.length); } while (sString.substring(sString.length - 1, sString.length) == '\n') { sString = sString.substring(0, sString.length - 1); } return sString; } i2b2.CRC.ctrlr.QueryStatus.prototype = function () { var private_singleton_isRunning = false; var private_startTime = false; var private_refreshInterrupt = false; function private_refresh_status() { if(jQuery('.query-viewer.active').length) { return; } // callback processor to check the Query Instance var scopedCallbackQRSI = new i2b2_scopedCallback(); scopedCallbackQRSI.scope = self; scopedCallbackQRSI.callback = function (results) { if (results.error) { alert(results.errorMsg); return; } else { // find our query instance var ri_list = results.refXML.getElementsByTagName('query_result_instance'); var l = ri_list.length; for (var i = 0; i < l; i++) { var temp = ri_list[i]; var description = i2b2.h.XPath(temp, 'descendant-or-self::description')[0].firstChild.nodeValue; self.dispDIV.innerHTML += "
" + description + "
"; } var crc_xml = results.refXML.getElementsByTagName('crc_xml_result'); l = crc_xml.length; for (var i = 0; i < l; i++) { var temp = crc_xml[i]; var xml_value = i2b2.h.XPath(temp, 'descendant-or-self::xml_value')[0].firstChild.nodeValue; var xml_v = i2b2.h.parseXml(xml_value); var params = i2b2.h.XPath(xml_v, 'descendant::data[@column]/text()/..'); for (var i2 = 0; i2 < params.length; i2++) { var name = params[i2].getAttribute("name"); if (i2b2.PM.model.isObfuscated) { if (params[i2].firstChild.nodeValue < 4) { var value = "<3"; } else { var value = params[i2].firstChild.nodeValue + "+-" + i2b2.h.getObfuscationValue(); } } else { var value = params[i2].firstChild.nodeValue; } self.dispDIV.innerHTML += "
" + params[i2].getAttribute("column") + ": " + value + "
"; } var ri_id = i2b2.h.XPath(temp, 'descendant-or-self::result_instance_id')[0].firstChild.nodeValue; } //self.dispDIV.innerHTML += this.dispMsg; } } var self = i2b2.CRC.ctrlr.currentQueryStatus; var d = new Date(); var t = Math.floor((d.getTime() - private_startTime) / 100) / 10; var s = t.toString(); if (s.indexOf('.') < 0) { s += '.0'; } if (private_singleton_isRunning) { self.dispDIV.innerHTML = '
Running Query: "' + self.QM.name + '"
'; // display the current run duration self.dispDIV.innerHTML += '
[' + s + ' secs]
'; } else { self.dispDIV.innerHTML = '
Finished Query: "' + self.QM.name + '"
'; self.dispDIV.innerHTML += '
[' + s + ' secs]
'; // self.dispDIV.innerHTML += '
Compute Time: ' + (Math.floor((self.QI.end_date - self.QI.start_date)/100))/10 + ' secs
'; // self.dispDIV.innerHTML += '
'; $('runBoxText').innerHTML = "Run Query"; } self.dispDIV.innerHTML += '
'; if ((!private_singleton_isRunning) && (undefined != self.QI.end_date)) { self.dispDIV.innerHTML += '
Compute Time: ' + (Math.floor((self.QI.end_date - self.QI.start_date) / 100)) / 10 + ' secs
'; } var foundError = false; for (var i = 0; i < self.QRS.length; i++) { var rec = self.QRS[i]; if (rec.QRS_time) { var t = '
ERROR
'; // self.dispDIV.innerHTML += '
ERROR
'; //['+rec.QRS_time+' secs]'; foundError = true; break; case "COMPLETED": case "FINISHED": foundError = false; //t += '#0000dd">'+rec.QRS_Status; break; case "INCOMPLETE": case "WAITTOPROCESS": case "PROCESSING": self.dispDIV.innerHTML += '
' + rec.title + '
PROCESSING
'; // self.dispDIV.innerHTML += '
PROCESSING
'; //['+rec.QRS_time+' secs]
'; alert('Your query has timed out and has been rescheduled to run in the background. The results will appear in "Previous Queries"'); foundError = true; //t += '#00dd00">'+rec.QRS_Status; break; } t += '
'; //self.dispDIV.innerHTML += '
'+t+'['+rec.QRS_time+' secs]
'; } self.dispDIV.innerHTML += ''; if (foundError == false) { if (rec.QRS_DisplayType == "CATNUM") { //make call to get QRSI. i2b2.CRC.ajax.getQueryResultInstanceList_fromQueryResultInstanceId("CRC:QueryStatus", { qr_key_value: rec.QRS_ID }, scopedCallbackQRSI); } else if ((rec.QRS_DisplayType == "LIST") && (foundError == false)) { self.dispDIV.innerHTML += "
" + rec.QRS_Description + "
"; } else if (i2b2.h.isDQ) { self.dispDIV.innerHTML += "
" + rec.title + "
" + rec.QRS_Status + " [" + rec.QRS_time + " secs]
"; } if (rec.QRS_Type == "PATIENTSET") { // Check to see if timeline is checked off, if so switch to timeline var t2 = $('dialogQryRun').select('INPUT.chkQueryType'); for (var i = 0; i < t2.length; i++) { var curItem = t2[i].nextSibling.data; if (curItem != undefined) { curItem = curItem.toLowerCase(); //curitem = curItem.trim(); } if ((t2[i].checked == true) && (rec.size > 0) && (curItem == " timeline") && !(i2b2.h.isBadObjPath('i2b2.Timeline.cfg.config.plugin')) ) { i2b2.hive.MasterView.setViewMode('Analysis'); i2b2.PLUGINMGR.ctrlr.main.selectPlugin("Timeline"); //Process PatientSet rec.QM_id = self.QM.id; rec.QI_id = self.QI.id; rec.PRS_id = rec.QRS_ID; rec.result_instance_id = rec.PRS_id; var sdxData = {}; sdxData[0] = i2b2.sdx.Master.EncapsulateData('PRS', rec); i2b2.Timeline.prsDropped(sdxData); i2b2.Timeline.setShowMetadataDialog(false); //Process Concepts, put all concepts in one large set sdxData = {}; for (var j2 = 0; j2 < i2b2.CRC.model.queryCurrent.panels.length; j2++) { var panel_list = i2b2.CRC.model.queryCurrent.panels[j2] var panel_cnt = panel_list.length; for (var p2 = 0; p2 < panel_cnt; p2++) { // Concepts for (var i2 = 0; i2 < panel_list[p2].items.length; i2++) { sdxData[0] = panel_list[p2].items[i2]; i2b2.Timeline.conceptDropped(sdxData); } } } //$('Timeline-pgstart').value = '1'; //$('Timeline-pgsize').value = '10'; //i2b2.Timeline.pgGo(0); i2b2.Timeline.yuiTabs.set('activeIndex', 1); i2b2.Timeline.setShowMetadataDialog(true); } } } } } if ((undefined != self.QI.message) && (foundError == false)) { self.dispDIV.innerHTML += '
Status
'; var mySplitResult = self.QI.message.split("' + i2b2.h.XPath(xml_v, 'descendant::name/text()/..')[i2].firstChild.nodeValue + ': ' + value + ' secs'; //self.dispDIV.innerHTML += '
: ' + i2b2.h.XPath(xml_v, 'descendant::total_time_second/text()/..')[i2].firstChild.nodeValue + ' secs
'; } catch (e) { } } } } self.dispDIV.style.display = 'none'; self.dispDIV.style.display = 'block'; if (!private_singleton_isRunning && private_refreshInterrupt) { // make sure our refresh interrupt is turned off try { clearInterval(private_refreshInterrupt); private_refreshInterrupt = false; } catch (e) { } } } function private_cancelQuery() { if (private_singleton_isRunning) { try { var self = i2b2.CRC.ctrlr.currentQueryStatus; i2b2.CRC.ctrlr.history.queryDeleteNoPrompt(self.QM.id); clearInterval(private_refreshInterrupt); private_refreshInterrupt = false; private_singleton_isRunning = false; $('runBoxText').innerHTML = "Run Query"; self.dispDIV.innerHTML += '
QUERY CANCELLED
'; i2b2.CRC.ctrlr.currentQueryStatus = false; } catch (e) { } } } function private_startQuery() { var self = i2b2.CRC.ctrlr.currentQueryStatus; var resultString = ""; //BG if (private_singleton_isRunning) { return false; } private_singleton_isRunning = true; //BG var downloadDataTab = $('infoDownloadStatusData'); if (downloadDataTab) downloadDataTab.innerHTML = ""; i2b2.CRC.ctrlr.currentQueryResults = new i2b2.CRC.ctrlr.QueryResults(resultString); //BG self.dispDIV.innerHTML = 'Processing Query: "' + this.name + '"'; self.QM.name = this.name; self.QRS = []; self.QI = {}; // callback processor to run the query from definition this.callbackQueryDef = new i2b2_scopedCallback(); this.callbackQueryDef.scope = this; this.callbackQueryDef.callback = function (results) { var networkId = results.refXML.getElementsByTagName('query_master_id')[0].firstChild.nodeValue; - i2b2.events.afterQueryInit.fire({networkId: networkId}); + i2b2.events.networkIdReceived.fire({networkId: networkId}); i2b2.CRC.ctrlr.history.Refresh(); } /** * * @param qriNode * @returns {{qiStatusName: string, qiStatusDescription: string, qiSetSize: string, qiDescription: string, qiResultName: string, qiResultDescription: string}} */ function parseQueryResultInstance(qriNode) { var qriObj = { statusName: grabXmlNodeData(qriNode, 'descendant-or-self::query_status_type/name'), statusDescription: grabXmlNodeData(qriNode, 'descendant-or-self::query_status_type/description'), description: grabXmlNodeData(qriNode, 'descendant-or-self::description') }; if (qriObj.statusName == "ERROR") { qriObj.problem = $hrine.EnhancedError.parseProblem(qriNode); return qriObj; } qriObj.setSize = grabXmlNodeData(qriNode, 'descendant-or-self::set_size'); qriObj.resultName = grabXmlNodeData(qriNode, 'descendant-or-self::query_result_type/name'); qriObj.resultDescription = grabXmlNodeData(qriNode, 'descendant-or-self::query_result_type/description'); return qriObj; } /** * * @param brdNode */ function parseBreakdown(brdNode) { var brdObj = { name: grabXmlNodeData(brdNode, 'name'), value: grabXmlNodeData(brdNode, 'value'), parentResultType: grabXmlNodeData(brdNode, 'parent::breakdown_data/resultType') } return brdObj; } /** * Return breakdown title based on breakdown type. * @param breakdownType * @returns {*} */ function getBreakdownTitle(breakdownType) { return { 'PATIENT_AGE_COUNT_XML': 'Patient Age Count Breakdown', 'PATIENT_GENDER_COUNT_XML': 'Patient Gender Count Breakdown', 'PATIENT_RACE_COUNT_XML': 'Patient Race Count Breakdown', 'PATIENT_VITALSTATUS_COUNT_XML': 'Patient Vital Status Count Breakdown' }[breakdownType]; }; /** * Grab data for node, return empty string if none. * @param node * @param xPathString * @returns {string} */ function grabXmlNodeData(node, xPathString) { var nodeVal = i2b2.h.XPath(node, xPathString); return (nodeVal.length) ? nodeVal[0].firstChild.nodeValue : ''; } // switch to status tab i2b2.CRC.view.status.showDisplay(); // timer and display refresh stuff private_startTime = new Date(); private_refreshInterrupt = setInterval("i2b2.CRC.ctrlr.currentQueryStatus.refreshStatus()", 100); // AJAX call i2b2.CRC.ajax.runQueryInstance_fromQueryDefinition("CRC:QueryTool", this.params, this.callbackQueryDef); } return { name: "", polling_interval: 1000, QM: { id: false, status: "" }, QI: { id: false, status: "" }, QRS: {}, displayDIV: false, running: false, started: false, startQuery: function (queryName, ajaxParams) { this.name = queryName; this.params = ajaxParams; private_startQuery.call(this); }, cancelQuery: function () { private_cancelQuery(); }, isQueryRunning: function () { return private_singleton_isRunning; }, refreshStatus: function () { private_refresh_status(); } }; }(); i2b2.CRC.ctrlr.currentQueryStatus = false; diff --git a/shrine-webclient/src/main/js/client/js-i2b2/cells/SHRINE/shrine.controller.js b/shrine-webclient/src/main/js/client/js-i2b2/cells/SHRINE/shrine.controller.js index f03cb1654..3e582fcee 100644 --- a/shrine-webclient/src/main/js/client/js-i2b2/cells/SHRINE/shrine.controller.js +++ b/shrine-webclient/src/main/js/client/js-i2b2/cells/SHRINE/shrine.controller.js @@ -1,179 +1,174 @@ (function () { 'use strict'; // -- public -- // i2b2.SHRINE.RequestTopic = requestTopic; i2b2.SHRINE.TopicInfo = showTopicInfo; i2b2.SHRINE.view.modal.topicInfoDialog = getTopicInfoDialog(); // -- events -- // i2b2.events.afterLogin.subscribe(loginSuccessHandler); // -- @todo: boostrap the Webclient plugin tabs here. -- // function loginSuccessHandler(type, args) { if (i2b2.hive.cfg.lstCells.SHRINE.serverLoaded) { i2b2.PM.model.shrine_domain = true; } if (i2b2.h.isSHRINE()) { loadTopics(type, args); renderTopics(); bootstrap(); } } function loadTopics(type, args) { var msg = i2b2.SHRINE.ajax.readApprovedEntries("SHRINE"); msg.parse(); if (msg.error) { console.error("Could not get approved topic list from SHRINE"); console.dir(msg); alert('Could not get approved topics list from SHRINE.'); } else { i2b2.SHRINE.model.topics = {}; var l = msg.model.length; for (var i = 0; i < l; i++) { var rec = msg.model[i]; if (rec.TopicID != undefined) { i2b2.SHRINE.model.topics[rec.TopicID] = rec; } } } } function renderTopics() { var dropdown = $('queryTopicSelect'); while (dropdown.hasChildNodes()) { dropdown.removeChild(dropdown.firstChild); } // create the "Select Topic" option var sno = document.createElement('OPTION'); sno.setAttribute('value', null); var snt = document.createTextNode(" ------ Select an Approved Query Topic ------ "); sno.appendChild(snt); dropdown.appendChild(sno); // populate with topics for (var i in i2b2.SHRINE.model.topics) { var rec = i2b2.SHRINE.model.topics[i]; if (rec.TopicID != undefined && rec.approval == "Approved") { // ONT options dropdown var sno = document.createElement('OPTION'); sno.setAttribute('value', rec.TopicID); var snt = document.createTextNode(rec.Name); sno.appendChild(snt); dropdown.appendChild(sno); } } $$('#crcDlgResultOutputPRC input')[0].disabled = true; $('crcDlgResultOutputPRS').hide(); } /* * Change this value in the config file [\i2b2\cells\SHRINE\cell_config_data.js] */ function requestTopic() { window.open(i2b2.SHRINE.cfg.config.newTopicURL, 'RequestTopic', 'toolbar=1,scrollbars=1,location=1,statusbar=1,menubar=1,resizable=1,width=800,height=600'); } function showTopicInfo() { var s = $('queryTopicSelect'); if (s.selectedIndex == null || s.selectedIndex == 0) { return true; } var topicID = s.options[s.selectedIndex].value; if (topicID == "") { return; } i2b2.SHRINE.view.modal.topicInfoDialog.showInfo(topicID); } function getTopicInfoDialog() { return { showInfo: function (id) { var thisRef = i2b2.SHRINE.view.modal.topicInfoDialog; if (!thisRef.yuiDialog) { thisRef.yuiDialog = new YAHOO.widget.SimpleDialog("SHRINE-info-panel", { zindex: 700, width: "400px", fixedcenter: true, constraintoviewport: true }); thisRef.yuiDialog.render(document.body); // show the form thisRef.yuiDialog.show(); } // show the form $('SHRINE-info-panel').show(); thisRef.yuiDialog.show(); thisRef.yuiDialog.center(); // display the topic info var rec = i2b2.SHRINE.model.topics[id]; if (undefined == rec) { thisRef.yuiDialog.hide(); } // bad id == bail out here $('SHRINE-info-title').innerHTML = rec.Name; $('SHRINE-info-body').innerHTML = rec.Intent; } }; } function bootstrap() { overrideQueryPanelHTML(jQuery); overrideI2B2(jQuery, i2b2, YAHOO); loadShrineWrapper(jQuery, i2b2.SHRINE.cfg.config); } function loadShrineWrapper($, config) { return $('#' + i2b2.SHRINE.plugin.viewName).load(config.wrapperHtmlFile, function (response, status, xhr) { }); } function overrideI2B2($, i2b2, YAHOO) { - i2b2.events.networkIdReceived = new YAHOO.util.CustomEvent("networkIdReceived", I2B2); + i2b2.events.networkIdReceived = new YAHOO.util.CustomEvent("networkIdReceived", i2b2); i2b2.events.afterQueryInit = new YAHOO.util.CustomEvent("afterQueryInit", i2b2); var _queryRun = i2b2.CRC.ctrlr.QT._queryRun; i2b2.CRC.ctrlr.QT._queryRun = function (name, options) { i2b2.events.afterQueryInit.fire({ name: name, data: options }); return _queryRun.apply(i2b2.CRC.ctrlr.QT, [name, options]); } - - var statusDisplay = i2b2.CRC.view.status.showDisplay; i2b2.CRC.view.status.showDisplay = function () { - if (i2b2.CRC.view.status.currentTab === 'status' || !$('.query-viewer.active').length) { - return statusDisplay.apply(i2b2.CRC.view.status.showDisplay, []); - } } } function overrideQueryPanelHTML($) { removeI2B2Tabs($); removeI2B2Panels($); removeI2B2PrintIcon($); addShrineTab($); addShrinePanel($); } function removeI2B2Tabs($) { $('#crcStatusBox .TopTabs').find('.tabBox').hide(); } function removeI2B2Panels($) { $('#crcStatusBox .StatusBox').children().hide(); } function removeI2B2PrintIcon($) { $('#crcStatusBox .TopTabs .opXML') .children().first().remove(); } function addShrineTab($) { $('#crcStatusBox .TopTabs').append( '
' + '
Query Viewer
' + '
'); } function addShrinePanel($) { $('#crcStatusBox .StatusBox').append('
'); } })(); diff --git a/shrine-webclient/src/main/js/client/js-shrine/assets/css/styles.css b/shrine-webclient/src/main/js/client/js-shrine/assets/css/styles.css index 96710c70b..43df7e681 100644 --- a/shrine-webclient/src/main/js/client/js-shrine/assets/css/styles.css +++ b/shrine-webclient/src/main/js/client/js-shrine/assets/css/styles.css @@ -1,536 +1,536 @@ .mailto { box-sizing: border-box; display: flex; justify-content: center; align-items: center; width: 100%; height: 100%; padding: 10px; color: #333; background: #f2f2f2; height: 100% p; height-font-size: 16px; height-line-height: 1.6em; } .mailto .button { border: 1px solid #6576a8; background: #6d85ad; border: 0; outline: 0; font-weight: bold; text-transform: uppercase; text-decoration: none; letter-spacing: 1px; color: #fff; cursor: pointer; } .mailto .button:hover { background: #9cb8d9; } .mailto .button:active { background: #6576a8; } .mailto .button--large { position: relative; padding: 15px 30px; border-radius: 5px; font-size: 16px; } .mailto .button--large:active { top: 1px; } .mailto .content { max-width: 350px; text-align: center; } .mailto .email { position: relative; } @import url(http://fonts.googleapis.com/css?family=Roboto:400,500,300,700); * { box-sizing: border-box; } .query-viewer { overflow: auto; background: rgba(255, 255, 255, 0.9); font-family: 'Roboto', sans-serif; height: 100%; } .flex-table { display: flex; width: 100%; flex-direction: column; margin: 0; } div.ellipses { overflow: hidden; text-overflow: ellipsis; max-width: 100%; } .flex-table-item { flex: 1 1 0; white-space: nowrap; max-width: 15%; border-left: 1px solid rgba(98, 108, 146, 0.3); flex-flow: column; transition: all .5s ease; padding: 2px; text-align: right; vertical-align: top; font-weight: 300; font-size: 12px; color: black; } .flex-table-item:last-child { border-right: 1px solid rgba(98, 108, 146, 0.3); } .flex-table-item:first-child { flex: .25; } .flex-table-item:nth-child(2) { flex: 2; } .flex-table-item:nth-child(3) { flex: .8; } .flex-table-item:nth-child(3) { flex: .5; } .flex-table.query-viewer .flex-table-item:hover { background: rgba(98, 108, 146, 0.3) !important; cursor: pointer; } .node-header, .node-header > .flex-table-item { border: none !important; text-align: center; padding-right: 8px; text-transform: uppercase; } .flex-table-row { border-top: 1px solid rgba(98, 108, 146, 0.3); display: flex; flex-flow: row no-wrap; width: 100%; } .flex-table-row:nth-child(even) { background: rgba(98, 108, 146, 0.1); } .flex-table-row:last-child { /*being overwritten by above rule */ border-bottom: 1px solid rgba(98, 108, 146, 0.3) !important; } .v-full { height: 90vh; } .v-min { height: 90px; } /*@import url(http://fonts.googleapis.com/css?family=Roboto:400,500,300,700); body{ overflow: hidden; background: rgba(255, 255, 255, 0.9); font-family: 'Roboto', sans-serif; } html, body, .box-wrapper{ width: 100%; height: 100%; margin: 0; } .box-wrapper{ display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; -ms-flex-wrap: wrap; flex-wrap: wrap; } .box-wrapper > .box { margin-top: 0; width: 100%; transition: all .2s ease; .hideextra { white-space: nowrap; overflow: hidden; text-overflow:ellipsis; } section{ margin: 20 0 6 0; .v-full { height: 90vh; } .v-min{ height: 90px; } .v-min > table { padding-bottom: 1%; } .tbl-content{ overflow: auto; margin-top: 0px; border: 1px solid rgba(98,108,146,0.3); } } table{ width:100%; table-layout: fixed; .tbl-header{ background-color: rgba(98,108,146, .3); div.tbl-header{ max-width: 5rem; } } tr{ background: white; cursor: pointer; &:nth-child(odd) {background: rgba(98,108,146, .1)} } th{ padding: 2px 4px 4px 2px; text-align: left; font-weight: 500; font-size: .75rem; color: #626C92; text-transform: uppercase; border-bottom: solid 1px rgba(98,108,146,0.1); border-left: solid 1px rgba(98,108,146,0.1); &:hover{ background: rgba(98,108,146, .3) !important; } } td{ transition: all .5s ease; padding: 2px; text-align: left; vertical-align: top; font-weight: 300; font-size: 12px; color: black; border-bottom: solid 1px rgba(98,108,146,0.1); border-left: solid 1px rgba(98,108,146,0.1); &:hover{ background: rgba(98,108,146, .3) !important; } } } } */ /*{ position: relative; float: left; padding: 6px 12px; margin-left: -1px; line-height: 1.42857143; color: #337ab7; text-decoration: none; background-color: #fff; border: 1px solid #ddd; } :focus { z-index: 3; color: #fff; cursor: default; background-color: #337ab7; border-color: #337ab7; }*/ @import url(http://fonts.googleapis.com/css?family=Roboto:400,300&subset=latin,latin-ext); ul.context-menu { transition: opacity 0.2s linear; list-style: none; margin: 0; padding: 0; font: 200 11px "Roboto", sans-serif; position: absolute; color: #626C92; box-shadow: 0 12px 15px 0 rgba(0, 0, 0, 0.2); border-radius: 5px; border: 1px solid rgba(98, 108, 146, 0.25); } ul.context-menu * { transition: color 0.2s, background 0.2s; } ul.context-menu.hide { visibility: hidden; opacity: 0; } ul.context-menu.show { visibility: visible; opacity: 1; } ul.context-menu li { min-width: 100px; overflow: hidden; white-space: nowrap; padding: 6px 8px; background-color: #fff; border-bottom: 1px solid #ecf0f1; } ul.context-menu li a { color: #626C92; text-decoration: none; } ul.context-menu li:hover { background-color: #ecf0f1; color: #2980b9; } ul.context-menu li:hover a { color: #2980b9; } ul.context-menu li:first-child { border-radius: 5px 5px 0 0; } ul.context-menu li:last-child { border-bottom: 0; border-radius: 0 0 5px 5px; } +@import url(http://fonts.googleapis.com/css?family=Roboto:400,300&subset=latin,latin-ext); +.loader { + background: #fff; + margin: 50px 300px; + /*todo cleanup with mixin*/ } + .loader h1 { + color: #626C92; + font: 300 11px "Roboto", sans-serif; } + .loader div.slider { + position: absolute; + width: 200px; + height: 2px; + margin-top: -30px; } + .loader div.slider div.line { + position: absolute; + background: rgba(0, 0, 0, 0.2); + width: 200px; + height: 2px; } + .loader div.slider div.break { + position: absolute; + width: 50%; + height: 2px; } + .loader div.slider div.break.dot1 { + animation: loading 2s infinite; + background: #D9ECF0; } + .loader div.slider div.break.dot2 { + animation: loading 2s 0.5s infinite; + background: #6677AA; } + .loader div.slider div.break.dot3 { + animation: loading 2s 1s infinite; + background: #D9ECF0; } + +@-webkit-keyframes "loading" { + from { + left: 0; + opacity: 1; } + to { + left: 200px; + opacity: 1; } } + +@-moz-keyframes "loading" { + from { + left: 0; + opacity: 0; } + to { + left: 200px; + opacity: 1; } } + +@-o-keyframes "loading" { + from { + left: 0; + opacity: 0; } + to { + left: 200px; + opacity: 1; } } + +@keyframes "loading" { + from { + left: 0; + opacity: 0; } + to { + left: 200px; + opacity: 1; } } + .paginator * { -webkit-transition: all .10s ease-in-out; transition: all .10s ease-in-out; font-family: 'Open Sans'; } .paginator { margin: 0; } .paginator--center { text-align: center; } .paginator--right { text-align: right; } .paginator .btn-group { list-style-type: none; margin: 0; padding: 0; display: inline-block; } .paginator .btn-group__item { margin: 0; padding: 0; height: 40px; float: left; } .paginator .btn-group__item .btn { margin: 0; padding: .5em .75em; border: 0; font-weight: 300; background-color: transparent; box-shadow: inset 0 -2px 0 0 #777; color: #777; } .paginator .btn-group__item .btn:hover { box-shadow: inset 0 -4px 0 0 #626C92; cursor: pointer; } .paginator .btn-group__item .current { box-shadow: inset 0 -4px 0 0 #626C92; color: #626C92; font-weight: bold; } .paginator .btn-group__item .current:hover { box-shadow: inset 0 -4px 0 0 #626C92; cursor: pointer; } .paginator .btn[disabled] { box-shadow: inset 0 -2px 0 0 #e6e6e6; color: #e6e6e6; } .paginator .btn[disabled]:hover { box-shadow: inset 0 -2px 0 0 #626C92; cursor: pointer; } .paginator .i-chevron-left, .paginator .i-chevron-right { margin: 15px; border-style: solid; border-color: #3a3a3a; width: 5px; height: 5px; display: block; cursor: pointer; } .paginator .i-chevron-left { border-width: 1px 0 0 1px; -webkit-transform: rotate(-45deg); -ms-transform: rotate(-45deg); transform: rotate(-45deg); } .paginator .i-chevron-right { border-width: 1px 1px 0 0; -ms-transform: rotate(45deg); -webkit-transform: rotate(45deg); transform: rotate(45deg); } .paginator .i-chevron-left:hover { border-width: 2px 0 0 2px; } .paginator .i-chevron-right:hover { border-width: 2px 2px 0 0; } -@import url(http://fonts.googleapis.com/css?family=Roboto:400,300&subset=latin,latin-ext); -.loader { - background: #fff; - margin: 50px 300px; - /*todo cleanup with mixin*/ } - .loader h1 { - color: #626C92; - font: 300 11px "Roboto", sans-serif; } - .loader div.slider { - position: absolute; - width: 200px; - height: 2px; - margin-top: -30px; } - .loader div.slider div.line { - position: absolute; - background: rgba(0, 0, 0, 0.2); - width: 200px; - height: 2px; } - .loader div.slider div.break { - position: absolute; - width: 50%; - height: 2px; } - .loader div.slider div.break.dot1 { - animation: loading 2s infinite; - background: #D9ECF0; } - .loader div.slider div.break.dot2 { - animation: loading 2s 0.5s infinite; - background: #6677AA; } - .loader div.slider div.break.dot3 { - animation: loading 2s 1s infinite; - background: #D9ECF0; } - -@-webkit-keyframes "loading" { - from { - left: 0; - opacity: 1; } - to { - left: 200px; - opacity: 1; } } - -@-moz-keyframes "loading" { - from { - left: 0; - opacity: 0; } - to { - left: 200px; - opacity: 1; } } - -@-o-keyframes "loading" { - from { - left: 0; - opacity: 0; } - to { - left: 200px; - opacity: 1; } } - -@keyframes "loading" { - from { - left: 0; - opacity: 0; } - to { - left: 200px; - opacity: 1; } } - svg.query-status { height: 25px; -webkit-transform: rotate(270deg); transform: rotate(270deg); width: 25px; } .query-status > .countdown__background { transition: all .5s ease; fill: none; stroke: #c0c0c0; stroke-width: 8; } .flex-table.query-viewer .flex-table-item:hover .query-status > .countdown__background { stroke: #000; } .query-status > .error__progress { fill: none; stroke: #ff0000; stroke-dasharray: 100 100; stroke-linecap: butt; stroke-width: 6; } .query-status > .ready__progress { fill: none; stroke: #00ff00; stroke-dasharray: 100 100; stroke-linecap: butt; stroke-width: 6; } .tooltip { font-family: sans-serif; } .tooltip [data-line1] { position: relative; } .tooltip [data-line1]::before, .tooltip [data-line1]::after { text-transform: none; font-size: .9em; line-height: 1; user-select: none; pointer-events: none; position: absolute; display: none; opacity: 0; left: 50%; transform: translate(-50%, -0.5em); display: block; } .tooltip [data-line1]::before { content: ''; border: 5px solid transparent; z-index: 10001; bottom: 100%; border-bottom-width: 0; border-top-color: #333; } .tooltip [data-line1]::after { bottom: calc(100% + 5px); font-family: Helvetica, sans-serif; text-align: center; min-width: 3em; max-width: 42em; padding: 1ch 1.5ch; border-radius: .3ch; box-shadow: 0 1em 2em -0.5em rgba(0, 0, 0, 0.35); background: #333; color: #fff; z-index: 10000; display: block; white-space: pre; content: attr(data-line1); } /* display second line if provided */ .tooltip [data-line1][data-line2]::after { content: attr(data-line1) "\a" attr(data-line2); } /* KEYFRAMES */ @keyframes tooltips-vert { to { opacity: .9; transform: translate(-50%, 0); } } @keyframes tooltips-horz { to { opacity: .9; transform: translate(0, -50%); } } .flex-table.query-viewer .flex-table-item:hover .tooltip [data-line1]::before, .flex-table.query-viewer .flex-table-item:hover .tooltip [data-line1]::after, .tooltip [data-line1]:hover::before, .tooltip [data-line2]:hover::after { animation: tooltips-vert 300ms ease-out forwards; } .flex-table.query-viewer .flex-table-row:first-child .flex-table-item .tooltip [data-line1]::before { top: 7px; border-top-width: 0; border: 5px solid transparent; border-bottom-color: #333; } .flex-table.query-viewer .flex-table-row:first-child .flex-table-item .tooltip [data-line1]::after { bottom: calc(-100% - 20px); } diff --git a/shrine-webclient/src/main/js/client/js-shrine/config.js b/shrine-webclient/src/main/js/client/js-shrine/config.js index 703add3ec..209375f95 100644 --- a/shrine-webclient/src/main/js/client/js-shrine/config.js +++ b/shrine-webclient/src/main/js/client/js-shrine/config.js @@ -1,753 +1,758 @@ System.config({ defaultJSExtensions: true, transpiler: false, paths: { "*": "dist/*", "github:*": "jspm_packages/github/*", "npm:*": "jspm_packages/npm/*" }, map: { "aurelia-animator-css": "npm:aurelia-animator-css@1.0.1", "aurelia-bootstrapper": "npm:aurelia-bootstrapper@1.0.0", "aurelia-event-aggregator": "npm:aurelia-event-aggregator@1.0.1", "aurelia-fetch-client": "npm:aurelia-fetch-client@1.0.1", "aurelia-framework": "npm:aurelia-framework@1.0.6", "aurelia-history-browser": "npm:aurelia-history-browser@1.0.0", "aurelia-loader-default": "npm:aurelia-loader-default@1.0.0", "aurelia-logging-console": "npm:aurelia-logging-console@1.0.0", "aurelia-pal-browser": "npm:aurelia-pal-browser@1.0.0", "aurelia-polyfills": "npm:aurelia-polyfills@1.1.1", "aurelia-router": "npm:aurelia-router@1.3.0", "aurelia-templating-binding": "npm:aurelia-templating-binding@1.0.0", "aurelia-templating-resources": "npm:aurelia-templating-resources@1.1.1", "aurelia-templating-router": "npm:aurelia-templating-router@1.0.0", "bluebird": "npm:bluebird@3.4.1", "bootstrap": "github:twbs/bootstrap@3.3.7", "fetch": "github:github/fetch@1.0.0", "font-awesome": "npm:font-awesome@4.7.0", "jquery": "npm:jquery@2.2.4", "moment": "npm:moment@2.18.1", "ramda": "npm:ramda@0.23.0", "text": "github:systemjs/plugin-text@0.0.8", "github:jspm/nodelibs-assert@0.1.0": { "assert": "npm:assert@1.4.1" }, "github:jspm/nodelibs-buffer@0.1.1": { "buffer": "npm:buffer@5.0.6" }, "github:jspm/nodelibs-process@0.1.2": { "process": "npm:process@0.11.10" }, "github:jspm/nodelibs-util@0.1.0": { "util": "npm:util@0.10.3" }, "github:jspm/nodelibs-vm@0.1.0": { "vm-browserify": "npm:vm-browserify@0.0.4" }, "github:twbs/bootstrap@3.3.7": { "jquery": "npm:jquery@2.2.4" }, "npm:assert@1.4.1": { "assert": "github:jspm/nodelibs-assert@0.1.0", "buffer": "github:jspm/nodelibs-buffer@0.1.1", "process": "github:jspm/nodelibs-process@0.1.2", "util": "npm:util@0.10.3" }, "npm:aurelia-animator-css@1.0.1": { "aurelia-metadata": "npm:aurelia-metadata@1.0.3", "aurelia-pal": "npm:aurelia-pal@1.3.0", "aurelia-templating": "npm:aurelia-templating@1.1.1" }, "npm:aurelia-binding@1.0.9": { "aurelia-logging": "npm:aurelia-logging@1.3.1", "aurelia-metadata": "npm:aurelia-metadata@1.0.3", "aurelia-pal": "npm:aurelia-pal@1.3.0", "aurelia-task-queue": "npm:aurelia-task-queue@1.1.0" }, "npm:aurelia-bootstrapper@1.0.0": { "aurelia-event-aggregator": "npm:aurelia-event-aggregator@1.0.1", "aurelia-framework": "npm:aurelia-framework@1.0.6", "aurelia-history": "npm:aurelia-history@1.0.0", "aurelia-history-browser": "npm:aurelia-history-browser@1.0.0", "aurelia-loader-default": "npm:aurelia-loader-default@1.0.0", "aurelia-logging-console": "npm:aurelia-logging-console@1.0.0", "aurelia-pal": "npm:aurelia-pal@1.3.0", "aurelia-pal-browser": "npm:aurelia-pal-browser@1.0.0", "aurelia-polyfills": "npm:aurelia-polyfills@1.1.1", "aurelia-router": "npm:aurelia-router@1.3.0", "aurelia-templating": "npm:aurelia-templating@1.1.1", "aurelia-templating-binding": "npm:aurelia-templating-binding@1.0.0", "aurelia-templating-resources": "npm:aurelia-templating-resources@1.1.1", "aurelia-templating-router": "npm:aurelia-templating-router@1.0.0" }, "npm:aurelia-dependency-injection@1.3.1": { "aurelia-metadata": "npm:aurelia-metadata@1.0.3", "aurelia-pal": "npm:aurelia-pal@1.3.0" }, "npm:aurelia-event-aggregator@1.0.1": { "aurelia-logging": "npm:aurelia-logging@1.3.1" }, "npm:aurelia-framework@1.0.6": { "aurelia-binding": "npm:aurelia-binding@1.0.9", "aurelia-dependency-injection": "npm:aurelia-dependency-injection@1.3.1", "aurelia-loader": "npm:aurelia-loader@1.0.0", "aurelia-logging": "npm:aurelia-logging@1.3.1", "aurelia-metadata": "npm:aurelia-metadata@1.0.3", "aurelia-pal": "npm:aurelia-pal@1.3.0", "aurelia-path": "npm:aurelia-path@1.1.1", "aurelia-task-queue": "npm:aurelia-task-queue@1.1.0", "aurelia-templating": "npm:aurelia-templating@1.1.1" }, "npm:aurelia-history-browser@1.0.0": { "aurelia-history": "npm:aurelia-history@1.0.0", "aurelia-pal": "npm:aurelia-pal@1.3.0" }, "npm:aurelia-loader-default@1.0.0": { "aurelia-loader": "npm:aurelia-loader@1.0.0", "aurelia-metadata": "npm:aurelia-metadata@1.0.3", "aurelia-pal": "npm:aurelia-pal@1.3.0" }, "npm:aurelia-loader@1.0.0": { "aurelia-metadata": "npm:aurelia-metadata@1.0.3", "aurelia-path": "npm:aurelia-path@1.1.1" }, "npm:aurelia-logging-console@1.0.0": { "aurelia-logging": "npm:aurelia-logging@1.3.1" }, "npm:aurelia-metadata@1.0.3": { "aurelia-pal": "npm:aurelia-pal@1.3.0" }, "npm:aurelia-pal-browser@1.0.0": { "aurelia-pal": "npm:aurelia-pal@1.3.0" }, "npm:aurelia-polyfills@1.1.1": { "aurelia-pal": "npm:aurelia-pal@1.3.0" }, "npm:aurelia-route-recognizer@1.1.0": { "aurelia-path": "npm:aurelia-path@1.1.1" }, "npm:aurelia-router@1.3.0": { "aurelia-dependency-injection": "npm:aurelia-dependency-injection@1.3.1", "aurelia-event-aggregator": "npm:aurelia-event-aggregator@1.0.1", "aurelia-history": "npm:aurelia-history@1.0.0", "aurelia-logging": "npm:aurelia-logging@1.3.1", "aurelia-path": "npm:aurelia-path@1.1.1", "aurelia-route-recognizer": "npm:aurelia-route-recognizer@1.1.0" }, "npm:aurelia-task-queue@1.1.0": { "aurelia-pal": "npm:aurelia-pal@1.3.0" }, "npm:aurelia-templating-binding@1.0.0": { "aurelia-binding": "npm:aurelia-binding@1.0.9", "aurelia-logging": "npm:aurelia-logging@1.3.1", "aurelia-templating": "npm:aurelia-templating@1.1.1" }, "npm:aurelia-templating-resources@1.1.1": { "aurelia-binding": "npm:aurelia-binding@1.0.9", "aurelia-dependency-injection": "npm:aurelia-dependency-injection@1.3.1", "aurelia-loader": "npm:aurelia-loader@1.0.0", "aurelia-logging": "npm:aurelia-logging@1.3.1", "aurelia-metadata": "npm:aurelia-metadata@1.0.3", "aurelia-pal": "npm:aurelia-pal@1.3.0", "aurelia-path": "npm:aurelia-path@1.1.1", "aurelia-task-queue": "npm:aurelia-task-queue@1.1.0", "aurelia-templating": "npm:aurelia-templating@1.1.1" }, "npm:aurelia-templating-router@1.0.0": { "aurelia-dependency-injection": "npm:aurelia-dependency-injection@1.3.1", "aurelia-logging": "npm:aurelia-logging@1.3.1", "aurelia-metadata": "npm:aurelia-metadata@1.0.3", "aurelia-pal": "npm:aurelia-pal@1.3.0", "aurelia-path": "npm:aurelia-path@1.1.1", "aurelia-router": "npm:aurelia-router@1.3.0", "aurelia-templating": "npm:aurelia-templating@1.1.1" }, "npm:aurelia-templating@1.1.1": { "aurelia-binding": "npm:aurelia-binding@1.0.9", "aurelia-dependency-injection": "npm:aurelia-dependency-injection@1.3.1", "aurelia-loader": "npm:aurelia-loader@1.0.0", "aurelia-logging": "npm:aurelia-logging@1.3.1", "aurelia-metadata": "npm:aurelia-metadata@1.0.3", "aurelia-pal": "npm:aurelia-pal@1.3.0", "aurelia-path": "npm:aurelia-path@1.1.1", "aurelia-task-queue": "npm:aurelia-task-queue@1.1.0" }, "npm:bluebird@3.4.1": { "process": "github:jspm/nodelibs-process@0.1.2" }, "npm:buffer@5.0.6": { "base64-js": "npm:base64-js@1.2.0", "ieee754": "npm:ieee754@1.1.8" }, "npm:font-awesome@4.7.0": { "css": "github:systemjs/plugin-css@0.1.33" }, "npm:inherits@2.0.1": { "util": "github:jspm/nodelibs-util@0.1.0" }, "npm:process@0.11.10": { "assert": "github:jspm/nodelibs-assert@0.1.0", "fs": "github:jspm/nodelibs-fs@0.1.2", "vm": "github:jspm/nodelibs-vm@0.1.0" }, "npm:ramda@0.23.0": { "assert": "github:jspm/nodelibs-assert@0.1.0", "process": "github:jspm/nodelibs-process@0.1.2", "util": "github:jspm/nodelibs-util@0.1.0", "vm": "github:jspm/nodelibs-vm@0.1.0" }, "npm:util@0.10.3": { "inherits": "npm:inherits@2.0.1", "process": "github:jspm/nodelibs-process@0.1.2" }, "npm:vm-browserify@0.0.4": { "indexof": "npm:indexof@0.0.1" } }, + depCache: { + "repository/qep.repository.js": [ + "aurelia-fetch-client", + "fetch" + ], + "resources/converters/datetime.value.converter.js": [ + "moment" + ], + "resources/custom/breakdown/breakdown.js": [ + "aurelia-framework" + ], + "resources/custom/error/error.js": [ + "aurelia-framework", + "services/pub-sub" + ], + "resources/custom/node-result/node-result.js": [ + "aurelia-framework" + ], + "resources/custom/node-status/node-status.js": [ + "aurelia-framework", + "services/pub-sub" + ], + "resources/custom/patient-count/patient-count.js": [ + "aurelia-framework" + ], + "services/container.js": [ + "ramda" + ], + "services/i2b2.pub-sub.js": [ + "./pub-sub", + "./i2b2.service" + ], + "services/i2b2.service.js": [ + "ramda", + "./container" + ], + "services/pub-sub.js": [ + "aurelia-event-aggregator", + "./shrine.messages" + ], + "services/queries.model.js": [ + "aurelia-event-aggregator", + "repository/qep.repository", + "./shrine.messages" + ], + "services/query-status.model.js": [ + "aurelia-event-aggregator", + "repository/qep.repository", + "./shrine.messages" + ], + "shell.js": [ + "services/i2b2.pub-sub" + ], + "views/mailto/mailto.js": [ + "views/mailto/mailto.service", + "views/mailto/mailto.config" + ], + "views/mailto/mailto.service.js": [ + "repository/qep.repository" + ], + "views/query-status/query-status.js": [ + "services/query-status.model", + "services/pub-sub" + ], + "views/query-viewer/context-menu/context-menu.js": [ + "aurelia-framework", + "aurelia-event-aggregator", + "common/shrine.messages" + ], + "views/query-viewer/date.converter.js": [ + "moment" + ], + "views/query-viewer/loading-bar/loading-bar.js": [ + "aurelia-framework" + ], + "views/query-viewer/paginator/paginator.js": [ + "aurelia-framework" + ], + "views/query-viewer/query-status/query-status.js": [ + "aurelia-framework", + "ramda" + ], + "views/query-viewer/query-viewer.js": [ + "aurelia-event-aggregator", + "common/queries.model", + "./scroll.service", + "common/shrine.messages" + ], + "views/query-viewer/scroll.service.js": [ + "ramda", + "common/container" + ] + }, bundles: { + "app-build.js": [ + "main.js", + "repository/qep.repository.js", + "resources/converters/box-style.converter.js", + "resources/converters/count-value-converter.js", + "resources/converters/datetime.value.converter.js", + "resources/converters/result-style.converter.js", + "resources/converters/result-value.converter.js", + "resources/custom/breakdown/breakdown.html!github:systemjs/plugin-text@0.0.8.js", + "resources/custom/breakdown/breakdown.js", + "resources/custom/error/error.html!github:systemjs/plugin-text@0.0.8.js", + "resources/custom/error/error.js", + "resources/custom/node-result/node-result.html!github:systemjs/plugin-text@0.0.8.js", + "resources/custom/node-result/node-result.js", + "resources/custom/node-status/node-status.html!github:systemjs/plugin-text@0.0.8.js", + "resources/custom/node-status/node-status.js", + "resources/custom/node-status/temp.html!github:systemjs/plugin-text@0.0.8.js", + "resources/custom/patient-count/patient-count.html!github:systemjs/plugin-text@0.0.8.js", + "resources/custom/patient-count/patient-count.js", + "resources/index.js", + "services/container.js", + "services/i2b2.pub-sub.js", + "services/i2b2.service.js", + "services/pub-sub.js", + "services/queries.model.js", + "services/query-status.model.js", + "services/shrine.messages.js", + "shell.html!github:systemjs/plugin-text@0.0.8.js", + "shell.js", + "views/index.js", + "views/mailto/mailto.config.js", + "views/mailto/mailto.html!github:systemjs/plugin-text@0.0.8.js", + "views/mailto/mailto.js", + "views/mailto/mailto.service.js", + "views/query-status/query-status.html!github:systemjs/plugin-text@0.0.8.js", + "views/query-status/query-status.js", + "views/query-viewer/context-menu/context-menu.html!github:systemjs/plugin-text@0.0.8.js", + "views/query-viewer/context-menu/context-menu.js", + "views/query-viewer/date.converter.js", + "views/query-viewer/loading-bar/loading-bar.html!github:systemjs/plugin-text@0.0.8.js", + "views/query-viewer/loading-bar/loading-bar.js", + "views/query-viewer/loading-bar/row-loader.html!github:systemjs/plugin-text@0.0.8.js", + "views/query-viewer/paginator/paginator.html!github:systemjs/plugin-text@0.0.8.js", + "views/query-viewer/paginator/paginator.js", + "views/query-viewer/query-status/query-status.html!github:systemjs/plugin-text@0.0.8.js", + "views/query-viewer/query-status/query-status.js", + "views/query-viewer/query-viewer.config.js", + "views/query-viewer/query-viewer.html!github:systemjs/plugin-text@0.0.8.js", + "views/query-viewer/query-viewer.js", + "views/query-viewer/scroll.service.js" + ], "aurelia.js": [ "github:github/fetch@1.0.0.js", "github:github/fetch@1.0.0/fetch.js", "github:jspm/nodelibs-process@0.1.2.js", "github:jspm/nodelibs-process@0.1.2/index.js", "npm:aurelia-binding@1.0.9.js", "npm:aurelia-binding@1.0.9/aurelia-binding.js", "npm:aurelia-bootstrapper@1.0.0.js", "npm:aurelia-bootstrapper@1.0.0/aurelia-bootstrapper.js", "npm:aurelia-dependency-injection@1.3.1.js", "npm:aurelia-dependency-injection@1.3.1/aurelia-dependency-injection.js", "npm:aurelia-event-aggregator@1.0.1.js", "npm:aurelia-event-aggregator@1.0.1/aurelia-event-aggregator.js", "npm:aurelia-fetch-client@1.0.1.js", "npm:aurelia-fetch-client@1.0.1/aurelia-fetch-client.js", "npm:aurelia-framework@1.0.6.js", "npm:aurelia-framework@1.0.6/aurelia-framework.js", "npm:aurelia-history-browser@1.0.0.js", "npm:aurelia-history-browser@1.0.0/aurelia-history-browser.js", "npm:aurelia-history@1.0.0.js", "npm:aurelia-history@1.0.0/aurelia-history.js", "npm:aurelia-loader-default@1.0.0.js", "npm:aurelia-loader-default@1.0.0/aurelia-loader-default.js", "npm:aurelia-loader@1.0.0.js", "npm:aurelia-loader@1.0.0/aurelia-loader.js", "npm:aurelia-logging-console@1.0.0.js", "npm:aurelia-logging-console@1.0.0/aurelia-logging-console.js", "npm:aurelia-logging@1.3.1.js", "npm:aurelia-logging@1.3.1/aurelia-logging.js", "npm:aurelia-metadata@1.0.3.js", "npm:aurelia-metadata@1.0.3/aurelia-metadata.js", "npm:aurelia-pal-browser@1.0.0.js", "npm:aurelia-pal-browser@1.0.0/aurelia-pal-browser.js", "npm:aurelia-pal@1.3.0.js", "npm:aurelia-pal@1.3.0/aurelia-pal.js", "npm:aurelia-path@1.1.1.js", "npm:aurelia-path@1.1.1/aurelia-path.js", "npm:aurelia-polyfills@1.1.1.js", "npm:aurelia-polyfills@1.1.1/aurelia-polyfills.js", "npm:aurelia-route-recognizer@1.1.0.js", "npm:aurelia-route-recognizer@1.1.0/aurelia-route-recognizer.js", "npm:aurelia-router@1.3.0.js", "npm:aurelia-router@1.3.0/aurelia-router.js", "npm:aurelia-task-queue@1.1.0.js", "npm:aurelia-task-queue@1.1.0/aurelia-task-queue.js", "npm:aurelia-templating-binding@1.0.0.js", "npm:aurelia-templating-binding@1.0.0/aurelia-templating-binding.js", "npm:aurelia-templating-resources@1.1.1.js", "npm:aurelia-templating-resources@1.1.1/abstract-repeater.js", "npm:aurelia-templating-resources@1.1.1/analyze-view-factory.js", "npm:aurelia-templating-resources@1.1.1/array-repeat-strategy.js", "npm:aurelia-templating-resources@1.1.1/attr-binding-behavior.js", "npm:aurelia-templating-resources@1.1.1/aurelia-hide-style.js", "npm:aurelia-templating-resources@1.1.1/aurelia-templating-resources.js", "npm:aurelia-templating-resources@1.1.1/binding-mode-behaviors.js", "npm:aurelia-templating-resources@1.1.1/binding-signaler.js", "npm:aurelia-templating-resources@1.1.1/compose.js", "npm:aurelia-templating-resources@1.1.1/css-resource.js", "npm:aurelia-templating-resources@1.1.1/debounce-binding-behavior.js", "npm:aurelia-templating-resources@1.1.1/dynamic-element.js", "npm:aurelia-templating-resources@1.1.1/focus.js", "npm:aurelia-templating-resources@1.1.1/hide.js", "npm:aurelia-templating-resources@1.1.1/html-resource-plugin.js", "npm:aurelia-templating-resources@1.1.1/html-sanitizer.js", "npm:aurelia-templating-resources@1.1.1/if.js", "npm:aurelia-templating-resources@1.1.1/map-repeat-strategy.js", "npm:aurelia-templating-resources@1.1.1/null-repeat-strategy.js", "npm:aurelia-templating-resources@1.1.1/number-repeat-strategy.js", "npm:aurelia-templating-resources@1.1.1/repeat-strategy-locator.js", "npm:aurelia-templating-resources@1.1.1/repeat-utilities.js", "npm:aurelia-templating-resources@1.1.1/repeat.js", "npm:aurelia-templating-resources@1.1.1/replaceable.js", "npm:aurelia-templating-resources@1.1.1/sanitize-html.js", "npm:aurelia-templating-resources@1.1.1/set-repeat-strategy.js", "npm:aurelia-templating-resources@1.1.1/show.js", "npm:aurelia-templating-resources@1.1.1/signal-binding-behavior.js", "npm:aurelia-templating-resources@1.1.1/throttle-binding-behavior.js", "npm:aurelia-templating-resources@1.1.1/update-trigger-binding-behavior.js", "npm:aurelia-templating-resources@1.1.1/with.js", "npm:aurelia-templating-router@1.0.0.js", "npm:aurelia-templating-router@1.0.0/aurelia-templating-router.js", "npm:aurelia-templating-router@1.0.0/route-href.js", "npm:aurelia-templating-router@1.0.0/route-loader.js", "npm:aurelia-templating-router@1.0.0/router-view.js", "npm:aurelia-templating@1.1.1.js", "npm:aurelia-templating@1.1.1/aurelia-templating.js", "npm:font-awesome@4.7.0.js", "npm:font-awesome@4.7.0/css/font-awesome.css!github:systemjs/plugin-css@0.1.33.js", "npm:jquery@2.2.4.js", "npm:jquery@2.2.4/dist/jquery.js", "npm:moment@2.18.1.js", "npm:moment@2.18.1/moment.js", "npm:process@0.11.10.js", "npm:process@0.11.10/browser.js", "npm:ramda@0.23.0.js", "npm:ramda@0.23.0/index.js", "npm:ramda@0.23.0/src/F.js", "npm:ramda@0.23.0/src/T.js", "npm:ramda@0.23.0/src/__.js", "npm:ramda@0.23.0/src/add.js", "npm:ramda@0.23.0/src/addIndex.js", "npm:ramda@0.23.0/src/adjust.js", "npm:ramda@0.23.0/src/all.js", "npm:ramda@0.23.0/src/allPass.js", "npm:ramda@0.23.0/src/always.js", "npm:ramda@0.23.0/src/and.js", "npm:ramda@0.23.0/src/any.js", "npm:ramda@0.23.0/src/anyPass.js", "npm:ramda@0.23.0/src/ap.js", "npm:ramda@0.23.0/src/aperture.js", "npm:ramda@0.23.0/src/append.js", "npm:ramda@0.23.0/src/apply.js", "npm:ramda@0.23.0/src/applySpec.js", "npm:ramda@0.23.0/src/ascend.js", "npm:ramda@0.23.0/src/assoc.js", "npm:ramda@0.23.0/src/assocPath.js", "npm:ramda@0.23.0/src/binary.js", "npm:ramda@0.23.0/src/bind.js", "npm:ramda@0.23.0/src/both.js", "npm:ramda@0.23.0/src/call.js", "npm:ramda@0.23.0/src/chain.js", "npm:ramda@0.23.0/src/clamp.js", "npm:ramda@0.23.0/src/clone.js", "npm:ramda@0.23.0/src/comparator.js", "npm:ramda@0.23.0/src/complement.js", "npm:ramda@0.23.0/src/compose.js", "npm:ramda@0.23.0/src/composeK.js", "npm:ramda@0.23.0/src/composeP.js", "npm:ramda@0.23.0/src/concat.js", "npm:ramda@0.23.0/src/cond.js", "npm:ramda@0.23.0/src/construct.js", "npm:ramda@0.23.0/src/constructN.js", "npm:ramda@0.23.0/src/contains.js", "npm:ramda@0.23.0/src/converge.js", "npm:ramda@0.23.0/src/countBy.js", "npm:ramda@0.23.0/src/curry.js", "npm:ramda@0.23.0/src/curryN.js", "npm:ramda@0.23.0/src/dec.js", "npm:ramda@0.23.0/src/defaultTo.js", "npm:ramda@0.23.0/src/descend.js", "npm:ramda@0.23.0/src/difference.js", "npm:ramda@0.23.0/src/differenceWith.js", "npm:ramda@0.23.0/src/dissoc.js", "npm:ramda@0.23.0/src/dissocPath.js", "npm:ramda@0.23.0/src/divide.js", "npm:ramda@0.23.0/src/drop.js", "npm:ramda@0.23.0/src/dropLast.js", "npm:ramda@0.23.0/src/dropLastWhile.js", "npm:ramda@0.23.0/src/dropRepeats.js", "npm:ramda@0.23.0/src/dropRepeatsWith.js", "npm:ramda@0.23.0/src/dropWhile.js", "npm:ramda@0.23.0/src/either.js", "npm:ramda@0.23.0/src/empty.js", "npm:ramda@0.23.0/src/eqBy.js", "npm:ramda@0.23.0/src/eqProps.js", "npm:ramda@0.23.0/src/equals.js", "npm:ramda@0.23.0/src/evolve.js", "npm:ramda@0.23.0/src/filter.js", "npm:ramda@0.23.0/src/find.js", "npm:ramda@0.23.0/src/findIndex.js", "npm:ramda@0.23.0/src/findLast.js", "npm:ramda@0.23.0/src/findLastIndex.js", "npm:ramda@0.23.0/src/flatten.js", "npm:ramda@0.23.0/src/flip.js", "npm:ramda@0.23.0/src/forEach.js", "npm:ramda@0.23.0/src/forEachObjIndexed.js", "npm:ramda@0.23.0/src/fromPairs.js", "npm:ramda@0.23.0/src/groupBy.js", "npm:ramda@0.23.0/src/groupWith.js", "npm:ramda@0.23.0/src/gt.js", "npm:ramda@0.23.0/src/gte.js", "npm:ramda@0.23.0/src/has.js", "npm:ramda@0.23.0/src/hasIn.js", "npm:ramda@0.23.0/src/head.js", "npm:ramda@0.23.0/src/identical.js", "npm:ramda@0.23.0/src/identity.js", "npm:ramda@0.23.0/src/ifElse.js", "npm:ramda@0.23.0/src/inc.js", "npm:ramda@0.23.0/src/indexBy.js", "npm:ramda@0.23.0/src/indexOf.js", "npm:ramda@0.23.0/src/init.js", "npm:ramda@0.23.0/src/insert.js", "npm:ramda@0.23.0/src/insertAll.js", "npm:ramda@0.23.0/src/internal/_Set.js", "npm:ramda@0.23.0/src/internal/_aperture.js", "npm:ramda@0.23.0/src/internal/_arity.js", "npm:ramda@0.23.0/src/internal/_arrayFromIterator.js", "npm:ramda@0.23.0/src/internal/_assign.js", "npm:ramda@0.23.0/src/internal/_checkForMethod.js", "npm:ramda@0.23.0/src/internal/_clone.js", "npm:ramda@0.23.0/src/internal/_cloneRegExp.js", "npm:ramda@0.23.0/src/internal/_complement.js", "npm:ramda@0.23.0/src/internal/_concat.js", "npm:ramda@0.23.0/src/internal/_contains.js", "npm:ramda@0.23.0/src/internal/_containsWith.js", "npm:ramda@0.23.0/src/internal/_createPartialApplicator.js", "npm:ramda@0.23.0/src/internal/_curry1.js", "npm:ramda@0.23.0/src/internal/_curry2.js", "npm:ramda@0.23.0/src/internal/_curry3.js", "npm:ramda@0.23.0/src/internal/_curryN.js", "npm:ramda@0.23.0/src/internal/_dispatchable.js", "npm:ramda@0.23.0/src/internal/_dropLast.js", "npm:ramda@0.23.0/src/internal/_dropLastWhile.js", "npm:ramda@0.23.0/src/internal/_equals.js", "npm:ramda@0.23.0/src/internal/_filter.js", "npm:ramda@0.23.0/src/internal/_flatCat.js", "npm:ramda@0.23.0/src/internal/_forceReduced.js", "npm:ramda@0.23.0/src/internal/_functionName.js", "npm:ramda@0.23.0/src/internal/_has.js", "npm:ramda@0.23.0/src/internal/_identity.js", "npm:ramda@0.23.0/src/internal/_indexOf.js", "npm:ramda@0.23.0/src/internal/_isArguments.js", "npm:ramda@0.23.0/src/internal/_isArray.js", "npm:ramda@0.23.0/src/internal/_isFunction.js", "npm:ramda@0.23.0/src/internal/_isInteger.js", "npm:ramda@0.23.0/src/internal/_isNumber.js", "npm:ramda@0.23.0/src/internal/_isObject.js", "npm:ramda@0.23.0/src/internal/_isPlaceholder.js", "npm:ramda@0.23.0/src/internal/_isRegExp.js", "npm:ramda@0.23.0/src/internal/_isString.js", "npm:ramda@0.23.0/src/internal/_isTransformer.js", "npm:ramda@0.23.0/src/internal/_makeFlat.js", "npm:ramda@0.23.0/src/internal/_map.js", "npm:ramda@0.23.0/src/internal/_objectAssign.js", "npm:ramda@0.23.0/src/internal/_of.js", "npm:ramda@0.23.0/src/internal/_pipe.js", "npm:ramda@0.23.0/src/internal/_pipeP.js", "npm:ramda@0.23.0/src/internal/_quote.js", "npm:ramda@0.23.0/src/internal/_reduce.js", "npm:ramda@0.23.0/src/internal/_reduced.js", "npm:ramda@0.23.0/src/internal/_stepCat.js", "npm:ramda@0.23.0/src/internal/_toISOString.js", "npm:ramda@0.23.0/src/internal/_toString.js", "npm:ramda@0.23.0/src/internal/_xall.js", "npm:ramda@0.23.0/src/internal/_xany.js", "npm:ramda@0.23.0/src/internal/_xaperture.js", "npm:ramda@0.23.0/src/internal/_xchain.js", "npm:ramda@0.23.0/src/internal/_xdrop.js", "npm:ramda@0.23.0/src/internal/_xdropLast.js", "npm:ramda@0.23.0/src/internal/_xdropLastWhile.js", "npm:ramda@0.23.0/src/internal/_xdropRepeatsWith.js", "npm:ramda@0.23.0/src/internal/_xdropWhile.js", "npm:ramda@0.23.0/src/internal/_xfBase.js", "npm:ramda@0.23.0/src/internal/_xfilter.js", "npm:ramda@0.23.0/src/internal/_xfind.js", "npm:ramda@0.23.0/src/internal/_xfindIndex.js", "npm:ramda@0.23.0/src/internal/_xfindLast.js", "npm:ramda@0.23.0/src/internal/_xfindLastIndex.js", "npm:ramda@0.23.0/src/internal/_xmap.js", "npm:ramda@0.23.0/src/internal/_xreduceBy.js", "npm:ramda@0.23.0/src/internal/_xtake.js", "npm:ramda@0.23.0/src/internal/_xtakeWhile.js", "npm:ramda@0.23.0/src/internal/_xwrap.js", "npm:ramda@0.23.0/src/intersection.js", "npm:ramda@0.23.0/src/intersectionWith.js", "npm:ramda@0.23.0/src/intersperse.js", "npm:ramda@0.23.0/src/into.js", "npm:ramda@0.23.0/src/invert.js", "npm:ramda@0.23.0/src/invertObj.js", "npm:ramda@0.23.0/src/invoker.js", "npm:ramda@0.23.0/src/is.js", "npm:ramda@0.23.0/src/isArrayLike.js", "npm:ramda@0.23.0/src/isEmpty.js", "npm:ramda@0.23.0/src/isNil.js", "npm:ramda@0.23.0/src/join.js", "npm:ramda@0.23.0/src/juxt.js", "npm:ramda@0.23.0/src/keys.js", "npm:ramda@0.23.0/src/keysIn.js", "npm:ramda@0.23.0/src/last.js", "npm:ramda@0.23.0/src/lastIndexOf.js", "npm:ramda@0.23.0/src/length.js", "npm:ramda@0.23.0/src/lens.js", "npm:ramda@0.23.0/src/lensIndex.js", "npm:ramda@0.23.0/src/lensPath.js", "npm:ramda@0.23.0/src/lensProp.js", "npm:ramda@0.23.0/src/lift.js", "npm:ramda@0.23.0/src/liftN.js", "npm:ramda@0.23.0/src/lt.js", "npm:ramda@0.23.0/src/lte.js", "npm:ramda@0.23.0/src/map.js", "npm:ramda@0.23.0/src/mapAccum.js", "npm:ramda@0.23.0/src/mapAccumRight.js", "npm:ramda@0.23.0/src/mapObjIndexed.js", "npm:ramda@0.23.0/src/match.js", "npm:ramda@0.23.0/src/mathMod.js", "npm:ramda@0.23.0/src/max.js", "npm:ramda@0.23.0/src/maxBy.js", "npm:ramda@0.23.0/src/mean.js", "npm:ramda@0.23.0/src/median.js", "npm:ramda@0.23.0/src/memoize.js", "npm:ramda@0.23.0/src/merge.js", "npm:ramda@0.23.0/src/mergeAll.js", "npm:ramda@0.23.0/src/mergeWith.js", "npm:ramda@0.23.0/src/mergeWithKey.js", "npm:ramda@0.23.0/src/min.js", "npm:ramda@0.23.0/src/minBy.js", "npm:ramda@0.23.0/src/modulo.js", "npm:ramda@0.23.0/src/multiply.js", "npm:ramda@0.23.0/src/nAry.js", "npm:ramda@0.23.0/src/negate.js", "npm:ramda@0.23.0/src/none.js", "npm:ramda@0.23.0/src/not.js", "npm:ramda@0.23.0/src/nth.js", "npm:ramda@0.23.0/src/nthArg.js", "npm:ramda@0.23.0/src/objOf.js", "npm:ramda@0.23.0/src/of.js", "npm:ramda@0.23.0/src/omit.js", "npm:ramda@0.23.0/src/once.js", "npm:ramda@0.23.0/src/or.js", "npm:ramda@0.23.0/src/over.js", "npm:ramda@0.23.0/src/pair.js", "npm:ramda@0.23.0/src/partial.js", "npm:ramda@0.23.0/src/partialRight.js", "npm:ramda@0.23.0/src/partition.js", "npm:ramda@0.23.0/src/path.js", "npm:ramda@0.23.0/src/pathEq.js", "npm:ramda@0.23.0/src/pathOr.js", "npm:ramda@0.23.0/src/pathSatisfies.js", "npm:ramda@0.23.0/src/pick.js", "npm:ramda@0.23.0/src/pickAll.js", "npm:ramda@0.23.0/src/pickBy.js", "npm:ramda@0.23.0/src/pipe.js", "npm:ramda@0.23.0/src/pipeK.js", "npm:ramda@0.23.0/src/pipeP.js", "npm:ramda@0.23.0/src/pluck.js", "npm:ramda@0.23.0/src/prepend.js", "npm:ramda@0.23.0/src/product.js", "npm:ramda@0.23.0/src/project.js", "npm:ramda@0.23.0/src/prop.js", "npm:ramda@0.23.0/src/propEq.js", "npm:ramda@0.23.0/src/propIs.js", "npm:ramda@0.23.0/src/propOr.js", "npm:ramda@0.23.0/src/propSatisfies.js", "npm:ramda@0.23.0/src/props.js", "npm:ramda@0.23.0/src/range.js", "npm:ramda@0.23.0/src/reduce.js", "npm:ramda@0.23.0/src/reduceBy.js", "npm:ramda@0.23.0/src/reduceRight.js", "npm:ramda@0.23.0/src/reduceWhile.js", "npm:ramda@0.23.0/src/reduced.js", "npm:ramda@0.23.0/src/reject.js", "npm:ramda@0.23.0/src/remove.js", "npm:ramda@0.23.0/src/repeat.js", "npm:ramda@0.23.0/src/replace.js", "npm:ramda@0.23.0/src/reverse.js", "npm:ramda@0.23.0/src/scan.js", "npm:ramda@0.23.0/src/sequence.js", "npm:ramda@0.23.0/src/set.js", "npm:ramda@0.23.0/src/slice.js", "npm:ramda@0.23.0/src/sort.js", "npm:ramda@0.23.0/src/sortBy.js", "npm:ramda@0.23.0/src/sortWith.js", "npm:ramda@0.23.0/src/split.js", "npm:ramda@0.23.0/src/splitAt.js", "npm:ramda@0.23.0/src/splitEvery.js", "npm:ramda@0.23.0/src/splitWhen.js", "npm:ramda@0.23.0/src/subtract.js", "npm:ramda@0.23.0/src/sum.js", "npm:ramda@0.23.0/src/symmetricDifference.js", "npm:ramda@0.23.0/src/symmetricDifferenceWith.js", "npm:ramda@0.23.0/src/tail.js", "npm:ramda@0.23.0/src/take.js", "npm:ramda@0.23.0/src/takeLast.js", "npm:ramda@0.23.0/src/takeLastWhile.js", "npm:ramda@0.23.0/src/takeWhile.js", "npm:ramda@0.23.0/src/tap.js", "npm:ramda@0.23.0/src/test.js", "npm:ramda@0.23.0/src/times.js", "npm:ramda@0.23.0/src/toLower.js", "npm:ramda@0.23.0/src/toPairs.js", "npm:ramda@0.23.0/src/toPairsIn.js", "npm:ramda@0.23.0/src/toString.js", "npm:ramda@0.23.0/src/toUpper.js", "npm:ramda@0.23.0/src/transduce.js", "npm:ramda@0.23.0/src/transpose.js", "npm:ramda@0.23.0/src/traverse.js", "npm:ramda@0.23.0/src/trim.js", "npm:ramda@0.23.0/src/tryCatch.js", "npm:ramda@0.23.0/src/type.js", "npm:ramda@0.23.0/src/unapply.js", "npm:ramda@0.23.0/src/unary.js", "npm:ramda@0.23.0/src/uncurryN.js", "npm:ramda@0.23.0/src/unfold.js", "npm:ramda@0.23.0/src/union.js", "npm:ramda@0.23.0/src/unionWith.js", "npm:ramda@0.23.0/src/uniq.js", "npm:ramda@0.23.0/src/uniqBy.js", "npm:ramda@0.23.0/src/uniqWith.js", "npm:ramda@0.23.0/src/unless.js", "npm:ramda@0.23.0/src/unnest.js", "npm:ramda@0.23.0/src/until.js", "npm:ramda@0.23.0/src/update.js", "npm:ramda@0.23.0/src/useWith.js", "npm:ramda@0.23.0/src/values.js", "npm:ramda@0.23.0/src/valuesIn.js", "npm:ramda@0.23.0/src/view.js", "npm:ramda@0.23.0/src/when.js", "npm:ramda@0.23.0/src/where.js", "npm:ramda@0.23.0/src/whereEq.js", "npm:ramda@0.23.0/src/without.js", "npm:ramda@0.23.0/src/xprod.js", "npm:ramda@0.23.0/src/zip.js", "npm:ramda@0.23.0/src/zipObj.js", "npm:ramda@0.23.0/src/zipWith.js" - ], - "app-build.js": [ - "common/container.js", - "common/converters/count-value-converter.js", - "common/converters/datetime.value.converter.js", - "common/i2b2.pub-sub.js", - "common/i2b2.service.js", - "common/publisher.js", - "common/queries.model.js", - "common/query-status.model.js", - "common/shrine.messages.js", - "main.js", - "repository/qep.repository.js", - "shell.html!github:systemjs/plugin-text@0.0.8.js", - "shell.js", - "views/mailto/mailto.config.js", - "views/mailto/mailto.html!github:systemjs/plugin-text@0.0.8.js", - "views/mailto/mailto.js", - "views/mailto/mailto.service.js", - "views/query-status/node-result/node-result.html!github:systemjs/plugin-text@0.0.8.js", - "views/query-status/node-result/node-result.js", - "views/query-status/node-result/result-types/error/error.html!github:systemjs/plugin-text@0.0.8.js", - "views/query-status/node-result/result-types/error/error.js", - "views/query-status/node-result/result-types/patient-count/breakdown.html!github:systemjs/plugin-text@0.0.8.js", - "views/query-status/node-result/result-types/patient-count/patient-count.html!github:systemjs/plugin-text@0.0.8.js", - "views/query-status/node-result/result-types/patient-count/patient-count.js", - "views/query-status/node-status/node-status.html!github:systemjs/plugin-text@0.0.8.js", - "views/query-status/node-status/node-status.js", - "views/query-status/query-status.html!github:systemjs/plugin-text@0.0.8.js", - "views/query-status/query-status.js", - "views/query-viewer/box-style.converter.js", - "views/query-viewer/context-menu/context-menu.html!github:systemjs/plugin-text@0.0.8.js", - "views/query-viewer/context-menu/context-menu.js", - "views/query-viewer/date.converter.js", - "views/query-viewer/loading-bar/loading-bar.html!github:systemjs/plugin-text@0.0.8.js", - "views/query-viewer/loading-bar/loading-bar.js", - "views/query-viewer/loading-bar/row-loader.html!github:systemjs/plugin-text@0.0.8.js", - "views/query-viewer/paginator/paginator.html!github:systemjs/plugin-text@0.0.8.js", - "views/query-viewer/paginator/paginator.js", - "views/query-viewer/query-status/query-status.html!github:systemjs/plugin-text@0.0.8.js", - "views/query-viewer/query-status/query-status.js", - "views/query-viewer/query-viewer.config.js", - "views/query-viewer/query-viewer.html!github:systemjs/plugin-text@0.0.8.js", - "views/query-viewer/query-viewer.js", - "views/query-viewer/result-style.converter.js", - "views/query-viewer/result-value.converter.js", - "views/query-viewer/scroll.service.js" - ] - }, - depCache: { - "common/container.js": [ - "ramda" - ], - "common/converters/datetime.value.converter.js": [ - "moment" - ], - "common/i2b2.pub-sub.js": [ - "aurelia-event-aggregator", - "./i2b2.service", - "./shrine.messages" - ], - "common/i2b2.service.js": [ - "ramda", - "./container" - ], - "common/publisher.js": [ - "aurelia-event-aggregator", - "common/shrine.messages" - ], - "common/queries.model.js": [ - "aurelia-event-aggregator", - "repository/qep.repository", - "./shrine.messages" - ], - "common/query-status.model.js": [ - "aurelia-event-aggregator", - "repository/qep.repository", - "./shrine.messages" - ], - "repository/qep.repository.js": [ - "aurelia-fetch-client", - "fetch" - ], - "shell.js": [ - "common/i2b2.pub-sub" - ], - "views/mailto/mailto.js": [ - "views/mailto/mailto.service", - "views/mailto/mailto.config" - ], - "views/mailto/mailto.service.js": [ - "repository/qep.repository" - ], - "views/query-status/node-result/node-result.js": [ - "aurelia-framework" - ], - "views/query-status/node-result/result-types/error/error.js": [ - "aurelia-framework", - "common/publisher" - ], - "views/query-status/node-result/result-types/patient-count/patient-count.js": [ - "aurelia-framework" - ], - "views/query-status/node-status/node-status.js": [ - "aurelia-framework", - "common/publisher" - ], - "views/query-status/query-status.js": [ - "aurelia-event-aggregator", - "common/shrine.messages", - "common/query-status.model" - ], - "views/query-viewer/context-menu/context-menu.js": [ - "aurelia-framework", - "aurelia-event-aggregator", - "common/shrine.messages" - ], - "views/query-viewer/date.converter.js": [ - "moment" - ], - "views/query-viewer/loading-bar/loading-bar.js": [ - "aurelia-framework" - ], - "views/query-viewer/paginator/paginator.js": [ - "aurelia-framework" - ], - "views/query-viewer/query-status/query-status.js": [ - "aurelia-framework", - "ramda" - ], - "views/query-viewer/query-viewer.js": [ - "aurelia-event-aggregator", - "common/queries.model", - "./scroll.service", - "common/shrine.messages" - ], - "views/query-viewer/scroll.service.js": [ - "ramda", - "common/container" ] } }); \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/app-build.js b/shrine-webclient/src/main/js/client/js-shrine/dist/app-build.js index ac82e38c8..caab633a8 100644 --- a/shrine-webclient/src/main/js/client/js-shrine/dist/app-build.js +++ b/shrine-webclient/src/main/js/client/js-shrine/dist/app-build.js @@ -1,2 +1,2 @@ -"bundle";System.register("common/converters/count-value-converter.js",[],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d;return{setters:[],execute:function(){a("CountValueConverter",d=function(){function a(){c(this,a)}return a.prototype.toView=function(a){return a<0?"<=10 patients":a+" +-10 patients"},a}()),a("CountValueConverter",d)}}}),System.register("common/converters/datetime.value.converter.js",["moment"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e;return{setters:[function(a){d=a["default"]}],execute:function(){a("DateTimeValueConverter",e=function(){function a(){c(this,a)}return a.prototype.toView=function(a){return d(a).format("MM/DD/YYYY h:mm:ss a")},a}()),a("DateTimeValueConverter",e)}}}),System.register("main.js",[],function(a,b){"use strict";function c(a){a.use.standardConfiguration().developmentLogging(),a.start().then(function(){return a.setRoot("shell")})}return a("configure",c),{setters:[],execute:function(){}}}),function(){var a=System.amdDefine;a("shell.html!github:systemjs/plugin-text@0.0.8.js",[],function(){return''})}(),System.register("common/i2b2.service.js",["ramda","./container"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g,h;return{setters:[function(a){d=a},function(a){e=a.Container}],execute:function(){a("I2B2Service",(g=f=function b(a){c(this,b);var f=a?e.of(a):e.of(null),g=d.curry(function(a,b){return b.value?e.of(d.prop(a,b.value)):e.of(null)}),h=d.compose(g("i2b2"),g("window"),g("parent")),i=d.compose(g("CRC"),h),j=d.compose(g("events"),h),k=d.compose(g("SHRINE"),h);b.prototype.onResize=function(a){return j(f).map(function(b){return b.changedZoomWindows.subscribe(a)})},b.prototype.onHistory=function(a){return i(f).map(function(b){return b.ctrlr.history.events.onDataUpdate.subscribe(a)})},b.prototype.onQuery=function(a){return j(f).map(function(b){return b.afterQueryInit.subscribe(a)})},b.prototype.onViewSelected=function(a){return g("addEventListener",f).value?e.of(f.value.addEventListener("message",a,!1)):e.of(null)},b.prototype.loadHistory=function(){return i(f).map(function(a){return a.view.history.doRefreshAll()})},b.prototype.loadQuery=function(a){return i(f).map(function(b){return b.ctrlr.QT.doQueryLoad(a)})},b.prototype.errorDetail=function(a){return k(f).map(function(b){return b.plugin.errorDetail(a)})},b.prototype.renameQuery=function(a){return i(f).map(function(b){return b.ctrlr.history.queryRename(a,!1)})},b.prototype.flagQuery=function(a){return i(f).map(function(b){return b.ctrlr.history.Flag({queryId:a,message:""})})},b.prototype.unflagQuery=function(a){return i(f).map(function(b){return b.ctrlr.history.Unflag({queryId:a})})}},f.inject=[window],h=g)),a("I2B2Service",h)}}}),System.register("common/i2b2.pub-sub.js",["aurelia-event-aggregator","./i2b2.service","./shrine.messages"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g,h,i,j;return{setters:[function(a){d=a.EventAggregator},function(a){e=a.I2B2Service},function(a){f=a.notifications,g=a.commands}],execute:function(){a("I2B2PubSub",(i=h=function b(a,d,e,f){c(this,b),this.listen=function(){d.onResize(function(a,b){return b.find(function(a){return"ADD"===a.action})?g():h()}),d.onHistory(function(){return i()}),d.onQuery(function(a,b){return j(b[0].name)}),d.onViewSelected(function(a){return k(a.data)}),a.subscribe(f.i2b2.cloneQuery,l),a.subscribe(f.i2b2.showError,m),a.subscribe(f.i2b2.renameQuery,n),a.subscribe(f.i2b2.flagQuery,o),a.subscribe(f.i2b2.unflagQuery,p)};var g=function(){return a.publish(e.i2b2.tabMax)},h=function(){return a.publish(e.i2b2.tabMin)},i=function(){return a.publish(e.i2b2.historyRefreshed)},j=function(b){return a.publish(e.i2b2.queryStarted,b)},k=function(b){return a.publish(e.i2b2.viewSelected,b)},l=function(a){return d.loadQuery(a)},m=function(a){console.log(f.i2b2.showError+": "+a),d.errorDetail(a)},n=function(a){return d.renameQuery(a)},o=function(a){return d.flagQuery(a)},p=function(a){return d.unflagQuery(a)}},h.inject=[d,e,f,g],j=i)),a("I2B2PubSub",j)}}}),System.register("shell.js",["common/i2b2.pub-sub"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g;return{setters:[function(a){d=a.I2B2PubSub}],execute:function(){a("Shell",(f=e=function b(a){c(this,b),a.listen()},e.inject=[d],g=f)),a("Shell",g)}}}),function(){var a=System.amdDefine;a("views/mailto/mailto.html!github:systemjs/plugin-text@0.0.8.js",[],function(){return''})}(),System.register("views/mailto/mailto.service.js",["repository/qep.repository"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g;return{setters:[function(a){d=a.QEPRepository}],execute:function(){a("MailToService",(f=e=function(){function a(b){c(this,a),this.repository=b}return a.prototype.fetchStewardEmail=function(){return this.repository.fetchStewardEmail()},a}(),e.inject=[d],g=f)),a("MailToService",g)}}}),System.register("views/mailto/mailto.config.js",[],function(a,b){"use strict";var c;return{setters:[],execute:function(){a("MailConfig",c={mailto:"mailto:",subject:encodeURIComponent("Question from a SHRINE User"),body:encodeURIComponent("Please enter the suggested information and your question. Your data steward will reply to this email.\n \n\n***Never send patient information, passwords, or other sensitive information by email****\n \nName:\n \nTitle:\n \nUser name (to log into SHRINE):\n \nTelephone Number (optional):\n \nPreferred email address (optional):\n \n\nQuestion or Comment:")}),a("MailConfig",c)}}}),System.register("views/mailto/mailto.js",["views/mailto/mailto.service","views/mailto/mailto.config"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g,h;return{setters:[function(a){d=a.MailToService},function(a){e=a.MailConfig}],execute:function(){a("MailTo",(g=f=function(){function a(b,d){c(this,a),this.service=b,this.config=d}return a.prototype.openEmail=function(){var a=this;this.service.fetchStewardEmail().then(function(b){window.top.location="mailto:"+b+"?subject="+a.config.subject+"&body="+a.config.body})},a}(),f.inject=[d,e],h=g)),a("MailTo",h)}}}),function(){var a=System.amdDefine;a("views/query-status/node-result/node-result.html!github:systemjs/plugin-text@0.0.8.js",[],function(){return''})}(),System.register("views/query-status/node-result/node-result.js",["aurelia-framework"],function(a,b){"use strict";function c(a,b,c,d){c&&Object.defineProperty(a,b,{enumerable:c.enumerable,configurable:c.configurable,writable:c.writable,value:c.initializer?c.initializer.call(d):void 0})}function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b,c,d,e){var f={};return Object.keys(d).forEach(function(a){f[a]=d[a]}),f.enumerable=!!f.enumerable,f.configurable=!!f.configurable,("value"in f||f.initializer)&&(f.writable=!0),f=c.slice().reverse().reduce(function(c,d){return d(a,b,c)||c},f),e&&void 0!==f.initializer&&(f.value=f.initializer?f.initializer.call(e):void 0,f.initializer=void 0),void 0===f.initializer&&(Object.defineProperty(a,b,f),f=null),f}var f,g,h,i,j;return{setters:[function(a){f=a.bindable}],execute:function(){a("NodeResult",(g=function b(){d(this,b),c(this,"result",h,this),c(this,"queryName",i,this)},h=e(g.prototype,"result",[f],{enumerable:!0,initializer:null}),i=e(g.prototype,"queryName",[f],{enumerable:!0,initializer:null}),j=g)),a("NodeResult",j)}}}),function(){var a=System.amdDefine;a("views/query-status/node-result/result-types/error/error.html!github:systemjs/plugin-text@0.0.8.js",[],function(){return''})}(),System.register("views/query-status/node-result/result-types/error/error.js",["aurelia-framework","common/publisher"],function(a,b){"use strict";function c(a,b,c,d){c&&Object.defineProperty(a,b,{enumerable:c.enumerable,configurable:c.configurable,writable:c.writable,value:c.initializer?c.initializer.call(d):void 0})}function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function g(a,b,c,d,e){var f={};return Object.keys(d).forEach(function(a){f[a]=d[a]}),f.enumerable=!!f.enumerable,f.configurable=!!f.configurable,("value"in f||f.initializer)&&(f.writable=!0),f=c.slice().reverse().reduce(function(c,d){return d(a,b,c)||c},f),e&&void 0!==f.initializer&&(f.value=f.initializer?f.initializer.call(e):void 0,f.initializer=void 0),void 0===f.initializer&&(Object.defineProperty(a,b,f),f=null),f}var h,i,j,k,l,m;return{setters:[function(a){h=a.inject,i=a.bindable},function(a){j=a.Publisher}],execute:function(){a("Error",(k=function(a){function b(){d(this,b);for(var f=arguments.length,g=Array(f),h=0;h

Patient Age Count Breakdown:
0-9 years old: - 10 patients or fewer
10-17 years old: - 10 patients or fewer
18-34 years old: - 355 +-10 patients
35-44 years old: - 200 +-10 patients
45-54 years old: - 95 +-10 patients
55-64 years old: - 15 +-10 patients
65-74 years old: - 65 +-10 patients
75-84 years old: - 60 +-10 patients
>= 65 years old: - 170 +-10 patients
>= 85 years old: - 55 +-10 patients
Not recorded: - 10 patients or fewer
'})}(),function(){var a=System.amdDefine;a("views/query-status/node-result/result-types/patient-count/patient-count.html!github:systemjs/plugin-text@0.0.8.js",[],function(){return''})}(),System.register("views/query-status/node-result/result-types/patient-count/patient-count.js",["aurelia-framework"],function(a,b){"use strict";function c(a,b,c,d){c&&Object.defineProperty(a,b,{enumerable:c.enumerable,configurable:c.configurable,writable:c.writable,value:c.initializer?c.initializer.call(d):void 0})}function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b,c,d,e){var f={};return Object.keys(d).forEach(function(a){f[a]=d[a]}),f.enumerable=!!f.enumerable,f.configurable=!!f.configurable,("value"in f||f.initializer)&&(f.writable=!0),f=c.slice().reverse().reduce(function(c,d){return d(a,b,c)||c},f),e&&void 0!==f.initializer&&(f.value=f.initializer?f.initializer.call(e):void 0,f.initializer=void 0),void 0===f.initializer&&(Object.defineProperty(a,b,f),f=null),f}var f,g,h,i,j;return{setters:[function(a){f=a.bindable}],execute:function(){a("PatientCount",(g=function b(){d(this,b),c(this,"result",h,this),c(this,"showBreakdown",i,this)},h=e(g.prototype,"result",[f],{enumerable:!0,initializer:null}),i=e(g.prototype,"showBreakdown",[f],{enumerable:!0,initializer:null}),j=g)),a("PatientCount",j)}}}),function(){var a=System.amdDefine;a("views/query-status/node-status/node-status.html!github:systemjs/plugin-text@0.0.8.js",[],function(){return''})}(),System.register("common/publisher.js",["aurelia-event-aggregator","common/shrine.messages"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g,h;return{setters:[function(a){d=a.EventAggregator},function(a){e=a.commands}],execute:function(){a("Publisher",(g=f=function b(a,d){c(this,b),this.commands=d,this.publish=function(b,c){return a.publish(b,c)}},f.inject=[d,e],h=g)),a("Publisher",h)}}}),System.register("views/query-status/node-status/node-status.js",["aurelia-framework","common/publisher"],function(a,b){"use strict";function c(a,b,c,d){c&&Object.defineProperty(a,b,{enumerable:c.enumerable,configurable:c.configurable,writable:c.writable,value:c.initializer?c.initializer.call(d):void 0})}function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function g(a,b,c,d,e){var f={};return Object.keys(d).forEach(function(a){f[a]=d[a]}),f.enumerable=!!f.enumerable,f.configurable=!!f.configurable,("value"in f||f.initializer)&&(f.writable=!0),f=c.slice().reverse().reduce(function(c,d){return d(a,b,c)||c},f),e&&void 0!==f.initializer&&(f.value=f.initializer?f.initializer.call(e):void 0,f.initializer=void 0),void 0===f.initializer&&(Object.defineProperty(a,b,f),f=null),f}var h,i,j,k,l;return{setters:[function(a){h=a.bindable},function(a){i=a.Publisher}],execute:function(){a("NodeStatus",(j=function(a){function b(){d(this,b);for(var f=arguments.length,g=Array(f),h=0;h
Status of Query: ${status.query.queryName}
Last Updated: ${status.updated | dateTime}


Query results are shown below
**************************************************************************
'})}(),System.register("common/query-status.model.js",["aurelia-event-aggregator","repository/qep.repository","./shrine.messages"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g,h,i,j,k;return{setters:[function(a){d=a.EventAggregator},function(a){e=a.QEPRepository},function(a){f=a.commands,g=a.notifications}],execute:function(){h=Object.assign||function(a){for(var b=1;b'})}(),System.register("views/query-viewer/context-menu/context-menu.js",["aurelia-framework","aurelia-event-aggregator","common/shrine.messages"],function(a,b){"use strict";function c(a,b,c,d){c&&Object.defineProperty(a,b,{enumerable:c.enumerable,configurable:c.configurable,writable:c.writable,value:c.initializer?c.initializer.call(d):void 0})}function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b,c,d,e){var f={};return Object.keys(d).forEach(function(a){f[a]=d[a]}),f.enumerable=!!f.enumerable,f.configurable=!!f.configurable,("value"in f||f.initializer)&&(f.writable=!0),f=c.slice().reverse().reduce(function(c,d){return d(a,b,c)||c},f),e&&void 0!==f.initializer&&(f.value=f.initializer?f.initializer.call(e):void 0,f.initializer=void 0),void 0===f.initializer&&(Object.defineProperty(a,b,f),f=null),f}var f,g,h,i,j,k,l,m,n;return{setters:[function(a){f=a.bindable},function(a){g=a.EventAggregator},function(a){h=a.commands}],execute:function(){a("ContextMenu",(l=k=function b(a,c){var e=this;d(this,b),m.call(this),b.prototype.cloneQuery=function(b){a.publish(c.i2b2.cloneQuery,b),e.context["class"]="hide"},b.prototype.renameQuery=function(b){a.publish(c.i2b2.renameQuery,b),e.context["class"]="hide"},b.prototype.flagQuery=function(b){a.publish(c.i2b2.flagQuery,b),e.context["class"]="hide"},b.prototype.unflagQuery=function(b){a.publish(c.i2b2.unflagQuery,b),e.context["class"]="hide"}},k.inject=[g,h],m=function(){c(this,"context",j,this)},i=l,j=e(i.prototype,"context",[f],{enumerable:!0,initializer:null}),n=i)),a("ContextMenu",n)}}}),System.register("views/query-viewer/date.converter.js",["moment"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e;return{setters:[function(a){d=a["default"]}],execute:function(){a("DateValueConverter",e=function(){function a(){c(this,a)}return a.prototype.toView=function(a){return d(a).format("MM/DD/YYYY")},a}()),a("DateValueConverter",e)}}}),function(){var a=System.amdDefine;a("views/query-viewer/loading-bar/loading-bar.html!github:systemjs/plugin-text@0.0.8.js",[],function(){return''})}(),System.register("views/query-viewer/loading-bar/loading-bar.js",["aurelia-framework"],function(a,b){"use strict";function c(a,b,c,d){c&&Object.defineProperty(a,b,{enumerable:c.enumerable,configurable:c.configurable,writable:c.writable,value:c.initializer?c.initializer.call(d):void 0})}function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b,c,d,e){var f={};return Object.keys(d).forEach(function(a){f[a]=d[a]}),f.enumerable=!!f.enumerable,f.configurable=!!f.configurable,("value"in f||f.initializer)&&(f.writable=!0),f=c.slice().reverse().reduce(function(c,d){return d(a,b,c)||c},f),e&&void 0!==f.initializer&&(f.value=f.initializer?f.initializer.call(e):void 0,f.initializer=void 0),void 0===f.initializer&&(Object.defineProperty(a,b,f),f=null),f}var f,g,h,i;return{setters:[function(a){f=a.bindable}],execute:function(){a("LoadingBar",(g=function b(){d(this,b),c(this,"status",h,this)},h=e(g.prototype,"status",[f],{enumerable:!0,initializer:null}),i=g)),a("LoadingBar",i)}}}),function(){var a=System.amdDefine;a("views/query-viewer/loading-bar/row-loader.html!github:systemjs/plugin-text@0.0.8.js",[],function(){return""})}(),function(){var a=System.amdDefine;a("views/query-viewer/paginator/paginator.html!github:systemjs/plugin-text@0.0.8.js",[],function(){return''})}(),System.register("views/query-viewer/paginator/paginator.js",["aurelia-framework"],function(a,b){"use strict";function c(a,b,c,d){c&&Object.defineProperty(a,b,{enumerable:c.enumerable,configurable:c.configurable,writable:c.writable,value:c.initializer?c.initializer.call(d):void 0})}function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b,c,d,e){var f={};return Object.keys(d).forEach(function(a){f[a]=d[a]}),f.enumerable=!!f.enumerable,f.configurable=!!f.configurable,("value"in f||f.initializer)&&(f.writable=!0),f=c.slice().reverse().reduce(function(c,d){return d(a,b,c)||c},f),e&&void 0!==f.initializer&&(f.value=f.initializer?f.initializer.call(e):void 0,f.initializer=void 0),void 0===f.initializer&&(Object.defineProperty(a,b,f),f=null),f}var f,g,h,i,j,k,l;return{setters:[function(a){f=a.bindable}],execute:function(){g=function(){function a(a,b){for(var c=0;cb?b:a,this.element.dispatchEvent(new CustomEvent("paginator-click",{detail:{index:this.index},bubbles:!0,cancelable:!0}))}}]),a}(),j.inject=[Element],h=k,i=e(h.prototype,"pages",[f],{enumerable:!0,initializer:null}),l=h)),a("Paginator",l)}}}),function(){var a=System.amdDefine;a("views/query-viewer/query-status/query-status.html!github:systemjs/plugin-text@0.0.8.js",[],function(){return''})}(),System.register("views/query-viewer/query-status/query-status.js",["aurelia-framework","ramda"],function(a,b){"use strict";function c(a,b,c,d){c&&Object.defineProperty(a,b,{enumerable:c.enumerable,configurable:c.configurable,writable:c.writable,value:c.initializer?c.initializer.call(d):void 0})}function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b,c,d,e){var f={};return Object.keys(d).forEach(function(a){f[a]=d[a]}),f.enumerable=!!f.enumerable,f.configurable=!!f.configurable,("value"in f||f.initializer)&&(f.writable=!0),f=c.slice().reverse().reduce(function(c,d){return d(a,b,c)||c},f),e&&void 0!==f.initializer&&(f.value=f.initializer?f.initializer.call(e):void 0,f.initializer=void 0),void 0===f.initializer&&(Object.defineProperty(a,b,f),f=null),f}var f,g,h,i,j,k,l,m;return{setters:[function(a){f=a.bindable},function(a){g=a}],execute:function(){a("QueryStatus",(k=j=function(){function a(b){d(this,a),l.call(this),this.floor=b.floor}return a.prototype.attached=function(){var a=75,b=g.curry(function(a,b,c,d){return a(d/c*b)})(this.floor,a,this.status.total),c=this.status,d=b(c.finished),e=b(c.error);this.readyOffset=100-d,this.errorOffset=this.readyOffset-e,this.finished=c.finished,this.error=c.error,this.pending=c.total-(c.finished+c.error),this.total=c.total},a}(),j.inject=[Math],l=function(){c(this,"status",i,this)},h=k,i=e(h.prototype,"status",[f],{enumerable:!0,initializer:null}),m=h)),a("QueryStatus",m)}}}),System.register("views/query-viewer/query-viewer.config.js",[],function(a,b){"use strict";var c;return{setters:[],execute:function(){a("QueryViewerConfig",c={maxNodesPerScreen:10,maxQueriesPerScroll:40}),a("QueryViewerConfig",c)}}}),function(){var a=System.amdDefine;a("views/query-viewer/query-viewer.html!github:systemjs/plugin-text@0.0.8.js",[],function(){ -return''})}(),System.register("repository/qep.repository.js",["aurelia-fetch-client","fetch"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g,h;return{setters:[function(a){d=a.HttpClient},function(a){}],execute:function(){e=function(){function a(a,b){for(var c=0;c1&&void 0!==arguments[1]?arguments[1]:0;return this.http.fetch("qep/queryResults?limit="+a+"&skip="+b).then(function(a){return a.json()})["catch"](function(a){return a})},a.prototype.fetchNetworkId=function(a){return this.http.fetch("qep/networkId?queryName='"+a+"'").then(function(a){return a.json()})["catch"](function(a){return a})},a.prototype.fetchQuery=function(a){return this.http.fetch("qep/queryResults?networkId="+a).then(function(a){return a.json()})["catch"](function(a){return a})},a.prototype.fetchStewardEmail=function(){return this.http.fetch("data?key=stewardEmail").then(function(a){return a.json()}).then(function(a){return a.indexOf('"')>0?a.split('"')[1]:a})["catch"](function(){return""})},e(a,[{key:"url",get:function(){var a=document.URL,b=":6443/shrine-metadata/";return a.substring(0,a.lastIndexOf(":"))+b}},{key:"auth",get:function(){var a=sessionStorage.getItem("shrine.auth");return sessionStorage.removeItem("shrine.auth"),a}}]),a}(),f.inject=[d],h=g)),a("QEPRepository",h)}}}),System.register("common/queries.model.js",["aurelia-event-aggregator","repository/qep.repository","./shrine.messages"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g,h,i;return{setters:[function(a){d=a.EventAggregator},function(a){e=a.QEPRepository},function(a){f=a.notifications}],execute:function(){a("QueriesModel",(h=g=function b(a,d,e){var f=this;c(this,b);var g=d,h=40,i=0,j=0,k=null;b.prototype.load=function(){return g.fetchPreviousQueries(f.maxQueriesPerFetch()+f.loadedCount()).then(function(a){return j=a.rowCount,i=a.queryResults.length,a})["catch"](function(a){return console.log(a)}).then(l).then(function(b){k=b,a.publish(e.shrine.queriesReceived,k)})},b.prototype.totalQueries=function(){return j},b.prototype.loadedCount=function(){return i},b.prototype.maxQueriesPerFetch=function(){return h},b.prototype.moreToLoad=function(){return i1&&void 0!==arguments[1]?arguments[1]:6;return new Promise(function(b,c){for(var d=[],e=6,f=a.adapters,g=f.length,h=a.queryResults,i=0;i1&&void 0!==arguments[1]?arguments[1]:"FINISHED";return!a||a.status!==b},a.prototype.getColorValue=function(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"ERROR",c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"#FF0000",d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"#00FF00";return a&&a.status!==b?d:c},a}()),a("ResultStyleValueConverter",d)}}}),System.register("views/query-viewer/result-value.converter.js",[],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d;return{setters:[],execute:function(){a("ResultValueConverter",d=function(){function a(){c(this,a)}return a.prototype.toView=function(a){return a?"FINISHED"!==a.status?"":a.count<0?"<=10":a.count:"not available"},a}()),a("ResultValueConverter",d)}}}); \ No newline at end of file +"bundle";System.register("main.js",[],function(a,b){"use strict";function c(a){a.use.standardConfiguration().developmentLogging().feature("resources").feature("views"),a.start().then(function(){return a.setRoot("shell")})}return a("configure",c),{setters:[],execute:function(){}}}),System.register("resources/converters/box-style.converter.js",[],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d;return{setters:[],execute:function(){a("BoxStyleValueConverter",d=function(){function a(){c(this,a)}return a.prototype.toView=function(a){return"transform: translate("+String(-100*a)+"%);"},a}()),a("BoxStyleValueConverter",d)}}}),System.register("resources/converters/count-value-converter.js",[],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d;return{setters:[],execute:function(){a("CountValueConverter",d=function(){function a(){c(this,a)}return a.prototype.toView=function(a){return a<0?"<=10 patients":a+" +-10 patients"},a}()),a("CountValueConverter",d)}}}),System.register("resources/converters/datetime.value.converter.js",["moment"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e;return{setters:[function(a){d=a["default"]}],execute:function(){a("DateTimeValueConverter",e=function(){function a(){c(this,a)}return a.prototype.toView=function(a){return d(a).format("MM/DD/YYYY h:mm:ss a")},a}()),a("DateTimeValueConverter",e)}}}),System.register("resources/converters/result-style.converter.js",[],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d;return{setters:[],execute:function(){a("ResultStyleValueConverter",d=function(){function a(){c(this,a)}return a.prototype.toView=function(a){var b=this.isUnresolved(a)?"color:"+this.getColorValue(a):"";return b},a.prototype.isUnresolved=function(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"FINISHED";return!a||a.status!==b},a.prototype.getColorValue=function(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"ERROR",c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"#FF0000",d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"#00FF00";return a&&a.status!==b?d:c},a}()),a("ResultStyleValueConverter",d)}}}),System.register("resources/converters/result-value.converter.js",[],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d;return{setters:[],execute:function(){a("ResultValueConverter",d=function(){function a(){c(this,a)}return a.prototype.toView=function(a){return a?"FINISHED"!==a.status?"":a.count<0?"<=10":a.count:"not available"},a}()),a("ResultValueConverter",d)}}}),function(){var a=System.amdDefine;a("resources/custom/breakdown/breakdown.html!github:systemjs/plugin-text@0.0.8.js",[],function(){return''})}(),System.register("resources/custom/breakdown/breakdown.js",["aurelia-framework"],function(a,b){"use strict";function c(a,b,c,d){c&&Object.defineProperty(a,b,{enumerable:c.enumerable,configurable:c.configurable,writable:c.writable,value:c.initializer?c.initializer.call(d):void 0})}function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b,c,d,e){var f={};return Object.keys(d).forEach(function(a){f[a]=d[a]}),f.enumerable=!!f.enumerable,f.configurable=!!f.configurable,("value"in f||f.initializer)&&(f.writable=!0),f=c.slice().reverse().reduce(function(c,d){return d(a,b,c)||c},f),e&&void 0!==f.initializer&&(f.value=f.initializer?f.initializer.call(e):void 0,f.initializer=void 0),void 0===f.initializer&&(Object.defineProperty(a,b,f),f=null),f}var f,g,h,i,j,k,l;return{setters:[function(a){f=a.bindable,g=a.customElement}],execute:function(){a("Breakdown",(h=g("breakdown"),l=h((j=function b(){d(this,b),c(this,"data",k,this)},k=e(j.prototype,"data",[f],{enumerable:!0,initializer:null}),i=j))||i)),a("Breakdown",l)}}}),function(){var a=System.amdDefine;a("resources/custom/error/error.html!github:systemjs/plugin-text@0.0.8.js",[],function(){return''})}(),System.register("resources/custom/error/error.js",["aurelia-framework","services/pub-sub"],function(a,b){"use strict";function c(a,b,c,d){c&&Object.defineProperty(a,b,{enumerable:c.enumerable,configurable:c.configurable,writable:c.writable,value:c.initializer?c.initializer.call(d):void 0})}function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function g(a,b,c,d,e){var f={};return Object.keys(d).forEach(function(a){f[a]=d[a]}),f.enumerable=!!f.enumerable,f.configurable=!!f.configurable,("value"in f||f.initializer)&&(f.writable=!0),f=c.slice().reverse().reduce(function(c,d){return d(a,b,c)||c},f),e&&void 0!==f.initializer&&(f.value=f.initializer?f.initializer.call(e):void 0,f.initializer=void 0),void 0===f.initializer&&(Object.defineProperty(a,b,f),f=null),f}var h,i,j,k,l,m,n,o,p;return{setters:[function(a){h=a.inject,i=a.bindable,j=a.customElement},function(a){k=a.PubSub}],execute:function(){a("Error",(l=j("error"),p=l((n=function(a){function b(){d(this,b);for(var f=arguments.length,g=Array(f),h=0;h

${result.adapterNode} ${queryName}
 - ${result.statusMessage}'})}(),System.register("resources/custom/node-result/node-result.js",["aurelia-framework"],function(a,b){"use strict";function c(a,b,c,d){c&&Object.defineProperty(a,b,{enumerable:c.enumerable,configurable:c.configurable,writable:c.writable,value:c.initializer?c.initializer.call(d):void 0})}function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b,c,d,e){var f={};return Object.keys(d).forEach(function(a){f[a]=d[a]}),f.enumerable=!!f.enumerable,f.configurable=!!f.configurable,("value"in f||f.initializer)&&(f.writable=!0),f=c.slice().reverse().reduce(function(c,d){return d(a,b,c)||c},f),e&&void 0!==f.initializer&&(f.value=f.initializer?f.initializer.call(e):void 0,f.initializer=void 0),void 0===f.initializer&&(Object.defineProperty(a,b,f),f=null),f}var f,g,h,i,j,k,l,m;return{setters:[function(a){f=a.customElement,g=a.bindable}],execute:function(){a("NodeResult",(h=f("node-result"),m=h((j=function b(){d(this,b),c(this,"result",k,this),c(this,"queryName",l,this)},k=e(j.prototype,"result",[g],{enumerable:!0,initializer:null}),l=e(j.prototype,"queryName",[g],{enumerable:!0,initializer:null}),i=j))||i)),a("NodeResult",m)}}}),function(){var a=System.amdDefine;a("resources/custom/node-status/node-status.html!github:systemjs/plugin-text@0.0.8.js",[],function(){return''})}(),System.register("resources/custom/node-status/node-status.js",["aurelia-framework","services/pub-sub"],function(a,b){"use strict";function c(a,b,c,d){c&&Object.defineProperty(a,b,{enumerable:c.enumerable,configurable:c.configurable,writable:c.writable,value:c.initializer?c.initializer.call(d):void 0})}function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function g(a,b,c,d,e){var f={};return Object.keys(d).forEach(function(a){f[a]=d[a]}),f.enumerable=!!f.enumerable,f.configurable=!!f.configurable,("value"in f||f.initializer)&&(f.writable=!0),f=c.slice().reverse().reduce(function(c,d){return d(a,b,c)||c},f),e&&void 0!==f.initializer&&(f.value=f.initializer?f.initializer.call(e):void 0,f.initializer=void 0),void 0===f.initializer&&(Object.defineProperty(a,b,f),f=null),f}var h,i,j,k,l,m,n,o;return{setters:[function(a){h=a.customElement,i=a.bindable},function(a){j=a.PubSub}],execute:function(){a("NodeStatus",(k=h("node-status"),o=k((m=function(a){function b(){d(this,b);for(var f=arguments.length,g=Array(f),h=0;h
${result.adapterNode}
  ${result.statusMessage}   ERROR: ${result.statusDescription}   ${result.statusMessage}
  ${result.count | count}
Patient Count: - ${result.count | count}
 - ERROR: ${result.statusDescription} - ${result.statusMessage}'})}(),function(){var a=System.amdDefine;a("resources/custom/patient-count/patient-count.html!github:systemjs/plugin-text@0.0.8.js",[],function(){return''})}(),System.register("resources/custom/patient-count/patient-count.js",["aurelia-framework"],function(a,b){"use strict";function c(a,b,c,d){c&&Object.defineProperty(a,b,{enumerable:c.enumerable,configurable:c.configurable,writable:c.writable,value:c.initializer?c.initializer.call(d):void 0})}function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b,c,d,e){var f={};return Object.keys(d).forEach(function(a){f[a]=d[a]}),f.enumerable=!!f.enumerable,f.configurable=!!f.configurable,("value"in f||f.initializer)&&(f.writable=!0),f=c.slice().reverse().reduce(function(c,d){return d(a,b,c)||c},f),e&&void 0!==f.initializer&&(f.value=f.initializer?f.initializer.call(e):void 0,f.initializer=void 0),void 0===f.initializer&&(Object.defineProperty(a,b,f),f=null),f}var f,g,h,i,j,k,l,m;return{setters:[function(a){f=a.bindable,g=a.customElement}],execute:function(){a("PatientCount",(h=g("patient-count"),m=h((j=function(){function a(){d(this,a),c(this,"result",k,this),c(this,"showBreakdown",l,this)}return a.prototype.attached=function(){console.log(this.result)},a}(),k=e(j.prototype,"result",[f],{enumerable:!0,initializer:null}),l=e(j.prototype,"showBreakdown",[f],{enumerable:!0,initializer:null}),i=j))||i)),a("PatientCount",m)}}}),System.register("resources/index.js",[],function(a,b){"use strict";function c(a){var b="converters",c=["box-style.converter","count-value-converter","datetime.value.converter","result-style.converter","result-value.converter"];a.globalResources.apply(a,c.map(function(a){return"./"+b+"/"+a}));var d="custom",e=["error/error","breakdown/breakdown","node-result/node-result","node-status/node-status"];a.globalResources.apply(a,e.map(function(a){return"./"+d+"/"+a}))}return a("configure",c),{setters:[],execute:function(){}}}),System.register("services/queries.model.js",["aurelia-event-aggregator","repository/qep.repository","./shrine.messages"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g,h,i;return{setters:[function(a){d=a.EventAggregator},function(a){e=a.QEPRepository},function(a){f=a.notifications}],execute:function(){a("QueriesModel",(h=g=function b(a,d,e){var f=this;c(this,b);var g=d,h=40,i=0,j=0,k=null;b.prototype.load=function(){return g.fetchPreviousQueries(f.maxQueriesPerFetch()+f.loadedCount()).then(function(a){return j=a.rowCount,i=a.queryResults.length,a})["catch"](function(a){return console.log(a)}).then(l).then(function(b){k=b,a.publish(e.shrine.queriesReceived,k)})},b.prototype.totalQueries=function(){return j},b.prototype.loadedCount=function(){return i},b.prototype.maxQueriesPerFetch=function(){return h},b.prototype.moreToLoad=function(){return i1&&void 0!==arguments[1]?arguments[1]:6;return new Promise(function(b,c){for(var d=[],e=6,f=a.adapters,g=f.length,h=a.queryResults,i=0;i"})}(),System.register("services/container.js",["ramda"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f;return{setters:[function(a){d=a}],execute:function(){e=function(){function a(a,b){for(var c=0;c1?f-1:0),h=1;h

If you have questions about your query results or this SHRINE network, contact the Data Steward at your site.

'})}(),System.register("views/mailto/mailto.service.js",["repository/qep.repository"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g;return{setters:[function(a){d=a.QEPRepository}],execute:function(){a("MailToService",(f=e=function(){function a(b){c(this,a),this.repository=b}return a.prototype.fetchStewardEmail=function(){return this.repository.fetchStewardEmail()},a}(),e.inject=[d],g=f)),a("MailToService",g)}}}),System.register("views/mailto/mailto.config.js",[],function(a,b){"use strict";var c;return{setters:[],execute:function(){a("MailConfig",c={mailto:"mailto:",subject:encodeURIComponent("Question from a SHRINE User"),body:encodeURIComponent("Please enter the suggested information and your question. Your data steward will reply to this email.\n \n\n***Never send patient information, passwords, or other sensitive information by email****\n \nName:\n \nTitle:\n \nUser name (to log into SHRINE):\n \nTelephone Number (optional):\n \nPreferred email address (optional):\n \n\nQuestion or Comment:")}),a("MailConfig",c)}}}),System.register("views/mailto/mailto.js",["views/mailto/mailto.service","views/mailto/mailto.config"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g,h;return{setters:[function(a){d=a.MailToService},function(a){e=a.MailConfig}],execute:function(){a("MailTo",(g=f=function(){function a(b,d){c(this,a),this.service=b,this.config=d}return a.prototype.openEmail=function(){var a=this;this.service.fetchStewardEmail().then(function(b){window.top.location="mailto:"+b+"?subject="+a.config.subject+"&body="+a.config.body})},a}(),f.inject=[d,e],h=g)),a("MailTo",h)}}}),function(){var a=System.amdDefine;a("views/query-status/query-status.html!github:systemjs/plugin-text@0.0.8.js",[],function(){return''})}(),System.register("repository/qep.repository.js",["aurelia-fetch-client","fetch"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g,h;return{setters:[function(a){d=a.HttpClient},function(a){}],execute:function(){e=function(){function a(a,b){for(var c=0;c1&&void 0!==arguments[1]?arguments[1]:0;return this.http.fetch("qep/queryResults?limit="+a+"&skip="+b).then(function(a){return a.json()})["catch"](function(a){return a})},a.prototype.fetchNetworkId=function(a){return this.http.fetch("qep/networkId?queryName='"+a+"'").then(function(a){return a.json()})["catch"](function(a){return a})},a.prototype.fetchQuery=function(a){return this.http.fetch("qep/queryResult/"+a).then(function(a){return a.json()})["catch"](function(a){return a})},a.prototype.fetchStewardEmail=function(){return this.http.fetch("data?key=stewardEmail").then(function(a){return a.json()}).then(function(a){return a.indexOf('"')>0?a.split('"')[1]:a})["catch"](function(){return""})},e(a,[{key:"url",get:function(){var a=document.URL,b=":6443/shrine-metadata/";return a.substring(0,a.lastIndexOf(":"))+b}},{key:"auth",get:function(){var a=sessionStorage.getItem("shrine.auth");return sessionStorage.removeItem("shrine.auth"),a}}]),a}(),f.inject=[d],h=g)),a("QEPRepository",h)}}}),System.register("services/query-status.model.js",["aurelia-event-aggregator","repository/qep.repository","./shrine.messages"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g,h,i,j,k;return{setters:[function(a){d=a.EventAggregator},function(a){e=a.QEPRepository},function(a){f=a.commands,g=a.notifications}],execute:function(){h=Object.assign||function(a){for(var b=1;b0&&d.length===e});b({query:f,nodes:d,finishedCount:e})})},k=function(a){return d.fetchQuery(a).then(function(a){return j(a)})["catch"](function(a){return i(a)}).then(function(a){return g(a)})},l=function(){a.subscribe(f.shrine.fetchQuery,function(a){return k(a)})};l()},i.inject=[d,e,g],k=j)),a("QueryStatusModel",k)}}}),System.register("services/shrine.messages.js",[],function(a,b){"use strict";var c,d;return{setters:[],execute:function(){a("notifications",c={i2b2:{tabMax:"notification.from.i2b2.tab.max",tabMin:"notification.from.i2b2.tab.min",viewSelected:"notification.from.i2b2.tab.selected",historyRefreshed:"notification.from.i2b2.history.refreshed",queryStarted:"notification.from.i2b2.query.started",messageReceived:"notification.from.i2b2.message.received",networkIdReceived:"notification.from.i2b2.networkId.receieved"},shrine:{queriesReceived:"notification.from.shrine.queries.received",queryReceived:"notification.from.shrine.query.recieved"}}),a("notifications",c),a("commands",d={i2b2:{cloneQuery:"command.to.i2b2.clone.query",showError:"command.to.i2b2.show.error",flagQuery:"command.to.i2b2.flag.query",unflagQuery:"command.to.i2b2.unflag.query",renameQuery:"command.to.i2b2.rename.query"},shrine:{fetchQuery:"command.to.shrine.fetch.query"}}),a("commands",d)}}}),System.register("services/pub-sub.js",["aurelia-event-aggregator","./shrine.messages"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g,h,i;return{setters:[function(a){d=a.EventAggregator},function(a){e=a.commands,f=a.notifications}],execute:function(){a("PubSub",(h=g=function b(a,d,e){c(this,b),this.commands=d,this.notifications=e,this.publish=function(b,c){return a.publish(b,c)},this.subscribe=function(b,c){return a.subscribe(b,c)}},g.inject=[d,e,f],i=h)),a("PubSub",i)}}}),System.register("views/query-status/query-status.js",["services/query-status.model","services/pub-sub"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function d(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function e(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}var f,g,h,i,j,k;return{setters:[function(a){f=a.QueryStatusModel},function(a){g=a.PubSub}],execute:function(){h=Object.assign||function(a){for(var b=1;b1?f-1:0),i=1;i'})}(),System.register("views/query-viewer/context-menu/context-menu.js",["aurelia-framework","aurelia-event-aggregator","common/shrine.messages"],function(a,b){"use strict";function c(a,b,c,d){c&&Object.defineProperty(a,b,{enumerable:c.enumerable,configurable:c.configurable,writable:c.writable,value:c.initializer?c.initializer.call(d):void 0})}function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b,c,d,e){var f={};return Object.keys(d).forEach(function(a){f[a]=d[a]}),f.enumerable=!!f.enumerable,f.configurable=!!f.configurable,("value"in f||f.initializer)&&(f.writable=!0),f=c.slice().reverse().reduce(function(c,d){return d(a,b,c)||c},f),e&&void 0!==f.initializer&&(f.value=f.initializer?f.initializer.call(e):void 0,f.initializer=void 0),void 0===f.initializer&&(Object.defineProperty(a,b,f),f=null),f}var f,g,h,i,j,k,l,m,n;return{setters:[function(a){f=a.bindable},function(a){g=a.EventAggregator},function(a){h=a.commands}],execute:function(){a("ContextMenu",(l=k=function b(a,c){var e=this;d(this,b),m.call(this),b.prototype.cloneQuery=function(b){a.publish(c.i2b2.cloneQuery,b),e.context["class"]="hide"},b.prototype.renameQuery=function(b){a.publish(c.i2b2.renameQuery,b),e.context["class"]="hide"},b.prototype.flagQuery=function(b){a.publish(c.i2b2.flagQuery,b),e.context["class"]="hide"},b.prototype.unflagQuery=function(b){a.publish(c.i2b2.unflagQuery,b),e.context["class"]="hide"}},k.inject=[g,h],m=function(){c(this,"context",j,this)},i=l,j=e(i.prototype,"context",[f],{enumerable:!0,initializer:null}),n=i)),a("ContextMenu",n)}}}),System.register("views/query-viewer/date.converter.js",["moment"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e;return{setters:[function(a){d=a["default"]}],execute:function(){a("DateValueConverter",e=function(){function a(){c(this,a)}return a.prototype.toView=function(a){return d(a).format("MM/DD/YYYY")},a}()),a("DateValueConverter",e)}}}),function(){var a=System.amdDefine;a("views/query-viewer/loading-bar/loading-bar.html!github:systemjs/plugin-text@0.0.8.js",[],function(){return''})}(),System.register("views/query-viewer/loading-bar/loading-bar.js",["aurelia-framework"],function(a,b){"use strict";function c(a,b,c,d){c&&Object.defineProperty(a,b,{enumerable:c.enumerable,configurable:c.configurable,writable:c.writable,value:c.initializer?c.initializer.call(d):void 0})}function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b,c,d,e){var f={};return Object.keys(d).forEach(function(a){f[a]=d[a]}),f.enumerable=!!f.enumerable,f.configurable=!!f.configurable,("value"in f||f.initializer)&&(f.writable=!0),f=c.slice().reverse().reduce(function(c,d){return d(a,b,c)||c},f),e&&void 0!==f.initializer&&(f.value=f.initializer?f.initializer.call(e):void 0,f.initializer=void 0),void 0===f.initializer&&(Object.defineProperty(a,b,f),f=null),f}var f,g,h,i;return{setters:[function(a){f=a.bindable}],execute:function(){a("LoadingBar",(g=function b(){d(this,b),c(this,"status",h,this)},h=e(g.prototype,"status",[f],{enumerable:!0,initializer:null}),i=g)),a("LoadingBar",i)}}}),function(){var a=System.amdDefine;a("views/query-viewer/loading-bar/row-loader.html!github:systemjs/plugin-text@0.0.8.js",[],function(){return""})}(),function(){var a=System.amdDefine;a("views/query-viewer/paginator/paginator.html!github:systemjs/plugin-text@0.0.8.js",[],function(){return''})}(),System.register("views/query-viewer/paginator/paginator.js",["aurelia-framework"],function(a,b){"use strict";function c(a,b,c,d){c&&Object.defineProperty(a,b,{enumerable:c.enumerable,configurable:c.configurable,writable:c.writable,value:c.initializer?c.initializer.call(d):void 0})}function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b,c,d,e){var f={};return Object.keys(d).forEach(function(a){f[a]=d[a]}),f.enumerable=!!f.enumerable,f.configurable=!!f.configurable,("value"in f||f.initializer)&&(f.writable=!0),f=c.slice().reverse().reduce(function(c,d){return d(a,b,c)||c},f),e&&void 0!==f.initializer&&(f.value=f.initializer?f.initializer.call(e):void 0,f.initializer=void 0),void 0===f.initializer&&(Object.defineProperty(a,b,f),f=null),f}var f,g,h,i,j,k,l;return{setters:[function(a){f=a.bindable}],execute:function(){g=function(){function a(a,b){for(var c=0;cb?b:a,this.element.dispatchEvent(new CustomEvent("paginator-click",{detail:{index:this.index},bubbles:!0,cancelable:!0}))}}]),a}(),j.inject=[Element],h=k,i=e(h.prototype,"pages",[f],{enumerable:!0,initializer:null}),l=h)),a("Paginator",l)}}}),function(){var a=System.amdDefine;a("views/query-viewer/query-status/query-status.html!github:systemjs/plugin-text@0.0.8.js",[],function(){return''})}(),System.register("views/query-viewer/query-status/query-status.js",["aurelia-framework","ramda"],function(a,b){"use strict";function c(a,b,c,d){c&&Object.defineProperty(a,b,{enumerable:c.enumerable,configurable:c.configurable,writable:c.writable,value:c.initializer?c.initializer.call(d):void 0})}function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b,c,d,e){var f={};return Object.keys(d).forEach(function(a){f[a]=d[a]}),f.enumerable=!!f.enumerable,f.configurable=!!f.configurable,("value"in f||f.initializer)&&(f.writable=!0),f=c.slice().reverse().reduce(function(c,d){return d(a,b,c)||c},f),e&&void 0!==f.initializer&&(f.value=f.initializer?f.initializer.call(e):void 0,f.initializer=void 0),void 0===f.initializer&&(Object.defineProperty(a,b,f),f=null),f}var f,g,h,i,j,k,l,m;return{setters:[function(a){f=a.bindable},function(a){g=a}],execute:function(){a("QueryStatus",(k=j=function(){function a(b){d(this,a),l.call(this),this.floor=b.floor}return a.prototype.attached=function(){var a=75,b=g.curry(function(a,b,c,d){return a(d/c*b)})(this.floor,a,this.status.total),c=this.status,d=b(c.finished),e=b(c.error);this.readyOffset=100-d,this.errorOffset=this.readyOffset-e,this.finished=c.finished,this.error=c.error,this.pending=c.total-(c.finished+c.error),this.total=c.total},a}(),j.inject=[Math],l=function(){c(this,"status",i,this)},h=k,i=e(h.prototype,"status",[f],{enumerable:!0,initializer:null}),m=h)),a("QueryStatus",m)}}}),System.register("views/query-viewer/query-viewer.config.js",[],function(a,b){"use strict";var c;return{setters:[],execute:function(){a("QueryViewerConfig",c={maxNodesPerScreen:10,maxQueriesPerScroll:40}),a("QueryViewerConfig",c)}}}),function(){var a=System.amdDefine;a("views/query-viewer/query-viewer.html!github:systemjs/plugin-text@0.0.8.js",[],function(){return''})}(),System.register("views/query-viewer/scroll.service.js",["ramda","common/container"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g,h;return{setters:[function(a){d=a},function(a){e=a.Container}],execute:function(){a("ScrollService",(g=f=function b(){c(this,b)},f.either=d.curry(function(a,b,c){return e.of(d.prop(a,c)||b)}),f.target=function(a,b){return h.either("target",b,b).chain(function(b){return h.either(a,0,b)})},f.clientHeight=function(a){return h.target("clientHeight",a)},f.scrollHeight=function(a){return h.target("scrollHeight",a)},f.scrollTop=function(a){return h.target("scrollTop",a)},f.userScroll=function(a){return h.clientHeight(a).map(function(b){return b+h.scrollTop(a).value})},f.scrollRatio=function(a){return h.userScroll(a).map(function(b){return b/h.scrollHeight(a).value})},h=g)),a("ScrollService",h)}}}),System.register("views/query-viewer/query-viewer.js",["aurelia-event-aggregator","common/queries.model","./scroll.service","common/shrine.messages"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g,h,i,j,k;return{setters:[function(a){d=a.EventAggregator},function(a){e=a.QueriesModel},function(a){f=a.ScrollService},function(a){g=a.notifications,h=a.commands}],execute:function(){a("QueryViewer",(j=i=function(){function a(b,d,e,g){var h=this;c(this,a),a.prototype.init=function(){h.pageIndex=0,h.showLoader=!0,h.vertStyle="v-min",h.runningQueryName=null},this.init(),a.prototype.setToPage=function(a){h.pageIndex=a,h.page=h.pages[h.pageIndex]};var i=function(a){return 1===f.scrollRatio(a).value};a.prototype.onScroll=function(a){i(a)&&!h.loadingInfiniteScroll&&d.moreToLoad()&&(h.loadingInfiniteScroll=!0,d.load())},a.prototype.publishError=function(a,c){return a.stopPropagation(),b.publish(g.i2b2.showError,c)},a.prototype.getContext=function(a,b,c){return{x:a.pageX,y:a.pageY,"class":"show",query:b,isCount:void 0!==c,count:c}},b.subscribe(e.i2b2.historyRefreshed,function(){return d.load()}),b.subscribe(e.i2b2.tabMax,function(){return h.vertStyle="v-full"}),b.subscribe(e.i2b2.tabMin,function(){return h.vertStyle="v-min"}),b.subscribe(e.i2b2.queryStarted,function(a){return h.runningQueryName=a}),b.subscribe(e.shrine.queriesReceived,function(a){h.pages=a,h.page=h.pages[0],h.runningQueryName=null,h.loadingInfiniteScroll=!1,h.showLoader=!1})}return a.prototype.updatePage=function(a){a.stopPropagation();var b=event.detail.index;this.page=this.pages[b]},a}(),i.inject=[d,e,g,h],k=j)),a("QueryViewer",k)}}}); \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/common/container.js.map b/shrine-webclient/src/main/js/client/js-shrine/dist/common/container.js.map deleted file mode 100644 index c9545148d..000000000 --- a/shrine-webclient/src/main/js/client/js-shrine/dist/common/container.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["common/container.js"],"names":["_","Container","f","__value","of","value","map","hasNothing","join","chain","undefined","ap","otherContainer"],"mappings":";;;;;;;;;;;;;AAAYA,a;;;;;;;;;;;;;;;;;;;;;iCACCC,S;AACT,mCAAYC,CAAZ,EAAe;AAAA;;AACX,yBAAKC,OAAL,GAAeD,CAAf;AACH;;0BAEME,E,eAAGC,K,EAAO;AACb,2BAAO,IAAIJ,SAAJ,CAAc,YAAW;AAC5B,+BAAOI,KAAP;AACH,qBAFM,CAAP;AAGH,iB;;oCAMDC,G,gBAAIJ,C,EAAG;AACH,2BAAO,KAAKK,UAAL,KAAoBN,UAAUG,EAAV,CAAa,IAAb,CAApB,GAAyCH,UAAUG,EAAV,CAAaF,EAAE,KAAKG,KAAP,CAAb,CAAhD;AACH,iB;;oCAEDG,I,mBAAO;AACH,2BAAO,KAAKD,UAAL,KAAmBN,UAAUG,EAAV,CAAa,IAAb,CAAnB,GAAwC,KAAKC,KAApD;AACH,iB;;oCAEDI,K,kBAAMP,C,EAAG;AACL,2BAAO,KAAKI,GAAL,CAASJ,CAAT,EAAYM,IAAZ,EAAP;AACH,iB;;oCAEDD,U,yBAAa;AACT,2BAAO,KAAKF,KAAL,KAAe,IAAf,IAAuB,KAAKA,KAAL,KAAeK,SAA7C;AACH,iB;;oCAEDC,E,eAAGC,c,EAAgB;AACfA,mCAAeN,GAAf,CAAmB,KAAKD,KAAxB;AACH,iB;;;;wCAtBW;AACR,+BAAO,KAAKF,OAAL,EAAP;AACH","file":"container.js","sourceRoot":"/src"} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/common/converters/count-value-converter.js.map b/shrine-webclient/src/main/js/client/js-shrine/dist/common/converters/count-value-converter.js.map deleted file mode 100644 index 7db800a16..000000000 --- a/shrine-webclient/src/main/js/client/js-shrine/dist/common/converters/count-value-converter.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["common/converters/count-value-converter.js"],"names":["CountValueConverter","toView","value"],"mappings":";;;;;;;;;;;;;;2CAAaA,mB;;;;;8CACTC,M,mBAAOC,K,EAAO;AACV,2BAAOA,QAAQ,CAAR,qBAAgCA,KAAhC,mBAAP;AACH,iB","file":"count-value-converter.js","sourceRoot":"/src"} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/common/converters/datetime.value.converter.js.map b/shrine-webclient/src/main/js/client/js-shrine/dist/common/converters/datetime.value.converter.js.map deleted file mode 100644 index 672813aa4..000000000 --- a/shrine-webclient/src/main/js/client/js-shrine/dist/common/converters/datetime.value.converter.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["common/converters/datetime.value.converter.js"],"names":["moment","DateTimeValueConverter","toView","value","format"],"mappings":";;;;;;;;;;;;;AAAOA,Y;;;wCACMC,sB;;;;;yCACXC,M,mBAAOC,K,EAAO;AACb,iBAAOH,OAAOG,KAAP,EAAcC,MAAd,CAAqB,sBAArB,CAAP;AACA,S","file":"datetime.value.converter.js","sourceRoot":"/src"} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/common/i2b2.pub-sub.js b/shrine-webclient/src/main/js/client/js-shrine/dist/common/i2b2.pub-sub.js deleted file mode 100644 index 1050d40f6..000000000 --- a/shrine-webclient/src/main/js/client/js-shrine/dist/common/i2b2.pub-sub.js +++ /dev/null @@ -1,86 +0,0 @@ -System.register(['aurelia-event-aggregator', './i2b2.service', './shrine.messages'], function (_export, _context) { - "use strict"; - - var EventAggregator, I2B2Service, notifications, commands, _class, _temp, I2B2PubSub; - - function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } - } - - return { - setters: [function (_aureliaEventAggregator) { - EventAggregator = _aureliaEventAggregator.EventAggregator; - }, function (_i2b2Service) { - I2B2Service = _i2b2Service.I2B2Service; - }, function (_shrineMessages) { - notifications = _shrineMessages.notifications; - commands = _shrineMessages.commands; - }], - execute: function () { - _export('I2B2PubSub', I2B2PubSub = (_temp = _class = function I2B2PubSub(evtAgg, i2b2Svc, notifications, commands) { - _classCallCheck(this, I2B2PubSub); - - this.listen = function () { - i2b2Svc.onResize(function (a, b) { - return b.find(function (e) { - return e.action === 'ADD'; - }) ? notifyTabMax() : notifyTabMin(); - }); - i2b2Svc.onHistory(function () { - return notifyHistoryRefreshed(); - }); - i2b2Svc.onQuery(function (e, d) { - return notifyQueryStarted(d[0].name); - }); - i2b2Svc.onViewSelected(function (e) { - return notifyViewSelected(e.data); - }); - - evtAgg.subscribe(commands.i2b2.cloneQuery, commandCloneQuery); - evtAgg.subscribe(commands.i2b2.showError, commandShowError); - evtAgg.subscribe(commands.i2b2.renameQuery, commandRenameQuery); - evtAgg.subscribe(commands.i2b2.flagQuery, commandFlagQuery); - evtAgg.subscribe(commands.i2b2.unflagQuery, commandUnflagQuery); - }; - - var notifyTabMax = function notifyTabMax() { - return evtAgg.publish(notifications.i2b2.tabMax); - }; - var notifyTabMin = function notifyTabMin() { - return evtAgg.publish(notifications.i2b2.tabMin); - }; - var notifyHistoryRefreshed = function notifyHistoryRefreshed() { - return evtAgg.publish(notifications.i2b2.historyRefreshed); - }; - var notifyQueryStarted = function notifyQueryStarted(n) { - return evtAgg.publish(notifications.i2b2.queryStarted, n); - }; - var notifyViewSelected = function notifyViewSelected(v) { - return evtAgg.publish(notifications.i2b2.viewSelected, v); - }; - - var commandCloneQuery = function commandCloneQuery(d) { - return i2b2Svc.loadQuery(d); - }; - var commandShowError = function commandShowError(d) { - console.log(commands.i2b2.showError + ': ' + d); - i2b2Svc.errorDetail(d); - }; - var commandRenameQuery = function commandRenameQuery(d) { - return i2b2Svc.renameQuery(d); - }; - var commandFlagQuery = function commandFlagQuery(d) { - return i2b2Svc.flagQuery(d); - }; - var commandUnflagQuery = function commandUnflagQuery(d) { - return i2b2Svc.unflagQuery(d); - }; - }, _class.inject = [EventAggregator, I2B2Service, notifications, commands], _temp)); - - _export('I2B2PubSub', I2B2PubSub); - } - }; -}); -//# sourceMappingURL=i2b2.pub-sub.js.map diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/common/i2b2.pub-sub.js.map b/shrine-webclient/src/main/js/client/js-shrine/dist/common/i2b2.pub-sub.js.map deleted file mode 100644 index a3695812d..000000000 --- a/shrine-webclient/src/main/js/client/js-shrine/dist/common/i2b2.pub-sub.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["common/i2b2.pub-sub.js"],"names":["EventAggregator","I2B2Service","notifications","commands","I2B2PubSub","evtAgg","i2b2Svc","listen","onResize","a","b","find","e","action","notifyTabMax","notifyTabMin","onHistory","notifyHistoryRefreshed","onQuery","d","notifyQueryStarted","name","onViewSelected","notifyViewSelected","data","subscribe","i2b2","cloneQuery","commandCloneQuery","showError","commandShowError","renameQuery","commandRenameQuery","flagQuery","commandFlagQuery","unflagQuery","commandUnflagQuery","publish","tabMax","tabMin","historyRefreshed","queryStarted","n","viewSelected","v","loadQuery","console","log","errorDetail","inject"],"mappings":";;;;;;;;;;;;;AACQA,2B,2BAAAA,e;;AACAC,uB,gBAAAA,W;;AACAC,yB,mBAAAA,a;AAAeC,oB,mBAAAA,Q;;;kCACVC,U,qBAET,oBAAYC,MAAZ,EAAoBC,OAApB,EAA6BJ,aAA7B,EAA4CC,QAA5C,EAAsD;AAAA;;AAClD,qBAAKI,MAAL,GAAc,YAAM;AAChBD,4BAAQE,QAAR,CAAiB,UAACC,CAAD,EAAIC,CAAJ;AAAA,+BAAUA,EAAEC,IAAF,CAAO;AAAA,mCAAKC,EAAEC,MAAF,KAAa,KAAlB;AAAA,yBAAP,IACvBC,cADuB,GACNC,cADJ;AAAA,qBAAjB;AAEAT,4BAAQU,SAAR,CAAkB;AAAA,+BAAMC,wBAAN;AAAA,qBAAlB;AACAX,4BAAQY,OAAR,CAAgB,UAACN,CAAD,EAAIO,CAAJ;AAAA,+BAAUC,mBAAmBD,EAAE,CAAF,EAAKE,IAAxB,CAAV;AAAA,qBAAhB;AACAf,4BAAQgB,cAAR,CAAuB;AAAA,+BAAKC,mBAAmBX,EAAEY,IAArB,CAAL;AAAA,qBAAvB;;AAEAnB,2BAAOoB,SAAP,CAAiBtB,SAASuB,IAAT,CAAcC,UAA/B,EAA2CC,iBAA3C;AACAvB,2BAAOoB,SAAP,CAAiBtB,SAASuB,IAAT,CAAcG,SAA/B,EAA0CC,gBAA1C;AACAzB,2BAAOoB,SAAP,CAAiBtB,SAASuB,IAAT,CAAcK,WAA/B,EAA4CC,kBAA5C;AACA3B,2BAAOoB,SAAP,CAAiBtB,SAASuB,IAAT,CAAcO,SAA/B,EAA0CC,gBAA1C;AACA7B,2BAAOoB,SAAP,CAAiBtB,SAASuB,IAAT,CAAcS,WAA/B,EAA4CC,kBAA5C;AACH,iBAZD;;AAeA,oBAAMtB,eAAe,SAAfA,YAAe;AAAA,2BAAMT,OAAOgC,OAAP,CAAenC,cAAcwB,IAAd,CAAmBY,MAAlC,CAAN;AAAA,iBAArB;AACA,oBAAMvB,eAAe,SAAfA,YAAe;AAAA,2BAAMV,OAAOgC,OAAP,CAAenC,cAAcwB,IAAd,CAAmBa,MAAlC,CAAN;AAAA,iBAArB;AACA,oBAAMtB,yBAAyB,SAAzBA,sBAAyB;AAAA,2BAAMZ,OAAOgC,OAAP,CAAenC,cAAcwB,IAAd,CAAmBc,gBAAlC,CAAN;AAAA,iBAA/B;AACA,oBAAMpB,qBAAqB,SAArBA,kBAAqB;AAAA,2BAAKf,OAAOgC,OAAP,CAAenC,cAAcwB,IAAd,CAAmBe,YAAlC,EAAgDC,CAAhD,CAAL;AAAA,iBAA3B;AACA,oBAAMnB,qBAAqB,SAArBA,kBAAqB;AAAA,2BAAKlB,OAAOgC,OAAP,CAAenC,cAAcwB,IAAd,CAAmBiB,YAAlC,EAAgDC,CAAhD,CAAL;AAAA,iBAA3B;;AAIA,oBAAMhB,oBAAoB,SAApBA,iBAAoB;AAAA,2BAAKtB,QAAQuC,SAAR,CAAkB1B,CAAlB,CAAL;AAAA,iBAA1B;AACA,oBAAMW,mBAAmB,SAAnBA,gBAAmB,IAAK;AAC1BgB,4BAAQC,GAAR,CAAe5C,SAASuB,IAAT,CAAcG,SAA7B,WAA4CV,CAA5C;AACAb,4BAAQ0C,WAAR,CAAoB7B,CAApB;AACH,iBAHD;AAIA,oBAAMa,qBAAqB,SAArBA,kBAAqB;AAAA,2BAAK1B,QAAQyB,WAAR,CAAoBZ,CAApB,CAAL;AAAA,iBAA3B;AACA,oBAAMe,mBAAmB,SAAnBA,gBAAmB;AAAA,2BAAK5B,QAAQ2B,SAAR,CAAkBd,CAAlB,CAAL;AAAA,iBAAzB;AACA,oBAAMiB,qBAAqB,SAArBA,kBAAqB;AAAA,2BAAK9B,QAAQ6B,WAAR,CAAoBhB,CAApB,CAAL;AAAA,iBAA3B;AACH,a,SAjCM8B,M,GAAS,CAACjD,eAAD,EAAkBC,WAAlB,EAA+BC,aAA/B,EAA8CC,QAA9C,C","file":"i2b2.pub-sub.js","sourceRoot":"/src"} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/common/i2b2.service.js.map b/shrine-webclient/src/main/js/client/js-shrine/dist/common/i2b2.service.js.map deleted file mode 100644 index c03294e86..000000000 --- a/shrine-webclient/src/main/js/client/js-shrine/dist/common/i2b2.service.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["common/i2b2.service.js"],"names":["_","Container","I2B2Service","context","ctx","of","prop","curry","m","c","value","i2b2","compose","crc","events","shrine","prototype","onResize","map","v","changedZoomWindows","subscribe","f","onHistory","ctrlr","history","onDataUpdate","onQuery","afterQueryInit","onViewSelected","addEventListener","loadHistory","view","doRefreshAll","loadQuery","QT","doQueryLoad","id","errorDetail","plugin","d","renameQuery","queryRename","flagQuery","Flag","queryId","message","unflagQuery","Unflag","inject","window"],"mappings":";;;;;;;;;;;;;AACYA,a;;AACJC,qB,cAAAA,S;;;mCACKC,W,qBAET,qBAAYC,OAAZ,EAAqB;AAAA;;AAGjB,oBAAMC,MAAMD,UAASF,UAAUI,EAAV,CAAaF,OAAb,CAAT,GAAiCF,UAAUI,EAAV,CAAa,IAAb,CAA7C;AACA,oBAAMC,OAAON,EAAEO,KAAF,CAAQ,UAACC,CAAD,EAAIC,CAAJ;AAAA,2BAAUA,EAAEC,KAAF,GAAST,UAAUI,EAAV,CAAaL,EAAEM,IAAF,CAAOE,CAAP,EAAUC,EAAEC,KAAZ,CAAb,CAAT,GAA4CT,UAAUI,EAAV,CAAa,IAAb,CAAtD;AAAA,iBAAR,CAAb;AACA,oBAAMM,OAAOX,EAAEY,OAAF,CAAUN,KAAK,MAAL,CAAV,EAAwBA,KAAK,QAAL,CAAxB,EAAwCA,KAAK,QAAL,CAAxC,CAAb;AACA,oBAAMO,MAAMb,EAAEY,OAAF,CAAUN,KAAK,KAAL,CAAV,EAAuBK,IAAvB,CAAZ;AACA,oBAAMG,SAASd,EAAEY,OAAF,CAAUN,KAAK,QAAL,CAAV,EAA0BK,IAA1B,CAAf;AACA,oBAAMI,SAASf,EAAEY,OAAF,CAAUN,KAAK,QAAL,CAAV,EAA0BK,IAA1B,CAAf;;AAGAT,4BAAYc,SAAZ,CAAsBC,QAAtB,GAAkC;AAAA,2BAAKH,OAAOV,GAAP,EAAYc,GAAZ,CAAgB,UAACC,CAAD;AAAA,+BAAOA,EAAEC,kBAAF,CAAqBC,SAArB,CAA+BC,CAA/B,CAAP;AAAA,qBAAhB,CAAL;AAAA,iBAAlC;AACApB,4BAAYc,SAAZ,CAAsBO,SAAtB,GAAkC;AAAA,2BAAKV,IAAIT,GAAJ,EAASc,GAAT,CAAa,UAACC,CAAD;AAAA,+BAAOA,EAAEK,KAAF,CAAQC,OAAR,CAAgBX,MAAhB,CAAuBY,YAAvB,CAAoCL,SAApC,CAA8CC,CAA9C,CAAP;AAAA,qBAAb,CAAL;AAAA,iBAAlC;AACApB,4BAAYc,SAAZ,CAAsBW,OAAtB,GAAgC;AAAA,2BAAKb,OAAOV,GAAP,EAAYc,GAAZ,CAAgB,UAACC,CAAD;AAAA,+BAAOA,EAAES,cAAF,CAAiBP,SAAjB,CAA2BC,CAA3B,CAAP;AAAA,qBAAhB,CAAL;AAAA,iBAAhC;AACApB,4BAAYc,SAAZ,CAAsBa,cAAtB,GAAuC;AAAA,2BAAKvB,KAAK,kBAAL,EAAyBF,GAAzB,EAA8BM,KAA9B,GACxCT,UAAUI,EAAV,CAAaD,IAAIM,KAAJ,CAAUoB,gBAAV,CAA2B,SAA3B,EAAsCR,CAAtC,EAAyC,KAAzC,CAAb,CADwC,GACwBrB,UAAUI,EAAV,CAAa,IAAb,CAD7B;AAAA,iBAAvC;;AAIAH,4BAAYc,SAAZ,CAAsBe,WAAtB,GAAoC;AAAA,2BAAMlB,IAAIT,GAAJ,EAASc,GAAT,CAAa,UAACC,CAAD;AAAA,+BAAOA,EAAEa,IAAF,CAAOP,OAAP,CAAeQ,YAAf,EAAP;AAAA,qBAAb,CAAN;AAAA,iBAApC;AACA/B,4BAAYc,SAAZ,CAAsBkB,SAAtB,GAAkC;AAAA,2BAAMrB,IAAIT,GAAJ,EAASc,GAAT,CAAa,UAACC,CAAD;AAAA,+BAAOA,EAAEK,KAAF,CAAQW,EAAR,CAAWC,WAAX,CAAuBC,EAAvB,CAAP;AAAA,qBAAb,CAAN;AAAA,iBAAlC;AACAnC,4BAAYc,SAAZ,CAAsBsB,WAAtB,GAAoC;AAAA,2BAAKvB,OAAOX,GAAP,EAAYc,GAAZ,CAAgB,UAACC,CAAD;AAAA,+BAAOA,EAAEoB,MAAF,CAASD,WAAT,CAAqBE,CAArB,CAAP;AAAA,qBAAhB,CAAL;AAAA,iBAApC;AACAtC,4BAAYc,SAAZ,CAAsByB,WAAtB,GAAoC;AAAA,2BAAM5B,IAAIT,GAAJ,EAASc,GAAT,CAAa;AAAA,+BAAKC,EAAEK,KAAF,CAAQC,OAAR,CAAgBiB,WAAhB,CAA4BL,EAA5B,EAAgC,KAAhC,CAAL;AAAA,qBAAb,CAAN;AAAA,iBAApC;AACAnC,4BAAYc,SAAZ,CAAsB2B,SAAtB,GAAkC;AAAA,2BAAM9B,IAAIT,GAAJ,EAASc,GAAT,CAAa;AAAA,+BAAKC,EAAEK,KAAF,CAAQC,OAAR,CAAgBmB,IAAhB,CAAqB,EAAEC,SAASR,EAAX,EAAeS,SAAS,EAAxB,EAArB,CAAL;AAAA,qBAAb,CAAN;AAAA,iBAAlC;AACA5C,4BAAYc,SAAZ,CAAsB+B,WAAtB,GAAoC;AAAA,2BAAMlC,IAAIT,GAAJ,EAASc,GAAT,CAAa;AAAA,+BAAKC,EAAEK,KAAF,CAAQC,OAAR,CAAgBuB,MAAhB,CAAuB,EAAEH,SAASR,EAAX,EAAvB,CAAL;AAAA,qBAAb,CAAN;AAAA,iBAApC;AACH,a,SAzBMY,M,GAAS,CAACC,MAAD,C","file":"i2b2.service.js","sourceRoot":"/src"} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/common/publisher.js b/shrine-webclient/src/main/js/client/js-shrine/dist/common/publisher.js deleted file mode 100644 index 211151ec6..000000000 --- a/shrine-webclient/src/main/js/client/js-shrine/dist/common/publisher.js +++ /dev/null @@ -1,32 +0,0 @@ -System.register(['aurelia-event-aggregator', 'common/shrine.messages'], function (_export, _context) { - "use strict"; - - var EventAggregator, commands, _class, _temp, Publisher; - - function _classCallCheck(instance, Constructor) { - if (!(instance instanceof Constructor)) { - throw new TypeError("Cannot call a class as a function"); - } - } - - return { - setters: [function (_aureliaEventAggregator) { - EventAggregator = _aureliaEventAggregator.EventAggregator; - }, function (_commonShrineMessages) { - commands = _commonShrineMessages.commands; - }], - execute: function () { - _export('Publisher', Publisher = (_temp = _class = function Publisher(evtAgg, commands) { - _classCallCheck(this, Publisher); - - this.commands = commands; - this.publish = function (c, d) { - return evtAgg.publish(c, d); - }; - }, _class.inject = [EventAggregator, commands], _temp)); - - _export('Publisher', Publisher); - } - }; -}); -//# sourceMappingURL=publisher.js.map diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/common/publisher.js.map b/shrine-webclient/src/main/js/client/js-shrine/dist/common/publisher.js.map deleted file mode 100644 index d454ebddd..000000000 --- a/shrine-webclient/src/main/js/client/js-shrine/dist/common/publisher.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["common/publisher.js"],"names":["EventAggregator","commands","Publisher","evtAgg","publish","c","d","inject"],"mappings":";;;;;;;;;;;;;AACQA,2B,2BAAAA,e;;AACAC,oB,yBAAAA,Q;;;iCACKC,S,qBAET,mBAAYC,MAAZ,EAAoBF,QAApB,EAA6B;AAAA;;AACzB,qBAAKA,QAAL,GAAgBA,QAAhB;AACA,qBAAKG,OAAL,GAAe,UAACC,CAAD,EAAGC,CAAH;AAAA,2BAASH,OAAOC,OAAP,CAAeC,CAAf,EAAiBC,CAAjB,CAAT;AAAA,iBAAf;AACH,a,SAJMC,M,GAAS,CAACP,eAAD,EAAkBC,QAAlB,C","file":"publisher.js","sourceRoot":"/src"} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/common/queries.model.js.map b/shrine-webclient/src/main/js/client/js-shrine/dist/common/queries.model.js.map deleted file mode 100644 index 9be6595ef..000000000 --- a/shrine-webclient/src/main/js/client/js-shrine/dist/common/queries.model.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["common/queries.model.js"],"names":["EventAggregator","QEPRepository","notifications","QueriesModel","evtAgg","qep","maxQueriesPerFetch","loadedCount","totalQueries","data","prototype","load","fetchPreviousQueries","then","result","rowCount","queryResults","length","catch","console","log","error","toPages","pages","publish","shrine","queriesReceived","moreToLoad","hasData","undefined","nodesPerPage","Promise","resolve","reject","nodes","adapters","lastNodeIndex","queries","i","numberOfNodes","geNumberOfNodes","pageNodes","slice","results","mapQueries","push","startIndex","numNodes","forEach","q","name","query","queryName","id","networkId","date","dateCreated","flagged","flagMessage","nodeResults","status","adaptersToResults","reduce","s","r","finished","total","find","a","adapterNode","n","inject"],"mappings":";;;;;;;;;;;;;AAAQA,2B,2BAAAA,e;;AACCC,yB,4BAAAA,a;;AACDC,yB,mBAAAA,a;;;oCACKC,Y,qBAET,sBAAYC,MAAZ,EAAoBH,aAApB,EAAmCC,aAAnC,EAAkD;AAAA;;AAAA;;AAC9C,oBAAMG,MAAMJ,aAAZ;AACA,oBAAMK,qBAAqB,EAA3B;AACA,oBAAIC,cAAc,CAAlB;AACA,oBAAIC,eAAe,CAAnB;AACA,oBAAIC,OAAO,IAAX;;AAEAN,6BAAaO,SAAb,CAAuBC,IAAvB,GAA8B;AAAA,2BAC1BN,IAAIO,oBAAJ,CAAyB,MAAKN,kBAAL,KAA4B,MAAKC,WAAL,EAArD,EACKM,IADL,CACU,kBAAU;AACZL,uCAAeM,OAAOC,QAAtB;AACAR,sCAAcO,OAAOE,YAAP,CAAoBC,MAAlC;AACA,+BAAOH,MAAP;AACH,qBALL,EAMKI,KANL,CAMW;AAAA,+BAASC,QAAQC,GAAR,CAAYC,KAAZ,CAAT;AAAA,qBANX,EAOKR,IAPL,CAOUS,OAPV,EAQKT,IARL,CAQU,iBAAS;AACXJ,+BAAOc,KAAP;AACAnB,+BAAOoB,OAAP,CAAetB,cAAcuB,MAAd,CAAqBC,eAApC,EAAqDjB,IAArD;AACH,qBAXL,CAD0B;AAAA,iBAA9B;;AAcAN,6BAAaO,SAAb,CAAuBF,YAAvB,GAAsC;AAAA,2BAAMA,YAAN;AAAA,iBAAtC;AACAL,6BAAaO,SAAb,CAAuBH,WAAvB,GAAqC;AAAA,2BAAMA,WAAN;AAAA,iBAArC;AACAJ,6BAAaO,SAAb,CAAuBJ,kBAAvB,GAA4C;AAAA,2BAAMA,kBAAN;AAAA,iBAA5C;AACAH,6BAAaO,SAAb,CAAuBiB,UAAvB,GAAoC;AAAA,2BAAMpB,cAAcC,YAApB;AAAA,iBAApC;AACAL,6BAAaO,SAAb,CAAuBkB,OAAvB,GAAiC;AAAA,2BAAMnB,SAAS,IAAT,IAAiBA,SAASoB,SAAhC;AAAA,iBAAjC;;AAEA,oBAAMP,UAAU,SAAVA,OAAU,CAACb,IAAD,EAA4B;AAAA,wBAArBqB,YAAqB,uEAAN,CAAM;;AACxC,2BAAO,IAAIC,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;AACpC,4BAAMV,QAAQ,EAAd;;AAEA,4BAAMO,eAAe,CAArB;AACA,4BAAMI,QAAQzB,KAAK0B,QAAnB;AACA,4BAAMC,gBAAgBF,MAAMjB,MAA5B;AACA,4BAAMoB,UAAU5B,KAAKO,YAArB;;AAEA,6BAAK,IAAIsB,IAAI,CAAb,EAAgBA,IAAIF,aAApB,EAAmCE,IAAIA,IAAIR,YAA3C,EAAyD;AACrD,gCAAMS,gBAAgBC,gBAAgBN,KAAhB,EAAuBI,CAAvB,EAA0BR,YAA1B,CAAtB;AACA,gCAAMW,YAAYP,MAAMQ,KAAN,CAAYJ,CAAZ,EAAeC,aAAf,CAAlB;AACA,gCAAMI,UAAUC,WAAWH,SAAX,EAAsBJ,OAAtB,CAAhB;AACAd,kCAAMsB,IAAN,CAAW;AACPX,uCAAOO,SADA;AAEPE,yCAASA;AAFF,6BAAX;AAIH;;AAEDX,gCAAQT,KAAR;AACH,qBAnBM,CAAP;AAoBH,iBArBD;;AAuBA,oBAAMiB,kBAAkB,SAAlBA,eAAkB,CAACN,KAAD,EAAQY,UAAR,EAAoBhB,YAApB,EAAqC;AACzD,wBAAMiB,WAAWD,aAAahB,YAA9B;AACA,2BAAOiB,WAAWb,MAAMjB,MAAjB,GAA0B8B,QAA1B,GAAqCb,MAAMjB,MAAlD;AACH,iBAHD;;AAKA,oBAAM2B,aAAa,SAAbA,UAAa,CAACV,KAAD,EAAQG,OAAR,EAAoB;AACnC,wBAAMM,UAAU,EAAhB;AACAN,4BAAQW,OAAR,CAAgB,UAACC,CAAD,EAAIX,CAAJ,EAAU;AACtB,4BAAMxB,SAAS;AACXoC,kCAAMD,EAAEE,KAAF,CAAQC,SADH;AAEXC,gCAAIJ,EAAEE,KAAF,CAAQG,SAFD;AAGXC,kCAAMN,EAAEE,KAAF,CAAQK,WAHH;AAIXC,qCAASR,EAAEE,KAAF,CAAQM,OAAR,KAAoB,IAJlB;AAKXC,yCAAaT,EAAEE,KAAF,CAAQO,WAAR,IAAuB,IALzB;AAMXC,yCAAa,EANF;AAOXC,oCAAQX,EAAEY,iBAAF,CAAoBC,MAApB,CAA2B,UAACC,CAAD,EAAIC,CAAJ,EAAU;AACzC,oCAAMC,WAAWD,EAAEJ,MAAF,KAAa,UAAb,GAAyBG,EAAEE,QAAF,GAAa,CAAtC,GAA0CF,EAAEE,QAA7D;AACA,oCAAM5C,QAAQ2C,EAAEJ,MAAF,KAAa,OAAb,GAAsBG,EAAE1C,KAAF,GAAU,CAAhC,GAAoC0C,EAAE1C,KAApD;AACA,uCAAO,EAACA,OAAOA,KAAR,EAAe4C,UAAUA,QAAzB,EAAmCC,OAAOjB,EAAEY,iBAAF,CAAoB5C,MAA9D,EAAP;AACH,6BAJO,EAIL,EAACI,OAAO,CAAR,EAAW4C,UAAU,CAArB,EAAwBC,OAAOjB,EAAEY,iBAAF,CAAoB5C,MAAnD,EAJK;AAPG,yBAAf;AAaAiB,8BAAMc,OAAN,CAAc,aAAK;AACflC,mCAAO6C,WAAP,CAAmBd,IAAnB,CAAwBI,EAAEY,iBAAF,CAAoBM,IAApB,CAAyB;AAAA,uCAAKC,EAAEC,WAAF,KAAkBC,CAAvB;AAAA,6BAAzB,CAAxB;AACH,yBAFD;AAGA3B,gCAAQE,IAAR,CAAa/B,MAAb;AACH,qBAlBD;;AAoBA,2BAAO6B,OAAP;AACH,iBAvBD;AAwBH,a,SAhFM4B,M,GAAS,CAACvE,eAAD,EAAkBC,aAAlB,EAAkCC,aAAlC,C","file":"queries.model.js","sourceRoot":"/src"} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/common/query-status.model.js.map b/shrine-webclient/src/main/js/client/js-shrine/dist/common/query-status.model.js.map deleted file mode 100644 index 7042541e6..000000000 --- a/shrine-webclient/src/main/js/client/js-shrine/dist/common/query-status.model.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["common/query-status.model.js"],"names":["EventAggregator","QEPRepository","commands","notifications","QueryStatusModel","evtAgg","qep","publishNetworkId","publish","shrine","networkIdReceived","id","publishQuery","queryReceived","model","logError","console","log","error","toModel","Promise","resolve","reject","nodes","data","queryResults","adaptersToResults","finishedCount","reduce","s","r","indexOf","status","query","complete","length","loadNetworkId","n","fetchNetworkId","then","result","catch","loadQuery","fetchQuery","init","subscribe","inject"],"mappings":";;;;;;;;;;;;;AAASA,2B,2BAAAA,e;;AACAC,yB,4BAAAA,a;;AACAC,oB,mBAAAA,Q;AAAUC,yB,mBAAAA,a;;;;;;;;;;;;;;;;;wCACNC,gB,qBAET,0BAAYC,MAAZ,EAAoBC,GAApB,EAAyBH,aAAzB,EAAwC;AAAA;;AACpC,oBAAMI,mBAAmB,SAAnBA,gBAAmB;AAAA,2BAAMF,OAAOG,OAAP,CAAeL,cAAcM,MAAd,CAAqBC,iBAApC,EAAuDC,EAAvD,CAAN;AAAA,iBAAzB;AACA,oBAAMC,eAAe,SAAfA,YAAe;AAAA,2BAASP,OAAOG,OAAP,CAAeL,cAAcM,MAAd,CAAqBI,aAApC,EAAmDC,KAAnD,CAAT;AAAA,iBAArB;AACA,oBAAMC,WAAW,SAAXA,QAAW;AAAA,2BAASC,QAAQC,GAAR,aAAsBC,KAAtB,CAAT;AAAA,iBAAjB;AACA,oBAAMC,UAAU,SAAVA,OAAU,OAAQ;AACpB,2BAAO,IAAIC,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;AACpC,4BAAMC,kBAAYC,KAAKC,YAAL,CAAkB,CAAlB,EAAqBC,iBAAjC,CAAN;AACA,4BAAMC,gBAAgBJ,MAAMK,MAAN,CAAa,UAACC,CAAD,EAAIC,CAAJ;AAAA,mCAAU,CAAC,UAAD,EAAa,OAAb,EAAsBC,OAAtB,CAA8BD,EAAEE,MAAhC,KAA2C,CAAC,CAA5C,GAA+CH,IAAI,CAAnD,GAAuDA,CAAjE;AAAA,yBAAb,EAAiF,CAAjF,CAAtB;AACA,4BAAMI,qBAAYT,KAAKC,YAAL,CAAkB,CAAlB,EAAqBQ,KAAjC,EAA2C,EAACC,UAAUX,MAAMY,MAAN,KAAiBR,aAA5B,EAA3C,CAAN;AACAN,gCAAQ;AACLY,wCADK;AAELV,wCAFK;AAGLI;AAHK,yBAAR;AAKH,qBATM,CAAP;AAUH,iBAXD;;AAcA,oBAAMS,gBAAgB,SAAhBA,aAAgB,CAACC,CAAD;AAAA,2BAAO/B,IAAIgC,cAAJ,CAAmBD,CAAnB,EACxBE,IADwB,CACnB;AAAA,+BAAUhC,iBAAiBiC,MAAjB,CAAV;AAAA,qBADmB,EAExBC,KAFwB,CAElB;AAAA,+BAAS1B,SAASG,KAAT,CAAT;AAAA,qBAFkB,CAAP;AAAA,iBAAtB;;AAIA,oBAAMwB,YAAY,SAAZA,SAAY,CAAC/B,EAAD;AAAA,2BAAQL,IAAIqC,UAAJ,CAAehC,EAAf,EACrB4B,IADqB,CAChB;AAAA,+BAAUpB,QAAQqB,MAAR,CAAV;AAAA,qBADgB,EAErBC,KAFqB,CAEf;AAAA,+BAAS1B,SAASG,KAAT,CAAT;AAAA,qBAFe,EAGrBqB,IAHqB,CAGhB;AAAA,+BAAS3B,aAAaE,KAAb,CAAT;AAAA,qBAHgB,CAAR;AAAA,iBAAlB;;AAKA,oBAAM8B,OAAO,SAAPA,IAAO,GAAM;AACfvC,2BAAOwC,SAAP,CAAiB3C,SAASO,MAAT,CAAgB6B,cAAjC,EAAiD,UAACD,CAAD;AAAA,+BAAOD,cAAcC,CAAd,CAAP;AAAA,qBAAjD;AACAhC,2BAAOwC,SAAP,CAAiB3C,SAASO,MAAT,CAAgBkC,UAAjC,EAA6C,UAAChC,EAAD;AAAA,+BAAQ+B,UAAU/B,EAAV,CAAR;AAAA,qBAA7C;AACH,iBAHD;AAIAiC;AACH,a,SAjCME,M,GAAS,CAAC9C,eAAD,EAAkBC,aAAlB,EAAiCE,aAAjC,C","file":"query-status.model.js","sourceRoot":"/src"} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/common/shrine.messages.js.map b/shrine-webclient/src/main/js/client/js-shrine/dist/common/shrine.messages.js.map deleted file mode 100644 index d94d6ef83..000000000 --- a/shrine-webclient/src/main/js/client/js-shrine/dist/common/shrine.messages.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["common/shrine.messages.js"],"names":["notifications","i2b2","tabMax","tabMin","viewSelected","historyRefreshed","queryStarted","messageReceived","shrine","queriesReceived","networkIdReceived","queryReceived","commands","cloneQuery","showError","flagQuery","unflagQuery","renameQuery","fetchNetworkId","fetchQuery"],"mappings":";;;;;;;qCAAaA,a,GAAgB;AACzBC,sBAAM;AACFC,4BAAQ,gCADN;AAEFC,4BAAQ,gCAFN;AAGFC,kCAAc,qCAHZ;AAIFC,sCAAkB,0CAJhB;AAKFC,kCAAc,sCALZ;AAMFC,qCAAiB;AANf,iBADmB;;AAUzBC,wBAAQ;AACJC,qCAAiB,2CADb;AAEJC,uCAAmB,8CAFf;AAGJC,mCAAe;AAHX;AAViB,a;;;;gCAiBhBC,Q,GAAW;AACpBX,sBAAM;AACFY,gCAAY,6BADV;AAEFC,+BAAW,4BAFT;AAGFC,+BAAW,4BAHT;AAIFC,iCAAa,8BAJX;AAKFC,iCAAa;AALX,iBADc;;AASpBT,wBAAQ;AACJU,oCAAgB,mCADZ;AAEJC,gCAAY;AAFR;AATY,a","file":"shrine.messages.js","sourceRoot":"/src"} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/main.js b/shrine-webclient/src/main/js/client/js-shrine/dist/main.js index f67c55c16..b45514362 100644 --- a/shrine-webclient/src/main/js/client/js-shrine/dist/main.js +++ b/shrine-webclient/src/main/js/client/js-shrine/dist/main.js @@ -1,19 +1,19 @@ System.register([], function (_export, _context) { "use strict"; function configure(aurelia) { - aurelia.use.standardConfiguration().developmentLogging(); + aurelia.use.standardConfiguration().developmentLogging().feature('resources').feature('views'); aurelia.start().then(function () { return aurelia.setRoot('shell'); }); } _export('configure', configure); return { setters: [], execute: function () {} }; }); //# sourceMappingURL=main.js.map diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/main.js.map b/shrine-webclient/src/main/js/client/js-shrine/dist/main.js.map index 3d3896664..653c0fa58 100644 --- a/shrine-webclient/src/main/js/client/js-shrine/dist/main.js.map +++ b/shrine-webclient/src/main/js/client/js-shrine/dist/main.js.map @@ -1 +1 @@ -{"version":3,"sources":["main.js"],"names":["configure","aurelia","use","standardConfiguration","developmentLogging","start","then","setRoot"],"mappings":";;;AAAO,aAASA,SAAT,CAAmBC,OAAnB,EAA4B;AAC/BA,gBAAQC,GAAR,CACKC,qBADL,GAEKC,kBAFL;;AAIAH,gBAAQI,KAAR,GACKC,IADL,CACU;AAAA,mBAAML,QAAQM,OAAR,CAAgB,OAAhB,CAAN;AAAA,SADV;AAEH;;yBAPeP,S","file":"main.js","sourceRoot":"/src"} \ No newline at end of file +{"version":3,"sources":["main.js"],"names":["configure","aurelia","use","standardConfiguration","developmentLogging","feature","start","then","setRoot"],"mappings":";;;AAAO,aAASA,SAAT,CAAmBC,OAAnB,EAA4B;AAC/BA,gBAAQC,GAAR,CACKC,qBADL,GAEKC,kBAFL,GAGKC,OAHL,CAGa,WAHb,EAIKA,OAJL,CAIa,OAJb;;AAMAJ,gBAAQK,KAAR,GACKC,IADL,CACU;AAAA,mBAAMN,QAAQO,OAAR,CAAgB,OAAhB,CAAN;AAAA,SADV;AAEH;;yBATeR,S","file":"main.js","sourceRoot":"/src"} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/repository/qep.repository.js b/shrine-webclient/src/main/js/client/js-shrine/dist/repository/qep.repository.js index b3f6eb19f..7947905bc 100644 --- a/shrine-webclient/src/main/js/client/js-shrine/dist/repository/qep.repository.js +++ b/shrine-webclient/src/main/js/client/js-shrine/dist/repository/qep.repository.js @@ -1,110 +1,110 @@ System.register(['aurelia-fetch-client', 'fetch'], function (_export, _context) { "use strict"; var HttpClient, _createClass, _class, _temp, QEPRepository; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } return { setters: [function (_aureliaFetchClient) { HttpClient = _aureliaFetchClient.HttpClient; }, function (_fetch) {}], execute: function () { _createClass = function () { function defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } } return function (Constructor, protoProps, staticProps) { if (protoProps) defineProperties(Constructor.prototype, protoProps); if (staticProps) defineProperties(Constructor, staticProps); return Constructor; }; }(); _export('QEPRepository', QEPRepository = (_temp = _class = function () { function QEPRepository(http) { var _this = this; _classCallCheck(this, QEPRepository); http.configure(function (config) { config.useStandardConfiguration().withBaseUrl(_this.url).withDefaults({ headers: { 'Authorization': 'Basic ' + _this.auth } }); }); this.http = http; } QEPRepository.prototype.fetchPreviousQueries = function fetchPreviousQueries(limit) { var skip = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 0; return this.http.fetch('qep/queryResults?limit=' + limit + '&skip=' + skip).then(function (response) { return response.json(); }).catch(function (error) { return error; }); }; QEPRepository.prototype.fetchNetworkId = function fetchNetworkId(queryName) { return this.http.fetch('qep/networkId?queryName=\'' + queryName + '\'').then(function (response) { return response.json(); }).catch(function (error) { return error; }); }; QEPRepository.prototype.fetchQuery = function fetchQuery(networkId) { - return this.http.fetch('qep/queryResults?networkId=' + networkId).then(function (response) { + return this.http.fetch('qep/queryResult/' + networkId).then(function (response) { return response.json(); }).catch(function (error) { return error; }); }; QEPRepository.prototype.fetchStewardEmail = function fetchStewardEmail() { return this.http.fetch('data?key=stewardEmail').then(function (response) { return response.json(); }).then(function (address) { return address.indexOf('\"') > 0 ? address.split('\"')[1] : address; }).catch(function () { return ''; }); }; _createClass(QEPRepository, [{ key: 'url', get: function get() { var url = document.URL; var service = ':6443/shrine-metadata/'; return url.substring(0, url.lastIndexOf(':')) + service; } }, { key: 'auth', get: function get() { var auth = sessionStorage.getItem('shrine.auth'); sessionStorage.removeItem('shrine.auth'); return auth; } }]); return QEPRepository; }(), _class.inject = [HttpClient], _temp)); _export('QEPRepository', QEPRepository); } }; }); //# sourceMappingURL=qep.repository.js.map diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/repository/qep.repository.js.map b/shrine-webclient/src/main/js/client/js-shrine/dist/repository/qep.repository.js.map index 722dc697e..0bcdcd822 100644 --- a/shrine-webclient/src/main/js/client/js-shrine/dist/repository/qep.repository.js.map +++ b/shrine-webclient/src/main/js/client/js-shrine/dist/repository/qep.repository.js.map @@ -1 +1 @@ -{"version":3,"sources":["repository/qep.repository.js"],"names":["HttpClient","QEPRepository","http","configure","config","useStandardConfiguration","withBaseUrl","url","withDefaults","headers","auth","fetchPreviousQueries","limit","skip","fetch","then","response","json","catch","error","fetchNetworkId","queryName","fetchQuery","networkId","fetchStewardEmail","address","indexOf","split","document","URL","service","substring","lastIndexOf","sessionStorage","getItem","removeItem","inject"],"mappings":";;;;;;;;;;;;;AAASA,sB,uBAAAA,U;;;;;;;;;;;;;;;;;;;;;qCAEIC,a;AAET,uCAAYC,IAAZ,EAAkB;AAAA;;AAAA;;AACdA,yBAAKC,SAAL,CAAe,kBAAU;AACrBC,+BACKC,wBADL,GAEKC,WAFL,CAEiB,MAAKC,GAFtB,EAGKC,YAHL,CAGkB;AACVC,qCAAS;AACL,iDAAiB,WAAW,MAAKC;AAD5B;AADC,yBAHlB;AAQH,qBATD;AAUA,yBAAKR,IAAL,GAAYA,IAAZ;AACH;;wCAeDS,oB,iCAAqBC,K,EAAiB;AAAA,wBAAVC,IAAU,uEAAH,CAAG;;AAClC,2BAAO,KAAKX,IAAL,CAAUY,KAAV,6BAA0CF,KAA1C,cAAwDC,IAAxD,EACFE,IADE,CACG;AAAA,+BAAYC,SAASC,IAAT,EAAZ;AAAA,qBADH,EAEFC,KAFE,CAEI;AAAA,+BAASC,KAAT;AAAA,qBAFJ,CAAP;AAGH,iB;;wCAEDC,c,2BAAeC,S,EAAW;AACtB,2BAAO,KAAKnB,IAAL,CAAUY,KAAV,gCAA4CO,SAA5C,SACFN,IADE,CACG;AAAA,+BAAYC,SAASC,IAAT,EAAZ;AAAA,qBADH,EAEFC,KAFE,CAEI;AAAA,+BAASC,KAAT;AAAA,qBAFJ,CAAP;AAGH,iB;;wCAEDG,U,uBAAWC,S,EAAW;AAClB,2BAAO,KAAKrB,IAAL,CAAUY,KAAV,iCAA8CS,SAA9C,EACFR,IADE,CACG;AAAA,+BAAYC,SAASC,IAAT,EAAZ;AAAA,qBADH,EAEFC,KAFE,CAEI;AAAA,+BAASC,KAAT;AAAA,qBAFJ,CAAP;AAGH,iB;;wCAEDK,iB,gCAAoB;AAChB,2BAAO,KAAKtB,IAAL,CAAUY,KAAV,CAAgB,uBAAhB,EACFC,IADE,CACG;AAAA,+BAAYC,SAASC,IAAT,EAAZ;AAAA,qBADH,EAEFF,IAFE,CAEG,mBAAW;AACb,+BAAQU,QAAQC,OAAR,CAAgB,IAAhB,IAAwB,CAAzB,GACHD,QAAQE,KAAR,CAAc,IAAd,EAAoB,CAApB,CADG,GACsBF,OAD7B;AAEH,qBALE,EAMFP,KANE,CAMI;AAAA,+BAAM,EAAN;AAAA,qBANJ,CAAP;AAOH,iB;;;;wCAvCS;AACN,4BAAMX,MAAMqB,SAASC,GAArB;AACA,4BAAMC,UAAU,wBAAhB;AACA,+BAAOvB,IAAIwB,SAAJ,CAAc,CAAd,EAAiBxB,IAAIyB,WAAJ,CAAgB,GAAhB,CAAjB,IAAyCF,OAAhD;AACH;;;wCAEU;AACP,4BAAMpB,OAAOuB,eAAeC,OAAf,CAAuB,aAAvB,CAAb;AACAD,uCAAeE,UAAf,CAA0B,aAA1B;AACA,+BAAOzB,IAAP;AACH;;;;wBAzBM0B,M,GAAS,CAACpC,UAAD,C","file":"qep.repository.js","sourceRoot":"/src"} \ No newline at end of file +{"version":3,"sources":["repository/qep.repository.js"],"names":["HttpClient","QEPRepository","http","configure","config","useStandardConfiguration","withBaseUrl","url","withDefaults","headers","auth","fetchPreviousQueries","limit","skip","fetch","then","response","json","catch","error","fetchNetworkId","queryName","fetchQuery","networkId","fetchStewardEmail","address","indexOf","split","document","URL","service","substring","lastIndexOf","sessionStorage","getItem","removeItem","inject"],"mappings":";;;;;;;;;;;;;AAASA,sB,uBAAAA,U;;;;;;;;;;;;;;;;;;;;;qCAEIC,a;AAET,uCAAYC,IAAZ,EAAkB;AAAA;;AAAA;;AACdA,yBAAKC,SAAL,CAAe,kBAAU;AACrBC,+BACKC,wBADL,GAEKC,WAFL,CAEiB,MAAKC,GAFtB,EAGKC,YAHL,CAGkB;AACVC,qCAAS;AACL,iDAAiB,WAAW,MAAKC;AAD5B;AADC,yBAHlB;AAQH,qBATD;AAUA,yBAAKR,IAAL,GAAYA,IAAZ;AACH;;wCAeDS,oB,iCAAqBC,K,EAAiB;AAAA,wBAAVC,IAAU,uEAAH,CAAG;;AAClC,2BAAO,KAAKX,IAAL,CAAUY,KAAV,6BAA0CF,KAA1C,cAAwDC,IAAxD,EACFE,IADE,CACG;AAAA,+BAAYC,SAASC,IAAT,EAAZ;AAAA,qBADH,EAEFC,KAFE,CAEI;AAAA,+BAASC,KAAT;AAAA,qBAFJ,CAAP;AAGH,iB;;wCAEDC,c,2BAAeC,S,EAAW;AACtB,2BAAO,KAAKnB,IAAL,CAAUY,KAAV,gCAA4CO,SAA5C,SACFN,IADE,CACG;AAAA,+BAAYC,SAASC,IAAT,EAAZ;AAAA,qBADH,EAEFC,KAFE,CAEI;AAAA,+BAASC,KAAT;AAAA,qBAFJ,CAAP;AAGH,iB;;wCAEDG,U,uBAAWC,S,EAAW;AAClB,2BAAO,KAAKrB,IAAL,CAAUY,KAAV,sBAAmCS,SAAnC,EACFR,IADE,CACG;AAAA,+BAAYC,SAASC,IAAT,EAAZ;AAAA,qBADH,EAEFC,KAFE,CAEI;AAAA,+BAASC,KAAT;AAAA,qBAFJ,CAAP;AAGH,iB;;wCAEDK,iB,gCAAoB;AAChB,2BAAO,KAAKtB,IAAL,CAAUY,KAAV,CAAgB,uBAAhB,EACFC,IADE,CACG;AAAA,+BAAYC,SAASC,IAAT,EAAZ;AAAA,qBADH,EAEFF,IAFE,CAEG,mBAAW;AACb,+BAAQU,QAAQC,OAAR,CAAgB,IAAhB,IAAwB,CAAzB,GACHD,QAAQE,KAAR,CAAc,IAAd,EAAoB,CAApB,CADG,GACsBF,OAD7B;AAEH,qBALE,EAMFP,KANE,CAMI;AAAA,+BAAM,EAAN;AAAA,qBANJ,CAAP;AAOH,iB;;;;wCAvCS;AACN,4BAAMX,MAAMqB,SAASC,GAArB;AACA,4BAAMC,UAAU,wBAAhB;AACA,+BAAOvB,IAAIwB,SAAJ,CAAc,CAAd,EAAiBxB,IAAIyB,WAAJ,CAAgB,GAAhB,CAAjB,IAAyCF,OAAhD;AACH;;;wCAEU;AACP,4BAAMpB,OAAOuB,eAAeC,OAAf,CAAuB,aAAvB,CAAb;AACAD,uCAAeE,UAAf,CAA0B,aAA1B;AACA,+BAAOzB,IAAP;AACH;;;;wBAzBM0B,M,GAAS,CAACpC,UAAD,C","file":"qep.repository.js","sourceRoot":"/src"} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-viewer/box-style.converter.js b/shrine-webclient/src/main/js/client/js-shrine/dist/resources/converters/box-style.converter.js similarity index 100% rename from shrine-webclient/src/main/js/client/js-shrine/dist/views/query-viewer/box-style.converter.js rename to shrine-webclient/src/main/js/client/js-shrine/dist/resources/converters/box-style.converter.js diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/resources/converters/box-style.converter.js.map b/shrine-webclient/src/main/js/client/js-shrine/dist/resources/converters/box-style.converter.js.map new file mode 100644 index 000000000..f45c4baa8 --- /dev/null +++ b/shrine-webclient/src/main/js/client/js-shrine/dist/resources/converters/box-style.converter.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["resources/converters/box-style.converter.js"],"names":["BoxStyleValueConverter","toView","value","String"],"mappings":";;;;;;;;;;;;;;8CAAaA,sB;;;;;iDACTC,M,mBAAOC,K,EAAO;AACV,2BAAO,0BAA0BC,OAAO,CAAC,GAAD,GAAOD,KAAd,CAA1B,GAAiD,KAAxD;AACH,iB","file":"box-style.converter.js","sourceRoot":"/src"} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/common/converters/count-value-converter.js b/shrine-webclient/src/main/js/client/js-shrine/dist/resources/converters/count-value-converter.js similarity index 100% rename from shrine-webclient/src/main/js/client/js-shrine/dist/common/converters/count-value-converter.js rename to shrine-webclient/src/main/js/client/js-shrine/dist/resources/converters/count-value-converter.js diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/resources/converters/count-value-converter.js.map b/shrine-webclient/src/main/js/client/js-shrine/dist/resources/converters/count-value-converter.js.map new file mode 100644 index 000000000..1c8e9daab --- /dev/null +++ b/shrine-webclient/src/main/js/client/js-shrine/dist/resources/converters/count-value-converter.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["resources/converters/count-value-converter.js"],"names":["CountValueConverter","toView","value"],"mappings":";;;;;;;;;;;;;;2CAAaA,mB;;;;;8CACTC,M,mBAAOC,K,EAAO;AACV,2BAAOA,QAAQ,CAAR,qBAAgCA,KAAhC,mBAAP;AACH,iB","file":"count-value-converter.js","sourceRoot":"/src"} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/common/converters/datetime.value.converter.js b/shrine-webclient/src/main/js/client/js-shrine/dist/resources/converters/datetime.value.converter.js similarity index 100% rename from shrine-webclient/src/main/js/client/js-shrine/dist/common/converters/datetime.value.converter.js rename to shrine-webclient/src/main/js/client/js-shrine/dist/resources/converters/datetime.value.converter.js diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/resources/converters/datetime.value.converter.js.map b/shrine-webclient/src/main/js/client/js-shrine/dist/resources/converters/datetime.value.converter.js.map new file mode 100644 index 000000000..c2097ce47 --- /dev/null +++ b/shrine-webclient/src/main/js/client/js-shrine/dist/resources/converters/datetime.value.converter.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["resources/converters/datetime.value.converter.js"],"names":["moment","DateTimeValueConverter","toView","value","format"],"mappings":";;;;;;;;;;;;;AAAOA,Y;;;wCACMC,sB;;;;;yCACXC,M,mBAAOC,K,EAAO;AACb,iBAAOH,OAAOG,KAAP,EAAcC,MAAd,CAAqB,sBAArB,CAAP;AACA,S","file":"datetime.value.converter.js","sourceRoot":"/src"} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-viewer/result-style.converter.js b/shrine-webclient/src/main/js/client/js-shrine/dist/resources/converters/result-style.converter.js similarity index 100% rename from shrine-webclient/src/main/js/client/js-shrine/dist/views/query-viewer/result-style.converter.js rename to shrine-webclient/src/main/js/client/js-shrine/dist/resources/converters/result-style.converter.js diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/resources/converters/result-style.converter.js.map b/shrine-webclient/src/main/js/client/js-shrine/dist/resources/converters/result-style.converter.js.map new file mode 100644 index 000000000..35bd27e08 --- /dev/null +++ b/shrine-webclient/src/main/js/client/js-shrine/dist/resources/converters/result-style.converter.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["resources/converters/result-style.converter.js"],"names":["ResultStyleValueConverter","toView","value","result","isUnresolved","getColorValue","finishedStatus","status","errorStatus","errorColor","altColor"],"mappings":";;;;;;;;;;;;;;iDAAaA,yB;;;;;oDACTC,M,mBAAOC,K,EAAO;AACV,wBAAMC,SAAS,KAAKC,YAAL,CAAkBF,KAAlB,IAA2B,WAAW,KAAKG,aAAL,CAAmBH,KAAnB,CAAtC,GAAkE,EAAjF;AACA,2BAAOC,MAAP;AACH,iB;;oDAEDC,Y,yBAAaF,K,EAAoC;AAAA,wBAA7BI,cAA6B,uEAAZ,UAAY;;AAC7C,2BAAO,CAACJ,KAAD,IAAUA,MAAMK,MAAN,KAAiBD,cAAlC;AACH,iB;;oDAEDD,a,0BAAcH,K,EAA4E;AAAA,wBAArEM,WAAqE,uEAAvD,OAAuD;AAAA,wBAA9CC,UAA8C,uEAAjC,SAAiC;AAAA,wBAAtBC,QAAsB,uEAAX,SAAW;;AACtF,2BAAO,CAACR,KAAD,IAAUA,MAAMK,MAAN,KAAiBC,WAA3B,GAAyCC,UAAzC,GAAsDC,QAA7D;AACH,iB","file":"result-style.converter.js","sourceRoot":"/src"} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-viewer/result-value.converter.js b/shrine-webclient/src/main/js/client/js-shrine/dist/resources/converters/result-value.converter.js similarity index 100% rename from shrine-webclient/src/main/js/client/js-shrine/dist/views/query-viewer/result-value.converter.js rename to shrine-webclient/src/main/js/client/js-shrine/dist/resources/converters/result-value.converter.js diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/resources/converters/result-value.converter.js.map b/shrine-webclient/src/main/js/client/js-shrine/dist/resources/converters/result-value.converter.js.map new file mode 100644 index 000000000..831147a72 --- /dev/null +++ b/shrine-webclient/src/main/js/client/js-shrine/dist/resources/converters/result-value.converter.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["resources/converters/result-value.converter.js"],"names":["ResultValueConverter","toView","value","status","count"],"mappings":";;;;;;;;;;;;;;4CAAaA,oB;;;;;+CACTC,M,mBAAOC,K,EAAO;AAGV,wBAAI,CAACA,KAAL,EAAY;AACR,+BAAO,eAAP;AACH;;AAED,wBAAIA,MAAMC,MAAN,KAAiB,UAArB,EAAiC;AAC7B,+BAAO,EAAP;AACH;;AAED,2BAAOD,MAAME,KAAN,GAAc,CAAd,GAAiB,MAAjB,GAA0BF,MAAME,KAAvC;AACH,iB","file":"result-value.converter.js","sourceRoot":"/src"} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/resources/custom/breakdown/breakdown.html b/shrine-webclient/src/main/js/client/js-shrine/dist/resources/custom/breakdown/breakdown.html new file mode 100644 index 000000000..aadccc184 --- /dev/null +++ b/shrine-webclient/src/main/js/client/js-shrine/dist/resources/custom/breakdown/breakdown.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-status/node-result/result-types/patient-count/patient-count.js b/shrine-webclient/src/main/js/client/js-shrine/dist/resources/custom/breakdown/breakdown.js similarity index 73% copy from shrine-webclient/src/main/js/client/js-shrine/dist/views/query-status/node-result/result-types/patient-count/patient-count.js copy to shrine-webclient/src/main/js/client/js-shrine/dist/resources/custom/breakdown/breakdown.js index 20f9d5b00..a042c4a99 100644 --- a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-status/node-result/result-types/patient-count/patient-count.js +++ b/shrine-webclient/src/main/js/client/js-shrine/dist/resources/custom/breakdown/breakdown.js @@ -1,78 +1,74 @@ System.register(['aurelia-framework'], function (_export, _context) { "use strict"; - var bindable, _desc, _value, _class, _descriptor, _descriptor2, PatientCount; + var bindable, customElement, _dec, _class, _desc, _value, _class2, _descriptor, Breakdown; function _initDefineProp(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object['ke' + 'ys'](descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object['define' + 'Property'](target, property, desc); desc = null; } return desc; } function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that transform-class-properties is enabled.'); } return { setters: [function (_aureliaFramework) { bindable = _aureliaFramework.bindable; + customElement = _aureliaFramework.customElement; }], execute: function () { - _export('PatientCount', PatientCount = (_class = function PatientCount() { - _classCallCheck(this, PatientCount); + _export('Breakdown', Breakdown = (_dec = customElement('breakdown'), _dec(_class = (_class2 = function Breakdown() { + _classCallCheck(this, Breakdown); - _initDefineProp(this, 'result', _descriptor, this); - - _initDefineProp(this, 'showBreakdown', _descriptor2, this); - }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, 'result', [bindable], { - enumerable: true, - initializer: null - }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, 'showBreakdown', [bindable], { + _initDefineProp(this, 'data', _descriptor, this); + }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, 'data', [bindable], { enumerable: true, initializer: null - })), _class)); + })), _class2)) || _class)); - _export('PatientCount', PatientCount); + _export('Breakdown', Breakdown); } }; }); -//# sourceMappingURL=patient-count.js.map +//# sourceMappingURL=breakdown.js.map diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/resources/custom/breakdown/breakdown.js.map b/shrine-webclient/src/main/js/client/js-shrine/dist/resources/custom/breakdown/breakdown.js.map new file mode 100644 index 000000000..2e95970c5 --- /dev/null +++ b/shrine-webclient/src/main/js/client/js-shrine/dist/resources/custom/breakdown/breakdown.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["resources/custom/breakdown/breakdown.js"],"names":["bindable","customElement","Breakdown"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAQA,oB,qBAAAA,Q;AAAUC,yB,qBAAAA,a;;;iCAELC,S,WADZD,cAAc,WAAd,C;;;;oFAEID,Q","file":"breakdown.js","sourceRoot":"/src"} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-status/node-result/result-types/error/error.html b/shrine-webclient/src/main/js/client/js-shrine/dist/resources/custom/error/error.html similarity index 100% rename from shrine-webclient/src/main/js/client/js-shrine/dist/views/query-status/node-result/result-types/error/error.html rename to shrine-webclient/src/main/js/client/js-shrine/dist/resources/custom/error/error.html diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-status/node-result/result-types/error/error.js b/shrine-webclient/src/main/js/client/js-shrine/dist/resources/custom/error/error.js similarity index 84% rename from shrine-webclient/src/main/js/client/js-shrine/dist/views/query-status/node-result/result-types/error/error.js rename to shrine-webclient/src/main/js/client/js-shrine/dist/resources/custom/error/error.js index dc478ec4d..f0413f9ac 100644 --- a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-status/node-result/result-types/error/error.js +++ b/shrine-webclient/src/main/js/client/js-shrine/dist/resources/custom/error/error.js @@ -1,114 +1,115 @@ -System.register(['aurelia-framework', 'common/publisher'], function (_export, _context) { +System.register(['aurelia-framework', 'services/pub-sub'], function (_export, _context) { "use strict"; - var inject, bindable, Publisher, _desc, _value, _class, _descriptor, Error; + var inject, bindable, customElement, PubSub, _dec, _class, _desc, _value, _class2, _descriptor, Error; function _initDefineProp(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object['ke' + 'ys'](descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object['define' + 'Property'](target, property, desc); desc = null; } return desc; } function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that transform-class-properties is enabled.'); } return { setters: [function (_aureliaFramework) { inject = _aureliaFramework.inject; bindable = _aureliaFramework.bindable; - }, function (_commonPublisher) { - Publisher = _commonPublisher.Publisher; + customElement = _aureliaFramework.customElement; + }, function (_servicesPubSub) { + PubSub = _servicesPubSub.PubSub; }], execute: function () { - _export('Error', Error = (_class = function (_Publisher) { - _inherits(Error, _Publisher); + _export('Error', Error = (_dec = customElement('error'), _dec(_class = (_class2 = function (_PubSub) { + _inherits(Error, _PubSub); function Error() { _classCallCheck(this, Error); for (var _len = arguments.length, rest = Array(_len), _key = 0; _key < _len; _key++) { rest[_key] = arguments[_key]; } - var _this = _possibleConstructorReturn(this, _Publisher.call.apply(_Publisher, [this].concat(rest))); + var _this = _possibleConstructorReturn(this, _PubSub.call.apply(_PubSub, [this].concat(rest))); _initDefineProp(_this, 'result', _descriptor, _this); return _this; } return Error; - }(Publisher), (_descriptor = _applyDecoratedDescriptor(_class.prototype, 'result', [bindable], { + }(PubSub), (_descriptor = _applyDecoratedDescriptor(_class2.prototype, 'result', [bindable], { enumerable: true, initializer: null - })), _class)); + })), _class2)) || _class)); _export('Error', Error); } }; }); //# sourceMappingURL=error.js.map diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/resources/custom/error/error.js.map b/shrine-webclient/src/main/js/client/js-shrine/dist/resources/custom/error/error.js.map new file mode 100644 index 000000000..23b575659 --- /dev/null +++ b/shrine-webclient/src/main/js/client/js-shrine/dist/resources/custom/error/error.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["resources/custom/error/error.js"],"names":["inject","bindable","customElement","PubSub","Error","rest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAQA,kB,qBAAAA,M;AAAQC,oB,qBAAAA,Q;AAAUC,yB,qBAAAA,a;;AAClBC,kB,mBAAAA,M;;;6BAEKC,K,WADZF,cAAc,OAAd,C;;;AAGG,iCAAqB;AAAA;;AAAA,sDAANG,IAAM;AAANA,4BAAM;AAAA;;AAAA,iEACjB,0CAASA,IAAT,EADiB;;AAAA;;AAAA;AAEpB;;;cAJsBF,M,0EACtBF,Q","file":"error.js","sourceRoot":"/src"} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/resources/custom/node-result/node-result.html b/shrine-webclient/src/main/js/client/js-shrine/dist/resources/custom/node-result/node-result.html new file mode 100644 index 000000000..31043821d --- /dev/null +++ b/shrine-webclient/src/main/js/client/js-shrine/dist/resources/custom/node-result/node-result.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-status/node-result/node-result.js b/shrine-webclient/src/main/js/client/js-shrine/dist/resources/custom/node-result/node-result.js similarity index 81% rename from shrine-webclient/src/main/js/client/js-shrine/dist/views/query-status/node-result/node-result.js rename to shrine-webclient/src/main/js/client/js-shrine/dist/resources/custom/node-result/node-result.js index 27647658d..0855272fc 100644 --- a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-status/node-result/node-result.js +++ b/shrine-webclient/src/main/js/client/js-shrine/dist/resources/custom/node-result/node-result.js @@ -1,78 +1,79 @@ System.register(['aurelia-framework'], function (_export, _context) { "use strict"; - var bindable, _desc, _value, _class, _descriptor, _descriptor2, NodeResult; + var customElement, bindable, _dec, _class, _desc, _value, _class2, _descriptor, _descriptor2, NodeResult; function _initDefineProp(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object['ke' + 'ys'](descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object['define' + 'Property'](target, property, desc); desc = null; } return desc; } function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that transform-class-properties is enabled.'); } return { setters: [function (_aureliaFramework) { + customElement = _aureliaFramework.customElement; bindable = _aureliaFramework.bindable; }], execute: function () { - _export('NodeResult', NodeResult = (_class = function NodeResult() { + _export('NodeResult', NodeResult = (_dec = customElement('node-result'), _dec(_class = (_class2 = function NodeResult() { _classCallCheck(this, NodeResult); _initDefineProp(this, 'result', _descriptor, this); _initDefineProp(this, 'queryName', _descriptor2, this); - }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, 'result', [bindable], { + }, (_descriptor = _applyDecoratedDescriptor(_class2.prototype, 'result', [bindable], { enumerable: true, initializer: null - }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, 'queryName', [bindable], { + }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, 'queryName', [bindable], { enumerable: true, initializer: null - })), _class)); + })), _class2)) || _class)); _export('NodeResult', NodeResult); } }; }); //# sourceMappingURL=node-result.js.map diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/resources/custom/node-result/node-result.js.map b/shrine-webclient/src/main/js/client/js-shrine/dist/resources/custom/node-result/node-result.js.map new file mode 100644 index 000000000..9195db095 --- /dev/null +++ b/shrine-webclient/src/main/js/client/js-shrine/dist/resources/custom/node-result/node-result.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["resources/custom/node-result/node-result.js"],"names":["customElement","bindable","NodeResult"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAQA,yB,qBAAAA,a;AAAeC,oB,qBAAAA,Q;;;kCAEVC,U,WADZF,cAAc,aAAd,C;;;;;;sFAEIC,Q;;;0FACAA,Q","file":"node-result.js","sourceRoot":"/src"} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/resources/custom/node-status/node-status.html b/shrine-webclient/src/main/js/client/js-shrine/dist/resources/custom/node-status/node-status.html new file mode 100644 index 000000000..bf9ed8e4e --- /dev/null +++ b/shrine-webclient/src/main/js/client/js-shrine/dist/resources/custom/node-status/node-status.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-status/node-status/node-status.js b/shrine-webclient/src/main/js/client/js-shrine/dist/resources/custom/node-status/node-status.js similarity index 83% rename from shrine-webclient/src/main/js/client/js-shrine/dist/views/query-status/node-status/node-status.js rename to shrine-webclient/src/main/js/client/js-shrine/dist/resources/custom/node-status/node-status.js index 2019d534f..7cce0c91c 100644 --- a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-status/node-status/node-status.js +++ b/shrine-webclient/src/main/js/client/js-shrine/dist/resources/custom/node-status/node-status.js @@ -1,113 +1,114 @@ -System.register(['aurelia-framework', 'common/publisher'], function (_export, _context) { +System.register(['aurelia-framework', 'services/pub-sub'], function (_export, _context) { "use strict"; - var bindable, Publisher, _desc, _value, _class, _descriptor, NodeStatus; + var customElement, bindable, PubSub, _dec, _class, _desc, _value, _class2, _descriptor, NodeStatus; function _initDefineProp(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _possibleConstructorReturn(self, call) { if (!self) { throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); } return call && (typeof call === "object" || typeof call === "function") ? call : self; } function _inherits(subClass, superClass) { if (typeof superClass !== "function" && superClass !== null) { throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); } subClass.prototype = Object.create(superClass && superClass.prototype, { constructor: { value: subClass, enumerable: false, writable: true, configurable: true } }); if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; } function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object['ke' + 'ys'](descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object['define' + 'Property'](target, property, desc); desc = null; } return desc; } function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that transform-class-properties is enabled.'); } return { setters: [function (_aureliaFramework) { + customElement = _aureliaFramework.customElement; bindable = _aureliaFramework.bindable; - }, function (_commonPublisher) { - Publisher = _commonPublisher.Publisher; + }, function (_servicesPubSub) { + PubSub = _servicesPubSub.PubSub; }], execute: function () { - _export('NodeStatus', NodeStatus = (_class = function (_Publisher) { - _inherits(NodeStatus, _Publisher); + _export('NodeStatus', NodeStatus = (_dec = customElement('node-status'), _dec(_class = (_class2 = function (_PubSub) { + _inherits(NodeStatus, _PubSub); function NodeStatus() { _classCallCheck(this, NodeStatus); for (var _len = arguments.length, rest = Array(_len), _key = 0; _key < _len; _key++) { rest[_key] = arguments[_key]; } - var _this = _possibleConstructorReturn(this, _Publisher.call.apply(_Publisher, [this].concat(rest))); + var _this = _possibleConstructorReturn(this, _PubSub.call.apply(_PubSub, [this].concat(rest))); _initDefineProp(_this, 'result', _descriptor, _this); return _this; } return NodeStatus; - }(Publisher), (_descriptor = _applyDecoratedDescriptor(_class.prototype, 'result', [bindable], { + }(PubSub), (_descriptor = _applyDecoratedDescriptor(_class2.prototype, 'result', [bindable], { enumerable: true, initializer: null - })), _class)); + })), _class2)) || _class)); _export('NodeStatus', NodeStatus); } }; }); //# sourceMappingURL=node-status.js.map diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/resources/custom/node-status/node-status.js.map b/shrine-webclient/src/main/js/client/js-shrine/dist/resources/custom/node-status/node-status.js.map new file mode 100644 index 000000000..68d1f34b2 --- /dev/null +++ b/shrine-webclient/src/main/js/client/js-shrine/dist/resources/custom/node-status/node-status.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["resources/custom/node-status/node-status.js"],"names":["customElement","bindable","PubSub","NodeStatus","rest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAQA,yB,qBAAAA,a;AAAeC,oB,qBAAAA,Q;;AACfC,kB,mBAAAA,M;;;kCAEKC,U,WADZH,cAAc,aAAd,C;;;AAGG,sCAAqB;AAAA;;AAAA,sDAANI,IAAM;AAANA,4BAAM;AAAA;;AAAA,iEACjB,0CAASA,IAAT,EADiB;;AAAA;;AAAA;AAEpB;;;cAJ2BF,M,0EAC3BD,Q","file":"node-status.js","sourceRoot":"/src"} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/resources/custom/node-status/temp.html b/shrine-webclient/src/main/js/client/js-shrine/dist/resources/custom/node-status/temp.html new file mode 100644 index 000000000..703ffd613 --- /dev/null +++ b/shrine-webclient/src/main/js/client/js-shrine/dist/resources/custom/node-status/temp.html @@ -0,0 +1 @@ +
${result.adapterNode}
  ${result.statusMessage}   ERROR: ${result.statusDescription}   ${result.statusMessage}
  ${result.count | count}
Patient Count: - ${result.count | count}
 - ERROR: ${result.statusDescription} - ${result.statusMessage} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/resources/custom/patient-count/patient-count.html b/shrine-webclient/src/main/js/client/js-shrine/dist/resources/custom/patient-count/patient-count.html new file mode 100644 index 000000000..2559beb5a --- /dev/null +++ b/shrine-webclient/src/main/js/client/js-shrine/dist/resources/custom/patient-count/patient-count.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-status/node-result/result-types/patient-count/patient-count.js b/shrine-webclient/src/main/js/client/js-shrine/dist/resources/custom/patient-count/patient-count.js similarity index 69% rename from shrine-webclient/src/main/js/client/js-shrine/dist/views/query-status/node-result/result-types/patient-count/patient-count.js rename to shrine-webclient/src/main/js/client/js-shrine/dist/resources/custom/patient-count/patient-count.js index 20f9d5b00..f1e30af4c 100644 --- a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-status/node-result/result-types/patient-count/patient-count.js +++ b/shrine-webclient/src/main/js/client/js-shrine/dist/resources/custom/patient-count/patient-count.js @@ -1,78 +1,87 @@ System.register(['aurelia-framework'], function (_export, _context) { "use strict"; - var bindable, _desc, _value, _class, _descriptor, _descriptor2, PatientCount; + var bindable, customElement, _dec, _class, _desc, _value, _class2, _descriptor, _descriptor2, PatientCount; function _initDefineProp(target, property, descriptor, context) { if (!descriptor) return; Object.defineProperty(target, property, { enumerable: descriptor.enumerable, configurable: descriptor.configurable, writable: descriptor.writable, value: descriptor.initializer ? descriptor.initializer.call(context) : void 0 }); } function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } function _applyDecoratedDescriptor(target, property, decorators, descriptor, context) { var desc = {}; Object['ke' + 'ys'](descriptor).forEach(function (key) { desc[key] = descriptor[key]; }); desc.enumerable = !!desc.enumerable; desc.configurable = !!desc.configurable; if ('value' in desc || desc.initializer) { desc.writable = true; } desc = decorators.slice().reverse().reduce(function (desc, decorator) { return decorator(target, property, desc) || desc; }, desc); if (context && desc.initializer !== void 0) { desc.value = desc.initializer ? desc.initializer.call(context) : void 0; desc.initializer = undefined; } if (desc.initializer === void 0) { Object['define' + 'Property'](target, property, desc); desc = null; } return desc; } function _initializerWarningHelper(descriptor, context) { throw new Error('Decorating class property failed. Please ensure that transform-class-properties is enabled.'); } return { setters: [function (_aureliaFramework) { bindable = _aureliaFramework.bindable; + customElement = _aureliaFramework.customElement; }], execute: function () { - _export('PatientCount', PatientCount = (_class = function PatientCount() { - _classCallCheck(this, PatientCount); + _export('PatientCount', PatientCount = (_dec = customElement('patient-count'), _dec(_class = (_class2 = function () { + function PatientCount() { + _classCallCheck(this, PatientCount); - _initDefineProp(this, 'result', _descriptor, this); + _initDefineProp(this, 'result', _descriptor, this); - _initDefineProp(this, 'showBreakdown', _descriptor2, this); - }, (_descriptor = _applyDecoratedDescriptor(_class.prototype, 'result', [bindable], { + _initDefineProp(this, 'showBreakdown', _descriptor2, this); + } + + PatientCount.prototype.attached = function attached() { + console.log(this.result); + }; + + return PatientCount; + }(), (_descriptor = _applyDecoratedDescriptor(_class2.prototype, 'result', [bindable], { enumerable: true, initializer: null - }), _descriptor2 = _applyDecoratedDescriptor(_class.prototype, 'showBreakdown', [bindable], { + }), _descriptor2 = _applyDecoratedDescriptor(_class2.prototype, 'showBreakdown', [bindable], { enumerable: true, initializer: null - })), _class)); + })), _class2)) || _class)); _export('PatientCount', PatientCount); } }; }); //# sourceMappingURL=patient-count.js.map diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/resources/custom/patient-count/patient-count.js.map b/shrine-webclient/src/main/js/client/js-shrine/dist/resources/custom/patient-count/patient-count.js.map new file mode 100644 index 000000000..eaa8e4755 --- /dev/null +++ b/shrine-webclient/src/main/js/client/js-shrine/dist/resources/custom/patient-count/patient-count.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["resources/custom/patient-count/patient-count.js"],"names":["bindable","customElement","PatientCount","attached","console","log","result"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAQA,oB,qBAAAA,Q;AAAUC,yB,qBAAAA,a;;;oCAELC,Y,WADZD,cAAc,eAAd,C;;;;;;;;;uCAIGE,Q,uBAAW;AACPC,4BAAQC,GAAR,CAAY,KAAKC,MAAjB;AACH,iB;;;wFAJAN,Q;;;8FACAA,Q","file":"patient-count.js","sourceRoot":"/src"} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/resources/index.js b/shrine-webclient/src/main/js/client/js-shrine/dist/resources/index.js new file mode 100644 index 000000000..7b2ac1b2a --- /dev/null +++ b/shrine-webclient/src/main/js/client/js-shrine/dist/resources/index.js @@ -0,0 +1,26 @@ +System.register([], function (_export, _context) { + "use strict"; + + function configure(aurelia) { + + var converterPrefix = 'converters'; + var converters = ['box-style.converter', 'count-value-converter', 'datetime.value.converter', 'result-style.converter', 'result-value.converter']; + aurelia.globalResources.apply(aurelia, converters.map(function (c) { + return './' + converterPrefix + '/' + c; + })); + + var customPrefix = 'custom'; + var custom = ['error/error', 'breakdown/breakdown', 'node-result/node-result', 'node-status/node-status']; + aurelia.globalResources.apply(aurelia, custom.map(function (c) { + return './' + customPrefix + '/' + c; + })); + } + + _export('configure', configure); + + return { + setters: [], + execute: function () {} + }; +}); +//# sourceMappingURL=index.js.map diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/resources/index.js.map b/shrine-webclient/src/main/js/client/js-shrine/dist/resources/index.js.map new file mode 100644 index 000000000..3f182d643 --- /dev/null +++ b/shrine-webclient/src/main/js/client/js-shrine/dist/resources/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["resources/index.js"],"names":["configure","aurelia","converterPrefix","converters","globalResources","map","c","customPrefix","custom"],"mappings":";;;AAAO,aAASA,SAAT,CAAmBC,OAAnB,EAA4B;;AAE/B,YAAMC,kBAAkB,YAAxB;AACA,YAAMC,aAAa,CACf,qBADe,EAEf,uBAFe,EAGf,0BAHe,EAIf,wBAJe,EAKf,wBALe,CAAnB;AAOAF,gBAAQG,eAAR,gBAA2BD,WAAWE,GAAX,CAAe;AAAA,0BAAUH,eAAV,SAA6BI,CAA7B;AAAA,SAAf,CAA3B;;AAEA,YAAMC,eAAe,QAArB;AACA,YAAMC,SAAS,CACX,aADW,EAEX,qBAFW,EAGX,yBAHW,EAIX,yBAJW,CAAf;AAMAP,gBAAQG,eAAR,gBAA2BI,OAAOH,GAAP,CAAW;AAAA,0BAAUE,YAAV,SAA0BD,CAA1B;AAAA,SAAX,CAA3B;AACH;;yBApBeN,S","file":"index.js","sourceRoot":"/src"} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/common/container.js b/shrine-webclient/src/main/js/client/js-shrine/dist/services/container.js similarity index 100% rename from shrine-webclient/src/main/js/client/js-shrine/dist/common/container.js rename to shrine-webclient/src/main/js/client/js-shrine/dist/services/container.js diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/services/container.js.map b/shrine-webclient/src/main/js/client/js-shrine/dist/services/container.js.map new file mode 100644 index 000000000..42b6b1e84 --- /dev/null +++ b/shrine-webclient/src/main/js/client/js-shrine/dist/services/container.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["services/container.js"],"names":["_","Container","f","__value","of","value","map","hasNothing","join","chain","undefined","ap","otherContainer"],"mappings":";;;;;;;;;;;;;AAAYA,a;;;;;;;;;;;;;;;;;;;;;iCACCC,S;AACT,mCAAYC,CAAZ,EAAe;AAAA;;AACX,yBAAKC,OAAL,GAAeD,CAAf;AACH;;0BAEME,E,eAAGC,K,EAAO;AACb,2BAAO,IAAIJ,SAAJ,CAAc,YAAW;AAC5B,+BAAOI,KAAP;AACH,qBAFM,CAAP;AAGH,iB;;oCAMDC,G,gBAAIJ,C,EAAG;AACH,2BAAO,KAAKK,UAAL,KAAoBN,UAAUG,EAAV,CAAa,IAAb,CAApB,GAAyCH,UAAUG,EAAV,CAAaF,EAAE,KAAKG,KAAP,CAAb,CAAhD;AACH,iB;;oCAEDG,I,mBAAO;AACH,2BAAO,KAAKD,UAAL,KAAmBN,UAAUG,EAAV,CAAa,IAAb,CAAnB,GAAwC,KAAKC,KAApD;AACH,iB;;oCAEDI,K,kBAAMP,C,EAAG;AACL,2BAAO,KAAKI,GAAL,CAASJ,CAAT,EAAYM,IAAZ,EAAP;AACH,iB;;oCAEDD,U,yBAAa;AACT,2BAAO,KAAKF,KAAL,KAAe,IAAf,IAAuB,KAAKA,KAAL,KAAeK,SAA7C;AACH,iB;;oCAEDC,E,eAAGC,c,EAAgB;AACfA,mCAAeN,GAAf,CAAmB,KAAKD,KAAxB;AACH,iB;;;;wCAtBW;AACR,+BAAO,KAAKF,OAAL,EAAP;AACH","file":"container.js","sourceRoot":"/src"} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/services/i2b2.pub-sub.js b/shrine-webclient/src/main/js/client/js-shrine/dist/services/i2b2.pub-sub.js new file mode 100644 index 000000000..d2df951f7 --- /dev/null +++ b/shrine-webclient/src/main/js/client/js-shrine/dist/services/i2b2.pub-sub.js @@ -0,0 +1,104 @@ +System.register(['./pub-sub', './i2b2.service'], function (_export, _context) { + "use strict"; + + var PubSub, I2B2Service, _class, _temp, I2B2PubSub; + + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + + function _possibleConstructorReturn(self, call) { + if (!self) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + + return call && (typeof call === "object" || typeof call === "function") ? call : self; + } + + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); + } + + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + enumerable: false, + writable: true, + configurable: true + } + }); + if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; + } + + return { + setters: [function (_pubSub) { + PubSub = _pubSub.PubSub; + }, function (_i2b2Service) { + I2B2Service = _i2b2Service.I2B2Service; + }], + execute: function () { + _export('I2B2PubSub', I2B2PubSub = (_temp = _class = function (_PubSub) { + _inherits(I2B2PubSub, _PubSub); + + function I2B2PubSub(i2b2Svc) { + _classCallCheck(this, I2B2PubSub); + + for (var _len = arguments.length, rest = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + rest[_key - 1] = arguments[_key]; + } + + var _this = _possibleConstructorReturn(this, _PubSub.call.apply(_PubSub, [this].concat(rest))); + + _this.listen = function () { + i2b2Svc.onResize(function (a, b) { + return b.find(function (e) { + return e.action === 'ADD'; + }) ? function () { + return _this.publish(_this.notifications.i2b2.tabMax); + } : function () { + return _this.publish(_this.notifications.i2b2.tabMin); + }; + }); + i2b2Svc.onHistory(function () { + return _this.publish(_this.notifications.i2b2.historyRefreshed); + }); + i2b2Svc.onQuery(function (e, d) { + return _this.publish(_this.notifications.i2b2.queryStarted, d[0].name); + }); + i2b2Svc.onNetworkId(function (e, d) { + return _this.publish(_this.notifications.i2b2.networkIdReceived, d[0].networkId); + }); + i2b2Svc.onViewSelected(function (e) { + return _this.publish(_this.notifications.i2b2.viewSelected, e.data); + }); + + _this.subscribe(_this.commands.i2b2.cloneQuery, function (d) { + return i2b2Svc.loadQuery(d); + }); + _this.subscribe(_this.commands.i2b2.showError, function (d) { + return i2b2Svc.errorDetail(d); + }); + _this.subscribe(_this.commands.i2b2.renameQuery, function (d) { + return i2b2Svc.renameQuery(d); + }); + _this.subscribe(_this.commands.i2b2.flagQuery, function (d) { + return i2b2Svc.flagQuery(d); + }); + _this.subscribe(_this.commands.i2b2.unflagQuery, function (d) { + return i2b2Svc.unflagQuery(d); + }); + }; + return _this; + } + + return I2B2PubSub; + }(PubSub), _class.inject = [I2B2Service], _temp)); + + _export('I2B2PubSub', I2B2PubSub); + } + }; +}); +//# sourceMappingURL=i2b2.pub-sub.js.map diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/services/i2b2.pub-sub.js.map b/shrine-webclient/src/main/js/client/js-shrine/dist/services/i2b2.pub-sub.js.map new file mode 100644 index 000000000..5c040c9d1 --- /dev/null +++ b/shrine-webclient/src/main/js/client/js-shrine/dist/services/i2b2.pub-sub.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["services/i2b2.pub-sub.js"],"names":["PubSub","I2B2Service","I2B2PubSub","i2b2Svc","rest","listen","onResize","a","b","find","e","action","publish","notifications","i2b2","tabMax","tabMin","onHistory","historyRefreshed","onQuery","d","queryStarted","name","onNetworkId","networkIdReceived","networkId","onViewSelected","viewSelected","data","subscribe","commands","cloneQuery","loadQuery","showError","errorDetail","renameQuery","flagQuery","unflagQuery","inject"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAQA,kB,WAAAA,M;;AACAC,uB,gBAAAA,W;;;kCACKC,U;;;AAET,oCAAYC,OAAZ,EAA8B;AAAA;;AAAA,sDAANC,IAAM;AAANA,4BAAM;AAAA;;AAAA,iEAC1B,0CAASA,IAAT,EAD0B;;AAG1B,0BAAKC,MAAL,GAAc,YAAM;AAChBF,gCAAQG,QAAR,CAAiB,UAACC,CAAD,EAAIC,CAAJ;AAAA,mCAAUA,EAAEC,IAAF,CAAO;AAAA,uCAAKC,EAAEC,MAAF,KAAa,KAAlB;AAAA,6BAAP,IAC3B;AAAA,uCAAM,MAAKC,OAAL,CAAa,MAAKC,aAAL,CAAmBC,IAAnB,CAAwBC,MAArC,CAAN;AAAA,6BAD2B,GAErB;AAAA,uCAAM,MAAKH,OAAL,CAAa,MAAKC,aAAL,CAAmBC,IAAnB,CAAwBE,MAArC,CAAN;AAAA,6BAFW;AAAA,yBAAjB;AAGAb,gCAAQc,SAAR,CAAkB;AAAA,mCAAM,MAAKL,OAAL,CAAa,MAAKC,aAAL,CAAmBC,IAAnB,CAAwBI,gBAArC,CAAN;AAAA,yBAAlB;AACAf,gCAAQgB,OAAR,CAAgB,UAACT,CAAD,EAAIU,CAAJ;AAAA,mCAAU,MAAKR,OAAL,CAAa,MAAKC,aAAL,CAAmBC,IAAnB,CAAwBO,YAArC,EAAmDD,EAAE,CAAF,EAAKE,IAAxD,CAAV;AAAA,yBAAhB;AACAnB,gCAAQoB,WAAR,CAAoB,UAACb,CAAD,EAAIU,CAAJ;AAAA,mCAAU,MAAKR,OAAL,CAAa,MAAKC,aAAL,CAAmBC,IAAnB,CAAwBU,iBAArC,EAAwDJ,EAAE,CAAF,EAAKK,SAA7D,CAAV;AAAA,yBAApB;AACAtB,gCAAQuB,cAAR,CAAuB;AAAA,mCAAK,MAAKd,OAAL,CAAa,MAAKC,aAAL,CAAmBC,IAAnB,CAAwBa,YAArC,EAAmDjB,EAAEkB,IAArD,CAAL;AAAA,yBAAvB;;AAGA,8BAAKC,SAAL,CAAe,MAAKC,QAAL,CAAchB,IAAd,CAAmBiB,UAAlC,EAA8C;AAAA,mCAAK5B,QAAQ6B,SAAR,CAAkBZ,CAAlB,CAAL;AAAA,yBAA9C;AACA,8BAAKS,SAAL,CAAe,MAAKC,QAAL,CAAchB,IAAd,CAAmBmB,SAAlC,EAA6C;AAAA,mCAAK9B,QAAQ+B,WAAR,CAAoBd,CAApB,CAAL;AAAA,yBAA7C;AACA,8BAAKS,SAAL,CAAe,MAAKC,QAAL,CAAchB,IAAd,CAAmBqB,WAAlC,EAA+C;AAAA,mCAAKhC,QAAQgC,WAAR,CAAoBf,CAApB,CAAL;AAAA,yBAA/C;AACA,8BAAKS,SAAL,CAAe,MAAKC,QAAL,CAAchB,IAAd,CAAmBsB,SAAlC,EAA6C;AAAA,mCAAKjC,QAAQiC,SAAR,CAAkBhB,CAAlB,CAAL;AAAA,yBAA7C;AACA,8BAAKS,SAAL,CAAe,MAAKC,QAAL,CAAchB,IAAd,CAAmBuB,WAAlC,EAA+C;AAAA,mCAAKlC,QAAQkC,WAAR,CAAoBjB,CAApB,CAAL;AAAA,yBAA/C;AACH,qBAfD;AAH0B;AAmB7B;;;cArB2BpB,M,UACrBsC,M,GAAS,CAACrC,WAAD,C","file":"i2b2.pub-sub.js","sourceRoot":"/src"} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/common/i2b2.service.js b/shrine-webclient/src/main/js/client/js-shrine/dist/services/i2b2.service.js similarity index 94% rename from shrine-webclient/src/main/js/client/js-shrine/dist/common/i2b2.service.js rename to shrine-webclient/src/main/js/client/js-shrine/dist/services/i2b2.service.js index 28e704b4f..7f7f94aa4 100644 --- a/shrine-webclient/src/main/js/client/js-shrine/dist/common/i2b2.service.js +++ b/shrine-webclient/src/main/js/client/js-shrine/dist/services/i2b2.service.js @@ -1,86 +1,91 @@ System.register(['ramda', './container'], function (_export, _context) { "use strict"; var _, Container, _class, _temp, I2B2Service; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } return { setters: [function (_ramda) { _ = _ramda; }, function (_container) { Container = _container.Container; }], execute: function () { _export('I2B2Service', I2B2Service = (_temp = _class = function I2B2Service(context) { _classCallCheck(this, I2B2Service); var ctx = context ? Container.of(context) : Container.of(null); var prop = _.curry(function (m, c) { return c.value ? Container.of(_.prop(m, c.value)) : Container.of(null); }); var i2b2 = _.compose(prop('i2b2'), prop('window'), prop('parent')); var crc = _.compose(prop('CRC'), i2b2); var events = _.compose(prop('events'), i2b2); var shrine = _.compose(prop('SHRINE'), i2b2); I2B2Service.prototype.onResize = function (f) { return events(ctx).map(function (v) { return v.changedZoomWindows.subscribe(f); }); }; I2B2Service.prototype.onHistory = function (f) { return crc(ctx).map(function (v) { return v.ctrlr.history.events.onDataUpdate.subscribe(f); }); }; I2B2Service.prototype.onQuery = function (f) { return events(ctx).map(function (v) { return v.afterQueryInit.subscribe(f); }); }; + I2B2Service.prototype.onNetworkId = function (f) { + return events(ctx).map(function (v) { + return v.networkIdReceived.subscribe(f); + }); + }; I2B2Service.prototype.onViewSelected = function (f) { return prop('addEventListener', ctx).value ? Container.of(ctx.value.addEventListener('message', f, false)) : Container.of(null); }; I2B2Service.prototype.loadHistory = function () { return crc(ctx).map(function (v) { return v.view.history.doRefreshAll(); }); }; I2B2Service.prototype.loadQuery = function (id) { return crc(ctx).map(function (v) { return v.ctrlr.QT.doQueryLoad(id); }); }; I2B2Service.prototype.errorDetail = function (d) { return shrine(ctx).map(function (v) { return v.plugin.errorDetail(d); }); }; I2B2Service.prototype.renameQuery = function (id) { return crc(ctx).map(function (v) { return v.ctrlr.history.queryRename(id, false); }); }; I2B2Service.prototype.flagQuery = function (id) { return crc(ctx).map(function (v) { return v.ctrlr.history.Flag({ queryId: id, message: '' }); }); }; I2B2Service.prototype.unflagQuery = function (id) { return crc(ctx).map(function (v) { return v.ctrlr.history.Unflag({ queryId: id }); }); }; }, _class.inject = [window], _temp)); _export('I2B2Service', I2B2Service); } }; }); //# sourceMappingURL=i2b2.service.js.map diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/services/i2b2.service.js.map b/shrine-webclient/src/main/js/client/js-shrine/dist/services/i2b2.service.js.map new file mode 100644 index 000000000..4ad8e89b6 --- /dev/null +++ b/shrine-webclient/src/main/js/client/js-shrine/dist/services/i2b2.service.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["services/i2b2.service.js"],"names":["_","Container","I2B2Service","context","ctx","of","prop","curry","m","c","value","i2b2","compose","crc","events","shrine","prototype","onResize","map","v","changedZoomWindows","subscribe","f","onHistory","ctrlr","history","onDataUpdate","onQuery","afterQueryInit","onNetworkId","networkIdReceived","onViewSelected","addEventListener","loadHistory","view","doRefreshAll","loadQuery","QT","doQueryLoad","id","errorDetail","plugin","d","renameQuery","queryRename","flagQuery","Flag","queryId","message","unflagQuery","Unflag","inject","window"],"mappings":";;;;;;;;;;;;;AACYA,a;;AACJC,qB,cAAAA,S;;;mCACKC,W,qBAET,qBAAYC,OAAZ,EAAqB;AAAA;;AAGjB,oBAAMC,MAAMD,UAASF,UAAUI,EAAV,CAAaF,OAAb,CAAT,GAAiCF,UAAUI,EAAV,CAAa,IAAb,CAA7C;AACA,oBAAMC,OAAON,EAAEO,KAAF,CAAQ,UAACC,CAAD,EAAIC,CAAJ;AAAA,2BAAUA,EAAEC,KAAF,GAAST,UAAUI,EAAV,CAAaL,EAAEM,IAAF,CAAOE,CAAP,EAAUC,EAAEC,KAAZ,CAAb,CAAT,GAA4CT,UAAUI,EAAV,CAAa,IAAb,CAAtD;AAAA,iBAAR,CAAb;AACA,oBAAMM,OAAOX,EAAEY,OAAF,CAAUN,KAAK,MAAL,CAAV,EAAwBA,KAAK,QAAL,CAAxB,EAAwCA,KAAK,QAAL,CAAxC,CAAb;AACA,oBAAMO,MAAMb,EAAEY,OAAF,CAAUN,KAAK,KAAL,CAAV,EAAuBK,IAAvB,CAAZ;AACA,oBAAMG,SAASd,EAAEY,OAAF,CAAUN,KAAK,QAAL,CAAV,EAA0BK,IAA1B,CAAf;AACA,oBAAMI,SAASf,EAAEY,OAAF,CAAUN,KAAK,QAAL,CAAV,EAA0BK,IAA1B,CAAf;;AAGAT,4BAAYc,SAAZ,CAAsBC,QAAtB,GAAkC;AAAA,2BAAKH,OAAOV,GAAP,EAAYc,GAAZ,CAAgB,UAACC,CAAD;AAAA,+BAAOA,EAAEC,kBAAF,CAAqBC,SAArB,CAA+BC,CAA/B,CAAP;AAAA,qBAAhB,CAAL;AAAA,iBAAlC;AACApB,4BAAYc,SAAZ,CAAsBO,SAAtB,GAAkC;AAAA,2BAAKV,IAAIT,GAAJ,EAASc,GAAT,CAAa,UAACC,CAAD;AAAA,+BAAOA,EAAEK,KAAF,CAAQC,OAAR,CAAgBX,MAAhB,CAAuBY,YAAvB,CAAoCL,SAApC,CAA8CC,CAA9C,CAAP;AAAA,qBAAb,CAAL;AAAA,iBAAlC;AACApB,4BAAYc,SAAZ,CAAsBW,OAAtB,GAAgC;AAAA,2BAAKb,OAAOV,GAAP,EAAYc,GAAZ,CAAgB,UAACC,CAAD;AAAA,+BAAOA,EAAES,cAAF,CAAiBP,SAAjB,CAA2BC,CAA3B,CAAP;AAAA,qBAAhB,CAAL;AAAA,iBAAhC;AACApB,4BAAYc,SAAZ,CAAsBa,WAAtB,GAAoC;AAAA,2BAAKf,OAAOV,GAAP,EAAYc,GAAZ,CAAgB;AAAA,+BAAKC,EAAEW,iBAAF,CAAoBT,SAApB,CAA8BC,CAA9B,CAAL;AAAA,qBAAhB,CAAL;AAAA,iBAApC;AACApB,4BAAYc,SAAZ,CAAsBe,cAAtB,GAAuC;AAAA,2BAAKzB,KAAK,kBAAL,EAAyBF,GAAzB,EAA8BM,KAA9B,GACxCT,UAAUI,EAAV,CAAaD,IAAIM,KAAJ,CAAUsB,gBAAV,CAA2B,SAA3B,EAAsCV,CAAtC,EAAyC,KAAzC,CAAb,CADwC,GACwBrB,UAAUI,EAAV,CAAa,IAAb,CAD7B;AAAA,iBAAvC;;AAIAH,4BAAYc,SAAZ,CAAsBiB,WAAtB,GAAoC;AAAA,2BAAMpB,IAAIT,GAAJ,EAASc,GAAT,CAAa,UAACC,CAAD;AAAA,+BAAOA,EAAEe,IAAF,CAAOT,OAAP,CAAeU,YAAf,EAAP;AAAA,qBAAb,CAAN;AAAA,iBAApC;AACAjC,4BAAYc,SAAZ,CAAsBoB,SAAtB,GAAkC;AAAA,2BAAMvB,IAAIT,GAAJ,EAASc,GAAT,CAAa,UAACC,CAAD;AAAA,+BAAOA,EAAEK,KAAF,CAAQa,EAAR,CAAWC,WAAX,CAAuBC,EAAvB,CAAP;AAAA,qBAAb,CAAN;AAAA,iBAAlC;AACArC,4BAAYc,SAAZ,CAAsBwB,WAAtB,GAAoC;AAAA,2BAAKzB,OAAOX,GAAP,EAAYc,GAAZ,CAAgB,UAACC,CAAD;AAAA,+BAAOA,EAAEsB,MAAF,CAASD,WAAT,CAAqBE,CAArB,CAAP;AAAA,qBAAhB,CAAL;AAAA,iBAApC;AACAxC,4BAAYc,SAAZ,CAAsB2B,WAAtB,GAAoC;AAAA,2BAAM9B,IAAIT,GAAJ,EAASc,GAAT,CAAa;AAAA,+BAAKC,EAAEK,KAAF,CAAQC,OAAR,CAAgBmB,WAAhB,CAA4BL,EAA5B,EAAgC,KAAhC,CAAL;AAAA,qBAAb,CAAN;AAAA,iBAApC;AACArC,4BAAYc,SAAZ,CAAsB6B,SAAtB,GAAkC;AAAA,2BAAMhC,IAAIT,GAAJ,EAASc,GAAT,CAAa;AAAA,+BAAKC,EAAEK,KAAF,CAAQC,OAAR,CAAgBqB,IAAhB,CAAqB,EAAEC,SAASR,EAAX,EAAeS,SAAS,EAAxB,EAArB,CAAL;AAAA,qBAAb,CAAN;AAAA,iBAAlC;AACA9C,4BAAYc,SAAZ,CAAsBiC,WAAtB,GAAoC;AAAA,2BAAMpC,IAAIT,GAAJ,EAASc,GAAT,CAAa;AAAA,+BAAKC,EAAEK,KAAF,CAAQC,OAAR,CAAgByB,MAAhB,CAAuB,EAAEH,SAASR,EAAX,EAAvB,CAAL;AAAA,qBAAb,CAAN;AAAA,iBAApC;AACH,a,SA1BMY,M,GAAS,CAACC,MAAD,C","file":"i2b2.service.js","sourceRoot":"/src"} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/services/pub-sub.js b/shrine-webclient/src/main/js/client/js-shrine/dist/services/pub-sub.js new file mode 100644 index 000000000..00bc22a63 --- /dev/null +++ b/shrine-webclient/src/main/js/client/js-shrine/dist/services/pub-sub.js @@ -0,0 +1,37 @@ +System.register(['aurelia-event-aggregator', './shrine.messages'], function (_export, _context) { + "use strict"; + + var EventAggregator, commands, notifications, _class, _temp, PubSub; + + function _classCallCheck(instance, Constructor) { + if (!(instance instanceof Constructor)) { + throw new TypeError("Cannot call a class as a function"); + } + } + + return { + setters: [function (_aureliaEventAggregator) { + EventAggregator = _aureliaEventAggregator.EventAggregator; + }, function (_shrineMessages) { + commands = _shrineMessages.commands; + notifications = _shrineMessages.notifications; + }], + execute: function () { + _export('PubSub', PubSub = (_temp = _class = function PubSub(evtAgg, commands, notifications) { + _classCallCheck(this, PubSub); + + this.commands = commands; + this.notifications = notifications; + this.publish = function (c, d) { + return evtAgg.publish(c, d); + }; + this.subscribe = function (n, fn) { + return evtAgg.subscribe(n, fn); + }; + }, _class.inject = [EventAggregator, commands, notifications], _temp)); + + _export('PubSub', PubSub); + } + }; +}); +//# sourceMappingURL=pub-sub.js.map diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/services/pub-sub.js.map b/shrine-webclient/src/main/js/client/js-shrine/dist/services/pub-sub.js.map new file mode 100644 index 000000000..ebba754a4 --- /dev/null +++ b/shrine-webclient/src/main/js/client/js-shrine/dist/services/pub-sub.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["services/pub-sub.js"],"names":["EventAggregator","commands","notifications","PubSub","evtAgg","publish","c","d","subscribe","n","fn","inject"],"mappings":";;;;;;;;;;;;;AACQA,2B,2BAAAA,e;;AACAC,oB,mBAAAA,Q;AAAUC,yB,mBAAAA,a;;;8BACLC,M,qBAET,gBAAYC,MAAZ,EAAoBH,QAApB,EAA8BC,aAA9B,EAA4C;AAAA;;AACxC,qBAAKD,QAAL,GAAgBA,QAAhB;AACA,qBAAKC,aAAL,GAAqBA,aAArB;AACA,qBAAKG,OAAL,GAAe,UAACC,CAAD,EAAGC,CAAH;AAAA,2BAASH,OAAOC,OAAP,CAAeC,CAAf,EAAiBC,CAAjB,CAAT;AAAA,iBAAf;AACA,qBAAKC,SAAL,GAAiB,UAACC,CAAD,EAAIC,EAAJ;AAAA,2BAAWN,OAAOI,SAAP,CAAiBC,CAAjB,EAAoBC,EAApB,CAAX;AAAA,iBAAjB;AACH,a,SANMC,M,GAAS,CAACX,eAAD,EAAkBC,QAAlB,EAA4BC,aAA5B,C","file":"pub-sub.js","sourceRoot":"/src"} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/common/queries.model.js b/shrine-webclient/src/main/js/client/js-shrine/dist/services/queries.model.js similarity index 100% rename from shrine-webclient/src/main/js/client/js-shrine/dist/common/queries.model.js rename to shrine-webclient/src/main/js/client/js-shrine/dist/services/queries.model.js diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/services/queries.model.js.map b/shrine-webclient/src/main/js/client/js-shrine/dist/services/queries.model.js.map new file mode 100644 index 000000000..7d208a36c --- /dev/null +++ b/shrine-webclient/src/main/js/client/js-shrine/dist/services/queries.model.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["services/queries.model.js"],"names":["EventAggregator","QEPRepository","notifications","QueriesModel","evtAgg","qep","maxQueriesPerFetch","loadedCount","totalQueries","data","prototype","load","fetchPreviousQueries","then","result","rowCount","queryResults","length","catch","console","log","error","toPages","pages","publish","shrine","queriesReceived","moreToLoad","hasData","undefined","nodesPerPage","Promise","resolve","reject","nodes","adapters","lastNodeIndex","queries","i","numberOfNodes","geNumberOfNodes","pageNodes","slice","results","mapQueries","push","startIndex","numNodes","forEach","q","name","query","queryName","id","networkId","date","dateCreated","flagged","flagMessage","nodeResults","status","adaptersToResults","reduce","s","r","finished","total","find","a","adapterNode","n","inject"],"mappings":";;;;;;;;;;;;;AAAQA,2B,2BAAAA,e;;AACCC,yB,4BAAAA,a;;AACDC,yB,mBAAAA,a;;;oCACKC,Y,qBAET,sBAAYC,MAAZ,EAAoBH,aAApB,EAAmCC,aAAnC,EAAkD;AAAA;;AAAA;;AAC9C,oBAAMG,MAAMJ,aAAZ;AACA,oBAAMK,qBAAqB,EAA3B;AACA,oBAAIC,cAAc,CAAlB;AACA,oBAAIC,eAAe,CAAnB;AACA,oBAAIC,OAAO,IAAX;;AAEAN,6BAAaO,SAAb,CAAuBC,IAAvB,GAA8B;AAAA,2BAC1BN,IAAIO,oBAAJ,CAAyB,MAAKN,kBAAL,KAA4B,MAAKC,WAAL,EAArD,EACKM,IADL,CACU,kBAAU;AACZL,uCAAeM,OAAOC,QAAtB;AACAR,sCAAcO,OAAOE,YAAP,CAAoBC,MAAlC;AACA,+BAAOH,MAAP;AACH,qBALL,EAMKI,KANL,CAMW;AAAA,+BAASC,QAAQC,GAAR,CAAYC,KAAZ,CAAT;AAAA,qBANX,EAOKR,IAPL,CAOUS,OAPV,EAQKT,IARL,CAQU,iBAAS;AACXJ,+BAAOc,KAAP;AACAnB,+BAAOoB,OAAP,CAAetB,cAAcuB,MAAd,CAAqBC,eAApC,EAAqDjB,IAArD;AACH,qBAXL,CAD0B;AAAA,iBAA9B;;AAcAN,6BAAaO,SAAb,CAAuBF,YAAvB,GAAsC;AAAA,2BAAMA,YAAN;AAAA,iBAAtC;AACAL,6BAAaO,SAAb,CAAuBH,WAAvB,GAAqC;AAAA,2BAAMA,WAAN;AAAA,iBAArC;AACAJ,6BAAaO,SAAb,CAAuBJ,kBAAvB,GAA4C;AAAA,2BAAMA,kBAAN;AAAA,iBAA5C;AACAH,6BAAaO,SAAb,CAAuBiB,UAAvB,GAAoC;AAAA,2BAAMpB,cAAcC,YAApB;AAAA,iBAApC;AACAL,6BAAaO,SAAb,CAAuBkB,OAAvB,GAAiC;AAAA,2BAAMnB,SAAS,IAAT,IAAiBA,SAASoB,SAAhC;AAAA,iBAAjC;;AAEA,oBAAMP,UAAU,SAAVA,OAAU,CAACb,IAAD,EAA4B;AAAA,wBAArBqB,YAAqB,uEAAN,CAAM;;AACxC,2BAAO,IAAIC,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;AACpC,4BAAMV,QAAQ,EAAd;;AAEA,4BAAMO,eAAe,CAArB;AACA,4BAAMI,QAAQzB,KAAK0B,QAAnB;AACA,4BAAMC,gBAAgBF,MAAMjB,MAA5B;AACA,4BAAMoB,UAAU5B,KAAKO,YAArB;;AAEA,6BAAK,IAAIsB,IAAI,CAAb,EAAgBA,IAAIF,aAApB,EAAmCE,IAAIA,IAAIR,YAA3C,EAAyD;AACrD,gCAAMS,gBAAgBC,gBAAgBN,KAAhB,EAAuBI,CAAvB,EAA0BR,YAA1B,CAAtB;AACA,gCAAMW,YAAYP,MAAMQ,KAAN,CAAYJ,CAAZ,EAAeC,aAAf,CAAlB;AACA,gCAAMI,UAAUC,WAAWH,SAAX,EAAsBJ,OAAtB,CAAhB;AACAd,kCAAMsB,IAAN,CAAW;AACPX,uCAAOO,SADA;AAEPE,yCAASA;AAFF,6BAAX;AAIH;;AAEDX,gCAAQT,KAAR;AACH,qBAnBM,CAAP;AAoBH,iBArBD;;AAuBA,oBAAMiB,kBAAkB,SAAlBA,eAAkB,CAACN,KAAD,EAAQY,UAAR,EAAoBhB,YAApB,EAAqC;AACzD,wBAAMiB,WAAWD,aAAahB,YAA9B;AACA,2BAAOiB,WAAWb,MAAMjB,MAAjB,GAA0B8B,QAA1B,GAAqCb,MAAMjB,MAAlD;AACH,iBAHD;;AAKA,oBAAM2B,aAAa,SAAbA,UAAa,CAACV,KAAD,EAAQG,OAAR,EAAoB;AACnC,wBAAMM,UAAU,EAAhB;AACAN,4BAAQW,OAAR,CAAgB,UAACC,CAAD,EAAIX,CAAJ,EAAU;AACtB,4BAAMxB,SAAS;AACXoC,kCAAMD,EAAEE,KAAF,CAAQC,SADH;AAEXC,gCAAIJ,EAAEE,KAAF,CAAQG,SAFD;AAGXC,kCAAMN,EAAEE,KAAF,CAAQK,WAHH;AAIXC,qCAASR,EAAEE,KAAF,CAAQM,OAAR,KAAoB,IAJlB;AAKXC,yCAAaT,EAAEE,KAAF,CAAQO,WAAR,IAAuB,IALzB;AAMXC,yCAAa,EANF;AAOXC,oCAAQX,EAAEY,iBAAF,CAAoBC,MAApB,CAA2B,UAACC,CAAD,EAAIC,CAAJ,EAAU;AACzC,oCAAMC,WAAWD,EAAEJ,MAAF,KAAa,UAAb,GAAyBG,EAAEE,QAAF,GAAa,CAAtC,GAA0CF,EAAEE,QAA7D;AACA,oCAAM5C,QAAQ2C,EAAEJ,MAAF,KAAa,OAAb,GAAsBG,EAAE1C,KAAF,GAAU,CAAhC,GAAoC0C,EAAE1C,KAApD;AACA,uCAAO,EAACA,OAAOA,KAAR,EAAe4C,UAAUA,QAAzB,EAAmCC,OAAOjB,EAAEY,iBAAF,CAAoB5C,MAA9D,EAAP;AACH,6BAJO,EAIL,EAACI,OAAO,CAAR,EAAW4C,UAAU,CAArB,EAAwBC,OAAOjB,EAAEY,iBAAF,CAAoB5C,MAAnD,EAJK;AAPG,yBAAf;AAaAiB,8BAAMc,OAAN,CAAc,aAAK;AACflC,mCAAO6C,WAAP,CAAmBd,IAAnB,CAAwBI,EAAEY,iBAAF,CAAoBM,IAApB,CAAyB;AAAA,uCAAKC,EAAEC,WAAF,KAAkBC,CAAvB;AAAA,6BAAzB,CAAxB;AACH,yBAFD;AAGA3B,gCAAQE,IAAR,CAAa/B,MAAb;AACH,qBAlBD;;AAoBA,2BAAO6B,OAAP;AACH,iBAvBD;AAwBH,a,SAhFM4B,M,GAAS,CAACvE,eAAD,EAAkBC,aAAlB,EAAkCC,aAAlC,C","file":"queries.model.js","sourceRoot":"/src"} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/common/query-status.model.js b/shrine-webclient/src/main/js/client/js-shrine/dist/services/query-status.model.js similarity index 89% rename from shrine-webclient/src/main/js/client/js-shrine/dist/common/query-status.model.js rename to shrine-webclient/src/main/js/client/js-shrine/dist/services/query-status.model.js index 3bee0d831..73a30ac86 100644 --- a/shrine-webclient/src/main/js/client/js-shrine/dist/common/query-status.model.js +++ b/shrine-webclient/src/main/js/client/js-shrine/dist/services/query-status.model.js @@ -1,96 +1,93 @@ System.register(['aurelia-event-aggregator', 'repository/qep.repository', './shrine.messages'], function (_export, _context) { "use strict"; var EventAggregator, QEPRepository, commands, notifications, _extends, _class, _temp, QueryStatusModel; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } return { setters: [function (_aureliaEventAggregator) { EventAggregator = _aureliaEventAggregator.EventAggregator; }, function (_repositoryQepRepository) { QEPRepository = _repositoryQepRepository.QEPRepository; }, function (_shrineMessages) { commands = _shrineMessages.commands; notifications = _shrineMessages.notifications; }], execute: function () { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; _export('QueryStatusModel', QueryStatusModel = (_temp = _class = function QueryStatusModel(evtAgg, qep, notifications) { _classCallCheck(this, QueryStatusModel); var publishNetworkId = function publishNetworkId(id) { - return evtAgg.publish(notifications.shrine.networkIdReceived, id); + return evtAgg.publish(notifications.i2b2.networkIdReceived, id); }; var publishQuery = function publishQuery(model) { return evtAgg.publish(notifications.shrine.queryReceived, model); }; var logError = function logError(error) { return console.log('ERROR: ' + error); }; var toModel = function toModel(data) { return new Promise(function (resolve, reject) { - var nodes = [].concat(data.queryResults[0].adaptersToResults); + var nodes = [].concat(data.results); var finishedCount = nodes.reduce(function (s, r) { return ['FINISHED', 'ERROR'].indexOf(r.status) != -1 ? s + 1 : s; }, 0); - var query = _extends({}, data.queryResults[0].query, { complete: nodes.length === finishedCount }); + var query = _extends({}, data.query, { complete: nodes.length > 0 && nodes.length === finishedCount }); resolve({ query: query, nodes: nodes, finishedCount: finishedCount }); }); }; var loadNetworkId = function loadNetworkId(n) { return qep.fetchNetworkId(n).then(function (result) { return publishNetworkId(result); }).catch(function (error) { return logError(error); }); }; var loadQuery = function loadQuery(id) { return qep.fetchQuery(id).then(function (result) { return toModel(result); }).catch(function (error) { return logError(error); }).then(function (model) { return publishQuery(model); }); }; var init = function init() { - evtAgg.subscribe(commands.shrine.fetchNetworkId, function (n) { - return loadNetworkId(n); - }); evtAgg.subscribe(commands.shrine.fetchQuery, function (id) { return loadQuery(id); }); }; init(); }, _class.inject = [EventAggregator, QEPRepository, notifications], _temp)); _export('QueryStatusModel', QueryStatusModel); } }; }); //# sourceMappingURL=query-status.model.js.map diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/services/query-status.model.js.map b/shrine-webclient/src/main/js/client/js-shrine/dist/services/query-status.model.js.map new file mode 100644 index 000000000..b8a42bc15 --- /dev/null +++ b/shrine-webclient/src/main/js/client/js-shrine/dist/services/query-status.model.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["services/query-status.model.js"],"names":["EventAggregator","QEPRepository","commands","notifications","QueryStatusModel","evtAgg","qep","publishNetworkId","publish","i2b2","networkIdReceived","id","publishQuery","shrine","queryReceived","model","logError","console","log","error","toModel","Promise","resolve","reject","nodes","data","results","finishedCount","reduce","s","r","indexOf","status","query","complete","length","loadNetworkId","n","fetchNetworkId","then","result","catch","loadQuery","fetchQuery","init","subscribe","inject"],"mappings":";;;;;;;;;;;;;AAAQA,2B,2BAAAA,e;;AACAC,yB,4BAAAA,a;;AACAC,oB,mBAAAA,Q;AAAUC,yB,mBAAAA,a;;;;;;;;;;;;;;;;;wCACLC,gB,qBAET,0BAAYC,MAAZ,EAAoBC,GAApB,EAAyBH,aAAzB,EAAwC;AAAA;;AACpC,oBAAMI,mBAAmB,SAAnBA,gBAAmB;AAAA,2BAAMF,OAAOG,OAAP,CAAeL,cAAcM,IAAd,CAAmBC,iBAAlC,EAAqDC,EAArD,CAAN;AAAA,iBAAzB;AACA,oBAAMC,eAAe,SAAfA,YAAe;AAAA,2BAASP,OAAOG,OAAP,CAAeL,cAAcU,MAAd,CAAqBC,aAApC,EAAmDC,KAAnD,CAAT;AAAA,iBAArB;AACA,oBAAMC,WAAW,SAAXA,QAAW;AAAA,2BAASC,QAAQC,GAAR,aAAsBC,KAAtB,CAAT;AAAA,iBAAjB;AACA,oBAAMC,UAAU,SAAVA,OAAU,OAAQ;AACpB,2BAAO,IAAIC,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;AACpC,4BAAMC,kBAAYC,KAAKC,OAAjB,CAAN;AACA,4BAAMC,gBAAgBH,MAAMI,MAAN,CAAa,UAACC,CAAD,EAAIC,CAAJ;AAAA,mCAAU,CAAC,UAAD,EAAa,OAAb,EAAsBC,OAAtB,CAA8BD,EAAEE,MAAhC,KAA2C,CAAC,CAA5C,GAA+CH,IAAI,CAAnD,GAAuDA,CAAjE;AAAA,yBAAb,EAAiF,CAAjF,CAAtB;AACA,4BAAMI,qBAAYR,KAAKQ,KAAjB,EAA2B,EAACC,UAAUV,MAAMW,MAAN,GAAe,CAAf,IAAoBX,MAAMW,MAAN,KAAiBR,aAAhD,EAA3B,CAAN;AACAL,gCAAQ;AACLW,wCADK;AAELT,wCAFK;AAGLG;AAHK,yBAAR;AAKH,qBATM,CAAP;AAUH,iBAXD;;AAcA,oBAAMS,gBAAgB,SAAhBA,aAAgB,CAACC,CAAD;AAAA,2BAAO/B,IAAIgC,cAAJ,CAAmBD,CAAnB,EACxBE,IADwB,CACnB;AAAA,+BAAUhC,iBAAiBiC,MAAjB,CAAV;AAAA,qBADmB,EAExBC,KAFwB,CAElB;AAAA,+BAASzB,SAASG,KAAT,CAAT;AAAA,qBAFkB,CAAP;AAAA,iBAAtB;;AAIA,oBAAMuB,YAAY,SAAZA,SAAY,CAAC/B,EAAD;AAAA,2BAAQL,IAAIqC,UAAJ,CAAehC,EAAf,EACrB4B,IADqB,CAChB;AAAA,+BAAUnB,QAAQoB,MAAR,CAAV;AAAA,qBADgB,EAErBC,KAFqB,CAEf;AAAA,+BAASzB,SAASG,KAAT,CAAT;AAAA,qBAFe,EAGrBoB,IAHqB,CAGhB;AAAA,+BAAS3B,aAAaG,KAAb,CAAT;AAAA,qBAHgB,CAAR;AAAA,iBAAlB;;AAKA,oBAAM6B,OAAO,SAAPA,IAAO,GAAM;AACfvC,2BAAOwC,SAAP,CAAiB3C,SAASW,MAAT,CAAgB8B,UAAjC,EAA6C,UAAChC,EAAD;AAAA,+BAAQ+B,UAAU/B,EAAV,CAAR;AAAA,qBAA7C;AACH,iBAFD;AAGAiC;AACH,a,SAhCME,M,GAAS,CAAC9C,eAAD,EAAkBC,aAAlB,EAAiCE,aAAjC,C","file":"query-status.model.js","sourceRoot":"/src"} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/common/shrine.messages.js b/shrine-webclient/src/main/js/client/js-shrine/dist/services/shrine.messages.js similarity index 90% rename from shrine-webclient/src/main/js/client/js-shrine/dist/common/shrine.messages.js rename to shrine-webclient/src/main/js/client/js-shrine/dist/services/shrine.messages.js index ec806e9ec..bb0ad6736 100644 --- a/shrine-webclient/src/main/js/client/js-shrine/dist/common/shrine.messages.js +++ b/shrine-webclient/src/main/js/client/js-shrine/dist/services/shrine.messages.js @@ -1,46 +1,45 @@ System.register([], function (_export, _context) { "use strict"; var notifications, commands; return { setters: [], execute: function () { _export('notifications', notifications = { i2b2: { tabMax: 'notification.from.i2b2.tab.max', tabMin: 'notification.from.i2b2.tab.min', viewSelected: 'notification.from.i2b2.tab.selected', historyRefreshed: 'notification.from.i2b2.history.refreshed', queryStarted: 'notification.from.i2b2.query.started', - messageReceived: 'notification.from.i2b2.message.received' + messageReceived: 'notification.from.i2b2.message.received', + networkIdReceived: 'notification.from.i2b2.networkId.receieved' }, shrine: { queriesReceived: 'notification.from.shrine.queries.received', - networkIdReceived: 'notification.from.shrine.networkId.receieved', queryReceived: 'notification.from.shrine.query.recieved' } }); _export('notifications', notifications); _export('commands', commands = { i2b2: { cloneQuery: 'command.to.i2b2.clone.query', showError: 'command.to.i2b2.show.error', flagQuery: 'command.to.i2b2.flag.query', unflagQuery: 'command.to.i2b2.unflag.query', renameQuery: 'command.to.i2b2.rename.query' }, shrine: { - fetchNetworkId: 'command.to.shrine.fetch.networkId', fetchQuery: 'command.to.shrine.fetch.query' } }); _export('commands', commands); } }; }); //# sourceMappingURL=shrine.messages.js.map diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/services/shrine.messages.js.map b/shrine-webclient/src/main/js/client/js-shrine/dist/services/shrine.messages.js.map new file mode 100644 index 000000000..d97517ea0 --- /dev/null +++ b/shrine-webclient/src/main/js/client/js-shrine/dist/services/shrine.messages.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["services/shrine.messages.js"],"names":["notifications","i2b2","tabMax","tabMin","viewSelected","historyRefreshed","queryStarted","messageReceived","networkIdReceived","shrine","queriesReceived","queryReceived","commands","cloneQuery","showError","flagQuery","unflagQuery","renameQuery","fetchQuery"],"mappings":";;;;;;;qCAAaA,a,GAAgB;AACzBC,sBAAM;AACFC,4BAAQ,gCADN;AAEFC,4BAAQ,gCAFN;AAGFC,kCAAc,qCAHZ;AAIFC,sCAAkB,0CAJhB;AAKFC,kCAAc,sCALZ;AAMFC,qCAAiB,yCANf;AAOFC,uCAAmB;AAPjB,iBADmB;;AAWzBC,wBAAQ;AACJC,qCAAiB,2CADb;AAEJC,mCAAe;AAFX;AAXiB,a;;;;gCAiBhBC,Q,GAAW;AACpBX,sBAAM;AACFY,gCAAY,6BADV;AAEFC,+BAAW,4BAFT;AAGFC,+BAAW,4BAHT;AAIFC,iCAAa,8BAJX;AAKFC,iCAAa;AALX,iBADc;;AASpBR,wBAAQ;AACJS,gCAAY;AADR;AATY,a","file":"shrine.messages.js","sourceRoot":"/src"} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/shell.html b/shrine-webclient/src/main/js/client/js-shrine/dist/shell.html index 3c4f49177..8c2f83586 100644 --- a/shrine-webclient/src/main/js/client/js-shrine/dist/shell.html +++ b/shrine-webclient/src/main/js/client/js-shrine/dist/shell.html @@ -1,4 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/shell.js b/shrine-webclient/src/main/js/client/js-shrine/dist/shell.js index e6b45bc78..f15bc7edc 100644 --- a/shrine-webclient/src/main/js/client/js-shrine/dist/shell.js +++ b/shrine-webclient/src/main/js/client/js-shrine/dist/shell.js @@ -1,27 +1,27 @@ -System.register(['common/i2b2.pub-sub'], function (_export, _context) { +System.register(['services/i2b2.pub-sub'], function (_export, _context) { "use strict"; var I2B2PubSub, _class, _temp, Shell; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } return { - setters: [function (_commonI2b2PubSub) { - I2B2PubSub = _commonI2b2PubSub.I2B2PubSub; + setters: [function (_servicesI2b2PubSub) { + I2B2PubSub = _servicesI2b2PubSub.I2B2PubSub; }], execute: function () { _export('Shell', Shell = (_temp = _class = function Shell(i2b2PubSub) { _classCallCheck(this, Shell); i2b2PubSub.listen(); }, _class.inject = [I2B2PubSub], _temp)); _export('Shell', Shell); } }; }); //# sourceMappingURL=shell.js.map diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/shell.js.map b/shrine-webclient/src/main/js/client/js-shrine/dist/shell.js.map index f56f5067c..2a6d6c6a3 100644 --- a/shrine-webclient/src/main/js/client/js-shrine/dist/shell.js.map +++ b/shrine-webclient/src/main/js/client/js-shrine/dist/shell.js.map @@ -1 +1 @@ -{"version":3,"sources":["shell.js"],"names":["I2B2PubSub","Shell","i2b2PubSub","listen","inject"],"mappings":";;;;;;;;;;;;;AAAQA,gB,qBAAAA,U;;;uBACKC,K,qBAEX,eAAYC,UAAZ,EAAwB;AAAA;;AACtBA,mBAAWC,MAAX;AACD,O,SAHMC,M,GAAS,CAACJ,UAAD,C","file":"shell.js","sourceRoot":"/src"} \ No newline at end of file +{"version":3,"sources":["shell.js"],"names":["I2B2PubSub","Shell","i2b2PubSub","listen","inject"],"mappings":";;;;;;;;;;;;;AAAQA,gB,uBAAAA,U;;;uBACKC,K,qBAEX,eAAYC,UAAZ,EAAwB;AAAA;;AACtBA,mBAAWC,MAAX;AACD,O,SAHMC,M,GAAS,CAACJ,UAAD,C","file":"shell.js","sourceRoot":"/src"} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/main.js b/shrine-webclient/src/main/js/client/js-shrine/dist/views/index.js similarity index 53% copy from shrine-webclient/src/main/js/client/js-shrine/dist/main.js copy to shrine-webclient/src/main/js/client/js-shrine/dist/views/index.js index f67c55c16..73ac9c804 100644 --- a/shrine-webclient/src/main/js/client/js-shrine/dist/main.js +++ b/shrine-webclient/src/main/js/client/js-shrine/dist/views/index.js @@ -1,19 +1,17 @@ System.register([], function (_export, _context) { "use strict"; function configure(aurelia) { - aurelia.use.standardConfiguration().developmentLogging(); - aurelia.start().then(function () { - return aurelia.setRoot('shell'); - }); + var views = ['views/query-status/query-status']; + aurelia.globalResources.apply(aurelia, views); } _export('configure', configure); return { setters: [], execute: function () {} }; }); -//# sourceMappingURL=main.js.map +//# sourceMappingURL=index.js.map diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/views/index.js.map b/shrine-webclient/src/main/js/client/js-shrine/dist/views/index.js.map new file mode 100644 index 000000000..420f9fb4b --- /dev/null +++ b/shrine-webclient/src/main/js/client/js-shrine/dist/views/index.js.map @@ -0,0 +1 @@ +{"version":3,"sources":["views/index.js"],"names":["configure","aurelia","views","globalResources"],"mappings":";;;AAAO,aAASA,SAAT,CAAmBC,OAAnB,EAA4B;;AAE/B,YAAMC,QAAQ,CACV,iCADU,CAAd;AAGAD,gBAAQE,eAAR,gBAA2BD,KAA3B;AACH;;yBANeF,S","file":"index.js","sourceRoot":"/src"} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-status/node-result/node-result.html b/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-status/node-result/node-result.html deleted file mode 100644 index 1bb9d103b..000000000 --- a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-status/node-result/node-result.html +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-status/node-result/node-result.js.map b/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-status/node-result/node-result.js.map deleted file mode 100644 index 0730a7e83..000000000 --- a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-status/node-result/node-result.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["views/query-status/node-result/node-result.js"],"names":["bindable","NodeResult"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAQA,oB,qBAAAA,Q;;;kCAEKC,U;;;;;;qFACRD,Q;;;yFACAA,Q","file":"node-result.js","sourceRoot":"/src"} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-status/node-result/result-types/error/error.js.map b/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-status/node-result/result-types/error/error.js.map deleted file mode 100644 index 254b43ca7..000000000 --- a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-status/node-result/result-types/error/error.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["views/query-status/node-result/result-types/error/error.js"],"names":["inject","bindable","Publisher","Error","rest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAQA,kB,qBAAAA,M;AAAQC,oB,qBAAAA,Q;;AACRC,qB,oBAAAA,S;;;6BACKC,K;;;AAET,iCAAqB;AAAA;;AAAA,sDAANC,IAAM;AAANA,4BAAM;AAAA;;AAAA,iEACjB,gDAASA,IAAT,EADiB;;AAAA;;AAAA;AAEpB;;;cAJsBF,S,yEACtBD,Q","file":"error.js","sourceRoot":"/src"} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-status/node-result/result-types/patient-count/breakdown.html b/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-status/node-result/result-types/patient-count/breakdown.html deleted file mode 100644 index 05f5449ff..000000000 --- a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-status/node-result/result-types/patient-count/breakdown.html +++ /dev/null @@ -1,5 +0,0 @@ - \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-status/node-result/result-types/patient-count/patient-count.html b/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-status/node-result/result-types/patient-count/patient-count.html deleted file mode 100644 index 777d06c72..000000000 --- a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-status/node-result/result-types/patient-count/patient-count.html +++ /dev/null @@ -1,3 +0,0 @@ - \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-status/node-result/result-types/patient-count/patient-count.js.map b/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-status/node-result/result-types/patient-count/patient-count.js.map deleted file mode 100644 index c18706a73..000000000 --- a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-status/node-result/result-types/patient-count/patient-count.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["views/query-status/node-result/result-types/patient-count/patient-count.js"],"names":["bindable","PatientCount"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAQA,oB,qBAAAA,Q;;;oCACKC,Y;;;;;;qFACRD,Q;;;6FACAA,Q","file":"patient-count.js","sourceRoot":"/src"} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-status/node-status/node-status.html b/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-status/node-status/node-status.html deleted file mode 100644 index 9078def07..000000000 --- a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-status/node-status/node-status.html +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-status/node-status/node-status.js.map b/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-status/node-status/node-status.js.map deleted file mode 100644 index fe2b46f88..000000000 --- a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-status/node-status/node-status.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["views/query-status/node-status/node-status.js"],"names":["bindable","Publisher","NodeStatus","rest"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAQA,oB,qBAAAA,Q;;AACAC,qB,oBAAAA,S;;;kCACKC,U;;;AAET,sCAAqB;AAAA;;AAAA,sDAANC,IAAM;AAANA,4BAAM;AAAA;;AAAA,iEACjB,gDAASA,IAAT,EADiB;;AAAA;;AAAA;AAEpB;;;cAJ2BF,S,yEAC3BD,Q","file":"node-status.js","sourceRoot":"/src"} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-status/query-status.html b/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-status/query-status.html index 92be5b5f1..fd45a0d26 100644 --- a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-status/query-status.html +++ b/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-status/query-status.html @@ -1 +1 @@ - \ No newline at end of file + \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-status/query-status.js b/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-status/query-status.js index 1ea7e327a..0035d7202 100644 --- a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-status/query-status.js +++ b/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-status/query-status.js @@ -1,78 +1,108 @@ -System.register(['aurelia-event-aggregator', 'common/shrine.messages', 'common/query-status.model'], function (_export, _context) { +System.register(['services/query-status.model', 'services/pub-sub'], function (_export, _context) { "use strict"; - var EventAggregator, notifications, commands, QueryStatusModel, _extends, _class, _temp, QueryStatus; + var QueryStatusModel, PubSub, _extends, _class, _temp, QueryStatus; function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } } + function _possibleConstructorReturn(self, call) { + if (!self) { + throw new ReferenceError("this hasn't been initialised - super() hasn't been called"); + } + + return call && (typeof call === "object" || typeof call === "function") ? call : self; + } + + function _inherits(subClass, superClass) { + if (typeof superClass !== "function" && superClass !== null) { + throw new TypeError("Super expression must either be null or a function, not " + typeof superClass); + } + + subClass.prototype = Object.create(superClass && superClass.prototype, { + constructor: { + value: subClass, + enumerable: false, + writable: true, + configurable: true + } + }); + if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass; + } + return { - setters: [function (_aureliaEventAggregator) { - EventAggregator = _aureliaEventAggregator.EventAggregator; - }, function (_commonShrineMessages) { - notifications = _commonShrineMessages.notifications; - commands = _commonShrineMessages.commands; - }, function (_commonQueryStatusModel) { - QueryStatusModel = _commonQueryStatusModel.QueryStatusModel; + setters: [function (_servicesQueryStatusModel) { + QueryStatusModel = _servicesQueryStatusModel.QueryStatusModel; + }, function (_servicesPubSub) { + PubSub = _servicesPubSub.PubSub; }], execute: function () { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; - _export('QueryStatus', QueryStatus = (_temp = _class = function QueryStatus(evtAgg, notifications, commands, queryStatus) { - var _this = this; - - _classCallCheck(this, QueryStatus); - - var initialState = function initialState() { - return { query: { queryName: null, updated: null, complete: false }, nodes: null }; - }; - this.status = initialState(); - - var publishFetchNetworkId = function publishFetchNetworkId(n) { - return evtAgg.publish(commands.shrine.fetchNetworkId, n); - }; - var publishFetchQuery = function publishFetchQuery(id) { - return evtAgg.publish(commands.shrine.fetchQuery, id); - }; - - evtAgg.subscribe(notifications.i2b2.queryStarted, function (n) { - _this.status.query.queryName = n; - publishFetchNetworkId(n); - }); - evtAgg.subscribe(notifications.shrine.networkIdReceived, function (id) { - return publishFetchQuery(id); - }); - evtAgg.subscribe(notifications.shrine.queryReceived, function (data) { - _this.status.query = _extends({}, _this.status.query, data.query); - _this.status.nodes = data.nodes; - _this.status.updated = Number(new Date()); - var complete = data.query.complete; - var networkId = data.query.networkId; - if (!complete) { - publishFetchQuery(networkId); + _export('QueryStatus', QueryStatus = (_temp = _class = function (_PubSub) { + _inherits(QueryStatus, _PubSub); + + function QueryStatus(queryStatus) { + _classCallCheck(this, QueryStatus); + + for (var _len = arguments.length, rest = Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) { + rest[_key - 1] = arguments[_key]; + } + + var _this = _possibleConstructorReturn(this, _PubSub.call.apply(_PubSub, [this].concat(rest))); + + var initialState = function initialState() { + return { query: { queryName: null, updated: null, complete: false }, nodes: null }; + }; + _this.status = initialState(); + + _this.subscribe(_this.notifications.i2b2.queryStarted, function (n) { + _this.status.query.queryName = n; + }); + _this.subscribe(_this.notifications.i2b2.networkIdReceived, function (id) { + return _this.publish(_this.commands.shrine.fetchQuery, id); + }); + _this.subscribe(_this.notifications.shrine.queryReceived, function (data) { + _this.status.query = _extends({}, _this.status.query, data.query); + _this.status.nodes = data.nodes; + _this.status.updated = Number(new Date()); + var complete = data.query.complete; + var networkId = data.query.networkId; + if (!complete) { + window.setTimeout(function () { + return publishFetchQuery(networkId); + }, 10000); + } + }); + + var isDevEnv = document.location.href.includes('http://localhost:8000/'); + if (isDevEnv) { + _this.publish(_this.notifications.i2b2.queryStarted, "started query"); + _this.publish(_this.notifications.i2b2.networkIdReceived, 1); } - }); + return _this; + } - evtAgg.publish(notifications.i2b2.queryStarted, '@queryqueryName'); - }, _class.inject = [EventAggregator, notifications, commands, QueryStatusModel], _temp)); + return QueryStatus; + }(PubSub), _class.inject = [QueryStatusModel], _temp)); _export('QueryStatus', QueryStatus); } }; }); //# sourceMappingURL=query-status.js.map diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-status/query-status.js.map b/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-status/query-status.js.map index 4a026b9fe..8373b3ba6 100644 --- a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-status/query-status.js.map +++ b/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-status/query-status.js.map @@ -1 +1 @@ -{"version":3,"sources":["views/query-status/query-status.js"],"names":["EventAggregator","notifications","commands","QueryStatusModel","QueryStatus","evtAgg","queryStatus","initialState","query","queryName","updated","complete","nodes","status","publishFetchNetworkId","publish","shrine","fetchNetworkId","n","publishFetchQuery","fetchQuery","id","subscribe","i2b2","queryStarted","networkIdReceived","queryReceived","data","Number","Date","networkId","inject"],"mappings":";;;;;;;;;;;;;AAAQA,2B,2BAAAA,e;;AACAC,yB,yBAAAA,a;AAAeC,oB,yBAAAA,Q;;AACfC,4B,2BAAAA,gB;;;;;;;;;;;;;;;;;mCACKC,W,qBAET,qBAAYC,MAAZ,EAAoBJ,aAApB,EAAmCC,QAAnC,EAA6CI,WAA7C,EAA0D;AAAA;;AAAA;;AACtD,oBAAMC,eAAe,SAAfA,YAAe;AAAA,2BAAO,EAACC,OAAO,EAACC,WAAW,IAAZ,EAAkBC,SAAS,IAA3B,EAAiCC,UAAU,KAA3C,EAAR,EAA2DC,OAAO,IAAlE,EAAP;AAAA,iBAArB;AACA,qBAAKC,MAAL,GAAcN,cAAd;;AAEA,oBAAMO,wBAAwB,SAAxBA,qBAAwB;AAAA,2BAAKT,OAAOU,OAAP,CAAeb,SAASc,MAAT,CAAgBC,cAA/B,EAA+CC,CAA/C,CAAL;AAAA,iBAA9B;AACA,oBAAMC,oBAAoB,SAApBA,iBAAoB;AAAA,2BAAMd,OAAOU,OAAP,CAAeb,SAASc,MAAT,CAAgBI,UAA/B,EAA2CC,EAA3C,CAAN;AAAA,iBAA1B;;AAEAhB,uBAAOiB,SAAP,CAAiBrB,cAAcsB,IAAd,CAAmBC,YAApC,EAAkD,UAACN,CAAD,EAAO;AAErD,0BAAKL,MAAL,CAAYL,KAAZ,CAAkBC,SAAlB,GAA8BS,CAA9B;AACAJ,0CAAsBI,CAAtB;AACH,iBAJD;AAKAb,uBAAOiB,SAAP,CAAiBrB,cAAce,MAAd,CAAqBS,iBAAtC,EAAyD;AAAA,2BAAMN,kBAAkBE,EAAlB,CAAN;AAAA,iBAAzD;AACAhB,uBAAOiB,SAAP,CAAiBrB,cAAce,MAAd,CAAqBU,aAAtC,EAAqD,gBAAQ;AAEzD,0BAAKb,MAAL,CAAYL,KAAZ,gBAAwB,MAAKK,MAAL,CAAYL,KAApC,EAA8CmB,KAAKnB,KAAnD;AACA,0BAAKK,MAAL,CAAYD,KAAZ,GAAoBe,KAAKf,KAAzB;AACA,0BAAKC,MAAL,CAAYH,OAAZ,GAAsBkB,OAAO,IAAIC,IAAJ,EAAP,CAAtB;AACA,wBAAMlB,WAAWgB,KAAKnB,KAAL,CAAWG,QAA5B;AACA,wBAAMmB,YAAYH,KAAKnB,KAAL,CAAWsB,SAA7B;AACA,wBAAG,CAACnB,QAAJ,EAAc;AACVQ,0CAAkBW,SAAlB;AACH;AACJ,iBAVD;;AAYAzB,uBAAOU,OAAP,CAAed,cAAcsB,IAAd,CAAmBC,YAAlC,EAAgD,iBAAhD;AACH,a,SA3BMO,M,GAAS,CAAC/B,eAAD,EAAkBC,aAAlB,EAAiCC,QAAjC,EAA2CC,gBAA3C,C","file":"query-status.js","sourceRoot":"/src"} \ No newline at end of file +{"version":3,"sources":["views/query-status/query-status.js"],"names":["QueryStatusModel","PubSub","QueryStatus","queryStatus","rest","initialState","query","queryName","updated","complete","nodes","status","subscribe","notifications","i2b2","queryStarted","n","networkIdReceived","publish","commands","shrine","fetchQuery","id","queryReceived","data","Number","Date","networkId","window","setTimeout","publishFetchQuery","isDevEnv","document","location","href","includes","inject"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAASA,4B,6BAAAA,gB;;AACAC,kB,mBAAAA,M;;;;;;;;;;;;;;;;;mCACIC,W;;;AAET,qCAAYC,WAAZ,EAAkC;AAAA;;AAAA,sDAANC,IAAM;AAANA,4BAAM;AAAA;;AAAA,iEAC9B,0CAASA,IAAT,EAD8B;;AAE9B,wBAAMC,eAAe,SAAfA,YAAe;AAAA,+BAAO,EAAEC,OAAO,EAAEC,WAAW,IAAb,EAAmBC,SAAS,IAA5B,EAAkCC,UAAU,KAA5C,EAAT,EAA8DC,OAAO,IAArE,EAAP;AAAA,qBAArB;AACA,0BAAKC,MAAL,GAAcN,cAAd;;AAEA,0BAAKO,SAAL,CAAe,MAAKC,aAAL,CAAmBC,IAAnB,CAAwBC,YAAvC,EAAqD,UAACC,CAAD,EAAO;AAExD,8BAAKL,MAAL,CAAYL,KAAZ,CAAkBC,SAAlB,GAA8BS,CAA9B;AACH,qBAHD;AAIA,0BAAKJ,SAAL,CAAe,MAAKC,aAAL,CAAmBC,IAAnB,CAAwBG,iBAAvC,EAA0D;AAAA,+BAAM,MAAKC,OAAL,CAAa,MAAKC,QAAL,CAAcC,MAAd,CAAqBC,UAAlC,EAA8CC,EAA9C,CAAN;AAAA,qBAA1D;AACA,0BAAKV,SAAL,CAAe,MAAKC,aAAL,CAAmBO,MAAnB,CAA0BG,aAAzC,EAAwD,gBAAQ;AAE5D,8BAAKZ,MAAL,CAAYL,KAAZ,gBAAyB,MAAKK,MAAL,CAAYL,KAArC,EAA+CkB,KAAKlB,KAApD;AACA,8BAAKK,MAAL,CAAYD,KAAZ,GAAoBc,KAAKd,KAAzB;AACA,8BAAKC,MAAL,CAAYH,OAAZ,GAAsBiB,OAAO,IAAIC,IAAJ,EAAP,CAAtB;AACA,4BAAMjB,WAAWe,KAAKlB,KAAL,CAAWG,QAA5B;AACA,4BAAMkB,YAAYH,KAAKlB,KAAL,CAAWqB,SAA7B;AACA,4BAAI,CAAClB,QAAL,EAAe;AACXmB,mCAAOC,UAAP,CAAkB;AAAA,uCAAMC,kBAAkBH,SAAlB,CAAN;AAAA,6BAAlB,EAAsD,KAAtD;AACH;AACJ,qBAVD;;AAYA,wBAAMI,WAAWC,SAASC,QAAT,CAAkBC,IAAlB,CAAuBC,QAAvB,CAAgC,wBAAhC,CAAjB;AACA,wBAAIJ,QAAJ,EAAc;AACV,8BAAKb,OAAL,CAAa,MAAKL,aAAL,CAAmBC,IAAnB,CAAwBC,YAArC,EAAmD,eAAnD;AACA,8BAAKG,OAAL,CAAa,MAAKL,aAAL,CAAmBC,IAAnB,CAAwBG,iBAArC,EAAwD,CAAxD;AACH;AA1B6B;AA2BjC;;;cA7B4BhB,M,UACtBmC,M,GAAS,CAACpC,gBAAD,C","file":"query-status.js","sourceRoot":"/src"} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-viewer/box-style.converter.js.map b/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-viewer/box-style.converter.js.map deleted file mode 100644 index 9ba3027ad..000000000 --- a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-viewer/box-style.converter.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["views/query-viewer/box-style.converter.js"],"names":["BoxStyleValueConverter","toView","value","String"],"mappings":";;;;;;;;;;;;;;8CAAaA,sB;;;;;iDACTC,M,mBAAOC,K,EAAO;AACV,2BAAO,0BAA0BC,OAAO,CAAC,GAAD,GAAOD,KAAd,CAA1B,GAAiD,KAAxD;AACH,iB","file":"box-style.converter.js","sourceRoot":"/src"} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-viewer/result-style.converter.js.map b/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-viewer/result-style.converter.js.map deleted file mode 100644 index 4d0d0b67e..000000000 --- a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-viewer/result-style.converter.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["views/query-viewer/result-style.converter.js"],"names":["ResultStyleValueConverter","toView","value","result","isUnresolved","getColorValue","finishedStatus","status","errorStatus","errorColor","altColor"],"mappings":";;;;;;;;;;;;;;iDAAaA,yB;;;;;oDACTC,M,mBAAOC,K,EAAO;AACV,wBAAMC,SAAS,KAAKC,YAAL,CAAkBF,KAAlB,IAA2B,WAAW,KAAKG,aAAL,CAAmBH,KAAnB,CAAtC,GAAkE,EAAjF;AACA,2BAAOC,MAAP;AACH,iB;;oDAEDC,Y,yBAAaF,K,EAAoC;AAAA,wBAA7BI,cAA6B,uEAAZ,UAAY;;AAC7C,2BAAO,CAACJ,KAAD,IAAUA,MAAMK,MAAN,KAAiBD,cAAlC;AACH,iB;;oDAEDD,a,0BAAcH,K,EAA4E;AAAA,wBAArEM,WAAqE,uEAAvD,OAAuD;AAAA,wBAA9CC,UAA8C,uEAAjC,SAAiC;AAAA,wBAAtBC,QAAsB,uEAAX,SAAW;;AACtF,2BAAO,CAACR,KAAD,IAAUA,MAAMK,MAAN,KAAiBC,WAA3B,GAAyCC,UAAzC,GAAsDC,QAA7D;AACH,iB","file":"result-style.converter.js","sourceRoot":"/src"} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-viewer/result-value.converter.js.map b/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-viewer/result-value.converter.js.map deleted file mode 100644 index c9d06a41c..000000000 --- a/shrine-webclient/src/main/js/client/js-shrine/dist/views/query-viewer/result-value.converter.js.map +++ /dev/null @@ -1 +0,0 @@ -{"version":3,"sources":["views/query-viewer/result-value.converter.js"],"names":["ResultValueConverter","toView","value","status","count"],"mappings":";;;;;;;;;;;;;;4CAAaA,oB;;;;;+CACTC,M,mBAAOC,K,EAAO;AAGV,wBAAI,CAACA,KAAL,EAAY;AACR,+BAAO,eAAP;AACH;;AAED,wBAAIA,MAAMC,MAAN,KAAiB,UAArB,EAAiC;AAC7B,+BAAO,EAAP;AACH;;AAED,2BAAOD,MAAME,KAAN,GAAc,CAAd,GAAiB,MAAjB,GAA0BF,MAAME,KAAvC;AACH,iB","file":"result-value.converter.js","sourceRoot":"/src"} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/export/assets/css/styles.css b/shrine-webclient/src/main/js/client/js-shrine/export/assets/css/styles.css index 96710c70b..43df7e681 100644 --- a/shrine-webclient/src/main/js/client/js-shrine/export/assets/css/styles.css +++ b/shrine-webclient/src/main/js/client/js-shrine/export/assets/css/styles.css @@ -1,536 +1,536 @@ .mailto { box-sizing: border-box; display: flex; justify-content: center; align-items: center; width: 100%; height: 100%; padding: 10px; color: #333; background: #f2f2f2; height: 100% p; height-font-size: 16px; height-line-height: 1.6em; } .mailto .button { border: 1px solid #6576a8; background: #6d85ad; border: 0; outline: 0; font-weight: bold; text-transform: uppercase; text-decoration: none; letter-spacing: 1px; color: #fff; cursor: pointer; } .mailto .button:hover { background: #9cb8d9; } .mailto .button:active { background: #6576a8; } .mailto .button--large { position: relative; padding: 15px 30px; border-radius: 5px; font-size: 16px; } .mailto .button--large:active { top: 1px; } .mailto .content { max-width: 350px; text-align: center; } .mailto .email { position: relative; } @import url(http://fonts.googleapis.com/css?family=Roboto:400,500,300,700); * { box-sizing: border-box; } .query-viewer { overflow: auto; background: rgba(255, 255, 255, 0.9); font-family: 'Roboto', sans-serif; height: 100%; } .flex-table { display: flex; width: 100%; flex-direction: column; margin: 0; } div.ellipses { overflow: hidden; text-overflow: ellipsis; max-width: 100%; } .flex-table-item { flex: 1 1 0; white-space: nowrap; max-width: 15%; border-left: 1px solid rgba(98, 108, 146, 0.3); flex-flow: column; transition: all .5s ease; padding: 2px; text-align: right; vertical-align: top; font-weight: 300; font-size: 12px; color: black; } .flex-table-item:last-child { border-right: 1px solid rgba(98, 108, 146, 0.3); } .flex-table-item:first-child { flex: .25; } .flex-table-item:nth-child(2) { flex: 2; } .flex-table-item:nth-child(3) { flex: .8; } .flex-table-item:nth-child(3) { flex: .5; } .flex-table.query-viewer .flex-table-item:hover { background: rgba(98, 108, 146, 0.3) !important; cursor: pointer; } .node-header, .node-header > .flex-table-item { border: none !important; text-align: center; padding-right: 8px; text-transform: uppercase; } .flex-table-row { border-top: 1px solid rgba(98, 108, 146, 0.3); display: flex; flex-flow: row no-wrap; width: 100%; } .flex-table-row:nth-child(even) { background: rgba(98, 108, 146, 0.1); } .flex-table-row:last-child { /*being overwritten by above rule */ border-bottom: 1px solid rgba(98, 108, 146, 0.3) !important; } .v-full { height: 90vh; } .v-min { height: 90px; } /*@import url(http://fonts.googleapis.com/css?family=Roboto:400,500,300,700); body{ overflow: hidden; background: rgba(255, 255, 255, 0.9); font-family: 'Roboto', sans-serif; } html, body, .box-wrapper{ width: 100%; height: 100%; margin: 0; } .box-wrapper{ display: -webkit-box; display: -ms-flexbox; display: flex; -webkit-box-orient: vertical; -webkit-box-direction: normal; -ms-flex-direction: column; flex-direction: column; -ms-flex-wrap: wrap; flex-wrap: wrap; } .box-wrapper > .box { margin-top: 0; width: 100%; transition: all .2s ease; .hideextra { white-space: nowrap; overflow: hidden; text-overflow:ellipsis; } section{ margin: 20 0 6 0; .v-full { height: 90vh; } .v-min{ height: 90px; } .v-min > table { padding-bottom: 1%; } .tbl-content{ overflow: auto; margin-top: 0px; border: 1px solid rgba(98,108,146,0.3); } } table{ width:100%; table-layout: fixed; .tbl-header{ background-color: rgba(98,108,146, .3); div.tbl-header{ max-width: 5rem; } } tr{ background: white; cursor: pointer; &:nth-child(odd) {background: rgba(98,108,146, .1)} } th{ padding: 2px 4px 4px 2px; text-align: left; font-weight: 500; font-size: .75rem; color: #626C92; text-transform: uppercase; border-bottom: solid 1px rgba(98,108,146,0.1); border-left: solid 1px rgba(98,108,146,0.1); &:hover{ background: rgba(98,108,146, .3) !important; } } td{ transition: all .5s ease; padding: 2px; text-align: left; vertical-align: top; font-weight: 300; font-size: 12px; color: black; border-bottom: solid 1px rgba(98,108,146,0.1); border-left: solid 1px rgba(98,108,146,0.1); &:hover{ background: rgba(98,108,146, .3) !important; } } } } */ /*{ position: relative; float: left; padding: 6px 12px; margin-left: -1px; line-height: 1.42857143; color: #337ab7; text-decoration: none; background-color: #fff; border: 1px solid #ddd; } :focus { z-index: 3; color: #fff; cursor: default; background-color: #337ab7; border-color: #337ab7; }*/ @import url(http://fonts.googleapis.com/css?family=Roboto:400,300&subset=latin,latin-ext); ul.context-menu { transition: opacity 0.2s linear; list-style: none; margin: 0; padding: 0; font: 200 11px "Roboto", sans-serif; position: absolute; color: #626C92; box-shadow: 0 12px 15px 0 rgba(0, 0, 0, 0.2); border-radius: 5px; border: 1px solid rgba(98, 108, 146, 0.25); } ul.context-menu * { transition: color 0.2s, background 0.2s; } ul.context-menu.hide { visibility: hidden; opacity: 0; } ul.context-menu.show { visibility: visible; opacity: 1; } ul.context-menu li { min-width: 100px; overflow: hidden; white-space: nowrap; padding: 6px 8px; background-color: #fff; border-bottom: 1px solid #ecf0f1; } ul.context-menu li a { color: #626C92; text-decoration: none; } ul.context-menu li:hover { background-color: #ecf0f1; color: #2980b9; } ul.context-menu li:hover a { color: #2980b9; } ul.context-menu li:first-child { border-radius: 5px 5px 0 0; } ul.context-menu li:last-child { border-bottom: 0; border-radius: 0 0 5px 5px; } +@import url(http://fonts.googleapis.com/css?family=Roboto:400,300&subset=latin,latin-ext); +.loader { + background: #fff; + margin: 50px 300px; + /*todo cleanup with mixin*/ } + .loader h1 { + color: #626C92; + font: 300 11px "Roboto", sans-serif; } + .loader div.slider { + position: absolute; + width: 200px; + height: 2px; + margin-top: -30px; } + .loader div.slider div.line { + position: absolute; + background: rgba(0, 0, 0, 0.2); + width: 200px; + height: 2px; } + .loader div.slider div.break { + position: absolute; + width: 50%; + height: 2px; } + .loader div.slider div.break.dot1 { + animation: loading 2s infinite; + background: #D9ECF0; } + .loader div.slider div.break.dot2 { + animation: loading 2s 0.5s infinite; + background: #6677AA; } + .loader div.slider div.break.dot3 { + animation: loading 2s 1s infinite; + background: #D9ECF0; } + +@-webkit-keyframes "loading" { + from { + left: 0; + opacity: 1; } + to { + left: 200px; + opacity: 1; } } + +@-moz-keyframes "loading" { + from { + left: 0; + opacity: 0; } + to { + left: 200px; + opacity: 1; } } + +@-o-keyframes "loading" { + from { + left: 0; + opacity: 0; } + to { + left: 200px; + opacity: 1; } } + +@keyframes "loading" { + from { + left: 0; + opacity: 0; } + to { + left: 200px; + opacity: 1; } } + .paginator * { -webkit-transition: all .10s ease-in-out; transition: all .10s ease-in-out; font-family: 'Open Sans'; } .paginator { margin: 0; } .paginator--center { text-align: center; } .paginator--right { text-align: right; } .paginator .btn-group { list-style-type: none; margin: 0; padding: 0; display: inline-block; } .paginator .btn-group__item { margin: 0; padding: 0; height: 40px; float: left; } .paginator .btn-group__item .btn { margin: 0; padding: .5em .75em; border: 0; font-weight: 300; background-color: transparent; box-shadow: inset 0 -2px 0 0 #777; color: #777; } .paginator .btn-group__item .btn:hover { box-shadow: inset 0 -4px 0 0 #626C92; cursor: pointer; } .paginator .btn-group__item .current { box-shadow: inset 0 -4px 0 0 #626C92; color: #626C92; font-weight: bold; } .paginator .btn-group__item .current:hover { box-shadow: inset 0 -4px 0 0 #626C92; cursor: pointer; } .paginator .btn[disabled] { box-shadow: inset 0 -2px 0 0 #e6e6e6; color: #e6e6e6; } .paginator .btn[disabled]:hover { box-shadow: inset 0 -2px 0 0 #626C92; cursor: pointer; } .paginator .i-chevron-left, .paginator .i-chevron-right { margin: 15px; border-style: solid; border-color: #3a3a3a; width: 5px; height: 5px; display: block; cursor: pointer; } .paginator .i-chevron-left { border-width: 1px 0 0 1px; -webkit-transform: rotate(-45deg); -ms-transform: rotate(-45deg); transform: rotate(-45deg); } .paginator .i-chevron-right { border-width: 1px 1px 0 0; -ms-transform: rotate(45deg); -webkit-transform: rotate(45deg); transform: rotate(45deg); } .paginator .i-chevron-left:hover { border-width: 2px 0 0 2px; } .paginator .i-chevron-right:hover { border-width: 2px 2px 0 0; } -@import url(http://fonts.googleapis.com/css?family=Roboto:400,300&subset=latin,latin-ext); -.loader { - background: #fff; - margin: 50px 300px; - /*todo cleanup with mixin*/ } - .loader h1 { - color: #626C92; - font: 300 11px "Roboto", sans-serif; } - .loader div.slider { - position: absolute; - width: 200px; - height: 2px; - margin-top: -30px; } - .loader div.slider div.line { - position: absolute; - background: rgba(0, 0, 0, 0.2); - width: 200px; - height: 2px; } - .loader div.slider div.break { - position: absolute; - width: 50%; - height: 2px; } - .loader div.slider div.break.dot1 { - animation: loading 2s infinite; - background: #D9ECF0; } - .loader div.slider div.break.dot2 { - animation: loading 2s 0.5s infinite; - background: #6677AA; } - .loader div.slider div.break.dot3 { - animation: loading 2s 1s infinite; - background: #D9ECF0; } - -@-webkit-keyframes "loading" { - from { - left: 0; - opacity: 1; } - to { - left: 200px; - opacity: 1; } } - -@-moz-keyframes "loading" { - from { - left: 0; - opacity: 0; } - to { - left: 200px; - opacity: 1; } } - -@-o-keyframes "loading" { - from { - left: 0; - opacity: 0; } - to { - left: 200px; - opacity: 1; } } - -@keyframes "loading" { - from { - left: 0; - opacity: 0; } - to { - left: 200px; - opacity: 1; } } - svg.query-status { height: 25px; -webkit-transform: rotate(270deg); transform: rotate(270deg); width: 25px; } .query-status > .countdown__background { transition: all .5s ease; fill: none; stroke: #c0c0c0; stroke-width: 8; } .flex-table.query-viewer .flex-table-item:hover .query-status > .countdown__background { stroke: #000; } .query-status > .error__progress { fill: none; stroke: #ff0000; stroke-dasharray: 100 100; stroke-linecap: butt; stroke-width: 6; } .query-status > .ready__progress { fill: none; stroke: #00ff00; stroke-dasharray: 100 100; stroke-linecap: butt; stroke-width: 6; } .tooltip { font-family: sans-serif; } .tooltip [data-line1] { position: relative; } .tooltip [data-line1]::before, .tooltip [data-line1]::after { text-transform: none; font-size: .9em; line-height: 1; user-select: none; pointer-events: none; position: absolute; display: none; opacity: 0; left: 50%; transform: translate(-50%, -0.5em); display: block; } .tooltip [data-line1]::before { content: ''; border: 5px solid transparent; z-index: 10001; bottom: 100%; border-bottom-width: 0; border-top-color: #333; } .tooltip [data-line1]::after { bottom: calc(100% + 5px); font-family: Helvetica, sans-serif; text-align: center; min-width: 3em; max-width: 42em; padding: 1ch 1.5ch; border-radius: .3ch; box-shadow: 0 1em 2em -0.5em rgba(0, 0, 0, 0.35); background: #333; color: #fff; z-index: 10000; display: block; white-space: pre; content: attr(data-line1); } /* display second line if provided */ .tooltip [data-line1][data-line2]::after { content: attr(data-line1) "\a" attr(data-line2); } /* KEYFRAMES */ @keyframes tooltips-vert { to { opacity: .9; transform: translate(-50%, 0); } } @keyframes tooltips-horz { to { opacity: .9; transform: translate(0, -50%); } } .flex-table.query-viewer .flex-table-item:hover .tooltip [data-line1]::before, .flex-table.query-viewer .flex-table-item:hover .tooltip [data-line1]::after, .tooltip [data-line1]:hover::before, .tooltip [data-line2]:hover::after { animation: tooltips-vert 300ms ease-out forwards; } .flex-table.query-viewer .flex-table-row:first-child .flex-table-item .tooltip [data-line1]::before { top: 7px; border-top-width: 0; border: 5px solid transparent; border-bottom-color: #333; } .flex-table.query-viewer .flex-table-row:first-child .flex-table-item .tooltip [data-line1]::after { bottom: calc(-100% - 20px); } diff --git a/shrine-webclient/src/main/js/client/js-shrine/export/config.js b/shrine-webclient/src/main/js/client/js-shrine/export/config.js index 703add3ec..209375f95 100644 --- a/shrine-webclient/src/main/js/client/js-shrine/export/config.js +++ b/shrine-webclient/src/main/js/client/js-shrine/export/config.js @@ -1,753 +1,758 @@ System.config({ defaultJSExtensions: true, transpiler: false, paths: { "*": "dist/*", "github:*": "jspm_packages/github/*", "npm:*": "jspm_packages/npm/*" }, map: { "aurelia-animator-css": "npm:aurelia-animator-css@1.0.1", "aurelia-bootstrapper": "npm:aurelia-bootstrapper@1.0.0", "aurelia-event-aggregator": "npm:aurelia-event-aggregator@1.0.1", "aurelia-fetch-client": "npm:aurelia-fetch-client@1.0.1", "aurelia-framework": "npm:aurelia-framework@1.0.6", "aurelia-history-browser": "npm:aurelia-history-browser@1.0.0", "aurelia-loader-default": "npm:aurelia-loader-default@1.0.0", "aurelia-logging-console": "npm:aurelia-logging-console@1.0.0", "aurelia-pal-browser": "npm:aurelia-pal-browser@1.0.0", "aurelia-polyfills": "npm:aurelia-polyfills@1.1.1", "aurelia-router": "npm:aurelia-router@1.3.0", "aurelia-templating-binding": "npm:aurelia-templating-binding@1.0.0", "aurelia-templating-resources": "npm:aurelia-templating-resources@1.1.1", "aurelia-templating-router": "npm:aurelia-templating-router@1.0.0", "bluebird": "npm:bluebird@3.4.1", "bootstrap": "github:twbs/bootstrap@3.3.7", "fetch": "github:github/fetch@1.0.0", "font-awesome": "npm:font-awesome@4.7.0", "jquery": "npm:jquery@2.2.4", "moment": "npm:moment@2.18.1", "ramda": "npm:ramda@0.23.0", "text": "github:systemjs/plugin-text@0.0.8", "github:jspm/nodelibs-assert@0.1.0": { "assert": "npm:assert@1.4.1" }, "github:jspm/nodelibs-buffer@0.1.1": { "buffer": "npm:buffer@5.0.6" }, "github:jspm/nodelibs-process@0.1.2": { "process": "npm:process@0.11.10" }, "github:jspm/nodelibs-util@0.1.0": { "util": "npm:util@0.10.3" }, "github:jspm/nodelibs-vm@0.1.0": { "vm-browserify": "npm:vm-browserify@0.0.4" }, "github:twbs/bootstrap@3.3.7": { "jquery": "npm:jquery@2.2.4" }, "npm:assert@1.4.1": { "assert": "github:jspm/nodelibs-assert@0.1.0", "buffer": "github:jspm/nodelibs-buffer@0.1.1", "process": "github:jspm/nodelibs-process@0.1.2", "util": "npm:util@0.10.3" }, "npm:aurelia-animator-css@1.0.1": { "aurelia-metadata": "npm:aurelia-metadata@1.0.3", "aurelia-pal": "npm:aurelia-pal@1.3.0", "aurelia-templating": "npm:aurelia-templating@1.1.1" }, "npm:aurelia-binding@1.0.9": { "aurelia-logging": "npm:aurelia-logging@1.3.1", "aurelia-metadata": "npm:aurelia-metadata@1.0.3", "aurelia-pal": "npm:aurelia-pal@1.3.0", "aurelia-task-queue": "npm:aurelia-task-queue@1.1.0" }, "npm:aurelia-bootstrapper@1.0.0": { "aurelia-event-aggregator": "npm:aurelia-event-aggregator@1.0.1", "aurelia-framework": "npm:aurelia-framework@1.0.6", "aurelia-history": "npm:aurelia-history@1.0.0", "aurelia-history-browser": "npm:aurelia-history-browser@1.0.0", "aurelia-loader-default": "npm:aurelia-loader-default@1.0.0", "aurelia-logging-console": "npm:aurelia-logging-console@1.0.0", "aurelia-pal": "npm:aurelia-pal@1.3.0", "aurelia-pal-browser": "npm:aurelia-pal-browser@1.0.0", "aurelia-polyfills": "npm:aurelia-polyfills@1.1.1", "aurelia-router": "npm:aurelia-router@1.3.0", "aurelia-templating": "npm:aurelia-templating@1.1.1", "aurelia-templating-binding": "npm:aurelia-templating-binding@1.0.0", "aurelia-templating-resources": "npm:aurelia-templating-resources@1.1.1", "aurelia-templating-router": "npm:aurelia-templating-router@1.0.0" }, "npm:aurelia-dependency-injection@1.3.1": { "aurelia-metadata": "npm:aurelia-metadata@1.0.3", "aurelia-pal": "npm:aurelia-pal@1.3.0" }, "npm:aurelia-event-aggregator@1.0.1": { "aurelia-logging": "npm:aurelia-logging@1.3.1" }, "npm:aurelia-framework@1.0.6": { "aurelia-binding": "npm:aurelia-binding@1.0.9", "aurelia-dependency-injection": "npm:aurelia-dependency-injection@1.3.1", "aurelia-loader": "npm:aurelia-loader@1.0.0", "aurelia-logging": "npm:aurelia-logging@1.3.1", "aurelia-metadata": "npm:aurelia-metadata@1.0.3", "aurelia-pal": "npm:aurelia-pal@1.3.0", "aurelia-path": "npm:aurelia-path@1.1.1", "aurelia-task-queue": "npm:aurelia-task-queue@1.1.0", "aurelia-templating": "npm:aurelia-templating@1.1.1" }, "npm:aurelia-history-browser@1.0.0": { "aurelia-history": "npm:aurelia-history@1.0.0", "aurelia-pal": "npm:aurelia-pal@1.3.0" }, "npm:aurelia-loader-default@1.0.0": { "aurelia-loader": "npm:aurelia-loader@1.0.0", "aurelia-metadata": "npm:aurelia-metadata@1.0.3", "aurelia-pal": "npm:aurelia-pal@1.3.0" }, "npm:aurelia-loader@1.0.0": { "aurelia-metadata": "npm:aurelia-metadata@1.0.3", "aurelia-path": "npm:aurelia-path@1.1.1" }, "npm:aurelia-logging-console@1.0.0": { "aurelia-logging": "npm:aurelia-logging@1.3.1" }, "npm:aurelia-metadata@1.0.3": { "aurelia-pal": "npm:aurelia-pal@1.3.0" }, "npm:aurelia-pal-browser@1.0.0": { "aurelia-pal": "npm:aurelia-pal@1.3.0" }, "npm:aurelia-polyfills@1.1.1": { "aurelia-pal": "npm:aurelia-pal@1.3.0" }, "npm:aurelia-route-recognizer@1.1.0": { "aurelia-path": "npm:aurelia-path@1.1.1" }, "npm:aurelia-router@1.3.0": { "aurelia-dependency-injection": "npm:aurelia-dependency-injection@1.3.1", "aurelia-event-aggregator": "npm:aurelia-event-aggregator@1.0.1", "aurelia-history": "npm:aurelia-history@1.0.0", "aurelia-logging": "npm:aurelia-logging@1.3.1", "aurelia-path": "npm:aurelia-path@1.1.1", "aurelia-route-recognizer": "npm:aurelia-route-recognizer@1.1.0" }, "npm:aurelia-task-queue@1.1.0": { "aurelia-pal": "npm:aurelia-pal@1.3.0" }, "npm:aurelia-templating-binding@1.0.0": { "aurelia-binding": "npm:aurelia-binding@1.0.9", "aurelia-logging": "npm:aurelia-logging@1.3.1", "aurelia-templating": "npm:aurelia-templating@1.1.1" }, "npm:aurelia-templating-resources@1.1.1": { "aurelia-binding": "npm:aurelia-binding@1.0.9", "aurelia-dependency-injection": "npm:aurelia-dependency-injection@1.3.1", "aurelia-loader": "npm:aurelia-loader@1.0.0", "aurelia-logging": "npm:aurelia-logging@1.3.1", "aurelia-metadata": "npm:aurelia-metadata@1.0.3", "aurelia-pal": "npm:aurelia-pal@1.3.0", "aurelia-path": "npm:aurelia-path@1.1.1", "aurelia-task-queue": "npm:aurelia-task-queue@1.1.0", "aurelia-templating": "npm:aurelia-templating@1.1.1" }, "npm:aurelia-templating-router@1.0.0": { "aurelia-dependency-injection": "npm:aurelia-dependency-injection@1.3.1", "aurelia-logging": "npm:aurelia-logging@1.3.1", "aurelia-metadata": "npm:aurelia-metadata@1.0.3", "aurelia-pal": "npm:aurelia-pal@1.3.0", "aurelia-path": "npm:aurelia-path@1.1.1", "aurelia-router": "npm:aurelia-router@1.3.0", "aurelia-templating": "npm:aurelia-templating@1.1.1" }, "npm:aurelia-templating@1.1.1": { "aurelia-binding": "npm:aurelia-binding@1.0.9", "aurelia-dependency-injection": "npm:aurelia-dependency-injection@1.3.1", "aurelia-loader": "npm:aurelia-loader@1.0.0", "aurelia-logging": "npm:aurelia-logging@1.3.1", "aurelia-metadata": "npm:aurelia-metadata@1.0.3", "aurelia-pal": "npm:aurelia-pal@1.3.0", "aurelia-path": "npm:aurelia-path@1.1.1", "aurelia-task-queue": "npm:aurelia-task-queue@1.1.0" }, "npm:bluebird@3.4.1": { "process": "github:jspm/nodelibs-process@0.1.2" }, "npm:buffer@5.0.6": { "base64-js": "npm:base64-js@1.2.0", "ieee754": "npm:ieee754@1.1.8" }, "npm:font-awesome@4.7.0": { "css": "github:systemjs/plugin-css@0.1.33" }, "npm:inherits@2.0.1": { "util": "github:jspm/nodelibs-util@0.1.0" }, "npm:process@0.11.10": { "assert": "github:jspm/nodelibs-assert@0.1.0", "fs": "github:jspm/nodelibs-fs@0.1.2", "vm": "github:jspm/nodelibs-vm@0.1.0" }, "npm:ramda@0.23.0": { "assert": "github:jspm/nodelibs-assert@0.1.0", "process": "github:jspm/nodelibs-process@0.1.2", "util": "github:jspm/nodelibs-util@0.1.0", "vm": "github:jspm/nodelibs-vm@0.1.0" }, "npm:util@0.10.3": { "inherits": "npm:inherits@2.0.1", "process": "github:jspm/nodelibs-process@0.1.2" }, "npm:vm-browserify@0.0.4": { "indexof": "npm:indexof@0.0.1" } }, + depCache: { + "repository/qep.repository.js": [ + "aurelia-fetch-client", + "fetch" + ], + "resources/converters/datetime.value.converter.js": [ + "moment" + ], + "resources/custom/breakdown/breakdown.js": [ + "aurelia-framework" + ], + "resources/custom/error/error.js": [ + "aurelia-framework", + "services/pub-sub" + ], + "resources/custom/node-result/node-result.js": [ + "aurelia-framework" + ], + "resources/custom/node-status/node-status.js": [ + "aurelia-framework", + "services/pub-sub" + ], + "resources/custom/patient-count/patient-count.js": [ + "aurelia-framework" + ], + "services/container.js": [ + "ramda" + ], + "services/i2b2.pub-sub.js": [ + "./pub-sub", + "./i2b2.service" + ], + "services/i2b2.service.js": [ + "ramda", + "./container" + ], + "services/pub-sub.js": [ + "aurelia-event-aggregator", + "./shrine.messages" + ], + "services/queries.model.js": [ + "aurelia-event-aggregator", + "repository/qep.repository", + "./shrine.messages" + ], + "services/query-status.model.js": [ + "aurelia-event-aggregator", + "repository/qep.repository", + "./shrine.messages" + ], + "shell.js": [ + "services/i2b2.pub-sub" + ], + "views/mailto/mailto.js": [ + "views/mailto/mailto.service", + "views/mailto/mailto.config" + ], + "views/mailto/mailto.service.js": [ + "repository/qep.repository" + ], + "views/query-status/query-status.js": [ + "services/query-status.model", + "services/pub-sub" + ], + "views/query-viewer/context-menu/context-menu.js": [ + "aurelia-framework", + "aurelia-event-aggregator", + "common/shrine.messages" + ], + "views/query-viewer/date.converter.js": [ + "moment" + ], + "views/query-viewer/loading-bar/loading-bar.js": [ + "aurelia-framework" + ], + "views/query-viewer/paginator/paginator.js": [ + "aurelia-framework" + ], + "views/query-viewer/query-status/query-status.js": [ + "aurelia-framework", + "ramda" + ], + "views/query-viewer/query-viewer.js": [ + "aurelia-event-aggregator", + "common/queries.model", + "./scroll.service", + "common/shrine.messages" + ], + "views/query-viewer/scroll.service.js": [ + "ramda", + "common/container" + ] + }, bundles: { + "app-build.js": [ + "main.js", + "repository/qep.repository.js", + "resources/converters/box-style.converter.js", + "resources/converters/count-value-converter.js", + "resources/converters/datetime.value.converter.js", + "resources/converters/result-style.converter.js", + "resources/converters/result-value.converter.js", + "resources/custom/breakdown/breakdown.html!github:systemjs/plugin-text@0.0.8.js", + "resources/custom/breakdown/breakdown.js", + "resources/custom/error/error.html!github:systemjs/plugin-text@0.0.8.js", + "resources/custom/error/error.js", + "resources/custom/node-result/node-result.html!github:systemjs/plugin-text@0.0.8.js", + "resources/custom/node-result/node-result.js", + "resources/custom/node-status/node-status.html!github:systemjs/plugin-text@0.0.8.js", + "resources/custom/node-status/node-status.js", + "resources/custom/node-status/temp.html!github:systemjs/plugin-text@0.0.8.js", + "resources/custom/patient-count/patient-count.html!github:systemjs/plugin-text@0.0.8.js", + "resources/custom/patient-count/patient-count.js", + "resources/index.js", + "services/container.js", + "services/i2b2.pub-sub.js", + "services/i2b2.service.js", + "services/pub-sub.js", + "services/queries.model.js", + "services/query-status.model.js", + "services/shrine.messages.js", + "shell.html!github:systemjs/plugin-text@0.0.8.js", + "shell.js", + "views/index.js", + "views/mailto/mailto.config.js", + "views/mailto/mailto.html!github:systemjs/plugin-text@0.0.8.js", + "views/mailto/mailto.js", + "views/mailto/mailto.service.js", + "views/query-status/query-status.html!github:systemjs/plugin-text@0.0.8.js", + "views/query-status/query-status.js", + "views/query-viewer/context-menu/context-menu.html!github:systemjs/plugin-text@0.0.8.js", + "views/query-viewer/context-menu/context-menu.js", + "views/query-viewer/date.converter.js", + "views/query-viewer/loading-bar/loading-bar.html!github:systemjs/plugin-text@0.0.8.js", + "views/query-viewer/loading-bar/loading-bar.js", + "views/query-viewer/loading-bar/row-loader.html!github:systemjs/plugin-text@0.0.8.js", + "views/query-viewer/paginator/paginator.html!github:systemjs/plugin-text@0.0.8.js", + "views/query-viewer/paginator/paginator.js", + "views/query-viewer/query-status/query-status.html!github:systemjs/plugin-text@0.0.8.js", + "views/query-viewer/query-status/query-status.js", + "views/query-viewer/query-viewer.config.js", + "views/query-viewer/query-viewer.html!github:systemjs/plugin-text@0.0.8.js", + "views/query-viewer/query-viewer.js", + "views/query-viewer/scroll.service.js" + ], "aurelia.js": [ "github:github/fetch@1.0.0.js", "github:github/fetch@1.0.0/fetch.js", "github:jspm/nodelibs-process@0.1.2.js", "github:jspm/nodelibs-process@0.1.2/index.js", "npm:aurelia-binding@1.0.9.js", "npm:aurelia-binding@1.0.9/aurelia-binding.js", "npm:aurelia-bootstrapper@1.0.0.js", "npm:aurelia-bootstrapper@1.0.0/aurelia-bootstrapper.js", "npm:aurelia-dependency-injection@1.3.1.js", "npm:aurelia-dependency-injection@1.3.1/aurelia-dependency-injection.js", "npm:aurelia-event-aggregator@1.0.1.js", "npm:aurelia-event-aggregator@1.0.1/aurelia-event-aggregator.js", "npm:aurelia-fetch-client@1.0.1.js", "npm:aurelia-fetch-client@1.0.1/aurelia-fetch-client.js", "npm:aurelia-framework@1.0.6.js", "npm:aurelia-framework@1.0.6/aurelia-framework.js", "npm:aurelia-history-browser@1.0.0.js", "npm:aurelia-history-browser@1.0.0/aurelia-history-browser.js", "npm:aurelia-history@1.0.0.js", "npm:aurelia-history@1.0.0/aurelia-history.js", "npm:aurelia-loader-default@1.0.0.js", "npm:aurelia-loader-default@1.0.0/aurelia-loader-default.js", "npm:aurelia-loader@1.0.0.js", "npm:aurelia-loader@1.0.0/aurelia-loader.js", "npm:aurelia-logging-console@1.0.0.js", "npm:aurelia-logging-console@1.0.0/aurelia-logging-console.js", "npm:aurelia-logging@1.3.1.js", "npm:aurelia-logging@1.3.1/aurelia-logging.js", "npm:aurelia-metadata@1.0.3.js", "npm:aurelia-metadata@1.0.3/aurelia-metadata.js", "npm:aurelia-pal-browser@1.0.0.js", "npm:aurelia-pal-browser@1.0.0/aurelia-pal-browser.js", "npm:aurelia-pal@1.3.0.js", "npm:aurelia-pal@1.3.0/aurelia-pal.js", "npm:aurelia-path@1.1.1.js", "npm:aurelia-path@1.1.1/aurelia-path.js", "npm:aurelia-polyfills@1.1.1.js", "npm:aurelia-polyfills@1.1.1/aurelia-polyfills.js", "npm:aurelia-route-recognizer@1.1.0.js", "npm:aurelia-route-recognizer@1.1.0/aurelia-route-recognizer.js", "npm:aurelia-router@1.3.0.js", "npm:aurelia-router@1.3.0/aurelia-router.js", "npm:aurelia-task-queue@1.1.0.js", "npm:aurelia-task-queue@1.1.0/aurelia-task-queue.js", "npm:aurelia-templating-binding@1.0.0.js", "npm:aurelia-templating-binding@1.0.0/aurelia-templating-binding.js", "npm:aurelia-templating-resources@1.1.1.js", "npm:aurelia-templating-resources@1.1.1/abstract-repeater.js", "npm:aurelia-templating-resources@1.1.1/analyze-view-factory.js", "npm:aurelia-templating-resources@1.1.1/array-repeat-strategy.js", "npm:aurelia-templating-resources@1.1.1/attr-binding-behavior.js", "npm:aurelia-templating-resources@1.1.1/aurelia-hide-style.js", "npm:aurelia-templating-resources@1.1.1/aurelia-templating-resources.js", "npm:aurelia-templating-resources@1.1.1/binding-mode-behaviors.js", "npm:aurelia-templating-resources@1.1.1/binding-signaler.js", "npm:aurelia-templating-resources@1.1.1/compose.js", "npm:aurelia-templating-resources@1.1.1/css-resource.js", "npm:aurelia-templating-resources@1.1.1/debounce-binding-behavior.js", "npm:aurelia-templating-resources@1.1.1/dynamic-element.js", "npm:aurelia-templating-resources@1.1.1/focus.js", "npm:aurelia-templating-resources@1.1.1/hide.js", "npm:aurelia-templating-resources@1.1.1/html-resource-plugin.js", "npm:aurelia-templating-resources@1.1.1/html-sanitizer.js", "npm:aurelia-templating-resources@1.1.1/if.js", "npm:aurelia-templating-resources@1.1.1/map-repeat-strategy.js", "npm:aurelia-templating-resources@1.1.1/null-repeat-strategy.js", "npm:aurelia-templating-resources@1.1.1/number-repeat-strategy.js", "npm:aurelia-templating-resources@1.1.1/repeat-strategy-locator.js", "npm:aurelia-templating-resources@1.1.1/repeat-utilities.js", "npm:aurelia-templating-resources@1.1.1/repeat.js", "npm:aurelia-templating-resources@1.1.1/replaceable.js", "npm:aurelia-templating-resources@1.1.1/sanitize-html.js", "npm:aurelia-templating-resources@1.1.1/set-repeat-strategy.js", "npm:aurelia-templating-resources@1.1.1/show.js", "npm:aurelia-templating-resources@1.1.1/signal-binding-behavior.js", "npm:aurelia-templating-resources@1.1.1/throttle-binding-behavior.js", "npm:aurelia-templating-resources@1.1.1/update-trigger-binding-behavior.js", "npm:aurelia-templating-resources@1.1.1/with.js", "npm:aurelia-templating-router@1.0.0.js", "npm:aurelia-templating-router@1.0.0/aurelia-templating-router.js", "npm:aurelia-templating-router@1.0.0/route-href.js", "npm:aurelia-templating-router@1.0.0/route-loader.js", "npm:aurelia-templating-router@1.0.0/router-view.js", "npm:aurelia-templating@1.1.1.js", "npm:aurelia-templating@1.1.1/aurelia-templating.js", "npm:font-awesome@4.7.0.js", "npm:font-awesome@4.7.0/css/font-awesome.css!github:systemjs/plugin-css@0.1.33.js", "npm:jquery@2.2.4.js", "npm:jquery@2.2.4/dist/jquery.js", "npm:moment@2.18.1.js", "npm:moment@2.18.1/moment.js", "npm:process@0.11.10.js", "npm:process@0.11.10/browser.js", "npm:ramda@0.23.0.js", "npm:ramda@0.23.0/index.js", "npm:ramda@0.23.0/src/F.js", "npm:ramda@0.23.0/src/T.js", "npm:ramda@0.23.0/src/__.js", "npm:ramda@0.23.0/src/add.js", "npm:ramda@0.23.0/src/addIndex.js", "npm:ramda@0.23.0/src/adjust.js", "npm:ramda@0.23.0/src/all.js", "npm:ramda@0.23.0/src/allPass.js", "npm:ramda@0.23.0/src/always.js", "npm:ramda@0.23.0/src/and.js", "npm:ramda@0.23.0/src/any.js", "npm:ramda@0.23.0/src/anyPass.js", "npm:ramda@0.23.0/src/ap.js", "npm:ramda@0.23.0/src/aperture.js", "npm:ramda@0.23.0/src/append.js", "npm:ramda@0.23.0/src/apply.js", "npm:ramda@0.23.0/src/applySpec.js", "npm:ramda@0.23.0/src/ascend.js", "npm:ramda@0.23.0/src/assoc.js", "npm:ramda@0.23.0/src/assocPath.js", "npm:ramda@0.23.0/src/binary.js", "npm:ramda@0.23.0/src/bind.js", "npm:ramda@0.23.0/src/both.js", "npm:ramda@0.23.0/src/call.js", "npm:ramda@0.23.0/src/chain.js", "npm:ramda@0.23.0/src/clamp.js", "npm:ramda@0.23.0/src/clone.js", "npm:ramda@0.23.0/src/comparator.js", "npm:ramda@0.23.0/src/complement.js", "npm:ramda@0.23.0/src/compose.js", "npm:ramda@0.23.0/src/composeK.js", "npm:ramda@0.23.0/src/composeP.js", "npm:ramda@0.23.0/src/concat.js", "npm:ramda@0.23.0/src/cond.js", "npm:ramda@0.23.0/src/construct.js", "npm:ramda@0.23.0/src/constructN.js", "npm:ramda@0.23.0/src/contains.js", "npm:ramda@0.23.0/src/converge.js", "npm:ramda@0.23.0/src/countBy.js", "npm:ramda@0.23.0/src/curry.js", "npm:ramda@0.23.0/src/curryN.js", "npm:ramda@0.23.0/src/dec.js", "npm:ramda@0.23.0/src/defaultTo.js", "npm:ramda@0.23.0/src/descend.js", "npm:ramda@0.23.0/src/difference.js", "npm:ramda@0.23.0/src/differenceWith.js", "npm:ramda@0.23.0/src/dissoc.js", "npm:ramda@0.23.0/src/dissocPath.js", "npm:ramda@0.23.0/src/divide.js", "npm:ramda@0.23.0/src/drop.js", "npm:ramda@0.23.0/src/dropLast.js", "npm:ramda@0.23.0/src/dropLastWhile.js", "npm:ramda@0.23.0/src/dropRepeats.js", "npm:ramda@0.23.0/src/dropRepeatsWith.js", "npm:ramda@0.23.0/src/dropWhile.js", "npm:ramda@0.23.0/src/either.js", "npm:ramda@0.23.0/src/empty.js", "npm:ramda@0.23.0/src/eqBy.js", "npm:ramda@0.23.0/src/eqProps.js", "npm:ramda@0.23.0/src/equals.js", "npm:ramda@0.23.0/src/evolve.js", "npm:ramda@0.23.0/src/filter.js", "npm:ramda@0.23.0/src/find.js", "npm:ramda@0.23.0/src/findIndex.js", "npm:ramda@0.23.0/src/findLast.js", "npm:ramda@0.23.0/src/findLastIndex.js", "npm:ramda@0.23.0/src/flatten.js", "npm:ramda@0.23.0/src/flip.js", "npm:ramda@0.23.0/src/forEach.js", "npm:ramda@0.23.0/src/forEachObjIndexed.js", "npm:ramda@0.23.0/src/fromPairs.js", "npm:ramda@0.23.0/src/groupBy.js", "npm:ramda@0.23.0/src/groupWith.js", "npm:ramda@0.23.0/src/gt.js", "npm:ramda@0.23.0/src/gte.js", "npm:ramda@0.23.0/src/has.js", "npm:ramda@0.23.0/src/hasIn.js", "npm:ramda@0.23.0/src/head.js", "npm:ramda@0.23.0/src/identical.js", "npm:ramda@0.23.0/src/identity.js", "npm:ramda@0.23.0/src/ifElse.js", "npm:ramda@0.23.0/src/inc.js", "npm:ramda@0.23.0/src/indexBy.js", "npm:ramda@0.23.0/src/indexOf.js", "npm:ramda@0.23.0/src/init.js", "npm:ramda@0.23.0/src/insert.js", "npm:ramda@0.23.0/src/insertAll.js", "npm:ramda@0.23.0/src/internal/_Set.js", "npm:ramda@0.23.0/src/internal/_aperture.js", "npm:ramda@0.23.0/src/internal/_arity.js", "npm:ramda@0.23.0/src/internal/_arrayFromIterator.js", "npm:ramda@0.23.0/src/internal/_assign.js", "npm:ramda@0.23.0/src/internal/_checkForMethod.js", "npm:ramda@0.23.0/src/internal/_clone.js", "npm:ramda@0.23.0/src/internal/_cloneRegExp.js", "npm:ramda@0.23.0/src/internal/_complement.js", "npm:ramda@0.23.0/src/internal/_concat.js", "npm:ramda@0.23.0/src/internal/_contains.js", "npm:ramda@0.23.0/src/internal/_containsWith.js", "npm:ramda@0.23.0/src/internal/_createPartialApplicator.js", "npm:ramda@0.23.0/src/internal/_curry1.js", "npm:ramda@0.23.0/src/internal/_curry2.js", "npm:ramda@0.23.0/src/internal/_curry3.js", "npm:ramda@0.23.0/src/internal/_curryN.js", "npm:ramda@0.23.0/src/internal/_dispatchable.js", "npm:ramda@0.23.0/src/internal/_dropLast.js", "npm:ramda@0.23.0/src/internal/_dropLastWhile.js", "npm:ramda@0.23.0/src/internal/_equals.js", "npm:ramda@0.23.0/src/internal/_filter.js", "npm:ramda@0.23.0/src/internal/_flatCat.js", "npm:ramda@0.23.0/src/internal/_forceReduced.js", "npm:ramda@0.23.0/src/internal/_functionName.js", "npm:ramda@0.23.0/src/internal/_has.js", "npm:ramda@0.23.0/src/internal/_identity.js", "npm:ramda@0.23.0/src/internal/_indexOf.js", "npm:ramda@0.23.0/src/internal/_isArguments.js", "npm:ramda@0.23.0/src/internal/_isArray.js", "npm:ramda@0.23.0/src/internal/_isFunction.js", "npm:ramda@0.23.0/src/internal/_isInteger.js", "npm:ramda@0.23.0/src/internal/_isNumber.js", "npm:ramda@0.23.0/src/internal/_isObject.js", "npm:ramda@0.23.0/src/internal/_isPlaceholder.js", "npm:ramda@0.23.0/src/internal/_isRegExp.js", "npm:ramda@0.23.0/src/internal/_isString.js", "npm:ramda@0.23.0/src/internal/_isTransformer.js", "npm:ramda@0.23.0/src/internal/_makeFlat.js", "npm:ramda@0.23.0/src/internal/_map.js", "npm:ramda@0.23.0/src/internal/_objectAssign.js", "npm:ramda@0.23.0/src/internal/_of.js", "npm:ramda@0.23.0/src/internal/_pipe.js", "npm:ramda@0.23.0/src/internal/_pipeP.js", "npm:ramda@0.23.0/src/internal/_quote.js", "npm:ramda@0.23.0/src/internal/_reduce.js", "npm:ramda@0.23.0/src/internal/_reduced.js", "npm:ramda@0.23.0/src/internal/_stepCat.js", "npm:ramda@0.23.0/src/internal/_toISOString.js", "npm:ramda@0.23.0/src/internal/_toString.js", "npm:ramda@0.23.0/src/internal/_xall.js", "npm:ramda@0.23.0/src/internal/_xany.js", "npm:ramda@0.23.0/src/internal/_xaperture.js", "npm:ramda@0.23.0/src/internal/_xchain.js", "npm:ramda@0.23.0/src/internal/_xdrop.js", "npm:ramda@0.23.0/src/internal/_xdropLast.js", "npm:ramda@0.23.0/src/internal/_xdropLastWhile.js", "npm:ramda@0.23.0/src/internal/_xdropRepeatsWith.js", "npm:ramda@0.23.0/src/internal/_xdropWhile.js", "npm:ramda@0.23.0/src/internal/_xfBase.js", "npm:ramda@0.23.0/src/internal/_xfilter.js", "npm:ramda@0.23.0/src/internal/_xfind.js", "npm:ramda@0.23.0/src/internal/_xfindIndex.js", "npm:ramda@0.23.0/src/internal/_xfindLast.js", "npm:ramda@0.23.0/src/internal/_xfindLastIndex.js", "npm:ramda@0.23.0/src/internal/_xmap.js", "npm:ramda@0.23.0/src/internal/_xreduceBy.js", "npm:ramda@0.23.0/src/internal/_xtake.js", "npm:ramda@0.23.0/src/internal/_xtakeWhile.js", "npm:ramda@0.23.0/src/internal/_xwrap.js", "npm:ramda@0.23.0/src/intersection.js", "npm:ramda@0.23.0/src/intersectionWith.js", "npm:ramda@0.23.0/src/intersperse.js", "npm:ramda@0.23.0/src/into.js", "npm:ramda@0.23.0/src/invert.js", "npm:ramda@0.23.0/src/invertObj.js", "npm:ramda@0.23.0/src/invoker.js", "npm:ramda@0.23.0/src/is.js", "npm:ramda@0.23.0/src/isArrayLike.js", "npm:ramda@0.23.0/src/isEmpty.js", "npm:ramda@0.23.0/src/isNil.js", "npm:ramda@0.23.0/src/join.js", "npm:ramda@0.23.0/src/juxt.js", "npm:ramda@0.23.0/src/keys.js", "npm:ramda@0.23.0/src/keysIn.js", "npm:ramda@0.23.0/src/last.js", "npm:ramda@0.23.0/src/lastIndexOf.js", "npm:ramda@0.23.0/src/length.js", "npm:ramda@0.23.0/src/lens.js", "npm:ramda@0.23.0/src/lensIndex.js", "npm:ramda@0.23.0/src/lensPath.js", "npm:ramda@0.23.0/src/lensProp.js", "npm:ramda@0.23.0/src/lift.js", "npm:ramda@0.23.0/src/liftN.js", "npm:ramda@0.23.0/src/lt.js", "npm:ramda@0.23.0/src/lte.js", "npm:ramda@0.23.0/src/map.js", "npm:ramda@0.23.0/src/mapAccum.js", "npm:ramda@0.23.0/src/mapAccumRight.js", "npm:ramda@0.23.0/src/mapObjIndexed.js", "npm:ramda@0.23.0/src/match.js", "npm:ramda@0.23.0/src/mathMod.js", "npm:ramda@0.23.0/src/max.js", "npm:ramda@0.23.0/src/maxBy.js", "npm:ramda@0.23.0/src/mean.js", "npm:ramda@0.23.0/src/median.js", "npm:ramda@0.23.0/src/memoize.js", "npm:ramda@0.23.0/src/merge.js", "npm:ramda@0.23.0/src/mergeAll.js", "npm:ramda@0.23.0/src/mergeWith.js", "npm:ramda@0.23.0/src/mergeWithKey.js", "npm:ramda@0.23.0/src/min.js", "npm:ramda@0.23.0/src/minBy.js", "npm:ramda@0.23.0/src/modulo.js", "npm:ramda@0.23.0/src/multiply.js", "npm:ramda@0.23.0/src/nAry.js", "npm:ramda@0.23.0/src/negate.js", "npm:ramda@0.23.0/src/none.js", "npm:ramda@0.23.0/src/not.js", "npm:ramda@0.23.0/src/nth.js", "npm:ramda@0.23.0/src/nthArg.js", "npm:ramda@0.23.0/src/objOf.js", "npm:ramda@0.23.0/src/of.js", "npm:ramda@0.23.0/src/omit.js", "npm:ramda@0.23.0/src/once.js", "npm:ramda@0.23.0/src/or.js", "npm:ramda@0.23.0/src/over.js", "npm:ramda@0.23.0/src/pair.js", "npm:ramda@0.23.0/src/partial.js", "npm:ramda@0.23.0/src/partialRight.js", "npm:ramda@0.23.0/src/partition.js", "npm:ramda@0.23.0/src/path.js", "npm:ramda@0.23.0/src/pathEq.js", "npm:ramda@0.23.0/src/pathOr.js", "npm:ramda@0.23.0/src/pathSatisfies.js", "npm:ramda@0.23.0/src/pick.js", "npm:ramda@0.23.0/src/pickAll.js", "npm:ramda@0.23.0/src/pickBy.js", "npm:ramda@0.23.0/src/pipe.js", "npm:ramda@0.23.0/src/pipeK.js", "npm:ramda@0.23.0/src/pipeP.js", "npm:ramda@0.23.0/src/pluck.js", "npm:ramda@0.23.0/src/prepend.js", "npm:ramda@0.23.0/src/product.js", "npm:ramda@0.23.0/src/project.js", "npm:ramda@0.23.0/src/prop.js", "npm:ramda@0.23.0/src/propEq.js", "npm:ramda@0.23.0/src/propIs.js", "npm:ramda@0.23.0/src/propOr.js", "npm:ramda@0.23.0/src/propSatisfies.js", "npm:ramda@0.23.0/src/props.js", "npm:ramda@0.23.0/src/range.js", "npm:ramda@0.23.0/src/reduce.js", "npm:ramda@0.23.0/src/reduceBy.js", "npm:ramda@0.23.0/src/reduceRight.js", "npm:ramda@0.23.0/src/reduceWhile.js", "npm:ramda@0.23.0/src/reduced.js", "npm:ramda@0.23.0/src/reject.js", "npm:ramda@0.23.0/src/remove.js", "npm:ramda@0.23.0/src/repeat.js", "npm:ramda@0.23.0/src/replace.js", "npm:ramda@0.23.0/src/reverse.js", "npm:ramda@0.23.0/src/scan.js", "npm:ramda@0.23.0/src/sequence.js", "npm:ramda@0.23.0/src/set.js", "npm:ramda@0.23.0/src/slice.js", "npm:ramda@0.23.0/src/sort.js", "npm:ramda@0.23.0/src/sortBy.js", "npm:ramda@0.23.0/src/sortWith.js", "npm:ramda@0.23.0/src/split.js", "npm:ramda@0.23.0/src/splitAt.js", "npm:ramda@0.23.0/src/splitEvery.js", "npm:ramda@0.23.0/src/splitWhen.js", "npm:ramda@0.23.0/src/subtract.js", "npm:ramda@0.23.0/src/sum.js", "npm:ramda@0.23.0/src/symmetricDifference.js", "npm:ramda@0.23.0/src/symmetricDifferenceWith.js", "npm:ramda@0.23.0/src/tail.js", "npm:ramda@0.23.0/src/take.js", "npm:ramda@0.23.0/src/takeLast.js", "npm:ramda@0.23.0/src/takeLastWhile.js", "npm:ramda@0.23.0/src/takeWhile.js", "npm:ramda@0.23.0/src/tap.js", "npm:ramda@0.23.0/src/test.js", "npm:ramda@0.23.0/src/times.js", "npm:ramda@0.23.0/src/toLower.js", "npm:ramda@0.23.0/src/toPairs.js", "npm:ramda@0.23.0/src/toPairsIn.js", "npm:ramda@0.23.0/src/toString.js", "npm:ramda@0.23.0/src/toUpper.js", "npm:ramda@0.23.0/src/transduce.js", "npm:ramda@0.23.0/src/transpose.js", "npm:ramda@0.23.0/src/traverse.js", "npm:ramda@0.23.0/src/trim.js", "npm:ramda@0.23.0/src/tryCatch.js", "npm:ramda@0.23.0/src/type.js", "npm:ramda@0.23.0/src/unapply.js", "npm:ramda@0.23.0/src/unary.js", "npm:ramda@0.23.0/src/uncurryN.js", "npm:ramda@0.23.0/src/unfold.js", "npm:ramda@0.23.0/src/union.js", "npm:ramda@0.23.0/src/unionWith.js", "npm:ramda@0.23.0/src/uniq.js", "npm:ramda@0.23.0/src/uniqBy.js", "npm:ramda@0.23.0/src/uniqWith.js", "npm:ramda@0.23.0/src/unless.js", "npm:ramda@0.23.0/src/unnest.js", "npm:ramda@0.23.0/src/until.js", "npm:ramda@0.23.0/src/update.js", "npm:ramda@0.23.0/src/useWith.js", "npm:ramda@0.23.0/src/values.js", "npm:ramda@0.23.0/src/valuesIn.js", "npm:ramda@0.23.0/src/view.js", "npm:ramda@0.23.0/src/when.js", "npm:ramda@0.23.0/src/where.js", "npm:ramda@0.23.0/src/whereEq.js", "npm:ramda@0.23.0/src/without.js", "npm:ramda@0.23.0/src/xprod.js", "npm:ramda@0.23.0/src/zip.js", "npm:ramda@0.23.0/src/zipObj.js", "npm:ramda@0.23.0/src/zipWith.js" - ], - "app-build.js": [ - "common/container.js", - "common/converters/count-value-converter.js", - "common/converters/datetime.value.converter.js", - "common/i2b2.pub-sub.js", - "common/i2b2.service.js", - "common/publisher.js", - "common/queries.model.js", - "common/query-status.model.js", - "common/shrine.messages.js", - "main.js", - "repository/qep.repository.js", - "shell.html!github:systemjs/plugin-text@0.0.8.js", - "shell.js", - "views/mailto/mailto.config.js", - "views/mailto/mailto.html!github:systemjs/plugin-text@0.0.8.js", - "views/mailto/mailto.js", - "views/mailto/mailto.service.js", - "views/query-status/node-result/node-result.html!github:systemjs/plugin-text@0.0.8.js", - "views/query-status/node-result/node-result.js", - "views/query-status/node-result/result-types/error/error.html!github:systemjs/plugin-text@0.0.8.js", - "views/query-status/node-result/result-types/error/error.js", - "views/query-status/node-result/result-types/patient-count/breakdown.html!github:systemjs/plugin-text@0.0.8.js", - "views/query-status/node-result/result-types/patient-count/patient-count.html!github:systemjs/plugin-text@0.0.8.js", - "views/query-status/node-result/result-types/patient-count/patient-count.js", - "views/query-status/node-status/node-status.html!github:systemjs/plugin-text@0.0.8.js", - "views/query-status/node-status/node-status.js", - "views/query-status/query-status.html!github:systemjs/plugin-text@0.0.8.js", - "views/query-status/query-status.js", - "views/query-viewer/box-style.converter.js", - "views/query-viewer/context-menu/context-menu.html!github:systemjs/plugin-text@0.0.8.js", - "views/query-viewer/context-menu/context-menu.js", - "views/query-viewer/date.converter.js", - "views/query-viewer/loading-bar/loading-bar.html!github:systemjs/plugin-text@0.0.8.js", - "views/query-viewer/loading-bar/loading-bar.js", - "views/query-viewer/loading-bar/row-loader.html!github:systemjs/plugin-text@0.0.8.js", - "views/query-viewer/paginator/paginator.html!github:systemjs/plugin-text@0.0.8.js", - "views/query-viewer/paginator/paginator.js", - "views/query-viewer/query-status/query-status.html!github:systemjs/plugin-text@0.0.8.js", - "views/query-viewer/query-status/query-status.js", - "views/query-viewer/query-viewer.config.js", - "views/query-viewer/query-viewer.html!github:systemjs/plugin-text@0.0.8.js", - "views/query-viewer/query-viewer.js", - "views/query-viewer/result-style.converter.js", - "views/query-viewer/result-value.converter.js", - "views/query-viewer/scroll.service.js" - ] - }, - depCache: { - "common/container.js": [ - "ramda" - ], - "common/converters/datetime.value.converter.js": [ - "moment" - ], - "common/i2b2.pub-sub.js": [ - "aurelia-event-aggregator", - "./i2b2.service", - "./shrine.messages" - ], - "common/i2b2.service.js": [ - "ramda", - "./container" - ], - "common/publisher.js": [ - "aurelia-event-aggregator", - "common/shrine.messages" - ], - "common/queries.model.js": [ - "aurelia-event-aggregator", - "repository/qep.repository", - "./shrine.messages" - ], - "common/query-status.model.js": [ - "aurelia-event-aggregator", - "repository/qep.repository", - "./shrine.messages" - ], - "repository/qep.repository.js": [ - "aurelia-fetch-client", - "fetch" - ], - "shell.js": [ - "common/i2b2.pub-sub" - ], - "views/mailto/mailto.js": [ - "views/mailto/mailto.service", - "views/mailto/mailto.config" - ], - "views/mailto/mailto.service.js": [ - "repository/qep.repository" - ], - "views/query-status/node-result/node-result.js": [ - "aurelia-framework" - ], - "views/query-status/node-result/result-types/error/error.js": [ - "aurelia-framework", - "common/publisher" - ], - "views/query-status/node-result/result-types/patient-count/patient-count.js": [ - "aurelia-framework" - ], - "views/query-status/node-status/node-status.js": [ - "aurelia-framework", - "common/publisher" - ], - "views/query-status/query-status.js": [ - "aurelia-event-aggregator", - "common/shrine.messages", - "common/query-status.model" - ], - "views/query-viewer/context-menu/context-menu.js": [ - "aurelia-framework", - "aurelia-event-aggregator", - "common/shrine.messages" - ], - "views/query-viewer/date.converter.js": [ - "moment" - ], - "views/query-viewer/loading-bar/loading-bar.js": [ - "aurelia-framework" - ], - "views/query-viewer/paginator/paginator.js": [ - "aurelia-framework" - ], - "views/query-viewer/query-status/query-status.js": [ - "aurelia-framework", - "ramda" - ], - "views/query-viewer/query-viewer.js": [ - "aurelia-event-aggregator", - "common/queries.model", - "./scroll.service", - "common/shrine.messages" - ], - "views/query-viewer/scroll.service.js": [ - "ramda", - "common/container" ] } }); \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/export/dist/app-build.js b/shrine-webclient/src/main/js/client/js-shrine/export/dist/app-build.js index ac82e38c8..caab633a8 100644 --- a/shrine-webclient/src/main/js/client/js-shrine/export/dist/app-build.js +++ b/shrine-webclient/src/main/js/client/js-shrine/export/dist/app-build.js @@ -1,2 +1,2 @@ -"bundle";System.register("common/converters/count-value-converter.js",[],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d;return{setters:[],execute:function(){a("CountValueConverter",d=function(){function a(){c(this,a)}return a.prototype.toView=function(a){return a<0?"<=10 patients":a+" +-10 patients"},a}()),a("CountValueConverter",d)}}}),System.register("common/converters/datetime.value.converter.js",["moment"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e;return{setters:[function(a){d=a["default"]}],execute:function(){a("DateTimeValueConverter",e=function(){function a(){c(this,a)}return a.prototype.toView=function(a){return d(a).format("MM/DD/YYYY h:mm:ss a")},a}()),a("DateTimeValueConverter",e)}}}),System.register("main.js",[],function(a,b){"use strict";function c(a){a.use.standardConfiguration().developmentLogging(),a.start().then(function(){return a.setRoot("shell")})}return a("configure",c),{setters:[],execute:function(){}}}),function(){var a=System.amdDefine;a("shell.html!github:systemjs/plugin-text@0.0.8.js",[],function(){return''})}(),System.register("common/i2b2.service.js",["ramda","./container"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g,h;return{setters:[function(a){d=a},function(a){e=a.Container}],execute:function(){a("I2B2Service",(g=f=function b(a){c(this,b);var f=a?e.of(a):e.of(null),g=d.curry(function(a,b){return b.value?e.of(d.prop(a,b.value)):e.of(null)}),h=d.compose(g("i2b2"),g("window"),g("parent")),i=d.compose(g("CRC"),h),j=d.compose(g("events"),h),k=d.compose(g("SHRINE"),h);b.prototype.onResize=function(a){return j(f).map(function(b){return b.changedZoomWindows.subscribe(a)})},b.prototype.onHistory=function(a){return i(f).map(function(b){return b.ctrlr.history.events.onDataUpdate.subscribe(a)})},b.prototype.onQuery=function(a){return j(f).map(function(b){return b.afterQueryInit.subscribe(a)})},b.prototype.onViewSelected=function(a){return g("addEventListener",f).value?e.of(f.value.addEventListener("message",a,!1)):e.of(null)},b.prototype.loadHistory=function(){return i(f).map(function(a){return a.view.history.doRefreshAll()})},b.prototype.loadQuery=function(a){return i(f).map(function(b){return b.ctrlr.QT.doQueryLoad(a)})},b.prototype.errorDetail=function(a){return k(f).map(function(b){return b.plugin.errorDetail(a)})},b.prototype.renameQuery=function(a){return i(f).map(function(b){return b.ctrlr.history.queryRename(a,!1)})},b.prototype.flagQuery=function(a){return i(f).map(function(b){return b.ctrlr.history.Flag({queryId:a,message:""})})},b.prototype.unflagQuery=function(a){return i(f).map(function(b){return b.ctrlr.history.Unflag({queryId:a})})}},f.inject=[window],h=g)),a("I2B2Service",h)}}}),System.register("common/i2b2.pub-sub.js",["aurelia-event-aggregator","./i2b2.service","./shrine.messages"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g,h,i,j;return{setters:[function(a){d=a.EventAggregator},function(a){e=a.I2B2Service},function(a){f=a.notifications,g=a.commands}],execute:function(){a("I2B2PubSub",(i=h=function b(a,d,e,f){c(this,b),this.listen=function(){d.onResize(function(a,b){return b.find(function(a){return"ADD"===a.action})?g():h()}),d.onHistory(function(){return i()}),d.onQuery(function(a,b){return j(b[0].name)}),d.onViewSelected(function(a){return k(a.data)}),a.subscribe(f.i2b2.cloneQuery,l),a.subscribe(f.i2b2.showError,m),a.subscribe(f.i2b2.renameQuery,n),a.subscribe(f.i2b2.flagQuery,o),a.subscribe(f.i2b2.unflagQuery,p)};var g=function(){return a.publish(e.i2b2.tabMax)},h=function(){return a.publish(e.i2b2.tabMin)},i=function(){return a.publish(e.i2b2.historyRefreshed)},j=function(b){return a.publish(e.i2b2.queryStarted,b)},k=function(b){return a.publish(e.i2b2.viewSelected,b)},l=function(a){return d.loadQuery(a)},m=function(a){console.log(f.i2b2.showError+": "+a),d.errorDetail(a)},n=function(a){return d.renameQuery(a)},o=function(a){return d.flagQuery(a)},p=function(a){return d.unflagQuery(a)}},h.inject=[d,e,f,g],j=i)),a("I2B2PubSub",j)}}}),System.register("shell.js",["common/i2b2.pub-sub"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g;return{setters:[function(a){d=a.I2B2PubSub}],execute:function(){a("Shell",(f=e=function b(a){c(this,b),a.listen()},e.inject=[d],g=f)),a("Shell",g)}}}),function(){var a=System.amdDefine;a("views/mailto/mailto.html!github:systemjs/plugin-text@0.0.8.js",[],function(){return''})}(),System.register("views/mailto/mailto.service.js",["repository/qep.repository"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g;return{setters:[function(a){d=a.QEPRepository}],execute:function(){a("MailToService",(f=e=function(){function a(b){c(this,a),this.repository=b}return a.prototype.fetchStewardEmail=function(){return this.repository.fetchStewardEmail()},a}(),e.inject=[d],g=f)),a("MailToService",g)}}}),System.register("views/mailto/mailto.config.js",[],function(a,b){"use strict";var c;return{setters:[],execute:function(){a("MailConfig",c={mailto:"mailto:",subject:encodeURIComponent("Question from a SHRINE User"),body:encodeURIComponent("Please enter the suggested information and your question. Your data steward will reply to this email.\n \n\n***Never send patient information, passwords, or other sensitive information by email****\n \nName:\n \nTitle:\n \nUser name (to log into SHRINE):\n \nTelephone Number (optional):\n \nPreferred email address (optional):\n \n\nQuestion or Comment:")}),a("MailConfig",c)}}}),System.register("views/mailto/mailto.js",["views/mailto/mailto.service","views/mailto/mailto.config"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g,h;return{setters:[function(a){d=a.MailToService},function(a){e=a.MailConfig}],execute:function(){a("MailTo",(g=f=function(){function a(b,d){c(this,a),this.service=b,this.config=d}return a.prototype.openEmail=function(){var a=this;this.service.fetchStewardEmail().then(function(b){window.top.location="mailto:"+b+"?subject="+a.config.subject+"&body="+a.config.body})},a}(),f.inject=[d,e],h=g)),a("MailTo",h)}}}),function(){var a=System.amdDefine;a("views/query-status/node-result/node-result.html!github:systemjs/plugin-text@0.0.8.js",[],function(){return''})}(),System.register("views/query-status/node-result/node-result.js",["aurelia-framework"],function(a,b){"use strict";function c(a,b,c,d){c&&Object.defineProperty(a,b,{enumerable:c.enumerable,configurable:c.configurable,writable:c.writable,value:c.initializer?c.initializer.call(d):void 0})}function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b,c,d,e){var f={};return Object.keys(d).forEach(function(a){f[a]=d[a]}),f.enumerable=!!f.enumerable,f.configurable=!!f.configurable,("value"in f||f.initializer)&&(f.writable=!0),f=c.slice().reverse().reduce(function(c,d){return d(a,b,c)||c},f),e&&void 0!==f.initializer&&(f.value=f.initializer?f.initializer.call(e):void 0,f.initializer=void 0),void 0===f.initializer&&(Object.defineProperty(a,b,f),f=null),f}var f,g,h,i,j;return{setters:[function(a){f=a.bindable}],execute:function(){a("NodeResult",(g=function b(){d(this,b),c(this,"result",h,this),c(this,"queryName",i,this)},h=e(g.prototype,"result",[f],{enumerable:!0,initializer:null}),i=e(g.prototype,"queryName",[f],{enumerable:!0,initializer:null}),j=g)),a("NodeResult",j)}}}),function(){var a=System.amdDefine;a("views/query-status/node-result/result-types/error/error.html!github:systemjs/plugin-text@0.0.8.js",[],function(){return''})}(),System.register("views/query-status/node-result/result-types/error/error.js",["aurelia-framework","common/publisher"],function(a,b){"use strict";function c(a,b,c,d){c&&Object.defineProperty(a,b,{enumerable:c.enumerable,configurable:c.configurable,writable:c.writable,value:c.initializer?c.initializer.call(d):void 0})}function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function g(a,b,c,d,e){var f={};return Object.keys(d).forEach(function(a){f[a]=d[a]}),f.enumerable=!!f.enumerable,f.configurable=!!f.configurable,("value"in f||f.initializer)&&(f.writable=!0),f=c.slice().reverse().reduce(function(c,d){return d(a,b,c)||c},f),e&&void 0!==f.initializer&&(f.value=f.initializer?f.initializer.call(e):void 0,f.initializer=void 0),void 0===f.initializer&&(Object.defineProperty(a,b,f),f=null),f}var h,i,j,k,l,m;return{setters:[function(a){h=a.inject,i=a.bindable},function(a){j=a.Publisher}],execute:function(){a("Error",(k=function(a){function b(){d(this,b);for(var f=arguments.length,g=Array(f),h=0;h

Patient Age Count Breakdown:
0-9 years old: - 10 patients or fewer
10-17 years old: - 10 patients or fewer
18-34 years old: - 355 +-10 patients
35-44 years old: - 200 +-10 patients
45-54 years old: - 95 +-10 patients
55-64 years old: - 15 +-10 patients
65-74 years old: - 65 +-10 patients
75-84 years old: - 60 +-10 patients
>= 65 years old: - 170 +-10 patients
>= 85 years old: - 55 +-10 patients
Not recorded: - 10 patients or fewer
'})}(),function(){var a=System.amdDefine;a("views/query-status/node-result/result-types/patient-count/patient-count.html!github:systemjs/plugin-text@0.0.8.js",[],function(){return''})}(),System.register("views/query-status/node-result/result-types/patient-count/patient-count.js",["aurelia-framework"],function(a,b){"use strict";function c(a,b,c,d){c&&Object.defineProperty(a,b,{enumerable:c.enumerable,configurable:c.configurable,writable:c.writable,value:c.initializer?c.initializer.call(d):void 0})}function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b,c,d,e){var f={};return Object.keys(d).forEach(function(a){f[a]=d[a]}),f.enumerable=!!f.enumerable,f.configurable=!!f.configurable,("value"in f||f.initializer)&&(f.writable=!0),f=c.slice().reverse().reduce(function(c,d){return d(a,b,c)||c},f),e&&void 0!==f.initializer&&(f.value=f.initializer?f.initializer.call(e):void 0,f.initializer=void 0),void 0===f.initializer&&(Object.defineProperty(a,b,f),f=null),f}var f,g,h,i,j;return{setters:[function(a){f=a.bindable}],execute:function(){a("PatientCount",(g=function b(){d(this,b),c(this,"result",h,this),c(this,"showBreakdown",i,this)},h=e(g.prototype,"result",[f],{enumerable:!0,initializer:null}),i=e(g.prototype,"showBreakdown",[f],{enumerable:!0,initializer:null}),j=g)),a("PatientCount",j)}}}),function(){var a=System.amdDefine;a("views/query-status/node-status/node-status.html!github:systemjs/plugin-text@0.0.8.js",[],function(){return''})}(),System.register("common/publisher.js",["aurelia-event-aggregator","common/shrine.messages"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g,h;return{setters:[function(a){d=a.EventAggregator},function(a){e=a.commands}],execute:function(){a("Publisher",(g=f=function b(a,d){c(this,b),this.commands=d,this.publish=function(b,c){return a.publish(b,c)}},f.inject=[d,e],h=g)),a("Publisher",h)}}}),System.register("views/query-status/node-status/node-status.js",["aurelia-framework","common/publisher"],function(a,b){"use strict";function c(a,b,c,d){c&&Object.defineProperty(a,b,{enumerable:c.enumerable,configurable:c.configurable,writable:c.writable,value:c.initializer?c.initializer.call(d):void 0})}function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function g(a,b,c,d,e){var f={};return Object.keys(d).forEach(function(a){f[a]=d[a]}),f.enumerable=!!f.enumerable,f.configurable=!!f.configurable,("value"in f||f.initializer)&&(f.writable=!0),f=c.slice().reverse().reduce(function(c,d){return d(a,b,c)||c},f),e&&void 0!==f.initializer&&(f.value=f.initializer?f.initializer.call(e):void 0,f.initializer=void 0),void 0===f.initializer&&(Object.defineProperty(a,b,f),f=null),f}var h,i,j,k,l;return{setters:[function(a){h=a.bindable},function(a){i=a.Publisher}],execute:function(){a("NodeStatus",(j=function(a){function b(){d(this,b);for(var f=arguments.length,g=Array(f),h=0;h
Status of Query: ${status.query.queryName}
Last Updated: ${status.updated | dateTime}


Query results are shown below
**************************************************************************
'})}(),System.register("common/query-status.model.js",["aurelia-event-aggregator","repository/qep.repository","./shrine.messages"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g,h,i,j,k;return{setters:[function(a){d=a.EventAggregator},function(a){e=a.QEPRepository},function(a){f=a.commands,g=a.notifications}],execute:function(){h=Object.assign||function(a){for(var b=1;b'})}(),System.register("views/query-viewer/context-menu/context-menu.js",["aurelia-framework","aurelia-event-aggregator","common/shrine.messages"],function(a,b){"use strict";function c(a,b,c,d){c&&Object.defineProperty(a,b,{enumerable:c.enumerable,configurable:c.configurable,writable:c.writable,value:c.initializer?c.initializer.call(d):void 0})}function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b,c,d,e){var f={};return Object.keys(d).forEach(function(a){f[a]=d[a]}),f.enumerable=!!f.enumerable,f.configurable=!!f.configurable,("value"in f||f.initializer)&&(f.writable=!0),f=c.slice().reverse().reduce(function(c,d){return d(a,b,c)||c},f),e&&void 0!==f.initializer&&(f.value=f.initializer?f.initializer.call(e):void 0,f.initializer=void 0),void 0===f.initializer&&(Object.defineProperty(a,b,f),f=null),f}var f,g,h,i,j,k,l,m,n;return{setters:[function(a){f=a.bindable},function(a){g=a.EventAggregator},function(a){h=a.commands}],execute:function(){a("ContextMenu",(l=k=function b(a,c){var e=this;d(this,b),m.call(this),b.prototype.cloneQuery=function(b){a.publish(c.i2b2.cloneQuery,b),e.context["class"]="hide"},b.prototype.renameQuery=function(b){a.publish(c.i2b2.renameQuery,b),e.context["class"]="hide"},b.prototype.flagQuery=function(b){a.publish(c.i2b2.flagQuery,b),e.context["class"]="hide"},b.prototype.unflagQuery=function(b){a.publish(c.i2b2.unflagQuery,b),e.context["class"]="hide"}},k.inject=[g,h],m=function(){c(this,"context",j,this)},i=l,j=e(i.prototype,"context",[f],{enumerable:!0,initializer:null}),n=i)),a("ContextMenu",n)}}}),System.register("views/query-viewer/date.converter.js",["moment"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e;return{setters:[function(a){d=a["default"]}],execute:function(){a("DateValueConverter",e=function(){function a(){c(this,a)}return a.prototype.toView=function(a){return d(a).format("MM/DD/YYYY")},a}()),a("DateValueConverter",e)}}}),function(){var a=System.amdDefine;a("views/query-viewer/loading-bar/loading-bar.html!github:systemjs/plugin-text@0.0.8.js",[],function(){return''})}(),System.register("views/query-viewer/loading-bar/loading-bar.js",["aurelia-framework"],function(a,b){"use strict";function c(a,b,c,d){c&&Object.defineProperty(a,b,{enumerable:c.enumerable,configurable:c.configurable,writable:c.writable,value:c.initializer?c.initializer.call(d):void 0})}function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b,c,d,e){var f={};return Object.keys(d).forEach(function(a){f[a]=d[a]}),f.enumerable=!!f.enumerable,f.configurable=!!f.configurable,("value"in f||f.initializer)&&(f.writable=!0),f=c.slice().reverse().reduce(function(c,d){return d(a,b,c)||c},f),e&&void 0!==f.initializer&&(f.value=f.initializer?f.initializer.call(e):void 0,f.initializer=void 0),void 0===f.initializer&&(Object.defineProperty(a,b,f),f=null),f}var f,g,h,i;return{setters:[function(a){f=a.bindable}],execute:function(){a("LoadingBar",(g=function b(){d(this,b),c(this,"status",h,this)},h=e(g.prototype,"status",[f],{enumerable:!0,initializer:null}),i=g)),a("LoadingBar",i)}}}),function(){var a=System.amdDefine;a("views/query-viewer/loading-bar/row-loader.html!github:systemjs/plugin-text@0.0.8.js",[],function(){return""})}(),function(){var a=System.amdDefine;a("views/query-viewer/paginator/paginator.html!github:systemjs/plugin-text@0.0.8.js",[],function(){return''})}(),System.register("views/query-viewer/paginator/paginator.js",["aurelia-framework"],function(a,b){"use strict";function c(a,b,c,d){c&&Object.defineProperty(a,b,{enumerable:c.enumerable,configurable:c.configurable,writable:c.writable,value:c.initializer?c.initializer.call(d):void 0})}function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b,c,d,e){var f={};return Object.keys(d).forEach(function(a){f[a]=d[a]}),f.enumerable=!!f.enumerable,f.configurable=!!f.configurable,("value"in f||f.initializer)&&(f.writable=!0),f=c.slice().reverse().reduce(function(c,d){return d(a,b,c)||c},f),e&&void 0!==f.initializer&&(f.value=f.initializer?f.initializer.call(e):void 0,f.initializer=void 0),void 0===f.initializer&&(Object.defineProperty(a,b,f),f=null),f}var f,g,h,i,j,k,l;return{setters:[function(a){f=a.bindable}],execute:function(){g=function(){function a(a,b){for(var c=0;cb?b:a,this.element.dispatchEvent(new CustomEvent("paginator-click",{detail:{index:this.index},bubbles:!0,cancelable:!0}))}}]),a}(),j.inject=[Element],h=k,i=e(h.prototype,"pages",[f],{enumerable:!0,initializer:null}),l=h)),a("Paginator",l)}}}),function(){var a=System.amdDefine;a("views/query-viewer/query-status/query-status.html!github:systemjs/plugin-text@0.0.8.js",[],function(){return''})}(),System.register("views/query-viewer/query-status/query-status.js",["aurelia-framework","ramda"],function(a,b){"use strict";function c(a,b,c,d){c&&Object.defineProperty(a,b,{enumerable:c.enumerable,configurable:c.configurable,writable:c.writable,value:c.initializer?c.initializer.call(d):void 0})}function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b,c,d,e){var f={};return Object.keys(d).forEach(function(a){f[a]=d[a]}),f.enumerable=!!f.enumerable,f.configurable=!!f.configurable,("value"in f||f.initializer)&&(f.writable=!0),f=c.slice().reverse().reduce(function(c,d){return d(a,b,c)||c},f),e&&void 0!==f.initializer&&(f.value=f.initializer?f.initializer.call(e):void 0,f.initializer=void 0),void 0===f.initializer&&(Object.defineProperty(a,b,f),f=null),f}var f,g,h,i,j,k,l,m;return{setters:[function(a){f=a.bindable},function(a){g=a}],execute:function(){a("QueryStatus",(k=j=function(){function a(b){d(this,a),l.call(this),this.floor=b.floor}return a.prototype.attached=function(){var a=75,b=g.curry(function(a,b,c,d){return a(d/c*b)})(this.floor,a,this.status.total),c=this.status,d=b(c.finished),e=b(c.error);this.readyOffset=100-d,this.errorOffset=this.readyOffset-e,this.finished=c.finished,this.error=c.error,this.pending=c.total-(c.finished+c.error),this.total=c.total},a}(),j.inject=[Math],l=function(){c(this,"status",i,this)},h=k,i=e(h.prototype,"status",[f],{enumerable:!0,initializer:null}),m=h)),a("QueryStatus",m)}}}),System.register("views/query-viewer/query-viewer.config.js",[],function(a,b){"use strict";var c;return{setters:[],execute:function(){a("QueryViewerConfig",c={maxNodesPerScreen:10,maxQueriesPerScroll:40}),a("QueryViewerConfig",c)}}}),function(){var a=System.amdDefine;a("views/query-viewer/query-viewer.html!github:systemjs/plugin-text@0.0.8.js",[],function(){ -return''})}(),System.register("repository/qep.repository.js",["aurelia-fetch-client","fetch"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g,h;return{setters:[function(a){d=a.HttpClient},function(a){}],execute:function(){e=function(){function a(a,b){for(var c=0;c1&&void 0!==arguments[1]?arguments[1]:0;return this.http.fetch("qep/queryResults?limit="+a+"&skip="+b).then(function(a){return a.json()})["catch"](function(a){return a})},a.prototype.fetchNetworkId=function(a){return this.http.fetch("qep/networkId?queryName='"+a+"'").then(function(a){return a.json()})["catch"](function(a){return a})},a.prototype.fetchQuery=function(a){return this.http.fetch("qep/queryResults?networkId="+a).then(function(a){return a.json()})["catch"](function(a){return a})},a.prototype.fetchStewardEmail=function(){return this.http.fetch("data?key=stewardEmail").then(function(a){return a.json()}).then(function(a){return a.indexOf('"')>0?a.split('"')[1]:a})["catch"](function(){return""})},e(a,[{key:"url",get:function(){var a=document.URL,b=":6443/shrine-metadata/";return a.substring(0,a.lastIndexOf(":"))+b}},{key:"auth",get:function(){var a=sessionStorage.getItem("shrine.auth");return sessionStorage.removeItem("shrine.auth"),a}}]),a}(),f.inject=[d],h=g)),a("QEPRepository",h)}}}),System.register("common/queries.model.js",["aurelia-event-aggregator","repository/qep.repository","./shrine.messages"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g,h,i;return{setters:[function(a){d=a.EventAggregator},function(a){e=a.QEPRepository},function(a){f=a.notifications}],execute:function(){a("QueriesModel",(h=g=function b(a,d,e){var f=this;c(this,b);var g=d,h=40,i=0,j=0,k=null;b.prototype.load=function(){return g.fetchPreviousQueries(f.maxQueriesPerFetch()+f.loadedCount()).then(function(a){return j=a.rowCount,i=a.queryResults.length,a})["catch"](function(a){return console.log(a)}).then(l).then(function(b){k=b,a.publish(e.shrine.queriesReceived,k)})},b.prototype.totalQueries=function(){return j},b.prototype.loadedCount=function(){return i},b.prototype.maxQueriesPerFetch=function(){return h},b.prototype.moreToLoad=function(){return i1&&void 0!==arguments[1]?arguments[1]:6;return new Promise(function(b,c){for(var d=[],e=6,f=a.adapters,g=f.length,h=a.queryResults,i=0;i1&&void 0!==arguments[1]?arguments[1]:"FINISHED";return!a||a.status!==b},a.prototype.getColorValue=function(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"ERROR",c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"#FF0000",d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"#00FF00";return a&&a.status!==b?d:c},a}()),a("ResultStyleValueConverter",d)}}}),System.register("views/query-viewer/result-value.converter.js",[],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d;return{setters:[],execute:function(){a("ResultValueConverter",d=function(){function a(){c(this,a)}return a.prototype.toView=function(a){return a?"FINISHED"!==a.status?"":a.count<0?"<=10":a.count:"not available"},a}()),a("ResultValueConverter",d)}}}); \ No newline at end of file +"bundle";System.register("main.js",[],function(a,b){"use strict";function c(a){a.use.standardConfiguration().developmentLogging().feature("resources").feature("views"),a.start().then(function(){return a.setRoot("shell")})}return a("configure",c),{setters:[],execute:function(){}}}),System.register("resources/converters/box-style.converter.js",[],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d;return{setters:[],execute:function(){a("BoxStyleValueConverter",d=function(){function a(){c(this,a)}return a.prototype.toView=function(a){return"transform: translate("+String(-100*a)+"%);"},a}()),a("BoxStyleValueConverter",d)}}}),System.register("resources/converters/count-value-converter.js",[],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d;return{setters:[],execute:function(){a("CountValueConverter",d=function(){function a(){c(this,a)}return a.prototype.toView=function(a){return a<0?"<=10 patients":a+" +-10 patients"},a}()),a("CountValueConverter",d)}}}),System.register("resources/converters/datetime.value.converter.js",["moment"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e;return{setters:[function(a){d=a["default"]}],execute:function(){a("DateTimeValueConverter",e=function(){function a(){c(this,a)}return a.prototype.toView=function(a){return d(a).format("MM/DD/YYYY h:mm:ss a")},a}()),a("DateTimeValueConverter",e)}}}),System.register("resources/converters/result-style.converter.js",[],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d;return{setters:[],execute:function(){a("ResultStyleValueConverter",d=function(){function a(){c(this,a)}return a.prototype.toView=function(a){var b=this.isUnresolved(a)?"color:"+this.getColorValue(a):"";return b},a.prototype.isUnresolved=function(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"FINISHED";return!a||a.status!==b},a.prototype.getColorValue=function(a){var b=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"ERROR",c=arguments.length>2&&void 0!==arguments[2]?arguments[2]:"#FF0000",d=arguments.length>3&&void 0!==arguments[3]?arguments[3]:"#00FF00";return a&&a.status!==b?d:c},a}()),a("ResultStyleValueConverter",d)}}}),System.register("resources/converters/result-value.converter.js",[],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d;return{setters:[],execute:function(){a("ResultValueConverter",d=function(){function a(){c(this,a)}return a.prototype.toView=function(a){return a?"FINISHED"!==a.status?"":a.count<0?"<=10":a.count:"not available"},a}()),a("ResultValueConverter",d)}}}),function(){var a=System.amdDefine;a("resources/custom/breakdown/breakdown.html!github:systemjs/plugin-text@0.0.8.js",[],function(){return''})}(),System.register("resources/custom/breakdown/breakdown.js",["aurelia-framework"],function(a,b){"use strict";function c(a,b,c,d){c&&Object.defineProperty(a,b,{enumerable:c.enumerable,configurable:c.configurable,writable:c.writable,value:c.initializer?c.initializer.call(d):void 0})}function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b,c,d,e){var f={};return Object.keys(d).forEach(function(a){f[a]=d[a]}),f.enumerable=!!f.enumerable,f.configurable=!!f.configurable,("value"in f||f.initializer)&&(f.writable=!0),f=c.slice().reverse().reduce(function(c,d){return d(a,b,c)||c},f),e&&void 0!==f.initializer&&(f.value=f.initializer?f.initializer.call(e):void 0,f.initializer=void 0),void 0===f.initializer&&(Object.defineProperty(a,b,f),f=null),f}var f,g,h,i,j,k,l;return{setters:[function(a){f=a.bindable,g=a.customElement}],execute:function(){a("Breakdown",(h=g("breakdown"),l=h((j=function b(){d(this,b),c(this,"data",k,this)},k=e(j.prototype,"data",[f],{enumerable:!0,initializer:null}),i=j))||i)),a("Breakdown",l)}}}),function(){var a=System.amdDefine;a("resources/custom/error/error.html!github:systemjs/plugin-text@0.0.8.js",[],function(){return''})}(),System.register("resources/custom/error/error.js",["aurelia-framework","services/pub-sub"],function(a,b){"use strict";function c(a,b,c,d){c&&Object.defineProperty(a,b,{enumerable:c.enumerable,configurable:c.configurable,writable:c.writable,value:c.initializer?c.initializer.call(d):void 0})}function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function g(a,b,c,d,e){var f={};return Object.keys(d).forEach(function(a){f[a]=d[a]}),f.enumerable=!!f.enumerable,f.configurable=!!f.configurable,("value"in f||f.initializer)&&(f.writable=!0),f=c.slice().reverse().reduce(function(c,d){return d(a,b,c)||c},f),e&&void 0!==f.initializer&&(f.value=f.initializer?f.initializer.call(e):void 0,f.initializer=void 0),void 0===f.initializer&&(Object.defineProperty(a,b,f),f=null),f}var h,i,j,k,l,m,n,o,p;return{setters:[function(a){h=a.inject,i=a.bindable,j=a.customElement},function(a){k=a.PubSub}],execute:function(){a("Error",(l=j("error"),p=l((n=function(a){function b(){d(this,b);for(var f=arguments.length,g=Array(f),h=0;h

${result.adapterNode} ${queryName}
 - ${result.statusMessage}'})}(),System.register("resources/custom/node-result/node-result.js",["aurelia-framework"],function(a,b){"use strict";function c(a,b,c,d){c&&Object.defineProperty(a,b,{enumerable:c.enumerable,configurable:c.configurable,writable:c.writable,value:c.initializer?c.initializer.call(d):void 0})}function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b,c,d,e){var f={};return Object.keys(d).forEach(function(a){f[a]=d[a]}),f.enumerable=!!f.enumerable,f.configurable=!!f.configurable,("value"in f||f.initializer)&&(f.writable=!0),f=c.slice().reverse().reduce(function(c,d){return d(a,b,c)||c},f),e&&void 0!==f.initializer&&(f.value=f.initializer?f.initializer.call(e):void 0,f.initializer=void 0),void 0===f.initializer&&(Object.defineProperty(a,b,f),f=null),f}var f,g,h,i,j,k,l,m;return{setters:[function(a){f=a.customElement,g=a.bindable}],execute:function(){a("NodeResult",(h=f("node-result"),m=h((j=function b(){d(this,b),c(this,"result",k,this),c(this,"queryName",l,this)},k=e(j.prototype,"result",[g],{enumerable:!0,initializer:null}),l=e(j.prototype,"queryName",[g],{enumerable:!0,initializer:null}),i=j))||i)),a("NodeResult",m)}}}),function(){var a=System.amdDefine;a("resources/custom/node-status/node-status.html!github:systemjs/plugin-text@0.0.8.js",[],function(){return''})}(),System.register("resources/custom/node-status/node-status.js",["aurelia-framework","services/pub-sub"],function(a,b){"use strict";function c(a,b,c,d){c&&Object.defineProperty(a,b,{enumerable:c.enumerable,configurable:c.configurable,writable:c.writable,value:c.initializer?c.initializer.call(d):void 0})}function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function f(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}function g(a,b,c,d,e){var f={};return Object.keys(d).forEach(function(a){f[a]=d[a]}),f.enumerable=!!f.enumerable,f.configurable=!!f.configurable,("value"in f||f.initializer)&&(f.writable=!0),f=c.slice().reverse().reduce(function(c,d){return d(a,b,c)||c},f),e&&void 0!==f.initializer&&(f.value=f.initializer?f.initializer.call(e):void 0,f.initializer=void 0),void 0===f.initializer&&(Object.defineProperty(a,b,f),f=null),f}var h,i,j,k,l,m,n,o;return{setters:[function(a){h=a.customElement,i=a.bindable},function(a){j=a.PubSub}],execute:function(){a("NodeStatus",(k=h("node-status"),o=k((m=function(a){function b(){d(this,b);for(var f=arguments.length,g=Array(f),h=0;h
${result.adapterNode}
  ${result.statusMessage}   ERROR: ${result.statusDescription}   ${result.statusMessage}
  ${result.count | count}
Patient Count: - ${result.count | count}
 - ERROR: ${result.statusDescription} - ${result.statusMessage}'})}(),function(){var a=System.amdDefine;a("resources/custom/patient-count/patient-count.html!github:systemjs/plugin-text@0.0.8.js",[],function(){return''})}(),System.register("resources/custom/patient-count/patient-count.js",["aurelia-framework"],function(a,b){"use strict";function c(a,b,c,d){c&&Object.defineProperty(a,b,{enumerable:c.enumerable,configurable:c.configurable,writable:c.writable,value:c.initializer?c.initializer.call(d):void 0})}function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b,c,d,e){var f={};return Object.keys(d).forEach(function(a){f[a]=d[a]}),f.enumerable=!!f.enumerable,f.configurable=!!f.configurable,("value"in f||f.initializer)&&(f.writable=!0),f=c.slice().reverse().reduce(function(c,d){return d(a,b,c)||c},f),e&&void 0!==f.initializer&&(f.value=f.initializer?f.initializer.call(e):void 0,f.initializer=void 0),void 0===f.initializer&&(Object.defineProperty(a,b,f),f=null),f}var f,g,h,i,j,k,l,m;return{setters:[function(a){f=a.bindable,g=a.customElement}],execute:function(){a("PatientCount",(h=g("patient-count"),m=h((j=function(){function a(){d(this,a),c(this,"result",k,this),c(this,"showBreakdown",l,this)}return a.prototype.attached=function(){console.log(this.result)},a}(),k=e(j.prototype,"result",[f],{enumerable:!0,initializer:null}),l=e(j.prototype,"showBreakdown",[f],{enumerable:!0,initializer:null}),i=j))||i)),a("PatientCount",m)}}}),System.register("resources/index.js",[],function(a,b){"use strict";function c(a){var b="converters",c=["box-style.converter","count-value-converter","datetime.value.converter","result-style.converter","result-value.converter"];a.globalResources.apply(a,c.map(function(a){return"./"+b+"/"+a}));var d="custom",e=["error/error","breakdown/breakdown","node-result/node-result","node-status/node-status"];a.globalResources.apply(a,e.map(function(a){return"./"+d+"/"+a}))}return a("configure",c),{setters:[],execute:function(){}}}),System.register("services/queries.model.js",["aurelia-event-aggregator","repository/qep.repository","./shrine.messages"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g,h,i;return{setters:[function(a){d=a.EventAggregator},function(a){e=a.QEPRepository},function(a){f=a.notifications}],execute:function(){a("QueriesModel",(h=g=function b(a,d,e){var f=this;c(this,b);var g=d,h=40,i=0,j=0,k=null;b.prototype.load=function(){return g.fetchPreviousQueries(f.maxQueriesPerFetch()+f.loadedCount()).then(function(a){return j=a.rowCount,i=a.queryResults.length,a})["catch"](function(a){return console.log(a)}).then(l).then(function(b){k=b,a.publish(e.shrine.queriesReceived,k)})},b.prototype.totalQueries=function(){return j},b.prototype.loadedCount=function(){return i},b.prototype.maxQueriesPerFetch=function(){return h},b.prototype.moreToLoad=function(){return i1&&void 0!==arguments[1]?arguments[1]:6;return new Promise(function(b,c){for(var d=[],e=6,f=a.adapters,g=f.length,h=a.queryResults,i=0;i"})}(),System.register("services/container.js",["ramda"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f;return{setters:[function(a){d=a}],execute:function(){e=function(){function a(a,b){for(var c=0;c1?f-1:0),h=1;h

If you have questions about your query results or this SHRINE network, contact the Data Steward at your site.

'})}(),System.register("views/mailto/mailto.service.js",["repository/qep.repository"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g;return{setters:[function(a){d=a.QEPRepository}],execute:function(){a("MailToService",(f=e=function(){function a(b){c(this,a),this.repository=b}return a.prototype.fetchStewardEmail=function(){return this.repository.fetchStewardEmail()},a}(),e.inject=[d],g=f)),a("MailToService",g)}}}),System.register("views/mailto/mailto.config.js",[],function(a,b){"use strict";var c;return{setters:[],execute:function(){a("MailConfig",c={mailto:"mailto:",subject:encodeURIComponent("Question from a SHRINE User"),body:encodeURIComponent("Please enter the suggested information and your question. Your data steward will reply to this email.\n \n\n***Never send patient information, passwords, or other sensitive information by email****\n \nName:\n \nTitle:\n \nUser name (to log into SHRINE):\n \nTelephone Number (optional):\n \nPreferred email address (optional):\n \n\nQuestion or Comment:")}),a("MailConfig",c)}}}),System.register("views/mailto/mailto.js",["views/mailto/mailto.service","views/mailto/mailto.config"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g,h;return{setters:[function(a){d=a.MailToService},function(a){e=a.MailConfig}],execute:function(){a("MailTo",(g=f=function(){function a(b,d){c(this,a),this.service=b,this.config=d}return a.prototype.openEmail=function(){var a=this;this.service.fetchStewardEmail().then(function(b){window.top.location="mailto:"+b+"?subject="+a.config.subject+"&body="+a.config.body})},a}(),f.inject=[d,e],h=g)),a("MailTo",h)}}}),function(){var a=System.amdDefine;a("views/query-status/query-status.html!github:systemjs/plugin-text@0.0.8.js",[],function(){return''})}(),System.register("repository/qep.repository.js",["aurelia-fetch-client","fetch"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g,h;return{setters:[function(a){d=a.HttpClient},function(a){}],execute:function(){e=function(){function a(a,b){for(var c=0;c1&&void 0!==arguments[1]?arguments[1]:0;return this.http.fetch("qep/queryResults?limit="+a+"&skip="+b).then(function(a){return a.json()})["catch"](function(a){return a})},a.prototype.fetchNetworkId=function(a){return this.http.fetch("qep/networkId?queryName='"+a+"'").then(function(a){return a.json()})["catch"](function(a){return a})},a.prototype.fetchQuery=function(a){return this.http.fetch("qep/queryResult/"+a).then(function(a){return a.json()})["catch"](function(a){return a})},a.prototype.fetchStewardEmail=function(){return this.http.fetch("data?key=stewardEmail").then(function(a){return a.json()}).then(function(a){return a.indexOf('"')>0?a.split('"')[1]:a})["catch"](function(){return""})},e(a,[{key:"url",get:function(){var a=document.URL,b=":6443/shrine-metadata/";return a.substring(0,a.lastIndexOf(":"))+b}},{key:"auth",get:function(){var a=sessionStorage.getItem("shrine.auth");return sessionStorage.removeItem("shrine.auth"),a}}]),a}(),f.inject=[d],h=g)),a("QEPRepository",h)}}}),System.register("services/query-status.model.js",["aurelia-event-aggregator","repository/qep.repository","./shrine.messages"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g,h,i,j,k;return{setters:[function(a){d=a.EventAggregator},function(a){e=a.QEPRepository},function(a){f=a.commands,g=a.notifications}],execute:function(){h=Object.assign||function(a){for(var b=1;b0&&d.length===e});b({query:f,nodes:d,finishedCount:e})})},k=function(a){return d.fetchQuery(a).then(function(a){return j(a)})["catch"](function(a){return i(a)}).then(function(a){return g(a)})},l=function(){a.subscribe(f.shrine.fetchQuery,function(a){return k(a)})};l()},i.inject=[d,e,g],k=j)),a("QueryStatusModel",k)}}}),System.register("services/shrine.messages.js",[],function(a,b){"use strict";var c,d;return{setters:[],execute:function(){a("notifications",c={i2b2:{tabMax:"notification.from.i2b2.tab.max",tabMin:"notification.from.i2b2.tab.min",viewSelected:"notification.from.i2b2.tab.selected",historyRefreshed:"notification.from.i2b2.history.refreshed",queryStarted:"notification.from.i2b2.query.started",messageReceived:"notification.from.i2b2.message.received",networkIdReceived:"notification.from.i2b2.networkId.receieved"},shrine:{queriesReceived:"notification.from.shrine.queries.received",queryReceived:"notification.from.shrine.query.recieved"}}),a("notifications",c),a("commands",d={i2b2:{cloneQuery:"command.to.i2b2.clone.query",showError:"command.to.i2b2.show.error",flagQuery:"command.to.i2b2.flag.query",unflagQuery:"command.to.i2b2.unflag.query",renameQuery:"command.to.i2b2.rename.query"},shrine:{fetchQuery:"command.to.shrine.fetch.query"}}),a("commands",d)}}}),System.register("services/pub-sub.js",["aurelia-event-aggregator","./shrine.messages"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g,h,i;return{setters:[function(a){d=a.EventAggregator},function(a){e=a.commands,f=a.notifications}],execute:function(){a("PubSub",(h=g=function b(a,d,e){c(this,b),this.commands=d,this.notifications=e,this.publish=function(b,c){return a.publish(b,c)},this.subscribe=function(b,c){return a.subscribe(b,c)}},g.inject=[d,e,f],i=h)),a("PubSub",i)}}}),System.register("views/query-status/query-status.js",["services/query-status.model","services/pub-sub"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function d(a,b){if(!a)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return!b||"object"!=typeof b&&"function"!=typeof b?a:b}function e(a,b){if("function"!=typeof b&&null!==b)throw new TypeError("Super expression must either be null or a function, not "+typeof b);a.prototype=Object.create(b&&b.prototype,{constructor:{value:a,enumerable:!1,writable:!0,configurable:!0}}),b&&(Object.setPrototypeOf?Object.setPrototypeOf(a,b):a.__proto__=b)}var f,g,h,i,j,k;return{setters:[function(a){f=a.QueryStatusModel},function(a){g=a.PubSub}],execute:function(){h=Object.assign||function(a){for(var b=1;b1?f-1:0),i=1;i'})}(),System.register("views/query-viewer/context-menu/context-menu.js",["aurelia-framework","aurelia-event-aggregator","common/shrine.messages"],function(a,b){"use strict";function c(a,b,c,d){c&&Object.defineProperty(a,b,{enumerable:c.enumerable,configurable:c.configurable,writable:c.writable,value:c.initializer?c.initializer.call(d):void 0})}function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b,c,d,e){var f={};return Object.keys(d).forEach(function(a){f[a]=d[a]}),f.enumerable=!!f.enumerable,f.configurable=!!f.configurable,("value"in f||f.initializer)&&(f.writable=!0),f=c.slice().reverse().reduce(function(c,d){return d(a,b,c)||c},f),e&&void 0!==f.initializer&&(f.value=f.initializer?f.initializer.call(e):void 0,f.initializer=void 0),void 0===f.initializer&&(Object.defineProperty(a,b,f),f=null),f}var f,g,h,i,j,k,l,m,n;return{setters:[function(a){f=a.bindable},function(a){g=a.EventAggregator},function(a){h=a.commands}],execute:function(){a("ContextMenu",(l=k=function b(a,c){var e=this;d(this,b),m.call(this),b.prototype.cloneQuery=function(b){a.publish(c.i2b2.cloneQuery,b),e.context["class"]="hide"},b.prototype.renameQuery=function(b){a.publish(c.i2b2.renameQuery,b),e.context["class"]="hide"},b.prototype.flagQuery=function(b){a.publish(c.i2b2.flagQuery,b),e.context["class"]="hide"},b.prototype.unflagQuery=function(b){a.publish(c.i2b2.unflagQuery,b),e.context["class"]="hide"}},k.inject=[g,h],m=function(){c(this,"context",j,this)},i=l,j=e(i.prototype,"context",[f],{enumerable:!0,initializer:null}),n=i)),a("ContextMenu",n)}}}),System.register("views/query-viewer/date.converter.js",["moment"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e;return{setters:[function(a){d=a["default"]}],execute:function(){a("DateValueConverter",e=function(){function a(){c(this,a)}return a.prototype.toView=function(a){return d(a).format("MM/DD/YYYY")},a}()),a("DateValueConverter",e)}}}),function(){var a=System.amdDefine;a("views/query-viewer/loading-bar/loading-bar.html!github:systemjs/plugin-text@0.0.8.js",[],function(){return''})}(),System.register("views/query-viewer/loading-bar/loading-bar.js",["aurelia-framework"],function(a,b){"use strict";function c(a,b,c,d){c&&Object.defineProperty(a,b,{enumerable:c.enumerable,configurable:c.configurable,writable:c.writable,value:c.initializer?c.initializer.call(d):void 0})}function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b,c,d,e){var f={};return Object.keys(d).forEach(function(a){f[a]=d[a]}),f.enumerable=!!f.enumerable,f.configurable=!!f.configurable,("value"in f||f.initializer)&&(f.writable=!0),f=c.slice().reverse().reduce(function(c,d){return d(a,b,c)||c},f),e&&void 0!==f.initializer&&(f.value=f.initializer?f.initializer.call(e):void 0,f.initializer=void 0),void 0===f.initializer&&(Object.defineProperty(a,b,f),f=null),f}var f,g,h,i;return{setters:[function(a){f=a.bindable}],execute:function(){a("LoadingBar",(g=function b(){d(this,b),c(this,"status",h,this)},h=e(g.prototype,"status",[f],{enumerable:!0,initializer:null}),i=g)),a("LoadingBar",i)}}}),function(){var a=System.amdDefine;a("views/query-viewer/loading-bar/row-loader.html!github:systemjs/plugin-text@0.0.8.js",[],function(){return""})}(),function(){var a=System.amdDefine;a("views/query-viewer/paginator/paginator.html!github:systemjs/plugin-text@0.0.8.js",[],function(){return''})}(),System.register("views/query-viewer/paginator/paginator.js",["aurelia-framework"],function(a,b){"use strict";function c(a,b,c,d){c&&Object.defineProperty(a,b,{enumerable:c.enumerable,configurable:c.configurable,writable:c.writable,value:c.initializer?c.initializer.call(d):void 0})}function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b,c,d,e){var f={};return Object.keys(d).forEach(function(a){f[a]=d[a]}),f.enumerable=!!f.enumerable,f.configurable=!!f.configurable,("value"in f||f.initializer)&&(f.writable=!0),f=c.slice().reverse().reduce(function(c,d){return d(a,b,c)||c},f),e&&void 0!==f.initializer&&(f.value=f.initializer?f.initializer.call(e):void 0,f.initializer=void 0),void 0===f.initializer&&(Object.defineProperty(a,b,f),f=null),f}var f,g,h,i,j,k,l;return{setters:[function(a){f=a.bindable}],execute:function(){g=function(){function a(a,b){for(var c=0;cb?b:a,this.element.dispatchEvent(new CustomEvent("paginator-click",{detail:{index:this.index},bubbles:!0,cancelable:!0}))}}]),a}(),j.inject=[Element],h=k,i=e(h.prototype,"pages",[f],{enumerable:!0,initializer:null}),l=h)),a("Paginator",l)}}}),function(){var a=System.amdDefine;a("views/query-viewer/query-status/query-status.html!github:systemjs/plugin-text@0.0.8.js",[],function(){return''})}(),System.register("views/query-viewer/query-status/query-status.js",["aurelia-framework","ramda"],function(a,b){"use strict";function c(a,b,c,d){c&&Object.defineProperty(a,b,{enumerable:c.enumerable,configurable:c.configurable,writable:c.writable,value:c.initializer?c.initializer.call(d):void 0})}function d(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}function e(a,b,c,d,e){var f={};return Object.keys(d).forEach(function(a){f[a]=d[a]}),f.enumerable=!!f.enumerable,f.configurable=!!f.configurable,("value"in f||f.initializer)&&(f.writable=!0),f=c.slice().reverse().reduce(function(c,d){return d(a,b,c)||c},f),e&&void 0!==f.initializer&&(f.value=f.initializer?f.initializer.call(e):void 0,f.initializer=void 0),void 0===f.initializer&&(Object.defineProperty(a,b,f),f=null),f}var f,g,h,i,j,k,l,m;return{setters:[function(a){f=a.bindable},function(a){g=a}],execute:function(){a("QueryStatus",(k=j=function(){function a(b){d(this,a),l.call(this),this.floor=b.floor}return a.prototype.attached=function(){var a=75,b=g.curry(function(a,b,c,d){return a(d/c*b)})(this.floor,a,this.status.total),c=this.status,d=b(c.finished),e=b(c.error);this.readyOffset=100-d,this.errorOffset=this.readyOffset-e,this.finished=c.finished,this.error=c.error,this.pending=c.total-(c.finished+c.error),this.total=c.total},a}(),j.inject=[Math],l=function(){c(this,"status",i,this)},h=k,i=e(h.prototype,"status",[f],{enumerable:!0,initializer:null}),m=h)),a("QueryStatus",m)}}}),System.register("views/query-viewer/query-viewer.config.js",[],function(a,b){"use strict";var c;return{setters:[],execute:function(){a("QueryViewerConfig",c={maxNodesPerScreen:10,maxQueriesPerScroll:40}),a("QueryViewerConfig",c)}}}),function(){var a=System.amdDefine;a("views/query-viewer/query-viewer.html!github:systemjs/plugin-text@0.0.8.js",[],function(){return''})}(),System.register("views/query-viewer/scroll.service.js",["ramda","common/container"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g,h;return{setters:[function(a){d=a},function(a){e=a.Container}],execute:function(){a("ScrollService",(g=f=function b(){c(this,b)},f.either=d.curry(function(a,b,c){return e.of(d.prop(a,c)||b)}),f.target=function(a,b){return h.either("target",b,b).chain(function(b){return h.either(a,0,b)})},f.clientHeight=function(a){return h.target("clientHeight",a)},f.scrollHeight=function(a){return h.target("scrollHeight",a)},f.scrollTop=function(a){return h.target("scrollTop",a)},f.userScroll=function(a){return h.clientHeight(a).map(function(b){return b+h.scrollTop(a).value})},f.scrollRatio=function(a){return h.userScroll(a).map(function(b){return b/h.scrollHeight(a).value})},h=g)),a("ScrollService",h)}}}),System.register("views/query-viewer/query-viewer.js",["aurelia-event-aggregator","common/queries.model","./scroll.service","common/shrine.messages"],function(a,b){"use strict";function c(a,b){if(!(a instanceof b))throw new TypeError("Cannot call a class as a function")}var d,e,f,g,h,i,j,k;return{setters:[function(a){d=a.EventAggregator},function(a){e=a.QueriesModel},function(a){f=a.ScrollService},function(a){g=a.notifications,h=a.commands}],execute:function(){a("QueryViewer",(j=i=function(){function a(b,d,e,g){var h=this;c(this,a),a.prototype.init=function(){h.pageIndex=0,h.showLoader=!0,h.vertStyle="v-min",h.runningQueryName=null},this.init(),a.prototype.setToPage=function(a){h.pageIndex=a,h.page=h.pages[h.pageIndex]};var i=function(a){return 1===f.scrollRatio(a).value};a.prototype.onScroll=function(a){i(a)&&!h.loadingInfiniteScroll&&d.moreToLoad()&&(h.loadingInfiniteScroll=!0,d.load())},a.prototype.publishError=function(a,c){return a.stopPropagation(),b.publish(g.i2b2.showError,c)},a.prototype.getContext=function(a,b,c){return{x:a.pageX,y:a.pageY,"class":"show",query:b,isCount:void 0!==c,count:c}},b.subscribe(e.i2b2.historyRefreshed,function(){return d.load()}),b.subscribe(e.i2b2.tabMax,function(){return h.vertStyle="v-full"}),b.subscribe(e.i2b2.tabMin,function(){return h.vertStyle="v-min"}),b.subscribe(e.i2b2.queryStarted,function(a){return h.runningQueryName=a}),b.subscribe(e.shrine.queriesReceived,function(a){h.pages=a,h.page=h.pages[0],h.runningQueryName=null,h.loadingInfiniteScroll=!1,h.showLoader=!1})}return a.prototype.updatePage=function(a){a.stopPropagation();var b=event.detail.index;this.page=this.pages[b]},a}(),i.inject=[d,e,g,h],k=j)),a("QueryViewer",k)}}}); \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/src-new/.eslintrc.json b/shrine-webclient/src/main/js/client/js-shrine/src-new/.eslintrc.json new file mode 100644 index 000000000..8dc9d22c1 --- /dev/null +++ b/shrine-webclient/src/main/js/client/js-shrine/src-new/.eslintrc.json @@ -0,0 +1,5 @@ +{ + "rules": { + "no-alert": 0 + } +} diff --git a/shrine-webclient/src/main/js/client/js-shrine/src/main.js b/shrine-webclient/src/main/js/client/js-shrine/src-new/main.js similarity index 100% copy from shrine-webclient/src/main/js/client/js-shrine/src/main.js copy to shrine-webclient/src/main/js/client/js-shrine/src-new/main.js diff --git a/shrine-webclient/src/main/js/client/js-shrine/src/shell.html b/shrine-webclient/src/main/js/client/js-shrine/src-new/shell.html similarity index 100% copy from shrine-webclient/src/main/js/client/js-shrine/src/shell.html copy to shrine-webclient/src/main/js/client/js-shrine/src-new/shell.html diff --git a/shrine-webclient/src/main/js/client/js-shrine/src/shell.js b/shrine-webclient/src/main/js/client/js-shrine/src-new/shell.js similarity index 100% copy from shrine-webclient/src/main/js/client/js-shrine/src/shell.js copy to shrine-webclient/src/main/js/client/js-shrine/src-new/shell.js diff --git a/shrine-webclient/src/main/js/client/js-shrine/src/common/i2b2.pub-sub.js b/shrine-webclient/src/main/js/client/js-shrine/src/common/i2b2.pub-sub.js deleted file mode 100644 index 61095d104..000000000 --- a/shrine-webclient/src/main/js/client/js-shrine/src/common/i2b2.pub-sub.js +++ /dev/null @@ -1,42 +0,0 @@ - -import {EventAggregator} from 'aurelia-event-aggregator' -import {I2B2Service } from './i2b2.service'; -import {notifications, commands} from './shrine.messages'; -export class I2B2PubSub { - static inject = [EventAggregator, I2B2Service, notifications, commands]; - constructor(evtAgg, i2b2Svc, notifications, commands) { - this.listen = () => { - i2b2Svc.onResize((a, b) => b.find(e => e.action === 'ADD') ? - notifyTabMax() : notifyTabMin()); - i2b2Svc.onHistory(() => notifyHistoryRefreshed()); - i2b2Svc.onQuery((e, d) => notifyQueryStarted(d[0].name)); - i2b2Svc.onViewSelected(e => notifyViewSelected(e.data)); - - evtAgg.subscribe(commands.i2b2.cloneQuery, commandCloneQuery); - evtAgg.subscribe(commands.i2b2.showError, commandShowError); - evtAgg.subscribe(commands.i2b2.renameQuery, commandRenameQuery); - evtAgg.subscribe(commands.i2b2.flagQuery, commandFlagQuery); - evtAgg.subscribe(commands.i2b2.unflagQuery, commandUnflagQuery); - } - - // -- notifications-- // - const notifyTabMax = () => evtAgg.publish(notifications.i2b2.tabMax); - const notifyTabMin = () => evtAgg.publish(notifications.i2b2.tabMin); - const notifyHistoryRefreshed = () => evtAgg.publish(notifications.i2b2.historyRefreshed); - const notifyQueryStarted = n => evtAgg.publish(notifications.i2b2.queryStarted, n); - const notifyViewSelected = v => evtAgg.publish(notifications.i2b2.viewSelected, v); - - - // -- commands --// - const commandCloneQuery = d => i2b2Svc.loadQuery(d); - const commandShowError = d => { - console.log(`${commands.i2b2.showError}: ${d}`); - i2b2Svc.errorDetail(d); - } - const commandRenameQuery = d => i2b2Svc.renameQuery(d); - const commandFlagQuery = d => i2b2Svc.flagQuery(d); - const commandUnflagQuery = d => i2b2Svc.unflagQuery(d); - } -} - - diff --git a/shrine-webclient/src/main/js/client/js-shrine/src/common/publisher.js b/shrine-webclient/src/main/js/client/js-shrine/src/common/publisher.js deleted file mode 100644 index b7d3171bd..000000000 --- a/shrine-webclient/src/main/js/client/js-shrine/src/common/publisher.js +++ /dev/null @@ -1,10 +0,0 @@ -//https://ilikekillnerds.com/2016/11/injection-inheritance-aurelia/ -import {EventAggregator} from 'aurelia-event-aggregator'; -import {commands} from 'common/shrine.messages'; -export class Publisher{ - static inject = [EventAggregator, commands]; - constructor(evtAgg, commands){ - this.commands = commands; - this.publish = (c,d) => evtAgg.publish(c,d); - } -} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/src/main.js b/shrine-webclient/src/main/js/client/js-shrine/src/main.js index dfcb99739..1588d5376 100644 --- a/shrine-webclient/src/main/js/client/js-shrine/src/main.js +++ b/shrine-webclient/src/main/js/client/js-shrine/src/main.js @@ -1,9 +1,11 @@ export function configure(aurelia) { aurelia.use .standardConfiguration() - .developmentLogging(); + .developmentLogging() + .feature('resources') + .feature('views'); aurelia.start() .then(() => aurelia.setRoot('shell')); } diff --git a/shrine-webclient/src/main/js/client/js-shrine/src/repository/qep.repository.js b/shrine-webclient/src/main/js/client/js-shrine/src/repository/qep.repository.js index 843bf94d7..fd5a309ce 100644 --- a/shrine-webclient/src/main/js/client/js-shrine/src/repository/qep.repository.js +++ b/shrine-webclient/src/main/js/client/js-shrine/src/repository/qep.repository.js @@ -1,61 +1,60 @@ import { HttpClient } from 'aurelia-fetch-client'; import 'fetch'; export class QEPRepository { static inject = [HttpClient] constructor(http) { http.configure(config => { config .useStandardConfiguration() .withBaseUrl(this.url) .withDefaults({ headers: { 'Authorization': 'Basic ' + this.auth } }); }); this.http = http; } get url() { const url = document.URL; const service = ':6443/shrine-metadata/'; return url.substring(0, url.lastIndexOf(':')) + service; } get auth() { const auth = sessionStorage.getItem('shrine.auth'); sessionStorage.removeItem('shrine.auth'); return auth; } //https://shrine-qa2.catalyst:6443/shrine-metadata/qep/queryResults?skip=2&limit=3 fetchPreviousQueries(limit, skip = 0) { return this.http.fetch(`qep/queryResults?limit=${limit}&skip=${skip}`) .then(response => response.json()) .catch(error => error); } fetchNetworkId(queryName) { return this.http.fetch(`qep/networkId?queryName='${queryName}'`) .then(response => response.json()) .catch(error => error); } fetchQuery(networkId) {// - return this.http.fetch(`qep/queryResults?networkId=${networkId}`) + return this.http.fetch(`qep/queryResult/${networkId}`) .then(response => response.json()) .catch(error => error); } fetchStewardEmail() { return this.http.fetch('data?key=stewardEmail') .then(response => response.json()) .then(address => { return (address.indexOf('\"') > 0) ? address.split('\"')[1] : address; }) .catch(() => ''); } } - diff --git a/shrine-webclient/src/main/js/client/js-shrine/src/views/query-viewer/box-style.converter.js b/shrine-webclient/src/main/js/client/js-shrine/src/resources/converters/box-style.converter.js similarity index 100% rename from shrine-webclient/src/main/js/client/js-shrine/src/views/query-viewer/box-style.converter.js rename to shrine-webclient/src/main/js/client/js-shrine/src/resources/converters/box-style.converter.js diff --git a/shrine-webclient/src/main/js/client/js-shrine/src/common/converters/count-value-converter.js b/shrine-webclient/src/main/js/client/js-shrine/src/resources/converters/count-value-converter.js similarity index 100% rename from shrine-webclient/src/main/js/client/js-shrine/src/common/converters/count-value-converter.js rename to shrine-webclient/src/main/js/client/js-shrine/src/resources/converters/count-value-converter.js diff --git a/shrine-webclient/src/main/js/client/js-shrine/src/common/converters/datetime.value.converter.js b/shrine-webclient/src/main/js/client/js-shrine/src/resources/converters/datetime.value.converter.js similarity index 100% rename from shrine-webclient/src/main/js/client/js-shrine/src/common/converters/datetime.value.converter.js rename to shrine-webclient/src/main/js/client/js-shrine/src/resources/converters/datetime.value.converter.js diff --git a/shrine-webclient/src/main/js/client/js-shrine/src/views/query-viewer/result-style.converter.js b/shrine-webclient/src/main/js/client/js-shrine/src/resources/converters/result-style.converter.js similarity index 100% rename from shrine-webclient/src/main/js/client/js-shrine/src/views/query-viewer/result-style.converter.js rename to shrine-webclient/src/main/js/client/js-shrine/src/resources/converters/result-style.converter.js diff --git a/shrine-webclient/src/main/js/client/js-shrine/src/views/query-viewer/result-value.converter.js b/shrine-webclient/src/main/js/client/js-shrine/src/resources/converters/result-value.converter.js similarity index 100% rename from shrine-webclient/src/main/js/client/js-shrine/src/views/query-viewer/result-value.converter.js rename to shrine-webclient/src/main/js/client/js-shrine/src/resources/converters/result-value.converter.js diff --git a/shrine-webclient/src/main/js/client/js-shrine/src/resources/custom/breakdown/breakdown.html b/shrine-webclient/src/main/js/client/js-shrine/src/resources/custom/breakdown/breakdown.html new file mode 100644 index 000000000..8bf719545 --- /dev/null +++ b/shrine-webclient/src/main/js/client/js-shrine/src/resources/custom/breakdown/breakdown.html @@ -0,0 +1,9 @@ + \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/src/resources/custom/breakdown/breakdown.js b/shrine-webclient/src/main/js/client/js-shrine/src/resources/custom/breakdown/breakdown.js new file mode 100644 index 000000000..620fa9665 --- /dev/null +++ b/shrine-webclient/src/main/js/client/js-shrine/src/resources/custom/breakdown/breakdown.js @@ -0,0 +1,5 @@ +import {bindable, customElement} from 'aurelia-framework'; +@customElement('breakdown') +export class Breakdown{ + @bindable data; +} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/src/views/query-status/node-result/result-types/error/error.html b/shrine-webclient/src/main/js/client/js-shrine/src/resources/custom/error/error.html similarity index 97% rename from shrine-webclient/src/main/js/client/js-shrine/src/views/query-status/node-result/result-types/error/error.html rename to shrine-webclient/src/main/js/client/js-shrine/src/resources/custom/error/error.html index 4cb8ae15b..89226208a 100644 --- a/shrine-webclient/src/main/js/client/js-shrine/src/views/query-status/node-result/result-types/error/error.html +++ b/shrine-webclient/src/main/js/client/js-shrine/src/resources/custom/error/error.html @@ -1,13 +1,13 @@ \ No newline at end of file + diff --git a/shrine-webclient/src/main/js/client/js-shrine/src/resources/custom/error/error.js b/shrine-webclient/src/main/js/client/js-shrine/src/resources/custom/error/error.js new file mode 100644 index 000000000..218d684b7 --- /dev/null +++ b/shrine-webclient/src/main/js/client/js-shrine/src/resources/custom/error/error.js @@ -0,0 +1,9 @@ +import {inject, bindable, customElement} from 'aurelia-framework'; +import {PubSub} from 'services/pub-sub'; +@customElement('error') +export class Error extends PubSub{ + @bindable result; + constructor(...rest) { + super(...rest); + } +} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/src/views/query-status/node-result/node-result.html b/shrine-webclient/src/main/js/client/js-shrine/src/resources/custom/node-result/node-result.html similarity index 81% rename from shrine-webclient/src/main/js/client/js-shrine/src/views/query-status/node-result/node-result.html rename to shrine-webclient/src/main/js/client/js-shrine/src/resources/custom/node-result/node-result.html index da213df48..a8de39b75 100644 --- a/shrine-webclient/src/main/js/client/js-shrine/src/views/query-status/node-result/node-result.html +++ b/shrine-webclient/src/main/js/client/js-shrine/src/resources/custom/node-result/node-result.html @@ -1,16 +1,14 @@ \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/src/resources/custom/node-result/node-result.js b/shrine-webclient/src/main/js/client/js-shrine/src/resources/custom/node-result/node-result.js new file mode 100644 index 000000000..ca276010b --- /dev/null +++ b/shrine-webclient/src/main/js/client/js-shrine/src/resources/custom/node-result/node-result.js @@ -0,0 +1,6 @@ +import {customElement, bindable} from 'aurelia-framework'; +@customElement('node-result') +export class NodeResult{ + @bindable result; + @bindable queryName; +} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/src/views/query-status/node-status/node-status.html b/shrine-webclient/src/main/js/client/js-shrine/src/resources/custom/node-status/node-status.html similarity index 61% rename from shrine-webclient/src/main/js/client/js-shrine/src/views/query-status/node-status/node-status.html rename to shrine-webclient/src/main/js/client/js-shrine/src/resources/custom/node-status/node-status.html index b98e31410..9529ec714 100644 --- a/shrine-webclient/src/main/js/client/js-shrine/src/views/query-status/node-status/node-status.html +++ b/shrine-webclient/src/main/js/client/js-shrine/src/resources/custom/node-status/node-status.html @@ -1,22 +1,26 @@ \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/src/resources/custom/node-status/node-status.js b/shrine-webclient/src/main/js/client/js-shrine/src/resources/custom/node-status/node-status.js new file mode 100644 index 000000000..ca94ebd19 --- /dev/null +++ b/shrine-webclient/src/main/js/client/js-shrine/src/resources/custom/node-status/node-status.js @@ -0,0 +1,9 @@ +import {customElement, bindable} from 'aurelia-framework'; +import {PubSub} from 'services/pub-sub'; +@customElement('node-status') +export class NodeStatus extends PubSub{ + @bindable result + constructor(...rest) { + super(...rest); + } +} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/src/resources/custom/node-status/temp.html b/shrine-webclient/src/main/js/client/js-shrine/src/resources/custom/node-status/temp.html new file mode 100644 index 000000000..8db7aeebc --- /dev/null +++ b/shrine-webclient/src/main/js/client/js-shrine/src/resources/custom/node-status/temp.html @@ -0,0 +1,52 @@ +
+
+ ${result.adapterNode} +
+
+ +   ${result.statusMessage} + + +   + + ERROR: ${result.statusDescription} + + + +   ${result.statusMessage} + +
+ +
+ +   ${result.count | count} + +
+
+ + +
Patient Count: + - ${result.count | count} +
+
+ + + + +  - + + + + + ERROR: ${result.statusDescription} + + + + + + + +  - ${result.statusMessage} + \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/src/views/query-status/node-result/result-types/patient-count/patient-count.html b/shrine-webclient/src/main/js/client/js-shrine/src/resources/custom/patient-count/patient-count.html similarity index 62% rename from shrine-webclient/src/main/js/client/js-shrine/src/views/query-status/node-result/result-types/patient-count/patient-count.html rename to shrine-webclient/src/main/js/client/js-shrine/src/resources/custom/patient-count/patient-count.html index 5dcd5d738..6043438eb 100644 --- a/shrine-webclient/src/main/js/client/js-shrine/src/views/query-status/node-result/result-types/patient-count/patient-count.html +++ b/shrine-webclient/src/main/js/client/js-shrine/src/resources/custom/patient-count/patient-count.html @@ -1,10 +1,8 @@ \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/src/resources/custom/patient-count/patient-count.js b/shrine-webclient/src/main/js/client/js-shrine/src/resources/custom/patient-count/patient-count.js new file mode 100644 index 000000000..faf736796 --- /dev/null +++ b/shrine-webclient/src/main/js/client/js-shrine/src/resources/custom/patient-count/patient-count.js @@ -0,0 +1,9 @@ +import {bindable, customElement} from 'aurelia-framework'; +@customElement('patient-count') +export class PatientCount{ + @bindable result; + @bindable showBreakdown; + attached() { + console.log(this.result); + } +} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/src/resources/index.js b/shrine-webclient/src/main/js/client/js-shrine/src/resources/index.js new file mode 100644 index 000000000..b4adad9b4 --- /dev/null +++ b/shrine-webclient/src/main/js/client/js-shrine/src/resources/index.js @@ -0,0 +1,21 @@ +export function configure(aurelia) { + + const converterPrefix = 'converters'; + const converters = [ + 'box-style.converter', + 'count-value-converter', + 'datetime.value.converter', + 'result-style.converter', + 'result-value.converter' + ]; + aurelia.globalResources(...converters.map(c => `./${converterPrefix}/${c}`)); + + const customPrefix = 'custom'; + const custom = [ + 'error/error', + 'breakdown/breakdown', + 'node-result/node-result', + 'node-status/node-status' + ]; + aurelia.globalResources(...custom.map(c => `./${customPrefix}/${c}`)); +} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/src/common/container.js b/shrine-webclient/src/main/js/client/js-shrine/src/services/container.js similarity index 100% rename from shrine-webclient/src/main/js/client/js-shrine/src/common/container.js rename to shrine-webclient/src/main/js/client/js-shrine/src/services/container.js diff --git a/shrine-webclient/src/main/js/client/js-shrine/src/services/i2b2.pub-sub.js b/shrine-webclient/src/main/js/client/js-shrine/src/services/i2b2.pub-sub.js new file mode 100644 index 000000000..1b354d7b7 --- /dev/null +++ b/shrine-webclient/src/main/js/client/js-shrine/src/services/i2b2.pub-sub.js @@ -0,0 +1,27 @@ +import {PubSub} from './pub-sub'; +import {I2B2Service } from './i2b2.service'; +export class I2B2PubSub extends PubSub{ + static inject = [I2B2Service]; + constructor(i2b2Svc, ...rest) { + super(...rest) + + this.listen = () => { + i2b2Svc.onResize((a, b) => b.find(e => e.action === 'ADD') ? + () => this.publish(this.notifications.i2b2.tabMax) + : () => this.publish(this.notifications.i2b2.tabMin)); + i2b2Svc.onHistory(() => this.publish(this.notifications.i2b2.historyRefreshed)); + i2b2Svc.onQuery((e, d) => this.publish(this.notifications.i2b2.queryStarted, d[0].name)); + i2b2Svc.onNetworkId((e, d) => this.publish(this.notifications.i2b2.networkIdReceived, d[0].networkId)); + i2b2Svc.onViewSelected(e => this.publish(this.notifications.i2b2.viewSelected, e.data)); + + + this.subscribe(this.commands.i2b2.cloneQuery, d => i2b2Svc.loadQuery(d)); + this.subscribe(this.commands.i2b2.showError, d => i2b2Svc.errorDetail(d)); + this.subscribe(this.commands.i2b2.renameQuery, d => i2b2Svc.renameQuery(d)); + this.subscribe(this.commands.i2b2.flagQuery, d => i2b2Svc.flagQuery(d)); + this.subscribe(this.commands.i2b2.unflagQuery, d => i2b2Svc.unflagQuery(d)); + } + } +} + + diff --git a/shrine-webclient/src/main/js/client/js-shrine/src/common/i2b2.service.js b/shrine-webclient/src/main/js/client/js-shrine/src/services/i2b2.service.js similarity index 92% rename from shrine-webclient/src/main/js/client/js-shrine/src/common/i2b2.service.js rename to shrine-webclient/src/main/js/client/js-shrine/src/services/i2b2.service.js index 18ceee9bb..d27b43742 100644 --- a/shrine-webclient/src/main/js/client/js-shrine/src/common/i2b2.service.js +++ b/shrine-webclient/src/main/js/client/js-shrine/src/services/i2b2.service.js @@ -1,32 +1,33 @@ import * as _ from 'ramda'; import {Container} from './container'; export class I2B2Service { static inject = [window]; constructor(context) { //private const ctx = context? Container.of(context) : Container.of(null); const prop = _.curry((m, c) => c.value? Container.of(_.prop(m, c.value)) : Container.of(null)); const i2b2 = _.compose(prop('i2b2'), prop('window'), prop('parent')); const crc = _.compose(prop('CRC'), i2b2); const events = _.compose(prop('events'), i2b2); const shrine = _.compose(prop('SHRINE'), i2b2); // -- @todo: makes assumption that i2b2 object conforms to predictable structure? -- // I2B2Service.prototype.onResize = f => events(ctx).map((v) => v.changedZoomWindows.subscribe(f)); I2B2Service.prototype.onHistory = f => crc(ctx).map((v) => v.ctrlr.history.events.onDataUpdate.subscribe(f)); - I2B2Service.prototype.onQuery = f => events(ctx).map((v) => v.afterQueryInit.subscribe(f)); + I2B2Service.prototype.onQuery = f => events(ctx).map((v) => v.afterQueryInit.subscribe(f)); + I2B2Service.prototype.onNetworkId = f => events(ctx).map(v => v.networkIdReceived.subscribe(f)); I2B2Service.prototype.onViewSelected = f => prop('addEventListener', ctx).value? Container.of(ctx.value.addEventListener('message', f, false)) : Container.of(null); // commands I2B2Service.prototype.loadHistory = () => crc(ctx).map((v) => v.view.history.doRefreshAll()); I2B2Service.prototype.loadQuery = id => crc(ctx).map((v) => v.ctrlr.QT.doQueryLoad(id)); I2B2Service.prototype.errorDetail = d => shrine(ctx).map((v) => v.plugin.errorDetail(d)); I2B2Service.prototype.renameQuery = id => crc(ctx).map(v => v.ctrlr.history.queryRename(id, false)); I2B2Service.prototype.flagQuery = id => crc(ctx).map(v => v.ctrlr.history.Flag({ queryId: id, message: ''})); I2B2Service.prototype.unflagQuery = id => crc(ctx).map(v => v.ctrlr.history.Unflag({ queryId: id})); } } diff --git a/shrine-webclient/src/main/js/client/js-shrine/src/services/pub-sub.js b/shrine-webclient/src/main/js/client/js-shrine/src/services/pub-sub.js new file mode 100644 index 000000000..ebb7d5840 --- /dev/null +++ b/shrine-webclient/src/main/js/client/js-shrine/src/services/pub-sub.js @@ -0,0 +1,12 @@ +//https://ilikekillnerds.com/2016/11/injection-inheritance-aurelia/ +import {EventAggregator} from 'aurelia-event-aggregator'; +import {commands, notifications} from './shrine.messages'; +export class PubSub{ + static inject = [EventAggregator, commands, notifications]; + constructor(evtAgg, commands, notifications){ + this.commands = commands; + this.notifications = notifications; + this.publish = (c,d) => evtAgg.publish(c,d); + this.subscribe = (n, fn) => evtAgg.subscribe(n, fn); + } +} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/src/common/queries.model.js b/shrine-webclient/src/main/js/client/js-shrine/src/services/queries.model.js similarity index 100% rename from shrine-webclient/src/main/js/client/js-shrine/src/common/queries.model.js rename to shrine-webclient/src/main/js/client/js-shrine/src/services/queries.model.js diff --git a/shrine-webclient/src/main/js/client/js-shrine/src/common/query-status.model.js b/shrine-webclient/src/main/js/client/js-shrine/src/services/query-status.model.js similarity index 72% rename from shrine-webclient/src/main/js/client/js-shrine/src/common/query-status.model.js rename to shrine-webclient/src/main/js/client/js-shrine/src/services/query-status.model.js index 7c76b6d42..b77c84c77 100644 --- a/shrine-webclient/src/main/js/client/js-shrine/src/common/query-status.model.js +++ b/shrine-webclient/src/main/js/client/js-shrine/src/services/query-status.model.js @@ -1,39 +1,38 @@ -import { EventAggregator } from 'aurelia-event-aggregator'; -import { QEPRepository } from 'repository/qep.repository'; -import { commands, notifications } from './shrine.messages'; +import {EventAggregator} from 'aurelia-event-aggregator'; +import {QEPRepository} from 'repository/qep.repository'; +import {commands, notifications} from './shrine.messages'; export class QueryStatusModel { static inject = [EventAggregator, QEPRepository, notifications]; constructor(evtAgg, qep, notifications) { - const publishNetworkId = id => evtAgg.publish(notifications.shrine.networkIdReceived, id); + const publishNetworkId = id => evtAgg.publish(notifications.i2b2.networkIdReceived, id); const publishQuery = model => evtAgg.publish(notifications.shrine.queryReceived, model); const logError = error => console.log(`ERROR: ${error}`); const toModel = data => { return new Promise((resolve, reject) => { - const nodes = [...data.queryResults[0].adaptersToResults]; + const nodes = [...data.results]; const finishedCount = nodes.reduce((s, r) => ['FINISHED', 'ERROR'].indexOf(r.status) != -1? s + 1 : s, 0); - const query = {...data.queryResults[0].query, ...{complete: nodes.length === finishedCount}}; + const query = {...data.query, ...{complete: nodes.length > 0 && nodes.length === finishedCount}}; resolve({ query, nodes, finishedCount }); }); }; //subscribe to fetch network id for query. const loadNetworkId = (n) => qep.fetchNetworkId(n) .then(result => publishNetworkId(result)) .catch(error => logError(error)); const loadQuery = (id) => qep.fetchQuery(id) .then(result => toModel(result)) .catch(error => logError(error)) .then(model => publishQuery(model)); const init = () => { - evtAgg.subscribe(commands.shrine.fetchNetworkId, (n) => loadNetworkId(n)); evtAgg.subscribe(commands.shrine.fetchQuery, (id) => loadQuery(id)); } init(); } } \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/src/common/shrine.messages.js b/shrine-webclient/src/main/js/client/js-shrine/src/services/shrine.messages.js similarity index 82% rename from shrine-webclient/src/main/js/client/js-shrine/src/common/shrine.messages.js rename to shrine-webclient/src/main/js/client/js-shrine/src/services/shrine.messages.js index b7975d4de..e7c16a76f 100644 --- a/shrine-webclient/src/main/js/client/js-shrine/src/common/shrine.messages.js +++ b/shrine-webclient/src/main/js/client/js-shrine/src/services/shrine.messages.js @@ -1,31 +1,30 @@ export const notifications = { i2b2: { tabMax: 'notification.from.i2b2.tab.max', tabMin: 'notification.from.i2b2.tab.min', viewSelected: 'notification.from.i2b2.tab.selected', historyRefreshed: 'notification.from.i2b2.history.refreshed', queryStarted: 'notification.from.i2b2.query.started', - messageReceived: 'notification.from.i2b2.message.received' + messageReceived: 'notification.from.i2b2.message.received', + networkIdReceived: 'notification.from.i2b2.networkId.receieved', }, shrine: { queriesReceived: 'notification.from.shrine.queries.received', - networkIdReceived: 'notification.from.shrine.networkId.receieved', queryReceived: 'notification.from.shrine.query.recieved' } } export const commands = { i2b2: { cloneQuery: 'command.to.i2b2.clone.query', showError: 'command.to.i2b2.show.error', flagQuery: 'command.to.i2b2.flag.query', unflagQuery: 'command.to.i2b2.unflag.query', - renameQuery: 'command.to.i2b2.rename.query', + renameQuery: 'command.to.i2b2.rename.query' }, shrine: { - fetchNetworkId: 'command.to.shrine.fetch.networkId', fetchQuery: 'command.to.shrine.fetch.query' } } \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/src/shell.html b/shrine-webclient/src/main/js/client/js-shrine/src/shell.html index 829243396..bbf99d547 100644 --- a/shrine-webclient/src/main/js/client/js-shrine/src/shell.html +++ b/shrine-webclient/src/main/js/client/js-shrine/src/shell.html @@ -1,10 +1,5 @@ diff --git a/shrine-webclient/src/main/js/client/js-shrine/src/shell.js b/shrine-webclient/src/main/js/client/js-shrine/src/shell.js index 49a9a6f1a..08a8cb66b 100644 --- a/shrine-webclient/src/main/js/client/js-shrine/src/shell.js +++ b/shrine-webclient/src/main/js/client/js-shrine/src/shell.js @@ -1,14 +1,14 @@ -import {I2B2PubSub} from 'common/i2b2.pub-sub'; +import {I2B2PubSub} from 'services/i2b2.pub-sub'; export class Shell { static inject = [I2B2PubSub]; constructor(i2b2PubSub) { i2b2PubSub.listen(); } } diff --git a/shrine-webclient/src/main/js/client/js-shrine/src/views/index.js b/shrine-webclient/src/main/js/client/js-shrine/src/views/index.js new file mode 100644 index 000000000..40e402ff9 --- /dev/null +++ b/shrine-webclient/src/main/js/client/js-shrine/src/views/index.js @@ -0,0 +1,7 @@ +export function configure(aurelia) { + + const views = [ + 'views/query-status/query-status' + ]; + aurelia.globalResources(...views); +} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/src/views/query-status/node-result/node-result.js b/shrine-webclient/src/main/js/client/js-shrine/src/views/query-status/node-result/node-result.js deleted file mode 100644 index 93ce963ca..000000000 --- a/shrine-webclient/src/main/js/client/js-shrine/src/views/query-status/node-result/node-result.js +++ /dev/null @@ -1,6 +0,0 @@ -import {bindable} from 'aurelia-framework'; -//file:///Users/ben/Downloads/SHRINETEAM-46892567-020817-1500-358.pdf -export class NodeResult{ - @bindable result; - @bindable queryName; -} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/src/views/query-status/node-result/result-types/error/error.js b/shrine-webclient/src/main/js/client/js-shrine/src/views/query-status/node-result/result-types/error/error.js deleted file mode 100644 index efc276b11..000000000 --- a/shrine-webclient/src/main/js/client/js-shrine/src/views/query-status/node-result/result-types/error/error.js +++ /dev/null @@ -1,8 +0,0 @@ -import {inject, bindable} from 'aurelia-framework'; -import {Publisher} from 'common/publisher'; -export class Error extends Publisher{ - @bindable result; - constructor(...rest) { - super(...rest); - } -} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/src/views/query-status/node-result/result-types/patient-count/breakdown.html b/shrine-webclient/src/main/js/client/js-shrine/src/views/query-status/node-result/result-types/patient-count/breakdown.html deleted file mode 100644 index 81fdd5745..000000000 --- a/shrine-webclient/src/main/js/client/js-shrine/src/views/query-status/node-result/result-types/patient-count/breakdown.html +++ /dev/null @@ -1,46 +0,0 @@ - \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/src/views/query-status/node-result/result-types/patient-count/patient-count.js b/shrine-webclient/src/main/js/client/js-shrine/src/views/query-status/node-result/result-types/patient-count/patient-count.js deleted file mode 100644 index 079a3561f..000000000 --- a/shrine-webclient/src/main/js/client/js-shrine/src/views/query-status/node-result/result-types/patient-count/patient-count.js +++ /dev/null @@ -1,5 +0,0 @@ -import {bindable} from 'aurelia-framework'; -export class PatientCount{ - @bindable result; - @bindable showBreakdown; -} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/src/views/query-status/node-status/node-status.js b/shrine-webclient/src/main/js/client/js-shrine/src/views/query-status/node-status/node-status.js deleted file mode 100644 index 558daac9c..000000000 --- a/shrine-webclient/src/main/js/client/js-shrine/src/views/query-status/node-status/node-status.js +++ /dev/null @@ -1,8 +0,0 @@ -import {bindable} from 'aurelia-framework'; -import {Publisher} from 'common/publisher'; -export class NodeStatus extends Publisher{ - @bindable result - constructor(...rest) { - super(...rest); - } -} \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/src/views/query-status/query-status.html b/shrine-webclient/src/main/js/client/js-shrine/src/views/query-status/query-status.html index 03a54a08a..969aed789 100644 --- a/shrine-webclient/src/main/js/client/js-shrine/src/views/query-status/query-status.html +++ b/shrine-webclient/src/main/js/client/js-shrine/src/views/query-status/query-status.html @@ -1,25 +1,23 @@ \ No newline at end of file diff --git a/shrine-webclient/src/main/js/client/js-shrine/src/views/query-status/query-status.js b/shrine-webclient/src/main/js/client/js-shrine/src/views/query-status/query-status.js index c3e81f832..000d566e7 100644 --- a/shrine-webclient/src/main/js/client/js-shrine/src/views/query-status/query-status.js +++ b/shrine-webclient/src/main/js/client/js-shrine/src/views/query-status/query-status.js @@ -1,33 +1,33 @@ -import {EventAggregator} from 'aurelia-event-aggregator'; -import {notifications, commands} from 'common/shrine.messages'; -import {QueryStatusModel} from 'common/query-status.model'; -export class QueryStatus { - static inject = [EventAggregator, notifications, commands, QueryStatusModel]; - constructor(evtAgg, notifications, commands, queryStatus) { - const initialState = () => ({query: {queryName: null, updated: null, complete: false}, nodes: null}); +import { QueryStatusModel } from 'services/query-status.model'; +import { PubSub } from 'services/pub-sub' +export class QueryStatus extends PubSub { + static inject = [QueryStatusModel]; + constructor(queryStatus, ...rest) { + super(...rest); + const initialState = () => ({ query: { queryName: null, updated: null, complete: false }, nodes: null }); this.status = initialState(); - // -- publishers -- - const publishFetchNetworkId = n => evtAgg.publish(commands.shrine.fetchNetworkId, n); - const publishFetchQuery = id => evtAgg.publish(commands.shrine.fetchQuery, id); // -- subscribers -- // - evtAgg.subscribe(notifications.i2b2.queryStarted, (n) => { + this.subscribe(this.notifications.i2b2.queryStarted, (n) => { // -- @todo: centralize the logic, investigate adding a new "status" every time -- // this.status.query.queryName = n; - publishFetchNetworkId(n) }); - evtAgg.subscribe(notifications.shrine.networkIdReceived, id => publishFetchQuery(id)); - evtAgg.subscribe(notifications.shrine.queryReceived, data => { + this.subscribe(this.notifications.i2b2.networkIdReceived, id => this.publish(this.commands.shrine.fetchQuery, id)); + this.subscribe(this.notifications.shrine.queryReceived, data => { // -- @todo: centralize the logic, investigate adding a new "status" every time -- // - this.status.query = {...this.status.query, ...data.query}; + this.status.query = { ...this.status.query, ...data.query }; this.status.nodes = data.nodes; this.status.updated = Number(new Date()); const complete = data.query.complete; const networkId = data.query.networkId; - if(!complete) { - publishFetchQuery(networkId) + if (!complete) { + window.setTimeout(() => publishFetchQuery(networkId), 10000); } }); - // -- testing only -- // - evtAgg.publish(notifications.i2b2.queryStarted, '@queryqueryName'); + + const isDevEnv = document.location.href.includes('http://localhost:8000/'); + if (isDevEnv) { + this.publish(this.notifications.i2b2.queryStarted, "started query"); + this.publish(this.notifications.i2b2.networkIdReceived, 1); + } } } \ No newline at end of file diff --git a/shrine-webclient/src/main/js/server/data/query-result.js b/shrine-webclient/src/main/js/server/data/query-result.js new file mode 100644 index 000000000..80cd4fccc --- /dev/null +++ b/shrine-webclient/src/main/js/server/data/query-result.js @@ -0,0 +1,217 @@ +module.exports = { + "results": [ + { + "count": 1185, + "networkQueryId": 2421519216383772200, + "statusMessage": "FINISHED", + "changeDate": 1501001608958, + "instanceId": 221, + "resultId": 367, + "status": "FINISHED", + "resultType": { + "isBreakdown": false, + "name": "PATIENT_COUNT_XML", + "id": 4, + "i2b2Options": { + "description": "Number of patients", + "displayType": "CATNUM" + } + }, + "adapterNode": "shrine-dev1", + "breakdowns": [ + { + resultType: { + i2b2Options: { + description: "Race Patient Breakdown", + displayType: "CATNUM" + }, + isBreakdown: true, + name: "PATIENT_RACE_COUNT_XML", + }, + "results": [ + { changeDate: 1502294526455, value: -1, dataKey: "Other" }, + { changeDate: 1502294526455, value: -1, dataKey: "Asian Pacific Islander" }, + { changeDate: 1502294526455, value: -1, dataKey: "Middle Eastern" }, + { changeDate: 1502294526455, value: -1, dataKey: "Not recorded" }, + { changeDate: 1502294526455, value: -1, dataKey: "Eskimo" }, + { changeDate: 1502294526455, value: -1, dataKey: "American Indian" }, + { changeDate: 1502294526455, value: 80, dataKey: "White" }, + { changeDate: 1502294526455, value: -1, dataKey: "Native American" }, + { changeDate: 1502294526455, value: 370, dataKey: "Black" }, + { changeDate: 1502294526455, value: -1, dataKey: "Multiracial" }, + { changeDate: 1502294526455, value: 170, dataKey: "Hispanic" }, + { changeDate: 1502294526455, value: 95, dataKey: "Indian" }, + { changeDate: 1502294526455, value: -1, dataKey: "Aleutian" }, + { changeDate: 1502294526455, value: 105, dataKey: "Asian" }, + { changeDate: 1502294526455, value: -1, dataKey: "Oriental" }, + { changeDate: 1502294526455, value: -1, dataKey: "Navajo" } + ] + }, + { + resultType: { + i2b2Options: { + description: "Age patient breakdown", + displayType: "CATNUM" + }, + isBreakdown: true, + name: "PATIENT_AGE_COUNT_XML", + }, + results: [ + { changeDate: 1502294526455, value: 290, dataKey: " 18-34 years old" }, + { changeDate: 1502294526455, value: -1, dataKey: "Not recorded" }, + { changeDate: 1502294526455, value: 80, dataKey: " 45-54 years old" }, + { changeDate: 1502294526455, value: -1, dataKey: " 0-9 years old" }, + { changeDate: 1502294526455, value: 235, dataKey: " 35-44 years old" }, + { changeDate: 1502294526455, value: 45, dataKey: " 75-84 years old" }, + { changeDate: 1502294526455, value: 35, dataKey: ">= 85 years old" }, + { changeDate: 1502294526455, value: 65, dataKey: " 65-74 years old" }, + { changeDate: 1502294526455, value: 150, dataKey: ">= 65 years old" }, + { changeDate: 1502294526455, value: -1, dataKey: " 10-17 years old" }, + { changeDate: 1502294526455, value: 45, dataKey: " 55-64 years old" } + ] + }, + { + resultType: { + i2b2Options: { + description: "Gender patient breakdown", + displayType: "CATNUM" + }, + isBreakdown: true, + name: "PATIENT_COUNT_COUNT_XML", + }, + results: [ + { changeDate: 1502294526455, value: 1180, dataKey: "Female" }, + { changeDate: 1502294526455, value: -1, dataKey: "Male" }, + { changeDate: 1502294526455, value: -1, dataKey: "Unknown" } + ] + }, + { + resultType: { + i2b2Options: { + description: "Vital Status patient breakdown", + displayType: "CATNUM" + }, + isBreakdown: true, + name: "PATIENT_VITALSTATS_COUNT_XML", + }, + results: [ + { changeDate: 1502294526455, value: 25, dataKey: "Deceased" }, + { changeDate: 1502294526455, value: -1, dataKey: "Deferred" }, + { changeDate: 1502294526455, value: 1155, dataKey: "Living" }, + { changeDate: 1502294526455, value: -1, dataKey: "Not recorded" } + ] + } + ] + }, + { + "count": 1795, + "networkQueryId": 2421519216383772200, + "statusMessage": "FINISHED", + "changeDate": 1501001608966, + "instanceId": 174, + "resultId": 320, + "status": "FINISHED", + "resultType": { + "isBreakdown": false, + "name": "PATIENT_COUNT_XML", + "id": 4, + "i2b2Options": { + "description": "Number of patients", + "displayType": "CATNUM" + } + }, + "adapterNode": "shrine-dev2", + "breakdowns": [ + { + resultType: { + i2b2Options: { + description: "Race Patient Breakdown", + displayType: "CATNUM" + }, + isBreakdown: true, + name: "PATIENT_RACE_COUNT_XML", + }, + "results": [ + { changeDate: 1502294526455, value: -1, dataKey: "Other" }, + { changeDate: 1502294526455, value: -1, dataKey: "Asian Pacific Islander" }, + { changeDate: 1502294526455, value: -1, dataKey: "Middle Eastern" }, + { changeDate: 1502294526455, value: -1, dataKey: "Not recorded" }, + { changeDate: 1502294526455, value: -1, dataKey: "Eskimo" }, + { changeDate: 1502294526455, value: -1, dataKey: "American Indian" }, + { changeDate: 1502294526455, value: 80, dataKey: "White" }, + { changeDate: 1502294526455, value: -1, dataKey: "Native American" }, + { changeDate: 1502294526455, value: 370, dataKey: "Black" }, + { changeDate: 1502294526455, value: -1, dataKey: "Multiracial" }, + { changeDate: 1502294526455, value: 170, dataKey: "Hispanic" }, + { changeDate: 1502294526455, value: 95, dataKey: "Indian" }, + { changeDate: 1502294526455, value: -1, dataKey: "Aleutian" }, + { changeDate: 1502294526455, value: 105, dataKey: "Asian" }, + { changeDate: 1502294526455, value: -1, dataKey: "Oriental" }, + { changeDate: 1502294526455, value: -1, dataKey: "Navajo" } + ] + }, + { + resultType: { + i2b2Options: { + description: "Age patient breakdown", + displayType: "CATNUM" + }, + isBreakdown: true, + name: "PATIENT_AGE_COUNT_XML", + }, + results: [ + { changeDate: 1502294526455, value: 290, dataKey: " 18-34 years old" }, + { changeDate: 1502294526455, value: -1, dataKey: "Not recorded" }, + { changeDate: 1502294526455, value: 80, dataKey: " 45-54 years old" }, + { changeDate: 1502294526455, value: -1, dataKey: " 0-9 years old" }, + { changeDate: 1502294526455, value: 235, dataKey: " 35-44 years old" }, + { changeDate: 1502294526455, value: 45, dataKey: " 75-84 years old" }, + { changeDate: 1502294526455, value: 35, dataKey: ">= 85 years old" }, + { changeDate: 1502294526455, value: 65, dataKey: " 65-74 years old" }, + { changeDate: 1502294526455, value: 150, dataKey: ">= 65 years old" }, + { changeDate: 1502294526455, value: -1, dataKey: " 10-17 years old" }, + { changeDate: 1502294526455, value: 45, dataKey: " 55-64 years old" } + ] + }, + { + resultType: { + i2b2Options: { + description: "Gender patient breakdown", + displayType: "CATNUM" + }, + isBreakdown: true, + name: "PATIENT_COUNT_COUNT_XML", + }, + results: [ + { changeDate: 1502294526455, value: 1180, dataKey: "Female" }, + { changeDate: 1502294526455, value: -1, dataKey: "Male" }, + { changeDate: 1502294526455, value: -1, dataKey: "Unknown" } + ] + }, + { + resultType: { + i2b2Options: { + description: "Vital Status patient breakdown", + displayType: "CATNUM" + }, + isBreakdown: true, + name: "PATIENT_VITALSTATS_COUNT_XML", + }, + results: [ + { changeDate: 1502294526455, value: 25, dataKey: "Deceased" }, + { changeDate: 1502294526455, value: -1, dataKey: "Deferred" }, + { changeDate: 1502294526455, value: 1155, dataKey: "Living" }, + { changeDate: 1502294526455, value: -1, dataKey: "Not recorded" } + ] + } + ] + } + ], + "query": { + "queryName": "Female@12:53:25", + "changeDate": 1501001607335, + "networkId": "2421519216383772161", + "queryXml": "SHRINE180000i2b2demoshrineSessionKey:HUTBEZkgsz9XyADXjDEO24215192163837721613Test dev1 approved4PATIENT_COUNT_XMLfalseNumber of patientsCATNUMFemale@12:53:25\\\\SHRINE\\SHRINE\\Demographics\\Gender\\Female\\", + "dateCreated": 1501001607334 + } +}; \ No newline at end of file diff --git a/shrine-webclient/src/main/js/server/pm-mock.js b/shrine-webclient/src/main/js/server/pm-mock.js index 82801766b..c45f92dc2 100644 --- a/shrine-webclient/src/main/js/server/pm-mock.js +++ b/shrine-webclient/src/main/js/server/pm-mock.js @@ -1,115 +1,113 @@ /* This is a first stab at a i2b2 pm-mock @todo: refactor/cleanup this module. */ var express = require('express'); var cors = require('cors'); var bodyParser = require('body-parser'); require('body-parser-xml')(bodyParser); var app = express(); var bodyParser = require('body-parser'); var port = process.env.PORT || 6443; var router = express.Router(); var fs = require('fs'); var isAuthorized = false; function start(dir) { app.use(bodyParser.urlencoded({ extended: true })); app.use(bodyParser.json()); app.use(bodyParser.xml({ limit: '1GB', // Reject payload bigger than 1 MB xmlParseOptions: { normalize: true, // Trim whitespace inside text nodes normalizeTags: true, // Transform tags to lowercase explicitArray: false // Only put nodes in array if >1 } })); app.use(cors()); app.use('/', router); app.listen(port); console.log('I2B2SERVER Mock Server started on port: ' + port); // -- routes --// router.post('/shrine-proxy/request', function (req, res) { var requestType = parseRequest(req); var fileName = getFilename(requestType); var xml = fs.readFileSync('./' + dir+ '/i2b2-xml/' + fileName); res.header('Content-Type', 'text/xml').send(xml); }); router.get('/shrine-metadata/data', function(req, res) { res.json('steward@steward.com'); }); router.get('/shrine-metadata/qep/queryResultsTable', (req, res) => { //todo: cleanup. const service = require('./data/async-queries'); const url = require('url'); const query = url.parse(req.url, true).query; const result = service.getQueryResults(query.skip, query.limit); res.json(result); }) } -router.get('/shrine-metadata/qep/queryResults', (req, res) => { - const service = require('./data/async-queries'); - const url = require('url'); - const data = url.parse(req.url, true).query; - const result = service.getQueryStatus(data.networkId); - setTimeout(() => res.json(result), 5000); +router.get('/shrine-metadata/qep/queryResult/:id', (req, res) => { + const result= require('./data/query-result'); + const TIMEOUT = 5000; + setTimeout(() => res.json(result), TIMEOUT); }); router.get('/shrine-metadata/qep/networkId', (req, res) => { const service = require('./data/async-queries'); const url = require('url'); const data = url.parse(req.url, true).query; const result = service.getNetworkId(data.queryName); res.json(result); }); /* Any request with an XML payload will be parsed and a JavaScript requestect produced on req.body corresponding to the request payload. This is messy refactor. */ function parseRequest(request) { request = request.body; var requestTypes = ['i2b2:request', 'ns2:request', 'ns3:request', 'ns6:request']; var requestType = requestTypes.find(t => request[t] !== undefined); request = (request[requestType] && request[requestType].message_body) ? request[requestType].message_body : null; return parseBodyRequest(request); } function parseBodyRequest(request) { var bodyTypes = ['pm:get_user_configuration', 'ns4:get_categories', 'ns4:get_schemes', 'ns7:sheriff_header', 'ns4:psmheader']; var bodyType = bodyTypes.find(t => request[t] !== undefined); if (bodyType == 'ns4:psmheader') { bodyType = request['ns4:psmheader'].request_type; } return bodyType; } function getFilename(value) { let fileMap = { 'pm:get_user_configuration': 'getUserAuth.xml', 'ns4:get_categories': 'GetCategories.xml', 'ns4:get_schemes': 'GetSchemes.xml', 'ns7:sheriff_header': 'getUserAuth.xml', 'CRC_QRY_getResultType': 'getQRY_getResultType.xml', 'CRC_QRY_getQueryMasterList_fromUserId': 'getQueryMasterList_fromUserId.xml' }; return fileMap[value]; } module.exports = {start: start}; \ No newline at end of file