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