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