001/*-
002 * #%L
003 * Smile CDR - CDR
004 * %%
005 * Copyright (C) 2016 - 2025 Smile CDR, Inc.
006 * %%
007 * All rights reserved.
008 * #L%
009 */
010package ca.cdr.api.pub.cdaexchange.model;
011
012import ca.cdr.api.camel.ICdaCamelConversionResultJson;
013import com.fasterxml.jackson.annotation.JsonProperty;
014import com.fasterxml.jackson.annotation.JsonPropertyOrder;
015import org.hl7.fhir.instance.model.api.IBaseBundle;
016import org.hl7.fhir.instance.model.api.IBaseResource;
017
018import static ca.cdr.api.camel.ICdaCamelConversionResultJson.BUNDLE;
019import static ca.cdr.api.camel.ICdaCamelConversionResultJson.MODIFIABLE_DOCUMENT;
020import static ca.cdr.api.pub.cdaexchange.model.FhirToCdaConversionResultJson.COMPOSITION;
021
022/**
023 * Contains all the relevant data involved in the conversion of a FHIR IBaseBundle resource to a CDA document.
024 */
025@JsonPropertyOrder({COMPOSITION, BUNDLE, MODIFIABLE_DOCUMENT})
026public class FhirToCdaConversionResultJson implements ICdaCamelConversionResultJson {
027
028        /**
029         * Composition associated with conversion result
030         */
031        public static final String COMPOSITION = "bundle";
032
033        @JsonProperty(COMPOSITION)
034        private IBaseResource myComposition;
035
036        @JsonProperty(BUNDLE)
037        private IBaseBundle myBundle;
038
039        @JsonProperty(MODIFIABLE_DOCUMENT)
040        private String myModifiableDocument;
041
042        public FhirToCdaConversionResultJson() {
043                // required by Jackson
044        }
045
046        public static FhirToCdaConversionResultJson fromBundle(IBaseBundle theBundle) {
047                FhirToCdaConversionResultJson conversionResult = new FhirToCdaConversionResultJson();
048                conversionResult.setBundle(theBundle);
049                return conversionResult;
050        }
051
052        public static FhirToCdaConversionResultJson fromComposition(IBaseResource theComposition) {
053                FhirToCdaConversionResultJson conversionResult = new FhirToCdaConversionResultJson();
054                conversionResult.setComposition(theComposition);
055                return conversionResult;
056        }
057
058        public IBaseResource getComposition() {
059                return myComposition;
060        }
061
062        public void setComposition(IBaseResource theComposition) {
063                myComposition = theComposition;
064        }
065
066        public IBaseBundle getBundle() {
067                return myBundle;
068        }
069
070        public void setBundle(IBaseBundle theBundle) {
071                myBundle = theBundle;
072        }
073
074        public String getModifiableDocument() {
075                return myModifiableDocument;
076        }
077
078        public void setModifiableDocument(String cdaDocument) {
079                myModifiableDocument = cdaDocument;
080        }
081}