001package org.hl7.fhir.convertors.conv10_40.resources10_40; 002 003import org.hl7.fhir.convertors.context.ConversionContext10_40; 004import org.hl7.fhir.convertors.conv10_40.datatypes10_40.Reference10_40; 005import org.hl7.fhir.convertors.conv10_40.datatypes10_40.complextypes10_40.Annotation10_40; 006import org.hl7.fhir.convertors.conv10_40.datatypes10_40.complextypes10_40.CodeableConcept10_40; 007import org.hl7.fhir.convertors.conv10_40.datatypes10_40.complextypes10_40.Identifier10_40; 008import org.hl7.fhir.exceptions.FHIRException; 009import org.hl7.fhir.r4.model.Procedure; 010 011public class Procedure10_40 { 012 013 public static org.hl7.fhir.r4.model.Procedure convertProcedure(org.hl7.fhir.dstu2.model.Procedure src) throws FHIRException { 014 if (src == null || src.isEmpty()) 015 return null; 016 org.hl7.fhir.r4.model.Procedure tgt = new org.hl7.fhir.r4.model.Procedure(); 017 ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().copyDomainResource(src, tgt); 018 for (org.hl7.fhir.dstu2.model.Identifier t : src.getIdentifier()) 019 tgt.addIdentifier(Identifier10_40.convertIdentifier(t)); 020 if (src.hasSubject()) 021 tgt.setSubject(Reference10_40.convertReference(src.getSubject())); 022 if (src.hasStatus() && src.hasNotPerformed()) { 023 if (src.getNotPerformed()) { 024 tgt.setStatus(Procedure.ProcedureStatus.NOTDONE); 025 } else { 026 tgt.setStatus(convertProcedureStatus(src.getStatus())); 027 } 028 } 029 if (src.hasCategory()) 030 tgt.setCategory(CodeableConcept10_40.convertCodeableConcept(src.getCategory())); 031 if (src.hasCode()) 032 tgt.setCode(CodeableConcept10_40.convertCodeableConcept(src.getCode())); 033 if (src.hasReasonNotPerformed()) 034 tgt.setStatusReason(CodeableConcept10_40.convertCodeableConcept(src.getReasonNotPerformed().get(0))); 035 for (org.hl7.fhir.dstu2.model.CodeableConcept t : src.getBodySite()) 036 tgt.addBodySite(CodeableConcept10_40.convertCodeableConcept(t)); 037 if (src.hasReasonCodeableConcept()) 038 tgt.addReasonCode(CodeableConcept10_40.convertCodeableConcept(src.getReasonCodeableConcept())); 039 if (src.hasReasonReference()) 040 tgt.addReasonReference(Reference10_40.convertReference(src.getReasonReference())); 041 if (src.hasPerformed()) 042 tgt.setPerformed(ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().convertType(src.getPerformed())); 043 for (org.hl7.fhir.dstu2.model.Procedure.ProcedurePerformerComponent t : src.getPerformer()) 044 tgt.addPerformer(convertProcedurePerformerComponent(t)); 045 if (src.hasEncounter()) 046 tgt.setEncounter(Reference10_40.convertReference(src.getEncounter())); 047 if (src.hasLocation()) 048 tgt.setLocation(Reference10_40.convertReference(src.getLocation())); 049 if (src.hasOutcome()) 050 tgt.setOutcome(CodeableConcept10_40.convertCodeableConcept(src.getOutcome())); 051 for (org.hl7.fhir.dstu2.model.Reference t : src.getReport()) tgt.addReport(Reference10_40.convertReference(t)); 052 for (org.hl7.fhir.dstu2.model.CodeableConcept t : src.getComplication()) 053 tgt.addComplication(CodeableConcept10_40.convertCodeableConcept(t)); 054 for (org.hl7.fhir.dstu2.model.CodeableConcept t : src.getFollowUp()) 055 tgt.addFollowUp(CodeableConcept10_40.convertCodeableConcept(t)); 056 if (src.hasRequest()) 057 tgt.addBasedOn(Reference10_40.convertReference(src.getRequest())); 058 for (org.hl7.fhir.dstu2.model.Procedure.ProcedureFocalDeviceComponent t : src.getFocalDevice()) 059 tgt.addFocalDevice(convertProcedureFocalDeviceComponent(t)); 060 for (org.hl7.fhir.dstu2.model.Annotation note : src.getNotes()) 061 tgt.addNote(Annotation10_40.convertAnnotation(note)); 062 for (org.hl7.fhir.dstu2.model.Reference r : src.getUsed()) tgt.addUsedReference(Reference10_40.convertReference(r)); 063 return tgt; 064 } 065 066 private static org.hl7.fhir.r4.model.Procedure.ProcedureStatus convertProcedureStatus(org.hl7.fhir.dstu2.model.Procedure.ProcedureStatus src) { 067 switch (src) { 068 case ENTEREDINERROR: 069 return org.hl7.fhir.r4.model.Procedure.ProcedureStatus.ENTEREDINERROR; 070 case INPROGRESS: 071 return org.hl7.fhir.r4.model.Procedure.ProcedureStatus.INPROGRESS; 072 case ABORTED: 073 return org.hl7.fhir.r4.model.Procedure.ProcedureStatus.STOPPED; 074 case COMPLETED: 075 return org.hl7.fhir.r4.model.Procedure.ProcedureStatus.COMPLETED; 076 default: 077 return org.hl7.fhir.r4.model.Procedure.ProcedureStatus.NULL; 078 } 079 } 080 081 public static org.hl7.fhir.r4.model.Procedure.ProcedurePerformerComponent convertProcedurePerformerComponent(org.hl7.fhir.dstu2.model.Procedure.ProcedurePerformerComponent src) throws FHIRException { 082 if (src == null || src.isEmpty()) 083 return null; 084 org.hl7.fhir.r4.model.Procedure.ProcedurePerformerComponent tgt = new org.hl7.fhir.r4.model.Procedure.ProcedurePerformerComponent(); 085 ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().copyBackboneElement(src,tgt); 086 if (src.hasActor()) 087 tgt.setActor(Reference10_40.convertReference(src.getActor())); 088 if (src.hasRole()) 089 tgt.setFunction(CodeableConcept10_40.convertCodeableConcept(src.getRole())); 090 return tgt; 091 } 092 093 public static org.hl7.fhir.r4.model.Procedure.ProcedureFocalDeviceComponent convertProcedureFocalDeviceComponent(org.hl7.fhir.dstu2.model.Procedure.ProcedureFocalDeviceComponent src) throws FHIRException { 094 if (src == null || src.isEmpty()) 095 return null; 096 org.hl7.fhir.r4.model.Procedure.ProcedureFocalDeviceComponent tgt = new org.hl7.fhir.r4.model.Procedure.ProcedureFocalDeviceComponent(); 097 ConversionContext10_40.INSTANCE.getVersionConvertor_10_40().copyBackboneElement(src,tgt); 098 if (src.hasAction()) 099 tgt.setAction(CodeableConcept10_40.convertCodeableConcept(src.getAction())); 100 if (src.hasManipulated()) 101 tgt.setManipulated(Reference10_40.convertReference(src.getManipulated())); 102 return tgt; 103 } 104}