001package org.hl7.fhir.convertors.conv40_50.datatypes40_50.metadata40_50; 002 003import org.hl7.fhir.convertors.context.ConversionContext40_50; 004import org.hl7.fhir.convertors.conv40_50.datatypes40_50.general40_50.Coding40_50; 005import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.Canonical40_50; 006import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.PositiveInt40_50; 007import org.hl7.fhir.convertors.conv40_50.datatypes40_50.primitive40_50.String40_50; 008import org.hl7.fhir.exceptions.FHIRException; 009 010public class DataRequirement40_50 { 011 public static org.hl7.fhir.r5.model.DataRequirement convertDataRequirement(org.hl7.fhir.r4.model.DataRequirement src) throws FHIRException { 012 if (src == null) return null; 013 org.hl7.fhir.r5.model.DataRequirement tgt = new org.hl7.fhir.r5.model.DataRequirement(); 014 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 015 if (src.hasType()) 016 tgt.setType(org.hl7.fhir.r5.model.Enumerations.FHIRAllTypes.fromCode(convertResourceName4to5(src.getType()))); 017 for (org.hl7.fhir.r4.model.CanonicalType t : src.getProfile()) 018 tgt.getProfile().add(Canonical40_50.convertCanonical(t)); 019 if (src.hasSubject()) 020 tgt.setSubject(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getSubject())); 021 for (org.hl7.fhir.r4.model.StringType t : src.getMustSupport()) 022 tgt.getMustSupport().add(String40_50.convertString(t)); 023 for (org.hl7.fhir.r4.model.DataRequirement.DataRequirementCodeFilterComponent t : src.getCodeFilter()) 024 tgt.addCodeFilter(convertDataRequirementCodeFilterComponent(t)); 025 for (org.hl7.fhir.r4.model.DataRequirement.DataRequirementDateFilterComponent t : src.getDateFilter()) 026 tgt.addDateFilter(convertDataRequirementDateFilterComponent(t)); 027 if (src.hasLimit()) tgt.setLimitElement(PositiveInt40_50.convertPositiveInt(src.getLimitElement())); 028 for (org.hl7.fhir.r4.model.DataRequirement.DataRequirementSortComponent t : src.getSort()) 029 tgt.addSort(convertDataRequirementSortComponent(t)); 030 return tgt; 031 } 032 033 public static org.hl7.fhir.r4.model.DataRequirement convertDataRequirement(org.hl7.fhir.r5.model.DataRequirement src) throws FHIRException { 034 if (src == null) return null; 035 org.hl7.fhir.r4.model.DataRequirement tgt = new org.hl7.fhir.r4.model.DataRequirement(); 036 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 037 if (src.hasType()) tgt.setType(convertResourceName5to4(src.getType().toCode())); 038 for (org.hl7.fhir.r5.model.CanonicalType t : src.getProfile()) 039 tgt.getProfile().add(Canonical40_50.convertCanonical(t)); 040 if (src.hasSubject()) 041 tgt.setSubject(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getSubject())); 042 for (org.hl7.fhir.r5.model.StringType t : src.getMustSupport()) 043 tgt.getMustSupport().add(String40_50.convertString(t)); 044 for (org.hl7.fhir.r5.model.DataRequirement.DataRequirementCodeFilterComponent t : src.getCodeFilter()) 045 tgt.addCodeFilter(convertDataRequirementCodeFilterComponent(t)); 046 for (org.hl7.fhir.r5.model.DataRequirement.DataRequirementDateFilterComponent t : src.getDateFilter()) 047 tgt.addDateFilter(convertDataRequirementDateFilterComponent(t)); 048 if (src.hasLimit()) tgt.setLimitElement(PositiveInt40_50.convertPositiveInt(src.getLimitElement())); 049 for (org.hl7.fhir.r5.model.DataRequirement.DataRequirementSortComponent t : src.getSort()) 050 tgt.addSort(convertDataRequirementSortComponent(t)); 051 return tgt; 052 } 053 054 private static String convertResourceName4to5(String name) { 055 if (name == null) return null; 056 if (name.equals("MedicationStatement")) { 057 return "MedicationUsage"; 058 } 059 return name; 060 } 061 062 private static String convertResourceName5to4(String name) { 063 if (name == null) return null; 064 if (name.equals("MedicationUsage")) { 065 return "MedicationStatement"; 066 } 067 return name; 068 } 069 070 public static org.hl7.fhir.r5.model.DataRequirement.DataRequirementCodeFilterComponent convertDataRequirementCodeFilterComponent(org.hl7.fhir.r4.model.DataRequirement.DataRequirementCodeFilterComponent src) throws FHIRException { 071 if (src == null) return null; 072 org.hl7.fhir.r5.model.DataRequirement.DataRequirementCodeFilterComponent tgt = new org.hl7.fhir.r5.model.DataRequirement.DataRequirementCodeFilterComponent(); 073 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 074 if (src.hasPath()) tgt.setPathElement(String40_50.convertString(src.getPathElement())); 075 if (src.hasSearchParam()) tgt.setSearchParamElement(String40_50.convertString(src.getSearchParamElement())); 076 if (src.hasValueSet()) tgt.setValueSetElement(Canonical40_50.convertCanonical(src.getValueSetElement())); 077 for (org.hl7.fhir.r4.model.Coding t : src.getCode()) tgt.addCode(Coding40_50.convertCoding(t)); 078 return tgt; 079 } 080 081 public static org.hl7.fhir.r4.model.DataRequirement.DataRequirementCodeFilterComponent convertDataRequirementCodeFilterComponent(org.hl7.fhir.r5.model.DataRequirement.DataRequirementCodeFilterComponent src) throws FHIRException { 082 if (src == null) return null; 083 org.hl7.fhir.r4.model.DataRequirement.DataRequirementCodeFilterComponent tgt = new org.hl7.fhir.r4.model.DataRequirement.DataRequirementCodeFilterComponent(); 084 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 085 if (src.hasPath()) tgt.setPathElement(String40_50.convertString(src.getPathElement())); 086 if (src.hasSearchParam()) tgt.setSearchParamElement(String40_50.convertString(src.getSearchParamElement())); 087 if (src.hasValueSet()) tgt.setValueSetElement(Canonical40_50.convertCanonical(src.getValueSetElement())); 088 for (org.hl7.fhir.r5.model.Coding t : src.getCode()) tgt.addCode(Coding40_50.convertCoding(t)); 089 return tgt; 090 } 091 092 public static org.hl7.fhir.r5.model.DataRequirement.DataRequirementDateFilterComponent convertDataRequirementDateFilterComponent(org.hl7.fhir.r4.model.DataRequirement.DataRequirementDateFilterComponent src) throws FHIRException { 093 if (src == null) return null; 094 org.hl7.fhir.r5.model.DataRequirement.DataRequirementDateFilterComponent tgt = new org.hl7.fhir.r5.model.DataRequirement.DataRequirementDateFilterComponent(); 095 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 096 if (src.hasPath()) tgt.setPathElement(String40_50.convertString(src.getPathElement())); 097 if (src.hasSearchParam()) tgt.setSearchParamElement(String40_50.convertString(src.getSearchParamElement())); 098 if (src.hasValue()) 099 tgt.setValue(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getValue())); 100 return tgt; 101 } 102 103 public static org.hl7.fhir.r4.model.DataRequirement.DataRequirementDateFilterComponent convertDataRequirementDateFilterComponent(org.hl7.fhir.r5.model.DataRequirement.DataRequirementDateFilterComponent src) throws FHIRException { 104 if (src == null) return null; 105 org.hl7.fhir.r4.model.DataRequirement.DataRequirementDateFilterComponent tgt = new org.hl7.fhir.r4.model.DataRequirement.DataRequirementDateFilterComponent(); 106 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 107 if (src.hasPath()) tgt.setPathElement(String40_50.convertString(src.getPathElement())); 108 if (src.hasSearchParam()) tgt.setSearchParamElement(String40_50.convertString(src.getSearchParamElement())); 109 if (src.hasValue()) 110 tgt.setValue(ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().convertType(src.getValue())); 111 return tgt; 112 } 113 114 public static org.hl7.fhir.r5.model.DataRequirement.DataRequirementSortComponent convertDataRequirementSortComponent(org.hl7.fhir.r4.model.DataRequirement.DataRequirementSortComponent src) throws FHIRException { 115 if (src == null) return null; 116 org.hl7.fhir.r5.model.DataRequirement.DataRequirementSortComponent tgt = new org.hl7.fhir.r5.model.DataRequirement.DataRequirementSortComponent(); 117 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 118 if (src.hasPath()) tgt.setPathElement(String40_50.convertString(src.getPathElement())); 119 if (src.hasDirection()) tgt.setDirectionElement(convertSortDirection(src.getDirectionElement())); 120 return tgt; 121 } 122 123 public static org.hl7.fhir.r4.model.DataRequirement.DataRequirementSortComponent convertDataRequirementSortComponent(org.hl7.fhir.r5.model.DataRequirement.DataRequirementSortComponent src) throws FHIRException { 124 if (src == null) return null; 125 org.hl7.fhir.r4.model.DataRequirement.DataRequirementSortComponent tgt = new org.hl7.fhir.r4.model.DataRequirement.DataRequirementSortComponent(); 126 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 127 if (src.hasPath()) tgt.setPathElement(String40_50.convertString(src.getPathElement())); 128 if (src.hasDirection()) tgt.setDirectionElement(convertSortDirection(src.getDirectionElement())); 129 return tgt; 130 } 131 132 static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.DataRequirement.SortDirection> convertSortDirection(org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.DataRequirement.SortDirection> src) throws FHIRException { 133 if (src == null || src.isEmpty()) return null; 134 org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.DataRequirement.SortDirection> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.DataRequirement.SortDirectionEnumFactory()); 135 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 136 if (src.getValue() == null) { 137 tgt.setValue(org.hl7.fhir.r5.model.DataRequirement.SortDirection.NULL); 138 } else { 139 switch (src.getValue()) { 140 case ASCENDING: 141 tgt.setValue(org.hl7.fhir.r5.model.DataRequirement.SortDirection.ASCENDING); 142 break; 143 case DESCENDING: 144 tgt.setValue(org.hl7.fhir.r5.model.DataRequirement.SortDirection.DESCENDING); 145 break; 146 default: 147 tgt.setValue(org.hl7.fhir.r5.model.DataRequirement.SortDirection.NULL); 148 break; 149 } 150 } 151 return tgt; 152 } 153 154 static public org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.DataRequirement.SortDirection> convertSortDirection(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.DataRequirement.SortDirection> src) throws FHIRException { 155 if (src == null || src.isEmpty()) return null; 156 org.hl7.fhir.r4.model.Enumeration<org.hl7.fhir.r4.model.DataRequirement.SortDirection> tgt = new org.hl7.fhir.r4.model.Enumeration<>(new org.hl7.fhir.r4.model.DataRequirement.SortDirectionEnumFactory()); 157 ConversionContext40_50.INSTANCE.getVersionConvertor_40_50().copyElement(src, tgt); 158 if (src.getValue() == null) { 159 tgt.setValue(org.hl7.fhir.r4.model.DataRequirement.SortDirection.NULL); 160 } else { 161 switch (src.getValue()) { 162 case ASCENDING: 163 tgt.setValue(org.hl7.fhir.r4.model.DataRequirement.SortDirection.ASCENDING); 164 break; 165 case DESCENDING: 166 tgt.setValue(org.hl7.fhir.r4.model.DataRequirement.SortDirection.DESCENDING); 167 break; 168 default: 169 tgt.setValue(org.hl7.fhir.r4.model.DataRequirement.SortDirection.NULL); 170 break; 171 } 172 } 173 return tgt; 174 } 175}