001package org.hl7.fhir.convertors.conv40_50.datatypes40_50; 002 003import org.hl7.fhir.convertors.VersionConvertorConstants; 004import org.hl7.fhir.r5.model.CodeType; 005import org.hl7.fhir.r5.model.Enumerations.FHIRTypes; 006import org.hl7.fhir.r5.model.Extension; 007import org.hl7.fhir.utilities.Utilities; 008 009public class Utilities40_50 { 010 011 public static void convertType(org.hl7.fhir.r4.model.CodeType src, org.hl7.fhir.r5.model.Enumeration<FHIRTypes> tgt) { 012 if (Utilities.existsInList(src.primitiveValue(), "Media")) { 013 setType(tgt, src.primitiveValue(), "DocumentReference"); 014 015 } else if (Utilities.existsInList(src.primitiveValue(), "DeviceUseStatement")) { 016 setType(tgt, src.primitiveValue(), "DeviceUsage"); 017 018 } else if (Utilities.existsInList(src.primitiveValue(), "DocumentManifest")) { 019 setType(tgt, src.primitiveValue(), "List"); 020 021 } else if (Utilities.existsInList(src.primitiveValue(), "MedicinalProduct")) { 022 setType(tgt, src.primitiveValue(), "MedicinalProductDefinition"); 023 024 } else if (Utilities.existsInList(src.primitiveValue(), "MedicinalProductAuthorization")) { 025 setType(tgt, src.primitiveValue(), "RegulatedAuthorization"); 026 027 } else if (Utilities.existsInList(src.primitiveValue(), "RequestGroup")) { 028 setType(tgt, src.primitiveValue(), "RequestOrchestration"); 029 030 } else if (Utilities.existsInList(src.primitiveValue(), "MedicinalProductIngredient")) { 031 setType(tgt, src.primitiveValue(), "Ingredient"); 032 033 } else if (Utilities.existsInList(src.primitiveValue(), "MedicinalProductManufactured")) { 034 setType(tgt, src.primitiveValue(), "ManufacturedItemDefinition"); 035 036 } else if (Utilities.existsInList(src.primitiveValue(), "MedicinalProductPackaged")) { 037 setType(tgt, src.primitiveValue(), "PackagedProductDefinition"); 038 039 } else if (Utilities.existsInList(src.primitiveValue(), "MedicinalProductPharmaceutical")) { 040 setType(tgt, src.primitiveValue(), "AdministrableProductDefinition"); 041 042 } else if (Utilities.existsInList(src.primitiveValue(), "SubstanceSpecification")) { 043 setType(tgt, src.primitiveValue(), "SubstanceDefinition"); 044 045 } else if (Utilities.existsInList(src.primitiveValue(), "MedicinalProductContraindication", "MedicinalProductIndication", "MedicinalProductInteraction", "MedicinalProductUndesirableEffect", "ClinicalUseDefinition")) { 046 setType(tgt, src.primitiveValue(), "SubstanceDefinition"); 047 048 } else if (Utilities.existsInList(src.primitiveValue(), "EffectEvidenceSynthesis", "CatalogEntry", "ResearchDefinition", "ResearchElementDefinition", "RiskEvidenceSynthesis", 049 "Contributor", "ProdCharacteristic", "SubstanceAmount")) { 050 setType(tgt, src.primitiveValue(), "Basic"); 051 052 } else { 053 tgt.setValue(org.hl7.fhir.r5.model.Enumerations.FHIRTypes.fromCode(src.primitiveValue())); 054 } 055 } 056 057 private static void setType(org.hl7.fhir.r5.model.Enumeration<FHIRTypes> tgt, String original, String value) { 058 tgt.setValueAsString(value); 059 tgt.addExtension(new Extension().setUrl(VersionConvertorConstants.EXT_OPDEF_ORIGINAL_TYPE).setValue(new CodeType(original))); 060 } 061 062 public static void convertType(org.hl7.fhir.r5.model.Enumeration<FHIRTypes> src, org.hl7.fhir.r4.model.CodeType tgt) { 063 if (src.hasExtension(VersionConvertorConstants.EXT_OPDEF_ORIGINAL_TYPE)) { 064 tgt.setValueAsString(src.getExtensionString(VersionConvertorConstants.EXT_OPDEF_ORIGINAL_TYPE)); 065 } else { 066 tgt.setValue(src.asStringValue()); 067 } 068 069 } 070 071}