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}