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