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