001package org.hl7.fhir.convertors.conv30_50.resources30_50;
002
003import org.hl7.fhir.convertors.context.ConversionContext30_50;
004import org.hl7.fhir.convertors.conv30_50.datatypes30_50.Reference30_50;
005import org.hl7.fhir.convertors.conv30_50.datatypes30_50.complextypes30_50.Annotation30_50;
006import org.hl7.fhir.convertors.conv30_50.datatypes30_50.complextypes30_50.CodeableConcept30_50;
007import org.hl7.fhir.convertors.conv30_50.datatypes30_50.complextypes30_50.Identifier30_50;
008import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.Boolean30_50;
009import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.DateTime30_50;
010import org.hl7.fhir.convertors.conv30_50.datatypes30_50.primitivetypes30_50.String30_50;
011import org.hl7.fhir.dstu3.model.Enumeration;
012import org.hl7.fhir.dstu3.model.FamilyMemberHistory;
013import org.hl7.fhir.exceptions.FHIRException;
014import org.hl7.fhir.r5.model.CodeableReference;
015
016public class FamilyMemberHistory30_50 {
017
018  static public org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.FamilyMemberHistory.FamilyHistoryStatus> convertFamilyHistoryStatus(org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.FamilyMemberHistory.FamilyHistoryStatus> src) throws FHIRException {
019      if (src == null || src.isEmpty())
020          return null;
021      Enumeration<FamilyMemberHistory.FamilyHistoryStatus> tgt = new Enumeration<>(new FamilyMemberHistory.FamilyHistoryStatusEnumFactory());
022      ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt);
023      if (src.getValue() == null) {
024          tgt.setValue(null);
025      } else {
026          switch (src.getValue()) {
027              case PARTIAL:
028                  tgt.setValue(FamilyMemberHistory.FamilyHistoryStatus.PARTIAL);
029                  break;
030              case COMPLETED:
031                  tgt.setValue(FamilyMemberHistory.FamilyHistoryStatus.COMPLETED);
032                  break;
033              case ENTEREDINERROR:
034                  tgt.setValue(FamilyMemberHistory.FamilyHistoryStatus.ENTEREDINERROR);
035                  break;
036              case HEALTHUNKNOWN:
037                  tgt.setValue(FamilyMemberHistory.FamilyHistoryStatus.HEALTHUNKNOWN);
038                  break;
039              default:
040                  tgt.setValue(FamilyMemberHistory.FamilyHistoryStatus.NULL);
041                  break;
042          }
043      }
044      return tgt;
045  }
046
047  static public org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.FamilyMemberHistory.FamilyHistoryStatus> convertFamilyHistoryStatus(org.hl7.fhir.dstu3.model.Enumeration<org.hl7.fhir.dstu3.model.FamilyMemberHistory.FamilyHistoryStatus> src) throws FHIRException {
048      if (src == null || src.isEmpty())
049          return null;
050      org.hl7.fhir.r5.model.Enumeration<org.hl7.fhir.r5.model.FamilyMemberHistory.FamilyHistoryStatus> tgt = new org.hl7.fhir.r5.model.Enumeration<>(new org.hl7.fhir.r5.model.FamilyMemberHistory.FamilyHistoryStatusEnumFactory());
051      ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyElement(src, tgt);
052      if (src.getValue() == null) {
053          tgt.setValue(null);
054      } else {
055          switch (src.getValue()) {
056              case PARTIAL:
057                  tgt.setValue(org.hl7.fhir.r5.model.FamilyMemberHistory.FamilyHistoryStatus.PARTIAL);
058                  break;
059              case COMPLETED:
060                  tgt.setValue(org.hl7.fhir.r5.model.FamilyMemberHistory.FamilyHistoryStatus.COMPLETED);
061                  break;
062              case ENTEREDINERROR:
063                  tgt.setValue(org.hl7.fhir.r5.model.FamilyMemberHistory.FamilyHistoryStatus.ENTEREDINERROR);
064                  break;
065              case HEALTHUNKNOWN:
066                  tgt.setValue(org.hl7.fhir.r5.model.FamilyMemberHistory.FamilyHistoryStatus.HEALTHUNKNOWN);
067                  break;
068              default:
069                  tgt.setValue(org.hl7.fhir.r5.model.FamilyMemberHistory.FamilyHistoryStatus.NULL);
070                  break;
071          }
072      }
073      return tgt;
074  }
075
076  public static org.hl7.fhir.dstu3.model.FamilyMemberHistory convertFamilyMemberHistory(org.hl7.fhir.r5.model.FamilyMemberHistory src) throws FHIRException {
077    if (src == null)
078      return null;
079    org.hl7.fhir.dstu3.model.FamilyMemberHistory tgt = new org.hl7.fhir.dstu3.model.FamilyMemberHistory();
080    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyDomainResource(src, tgt);
081    for (org.hl7.fhir.r5.model.Identifier t : src.getIdentifier())
082      tgt.addIdentifier(Identifier30_50.convertIdentifier(t));
083    for (org.hl7.fhir.r5.model.UriType t : src.getInstantiatesCanonical())
084      tgt.addDefinition(new org.hl7.fhir.dstu3.model.Reference(t.getValue()));
085    if (src.hasStatus())
086      tgt.setStatusElement(convertFamilyHistoryStatus(src.getStatusElement()));
087    if (src.hasDataAbsentReason())
088      tgt.setNotDoneReason(CodeableConcept30_50.convertCodeableConcept(src.getDataAbsentReason()));
089    if (src.hasPatient())
090      tgt.setPatient(Reference30_50.convertReference(src.getPatient()));
091    if (src.hasDate())
092      tgt.setDateElement(DateTime30_50.convertDateTime(src.getDateElement()));
093    if (src.hasName())
094      tgt.setNameElement(String30_50.convertString(src.getNameElement()));
095    if (src.hasRelationship())
096      tgt.setRelationship(CodeableConcept30_50.convertCodeableConcept(src.getRelationship()));
097    if (src.hasBorn())
098      tgt.setBorn(ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().convertType(src.getBorn()));
099    if (src.hasAge())
100      tgt.setAge(ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().convertType(src.getAge()));
101    if (src.hasEstimatedAge())
102      tgt.setEstimatedAgeElement(Boolean30_50.convertBoolean(src.getEstimatedAgeElement()));
103    if (src.hasDeceased())
104      tgt.setDeceased(ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().convertType(src.getDeceased()));
105    for (CodeableReference t : src.getReason())
106      if (t.hasConcept())
107        tgt.addReasonCode(CodeableConcept30_50.convertCodeableConcept(t.getConcept()));
108    for (CodeableReference t : src.getReason())
109      if (t.hasReference())
110        tgt.addReasonReference(Reference30_50.convertReference(t.getReference()));
111    for (org.hl7.fhir.r5.model.Annotation t : src.getNote()) tgt.addNote(Annotation30_50.convertAnnotation(t));
112    for (org.hl7.fhir.r5.model.FamilyMemberHistory.FamilyMemberHistoryConditionComponent t : src.getCondition())
113      tgt.addCondition(convertFamilyMemberHistoryConditionComponent(t));
114    return tgt;
115  }
116
117  public static org.hl7.fhir.r5.model.FamilyMemberHistory convertFamilyMemberHistory(org.hl7.fhir.dstu3.model.FamilyMemberHistory src) throws FHIRException {
118    if (src == null)
119      return null;
120    org.hl7.fhir.r5.model.FamilyMemberHistory tgt = new org.hl7.fhir.r5.model.FamilyMemberHistory();
121    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyDomainResource(src, tgt);
122    for (org.hl7.fhir.dstu3.model.Identifier t : src.getIdentifier())
123      tgt.addIdentifier(Identifier30_50.convertIdentifier(t));
124    for (org.hl7.fhir.dstu3.model.Reference t : src.getDefinition()) tgt.addInstantiatesCanonical(t.getReference());
125    if (src.hasStatus())
126      tgt.setStatusElement(convertFamilyHistoryStatus(src.getStatusElement()));
127    if (src.hasNotDoneReason())
128      tgt.setDataAbsentReason(CodeableConcept30_50.convertCodeableConcept(src.getNotDoneReason()));
129    if (src.hasPatient())
130      tgt.setPatient(Reference30_50.convertReference(src.getPatient()));
131    if (src.hasDate())
132      tgt.setDateElement(DateTime30_50.convertDateTime(src.getDateElement()));
133    if (src.hasName())
134      tgt.setNameElement(String30_50.convertString(src.getNameElement()));
135    if (src.hasRelationship())
136      tgt.setRelationship(CodeableConcept30_50.convertCodeableConcept(src.getRelationship()));
137    if (src.hasBorn())
138      tgt.setBorn(ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().convertType(src.getBorn()));
139    if (src.hasAge())
140      tgt.setAge(ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().convertType(src.getAge()));
141    if (src.hasEstimatedAge())
142      tgt.setEstimatedAgeElement(Boolean30_50.convertBoolean(src.getEstimatedAgeElement()));
143    if (src.hasDeceased())
144      tgt.setDeceased(ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().convertType(src.getDeceased()));
145    for (org.hl7.fhir.dstu3.model.CodeableConcept t : src.getReasonCode())
146      tgt.addReason(Reference30_50.convertCodeableConceptToCodableReference(t));
147    for (org.hl7.fhir.dstu3.model.Reference t : src.getReasonReference())
148      tgt.addReason(Reference30_50.convertReferenceToCodableReference(t));
149    for (org.hl7.fhir.dstu3.model.Annotation t : src.getNote()) tgt.addNote(Annotation30_50.convertAnnotation(t));
150    for (org.hl7.fhir.dstu3.model.FamilyMemberHistory.FamilyMemberHistoryConditionComponent t : src.getCondition())
151      tgt.addCondition(convertFamilyMemberHistoryConditionComponent(t));
152    return tgt;
153  }
154
155  public static org.hl7.fhir.r5.model.FamilyMemberHistory.FamilyMemberHistoryConditionComponent convertFamilyMemberHistoryConditionComponent(org.hl7.fhir.dstu3.model.FamilyMemberHistory.FamilyMemberHistoryConditionComponent src) throws FHIRException {
156    if (src == null)
157      return null;
158    org.hl7.fhir.r5.model.FamilyMemberHistory.FamilyMemberHistoryConditionComponent tgt = new org.hl7.fhir.r5.model.FamilyMemberHistory.FamilyMemberHistoryConditionComponent();
159    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyBackboneElement(src,tgt);
160    if (src.hasCode())
161      tgt.setCode(CodeableConcept30_50.convertCodeableConcept(src.getCode()));
162    if (src.hasOutcome())
163      tgt.setOutcome(CodeableConcept30_50.convertCodeableConcept(src.getOutcome()));
164    if (src.hasOnset())
165      tgt.setOnset(ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().convertType(src.getOnset()));
166    for (org.hl7.fhir.dstu3.model.Annotation t : src.getNote()) tgt.addNote(Annotation30_50.convertAnnotation(t));
167    return tgt;
168  }
169
170  public static org.hl7.fhir.dstu3.model.FamilyMemberHistory.FamilyMemberHistoryConditionComponent convertFamilyMemberHistoryConditionComponent(org.hl7.fhir.r5.model.FamilyMemberHistory.FamilyMemberHistoryConditionComponent src) throws FHIRException {
171    if (src == null)
172      return null;
173    org.hl7.fhir.dstu3.model.FamilyMemberHistory.FamilyMemberHistoryConditionComponent tgt = new org.hl7.fhir.dstu3.model.FamilyMemberHistory.FamilyMemberHistoryConditionComponent();
174    ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().copyBackboneElement(src,tgt);
175    if (src.hasCode())
176      tgt.setCode(CodeableConcept30_50.convertCodeableConcept(src.getCode()));
177    if (src.hasOutcome())
178      tgt.setOutcome(CodeableConcept30_50.convertCodeableConcept(src.getOutcome()));
179    if (src.hasOnset())
180      tgt.setOnset(ConversionContext30_50.INSTANCE.getVersionConvertor_30_50().convertType(src.getOnset()));
181    for (org.hl7.fhir.r5.model.Annotation t : src.getNote()) tgt.addNote(Annotation30_50.convertAnnotation(t));
182    return tgt;
183  }
184}