
001package org.hl7.fhir.convertors.conv30_40.resources30_40; 002 003import org.hl7.fhir.convertors.context.ConversionContext30_40; 004import org.hl7.fhir.convertors.conv30_40.datatypes30_40.Reference30_40; 005import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.Annotation30_40; 006import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.CodeableConcept30_40; 007import org.hl7.fhir.convertors.conv30_40.datatypes30_40.complextypes30_40.Identifier30_40; 008import org.hl7.fhir.convertors.conv30_40.datatypes30_40.primitivetypes30_40.DateTime30_40; 009import org.hl7.fhir.exceptions.FHIRException; 010 011public class Condition30_40 { 012 013 private static final String CODE_SYSTEM_LEGACY_CONDITION_VER_CLINICAL_URL = "http://hl7.org/fhir/condition-ver-status"; 014 015 private static final String CODE_SYSTEM_CONDITION_VER_CLINICAL_URL = "http://terminology.hl7.org/CodeSystem/condition-ver-status"; 016 017 private static final String CODE_SYSTEM_LEGACY_CONDITION_CLINICAL_URL = "http://hl7.org/fhir/condition-clinical"; 018 019 private static final String CODE_SYSTEM_CONDITION_CLINICAL_URL = "http://terminology.hl7.org/CodeSystem/condition-clinical"; 020 021 public static org.hl7.fhir.r4.model.Condition convertCondition(org.hl7.fhir.dstu3.model.Condition src) throws FHIRException { 022 if (src == null) 023 return null; 024 org.hl7.fhir.r4.model.Condition tgt = new org.hl7.fhir.r4.model.Condition(); 025 ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyDomainResource(src, tgt); 026 for (org.hl7.fhir.dstu3.model.Identifier t : src.getIdentifier()) 027 tgt.addIdentifier(Identifier30_40.convertIdentifier(t)); 028 if (src.hasClinicalStatus()) 029 tgt.setClinicalStatus(convertConditionClinicalStatus(src.getClinicalStatus())); 030 if (src.hasVerificationStatus()) 031 tgt.setVerificationStatus(convertConditionVerificationStatus(src.getVerificationStatus())); 032 for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getCategory()) 033 tgt.addCategory(CodeableConcept30_40.convertCodeableConcept(t)); 034 if (src.hasSeverity()) 035 tgt.setSeverity(CodeableConcept30_40.convertCodeableConcept(src.getSeverity())); 036 if (src.hasCode()) 037 tgt.setCode(CodeableConcept30_40.convertCodeableConcept(src.getCode())); 038 for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getBodySite()) 039 tgt.addBodySite(CodeableConcept30_40.convertCodeableConcept(t)); 040 if (src.hasSubject()) 041 tgt.setSubject(Reference30_40.convertReference(src.getSubject())); 042 if (src.hasContext()) 043 tgt.setEncounter(Reference30_40.convertReference(src.getContext())); 044 if (src.hasOnset()) 045 tgt.setOnset(ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().convertType(src.getOnset())); 046 if (src.hasAbatement()) 047 tgt.setAbatement(ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().convertType(src.getAbatement())); 048 if (src.hasAssertedDate()) 049 tgt.setRecordedDateElement(DateTime30_40.convertDateTime(src.getAssertedDateElement())); 050 if (src.hasAsserter()) 051 tgt.setAsserter(Reference30_40.convertReference(src.getAsserter())); 052 if (src.hasStage()) 053 tgt.addStage(convertConditionStageComponent(src.getStage())); 054 for (org.hl7.fhir.dstu3.model.Condition.ConditionEvidenceComponent t : src.getEvidence()) 055 tgt.addEvidence(convertConditionEvidenceComponent(t)); 056 for (org.hl7.fhir.dstu3.model.Annotation t : src.getNote()) tgt.addNote(Annotation30_40.convertAnnotation(t)); 057 return tgt; 058 } 059 060 public static org.hl7.fhir.dstu3.model.Condition convertCondition(org.hl7.fhir.r4.model.Condition src) throws FHIRException { 061 if (src == null) 062 return null; 063 org.hl7.fhir.dstu3.model.Condition tgt = new org.hl7.fhir.dstu3.model.Condition(); 064 ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyDomainResource(src, tgt); 065 for (org.hl7.fhir.r4.model.Identifier t : src.getIdentifier()) 066 tgt.addIdentifier(Identifier30_40.convertIdentifier(t)); 067 if (src.hasClinicalStatus()) 068 tgt.setClinicalStatus(convertConditionClinicalStatus(src.getClinicalStatus())); 069 if (src.hasVerificationStatus()) 070 tgt.setVerificationStatus(convertConditionVerificationStatus(src.getVerificationStatus())); 071 for (org.hl7.fhir.r4.model.CodeableConcept t : src.getCategory()) 072 tgt.addCategory(CodeableConcept30_40.convertCodeableConcept(t)); 073 if (src.hasSeverity()) 074 tgt.setSeverity(CodeableConcept30_40.convertCodeableConcept(src.getSeverity())); 075 if (src.hasCode()) 076 tgt.setCode(CodeableConcept30_40.convertCodeableConcept(src.getCode())); 077 for (org.hl7.fhir.r4.model.CodeableConcept t : src.getBodySite()) 078 tgt.addBodySite(CodeableConcept30_40.convertCodeableConcept(t)); 079 if (src.hasSubject()) 080 tgt.setSubject(Reference30_40.convertReference(src.getSubject())); 081 if (src.hasEncounter()) 082 tgt.setContext(Reference30_40.convertReference(src.getEncounter())); 083 if (src.hasOnset()) 084 tgt.setOnset(ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().convertType(src.getOnset())); 085 if (src.hasAbatement()) 086 tgt.setAbatement(ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().convertType(src.getAbatement())); 087 if (src.hasRecordedDate()) 088 tgt.setAssertedDateElement(DateTime30_40.convertDateTime(src.getRecordedDateElement())); 089 if (src.hasAsserter()) 090 tgt.setAsserter(Reference30_40.convertReference(src.getAsserter())); 091 if (src.hasStage()) 092 tgt.setStage(convertConditionStageComponent(src.getStageFirstRep())); 093 for (org.hl7.fhir.r4.model.Condition.ConditionEvidenceComponent t : src.getEvidence()) 094 tgt.addEvidence(convertConditionEvidenceComponent(t)); 095 for (org.hl7.fhir.r4.model.Annotation t : src.getNote()) tgt.addNote(Annotation30_40.convertAnnotation(t)); 096 return tgt; 097 } 098 099 static public org.hl7.fhir.dstu3.model.Condition.ConditionClinicalStatus convertConditionClinicalStatus(org.hl7.fhir.r4.model.CodeableConcept src) throws FHIRException { 100 if (src == null) 101 return null; 102 if (src.hasCoding(CODE_SYSTEM_CONDITION_CLINICAL_URL, "active") || src.hasCoding(CODE_SYSTEM_LEGACY_CONDITION_CLINICAL_URL, "active")) 103 return org.hl7.fhir.dstu3.model.Condition.ConditionClinicalStatus.ACTIVE; 104 if (src.hasCoding(CODE_SYSTEM_CONDITION_CLINICAL_URL, "recurrence") || src.hasCoding(CODE_SYSTEM_LEGACY_CONDITION_CLINICAL_URL, "recurrence")) 105 return org.hl7.fhir.dstu3.model.Condition.ConditionClinicalStatus.RECURRENCE; 106 if (src.hasCoding(CODE_SYSTEM_CONDITION_CLINICAL_URL, "inactive") || src.hasCoding(CODE_SYSTEM_LEGACY_CONDITION_CLINICAL_URL, "inactive")) 107 return org.hl7.fhir.dstu3.model.Condition.ConditionClinicalStatus.INACTIVE; 108 if (src.hasCoding(CODE_SYSTEM_CONDITION_CLINICAL_URL, "remission") || src.hasCoding(CODE_SYSTEM_LEGACY_CONDITION_CLINICAL_URL, "remission")) 109 return org.hl7.fhir.dstu3.model.Condition.ConditionClinicalStatus.REMISSION; 110 if (src.hasCoding(CODE_SYSTEM_CONDITION_CLINICAL_URL, "resolved") || src.hasCoding(CODE_SYSTEM_LEGACY_CONDITION_CLINICAL_URL, "resolved")) 111 return org.hl7.fhir.dstu3.model.Condition.ConditionClinicalStatus.RESOLVED; 112 return org.hl7.fhir.dstu3.model.Condition.ConditionClinicalStatus.NULL; 113 } 114 115 static public org.hl7.fhir.r4.model.CodeableConcept convertConditionClinicalStatus(org.hl7.fhir.dstu3.model.Condition.ConditionClinicalStatus src) throws FHIRException { 116 if (src == null) 117 return null; 118 org.hl7.fhir.r4.model.CodeableConcept cc = new org.hl7.fhir.r4.model.CodeableConcept(); 119 switch (src) { 120 case ACTIVE: 121 cc.addCoding().setSystem(CODE_SYSTEM_CONDITION_CLINICAL_URL).setCode("active"); 122 return cc; 123 case RECURRENCE: 124 cc.addCoding().setSystem(CODE_SYSTEM_CONDITION_CLINICAL_URL).setCode("recurrence"); 125 return cc; 126 case INACTIVE: 127 cc.addCoding().setSystem(CODE_SYSTEM_CONDITION_CLINICAL_URL).setCode("inactive"); 128 return cc; 129 case REMISSION: 130 cc.addCoding().setSystem(CODE_SYSTEM_CONDITION_CLINICAL_URL).setCode("remission"); 131 return cc; 132 case RESOLVED: 133 cc.addCoding().setSystem(CODE_SYSTEM_CONDITION_CLINICAL_URL).setCode("resolved"); 134 return cc; 135 default: 136 return null; 137 } 138 } 139 140 public static org.hl7.fhir.dstu3.model.Condition.ConditionEvidenceComponent convertConditionEvidenceComponent(org.hl7.fhir.r4.model.Condition.ConditionEvidenceComponent src) throws FHIRException { 141 if (src == null) 142 return null; 143 org.hl7.fhir.dstu3.model.Condition.ConditionEvidenceComponent tgt = new org.hl7.fhir.dstu3.model.Condition.ConditionEvidenceComponent(); 144 ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt); 145 for (org.hl7.fhir.r4.model.CodeableConcept t : src.getCode()) 146 tgt.addCode(CodeableConcept30_40.convertCodeableConcept(t)); 147 for (org.hl7.fhir.r4.model.Reference t : src.getDetail()) tgt.addDetail(Reference30_40.convertReference(t)); 148 return tgt; 149 } 150 151 public static org.hl7.fhir.r4.model.Condition.ConditionEvidenceComponent convertConditionEvidenceComponent(org.hl7.fhir.dstu3.model.Condition.ConditionEvidenceComponent src) throws FHIRException { 152 if (src == null) 153 return null; 154 org.hl7.fhir.r4.model.Condition.ConditionEvidenceComponent tgt = new org.hl7.fhir.r4.model.Condition.ConditionEvidenceComponent(); 155 ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt); 156 for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getCode()) 157 tgt.addCode(CodeableConcept30_40.convertCodeableConcept(t)); 158 for (org.hl7.fhir.dstu3.model.Reference t : src.getDetail()) tgt.addDetail(Reference30_40.convertReference(t)); 159 return tgt; 160 } 161 162 public static org.hl7.fhir.r4.model.Condition.ConditionStageComponent convertConditionStageComponent(org.hl7.fhir.dstu3.model.Condition.ConditionStageComponent src) throws FHIRException { 163 if (src == null) 164 return null; 165 org.hl7.fhir.r4.model.Condition.ConditionStageComponent tgt = new org.hl7.fhir.r4.model.Condition.ConditionStageComponent(); 166 ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt); 167 if (src.hasSummary()) 168 tgt.setSummary(CodeableConcept30_40.convertCodeableConcept(src.getSummary())); 169 for (org.hl7.fhir.dstu3.model.Reference t : src.getAssessment()) 170 tgt.addAssessment(Reference30_40.convertReference(t)); 171 return tgt; 172 } 173 174 public static org.hl7.fhir.dstu3.model.Condition.ConditionStageComponent convertConditionStageComponent(org.hl7.fhir.r4.model.Condition.ConditionStageComponent src) throws FHIRException { 175 if (src == null) 176 return null; 177 org.hl7.fhir.dstu3.model.Condition.ConditionStageComponent tgt = new org.hl7.fhir.dstu3.model.Condition.ConditionStageComponent(); 178 ConversionContext30_40.INSTANCE.getVersionConvertor_30_40().copyBackboneElement(src,tgt); 179 if (src.hasSummary()) 180 tgt.setSummary(CodeableConcept30_40.convertCodeableConcept(src.getSummary())); 181 for (org.hl7.fhir.r4.model.Reference t : src.getAssessment()) tgt.addAssessment(Reference30_40.convertReference(t)); 182 return tgt; 183 } 184 185 static public org.hl7.fhir.r4.model.CodeableConcept convertConditionVerificationStatus(org.hl7.fhir.dstu3.model.Condition.ConditionVerificationStatus src) throws FHIRException { 186 if (src == null) 187 return null; 188 org.hl7.fhir.r4.model.CodeableConcept cc = new org.hl7.fhir.r4.model.CodeableConcept(); 189 switch (src) { 190 case PROVISIONAL: 191 cc.addCoding().setSystem(CODE_SYSTEM_CONDITION_VER_CLINICAL_URL).setCode("provisional"); 192 return cc; 193 case DIFFERENTIAL: 194 cc.addCoding().setSystem(CODE_SYSTEM_CONDITION_VER_CLINICAL_URL).setCode("differential"); 195 return cc; 196 case CONFIRMED: 197 cc.addCoding().setSystem(CODE_SYSTEM_CONDITION_VER_CLINICAL_URL).setCode("confirmed"); 198 return cc; 199 case REFUTED: 200 cc.addCoding().setSystem(CODE_SYSTEM_CONDITION_VER_CLINICAL_URL).setCode("refuted"); 201 return cc; 202 case ENTEREDINERROR: 203 cc.addCoding().setSystem(CODE_SYSTEM_CONDITION_VER_CLINICAL_URL).setCode("entered-in-error"); 204 return cc; 205 default: 206 return null; 207 } 208 } 209 210 static public org.hl7.fhir.dstu3.model.Condition.ConditionVerificationStatus convertConditionVerificationStatus(org.hl7.fhir.r4.model.CodeableConcept src) throws FHIRException { 211 if (src == null) 212 return null; 213 if (src.hasCoding(CODE_SYSTEM_CONDITION_VER_CLINICAL_URL, "provisional") || src.hasCoding(CODE_SYSTEM_LEGACY_CONDITION_VER_CLINICAL_URL, "provisional")) 214 return org.hl7.fhir.dstu3.model.Condition.ConditionVerificationStatus.PROVISIONAL; 215 if (src.hasCoding(CODE_SYSTEM_CONDITION_VER_CLINICAL_URL, "differential") || src.hasCoding(CODE_SYSTEM_LEGACY_CONDITION_VER_CLINICAL_URL, "differential")) 216 return org.hl7.fhir.dstu3.model.Condition.ConditionVerificationStatus.DIFFERENTIAL; 217 if (src.hasCoding(CODE_SYSTEM_CONDITION_VER_CLINICAL_URL, "confirmed") || src.hasCoding(CODE_SYSTEM_LEGACY_CONDITION_VER_CLINICAL_URL, "confirmed")) 218 return org.hl7.fhir.dstu3.model.Condition.ConditionVerificationStatus.CONFIRMED; 219 if (src.hasCoding(CODE_SYSTEM_CONDITION_VER_CLINICAL_URL, "refuted") || src.hasCoding(CODE_SYSTEM_LEGACY_CONDITION_VER_CLINICAL_URL, "refuted")) 220 return org.hl7.fhir.dstu3.model.Condition.ConditionVerificationStatus.REFUTED; 221 if (src.hasCoding(CODE_SYSTEM_CONDITION_VER_CLINICAL_URL, "entered-in-error") || src.hasCoding(CODE_SYSTEM_LEGACY_CONDITION_VER_CLINICAL_URL, "entered-in-error")) 222 return org.hl7.fhir.dstu3.model.Condition.ConditionVerificationStatus.ENTEREDINERROR; 223 return org.hl7.fhir.dstu3.model.Condition.ConditionVerificationStatus.NULL; 224 } 225}