Fix unit tests
This commit is contained in:
parent
6140e73034
commit
53882b2c23
|
@ -28,3 +28,5 @@
|
|||
* Support slices in the model
|
||||
|
||||
* Support extensions (declared and undeclared) in primitives, narratives, etc.
|
||||
|
||||
* Create a Maven archetype for a server project and a client project
|
|
@ -151,6 +151,8 @@
|
|||
<version>3.3</version>
|
||||
</plugin>
|
||||
<!--
|
||||
|
||||
-->
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-surefire-report-plugin</artifactId>
|
||||
|
@ -176,7 +178,6 @@
|
|||
<artifactId>maven-jxr-plugin</artifactId>
|
||||
<version>2.3</version>
|
||||
</plugin>
|
||||
-->
|
||||
<plugin>
|
||||
<groupId>org.apache.maven.plugins</groupId>
|
||||
<artifactId>maven-project-info-reports-plugin</artifactId>
|
||||
|
|
|
@ -24,6 +24,9 @@ public abstract class BaseRuntimeElementCompositeDefinition<T extends IComposite
|
|||
if (theNext == null) {
|
||||
throw new NullPointerException();
|
||||
}
|
||||
// if (theNext.getValidChildNames().contains("performetPractitioner")) {
|
||||
// throw new NullPointerException();
|
||||
// }
|
||||
if (theNext.getExtensionUrl() != null) {
|
||||
throw new IllegalArgumentException("Shouldn't haven an extension URL, use addExtension instead");
|
||||
}
|
||||
|
|
|
@ -27,7 +27,7 @@ import ca.uhn.fhir.model.api.IPrimitiveDatatype;
|
|||
import ca.uhn.fhir.model.api.IResource;
|
||||
import ca.uhn.fhir.model.api.IResourceBlock;
|
||||
import ca.uhn.fhir.model.api.IValueSetEnumBinder;
|
||||
import ca.uhn.fhir.model.api.ResourceReference;
|
||||
import ca.uhn.fhir.model.api.BaseResourceReference;
|
||||
import ca.uhn.fhir.model.api.annotation.Block;
|
||||
import ca.uhn.fhir.model.api.annotation.Child;
|
||||
import ca.uhn.fhir.model.api.annotation.CodeTableDef;
|
||||
|
@ -37,6 +37,7 @@ import ca.uhn.fhir.model.api.annotation.Extension;
|
|||
import ca.uhn.fhir.model.api.annotation.ResourceDef;
|
||||
import ca.uhn.fhir.model.dstu.composite.ResourceReferenceDt;
|
||||
import ca.uhn.fhir.model.primitive.BoundCodeDt;
|
||||
import ca.uhn.fhir.model.primitive.BoundCodeableConceptDt;
|
||||
import ca.uhn.fhir.model.primitive.CodeDt;
|
||||
import ca.uhn.fhir.model.primitive.DateDt;
|
||||
import ca.uhn.fhir.model.primitive.ICodedDatatype;
|
||||
|
@ -323,7 +324,7 @@ class ModelScanner {
|
|||
if (IElement.class.isAssignableFrom(nextElementType)) {
|
||||
addScanAlso((Class<? extends IElement>) nextElementType);
|
||||
}
|
||||
} else if (ResourceReference.class.isAssignableFrom(nextElementType)) {
|
||||
} else if (BaseResourceReference.class.isAssignableFrom(nextElementType)) {
|
||||
/*
|
||||
* Child is a resource reference
|
||||
*/
|
||||
|
@ -361,9 +362,14 @@ class ModelScanner {
|
|||
} else {
|
||||
def = new RuntimeChildPrimitiveDatatypeDefinition(next, elementName, descriptionAnnotation, childAnnotation, nextDatatype);
|
||||
}
|
||||
} else {
|
||||
if (nextElementType.equals(BoundCodeableConceptDt.class)) {
|
||||
IValueSetEnumBinder<Enum<?>> binder = getBoundCodeBinder(next);
|
||||
def = new RuntimeChildCompositeBoundDatatypeDefinition(next, elementName, childAnnotation, descriptionAnnotation, nextDatatype, binder);
|
||||
} else {
|
||||
def = new RuntimeChildCompositeDatatypeDefinition(next, elementName, childAnnotation, descriptionAnnotation, nextDatatype);
|
||||
}
|
||||
}
|
||||
|
||||
CodeableConceptElement concept = next.getAnnotation(CodeableConceptElement.class);
|
||||
if (concept != null) {
|
||||
|
|
|
@ -0,0 +1,27 @@
|
|||
package ca.uhn.fhir.context;
|
||||
|
||||
import java.lang.reflect.Field;
|
||||
|
||||
import ca.uhn.fhir.model.api.IDatatype;
|
||||
import ca.uhn.fhir.model.api.IValueSetEnumBinder;
|
||||
import ca.uhn.fhir.model.api.annotation.Child;
|
||||
import ca.uhn.fhir.model.api.annotation.Description;
|
||||
|
||||
public class RuntimeChildCompositeBoundDatatypeDefinition extends RuntimeChildCompositeDatatypeDefinition {
|
||||
|
||||
private IValueSetEnumBinder<Enum<?>> myBinder;
|
||||
|
||||
public RuntimeChildCompositeBoundDatatypeDefinition(Field theField, String theElementName, Child theChildAnnotation, Description theDescriptionAnnotation, Class<? extends IDatatype> theDatatype, IValueSetEnumBinder<Enum<?>> theBinder) {
|
||||
super(theField, theElementName, theChildAnnotation, theDescriptionAnnotation, theDatatype);
|
||||
myBinder = theBinder;
|
||||
if (theBinder==null) {
|
||||
throw new IllegalArgumentException("Binder must not be null");
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public IValueSetEnumBinder<Enum<?>> getInstanceConstructorArguments() {
|
||||
return myBinder;
|
||||
}
|
||||
|
||||
}
|
|
@ -8,7 +8,7 @@ import java.util.Set;
|
|||
|
||||
import ca.uhn.fhir.model.api.IElement;
|
||||
import ca.uhn.fhir.model.api.IResource;
|
||||
import ca.uhn.fhir.model.api.ResourceReference;
|
||||
import ca.uhn.fhir.model.api.BaseResourceReference;
|
||||
import ca.uhn.fhir.model.api.annotation.Child;
|
||||
import ca.uhn.fhir.model.api.annotation.Description;
|
||||
|
||||
|
@ -28,7 +28,7 @@ public class RuntimeChildResourceDefinition extends BaseRuntimeDeclaredChildDefi
|
|||
|
||||
@Override
|
||||
public String getChildNameByDatatype(Class<? extends IElement> theDatatype) {
|
||||
if (ResourceReference.class.equals(theDatatype)) {
|
||||
if (BaseResourceReference.class.isAssignableFrom(theDatatype)) {
|
||||
return getElementName();
|
||||
}
|
||||
return null;
|
||||
|
@ -36,7 +36,7 @@ public class RuntimeChildResourceDefinition extends BaseRuntimeDeclaredChildDefi
|
|||
|
||||
@Override
|
||||
public BaseRuntimeElementDefinition<?> getChildElementDefinitionByDatatype(Class<? extends IElement> theDatatype) {
|
||||
if (ResourceReference.class.equals(theDatatype)) {
|
||||
if (BaseResourceReference.class.isAssignableFrom(theDatatype)) {
|
||||
return myRuntimeDef;
|
||||
}
|
||||
return null;
|
||||
|
|
|
@ -11,7 +11,7 @@ import java.util.Set;
|
|||
import ca.uhn.fhir.model.api.IDatatype;
|
||||
import ca.uhn.fhir.model.api.IElement;
|
||||
import ca.uhn.fhir.model.api.IResource;
|
||||
import ca.uhn.fhir.model.api.ResourceReference;
|
||||
import ca.uhn.fhir.model.api.BaseResourceReference;
|
||||
import ca.uhn.fhir.model.api.UndeclaredExtension;
|
||||
|
||||
public class RuntimeChildUndeclaredExtensionDefinition extends BaseRuntimeChildDefinition {
|
||||
|
@ -70,13 +70,13 @@ public class RuntimeChildUndeclaredExtensionDefinition extends BaseRuntimeChildD
|
|||
}
|
||||
|
||||
// Resource Reference
|
||||
myDatatypeToAttributeName.put(ResourceReference.class, "valueReference");
|
||||
myDatatypeToAttributeName.put(BaseResourceReference.class, "valueReference");
|
||||
List<Class<? extends IResource>> types = new ArrayList<Class<? extends IResource>>();
|
||||
types.add(IResource.class);
|
||||
RuntimeResourceReferenceDefinition def = new RuntimeResourceReferenceDefinition("valueResource", types);
|
||||
def.sealAndInitialize(theClassToElementDefinitions);
|
||||
myAttributeNameToDefinition.put("valueResource", def);
|
||||
myDatatypeToDefinition.put(ResourceReference.class, def);
|
||||
myDatatypeToDefinition.put(BaseResourceReference.class, def);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -208,6 +208,7 @@ public class RuntimeResourceDefinition extends BaseRuntimeElementCompositeDefini
|
|||
StructureElement extSlice = theStruct.addElement();
|
||||
extSlice.setName(elementName);
|
||||
extSlice.setPath(join(path, '.') + '.' + elementName);
|
||||
extSlice.getDefinition().setIsModifier(theIsModifier);
|
||||
extSlice.getDefinition().addType().setCode(DataTypeEnum.EXTENSION);
|
||||
extSlice.getDefinition().setMin(0);
|
||||
extSlice.getDefinition().setMax("*");
|
||||
|
|
|
@ -6,15 +6,15 @@ import java.util.Map;
|
|||
|
||||
import ca.uhn.fhir.model.api.IElement;
|
||||
import ca.uhn.fhir.model.api.IResource;
|
||||
import ca.uhn.fhir.model.api.ResourceReference;
|
||||
import ca.uhn.fhir.model.api.BaseResourceReference;
|
||||
|
||||
public class RuntimeResourceReferenceDefinition extends BaseRuntimeElementDefinition<ResourceReference> {
|
||||
public class RuntimeResourceReferenceDefinition extends BaseRuntimeElementDefinition<BaseResourceReference> {
|
||||
|
||||
private final List<Class<? extends IResource>> myResourceTypes;
|
||||
private HashMap<Class<? extends IResource>, RuntimeResourceDefinition> myResourceTypeToDefinition;
|
||||
|
||||
public RuntimeResourceReferenceDefinition(String theName, List<Class<? extends IResource>> theResourceTypes) {
|
||||
super(theName, ResourceReference.class);
|
||||
super(theName, BaseResourceReference.class);
|
||||
if (theResourceTypes == null || theResourceTypes.isEmpty()) {
|
||||
throw new ConfigurationException("Element '" + theName + "' has no resource types noted");
|
||||
}
|
||||
|
|
|
@ -1,11 +1,25 @@
|
|||
package ca.uhn.fhir.model.api;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public abstract class BaseElement implements IElement, ISupportsUndeclaredExtensions {
|
||||
|
||||
private List<UndeclaredExtension> myUndeclaredExtensions;
|
||||
private List<UndeclaredExtension> myUndeclaredModifierExtensions;
|
||||
|
||||
@Override
|
||||
public List<UndeclaredExtension> getAllUndeclaredExtensions() {
|
||||
ArrayList<UndeclaredExtension> retVal = new ArrayList<UndeclaredExtension>();
|
||||
if (myUndeclaredExtensions != null) {
|
||||
retVal.addAll(myUndeclaredExtensions);
|
||||
}
|
||||
if (myUndeclaredModifierExtensions != null) {
|
||||
retVal.addAll(myUndeclaredModifierExtensions);
|
||||
}
|
||||
return Collections.unmodifiableList(retVal);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<UndeclaredExtension> getUndeclaredExtensions() {
|
||||
|
@ -15,6 +29,14 @@ public abstract class BaseElement implements IElement, ISupportsUndeclaredExtens
|
|||
return myUndeclaredExtensions;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<UndeclaredExtension> getUndeclaredModifierExtensions() {
|
||||
if (myUndeclaredModifierExtensions == null) {
|
||||
myUndeclaredModifierExtensions = new ArrayList<UndeclaredExtension>();
|
||||
}
|
||||
return myUndeclaredModifierExtensions;
|
||||
}
|
||||
|
||||
/**
|
||||
* Intended to be called by extending classes {@link #isEmpty()} implementations, returns <code>true</code> if all content in this superclass instance is empty per the semantics of
|
||||
* {@link #isEmpty()}.
|
||||
|
@ -27,6 +49,13 @@ public abstract class BaseElement implements IElement, ISupportsUndeclaredExtens
|
|||
}
|
||||
}
|
||||
}
|
||||
if (myUndeclaredModifierExtensions != null) {
|
||||
for (UndeclaredExtension next : myUndeclaredModifierExtensions) {
|
||||
if (!next.isEmpty()) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
|
|
|
@ -0,0 +1,8 @@
|
|||
package ca.uhn.fhir.model.api;
|
||||
|
||||
|
||||
|
||||
public abstract class BaseResourceReference extends BaseElement {
|
||||
|
||||
|
||||
}
|
|
@ -5,8 +5,18 @@ import java.util.List;
|
|||
public interface ISupportsUndeclaredExtensions {
|
||||
|
||||
/**
|
||||
* Returns a list containing all undeclared extensions
|
||||
* Returns a list containing all undeclared non-modifier extensions
|
||||
*/
|
||||
List<UndeclaredExtension> getUndeclaredExtensions();
|
||||
|
||||
/**
|
||||
* Returns an <b>immutable</b> list containing all extensions (modifier and non-modifier)
|
||||
*/
|
||||
List<UndeclaredExtension> getAllUndeclaredExtensions();
|
||||
|
||||
/**
|
||||
* Returns a list containing all undeclared modifier extensions
|
||||
*/
|
||||
List<UndeclaredExtension> getUndeclaredModifierExtensions();
|
||||
|
||||
}
|
||||
|
|
|
@ -1,32 +0,0 @@
|
|||
package ca.uhn.fhir.model.api;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
|
||||
public class ResourceReference implements IDatatype {
|
||||
|
||||
private String myDisplay;
|
||||
private String myReference;
|
||||
|
||||
public String getDisplay() {
|
||||
return myDisplay;
|
||||
}
|
||||
|
||||
public String getReference() {
|
||||
return myReference;
|
||||
}
|
||||
|
||||
public void setDisplay(String theDisplay) {
|
||||
myDisplay = theDisplay;
|
||||
}
|
||||
|
||||
public void setReference(String theReference) {
|
||||
myReference = theReference;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isEmpty() {
|
||||
return StringUtils.isBlank(myDisplay) && StringUtils.isBlank(myReference);
|
||||
}
|
||||
|
||||
}
|
|
@ -1,27 +1,54 @@
|
|||
package ca.uhn.fhir.model.api;
|
||||
|
||||
|
||||
public class UndeclaredExtension extends BaseElement {
|
||||
|
||||
private String myUrl;
|
||||
private IElement myValue;
|
||||
private boolean myIsModifier;
|
||||
|
||||
public UndeclaredExtension() {
|
||||
super();
|
||||
public UndeclaredExtension(boolean theIsModifier) {
|
||||
myIsModifier = theIsModifier;
|
||||
}
|
||||
|
||||
public UndeclaredExtension(String theUrl) {
|
||||
myUrl=theUrl;
|
||||
public UndeclaredExtension(boolean theIsModifier, String theUrl) {
|
||||
myIsModifier = theIsModifier;
|
||||
myUrl = theUrl;
|
||||
}
|
||||
|
||||
public boolean isModifier() {
|
||||
return myIsModifier;
|
||||
}
|
||||
|
||||
public String getUrl() {
|
||||
return myUrl;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the value of this extension, if one exists.
|
||||
* <p>
|
||||
* Note that if this extension contains extensions (instead of a datatype) then <b>this method will return null</b>. In that case, you must use {@link #getUndeclaredExtensions()} and
|
||||
* {@link #getUndeclaredModifierExtensions()} to retrieve the child extensions.
|
||||
* </p>
|
||||
*/
|
||||
public IElement getValue() {
|
||||
return myValue;
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns the value of this extension, casted to a primitive datatype. This is a convenience method which should only be called if you are sure that the value for this particular extension will
|
||||
* be a primitive.
|
||||
* <p>
|
||||
* Note that if this extension contains extensions (instead of a datatype) then <b>this method will return null</b>. In that case, you must use {@link #getUndeclaredExtensions()} and
|
||||
* {@link #getUndeclaredModifierExtensions()} to retrieve the child extensions.
|
||||
* </p>
|
||||
*
|
||||
* @throws ClassCastException
|
||||
* If the value of this extension is not a primitive datatype
|
||||
*/
|
||||
public IPrimitiveDatatype<?> getValueAsPrimitive() {
|
||||
return (IPrimitiveDatatype<?>) getValue();
|
||||
}
|
||||
|
||||
public void setUrl(String theUrl) {
|
||||
myUrl = theUrl;
|
||||
}
|
||||
|
@ -32,7 +59,7 @@ public class UndeclaredExtension extends BaseElement {
|
|||
|
||||
@Override
|
||||
public boolean isEmpty() {
|
||||
return myValue == null || myValue.isEmpty();
|
||||
return super.isBaseEmpty() && myValue == null || myValue.isEmpty();
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -13,6 +13,8 @@ public @interface ResourceDef {
|
|||
|
||||
String name();
|
||||
|
||||
String id() default "";
|
||||
|
||||
String profile() default "";
|
||||
|
||||
int identifierOrder() default ORDER_NOT_SPECIFIED;
|
||||
|
|
|
@ -38,7 +38,8 @@ import ca.uhn.fhir.model.dstu.resource.*;
|
|||
* </p>
|
||||
*/
|
||||
@DatatypeDef(name="Address")
|
||||
public class AddressDt extends BaseElement implements ICompositeDatatype {
|
||||
public class AddressDt
|
||||
extends BaseElement implements ICompositeDatatype {
|
||||
|
||||
|
||||
@Child(name="use", type=CodeDt.class, order=0, min=0, max=1)
|
||||
|
|
|
@ -38,7 +38,8 @@ import ca.uhn.fhir.model.dstu.resource.*;
|
|||
* </p>
|
||||
*/
|
||||
@DatatypeDef(name="Attachment")
|
||||
public class AttachmentDt extends BaseElement implements ICompositeDatatype {
|
||||
public class AttachmentDt
|
||||
extends BaseElement implements ICompositeDatatype {
|
||||
|
||||
|
||||
@Child(name="contentType", type=CodeDt.class, order=0, min=1, max=1)
|
||||
|
|
|
@ -38,7 +38,8 @@ import ca.uhn.fhir.model.dstu.resource.*;
|
|||
* </p>
|
||||
*/
|
||||
@DatatypeDef(name="CodeableConcept")
|
||||
public class CodeableConceptDt extends BaseElement implements ICompositeDatatype {
|
||||
public class CodeableConceptDt
|
||||
extends BaseElement implements ICompositeDatatype {
|
||||
|
||||
|
||||
@Child(name="coding", type=CodingDt.class, order=0, min=0, max=Child.MAX_UNLIMITED)
|
||||
|
|
|
@ -38,7 +38,8 @@ import ca.uhn.fhir.model.dstu.resource.*;
|
|||
* </p>
|
||||
*/
|
||||
@DatatypeDef(name="Coding")
|
||||
public class CodingDt extends BaseElement implements ICompositeDatatype {
|
||||
public class CodingDt
|
||||
extends BaseElement implements ICompositeDatatype {
|
||||
|
||||
|
||||
@Child(name="system", type=UriDt.class, order=0, min=0, max=1)
|
||||
|
@ -83,7 +84,7 @@ public class CodingDt extends BaseElement implements ICompositeDatatype {
|
|||
shortDefinition="Set this coding was chosen from",
|
||||
formalDefinition="The set of possible coded values this coding was chosen from or constrained by"
|
||||
)
|
||||
private ResourceReference myValueSet;
|
||||
private ResourceReferenceDt myValueSet;
|
||||
|
||||
|
||||
@Override
|
||||
|
@ -316,9 +317,9 @@ public class CodingDt extends BaseElement implements ICompositeDatatype {
|
|||
* The set of possible coded values this coding was chosen from or constrained by
|
||||
* </p>
|
||||
*/
|
||||
public ResourceReference getValueSet() {
|
||||
public ResourceReferenceDt getValueSet() {
|
||||
if (myValueSet == null) {
|
||||
myValueSet = new ResourceReference();
|
||||
myValueSet = new ResourceReferenceDt();
|
||||
}
|
||||
return myValueSet;
|
||||
}
|
||||
|
@ -331,7 +332,7 @@ public class CodingDt extends BaseElement implements ICompositeDatatype {
|
|||
* The set of possible coded values this coding was chosen from or constrained by
|
||||
* </p>
|
||||
*/
|
||||
public void setValueSet(ResourceReference theValue) {
|
||||
public void setValueSet(ResourceReferenceDt theValue) {
|
||||
myValueSet = theValue;
|
||||
}
|
||||
|
||||
|
|
|
@ -38,7 +38,8 @@ import ca.uhn.fhir.model.dstu.resource.*;
|
|||
* </p>
|
||||
*/
|
||||
@DatatypeDef(name="Contact")
|
||||
public class ContactDt extends BaseElement implements ICompositeDatatype {
|
||||
public class ContactDt
|
||||
extends BaseElement implements ICompositeDatatype {
|
||||
|
||||
|
||||
@Child(name="system", type=CodeDt.class, order=0, min=0, max=1)
|
||||
|
|
|
@ -38,7 +38,8 @@ import ca.uhn.fhir.model.dstu.resource.*;
|
|||
* </p>
|
||||
*/
|
||||
@DatatypeDef(name="HumanName")
|
||||
public class HumanNameDt extends BaseElement implements ICompositeDatatype {
|
||||
public class HumanNameDt
|
||||
extends BaseElement implements ICompositeDatatype {
|
||||
|
||||
|
||||
@Child(name="use", type=CodeDt.class, order=0, min=0, max=1)
|
||||
|
|
|
@ -38,7 +38,8 @@ import ca.uhn.fhir.model.dstu.resource.*;
|
|||
* </p>
|
||||
*/
|
||||
@DatatypeDef(name="Identifier")
|
||||
public class IdentifierDt extends BaseElement implements ICompositeDatatype , IQueryParameterType {
|
||||
public class IdentifierDt
|
||||
extends BaseElement implements ICompositeDatatype , IQueryParameterType {
|
||||
|
||||
/**
|
||||
* Creates a new identifier
|
||||
|
@ -97,7 +98,7 @@ public class IdentifierDt extends BaseElement implements ICompositeDatatype , I
|
|||
shortDefinition="Organization that issued id (may be just text)",
|
||||
formalDefinition="Organization that issued/manages the identifier"
|
||||
)
|
||||
private ResourceReference myAssigner;
|
||||
private ResourceReferenceDt myAssigner;
|
||||
|
||||
|
||||
@Override
|
||||
|
@ -318,9 +319,9 @@ public class IdentifierDt extends BaseElement implements ICompositeDatatype , I
|
|||
* Organization that issued/manages the identifier
|
||||
* </p>
|
||||
*/
|
||||
public ResourceReference getAssigner() {
|
||||
public ResourceReferenceDt getAssigner() {
|
||||
if (myAssigner == null) {
|
||||
myAssigner = new ResourceReference();
|
||||
myAssigner = new ResourceReferenceDt();
|
||||
}
|
||||
return myAssigner;
|
||||
}
|
||||
|
@ -333,7 +334,7 @@ public class IdentifierDt extends BaseElement implements ICompositeDatatype , I
|
|||
* Organization that issued/manages the identifier
|
||||
* </p>
|
||||
*/
|
||||
public void setAssigner(ResourceReference theValue) {
|
||||
public void setAssigner(ResourceReferenceDt theValue) {
|
||||
myAssigner = theValue;
|
||||
}
|
||||
|
||||
|
|
|
@ -38,7 +38,8 @@ import ca.uhn.fhir.model.dstu.resource.*;
|
|||
* </p>
|
||||
*/
|
||||
@DatatypeDef(name="Period")
|
||||
public class PeriodDt extends BaseElement implements ICompositeDatatype {
|
||||
public class PeriodDt
|
||||
extends BaseElement implements ICompositeDatatype {
|
||||
|
||||
|
||||
@Child(name="start", type=DateTimeDt.class, order=0, min=0, max=1)
|
||||
|
|
|
@ -38,7 +38,8 @@ import ca.uhn.fhir.model.dstu.resource.*;
|
|||
* </p>
|
||||
*/
|
||||
@DatatypeDef(name="Quantity")
|
||||
public class QuantityDt extends BaseElement implements ICompositeDatatype {
|
||||
public class QuantityDt
|
||||
extends BaseElement implements ICompositeDatatype {
|
||||
|
||||
|
||||
@Child(name="value", type=DecimalDt.class, order=0, min=0, max=1)
|
||||
|
@ -120,7 +121,7 @@ public class QuantityDt extends BaseElement implements ICompositeDatatype {
|
|||
* The value of the measured amount. The value includes an implicit precision in the presentation of the value
|
||||
* </p>
|
||||
*/
|
||||
public void setValue( long theValue) {
|
||||
public void setValue( java.math.BigDecimal theValue) {
|
||||
myValue = new DecimalDt(theValue);
|
||||
}
|
||||
|
||||
|
@ -144,7 +145,7 @@ public class QuantityDt extends BaseElement implements ICompositeDatatype {
|
|||
* The value of the measured amount. The value includes an implicit precision in the presentation of the value
|
||||
* </p>
|
||||
*/
|
||||
public void setValue( java.math.BigDecimal theValue) {
|
||||
public void setValue( long theValue) {
|
||||
myValue = new DecimalDt(theValue);
|
||||
}
|
||||
|
||||
|
|
|
@ -38,7 +38,8 @@ import ca.uhn.fhir.model.dstu.resource.*;
|
|||
* </p>
|
||||
*/
|
||||
@DatatypeDef(name="Range")
|
||||
public class RangeDt extends BaseElement implements ICompositeDatatype {
|
||||
public class RangeDt
|
||||
extends BaseElement implements ICompositeDatatype {
|
||||
|
||||
|
||||
@Child(name="low", type=QuantityDt.class, order=0, min=0, max=1)
|
||||
|
|
|
@ -38,7 +38,8 @@ import ca.uhn.fhir.model.dstu.resource.*;
|
|||
* </p>
|
||||
*/
|
||||
@DatatypeDef(name="Ratio")
|
||||
public class RatioDt extends BaseElement implements ICompositeDatatype {
|
||||
public class RatioDt
|
||||
extends BaseElement implements ICompositeDatatype {
|
||||
|
||||
|
||||
@Child(name="numerator", type=QuantityDt.class, order=0, min=0, max=1)
|
||||
|
|
|
@ -38,7 +38,8 @@ import ca.uhn.fhir.model.dstu.resource.*;
|
|||
* </p>
|
||||
*/
|
||||
@DatatypeDef(name="ResourceReference")
|
||||
public class ResourceReferenceDt extends BaseElement implements ICompositeDatatype {
|
||||
public class ResourceReferenceDt
|
||||
extends BaseResourceReference implements ICompositeDatatype {
|
||||
|
||||
|
||||
@Child(name="reference", type=StringDt.class, order=0, min=0, max=1)
|
||||
|
|
|
@ -38,7 +38,8 @@ import ca.uhn.fhir.model.dstu.resource.*;
|
|||
* </p>
|
||||
*/
|
||||
@DatatypeDef(name="SampledData")
|
||||
public class SampledDataDt extends BaseElement implements ICompositeDatatype {
|
||||
public class SampledDataDt
|
||||
extends BaseElement implements ICompositeDatatype {
|
||||
|
||||
|
||||
@Child(name="origin", type=QuantityDt.class, order=0, min=1, max=1)
|
||||
|
@ -165,7 +166,7 @@ public class SampledDataDt extends BaseElement implements ICompositeDatatype {
|
|||
* The length of time between sampling times, measured in milliseconds
|
||||
* </p>
|
||||
*/
|
||||
public void setPeriod( long theValue) {
|
||||
public void setPeriod( java.math.BigDecimal theValue) {
|
||||
myPeriod = new DecimalDt(theValue);
|
||||
}
|
||||
|
||||
|
@ -189,7 +190,7 @@ public class SampledDataDt extends BaseElement implements ICompositeDatatype {
|
|||
* The length of time between sampling times, measured in milliseconds
|
||||
* </p>
|
||||
*/
|
||||
public void setPeriod( java.math.BigDecimal theValue) {
|
||||
public void setPeriod( long theValue) {
|
||||
myPeriod = new DecimalDt(theValue);
|
||||
}
|
||||
|
||||
|
@ -232,7 +233,7 @@ public class SampledDataDt extends BaseElement implements ICompositeDatatype {
|
|||
* A correction factor that is applied to the sampled data points before they are added to the origin
|
||||
* </p>
|
||||
*/
|
||||
public void setFactor( long theValue) {
|
||||
public void setFactor( java.math.BigDecimal theValue) {
|
||||
myFactor = new DecimalDt(theValue);
|
||||
}
|
||||
|
||||
|
@ -256,7 +257,7 @@ public class SampledDataDt extends BaseElement implements ICompositeDatatype {
|
|||
* A correction factor that is applied to the sampled data points before they are added to the origin
|
||||
* </p>
|
||||
*/
|
||||
public void setFactor( java.math.BigDecimal theValue) {
|
||||
public void setFactor( long theValue) {
|
||||
myFactor = new DecimalDt(theValue);
|
||||
}
|
||||
|
||||
|
@ -299,7 +300,7 @@ public class SampledDataDt extends BaseElement implements ICompositeDatatype {
|
|||
* The lower limit of detection of the measured points. This is needed if any of the data points have the value \"L\" (lower than detection limit)
|
||||
* </p>
|
||||
*/
|
||||
public void setLowerLimit( long theValue) {
|
||||
public void setLowerLimit( java.math.BigDecimal theValue) {
|
||||
myLowerLimit = new DecimalDt(theValue);
|
||||
}
|
||||
|
||||
|
@ -323,7 +324,7 @@ public class SampledDataDt extends BaseElement implements ICompositeDatatype {
|
|||
* The lower limit of detection of the measured points. This is needed if any of the data points have the value \"L\" (lower than detection limit)
|
||||
* </p>
|
||||
*/
|
||||
public void setLowerLimit( java.math.BigDecimal theValue) {
|
||||
public void setLowerLimit( long theValue) {
|
||||
myLowerLimit = new DecimalDt(theValue);
|
||||
}
|
||||
|
||||
|
@ -366,7 +367,7 @@ public class SampledDataDt extends BaseElement implements ICompositeDatatype {
|
|||
* The upper limit of detection of the measured points. This is needed if any of the data points have the value \"U\" (higher than detection limit)
|
||||
* </p>
|
||||
*/
|
||||
public void setUpperLimit( long theValue) {
|
||||
public void setUpperLimit( java.math.BigDecimal theValue) {
|
||||
myUpperLimit = new DecimalDt(theValue);
|
||||
}
|
||||
|
||||
|
@ -390,7 +391,7 @@ public class SampledDataDt extends BaseElement implements ICompositeDatatype {
|
|||
* The upper limit of detection of the measured points. This is needed if any of the data points have the value \"U\" (higher than detection limit)
|
||||
* </p>
|
||||
*/
|
||||
public void setUpperLimit( java.math.BigDecimal theValue) {
|
||||
public void setUpperLimit( long theValue) {
|
||||
myUpperLimit = new DecimalDt(theValue);
|
||||
}
|
||||
|
||||
|
|
|
@ -38,7 +38,8 @@ import ca.uhn.fhir.model.dstu.resource.*;
|
|||
* </p>
|
||||
*/
|
||||
@DatatypeDef(name="Schedule")
|
||||
public class ScheduleDt extends BaseElement implements ICompositeDatatype {
|
||||
public class ScheduleDt
|
||||
extends BaseElement implements ICompositeDatatype {
|
||||
|
||||
|
||||
@Child(name="event", type=PeriodDt.class, order=0, min=0, max=Child.MAX_UNLIMITED)
|
||||
|
@ -319,7 +320,7 @@ public class ScheduleDt extends BaseElement implements ICompositeDatatype {
|
|||
* How long each repetition should last
|
||||
* </p>
|
||||
*/
|
||||
public void setDuration( long theValue) {
|
||||
public void setDuration( java.math.BigDecimal theValue) {
|
||||
myDuration = new DecimalDt(theValue);
|
||||
}
|
||||
|
||||
|
@ -343,7 +344,7 @@ public class ScheduleDt extends BaseElement implements ICompositeDatatype {
|
|||
* How long each repetition should last
|
||||
* </p>
|
||||
*/
|
||||
public void setDuration( java.math.BigDecimal theValue) {
|
||||
public void setDuration( long theValue) {
|
||||
myDuration = new DecimalDt(theValue);
|
||||
}
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@ import ca.uhn.fhir.model.dstu.valueset.*;
|
|||
* Allows institutions to track their devices.
|
||||
* </p>
|
||||
*/
|
||||
@ResourceDef(name="Device", profile="http://hl7.org/fhir/profiles/Device")
|
||||
@ResourceDef(name="Device", profile="http://hl7.org/fhir/profiles/Device", id="device")
|
||||
public class Device extends BaseResource implements IResource {
|
||||
|
||||
/**
|
||||
|
@ -184,7 +184,7 @@ public class Device extends BaseResource implements IResource {
|
|||
shortDefinition="Organization responsible for device",
|
||||
formalDefinition="An organization that is responsible for the provision and ongoing maintenance of the device"
|
||||
)
|
||||
private ResourceReference myOwner;
|
||||
private ResourceReferenceDt myOwner;
|
||||
|
||||
@Child(name="location", order=9, min=0, max=1, type={
|
||||
Location.class,
|
||||
|
@ -193,7 +193,7 @@ public class Device extends BaseResource implements IResource {
|
|||
shortDefinition="Where the resource is found",
|
||||
formalDefinition="The resource may be found in a literal location (i.e. GPS coordinates), a logical place (i.e. \"in/with the patient\"), or a coded location"
|
||||
)
|
||||
private ResourceReference myLocation;
|
||||
private ResourceReferenceDt myLocation;
|
||||
|
||||
@Child(name="patient", order=10, min=0, max=1, type={
|
||||
Patient.class,
|
||||
|
@ -202,7 +202,7 @@ public class Device extends BaseResource implements IResource {
|
|||
shortDefinition="If the resource is affixed to a person",
|
||||
formalDefinition="Patient information, if the resource is affixed to a person"
|
||||
)
|
||||
private ResourceReference myPatient;
|
||||
private ResourceReferenceDt myPatient;
|
||||
|
||||
@Child(name="contact", type=ContactDt.class, order=11, min=0, max=Child.MAX_UNLIMITED)
|
||||
@Description(
|
||||
|
@ -579,9 +579,9 @@ public class Device extends BaseResource implements IResource {
|
|||
* An organization that is responsible for the provision and ongoing maintenance of the device
|
||||
* </p>
|
||||
*/
|
||||
public ResourceReference getOwner() {
|
||||
public ResourceReferenceDt getOwner() {
|
||||
if (myOwner == null) {
|
||||
myOwner = new ResourceReference();
|
||||
myOwner = new ResourceReferenceDt();
|
||||
}
|
||||
return myOwner;
|
||||
}
|
||||
|
@ -594,7 +594,7 @@ public class Device extends BaseResource implements IResource {
|
|||
* An organization that is responsible for the provision and ongoing maintenance of the device
|
||||
* </p>
|
||||
*/
|
||||
public void setOwner(ResourceReference theValue) {
|
||||
public void setOwner(ResourceReferenceDt theValue) {
|
||||
myOwner = theValue;
|
||||
}
|
||||
|
||||
|
@ -610,9 +610,9 @@ public class Device extends BaseResource implements IResource {
|
|||
* The resource may be found in a literal location (i.e. GPS coordinates), a logical place (i.e. \"in/with the patient\"), or a coded location
|
||||
* </p>
|
||||
*/
|
||||
public ResourceReference getLocation() {
|
||||
public ResourceReferenceDt getLocation() {
|
||||
if (myLocation == null) {
|
||||
myLocation = new ResourceReference();
|
||||
myLocation = new ResourceReferenceDt();
|
||||
}
|
||||
return myLocation;
|
||||
}
|
||||
|
@ -625,7 +625,7 @@ public class Device extends BaseResource implements IResource {
|
|||
* The resource may be found in a literal location (i.e. GPS coordinates), a logical place (i.e. \"in/with the patient\"), or a coded location
|
||||
* </p>
|
||||
*/
|
||||
public void setLocation(ResourceReference theValue) {
|
||||
public void setLocation(ResourceReferenceDt theValue) {
|
||||
myLocation = theValue;
|
||||
}
|
||||
|
||||
|
@ -641,9 +641,9 @@ public class Device extends BaseResource implements IResource {
|
|||
* Patient information, if the resource is affixed to a person
|
||||
* </p>
|
||||
*/
|
||||
public ResourceReference getPatient() {
|
||||
public ResourceReferenceDt getPatient() {
|
||||
if (myPatient == null) {
|
||||
myPatient = new ResourceReference();
|
||||
myPatient = new ResourceReferenceDt();
|
||||
}
|
||||
return myPatient;
|
||||
}
|
||||
|
@ -656,7 +656,7 @@ public class Device extends BaseResource implements IResource {
|
|||
* Patient information, if the resource is affixed to a person
|
||||
* </p>
|
||||
*/
|
||||
public void setPatient(ResourceReference theValue) {
|
||||
public void setPatient(ResourceReferenceDt theValue) {
|
||||
myPatient = theValue;
|
||||
}
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@ import ca.uhn.fhir.model.dstu.valueset.*;
|
|||
*
|
||||
* </p>
|
||||
*/
|
||||
@ResourceDef(name="Group", profile="http://hl7.org/fhir/profiles/Group")
|
||||
@ResourceDef(name="Group", profile="http://hl7.org/fhir/profiles/Group", id="group")
|
||||
public class Group extends BaseResource implements IResource {
|
||||
|
||||
/**
|
||||
|
@ -191,7 +191,7 @@ public class Group extends BaseResource implements IResource {
|
|||
shortDefinition="Who is in group",
|
||||
formalDefinition="Identifies the resource instances that are members of the group."
|
||||
)
|
||||
private List<ResourceReference> myMember;
|
||||
private List<ResourceReferenceDt> myMember;
|
||||
|
||||
|
||||
@Override
|
||||
|
@ -487,7 +487,7 @@ public class Group extends BaseResource implements IResource {
|
|||
* Identifies the resource instances that are members of the group.
|
||||
* </p>
|
||||
*/
|
||||
public List<ResourceReference> getMember() {
|
||||
public List<ResourceReferenceDt> getMember() {
|
||||
return myMember;
|
||||
}
|
||||
|
||||
|
@ -499,7 +499,7 @@ public class Group extends BaseResource implements IResource {
|
|||
* Identifies the resource instances that are members of the group.
|
||||
* </p>
|
||||
*/
|
||||
public void setMember(List<ResourceReference> theValue) {
|
||||
public void setMember(List<ResourceReferenceDt> theValue) {
|
||||
myMember = theValue;
|
||||
}
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@ import ca.uhn.fhir.model.dstu.valueset.*;
|
|||
*
|
||||
* </p>
|
||||
*/
|
||||
@ResourceDef(name="Location", profile="http://hl7.org/fhir/profiles/Location")
|
||||
@ResourceDef(name="Location", profile="http://hl7.org/fhir/profiles/Location", id="location")
|
||||
public class Location extends BaseResource implements IResource {
|
||||
|
||||
/**
|
||||
|
@ -184,7 +184,7 @@ public class Location extends BaseResource implements IResource {
|
|||
shortDefinition="The organization that is responsible for the provisioning and upkeep of the location",
|
||||
formalDefinition=""
|
||||
)
|
||||
private ResourceReference myManagingOrganization;
|
||||
private ResourceReferenceDt myManagingOrganization;
|
||||
|
||||
@Child(name="status", type=CodeDt.class, order=9, min=0, max=1)
|
||||
@Description(
|
||||
|
@ -200,7 +200,7 @@ public class Location extends BaseResource implements IResource {
|
|||
shortDefinition="Another Location which this Location is physically part of",
|
||||
formalDefinition=""
|
||||
)
|
||||
private ResourceReference myPartOf;
|
||||
private ResourceReferenceDt myPartOf;
|
||||
|
||||
@Child(name="mode", type=CodeDt.class, order=11, min=0, max=1)
|
||||
@Description(
|
||||
|
@ -522,9 +522,9 @@ public class Location extends BaseResource implements IResource {
|
|||
*
|
||||
* </p>
|
||||
*/
|
||||
public ResourceReference getManagingOrganization() {
|
||||
public ResourceReferenceDt getManagingOrganization() {
|
||||
if (myManagingOrganization == null) {
|
||||
myManagingOrganization = new ResourceReference();
|
||||
myManagingOrganization = new ResourceReferenceDt();
|
||||
}
|
||||
return myManagingOrganization;
|
||||
}
|
||||
|
@ -537,7 +537,7 @@ public class Location extends BaseResource implements IResource {
|
|||
*
|
||||
* </p>
|
||||
*/
|
||||
public void setManagingOrganization(ResourceReference theValue) {
|
||||
public void setManagingOrganization(ResourceReferenceDt theValue) {
|
||||
myManagingOrganization = theValue;
|
||||
}
|
||||
|
||||
|
@ -596,9 +596,9 @@ public class Location extends BaseResource implements IResource {
|
|||
*
|
||||
* </p>
|
||||
*/
|
||||
public ResourceReference getPartOf() {
|
||||
public ResourceReferenceDt getPartOf() {
|
||||
if (myPartOf == null) {
|
||||
myPartOf = new ResourceReference();
|
||||
myPartOf = new ResourceReferenceDt();
|
||||
}
|
||||
return myPartOf;
|
||||
}
|
||||
|
@ -611,7 +611,7 @@ public class Location extends BaseResource implements IResource {
|
|||
*
|
||||
* </p>
|
||||
*/
|
||||
public void setPartOf(ResourceReference theValue) {
|
||||
public void setPartOf(ResourceReferenceDt theValue) {
|
||||
myPartOf = theValue;
|
||||
}
|
||||
|
||||
|
@ -736,7 +736,7 @@ public class Location extends BaseResource implements IResource {
|
|||
* Longitude. The value domain and the interpretation are the same as for the text of the longitude element in KML (see notes below)
|
||||
* </p>
|
||||
*/
|
||||
public void setLongitude( long theValue) {
|
||||
public void setLongitude( java.math.BigDecimal theValue) {
|
||||
myLongitude = new DecimalDt(theValue);
|
||||
}
|
||||
|
||||
|
@ -760,7 +760,7 @@ public class Location extends BaseResource implements IResource {
|
|||
* Longitude. The value domain and the interpretation are the same as for the text of the longitude element in KML (see notes below)
|
||||
* </p>
|
||||
*/
|
||||
public void setLongitude( java.math.BigDecimal theValue) {
|
||||
public void setLongitude( long theValue) {
|
||||
myLongitude = new DecimalDt(theValue);
|
||||
}
|
||||
|
||||
|
@ -803,7 +803,7 @@ public class Location extends BaseResource implements IResource {
|
|||
* Latitude. The value domain and the interpretation are the same as for the text of the latitude element in KML (see notes below)
|
||||
* </p>
|
||||
*/
|
||||
public void setLatitude( long theValue) {
|
||||
public void setLatitude( java.math.BigDecimal theValue) {
|
||||
myLatitude = new DecimalDt(theValue);
|
||||
}
|
||||
|
||||
|
@ -827,7 +827,7 @@ public class Location extends BaseResource implements IResource {
|
|||
* Latitude. The value domain and the interpretation are the same as for the text of the latitude element in KML (see notes below)
|
||||
* </p>
|
||||
*/
|
||||
public void setLatitude( java.math.BigDecimal theValue) {
|
||||
public void setLatitude( long theValue) {
|
||||
myLatitude = new DecimalDt(theValue);
|
||||
}
|
||||
|
||||
|
@ -870,7 +870,7 @@ public class Location extends BaseResource implements IResource {
|
|||
* Altitude. The value domain and the interpretation are the same as for the text of the altitude element in KML (see notes below)
|
||||
* </p>
|
||||
*/
|
||||
public void setAltitude( long theValue) {
|
||||
public void setAltitude( java.math.BigDecimal theValue) {
|
||||
myAltitude = new DecimalDt(theValue);
|
||||
}
|
||||
|
||||
|
@ -894,7 +894,7 @@ public class Location extends BaseResource implements IResource {
|
|||
* Altitude. The value domain and the interpretation are the same as for the text of the altitude element in KML (see notes below)
|
||||
* </p>
|
||||
*/
|
||||
public void setAltitude( java.math.BigDecimal theValue) {
|
||||
public void setAltitude( long theValue) {
|
||||
myAltitude = new DecimalDt(theValue);
|
||||
}
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@ import ca.uhn.fhir.model.dstu.valueset.*;
|
|||
*
|
||||
* </p>
|
||||
*/
|
||||
@ResourceDef(name="Medication", profile="http://hl7.org/fhir/profiles/Medication")
|
||||
@ResourceDef(name="Medication", profile="http://hl7.org/fhir/profiles/Medication", id="medication")
|
||||
public class Medication extends BaseResource implements IResource {
|
||||
|
||||
/**
|
||||
|
@ -139,7 +139,7 @@ public class Medication extends BaseResource implements IResource {
|
|||
shortDefinition="Manufacturer of the item",
|
||||
formalDefinition="Describes the details of the manufacturer"
|
||||
)
|
||||
private ResourceReference myManufacturer;
|
||||
private ResourceReferenceDt myManufacturer;
|
||||
|
||||
@Child(name="kind", type=CodeDt.class, order=4, min=0, max=1)
|
||||
@Description(
|
||||
|
@ -295,9 +295,9 @@ public class Medication extends BaseResource implements IResource {
|
|||
* Describes the details of the manufacturer
|
||||
* </p>
|
||||
*/
|
||||
public ResourceReference getManufacturer() {
|
||||
public ResourceReferenceDt getManufacturer() {
|
||||
if (myManufacturer == null) {
|
||||
myManufacturer = new ResourceReference();
|
||||
myManufacturer = new ResourceReferenceDt();
|
||||
}
|
||||
return myManufacturer;
|
||||
}
|
||||
|
@ -310,7 +310,7 @@ public class Medication extends BaseResource implements IResource {
|
|||
* Describes the details of the manufacturer
|
||||
* </p>
|
||||
*/
|
||||
public void setManufacturer(ResourceReference theValue) {
|
||||
public void setManufacturer(ResourceReferenceDt theValue) {
|
||||
myManufacturer = theValue;
|
||||
}
|
||||
|
||||
|
@ -561,7 +561,7 @@ public class Medication extends BaseResource implements IResource {
|
|||
shortDefinition="The product contained",
|
||||
formalDefinition="The actual ingredient - either a substance (simple ingredient) or another medication"
|
||||
)
|
||||
private ResourceReference myItem;
|
||||
private ResourceReferenceDt myItem;
|
||||
|
||||
@Child(name="amount", type=RatioDt.class, order=1, min=0, max=1)
|
||||
@Description(
|
||||
|
@ -586,7 +586,7 @@ public class Medication extends BaseResource implements IResource {
|
|||
* The actual ingredient - either a substance (simple ingredient) or another medication
|
||||
* </p>
|
||||
*/
|
||||
public ResourceReference getItem() {
|
||||
public ResourceReferenceDt getItem() {
|
||||
return myItem;
|
||||
}
|
||||
|
||||
|
@ -598,7 +598,7 @@ public class Medication extends BaseResource implements IResource {
|
|||
* The actual ingredient - either a substance (simple ingredient) or another medication
|
||||
* </p>
|
||||
*/
|
||||
public void setItem(ResourceReference theValue) {
|
||||
public void setItem(ResourceReferenceDt theValue) {
|
||||
myItem = theValue;
|
||||
}
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@ import ca.uhn.fhir.model.dstu.valueset.*;
|
|||
* Observations are a key aspect of healthcare. This resource is used to capture those that do not require more sophisticated mechanisms.
|
||||
* </p>
|
||||
*/
|
||||
@ResourceDef(name="Observation", profile="http://hl7.org/fhir/profiles/Observation")
|
||||
@ResourceDef(name="Observation", profile="http://hl7.org/fhir/profiles/Observation", id="observation")
|
||||
public class Observation extends BaseResource implements IResource {
|
||||
|
||||
/**
|
||||
|
@ -289,7 +289,7 @@ public class Observation extends BaseResource implements IResource {
|
|||
shortDefinition="Who and/or what this is about",
|
||||
formalDefinition="The thing the observation is being made about"
|
||||
)
|
||||
private ResourceReference mySubject;
|
||||
private ResourceReferenceDt mySubject;
|
||||
|
||||
@Child(name="specimen", order=12, min=0, max=1, type={
|
||||
Specimen.class,
|
||||
|
@ -298,7 +298,7 @@ public class Observation extends BaseResource implements IResource {
|
|||
shortDefinition="Specimen used for this observation",
|
||||
formalDefinition="The specimen that was used when this observation was made"
|
||||
)
|
||||
private ResourceReference mySpecimen;
|
||||
private ResourceReferenceDt mySpecimen;
|
||||
|
||||
@Child(name="performer", order=13, min=0, max=Child.MAX_UNLIMITED, type={
|
||||
Practitioner.class,
|
||||
|
@ -309,7 +309,7 @@ public class Observation extends BaseResource implements IResource {
|
|||
shortDefinition="Who did the observation",
|
||||
formalDefinition="Who was responsible for asserting the observed value as \"true\""
|
||||
)
|
||||
private List<ResourceReference> myPerformer;
|
||||
private List<ResourceReferenceDt> myPerformer;
|
||||
|
||||
@Child(name="referenceRange", order=14, min=0, max=Child.MAX_UNLIMITED)
|
||||
@Description(
|
||||
|
@ -748,7 +748,7 @@ public class Observation extends BaseResource implements IResource {
|
|||
* The thing the observation is being made about
|
||||
* </p>
|
||||
*/
|
||||
public ResourceReference getSubject() {
|
||||
public ResourceReferenceDt getSubject() {
|
||||
return mySubject;
|
||||
}
|
||||
|
||||
|
@ -760,7 +760,7 @@ public class Observation extends BaseResource implements IResource {
|
|||
* The thing the observation is being made about
|
||||
* </p>
|
||||
*/
|
||||
public void setSubject(ResourceReference theValue) {
|
||||
public void setSubject(ResourceReferenceDt theValue) {
|
||||
mySubject = theValue;
|
||||
}
|
||||
|
||||
|
@ -776,9 +776,9 @@ public class Observation extends BaseResource implements IResource {
|
|||
* The specimen that was used when this observation was made
|
||||
* </p>
|
||||
*/
|
||||
public ResourceReference getSpecimen() {
|
||||
public ResourceReferenceDt getSpecimen() {
|
||||
if (mySpecimen == null) {
|
||||
mySpecimen = new ResourceReference();
|
||||
mySpecimen = new ResourceReferenceDt();
|
||||
}
|
||||
return mySpecimen;
|
||||
}
|
||||
|
@ -791,7 +791,7 @@ public class Observation extends BaseResource implements IResource {
|
|||
* The specimen that was used when this observation was made
|
||||
* </p>
|
||||
*/
|
||||
public void setSpecimen(ResourceReference theValue) {
|
||||
public void setSpecimen(ResourceReferenceDt theValue) {
|
||||
mySpecimen = theValue;
|
||||
}
|
||||
|
||||
|
@ -807,7 +807,7 @@ public class Observation extends BaseResource implements IResource {
|
|||
* Who was responsible for asserting the observed value as \"true\"
|
||||
* </p>
|
||||
*/
|
||||
public List<ResourceReference> getPerformer() {
|
||||
public List<ResourceReferenceDt> getPerformer() {
|
||||
return myPerformer;
|
||||
}
|
||||
|
||||
|
@ -819,7 +819,7 @@ public class Observation extends BaseResource implements IResource {
|
|||
* Who was responsible for asserting the observed value as \"true\"
|
||||
* </p>
|
||||
*/
|
||||
public void setPerformer(List<ResourceReference> theValue) {
|
||||
public void setPerformer(List<ResourceReferenceDt> theValue) {
|
||||
myPerformer = theValue;
|
||||
}
|
||||
|
||||
|
@ -1111,7 +1111,7 @@ public class Observation extends BaseResource implements IResource {
|
|||
shortDefinition="Observation that is related to this one",
|
||||
formalDefinition="A reference to the observation that is related to this observation"
|
||||
)
|
||||
private ResourceReference myTarget;
|
||||
private ResourceReferenceDt myTarget;
|
||||
|
||||
|
||||
@Override
|
||||
|
@ -1172,9 +1172,9 @@ public class Observation extends BaseResource implements IResource {
|
|||
* A reference to the observation that is related to this observation
|
||||
* </p>
|
||||
*/
|
||||
public ResourceReference getTarget() {
|
||||
public ResourceReferenceDt getTarget() {
|
||||
if (myTarget == null) {
|
||||
myTarget = new ResourceReference();
|
||||
myTarget = new ResourceReferenceDt();
|
||||
}
|
||||
return myTarget;
|
||||
}
|
||||
|
@ -1187,7 +1187,7 @@ public class Observation extends BaseResource implements IResource {
|
|||
* A reference to the observation that is related to this observation
|
||||
* </p>
|
||||
*/
|
||||
public void setTarget(ResourceReference theValue) {
|
||||
public void setTarget(ResourceReferenceDt theValue) {
|
||||
myTarget = theValue;
|
||||
}
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@ import ca.uhn.fhir.model.dstu.valueset.*;
|
|||
*
|
||||
* </p>
|
||||
*/
|
||||
@ResourceDef(name="Organization", profile="http://hl7.org/fhir/profiles/Organization")
|
||||
@ResourceDef(name="Organization", profile="http://hl7.org/fhir/profiles/Organization", id="organization")
|
||||
public class Organization extends BaseResource implements IResource {
|
||||
|
||||
/**
|
||||
|
@ -153,7 +153,7 @@ public class Organization extends BaseResource implements IResource {
|
|||
shortDefinition="The organization of which this organization forms a part",
|
||||
formalDefinition="The organization of which this organization forms a part"
|
||||
)
|
||||
private ResourceReference myPartOf;
|
||||
private ResourceReferenceDt myPartOf;
|
||||
|
||||
@Child(name="contact", order=6, min=0, max=Child.MAX_UNLIMITED)
|
||||
@Description(
|
||||
|
@ -169,7 +169,7 @@ public class Organization extends BaseResource implements IResource {
|
|||
shortDefinition="Location(s) the organization uses to provide services",
|
||||
formalDefinition="Location(s) the organization uses to provide services"
|
||||
)
|
||||
private List<ResourceReference> myLocation;
|
||||
private List<ResourceReferenceDt> myLocation;
|
||||
|
||||
@Child(name="active", type=BooleanDt.class, order=8, min=0, max=1)
|
||||
@Description(
|
||||
|
@ -412,9 +412,9 @@ public class Organization extends BaseResource implements IResource {
|
|||
* The organization of which this organization forms a part
|
||||
* </p>
|
||||
*/
|
||||
public ResourceReference getPartOf() {
|
||||
public ResourceReferenceDt getPartOf() {
|
||||
if (myPartOf == null) {
|
||||
myPartOf = new ResourceReference();
|
||||
myPartOf = new ResourceReferenceDt();
|
||||
}
|
||||
return myPartOf;
|
||||
}
|
||||
|
@ -427,7 +427,7 @@ public class Organization extends BaseResource implements IResource {
|
|||
* The organization of which this organization forms a part
|
||||
* </p>
|
||||
*/
|
||||
public void setPartOf(ResourceReference theValue) {
|
||||
public void setPartOf(ResourceReferenceDt theValue) {
|
||||
myPartOf = theValue;
|
||||
}
|
||||
|
||||
|
@ -487,9 +487,9 @@ public class Organization extends BaseResource implements IResource {
|
|||
* Location(s) the organization uses to provide services
|
||||
* </p>
|
||||
*/
|
||||
public List<ResourceReference> getLocation() {
|
||||
public List<ResourceReferenceDt> getLocation() {
|
||||
if (myLocation == null) {
|
||||
myLocation = new ArrayList<ResourceReference>();
|
||||
myLocation = new ArrayList<ResourceReferenceDt>();
|
||||
}
|
||||
return myLocation;
|
||||
}
|
||||
|
@ -502,7 +502,7 @@ public class Organization extends BaseResource implements IResource {
|
|||
* Location(s) the organization uses to provide services
|
||||
* </p>
|
||||
*/
|
||||
public void setLocation(List<ResourceReference> theValue) {
|
||||
public void setLocation(List<ResourceReferenceDt> theValue) {
|
||||
myLocation = theValue;
|
||||
}
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@ import ca.uhn.fhir.model.dstu.valueset.*;
|
|||
* Tracking patient is the center of the healthcare process
|
||||
* </p>
|
||||
*/
|
||||
@ResourceDef(name="Patient", profile="http://hl7.org/fhir/profiles/Patient")
|
||||
@ResourceDef(name="Patient", profile="http://hl7.org/fhir/profiles/Patient", id="patient")
|
||||
public class Patient extends BaseResource implements IResource {
|
||||
|
||||
/**
|
||||
|
@ -296,7 +296,7 @@ public class Patient extends BaseResource implements IResource {
|
|||
shortDefinition="Patient's nominated care provider",
|
||||
formalDefinition="Patient's nominated care provider"
|
||||
)
|
||||
private List<ResourceReference> myCareProvider;
|
||||
private List<ResourceReferenceDt> myCareProvider;
|
||||
|
||||
@Child(name="managingOrganization", order=14, min=0, max=1, type={
|
||||
Organization.class,
|
||||
|
@ -305,7 +305,7 @@ public class Patient extends BaseResource implements IResource {
|
|||
shortDefinition="Organization that is the custodian of the patient record",
|
||||
formalDefinition="Organization that is the custodian of the patient record"
|
||||
)
|
||||
private ResourceReference myManagingOrganization;
|
||||
private ResourceReferenceDt myManagingOrganization;
|
||||
|
||||
@Child(name="link", order=15, min=0, max=Child.MAX_UNLIMITED)
|
||||
@Description(
|
||||
|
@ -873,7 +873,7 @@ public class Patient extends BaseResource implements IResource {
|
|||
* Patient's nominated care provider
|
||||
* </p>
|
||||
*/
|
||||
public List<ResourceReference> getCareProvider() {
|
||||
public List<ResourceReferenceDt> getCareProvider() {
|
||||
return myCareProvider;
|
||||
}
|
||||
|
||||
|
@ -885,7 +885,7 @@ public class Patient extends BaseResource implements IResource {
|
|||
* Patient's nominated care provider
|
||||
* </p>
|
||||
*/
|
||||
public void setCareProvider(List<ResourceReference> theValue) {
|
||||
public void setCareProvider(List<ResourceReferenceDt> theValue) {
|
||||
myCareProvider = theValue;
|
||||
}
|
||||
|
||||
|
@ -901,9 +901,9 @@ public class Patient extends BaseResource implements IResource {
|
|||
* Organization that is the custodian of the patient record
|
||||
* </p>
|
||||
*/
|
||||
public ResourceReference getManagingOrganization() {
|
||||
public ResourceReferenceDt getManagingOrganization() {
|
||||
if (myManagingOrganization == null) {
|
||||
myManagingOrganization = new ResourceReference();
|
||||
myManagingOrganization = new ResourceReferenceDt();
|
||||
}
|
||||
return myManagingOrganization;
|
||||
}
|
||||
|
@ -916,7 +916,7 @@ public class Patient extends BaseResource implements IResource {
|
|||
* Organization that is the custodian of the patient record
|
||||
* </p>
|
||||
*/
|
||||
public void setManagingOrganization(ResourceReference theValue) {
|
||||
public void setManagingOrganization(ResourceReferenceDt theValue) {
|
||||
myManagingOrganization = theValue;
|
||||
}
|
||||
|
||||
|
@ -1062,7 +1062,7 @@ public class Patient extends BaseResource implements IResource {
|
|||
shortDefinition="Organization that is associated with the contact",
|
||||
formalDefinition="Organization on behalf of which the contact is acting or for which the contact is working."
|
||||
)
|
||||
private ResourceReference myOrganization;
|
||||
private ResourceReferenceDt myOrganization;
|
||||
|
||||
|
||||
@Override
|
||||
|
@ -1273,9 +1273,9 @@ public class Patient extends BaseResource implements IResource {
|
|||
* Organization on behalf of which the contact is acting or for which the contact is working.
|
||||
* </p>
|
||||
*/
|
||||
public ResourceReference getOrganization() {
|
||||
public ResourceReferenceDt getOrganization() {
|
||||
if (myOrganization == null) {
|
||||
myOrganization = new ResourceReference();
|
||||
myOrganization = new ResourceReferenceDt();
|
||||
}
|
||||
return myOrganization;
|
||||
}
|
||||
|
@ -1288,7 +1288,7 @@ public class Patient extends BaseResource implements IResource {
|
|||
* Organization on behalf of which the contact is acting or for which the contact is working.
|
||||
* </p>
|
||||
*/
|
||||
public void setOrganization(ResourceReference theValue) {
|
||||
public void setOrganization(ResourceReferenceDt theValue) {
|
||||
myOrganization = theValue;
|
||||
}
|
||||
|
||||
|
@ -1463,7 +1463,7 @@ public class Patient extends BaseResource implements IResource {
|
|||
shortDefinition="The other patient resource that the link refers to",
|
||||
formalDefinition="The other patient resource that the link refers to"
|
||||
)
|
||||
private ResourceReference myOther;
|
||||
private ResourceReferenceDt myOther;
|
||||
|
||||
@Child(name="type", type=CodeDt.class, order=1, min=1, max=1)
|
||||
@Description(
|
||||
|
@ -1488,9 +1488,9 @@ public class Patient extends BaseResource implements IResource {
|
|||
* The other patient resource that the link refers to
|
||||
* </p>
|
||||
*/
|
||||
public ResourceReference getOther() {
|
||||
public ResourceReferenceDt getOther() {
|
||||
if (myOther == null) {
|
||||
myOther = new ResourceReference();
|
||||
myOther = new ResourceReferenceDt();
|
||||
}
|
||||
return myOther;
|
||||
}
|
||||
|
@ -1503,7 +1503,7 @@ public class Patient extends BaseResource implements IResource {
|
|||
* The other patient resource that the link refers to
|
||||
* </p>
|
||||
*/
|
||||
public void setOther(ResourceReference theValue) {
|
||||
public void setOther(ResourceReferenceDt theValue) {
|
||||
myOther = theValue;
|
||||
}
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@ import ca.uhn.fhir.model.dstu.valueset.*;
|
|||
* Need to track doctors, staff, locums etc. for both healthcare practitioners, funders, etc.
|
||||
* </p>
|
||||
*/
|
||||
@ResourceDef(name="Practitioner", profile="http://hl7.org/fhir/profiles/Practitioner")
|
||||
@ResourceDef(name="Practitioner", profile="http://hl7.org/fhir/profiles/Practitioner", id="practitioner")
|
||||
public class Practitioner extends BaseResource implements IResource {
|
||||
|
||||
/**
|
||||
|
@ -187,7 +187,7 @@ public class Practitioner extends BaseResource implements IResource {
|
|||
shortDefinition="The represented organization",
|
||||
formalDefinition="The organization that the practitioner represents"
|
||||
)
|
||||
private ResourceReference myOrganization;
|
||||
private ResourceReferenceDt myOrganization;
|
||||
|
||||
@Child(name="role", type=CodeableConceptDt.class, order=8, min=0, max=Child.MAX_UNLIMITED)
|
||||
@Description(
|
||||
|
@ -217,7 +217,7 @@ public class Practitioner extends BaseResource implements IResource {
|
|||
shortDefinition="The location(s) at which this practitioner provides care",
|
||||
formalDefinition="The location(s) at which this practitioner provides care"
|
||||
)
|
||||
private List<ResourceReference> myLocation;
|
||||
private List<ResourceReferenceDt> myLocation;
|
||||
|
||||
@Child(name="qualification", order=12, min=0, max=Child.MAX_UNLIMITED)
|
||||
@Description(
|
||||
|
@ -541,9 +541,9 @@ public class Practitioner extends BaseResource implements IResource {
|
|||
* The organization that the practitioner represents
|
||||
* </p>
|
||||
*/
|
||||
public ResourceReference getOrganization() {
|
||||
public ResourceReferenceDt getOrganization() {
|
||||
if (myOrganization == null) {
|
||||
myOrganization = new ResourceReference();
|
||||
myOrganization = new ResourceReferenceDt();
|
||||
}
|
||||
return myOrganization;
|
||||
}
|
||||
|
@ -556,7 +556,7 @@ public class Practitioner extends BaseResource implements IResource {
|
|||
* The organization that the practitioner represents
|
||||
* </p>
|
||||
*/
|
||||
public void setOrganization(ResourceReference theValue) {
|
||||
public void setOrganization(ResourceReferenceDt theValue) {
|
||||
myOrganization = theValue;
|
||||
}
|
||||
|
||||
|
@ -715,9 +715,9 @@ public class Practitioner extends BaseResource implements IResource {
|
|||
* The location(s) at which this practitioner provides care
|
||||
* </p>
|
||||
*/
|
||||
public List<ResourceReference> getLocation() {
|
||||
public List<ResourceReferenceDt> getLocation() {
|
||||
if (myLocation == null) {
|
||||
myLocation = new ArrayList<ResourceReference>();
|
||||
myLocation = new ArrayList<ResourceReferenceDt>();
|
||||
}
|
||||
return myLocation;
|
||||
}
|
||||
|
@ -730,7 +730,7 @@ public class Practitioner extends BaseResource implements IResource {
|
|||
* The location(s) at which this practitioner provides care
|
||||
* </p>
|
||||
*/
|
||||
public void setLocation(List<ResourceReference> theValue) {
|
||||
public void setLocation(List<ResourceReferenceDt> theValue) {
|
||||
myLocation = theValue;
|
||||
}
|
||||
|
||||
|
@ -856,7 +856,7 @@ public class Practitioner extends BaseResource implements IResource {
|
|||
shortDefinition="Organization that regulates and issues the qualification",
|
||||
formalDefinition="Organization that regulates and issues the qualification"
|
||||
)
|
||||
private ResourceReference myIssuer;
|
||||
private ResourceReferenceDt myIssuer;
|
||||
|
||||
|
||||
@Override
|
||||
|
@ -936,9 +936,9 @@ public class Practitioner extends BaseResource implements IResource {
|
|||
* Organization that regulates and issues the qualification
|
||||
* </p>
|
||||
*/
|
||||
public ResourceReference getIssuer() {
|
||||
public ResourceReferenceDt getIssuer() {
|
||||
if (myIssuer == null) {
|
||||
myIssuer = new ResourceReference();
|
||||
myIssuer = new ResourceReferenceDt();
|
||||
}
|
||||
return myIssuer;
|
||||
}
|
||||
|
@ -951,7 +951,7 @@ public class Practitioner extends BaseResource implements IResource {
|
|||
* Organization that regulates and issues the qualification
|
||||
* </p>
|
||||
*/
|
||||
public void setIssuer(ResourceReference theValue) {
|
||||
public void setIssuer(ResourceReferenceDt theValue) {
|
||||
myIssuer = theValue;
|
||||
}
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@ import ca.uhn.fhir.model.dstu.valueset.*;
|
|||
*
|
||||
* </p>
|
||||
*/
|
||||
@ResourceDef(name="Profile", profile="http://hl7.org/fhir/profiles/Profile")
|
||||
@ResourceDef(name="Profile", profile="http://hl7.org/fhir/profiles/Profile", id="profile")
|
||||
public class Profile extends BaseResource implements IResource {
|
||||
|
||||
/**
|
||||
|
|
|
@ -37,7 +37,7 @@ import ca.uhn.fhir.model.dstu.valueset.*;
|
|||
*
|
||||
* </p>
|
||||
*/
|
||||
@ResourceDef(name="Specimen", profile="http://hl7.org/fhir/profiles/Specimen")
|
||||
@ResourceDef(name="Specimen", profile="http://hl7.org/fhir/profiles/Specimen", id="specimen")
|
||||
public class Specimen extends BaseResource implements IResource {
|
||||
|
||||
/**
|
||||
|
@ -82,7 +82,7 @@ public class Specimen extends BaseResource implements IResource {
|
|||
shortDefinition="Where the specimen came from. This may be the patient(s) or from the environment or a device",
|
||||
formalDefinition=""
|
||||
)
|
||||
private ResourceReference mySubject;
|
||||
private ResourceReferenceDt mySubject;
|
||||
|
||||
@Child(name="accessionIdentifier", type=IdentifierDt.class, order=4, min=0, max=1)
|
||||
@Description(
|
||||
|
@ -254,7 +254,7 @@ public class Specimen extends BaseResource implements IResource {
|
|||
*
|
||||
* </p>
|
||||
*/
|
||||
public ResourceReference getSubject() {
|
||||
public ResourceReferenceDt getSubject() {
|
||||
return mySubject;
|
||||
}
|
||||
|
||||
|
@ -266,7 +266,7 @@ public class Specimen extends BaseResource implements IResource {
|
|||
*
|
||||
* </p>
|
||||
*/
|
||||
public void setSubject(ResourceReference theValue) {
|
||||
public void setSubject(ResourceReferenceDt theValue) {
|
||||
mySubject = theValue;
|
||||
}
|
||||
|
||||
|
@ -502,7 +502,7 @@ public class Specimen extends BaseResource implements IResource {
|
|||
shortDefinition="The subject of the relationship",
|
||||
formalDefinition="The specimen resource that is the target of this relationship"
|
||||
)
|
||||
private List<ResourceReference> myTarget;
|
||||
private List<ResourceReferenceDt> myTarget;
|
||||
|
||||
|
||||
@Override
|
||||
|
@ -563,9 +563,9 @@ public class Specimen extends BaseResource implements IResource {
|
|||
* The specimen resource that is the target of this relationship
|
||||
* </p>
|
||||
*/
|
||||
public List<ResourceReference> getTarget() {
|
||||
public List<ResourceReferenceDt> getTarget() {
|
||||
if (myTarget == null) {
|
||||
myTarget = new ArrayList<ResourceReference>();
|
||||
myTarget = new ArrayList<ResourceReferenceDt>();
|
||||
}
|
||||
return myTarget;
|
||||
}
|
||||
|
@ -578,7 +578,7 @@ public class Specimen extends BaseResource implements IResource {
|
|||
* The specimen resource that is the target of this relationship
|
||||
* </p>
|
||||
*/
|
||||
public void setTarget(List<ResourceReference> theValue) {
|
||||
public void setTarget(List<ResourceReferenceDt> theValue) {
|
||||
myTarget = theValue;
|
||||
}
|
||||
|
||||
|
@ -606,7 +606,7 @@ public class Specimen extends BaseResource implements IResource {
|
|||
shortDefinition="Who collected the specimen",
|
||||
formalDefinition="Person who collected the specimen"
|
||||
)
|
||||
private ResourceReference myCollector;
|
||||
private ResourceReferenceDt myCollector;
|
||||
|
||||
@Child(name="comment", type=StringDt.class, order=1, min=0, max=Child.MAX_UNLIMITED)
|
||||
@Description(
|
||||
|
@ -662,9 +662,9 @@ public class Specimen extends BaseResource implements IResource {
|
|||
* Person who collected the specimen
|
||||
* </p>
|
||||
*/
|
||||
public ResourceReference getCollector() {
|
||||
public ResourceReferenceDt getCollector() {
|
||||
if (myCollector == null) {
|
||||
myCollector = new ResourceReference();
|
||||
myCollector = new ResourceReferenceDt();
|
||||
}
|
||||
return myCollector;
|
||||
}
|
||||
|
@ -677,7 +677,7 @@ public class Specimen extends BaseResource implements IResource {
|
|||
* Person who collected the specimen
|
||||
* </p>
|
||||
*/
|
||||
public void setCollector(ResourceReference theValue) {
|
||||
public void setCollector(ResourceReferenceDt theValue) {
|
||||
myCollector = theValue;
|
||||
}
|
||||
|
||||
|
@ -911,7 +911,7 @@ public class Specimen extends BaseResource implements IResource {
|
|||
shortDefinition="Material used in the processing step",
|
||||
formalDefinition=""
|
||||
)
|
||||
private List<ResourceReference> myAdditive;
|
||||
private List<ResourceReferenceDt> myAdditive;
|
||||
|
||||
|
||||
@Override
|
||||
|
@ -1015,9 +1015,9 @@ public class Specimen extends BaseResource implements IResource {
|
|||
*
|
||||
* </p>
|
||||
*/
|
||||
public List<ResourceReference> getAdditive() {
|
||||
public List<ResourceReferenceDt> getAdditive() {
|
||||
if (myAdditive == null) {
|
||||
myAdditive = new ArrayList<ResourceReference>();
|
||||
myAdditive = new ArrayList<ResourceReferenceDt>();
|
||||
}
|
||||
return myAdditive;
|
||||
}
|
||||
|
@ -1030,7 +1030,7 @@ public class Specimen extends BaseResource implements IResource {
|
|||
*
|
||||
* </p>
|
||||
*/
|
||||
public void setAdditive(List<ResourceReference> theValue) {
|
||||
public void setAdditive(List<ResourceReferenceDt> theValue) {
|
||||
myAdditive = theValue;
|
||||
}
|
||||
|
||||
|
@ -1093,7 +1093,7 @@ public class Specimen extends BaseResource implements IResource {
|
|||
shortDefinition="Additive associated with container",
|
||||
formalDefinition="Additive associated with the container"
|
||||
)
|
||||
private ResourceReference myAdditive;
|
||||
private ResourceReferenceDt myAdditive;
|
||||
|
||||
|
||||
@Override
|
||||
|
@ -1291,9 +1291,9 @@ public class Specimen extends BaseResource implements IResource {
|
|||
* Additive associated with the container
|
||||
* </p>
|
||||
*/
|
||||
public ResourceReference getAdditive() {
|
||||
public ResourceReferenceDt getAdditive() {
|
||||
if (myAdditive == null) {
|
||||
myAdditive = new ResourceReference();
|
||||
myAdditive = new ResourceReferenceDt();
|
||||
}
|
||||
return myAdditive;
|
||||
}
|
||||
|
@ -1306,7 +1306,7 @@ public class Specimen extends BaseResource implements IResource {
|
|||
* Additive associated with the container
|
||||
* </p>
|
||||
*/
|
||||
public void setAdditive(ResourceReference theValue) {
|
||||
public void setAdditive(ResourceReferenceDt theValue) {
|
||||
myAdditive = theValue;
|
||||
}
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@ import ca.uhn.fhir.model.dstu.valueset.*;
|
|||
*
|
||||
* </p>
|
||||
*/
|
||||
@ResourceDef(name="Substance", profile="http://hl7.org/fhir/profiles/Substance")
|
||||
@ResourceDef(name="Substance", profile="http://hl7.org/fhir/profiles/Substance", id="substance")
|
||||
public class Substance extends BaseResource implements IResource {
|
||||
|
||||
/**
|
||||
|
@ -470,7 +470,7 @@ public class Substance extends BaseResource implements IResource {
|
|||
shortDefinition="A component of the substance",
|
||||
formalDefinition="Another substance that is a component of this substance"
|
||||
)
|
||||
private ResourceReference mySubstance;
|
||||
private ResourceReferenceDt mySubstance;
|
||||
|
||||
|
||||
@Override
|
||||
|
@ -519,9 +519,9 @@ public class Substance extends BaseResource implements IResource {
|
|||
* Another substance that is a component of this substance
|
||||
* </p>
|
||||
*/
|
||||
public ResourceReference getSubstance() {
|
||||
public ResourceReferenceDt getSubstance() {
|
||||
if (mySubstance == null) {
|
||||
mySubstance = new ResourceReference();
|
||||
mySubstance = new ResourceReferenceDt();
|
||||
}
|
||||
return mySubstance;
|
||||
}
|
||||
|
@ -534,7 +534,7 @@ public class Substance extends BaseResource implements IResource {
|
|||
* Another substance that is a component of this substance
|
||||
* </p>
|
||||
*/
|
||||
public void setSubstance(ResourceReference theValue) {
|
||||
public void setSubstance(ResourceReferenceDt theValue) {
|
||||
mySubstance = theValue;
|
||||
}
|
||||
|
||||
|
|
|
@ -37,7 +37,7 @@ import ca.uhn.fhir.model.dstu.valueset.*;
|
|||
*
|
||||
* </p>
|
||||
*/
|
||||
@ResourceDef(name="ValueSet", profile="http://hl7.org/fhir/profiles/ValueSet")
|
||||
@ResourceDef(name="ValueSet", profile="http://hl7.org/fhir/profiles/ValueSet", id="valueset")
|
||||
public class ValueSet extends BaseResource implements IResource {
|
||||
|
||||
/**
|
||||
|
|
|
@ -30,8 +30,9 @@ import ca.uhn.fhir.model.api.IPrimitiveDatatype;
|
|||
import ca.uhn.fhir.model.api.IResource;
|
||||
import ca.uhn.fhir.model.api.IResourceBlock;
|
||||
import ca.uhn.fhir.model.api.ISupportsUndeclaredExtensions;
|
||||
import ca.uhn.fhir.model.api.ResourceReference;
|
||||
import ca.uhn.fhir.model.api.BaseResourceReference;
|
||||
import ca.uhn.fhir.model.api.UndeclaredExtension;
|
||||
import ca.uhn.fhir.model.dstu.composite.ResourceReferenceDt;
|
||||
import ca.uhn.fhir.model.primitive.XhtmlDt;
|
||||
|
||||
class ParserState<T extends IElement> {
|
||||
|
@ -58,8 +59,8 @@ class ParserState<T extends IElement> {
|
|||
myState.enteringNewElement(theNamespaceURI, theName);
|
||||
}
|
||||
|
||||
public void enteringNewElementExtension(StartElement theElem, String theUrlAttr) {
|
||||
myState.enteringNewElementExtension(theElem, theUrlAttr);
|
||||
public void enteringNewElementExtension(StartElement theElem, String theUrlAttr, boolean theIsModifier) {
|
||||
myState.enteringNewElementExtension(theElem, theUrlAttr, theIsModifier);
|
||||
}
|
||||
|
||||
public T getObject() {
|
||||
|
@ -370,15 +371,19 @@ class ParserState<T extends IElement> {
|
|||
/**
|
||||
* Default implementation just handles undeclared extensions
|
||||
*/
|
||||
public void enteringNewElementExtension(@SuppressWarnings("unused") StartElement theElement, String theUrlAttr) {
|
||||
public void enteringNewElementExtension(@SuppressWarnings("unused") StartElement theElement, String theUrlAttr, boolean theIsModifier) {
|
||||
if (getCurrentElement() instanceof ISupportsUndeclaredExtensions) {
|
||||
UndeclaredExtension newExtension = new UndeclaredExtension(theUrlAttr);
|
||||
// TODO: fail if we don't support undeclared extensions
|
||||
((ISupportsUndeclaredExtensions) getCurrentElement()).getUndeclaredExtensions().add(newExtension);
|
||||
UndeclaredExtension newExtension = new UndeclaredExtension(theIsModifier, theUrlAttr);
|
||||
ISupportsUndeclaredExtensions elem = (ISupportsUndeclaredExtensions) getCurrentElement();
|
||||
if (theIsModifier) {
|
||||
elem.getUndeclaredModifierExtensions().add(newExtension);
|
||||
} else {
|
||||
elem.getUndeclaredExtensions().add(newExtension);
|
||||
}
|
||||
ExtensionState newState = new ExtensionState(newExtension);
|
||||
push(newState);
|
||||
} else {
|
||||
throw new DataFormatException("Extension is not supported at this position");
|
||||
throw new DataFormatException("Type " + getCurrentElement() + " does not support undeclared extentions, and found an extension with URL: " + theUrlAttr);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -446,7 +451,7 @@ class ParserState<T extends IElement> {
|
|||
}
|
||||
case RESOURCE_REF: {
|
||||
RuntimeResourceReferenceDefinition resourceRefTarget = (RuntimeResourceReferenceDefinition) target;
|
||||
ResourceReference newChildInstance = new ResourceReference();
|
||||
ResourceReferenceDt newChildInstance = new ResourceReferenceDt();
|
||||
myDefinition.getMutator().addValue(myParentInstance, newChildInstance);
|
||||
ResourceReferenceState newState = new ResourceReferenceState(resourceRefTarget, newChildInstance);
|
||||
push(newState);
|
||||
|
@ -463,7 +468,7 @@ class ParserState<T extends IElement> {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void enteringNewElementExtension(StartElement theElement, String theUrlAttr) {
|
||||
public void enteringNewElementExtension(StartElement theElement, String theUrlAttr, boolean theIsModifier) {
|
||||
RuntimeChildDeclaredExtensionDefinition declaredExtension = myDefinition.getChildExtensionForUrl(theUrlAttr);
|
||||
if (declaredExtension != null) {
|
||||
if (myChildInstance == null) {
|
||||
|
@ -473,7 +478,7 @@ class ParserState<T extends IElement> {
|
|||
BaseState newState = new DeclaredExtensionState(declaredExtension, myChildInstance);
|
||||
push(newState);
|
||||
} else {
|
||||
super.enteringNewElementExtension(theElement, theUrlAttr);
|
||||
super.enteringNewElementExtension(theElement, theUrlAttr, theIsModifier);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -514,7 +519,7 @@ class ParserState<T extends IElement> {
|
|||
switch (target.getChildType()) {
|
||||
case COMPOSITE_DATATYPE: {
|
||||
BaseRuntimeElementCompositeDefinition<?> compositeTarget = (BaseRuntimeElementCompositeDefinition<?>) target;
|
||||
ICompositeDatatype newChildInstance = (ICompositeDatatype) compositeTarget.newInstance();
|
||||
ICompositeDatatype newChildInstance = (ICompositeDatatype) compositeTarget.newInstance(child.getInstanceConstructorArguments());
|
||||
child.getMutator().addValue(myInstance, newChildInstance);
|
||||
ElementCompositeState newState = new ElementCompositeState(compositeTarget, newChildInstance);
|
||||
push(newState);
|
||||
|
@ -531,7 +536,7 @@ class ParserState<T extends IElement> {
|
|||
}
|
||||
case RESOURCE_REF: {
|
||||
RuntimeResourceReferenceDefinition resourceRefTarget = (RuntimeResourceReferenceDefinition) target;
|
||||
ResourceReference newChildInstance = new ResourceReference();
|
||||
ResourceReferenceDt newChildInstance = new ResourceReferenceDt();
|
||||
child.getMutator().addValue(myInstance, newChildInstance);
|
||||
ResourceReferenceState newState = new ResourceReferenceState(resourceRefTarget, newChildInstance);
|
||||
push(newState);
|
||||
|
@ -564,13 +569,13 @@ class ParserState<T extends IElement> {
|
|||
}
|
||||
|
||||
@Override
|
||||
public void enteringNewElementExtension(StartElement theElement, String theUrlAttr) {
|
||||
public void enteringNewElementExtension(StartElement theElement, String theUrlAttr, boolean theIsModifier) {
|
||||
RuntimeChildDeclaredExtensionDefinition declaredExtension = myDefinition.getDeclaredExtension(theUrlAttr);
|
||||
if (declaredExtension != null) {
|
||||
BaseState newState = new DeclaredExtensionState(declaredExtension, myInstance);
|
||||
push(newState);
|
||||
} else {
|
||||
super.enteringNewElementExtension(theElement, theUrlAttr);
|
||||
super.enteringNewElementExtension(theElement, theUrlAttr, theIsModifier);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -623,7 +628,7 @@ class ParserState<T extends IElement> {
|
|||
}
|
||||
case RESOURCE_REF: {
|
||||
RuntimeResourceReferenceDefinition resourceRefTarget = (RuntimeResourceReferenceDefinition) target;
|
||||
ResourceReference newChildInstance = new ResourceReference();
|
||||
ResourceReferenceDt newChildInstance = new ResourceReferenceDt();
|
||||
myExtension.setValue(newChildInstance);
|
||||
ResourceReferenceState newState = new ResourceReferenceState(resourceRefTarget, newChildInstance);
|
||||
push(newState);
|
||||
|
@ -784,10 +789,10 @@ class ParserState<T extends IElement> {
|
|||
private class ResourceReferenceState extends BaseState {
|
||||
|
||||
private RuntimeResourceReferenceDefinition myDefinition;
|
||||
private ResourceReference myInstance;
|
||||
private ResourceReferenceDt myInstance;
|
||||
private ResourceReferenceSubState mySubState;
|
||||
|
||||
public ResourceReferenceState(RuntimeResourceReferenceDefinition theDefinition, ResourceReference theInstance) {
|
||||
public ResourceReferenceState(RuntimeResourceReferenceDefinition theDefinition, ResourceReferenceDt theInstance) {
|
||||
myDefinition = theDefinition;
|
||||
myInstance = theInstance;
|
||||
mySubState = ResourceReferenceSubState.INITIAL;
|
||||
|
|
|
@ -34,6 +34,7 @@ import ca.uhn.fhir.context.BaseRuntimeElementCompositeDefinition;
|
|||
import ca.uhn.fhir.context.BaseRuntimeElementDefinition;
|
||||
import ca.uhn.fhir.context.ConfigurationException;
|
||||
import ca.uhn.fhir.context.FhirContext;
|
||||
import ca.uhn.fhir.context.RuntimeChildDeclaredExtensionDefinition;
|
||||
import ca.uhn.fhir.context.RuntimeChildUndeclaredExtensionDefinition;
|
||||
import ca.uhn.fhir.context.RuntimeResourceDefinition;
|
||||
import ca.uhn.fhir.model.api.Bundle;
|
||||
|
@ -42,8 +43,9 @@ import ca.uhn.fhir.model.api.IElement;
|
|||
import ca.uhn.fhir.model.api.IPrimitiveDatatype;
|
||||
import ca.uhn.fhir.model.api.IResource;
|
||||
import ca.uhn.fhir.model.api.ISupportsUndeclaredExtensions;
|
||||
import ca.uhn.fhir.model.api.ResourceReference;
|
||||
import ca.uhn.fhir.model.api.BaseResourceReference;
|
||||
import ca.uhn.fhir.model.api.UndeclaredExtension;
|
||||
import ca.uhn.fhir.model.dstu.composite.ResourceReferenceDt;
|
||||
import ca.uhn.fhir.model.primitive.InstantDt;
|
||||
import ca.uhn.fhir.model.primitive.StringDt;
|
||||
import ca.uhn.fhir.model.primitive.XhtmlDt;
|
||||
|
@ -89,7 +91,14 @@ public class XmlParser implements IParser {
|
|||
if (urlAttr == null || isBlank(urlAttr.getValue())) {
|
||||
throw new DataFormatException("Extension element has no 'url' attribute");
|
||||
}
|
||||
parserState.enteringNewElementExtension(elem, urlAttr.getValue());
|
||||
parserState.enteringNewElementExtension(elem, urlAttr.getValue(),false);
|
||||
} else if ("modifierExtension".equals(elem.getName().getLocalPart())) {
|
||||
Attribute urlAttr = elem.getAttributeByName(new QName("url"));
|
||||
if (urlAttr == null || isBlank(urlAttr.getValue())) {
|
||||
throw new DataFormatException("Extension element has no 'url' attribute");
|
||||
}
|
||||
parserState.enteringNewElementExtension(elem, urlAttr.getValue(),true);
|
||||
|
||||
} else {
|
||||
|
||||
String elementName = elem.getName().getLocalPart();
|
||||
|
@ -131,7 +140,7 @@ public class XmlParser implements IParser {
|
|||
parserState.xmlEvent(nextEvent);
|
||||
|
||||
} catch (DataFormatException e) {
|
||||
throw new DataFormatException("DataFormatException at [" + nextEvent.getLocation().toString() + "]: "+e.getMessage(), e);
|
||||
throw new DataFormatException("DataFormatException at [" + nextEvent.getLocation().toString() + "]: " + e.getMessage(), e);
|
||||
}
|
||||
}
|
||||
return null;
|
||||
|
@ -140,7 +149,9 @@ public class XmlParser implements IParser {
|
|||
}
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see ca.uhn.fhir.parser.IParser#encodeBundleToString(ca.uhn.fhir.model.api.Bundle)
|
||||
*/
|
||||
@Override
|
||||
|
@ -151,7 +162,9 @@ public class XmlParser implements IParser {
|
|||
return stringWriter.toString();
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see ca.uhn.fhir.parser.IParser#encodeBundleToWriter(ca.uhn.fhir.model.api.Bundle, java.io.Writer)
|
||||
*/
|
||||
@Override
|
||||
|
@ -211,9 +224,8 @@ public class XmlParser implements IParser {
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
private void encodeChildElementToStreamWriter(XMLStreamWriter theEventWriter, IElement nextValue, String childName, BaseRuntimeElementDefinition<?> childDef, String theExtensionUrl) throws XMLStreamException, DataFormatException {
|
||||
private void encodeChildElementToStreamWriter(XMLStreamWriter theEventWriter, IElement nextValue, String childName, BaseRuntimeElementDefinition<?> childDef, String theExtensionUrl)
|
||||
throws XMLStreamException, DataFormatException {
|
||||
if (nextValue.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
|
@ -243,7 +255,7 @@ public class XmlParser implements IParser {
|
|||
break;
|
||||
}
|
||||
case RESOURCE_REF: {
|
||||
ResourceReference ref = (ResourceReference) nextValue;
|
||||
ResourceReferenceDt ref = (ResourceReferenceDt) nextValue;
|
||||
if (!ref.isEmpty()) {
|
||||
theEventWriter.writeStartElement(childName);
|
||||
encodeResourceReferenceToStreamWriter(theEventWriter, ref);
|
||||
|
@ -268,7 +280,8 @@ public class XmlParser implements IParser {
|
|||
|
||||
}
|
||||
|
||||
private void encodeCompositeElementChildrenToStreamWriter(IElement theElement, XMLStreamWriter theEventWriter, List<? extends BaseRuntimeChildDefinition> children) throws XMLStreamException, DataFormatException {
|
||||
private void encodeCompositeElementChildrenToStreamWriter(IElement theElement, XMLStreamWriter theEventWriter, List<? extends BaseRuntimeChildDefinition> children) throws XMLStreamException,
|
||||
DataFormatException {
|
||||
for (BaseRuntimeChildDefinition nextChild : children) {
|
||||
List<? extends IElement> values = nextChild.getAccessor().getValues(theElement);
|
||||
if (values == null || values.isEmpty()) {
|
||||
|
@ -288,7 +301,13 @@ public class XmlParser implements IParser {
|
|||
}
|
||||
|
||||
if (extensionUrl != null && childName.equals("extension") == false) {
|
||||
RuntimeChildDeclaredExtensionDefinition extDef = (RuntimeChildDeclaredExtensionDefinition) nextChild;
|
||||
if (extDef.isModifier()) {
|
||||
theEventWriter.writeStartElement("modifierExtension");
|
||||
}else {
|
||||
theEventWriter.writeStartElement("extension");
|
||||
}
|
||||
|
||||
theEventWriter.writeAttribute("url", extensionUrl);
|
||||
encodeChildElementToStreamWriter(theEventWriter, nextValue, childName, childDef, null);
|
||||
theEventWriter.writeEndElement();
|
||||
|
@ -299,18 +318,24 @@ public class XmlParser implements IParser {
|
|||
}
|
||||
}
|
||||
|
||||
private void encodeCompositeElementToStreamWriter(IElement theElement, XMLStreamWriter theEventWriter, BaseRuntimeElementCompositeDefinition<?> resDef) throws XMLStreamException, DataFormatException {
|
||||
private void encodeCompositeElementToStreamWriter(IElement theElement, XMLStreamWriter theEventWriter, BaseRuntimeElementCompositeDefinition<?> resDef) throws XMLStreamException,
|
||||
DataFormatException {
|
||||
encodeExtensionsIfPresent(theEventWriter, theElement);
|
||||
encodeCompositeElementChildrenToStreamWriter(theElement, theEventWriter, resDef.getExtensions());
|
||||
encodeCompositeElementChildrenToStreamWriter(theElement, theEventWriter, resDef.getChildren());
|
||||
}
|
||||
|
||||
private void encodeExtensionsIfPresent(XMLStreamWriter theWriter, IElement theResource) throws XMLStreamException, DataFormatException {
|
||||
boolean retVal = false;
|
||||
if (theResource instanceof ISupportsUndeclaredExtensions) {
|
||||
for (UndeclaredExtension next : ((ISupportsUndeclaredExtensions) theResource).getUndeclaredExtensions()) {
|
||||
retVal = true;
|
||||
theWriter.writeStartElement("extension");
|
||||
ISupportsUndeclaredExtensions res = (ISupportsUndeclaredExtensions) theResource;
|
||||
encodeUndeclaredExtensions(theWriter, res.getUndeclaredExtensions(), "extension");
|
||||
encodeUndeclaredExtensions(theWriter, res.getUndeclaredModifierExtensions(), "modifierExtension");
|
||||
}
|
||||
}
|
||||
|
||||
private void encodeUndeclaredExtensions(XMLStreamWriter theWriter, List<UndeclaredExtension> extensions, String tagName) throws XMLStreamException {
|
||||
for (UndeclaredExtension next : extensions) {
|
||||
theWriter.writeStartElement(tagName);
|
||||
theWriter.writeAttribute("url", next.getUrl());
|
||||
|
||||
if (next.getValue() != null) {
|
||||
|
@ -327,22 +352,23 @@ public class XmlParser implements IParser {
|
|||
theWriter.writeEndElement();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void encodeResourceReferenceToStreamWriter(XMLStreamWriter theEventWriter, ResourceReference theRef) throws XMLStreamException {
|
||||
if (StringUtils.isNotBlank(theRef.getDisplay())) {
|
||||
private void encodeResourceReferenceToStreamWriter(XMLStreamWriter theEventWriter, ResourceReferenceDt theRef) throws XMLStreamException {
|
||||
if (!(theRef.getDisplay().isEmpty())) {
|
||||
theEventWriter.writeStartElement("display");
|
||||
theEventWriter.writeAttribute("value", theRef.getDisplay());
|
||||
theEventWriter.writeAttribute("value", theRef.getDisplay().getValue());
|
||||
theEventWriter.writeEndElement();
|
||||
}
|
||||
if (StringUtils.isNotBlank(theRef.getReference())) {
|
||||
if (!(theRef.getReference().isEmpty())) {
|
||||
theEventWriter.writeStartElement("reference");
|
||||
theEventWriter.writeAttribute("value", theRef.getReference());
|
||||
theEventWriter.writeAttribute("value", theRef.getReference().getValue());
|
||||
theEventWriter.writeEndElement();
|
||||
}
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see ca.uhn.fhir.parser.IParser#encodeResourceToString(ca.uhn.fhir.model.api.IResource)
|
||||
*/
|
||||
@Override
|
||||
|
@ -352,7 +378,9 @@ public class XmlParser implements IParser {
|
|||
return stringWriter.toString();
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see ca.uhn.fhir.parser.IParser#encodeResourceToWriter(ca.uhn.fhir.model.api.IResource, java.io.Writer)
|
||||
*/
|
||||
@Override
|
||||
|
@ -368,7 +396,9 @@ public class XmlParser implements IParser {
|
|||
}
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see ca.uhn.fhir.parser.IParser#encodeResourceToXmlStreamWriter(ca.uhn.fhir.model.api.IResource, javax.xml.stream.XMLStreamWriter)
|
||||
*/
|
||||
@Override
|
||||
|
@ -431,7 +461,7 @@ public class XmlParser implements IParser {
|
|||
theEventWriter.writeStartElement(se.getName().getLocalPart());
|
||||
if (StringUtils.isBlank(se.getName().getPrefix())) {
|
||||
theEventWriter.writeDefaultNamespace(se.getName().getNamespaceURI());
|
||||
}else {
|
||||
} else {
|
||||
theEventWriter.writeNamespace(se.getName().getPrefix(), se.getName().getNamespaceURI());
|
||||
}
|
||||
} else {
|
||||
|
@ -442,7 +472,7 @@ public class XmlParser implements IParser {
|
|||
if (StringUtils.isBlank(se.getName().getPrefix())) {
|
||||
theEventWriter.writeStartElement(se.getName().getLocalPart());
|
||||
theEventWriter.writeDefaultNamespace(se.getName().getNamespaceURI());
|
||||
}else {
|
||||
} else {
|
||||
theEventWriter.writeStartElement(se.getName().getNamespaceURI(), se.getName().getLocalPart());
|
||||
}
|
||||
}
|
||||
|
@ -464,7 +494,9 @@ public class XmlParser implements IParser {
|
|||
}
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see ca.uhn.fhir.parser.IParser#parseBundle(java.lang.String)
|
||||
*/
|
||||
@Override
|
||||
|
@ -478,7 +510,9 @@ public class XmlParser implements IParser {
|
|||
return doXmlLoop(theStreamReader, parserState);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see ca.uhn.fhir.parser.IParser#parseResource(java.lang.String)
|
||||
*/
|
||||
@Override
|
||||
|
@ -486,7 +520,9 @@ public class XmlParser implements IParser {
|
|||
return parseResource(null, theMessageString);
|
||||
}
|
||||
|
||||
/* (non-Javadoc)
|
||||
/*
|
||||
* (non-Javadoc)
|
||||
*
|
||||
* @see ca.uhn.fhir.parser.IParser#parseResource(javax.xml.stream.XMLEventReader)
|
||||
*/
|
||||
@Override
|
||||
|
|
|
@ -17,6 +17,7 @@ import javax.servlet.http.HttpServletRequest;
|
|||
import javax.servlet.http.HttpServletResponse;
|
||||
|
||||
import ca.uhn.fhir.rest.server.exceptions.*;
|
||||
|
||||
import org.apache.commons.lang3.StringUtils;
|
||||
|
||||
import ca.uhn.fhir.context.FhirContext;
|
||||
|
@ -98,9 +99,18 @@ public abstract class RestfulServer extends HttpServlet {
|
|||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* This method must be overridden to provide one or more resource providers
|
||||
*/
|
||||
public abstract Collection<IResourceProvider> getResourceProviders();
|
||||
|
||||
public abstract ISecurityManager getSecurityManager();
|
||||
/**
|
||||
* This method should be overridden to provide a security manager
|
||||
* instance. By default, returns null.
|
||||
*/
|
||||
public ISecurityManager getSecurityManager() {
|
||||
return null;
|
||||
}
|
||||
|
||||
protected void handleRequest(SearchMethodBinding.RequestType requestType, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
|
||||
try {
|
||||
|
|
|
@ -8,17 +8,16 @@ public class ElementUtil {
|
|||
|
||||
@SuppressWarnings("unchecked")
|
||||
public static boolean isEmpty(Object... theElements) {
|
||||
if (theElements ==null) {
|
||||
if (theElements == null) {
|
||||
return true;
|
||||
}
|
||||
for (int i = 0; i < theElements.length; i++) {
|
||||
Object next = theElements[i];
|
||||
if (next instanceof List) {
|
||||
if (!isEmpty((List<? extends IElement>)next)) {
|
||||
if (!isEmpty((List<? extends IElement>) next)) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
if (next != null && !((IElement)next).isEmpty()) {
|
||||
} else if (next != null && !((IElement) next).isEmpty()) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
@ -26,7 +25,7 @@ public class ElementUtil {
|
|||
}
|
||||
|
||||
public static boolean isEmpty(IElement... theElements) {
|
||||
if (theElements ==null) {
|
||||
if (theElements == null) {
|
||||
return true;
|
||||
}
|
||||
for (int i = 0; i < theElements.length; i++) {
|
||||
|
@ -39,7 +38,7 @@ public class ElementUtil {
|
|||
}
|
||||
|
||||
public static boolean isEmpty(List<? extends IElement> theElements) {
|
||||
if (theElements ==null) {
|
||||
if (theElements == null) {
|
||||
return true;
|
||||
}
|
||||
for (int i = 0; i < theElements.size(); i++) {
|
||||
|
|
|
@ -0,0 +1,38 @@
|
|||
package example;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
import javax.servlet.annotation.WebServlet;
|
||||
|
||||
import ca.uhn.fhir.rest.server.IResourceProvider;
|
||||
import ca.uhn.fhir.rest.server.RestfulServer;
|
||||
|
||||
//START SNIPPET: servlet
|
||||
/**
|
||||
* In this example, we are using Servlet 3.0 annotations to define
|
||||
* the URL pattern for this servlet, but we could also
|
||||
* define this in a web.xml file.
|
||||
*/
|
||||
@WebServlet(urlPatterns= {"/fhir/*"}, displayName="FHIR Server")
|
||||
public class ExampleRestfulServlet extends RestfulServer {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
/**
|
||||
* Restful servers must provide an implementation of this method, which
|
||||
* returns all resource providers to be used by this server. In the example
|
||||
* below, we are creating a RESTful server which is able to serve
|
||||
* Patient and Observation resources.
|
||||
*/
|
||||
@Override
|
||||
public Collection<IResourceProvider> getResourceProviders() {
|
||||
List<IResourceProvider> retVal = new ArrayList<IResourceProvider>();
|
||||
retVal.add(new RestfulPatientResourceProvider());
|
||||
retVal.add(new RestfulObservationResourceProvider());
|
||||
return retVal;
|
||||
}
|
||||
|
||||
}
|
||||
//END SNIPPET: servlet
|
|
@ -0,0 +1,86 @@
|
|||
package example;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
import ca.uhn.fhir.model.dstu.resource.Patient;
|
||||
import ca.uhn.fhir.model.dstu.valueset.AdministrativeGenderCodesEnum;
|
||||
import ca.uhn.fhir.model.dstu.valueset.IdentifierUseEnum;
|
||||
import ca.uhn.fhir.model.primitive.IdDt;
|
||||
import ca.uhn.fhir.model.primitive.StringDt;
|
||||
import ca.uhn.fhir.model.primitive.UriDt;
|
||||
import ca.uhn.fhir.rest.annotation.Read;
|
||||
import ca.uhn.fhir.rest.server.IResourceProvider;
|
||||
import ca.uhn.fhir.rest.server.operations.Search;
|
||||
import ca.uhn.fhir.rest.server.parameters.Required;
|
||||
|
||||
//START SNIPPET: provider
|
||||
/**
|
||||
* All resource providers must implement IResourceProvider
|
||||
*/
|
||||
public class RestfulObservationResourceProvider implements IResourceProvider {
|
||||
|
||||
/**
|
||||
* The getResourceType method comes from IResourceProvider, and must
|
||||
* be overridden to indicate what type of resource this provider
|
||||
* supplies.
|
||||
*/
|
||||
@Override
|
||||
public Class<Patient> getResourceType() {
|
||||
return Patient.class;
|
||||
}
|
||||
|
||||
/**
|
||||
* The "@Read" annotation indicates that this method supports the
|
||||
* read operation. It takes one argument, the Resource type being returned.
|
||||
*
|
||||
* @param theId
|
||||
* The read operation takes one parameter, which must be of type
|
||||
* IdDt and must be annotated with the "@Read.IdParam" annotation.
|
||||
* @return
|
||||
* Returns a resource matching this identifier, or null if none exists.
|
||||
*/
|
||||
@Read(Patient.class)
|
||||
public Patient getResourceById(@Read.IdParam IdDt theId) {
|
||||
Patient patient = new Patient();
|
||||
patient.addIdentifier();
|
||||
patient.getIdentifier().get(0).setSystem(new UriDt("urn:hapitest:mrns"));
|
||||
patient.getIdentifier().get(0).setValue("00002");
|
||||
patient.addName().addFamily("Test");
|
||||
patient.getName().get(0).addGiven("PatientOne");
|
||||
patient.setGender(AdministrativeGenderCodesEnum.F);
|
||||
return patient;
|
||||
}
|
||||
|
||||
/**
|
||||
* The "@Search" annotation indicates that this method supports the
|
||||
* search operation. You may have many different method annotated with
|
||||
* this annotation, to support many different search criteria. This
|
||||
* example searches by family name.
|
||||
*
|
||||
* @param theIdentifier
|
||||
* This operation takes one parameter which is the search criteria. It is
|
||||
* annotated with the "@Required" annotation. This annotation takes one argument,
|
||||
* a string containing the name of the search criteria. The datatype here
|
||||
* is StringDt, but there are other possible parameter types depending on the
|
||||
* specific search criteria.
|
||||
* @return
|
||||
* This method returns a list of Patients. This list may contain multiple
|
||||
* matching resources, or it may also be empty.
|
||||
*/
|
||||
@Search(Patient.class)
|
||||
public List<Patient> getPatient(@Required(name = Patient.SP_FAMILY) StringDt theFamilyName) {
|
||||
Patient patient = new Patient();
|
||||
patient.addIdentifier();
|
||||
patient.getIdentifier().get(0).setUse(IdentifierUseEnum.OFFICIAL);
|
||||
patient.getIdentifier().get(0).setSystem(new UriDt("urn:hapitest:mrns"));
|
||||
patient.getIdentifier().get(0).setValue("00001");
|
||||
patient.addName();
|
||||
patient.getName().get(0).addFamily("Test");
|
||||
patient.getName().get(0).addGiven("PatientOne");
|
||||
patient.getGender().setText("M");
|
||||
return Collections.singletonList(patient);
|
||||
}
|
||||
|
||||
}
|
||||
//END SNIPPET: provider
|
|
@ -1,30 +0,0 @@
|
|||
package example;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.Collection;
|
||||
|
||||
import ca.uhn.fhir.rest.server.IResourceProvider;
|
||||
import ca.uhn.fhir.rest.server.ISecurityManager;
|
||||
import ca.uhn.fhir.rest.server.RestfulServer;
|
||||
|
||||
public class RestfulServlet extends RestfulServer {
|
||||
|
||||
private static final long serialVersionUID = 1L;
|
||||
|
||||
private Collection<IResourceProvider> myResourceProviders;
|
||||
|
||||
public RestfulServlet(IResourceProvider... theResourceProviders) {
|
||||
myResourceProviders = Arrays.asList(theResourceProviders);
|
||||
}
|
||||
|
||||
@Override
|
||||
public Collection<IResourceProvider> getResourceProviders() {
|
||||
return myResourceProviders;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ISecurityManager getSecurityManager() {
|
||||
return null;
|
||||
}
|
||||
|
||||
}
|
|
@ -9,7 +9,7 @@
|
|||
<body>
|
||||
|
||||
<!-- The body of the document contains a number of sections -->
|
||||
<section name="Working with Resources">
|
||||
<section name="Creating a RESTful Server">
|
||||
|
||||
<macro name="toc">
|
||||
</macro>
|
||||
|
@ -26,7 +26,7 @@
|
|||
be possible to create a FHIR compliant server quickly and easily.
|
||||
</p>
|
||||
|
||||
<subsection name="Creating A Server">
|
||||
<subsection name="Defining Resource Providers">
|
||||
|
||||
<p>
|
||||
The first step in creating a FHIR RESTful Server is to define one or
|
||||
|
@ -41,7 +41,9 @@
|
|||
</p>
|
||||
|
||||
<p>
|
||||
Resource providers each contain one or more methods which have been
|
||||
A Resource provider class must implement the
|
||||
<a href="./apidocs/ca/uhn/fhir/rest/server/IResourceProvider.html">IResourceProvider</a> interface,
|
||||
and will contain one or more methods which have been
|
||||
annotated with special annotations indicating which RESTful operation
|
||||
that method supports. Below is a simple example of a resource provider
|
||||
which supports the
|
||||
|
@ -59,6 +61,36 @@
|
|||
|
||||
</subsection>
|
||||
|
||||
<subsection name="Create a Server">
|
||||
|
||||
<p>
|
||||
Once your resource providers are created, your next step is to
|
||||
define a server class.
|
||||
</p>
|
||||
|
||||
<p>
|
||||
HAPI provides a class called
|
||||
<a href="./apidocs/ca/uhn/fhir/rest/server/RestfulServer.html">RestfulServer</a>, which
|
||||
is a specialized Java Servlet. To create a server, you simply create a class
|
||||
which extends RestfulServer as shown in the example below.
|
||||
</p>
|
||||
|
||||
<macro name="snippet">
|
||||
<param name="id" value="servlet" />
|
||||
<param name="file" value="src/site/example/java/example/ExampleRestfulServlet.java" />
|
||||
</macro>
|
||||
|
||||
</subsection>
|
||||
|
||||
<subsection name="Deploy">
|
||||
|
||||
<p>
|
||||
Once you have created your resource providers and your restful server class,
|
||||
you can bundle these into a WAR file and you are ready to deploy to
|
||||
any JEE container (Tomcat, Websphere, Glassfish, etc).
|
||||
</p>
|
||||
|
||||
</subsection>
|
||||
|
||||
</section>
|
||||
|
||||
|
|
|
@ -20,25 +20,25 @@ public class ModelScannerTest {
|
|||
|
||||
assertEquals(RuntimeChildCompositeDatatypeDefinition.class, def.getChildByNameOrThrowDataFormatException("identifier").getClass());
|
||||
|
||||
RuntimeChildDeclaredExtensionDefinition ext = def.getDeclaredExtension("http://foo/1");
|
||||
RuntimeChildDeclaredExtensionDefinition ext = def.getDeclaredExtension("http://foo/#f1");
|
||||
assertNotNull(ext);
|
||||
BaseRuntimeElementDefinition<?> valueString = ext.getChildByName("valueString");
|
||||
assertNotNull(valueString);
|
||||
|
||||
ext = def.getDeclaredExtension("http://foo/2");
|
||||
ext = def.getDeclaredExtension("http://foo/#f2");
|
||||
assertNotNull(ext);
|
||||
valueString = ext.getChildByName("valueString");
|
||||
assertNotNull(valueString);
|
||||
|
||||
ext = def.getDeclaredExtension("http://bar/1");
|
||||
ext = def.getDeclaredExtension("http://bar/#b1");
|
||||
assertNotNull(ext);
|
||||
RuntimeChildDeclaredExtensionDefinition childExt = ext.getChildExtensionForUrl("http://bar/1/1");
|
||||
RuntimeChildDeclaredExtensionDefinition childExt = ext.getChildExtensionForUrl("http://bar/#b1/1");
|
||||
assertNotNull(childExt);
|
||||
BaseRuntimeElementDefinition<?> valueDate = childExt.getChildByName("valueDate");
|
||||
assertNotNull(valueDate);
|
||||
childExt = ext.getChildExtensionForUrl("http://bar/1/2");
|
||||
childExt = ext.getChildExtensionForUrl("http://bar/#b1/2");
|
||||
assertNotNull(childExt);
|
||||
childExt = childExt.getChildExtensionForUrl("http://bar/1/2/1");
|
||||
childExt = childExt.getChildExtensionForUrl("http://bar/#b1/2/1");
|
||||
assertNotNull(childExt);
|
||||
valueDate = childExt.getChildByName("valueDate");
|
||||
assertNotNull(valueDate);
|
||||
|
|
|
@ -21,19 +21,19 @@ public class ResourceWithExtensionsA implements IResource {
|
|||
*/
|
||||
|
||||
@Child(name = "bar1", type = Bar1.class, order = 2, min = 1, max = Child.MAX_UNLIMITED)
|
||||
@Extension(url = "http://bar/#b1", definedLocally=true)
|
||||
@Extension(url = "http://bar/#b1", definedLocally=true, isModifier=false)
|
||||
private List<Bar1> myBar1;
|
||||
|
||||
@Child(name = "bar2", type = Bar1.class, order = 3, min = 1, max = Child.MAX_UNLIMITED)
|
||||
@Extension(url = "http://bar/#b2", definedLocally=true)
|
||||
@Extension(url = "http://bar/#b2", definedLocally=true, isModifier=false)
|
||||
private Bar1 myBar2;
|
||||
|
||||
@Child(name = "foo1", type = StringDt.class, order = 0, min = 0, max = Child.MAX_UNLIMITED)
|
||||
@Extension(url = "http://foo/#f1", definedLocally=true)
|
||||
@Extension(url = "http://foo/#f1", definedLocally=true, isModifier=false)
|
||||
private List<StringDt> myFoo1;
|
||||
|
||||
@Child(name = "foo2", type = StringDt.class, order = 1, min = 0, max = 1)
|
||||
@Extension(url = "http://foo/#f2", definedLocally=true)
|
||||
@Extension(url = "http://foo/#f2", definedLocally=true, isModifier=true)
|
||||
private StringDt myFoo2;
|
||||
|
||||
@Child(name = "identifier", type = IdentifierDt.class, order = 0, min = 0, max = Child.MAX_UNLIMITED)
|
||||
|
@ -87,11 +87,11 @@ public class ResourceWithExtensionsA implements IResource {
|
|||
}
|
||||
|
||||
@Child(name = "bar11", type = DateDt.class, order = 0, min = 0, max = Child.MAX_UNLIMITED)
|
||||
@Extension(url = "http://bar/#1/1", definedLocally=true)
|
||||
@Extension(url = "http://bar/#b1/1", definedLocally=true, isModifier=false)
|
||||
private List<DateDt> myBar11;
|
||||
|
||||
@Child(name = "bar12", type = DateDt.class, order = 1, min = 0, max = Child.MAX_UNLIMITED)
|
||||
@Extension(url = "http://bar/#1/2", definedLocally=true)
|
||||
@Extension(url = "http://bar/#b1/2", definedLocally=true, isModifier=false)
|
||||
private List<Bar2> myBar12;
|
||||
|
||||
@Override
|
||||
|
@ -121,11 +121,11 @@ public class ResourceWithExtensionsA implements IResource {
|
|||
public static class Bar2 implements IExtension {
|
||||
|
||||
@Child(name = "bar121", type = DateDt.class, order = 0, min = 0, max = Child.MAX_UNLIMITED)
|
||||
@Extension(url = "http://bar/#1/2/1", definedLocally=true)
|
||||
@Extension(url = "http://bar/#b1/2/1", definedLocally=true, isModifier=false)
|
||||
private List<DateDt> myBar121;
|
||||
|
||||
@Child(name = "bar122", type = DateDt.class, order = 1, min = 0, max = Child.MAX_UNLIMITED)
|
||||
@Extension(url = "http://bar/#1/2/2", definedLocally=true)
|
||||
@Extension(url = "http://bar/#b1/2/2", definedLocally=true, isModifier=false)
|
||||
private List<DateDt> myBar122;
|
||||
|
||||
@Override
|
||||
|
|
|
@ -7,6 +7,7 @@ import org.junit.Test;
|
|||
import ca.uhn.fhir.model.dstu.resource.Patient;
|
||||
import ca.uhn.fhir.model.dstu.resource.Profile;
|
||||
import ca.uhn.fhir.model.dstu.resource.Profile.ExtensionDefn;
|
||||
import ca.uhn.fhir.model.dstu.resource.Profile.Structure;
|
||||
import ca.uhn.fhir.model.dstu.valueset.DataTypeEnum;
|
||||
|
||||
public class RuntimeResourceDefinitionTest {
|
||||
|
@ -21,6 +22,14 @@ public class RuntimeResourceDefinitionTest {
|
|||
|
||||
ourLog.info(ctx.newXmlParser().encodeResourceToString(profile));
|
||||
|
||||
Structure struct = profile.getStructure().get(0);
|
||||
assertEquals("Patient", struct.getElement().get(0).getPath().getValue());
|
||||
assertEquals("Patient.extension", struct.getElement().get(1).getPath().getValue());
|
||||
assertEquals("Patient.modifierExtension", struct.getElement().get(2).getPath().getValue());
|
||||
assertEquals("Patient.text", struct.getElement().get(3).getPath().getValue());
|
||||
assertEquals("Patient.contained", struct.getElement().get(4).getPath().getValue());
|
||||
assertEquals("Patient.language", struct.getElement().get(5).getPath().getValue());
|
||||
|
||||
}
|
||||
|
||||
@Test
|
||||
|
@ -30,35 +39,35 @@ public class RuntimeResourceDefinitionTest {
|
|||
|
||||
Profile profile = def.toProfile();
|
||||
|
||||
ourLog.debug(ctx.newXmlParser().encodeResourceToString(profile));
|
||||
ourLog.info(ctx.newXmlParser().encodeResourceToString(profile));
|
||||
|
||||
assertEquals(1, profile.getStructure().get(0).getElement().get(0).getDefinition().getType().size());
|
||||
assertEquals("Resource", profile.getStructure().get(0).getElement().get(0).getDefinition().getType().get(0).getCode().getValue());
|
||||
|
||||
ExtensionDefn ext = profile.getExtensionDefn().get(0);
|
||||
assertEquals("1/1", ext.getCode().getValue());
|
||||
ExtensionDefn ext = profile.getExtensionDefn().get(1);
|
||||
assertEquals("b1/1", ext.getCode().getValue());
|
||||
assertEquals(DataTypeEnum.DATE.getCode(), ext.getDefinition().getType().get(0).getCode().getValue());
|
||||
|
||||
ext = profile.getExtensionDefn().get(1);
|
||||
assertEquals("1/2", ext.getCode().getValue());
|
||||
ext = profile.getExtensionDefn().get(2);
|
||||
assertEquals("b1/2", ext.getCode().getValue());
|
||||
assertEquals(DataTypeEnum.EXTENSION, ext.getDefinition().getType().get(0).getCode().getValueAsEnum());
|
||||
assertEquals("#1/2/1", ext.getDefinition().getType().get(0).getProfile().getValueAsString());
|
||||
assertEquals("#b1/2/1", ext.getDefinition().getType().get(0).getProfile().getValueAsString());
|
||||
assertEquals(DataTypeEnum.EXTENSION, ext.getDefinition().getType().get(1).getCode().getValueAsEnum());
|
||||
assertEquals("#1/2/2", ext.getDefinition().getType().get(1).getProfile().getValueAsString());
|
||||
assertEquals("#b1/2/2", ext.getDefinition().getType().get(1).getProfile().getValueAsString());
|
||||
|
||||
assertEquals("ResourceWithExtensionsA.extension", profile.getStructure().get(0).getElement().get(1).getPath().getValue());
|
||||
assertEquals("ResourceWithExtensionsA.extension", profile.getStructure().get(0).getElement().get(2).getPath().getValue());
|
||||
assertEquals("ResourceWithExtensionsA.extension", profile.getStructure().get(0).getElement().get(3).getPath().getValue());
|
||||
assertEquals("ResourceWithExtensionsA.extension", profile.getStructure().get(0).getElement().get(4).getPath().getValue());
|
||||
assertEquals("ResourceWithExtensionsA.extension", profile.getStructure().get(0).getElement().get(5).getPath().getValue());
|
||||
assertEquals("ResourceWithExtensionsA.modifierExtension", profile.getStructure().get(0).getElement().get(5).getPath().getValue());
|
||||
|
||||
assertEquals(DataTypeEnum.EXTENSION, profile.getStructure().get(0).getElement().get(1).getDefinition().getType().get(0).getCode().getValueAsEnum());
|
||||
assertEquals("url", profile.getStructure().get(0).getElement().get(1).getSlicing().getDiscriminator().getValue());
|
||||
|
||||
assertEquals(DataTypeEnum.EXTENSION, profile.getStructure().get(0).getElement().get(2).getDefinition().getType().get(0).getCode().getValueAsEnum());
|
||||
assertEquals("f1", profile.getStructure().get(0).getElement().get(2).getDefinition().getType().get(0).getProfile().getValueAsString());
|
||||
assertEquals("#f1", profile.getStructure().get(0).getElement().get(2).getDefinition().getType().get(0).getProfile().getValueAsString());
|
||||
|
||||
assertEquals("ResourceWithExtensionsA.identifier", profile.getStructure().get(0).getElement().get(6).getPath().getValue());
|
||||
assertEquals("ResourceWithExtensionsA.identifier", profile.getStructure().get(0).getElement().get(9).getPath().getValue());
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -146,33 +146,33 @@ public class XmlParserTest {
|
|||
}
|
||||
|
||||
@Test
|
||||
public void testLoadAndEncodeExtensions() throws ConfigurationException, DataFormatException, SAXException, IOException {
|
||||
public void testLoadAndEncodeDeclaredExtensions() throws ConfigurationException, DataFormatException, SAXException, IOException {
|
||||
FhirContext ctx = new FhirContext(ResourceWithExtensionsA.class);
|
||||
IParser p = new XmlParser(ctx);
|
||||
|
||||
//@formatter:off
|
||||
String msg = "<ResourceWithExtensionsA xmlns=\"http://hl7.org/fhir\">\n" +
|
||||
" <extension url=\"http://foo/1\">\n" +
|
||||
" <extension url=\"http://foo/#f1\">\n" +
|
||||
" <valueString value=\"Foo1Value\"/>\n" +
|
||||
" </extension>\n" +
|
||||
" <extension url=\"http://foo/1\">\n" +
|
||||
" <extension url=\"http://foo/#f1\">\n" +
|
||||
" <valueString value=\"Foo1Value2\"/>\n" +
|
||||
" </extension>\n" +
|
||||
" <extension url=\"http://foo/2\">\n" +
|
||||
" <modifierExtension url=\"http://foo/#f2\">\n" +
|
||||
" <valueString value=\"Foo2Value1\"/>\n" +
|
||||
" </extension>\n" +
|
||||
" <extension url=\"http://bar/1\">\n" +
|
||||
" <extension url=\"http://bar/1/1\">\n" +
|
||||
" </modifierExtension>\n" +
|
||||
" <extension url=\"http://bar/#b1\">\n" +
|
||||
" <extension url=\"http://bar/#b1/1\">\n" +
|
||||
" <valueDate value=\"2013-01-01\"/>\n" +
|
||||
" </extension>\n" +
|
||||
" <extension url=\"http://bar/1/2\">\n" +
|
||||
" <extension url=\"http://bar/1/2/1\">\n" +
|
||||
" <extension url=\"http://bar/#b1/2\">\n" +
|
||||
" <extension url=\"http://bar/#b1/2/1\">\n" +
|
||||
" <valueDate value=\"2013-01-02\"/>\n" +
|
||||
" </extension>\n" +
|
||||
" <extension url=\"http://bar/1/2/1\">\n" +
|
||||
" <extension url=\"http://bar/#b1/2/1\">\n" +
|
||||
" <valueDate value=\"2013-01-12\"/>\n" +
|
||||
" </extension>\n" +
|
||||
" <extension url=\"http://bar/1/2/2\">\n" +
|
||||
" <extension url=\"http://bar/#b1/2/2\">\n" +
|
||||
" <valueDate value=\"2013-01-03\"/>\n" +
|
||||
" </extension>\n" +
|
||||
" </extension>\n" +
|
||||
|
@ -200,6 +200,60 @@ public class XmlParserTest {
|
|||
assertTrue(d.toString(), d.identical());
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testLoadAndEncodeUndeclaredExtensions() throws ConfigurationException, DataFormatException, SAXException, IOException {
|
||||
FhirContext ctx = new FhirContext(Patient.class);
|
||||
IParser p = new XmlParser(ctx);
|
||||
|
||||
//@formatter:off
|
||||
String msg = "<Patient xmlns=\"http://hl7.org/fhir\">\n" +
|
||||
" <extension url=\"http://foo/#f1\">\n" +
|
||||
" <valueString value=\"Foo1Value\"/>\n" +
|
||||
" </extension>\n" +
|
||||
" <extension url=\"http://foo/#f1\">\n" +
|
||||
" <valueString value=\"Foo1Value2\"/>\n" +
|
||||
" </extension>\n" +
|
||||
" <extension url=\"http://bar/#b1\">\n" +
|
||||
" <extension url=\"http://bar/#b1/1\">\n" +
|
||||
" <valueDate value=\"2013-01-01\"/>\n" +
|
||||
" </extension>\n" +
|
||||
" <extension url=\"http://bar/#b1/2\">\n" +
|
||||
" <extension url=\"http://bar/#b1/2/1\">\n" +
|
||||
" <valueDate value=\"2013-01-02\"/>\n" +
|
||||
" </extension>\n" +
|
||||
" <extension url=\"http://bar/#b1/2/1\">\n" +
|
||||
" <valueDate value=\"2013-01-12\"/>\n" +
|
||||
" </extension>\n" +
|
||||
" <extension url=\"http://bar/#b1/2/2\">\n" +
|
||||
" <valueDate value=\"2013-01-03\"/>\n" +
|
||||
" </extension>\n" +
|
||||
" </extension>\n" +
|
||||
" </extension>\n" +
|
||||
" <modifierExtension url=\"http://foo/#f2\">\n" +
|
||||
" <valueString value=\"Foo2Value1\"/>\n" +
|
||||
" </modifierExtension>\n" +
|
||||
" <identifier>\n" +
|
||||
" <label value=\"IdentifierLabel\"/>\n" +
|
||||
" </identifier>\n" +
|
||||
"</Patient>";
|
||||
//@formatter:on
|
||||
|
||||
Patient resource = (Patient) p.parseResource(msg);
|
||||
assertEquals("IdentifierLabel", resource.getIdentifier().get(0).getLabel().getValue());
|
||||
assertEquals("Foo1Value", resource.getUndeclaredExtensions().get(0).getValueAsPrimitive().getValueAsString());
|
||||
assertEquals("Foo1Value2", resource.getUndeclaredExtensions().get(1).getValueAsPrimitive().getValueAsString());
|
||||
assertEquals("Foo2Value1", resource.getUndeclaredModifierExtensions().get(0).getValueAsPrimitive().getValueAsString());
|
||||
|
||||
assertEquals("2013-01-01", resource.getUndeclaredExtensions().get(2).getUndeclaredExtensions().get(0).getValueAsPrimitive().getValueAsString());
|
||||
assertEquals("2013-01-02", resource.getUndeclaredExtensions().get(2).getUndeclaredExtensions().get(1).getUndeclaredExtensions().get(0).getValueAsPrimitive().getValueAsString());
|
||||
|
||||
String encoded = p.encodeResourceToString(resource);
|
||||
ourLog.info(encoded);
|
||||
|
||||
Diff d = new Diff(new StringReader(msg), new StringReader(encoded));
|
||||
assertTrue(d.toString(), d.identical());
|
||||
}
|
||||
|
||||
@BeforeClass
|
||||
public static void beforeClass() {
|
||||
XMLUnit.setIgnoreAttributeOrder(true);
|
||||
|
|
|
@ -1,18 +1,15 @@
|
|||
package ca.uhn.fhir.rest.server;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
import static org.junit.Assert.assertEquals;
|
||||
|
||||
import java.util.concurrent.TimeUnit;
|
||||
|
||||
import org.apache.commons.io.IOUtils;
|
||||
import org.apache.http.HttpResponse;
|
||||
import org.apache.http.client.methods.HttpGet;
|
||||
import org.apache.http.client.methods.HttpPost;
|
||||
import org.apache.http.entity.ContentType;
|
||||
import org.apache.http.entity.StringEntity;
|
||||
import org.apache.http.impl.client.DefaultHttpClient;
|
||||
import org.apache.http.impl.conn.PoolingClientConnectionManager;
|
||||
import org.apache.http.impl.conn.SchemeRegistryFactory;
|
||||
import org.apache.http.impl.client.CloseableHttpClient;
|
||||
import org.apache.http.impl.client.HttpClientBuilder;
|
||||
import org.apache.http.impl.conn.PoolingHttpClientConnectionManager;
|
||||
import org.eclipse.jetty.server.Server;
|
||||
import org.eclipse.jetty.servlet.ServletHandler;
|
||||
import org.eclipse.jetty.servlet.ServletHolder;
|
||||
|
@ -33,7 +30,7 @@ public class ResfulServerTest {
|
|||
private static final org.slf4j.Logger ourLog = org.slf4j.LoggerFactory.getLogger(ResfulServerTest.class);
|
||||
private static int ourPort;
|
||||
private static Server ourServer;
|
||||
private static DefaultHttpClient ourClient;
|
||||
private static CloseableHttpClient ourClient;
|
||||
private static FhirContext ourCtx;
|
||||
|
||||
@BeforeClass
|
||||
|
@ -49,8 +46,10 @@ public class ResfulServerTest {
|
|||
ourServer.setHandler(proxyHandler);
|
||||
ourServer.start();
|
||||
|
||||
PoolingClientConnectionManager connectionManager = new PoolingClientConnectionManager(SchemeRegistryFactory.createDefault(), 5000, TimeUnit.MILLISECONDS);
|
||||
ourClient = new DefaultHttpClient(connectionManager);
|
||||
PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager(5000, TimeUnit.MILLISECONDS);
|
||||
HttpClientBuilder builder = HttpClientBuilder.create();
|
||||
builder.setConnectionManager(connectionManager);
|
||||
ourClient = builder.build();
|
||||
|
||||
ourCtx = new FhirContext(Patient.class);
|
||||
|
||||
|
|
|
@ -148,6 +148,7 @@ public abstract class BaseStructureParser {
|
|||
ctx.put("includeDescriptionAnnotations", true);
|
||||
ctx.put("packageBase", thePackageBase);
|
||||
ctx.put("profile", theResource.getProfile());
|
||||
ctx.put("id", StringUtils.defaultString(theResource.getId()));
|
||||
ctx.put("className", theResource.getName());
|
||||
ctx.put("shortName", defaultString(theResource.getShortName()));
|
||||
ctx.put("definition", defaultString(theResource.getDefinition()));
|
||||
|
|
|
@ -53,6 +53,8 @@ public abstract class BaseStructureSpreadsheetParser extends BaseStructureParser
|
|||
|
||||
parseBasicElements(resourceRow, resource);
|
||||
|
||||
resource.setId(resource.getName().toLowerCase());
|
||||
|
||||
if (this instanceof ResourceGeneratorUsingSpreadsheet) {
|
||||
resource.setProfile("http://hl7.org/fhir/profiles/" + resource.getElementName());
|
||||
}
|
||||
|
|
|
@ -67,7 +67,7 @@ public class Child extends BaseElement {
|
|||
public String getReferenceType() {
|
||||
String retVal;
|
||||
if (this.isResourceRef()) {
|
||||
retVal = (ResourceReference.class.getSimpleName());
|
||||
retVal = "ResourceReferenceDt"; // (ResourceReferenceDt.class.getSimpleName());
|
||||
} else if (this.getType().size() == 1 || this instanceof ResourceBlock) {
|
||||
if (isBoundCode()) {
|
||||
retVal = "Bound" + getSingleType() + "<" + getBindingClass() + ">";
|
||||
|
|
|
@ -5,9 +5,14 @@ import java.util.List;
|
|||
|
||||
public class Resource extends BaseElement {
|
||||
|
||||
private String myId;
|
||||
private String myProfile;
|
||||
|
||||
private List<SearchParameter> mySearchParameters;
|
||||
|
||||
public String getId() {
|
||||
return myId;
|
||||
}
|
||||
public String getProfile() {
|
||||
return myProfile;
|
||||
}
|
||||
|
@ -24,6 +29,10 @@ public class Resource extends BaseElement {
|
|||
return "";
|
||||
}
|
||||
|
||||
public void setId(String theId) {
|
||||
myId = theId;
|
||||
}
|
||||
|
||||
public void setProfile(String theProfile) {
|
||||
myProfile = theProfile;
|
||||
}
|
||||
|
|
|
@ -24,7 +24,9 @@ import ${packageBase}.resource.*;
|
|||
* </p>
|
||||
*/
|
||||
@DatatypeDef(name="${className}")
|
||||
public class ${className}Dt extends BaseElement implements ICompositeDatatype #{if}( ${className} == "Identifier" ), IQueryParameterType #{end}
|
||||
public class ${className}Dt
|
||||
extends #{if}(${className}=="ResourceReference") BaseResourceReference #{else} BaseElement #{end}
|
||||
implements ICompositeDatatype #{if}( ${className} == "Identifier" ), IQueryParameterType #{end}
|
||||
{
|
||||
|
||||
#########################
|
||||
|
|
|
@ -23,7 +23,7 @@ import ${packageBase}.valueset.*;
|
|||
* ${requirements}
|
||||
* </p>
|
||||
*/
|
||||
@ResourceDef(name="${className}", profile="${profile}")
|
||||
@ResourceDef(name="${className}", profile="${profile}", id="${id}")
|
||||
public class ${className} extends BaseResource implements IResource {
|
||||
|
||||
#foreach ( $param in $searchParams )
|
||||
|
|
Loading…
Reference in New Issue