001package org.hl7.fhir.convertors.conv10_50.resources10_50; 002 003import java.util.ArrayList; 004import java.util.List; 005 006import org.hl7.fhir.convertors.context.ConversionContext10_50; 007import org.hl7.fhir.convertors.conv10_50.datatypes10_50.Reference10_50; 008import org.hl7.fhir.convertors.conv10_50.datatypes10_50.complextypes10_50.CodeableConcept10_50; 009import org.hl7.fhir.convertors.conv10_50.datatypes10_50.complextypes10_50.Identifier10_50; 010import org.hl7.fhir.exceptions.FHIRException; 011import org.hl7.fhir.r5.model.CodeableConcept; 012import org.hl7.fhir.r5.model.CodeableReference; 013import org.hl7.fhir.r5.model.Coding; 014 015public class Condition10_50 { 016 017 public static org.hl7.fhir.dstu2.model.Condition convertCondition(org.hl7.fhir.r5.model.Condition src) throws FHIRException { 018 if (src == null || src.isEmpty()) 019 return null; 020 org.hl7.fhir.dstu2.model.Condition tgt = new org.hl7.fhir.dstu2.model.Condition(); 021 ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyDomainResource(src, tgt); 022 for (org.hl7.fhir.r5.model.Identifier t : src.getIdentifier()) 023 tgt.addIdentifier(Identifier10_50.convertIdentifier(t)); 024 if (src.hasSubject()) 025 tgt.setPatient(Reference10_50.convertReference(src.getSubject())); 026 if (src.hasEncounter()) 027 tgt.setEncounter(Reference10_50.convertReference(src.getEncounter())); 028 for (org.hl7.fhir.r5.model.Condition.ConditionParticipantComponent t : src.getParticipant()) { 029 if (t.getFunction().hasCoding("http://terminology.hl7.org/CodeSystem/provenance-participant-type", "informant")) 030 tgt.setAsserter(Reference10_50.convertReference(t.getActor())); 031 } if (src.hasRecordedDate()) 032 tgt.setDateRecorded(src.getRecordedDate()); 033 if (src.hasCode()) 034 tgt.setCode(CodeableConcept10_50.convertCodeableConcept(src.getCode())); 035 for (org.hl7.fhir.r5.model.CodeableConcept t : src.getCategory()) 036 tgt.setCategory(CodeableConcept10_50.convertCodeableConcept(t)); 037 if (src.hasClinicalStatus()) 038 tgt.setClinicalStatus(convertConditionClinicalStatus(src.getClinicalStatus())); 039 if (src.hasVerificationStatus()) 040 tgt.setVerificationStatus(convertConditionVerificationStatus(src.getVerificationStatus())); 041 if (src.hasSeverity()) 042 tgt.setSeverity(CodeableConcept10_50.convertCodeableConcept(src.getSeverity())); 043 if (src.hasOnset()) 044 tgt.setOnset(ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().convertType(src.getOnset())); 045 if (src.hasAbatement()) 046 tgt.setAbatement(ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().convertType(src.getAbatement())); 047 if (src.hasStage()) 048 tgt.setStage(convertConditionStageComponent(src.getStageFirstRep())); 049 for (CodeableReference t : src.getEvidence()) 050 tgt.addEvidence(convertConditionEvidenceComponent(t)); 051 for (org.hl7.fhir.r5.model.CodeableConcept t : src.getBodySite()) 052 tgt.addBodySite(CodeableConcept10_50.convertCodeableConcept(t)); 053 return tgt; 054 } 055 056 public static org.hl7.fhir.r5.model.Condition convertCondition(org.hl7.fhir.dstu2.model.Condition src) throws FHIRException { 057 if (src == null || src.isEmpty()) 058 return null; 059 org.hl7.fhir.r5.model.Condition tgt = new org.hl7.fhir.r5.model.Condition(); 060 ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyDomainResource(src, tgt); 061 for (org.hl7.fhir.dstu2.model.Identifier t : src.getIdentifier()) 062 tgt.addIdentifier(Identifier10_50.convertIdentifier(t)); 063 if (src.hasPatient()) 064 tgt.setSubject(Reference10_50.convertReference(src.getPatient())); 065 if (src.hasEncounter()) 066 tgt.setEncounter(Reference10_50.convertReference(src.getEncounter())); 067 if (src.hasAsserter()) 068 tgt.addParticipant().setFunction(new CodeableConcept(new Coding("http://terminology.hl7.org/CodeSystem/provenance-participant-type", "informant", "Informant"))).setActor(Reference10_50.convertReference(src.getAsserter())); 069 if (src.hasDateRecorded()) 070 tgt.setRecordedDate(src.getDateRecorded()); 071 if (src.hasCode()) 072 tgt.setCode(CodeableConcept10_50.convertCodeableConcept(src.getCode())); 073 if (src.hasCategory()) 074 tgt.addCategory(CodeableConcept10_50.convertCodeableConcept(src.getCategory())); 075 if (src.hasClinicalStatus()) 076 tgt.setClinicalStatus(convertConditionClinicalStatus(src.getClinicalStatus())); 077 if (src.hasVerificationStatus()) 078 tgt.setVerificationStatus(convertConditionVerificationStatus(src.getVerificationStatus())); 079 if (src.hasSeverity()) 080 tgt.setSeverity(CodeableConcept10_50.convertCodeableConcept(src.getSeverity())); 081 if (src.hasOnset()) 082 tgt.setOnset(ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().convertType(src.getOnset())); 083 if (src.hasAbatement()) 084 tgt.setAbatement(ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().convertType(src.getAbatement())); 085 if (src.hasStage()) 086 tgt.addStage(convertConditionStageComponent(src.getStage())); 087 for (org.hl7.fhir.dstu2.model.Condition.ConditionEvidenceComponent t : src.getEvidence()) 088 tgt.getEvidence().addAll(convertConditionEvidenceComponent(t)); 089 for (org.hl7.fhir.dstu2.model.CodeableConcept t : src.getBodySite()) 090 tgt.addBodySite(CodeableConcept10_50.convertCodeableConcept(t)); 091 return tgt; 092 } 093 094 static public org.hl7.fhir.r5.model.CodeableConcept convertConditionClinicalStatus(String src) throws FHIRException { 095 if (src == null) 096 return null; 097 org.hl7.fhir.r5.model.CodeableConcept cc = new org.hl7.fhir.r5.model.CodeableConcept(); 098 cc.addCoding().setSystem("http://hl7.org/fhir/condition-clinical").setCode(src); 099 return cc; 100 } 101 102 static public String convertConditionClinicalStatus(org.hl7.fhir.r5.model.CodeableConcept src) throws FHIRException { 103 if (src == null) 104 return null; 105 for (org.hl7.fhir.r5.model.Coding c : src.getCoding()) { 106 if ("http://hl7.org/fhir/condition-clinical".equals(c.getSystem())) 107 return c.getCode(); 108 } 109 return null; 110 } 111 112 public static List<org.hl7.fhir.r5.model.CodeableReference> convertConditionEvidenceComponent(org.hl7.fhir.dstu2.model.Condition.ConditionEvidenceComponent src) throws FHIRException { 113 if (src == null) 114 return null; 115 List<org.hl7.fhir.r5.model.CodeableReference> list = new ArrayList<>(); 116 if (src.hasCode()) { 117 org.hl7.fhir.r5.model.CodeableReference tgt = new org.hl7.fhir.r5.model.CodeableReference(); 118 ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyElement(src, tgt); 119 tgt.setConcept(CodeableConcept10_50.convertCodeableConcept(src.getCode())); 120 list.add(tgt); 121 } 122 for (org.hl7.fhir.dstu2.model.Reference t : src.getDetail()) { 123 org.hl7.fhir.r5.model.CodeableReference tgt = new org.hl7.fhir.r5.model.CodeableReference(); 124 ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyElement(src, tgt); 125 tgt.setReference(Reference10_50.convertReference(t)); 126 list.add(tgt); 127 } 128 return list; 129 } 130 131 public static org.hl7.fhir.dstu2.model.Condition.ConditionEvidenceComponent convertConditionEvidenceComponent(org.hl7.fhir.r5.model.CodeableReference src) throws FHIRException { 132 if (src == null) 133 return null; 134 org.hl7.fhir.dstu2.model.Condition.ConditionEvidenceComponent tgt = new org.hl7.fhir.dstu2.model.Condition.ConditionEvidenceComponent(); 135 ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyElement(src, tgt); 136 if (src.hasConcept()) 137 tgt.setCode(CodeableConcept10_50.convertCodeableConcept(src.getConcept())); 138 if (src.hasReference()) 139 tgt.addDetail(Reference10_50.convertReference(src.getReference())); 140 return tgt; 141 } 142 143 public static org.hl7.fhir.dstu2.model.Condition.ConditionStageComponent convertConditionStageComponent(org.hl7.fhir.r5.model.Condition.ConditionStageComponent src) throws FHIRException { 144 if (src == null || src.isEmpty()) 145 return null; 146 org.hl7.fhir.dstu2.model.Condition.ConditionStageComponent tgt = new org.hl7.fhir.dstu2.model.Condition.ConditionStageComponent(); 147 ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyBackboneElement(src,tgt); 148 if (src.hasSummary()) 149 tgt.setSummary(CodeableConcept10_50.convertCodeableConcept(src.getSummary())); 150 for (org.hl7.fhir.r5.model.Reference t : src.getAssessment()) tgt.addAssessment(Reference10_50.convertReference(t)); 151 return tgt; 152 } 153 154 public static org.hl7.fhir.r5.model.Condition.ConditionStageComponent convertConditionStageComponent(org.hl7.fhir.dstu2.model.Condition.ConditionStageComponent src) throws FHIRException { 155 if (src == null || src.isEmpty()) 156 return null; 157 org.hl7.fhir.r5.model.Condition.ConditionStageComponent tgt = new org.hl7.fhir.r5.model.Condition.ConditionStageComponent(); 158 ConversionContext10_50.INSTANCE.getVersionConvertor_10_50().copyBackboneElement(src,tgt); 159 if (src.hasSummary()) 160 tgt.setSummary(CodeableConcept10_50.convertCodeableConcept(src.getSummary())); 161 for (org.hl7.fhir.dstu2.model.Reference t : src.getAssessment()) 162 tgt.addAssessment(Reference10_50.convertReference(t)); 163 return tgt; 164 } 165 166 static public org.hl7.fhir.r5.model.CodeableConcept convertConditionVerificationStatus(org.hl7.fhir.dstu2.model.Condition.ConditionVerificationStatus src) throws FHIRException { 167 if (src == null) 168 return null; 169 org.hl7.fhir.r5.model.CodeableConcept cc = new org.hl7.fhir.r5.model.CodeableConcept(); 170 switch (src) { 171 case PROVISIONAL: 172 cc.addCoding().setSystem("http://hl7.org/fhir/condition-ver-status").setCode("provisional"); 173 return cc; 174 case DIFFERENTIAL: 175 cc.addCoding().setSystem("http://hl7.org/fhir/condition-ver-status").setCode("differential"); 176 return cc; 177 case CONFIRMED: 178 cc.addCoding().setSystem("http://hl7.org/fhir/condition-ver-status").setCode("confirmed"); 179 return cc; 180 case REFUTED: 181 cc.addCoding().setSystem("http://hl7.org/fhir/condition-ver-status").setCode("refuted"); 182 return cc; 183 case ENTEREDINERROR: 184 cc.addCoding().setSystem("http://hl7.org/fhir/condition-ver-status").setCode("entered-in-error"); 185 return cc; 186 default: 187 return null; 188 } 189 } 190 191 static public org.hl7.fhir.dstu2.model.Condition.ConditionVerificationStatus convertConditionVerificationStatus(org.hl7.fhir.r5.model.CodeableConcept src) throws FHIRException { 192 if (src == null) 193 return null; 194 if (src.hasCoding("http://hl7.org/fhir/condition-clinical", "provisional")) 195 return org.hl7.fhir.dstu2.model.Condition.ConditionVerificationStatus.PROVISIONAL; 196 if (src.hasCoding("http://hl7.org/fhir/condition-clinical", "differential")) 197 return org.hl7.fhir.dstu2.model.Condition.ConditionVerificationStatus.DIFFERENTIAL; 198 if (src.hasCoding("http://hl7.org/fhir/condition-clinical", "confirmed")) 199 return org.hl7.fhir.dstu2.model.Condition.ConditionVerificationStatus.CONFIRMED; 200 if (src.hasCoding("http://hl7.org/fhir/condition-clinical", "refuted")) 201 return org.hl7.fhir.dstu2.model.Condition.ConditionVerificationStatus.REFUTED; 202 if (src.hasCoding("http://hl7.org/fhir/condition-clinical", "entered-in-error")) 203 return org.hl7.fhir.dstu2.model.Condition.ConditionVerificationStatus.ENTEREDINERROR; 204 return org.hl7.fhir.dstu2.model.Condition.ConditionVerificationStatus.NULL; 205 } 206}