[
https://issues.apache.org/jira/browse/BEAM-14504?focusedWorklogId=775351&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-775351
]
ASF GitHub Bot logged work on BEAM-14504:
-----------------------------------------
Author: ASF GitHub Bot
Created on: 27/May/22 03:38
Start Date: 27/May/22 03:38
Worklog Time Spent: 10m
Work Description: fbeevikm commented on code in PR #17741:
URL: https://github.com/apache/beam/pull/17741#discussion_r883245460
##########
sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/healthcare/FhirBundleWithMetadata.java:
##########
@@ -0,0 +1,73 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.beam.sdk.io.gcp.healthcare;
+
+import com.google.auto.value.AutoValue;
+import java.util.Objects;
+import javax.annotation.Nullable;
+import org.apache.beam.sdk.coders.DefaultCoder;
+
+/**
+ * FhirBundleWithMetadata represents a FHIR bundle, with it's metadata (eg.
source ID like HL7
+ * message path) in JSON format to be executed on any FHIR store. *
+ */
+@DefaultCoder(FhirBundleWithMetadataCoder.class)
+@AutoValue
+public abstract class FhirBundleWithMetadata {
+
+ static Builder builder() {
+ return new AutoValue_FhirBundleWithMetadata.Builder();
+ }
+
+ /**
+ * String representing the source of the Bundle to be written. Used to pass
source data through
+ * the ExecuteBundles PTransform.
+ */
+ public abstract String getMetadata();
+
+ /** FHIR R4 bundle resource object as a string. */
+ public abstract String getBundle();
+
+ /** HTTP response from the FHIR store after attempting to write the Bundle
method. */
+ public abstract String getResponse();
Review Comment:
After discussing with the team, decided to go ahead with
'FhirBundleResponse' class.
##########
sdks/java/io/google-cloud-platform/src/main/java/org/apache/beam/sdk/io/gcp/healthcare/FhirIO.java:
##########
@@ -1524,6 +1551,85 @@ private int parseBundleStatus(String status) {
}
}
+ /**
+ * ExecuteBundlesResult contains both successfully executed bundles and
information help debugging
+ * failed executions (eg metadata & error msgs).
+ */
+ public static class ExecuteBundlesResult extends Write.AbstractResult {
+ private final Pipeline pipeline;
+ private final PCollection<FhirBundleWithMetadata> successfulBundles;
+ private final PCollection<HealthcareIOError<FhirBundleWithMetadata>>
failedBundles;
+
+ private ExecuteBundlesResult(
+ Pipeline pipeline,
+ PCollection<FhirBundleWithMetadata> successfulBundles,
+ PCollection<HealthcareIOError<FhirBundleWithMetadata>> failedBundles) {
+ this.pipeline = pipeline;
+ this.successfulBundles = successfulBundles;
+ this.failedBundles = failedBundles;
+ }
+
+ /**
+ * Entry point for the ExecuteBundlesResult, storing the successful and
failed bundles and their
+ * metadata.
+ */
+ public static ExecuteBundlesResult in(
+ Pipeline pipeline,
+ PCollection<FhirBundleWithMetadata> successfulBundles,
+ PCollection<HealthcareIOError<FhirBundleWithMetadata>> failedBundles) {
+ return new ExecuteBundlesResult(pipeline, successfulBundles,
failedBundles);
+ }
+
+ /** Gets successful FhirBundleWithMetadata from execute bundles operation.
*/
+ public PCollection<FhirBundleWithMetadata>
getSuccessfulBundlesWithMetadata() {
+ return this.successfulBundles;
+ }
+
+ /**
+ * Gets failed FhirBundleWithMetadata with metadata wrapped inside
HealthcareIOError. The bundle
+ * field could be null.
+ */
+ public PCollection<HealthcareIOError<FhirBundleWithMetadata>>
getFailedBundles() {
+ return this.failedBundles;
+ }
+
+ @Override
Review Comment:
done.
Issue Time Tracking
-------------------
Worklog Id: (was: 775351)
Time Spent: 2h (was: 1h 50m)
> Add support for including addittional parameters to executebundle method in
> fhirio.
> -----------------------------------------------------------------------------------
>
> Key: BEAM-14504
> URL: https://issues.apache.org/jira/browse/BEAM-14504
> Project: Beam
> Issue Type: Improvement
> Components: io-java-healthcare
> Reporter: Fathima Mohammed
> Assignee: Fathima Mohammed
> Priority: P2
> Time Spent: 2h
> Remaining Estimate: 0h
>
> Add FhirBundleWithMetadata in executebundles method so that we can pass
> additional information like message id.
> FhirBundleWithMetadata represents a FHIR bundle, with it's metadata (eg. Hl7
> messageId) to be executed on the intermediate FHIR store.
--
This message was sent by Atlassian Jira
(v8.20.7#820007)