001package org.hl7.fhir.convertors.conv30_50.resources30_50; 002 003import org.hl7.fhir.convertors.context.ConversionContext30_50; 004import org.hl7.fhir.convertors.conv30_50.datatypes30_50.ContactDetail30_50; 005import org.hl7.fhir.convertors.conv30_50.datatypes30_50.Reference30_50; 006import org.hl7.fhir.convertors.conv30_50.datatypes30_50.RelatedArtifact30_50; 007import org.hl7.fhir.convertors.conv30_50.datatypes30_50.UsageContext30_50; 008import org.hl7.fhir.convertors.conv30_50.datatypes30_50.complextypes30_50.CodeableConcept30_50; 009import org.hl7.fhir.convertors.conv30_50.datatypes30_50.complextypes30_50.Identifier30_50; 010import org.hl7.fhir.convertors.conv30_50.datatypes30_50.complextypes30_50.Period30_50; 011import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.*; 012import org.hl7.fhir.dstu3.model.ContactDetail; 013import org.hl7.fhir.dstu3.model.Contributor; 014import org.hl7.fhir.dstu3.model.Contributor.ContributorType; 015import org.hl7.fhir.exceptions.FHIRException; 016 017public class Measure30_50 { 018 019 public static org.hl7.fhir.r5.model.Measure convertMeasure(org.hl7.fhir.dstu3.model.Measure src) throws FHIRException { 020 if (src == null) 021 return null; 022 org.hl7.fhir.r5.model.Measure tgt = new org.hl7.fhir.r5.model.Measure(); 023 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyDomainResource(src, tgt); 024 if (src.hasUrl()) 025 tgt.setUrlElement(Uri30_50.convertUri(src.getUrlElement())); 026 for (org.hl7.fhir.dstu3.model.Identifier t : src.getIdentifier()) 027 tgt.addIdentifier(Identifier30_50.convertIdentifier(t)); 028 if (src.hasVersion()) 029 tgt.setVersionElement(String30_50.convertString(src.getVersionElement())); 030 if (src.hasName()) 031 tgt.setNameElement(String30_50.convertString(src.getNameElement())); 032 if (src.hasTitle()) 033 tgt.setTitleElement(String30_50.convertString(src.getTitleElement())); 034 if (src.hasStatus()) 035 tgt.setStatusElement(Enumerations30_50.convertPublicationStatus(src.getStatusElement())); 036 if (src.hasExperimental()) 037 tgt.setExperimentalElement(Boolean30_50.convertBoolean(src.getExperimentalElement())); 038 if (src.hasType()) 039 for (org.hl7.fhir.dstu3.model.CodeableConcept concept : src.getType()) 040 tgt.addType(CodeableConcept30_50.convertCodeableConcept(concept)); 041 if (src.hasDate()) 042 tgt.setDateElement(DateTime30_50.convertDateTime(src.getDateElement())); 043 if (src.hasPublisher()) 044 tgt.setPublisherElement(String30_50.convertString(src.getPublisherElement())); 045 for (org.hl7.fhir.dstu3.model.ContactDetail t : src.getContact()) 046 tgt.addContact(ContactDetail30_50.convertContactDetail(t)); 047 if (src.hasDescription()) 048 tgt.setDescriptionElement(MarkDown30_50.convertMarkdown(src.getDescriptionElement())); 049 for (org.hl7.fhir.dstu3.model.UsageContext t : src.getUseContext()) 050 tgt.addUseContext(UsageContext30_50.convertUsageContext(t)); 051 for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getJurisdiction()) 052 tgt.addJurisdiction(CodeableConcept30_50.convertCodeableConcept(t)); 053 if (src.hasPurpose()) 054 tgt.setPurposeElement(MarkDown30_50.convertMarkdown(src.getPurposeElement())); 055 if (src.hasUsage()) 056 tgt.setUsageElement(String30_50.convertString(src.getUsageElement())); 057 if (src.hasCopyright()) 058 tgt.setCopyrightElement(MarkDown30_50.convertMarkdown(src.getCopyrightElement())); 059 if (src.hasApprovalDate()) 060 tgt.setApprovalDateElement(Date30_50.convertDate(src.getApprovalDateElement())); 061 if (src.hasLastReviewDate()) 062 tgt.setLastReviewDateElement(Date30_50.convertDate(src.getLastReviewDateElement())); 063 if (src.hasEffectivePeriod()) 064 tgt.setEffectivePeriod(Period30_50.convertPeriod(src.getEffectivePeriod())); 065 for (org.hl7.fhir.dstu3.model.Contributor t : src.getContributor()) { 066 if (t.getType() == ContributorType.AUTHOR) 067 if (t.hasContact()) 068 for (ContactDetail c : t.getContact()) tgt.addAuthor(ContactDetail30_50.convertContactDetail(c)); 069 else 070 tgt.addAuthor(new org.hl7.fhir.r5.model.ContactDetail().setName(t.getName())); 071 if (t.getType() == ContributorType.EDITOR) 072 if (t.hasContact()) 073 for (ContactDetail c : t.getContact()) 074 tgt.addEditor(ContactDetail30_50.convertContactDetail(c).setName(t.hasName() ? t.getName() : null)); 075 else 076 tgt.addAuthor(new org.hl7.fhir.r5.model.ContactDetail().setName(t.getName())); 077 if (t.getType() == ContributorType.REVIEWER) 078 if (t.hasContact()) 079 for (ContactDetail c : t.getContact()) 080 tgt.addReviewer(ContactDetail30_50.convertContactDetail(c).setName(t.hasName() ? t.getName() : null)); 081 else 082 tgt.addAuthor(new org.hl7.fhir.r5.model.ContactDetail().setName(t.getName())); 083 if (t.getType() == ContributorType.ENDORSER) 084 if (t.hasContact()) 085 for (ContactDetail c : t.getContact()) 086 tgt.addEndorser(ContactDetail30_50.convertContactDetail(c).setName(t.hasName() ? t.getName() : null)); 087 else 088 tgt.addAuthor(new org.hl7.fhir.r5.model.ContactDetail().setName(t.getName())); 089 } 090 for (org.hl7.fhir.dstu3.model.RelatedArtifact t : src.getRelatedArtifact()) 091 tgt.addRelatedArtifact(RelatedArtifact30_50.convertRelatedArtifact(t)); 092 for (org.hl7.fhir.dstu3.model.Reference r : src.getLibrary()) tgt.addLibrary(r.getReference()); 093 if (src.hasDisclaimer()) 094 tgt.setDisclaimerElement(MarkDown30_50.convertMarkdown(src.getDisclaimerElement())); 095 if (src.hasScoring()) 096 tgt.setScoring(CodeableConcept30_50.convertCodeableConcept(src.getScoring())); 097 if (src.hasCompositeScoring()) 098 tgt.setCompositeScoring(CodeableConcept30_50.convertCodeableConcept(src.getCompositeScoring())); 099 if (src.hasRiskAdjustment()) 100 tgt.setRiskAdjustmentElement(String30_50.convertString(src.getRiskAdjustmentElement())); 101 if (src.hasRateAggregation()) 102 tgt.setRateAggregationElement(String30_50.convertString(src.getRateAggregationElement())); 103 if (src.hasRationale()) 104 tgt.setRationaleElement(MarkDown30_50.convertMarkdown(src.getRationaleElement())); 105 if (src.hasClinicalRecommendationStatement()) 106 tgt.setClinicalRecommendationStatementElement(MarkDown30_50.convertMarkdown(src.getClinicalRecommendationStatementElement())); 107 if (src.hasImprovementNotation()) { 108 if (src.getImprovementNotation().toLowerCase().contains("increase") || src.getImprovementNotation().toLowerCase().contains("higher")) 109 tgt.setImprovementNotation(new org.hl7.fhir.r5.model.CodeableConcept().addCoding(new org.hl7.fhir.r5.model.Coding().setCode("increase").setSystem("http://terminology.hl7.org/CodeSystem/measure-improvement-notation")).setText(src.getImprovementNotation())); 110 else if (src.getImprovementNotation().toLowerCase().contains("decrease") || src.getImprovementNotation().toLowerCase().contains("lower")) 111 tgt.setImprovementNotation(new org.hl7.fhir.r5.model.CodeableConcept().addCoding(new org.hl7.fhir.r5.model.Coding().setCode("decrease").setSystem("http://terminology.hl7.org/CodeSystem/measure-improvement-notation")).setText(src.getImprovementNotation())); 112 else 113 tgt.setImprovementNotation(new org.hl7.fhir.r5.model.CodeableConcept().setText(src.getImprovementNotation())); 114 } 115 for (org.hl7.fhir.dstu3.model.MarkdownType m : src.getDefinition()) tgt.addDefinition(m.getValue()); 116 if (src.hasGuidance()) 117 tgt.setGuidanceElement(MarkDown30_50.convertMarkdown(src.getGuidanceElement())); 118 for (org.hl7.fhir.dstu3.model.Measure.MeasureGroupComponent g : src.getGroup()) 119 tgt.addGroup(convertMeasureGroup(g)); 120 return tgt; 121 } 122 123 public static org.hl7.fhir.dstu3.model.Measure convertMeasure(org.hl7.fhir.r5.model.Measure src) throws FHIRException { 124 if (src == null) 125 return null; 126 org.hl7.fhir.dstu3.model.Measure tgt = new org.hl7.fhir.dstu3.model.Measure(); 127 ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyDomainResource(src, tgt); 128 if (src.hasUrl()) 129 tgt.setUrlElement(Uri30_50.convertUri(src.getUrlElement())); 130 for (org.hl7.fhir.r5.model.Identifier t : src.getIdentifier()) 131 tgt.addIdentifier(Identifier30_50.convertIdentifier(t)); 132 if (src.hasVersion()) 133 tgt.setVersionElement(String30_50.convertString(src.getVersionElement())); 134 if (src.hasName()) 135 tgt.setNameElement(String30_50.convertString(src.getNameElement())); 136 if (src.hasTitle()) 137 tgt.setTitleElement(String30_50.convertString(src.getTitleElement())); 138 if (src.hasStatus()) 139 tgt.setStatusElement(Enumerations30_50.convertPublicationStatus(src.getStatusElement())); 140 if (src.hasExperimental()) 141 tgt.setExperimentalElement(Boolean30_50.convertBoolean(src.getExperimentalElement())); 142 if (src.hasType()) 143 for (org.hl7.fhir.r5.model.CodeableConcept concept : src.getType()) 144 tgt.addType(CodeableConcept30_50.convertCodeableConcept(concept)); 145 if (src.hasDate()) 146 tgt.setDateElement(DateTime30_50.convertDateTime(src.getDateElement())); 147 if (src.hasPublisher()) 148 tgt.setPublisherElement(String30_50.convertString(src.getPublisherElement())); 149 for (org.hl7.fhir.r5.model.ContactDetail t : src.getContact()) 150 tgt.addContact(ContactDetail30_50.convertContactDetail(t)); 151 if (src.hasDescription()) 152 tgt.setDescriptionElement(MarkDown30_50.convertMarkdown(src.getDescriptionElement())); 153 for (org.hl7.fhir.r5.model.UsageContext t : src.getUseContext()) 154 tgt.addUseContext(UsageContext30_50.convertUsageContext(t)); 155 for (org.hl7.fhir.r5.model.CodeableConcept t : src.getJurisdiction()) 156 tgt.addJurisdiction(CodeableConcept30_50.convertCodeableConcept(t)); 157 if (src.hasPurpose()) 158 tgt.setPurposeElement(MarkDown30_50.convertMarkdown(src.getPurposeElement())); 159 if (src.hasUsage()) 160 tgt.setUsageElement(String30_50.convertString(src.getUsageElement())); 161 if (src.hasCopyright()) 162 tgt.setCopyrightElement(MarkDown30_50.convertMarkdown(src.getCopyrightElement())); 163 if (src.hasApprovalDate()) 164 tgt.setApprovalDateElement(Date30_50.convertDate(src.getApprovalDateElement())); 165 if (src.hasLastReviewDate()) 166 tgt.setLastReviewDateElement(Date30_50.convertDate(src.getLastReviewDateElement())); 167 if (src.hasEffectivePeriod()) 168 tgt.setEffectivePeriod(Period30_50.convertPeriod(src.getEffectivePeriod())); 169 if (src.hasAuthor()) 170 for (org.hl7.fhir.r5.model.ContactDetail c : src.getAuthor()) { 171 ContactDetail cd = ContactDetail30_50.convertContactDetail(c); 172 Contributor con = new Contributor().setType(ContributorType.AUTHOR); 173 if (cd.hasName()) 174 con.setName(cd.getName()); 175 tgt.addContributor(con); 176 } 177 if (src.hasEditor()) 178 for (org.hl7.fhir.r5.model.ContactDetail c : src.getAuthor()) { 179 ContactDetail cd = ContactDetail30_50.convertContactDetail(c); 180 Contributor con = new Contributor().setType(ContributorType.EDITOR); 181 if (cd.hasName()) 182 con.setName(cd.getName()); 183 tgt.addContributor(con); 184 } 185 if (src.hasReviewer()) 186 for (org.hl7.fhir.r5.model.ContactDetail c : src.getAuthor()) { 187 ContactDetail cd = ContactDetail30_50.convertContactDetail(c); 188 Contributor con = new Contributor().setType(ContributorType.REVIEWER); 189 if (cd.hasName()) 190 con.setName(cd.getName()); 191 tgt.addContributor(con); 192 } 193 if (src.hasEndorser()) 194 for (org.hl7.fhir.r5.model.ContactDetail c : src.getAuthor()) { 195 ContactDetail cd = ContactDetail30_50.convertContactDetail(c); 196 Contributor con = new Contributor().setType(ContributorType.ENDORSER); 197 if (cd.hasName()) 198 con.setName(cd.getName()); 199 tgt.addContributor(con); 200 } 201 for (org.hl7.fhir.r5.model.RelatedArtifact t : src.getRelatedArtifact()) 202 tgt.addRelatedArtifact(RelatedArtifact30_50.convertRelatedArtifact(t)); 203 for (org.hl7.fhir.r5.model.CanonicalType r : src.getLibrary()) 204 tgt.addLibrary(Reference30_50.convertCanonicalToReference(r)); 205 if (src.hasDisclaimer()) 206 tgt.setDisclaimerElement(MarkDown30_50.convertMarkdown(src.getDisclaimerElement())); 207 if (src.hasScoring()) 208 tgt.setScoring(CodeableConcept30_50.convertCodeableConcept(src.getScoring())); 209 if (src.hasCompositeScoring()) 210 tgt.setCompositeScoring(CodeableConcept30_50.convertCodeableConcept(src.getCompositeScoring())); 211 if (src.hasRiskAdjustment()) 212 tgt.setRiskAdjustmentElement(String30_50.convertString(src.getRiskAdjustmentElement())); 213 if (src.hasRateAggregation()) 214 tgt.setRateAggregationElement(String30_50.convertString(src.getRateAggregationElement())); 215 if (src.hasRationale()) 216 tgt.setRationaleElement(MarkDown30_50.convertMarkdown(src.getRationaleElement())); 217 if (src.hasClinicalRecommendationStatement()) 218 tgt.setClinicalRecommendationStatementElement(MarkDown30_50.convertMarkdown(src.getClinicalRecommendationStatementElement())); 219 if (src.hasImprovementNotation()) 220 for (org.hl7.fhir.r5.model.Coding cc : src.getImprovementNotation().getCoding()) { 221 if (cc.hasCode() && cc.getCode().equals("increase")) 222 tgt.setImprovementNotation(cc.getCode()); 223 else if (cc.hasCode() && cc.getCode().equals("decrease")) 224 tgt.setImprovementNotation(cc.getCode()); 225 } 226 for (org.hl7.fhir.r5.model.MarkdownType m : src.getDefinition()) tgt.addDefinition(m.getValue()); 227 if (src.hasGuidance()) 228 tgt.setGuidanceElement(MarkDown30_50.convertMarkdown(src.getGuidanceElement())); 229 for (org.hl7.fhir.r5.model.Measure.MeasureGroupComponent g : src.getGroup()) tgt.addGroup(convertMeasureGroup(g)); 230 return tgt; 231 } 232 233 public static org.hl7.fhir.dstu3.model.Measure.MeasureGroupComponent convertMeasureGroup(org.hl7.fhir.r5.model.Measure.MeasureGroupComponent src) { 234 if (src == null) 235 return null; 236 org.hl7.fhir.dstu3.model.Measure.MeasureGroupComponent tgt = new org.hl7.fhir.dstu3.model.Measure.MeasureGroupComponent(); 237 if (src.hasCode() && src.getCode().hasCoding()) 238 tgt.setIdentifier(new org.hl7.fhir.dstu3.model.Identifier().setValue(src.getCode().getCodingFirstRep().getCode())); 239 if (src.hasDescription()) 240 tgt.setDescriptionElement(String30_50.convertString(src.getDescriptionElement())); 241 for (org.hl7.fhir.r5.model.Measure.MeasureGroupPopulationComponent p : src.getPopulation()) 242 tgt.addPopulation(convertMeasureGroupPopulation(p)); 243 for (org.hl7.fhir.r5.model.Measure.MeasureGroupStratifierComponent s : src.getStratifier()) 244 tgt.addStratifier(convertMeasureGroupStratifier(s)); 245 return tgt; 246 } 247 248 public static org.hl7.fhir.r5.model.Measure.MeasureGroupComponent convertMeasureGroup(org.hl7.fhir.dstu3.model.Measure.MeasureGroupComponent src) { 249 if (src == null) 250 return null; 251 org.hl7.fhir.r5.model.Measure.MeasureGroupComponent tgt = new org.hl7.fhir.r5.model.Measure.MeasureGroupComponent(); 252 if (src.hasIdentifier()) 253 tgt.setCode(new org.hl7.fhir.r5.model.CodeableConcept().addCoding(new org.hl7.fhir.r5.model.Coding().setCode(src.getIdentifier().getValue()))); 254 if (src.hasDescription()) 255 tgt.setDescriptionElement(String30_50.convertString(src.getDescriptionElement())); 256 for (org.hl7.fhir.dstu3.model.Measure.MeasureGroupPopulationComponent p : src.getPopulation()) 257 tgt.addPopulation(convertMeasureGroupPopulation(p)); 258 for (org.hl7.fhir.dstu3.model.Measure.MeasureGroupStratifierComponent s : src.getStratifier()) 259 tgt.addStratifier(convertMeasureGroupStratifier(s)); 260 return tgt; 261 } 262 263 public static org.hl7.fhir.dstu3.model.Measure.MeasureGroupPopulationComponent convertMeasureGroupPopulation(org.hl7.fhir.r5.model.Measure.MeasureGroupPopulationComponent src) { 264 if (src == null) 265 return null; 266 org.hl7.fhir.dstu3.model.Measure.MeasureGroupPopulationComponent tgt = new org.hl7.fhir.dstu3.model.Measure.MeasureGroupPopulationComponent(); 267 if (src.hasCode()) 268 tgt.setCode(CodeableConcept30_50.convertCodeableConcept(src.getCode())); 269 if (src.hasDescription()) 270 tgt.setDescriptionElement(String30_50.convertString(src.getDescriptionElement())); 271 if (src.hasCriteria() && src.getCriteria().hasExpression()) 272 tgt.setCriteria(src.getCriteria().getExpression()); 273 if (src.hasCriteria() && src.getCriteria().hasName()) { 274 tgt.setName(src.getCriteria().getName()); 275 } 276 return tgt; 277 } 278 279 public static org.hl7.fhir.r5.model.Measure.MeasureGroupPopulationComponent convertMeasureGroupPopulation(org.hl7.fhir.dstu3.model.Measure.MeasureGroupPopulationComponent src) { 280 if (src == null) 281 return null; 282 org.hl7.fhir.r5.model.Measure.MeasureGroupPopulationComponent tgt = new org.hl7.fhir.r5.model.Measure.MeasureGroupPopulationComponent(); 283 if (src.hasCode()) 284 tgt.setCode(CodeableConcept30_50.convertCodeableConcept(src.getCode())); 285 if (src.hasDescription()) 286 tgt.setDescriptionElement(String30_50.convertString(src.getDescriptionElement())); 287 if (src.hasCriteria()) 288 tgt.setCriteria(new org.hl7.fhir.r5.model.Expression().setExpression(src.getCriteria())); 289 if (src.hasName()) { 290 if (tgt.hasCriteria()) 291 tgt.getCriteria().setName(src.getName()); 292 else 293 tgt.setCriteria(new org.hl7.fhir.r5.model.Expression().setName(src.getName())); 294 } 295 return tgt; 296 } 297 298 public static org.hl7.fhir.r5.model.Measure.MeasureGroupStratifierComponent convertMeasureGroupStratifier(org.hl7.fhir.dstu3.model.Measure.MeasureGroupStratifierComponent src) { 299 if (src == null) 300 return null; 301 org.hl7.fhir.r5.model.Measure.MeasureGroupStratifierComponent tgt = new org.hl7.fhir.r5.model.Measure.MeasureGroupStratifierComponent(); 302 if (src.hasIdentifier()) 303 tgt.setCode(new org.hl7.fhir.r5.model.CodeableConcept().addCoding(new org.hl7.fhir.r5.model.Coding().setCode(src.getIdentifier().getValue()))); 304 if (src.hasCriteria()) 305 tgt.setCriteria(new org.hl7.fhir.r5.model.Expression().setExpression(src.getCriteria())); 306 return tgt; 307 } 308 309 public static org.hl7.fhir.dstu3.model.Measure.MeasureGroupStratifierComponent convertMeasureGroupStratifier(org.hl7.fhir.r5.model.Measure.MeasureGroupStratifierComponent src) { 310 if (src == null) 311 return null; 312 org.hl7.fhir.dstu3.model.Measure.MeasureGroupStratifierComponent tgt = new org.hl7.fhir.dstu3.model.Measure.MeasureGroupStratifierComponent(); 313 if (src.hasCode() && src.getCode().hasCoding()) 314 tgt.setIdentifier(new org.hl7.fhir.dstu3.model.Identifier().setValue(src.getCode().getCodingFirstRep().getCode())); 315 if (src.hasCriteria() && src.getCriteria().hasExpression()) 316 tgt.setCriteria(src.getCriteria().getExpression()); 317 return tgt; 318 } 319}