Class HL7v2IO.ListHL7v2Messages

java.lang.Object
org.apache.beam.sdk.transforms.PTransform<PBegin,PCollection<HL7v2Message>>
org.apache.beam.sdk.io.gcp.healthcare.HL7v2IO.ListHL7v2Messages
All Implemented Interfaces:
Serializable, HasDisplayData
Enclosing class:
HL7v2IO

public static class HL7v2IO.ListHL7v2Messages extends PTransform<PBegin,PCollection<HL7v2Message>>
List HL7v2 messages in HL7v2 Stores with optional filter.

This transform is optimized for splitting of message.list calls for large batches of historical data and assumes rather continuous stream of sendTimes.

Note on Benchmarking: The default initial splitting on day will make more queries than necessary when used with very small data sets (or very sparse data sets in the sendTime dimension). If you are looking to get an accurate benchmark be sure to use sufficient volume of data with messages that span sendTimes over a realistic time range (days)

Implementation includes overhead for:

  1. two api calls to determine the min/max sendTime of the HL7v2 store at invocation time.
  2. initial splitting into non-overlapping time ranges (default daily) to achieve parallelization in separate messages.list calls.
If your use case doesn't lend itself to daily splitting, you can can control initial splitting with withInitialSplitDuration(Duration)
See Also:
  • Method Details

    • withInitialSplitDuration

      public HL7v2IO.ListHL7v2Messages withInitialSplitDuration(Duration initialSplitDuration)
    • expand

      public PCollection<HL7v2Message> expand(PBegin input)
      Description copied from class: PTransform
      Override this method to specify how this PTransform should be expanded on the given InputT.

      NOTE: This method should not be called directly. Instead apply the PTransform should be applied to the InputT using the apply method.

      Composite transforms, which are defined in terms of other transforms, should return the output of one of the composed transforms. Non-composite transforms, which do not apply any transforms internally, should return a new unbound output and register evaluators (via backend-specific registration methods).

      Specified by:
      expand in class PTransform<PBegin,PCollection<HL7v2Message>>