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}