package ca.uhn.fhir.parser;
import org.hl7.fhir.instance.model.Attachment;
import org.hl7.fhir.instance.model.BackboneElement;
import org.hl7.fhir.instance.model.DateType;
import org.hl7.fhir.instance.model.Patient;
import org.hl7.fhir.instance.model.StringType;
import org.hl7.fhir.instance.model.api.IBaseBackboneElement;
import ca.uhn.fhir.model.api.annotation.Block;
import ca.uhn.fhir.model.api.annotation.Child;
import ca.uhn.fhir.model.api.annotation.Extension;
import ca.uhn.fhir.model.api.annotation.ResourceDef;
import ca.uhn.fhir.util.ElementUtil;
@ResourceDef(name="Patient")
public class MyObservationWithExtensions extends Patient {
@Extension(url = "urn:patientext:att", definedLocally = false, isModifier = false)
@Child(name = "extAtt", order = 0)
private Attachment myExtAtt;
@Extension(url = "urn:patientext:moreext", definedLocally = false, isModifier = false)
@Child(name = "moreExt", order = 1)
private MoreExt myMoreExt;
@Extension(url = "urn:modext", definedLocally = false, isModifier = true)
@Child(name = "modExt", order = 2)
private DateType myModExt;
public Attachment getExtAtt() {
return myExtAtt;
}
public MoreExt getMoreExt() {
return myMoreExt;
}
public void setMoreExt(MoreExt theMoreExt) {
myMoreExt = theMoreExt;
}
public DateType getModExt() {
return myModExt;
}
public void setModExt(DateType theModExt) {
myModExt = theModExt;
}
public void setExtAtt(Attachment theExtAtt) {
myExtAtt = theExtAtt;
}
@Override
public boolean isEmpty() {
return super.isEmpty() && ElementUtil.isEmpty(myExtAtt, myModExt, myMoreExt);
}
/**
* Block class for child element: <b>Observation.referenceRange</b> (Provides guide for interpretation)
*
* <p>
* <b>Definition:</b> Guidance on how to interpret the value by comparison to a normal or recommended range
* </p>
*/
@Block(name = "Observation.someExtensions")
public static class MoreExt extends BackboneElement implements IBaseBackboneElement {
@Extension(url = "urn:patientext:moreext:1", definedLocally = false, isModifier = false)
@Child(name = "str1", order = 0)
private StringType myStr1;
@Extension(url = "urn:patientext:moreext:2", definedLocally = false, isModifier = false)
@Child(name = "str2", order = 1)
private StringType myStr2;
public StringType getStr1() {
return myStr1;
}
public void setStr1(StringType theStr1) {
myStr1 = theStr1;
}
public StringType getStr2() {
return myStr2;
}
public void setStr2(StringType theStr2) {
myStr2 = theStr2;
}
@Override
public boolean isEmpty() {
return ElementUtil.isEmpty(myStr1, myStr2);
}
@Override
public BackboneElement copy() {
throw new UnsupportedOperationException();
}
}
}