Page Menu
Home
c4science
Search
Configure Global Search
Log In
Files
F82637962
ReadPdoResponseAggregator.scala
No One
Temporary
Actions
Download File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Award Token
Subscribers
None
File Metadata
Details
File Info
Storage
Attached
Created
Thu, Sep 12, 14:05
Size
1 KB
Mime Type
text/x-c++
Expires
Sat, Sep 14, 14:05 (2 d)
Engine
blob
Format
Raw Data
Handle
20723474
Attached To
R2664 SHRINE MedCo Fork
ReadPdoResponseAggregator.scala
View Options
package
net.shrine.aggregation
import
scala.collection.mutable.ArrayBuffer
import
scala.collection.mutable.Buffer
import
net.shrine.protocol.ErrorResponse
import
net.shrine.protocol.EventResponse
import
net.shrine.protocol.ObservationResponse
import
net.shrine.protocol.PatientResponse
import
net.shrine.protocol.ReadPdoResponse
import
net.shrine.protocol.Result
import
net.shrine.protocol.ShrineResponse
import
net.shrine.protocol.SingleNodeResult
/**
* @author ???
* @date ???
*/
class
ReadPdoResponseAggregator
extends
Aggregator
{
override
def
aggregate
(
results
:
Iterable
[
SingleNodeResult
],
errors
:
Iterable
[
ErrorResponse
])
:
ShrineResponse
=
{
val
eventBuffer
:
Buffer
[
EventResponse
]
=
new
ArrayBuffer
val
patientBuffer
:
Buffer
[
PatientResponse
]
=
new
ArrayBuffer
val
observationBuffer
:
Buffer
[
ObservationResponse
]
=
new
ArrayBuffer
//TODO handle errors
results
.
collect
{
case
result
@
Result
(
_
,
_
,
readPdoResponse
:
ReadPdoResponse
)
=>
(
result
,
readPdoResponse
)
}.
foreach
{
case
(
result
,
readPdoResponse
)
=>
{
val
response
=
transform
(
readPdoResponse
,
result
)
eventBuffer
++=
response
.
events
patientBuffer
++=
response
.
patients
observationBuffer
++=
response
.
observations
}
}
//TODO: What to do with passed-in errors?
ReadPdoResponse
(
eventBuffer
,
patientBuffer
,
observationBuffer
)
}
/**
* This method is a no-op transformation but subclasses can override it
* and do something more interesting.
*/
protected
def
transform
(
entry
:
ReadPdoResponse
,
metadata
:
Result
)
:
ReadPdoResponse
=
entry
}
Event Timeline
Log In to Comment