001package org.hl7.fhir.convertors.conv10_40.resources10_40; 002 003import java.util.Collections; 004 005import org.hl7.fhir.convertors.context.ConversionContext10_40; 006import org.hl7.fhir.convertors.conv10_40.datatypes10_40.Narrative10_40; 007import org.hl7.fhir.convertors.conv10_40.datatypes10_40.Reference10_40; 008import org.hl7.fhir.convertors.conv10_40.datatypes10_40.complextypes10_40.CodeableConcept10_40; 009import org.hl7.fhir.convertors.conv10_40.datatypes10_40.complextypes10_40.Identifier10_40; 010import org.hl7.fhir.convertors.conv10_40.datatypes10_40.complextypes10_40.Period10_40; 011import org.hl7.fhir.convertors.conv10_40.datatypes10_40.primitivetypes10_40.DateTime10_40; 012import org.hl7.fhir.convertors.conv10_40.datatypes10_40.primitivetypes10_40.String10_40; 013import org.hl7.fhir.exceptions.FHIRException; 014 015public class Composition10_40 { 016 017 public static org.hl7.fhir.dstu2.model.Composition convertComposition(org.hl7.fhir.r4.model.Composition src) throws FHIRException { 018 if (src == null || src.isEmpty()) 019 return null; 020 org.hl7.fhir.dstu2.model.Composition tgt = new org.hl7.fhir.dstu2.model.Composition(); 021 ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().copyDomainResource(src, tgt); 022 if (src.hasIdentifier()) 023 tgt.setIdentifier(Identifier10_40.convertIdentifier(src.getIdentifier())); 024 if (src.hasDate()) 025 tgt.setDateElement(DateTime10_40.convertDateTime(src.getDateElement())); 026 if (src.hasType()) 027 tgt.setType(CodeableConcept10_40.convertCodeableConcept(src.getType())); 028 if (src.hasCategory()) 029 tgt.setClass_(CodeableConcept10_40.convertCodeableConcept(src.getCategoryFirstRep())); 030 if (src.hasTitleElement()) 031 tgt.setTitleElement(String10_40.convertString(src.getTitleElement())); 032 if (src.hasStatus()) 033 tgt.setStatusElement(convertCompositionStatus(src.getStatusElement())); 034 tgt.setConfidentiality(src.getConfidentiality().toCode()); 035 if (src.hasSubject()) 036 tgt.setSubject(Reference10_40.convertReference(src.getSubject())); 037 for (org.hl7.fhir.r4.model.Reference t : src.getAuthor()) tgt.addAuthor(Reference10_40.convertReference(t)); 038 for (org.hl7.fhir.r4.model.Composition.CompositionAttesterComponent t : src.getAttester()) 039 tgt.addAttester(convertCompositionAttesterComponent(t)); 040 if (src.hasCustodian()) 041 tgt.setCustodian(Reference10_40.convertReference(src.getCustodian())); 042 for (org.hl7.fhir.r4.model.Composition.CompositionEventComponent t : src.getEvent()) 043 tgt.addEvent(convertCompositionEventComponent(t)); 044 if (src.hasEncounter()) 045 tgt.setEncounter(Reference10_40.convertReference(src.getEncounter())); 046 for (org.hl7.fhir.r4.model.Composition.SectionComponent t : src.getSection()) 047 tgt.addSection(convertSectionComponent(t)); 048 return tgt; 049 } 050 051 public static org.hl7.fhir.r4.model.Composition convertComposition(org.hl7.fhir.dstu2.model.Composition src) throws FHIRException { 052 if (src == null || src.isEmpty()) 053 return null; 054 org.hl7.fhir.r4.model.Composition tgt = new org.hl7.fhir.r4.model.Composition(); 055 ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().copyDomainResource(src, tgt); 056 if (src.hasIdentifier()) 057 tgt.setIdentifier(Identifier10_40.convertIdentifier(src.getIdentifier())); 058 if (src.hasDate()) 059 tgt.setDateElement(DateTime10_40.convertDateTime(src.getDateElement())); 060 if (src.hasType()) 061 tgt.setType(CodeableConcept10_40.convertCodeableConcept(src.getType())); 062 if (src.hasClass_()) 063 tgt.addCategory(CodeableConcept10_40.convertCodeableConcept(src.getClass_())); 064 if (src.hasTitleElement()) 065 tgt.setTitleElement(String10_40.convertString(src.getTitleElement())); 066 if (src.hasStatus()) 067 tgt.setStatusElement(convertCompositionStatus(src.getStatusElement())); 068 try { 069 if (src.hasConfidentiality()) 070 tgt.setConfidentiality(org.hl7.fhir.r4.model.Composition.DocumentConfidentiality.fromCode(src.getConfidentiality())); 071 } catch (org.hl7.fhir.exceptions.FHIRException e) { 072 throw new FHIRException(e); 073 } 074 if (src.hasSubject()) 075 tgt.setSubject(Reference10_40.convertReference(src.getSubject())); 076 for (org.hl7.fhir.dstu2.model.Reference t : src.getAuthor()) tgt.addAuthor(Reference10_40.convertReference(t)); 077 for (org.hl7.fhir.dstu2.model.Composition.CompositionAttesterComponent t : src.getAttester()) 078 tgt.addAttester(convertCompositionAttesterComponent(t)); 079 if (src.hasCustodian()) 080 tgt.setCustodian(Reference10_40.convertReference(src.getCustodian())); 081 for (org.hl7.fhir.dstu2.model.Composition.CompositionEventComponent t : src.getEvent()) 082 tgt.addEvent(convertCompositionEventComponent(t)); 083 if (src.hasEncounter()) 084 tgt.setEncounter(Reference10_40.convertReference(src.getEncounter())); 085 for (org.hl7.fhir.dstu2.model.Composition.SectionComponent t : src.getSection()) 086 tgt.addSection(convertSectionComponent(t)); 087 return tgt; 088 } 089 090 static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Composition.CompositionAttestationMode> convertCompositionAttestationMode(org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.Composition.CompositionAttestationMode> src) throws FHIRException { 091 if (src == null || src.isEmpty()) 092 return null; 093 org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Composition.CompositionAttestationMode> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.Composition.CompositionAttestationModeEnumFactory()); 094 ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().copyElement(src, tgt); 095 switch (src.getValue()) { 096 case PERSONAL: 097 tgt.setValue(org.hl7.fhir.r4.model.Composition.CompositionAttestationMode.PERSONAL); 098 break; 099 case PROFESSIONAL: 100 tgt.setValue(org.hl7.fhir.r4.model.Composition.CompositionAttestationMode.PROFESSIONAL); 101 break; 102 case LEGAL: 103 tgt.setValue(org.hl7.fhir.r4.model.Composition.CompositionAttestationMode.LEGAL); 104 break; 105 case OFFICIAL: 106 tgt.setValue(org.hl7.fhir.r4.model.Composition.CompositionAttestationMode.OFFICIAL); 107 break; 108 default: 109 tgt.setValue(org.hl7.fhir.r4.model.Composition.CompositionAttestationMode.NULL); 110 break; 111 } 112 return tgt; 113 } 114 115 static public org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.Composition.CompositionAttestationMode> convertCompositionAttestationMode(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Composition.CompositionAttestationMode> src) throws FHIRException { 116 if (src == null || src.isEmpty()) 117 return null; 118 org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.Composition.CompositionAttestationMode> tgt = new org.hl7.fhir.dstu2.model.Enumeration<>(new org.hl7.fhir.dstu2.model.Composition.CompositionAttestationModeEnumFactory()); 119 ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().copyElement(src, tgt); 120 switch (src.getValue()) { 121 case PERSONAL: 122 tgt.setValue(org.hl7.fhir.dstu2.model.Composition.CompositionAttestationMode.PERSONAL); 123 break; 124 case PROFESSIONAL: 125 tgt.setValue(org.hl7.fhir.dstu2.model.Composition.CompositionAttestationMode.PROFESSIONAL); 126 break; 127 case LEGAL: 128 tgt.setValue(org.hl7.fhir.dstu2.model.Composition.CompositionAttestationMode.LEGAL); 129 break; 130 case OFFICIAL: 131 tgt.setValue(org.hl7.fhir.dstu2.model.Composition.CompositionAttestationMode.OFFICIAL); 132 break; 133 default: 134 tgt.setValue(org.hl7.fhir.dstu2.model.Composition.CompositionAttestationMode.NULL); 135 break; 136 } 137 return tgt; 138 } 139 140 public static org.hl7.fhir.dstu2.model.Composition.CompositionAttesterComponent convertCompositionAttesterComponent(org.hl7.fhir.r4.model.Composition.CompositionAttesterComponent src) throws FHIRException { 141 if (src == null || src.isEmpty()) 142 return null; 143 org.hl7.fhir.dstu2.model.Composition.CompositionAttesterComponent tgt = new org.hl7.fhir.dstu2.model.Composition.CompositionAttesterComponent(); 144 ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().copyBackboneElement(src,tgt); 145 if (src.hasMode()) 146 tgt.setMode(Collections.singletonList(convertCompositionAttestationMode(src.getModeElement()))); 147 if (src.hasTimeElement()) 148 tgt.setTimeElement(DateTime10_40.convertDateTime(src.getTimeElement())); 149 if (src.hasParty()) 150 tgt.setParty(Reference10_40.convertReference(src.getParty())); 151 return tgt; 152 } 153 154 public static org.hl7.fhir.r4.model.Composition.CompositionAttesterComponent convertCompositionAttesterComponent(org.hl7.fhir.dstu2.model.Composition.CompositionAttesterComponent src) throws FHIRException { 155 if (src == null || src.isEmpty()) 156 return null; 157 org.hl7.fhir.r4.model.Composition.CompositionAttesterComponent tgt = new org.hl7.fhir.r4.model.Composition.CompositionAttesterComponent(); 158 ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().copyBackboneElement(src,tgt); 159 if (src.hasMode()) 160 tgt.setModeElement(convertCompositionAttestationMode(src.getMode().get(0))); 161 if (src.hasTimeElement()) 162 tgt.setTimeElement(DateTime10_40.convertDateTime(src.getTimeElement())); 163 if (src.hasParty()) 164 tgt.setParty(Reference10_40.convertReference(src.getParty())); 165 return tgt; 166 } 167 168 public static org.hl7.fhir.dstu2.model.Composition.CompositionEventComponent convertCompositionEventComponent(org.hl7.fhir.r4.model.Composition.CompositionEventComponent src) throws FHIRException { 169 if (src == null || src.isEmpty()) 170 return null; 171 org.hl7.fhir.dstu2.model.Composition.CompositionEventComponent tgt = new org.hl7.fhir.dstu2.model.Composition.CompositionEventComponent(); 172 ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().copyBackboneElement(src,tgt); 173 for (org.hl7.fhir.r4.model.CodeableConcept t : src.getCode()) 174 tgt.addCode(CodeableConcept10_40.convertCodeableConcept(t)); 175 if (src.hasPeriod()) 176 tgt.setPeriod(Period10_40.convertPeriod(src.getPeriod())); 177 for (org.hl7.fhir.r4.model.Reference t : src.getDetail()) tgt.addDetail(Reference10_40.convertReference(t)); 178 return tgt; 179 } 180 181 public static org.hl7.fhir.r4.model.Composition.CompositionEventComponent convertCompositionEventComponent(org.hl7.fhir.dstu2.model.Composition.CompositionEventComponent src) throws FHIRException { 182 if (src == null || src.isEmpty()) 183 return null; 184 org.hl7.fhir.r4.model.Composition.CompositionEventComponent tgt = new org.hl7.fhir.r4.model.Composition.CompositionEventComponent(); 185 ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().copyBackboneElement(src,tgt); 186 for (org.hl7.fhir.dstu2.model.CodeableConcept t : src.getCode()) 187 tgt.addCode(CodeableConcept10_40.convertCodeableConcept(t)); 188 if (src.hasPeriod()) 189 tgt.setPeriod(Period10_40.convertPeriod(src.getPeriod())); 190 for (org.hl7.fhir.dstu2.model.Reference t : src.getDetail()) tgt.addDetail(Reference10_40.convertReference(t)); 191 return tgt; 192 } 193 194 static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Composition.CompositionStatus> convertCompositionStatus(org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.Composition.CompositionStatus> src) throws FHIRException { 195 if (src == null || src.isEmpty()) 196 return null; 197 org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Composition.CompositionStatus> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.Composition.CompositionStatusEnumFactory()); 198 ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().copyElement(src, tgt); 199 switch (src.getValue()) { 200 case PRELIMINARY: 201 tgt.setValue(org.hl7.fhir.r4.model.Composition.CompositionStatus.PRELIMINARY); 202 break; 203 case FINAL: 204 tgt.setValue(org.hl7.fhir.r4.model.Composition.CompositionStatus.FINAL); 205 break; 206 case AMENDED: 207 tgt.setValue(org.hl7.fhir.r4.model.Composition.CompositionStatus.AMENDED); 208 break; 209 case ENTEREDINERROR: 210 tgt.setValue(org.hl7.fhir.r4.model.Composition.CompositionStatus.ENTEREDINERROR); 211 break; 212 default: 213 tgt.setValue(org.hl7.fhir.r4.model.Composition.CompositionStatus.NULL); 214 break; 215 } 216 return tgt; 217 } 218 219 static public org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.Composition.CompositionStatus> convertCompositionStatus(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.Composition.CompositionStatus> src) throws FHIRException { 220 if (src == null || src.isEmpty()) 221 return null; 222 org.hl7.fhir.dstu2.model.Enumeration<org.hl7.fhir.dstu2.model.Composition.CompositionStatus> tgt = new org.hl7.fhir.dstu2.model.Enumeration<>(new org.hl7.fhir.dstu2.model.Composition.CompositionStatusEnumFactory()); 223 ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().copyElement(src, tgt); 224 switch (src.getValue()) { 225 case PRELIMINARY: 226 tgt.setValue(org.hl7.fhir.dstu2.model.Composition.CompositionStatus.PRELIMINARY); 227 break; 228 case FINAL: 229 tgt.setValue(org.hl7.fhir.dstu2.model.Composition.CompositionStatus.FINAL); 230 break; 231 case AMENDED: 232 tgt.setValue(org.hl7.fhir.dstu2.model.Composition.CompositionStatus.AMENDED); 233 break; 234 case ENTEREDINERROR: 235 tgt.setValue(org.hl7.fhir.dstu2.model.Composition.CompositionStatus.ENTEREDINERROR); 236 break; 237 default: 238 tgt.setValue(org.hl7.fhir.dstu2.model.Composition.CompositionStatus.NULL); 239 break; 240 } 241 return tgt; 242 } 243 244 public static org.hl7.fhir.r4.model.Composition.SectionComponent convertSectionComponent(org.hl7.fhir.dstu2.model.Composition.SectionComponent src) throws FHIRException { 245 if (src == null || src.isEmpty()) 246 return null; 247 org.hl7.fhir.r4.model.Composition.SectionComponent tgt = new org.hl7.fhir.r4.model.Composition.SectionComponent(); 248 ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().copyBackboneElement(src,tgt); 249 if (src.hasTitleElement()) 250 tgt.setTitleElement(String10_40.convertString(src.getTitleElement())); 251 if (src.hasCode()) 252 tgt.setCode(CodeableConcept10_40.convertCodeableConcept(src.getCode())); 253 if (src.hasText()) 254 tgt.setText(Narrative10_40.convertNarrative(src.getText())); 255 try { 256 if (src.hasMode()) 257 tgt.setMode(org.hl7.fhir.r4.model.Composition.SectionMode.fromCode(src.getMode())); 258 } catch (org.hl7.fhir.exceptions.FHIRException e) { 259 throw new FHIRException(e); 260 } 261 if (src.hasOrderedBy()) 262 tgt.setOrderedBy(CodeableConcept10_40.convertCodeableConcept(src.getOrderedBy())); 263 for (org.hl7.fhir.dstu2.model.Reference t : src.getEntry()) tgt.addEntry(Reference10_40.convertReference(t)); 264 if (src.hasEmptyReason()) 265 tgt.setEmptyReason(CodeableConcept10_40.convertCodeableConcept(src.getEmptyReason())); 266 for (org.hl7.fhir.dstu2.model.Composition.SectionComponent t : src.getSection()) 267 tgt.addSection(convertSectionComponent(t)); 268 return tgt; 269 } 270 271 public static org.hl7.fhir.dstu2.model.Composition.SectionComponent convertSectionComponent(org.hl7.fhir.r4.model.Composition.SectionComponent src) throws FHIRException { 272 if (src == null || src.isEmpty()) 273 return null; 274 org.hl7.fhir.dstu2.model.Composition.SectionComponent tgt = new org.hl7.fhir.dstu2.model.Composition.SectionComponent(); 275 ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().copyBackboneElement(src,tgt); 276 if (src.hasTitleElement()) 277 tgt.setTitleElement(String10_40.convertString(src.getTitleElement())); 278 if (src.hasCode()) 279 tgt.setCode(CodeableConcept10_40.convertCodeableConcept(src.getCode())); 280 if (src.hasText()) 281 tgt.setText(Narrative10_40.convertNarrative(src.getText())); 282 tgt.setMode(src.getMode().toCode()); 283 if (src.hasOrderedBy()) 284 tgt.setOrderedBy(CodeableConcept10_40.convertCodeableConcept(src.getOrderedBy())); 285 for (org.hl7.fhir.r4.model.Reference t : src.getEntry()) tgt.addEntry(Reference10_40.convertReference(t)); 286 if (src.hasEmptyReason()) 287 tgt.setEmptyReason(CodeableConcept10_40.convertCodeableConcept(src.getEmptyReason())); 288 for (org.hl7.fhir.r4.model.Composition.SectionComponent t : src.getSection()) 289 tgt.addSection(convertSectionComponent(t)); 290 return tgt; 291 } 292}