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.IBaseParameters;
017import org.hl7.fhir.instance.model.api.IBaseResource;
018
019import static ca.cdr.api.camel.ICdaCamelConversionResultJson.BUNDLE;
020import static ca.cdr.api.camel.ICdaCamelConversionResultJson.MODIFIABLE_DOCUMENT;
021import static ca.cdr.api.pub.cdaexchange.model.FhirToCdaConversionResultJson.COMPOSITION;
022
023/**
024 * Contains all the relevant data involved in the conversion of a FHIR IBaseBundle resource to a CDA document.
025 */
026@JsonPropertyOrder({COMPOSITION, BUNDLE, MODIFIABLE_DOCUMENT})
027public class FhirToCdaConversionResultJson implements ICdaCamelConversionResultJson {
028
029        public static final String SCRIPT_NAME = "scriptName";
030        public static final String SCRIPT_PARAMETERS = "scriptParameters";
031        public static final String COMPOSITION = "composition";
032
033        @JsonProperty(SCRIPT_NAME)
034        private String myScriptName;
035
036        @JsonProperty(SCRIPT_PARAMETERS)
037        private IBaseParameters myScriptParameters;
038
039        @JsonProperty(COMPOSITION)
040        private IBaseResource myComposition;
041
042        @JsonProperty(BUNDLE)
043        private IBaseBundle myBundle;
044
045        @JsonProperty(MODIFIABLE_DOCUMENT)
046        private String myModifiableDocument;
047
048        public FhirToCdaConversionResultJson() {
049                // required by Jackson
050        }
051
052        public static FhirToCdaConversionResultJson fromScriptParameters(IBaseParameters theScriptParameters) {
053                FhirToCdaConversionResultJson conversionResult = new FhirToCdaConversionResultJson();
054                conversionResult.setScriptParameters(theScriptParameters);
055                return conversionResult;
056        }
057
058        public static FhirToCdaConversionResultJson fromComposition(IBaseResource theComposition) {
059                FhirToCdaConversionResultJson conversionResult = new FhirToCdaConversionResultJson();
060                conversionResult.setComposition(theComposition);
061                return conversionResult;
062        }
063
064        public static FhirToCdaConversionResultJson fromBundle(IBaseBundle theBundle) {
065                FhirToCdaConversionResultJson conversionResult = new FhirToCdaConversionResultJson();
066                conversionResult.setBundle(theBundle);
067                return conversionResult;
068        }
069
070        public String getScriptName() {
071                return myScriptName;
072        }
073
074        public void setScriptName(String theScriptName) {
075                myScriptName = theScriptName;
076        }
077
078        public IBaseParameters getScriptParameters() {
079                return myScriptParameters;
080        }
081
082        public void setScriptParameters(IBaseParameters theScriptParameters) {
083                myScriptParameters = theScriptParameters;
084        }
085
086        public IBaseResource getComposition() {
087                return myComposition;
088        }
089
090        public void setComposition(IBaseResource theComposition) {
091                myComposition = theComposition;
092        }
093
094        public IBaseBundle getBundle() {
095                return myBundle;
096        }
097
098        public void setBundle(IBaseBundle theBundle) {
099                myBundle = theBundle;
100        }
101
102        public String getModifiableDocument() {
103                return myModifiableDocument;
104        }
105
106        public void setModifiableDocument(String cdaDocument) {
107                myModifiableDocument = cdaDocument;
108        }
109}