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