Starting workon post methods
This commit is contained in:
parent
082ebb64c1
commit
ad189d66e2
|
@ -101,6 +101,6 @@
|
||||||
<attribute name="javadoc_location" value="jar:file:/Users/james/.m2/repository/org/codehaus/woodstox/woodstox-core-asl/4.2.0/woodstox-core-asl-4.2.0-javadoc.jar!/"/>
|
<attribute name="javadoc_location" value="jar:file:/Users/james/.m2/repository/org/codehaus/woodstox/woodstox-core-asl/4.2.0/woodstox-core-asl-4.2.0-javadoc.jar!/"/>
|
||||||
</attributes>
|
</attributes>
|
||||||
</classpathentry>
|
</classpathentry>
|
||||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
|
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.7"/>
|
||||||
<classpathentry kind="output" path="bin"/>
|
<classpathentry kind="output" path="bin"/>
|
||||||
</classpath>
|
</classpath>
|
||||||
|
|
|
@ -6,9 +6,9 @@ org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annota
|
||||||
org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
|
org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
|
||||||
org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
|
org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
|
||||||
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
|
||||||
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
|
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.7
|
||||||
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
|
||||||
org.eclipse.jdt.core.compiler.compliance=1.6
|
org.eclipse.jdt.core.compiler.compliance=1.7
|
||||||
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
|
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
|
||||||
org.eclipse.jdt.core.compiler.debug.localVariable=generate
|
org.eclipse.jdt.core.compiler.debug.localVariable=generate
|
||||||
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
|
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
|
||||||
|
@ -96,4 +96,4 @@ org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
|
||||||
org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
|
org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=warning
|
||||||
org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
|
org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
|
||||||
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
|
org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
|
||||||
org.eclipse.jdt.core.compiler.source=1.6
|
org.eclipse.jdt.core.compiler.source=1.7
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package ca.uhn.fhir.context;
|
package ca.uhn.fhir.context;
|
||||||
|
|
||||||
import static org.apache.commons.lang3.StringUtils.isBlank;
|
import static org.apache.commons.lang3.StringUtils.*;
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.lang.reflect.InvocationTargetException;
|
import java.lang.reflect.InvocationTargetException;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package ca.uhn.fhir.context;
|
package ca.uhn.fhir.context;
|
||||||
|
|
||||||
import static org.apache.commons.lang3.StringUtils.isBlank;
|
import static org.apache.commons.lang3.StringUtils.*;
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.lang.reflect.ParameterizedType;
|
import java.lang.reflect.ParameterizedType;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package ca.uhn.fhir.context;
|
package ca.uhn.fhir.context;
|
||||||
|
|
||||||
import static org.apache.commons.lang3.StringUtils.isNotBlank;
|
import static org.apache.commons.lang3.StringUtils.*;
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
|
|
@ -9,10 +9,10 @@ import java.util.Map.Entry;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import ca.uhn.fhir.model.api.BaseResourceReference;
|
import ca.uhn.fhir.model.api.BaseResourceReference;
|
||||||
|
import ca.uhn.fhir.model.api.ExtensionDt;
|
||||||
import ca.uhn.fhir.model.api.IDatatype;
|
import ca.uhn.fhir.model.api.IDatatype;
|
||||||
import ca.uhn.fhir.model.api.IElement;
|
import ca.uhn.fhir.model.api.IElement;
|
||||||
import ca.uhn.fhir.model.api.IResource;
|
import ca.uhn.fhir.model.api.IResource;
|
||||||
import ca.uhn.fhir.model.api.UndeclaredExtension;
|
|
||||||
import ca.uhn.fhir.model.dstu.composite.ResourceReferenceDt;
|
import ca.uhn.fhir.model.dstu.composite.ResourceReferenceDt;
|
||||||
|
|
||||||
public class RuntimeChildUndeclaredExtensionDefinition extends BaseRuntimeChildDefinition {
|
public class RuntimeChildUndeclaredExtensionDefinition extends BaseRuntimeChildDefinition {
|
||||||
|
@ -90,7 +90,7 @@ public class RuntimeChildUndeclaredExtensionDefinition extends BaseRuntimeChildD
|
||||||
return new IAccessor() {
|
return new IAccessor() {
|
||||||
@Override
|
@Override
|
||||||
public List<? extends IElement> getValues(Object theTarget) {
|
public List<? extends IElement> getValues(Object theTarget) {
|
||||||
UndeclaredExtension target = (UndeclaredExtension)theTarget;
|
ExtensionDt target = (ExtensionDt)theTarget;
|
||||||
if (target.getValue() != null) {
|
if (target.getValue() != null) {
|
||||||
return Collections.singletonList(target.getValue());
|
return Collections.singletonList(target.getValue());
|
||||||
}
|
}
|
||||||
|
@ -104,11 +104,11 @@ public class RuntimeChildUndeclaredExtensionDefinition extends BaseRuntimeChildD
|
||||||
return new IMutator() {
|
return new IMutator() {
|
||||||
@Override
|
@Override
|
||||||
public void addValue(Object theTarget, IElement theValue) {
|
public void addValue(Object theTarget, IElement theValue) {
|
||||||
UndeclaredExtension target = (UndeclaredExtension)theTarget;
|
ExtensionDt target = (ExtensionDt)theTarget;
|
||||||
if (theValue instanceof IDatatype) {
|
if (theValue instanceof IDatatype) {
|
||||||
target.setValue((IDatatype) theTarget);
|
target.setValue((IDatatype) theTarget);
|
||||||
}else {
|
}else {
|
||||||
target.getUndeclaredExtensions().add((UndeclaredExtension) theValue);
|
target.getUndeclaredExtensions().add((ExtensionDt) theValue);
|
||||||
}
|
}
|
||||||
}};
|
}};
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package ca.uhn.fhir.context;
|
package ca.uhn.fhir.context;
|
||||||
|
|
||||||
import static org.apache.commons.lang3.StringUtils.isBlank;
|
import static org.apache.commons.lang3.StringUtils.*;
|
||||||
import ca.uhn.fhir.model.api.ICompositeDatatype;
|
import ca.uhn.fhir.model.api.ICompositeDatatype;
|
||||||
import ca.uhn.fhir.model.api.annotation.DatatypeDef;
|
import ca.uhn.fhir.model.api.annotation.DatatypeDef;
|
||||||
import ca.uhn.fhir.model.api.annotation.ResourceDef;
|
import ca.uhn.fhir.model.api.annotation.ResourceDef;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package ca.uhn.fhir.context;
|
package ca.uhn.fhir.context;
|
||||||
|
|
||||||
import static org.apache.commons.lang3.StringUtils.isBlank;
|
import static org.apache.commons.lang3.StringUtils.*;
|
||||||
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
package ca.uhn.fhir.context;
|
package ca.uhn.fhir.context;
|
||||||
|
|
||||||
import static org.apache.commons.lang3.StringUtils.isNotBlank;
|
import static org.apache.commons.lang3.StringUtils.*;
|
||||||
import static org.apache.commons.lang3.StringUtils.join;
|
|
||||||
|
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
|
|
|
@ -9,12 +9,12 @@ import ca.uhn.fhir.model.primitive.IdDt;
|
||||||
public abstract class BaseElement implements IIdentifiableElement, ISupportsUndeclaredExtensions {
|
public abstract class BaseElement implements IIdentifiableElement, ISupportsUndeclaredExtensions {
|
||||||
|
|
||||||
private IdDt myId;
|
private IdDt myId;
|
||||||
private List<UndeclaredExtension> myUndeclaredExtensions;
|
private List<ExtensionDt> myUndeclaredExtensions;
|
||||||
private List<UndeclaredExtension> myUndeclaredModifierExtensions;
|
private List<ExtensionDt> myUndeclaredModifierExtensions;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<UndeclaredExtension> getAllUndeclaredExtensions() {
|
public List<ExtensionDt> getAllUndeclaredExtensions() {
|
||||||
ArrayList<UndeclaredExtension> retVal = new ArrayList<UndeclaredExtension>();
|
ArrayList<ExtensionDt> retVal = new ArrayList<ExtensionDt>();
|
||||||
if (myUndeclaredExtensions != null) {
|
if (myUndeclaredExtensions != null) {
|
||||||
retVal.addAll(myUndeclaredExtensions);
|
retVal.addAll(myUndeclaredExtensions);
|
||||||
}
|
}
|
||||||
|
@ -33,17 +33,17 @@ public abstract class BaseElement implements IIdentifiableElement, ISupportsUnde
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<UndeclaredExtension> getUndeclaredExtensions() {
|
public List<ExtensionDt> getUndeclaredExtensions() {
|
||||||
if (myUndeclaredExtensions == null) {
|
if (myUndeclaredExtensions == null) {
|
||||||
myUndeclaredExtensions = new ArrayList<UndeclaredExtension>();
|
myUndeclaredExtensions = new ArrayList<ExtensionDt>();
|
||||||
}
|
}
|
||||||
return myUndeclaredExtensions;
|
return myUndeclaredExtensions;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<UndeclaredExtension> getUndeclaredModifierExtensions() {
|
public List<ExtensionDt> getUndeclaredModifierExtensions() {
|
||||||
if (myUndeclaredModifierExtensions == null) {
|
if (myUndeclaredModifierExtensions == null) {
|
||||||
myUndeclaredModifierExtensions = new ArrayList<UndeclaredExtension>();
|
myUndeclaredModifierExtensions = new ArrayList<ExtensionDt>();
|
||||||
}
|
}
|
||||||
return myUndeclaredModifierExtensions;
|
return myUndeclaredModifierExtensions;
|
||||||
}
|
}
|
||||||
|
@ -54,14 +54,14 @@ public abstract class BaseElement implements IIdentifiableElement, ISupportsUnde
|
||||||
*/
|
*/
|
||||||
protected boolean isBaseEmpty() {
|
protected boolean isBaseEmpty() {
|
||||||
if (myUndeclaredExtensions != null) {
|
if (myUndeclaredExtensions != null) {
|
||||||
for (UndeclaredExtension next : myUndeclaredExtensions) {
|
for (ExtensionDt next : myUndeclaredExtensions) {
|
||||||
if (!next.isEmpty()) {
|
if (!next.isEmpty()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (myUndeclaredModifierExtensions != null) {
|
if (myUndeclaredModifierExtensions != null) {
|
||||||
for (UndeclaredExtension next : myUndeclaredModifierExtensions) {
|
for (ExtensionDt next : myUndeclaredModifierExtensions) {
|
||||||
if (!next.isEmpty()) {
|
if (!next.isEmpty()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,31 +1,43 @@
|
||||||
package ca.uhn.fhir.model.api;
|
package ca.uhn.fhir.model.api;
|
||||||
|
|
||||||
public class UndeclaredExtension extends BaseElement {
|
import ca.uhn.fhir.model.api.annotation.Child;
|
||||||
|
import ca.uhn.fhir.model.api.annotation.DatatypeDef;
|
||||||
|
import ca.uhn.fhir.model.primitive.StringDt;
|
||||||
|
|
||||||
|
@DatatypeDef(name="Extension")
|
||||||
|
public class ExtensionDt extends BaseElement {
|
||||||
|
|
||||||
private String myUrl;
|
|
||||||
private IElement myValue;
|
|
||||||
private boolean myIsModifier;
|
private boolean myIsModifier;
|
||||||
|
|
||||||
|
@Child(name="use", type=StringDt.class, order=0, min=1, max=1)
|
||||||
|
private StringDt myUrl;
|
||||||
|
|
||||||
|
@Child(name="value", type=IDatatype.class, order=1, min=0, max=1)
|
||||||
|
private IElement myValue;
|
||||||
|
|
||||||
public UndeclaredExtension() {
|
public ExtensionDt() {
|
||||||
}
|
}
|
||||||
|
|
||||||
public UndeclaredExtension(boolean theIsModifier) {
|
public ExtensionDt(boolean theIsModifier) {
|
||||||
myIsModifier = theIsModifier;
|
myIsModifier = theIsModifier;
|
||||||
}
|
}
|
||||||
|
|
||||||
public UndeclaredExtension(boolean theIsModifier, String theUrl) {
|
public ExtensionDt(boolean theIsModifier, String theUrl) {
|
||||||
myIsModifier = theIsModifier;
|
myIsModifier = theIsModifier;
|
||||||
myUrl = theUrl;
|
myUrl = new StringDt(theUrl);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean isModifier() {
|
public StringDt getUrl() {
|
||||||
return myIsModifier;
|
if (myUrl==null) {
|
||||||
}
|
myUrl=new StringDt();
|
||||||
|
}
|
||||||
public String getUrl() {
|
|
||||||
return myUrl;
|
return myUrl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public String getUrlAsString() {
|
||||||
|
return myUrl.getValue();
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns the value of this extension, if one exists.
|
* Returns the value of this extension, if one exists.
|
||||||
* <p>
|
* <p>
|
||||||
|
@ -36,7 +48,7 @@ public class UndeclaredExtension extends BaseElement {
|
||||||
public IElement getValue() {
|
public IElement getValue() {
|
||||||
return myValue;
|
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
|
* 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.
|
* be a primitive.
|
||||||
|
@ -52,7 +64,20 @@ public class UndeclaredExtension extends BaseElement {
|
||||||
return (IPrimitiveDatatype<?>) getValue();
|
return (IPrimitiveDatatype<?>) getValue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isEmpty() {
|
||||||
|
return super.isBaseEmpty() && myValue == null || myValue.isEmpty();
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isModifier() {
|
||||||
|
return myIsModifier;
|
||||||
|
}
|
||||||
|
|
||||||
public void setUrl(String theUrl) {
|
public void setUrl(String theUrl) {
|
||||||
|
myUrl = new StringDt(theUrl);
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setUrl(StringDt theUrl) {
|
||||||
myUrl = theUrl;
|
myUrl = theUrl;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -60,9 +85,4 @@ public class UndeclaredExtension extends BaseElement {
|
||||||
myValue = theValue;
|
myValue = theValue;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public boolean isEmpty() {
|
|
||||||
return super.isBaseEmpty() && myValue == null || myValue.isEmpty();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
|
@ -7,16 +7,16 @@ public interface ISupportsUndeclaredExtensions extends IElement {
|
||||||
/**
|
/**
|
||||||
* Returns a list containing all undeclared non-modifier extensions
|
* Returns a list containing all undeclared non-modifier extensions
|
||||||
*/
|
*/
|
||||||
List<UndeclaredExtension> getUndeclaredExtensions();
|
List<ExtensionDt> getUndeclaredExtensions();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns an <b>immutable</b> list containing all extensions (modifier and non-modifier)
|
* Returns an <b>immutable</b> list containing all extensions (modifier and non-modifier)
|
||||||
*/
|
*/
|
||||||
List<UndeclaredExtension> getAllUndeclaredExtensions();
|
List<ExtensionDt> getAllUndeclaredExtensions();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Returns a list containing all undeclared modifier extensions
|
* Returns a list containing all undeclared modifier extensions
|
||||||
*/
|
*/
|
||||||
List<UndeclaredExtension> getUndeclaredModifierExtensions();
|
List<ExtensionDt> getUndeclaredModifierExtensions();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,406 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
package ca.uhn.fhir.model.dstu.resource;
|
||||||
|
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import ca.uhn.fhir.model.api.BaseResource;
|
||||||
|
import ca.uhn.fhir.model.api.IElement;
|
||||||
|
import ca.uhn.fhir.model.api.IResource;
|
||||||
|
import ca.uhn.fhir.model.api.annotation.Child;
|
||||||
|
import ca.uhn.fhir.model.api.annotation.Description;
|
||||||
|
import ca.uhn.fhir.model.api.annotation.ResourceDef;
|
||||||
|
import ca.uhn.fhir.model.dstu.composite.CodeableConceptDt;
|
||||||
|
import ca.uhn.fhir.model.dstu.composite.IdentifierDt;
|
||||||
|
import ca.uhn.fhir.model.dstu.composite.ResourceReferenceDt;
|
||||||
|
import ca.uhn.fhir.model.dstu.valueset.AlertStatusEnum;
|
||||||
|
import ca.uhn.fhir.model.dstu.valueset.IdentifierUseEnum;
|
||||||
|
import ca.uhn.fhir.model.primitive.BoundCodeDt;
|
||||||
|
import ca.uhn.fhir.model.primitive.CodeDt;
|
||||||
|
import ca.uhn.fhir.model.primitive.StringDt;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* HAPI/FHIR <b>Alert</b> Resource
|
||||||
|
* (Key information to flag to healthcare providers)
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
* Prospective warnings of potential issues when providing care to the patient
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Requirements:</b>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
@ResourceDef(name="Alert", profile="http://hl7.org/fhir/profiles/Alert", id="alert")
|
||||||
|
public class Alert extends BaseResource implements IResource {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Search parameter constant for <b>subject</b>
|
||||||
|
* <p>
|
||||||
|
* Description: <b>The identity of a subject to list alerts for</b><br/>
|
||||||
|
* Type: <b>reference</b><br/>
|
||||||
|
* Path: <b>Alert.subject</b><br/>
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public static final String SP_SUBJECT = "subject";
|
||||||
|
|
||||||
|
|
||||||
|
@Child(name="identifier", type=IdentifierDt.class, order=0, min=0, max=Child.MAX_UNLIMITED)
|
||||||
|
@Description(
|
||||||
|
shortDefinition="Business identifier",
|
||||||
|
formalDefinition="Identifier assigned to the alert for external use (outside the FHIR environment)"
|
||||||
|
)
|
||||||
|
private java.util.List<IdentifierDt> myIdentifier;
|
||||||
|
|
||||||
|
@Child(name="category", type=CodeableConceptDt.class, order=1, min=0, max=1)
|
||||||
|
@Description(
|
||||||
|
shortDefinition="Clinical, administrative, etc.",
|
||||||
|
formalDefinition="Allows an alert to be divided into different categories like clinical, administrative etc."
|
||||||
|
)
|
||||||
|
private CodeableConceptDt myCategory;
|
||||||
|
|
||||||
|
@Child(name="status", type=CodeDt.class, order=2, min=1, max=1)
|
||||||
|
@Description(
|
||||||
|
shortDefinition="active | inactive | entered in error",
|
||||||
|
formalDefinition="Supports basic workflow"
|
||||||
|
)
|
||||||
|
private BoundCodeDt<AlertStatusEnum> myStatus;
|
||||||
|
|
||||||
|
@Child(name="subject", order=3, min=1, max=1, type={
|
||||||
|
ca.uhn.fhir.model.dstu.resource.Patient.class,
|
||||||
|
})
|
||||||
|
@Description(
|
||||||
|
shortDefinition="Who is alert about?",
|
||||||
|
formalDefinition="The person who this alert concerns"
|
||||||
|
)
|
||||||
|
private ResourceReferenceDt mySubject;
|
||||||
|
|
||||||
|
@Child(name="author", order=4, min=0, max=1, type={
|
||||||
|
ca.uhn.fhir.model.dstu.resource.Practitioner.class,
|
||||||
|
ca.uhn.fhir.model.dstu.resource.Patient.class,
|
||||||
|
ca.uhn.fhir.model.dstu.resource.Device.class,
|
||||||
|
})
|
||||||
|
@Description(
|
||||||
|
shortDefinition="Alert creator",
|
||||||
|
formalDefinition="The person or device that created the alert"
|
||||||
|
)
|
||||||
|
private ResourceReferenceDt myAuthor;
|
||||||
|
|
||||||
|
@Child(name="note", type=StringDt.class, order=5, min=1, max=1)
|
||||||
|
@Description(
|
||||||
|
shortDefinition="Text of alert",
|
||||||
|
formalDefinition="The textual component of the alert to display to the user"
|
||||||
|
)
|
||||||
|
private StringDt myNote;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isEmpty() {
|
||||||
|
return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty( myIdentifier, myCategory, myStatus, mySubject, myAuthor, myNote);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public java.util.List<IElement> getAllPopulatedChildElements() {
|
||||||
|
return getAllPopulatedChildElementsOfType(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
|
||||||
|
return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myIdentifier, myCategory, myStatus, mySubject, myAuthor, myNote);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value(s) for <b>identifier</b> (Business identifier).
|
||||||
|
* creating it if it does
|
||||||
|
* not exist. Will not return <code>null</code>.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
* Identifier assigned to the alert for external use (outside the FHIR environment)
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public java.util.List<IdentifierDt> getIdentifier() {
|
||||||
|
if (myIdentifier == null) {
|
||||||
|
myIdentifier = new java.util.ArrayList<IdentifierDt>();
|
||||||
|
}
|
||||||
|
return myIdentifier;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value(s) for <b>identifier</b> (Business identifier)
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
* Identifier assigned to the alert for external use (outside the FHIR environment)
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public Alert setIdentifier(java.util.List<IdentifierDt> theValue) {
|
||||||
|
myIdentifier = theValue;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds and returns a new value for <b>identifier</b> (Business identifier)
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
* Identifier assigned to the alert for external use (outside the FHIR environment)
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public IdentifierDt addIdentifier() {
|
||||||
|
IdentifierDt newType = new IdentifierDt();
|
||||||
|
getIdentifier().add(newType);
|
||||||
|
return newType;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the first repetition for <b>identifier</b> (Business identifier),
|
||||||
|
* creating it if it does not already exist.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
* Identifier assigned to the alert for external use (outside the FHIR environment)
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public IdentifierDt getIdentifierFirstRep() {
|
||||||
|
if (getIdentifier().isEmpty()) {
|
||||||
|
return addIdentifier();
|
||||||
|
}
|
||||||
|
return getIdentifier().get(0);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Adds a new value for <b>identifier</b> (Business identifier)
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
* Identifier assigned to the alert for external use (outside the FHIR environment)
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @return Returns a reference to this object, to allow for simple chaining.
|
||||||
|
*/
|
||||||
|
public Alert addIdentifier( IdentifierUseEnum theUse, String theSystem, String theValue, String theLabel) {
|
||||||
|
if (myIdentifier == null) {
|
||||||
|
myIdentifier = new java.util.ArrayList<IdentifierDt>();
|
||||||
|
}
|
||||||
|
myIdentifier.add(new IdentifierDt(theUse, theSystem, theValue, theLabel));
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds a new value for <b>identifier</b> (Business identifier)
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
* Identifier assigned to the alert for external use (outside the FHIR environment)
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @return Returns a reference to this object, to allow for simple chaining.
|
||||||
|
*/
|
||||||
|
public Alert addIdentifier( String theSystem, String theValue) {
|
||||||
|
if (myIdentifier == null) {
|
||||||
|
myIdentifier = new java.util.ArrayList<IdentifierDt>();
|
||||||
|
}
|
||||||
|
myIdentifier.add(new IdentifierDt(theSystem, theValue));
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value(s) for <b>category</b> (Clinical, administrative, etc.).
|
||||||
|
* creating it if it does
|
||||||
|
* not exist. Will not return <code>null</code>.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
* Allows an alert to be divided into different categories like clinical, administrative etc.
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public CodeableConceptDt getCategory() {
|
||||||
|
if (myCategory == null) {
|
||||||
|
myCategory = new CodeableConceptDt();
|
||||||
|
}
|
||||||
|
return myCategory;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value(s) for <b>category</b> (Clinical, administrative, etc.)
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
* Allows an alert to be divided into different categories like clinical, administrative etc.
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public Alert setCategory(CodeableConceptDt theValue) {
|
||||||
|
myCategory = theValue;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value(s) for <b>status</b> (active | inactive | entered in error).
|
||||||
|
* creating it if it does
|
||||||
|
* not exist. Will not return <code>null</code>.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
* Supports basic workflow
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public BoundCodeDt<AlertStatusEnum> getStatus() {
|
||||||
|
if (myStatus == null) {
|
||||||
|
myStatus = new BoundCodeDt<AlertStatusEnum>(AlertStatusEnum.VALUESET_BINDER);
|
||||||
|
}
|
||||||
|
return myStatus;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value(s) for <b>status</b> (active | inactive | entered in error)
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
* Supports basic workflow
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public Alert setStatus(BoundCodeDt<AlertStatusEnum> theValue) {
|
||||||
|
myStatus = theValue;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value(s) for <b>status</b> (active | inactive | entered in error)
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
* Supports basic workflow
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public Alert setStatus(AlertStatusEnum theValue) {
|
||||||
|
getStatus().setValueAsEnum(theValue);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value(s) for <b>subject</b> (Who is alert about?).
|
||||||
|
* creating it if it does
|
||||||
|
* not exist. Will not return <code>null</code>.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
* The person who this alert concerns
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public ResourceReferenceDt getSubject() {
|
||||||
|
if (mySubject == null) {
|
||||||
|
mySubject = new ResourceReferenceDt();
|
||||||
|
}
|
||||||
|
return mySubject;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value(s) for <b>subject</b> (Who is alert about?)
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
* The person who this alert concerns
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public Alert setSubject(ResourceReferenceDt theValue) {
|
||||||
|
mySubject = theValue;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value(s) for <b>author</b> (Alert creator).
|
||||||
|
* creating it if it does
|
||||||
|
* not exist. Will not return <code>null</code>.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
* The person or device that created the alert
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public ResourceReferenceDt getAuthor() {
|
||||||
|
return myAuthor;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value(s) for <b>author</b> (Alert creator)
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
* The person or device that created the alert
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public Alert setAuthor(ResourceReferenceDt theValue) {
|
||||||
|
myAuthor = theValue;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value(s) for <b>note</b> (Text of alert).
|
||||||
|
* creating it if it does
|
||||||
|
* not exist. Will not return <code>null</code>.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
* The textual component of the alert to display to the user
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public StringDt getNote() {
|
||||||
|
if (myNote == null) {
|
||||||
|
myNote = new StringDt();
|
||||||
|
}
|
||||||
|
return myNote;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value(s) for <b>note</b> (Text of alert)
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
* The textual component of the alert to display to the user
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public Alert setNote(StringDt theValue) {
|
||||||
|
myNote = theValue;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value for <b>note</b> (Text of alert)
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
* The textual component of the alert to display to the user
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public Alert setNote( String theString) {
|
||||||
|
myNote = new StringDt(theString);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,397 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
package ca.uhn.fhir.model.dstu.resource;
|
||||||
|
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import ca.uhn.fhir.model.api.BaseElement;
|
||||||
|
import ca.uhn.fhir.model.api.BaseResource;
|
||||||
|
import ca.uhn.fhir.model.api.IElement;
|
||||||
|
import ca.uhn.fhir.model.api.IResource;
|
||||||
|
import ca.uhn.fhir.model.api.IResourceBlock;
|
||||||
|
import ca.uhn.fhir.model.api.annotation.Block;
|
||||||
|
import ca.uhn.fhir.model.api.annotation.Child;
|
||||||
|
import ca.uhn.fhir.model.api.annotation.Description;
|
||||||
|
import ca.uhn.fhir.model.api.annotation.ResourceDef;
|
||||||
|
import ca.uhn.fhir.model.dstu.composite.CodingDt;
|
||||||
|
import ca.uhn.fhir.model.dstu.valueset.IssueSeverityEnum;
|
||||||
|
import ca.uhn.fhir.model.primitive.BoundCodeDt;
|
||||||
|
import ca.uhn.fhir.model.primitive.CodeDt;
|
||||||
|
import ca.uhn.fhir.model.primitive.StringDt;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* HAPI/FHIR <b>OperationOutcome</b> Resource
|
||||||
|
* (Information about the success/failure of an action)
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
* A collection of error, warning or information messages that result from a system action
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Requirements:</b>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
@ResourceDef(name="OperationOutcome", profile="http://hl7.org/fhir/profiles/OperationOutcome", id="operationoutcome")
|
||||||
|
public class OperationOutcome extends BaseResource implements IResource {
|
||||||
|
|
||||||
|
|
||||||
|
@Child(name="issue", order=0, min=1, max=Child.MAX_UNLIMITED)
|
||||||
|
@Description(
|
||||||
|
shortDefinition="A single issue associated with the action",
|
||||||
|
formalDefinition="An error, warning or information message that results from a system action"
|
||||||
|
)
|
||||||
|
private java.util.List<Issue> myIssue;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isEmpty() {
|
||||||
|
return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty( myIssue);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public java.util.List<IElement> getAllPopulatedChildElements() {
|
||||||
|
return getAllPopulatedChildElementsOfType(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
|
||||||
|
return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myIssue);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value(s) for <b>issue</b> (A single issue associated with the action).
|
||||||
|
* creating it if it does
|
||||||
|
* not exist. Will not return <code>null</code>.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
* An error, warning or information message that results from a system action
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public java.util.List<Issue> getIssue() {
|
||||||
|
if (myIssue == null) {
|
||||||
|
myIssue = new java.util.ArrayList<Issue>();
|
||||||
|
}
|
||||||
|
return myIssue;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value(s) for <b>issue</b> (A single issue associated with the action)
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
* An error, warning or information message that results from a system action
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public OperationOutcome setIssue(java.util.List<Issue> theValue) {
|
||||||
|
myIssue = theValue;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds and returns a new value for <b>issue</b> (A single issue associated with the action)
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
* An error, warning or information message that results from a system action
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public Issue addIssue() {
|
||||||
|
Issue newType = new Issue();
|
||||||
|
getIssue().add(newType);
|
||||||
|
return newType;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the first repetition for <b>issue</b> (A single issue associated with the action),
|
||||||
|
* creating it if it does not already exist.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
* An error, warning or information message that results from a system action
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public Issue getIssueFirstRep() {
|
||||||
|
if (getIssue().isEmpty()) {
|
||||||
|
return addIssue();
|
||||||
|
}
|
||||||
|
return getIssue().get(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Block class for child element: <b>OperationOutcome.issue</b> (A single issue associated with the action)
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
* An error, warning or information message that results from a system action
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
@Block(name="OperationOutcome.issue")
|
||||||
|
public static class Issue extends BaseElement implements IResourceBlock {
|
||||||
|
|
||||||
|
@Child(name="severity", type=CodeDt.class, order=0, min=1, max=1)
|
||||||
|
@Description(
|
||||||
|
shortDefinition="fatal | error | warning | information",
|
||||||
|
formalDefinition="Indicates whether the issue indicates a variation from successful processing"
|
||||||
|
)
|
||||||
|
private BoundCodeDt<IssueSeverityEnum> mySeverity;
|
||||||
|
|
||||||
|
@Child(name="type", type=CodingDt.class, order=1, min=0, max=1)
|
||||||
|
@Description(
|
||||||
|
shortDefinition="Error or warning code",
|
||||||
|
formalDefinition="A code indicating the type of error, warning or information message."
|
||||||
|
)
|
||||||
|
private CodingDt myType;
|
||||||
|
|
||||||
|
@Child(name="details", type=StringDt.class, order=2, min=0, max=1)
|
||||||
|
@Description(
|
||||||
|
shortDefinition="Additional description of the issue",
|
||||||
|
formalDefinition="Additional description of the issue"
|
||||||
|
)
|
||||||
|
private StringDt myDetails;
|
||||||
|
|
||||||
|
@Child(name="location", type=StringDt.class, order=3, min=0, max=Child.MAX_UNLIMITED)
|
||||||
|
@Description(
|
||||||
|
shortDefinition="XPath of element(s) related to issue",
|
||||||
|
formalDefinition="A simple XPath limited to element names, repetition indicators and the default child access that identifies one of the elements in the resource that caused this issue to be raised."
|
||||||
|
)
|
||||||
|
private java.util.List<StringDt> myLocation;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isEmpty() {
|
||||||
|
return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty( mySeverity, myType, myDetails, myLocation);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public java.util.List<IElement> getAllPopulatedChildElements() {
|
||||||
|
return getAllPopulatedChildElementsOfType(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
|
||||||
|
return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, mySeverity, myType, myDetails, myLocation);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value(s) for <b>severity</b> (fatal | error | warning | information).
|
||||||
|
* creating it if it does
|
||||||
|
* not exist. Will not return <code>null</code>.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
* Indicates whether the issue indicates a variation from successful processing
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public BoundCodeDt<IssueSeverityEnum> getSeverity() {
|
||||||
|
if (mySeverity == null) {
|
||||||
|
mySeverity = new BoundCodeDt<IssueSeverityEnum>(IssueSeverityEnum.VALUESET_BINDER);
|
||||||
|
}
|
||||||
|
return mySeverity;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value(s) for <b>severity</b> (fatal | error | warning | information)
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
* Indicates whether the issue indicates a variation from successful processing
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public Issue setSeverity(BoundCodeDt<IssueSeverityEnum> theValue) {
|
||||||
|
mySeverity = theValue;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value(s) for <b>severity</b> (fatal | error | warning | information)
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
* Indicates whether the issue indicates a variation from successful processing
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public Issue setSeverity(IssueSeverityEnum theValue) {
|
||||||
|
getSeverity().setValueAsEnum(theValue);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value(s) for <b>type</b> (Error or warning code).
|
||||||
|
* creating it if it does
|
||||||
|
* not exist. Will not return <code>null</code>.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
* A code indicating the type of error, warning or information message.
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public CodingDt getType() {
|
||||||
|
if (myType == null) {
|
||||||
|
myType = new CodingDt();
|
||||||
|
}
|
||||||
|
return myType;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value(s) for <b>type</b> (Error or warning code)
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
* A code indicating the type of error, warning or information message.
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public Issue setType(CodingDt theValue) {
|
||||||
|
myType = theValue;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value(s) for <b>details</b> (Additional description of the issue).
|
||||||
|
* creating it if it does
|
||||||
|
* not exist. Will not return <code>null</code>.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
* Additional description of the issue
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public StringDt getDetails() {
|
||||||
|
if (myDetails == null) {
|
||||||
|
myDetails = new StringDt();
|
||||||
|
}
|
||||||
|
return myDetails;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value(s) for <b>details</b> (Additional description of the issue)
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
* Additional description of the issue
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public Issue setDetails(StringDt theValue) {
|
||||||
|
myDetails = theValue;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value for <b>details</b> (Additional description of the issue)
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
* Additional description of the issue
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public Issue setDetails( String theString) {
|
||||||
|
myDetails = new StringDt(theString);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value(s) for <b>location</b> (XPath of element(s) related to issue).
|
||||||
|
* creating it if it does
|
||||||
|
* not exist. Will not return <code>null</code>.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
* A simple XPath limited to element names, repetition indicators and the default child access that identifies one of the elements in the resource that caused this issue to be raised.
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public java.util.List<StringDt> getLocation() {
|
||||||
|
if (myLocation == null) {
|
||||||
|
myLocation = new java.util.ArrayList<StringDt>();
|
||||||
|
}
|
||||||
|
return myLocation;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value(s) for <b>location</b> (XPath of element(s) related to issue)
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
* A simple XPath limited to element names, repetition indicators and the default child access that identifies one of the elements in the resource that caused this issue to be raised.
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public Issue setLocation(java.util.List<StringDt> theValue) {
|
||||||
|
myLocation = theValue;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds and returns a new value for <b>location</b> (XPath of element(s) related to issue)
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
* A simple XPath limited to element names, repetition indicators and the default child access that identifies one of the elements in the resource that caused this issue to be raised.
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public StringDt addLocation() {
|
||||||
|
StringDt newType = new StringDt();
|
||||||
|
getLocation().add(newType);
|
||||||
|
return newType;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the first repetition for <b>location</b> (XPath of element(s) related to issue),
|
||||||
|
* creating it if it does not already exist.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
* A simple XPath limited to element names, repetition indicators and the default child access that identifies one of the elements in the resource that caused this issue to be raised.
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public StringDt getLocationFirstRep() {
|
||||||
|
if (getLocation().isEmpty()) {
|
||||||
|
return addLocation();
|
||||||
|
}
|
||||||
|
return getLocation().get(0);
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Adds a new value for <b>location</b> (XPath of element(s) related to issue)
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
* A simple XPath limited to element names, repetition indicators and the default child access that identifies one of the elements in the resource that caused this issue to be raised.
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @return Returns a reference to this object, to allow for simple chaining.
|
||||||
|
*/
|
||||||
|
public Issue addLocation( String theString) {
|
||||||
|
if (myLocation == null) {
|
||||||
|
myLocation = new java.util.ArrayList<StringDt>();
|
||||||
|
}
|
||||||
|
myLocation.add(new StringDt(theString));
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -43,7 +43,12 @@ import ca.uhn.fhir.model.dstu.valueset.AnimalSpeciesEnum;
|
||||||
import ca.uhn.fhir.model.dstu.valueset.IdentifierUseEnum;
|
import ca.uhn.fhir.model.dstu.valueset.IdentifierUseEnum;
|
||||||
import ca.uhn.fhir.model.dstu.valueset.LinkTypeEnum;
|
import ca.uhn.fhir.model.dstu.valueset.LinkTypeEnum;
|
||||||
import ca.uhn.fhir.model.dstu.valueset.MaritalStatusCodesEnum;
|
import ca.uhn.fhir.model.dstu.valueset.MaritalStatusCodesEnum;
|
||||||
import ca.uhn.fhir.model.primitive.*;
|
import ca.uhn.fhir.model.primitive.BooleanDt;
|
||||||
|
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.DateTimeDt;
|
||||||
|
import ca.uhn.fhir.model.primitive.IntegerDt;
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -343,6 +348,7 @@ public class Patient extends BaseResource implements IResource {
|
||||||
formalDefinition="Whether this patient record is in active use"
|
formalDefinition="Whether this patient record is in active use"
|
||||||
)
|
)
|
||||||
private BooleanDt myActive;
|
private BooleanDt myActive;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean isEmpty() {
|
public boolean isEmpty() {
|
||||||
|
|
|
@ -0,0 +1,824 @@
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
package ca.uhn.fhir.model.dstu.resource;
|
||||||
|
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
import ca.uhn.fhir.model.api.BaseElement;
|
||||||
|
import ca.uhn.fhir.model.api.BaseResource;
|
||||||
|
import ca.uhn.fhir.model.api.ExtensionDt;
|
||||||
|
import ca.uhn.fhir.model.api.IElement;
|
||||||
|
import ca.uhn.fhir.model.api.IResource;
|
||||||
|
import ca.uhn.fhir.model.api.IResourceBlock;
|
||||||
|
import ca.uhn.fhir.model.api.annotation.Block;
|
||||||
|
import ca.uhn.fhir.model.api.annotation.Child;
|
||||||
|
import ca.uhn.fhir.model.api.annotation.Description;
|
||||||
|
import ca.uhn.fhir.model.api.annotation.ResourceDef;
|
||||||
|
import ca.uhn.fhir.model.dstu.composite.ResourceReferenceDt;
|
||||||
|
import ca.uhn.fhir.model.dstu.valueset.QueryOutcomeEnum;
|
||||||
|
import ca.uhn.fhir.model.primitive.BoundCodeDt;
|
||||||
|
import ca.uhn.fhir.model.primitive.CodeDt;
|
||||||
|
import ca.uhn.fhir.model.primitive.IntegerDt;
|
||||||
|
import ca.uhn.fhir.model.primitive.UriDt;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* HAPI/FHIR <b>Query</b> Resource
|
||||||
|
* (A description of a query with a set of parameters)
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Requirements:</b>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
@ResourceDef(name="Query", profile="http://hl7.org/fhir/profiles/Query", id="query")
|
||||||
|
public class Query extends BaseResource implements IResource {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Search parameter constant for <b>identifier</b>
|
||||||
|
* <p>
|
||||||
|
* Description: <b></b><br/>
|
||||||
|
* Type: <b>token</b><br/>
|
||||||
|
* Path: <b>Query.identifier</b><br/>
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public static final String SP_IDENTIFIER = "identifier";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Search parameter constant for <b>response</b>
|
||||||
|
* <p>
|
||||||
|
* Description: <b></b><br/>
|
||||||
|
* Type: <b>token</b><br/>
|
||||||
|
* Path: <b>Query.response.identifier</b><br/>
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public static final String SP_RESPONSE = "response";
|
||||||
|
|
||||||
|
|
||||||
|
@Child(name="identifier", type=UriDt.class, order=0, min=1, max=1)
|
||||||
|
@Description(
|
||||||
|
shortDefinition="Links query and its response(s)",
|
||||||
|
formalDefinition=""
|
||||||
|
)
|
||||||
|
private UriDt myIdentifier;
|
||||||
|
|
||||||
|
@Child(name="parameter", type=ExtensionDt.class, order=1, min=1, max=Child.MAX_UNLIMITED)
|
||||||
|
@Description(
|
||||||
|
shortDefinition="Set of query parameters with values",
|
||||||
|
formalDefinition=""
|
||||||
|
)
|
||||||
|
private java.util.List<ExtensionDt> myParameter;
|
||||||
|
|
||||||
|
@Child(name="response", order=2, min=0, max=1)
|
||||||
|
@Description(
|
||||||
|
shortDefinition="If this is a response to a query",
|
||||||
|
formalDefinition=""
|
||||||
|
)
|
||||||
|
private Response myResponse;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isEmpty() {
|
||||||
|
return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty( myIdentifier, myParameter, myResponse);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public java.util.List<IElement> getAllPopulatedChildElements() {
|
||||||
|
return getAllPopulatedChildElementsOfType(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
|
||||||
|
return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myIdentifier, myParameter, myResponse);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value(s) for <b>identifier</b> (Links query and its response(s)).
|
||||||
|
* creating it if it does
|
||||||
|
* not exist. Will not return <code>null</code>.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public UriDt getIdentifier() {
|
||||||
|
if (myIdentifier == null) {
|
||||||
|
myIdentifier = new UriDt();
|
||||||
|
}
|
||||||
|
return myIdentifier;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value(s) for <b>identifier</b> (Links query and its response(s))
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public Query setIdentifier(UriDt theValue) {
|
||||||
|
myIdentifier = theValue;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value for <b>identifier</b> (Links query and its response(s))
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public Query setIdentifier( String theUri) {
|
||||||
|
myIdentifier = new UriDt(theUri);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value(s) for <b>parameter</b> (Set of query parameters with values).
|
||||||
|
* creating it if it does
|
||||||
|
* not exist. Will not return <code>null</code>.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public java.util.List<ExtensionDt> getParameter() {
|
||||||
|
if (myParameter == null) {
|
||||||
|
myParameter = new java.util.ArrayList<ExtensionDt>();
|
||||||
|
}
|
||||||
|
return myParameter;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value(s) for <b>parameter</b> (Set of query parameters with values)
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public Query setParameter(java.util.List<ExtensionDt> theValue) {
|
||||||
|
myParameter = theValue;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds and returns a new value for <b>parameter</b> (Set of query parameters with values)
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public ExtensionDt addParameter() {
|
||||||
|
ExtensionDt newType = new ExtensionDt();
|
||||||
|
getParameter().add(newType);
|
||||||
|
return newType;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the first repetition for <b>parameter</b> (Set of query parameters with values),
|
||||||
|
* creating it if it does not already exist.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public ExtensionDt getParameterFirstRep() {
|
||||||
|
if (getParameter().isEmpty()) {
|
||||||
|
return addParameter();
|
||||||
|
}
|
||||||
|
return getParameter().get(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value(s) for <b>response</b> (If this is a response to a query).
|
||||||
|
* creating it if it does
|
||||||
|
* not exist. Will not return <code>null</code>.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public Response getResponse() {
|
||||||
|
if (myResponse == null) {
|
||||||
|
myResponse = new Response();
|
||||||
|
}
|
||||||
|
return myResponse;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value(s) for <b>response</b> (If this is a response to a query)
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public Query setResponse(Response theValue) {
|
||||||
|
myResponse = theValue;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Block class for child element: <b>Query.response</b> (If this is a response to a query)
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
@Block(name="Query.response")
|
||||||
|
public static class Response extends BaseElement implements IResourceBlock {
|
||||||
|
|
||||||
|
@Child(name="identifier", type=UriDt.class, order=0, min=1, max=1)
|
||||||
|
@Description(
|
||||||
|
shortDefinition="Links response to source query",
|
||||||
|
formalDefinition=""
|
||||||
|
)
|
||||||
|
private UriDt myIdentifier;
|
||||||
|
|
||||||
|
@Child(name="outcome", type=CodeDt.class, order=1, min=1, max=1)
|
||||||
|
@Description(
|
||||||
|
shortDefinition="ok | limited | refused | error",
|
||||||
|
formalDefinition="Outcome of processing the query"
|
||||||
|
)
|
||||||
|
private BoundCodeDt<QueryOutcomeEnum> myOutcome;
|
||||||
|
|
||||||
|
@Child(name="total", type=IntegerDt.class, order=2, min=0, max=1)
|
||||||
|
@Description(
|
||||||
|
shortDefinition="Total number of matching records",
|
||||||
|
formalDefinition=""
|
||||||
|
)
|
||||||
|
private IntegerDt myTotal;
|
||||||
|
|
||||||
|
@Child(name="parameter", type=ExtensionDt.class, order=3, min=0, max=Child.MAX_UNLIMITED)
|
||||||
|
@Description(
|
||||||
|
shortDefinition="Parameters server used",
|
||||||
|
formalDefinition=""
|
||||||
|
)
|
||||||
|
private java.util.List<ExtensionDt> myParameter;
|
||||||
|
|
||||||
|
@Child(name="first", type=ExtensionDt.class, order=4, min=0, max=Child.MAX_UNLIMITED)
|
||||||
|
@Description(
|
||||||
|
shortDefinition="To get first page (if paged)",
|
||||||
|
formalDefinition=""
|
||||||
|
)
|
||||||
|
private java.util.List<ExtensionDt> myFirst;
|
||||||
|
|
||||||
|
@Child(name="previous", type=ExtensionDt.class, order=5, min=0, max=Child.MAX_UNLIMITED)
|
||||||
|
@Description(
|
||||||
|
shortDefinition="To get previous page (if paged)",
|
||||||
|
formalDefinition=""
|
||||||
|
)
|
||||||
|
private java.util.List<ExtensionDt> myPrevious;
|
||||||
|
|
||||||
|
@Child(name="next", type=ExtensionDt.class, order=6, min=0, max=Child.MAX_UNLIMITED)
|
||||||
|
@Description(
|
||||||
|
shortDefinition="To get next page (if paged)",
|
||||||
|
formalDefinition=""
|
||||||
|
)
|
||||||
|
private java.util.List<ExtensionDt> myNext;
|
||||||
|
|
||||||
|
@Child(name="last", type=ExtensionDt.class, order=7, min=0, max=Child.MAX_UNLIMITED)
|
||||||
|
@Description(
|
||||||
|
shortDefinition="To get last page (if paged)",
|
||||||
|
formalDefinition=""
|
||||||
|
)
|
||||||
|
private java.util.List<ExtensionDt> myLast;
|
||||||
|
|
||||||
|
@Child(name="reference", order=8, min=0, max=Child.MAX_UNLIMITED, type={
|
||||||
|
IResource.class,
|
||||||
|
})
|
||||||
|
@Description(
|
||||||
|
shortDefinition="Resources that are the results of the search",
|
||||||
|
formalDefinition=""
|
||||||
|
)
|
||||||
|
private java.util.List<ResourceReferenceDt> myReference;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean isEmpty() {
|
||||||
|
return super.isBaseEmpty() && ca.uhn.fhir.util.ElementUtil.isEmpty( myIdentifier, myOutcome, myTotal, myParameter, myFirst, myPrevious, myNext, myLast, myReference);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public java.util.List<IElement> getAllPopulatedChildElements() {
|
||||||
|
return getAllPopulatedChildElementsOfType(null);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public <T extends IElement> List<T> getAllPopulatedChildElementsOfType(Class<T> theType) {
|
||||||
|
return ca.uhn.fhir.util.ElementUtil.allPopulatedChildElements(theType, myIdentifier, myOutcome, myTotal, myParameter, myFirst, myPrevious, myNext, myLast, myReference);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value(s) for <b>identifier</b> (Links response to source query).
|
||||||
|
* creating it if it does
|
||||||
|
* not exist. Will not return <code>null</code>.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public UriDt getIdentifier() {
|
||||||
|
if (myIdentifier == null) {
|
||||||
|
myIdentifier = new UriDt();
|
||||||
|
}
|
||||||
|
return myIdentifier;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value(s) for <b>identifier</b> (Links response to source query)
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public Response setIdentifier(UriDt theValue) {
|
||||||
|
myIdentifier = theValue;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value for <b>identifier</b> (Links response to source query)
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public Response setIdentifier( String theUri) {
|
||||||
|
myIdentifier = new UriDt(theUri);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value(s) for <b>outcome</b> (ok | limited | refused | error).
|
||||||
|
* creating it if it does
|
||||||
|
* not exist. Will not return <code>null</code>.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
* Outcome of processing the query
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public BoundCodeDt<QueryOutcomeEnum> getOutcome() {
|
||||||
|
if (myOutcome == null) {
|
||||||
|
myOutcome = new BoundCodeDt<QueryOutcomeEnum>(QueryOutcomeEnum.VALUESET_BINDER);
|
||||||
|
}
|
||||||
|
return myOutcome;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value(s) for <b>outcome</b> (ok | limited | refused | error)
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
* Outcome of processing the query
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public Response setOutcome(BoundCodeDt<QueryOutcomeEnum> theValue) {
|
||||||
|
myOutcome = theValue;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value(s) for <b>outcome</b> (ok | limited | refused | error)
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
* Outcome of processing the query
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public Response setOutcome(QueryOutcomeEnum theValue) {
|
||||||
|
getOutcome().setValueAsEnum(theValue);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value(s) for <b>total</b> (Total number of matching records).
|
||||||
|
* creating it if it does
|
||||||
|
* not exist. Will not return <code>null</code>.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public IntegerDt getTotal() {
|
||||||
|
if (myTotal == null) {
|
||||||
|
myTotal = new IntegerDt();
|
||||||
|
}
|
||||||
|
return myTotal;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value(s) for <b>total</b> (Total number of matching records)
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public Response setTotal(IntegerDt theValue) {
|
||||||
|
myTotal = theValue;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value for <b>total</b> (Total number of matching records)
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public Response setTotal( int theInteger) {
|
||||||
|
myTotal = new IntegerDt(theInteger);
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value(s) for <b>parameter</b> (Parameters server used).
|
||||||
|
* creating it if it does
|
||||||
|
* not exist. Will not return <code>null</code>.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public java.util.List<ExtensionDt> getParameter() {
|
||||||
|
if (myParameter == null) {
|
||||||
|
myParameter = new java.util.ArrayList<ExtensionDt>();
|
||||||
|
}
|
||||||
|
return myParameter;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value(s) for <b>parameter</b> (Parameters server used)
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public Response setParameter(java.util.List<ExtensionDt> theValue) {
|
||||||
|
myParameter = theValue;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds and returns a new value for <b>parameter</b> (Parameters server used)
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public ExtensionDt addParameter() {
|
||||||
|
ExtensionDt newType = new ExtensionDt();
|
||||||
|
getParameter().add(newType);
|
||||||
|
return newType;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the first repetition for <b>parameter</b> (Parameters server used),
|
||||||
|
* creating it if it does not already exist.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public ExtensionDt getParameterFirstRep() {
|
||||||
|
if (getParameter().isEmpty()) {
|
||||||
|
return addParameter();
|
||||||
|
}
|
||||||
|
return getParameter().get(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value(s) for <b>first</b> (To get first page (if paged)).
|
||||||
|
* creating it if it does
|
||||||
|
* not exist. Will not return <code>null</code>.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public java.util.List<ExtensionDt> getFirst() {
|
||||||
|
if (myFirst == null) {
|
||||||
|
myFirst = new java.util.ArrayList<ExtensionDt>();
|
||||||
|
}
|
||||||
|
return myFirst;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value(s) for <b>first</b> (To get first page (if paged))
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public Response setFirst(java.util.List<ExtensionDt> theValue) {
|
||||||
|
myFirst = theValue;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds and returns a new value for <b>first</b> (To get first page (if paged))
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public ExtensionDt addFirst() {
|
||||||
|
ExtensionDt newType = new ExtensionDt();
|
||||||
|
getFirst().add(newType);
|
||||||
|
return newType;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the first repetition for <b>first</b> (To get first page (if paged)),
|
||||||
|
* creating it if it does not already exist.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public ExtensionDt getFirstFirstRep() {
|
||||||
|
if (getFirst().isEmpty()) {
|
||||||
|
return addFirst();
|
||||||
|
}
|
||||||
|
return getFirst().get(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value(s) for <b>previous</b> (To get previous page (if paged)).
|
||||||
|
* creating it if it does
|
||||||
|
* not exist. Will not return <code>null</code>.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public java.util.List<ExtensionDt> getPrevious() {
|
||||||
|
if (myPrevious == null) {
|
||||||
|
myPrevious = new java.util.ArrayList<ExtensionDt>();
|
||||||
|
}
|
||||||
|
return myPrevious;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value(s) for <b>previous</b> (To get previous page (if paged))
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public Response setPrevious(java.util.List<ExtensionDt> theValue) {
|
||||||
|
myPrevious = theValue;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds and returns a new value for <b>previous</b> (To get previous page (if paged))
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public ExtensionDt addPrevious() {
|
||||||
|
ExtensionDt newType = new ExtensionDt();
|
||||||
|
getPrevious().add(newType);
|
||||||
|
return newType;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the first repetition for <b>previous</b> (To get previous page (if paged)),
|
||||||
|
* creating it if it does not already exist.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public ExtensionDt getPreviousFirstRep() {
|
||||||
|
if (getPrevious().isEmpty()) {
|
||||||
|
return addPrevious();
|
||||||
|
}
|
||||||
|
return getPrevious().get(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value(s) for <b>next</b> (To get next page (if paged)).
|
||||||
|
* creating it if it does
|
||||||
|
* not exist. Will not return <code>null</code>.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public java.util.List<ExtensionDt> getNext() {
|
||||||
|
if (myNext == null) {
|
||||||
|
myNext = new java.util.ArrayList<ExtensionDt>();
|
||||||
|
}
|
||||||
|
return myNext;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value(s) for <b>next</b> (To get next page (if paged))
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public Response setNext(java.util.List<ExtensionDt> theValue) {
|
||||||
|
myNext = theValue;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds and returns a new value for <b>next</b> (To get next page (if paged))
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public ExtensionDt addNext() {
|
||||||
|
ExtensionDt newType = new ExtensionDt();
|
||||||
|
getNext().add(newType);
|
||||||
|
return newType;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the first repetition for <b>next</b> (To get next page (if paged)),
|
||||||
|
* creating it if it does not already exist.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public ExtensionDt getNextFirstRep() {
|
||||||
|
if (getNext().isEmpty()) {
|
||||||
|
return addNext();
|
||||||
|
}
|
||||||
|
return getNext().get(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value(s) for <b>last</b> (To get last page (if paged)).
|
||||||
|
* creating it if it does
|
||||||
|
* not exist. Will not return <code>null</code>.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public java.util.List<ExtensionDt> getLast() {
|
||||||
|
if (myLast == null) {
|
||||||
|
myLast = new java.util.ArrayList<ExtensionDt>();
|
||||||
|
}
|
||||||
|
return myLast;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value(s) for <b>last</b> (To get last page (if paged))
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public Response setLast(java.util.List<ExtensionDt> theValue) {
|
||||||
|
myLast = theValue;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds and returns a new value for <b>last</b> (To get last page (if paged))
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public ExtensionDt addLast() {
|
||||||
|
ExtensionDt newType = new ExtensionDt();
|
||||||
|
getLast().add(newType);
|
||||||
|
return newType;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the first repetition for <b>last</b> (To get last page (if paged)),
|
||||||
|
* creating it if it does not already exist.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public ExtensionDt getLastFirstRep() {
|
||||||
|
if (getLast().isEmpty()) {
|
||||||
|
return addLast();
|
||||||
|
}
|
||||||
|
return getLast().get(0);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Gets the value(s) for <b>reference</b> (Resources that are the results of the search).
|
||||||
|
* creating it if it does
|
||||||
|
* not exist. Will not return <code>null</code>.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public java.util.List<ResourceReferenceDt> getReference() {
|
||||||
|
if (myReference == null) {
|
||||||
|
myReference = new java.util.ArrayList<ResourceReferenceDt>();
|
||||||
|
}
|
||||||
|
return myReference;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the value(s) for <b>reference</b> (Resources that are the results of the search)
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public Response setReference(java.util.List<ResourceReferenceDt> theValue) {
|
||||||
|
myReference = theValue;
|
||||||
|
return this;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Adds and returns a new value for <b>reference</b> (Resources that are the results of the search)
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* <b>Definition:</b>
|
||||||
|
*
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public ResourceReferenceDt addReference() {
|
||||||
|
ResourceReferenceDt newType = new ResourceReferenceDt();
|
||||||
|
getReference().add(newType);
|
||||||
|
return newType;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,124 @@
|
||||||
|
|
||||||
|
package ca.uhn.fhir.model.dstu.valueset;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import ca.uhn.fhir.model.api.IValueSetEnumBinder;
|
||||||
|
|
||||||
|
public enum AlertStatusEnum {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Code Value: <b>active</b>
|
||||||
|
*
|
||||||
|
* A current alert that should be displayed to a user. A system may use the category to determine which roles should view the alert.
|
||||||
|
*/
|
||||||
|
ACTIVE("active", "http://hl7.org/fhir/alert-status"),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Code Value: <b>inactive</b>
|
||||||
|
*
|
||||||
|
* The alert does not need to be displayed any more.
|
||||||
|
*/
|
||||||
|
INACTIVE("inactive", "http://hl7.org/fhir/alert-status"),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Code Value: <b>entered in error</b>
|
||||||
|
*
|
||||||
|
* The alert was added in error, and should no longer be displayed.
|
||||||
|
*/
|
||||||
|
ENTERED_IN_ERROR("entered in error", "http://hl7.org/fhir/alert-status"),
|
||||||
|
|
||||||
|
;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Identifier for this Value Set:
|
||||||
|
* http://hl7.org/fhir/vs/alert-status
|
||||||
|
*/
|
||||||
|
public static final String VALUESET_IDENTIFIER = "http://hl7.org/fhir/vs/alert-status";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Name for this Value Set:
|
||||||
|
* AlertStatus
|
||||||
|
*/
|
||||||
|
public static final String VALUESET_NAME = "AlertStatus";
|
||||||
|
|
||||||
|
private static Map<String, AlertStatusEnum> CODE_TO_ENUM = new HashMap<String, AlertStatusEnum>();
|
||||||
|
private static Map<String, Map<String, AlertStatusEnum>> SYSTEM_TO_CODE_TO_ENUM = new HashMap<String, Map<String, AlertStatusEnum>>();
|
||||||
|
|
||||||
|
private final String myCode;
|
||||||
|
private final String mySystem;
|
||||||
|
|
||||||
|
static {
|
||||||
|
for (AlertStatusEnum next : AlertStatusEnum.values()) {
|
||||||
|
CODE_TO_ENUM.put(next.getCode(), next);
|
||||||
|
|
||||||
|
if (!SYSTEM_TO_CODE_TO_ENUM.containsKey(next.getSystem())) {
|
||||||
|
SYSTEM_TO_CODE_TO_ENUM.put(next.getSystem(), new HashMap<String, AlertStatusEnum>());
|
||||||
|
}
|
||||||
|
SYSTEM_TO_CODE_TO_ENUM.get(next.getSystem()).put(next.getCode(), next);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the code associated with this enumerated value
|
||||||
|
*/
|
||||||
|
public String getCode() {
|
||||||
|
return myCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the code system associated with this enumerated value
|
||||||
|
*/
|
||||||
|
public String getSystem() {
|
||||||
|
return mySystem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the enumerated value associated with this code
|
||||||
|
*/
|
||||||
|
public AlertStatusEnum forCode(String theCode) {
|
||||||
|
AlertStatusEnum retVal = CODE_TO_ENUM.get(theCode);
|
||||||
|
return retVal;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts codes to their respective enumerated values
|
||||||
|
*/
|
||||||
|
public static final IValueSetEnumBinder<AlertStatusEnum> VALUESET_BINDER = new IValueSetEnumBinder<AlertStatusEnum>() {
|
||||||
|
@Override
|
||||||
|
public String toCodeString(AlertStatusEnum theEnum) {
|
||||||
|
return theEnum.getCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toSystemString(AlertStatusEnum theEnum) {
|
||||||
|
return theEnum.getSystem();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AlertStatusEnum fromCodeString(String theCodeString) {
|
||||||
|
return CODE_TO_ENUM.get(theCodeString);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public AlertStatusEnum fromCodeString(String theCodeString, String theSystemString) {
|
||||||
|
Map<String, AlertStatusEnum> map = SYSTEM_TO_CODE_TO_ENUM.get(theSystemString);
|
||||||
|
if (map == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return map.get(theCodeString);
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor
|
||||||
|
*/
|
||||||
|
AlertStatusEnum(String theCode, String theSystem) {
|
||||||
|
myCode = theCode;
|
||||||
|
mySystem = theSystem;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,131 @@
|
||||||
|
|
||||||
|
package ca.uhn.fhir.model.dstu.valueset;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import ca.uhn.fhir.model.api.IValueSetEnumBinder;
|
||||||
|
|
||||||
|
public enum IssueSeverityEnum {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Code Value: <b>fatal</b>
|
||||||
|
*
|
||||||
|
* The issue caused the action to fail, and no further checking could be performed.
|
||||||
|
*/
|
||||||
|
FATAL("fatal", "http://hl7.org/fhir/issue-severity"),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Code Value: <b>error</b>
|
||||||
|
*
|
||||||
|
* The issue is sufficiently important to cause the action to fail.
|
||||||
|
*/
|
||||||
|
ERROR("error", "http://hl7.org/fhir/issue-severity"),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Code Value: <b>warning</b>
|
||||||
|
*
|
||||||
|
* The issue is not important enough to cause the action to fail, but may cause it to be performed suboptimally or in a way that is not as desired.
|
||||||
|
*/
|
||||||
|
WARNING("warning", "http://hl7.org/fhir/issue-severity"),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Code Value: <b>information</b>
|
||||||
|
*
|
||||||
|
* The issue has no relation to the degree of success of the action.
|
||||||
|
*/
|
||||||
|
INFORMATION("information", "http://hl7.org/fhir/issue-severity"),
|
||||||
|
|
||||||
|
;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Identifier for this Value Set:
|
||||||
|
* http://hl7.org/fhir/vs/issue-severity
|
||||||
|
*/
|
||||||
|
public static final String VALUESET_IDENTIFIER = "http://hl7.org/fhir/vs/issue-severity";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Name for this Value Set:
|
||||||
|
* IssueSeverity
|
||||||
|
*/
|
||||||
|
public static final String VALUESET_NAME = "IssueSeverity";
|
||||||
|
|
||||||
|
private static Map<String, IssueSeverityEnum> CODE_TO_ENUM = new HashMap<String, IssueSeverityEnum>();
|
||||||
|
private static Map<String, Map<String, IssueSeverityEnum>> SYSTEM_TO_CODE_TO_ENUM = new HashMap<String, Map<String, IssueSeverityEnum>>();
|
||||||
|
|
||||||
|
private final String myCode;
|
||||||
|
private final String mySystem;
|
||||||
|
|
||||||
|
static {
|
||||||
|
for (IssueSeverityEnum next : IssueSeverityEnum.values()) {
|
||||||
|
CODE_TO_ENUM.put(next.getCode(), next);
|
||||||
|
|
||||||
|
if (!SYSTEM_TO_CODE_TO_ENUM.containsKey(next.getSystem())) {
|
||||||
|
SYSTEM_TO_CODE_TO_ENUM.put(next.getSystem(), new HashMap<String, IssueSeverityEnum>());
|
||||||
|
}
|
||||||
|
SYSTEM_TO_CODE_TO_ENUM.get(next.getSystem()).put(next.getCode(), next);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the code associated with this enumerated value
|
||||||
|
*/
|
||||||
|
public String getCode() {
|
||||||
|
return myCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the code system associated with this enumerated value
|
||||||
|
*/
|
||||||
|
public String getSystem() {
|
||||||
|
return mySystem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the enumerated value associated with this code
|
||||||
|
*/
|
||||||
|
public IssueSeverityEnum forCode(String theCode) {
|
||||||
|
IssueSeverityEnum retVal = CODE_TO_ENUM.get(theCode);
|
||||||
|
return retVal;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts codes to their respective enumerated values
|
||||||
|
*/
|
||||||
|
public static final IValueSetEnumBinder<IssueSeverityEnum> VALUESET_BINDER = new IValueSetEnumBinder<IssueSeverityEnum>() {
|
||||||
|
@Override
|
||||||
|
public String toCodeString(IssueSeverityEnum theEnum) {
|
||||||
|
return theEnum.getCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toSystemString(IssueSeverityEnum theEnum) {
|
||||||
|
return theEnum.getSystem();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IssueSeverityEnum fromCodeString(String theCodeString) {
|
||||||
|
return CODE_TO_ENUM.get(theCodeString);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IssueSeverityEnum fromCodeString(String theCodeString, String theSystemString) {
|
||||||
|
Map<String, IssueSeverityEnum> map = SYSTEM_TO_CODE_TO_ENUM.get(theSystemString);
|
||||||
|
if (map == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return map.get(theCodeString);
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor
|
||||||
|
*/
|
||||||
|
IssueSeverityEnum(String theCode, String theSystem) {
|
||||||
|
myCode = theCode;
|
||||||
|
mySystem = theSystem;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,131 @@
|
||||||
|
|
||||||
|
package ca.uhn.fhir.model.dstu.valueset;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import ca.uhn.fhir.model.api.IValueSetEnumBinder;
|
||||||
|
|
||||||
|
public enum IssueTypeEnum {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Code Value: <b>invalid</b>
|
||||||
|
*
|
||||||
|
* Content invalid against Specification or Profile.
|
||||||
|
*/
|
||||||
|
INVALID("invalid", "http://hl7.org/fhir/issue-type"),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Code Value: <b>security</b>
|
||||||
|
*
|
||||||
|
* authorization/permissions issue.
|
||||||
|
*/
|
||||||
|
SECURITY("security", "http://hl7.org/fhir/issue-type"),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Code Value: <b>processing</b>
|
||||||
|
*
|
||||||
|
* processing issues.
|
||||||
|
*/
|
||||||
|
PROCESSING("processing", "http://hl7.org/fhir/issue-type"),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Code Value: <b>transient</b>
|
||||||
|
*
|
||||||
|
* transient processing issues.
|
||||||
|
*/
|
||||||
|
TRANSIENT("transient", "http://hl7.org/fhir/issue-type"),
|
||||||
|
|
||||||
|
;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Identifier for this Value Set:
|
||||||
|
* http://hl7.org/fhir/vs/issue-type
|
||||||
|
*/
|
||||||
|
public static final String VALUESET_IDENTIFIER = "http://hl7.org/fhir/vs/issue-type";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Name for this Value Set:
|
||||||
|
* IssueType
|
||||||
|
*/
|
||||||
|
public static final String VALUESET_NAME = "IssueType";
|
||||||
|
|
||||||
|
private static Map<String, IssueTypeEnum> CODE_TO_ENUM = new HashMap<String, IssueTypeEnum>();
|
||||||
|
private static Map<String, Map<String, IssueTypeEnum>> SYSTEM_TO_CODE_TO_ENUM = new HashMap<String, Map<String, IssueTypeEnum>>();
|
||||||
|
|
||||||
|
private final String myCode;
|
||||||
|
private final String mySystem;
|
||||||
|
|
||||||
|
static {
|
||||||
|
for (IssueTypeEnum next : IssueTypeEnum.values()) {
|
||||||
|
CODE_TO_ENUM.put(next.getCode(), next);
|
||||||
|
|
||||||
|
if (!SYSTEM_TO_CODE_TO_ENUM.containsKey(next.getSystem())) {
|
||||||
|
SYSTEM_TO_CODE_TO_ENUM.put(next.getSystem(), new HashMap<String, IssueTypeEnum>());
|
||||||
|
}
|
||||||
|
SYSTEM_TO_CODE_TO_ENUM.get(next.getSystem()).put(next.getCode(), next);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the code associated with this enumerated value
|
||||||
|
*/
|
||||||
|
public String getCode() {
|
||||||
|
return myCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the code system associated with this enumerated value
|
||||||
|
*/
|
||||||
|
public String getSystem() {
|
||||||
|
return mySystem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the enumerated value associated with this code
|
||||||
|
*/
|
||||||
|
public IssueTypeEnum forCode(String theCode) {
|
||||||
|
IssueTypeEnum retVal = CODE_TO_ENUM.get(theCode);
|
||||||
|
return retVal;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts codes to their respective enumerated values
|
||||||
|
*/
|
||||||
|
public static final IValueSetEnumBinder<IssueTypeEnum> VALUESET_BINDER = new IValueSetEnumBinder<IssueTypeEnum>() {
|
||||||
|
@Override
|
||||||
|
public String toCodeString(IssueTypeEnum theEnum) {
|
||||||
|
return theEnum.getCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toSystemString(IssueTypeEnum theEnum) {
|
||||||
|
return theEnum.getSystem();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IssueTypeEnum fromCodeString(String theCodeString) {
|
||||||
|
return CODE_TO_ENUM.get(theCodeString);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IssueTypeEnum fromCodeString(String theCodeString, String theSystemString) {
|
||||||
|
Map<String, IssueTypeEnum> map = SYSTEM_TO_CODE_TO_ENUM.get(theSystemString);
|
||||||
|
if (map == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return map.get(theCodeString);
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor
|
||||||
|
*/
|
||||||
|
IssueTypeEnum(String theCode, String theSystem) {
|
||||||
|
myCode = theCode;
|
||||||
|
mySystem = theSystem;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,131 @@
|
||||||
|
|
||||||
|
package ca.uhn.fhir.model.dstu.valueset;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import ca.uhn.fhir.model.api.IValueSetEnumBinder;
|
||||||
|
|
||||||
|
public enum QueryOutcomeEnum {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Code Value: <b>ok</b>
|
||||||
|
*
|
||||||
|
* The query was processed successfully.
|
||||||
|
*/
|
||||||
|
OK("ok", "http://hl7.org/fhir/query-outcome"),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Code Value: <b>limited</b>
|
||||||
|
*
|
||||||
|
* The query was processed successfully, but some additional limitations were added.
|
||||||
|
*/
|
||||||
|
LIMITED("limited", "http://hl7.org/fhir/query-outcome"),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Code Value: <b>refused</b>
|
||||||
|
*
|
||||||
|
* The server refused to process the query.
|
||||||
|
*/
|
||||||
|
REFUSED("refused", "http://hl7.org/fhir/query-outcome"),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Code Value: <b>error</b>
|
||||||
|
*
|
||||||
|
* The server tried to process the query, but some error occurred.
|
||||||
|
*/
|
||||||
|
ERROR("error", "http://hl7.org/fhir/query-outcome"),
|
||||||
|
|
||||||
|
;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Identifier for this Value Set:
|
||||||
|
* http://hl7.org/fhir/vs/query-outcome
|
||||||
|
*/
|
||||||
|
public static final String VALUESET_IDENTIFIER = "http://hl7.org/fhir/vs/query-outcome";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Name for this Value Set:
|
||||||
|
* QueryOutcome
|
||||||
|
*/
|
||||||
|
public static final String VALUESET_NAME = "QueryOutcome";
|
||||||
|
|
||||||
|
private static Map<String, QueryOutcomeEnum> CODE_TO_ENUM = new HashMap<String, QueryOutcomeEnum>();
|
||||||
|
private static Map<String, Map<String, QueryOutcomeEnum>> SYSTEM_TO_CODE_TO_ENUM = new HashMap<String, Map<String, QueryOutcomeEnum>>();
|
||||||
|
|
||||||
|
private final String myCode;
|
||||||
|
private final String mySystem;
|
||||||
|
|
||||||
|
static {
|
||||||
|
for (QueryOutcomeEnum next : QueryOutcomeEnum.values()) {
|
||||||
|
CODE_TO_ENUM.put(next.getCode(), next);
|
||||||
|
|
||||||
|
if (!SYSTEM_TO_CODE_TO_ENUM.containsKey(next.getSystem())) {
|
||||||
|
SYSTEM_TO_CODE_TO_ENUM.put(next.getSystem(), new HashMap<String, QueryOutcomeEnum>());
|
||||||
|
}
|
||||||
|
SYSTEM_TO_CODE_TO_ENUM.get(next.getSystem()).put(next.getCode(), next);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the code associated with this enumerated value
|
||||||
|
*/
|
||||||
|
public String getCode() {
|
||||||
|
return myCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the code system associated with this enumerated value
|
||||||
|
*/
|
||||||
|
public String getSystem() {
|
||||||
|
return mySystem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the enumerated value associated with this code
|
||||||
|
*/
|
||||||
|
public QueryOutcomeEnum forCode(String theCode) {
|
||||||
|
QueryOutcomeEnum retVal = CODE_TO_ENUM.get(theCode);
|
||||||
|
return retVal;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts codes to their respective enumerated values
|
||||||
|
*/
|
||||||
|
public static final IValueSetEnumBinder<QueryOutcomeEnum> VALUESET_BINDER = new IValueSetEnumBinder<QueryOutcomeEnum>() {
|
||||||
|
@Override
|
||||||
|
public String toCodeString(QueryOutcomeEnum theEnum) {
|
||||||
|
return theEnum.getCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toSystemString(QueryOutcomeEnum theEnum) {
|
||||||
|
return theEnum.getSystem();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public QueryOutcomeEnum fromCodeString(String theCodeString) {
|
||||||
|
return CODE_TO_ENUM.get(theCodeString);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public QueryOutcomeEnum fromCodeString(String theCodeString, String theSystemString) {
|
||||||
|
Map<String, QueryOutcomeEnum> map = SYSTEM_TO_CODE_TO_ENUM.get(theSystemString);
|
||||||
|
if (map == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return map.get(theCodeString);
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor
|
||||||
|
*/
|
||||||
|
QueryOutcomeEnum(String theCode, String theSystem) {
|
||||||
|
myCode = theCode;
|
||||||
|
mySystem = theSystem;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,133 @@
|
||||||
|
|
||||||
|
package ca.uhn.fhir.model.dstu.valueset;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import ca.uhn.fhir.model.api.IValueSetEnumBinder;
|
||||||
|
|
||||||
|
public enum QuestionnaireGroupNameEnum {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display: <b>Hair Color</b><br/>
|
||||||
|
* Code Value: <b>B.001</b>
|
||||||
|
*/
|
||||||
|
HAIR_COLOR("B.001", "http://hl7.org/fhir/questionnaire-group-name"),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display: <b>Vision</b><br/>
|
||||||
|
* Code Value: <b>B.002</b>
|
||||||
|
*/
|
||||||
|
VISION("B.002", "http://hl7.org/fhir/questionnaire-group-name"),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display: <b>Sleepwalker</b><br/>
|
||||||
|
* Code Value: <b>B.003</b>
|
||||||
|
*/
|
||||||
|
SLEEPWALKER("B.003", "http://hl7.org/fhir/questionnaire-group-name"),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display: <b>Tooth extraction</b><br/>
|
||||||
|
* Code Value: <b>B.004</b>
|
||||||
|
*/
|
||||||
|
TOOTH_EXTRACTION("B.004", "http://hl7.org/fhir/questionnaire-group-name"),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display: <b>Stutter</b><br/>
|
||||||
|
* Code Value: <b>B.005</b>
|
||||||
|
*/
|
||||||
|
STUTTER("B.005", "http://hl7.org/fhir/questionnaire-group-name"),
|
||||||
|
|
||||||
|
;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Identifier for this Value Set:
|
||||||
|
* http://hl7.org/fhir/vs/questionnaire-group-name
|
||||||
|
*/
|
||||||
|
public static final String VALUESET_IDENTIFIER = "http://hl7.org/fhir/vs/questionnaire-group-name";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Name for this Value Set:
|
||||||
|
* QuestionnaireGroupName
|
||||||
|
*/
|
||||||
|
public static final String VALUESET_NAME = "QuestionnaireGroupName";
|
||||||
|
|
||||||
|
private static Map<String, QuestionnaireGroupNameEnum> CODE_TO_ENUM = new HashMap<String, QuestionnaireGroupNameEnum>();
|
||||||
|
private static Map<String, Map<String, QuestionnaireGroupNameEnum>> SYSTEM_TO_CODE_TO_ENUM = new HashMap<String, Map<String, QuestionnaireGroupNameEnum>>();
|
||||||
|
|
||||||
|
private final String myCode;
|
||||||
|
private final String mySystem;
|
||||||
|
|
||||||
|
static {
|
||||||
|
for (QuestionnaireGroupNameEnum next : QuestionnaireGroupNameEnum.values()) {
|
||||||
|
CODE_TO_ENUM.put(next.getCode(), next);
|
||||||
|
|
||||||
|
if (!SYSTEM_TO_CODE_TO_ENUM.containsKey(next.getSystem())) {
|
||||||
|
SYSTEM_TO_CODE_TO_ENUM.put(next.getSystem(), new HashMap<String, QuestionnaireGroupNameEnum>());
|
||||||
|
}
|
||||||
|
SYSTEM_TO_CODE_TO_ENUM.get(next.getSystem()).put(next.getCode(), next);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the code associated with this enumerated value
|
||||||
|
*/
|
||||||
|
public String getCode() {
|
||||||
|
return myCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the code system associated with this enumerated value
|
||||||
|
*/
|
||||||
|
public String getSystem() {
|
||||||
|
return mySystem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the enumerated value associated with this code
|
||||||
|
*/
|
||||||
|
public QuestionnaireGroupNameEnum forCode(String theCode) {
|
||||||
|
QuestionnaireGroupNameEnum retVal = CODE_TO_ENUM.get(theCode);
|
||||||
|
return retVal;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts codes to their respective enumerated values
|
||||||
|
*/
|
||||||
|
public static final IValueSetEnumBinder<QuestionnaireGroupNameEnum> VALUESET_BINDER = new IValueSetEnumBinder<QuestionnaireGroupNameEnum>() {
|
||||||
|
@Override
|
||||||
|
public String toCodeString(QuestionnaireGroupNameEnum theEnum) {
|
||||||
|
return theEnum.getCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toSystemString(QuestionnaireGroupNameEnum theEnum) {
|
||||||
|
return theEnum.getSystem();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public QuestionnaireGroupNameEnum fromCodeString(String theCodeString) {
|
||||||
|
return CODE_TO_ENUM.get(theCodeString);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public QuestionnaireGroupNameEnum fromCodeString(String theCodeString, String theSystemString) {
|
||||||
|
Map<String, QuestionnaireGroupNameEnum> map = SYSTEM_TO_CODE_TO_ENUM.get(theSystemString);
|
||||||
|
if (map == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return map.get(theCodeString);
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor
|
||||||
|
*/
|
||||||
|
QuestionnaireGroupNameEnum(String theCode, String theSystem) {
|
||||||
|
myCode = theCode;
|
||||||
|
mySystem = theSystem;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,121 @@
|
||||||
|
|
||||||
|
package ca.uhn.fhir.model.dstu.valueset;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import ca.uhn.fhir.model.api.IValueSetEnumBinder;
|
||||||
|
|
||||||
|
public enum QuestionnaireNameEnum {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display: <b>Cancer Treatment Quality Questionnaire 2012</b><br/>
|
||||||
|
* Code Value: <b>CTQQ-2012</b>
|
||||||
|
*/
|
||||||
|
CANCER_TREATMENT_QUALITY_QUESTIONNAIRE_2012("CTQQ-2012", "http://hl7.org/fhir/questionnaire-name"),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display: <b>Pre-admission standard Form A</b><br/>
|
||||||
|
* Code Value: <b>PA.form.A</b>
|
||||||
|
*/
|
||||||
|
PRE_ADMISSION_STANDARD_FORM_A("PA.form.A", "http://hl7.org/fhir/questionnaire-name"),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display: <b>Brazelton Neonatal Assessment Scale</b><br/>
|
||||||
|
* Code Value: <b>BNAS</b>
|
||||||
|
*/
|
||||||
|
BRAZELTON_NEONATAL_ASSESSMENT_SCALE("BNAS", "http://hl7.org/fhir/questionnaire-name"),
|
||||||
|
|
||||||
|
;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Identifier for this Value Set:
|
||||||
|
* http://hl7.org/fhir/vs/questionnaire-name
|
||||||
|
*/
|
||||||
|
public static final String VALUESET_IDENTIFIER = "http://hl7.org/fhir/vs/questionnaire-name";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Name for this Value Set:
|
||||||
|
* QuestionnaireName
|
||||||
|
*/
|
||||||
|
public static final String VALUESET_NAME = "QuestionnaireName";
|
||||||
|
|
||||||
|
private static Map<String, QuestionnaireNameEnum> CODE_TO_ENUM = new HashMap<String, QuestionnaireNameEnum>();
|
||||||
|
private static Map<String, Map<String, QuestionnaireNameEnum>> SYSTEM_TO_CODE_TO_ENUM = new HashMap<String, Map<String, QuestionnaireNameEnum>>();
|
||||||
|
|
||||||
|
private final String myCode;
|
||||||
|
private final String mySystem;
|
||||||
|
|
||||||
|
static {
|
||||||
|
for (QuestionnaireNameEnum next : QuestionnaireNameEnum.values()) {
|
||||||
|
CODE_TO_ENUM.put(next.getCode(), next);
|
||||||
|
|
||||||
|
if (!SYSTEM_TO_CODE_TO_ENUM.containsKey(next.getSystem())) {
|
||||||
|
SYSTEM_TO_CODE_TO_ENUM.put(next.getSystem(), new HashMap<String, QuestionnaireNameEnum>());
|
||||||
|
}
|
||||||
|
SYSTEM_TO_CODE_TO_ENUM.get(next.getSystem()).put(next.getCode(), next);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the code associated with this enumerated value
|
||||||
|
*/
|
||||||
|
public String getCode() {
|
||||||
|
return myCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the code system associated with this enumerated value
|
||||||
|
*/
|
||||||
|
public String getSystem() {
|
||||||
|
return mySystem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the enumerated value associated with this code
|
||||||
|
*/
|
||||||
|
public QuestionnaireNameEnum forCode(String theCode) {
|
||||||
|
QuestionnaireNameEnum retVal = CODE_TO_ENUM.get(theCode);
|
||||||
|
return retVal;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts codes to their respective enumerated values
|
||||||
|
*/
|
||||||
|
public static final IValueSetEnumBinder<QuestionnaireNameEnum> VALUESET_BINDER = new IValueSetEnumBinder<QuestionnaireNameEnum>() {
|
||||||
|
@Override
|
||||||
|
public String toCodeString(QuestionnaireNameEnum theEnum) {
|
||||||
|
return theEnum.getCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toSystemString(QuestionnaireNameEnum theEnum) {
|
||||||
|
return theEnum.getSystem();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public QuestionnaireNameEnum fromCodeString(String theCodeString) {
|
||||||
|
return CODE_TO_ENUM.get(theCodeString);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public QuestionnaireNameEnum fromCodeString(String theCodeString, String theSystemString) {
|
||||||
|
Map<String, QuestionnaireNameEnum> map = SYSTEM_TO_CODE_TO_ENUM.get(theSystemString);
|
||||||
|
if (map == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return map.get(theCodeString);
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor
|
||||||
|
*/
|
||||||
|
QuestionnaireNameEnum(String theCode, String theSystem) {
|
||||||
|
myCode = theCode;
|
||||||
|
mySystem = theSystem;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,151 @@
|
||||||
|
|
||||||
|
package ca.uhn.fhir.model.dstu.valueset;
|
||||||
|
|
||||||
|
import java.util.HashMap;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
import ca.uhn.fhir.model.api.IValueSetEnumBinder;
|
||||||
|
|
||||||
|
public enum QuestionnaireStatusEnum {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display: <b>draft</b><br/>
|
||||||
|
* Code Value: <b>draft</b>
|
||||||
|
*
|
||||||
|
* This Questionnaire is used as a template but the template is not ready for use or publication.
|
||||||
|
*/
|
||||||
|
DRAFT("draft", "http://hl7.org/fhir/questionnaire-status"),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display: <b>published</b><br/>
|
||||||
|
* Code Value: <b>published</b>
|
||||||
|
*
|
||||||
|
* This Questionnaire is used as a template, is published and ready for use.
|
||||||
|
*/
|
||||||
|
PUBLISHED("published", "http://hl7.org/fhir/questionnaire-status"),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display: <b>retired</b><br/>
|
||||||
|
* Code Value: <b>retired</b>
|
||||||
|
*
|
||||||
|
* This Questionnaire is used as a template but should no longer be used for new Questionnaires.
|
||||||
|
*/
|
||||||
|
RETIRED("retired", "http://hl7.org/fhir/questionnaire-status"),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display: <b>in progress</b><br/>
|
||||||
|
* Code Value: <b>in progress</b>
|
||||||
|
*
|
||||||
|
* This Questionnaire has been filled out with answers, but changes or additions are still expected to be made to it.
|
||||||
|
*/
|
||||||
|
IN_PROGRESS("in progress", "http://hl7.org/fhir/questionnaire-status"),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display: <b>complete</b><br/>
|
||||||
|
* Code Value: <b>completed</b>
|
||||||
|
*
|
||||||
|
* This Questionnaire has been filled out with answers, and the current content is regarded as definitive.
|
||||||
|
*/
|
||||||
|
COMPLETE("completed", "http://hl7.org/fhir/questionnaire-status"),
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Display: <b>amended</b><br/>
|
||||||
|
* Code Value: <b>amended</b>
|
||||||
|
*
|
||||||
|
* This Questionnaire has been filled out with answers, then marked as complete, yet changes or additions have been made to it afterwards.
|
||||||
|
*/
|
||||||
|
AMENDED("amended", "http://hl7.org/fhir/questionnaire-status"),
|
||||||
|
|
||||||
|
;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Identifier for this Value Set:
|
||||||
|
* http://hl7.org/fhir/vs/questionnaire-status
|
||||||
|
*/
|
||||||
|
public static final String VALUESET_IDENTIFIER = "http://hl7.org/fhir/vs/questionnaire-status";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Name for this Value Set:
|
||||||
|
* QuestionnaireStatus
|
||||||
|
*/
|
||||||
|
public static final String VALUESET_NAME = "QuestionnaireStatus";
|
||||||
|
|
||||||
|
private static Map<String, QuestionnaireStatusEnum> CODE_TO_ENUM = new HashMap<String, QuestionnaireStatusEnum>();
|
||||||
|
private static Map<String, Map<String, QuestionnaireStatusEnum>> SYSTEM_TO_CODE_TO_ENUM = new HashMap<String, Map<String, QuestionnaireStatusEnum>>();
|
||||||
|
|
||||||
|
private final String myCode;
|
||||||
|
private final String mySystem;
|
||||||
|
|
||||||
|
static {
|
||||||
|
for (QuestionnaireStatusEnum next : QuestionnaireStatusEnum.values()) {
|
||||||
|
CODE_TO_ENUM.put(next.getCode(), next);
|
||||||
|
|
||||||
|
if (!SYSTEM_TO_CODE_TO_ENUM.containsKey(next.getSystem())) {
|
||||||
|
SYSTEM_TO_CODE_TO_ENUM.put(next.getSystem(), new HashMap<String, QuestionnaireStatusEnum>());
|
||||||
|
}
|
||||||
|
SYSTEM_TO_CODE_TO_ENUM.get(next.getSystem()).put(next.getCode(), next);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the code associated with this enumerated value
|
||||||
|
*/
|
||||||
|
public String getCode() {
|
||||||
|
return myCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the code system associated with this enumerated value
|
||||||
|
*/
|
||||||
|
public String getSystem() {
|
||||||
|
return mySystem;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the enumerated value associated with this code
|
||||||
|
*/
|
||||||
|
public QuestionnaireStatusEnum forCode(String theCode) {
|
||||||
|
QuestionnaireStatusEnum retVal = CODE_TO_ENUM.get(theCode);
|
||||||
|
return retVal;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Converts codes to their respective enumerated values
|
||||||
|
*/
|
||||||
|
public static final IValueSetEnumBinder<QuestionnaireStatusEnum> VALUESET_BINDER = new IValueSetEnumBinder<QuestionnaireStatusEnum>() {
|
||||||
|
@Override
|
||||||
|
public String toCodeString(QuestionnaireStatusEnum theEnum) {
|
||||||
|
return theEnum.getCode();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toSystemString(QuestionnaireStatusEnum theEnum) {
|
||||||
|
return theEnum.getSystem();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public QuestionnaireStatusEnum fromCodeString(String theCodeString) {
|
||||||
|
return CODE_TO_ENUM.get(theCodeString);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public QuestionnaireStatusEnum fromCodeString(String theCodeString, String theSystemString) {
|
||||||
|
Map<String, QuestionnaireStatusEnum> map = SYSTEM_TO_CODE_TO_ENUM.get(theSystemString);
|
||||||
|
if (map == null) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return map.get(theCodeString);
|
||||||
|
}
|
||||||
|
|
||||||
|
};
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor
|
||||||
|
*/
|
||||||
|
QuestionnaireStatusEnum(String theCode, String theSystem) {
|
||||||
|
myCode = theCode;
|
||||||
|
mySystem = theSystem;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -1,10 +1,6 @@
|
||||||
package ca.uhn.fhir.model.primitive;
|
package ca.uhn.fhir.model.primitive;
|
||||||
|
|
||||||
import static ca.uhn.fhir.model.api.TemporalPrecisionEnum.DAY;
|
import static ca.uhn.fhir.model.api.TemporalPrecisionEnum.*;
|
||||||
import static ca.uhn.fhir.model.api.TemporalPrecisionEnum.MILLI;
|
|
||||||
import static ca.uhn.fhir.model.api.TemporalPrecisionEnum.MONTH;
|
|
||||||
import static ca.uhn.fhir.model.api.TemporalPrecisionEnum.SECOND;
|
|
||||||
import static ca.uhn.fhir.model.api.TemporalPrecisionEnum.YEAR;
|
|
||||||
|
|
||||||
import java.text.ParseException;
|
import java.text.ParseException;
|
||||||
import java.util.Calendar;
|
import java.util.Calendar;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package ca.uhn.fhir.model.primitive;
|
package ca.uhn.fhir.model.primitive;
|
||||||
|
|
||||||
import static org.apache.commons.lang3.StringUtils.defaultString;
|
import static org.apache.commons.lang3.StringUtils.*;
|
||||||
|
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package ca.uhn.fhir.model.primitive;
|
package ca.uhn.fhir.model.primitive;
|
||||||
|
|
||||||
import static org.apache.commons.lang3.StringUtils.defaultString;
|
import static org.apache.commons.lang3.StringUtils.*;
|
||||||
import ca.uhn.fhir.model.api.IValueSetEnumBinder;
|
import ca.uhn.fhir.model.api.IValueSetEnumBinder;
|
||||||
import ca.uhn.fhir.model.api.annotation.DatatypeDef;
|
import ca.uhn.fhir.model.api.annotation.DatatypeDef;
|
||||||
import ca.uhn.fhir.model.dstu.composite.CodingDt;
|
import ca.uhn.fhir.model.dstu.composite.CodingDt;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package ca.uhn.fhir.model.primitive;
|
package ca.uhn.fhir.model.primitive;
|
||||||
|
|
||||||
import static org.apache.commons.lang3.StringUtils.defaultString;
|
import static org.apache.commons.lang3.StringUtils.*;
|
||||||
import ca.uhn.fhir.model.api.BasePrimitive;
|
import ca.uhn.fhir.model.api.BasePrimitive;
|
||||||
import ca.uhn.fhir.model.api.annotation.DatatypeDef;
|
import ca.uhn.fhir.model.api.annotation.DatatypeDef;
|
||||||
import ca.uhn.fhir.model.api.annotation.SimpleSetter;
|
import ca.uhn.fhir.model.api.annotation.SimpleSetter;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package ca.uhn.fhir.narrative;
|
package ca.uhn.fhir.narrative;
|
||||||
|
|
||||||
import static org.apache.commons.lang3.StringUtils.isBlank;
|
import static org.apache.commons.lang3.StringUtils.*;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
|
@ -33,7 +33,6 @@ import org.thymeleaf.util.DOMUtils;
|
||||||
import ca.uhn.fhir.context.ConfigurationException;
|
import ca.uhn.fhir.context.ConfigurationException;
|
||||||
import ca.uhn.fhir.model.api.IResource;
|
import ca.uhn.fhir.model.api.IResource;
|
||||||
import ca.uhn.fhir.model.dstu.composite.NarrativeDt;
|
import ca.uhn.fhir.model.dstu.composite.NarrativeDt;
|
||||||
import ca.uhn.fhir.model.dstu.composite.QuantityDt;
|
|
||||||
import ca.uhn.fhir.model.dstu.valueset.NarrativeStatusEnum;
|
import ca.uhn.fhir.model.dstu.valueset.NarrativeStatusEnum;
|
||||||
import ca.uhn.fhir.model.primitive.XhtmlDt;
|
import ca.uhn.fhir.model.primitive.XhtmlDt;
|
||||||
import ca.uhn.fhir.parser.DataFormatException;
|
import ca.uhn.fhir.parser.DataFormatException;
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
package ca.uhn.fhir.parser;
|
package ca.uhn.fhir.parser;
|
||||||
|
|
||||||
import static org.apache.commons.lang3.StringUtils.isBlank;
|
import static org.apache.commons.lang3.StringUtils.*;
|
||||||
import static org.apache.commons.lang3.StringUtils.isNotBlank;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.Reader;
|
import java.io.Reader;
|
||||||
|
@ -42,12 +41,12 @@ import ca.uhn.fhir.context.RuntimeResourceDefinition;
|
||||||
import ca.uhn.fhir.model.api.BaseBundle;
|
import ca.uhn.fhir.model.api.BaseBundle;
|
||||||
import ca.uhn.fhir.model.api.Bundle;
|
import ca.uhn.fhir.model.api.Bundle;
|
||||||
import ca.uhn.fhir.model.api.BundleEntry;
|
import ca.uhn.fhir.model.api.BundleEntry;
|
||||||
|
import ca.uhn.fhir.model.api.ExtensionDt;
|
||||||
import ca.uhn.fhir.model.api.IElement;
|
import ca.uhn.fhir.model.api.IElement;
|
||||||
import ca.uhn.fhir.model.api.IIdentifiableElement;
|
import ca.uhn.fhir.model.api.IIdentifiableElement;
|
||||||
import ca.uhn.fhir.model.api.IPrimitiveDatatype;
|
import ca.uhn.fhir.model.api.IPrimitiveDatatype;
|
||||||
import ca.uhn.fhir.model.api.IResource;
|
import ca.uhn.fhir.model.api.IResource;
|
||||||
import ca.uhn.fhir.model.api.ISupportsUndeclaredExtensions;
|
import ca.uhn.fhir.model.api.ISupportsUndeclaredExtensions;
|
||||||
import ca.uhn.fhir.model.api.UndeclaredExtension;
|
|
||||||
import ca.uhn.fhir.model.api.annotation.Child;
|
import ca.uhn.fhir.model.api.annotation.Child;
|
||||||
import ca.uhn.fhir.model.dstu.composite.ContainedDt;
|
import ca.uhn.fhir.model.dstu.composite.ContainedDt;
|
||||||
import ca.uhn.fhir.model.dstu.composite.NarrativeDt;
|
import ca.uhn.fhir.model.dstu.composite.NarrativeDt;
|
||||||
|
@ -408,7 +407,7 @@ public class JsonParser extends BaseParser implements IParser {
|
||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void addToHeldExtensions(int valueIdx, List<UndeclaredExtension> ext, ArrayList<ArrayList<HeldExtension>> list) {
|
private void addToHeldExtensions(int valueIdx, List<ExtensionDt> ext, ArrayList<ArrayList<HeldExtension>> list) {
|
||||||
if (ext.size() > 0) {
|
if (ext.size() > 0) {
|
||||||
list.ensureCapacity(valueIdx);
|
list.ensureCapacity(valueIdx);
|
||||||
while (list.size() <= valueIdx) {
|
while (list.size() <= valueIdx) {
|
||||||
|
@ -417,7 +416,7 @@ public class JsonParser extends BaseParser implements IParser {
|
||||||
if (list.get(valueIdx) == null) {
|
if (list.get(valueIdx) == null) {
|
||||||
list.set(valueIdx, new ArrayList<JsonParser.HeldExtension>());
|
list.set(valueIdx, new ArrayList<JsonParser.HeldExtension>());
|
||||||
}
|
}
|
||||||
for (UndeclaredExtension next : ext) {
|
for (ExtensionDt next : ext) {
|
||||||
list.get(valueIdx).add(new HeldExtension(next));
|
list.get(valueIdx).add(new HeldExtension(next));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -619,7 +618,7 @@ public class JsonParser extends BaseParser implements IParser {
|
||||||
}
|
}
|
||||||
|
|
||||||
if (nextValue instanceof ISupportsUndeclaredExtensions) {
|
if (nextValue instanceof ISupportsUndeclaredExtensions) {
|
||||||
List<UndeclaredExtension> ext = ((ISupportsUndeclaredExtensions) nextValue).getUndeclaredExtensions();
|
List<ExtensionDt> ext = ((ISupportsUndeclaredExtensions) nextValue).getUndeclaredExtensions();
|
||||||
addToHeldExtensions(valueIdx, ext, extensions);
|
addToHeldExtensions(valueIdx, ext, extensions);
|
||||||
|
|
||||||
ext = ((ISupportsUndeclaredExtensions) nextValue).getUndeclaredModifierExtensions();
|
ext = ((ISupportsUndeclaredExtensions) nextValue).getUndeclaredModifierExtensions();
|
||||||
|
@ -718,7 +717,7 @@ public class JsonParser extends BaseParser implements IParser {
|
||||||
theEventWriter.writeEnd();
|
theEventWriter.writeEnd();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void encodeUndeclaredExtensions(RuntimeResourceDefinition theResDef, IResource theResource, JsonGenerator theWriter, List<UndeclaredExtension> extensions, String theTagName)
|
private void encodeUndeclaredExtensions(RuntimeResourceDefinition theResDef, IResource theResource, JsonGenerator theWriter, List<ExtensionDt> extensions, String theTagName)
|
||||||
throws IOException {
|
throws IOException {
|
||||||
if (extensions.isEmpty()) {
|
if (extensions.isEmpty()) {
|
||||||
return;
|
return;
|
||||||
|
@ -726,11 +725,11 @@ public class JsonParser extends BaseParser implements IParser {
|
||||||
|
|
||||||
theWriter.writeStartArray(theTagName);
|
theWriter.writeStartArray(theTagName);
|
||||||
|
|
||||||
for (UndeclaredExtension next : extensions) {
|
for (ExtensionDt next : extensions) {
|
||||||
|
|
||||||
theWriter.writeStartObject();
|
theWriter.writeStartObject();
|
||||||
|
|
||||||
theWriter.write("url", next.getUrl());
|
theWriter.write("url", next.getUrl().getValue());
|
||||||
|
|
||||||
if (next.getValue() != null) {
|
if (next.getValue() != null) {
|
||||||
IElement nextValue = next.getValue();
|
IElement nextValue = next.getValue();
|
||||||
|
@ -786,9 +785,9 @@ public class JsonParser extends BaseParser implements IParser {
|
||||||
|
|
||||||
private class HeldExtension {
|
private class HeldExtension {
|
||||||
|
|
||||||
private UndeclaredExtension myUndeclaredExtension;
|
private ExtensionDt myUndeclaredExtension;
|
||||||
|
|
||||||
public HeldExtension(UndeclaredExtension theUndeclaredExtension) {
|
public HeldExtension(ExtensionDt theUndeclaredExtension) {
|
||||||
myUndeclaredExtension = theUndeclaredExtension;
|
myUndeclaredExtension = theUndeclaredExtension;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -798,16 +797,16 @@ public class JsonParser extends BaseParser implements IParser {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void writeUndeclaredExt(RuntimeResourceDefinition theResDef, IResource theResource, JsonGenerator theEventWriter, UndeclaredExtension ext) throws IOException {
|
private void writeUndeclaredExt(RuntimeResourceDefinition theResDef, IResource theResource, JsonGenerator theEventWriter, ExtensionDt ext) throws IOException {
|
||||||
theEventWriter.writeStartObject();
|
theEventWriter.writeStartObject();
|
||||||
theEventWriter.write("url", ext.getUrl());
|
theEventWriter.write("url", ext.getUrl().getValue());
|
||||||
|
|
||||||
IElement value = ext.getValue();
|
IElement value = ext.getValue();
|
||||||
if (value == null && ext.getAllUndeclaredExtensions().isEmpty()) {
|
if (value == null && ext.getAllUndeclaredExtensions().isEmpty()) {
|
||||||
theEventWriter.writeNull();
|
theEventWriter.writeNull();
|
||||||
} else if (value == null) {
|
} else if (value == null) {
|
||||||
theEventWriter.writeStartArray("extension");
|
theEventWriter.writeStartArray("extension");
|
||||||
for (UndeclaredExtension next : ext.getUndeclaredExtensions()) {
|
for (ExtensionDt next : ext.getUndeclaredExtensions()) {
|
||||||
writeUndeclaredExt(theResDef, theResource, theEventWriter, next);
|
writeUndeclaredExt(theResDef, theResource, theEventWriter, next);
|
||||||
}
|
}
|
||||||
theEventWriter.writeEnd();
|
theEventWriter.writeEnd();
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package ca.uhn.fhir.parser;
|
package ca.uhn.fhir.parser;
|
||||||
|
|
||||||
import static org.apache.commons.lang3.StringUtils.isNotBlank;
|
import static org.apache.commons.lang3.StringUtils.*;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
@ -28,6 +28,7 @@ import ca.uhn.fhir.model.api.BaseBundle;
|
||||||
import ca.uhn.fhir.model.api.Bundle;
|
import ca.uhn.fhir.model.api.Bundle;
|
||||||
import ca.uhn.fhir.model.api.BundleCategory;
|
import ca.uhn.fhir.model.api.BundleCategory;
|
||||||
import ca.uhn.fhir.model.api.BundleEntry;
|
import ca.uhn.fhir.model.api.BundleEntry;
|
||||||
|
import ca.uhn.fhir.model.api.ExtensionDt;
|
||||||
import ca.uhn.fhir.model.api.ICompositeDatatype;
|
import ca.uhn.fhir.model.api.ICompositeDatatype;
|
||||||
import ca.uhn.fhir.model.api.ICompositeElement;
|
import ca.uhn.fhir.model.api.ICompositeElement;
|
||||||
import ca.uhn.fhir.model.api.IElement;
|
import ca.uhn.fhir.model.api.IElement;
|
||||||
|
@ -35,7 +36,6 @@ import ca.uhn.fhir.model.api.IPrimitiveDatatype;
|
||||||
import ca.uhn.fhir.model.api.IResource;
|
import ca.uhn.fhir.model.api.IResource;
|
||||||
import ca.uhn.fhir.model.api.IResourceBlock;
|
import ca.uhn.fhir.model.api.IResourceBlock;
|
||||||
import ca.uhn.fhir.model.api.ISupportsUndeclaredExtensions;
|
import ca.uhn.fhir.model.api.ISupportsUndeclaredExtensions;
|
||||||
import ca.uhn.fhir.model.api.UndeclaredExtension;
|
|
||||||
import ca.uhn.fhir.model.dstu.composite.ContainedDt;
|
import ca.uhn.fhir.model.dstu.composite.ContainedDt;
|
||||||
import ca.uhn.fhir.model.dstu.composite.ResourceReferenceDt;
|
import ca.uhn.fhir.model.dstu.composite.ResourceReferenceDt;
|
||||||
import ca.uhn.fhir.model.primitive.IdDt;
|
import ca.uhn.fhir.model.primitive.IdDt;
|
||||||
|
@ -399,7 +399,7 @@ class ParserState<T extends IElement> {
|
||||||
*/
|
*/
|
||||||
public void enteringNewElementExtension(@SuppressWarnings("unused") StartElement theElement, String theUrlAttr, boolean theIsModifier) {
|
public void enteringNewElementExtension(@SuppressWarnings("unused") StartElement theElement, String theUrlAttr, boolean theIsModifier) {
|
||||||
if (myPreResourceState != null && getCurrentElement() instanceof ISupportsUndeclaredExtensions) {
|
if (myPreResourceState != null && getCurrentElement() instanceof ISupportsUndeclaredExtensions) {
|
||||||
UndeclaredExtension newExtension = new UndeclaredExtension(theIsModifier, theUrlAttr);
|
ExtensionDt newExtension = new ExtensionDt(theIsModifier, theUrlAttr);
|
||||||
ISupportsUndeclaredExtensions elem = (ISupportsUndeclaredExtensions) getCurrentElement();
|
ISupportsUndeclaredExtensions elem = (ISupportsUndeclaredExtensions) getCurrentElement();
|
||||||
if (theIsModifier) {
|
if (theIsModifier) {
|
||||||
elem.getUndeclaredModifierExtensions().add(newExtension);
|
elem.getUndeclaredModifierExtensions().add(newExtension);
|
||||||
|
@ -672,9 +672,9 @@ class ParserState<T extends IElement> {
|
||||||
|
|
||||||
private class ExtensionState extends BaseState {
|
private class ExtensionState extends BaseState {
|
||||||
|
|
||||||
private UndeclaredExtension myExtension;
|
private ExtensionDt myExtension;
|
||||||
|
|
||||||
public ExtensionState(PreResourceState thePreResourceState, UndeclaredExtension theExtension) {
|
public ExtensionState(PreResourceState thePreResourceState, ExtensionDt theExtension) {
|
||||||
super(thePreResourceState);
|
super(thePreResourceState);
|
||||||
myExtension = theExtension;
|
myExtension = theExtension;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,6 @@
|
||||||
package ca.uhn.fhir.parser;
|
package ca.uhn.fhir.parser;
|
||||||
|
|
||||||
import static org.apache.commons.lang3.StringUtils.isBlank;
|
import static org.apache.commons.lang3.StringUtils.*;
|
||||||
import static org.apache.commons.lang3.StringUtils.isNotBlank;
|
|
||||||
|
|
||||||
import java.io.Reader;
|
import java.io.Reader;
|
||||||
import java.io.StringWriter;
|
import java.io.StringWriter;
|
||||||
|
@ -38,11 +37,11 @@ import ca.uhn.fhir.context.RuntimeChildUndeclaredExtensionDefinition;
|
||||||
import ca.uhn.fhir.context.RuntimeResourceDefinition;
|
import ca.uhn.fhir.context.RuntimeResourceDefinition;
|
||||||
import ca.uhn.fhir.model.api.Bundle;
|
import ca.uhn.fhir.model.api.Bundle;
|
||||||
import ca.uhn.fhir.model.api.BundleEntry;
|
import ca.uhn.fhir.model.api.BundleEntry;
|
||||||
|
import ca.uhn.fhir.model.api.ExtensionDt;
|
||||||
import ca.uhn.fhir.model.api.IElement;
|
import ca.uhn.fhir.model.api.IElement;
|
||||||
import ca.uhn.fhir.model.api.IPrimitiveDatatype;
|
import ca.uhn.fhir.model.api.IPrimitiveDatatype;
|
||||||
import ca.uhn.fhir.model.api.IResource;
|
import ca.uhn.fhir.model.api.IResource;
|
||||||
import ca.uhn.fhir.model.api.ISupportsUndeclaredExtensions;
|
import ca.uhn.fhir.model.api.ISupportsUndeclaredExtensions;
|
||||||
import ca.uhn.fhir.model.api.UndeclaredExtension;
|
|
||||||
import ca.uhn.fhir.model.dstu.composite.ContainedDt;
|
import ca.uhn.fhir.model.dstu.composite.ContainedDt;
|
||||||
import ca.uhn.fhir.model.dstu.composite.NarrativeDt;
|
import ca.uhn.fhir.model.dstu.composite.NarrativeDt;
|
||||||
import ca.uhn.fhir.model.dstu.composite.ResourceReferenceDt;
|
import ca.uhn.fhir.model.dstu.composite.ResourceReferenceDt;
|
||||||
|
@ -449,10 +448,10 @@ public class XmlParser extends BaseParser implements IParser {
|
||||||
theEventWriter.writeEndElement();
|
theEventWriter.writeEndElement();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void encodeUndeclaredExtensions(RuntimeResourceDefinition theResDef, IResource theResource, XMLStreamWriter theWriter, List<UndeclaredExtension> extensions, String tagName) throws XMLStreamException, DataFormatException {
|
private void encodeUndeclaredExtensions(RuntimeResourceDefinition theResDef, IResource theResource, XMLStreamWriter theWriter, List<ExtensionDt> extensions, String tagName) throws XMLStreamException, DataFormatException {
|
||||||
for (UndeclaredExtension next : extensions) {
|
for (ExtensionDt next : extensions) {
|
||||||
theWriter.writeStartElement(tagName);
|
theWriter.writeStartElement(tagName);
|
||||||
theWriter.writeAttribute("url", next.getUrl());
|
theWriter.writeAttribute("url", next.getUrl().getValue());
|
||||||
|
|
||||||
if (next.getValue() != null) {
|
if (next.getValue() != null) {
|
||||||
IElement nextValue = next.getValue();
|
IElement nextValue = next.getValue();
|
||||||
|
|
|
@ -0,0 +1,18 @@
|
||||||
|
package ca.uhn.fhir.rest.annotation;
|
||||||
|
|
||||||
|
import java.lang.annotation.Retention;
|
||||||
|
import java.lang.annotation.RetentionPolicy;
|
||||||
|
|
||||||
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* RESTful method annotation to be used for the FHIR
|
||||||
|
* <a href="http://hl7.org/implement/standards/fhir/http.html#create">create</a> method.
|
||||||
|
*
|
||||||
|
* <p>
|
||||||
|
* Create is used to save a new resource, allowing the server to assign a new ID and version ID.
|
||||||
|
* </p>
|
||||||
|
*/
|
||||||
|
public @interface Create {
|
||||||
|
// nothing
|
||||||
|
}
|
|
@ -1,10 +1,12 @@
|
||||||
package ca.uhn.fhir.rest.annotation;
|
package ca.uhn.fhir.rest.annotation;
|
||||||
|
|
||||||
|
import java.lang.annotation.ElementType;
|
||||||
import java.lang.annotation.Retention;
|
import java.lang.annotation.Retention;
|
||||||
import java.lang.annotation.RetentionPolicy;
|
import java.lang.annotation.RetentionPolicy;
|
||||||
|
import java.lang.annotation.Target;
|
||||||
|
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
|
@Target(ElementType.PARAMETER)
|
||||||
public @interface POST {
|
public @interface Id {
|
||||||
|
// just a marker
|
||||||
}
|
}
|
|
@ -19,17 +19,5 @@ public @interface Read {
|
||||||
*/
|
*/
|
||||||
// NB: Read, Search (maybe others) share this annotation, so update the javadocs everywhere
|
// NB: Read, Search (maybe others) share this annotation, so update the javadocs everywhere
|
||||||
Class<? extends IResource> type() default IResource.class;
|
Class<? extends IResource> type() default IResource.class;
|
||||||
|
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
|
||||||
@Target(ElementType.PARAMETER)
|
|
||||||
public @interface IdParam {
|
|
||||||
// just a marker
|
|
||||||
}
|
|
||||||
|
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
|
||||||
@Target(ElementType.PARAMETER)
|
|
||||||
public @interface VersionIdParam {
|
|
||||||
// just a marker
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,12 @@
|
||||||
|
package ca.uhn.fhir.rest.annotation;
|
||||||
|
|
||||||
|
import java.lang.annotation.ElementType;
|
||||||
|
import java.lang.annotation.Retention;
|
||||||
|
import java.lang.annotation.RetentionPolicy;
|
||||||
|
import java.lang.annotation.Target;
|
||||||
|
|
||||||
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
|
@Target(ElementType.PARAMETER)
|
||||||
|
public @interface VersionId {
|
||||||
|
// just a marker
|
||||||
|
}
|
|
@ -0,0 +1,35 @@
|
||||||
|
package ca.uhn.fhir.rest.api;
|
||||||
|
|
||||||
|
import ca.uhn.fhir.model.primitive.IdDt;
|
||||||
|
|
||||||
|
public class MethodOutcome {
|
||||||
|
|
||||||
|
private IdDt myId;
|
||||||
|
private IdDt myVersionId;
|
||||||
|
|
||||||
|
public IdDt getId() {
|
||||||
|
return myId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public MethodOutcome() {
|
||||||
|
}
|
||||||
|
|
||||||
|
public MethodOutcome(IdDt theId, IdDt theVersionId) {
|
||||||
|
super();
|
||||||
|
myId = theId;
|
||||||
|
myVersionId = theVersionId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setId(IdDt theId) {
|
||||||
|
myId = theId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public IdDt getVersionId() {
|
||||||
|
return myVersionId;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setVersionId(IdDt theVersionId) {
|
||||||
|
myVersionId = theVersionId;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -7,9 +7,7 @@ import java.io.StringReader;
|
||||||
import java.lang.reflect.InvocationHandler;
|
import java.lang.reflect.InvocationHandler;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
import java.nio.charset.Charset;
|
import java.nio.charset.Charset;
|
||||||
import java.util.Collections;
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import org.apache.commons.io.IOUtils;
|
import org.apache.commons.io.IOUtils;
|
||||||
|
@ -21,27 +19,19 @@ import org.apache.http.entity.ContentType;
|
||||||
|
|
||||||
import ca.uhn.fhir.context.ConfigurationException;
|
import ca.uhn.fhir.context.ConfigurationException;
|
||||||
import ca.uhn.fhir.context.FhirContext;
|
import ca.uhn.fhir.context.FhirContext;
|
||||||
import ca.uhn.fhir.model.api.Bundle;
|
|
||||||
import ca.uhn.fhir.model.api.IResource;
|
|
||||||
import ca.uhn.fhir.parser.IParser;
|
|
||||||
import ca.uhn.fhir.rest.client.api.IRestfulClient;
|
import ca.uhn.fhir.rest.client.api.IRestfulClient;
|
||||||
import ca.uhn.fhir.rest.client.exceptions.InvalidResponseException;
|
|
||||||
import ca.uhn.fhir.rest.client.exceptions.NonFhirResponseException;
|
|
||||||
import ca.uhn.fhir.rest.method.BaseMethodBinding;
|
import ca.uhn.fhir.rest.method.BaseMethodBinding;
|
||||||
import ca.uhn.fhir.rest.server.Constants;
|
|
||||||
|
|
||||||
public class ClientInvocationHandler implements InvocationHandler {
|
public class ClientInvocationHandler implements InvocationHandler {
|
||||||
|
|
||||||
private static final org.slf4j.Logger ourLog = org.slf4j.LoggerFactory.getLogger(ClientInvocationHandler.class);
|
private static final org.slf4j.Logger ourLog = org.slf4j.LoggerFactory.getLogger(ClientInvocationHandler.class);
|
||||||
private final Map<Method, BaseMethodBinding> myBindings = new HashMap<Method, BaseMethodBinding>();
|
private final Map<Method, BaseMethodBinding> myBindings = new HashMap<Method, BaseMethodBinding>();
|
||||||
private final HttpClient myClient;
|
private final HttpClient myClient;
|
||||||
private final FhirContext myContext;
|
|
||||||
private final String myUrlBase;
|
private final String myUrlBase;
|
||||||
private final Map<Method, Object> myMethodToReturnValue = new HashMap<Method, Object>();
|
private final Map<Method, Object> myMethodToReturnValue = new HashMap<Method, Object>();
|
||||||
|
|
||||||
public ClientInvocationHandler(HttpClient theClient, FhirContext theContext, String theUrlBase, Class<? extends IRestfulClient> theClientType) {
|
public ClientInvocationHandler(HttpClient theClient, FhirContext theContext, String theUrlBase, Class<? extends IRestfulClient> theClientType) {
|
||||||
myClient = theClient;
|
myClient = theClient;
|
||||||
myContext = theContext;
|
|
||||||
myUrlBase = theUrlBase;
|
myUrlBase = theUrlBase;
|
||||||
|
|
||||||
try {
|
try {
|
||||||
|
@ -83,51 +73,10 @@ public class ClientInvocationHandler implements InvocationHandler {
|
||||||
|
|
||||||
ContentType ct = ContentType.get(response.getEntity());
|
ContentType ct = ContentType.get(response.getEntity());
|
||||||
|
|
||||||
IParser parser;
|
|
||||||
String mimeType = ct.getMimeType();
|
String mimeType = ct.getMimeType();
|
||||||
if (Constants.CT_ATOM_XML.equals(mimeType)) {
|
|
||||||
parser = myContext.newXmlParser();
|
return binding.invokeClient(mimeType, reader, response.getStatusLine().getStatusCode());
|
||||||
} else if (Constants.CT_FHIR_XML.equals(mimeType)) {
|
|
||||||
parser = myContext.newXmlParser();
|
|
||||||
} else {
|
|
||||||
throw new NonFhirResponseException("Response contains non-FHIR content-type: " + mimeType, mimeType, response.getStatusLine().getStatusCode(), IOUtils.toString(reader));
|
|
||||||
}
|
|
||||||
|
|
||||||
switch (binding.getReturnType()) {
|
|
||||||
case BUNDLE: {
|
|
||||||
Bundle bundle = parser.parseBundle(reader);
|
|
||||||
switch (binding.getMethodReturnType()) {
|
|
||||||
case BUNDLE:
|
|
||||||
return bundle;
|
|
||||||
case LIST_OF_RESOURCES:
|
|
||||||
return bundle.toListOfResources();
|
|
||||||
case RESOURCE:
|
|
||||||
List<IResource> list = bundle.toListOfResources();
|
|
||||||
if (list.size() == 0) {
|
|
||||||
return null;
|
|
||||||
} else if (list.size() == 1) {
|
|
||||||
return list.get(0);
|
|
||||||
} else {
|
|
||||||
throw new InvalidResponseException("FHIR server call returned a bundle with multiple resources, but this method is only able to returns one.");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
case RESOURCE: {
|
|
||||||
IResource resource = parser.parseResource(reader);
|
|
||||||
switch (binding.getMethodReturnType()) {
|
|
||||||
case BUNDLE:
|
|
||||||
return Bundle.withSingleResource(resource);
|
|
||||||
case LIST_OF_RESOURCES:
|
|
||||||
return Collections.singletonList(resource);
|
|
||||||
case RESOURCE:
|
|
||||||
return resource;
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
throw new IllegalStateException("Should not get here!");
|
|
||||||
} finally {
|
} finally {
|
||||||
if (response instanceof CloseableHttpResponse) {
|
if (response instanceof CloseableHttpResponse) {
|
||||||
((CloseableHttpResponse) response).close();
|
((CloseableHttpResponse) response).close();
|
||||||
|
|
|
@ -84,7 +84,7 @@ public class RestfulClientFactory implements IRestfulClientFactory {
|
||||||
}
|
}
|
||||||
resReturnType = (Class<? extends IResource>) returnTypeColl;
|
resReturnType = (Class<? extends IResource>) returnTypeColl;
|
||||||
}
|
}
|
||||||
BaseMethodBinding binding = BaseMethodBinding.bindMethod(resReturnType, nextMethod);
|
BaseMethodBinding binding = BaseMethodBinding.bindMethod(resReturnType, nextMethod, myContext);
|
||||||
invocationHandler.addBinding(nextMethod, binding);
|
invocationHandler.addBinding(nextMethod, binding);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,58 +1,58 @@
|
||||||
package ca.uhn.fhir.rest.method;
|
package ca.uhn.fhir.rest.method;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.Reader;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
import ca.uhn.fhir.context.ConfigurationException;
|
import ca.uhn.fhir.context.ConfigurationException;
|
||||||
import ca.uhn.fhir.model.api.Bundle;
|
import ca.uhn.fhir.context.FhirContext;
|
||||||
import ca.uhn.fhir.model.api.IResource;
|
import ca.uhn.fhir.model.api.IResource;
|
||||||
import ca.uhn.fhir.model.api.annotation.ResourceDef;
|
|
||||||
import ca.uhn.fhir.model.dstu.valueset.RestfulOperationSystemEnum;
|
import ca.uhn.fhir.model.dstu.valueset.RestfulOperationSystemEnum;
|
||||||
import ca.uhn.fhir.model.dstu.valueset.RestfulOperationTypeEnum;
|
import ca.uhn.fhir.model.dstu.valueset.RestfulOperationTypeEnum;
|
||||||
import ca.uhn.fhir.model.primitive.IdDt;
|
|
||||||
import ca.uhn.fhir.rest.annotation.Metadata;
|
import ca.uhn.fhir.rest.annotation.Metadata;
|
||||||
import ca.uhn.fhir.rest.annotation.Read;
|
import ca.uhn.fhir.rest.annotation.Read;
|
||||||
import ca.uhn.fhir.rest.annotation.Search;
|
import ca.uhn.fhir.rest.annotation.Search;
|
||||||
import ca.uhn.fhir.rest.client.GetClientInvocation;
|
import ca.uhn.fhir.rest.client.GetClientInvocation;
|
||||||
import ca.uhn.fhir.rest.server.IResourceProvider;
|
import ca.uhn.fhir.rest.server.RestfulServer;
|
||||||
|
import ca.uhn.fhir.rest.server.exceptions.BaseServerResponseException;
|
||||||
import ca.uhn.fhir.rest.server.exceptions.InternalErrorException;
|
import ca.uhn.fhir.rest.server.exceptions.InternalErrorException;
|
||||||
import ca.uhn.fhir.rest.server.exceptions.InvalidRequestException;
|
|
||||||
|
|
||||||
public abstract class BaseMethodBinding {
|
public abstract class BaseMethodBinding {
|
||||||
|
|
||||||
private String myResourceName;
|
private Method myMethod;
|
||||||
private MethodReturnTypeEnum myMethodReturnType;
|
private FhirContext myContext;
|
||||||
|
|
||||||
public BaseMethodBinding(MethodReturnTypeEnum theMethodReturnType, Class<? extends IResource> theReturnResourceType) {
|
public BaseMethodBinding(Method theMethod, FhirContext theConetxt) {
|
||||||
ResourceDef resourceDefAnnotation = theReturnResourceType.getAnnotation(ResourceDef.class);
|
assert theMethod!=null;
|
||||||
if (resourceDefAnnotation == null) {
|
assert theConetxt!=null;
|
||||||
throw new ConfigurationException(theReturnResourceType.getCanonicalName() + " has no @" + ResourceDef.class.getSimpleName() + " annotation");
|
|
||||||
}
|
myMethod = theMethod;
|
||||||
myResourceName = resourceDefAnnotation.name();
|
myContext=theConetxt;
|
||||||
myMethodReturnType = theMethodReturnType;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public abstract ReturnTypeEnum getReturnType();
|
public FhirContext getContext() {
|
||||||
|
return myContext;
|
||||||
|
}
|
||||||
|
|
||||||
|
public Method getMethod() {
|
||||||
|
return myMethod;
|
||||||
|
}
|
||||||
|
|
||||||
public abstract GetClientInvocation invokeClient(Object[] theArgs) throws InternalErrorException;
|
public abstract GetClientInvocation invokeClient(Object[] theArgs) throws InternalErrorException;
|
||||||
|
|
||||||
public abstract List<IResource> invokeServer(IResourceProvider theResourceProvider, IdDt theId, IdDt theVersionId, Map<String, String[]> theParameterValues) throws InvalidRequestException, InternalErrorException;
|
|
||||||
|
|
||||||
public abstract RestfulOperationTypeEnum getResourceOperationType();
|
public abstract RestfulOperationTypeEnum getResourceOperationType();
|
||||||
|
|
||||||
public abstract RestfulOperationSystemEnum getSystemOperationType();
|
public abstract RestfulOperationSystemEnum getSystemOperationType();
|
||||||
|
|
||||||
public abstract boolean matches(Request theRequest);
|
public abstract boolean matches(Request theRequest);
|
||||||
|
|
||||||
public String getResourceName() {
|
public static BaseMethodBinding bindMethod(Class<? extends IResource> theReturnType, Method theMethod, FhirContext theContext) {
|
||||||
return myResourceName;
|
|
||||||
}
|
|
||||||
|
|
||||||
public static BaseMethodBinding bindMethod(Class<? extends IResource> theReturnType, Method theMethod) {
|
|
||||||
Read read = theMethod.getAnnotation(Read.class);
|
Read read = theMethod.getAnnotation(Read.class);
|
||||||
Search search = theMethod.getAnnotation(Search.class);
|
Search search = theMethod.getAnnotation(Search.class);
|
||||||
Metadata conformance = theMethod.getAnnotation(Metadata.class);
|
Metadata conformance = theMethod.getAnnotation(Metadata.class);
|
||||||
|
@ -60,18 +60,6 @@ public abstract class BaseMethodBinding {
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
Class<?> methodReturnType = theMethod.getReturnType();
|
|
||||||
MethodReturnTypeEnum methodReturnTypeEnum;
|
|
||||||
if (Collection.class.isAssignableFrom(methodReturnType)) {
|
|
||||||
methodReturnTypeEnum = MethodReturnTypeEnum.LIST_OF_RESOURCES;
|
|
||||||
} else if (IResource.class.isAssignableFrom(methodReturnType)) {
|
|
||||||
methodReturnTypeEnum = MethodReturnTypeEnum.RESOURCE;
|
|
||||||
} else if (Bundle.class.isAssignableFrom(methodReturnType)) {
|
|
||||||
methodReturnTypeEnum = MethodReturnTypeEnum.BUNDLE;
|
|
||||||
} else {
|
|
||||||
throw new ConfigurationException("Invalid return type '" + methodReturnType.getCanonicalName() + "' on method '" + theMethod.getName() + "' on type: " + theMethod.getDeclaringClass().getCanonicalName());
|
|
||||||
}
|
|
||||||
|
|
||||||
Class<? extends IResource> returnType = theReturnType;
|
Class<? extends IResource> returnType = theReturnType;
|
||||||
if (returnType == null) {
|
if (returnType == null) {
|
||||||
if (read != null) {
|
if (read != null) {
|
||||||
|
@ -84,14 +72,14 @@ public abstract class BaseMethodBinding {
|
||||||
throw new ConfigurationException("Could not determine return type for method '" + theMethod.getName() + "'. Try explicitly specifying one in the operation annotation.");
|
throw new ConfigurationException("Could not determine return type for method '" + theMethod.getName() + "'. Try explicitly specifying one in the operation annotation.");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (read != null) {
|
if (read != null) {
|
||||||
return new ReadMethodBinding(methodReturnTypeEnum, returnType, theMethod);
|
return new ReadMethodBinding(returnType, theMethod, theContext);
|
||||||
} else if (search != null) {
|
} else if (search != null) {
|
||||||
String queryName = search.queryName();
|
String queryName = search.queryName();
|
||||||
return new SearchMethodBinding(methodReturnTypeEnum, returnType, theMethod, queryName);
|
return new SearchMethodBinding(returnType, theMethod, queryName,theContext);
|
||||||
} else if (conformance != null) {
|
} else if (conformance != null) {
|
||||||
return new ConformanceMethodBinding(methodReturnTypeEnum, returnType, theMethod);
|
return new ConformanceMethodBinding(theMethod, theContext);
|
||||||
} else {
|
} else {
|
||||||
throw new ConfigurationException("Did not detect any FHIR annotations on method '" + theMethod.getName() + "' on type: " + theMethod.getDeclaringClass().getCanonicalName());
|
throw new ConfigurationException("Did not detect any FHIR annotations on method '" + theMethod.getName() + "' on type: " + theMethod.getDeclaringClass().getCanonicalName());
|
||||||
}
|
}
|
||||||
|
@ -118,8 +106,6 @@ public abstract class BaseMethodBinding {
|
||||||
// return sm;
|
// return sm;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static boolean verifyMethodHasZeroOrOneOperationAnnotation(Method theNextMethod, Object... theAnnotations) {
|
public static boolean verifyMethodHasZeroOrOneOperationAnnotation(Method theNextMethod, Object... theAnnotations) {
|
||||||
Object obj1 = null;
|
Object obj1 = null;
|
||||||
for (Object object : theAnnotations) {
|
for (Object object : theAnnotations) {
|
||||||
|
@ -159,15 +145,10 @@ public abstract class BaseMethodBinding {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum MethodReturnTypeEnum {
|
|
||||||
RESOURCE, BUNDLE, LIST_OF_RESOURCES
|
|
||||||
}
|
|
||||||
|
|
||||||
public enum ReturnTypeEnum {
|
|
||||||
BUNDLE, RESOURCE
|
|
||||||
}
|
|
||||||
|
|
||||||
public MethodReturnTypeEnum getMethodReturnType() {
|
public abstract void invokeServer(RestfulServer theServer, Request theRequest, HttpServletResponse theResponse) throws BaseServerResponseException, IOException;
|
||||||
return myMethodReturnType;
|
|
||||||
}
|
public abstract Object invokeClient(String theResponseMimeType, Reader theResponseReader, int theResponseStatusCode) throws IOException;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,336 @@
|
||||||
|
package ca.uhn.fhir.rest.method;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.PrintWriter;
|
||||||
|
import java.io.Reader;
|
||||||
|
import java.lang.reflect.Method;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.Collections;
|
||||||
|
import java.util.Enumeration;
|
||||||
|
import java.util.HashSet;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
import java.util.Set;
|
||||||
|
import java.util.UUID;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
|
import org.apache.commons.io.IOUtils;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
|
import ca.uhn.fhir.context.ConfigurationException;
|
||||||
|
import ca.uhn.fhir.context.FhirContext;
|
||||||
|
import ca.uhn.fhir.context.RuntimeResourceDefinition;
|
||||||
|
import ca.uhn.fhir.model.api.Bundle;
|
||||||
|
import ca.uhn.fhir.model.api.BundleEntry;
|
||||||
|
import ca.uhn.fhir.model.api.IResource;
|
||||||
|
import ca.uhn.fhir.model.api.annotation.ResourceDef;
|
||||||
|
import ca.uhn.fhir.model.primitive.IdDt;
|
||||||
|
import ca.uhn.fhir.parser.IParser;
|
||||||
|
import ca.uhn.fhir.rest.client.exceptions.InvalidResponseException;
|
||||||
|
import ca.uhn.fhir.rest.client.exceptions.NonFhirResponseException;
|
||||||
|
import ca.uhn.fhir.rest.server.Constants;
|
||||||
|
import ca.uhn.fhir.rest.server.EncodingUtil;
|
||||||
|
import ca.uhn.fhir.rest.server.IResourceProvider;
|
||||||
|
import ca.uhn.fhir.rest.server.RestfulServer;
|
||||||
|
import ca.uhn.fhir.rest.server.RestfulServer.NarrativeModeEnum;
|
||||||
|
import ca.uhn.fhir.rest.server.exceptions.BaseServerResponseException;
|
||||||
|
import ca.uhn.fhir.rest.server.exceptions.InternalErrorException;
|
||||||
|
import ca.uhn.fhir.rest.server.exceptions.InvalidRequestException;
|
||||||
|
import ca.uhn.fhir.rest.server.exceptions.ResourceNotFoundException;
|
||||||
|
|
||||||
|
public abstract class BaseResourceReturningMethodBinding extends BaseMethodBinding {
|
||||||
|
|
||||||
|
protected static final Set<String> ALLOWED_PARAMS;
|
||||||
|
private MethodReturnTypeEnum myMethodReturnType;
|
||||||
|
private String myResourceName;
|
||||||
|
|
||||||
|
public BaseResourceReturningMethodBinding(Class<? extends IResource> theReturnResourceType, Method theMethod, FhirContext theConetxt) {
|
||||||
|
super(theMethod, theConetxt);
|
||||||
|
|
||||||
|
Class<?> methodReturnType = theMethod.getReturnType();
|
||||||
|
if (Collection.class.isAssignableFrom(methodReturnType)) {
|
||||||
|
myMethodReturnType = MethodReturnTypeEnum.LIST_OF_RESOURCES;
|
||||||
|
} else if (IResource.class.isAssignableFrom(methodReturnType)) {
|
||||||
|
myMethodReturnType = MethodReturnTypeEnum.RESOURCE;
|
||||||
|
} else if (Bundle.class.isAssignableFrom(methodReturnType)) {
|
||||||
|
myMethodReturnType = MethodReturnTypeEnum.BUNDLE;
|
||||||
|
} else {
|
||||||
|
throw new ConfigurationException("Invalid return type '" + methodReturnType.getCanonicalName() + "' on method '" + theMethod.getName() + "' on type: " + theMethod.getDeclaringClass().getCanonicalName());
|
||||||
|
}
|
||||||
|
|
||||||
|
ResourceDef resourceDefAnnotation = theReturnResourceType.getAnnotation(ResourceDef.class);
|
||||||
|
if (resourceDefAnnotation == null) {
|
||||||
|
throw new ConfigurationException(theReturnResourceType.getCanonicalName() + " has no @" + ResourceDef.class.getSimpleName() + " annotation");
|
||||||
|
}
|
||||||
|
myResourceName = resourceDefAnnotation.name();
|
||||||
|
}
|
||||||
|
|
||||||
|
public MethodReturnTypeEnum getMethodReturnType() {
|
||||||
|
return myMethodReturnType;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getResourceName() {
|
||||||
|
return myResourceName;
|
||||||
|
}
|
||||||
|
|
||||||
|
public abstract ReturnTypeEnum getReturnType();
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object invokeClient(String theResponseMimeType, Reader theResponseReader, int theResponseStatusCode) throws IOException {
|
||||||
|
IParser parser;
|
||||||
|
if (Constants.CT_ATOM_XML.equals(theResponseMimeType)) {
|
||||||
|
parser = getContext().newXmlParser();
|
||||||
|
} else if (Constants.CT_FHIR_XML.equals(theResponseMimeType)) {
|
||||||
|
parser = getContext().newXmlParser();
|
||||||
|
} else {
|
||||||
|
throw new NonFhirResponseException("Response contains non-FHIR content-type: " + theResponseMimeType, theResponseMimeType, theResponseStatusCode, IOUtils.toString(theResponseReader));
|
||||||
|
}
|
||||||
|
|
||||||
|
switch (getReturnType()) {
|
||||||
|
case BUNDLE: {
|
||||||
|
Bundle bundle = parser.parseBundle(theResponseReader);
|
||||||
|
switch (getMethodReturnType()) {
|
||||||
|
case BUNDLE:
|
||||||
|
return bundle;
|
||||||
|
case LIST_OF_RESOURCES:
|
||||||
|
return bundle.toListOfResources();
|
||||||
|
case RESOURCE:
|
||||||
|
List<IResource> list = bundle.toListOfResources();
|
||||||
|
if (list.size() == 0) {
|
||||||
|
return null;
|
||||||
|
} else if (list.size() == 1) {
|
||||||
|
return list.get(0);
|
||||||
|
} else {
|
||||||
|
throw new InvalidResponseException("FHIR server call returned a bundle with multiple resources, but this method is only able to returns one.");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case RESOURCE: {
|
||||||
|
IResource resource = parser.parseResource(theResponseReader);
|
||||||
|
switch (getMethodReturnType()) {
|
||||||
|
case BUNDLE:
|
||||||
|
return Bundle.withSingleResource(resource);
|
||||||
|
case LIST_OF_RESOURCES:
|
||||||
|
return Collections.singletonList(resource);
|
||||||
|
case RESOURCE:
|
||||||
|
return resource;
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new IllegalStateException("Should not get here!");
|
||||||
|
}
|
||||||
|
|
||||||
|
public abstract List<IResource> invokeServer(IResourceProvider theResourceProvider, IdDt theId, IdDt theVersionId, Map<String, String[]> theParameterValues) throws InvalidRequestException, InternalErrorException;
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void invokeServer(RestfulServer theServer, Request theRequest, HttpServletResponse theResponse) throws BaseServerResponseException, IOException {
|
||||||
|
|
||||||
|
// Pretty print
|
||||||
|
Map<String, String[]> params = theRequest.getParameters();
|
||||||
|
String[] pretty = params.remove(Constants.PARAM_PRETTY);
|
||||||
|
boolean prettyPrint = false;
|
||||||
|
if (pretty != null && pretty.length > 0) {
|
||||||
|
if ("true".equals(pretty[0])) {
|
||||||
|
prettyPrint = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// Narrative mode
|
||||||
|
String[] narrative = params.remove(Constants.PARAM_NARRATIVE);
|
||||||
|
NarrativeModeEnum narrativeMode = null;
|
||||||
|
if (narrative != null && narrative.length > 0) {
|
||||||
|
narrativeMode = NarrativeModeEnum.valueOfCaseInsensitive(narrative[0]);
|
||||||
|
}
|
||||||
|
if (narrativeMode == null) {
|
||||||
|
narrativeMode = NarrativeModeEnum.NORMAL;
|
||||||
|
}
|
||||||
|
|
||||||
|
// Determine response encoding
|
||||||
|
EncodingUtil responseEncoding = determineResponseEncoding(theRequest.getServletRequest(), params);
|
||||||
|
|
||||||
|
// Is this request coming from a browser
|
||||||
|
String uaHeader = theRequest.getServletRequest().getHeader("user-agent");
|
||||||
|
boolean requestIsBrowser = false;
|
||||||
|
if (uaHeader != null && uaHeader.contains("Mozilla")) {
|
||||||
|
requestIsBrowser = true;
|
||||||
|
}
|
||||||
|
|
||||||
|
List<IResource> result = invokeServer(theRequest.getResourceProvider(), theRequest.getId(), theRequest.getVersion(), theRequest.getParameters());
|
||||||
|
switch (getReturnType()) {
|
||||||
|
case BUNDLE:
|
||||||
|
streamResponseAsBundle(theServer, theResponse, result, responseEncoding, theRequest.getFhirServerBase(), theRequest.getCompleteUrl(), prettyPrint, requestIsBrowser, narrativeMode);
|
||||||
|
break;
|
||||||
|
case RESOURCE:
|
||||||
|
if (result.size() == 0) {
|
||||||
|
throw new ResourceNotFoundException(theRequest.getId());
|
||||||
|
} else if (result.size() > 1) {
|
||||||
|
throw new InternalErrorException("Method returned multiple resources");
|
||||||
|
}
|
||||||
|
streamResponseAsResource(theServer, theResponse, result.get(0), responseEncoding, prettyPrint, requestIsBrowser, narrativeMode);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private EncodingUtil determineResponseEncoding(HttpServletRequest theRequest, Map<String, String[]> theParams) {
|
||||||
|
String[] format = theParams.remove(Constants.PARAM_FORMAT);
|
||||||
|
if (format != null) {
|
||||||
|
for (String nextFormat : format) {
|
||||||
|
EncodingUtil retVal = Constants.FORMAT_VAL_TO_ENCODING.get(nextFormat);
|
||||||
|
if (retVal != null) {
|
||||||
|
return retVal;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
Enumeration<String> acceptValues = theRequest.getHeaders("Accept");
|
||||||
|
if (acceptValues != null) {
|
||||||
|
while (acceptValues.hasMoreElements()) {
|
||||||
|
EncodingUtil retVal = Constants.FORMAT_VAL_TO_ENCODING.get(acceptValues.nextElement());
|
||||||
|
if (retVal != null) {
|
||||||
|
return retVal;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return EncodingUtil.XML;
|
||||||
|
}
|
||||||
|
|
||||||
|
static {
|
||||||
|
HashSet<String> set = new HashSet<String>();
|
||||||
|
set.add(Constants.PARAM_FORMAT);
|
||||||
|
set.add(Constants.PARAM_NARRATIVE);
|
||||||
|
set.add(Constants.PARAM_PRETTY);
|
||||||
|
ALLOWED_PARAMS = Collections.unmodifiableSet(set);
|
||||||
|
}
|
||||||
|
|
||||||
|
private IParser getNewParser(EncodingUtil theResponseEncoding, boolean thePrettyPrint, NarrativeModeEnum theNarrativeMode) {
|
||||||
|
IParser parser;
|
||||||
|
switch (theResponseEncoding) {
|
||||||
|
case JSON:
|
||||||
|
parser = getContext().newJsonParser();
|
||||||
|
break;
|
||||||
|
case XML:
|
||||||
|
default:
|
||||||
|
parser = getContext().newXmlParser();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
return parser.setPrettyPrint(thePrettyPrint).setSuppressNarratives(theNarrativeMode == NarrativeModeEnum.SUPPRESS);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void streamResponseAsBundle(RestfulServer theServer, HttpServletResponse theHttpResponse, List<IResource> theResult, EncodingUtil theResponseEncoding, String theServerBase, String theCompleteUrl, boolean thePrettyPrint, boolean theRequestIsBrowser,
|
||||||
|
NarrativeModeEnum theNarrativeMode) throws IOException {
|
||||||
|
assert !theServerBase.endsWith("/");
|
||||||
|
|
||||||
|
theHttpResponse.setStatus(200);
|
||||||
|
|
||||||
|
if (theRequestIsBrowser && theServer.isUseBrowserFriendlyContentTypes()) {
|
||||||
|
theHttpResponse.setContentType(theResponseEncoding.getBrowserFriendlyBundleContentType());
|
||||||
|
} else if (theNarrativeMode == NarrativeModeEnum.ONLY) {
|
||||||
|
theHttpResponse.setContentType(Constants.CT_HTML);
|
||||||
|
} else {
|
||||||
|
theHttpResponse.setContentType(theResponseEncoding.getBundleContentType());
|
||||||
|
}
|
||||||
|
|
||||||
|
theHttpResponse.setCharacterEncoding("UTF-8");
|
||||||
|
|
||||||
|
Bundle bundle = new Bundle();
|
||||||
|
bundle.getAuthorName().setValue(getClass().getCanonicalName());
|
||||||
|
bundle.getBundleId().setValue(UUID.randomUUID().toString());
|
||||||
|
bundle.getPublished().setToCurrentTimeInLocalTimeZone();
|
||||||
|
bundle.getLinkBase().setValue(theServerBase);
|
||||||
|
bundle.getLinkSelf().setValue(theCompleteUrl);
|
||||||
|
|
||||||
|
for (IResource next : theResult) {
|
||||||
|
BundleEntry entry = new BundleEntry();
|
||||||
|
bundle.getEntries().add(entry);
|
||||||
|
|
||||||
|
entry.setResource(next);
|
||||||
|
|
||||||
|
RuntimeResourceDefinition def = getContext().getResourceDefinition(next);
|
||||||
|
|
||||||
|
if (next.getId() != null && StringUtils.isNotBlank(next.getId().getValue())) {
|
||||||
|
entry.getEntryId().setValue(next.getId().getValue());
|
||||||
|
entry.getTitle().setValue(def.getName() + " " + next.getId().getValue());
|
||||||
|
|
||||||
|
StringBuilder b = new StringBuilder();
|
||||||
|
b.append(theServerBase);
|
||||||
|
b.append('/');
|
||||||
|
b.append(def.getName());
|
||||||
|
b.append('/');
|
||||||
|
b.append(next.getId().getValue());
|
||||||
|
boolean haveQ = false;
|
||||||
|
if (thePrettyPrint) {
|
||||||
|
b.append('?').append(Constants.PARAM_PRETTY).append("=true");
|
||||||
|
haveQ = true;
|
||||||
|
}
|
||||||
|
if (theResponseEncoding == EncodingUtil.JSON) {
|
||||||
|
if (!haveQ) {
|
||||||
|
b.append('?');
|
||||||
|
haveQ = true;
|
||||||
|
} else {
|
||||||
|
b.append('&');
|
||||||
|
}
|
||||||
|
b.append(Constants.PARAM_FORMAT).append("=json");
|
||||||
|
}
|
||||||
|
if (theNarrativeMode != NarrativeModeEnum.NORMAL) {
|
||||||
|
b.append(Constants.PARAM_NARRATIVE).append("=").append(theNarrativeMode.name().toLowerCase());
|
||||||
|
}
|
||||||
|
entry.getLinkSelf().setValue(b.toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
bundle.getTotalResults().setValue(theResult.size());
|
||||||
|
|
||||||
|
PrintWriter writer = theHttpResponse.getWriter();
|
||||||
|
try {
|
||||||
|
if (theNarrativeMode == NarrativeModeEnum.ONLY) {
|
||||||
|
for (IResource next : theResult) {
|
||||||
|
writer.append(next.getText().getDiv().getValueAsString());
|
||||||
|
writer.append("<hr/>");
|
||||||
|
}
|
||||||
|
} else {
|
||||||
|
getNewParser(theResponseEncoding, thePrettyPrint, theNarrativeMode).encodeBundleToWriter(bundle, writer);
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
writer.close();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void streamResponseAsResource(RestfulServer theServer, HttpServletResponse theHttpResponse, IResource theResource, EncodingUtil theResponseEncoding, boolean thePrettyPrint, boolean theRequestIsBrowser, NarrativeModeEnum theNarrativeMode) throws IOException {
|
||||||
|
|
||||||
|
theHttpResponse.setStatus(200);
|
||||||
|
if (theRequestIsBrowser && theServer.isUseBrowserFriendlyContentTypes()) {
|
||||||
|
theHttpResponse.setContentType(theResponseEncoding.getBrowserFriendlyBundleContentType());
|
||||||
|
} else if (theNarrativeMode == NarrativeModeEnum.ONLY) {
|
||||||
|
theHttpResponse.setContentType(Constants.CT_HTML);
|
||||||
|
} else {
|
||||||
|
theHttpResponse.setContentType(theResponseEncoding.getResourceContentType());
|
||||||
|
}
|
||||||
|
theHttpResponse.setCharacterEncoding("UTF-8");
|
||||||
|
|
||||||
|
PrintWriter writer = theHttpResponse.getWriter();
|
||||||
|
try {
|
||||||
|
if (theNarrativeMode == NarrativeModeEnum.ONLY) {
|
||||||
|
writer.append(theResource.getText().getDiv().getValueAsString());
|
||||||
|
} else {
|
||||||
|
getNewParser(theResponseEncoding, thePrettyPrint, theNarrativeMode).encodeResourceToWriter(theResource, writer);
|
||||||
|
}
|
||||||
|
} finally {
|
||||||
|
writer.close();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum MethodReturnTypeEnum {
|
||||||
|
BUNDLE, LIST_OF_RESOURCES, RESOURCE
|
||||||
|
}
|
||||||
|
|
||||||
|
public enum ReturnTypeEnum {
|
||||||
|
BUNDLE, RESOURCE
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -6,6 +6,7 @@ import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import ca.uhn.fhir.context.ConfigurationException;
|
import ca.uhn.fhir.context.ConfigurationException;
|
||||||
|
import ca.uhn.fhir.context.FhirContext;
|
||||||
import ca.uhn.fhir.model.api.IResource;
|
import ca.uhn.fhir.model.api.IResource;
|
||||||
import ca.uhn.fhir.model.dstu.resource.Conformance;
|
import ca.uhn.fhir.model.dstu.resource.Conformance;
|
||||||
import ca.uhn.fhir.model.dstu.valueset.RestfulOperationSystemEnum;
|
import ca.uhn.fhir.model.dstu.valueset.RestfulOperationSystemEnum;
|
||||||
|
@ -17,18 +18,14 @@ import ca.uhn.fhir.rest.server.IResourceProvider;
|
||||||
import ca.uhn.fhir.rest.server.exceptions.InternalErrorException;
|
import ca.uhn.fhir.rest.server.exceptions.InternalErrorException;
|
||||||
import ca.uhn.fhir.rest.server.exceptions.InvalidRequestException;
|
import ca.uhn.fhir.rest.server.exceptions.InvalidRequestException;
|
||||||
|
|
||||||
public class ConformanceMethodBinding extends BaseMethodBinding {
|
public class ConformanceMethodBinding extends BaseResourceReturningMethodBinding {
|
||||||
|
|
||||||
private Method myMethod;
|
public ConformanceMethodBinding(Method theMethod, FhirContext theContext) {
|
||||||
|
super(Conformance.class, theMethod, theContext);
|
||||||
public ConformanceMethodBinding(MethodReturnTypeEnum theMethodReturnType, Class<? extends IResource> theReturnType, Method theMethod) {
|
|
||||||
super(theMethodReturnType, Conformance.class);
|
|
||||||
|
|
||||||
if (theMethodReturnType != MethodReturnTypeEnum.RESOURCE) {
|
if (getMethodReturnType() != MethodReturnTypeEnum.RESOURCE) {
|
||||||
throw new ConfigurationException("Conformance resource provider '" + theMethod.getName() + "' should return type " + Conformance.class);
|
throw new ConfigurationException("Conformance resource provider '" + theMethod.getName() + "' should return type " + Conformance.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
myMethod = theMethod;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -45,7 +42,7 @@ public class ConformanceMethodBinding extends BaseMethodBinding {
|
||||||
public List<IResource> invokeServer(IResourceProvider theResourceProvider, IdDt theId, IdDt theVersionId, Map<String, String[]> theParameterValues) throws InvalidRequestException, InternalErrorException {
|
public List<IResource> invokeServer(IResourceProvider theResourceProvider, IdDt theId, IdDt theVersionId, Map<String, String[]> theParameterValues) throws InvalidRequestException, InternalErrorException {
|
||||||
IResource conf;
|
IResource conf;
|
||||||
try {
|
try {
|
||||||
conf = (Conformance) myMethod.invoke(theResourceProvider);
|
conf = (Conformance) getMethod().invoke(theResourceProvider);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new InternalErrorException("Failed to call access method",e);
|
throw new InternalErrorException("Failed to call access method",e);
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,70 @@
|
||||||
|
package ca.uhn.fhir.rest.method;
|
||||||
|
|
||||||
|
import java.io.IOException;
|
||||||
|
import java.io.Reader;
|
||||||
|
import java.lang.reflect.Method;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
|
import ca.uhn.fhir.context.FhirContext;
|
||||||
|
import ca.uhn.fhir.model.dstu.valueset.RestfulOperationSystemEnum;
|
||||||
|
import ca.uhn.fhir.model.dstu.valueset.RestfulOperationTypeEnum;
|
||||||
|
import ca.uhn.fhir.rest.client.GetClientInvocation;
|
||||||
|
import ca.uhn.fhir.rest.method.SearchMethodBinding.RequestType;
|
||||||
|
import ca.uhn.fhir.rest.server.RestfulServer;
|
||||||
|
import ca.uhn.fhir.rest.server.exceptions.BaseServerResponseException;
|
||||||
|
import ca.uhn.fhir.rest.server.exceptions.InternalErrorException;
|
||||||
|
|
||||||
|
public class CreateMethodBinding extends BaseMethodBinding {
|
||||||
|
|
||||||
|
public CreateMethodBinding(Method theMethod, FhirContext theContext) {
|
||||||
|
super(theMethod, theContext);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public GetClientInvocation invokeClient(Object[] theArgs) throws InternalErrorException {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public RestfulOperationTypeEnum getResourceOperationType() {
|
||||||
|
return RestfulOperationTypeEnum.CREATE;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public RestfulOperationSystemEnum getSystemOperationType() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public boolean matches(Request theRequest) {
|
||||||
|
if (theRequest.getRequestType()!= RequestType.POST) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (StringUtils.isBlank(theRequest.getResourceName())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if (StringUtils.isNotBlank(theRequest.getOperation())) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void invokeServer(RestfulServer theServer, Request theRequest, HttpServletResponse theResponse) throws BaseServerResponseException, IOException {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public Object invokeClient(String theResponseMimeType, Reader theResponseReader, int theResponseStatusCode) throws IOException {
|
||||||
|
// TODO Auto-generated method stub
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -7,6 +7,7 @@ import java.util.Map;
|
||||||
import org.apache.commons.lang3.Validate;
|
import org.apache.commons.lang3.Validate;
|
||||||
|
|
||||||
import ca.uhn.fhir.context.ConfigurationException;
|
import ca.uhn.fhir.context.ConfigurationException;
|
||||||
|
import ca.uhn.fhir.context.FhirContext;
|
||||||
import ca.uhn.fhir.model.api.IResource;
|
import ca.uhn.fhir.model.api.IResource;
|
||||||
import ca.uhn.fhir.model.dstu.valueset.RestfulOperationSystemEnum;
|
import ca.uhn.fhir.model.dstu.valueset.RestfulOperationSystemEnum;
|
||||||
import ca.uhn.fhir.model.dstu.valueset.RestfulOperationTypeEnum;
|
import ca.uhn.fhir.model.dstu.valueset.RestfulOperationTypeEnum;
|
||||||
|
@ -18,26 +19,24 @@ import ca.uhn.fhir.rest.server.IResourceProvider;
|
||||||
import ca.uhn.fhir.rest.server.exceptions.InternalErrorException;
|
import ca.uhn.fhir.rest.server.exceptions.InternalErrorException;
|
||||||
import ca.uhn.fhir.rest.server.exceptions.InvalidRequestException;
|
import ca.uhn.fhir.rest.server.exceptions.InvalidRequestException;
|
||||||
|
|
||||||
public class ReadMethodBinding extends BaseMethodBinding {
|
public class ReadMethodBinding extends BaseResourceReturningMethodBinding {
|
||||||
private static final org.slf4j.Logger ourLog = org.slf4j.LoggerFactory.getLogger(ReadMethodBinding.class);
|
private static final org.slf4j.Logger ourLog = org.slf4j.LoggerFactory.getLogger(ReadMethodBinding.class);
|
||||||
|
|
||||||
private Method myMethod;
|
|
||||||
private Integer myIdIndex;
|
private Integer myIdIndex;
|
||||||
private Integer myVersionIdIndex;
|
private Integer myVersionIdIndex;
|
||||||
private int myParameterCount;
|
private int myParameterCount;
|
||||||
|
|
||||||
public ReadMethodBinding(MethodReturnTypeEnum theMethodReturnType, Class<? extends IResource> theAnnotatedResourceType, Method theMethod) {
|
public ReadMethodBinding(Class<? extends IResource> theAnnotatedResourceType, Method theMethod, FhirContext theContext) {
|
||||||
super(theMethodReturnType, theAnnotatedResourceType);
|
super( theAnnotatedResourceType, theMethod, theContext);
|
||||||
|
|
||||||
Validate.notNull(theMethod, "Method must not be null");
|
Validate.notNull(theMethod, "Method must not be null");
|
||||||
|
|
||||||
Integer idIndex = Util.findReadIdParameterIndex(theMethod);
|
Integer idIndex = Util.findReadIdParameterIndex(theMethod);
|
||||||
Integer versionIdIndex = Util.findReadVersionIdParameterIndex(theMethod);
|
Integer versionIdIndex = Util.findReadVersionIdParameterIndex(theMethod);
|
||||||
|
|
||||||
myMethod = theMethod;
|
|
||||||
myIdIndex = idIndex;
|
myIdIndex = idIndex;
|
||||||
myVersionIdIndex = versionIdIndex;
|
myVersionIdIndex = versionIdIndex;
|
||||||
myParameterCount = myMethod.getParameterTypes().length;
|
myParameterCount = getMethod().getParameterTypes().length;
|
||||||
|
|
||||||
Class<?>[] parameterTypes = theMethod.getParameterTypes();
|
Class<?>[] parameterTypes = theMethod.getParameterTypes();
|
||||||
if (!IdDt.class.equals(parameterTypes[myIdIndex])) {
|
if (!IdDt.class.equals(parameterTypes[myIdIndex])) {
|
||||||
|
@ -58,8 +57,10 @@ public class ReadMethodBinding extends BaseMethodBinding {
|
||||||
if (!theRequest.getResourceName().equals(getResourceName())) {
|
if (!theRequest.getResourceName().equals(getResourceName())) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (theRequest.getParameterNames().isEmpty() == false) {
|
for (String next : theRequest.getParameters().keySet()) {
|
||||||
return false;
|
if (!ALLOWED_PARAMS.contains(next)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if ((theRequest.getVersion() == null) != (myVersionIdIndex == null)) {
|
if ((theRequest.getVersion() == null) != (myVersionIdIndex == null)) {
|
||||||
return false;
|
return false;
|
||||||
|
@ -90,7 +91,7 @@ public class ReadMethodBinding extends BaseMethodBinding {
|
||||||
|
|
||||||
Object response;
|
Object response;
|
||||||
try {
|
try {
|
||||||
response = myMethod.invoke(theResourceProvider, params);
|
response = getMethod().invoke(theResourceProvider, params);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
throw new InternalErrorException("Failed to call access method",e);
|
throw new InternalErrorException("Failed to call access method",e);
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,31 +1,52 @@
|
||||||
package ca.uhn.fhir.rest.method;
|
package ca.uhn.fhir.rest.method;
|
||||||
|
|
||||||
|
import java.io.Reader;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
|
||||||
import ca.uhn.fhir.model.primitive.IdDt;
|
import ca.uhn.fhir.model.primitive.IdDt;
|
||||||
import ca.uhn.fhir.rest.method.SearchMethodBinding.RequestType;
|
import ca.uhn.fhir.rest.method.SearchMethodBinding.RequestType;
|
||||||
|
import ca.uhn.fhir.rest.server.IResourceProvider;
|
||||||
|
|
||||||
public class Request {
|
public class Request {
|
||||||
|
|
||||||
|
private String myCompleteUrl;
|
||||||
|
private String myFhirServerBase;
|
||||||
private IdDt myId;
|
private IdDt myId;
|
||||||
|
private Reader myInputReader;
|
||||||
private String myOperation;
|
private String myOperation;
|
||||||
private Map<String, String[]> myParameterNames;
|
private Map<String, String[]> myParameters;
|
||||||
private RequestType myRequestType;
|
private RequestType myRequestType;
|
||||||
private String myResourceName;
|
private String myResourceName;
|
||||||
|
private IResourceProvider myResourceProvider;
|
||||||
private IdDt myVersion;
|
private IdDt myVersion;
|
||||||
|
private HttpServletRequest myServletRequest;
|
||||||
|
|
||||||
|
public String getCompleteUrl() {
|
||||||
|
return myCompleteUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
public String getFhirServerBase() {
|
||||||
|
return myFhirServerBase;
|
||||||
|
}
|
||||||
|
|
||||||
public IdDt getId() {
|
public IdDt getId() {
|
||||||
return myId;
|
return myId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Reader getInputReader() {
|
||||||
|
return myInputReader;
|
||||||
|
}
|
||||||
|
|
||||||
public String getOperation() {
|
public String getOperation() {
|
||||||
return myOperation;
|
return myOperation;
|
||||||
}
|
}
|
||||||
|
|
||||||
public Map<String, String[]> getParameterNames() {
|
public Map<String, String[]> getParameters() {
|
||||||
return myParameterNames;
|
return myParameters;
|
||||||
}
|
}
|
||||||
|
|
||||||
public RequestType getRequestType() {
|
public RequestType getRequestType() {
|
||||||
|
@ -36,22 +57,40 @@ public class Request {
|
||||||
return myResourceName;
|
return myResourceName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public IResourceProvider getResourceProvider() {
|
||||||
|
return myResourceProvider;
|
||||||
|
}
|
||||||
|
|
||||||
public IdDt getVersion() {
|
public IdDt getVersion() {
|
||||||
return myVersion;
|
return myVersion;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public void setCompleteUrl(String theCompleteUrl) {
|
||||||
|
myCompleteUrl=theCompleteUrl;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setFhirServerBase(String theFhirServerBase) {
|
||||||
|
myFhirServerBase=theFhirServerBase;
|
||||||
|
}
|
||||||
|
|
||||||
public void setId(IdDt theId) {
|
public void setId(IdDt theId) {
|
||||||
myId = theId;
|
myId = theId;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setInputReader(Reader theReader) {
|
||||||
|
myInputReader=theReader;
|
||||||
|
}
|
||||||
|
|
||||||
public void setOperation(String theOperation) {
|
public void setOperation(String theOperation) {
|
||||||
myOperation = theOperation;
|
myOperation = theOperation;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setParameterNames(Map<String, String[]> theParams) {
|
public void setParameters(Map<String, String[]> theParams) {
|
||||||
myParameterNames = theParams;
|
myParameters = theParams;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public void setRequestType(RequestType theRequestType) {
|
public void setRequestType(RequestType theRequestType) {
|
||||||
myRequestType = theRequestType;
|
myRequestType = theRequestType;
|
||||||
}
|
}
|
||||||
|
@ -60,6 +99,10 @@ public class Request {
|
||||||
myResourceName = theResourceName;
|
myResourceName = theResourceName;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setResourceProvider(IResourceProvider theResourceProvider) {
|
||||||
|
myResourceProvider=theResourceProvider;
|
||||||
|
}
|
||||||
|
|
||||||
public void setVersion(IdDt theVersion) {
|
public void setVersion(IdDt theVersion) {
|
||||||
myVersion = theVersion;
|
myVersion = theVersion;
|
||||||
}
|
}
|
||||||
|
@ -72,8 +115,16 @@ public class Request {
|
||||||
for (String next : theParamNames) {
|
for (String next : theParamNames) {
|
||||||
paramNames.put(next, new String[0]);
|
paramNames.put(next, new String[0]);
|
||||||
}
|
}
|
||||||
retVal.setParameterNames(paramNames);
|
retVal.setParameters(paramNames);
|
||||||
return retVal;
|
return retVal;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void setServletRequest(HttpServletRequest theRequest) {
|
||||||
|
myServletRequest=theRequest;
|
||||||
|
}
|
||||||
|
|
||||||
|
public HttpServletRequest getServletRequest() {
|
||||||
|
return myServletRequest;
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,6 +12,7 @@ import java.util.Set;
|
||||||
|
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
|
import ca.uhn.fhir.context.FhirContext;
|
||||||
import ca.uhn.fhir.model.api.IResource;
|
import ca.uhn.fhir.model.api.IResource;
|
||||||
import ca.uhn.fhir.model.dstu.valueset.RestfulOperationSystemEnum;
|
import ca.uhn.fhir.model.dstu.valueset.RestfulOperationSystemEnum;
|
||||||
import ca.uhn.fhir.model.dstu.valueset.RestfulOperationTypeEnum;
|
import ca.uhn.fhir.model.dstu.valueset.RestfulOperationTypeEnum;
|
||||||
|
@ -27,17 +28,15 @@ import ca.uhn.fhir.util.QueryUtil;
|
||||||
/**
|
/**
|
||||||
* Created by dsotnikov on 2/25/2014.
|
* Created by dsotnikov on 2/25/2014.
|
||||||
*/
|
*/
|
||||||
public class SearchMethodBinding extends BaseMethodBinding {
|
public class SearchMethodBinding extends BaseResourceReturningMethodBinding {
|
||||||
private static final org.slf4j.Logger ourLog = org.slf4j.LoggerFactory.getLogger(SearchMethodBinding.class);
|
private static final org.slf4j.Logger ourLog = org.slf4j.LoggerFactory.getLogger(SearchMethodBinding.class);
|
||||||
|
|
||||||
private Method myMethod;
|
|
||||||
private Class<?> myDeclaredResourceType;
|
private Class<?> myDeclaredResourceType;
|
||||||
private List<IParameter> myParameters;
|
private List<IParameter> myParameters;
|
||||||
private String myQueryName;
|
private String myQueryName;
|
||||||
|
|
||||||
public SearchMethodBinding(MethodReturnTypeEnum theMethodReturnTypeEnum, Class<? extends IResource> theReturnResourceType, Method theMethod, String theQueryName) {
|
public SearchMethodBinding(Class<? extends IResource> theReturnResourceType, Method theMethod, String theQueryName, FhirContext theContext) {
|
||||||
super(theMethodReturnTypeEnum, theReturnResourceType);
|
super(theReturnResourceType, theMethod, theContext);
|
||||||
this.myMethod = theMethod;
|
|
||||||
this.myParameters = Util.getResourceParameters(theMethod);
|
this.myParameters = Util.getResourceParameters(theMethod);
|
||||||
this.myQueryName = StringUtils.defaultIfBlank(theQueryName, null);
|
this.myQueryName = StringUtils.defaultIfBlank(theQueryName, null);
|
||||||
this.myDeclaredResourceType = theMethod.getReturnType();
|
this.myDeclaredResourceType = theMethod.getReturnType();
|
||||||
|
@ -47,19 +46,25 @@ public class SearchMethodBinding extends BaseMethodBinding {
|
||||||
return myDeclaredResourceType.getClass();
|
return myDeclaredResourceType.getClass();
|
||||||
}
|
}
|
||||||
|
|
||||||
public Method getMethod() {
|
|
||||||
return myMethod;
|
|
||||||
}
|
|
||||||
|
|
||||||
public List<IParameter> getParameters() {
|
public List<IParameter> getParameters() {
|
||||||
return myParameters;
|
return myParameters;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public RestfulOperationTypeEnum getResourceOperationType() {
|
||||||
|
return RestfulOperationTypeEnum.SEARCH_TYPE;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public ReturnTypeEnum getReturnType() {
|
public ReturnTypeEnum getReturnType() {
|
||||||
return ReturnTypeEnum.BUNDLE;
|
return ReturnTypeEnum.BUNDLE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public RestfulOperationSystemEnum getSystemOperationType() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public GetClientInvocation invokeClient(Object[] theArgs) throws InternalErrorException {
|
public GetClientInvocation invokeClient(Object[] theArgs) throws InternalErrorException {
|
||||||
assert (myQueryName == null || ((theArgs != null ? theArgs.length : 0) == myParameters.size())) : "Wrong number of arguments: " + theArgs;
|
assert (myQueryName == null || ((theArgs != null ? theArgs.length : 0) == myParameters.size())) : "Wrong number of arguments: " + theArgs;
|
||||||
|
@ -135,7 +140,7 @@ public class SearchMethodBinding extends BaseMethodBinding {
|
||||||
|
|
||||||
Object response;
|
Object response;
|
||||||
try {
|
try {
|
||||||
response = this.myMethod.invoke(theResourceProvider, params);
|
response = this.getMethod().invoke(theResourceProvider, params);
|
||||||
} catch (IllegalAccessException e) {
|
} catch (IllegalAccessException e) {
|
||||||
throw new InternalErrorException(e);
|
throw new InternalErrorException(e);
|
||||||
} catch (IllegalArgumentException e) {
|
} catch (IllegalArgumentException e) {
|
||||||
|
@ -151,7 +156,7 @@ public class SearchMethodBinding extends BaseMethodBinding {
|
||||||
@Override
|
@Override
|
||||||
public boolean matches(Request theRequest) {
|
public boolean matches(Request theRequest) {
|
||||||
if (!theRequest.getResourceName().equals(getResourceName())) {
|
if (!theRequest.getResourceName().equals(getResourceName())) {
|
||||||
ourLog.trace("Method {} doesn't match because resource name {} != {}", myMethod.getName(), theRequest.getResourceName(), getResourceName());
|
ourLog.trace("Method {} doesn't match because resource name {} != {}", getMethod().getName(), theRequest.getResourceName(), getResourceName());
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
if (theRequest.getId() != null || theRequest.getVersion() != null) {
|
if (theRequest.getId() != null || theRequest.getVersion() != null) {
|
||||||
|
@ -171,13 +176,13 @@ public class SearchMethodBinding extends BaseMethodBinding {
|
||||||
for (int i = 0; i < this.myParameters.size(); i++) {
|
for (int i = 0; i < this.myParameters.size(); i++) {
|
||||||
IParameter temp = this.myParameters.get(i);
|
IParameter temp = this.myParameters.get(i);
|
||||||
methodParamsTemp.add(temp.getName());
|
methodParamsTemp.add(temp.getName());
|
||||||
if (temp.isRequired() && !theRequest.getParameterNames().containsKey(temp.getName())) {
|
if (temp.isRequired() && !theRequest.getParameters().containsKey(temp.getName())) {
|
||||||
ourLog.trace("Method {} doesn't match param '{}' is not present", myMethod.getName(), temp.getName());
|
ourLog.trace("Method {} doesn't match param '{}' is not present", getMethod().getName(), temp.getName());
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (myQueryName != null) {
|
if (myQueryName != null) {
|
||||||
String[] queryNameValues = theRequest.getParameterNames().get(Constants.PARAM_QUERY);
|
String[] queryNameValues = theRequest.getParameters().get(Constants.PARAM_QUERY);
|
||||||
if (queryNameValues != null && StringUtils.isNotBlank(queryNameValues[0])) {
|
if (queryNameValues != null && StringUtils.isNotBlank(queryNameValues[0])) {
|
||||||
String queryName = queryNameValues[0];
|
String queryName = queryNameValues[0];
|
||||||
if (!myQueryName.equals(queryName)) {
|
if (!myQueryName.equals(queryName)) {
|
||||||
|
@ -191,17 +196,18 @@ public class SearchMethodBinding extends BaseMethodBinding {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
boolean retVal = methodParamsTemp.containsAll(theRequest.getParameterNames().keySet());
|
for (String next : theRequest.getParameters().keySet()) {
|
||||||
|
if (ALLOWED_PARAMS.contains(next)) {
|
||||||
|
methodParamsTemp.add(next);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
boolean retVal = methodParamsTemp.containsAll(theRequest.getParameters().keySet());
|
||||||
|
|
||||||
ourLog.trace("Method {} matches: {}", myMethod.getName(), retVal);
|
ourLog.trace("Method {} matches: {}", getMethod().getName(), retVal);
|
||||||
|
|
||||||
return retVal;
|
return retVal;
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setMethod(Method method) {
|
|
||||||
this.myMethod = method;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setParameters(List<IParameter> parameters) {
|
public void setParameters(List<IParameter> parameters) {
|
||||||
this.myParameters = parameters;
|
this.myParameters = parameters;
|
||||||
}
|
}
|
||||||
|
@ -211,17 +217,7 @@ public class SearchMethodBinding extends BaseMethodBinding {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static enum RequestType {
|
public static enum RequestType {
|
||||||
DELETE, GET, POST, PUT, OPTIONS
|
DELETE, GET, OPTIONS, POST, PUT
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public RestfulOperationTypeEnum getResourceOperationType() {
|
|
||||||
return RestfulOperationTypeEnum.SEARCH_TYPE;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public RestfulOperationSystemEnum getSystemOperationType() {
|
|
||||||
return null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -12,10 +12,11 @@ import java.util.Map;
|
||||||
|
|
||||||
import ca.uhn.fhir.context.ConfigurationException;
|
import ca.uhn.fhir.context.ConfigurationException;
|
||||||
import ca.uhn.fhir.model.api.PathSpecification;
|
import ca.uhn.fhir.model.api.PathSpecification;
|
||||||
|
import ca.uhn.fhir.rest.annotation.Id;
|
||||||
import ca.uhn.fhir.rest.annotation.Include;
|
import ca.uhn.fhir.rest.annotation.Include;
|
||||||
import ca.uhn.fhir.rest.annotation.Optional;
|
import ca.uhn.fhir.rest.annotation.Optional;
|
||||||
import ca.uhn.fhir.rest.annotation.Read;
|
|
||||||
import ca.uhn.fhir.rest.annotation.Required;
|
import ca.uhn.fhir.rest.annotation.Required;
|
||||||
|
import ca.uhn.fhir.rest.annotation.VersionId;
|
||||||
import ca.uhn.fhir.rest.param.CollectionBinder;
|
import ca.uhn.fhir.rest.param.CollectionBinder;
|
||||||
import ca.uhn.fhir.rest.param.IParameter;
|
import ca.uhn.fhir.rest.param.IParameter;
|
||||||
import ca.uhn.fhir.rest.param.IncludeParameter;
|
import ca.uhn.fhir.rest.param.IncludeParameter;
|
||||||
|
@ -107,11 +108,11 @@ class Util {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Integer findReadIdParameterIndex(Method theMethod) {
|
public static Integer findReadIdParameterIndex(Method theMethod) {
|
||||||
return findParamIndex(theMethod, Read.IdParam.class);
|
return findParamIndex(theMethod, Id.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static Integer findReadVersionIdParameterIndex(Method theMethod) {
|
public static Integer findReadVersionIdParameterIndex(Method theMethod) {
|
||||||
return findParamIndex(theMethod, Read.VersionIdParam.class);
|
return findParamIndex(theMethod, VersionId.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
private static Integer findParamIndex(Method theMethod, Class<?> toFind) {
|
private static Integer findParamIndex(Method theMethod, Class<?> toFind) {
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package ca.uhn.fhir.rest.server;
|
package ca.uhn.fhir.rest.server;
|
||||||
|
|
||||||
enum EncodingUtil {
|
public enum EncodingUtil {
|
||||||
|
|
||||||
XML(Constants.CT_FHIR_XML, Constants.CT_ATOM_XML, Constants.CT_XML),
|
XML(Constants.CT_FHIR_XML, Constants.CT_ATOM_XML, Constants.CT_XML),
|
||||||
|
|
||||||
|
|
|
@ -1,16 +1,12 @@
|
||||||
package ca.uhn.fhir.rest.server;
|
package ca.uhn.fhir.rest.server;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.PrintWriter;
|
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
import java.lang.reflect.Modifier;
|
import java.lang.reflect.Modifier;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
import java.util.Enumeration;
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.StringTokenizer;
|
import java.util.StringTokenizer;
|
||||||
import java.util.UUID;
|
|
||||||
|
|
||||||
import javax.servlet.ServletException;
|
import javax.servlet.ServletException;
|
||||||
import javax.servlet.http.HttpServlet;
|
import javax.servlet.http.HttpServlet;
|
||||||
|
@ -21,12 +17,9 @@ import org.apache.commons.lang3.StringUtils;
|
||||||
|
|
||||||
import ca.uhn.fhir.context.FhirContext;
|
import ca.uhn.fhir.context.FhirContext;
|
||||||
import ca.uhn.fhir.context.RuntimeResourceDefinition;
|
import ca.uhn.fhir.context.RuntimeResourceDefinition;
|
||||||
import ca.uhn.fhir.model.api.Bundle;
|
|
||||||
import ca.uhn.fhir.model.api.BundleEntry;
|
|
||||||
import ca.uhn.fhir.model.api.IResource;
|
import ca.uhn.fhir.model.api.IResource;
|
||||||
import ca.uhn.fhir.model.primitive.IdDt;
|
import ca.uhn.fhir.model.primitive.IdDt;
|
||||||
import ca.uhn.fhir.narrative.INarrativeGenerator;
|
import ca.uhn.fhir.narrative.INarrativeGenerator;
|
||||||
import ca.uhn.fhir.parser.IParser;
|
|
||||||
import ca.uhn.fhir.rest.method.BaseMethodBinding;
|
import ca.uhn.fhir.rest.method.BaseMethodBinding;
|
||||||
import ca.uhn.fhir.rest.method.Request;
|
import ca.uhn.fhir.rest.method.Request;
|
||||||
import ca.uhn.fhir.rest.method.SearchMethodBinding;
|
import ca.uhn.fhir.rest.method.SearchMethodBinding;
|
||||||
|
@ -35,7 +28,6 @@ import ca.uhn.fhir.rest.server.exceptions.BaseServerResponseException;
|
||||||
import ca.uhn.fhir.rest.server.exceptions.InternalErrorException;
|
import ca.uhn.fhir.rest.server.exceptions.InternalErrorException;
|
||||||
import ca.uhn.fhir.rest.server.exceptions.InvalidRequestException;
|
import ca.uhn.fhir.rest.server.exceptions.InvalidRequestException;
|
||||||
import ca.uhn.fhir.rest.server.exceptions.MethodNotFoundException;
|
import ca.uhn.fhir.rest.server.exceptions.MethodNotFoundException;
|
||||||
import ca.uhn.fhir.rest.server.exceptions.ResourceNotFoundException;
|
|
||||||
import ca.uhn.fhir.rest.server.provider.ServerConformanceProvider;
|
import ca.uhn.fhir.rest.server.provider.ServerConformanceProvider;
|
||||||
import ca.uhn.fhir.rest.server.provider.ServerProfileProvider;
|
import ca.uhn.fhir.rest.server.provider.ServerProfileProvider;
|
||||||
|
|
||||||
|
@ -47,133 +39,22 @@ public abstract class RestfulServer extends HttpServlet {
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
private FhirContext myFhirContext;
|
private FhirContext myFhirContext;
|
||||||
private boolean myUseBrowserFriendlyContentTypes;
|
|
||||||
private INarrativeGenerator myNarrativeGenerator;
|
private INarrativeGenerator myNarrativeGenerator;
|
||||||
|
|
||||||
public INarrativeGenerator getNarrativeGenerator() {
|
|
||||||
return myNarrativeGenerator;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Sets the {@link INarrativeGenerator Narrative Generator} to use when serializing responses from this server, or <code>null</code> (which is the default) to disable narrative generation.
|
|
||||||
*
|
|
||||||
* @throws IllegalStateException
|
|
||||||
* Note that this method can only be called prior to {@link #init() initialization} and will throw an {@link IllegalStateException} if called after that.
|
|
||||||
*/
|
|
||||||
public void setNarrativeGenerator(INarrativeGenerator theNarrativeGenerator) {
|
|
||||||
if (myFhirContext != null) {
|
|
||||||
throw new IllegalStateException("Server has already been initialized, can not change this property");
|
|
||||||
}
|
|
||||||
myNarrativeGenerator = theNarrativeGenerator;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* If set to <code>true</code> (default is false), the server will use browser friendly content-types (instead of standard FHIR ones) when it detects that the request is coming from a browser
|
|
||||||
* instead of a FHIR
|
|
||||||
*/
|
|
||||||
public void setUseBrowserFriendlyContentTypes(boolean theUseBrowserFriendlyContentTypes) {
|
|
||||||
myUseBrowserFriendlyContentTypes = theUseBrowserFriendlyContentTypes;
|
|
||||||
}
|
|
||||||
|
|
||||||
private Map<Class<? extends IResource>, IResourceProvider> myTypeToProvider = new HashMap<Class<? extends IResource>, IResourceProvider>();
|
private Map<Class<? extends IResource>, IResourceProvider> myTypeToProvider = new HashMap<Class<? extends IResource>, IResourceProvider>();
|
||||||
|
private boolean myUseBrowserFriendlyContentTypes;
|
||||||
|
|
||||||
// map of request handler resources keyed by resource name
|
// map of request handler resources keyed by resource name
|
||||||
private Map<String, ResourceBinding> resources = new HashMap<String, ResourceBinding>();
|
private Map<String, ResourceBinding> resources = new HashMap<String, ResourceBinding>();
|
||||||
|
|
||||||
private ISecurityManager securityManager;
|
private ISecurityManager securityManager;
|
||||||
|
|
||||||
private EncodingUtil determineResponseEncoding(HttpServletRequest theRequest, Map<String, String[]> theParams) {
|
|
||||||
String[] format = theParams.remove(Constants.PARAM_FORMAT);
|
|
||||||
if (format != null) {
|
|
||||||
for (String nextFormat : format) {
|
|
||||||
EncodingUtil retVal = Constants.FORMAT_VAL_TO_ENCODING.get(nextFormat);
|
|
||||||
if (retVal != null) {
|
|
||||||
return retVal;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
Enumeration<String> acceptValues = theRequest.getHeaders("Accept");
|
|
||||||
if (acceptValues != null) {
|
|
||||||
while (acceptValues.hasMoreElements()) {
|
|
||||||
EncodingUtil retVal = Constants.FORMAT_VAL_TO_ENCODING.get(acceptValues.nextElement());
|
|
||||||
if (retVal != null) {
|
|
||||||
return retVal;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return EncodingUtil.XML;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void doDelete(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
|
|
||||||
handleRequest(SearchMethodBinding.RequestType.DELETE, request, response);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
|
|
||||||
handleRequest(SearchMethodBinding.RequestType.GET, request, response);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void doOptions(HttpServletRequest theReq, HttpServletResponse theResp) throws ServletException, IOException {
|
|
||||||
handleRequest(SearchMethodBinding.RequestType.OPTIONS, theReq, theResp);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
|
|
||||||
handleRequest(SearchMethodBinding.RequestType.POST, request, response);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected void doPut(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
|
|
||||||
handleRequest(SearchMethodBinding.RequestType.PUT, request, response);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void findResourceMethods(IResourceProvider theProvider) throws Exception {
|
|
||||||
|
|
||||||
Class<? extends IResource> resourceType = theProvider.getResourceType();
|
|
||||||
RuntimeResourceDefinition definition = myFhirContext.getResourceDefinition(resourceType);
|
|
||||||
|
|
||||||
ResourceBinding r = new ResourceBinding();
|
|
||||||
r.setResourceProvider(theProvider);
|
|
||||||
r.setResourceName(definition.getName());
|
|
||||||
resources.put(definition.getName(), r);
|
|
||||||
|
|
||||||
ourLog.info("Scanning type for RESTful methods: {}", theProvider.getClass());
|
|
||||||
|
|
||||||
Class<?> clazz = theProvider.getClass();
|
|
||||||
for (Method m : clazz.getDeclaredMethods()) {
|
|
||||||
if (Modifier.isPublic(m.getModifiers())) {
|
|
||||||
ourLog.debug("Scanning public method: {}#{}", theProvider.getClass(), m.getName());
|
|
||||||
|
|
||||||
BaseMethodBinding foundMethodBinding = BaseMethodBinding.bindMethod(theProvider.getResourceType(), m);
|
|
||||||
if (foundMethodBinding != null) {
|
|
||||||
r.addMethod(foundMethodBinding);
|
|
||||||
ourLog.info(" * Method: {}#{} is a handler", theProvider.getClass(), m.getName());
|
|
||||||
} else {
|
|
||||||
ourLog.debug(" * Method: {}#{} is not a handler", theProvider.getClass(), m.getName());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public FhirContext getFhirContext() {
|
public FhirContext getFhirContext() {
|
||||||
return myFhirContext;
|
return myFhirContext;
|
||||||
}
|
}
|
||||||
|
|
||||||
private IParser getNewParser(EncodingUtil theResponseEncoding, boolean thePrettyPrint, NarrativeModeEnum theNarrativeMode) {
|
public INarrativeGenerator getNarrativeGenerator() {
|
||||||
IParser parser;
|
return myNarrativeGenerator;
|
||||||
switch (theResponseEncoding) {
|
|
||||||
case JSON:
|
|
||||||
parser = myFhirContext.newJsonParser();
|
|
||||||
break;
|
|
||||||
case XML:
|
|
||||||
default:
|
|
||||||
parser = myFhirContext.newXmlParser();
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
return parser.setPrettyPrint(thePrettyPrint).setSuppressNarratives(theNarrativeMode == NarrativeModeEnum.SUPPRESS);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Collection<ResourceBinding> getResourceBindings() {
|
public Collection<ResourceBinding> getResourceBindings() {
|
||||||
|
@ -200,14 +81,122 @@ public abstract class RestfulServer extends HttpServlet {
|
||||||
return new ServerProfileProvider(getFhirContext());
|
return new ServerProfileProvider(getFhirContext());
|
||||||
}
|
}
|
||||||
|
|
||||||
public enum NarrativeModeEnum {
|
@Override
|
||||||
NORMAL,
|
public final void init() throws ServletException {
|
||||||
SUPPRESS,
|
initialize();
|
||||||
ONLY;
|
try {
|
||||||
|
ourLog.info("Initializing HAPI FHIR restful server");
|
||||||
public static NarrativeModeEnum valueOfCaseInsensitive(String theCode) {
|
|
||||||
return valueOf(NarrativeModeEnum.class, theCode.toUpperCase());
|
securityManager = getSecurityManager();
|
||||||
|
if (null == securityManager) {
|
||||||
|
ourLog.warn("No security manager has been provided, requests will not be authenticated!");
|
||||||
|
}
|
||||||
|
|
||||||
|
Collection<IResourceProvider> resourceProvider = getResourceProviders();
|
||||||
|
for (IResourceProvider nextProvider : resourceProvider) {
|
||||||
|
if (myTypeToProvider.containsKey(nextProvider.getResourceType())) {
|
||||||
|
throw new ServletException("Multiple providers for type: " + nextProvider.getResourceType().getCanonicalName());
|
||||||
|
}
|
||||||
|
myTypeToProvider.put(nextProvider.getResourceType(), nextProvider);
|
||||||
|
}
|
||||||
|
|
||||||
|
ourLog.info("Got {} resource providers", myTypeToProvider.size());
|
||||||
|
|
||||||
|
myFhirContext = new FhirContext(myTypeToProvider.keySet());
|
||||||
|
myFhirContext.setNarrativeGenerator(myNarrativeGenerator);
|
||||||
|
|
||||||
|
for (IResourceProvider provider : myTypeToProvider.values()) {
|
||||||
|
findResourceMethods(provider);
|
||||||
|
}
|
||||||
|
|
||||||
|
findResourceMethods(getServerProfilesProvider());
|
||||||
|
findResourceMethods(getServerConformanceProvider());
|
||||||
|
|
||||||
|
} catch (Exception ex) {
|
||||||
|
ourLog.error("An error occurred while loading request handlers!", ex);
|
||||||
|
throw new ServletException("Failed to initialize FHIR Restful server", ex);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
ourLog.info("A FHIR has been lit on this server");
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isUseBrowserFriendlyContentTypes() {
|
||||||
|
return myUseBrowserFriendlyContentTypes;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Sets the {@link INarrativeGenerator Narrative Generator} to use when serializing responses from this server, or <code>null</code> (which is the default) to disable narrative generation.
|
||||||
|
*
|
||||||
|
* @throws IllegalStateException
|
||||||
|
* Note that this method can only be called prior to {@link #init() initialization} and will throw an {@link IllegalStateException} if called after that.
|
||||||
|
*/
|
||||||
|
public void setNarrativeGenerator(INarrativeGenerator theNarrativeGenerator) {
|
||||||
|
if (myFhirContext != null) {
|
||||||
|
throw new IllegalStateException("Server has already been initialized, can not change this property");
|
||||||
|
}
|
||||||
|
myNarrativeGenerator = theNarrativeGenerator;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* If set to <code>true</code> (default is false), the server will use browser friendly content-types (instead of standard FHIR ones) when it detects that the request is coming from a browser
|
||||||
|
* instead of a FHIR
|
||||||
|
*/
|
||||||
|
public void setUseBrowserFriendlyContentTypes(boolean theUseBrowserFriendlyContentTypes) {
|
||||||
|
myUseBrowserFriendlyContentTypes = theUseBrowserFriendlyContentTypes;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
private void findResourceMethods(IResourceProvider theProvider) throws Exception {
|
||||||
|
|
||||||
|
Class<? extends IResource> resourceType = theProvider.getResourceType();
|
||||||
|
RuntimeResourceDefinition definition = myFhirContext.getResourceDefinition(resourceType);
|
||||||
|
|
||||||
|
ResourceBinding r = new ResourceBinding();
|
||||||
|
r.setResourceProvider(theProvider);
|
||||||
|
r.setResourceName(definition.getName());
|
||||||
|
resources.put(definition.getName(), r);
|
||||||
|
|
||||||
|
ourLog.info("Scanning type for RESTful methods: {}", theProvider.getClass());
|
||||||
|
|
||||||
|
Class<?> clazz = theProvider.getClass();
|
||||||
|
for (Method m : clazz.getDeclaredMethods()) {
|
||||||
|
if (Modifier.isPublic(m.getModifiers())) {
|
||||||
|
ourLog.debug("Scanning public method: {}#{}", theProvider.getClass(), m.getName());
|
||||||
|
|
||||||
|
BaseMethodBinding foundMethodBinding = BaseMethodBinding.bindMethod(theProvider.getResourceType(), m, myFhirContext);
|
||||||
|
if (foundMethodBinding != null) {
|
||||||
|
r.addMethod(foundMethodBinding);
|
||||||
|
ourLog.info(" * Method: {}#{} is a handler", theProvider.getClass(), m.getName());
|
||||||
|
} else {
|
||||||
|
ourLog.debug(" * Method: {}#{} is not a handler", theProvider.getClass(), m.getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void doDelete(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
|
||||||
|
handleRequest(SearchMethodBinding.RequestType.DELETE, request, response);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
|
||||||
|
handleRequest(SearchMethodBinding.RequestType.GET, request, response);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void doOptions(HttpServletRequest theReq, HttpServletResponse theResp) throws ServletException, IOException {
|
||||||
|
handleRequest(SearchMethodBinding.RequestType.OPTIONS, theReq, theResp);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
|
||||||
|
handleRequest(SearchMethodBinding.RequestType.POST, request, response);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void doPut(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
|
||||||
|
handleRequest(SearchMethodBinding.RequestType.PUT, request, response);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void handleRequest(SearchMethodBinding.RequestType requestType, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
|
protected void handleRequest(SearchMethodBinding.RequestType requestType, HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
|
||||||
|
@ -217,12 +206,6 @@ public abstract class RestfulServer extends HttpServlet {
|
||||||
securityManager.authenticate(request);
|
securityManager.authenticate(request);
|
||||||
}
|
}
|
||||||
|
|
||||||
String uaHeader = request.getHeader("user-agent");
|
|
||||||
boolean requestIsBrowser = false;
|
|
||||||
if (uaHeader != null && uaHeader.contains("Mozilla")) {
|
|
||||||
requestIsBrowser = true;
|
|
||||||
}
|
|
||||||
|
|
||||||
String resourceName = null;
|
String resourceName = null;
|
||||||
String requestFullPath = StringUtils.defaultString(request.getRequestURI());
|
String requestFullPath = StringUtils.defaultString(request.getRequestURI());
|
||||||
// String contextPath = StringUtils.defaultString(request.getContextPath());
|
// String contextPath = StringUtils.defaultString(request.getContextPath());
|
||||||
|
@ -266,24 +249,6 @@ public abstract class RestfulServer extends HttpServlet {
|
||||||
String completeUrl = StringUtils.isNotBlank(request.getQueryString()) ? requestUrl + "?" + request.getQueryString() : requestUrl.toString();
|
String completeUrl = StringUtils.isNotBlank(request.getQueryString()) ? requestUrl + "?" + request.getQueryString() : requestUrl.toString();
|
||||||
|
|
||||||
Map<String, String[]> params = new HashMap<String, String[]>(request.getParameterMap());
|
Map<String, String[]> params = new HashMap<String, String[]>(request.getParameterMap());
|
||||||
EncodingUtil responseEncoding = determineResponseEncoding(request, params);
|
|
||||||
|
|
||||||
String[] pretty = params.remove(Constants.PARAM_PRETTY);
|
|
||||||
boolean prettyPrint = false;
|
|
||||||
if (pretty != null && pretty.length > 0) {
|
|
||||||
if ("true".equals(pretty[0])) {
|
|
||||||
prettyPrint = true;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
String[] narrative = params.remove(Constants.PARAM_NARRATIVE);
|
|
||||||
NarrativeModeEnum narrativeMode = null;
|
|
||||||
if (narrative != null && narrative.length > 0) {
|
|
||||||
narrativeMode = NarrativeModeEnum.valueOfCaseInsensitive(narrative[0]);
|
|
||||||
}
|
|
||||||
if (narrativeMode==null) {
|
|
||||||
narrativeMode = NarrativeModeEnum.NORMAL;
|
|
||||||
}
|
|
||||||
|
|
||||||
StringTokenizer tok = new StringTokenizer(requestPath, "/");
|
StringTokenizer tok = new StringTokenizer(requestPath, "/");
|
||||||
if (!tok.hasMoreTokens()) {
|
if (!tok.hasMoreTokens()) {
|
||||||
|
@ -330,29 +295,20 @@ public abstract class RestfulServer extends HttpServlet {
|
||||||
r.setId(id);
|
r.setId(id);
|
||||||
r.setVersion(versionId);
|
r.setVersion(versionId);
|
||||||
r.setOperation(operation);
|
r.setOperation(operation);
|
||||||
r.setParameterNames(params);
|
r.setParameters(params);
|
||||||
r.setRequestType(requestType);
|
r.setRequestType(requestType);
|
||||||
|
r.setResourceProvider(resourceBinding.getResourceProvider());
|
||||||
|
r.setInputReader(request.getReader());
|
||||||
|
r.setFhirServerBase(fhirServerBase);
|
||||||
|
r.setCompleteUrl(completeUrl);
|
||||||
|
r.setServletRequest(request);
|
||||||
|
|
||||||
BaseMethodBinding resourceMethod = resourceBinding.getMethod(r);
|
BaseMethodBinding resourceMethod = resourceBinding.getMethod(r);
|
||||||
if (null == resourceMethod) {
|
if (null == resourceMethod) {
|
||||||
throw new MethodNotFoundException("No resource method available for the supplied parameters " + params);
|
throw new MethodNotFoundException("No resource method available for the supplied parameters " + params);
|
||||||
}
|
}
|
||||||
|
|
||||||
List<IResource> result = resourceMethod.invokeServer(resourceBinding.getResourceProvider(), id, versionId, params);
|
resourceMethod.invokeServer(this, r, response);
|
||||||
switch (resourceMethod.getReturnType()) {
|
|
||||||
case BUNDLE:
|
|
||||||
streamResponseAsBundle(response, result, responseEncoding, fhirServerBase, completeUrl, prettyPrint, requestIsBrowser, narrativeMode);
|
|
||||||
break;
|
|
||||||
case RESOURCE:
|
|
||||||
if (result.size() == 0) {
|
|
||||||
throw new ResourceNotFoundException(id);
|
|
||||||
} else if (result.size() > 1) {
|
|
||||||
throw new InternalErrorException("Method returned multiple resources");
|
|
||||||
}
|
|
||||||
streamResponseAsResource(response, result.get(0), responseEncoding, prettyPrint, requestIsBrowser, narrativeMode);
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
// resourceMethod.get
|
|
||||||
|
|
||||||
} catch (AuthenticationException e) {
|
} catch (AuthenticationException e) {
|
||||||
response.setStatus(e.getStatusCode());
|
response.setStatus(e.getStatusCode());
|
||||||
|
@ -379,45 +335,6 @@ public abstract class RestfulServer extends HttpServlet {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
public final void init() throws ServletException {
|
|
||||||
initialize();
|
|
||||||
try {
|
|
||||||
ourLog.info("Initializing HAPI FHIR restful server");
|
|
||||||
|
|
||||||
securityManager = getSecurityManager();
|
|
||||||
if (null == securityManager) {
|
|
||||||
ourLog.warn("No security manager has been provided, requests will not be authenticated!");
|
|
||||||
}
|
|
||||||
|
|
||||||
Collection<IResourceProvider> resourceProvider = getResourceProviders();
|
|
||||||
for (IResourceProvider nextProvider : resourceProvider) {
|
|
||||||
if (myTypeToProvider.containsKey(nextProvider.getResourceType())) {
|
|
||||||
throw new ServletException("Multiple providers for type: " + nextProvider.getResourceType().getCanonicalName());
|
|
||||||
}
|
|
||||||
myTypeToProvider.put(nextProvider.getResourceType(), nextProvider);
|
|
||||||
}
|
|
||||||
|
|
||||||
ourLog.info("Got {} resource providers", myTypeToProvider.size());
|
|
||||||
|
|
||||||
myFhirContext = new FhirContext(myTypeToProvider.keySet());
|
|
||||||
myFhirContext.setNarrativeGenerator(myNarrativeGenerator);
|
|
||||||
|
|
||||||
for (IResourceProvider provider : myTypeToProvider.values()) {
|
|
||||||
findResourceMethods(provider);
|
|
||||||
}
|
|
||||||
|
|
||||||
findResourceMethods(getServerProfilesProvider());
|
|
||||||
findResourceMethods(getServerConformanceProvider());
|
|
||||||
|
|
||||||
} catch (Exception ex) {
|
|
||||||
ourLog.error("An error occurred while loading request handlers!", ex);
|
|
||||||
throw new ServletException("Failed to initialize FHIR Restful server", ex);
|
|
||||||
}
|
|
||||||
|
|
||||||
ourLog.info("A FHIR has been lit on this server");
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This method may be overridden by subclasses to do perform initialization that needs to be performed prior to the server being used.
|
* This method may be overridden by subclasses to do perform initialization that needs to be performed prior to the server being used.
|
||||||
*/
|
*/
|
||||||
|
@ -425,108 +342,15 @@ public abstract class RestfulServer extends HttpServlet {
|
||||||
// nothing by default
|
// nothing by default
|
||||||
}
|
}
|
||||||
|
|
||||||
private void streamResponseAsBundle(HttpServletResponse theHttpResponse, List<IResource> theResult, EncodingUtil theResponseEncoding, String theServerBase, String theCompleteUrl,
|
public enum NarrativeModeEnum {
|
||||||
boolean thePrettyPrint, boolean theRequestIsBrowser, NarrativeModeEnum theNarrativeMode) throws IOException {
|
NORMAL,
|
||||||
assert !theServerBase.endsWith("/");
|
ONLY,
|
||||||
|
SUPPRESS;
|
||||||
theHttpResponse.setStatus(200);
|
|
||||||
|
public static NarrativeModeEnum valueOfCaseInsensitive(String theCode) {
|
||||||
if (theRequestIsBrowser && myUseBrowserFriendlyContentTypes) {
|
return valueOf(NarrativeModeEnum.class, theCode.toUpperCase());
|
||||||
theHttpResponse.setContentType(theResponseEncoding.getBrowserFriendlyBundleContentType());
|
|
||||||
} else if (theNarrativeMode == NarrativeModeEnum.ONLY) {
|
|
||||||
theHttpResponse.setContentType(Constants.CT_HTML);
|
|
||||||
} else {
|
|
||||||
theHttpResponse.setContentType(theResponseEncoding.getBundleContentType());
|
|
||||||
}
|
|
||||||
|
|
||||||
theHttpResponse.setCharacterEncoding("UTF-8");
|
|
||||||
|
|
||||||
Bundle bundle = new Bundle();
|
|
||||||
bundle.getAuthorName().setValue(getClass().getCanonicalName());
|
|
||||||
bundle.getBundleId().setValue(UUID.randomUUID().toString());
|
|
||||||
bundle.getPublished().setToCurrentTimeInLocalTimeZone();
|
|
||||||
bundle.getLinkBase().setValue(theServerBase);
|
|
||||||
bundle.getLinkSelf().setValue(theCompleteUrl);
|
|
||||||
|
|
||||||
for (IResource next : theResult) {
|
|
||||||
BundleEntry entry = new BundleEntry();
|
|
||||||
bundle.getEntries().add(entry);
|
|
||||||
|
|
||||||
entry.setResource(next);
|
|
||||||
|
|
||||||
RuntimeResourceDefinition def = myFhirContext.getResourceDefinition(next);
|
|
||||||
|
|
||||||
if (next.getId() != null && StringUtils.isNotBlank(next.getId().getValue())) {
|
|
||||||
entry.getEntryId().setValue(next.getId().getValue());
|
|
||||||
entry.getTitle().setValue(def.getName() + " " + next.getId().getValue());
|
|
||||||
|
|
||||||
StringBuilder b = new StringBuilder();
|
|
||||||
b.append(theServerBase);
|
|
||||||
b.append('/');
|
|
||||||
b.append(def.getName());
|
|
||||||
b.append('/');
|
|
||||||
b.append(next.getId().getValue());
|
|
||||||
boolean haveQ = false;
|
|
||||||
if (thePrettyPrint) {
|
|
||||||
b.append('?').append(Constants.PARAM_PRETTY).append("=true");
|
|
||||||
haveQ = true;
|
|
||||||
}
|
|
||||||
if (theResponseEncoding == EncodingUtil.JSON) {
|
|
||||||
if (!haveQ) {
|
|
||||||
b.append('?');
|
|
||||||
haveQ = true;
|
|
||||||
} else {
|
|
||||||
b.append('&');
|
|
||||||
}
|
|
||||||
b.append(Constants.PARAM_FORMAT).append("=json");
|
|
||||||
}
|
|
||||||
if (theNarrativeMode != NarrativeModeEnum.NORMAL) {
|
|
||||||
b.append(Constants.PARAM_NARRATIVE).append("=").append(theNarrativeMode.name().toLowerCase());
|
|
||||||
}
|
|
||||||
entry.getLinkSelf().setValue(b.toString());
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
bundle.getTotalResults().setValue(theResult.size());
|
|
||||||
|
|
||||||
PrintWriter writer = theHttpResponse.getWriter();
|
|
||||||
try {
|
|
||||||
if (theNarrativeMode == NarrativeModeEnum.ONLY) {
|
|
||||||
for (IResource next : theResult) {
|
|
||||||
writer.append(next.getText().getDiv().getValueAsString());
|
|
||||||
writer.append("<hr/>");
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
getNewParser(theResponseEncoding, thePrettyPrint, theNarrativeMode).encodeBundleToWriter(bundle, writer);
|
|
||||||
} } finally {
|
|
||||||
writer.close();
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void streamResponseAsResource(HttpServletResponse theHttpResponse, IResource theResource, EncodingUtil theResponseEncoding, boolean thePrettyPrint, boolean theRequestIsBrowser, NarrativeModeEnum theNarrativeMode)
|
|
||||||
throws IOException {
|
|
||||||
|
|
||||||
theHttpResponse.setStatus(200);
|
|
||||||
if (theRequestIsBrowser && myUseBrowserFriendlyContentTypes) {
|
|
||||||
theHttpResponse.setContentType(theResponseEncoding.getBrowserFriendlyBundleContentType());
|
|
||||||
} else if (theNarrativeMode == NarrativeModeEnum.ONLY) {
|
|
||||||
theHttpResponse.setContentType(Constants.CT_HTML);
|
|
||||||
} else {
|
|
||||||
theHttpResponse.setContentType(theResponseEncoding.getResourceContentType());
|
|
||||||
}
|
|
||||||
theHttpResponse.setCharacterEncoding("UTF-8");
|
|
||||||
|
|
||||||
PrintWriter writer = theHttpResponse.getWriter();
|
|
||||||
try {
|
|
||||||
if (theNarrativeMode == NarrativeModeEnum.ONLY) {
|
|
||||||
writer.append(theResource.getText().getDiv().getValueAsString());
|
|
||||||
} else {
|
|
||||||
getNewParser(theResponseEncoding, thePrettyPrint, theNarrativeMode).encodeResourceToWriter(theResource, writer);
|
|
||||||
}
|
|
||||||
} finally {
|
|
||||||
writer.close();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -7,8 +7,8 @@ import java.util.Map;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import ca.uhn.fhir.context.RuntimeResourceDefinition;
|
import ca.uhn.fhir.context.RuntimeResourceDefinition;
|
||||||
|
import ca.uhn.fhir.model.api.ExtensionDt;
|
||||||
import ca.uhn.fhir.model.api.IResource;
|
import ca.uhn.fhir.model.api.IResource;
|
||||||
import ca.uhn.fhir.model.api.UndeclaredExtension;
|
|
||||||
import ca.uhn.fhir.model.dstu.resource.Conformance;
|
import ca.uhn.fhir.model.dstu.resource.Conformance;
|
||||||
import ca.uhn.fhir.model.dstu.resource.Conformance.Rest;
|
import ca.uhn.fhir.model.dstu.resource.Conformance.Rest;
|
||||||
import ca.uhn.fhir.model.dstu.resource.Conformance.RestResource;
|
import ca.uhn.fhir.model.dstu.resource.Conformance.RestResource;
|
||||||
|
@ -108,17 +108,17 @@ public class ServerConformanceProvider implements IResourceProvider {
|
||||||
} else if (searchParamChain == null) {
|
} else if (searchParamChain == null) {
|
||||||
searchParam.addChain(nextParameter.getName());
|
searchParam.addChain(nextParameter.getName());
|
||||||
searchParamChain = searchParam.getChain().get(searchParam.getChain().size()-1);
|
searchParamChain = searchParam.getChain().get(searchParam.getChain().size()-1);
|
||||||
UndeclaredExtension ext = new UndeclaredExtension();
|
ExtensionDt ext = new ExtensionDt();
|
||||||
ext.setUrl(ExtensionConstants.CONF_CHAIN_REQUIRED);
|
ext.setUrl(ExtensionConstants.CONF_CHAIN_REQUIRED);
|
||||||
ext.setValue(new BooleanDt(nextParameter.isRequired()));
|
ext.setValue(new BooleanDt(nextParameter.isRequired()));
|
||||||
searchParamChain.getUndeclaredExtensions().add(ext);
|
searchParamChain.getUndeclaredExtensions().add(ext);
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
UndeclaredExtension ext = new UndeclaredExtension();
|
ExtensionDt ext = new ExtensionDt();
|
||||||
ext.setUrl(ExtensionConstants.CONF_ALSO_CHAIN);
|
ext.setUrl(ExtensionConstants.CONF_ALSO_CHAIN);
|
||||||
searchParamChain.getUndeclaredExtensions().add(ext);
|
searchParamChain.getUndeclaredExtensions().add(ext);
|
||||||
|
|
||||||
UndeclaredExtension extReq = new UndeclaredExtension();
|
ExtensionDt extReq = new ExtensionDt();
|
||||||
extReq.setUrl(ExtensionConstants.CONF_CHAIN_REQUIRED);
|
extReq.setUrl(ExtensionConstants.CONF_CHAIN_REQUIRED);
|
||||||
extReq.setValue(new BooleanDt(nextParameter.isRequired()));
|
extReq.setValue(new BooleanDt(nextParameter.isRequired()));
|
||||||
ext.getUndeclaredExtensions().add(extReq);
|
ext.getUndeclaredExtensions().add(extReq);
|
||||||
|
|
|
@ -10,6 +10,7 @@ import ca.uhn.fhir.context.RuntimeResourceDefinition;
|
||||||
import ca.uhn.fhir.model.api.IResource;
|
import ca.uhn.fhir.model.api.IResource;
|
||||||
import ca.uhn.fhir.model.dstu.resource.Profile;
|
import ca.uhn.fhir.model.dstu.resource.Profile;
|
||||||
import ca.uhn.fhir.model.primitive.IdDt;
|
import ca.uhn.fhir.model.primitive.IdDt;
|
||||||
|
import ca.uhn.fhir.rest.annotation.Id;
|
||||||
import ca.uhn.fhir.rest.annotation.Read;
|
import ca.uhn.fhir.rest.annotation.Read;
|
||||||
import ca.uhn.fhir.rest.annotation.Search;
|
import ca.uhn.fhir.rest.annotation.Search;
|
||||||
import ca.uhn.fhir.rest.server.IResourceProvider;
|
import ca.uhn.fhir.rest.server.IResourceProvider;
|
||||||
|
@ -28,7 +29,7 @@ public class ServerProfileProvider implements IResourceProvider {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Read()
|
@Read()
|
||||||
public Profile getProfileById(@Read.IdParam IdDt theId) {
|
public Profile getProfileById(@Id IdDt theId) {
|
||||||
RuntimeResourceDefinition retVal = myContext.getResourceDefinitionById(theId.getValue());
|
RuntimeResourceDefinition retVal = myContext.getResourceDefinitionById(theId.getValue());
|
||||||
if (retVal==null) {
|
if (retVal==null) {
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -5,6 +5,7 @@ import java.util.List;
|
||||||
import ca.uhn.fhir.model.dstu.resource.Patient;
|
import ca.uhn.fhir.model.dstu.resource.Patient;
|
||||||
import ca.uhn.fhir.model.primitive.IdDt;
|
import ca.uhn.fhir.model.primitive.IdDt;
|
||||||
import ca.uhn.fhir.model.primitive.StringDt;
|
import ca.uhn.fhir.model.primitive.StringDt;
|
||||||
|
import ca.uhn.fhir.rest.annotation.Id;
|
||||||
import ca.uhn.fhir.rest.annotation.Read;
|
import ca.uhn.fhir.rest.annotation.Read;
|
||||||
import ca.uhn.fhir.rest.annotation.Required;
|
import ca.uhn.fhir.rest.annotation.Required;
|
||||||
import ca.uhn.fhir.rest.annotation.Search;
|
import ca.uhn.fhir.rest.annotation.Search;
|
||||||
|
@ -28,7 +29,7 @@ public interface RestfulClientImpl extends IBasicClient {
|
||||||
* Returns a resource matching this identifier, or null if none exists.
|
* Returns a resource matching this identifier, or null if none exists.
|
||||||
*/
|
*/
|
||||||
@Read()
|
@Read()
|
||||||
public Patient getResourceById(@Read.IdParam IdDt theId);
|
public Patient getResourceById(@Id IdDt theId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The "@Search" annotation indicates that this method supports the
|
* The "@Search" annotation indicates that this method supports the
|
||||||
|
|
|
@ -9,6 +9,7 @@ import ca.uhn.fhir.model.dstu.valueset.IdentifierUseEnum;
|
||||||
import ca.uhn.fhir.model.primitive.IdDt;
|
import ca.uhn.fhir.model.primitive.IdDt;
|
||||||
import ca.uhn.fhir.model.primitive.StringDt;
|
import ca.uhn.fhir.model.primitive.StringDt;
|
||||||
import ca.uhn.fhir.model.primitive.UriDt;
|
import ca.uhn.fhir.model.primitive.UriDt;
|
||||||
|
import ca.uhn.fhir.rest.annotation.Id;
|
||||||
import ca.uhn.fhir.rest.annotation.Read;
|
import ca.uhn.fhir.rest.annotation.Read;
|
||||||
import ca.uhn.fhir.rest.annotation.Required;
|
import ca.uhn.fhir.rest.annotation.Required;
|
||||||
import ca.uhn.fhir.rest.annotation.Search;
|
import ca.uhn.fhir.rest.annotation.Search;
|
||||||
|
@ -41,7 +42,7 @@ public class RestfulObservationResourceProvider implements IResourceProvider {
|
||||||
* Returns a resource matching this identifier, or null if none exists.
|
* Returns a resource matching this identifier, or null if none exists.
|
||||||
*/
|
*/
|
||||||
@Read()
|
@Read()
|
||||||
public Patient getResourceById(@Read.IdParam IdDt theId) {
|
public Patient getResourceById(@Id IdDt theId) {
|
||||||
Patient patient = new Patient();
|
Patient patient = new Patient();
|
||||||
patient.addIdentifier();
|
patient.addIdentifier();
|
||||||
patient.getIdentifier().get(0).setSystem(new UriDt("urn:hapitest:mrns"));
|
patient.getIdentifier().get(0).setSystem(new UriDt("urn:hapitest:mrns"));
|
||||||
|
|
|
@ -9,6 +9,7 @@ import ca.uhn.fhir.model.dstu.valueset.IdentifierUseEnum;
|
||||||
import ca.uhn.fhir.model.primitive.IdDt;
|
import ca.uhn.fhir.model.primitive.IdDt;
|
||||||
import ca.uhn.fhir.model.primitive.StringDt;
|
import ca.uhn.fhir.model.primitive.StringDt;
|
||||||
import ca.uhn.fhir.model.primitive.UriDt;
|
import ca.uhn.fhir.model.primitive.UriDt;
|
||||||
|
import ca.uhn.fhir.rest.annotation.Id;
|
||||||
import ca.uhn.fhir.rest.annotation.Read;
|
import ca.uhn.fhir.rest.annotation.Read;
|
||||||
import ca.uhn.fhir.rest.annotation.Required;
|
import ca.uhn.fhir.rest.annotation.Required;
|
||||||
import ca.uhn.fhir.rest.annotation.Search;
|
import ca.uhn.fhir.rest.annotation.Search;
|
||||||
|
@ -42,7 +43,7 @@ public class RestfulPatientResourceProvider implements IResourceProvider {
|
||||||
* Returns a resource matching this identifier, or null if none exists.
|
* Returns a resource matching this identifier, or null if none exists.
|
||||||
*/
|
*/
|
||||||
@Read()
|
@Read()
|
||||||
public Patient getResourceById(@Read.IdParam IdDt theId) {
|
public Patient getResourceById(@Id IdDt theId) {
|
||||||
Patient patient = new Patient();
|
Patient patient = new Patient();
|
||||||
patient.addIdentifier();
|
patient.addIdentifier();
|
||||||
patient.getIdentifier().get(0).setSystem(new UriDt("urn:hapitest:mrns"));
|
patient.getIdentifier().get(0).setSystem(new UriDt("urn:hapitest:mrns"));
|
||||||
|
|
|
@ -17,11 +17,13 @@ import ca.uhn.fhir.model.dstu.resource.Patient;
|
||||||
import ca.uhn.fhir.model.dstu.valueset.QuantityCompararatorEnum;
|
import ca.uhn.fhir.model.dstu.valueset.QuantityCompararatorEnum;
|
||||||
import ca.uhn.fhir.model.primitive.IdDt;
|
import ca.uhn.fhir.model.primitive.IdDt;
|
||||||
import ca.uhn.fhir.model.primitive.StringDt;
|
import ca.uhn.fhir.model.primitive.StringDt;
|
||||||
|
import ca.uhn.fhir.rest.annotation.Id;
|
||||||
import ca.uhn.fhir.rest.annotation.Include;
|
import ca.uhn.fhir.rest.annotation.Include;
|
||||||
import ca.uhn.fhir.rest.annotation.Optional;
|
import ca.uhn.fhir.rest.annotation.Optional;
|
||||||
import ca.uhn.fhir.rest.annotation.Read;
|
import ca.uhn.fhir.rest.annotation.Read;
|
||||||
import ca.uhn.fhir.rest.annotation.Required;
|
import ca.uhn.fhir.rest.annotation.Required;
|
||||||
import ca.uhn.fhir.rest.annotation.Search;
|
import ca.uhn.fhir.rest.annotation.Search;
|
||||||
|
import ca.uhn.fhir.rest.annotation.VersionId;
|
||||||
import ca.uhn.fhir.rest.client.ITestClient;
|
import ca.uhn.fhir.rest.client.ITestClient;
|
||||||
import ca.uhn.fhir.rest.param.CodingListParam;
|
import ca.uhn.fhir.rest.param.CodingListParam;
|
||||||
import ca.uhn.fhir.rest.param.DateRangeParam;
|
import ca.uhn.fhir.rest.param.DateRangeParam;
|
||||||
|
@ -41,7 +43,7 @@ public List<Organization> getAllOrganizations() {
|
||||||
|
|
||||||
//START SNIPPET: read
|
//START SNIPPET: read
|
||||||
@Read()
|
@Read()
|
||||||
public Patient getResourceById(@Read.IdParam IdDt theId) {
|
public Patient getResourceById(@Id IdDt theId) {
|
||||||
Patient retVal = new Patient();
|
Patient retVal = new Patient();
|
||||||
// ...populate...
|
// ...populate...
|
||||||
return retVal;
|
return retVal;
|
||||||
|
@ -50,8 +52,8 @@ public Patient getResourceById(@Read.IdParam IdDt theId) {
|
||||||
|
|
||||||
//START SNIPPET: vread
|
//START SNIPPET: vread
|
||||||
@Read()
|
@Read()
|
||||||
public Patient getResourceById(@Read.IdParam IdDt theId,
|
public Patient getResourceById(@Id IdDt theId,
|
||||||
@Read.VersionIdParam IdDt theVersionId) {
|
@VersionId IdDt theVersionId) {
|
||||||
Patient retVal = new Patient();
|
Patient retVal = new Patient();
|
||||||
// ...populate...
|
// ...populate...
|
||||||
return retVal;
|
return retVal;
|
||||||
|
|
|
@ -2,8 +2,6 @@ package ca.uhn.fhir.context;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import javax.naming.OperationNotSupportedException;
|
|
||||||
|
|
||||||
import ca.uhn.fhir.model.api.IElement;
|
import ca.uhn.fhir.model.api.IElement;
|
||||||
import ca.uhn.fhir.model.api.IExtension;
|
import ca.uhn.fhir.model.api.IExtension;
|
||||||
import ca.uhn.fhir.model.api.IResource;
|
import ca.uhn.fhir.model.api.IResource;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package ca.uhn.fhir.model.primitive;
|
package ca.uhn.fhir.model.primitive;
|
||||||
|
|
||||||
import static org.junit.Assert.assertEquals;
|
import static org.junit.Assert.*;
|
||||||
|
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
package ca.uhn.fhir.narrative;
|
package ca.uhn.fhir.narrative;
|
||||||
|
|
||||||
import static org.junit.Assert.assertThat;
|
import static org.junit.Assert.*;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
|
@ -1,9 +1,8 @@
|
||||||
package ca.uhn.fhir.parser;
|
package ca.uhn.fhir.parser;
|
||||||
|
|
||||||
import static org.junit.Assert.*;
|
import static org.junit.Assert.*;
|
||||||
import static org.mockito.Matchers.eq;
|
import static org.mockito.Matchers.*;
|
||||||
import static org.mockito.Mockito.mock;
|
import static org.mockito.Mockito.*;
|
||||||
import static org.mockito.Mockito.when;
|
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.OutputStreamWriter;
|
import java.io.OutputStreamWriter;
|
||||||
|
@ -21,7 +20,7 @@ import org.junit.Test;
|
||||||
import ca.uhn.fhir.context.FhirContext;
|
import ca.uhn.fhir.context.FhirContext;
|
||||||
import ca.uhn.fhir.model.api.Bundle;
|
import ca.uhn.fhir.model.api.Bundle;
|
||||||
import ca.uhn.fhir.model.api.BundleEntry;
|
import ca.uhn.fhir.model.api.BundleEntry;
|
||||||
import ca.uhn.fhir.model.api.UndeclaredExtension;
|
import ca.uhn.fhir.model.api.ExtensionDt;
|
||||||
import ca.uhn.fhir.model.dstu.composite.NarrativeDt;
|
import ca.uhn.fhir.model.dstu.composite.NarrativeDt;
|
||||||
import ca.uhn.fhir.model.dstu.composite.ResourceReferenceDt;
|
import ca.uhn.fhir.model.dstu.composite.ResourceReferenceDt;
|
||||||
import ca.uhn.fhir.model.dstu.resource.DiagnosticReport;
|
import ca.uhn.fhir.model.dstu.resource.DiagnosticReport;
|
||||||
|
@ -92,9 +91,9 @@ public class JsonParserTest {
|
||||||
String xmlString = IOUtils.toString(JsonParser.class.getResourceAsStream("/example-patient-general.xml"), Charset.forName("UTF-8"));
|
String xmlString = IOUtils.toString(JsonParser.class.getResourceAsStream("/example-patient-general.xml"), Charset.forName("UTF-8"));
|
||||||
Patient obs = ctx.newXmlParser().parseResource(Patient.class, xmlString);
|
Patient obs = ctx.newXmlParser().parseResource(Patient.class, xmlString);
|
||||||
|
|
||||||
List<UndeclaredExtension> undeclaredExtensions = obs.getContact().get(0).getName().getFamily().get(0).getUndeclaredExtensions();
|
List<ExtensionDt> undeclaredExtensions = obs.getContact().get(0).getName().getFamily().get(0).getUndeclaredExtensions();
|
||||||
UndeclaredExtension undeclaredExtension = undeclaredExtensions.get(0);
|
ExtensionDt undeclaredExtension = undeclaredExtensions.get(0);
|
||||||
assertEquals("http://hl7.org/fhir/Profile/iso-21090#qualifier", undeclaredExtension.getUrl());
|
assertEquals("http://hl7.org/fhir/Profile/iso-21090#qualifier", undeclaredExtension.getUrl().getValue());
|
||||||
|
|
||||||
ctx.newJsonParser().setPrettyPrint(true).encodeResourceToWriter(obs, new OutputStreamWriter(System.out));
|
ctx.newJsonParser().setPrettyPrint(true).encodeResourceToWriter(obs, new OutputStreamWriter(System.out));
|
||||||
|
|
||||||
|
|
|
@ -8,11 +8,13 @@ import ca.uhn.fhir.model.dstu.composite.IdentifierDt;
|
||||||
import ca.uhn.fhir.model.dstu.resource.Patient;
|
import ca.uhn.fhir.model.dstu.resource.Patient;
|
||||||
import ca.uhn.fhir.model.primitive.IdDt;
|
import ca.uhn.fhir.model.primitive.IdDt;
|
||||||
import ca.uhn.fhir.model.primitive.StringDt;
|
import ca.uhn.fhir.model.primitive.StringDt;
|
||||||
|
import ca.uhn.fhir.rest.annotation.Id;
|
||||||
import ca.uhn.fhir.rest.annotation.Include;
|
import ca.uhn.fhir.rest.annotation.Include;
|
||||||
import ca.uhn.fhir.rest.annotation.Optional;
|
import ca.uhn.fhir.rest.annotation.Optional;
|
||||||
import ca.uhn.fhir.rest.annotation.Read;
|
import ca.uhn.fhir.rest.annotation.Read;
|
||||||
import ca.uhn.fhir.rest.annotation.Required;
|
import ca.uhn.fhir.rest.annotation.Required;
|
||||||
import ca.uhn.fhir.rest.annotation.Search;
|
import ca.uhn.fhir.rest.annotation.Search;
|
||||||
|
import ca.uhn.fhir.rest.annotation.VersionId;
|
||||||
import ca.uhn.fhir.rest.client.api.IBasicClient;
|
import ca.uhn.fhir.rest.client.api.IBasicClient;
|
||||||
import ca.uhn.fhir.rest.param.CodingListParam;
|
import ca.uhn.fhir.rest.param.CodingListParam;
|
||||||
import ca.uhn.fhir.rest.param.DateRangeParam;
|
import ca.uhn.fhir.rest.param.DateRangeParam;
|
||||||
|
@ -21,10 +23,10 @@ import ca.uhn.fhir.rest.param.QualifiedDateParam;
|
||||||
public interface ITestClient extends IBasicClient {
|
public interface ITestClient extends IBasicClient {
|
||||||
|
|
||||||
@Read(type=Patient.class)
|
@Read(type=Patient.class)
|
||||||
Patient getPatientById(@Read.IdParam IdDt theId);
|
Patient getPatientById(@Id IdDt theId);
|
||||||
|
|
||||||
@Read(type=Patient.class)
|
@Read(type=Patient.class)
|
||||||
Patient getPatientByVersionId(@Read.IdParam IdDt theId, @Read.VersionIdParam IdDt theVersionId);
|
Patient getPatientByVersionId(@Id IdDt theId, @VersionId IdDt theVersionId);
|
||||||
|
|
||||||
@Search(type=Patient.class)
|
@Search(type=Patient.class)
|
||||||
Patient findPatientByMrn(@Required(name = Patient.SP_IDENTIFIER) IdentifierDt theId);
|
Patient findPatientByMrn(@Required(name = Patient.SP_IDENTIFIER) IdentifierDt theId);
|
||||||
|
|
|
@ -42,11 +42,13 @@ import ca.uhn.fhir.model.primitive.IdDt;
|
||||||
import ca.uhn.fhir.model.primitive.StringDt;
|
import ca.uhn.fhir.model.primitive.StringDt;
|
||||||
import ca.uhn.fhir.model.primitive.UriDt;
|
import ca.uhn.fhir.model.primitive.UriDt;
|
||||||
import ca.uhn.fhir.parser.IParser;
|
import ca.uhn.fhir.parser.IParser;
|
||||||
|
import ca.uhn.fhir.rest.annotation.Id;
|
||||||
import ca.uhn.fhir.rest.annotation.Include;
|
import ca.uhn.fhir.rest.annotation.Include;
|
||||||
import ca.uhn.fhir.rest.annotation.Optional;
|
import ca.uhn.fhir.rest.annotation.Optional;
|
||||||
import ca.uhn.fhir.rest.annotation.Read;
|
import ca.uhn.fhir.rest.annotation.Read;
|
||||||
import ca.uhn.fhir.rest.annotation.Required;
|
import ca.uhn.fhir.rest.annotation.Required;
|
||||||
import ca.uhn.fhir.rest.annotation.Search;
|
import ca.uhn.fhir.rest.annotation.Search;
|
||||||
|
import ca.uhn.fhir.rest.annotation.VersionId;
|
||||||
import ca.uhn.fhir.rest.param.CodingListParam;
|
import ca.uhn.fhir.rest.param.CodingListParam;
|
||||||
import ca.uhn.fhir.rest.param.DateRangeParam;
|
import ca.uhn.fhir.rest.param.DateRangeParam;
|
||||||
import ca.uhn.fhir.rest.param.QualifiedDateParam;
|
import ca.uhn.fhir.rest.param.QualifiedDateParam;
|
||||||
|
@ -754,12 +756,12 @@ public class ResfulServerMethodTest {
|
||||||
* @return The resource
|
* @return The resource
|
||||||
*/
|
*/
|
||||||
@Read()
|
@Read()
|
||||||
public Patient getResourceById(@Read.IdParam IdDt theId) {
|
public Patient getResourceById(@Id IdDt theId) {
|
||||||
return getIdToPatient().get(theId.getValue());
|
return getIdToPatient().get(theId.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Read()
|
@Read()
|
||||||
public Patient getResourceById(@Read.IdParam IdDt theId, @Read.VersionIdParam IdDt theVersionId) {
|
public Patient getResourceById(@Id IdDt theId, @VersionId IdDt theVersionId) {
|
||||||
Patient retVal = getIdToPatient().get(theId.getValue());
|
Patient retVal = getIdToPatient().get(theId.getValue());
|
||||||
retVal.getName().get(0).setText(theVersionId.getValue());
|
retVal.getName().get(0).setText(theVersionId.getValue());
|
||||||
return retVal;
|
return retVal;
|
||||||
|
|
|
@ -29,6 +29,7 @@ import ca.uhn.fhir.model.dstu.resource.Patient;
|
||||||
import ca.uhn.fhir.model.dstu.valueset.IdentifierUseEnum;
|
import ca.uhn.fhir.model.dstu.valueset.IdentifierUseEnum;
|
||||||
import ca.uhn.fhir.model.primitive.IdDt;
|
import ca.uhn.fhir.model.primitive.IdDt;
|
||||||
import ca.uhn.fhir.model.primitive.UriDt;
|
import ca.uhn.fhir.model.primitive.UriDt;
|
||||||
|
import ca.uhn.fhir.rest.annotation.Id;
|
||||||
import ca.uhn.fhir.rest.annotation.Read;
|
import ca.uhn.fhir.rest.annotation.Read;
|
||||||
import ca.uhn.fhir.rest.annotation.Required;
|
import ca.uhn.fhir.rest.annotation.Required;
|
||||||
import ca.uhn.fhir.rest.annotation.Search;
|
import ca.uhn.fhir.rest.annotation.Search;
|
||||||
|
@ -181,7 +182,7 @@ public class ResfulServerSelfReferenceTest {
|
||||||
* @return The resource
|
* @return The resource
|
||||||
*/
|
*/
|
||||||
@Read()
|
@Read()
|
||||||
public Patient getResourceById(@Read.IdParam IdDt theId) {
|
public Patient getResourceById(@Id IdDt theId) {
|
||||||
return getIdToPatient().get(theId.getValue());
|
return getIdToPatient().get(theId.getValue());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,8 +10,9 @@ import java.util.Set;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import ca.uhn.fhir.context.FhirContext;
|
||||||
|
import ca.uhn.fhir.model.api.Bundle;
|
||||||
import ca.uhn.fhir.model.dstu.resource.Patient;
|
import ca.uhn.fhir.model.dstu.resource.Patient;
|
||||||
import ca.uhn.fhir.rest.method.BaseMethodBinding.MethodReturnTypeEnum;
|
|
||||||
import ca.uhn.fhir.rest.method.Request;
|
import ca.uhn.fhir.rest.method.Request;
|
||||||
import ca.uhn.fhir.rest.method.SearchMethodBinding;
|
import ca.uhn.fhir.rest.method.SearchMethodBinding;
|
||||||
import ca.uhn.fhir.rest.method.SearchMethodBinding.RequestType;
|
import ca.uhn.fhir.rest.method.SearchMethodBinding.RequestType;
|
||||||
|
@ -22,9 +23,13 @@ public class ResourceMethodTest {
|
||||||
|
|
||||||
private SearchMethodBinding rm;
|
private SearchMethodBinding rm;
|
||||||
|
|
||||||
|
public Bundle foo() {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
@Before
|
@Before
|
||||||
public void before() throws NoSuchMethodException, SecurityException {
|
public void before() throws NoSuchMethodException, SecurityException {
|
||||||
rm = new SearchMethodBinding(MethodReturnTypeEnum.RESOURCE, Patient.class, ResourceMethodTest.class.getMethod("before"), null);
|
rm = new SearchMethodBinding(Patient.class, ResourceMethodTest.class.getMethod("foo"), null, new FhirContext());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
|
|
@ -40,6 +40,7 @@
|
||||||
<package>ca.uhn.fhir.model.dstu</package>
|
<package>ca.uhn.fhir.model.dstu</package>
|
||||||
<baseResourceNames>
|
<baseResourceNames>
|
||||||
<baseResourceName>adversereaction</baseResourceName>
|
<baseResourceName>adversereaction</baseResourceName>
|
||||||
|
<baseResourceName>alert</baseResourceName>
|
||||||
<baseResourceName>conformance</baseResourceName>
|
<baseResourceName>conformance</baseResourceName>
|
||||||
<baseResourceName>device</baseResourceName>
|
<baseResourceName>device</baseResourceName>
|
||||||
<baseResourceName>diagnosticorder</baseResourceName>
|
<baseResourceName>diagnosticorder</baseResourceName>
|
||||||
|
@ -51,10 +52,13 @@
|
||||||
<baseResourceName>media</baseResourceName>
|
<baseResourceName>media</baseResourceName>
|
||||||
<baseResourceName>medication</baseResourceName>
|
<baseResourceName>medication</baseResourceName>
|
||||||
<baseResourceName>observation</baseResourceName>
|
<baseResourceName>observation</baseResourceName>
|
||||||
|
<baseResourceName>operationoutcome</baseResourceName>
|
||||||
<baseResourceName>organization</baseResourceName>
|
<baseResourceName>organization</baseResourceName>
|
||||||
<baseResourceName>patient</baseResourceName>
|
<baseResourceName>patient</baseResourceName>
|
||||||
<baseResourceName>practitioner</baseResourceName>
|
<baseResourceName>practitioner</baseResourceName>
|
||||||
<baseResourceName>profile</baseResourceName>
|
<baseResourceName>profile</baseResourceName>
|
||||||
|
<baseResourceName>query</baseResourceName>
|
||||||
|
<baseResourceName>questionnaire</baseResourceName>
|
||||||
<baseResourceName>relatedperson</baseResourceName>
|
<baseResourceName>relatedperson</baseResourceName>
|
||||||
<baseResourceName>specimen</baseResourceName>
|
<baseResourceName>specimen</baseResourceName>
|
||||||
<baseResourceName>substance</baseResourceName>
|
<baseResourceName>substance</baseResourceName>
|
||||||
|
|
|
@ -28,7 +28,7 @@ import org.w3c.dom.Node;
|
||||||
import org.w3c.dom.NodeList;
|
import org.w3c.dom.NodeList;
|
||||||
|
|
||||||
import ca.uhn.fhir.model.api.IResource;
|
import ca.uhn.fhir.model.api.IResource;
|
||||||
import ca.uhn.fhir.model.api.UndeclaredExtension;
|
import ca.uhn.fhir.model.api.ExtensionDt;
|
||||||
import ca.uhn.fhir.model.api.annotation.SimpleSetter;
|
import ca.uhn.fhir.model.api.annotation.SimpleSetter;
|
||||||
import ca.uhn.fhir.model.dstu.composite.ResourceReferenceDt;
|
import ca.uhn.fhir.model.dstu.composite.ResourceReferenceDt;
|
||||||
import ca.uhn.fhir.tinder.model.BaseElement;
|
import ca.uhn.fhir.tinder.model.BaseElement;
|
||||||
|
@ -129,7 +129,7 @@ public abstract class BaseStructureParser {
|
||||||
return (IResource.class.getCanonicalName());
|
return (IResource.class.getCanonicalName());
|
||||||
}
|
}
|
||||||
if ("ExtensionDt".equals(theNextType)) {
|
if ("ExtensionDt".equals(theNextType)) {
|
||||||
return (UndeclaredExtension.class.getCanonicalName());
|
return (ExtensionDt.class.getCanonicalName());
|
||||||
}
|
}
|
||||||
|
|
||||||
if (myLocallyDefinedClassNames.containsKey(theNextType)) {
|
if (myLocallyDefinedClassNames.containsKey(theNextType)) {
|
||||||
|
|
|
@ -2,26 +2,26 @@ package ca.uhn.fhir.tinder.model;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
|
|
||||||
import ca.uhn.fhir.model.api.UndeclaredExtension;
|
import ca.uhn.fhir.model.api.ExtensionDt;
|
||||||
|
|
||||||
public class UndeclaredExtensionChild extends Child {
|
public class UndeclaredExtensionChild extends Child {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getReferenceType() {
|
public String getReferenceType() {
|
||||||
if (isRepeatable()) {
|
if (isRepeatable()) {
|
||||||
return ArrayList.class.getCanonicalName() + "<" + UndeclaredExtension.class.getSimpleName()+">";
|
return ArrayList.class.getCanonicalName() + "<" + ExtensionDt.class.getSimpleName()+">";
|
||||||
}
|
}
|
||||||
return UndeclaredExtension.class.getSimpleName();
|
return ExtensionDt.class.getSimpleName();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getAnnotationType() {
|
public String getAnnotationType() {
|
||||||
return UndeclaredExtension.class.getSimpleName();
|
return ExtensionDt.class.getSimpleName();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getSingleType() {
|
public String getSingleType() {
|
||||||
return UndeclaredExtension.class.getSimpleName();
|
return ExtensionDt.class.getSimpleName();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -0,0 +1,698 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<?mso-application progid="Excel.Sheet"?>
|
||||||
|
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
|
||||||
|
xmlns:o="urn:schemas-microsoft-com:office:office"
|
||||||
|
xmlns:x="urn:schemas-microsoft-com:office:excel"
|
||||||
|
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
|
||||||
|
xmlns:html="http://www.w3.org/TR/REC-html40">
|
||||||
|
<DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
|
||||||
|
<Author>Grahame</Author>
|
||||||
|
<LastAuthor>Grahame</LastAuthor>
|
||||||
|
<Created>2012-03-19T11:12:07Z</Created>
|
||||||
|
<LastSaved>2013-08-04T13:16:39Z</LastSaved>
|
||||||
|
<Version>14.00</Version>
|
||||||
|
</DocumentProperties>
|
||||||
|
<OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office">
|
||||||
|
<AllowPNG/>
|
||||||
|
</OfficeDocumentSettings>
|
||||||
|
<ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">
|
||||||
|
<WindowHeight>8880</WindowHeight>
|
||||||
|
<WindowWidth>25605</WindowWidth>
|
||||||
|
<WindowTopX>1605</WindowTopX>
|
||||||
|
<WindowTopY>1260</WindowTopY>
|
||||||
|
<ProtectStructure>False</ProtectStructure>
|
||||||
|
<ProtectWindows>False</ProtectWindows>
|
||||||
|
</ExcelWorkbook>
|
||||||
|
<Styles>
|
||||||
|
<Style ss:ID="Default" ss:Name="Normal">
|
||||||
|
<Alignment ss:Vertical="Bottom"/>
|
||||||
|
<Borders/>
|
||||||
|
<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000"/>
|
||||||
|
<Interior/>
|
||||||
|
<NumberFormat/>
|
||||||
|
<Protection/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s62" ss:Name="Normal 2">
|
||||||
|
<Alignment ss:Vertical="Bottom"/>
|
||||||
|
<Borders/>
|
||||||
|
<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000"/>
|
||||||
|
<Interior/>
|
||||||
|
<NumberFormat/>
|
||||||
|
<Protection/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s63">
|
||||||
|
<Alignment ss:Horizontal="Left" ss:Vertical="Top" ss:ShrinkToFit="1"
|
||||||
|
ss:WrapText="1"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s64">
|
||||||
|
<Alignment ss:Horizontal="Left" ss:Vertical="Top" ss:ShrinkToFit="1"
|
||||||
|
ss:WrapText="1"/>
|
||||||
|
<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000"
|
||||||
|
ss:Bold="1"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s65">
|
||||||
|
<Alignment ss:Horizontal="Left" ss:Vertical="Top" ss:ShrinkToFit="1"
|
||||||
|
ss:WrapText="1"/>
|
||||||
|
<Borders>
|
||||||
|
<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
|
||||||
|
</Borders>
|
||||||
|
<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000"
|
||||||
|
ss:Bold="1"/>
|
||||||
|
<Interior ss:Color="#FFFFFF" ss:Pattern="Solid"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s66">
|
||||||
|
<Alignment ss:Horizontal="Left" ss:Vertical="Top" ss:ShrinkToFit="1"
|
||||||
|
ss:WrapText="1"/>
|
||||||
|
<Interior ss:Color="#C0C0C0" ss:Pattern="Solid"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s67">
|
||||||
|
<Alignment ss:Vertical="Bottom" ss:WrapText="1"/>
|
||||||
|
<Borders/>
|
||||||
|
<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000"/>
|
||||||
|
<Interior/>
|
||||||
|
<NumberFormat/>
|
||||||
|
<Protection/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s68">
|
||||||
|
<Alignment ss:Vertical="Bottom" ss:ShrinkToFit="1" ss:WrapText="1"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s70">
|
||||||
|
<Alignment ss:Vertical="Top" ss:WrapText="1"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s72" ss:Parent="s62">
|
||||||
|
<Alignment ss:Vertical="Top"/>
|
||||||
|
<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000"/>
|
||||||
|
<Interior/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s73">
|
||||||
|
<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#FF0000"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s74">
|
||||||
|
<Alignment ss:Vertical="Top"/>
|
||||||
|
</Style>
|
||||||
|
</Styles>
|
||||||
|
<Worksheet ss:Name="Data Elements">
|
||||||
|
<Table ss:ExpandedColumnCount="16" ss:ExpandedRowCount="9" x:FullColumns="1"
|
||||||
|
x:FullRows="1" ss:StyleID="s63" ss:DefaultColumnWidth="65.25"
|
||||||
|
ss:DefaultRowHeight="15">
|
||||||
|
<Column ss:StyleID="s64" ss:AutoFitWidth="0" ss:Width="150.75"/>
|
||||||
|
<Column ss:StyleID="s63" ss:Width="29.25"/>
|
||||||
|
<Column ss:StyleID="s63" ss:Width="23.25"/>
|
||||||
|
<Column ss:StyleID="s63" ss:Width="60"/>
|
||||||
|
<Column ss:StyleID="s63" ss:AutoFitWidth="0" ss:Width="51.75"/>
|
||||||
|
<Column ss:StyleID="s63" ss:AutoFitWidth="0" ss:Width="119.25"/>
|
||||||
|
<Column ss:StyleID="s63" ss:AutoFitWidth="0" ss:Width="107.25"/>
|
||||||
|
<Column ss:StyleID="s63" ss:Width="129.75"/>
|
||||||
|
<Column ss:StyleID="s63" ss:AutoFitWidth="0" ss:Width="287.25"/>
|
||||||
|
<Column ss:StyleID="s63" ss:AutoFitWidth="0" ss:Width="77.25"/>
|
||||||
|
<Column ss:StyleID="s63" ss:AutoFitWidth="0" ss:Width="114"/>
|
||||||
|
<Column ss:StyleID="s63" ss:AutoFitWidth="0" ss:Width="135" ss:Span="1"/>
|
||||||
|
<Row ss:AutoFitHeight="0" ss:Height="30" ss:StyleID="s65">
|
||||||
|
<Cell><Data ss:Type="String">Element</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Card.</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Inv.</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Must Understand</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">UML</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Type</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Binding</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Short Name</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Definition</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Aliases</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Requirements</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Comments</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">RIM Mapping</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">v2 Mapping</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">To Do</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Committee Notes</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0" ss:Height="30">
|
||||||
|
<Cell><Data ss:Type="String">Alert</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s66"/>
|
||||||
|
<Cell ss:StyleID="s66"/>
|
||||||
|
<Cell ss:StyleID="s66"/>
|
||||||
|
<Cell ss:StyleID="s66"/>
|
||||||
|
<Cell><Data ss:Type="String">Resource</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s67"/>
|
||||||
|
<Cell><Data ss:Type="String">Key information to flag to healthcare providers</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Prospective warnings of potential issues when providing care to the patient</Data></Cell>
|
||||||
|
<Cell ss:Index="11" ss:StyleID="s67"/>
|
||||||
|
<Cell ss:Index="13" ss:StyleID="s67"><Data ss:Type="String">Observation[classCode=ISSUE, moodCode=EVN]</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s67"/>
|
||||||
|
<Cell ss:StyleID="s67"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0" ss:Height="30">
|
||||||
|
<Cell><Data ss:Type="String">Alert.identifier</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">0..*</Data></Cell>
|
||||||
|
<Cell ss:Index="6"><Data ss:Type="String">Identifier</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s67"/>
|
||||||
|
<Cell><Data ss:Type="String">Business identifier</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Identifier assigned to the alert for external use (outside the FHIR environment)</Data></Cell>
|
||||||
|
<Cell ss:Index="11" ss:StyleID="s67"/>
|
||||||
|
<Cell ss:Index="13" ss:StyleID="s67"><Data ss:Type="String">.id</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s67"/>
|
||||||
|
<Cell ss:StyleID="s67"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0" ss:Height="30">
|
||||||
|
<Cell><Data ss:Type="String">Alert.category</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">0..1</Data></Cell>
|
||||||
|
<Cell ss:Index="6"><Data ss:Type="String">CodeableConcept</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s67"/>
|
||||||
|
<Cell><Data ss:Type="String">Clinical, administrative, etc.</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Allows an alert to be divided into different categories like clinical, administrative etc.</Data></Cell>
|
||||||
|
<Cell ss:Index="11" ss:StyleID="s67"/>
|
||||||
|
<Cell ss:Index="13" ss:StyleID="s67"><Data ss:Type="String">.code</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s67"/>
|
||||||
|
<Cell ss:StyleID="s67"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0" ss:Height="30">
|
||||||
|
<Cell><Data ss:Type="String">Alert.status</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">1..1</Data></Cell>
|
||||||
|
<Cell ss:Index="6"><Data ss:Type="String">code</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s67"><Data ss:Type="String">AlertStatus</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">active | inactive | entered in error</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Supports basic workflow</Data></Cell>
|
||||||
|
<Cell ss:Index="11" ss:StyleID="s67"/>
|
||||||
|
<Cell ss:Index="13" ss:StyleID="s67"><Data ss:Type="String">.status</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s67"/>
|
||||||
|
<Cell ss:StyleID="s67"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0" ss:Height="30">
|
||||||
|
<Cell><Data ss:Type="String">Alert.subject</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">1..1</Data></Cell>
|
||||||
|
<Cell ss:Index="6"><Data ss:Type="String">Resource(Patient)</Data></Cell>
|
||||||
|
<Cell ss:Index="8"><Data ss:Type="String">Who is alert about?</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">The person who this alert concerns</Data></Cell>
|
||||||
|
<Cell ss:Index="13"><Data ss:Type="String">.participation[typeCode=SBJ].role[classCode=PAT]</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0" ss:Height="30">
|
||||||
|
<Cell><Data ss:Type="String">Alert.author</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">0..1</Data></Cell>
|
||||||
|
<Cell ss:Index="6"><Data ss:Type="String">Resource(Practitioner | Patient| Device)</Data></Cell>
|
||||||
|
<Cell ss:Index="8"><Data ss:Type="String">Alert creator</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">The person or device that created the alert</Data></Cell>
|
||||||
|
<Cell ss:Index="13"><Data ss:Type="String">.participation[typeCode=AUT].role</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell><Data ss:Type="String">Alert.note</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">1..1</Data></Cell>
|
||||||
|
<Cell ss:Index="6"><Data ss:Type="String">string</Data></Cell>
|
||||||
|
<Cell ss:Index="8"><Data ss:Type="String">Text of alert</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">The textual component of the alert to display to the user</Data></Cell>
|
||||||
|
<Cell ss:Index="13"><Data ss:Type="String">.value</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="3" ss:StyleID="s67"/>
|
||||||
|
<Cell ss:StyleID="s67"/>
|
||||||
|
<Cell ss:StyleID="s67"/>
|
||||||
|
<Cell ss:Index="7" ss:StyleID="s67"/>
|
||||||
|
<Cell ss:Index="9" ss:StyleID="s67"/>
|
||||||
|
<Cell ss:StyleID="s67"/>
|
||||||
|
<Cell ss:StyleID="s67"/>
|
||||||
|
<Cell ss:StyleID="s67"/>
|
||||||
|
<Cell ss:StyleID="s67"/>
|
||||||
|
</Row>
|
||||||
|
</Table>
|
||||||
|
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
|
||||||
|
<PageSetup>
|
||||||
|
<Header x:Margin="0.3"/>
|
||||||
|
<Footer x:Margin="0.3"/>
|
||||||
|
<PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
|
||||||
|
</PageSetup>
|
||||||
|
<Unsynced/>
|
||||||
|
<Print>
|
||||||
|
<ValidPrinterInfo/>
|
||||||
|
<PaperSizeIndex>9</PaperSizeIndex>
|
||||||
|
<HorizontalResolution>-4</HorizontalResolution>
|
||||||
|
<VerticalResolution>-4</VerticalResolution>
|
||||||
|
</Print>
|
||||||
|
<Selected/>
|
||||||
|
<FreezePanes/>
|
||||||
|
<FrozenNoSplit/>
|
||||||
|
<SplitHorizontal>1</SplitHorizontal>
|
||||||
|
<TopRowBottomPane>1</TopRowBottomPane>
|
||||||
|
<SplitVertical>1</SplitVertical>
|
||||||
|
<LeftColumnRightPane>2</LeftColumnRightPane>
|
||||||
|
<ActivePane>0</ActivePane>
|
||||||
|
<Panes>
|
||||||
|
<Pane>
|
||||||
|
<Number>3</Number>
|
||||||
|
</Pane>
|
||||||
|
<Pane>
|
||||||
|
<Number>1</Number>
|
||||||
|
<ActiveCol>1</ActiveCol>
|
||||||
|
</Pane>
|
||||||
|
<Pane>
|
||||||
|
<Number>2</Number>
|
||||||
|
</Pane>
|
||||||
|
<Pane>
|
||||||
|
<Number>0</Number>
|
||||||
|
<ActiveRow>3</ActiveRow>
|
||||||
|
<ActiveCol>12</ActiveCol>
|
||||||
|
</Pane>
|
||||||
|
</Panes>
|
||||||
|
<ProtectObjects>False</ProtectObjects>
|
||||||
|
<ProtectScenarios>False</ProtectScenarios>
|
||||||
|
<x:PageLayoutZoom>0</x:PageLayoutZoom>
|
||||||
|
</WorksheetOptions>
|
||||||
|
</Worksheet>
|
||||||
|
<Worksheet ss:Name="Invariants">
|
||||||
|
<Table ss:ExpandedColumnCount="6" ss:ExpandedRowCount="6" x:FullColumns="1"
|
||||||
|
x:FullRows="1" ss:StyleID="s68" ss:DefaultColumnWidth="65.25"
|
||||||
|
ss:DefaultRowHeight="15">
|
||||||
|
<Column ss:Index="2" ss:StyleID="s68" ss:AutoFitWidth="0" ss:Width="116.25"/>
|
||||||
|
<Column ss:StyleID="s68" ss:AutoFitWidth="0" ss:Width="153"/>
|
||||||
|
<Column ss:StyleID="s68" ss:AutoFitWidth="0" ss:Width="204.75"/>
|
||||||
|
<Column ss:StyleID="s68" ss:AutoFitWidth="0" ss:Width="198.75"/>
|
||||||
|
<Column ss:StyleID="s68" ss:AutoFitWidth="0" ss:Width="188.25"/>
|
||||||
|
<Row ss:AutoFitHeight="0" ss:StyleID="s65">
|
||||||
|
<Cell><Data ss:Type="String">Id</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Name</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Context</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">English</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">OCL</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">XPath</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:StyleID="Default"/>
|
||||||
|
<Cell ss:StyleID="Default"/>
|
||||||
|
<Cell ss:StyleID="s64"/>
|
||||||
|
<Cell ss:StyleID="Default"/>
|
||||||
|
<Cell ss:StyleID="Default"/>
|
||||||
|
<Cell ss:StyleID="Default"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:StyleID="Default"/>
|
||||||
|
<Cell ss:StyleID="Default"/>
|
||||||
|
<Cell ss:StyleID="s64"/>
|
||||||
|
<Cell ss:StyleID="Default"/>
|
||||||
|
<Cell ss:StyleID="Default"/>
|
||||||
|
<Cell ss:StyleID="Default"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:StyleID="Default"/>
|
||||||
|
<Cell ss:StyleID="Default"/>
|
||||||
|
<Cell ss:StyleID="s64"/>
|
||||||
|
<Cell ss:StyleID="Default"/>
|
||||||
|
<Cell ss:StyleID="Default"/>
|
||||||
|
<Cell ss:StyleID="Default"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:StyleID="Default"/>
|
||||||
|
<Cell ss:StyleID="Default"/>
|
||||||
|
<Cell ss:StyleID="s64"/>
|
||||||
|
<Cell ss:StyleID="Default"/>
|
||||||
|
<Cell ss:StyleID="Default"/>
|
||||||
|
<Cell ss:StyleID="Default"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:StyleID="Default"/>
|
||||||
|
<Cell ss:StyleID="Default"/>
|
||||||
|
<Cell ss:StyleID="s64"/>
|
||||||
|
<Cell ss:StyleID="Default"/>
|
||||||
|
<Cell ss:StyleID="Default"/>
|
||||||
|
<Cell ss:StyleID="Default"/>
|
||||||
|
</Row>
|
||||||
|
</Table>
|
||||||
|
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
|
||||||
|
<PageSetup>
|
||||||
|
<Header x:Margin="0.3"/>
|
||||||
|
<Footer x:Margin="0.3"/>
|
||||||
|
<PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
|
||||||
|
</PageSetup>
|
||||||
|
<Unsynced/>
|
||||||
|
<Print>
|
||||||
|
<ValidPrinterInfo/>
|
||||||
|
<PaperSizeIndex>9</PaperSizeIndex>
|
||||||
|
<HorizontalResolution>-4</HorizontalResolution>
|
||||||
|
<VerticalResolution>-4</VerticalResolution>
|
||||||
|
</Print>
|
||||||
|
<FreezePanes/>
|
||||||
|
<FrozenNoSplit/>
|
||||||
|
<SplitHorizontal>1</SplitHorizontal>
|
||||||
|
<TopRowBottomPane>1</TopRowBottomPane>
|
||||||
|
<SplitVertical>2</SplitVertical>
|
||||||
|
<LeftColumnRightPane>2</LeftColumnRightPane>
|
||||||
|
<ActivePane>0</ActivePane>
|
||||||
|
<Panes>
|
||||||
|
<Pane>
|
||||||
|
<Number>3</Number>
|
||||||
|
</Pane>
|
||||||
|
<Pane>
|
||||||
|
<Number>1</Number>
|
||||||
|
</Pane>
|
||||||
|
<Pane>
|
||||||
|
<Number>2</Number>
|
||||||
|
</Pane>
|
||||||
|
<Pane>
|
||||||
|
<Number>0</Number>
|
||||||
|
</Pane>
|
||||||
|
</Panes>
|
||||||
|
<ProtectObjects>False</ProtectObjects>
|
||||||
|
<ProtectScenarios>False</ProtectScenarios>
|
||||||
|
<x:PageLayoutZoom>0</x:PageLayoutZoom>
|
||||||
|
</WorksheetOptions>
|
||||||
|
</Worksheet>
|
||||||
|
<Worksheet ss:Name="Events">
|
||||||
|
<Table ss:ExpandedColumnCount="6" ss:ExpandedRowCount="2" x:FullColumns="1"
|
||||||
|
x:FullRows="1" ss:DefaultColumnWidth="65.25" ss:DefaultRowHeight="15">
|
||||||
|
<Column ss:AutoFitWidth="0" ss:Width="83.25"/>
|
||||||
|
<Column ss:AutoFitWidth="0" ss:Width="198.75"/>
|
||||||
|
<Column ss:AutoFitWidth="0" ss:Width="158.25"/>
|
||||||
|
<Column ss:AutoFitWidth="0" ss:Width="162.75"/>
|
||||||
|
<Column ss:AutoFitWidth="0" ss:Width="195.75"/>
|
||||||
|
<Column ss:AutoFitWidth="0" ss:Width="74.25"/>
|
||||||
|
<Row ss:AutoFitHeight="0" ss:Height="33">
|
||||||
|
<Cell ss:StyleID="s65"><Data ss:Type="String">Event Code</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s65"><Data ss:Type="String">Description</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s65"><Data ss:Type="String">Notes</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s65"><Data ss:Type="String">Request Resources</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s65"><Data ss:Type="String">Response Resources</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s65"><Data ss:Type="String">Follow Ups</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:StyleID="s70"/>
|
||||||
|
<Cell ss:StyleID="s70"/>
|
||||||
|
<Cell ss:StyleID="s70"/>
|
||||||
|
<Cell ss:StyleID="s70"/>
|
||||||
|
</Row>
|
||||||
|
</Table>
|
||||||
|
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
|
||||||
|
<PageSetup>
|
||||||
|
<Header x:Margin="0.3"/>
|
||||||
|
<Footer x:Margin="0.3"/>
|
||||||
|
<PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
|
||||||
|
</PageSetup>
|
||||||
|
<Unsynced/>
|
||||||
|
<FreezePanes/>
|
||||||
|
<FrozenNoSplit/>
|
||||||
|
<SplitHorizontal>1</SplitHorizontal>
|
||||||
|
<TopRowBottomPane>1</TopRowBottomPane>
|
||||||
|
<SplitVertical>1</SplitVertical>
|
||||||
|
<LeftColumnRightPane>1</LeftColumnRightPane>
|
||||||
|
<ActivePane>0</ActivePane>
|
||||||
|
<Panes>
|
||||||
|
<Pane>
|
||||||
|
<Number>3</Number>
|
||||||
|
</Pane>
|
||||||
|
<Pane>
|
||||||
|
<Number>1</Number>
|
||||||
|
</Pane>
|
||||||
|
<Pane>
|
||||||
|
<Number>2</Number>
|
||||||
|
</Pane>
|
||||||
|
<Pane>
|
||||||
|
<Number>0</Number>
|
||||||
|
</Pane>
|
||||||
|
</Panes>
|
||||||
|
<ProtectObjects>False</ProtectObjects>
|
||||||
|
<ProtectScenarios>False</ProtectScenarios>
|
||||||
|
<x:PageLayoutZoom>0</x:PageLayoutZoom>
|
||||||
|
</WorksheetOptions>
|
||||||
|
</Worksheet>
|
||||||
|
<Worksheet ss:Name="Search">
|
||||||
|
<Table ss:ExpandedColumnCount="8" ss:ExpandedRowCount="41" x:FullColumns="1"
|
||||||
|
x:FullRows="1" ss:DefaultColumnWidth="65.25" ss:DefaultRowHeight="15">
|
||||||
|
<Column ss:AutoFitWidth="0" ss:Width="71.25"/>
|
||||||
|
<Column ss:AutoFitWidth="0" ss:Width="383.25"/>
|
||||||
|
<Row ss:AutoFitHeight="0" ss:Height="15.9375" ss:StyleID="s65">
|
||||||
|
<Cell><Data ss:Type="String">Name</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Description</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Type</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Path</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell><Data ss:Type="String">subject</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">The identity of a subject to list alerts for</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">reference</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s72"><Data ss:Type="String">Alert.subject</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s73"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:Index="6" ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s64"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s64"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s64"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s64"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s64"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s64"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s64"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s64"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s64"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s64"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s64"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s64"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s64"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s64"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s64"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s64"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s64"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s64"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s64"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s64"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s64"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s64"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s64"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s64"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s64"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s64"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s64"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s64"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s64"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s64"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s64"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s64"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s64"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s64"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s64"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s64"/>
|
||||||
|
</Row>
|
||||||
|
</Table>
|
||||||
|
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
|
||||||
|
<PageSetup>
|
||||||
|
<Header x:Margin="0.3"/>
|
||||||
|
<Footer x:Margin="0.3"/>
|
||||||
|
<PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
|
||||||
|
</PageSetup>
|
||||||
|
<Unsynced/>
|
||||||
|
<FreezePanes/>
|
||||||
|
<FrozenNoSplit/>
|
||||||
|
<SplitHorizontal>1</SplitHorizontal>
|
||||||
|
<TopRowBottomPane>1</TopRowBottomPane>
|
||||||
|
<SplitVertical>1</SplitVertical>
|
||||||
|
<LeftColumnRightPane>1</LeftColumnRightPane>
|
||||||
|
<ActivePane>0</ActivePane>
|
||||||
|
<Panes>
|
||||||
|
<Pane>
|
||||||
|
<Number>3</Number>
|
||||||
|
</Pane>
|
||||||
|
<Pane>
|
||||||
|
<Number>1</Number>
|
||||||
|
</Pane>
|
||||||
|
<Pane>
|
||||||
|
<Number>2</Number>
|
||||||
|
</Pane>
|
||||||
|
<Pane>
|
||||||
|
<Number>0</Number>
|
||||||
|
<ActiveRow>10</ActiveRow>
|
||||||
|
<ActiveCol>3</ActiveCol>
|
||||||
|
</Pane>
|
||||||
|
</Panes>
|
||||||
|
<ProtectObjects>False</ProtectObjects>
|
||||||
|
<ProtectScenarios>False</ProtectScenarios>
|
||||||
|
<x:PageLayoutZoom>0</x:PageLayoutZoom>
|
||||||
|
</WorksheetOptions>
|
||||||
|
</Worksheet>
|
||||||
|
<Worksheet ss:Name="Bindings">
|
||||||
|
<Table ss:ExpandedColumnCount="6" ss:ExpandedRowCount="4" x:FullColumns="1"
|
||||||
|
x:FullRows="1" ss:DefaultColumnWidth="65.25" ss:DefaultRowHeight="15">
|
||||||
|
<Column ss:AutoFitWidth="0" ss:Width="93"/>
|
||||||
|
<Column ss:AutoFitWidth="0" ss:Width="221.25"/>
|
||||||
|
<Column ss:AutoFitWidth="0" ss:Width="81.75" ss:Span="1"/>
|
||||||
|
<Column ss:Index="5" ss:AutoFitWidth="0" ss:Width="107.25"/>
|
||||||
|
<Column ss:AutoFitWidth="0" ss:Width="275.25"/>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:StyleID="s65"><Data ss:Type="String">Binding Name</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s65"><Data ss:Type="String">Definition</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s65"><Data ss:Type="String">Binding</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s65"><Data ss:Type="String">Management</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s65"><Data ss:Type="String">Reference</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s65"><Data ss:Type="String">Description</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:StyleID="s63"><Data ss:Type="String">AlertStatus</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s63"><Data ss:Type="String">Indicates whether this alert is active and needs to be displayed to a user, or whether it is no longer needed or entered in error</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s74"><Data ss:Type="String">code list</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s74"><Data ss:Type="String">static</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s74"><Data ss:Type="String">#alert-status</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:StyleID="s63"/>
|
||||||
|
<Cell ss:StyleID="s63"/>
|
||||||
|
<Cell ss:StyleID="s74"/>
|
||||||
|
<Cell ss:StyleID="s74"/>
|
||||||
|
<Cell ss:StyleID="s74"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:StyleID="s63"/>
|
||||||
|
<Cell ss:StyleID="s63"/>
|
||||||
|
<Cell ss:StyleID="s74"/>
|
||||||
|
<Cell ss:StyleID="s74"/>
|
||||||
|
<Cell ss:StyleID="s74"/>
|
||||||
|
</Row>
|
||||||
|
</Table>
|
||||||
|
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
|
||||||
|
<PageSetup>
|
||||||
|
<Header x:Margin="0.3"/>
|
||||||
|
<Footer x:Margin="0.3"/>
|
||||||
|
<PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
|
||||||
|
</PageSetup>
|
||||||
|
<Unsynced/>
|
||||||
|
<Print>
|
||||||
|
<ValidPrinterInfo/>
|
||||||
|
<PaperSizeIndex>9</PaperSizeIndex>
|
||||||
|
<HorizontalResolution>-4</HorizontalResolution>
|
||||||
|
<VerticalResolution>-4</VerticalResolution>
|
||||||
|
</Print>
|
||||||
|
<FreezePanes/>
|
||||||
|
<FrozenNoSplit/>
|
||||||
|
<SplitHorizontal>1</SplitHorizontal>
|
||||||
|
<TopRowBottomPane>1</TopRowBottomPane>
|
||||||
|
<SplitVertical>1</SplitVertical>
|
||||||
|
<LeftColumnRightPane>1</LeftColumnRightPane>
|
||||||
|
<ActivePane>0</ActivePane>
|
||||||
|
<Panes>
|
||||||
|
<Pane>
|
||||||
|
<Number>3</Number>
|
||||||
|
</Pane>
|
||||||
|
<Pane>
|
||||||
|
<Number>1</Number>
|
||||||
|
</Pane>
|
||||||
|
<Pane>
|
||||||
|
<Number>2</Number>
|
||||||
|
</Pane>
|
||||||
|
<Pane>
|
||||||
|
<Number>0</Number>
|
||||||
|
<ActiveRow>0</ActiveRow>
|
||||||
|
<ActiveCol>3</ActiveCol>
|
||||||
|
<RangeSelection>C4</RangeSelection>
|
||||||
|
</Pane>
|
||||||
|
</Panes>
|
||||||
|
<ProtectObjects>False</ProtectObjects>
|
||||||
|
<ProtectScenarios>False</ProtectScenarios>
|
||||||
|
<x:PageLayoutZoom>0</x:PageLayoutZoom>
|
||||||
|
</WorksheetOptions>
|
||||||
|
</Worksheet>
|
||||||
|
<Worksheet ss:Name="alert-status">
|
||||||
|
<Table ss:ExpandedColumnCount="3" ss:ExpandedRowCount="4" x:FullColumns="1"
|
||||||
|
x:FullRows="1" ss:DefaultColumnWidth="65.25" ss:DefaultRowHeight="14.0625">
|
||||||
|
<Row ss:AutoFitHeight="0" ss:Height="15">
|
||||||
|
<Cell><Data ss:Type="String">Id</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s65"><Data ss:Type="String">Code</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s65"><Data ss:Type="String">Definition</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0" ss:Height="15">
|
||||||
|
<Cell><Data ss:Type="Number">1</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">active</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">A current alert that should be displayed to a user. A system may use the category to determine which roles should view the alert</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0" ss:Height="15">
|
||||||
|
<Cell><Data ss:Type="Number">2</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">inactive</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">The alert does not need to be displayed any more</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0" ss:Height="15">
|
||||||
|
<Cell><Data ss:Type="Number">3</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s62"><Data ss:Type="String">entered in error</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s62"><Data ss:Type="String">The alert was added in error, and should no longer be displayed</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
</Table>
|
||||||
|
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
|
||||||
|
<Unsynced/>
|
||||||
|
<Print>
|
||||||
|
<ValidPrinterInfo/>
|
||||||
|
<PaperSizeIndex>9</PaperSizeIndex>
|
||||||
|
<HorizontalResolution>-4</HorizontalResolution>
|
||||||
|
<VerticalResolution>-4</VerticalResolution>
|
||||||
|
</Print>
|
||||||
|
<Panes>
|
||||||
|
<Pane>
|
||||||
|
<Number>3</Number>
|
||||||
|
<ActiveRow>5</ActiveRow>
|
||||||
|
<ActiveCol>3</ActiveCol>
|
||||||
|
</Pane>
|
||||||
|
</Panes>
|
||||||
|
<ProtectObjects>False</ProtectObjects>
|
||||||
|
<ProtectScenarios>False</ProtectScenarios>
|
||||||
|
<x:PageLayoutZoom>0</x:PageLayoutZoom>
|
||||||
|
</WorksheetOptions>
|
||||||
|
</Worksheet>
|
||||||
|
</Workbook>
|
|
@ -0,0 +1,738 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<?mso-application progid="Excel.Sheet"?>
|
||||||
|
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
|
||||||
|
xmlns:o="urn:schemas-microsoft-com:office:office"
|
||||||
|
xmlns:x="urn:schemas-microsoft-com:office:excel"
|
||||||
|
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
|
||||||
|
xmlns:html="http://www.w3.org/TR/REC-html40">
|
||||||
|
<DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
|
||||||
|
<Author>Grahame</Author>
|
||||||
|
<LastAuthor>Grahame</LastAuthor>
|
||||||
|
<Created>2012-03-19T09:39:52Z</Created>
|
||||||
|
<LastSaved>2013-05-20T01:36:01Z</LastSaved>
|
||||||
|
<Version>14.00</Version>
|
||||||
|
</DocumentProperties>
|
||||||
|
<OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office">
|
||||||
|
<AllowPNG/>
|
||||||
|
</OfficeDocumentSettings>
|
||||||
|
<ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">
|
||||||
|
<WindowHeight>13725</WindowHeight>
|
||||||
|
<WindowWidth>1980</WindowWidth>
|
||||||
|
<WindowTopX>135</WindowTopX>
|
||||||
|
<WindowTopY>600</WindowTopY>
|
||||||
|
<ProtectStructure>False</ProtectStructure>
|
||||||
|
<ProtectWindows>False</ProtectWindows>
|
||||||
|
</ExcelWorkbook>
|
||||||
|
<Styles>
|
||||||
|
<Style ss:ID="Default" ss:Name="Normal">
|
||||||
|
<Alignment ss:Vertical="Bottom"/>
|
||||||
|
<Borders/>
|
||||||
|
<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000"/>
|
||||||
|
<Interior/>
|
||||||
|
<NumberFormat/>
|
||||||
|
<Protection/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s62" ss:Name="Goed">
|
||||||
|
<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="12" ss:Color="#008000"/>
|
||||||
|
<Interior ss:Color="#CCFFCC" ss:Pattern="Solid"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s63" ss:Name="Normal 2">
|
||||||
|
<Alignment ss:Vertical="Bottom"/>
|
||||||
|
<Borders/>
|
||||||
|
<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000"/>
|
||||||
|
<Interior/>
|
||||||
|
<NumberFormat/>
|
||||||
|
<Protection/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s64">
|
||||||
|
<Alignment ss:Horizontal="Left" ss:Vertical="Top" ss:ShrinkToFit="1"
|
||||||
|
ss:WrapText="1"/>
|
||||||
|
<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11"/>
|
||||||
|
<Interior/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s65">
|
||||||
|
<Alignment ss:Horizontal="Left" ss:Vertical="Top" ss:ShrinkToFit="1"
|
||||||
|
ss:WrapText="1"/>
|
||||||
|
<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Bold="1"/>
|
||||||
|
<Interior/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s66">
|
||||||
|
<Alignment ss:Horizontal="Left" ss:Vertical="Top" ss:ShrinkToFit="1"
|
||||||
|
ss:WrapText="1"/>
|
||||||
|
<Borders>
|
||||||
|
<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
|
||||||
|
</Borders>
|
||||||
|
<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Bold="1"/>
|
||||||
|
<Interior/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s68" ss:Parent="s62">
|
||||||
|
<Alignment ss:Horizontal="Left" ss:Vertical="Top" ss:ShrinkToFit="1"
|
||||||
|
ss:WrapText="1"/>
|
||||||
|
<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="12"/>
|
||||||
|
<Interior/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s69">
|
||||||
|
<Alignment ss:Vertical="Bottom" ss:ShrinkToFit="1" ss:WrapText="1"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s70">
|
||||||
|
<Alignment ss:Horizontal="Left" ss:Vertical="Top" ss:ShrinkToFit="1"
|
||||||
|
ss:WrapText="1"/>
|
||||||
|
<Borders>
|
||||||
|
<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
|
||||||
|
</Borders>
|
||||||
|
<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000"
|
||||||
|
ss:Bold="1"/>
|
||||||
|
<Interior ss:Color="#FFFFFF" ss:Pattern="Solid"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s71">
|
||||||
|
<Alignment ss:Vertical="Top" ss:WrapText="1"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s72">
|
||||||
|
<Alignment ss:Vertical="Top"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s73">
|
||||||
|
<Alignment ss:Vertical="Top"/>
|
||||||
|
<Borders>
|
||||||
|
<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
|
||||||
|
</Borders>
|
||||||
|
<Interior ss:Color="#D9D9D9" ss:Pattern="Solid"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s74">
|
||||||
|
<Alignment ss:Vertical="Top"/>
|
||||||
|
<Borders>
|
||||||
|
<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
|
||||||
|
</Borders>
|
||||||
|
<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000"
|
||||||
|
ss:Bold="1"/>
|
||||||
|
<Interior ss:Color="#D9D9D9" ss:Pattern="Solid"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s75">
|
||||||
|
<Alignment ss:Horizontal="Left" ss:Vertical="Top" ss:ShrinkToFit="1"
|
||||||
|
ss:WrapText="1"/>
|
||||||
|
<Borders>
|
||||||
|
<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
|
||||||
|
</Borders>
|
||||||
|
<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000"
|
||||||
|
ss:Bold="1"/>
|
||||||
|
<Interior ss:Color="#D9D9D9" ss:Pattern="Solid"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s76">
|
||||||
|
<Alignment ss:Vertical="Top"/>
|
||||||
|
<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s77">
|
||||||
|
<Alignment ss:Horizontal="Left" ss:Vertical="Top" ss:ShrinkToFit="1"
|
||||||
|
ss:WrapText="1"/>
|
||||||
|
<Borders/>
|
||||||
|
<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000"/>
|
||||||
|
<Interior ss:Color="#FFFFFF" ss:Pattern="Solid"/>
|
||||||
|
</Style>
|
||||||
|
</Styles>
|
||||||
|
<Worksheet ss:Name="Data Elements">
|
||||||
|
<Table ss:ExpandedColumnCount="15" ss:ExpandedRowCount="7" x:FullColumns="1"
|
||||||
|
x:FullRows="1" ss:StyleID="s64" ss:DefaultColumnWidth="65.25"
|
||||||
|
ss:DefaultRowHeight="15">
|
||||||
|
<Column ss:StyleID="s65" ss:Width="239.25"/>
|
||||||
|
<Column ss:StyleID="s64" ss:AutoFitWidth="0" ss:Width="35.25"/>
|
||||||
|
<Column ss:StyleID="s64" ss:AutoFitWidth="0" ss:Width="30.75" ss:Span="1"/>
|
||||||
|
<Column ss:Index="5" ss:StyleID="s64" ss:AutoFitWidth="0" ss:Width="36"/>
|
||||||
|
<Column ss:StyleID="s64" ss:AutoFitWidth="0" ss:Width="74.25"/>
|
||||||
|
<Column ss:StyleID="s64" ss:AutoFitWidth="0" ss:Width="83.25"/>
|
||||||
|
<Column ss:StyleID="s64" ss:AutoFitWidth="0" ss:Width="213.75" ss:Span="1"/>
|
||||||
|
<Column ss:Index="10" ss:StyleID="s64" ss:AutoFitWidth="0" ss:Width="161.25"
|
||||||
|
ss:Span="1"/>
|
||||||
|
<Column ss:Index="12" ss:StyleID="s64" ss:AutoFitWidth="0" ss:Width="225.75"/>
|
||||||
|
<Column ss:StyleID="s64" ss:AutoFitWidth="0" ss:Width="135" ss:Span="1"/>
|
||||||
|
<Column ss:Index="15" ss:StyleID="s64" ss:AutoFitWidth="0" ss:Width="150"/>
|
||||||
|
<Row ss:AutoFitHeight="0" ss:Height="42.9375" ss:StyleID="s66">
|
||||||
|
<Cell><Data ss:Type="String">Element</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Card.</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Inv.</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">UML</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Is Modifier</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Type</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Binding</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Short Name</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Definition</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Requirements</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Comments</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">RIM Mapping</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">v2 Mapping</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">To Do</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Committee Notes</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0" ss:Height="120">
|
||||||
|
<Cell ss:StyleID="s68"><Data ss:Type="String">OperationOutcome</Data></Cell>
|
||||||
|
<Cell ss:Index="6"><Data ss:Type="String">Resource</Data></Cell>
|
||||||
|
<Cell ss:Index="8"><Data ss:Type="String">Information about the success/failure of an action</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">A collection of error, warning or information messages that result from a system action</Data></Cell>
|
||||||
|
<Cell ss:Index="11"><Data ss:Type="String">Can result from the failure of a REST call or be part of the response message returned from a request message. If sent with extensions overriding particular issues, might even appear as part of a request message.</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Grouping is handled through multiple repetitions from whatever context references the outcomes (no specific grouper required)</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0" ss:Height="120">
|
||||||
|
<Cell ss:StyleID="s68"><Data ss:Type="String">OperationOutcome.issue</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">1..*</Data></Cell>
|
||||||
|
<Cell ss:Index="4"><Data ss:Type="String">right</Data></Cell>
|
||||||
|
<Cell ss:Index="8"><Data ss:Type="String">A single issue associated with the action</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">An error, warning or information message that results from a system action</Data></Cell>
|
||||||
|
<Cell ss:Index="12"><Data ss:Type="String">AcknowledgementDetail or Observation[classCode="ALRT" and moodCode="EVN"]</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">ERR</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0" ss:Height="120">
|
||||||
|
<Cell ss:StyleID="s68"><Data ss:Type="String">OperationOutcome.issue.severity</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">1..1</Data></Cell>
|
||||||
|
<Cell ss:Index="5"><Data ss:Type="String">y</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">code</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">IssueSeverity</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">fatal | error | warning | information </Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Indicates whether the issue indicates a variation from successful processing</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Indicates how relevant the issue is to the overall success of the action.</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">This is labeled as "Is Modifier" because applications should not confuse hints and warnings with errors</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">./typeCode[parent::AcknowledgmentDetail] or unique(./inboundRelationship[parent::Observation and typeCode='SUBJ' and isNormalActRelationship()]/source[classCode="OBS" and moodCode="EVN" and implies(code, ActCode#SEV and isNormalAct())/value[xsi:type="CD"]</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">ERR-4</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0" ss:Height="150">
|
||||||
|
<Cell ss:StyleID="s68"><Data ss:Type="String">OperationOutcome.issue.type</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">0..1</Data></Cell>
|
||||||
|
<Cell ss:Index="6"><Data ss:Type="String">Coding</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">IssueType</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Error or warning code</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">A code indicating the type of error, warning or information message.</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Expresses the issue in a computer-friendly way, allowing the requesting system to behave differently based on the type of issue.</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Codes should only be defined at a level of granularity that reasonably allows distinct actions to be taken by the receiving system. If the response behavior of all systems is the same for two codes, the codes might as well be merged. The human-meaningful content of the issue is conveyed in .text.</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">./code</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">ERR-3, ERR-5</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0" ss:Height="150">
|
||||||
|
<Cell ss:StyleID="s68"><Data ss:Type="String">OperationOutcome.issue.details</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">0..1</Data></Cell>
|
||||||
|
<Cell ss:Index="6"><Data ss:Type="String">string</Data></Cell>
|
||||||
|
<Cell ss:Index="8"><Data ss:Type="String">Additional description of the issue</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Additional description of the issue</Data></Cell>
|
||||||
|
<Cell ss:Index="11"><Data ss:Type="String">typically this field is used to provide details human-readable information about the error</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">./text[parent::AcknowledgmentDetail]</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">ERR-8</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0" ss:Height="140.0625">
|
||||||
|
<Cell ss:StyleID="s68"><Data ss:Type="String">OperationOutcome.issue.location</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s68"><Data ss:Type="String">0..*</Data></Cell>
|
||||||
|
<Cell ss:Index="5" ss:StyleID="s68"/>
|
||||||
|
<Cell ss:StyleID="s68"><Data ss:Type="String">string</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s68"/>
|
||||||
|
<Cell ss:StyleID="s68"><Data ss:Type="String">XPath of element(s) related to issue</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s68"><Data ss:Type="String">A simple XPath limited to element names, repetition indicators and the default child access that identifies one of the elements in the resource that caused this issue to be raised.</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s68"><Data ss:Type="String">Allows systems to highlight or otherwise guide users to elements implicated in issues to allow them to be fixed more easily.</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">The root of the XPath is the resource or bundle that generated OperationOutcome. Each XPath SHALL resolve to a single node. The XPath syntax is used whether the referenced instance is expressed in XML or JSON.</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">./location[parent::AcknowledgmentDetail]</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">ERR-2</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
</Table>
|
||||||
|
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
|
||||||
|
<PageSetup>
|
||||||
|
<Header x:Margin="0.3"/>
|
||||||
|
<Footer x:Margin="0.3"/>
|
||||||
|
<PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
|
||||||
|
</PageSetup>
|
||||||
|
<Unsynced/>
|
||||||
|
<Print>
|
||||||
|
<ValidPrinterInfo/>
|
||||||
|
<PaperSizeIndex>9</PaperSizeIndex>
|
||||||
|
<HorizontalResolution>-4</HorizontalResolution>
|
||||||
|
<VerticalResolution>-4</VerticalResolution>
|
||||||
|
</Print>
|
||||||
|
<Selected/>
|
||||||
|
<FreezePanes/>
|
||||||
|
<FrozenNoSplit/>
|
||||||
|
<SplitHorizontal>1</SplitHorizontal>
|
||||||
|
<TopRowBottomPane>1</TopRowBottomPane>
|
||||||
|
<SplitVertical>1</SplitVertical>
|
||||||
|
<LeftColumnRightPane>1</LeftColumnRightPane>
|
||||||
|
<ActivePane>0</ActivePane>
|
||||||
|
<Panes>
|
||||||
|
<Pane>
|
||||||
|
<Number>3</Number>
|
||||||
|
</Pane>
|
||||||
|
<Pane>
|
||||||
|
<Number>1</Number>
|
||||||
|
</Pane>
|
||||||
|
<Pane>
|
||||||
|
<Number>2</Number>
|
||||||
|
</Pane>
|
||||||
|
<Pane>
|
||||||
|
<Number>0</Number>
|
||||||
|
</Pane>
|
||||||
|
</Panes>
|
||||||
|
<ProtectObjects>False</ProtectObjects>
|
||||||
|
<ProtectScenarios>False</ProtectScenarios>
|
||||||
|
<x:PageLayoutZoom>0</x:PageLayoutZoom>
|
||||||
|
</WorksheetOptions>
|
||||||
|
</Worksheet>
|
||||||
|
<Worksheet ss:Name="Invariants">
|
||||||
|
<Table ss:ExpandedColumnCount="6" ss:ExpandedRowCount="1" x:FullColumns="1"
|
||||||
|
x:FullRows="1" ss:StyleID="s69" ss:DefaultColumnWidth="65.25"
|
||||||
|
ss:DefaultRowHeight="15">
|
||||||
|
<Row ss:AutoFitHeight="0" ss:Height="15.9375" ss:StyleID="s70">
|
||||||
|
<Cell><Data ss:Type="String">Id</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Name</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Context</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">English</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">OCL</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">XPath</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
</Table>
|
||||||
|
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
|
||||||
|
<PageSetup>
|
||||||
|
<Header x:Margin="0.3"/>
|
||||||
|
<Footer x:Margin="0.3"/>
|
||||||
|
<PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
|
||||||
|
</PageSetup>
|
||||||
|
<Unsynced/>
|
||||||
|
<Print>
|
||||||
|
<ValidPrinterInfo/>
|
||||||
|
<PaperSizeIndex>9</PaperSizeIndex>
|
||||||
|
<HorizontalResolution>-4</HorizontalResolution>
|
||||||
|
<VerticalResolution>-4</VerticalResolution>
|
||||||
|
</Print>
|
||||||
|
<Panes>
|
||||||
|
<Pane>
|
||||||
|
<Number>3</Number>
|
||||||
|
<RangeSelection>R1</RangeSelection>
|
||||||
|
</Pane>
|
||||||
|
</Panes>
|
||||||
|
<ProtectObjects>False</ProtectObjects>
|
||||||
|
<ProtectScenarios>False</ProtectScenarios>
|
||||||
|
<x:PageLayoutZoom>0</x:PageLayoutZoom>
|
||||||
|
</WorksheetOptions>
|
||||||
|
</Worksheet>
|
||||||
|
<Worksheet ss:Name="Events">
|
||||||
|
<Table ss:ExpandedColumnCount="5" ss:ExpandedRowCount="2" x:FullColumns="1"
|
||||||
|
x:FullRows="1" ss:StyleID="s71" ss:DefaultColumnWidth="65.25"
|
||||||
|
ss:DefaultRowHeight="15">
|
||||||
|
<Column ss:StyleID="s71" ss:AutoFitWidth="0" ss:Width="99.75"/>
|
||||||
|
<Column ss:StyleID="s71" ss:AutoFitWidth="0" ss:Width="171"/>
|
||||||
|
<Column ss:StyleID="s71" ss:AutoFitWidth="0" ss:Width="96.75"/>
|
||||||
|
<Column ss:StyleID="s71" ss:AutoFitWidth="0" ss:Width="107.25"/>
|
||||||
|
<Column ss:StyleID="s71" ss:AutoFitWidth="0" ss:Width="69.75"/>
|
||||||
|
<Row ss:AutoFitHeight="0" ss:Height="15.9375" ss:StyleID="s70">
|
||||||
|
<Cell><Data ss:Type="String">Event Code</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Description</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Request Resources</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Response Resources</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Follow Ups</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0" ss:Height="105"/>
|
||||||
|
</Table>
|
||||||
|
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
|
||||||
|
<PageSetup>
|
||||||
|
<Header x:Margin="0.3"/>
|
||||||
|
<Footer x:Margin="0.3"/>
|
||||||
|
<PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
|
||||||
|
</PageSetup>
|
||||||
|
<Unsynced/>
|
||||||
|
<Print>
|
||||||
|
<ValidPrinterInfo/>
|
||||||
|
<PaperSizeIndex>9</PaperSizeIndex>
|
||||||
|
<HorizontalResolution>600</HorizontalResolution>
|
||||||
|
<VerticalResolution>0</VerticalResolution>
|
||||||
|
</Print>
|
||||||
|
<Panes>
|
||||||
|
<Pane>
|
||||||
|
<Number>3</Number>
|
||||||
|
<ActiveRow>1</ActiveRow>
|
||||||
|
<RangeSelection>R2C1:R2C3</RangeSelection>
|
||||||
|
</Pane>
|
||||||
|
</Panes>
|
||||||
|
<ProtectObjects>False</ProtectObjects>
|
||||||
|
<ProtectScenarios>False</ProtectScenarios>
|
||||||
|
<x:PageLayoutZoom>0</x:PageLayoutZoom>
|
||||||
|
</WorksheetOptions>
|
||||||
|
</Worksheet>
|
||||||
|
<Worksheet ss:Name="Search">
|
||||||
|
<Table ss:ExpandedColumnCount="3" ss:ExpandedRowCount="2" x:FullColumns="1"
|
||||||
|
x:FullRows="1" ss:DefaultColumnWidth="65.25" ss:DefaultRowHeight="15">
|
||||||
|
<Column ss:AutoFitWidth="0" ss:Width="71.25"/>
|
||||||
|
<Column ss:AutoFitWidth="0" ss:Width="383.25"/>
|
||||||
|
<Row ss:AutoFitHeight="0" ss:Height="15.9375" ss:StyleID="s70">
|
||||||
|
<Cell><Data ss:Type="String">Name</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Description</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Type</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0" ss:Height="15.9375"/>
|
||||||
|
</Table>
|
||||||
|
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
|
||||||
|
<PageSetup>
|
||||||
|
<Header x:Margin="0.3"/>
|
||||||
|
<Footer x:Margin="0.3"/>
|
||||||
|
<PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
|
||||||
|
</PageSetup>
|
||||||
|
<Unsynced/>
|
||||||
|
<Print>
|
||||||
|
<ValidPrinterInfo/>
|
||||||
|
<PaperSizeIndex>9</PaperSizeIndex>
|
||||||
|
<HorizontalResolution>600</HorizontalResolution>
|
||||||
|
<VerticalResolution>0</VerticalResolution>
|
||||||
|
</Print>
|
||||||
|
<Panes>
|
||||||
|
<Pane>
|
||||||
|
<Number>3</Number>
|
||||||
|
<ActiveRow>1</ActiveRow>
|
||||||
|
</Pane>
|
||||||
|
</Panes>
|
||||||
|
<ProtectObjects>False</ProtectObjects>
|
||||||
|
<ProtectScenarios>False</ProtectScenarios>
|
||||||
|
<x:PageLayoutZoom>0</x:PageLayoutZoom>
|
||||||
|
</WorksheetOptions>
|
||||||
|
</Worksheet>
|
||||||
|
<Worksheet ss:Name="Examples">
|
||||||
|
<Table ss:ExpandedColumnCount="6" ss:ExpandedRowCount="2" x:FullColumns="1"
|
||||||
|
x:FullRows="1" ss:DefaultColumnWidth="65.25" ss:DefaultRowHeight="15">
|
||||||
|
<Column ss:AutoFitWidth="0" ss:Width="116.25"/>
|
||||||
|
<Column ss:AutoFitWidth="0" ss:Width="251.25"/>
|
||||||
|
<Column ss:AutoFitWidth="0" ss:Width="57"/>
|
||||||
|
<Column ss:AutoFitWidth="0" ss:Width="102"/>
|
||||||
|
<Row ss:AutoFitHeight="0" ss:Height="15.9375" ss:StyleID="s70">
|
||||||
|
<Cell><Data ss:Type="String">Name</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Description</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Identity</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Filename</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Type</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">In Book</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell><Data ss:Type="String">General</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">General Outcome Example</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="Number">101</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">operationoutcome-example.xml</Data></Cell>
|
||||||
|
<Cell ss:Index="6"><Data ss:Type="String">y</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
</Table>
|
||||||
|
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
|
||||||
|
<PageSetup>
|
||||||
|
<Header x:Margin="0.3"/>
|
||||||
|
<Footer x:Margin="0.3"/>
|
||||||
|
<PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
|
||||||
|
</PageSetup>
|
||||||
|
<Unsynced/>
|
||||||
|
<Panes>
|
||||||
|
<Pane>
|
||||||
|
<Number>3</Number>
|
||||||
|
<ActiveRow>1</ActiveRow>
|
||||||
|
<ActiveCol>3</ActiveCol>
|
||||||
|
</Pane>
|
||||||
|
</Panes>
|
||||||
|
<ProtectObjects>False</ProtectObjects>
|
||||||
|
<ProtectScenarios>False</ProtectScenarios>
|
||||||
|
<x:PageLayoutZoom>0</x:PageLayoutZoom>
|
||||||
|
</WorksheetOptions>
|
||||||
|
</Worksheet>
|
||||||
|
<Worksheet ss:Name="Bindings">
|
||||||
|
<Table ss:ExpandedColumnCount="5" ss:ExpandedRowCount="3" x:FullColumns="1"
|
||||||
|
x:FullRows="1" ss:StyleID="s72" ss:DefaultColumnWidth="65.25"
|
||||||
|
ss:DefaultRowHeight="15">
|
||||||
|
<Column ss:StyleID="s72" ss:AutoFitWidth="0" ss:Width="114"/>
|
||||||
|
<Column ss:StyleID="s72" ss:AutoFitWidth="0" ss:Width="234.75"/>
|
||||||
|
<Column ss:Index="4" ss:StyleID="s72" ss:AutoFitWidth="0" ss:Width="126"/>
|
||||||
|
<Column ss:StyleID="s72" ss:AutoFitWidth="0" ss:Width="260.25"/>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:StyleID="s70"><Data ss:Type="String">Binding Name</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s70"><Data ss:Type="String">Definition</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s70"><Data ss:Type="String">Binding</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s70"><Data ss:Type="String">Reference</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s70"><Data ss:Type="String">Description</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0" ss:Height="30">
|
||||||
|
<Cell ss:StyleID="s71"><Data ss:Type="String">IssueSeverity</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s71"><Data ss:Type="String">How the issue affects the success of the action</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s71"><Data ss:Type="String">code list</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">#issue-severity</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:StyleID="s71"><Data ss:Type="String">IssueType</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s71"><Data ss:Type="String">A coded expression of the type of issue</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s71"><Data ss:Type="String">code list</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">#issue-type</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s71"/>
|
||||||
|
</Row>
|
||||||
|
</Table>
|
||||||
|
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
|
||||||
|
<PageSetup>
|
||||||
|
<Header x:Margin="0.3"/>
|
||||||
|
<Footer x:Margin="0.3"/>
|
||||||
|
<PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
|
||||||
|
</PageSetup>
|
||||||
|
<Unsynced/>
|
||||||
|
<Panes>
|
||||||
|
<Pane>
|
||||||
|
<Number>3</Number>
|
||||||
|
<ActiveRow>8</ActiveRow>
|
||||||
|
<ActiveCol>3</ActiveCol>
|
||||||
|
</Pane>
|
||||||
|
</Panes>
|
||||||
|
<ProtectObjects>False</ProtectObjects>
|
||||||
|
<ProtectScenarios>False</ProtectScenarios>
|
||||||
|
<x:PageLayoutZoom>0</x:PageLayoutZoom>
|
||||||
|
</WorksheetOptions>
|
||||||
|
</Worksheet>
|
||||||
|
<Worksheet ss:Name="issue-severity">
|
||||||
|
<Table ss:ExpandedColumnCount="7" ss:ExpandedRowCount="6" x:FullColumns="1"
|
||||||
|
x:FullRows="1" ss:DefaultColumnWidth="65.25" ss:DefaultRowHeight="15">
|
||||||
|
<Column ss:Index="3" ss:AutoFitWidth="0" ss:Width="288"/>
|
||||||
|
<Row ss:AutoFitHeight="0" ss:StyleID="s73">
|
||||||
|
<Cell ss:StyleID="s74"><Data ss:Type="String">Id</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s75"><Data ss:Type="String">Code</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s75"><Data ss:Type="String">Definition</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s75"/>
|
||||||
|
<Cell ss:StyleID="s75"/>
|
||||||
|
<Cell ss:StyleID="s75"/>
|
||||||
|
<Cell ss:StyleID="s75"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0" ss:StyleID="s76">
|
||||||
|
<Cell><Data ss:Type="Number">4</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s77"><Data ss:Type="String">fatal</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s77"><Data ss:Type="String">The issue caused the action to fail, and no further checking could be performed</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s77"/>
|
||||||
|
<Cell ss:StyleID="s77"/>
|
||||||
|
<Cell ss:StyleID="s77"/>
|
||||||
|
<Cell ss:StyleID="s77"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell><Data ss:Type="Number">1</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s63"><Data ss:Type="String">error</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s63"><Data ss:Type="String">The issue is sufficiently important to cause the action to fail</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell><Data ss:Type="Number">2</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s63"><Data ss:Type="String">warning</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s63"><Data ss:Type="String">The issue is not important enough to cause the action to fail, but may cause it to be performed suboptimally or in a way that is not as desired</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell><Data ss:Type="Number">3</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s63"><Data ss:Type="String">information</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s63"><Data ss:Type="String">The issue has no relation to the degree of success of the action</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="2" ss:StyleID="s63"/>
|
||||||
|
<Cell ss:StyleID="s63"/>
|
||||||
|
</Row>
|
||||||
|
</Table>
|
||||||
|
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
|
||||||
|
<PageSetup>
|
||||||
|
<Header x:Margin="0.3"/>
|
||||||
|
<Footer x:Margin="0.3"/>
|
||||||
|
<PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
|
||||||
|
</PageSetup>
|
||||||
|
<Unsynced/>
|
||||||
|
<Print>
|
||||||
|
<ValidPrinterInfo/>
|
||||||
|
<PaperSizeIndex>9</PaperSizeIndex>
|
||||||
|
<HorizontalResolution>600</HorizontalResolution>
|
||||||
|
<VerticalResolution>0</VerticalResolution>
|
||||||
|
</Print>
|
||||||
|
<Panes>
|
||||||
|
<Pane>
|
||||||
|
<Number>3</Number>
|
||||||
|
<ActiveRow>7</ActiveRow>
|
||||||
|
<ActiveCol>1</ActiveCol>
|
||||||
|
</Pane>
|
||||||
|
</Panes>
|
||||||
|
<ProtectObjects>False</ProtectObjects>
|
||||||
|
<ProtectScenarios>False</ProtectScenarios>
|
||||||
|
<x:PageLayoutZoom>0</x:PageLayoutZoom>
|
||||||
|
</WorksheetOptions>
|
||||||
|
</Worksheet>
|
||||||
|
<Worksheet ss:Name="issue-type">
|
||||||
|
<Table ss:ExpandedColumnCount="8" ss:ExpandedRowCount="27" x:FullColumns="1"
|
||||||
|
x:FullRows="1" ss:DefaultRowHeight="15">
|
||||||
|
<Column ss:Index="2" ss:AutoFitWidth="0" ss:Width="66.75"/>
|
||||||
|
<Column ss:AutoFitWidth="0" ss:Width="72.75"/>
|
||||||
|
<Column ss:AutoFitWidth="0" ss:Width="507"/>
|
||||||
|
<Row ss:AutoFitHeight="0" ss:StyleID="s74">
|
||||||
|
<Cell><Data ss:Type="String">Id</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s75"><Data ss:Type="String">Code</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s75"><Data ss:Type="String">Parent</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s75"><Data ss:Type="String">Definition</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s75"><Data ss:Type="String">Comments</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s75"/>
|
||||||
|
<Cell ss:StyleID="s75"/>
|
||||||
|
<Cell ss:StyleID="s75"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell><Data ss:Type="Number">1</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">invalid</Data></Cell>
|
||||||
|
<Cell ss:Index="4"><Data ss:Type="String">Content invalid against Specification or Profile</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell><Data ss:Type="Number">2</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">structure</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">#1</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">content structural issue</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell><Data ss:Type="Number">3</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">required</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">#1</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">required element missing</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell><Data ss:Type="Number">4</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">value</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">#1</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">element value invalid</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell><Data ss:Type="Number">5</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">invariant</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">#1</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">schematron rule</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell><Data ss:Type="Number">6</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">security</Data></Cell>
|
||||||
|
<Cell ss:Index="4"><Data ss:Type="String">authorization/permissions issue</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell><Data ss:Type="Number">7</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">login</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">#6</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">the client needs to initiate the authentication process ()</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Sometimes associated with HTTP 3xx response codes, but not if the client gets to choose which authentication process to initiate</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell><Data ss:Type="Number">8</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">unknown</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">#6</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">user/system not able to be authenticated</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell><Data ss:Type="Number">9</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">expired</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">#6</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">user session expired</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell><Data ss:Type="Number">10</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">forbidden</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">#6</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">user rights failure</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell><Data ss:Type="Number">11</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">processing</Data></Cell>
|
||||||
|
<Cell ss:Index="4"><Data ss:Type="String">processing issues</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell><Data ss:Type="Number">12</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">not-supported</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">#11</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">resource not supported</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell><Data ss:Type="Number">13</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">duplicate</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">#11</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">duplicate resource</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell><Data ss:Type="Number">14</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">not-found</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">#11</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">reference not found</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell><Data ss:Type="Number">15</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">too-long</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">#11</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">existing content too long</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell><Data ss:Type="Number">16</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">code-unknown</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">#11</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">code could not be understood</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell><Data ss:Type="Number">17</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">extension</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">#11</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">extension not recognized</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell><Data ss:Type="Number">18</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">too-costly</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">#11</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">operation denied to protect server resources</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell><Data ss:Type="Number">19</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">business-rule</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">#11</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">content failed to pass some business rule</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell><Data ss:Type="Number">25</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">conflict</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">#11</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">content could not be accepted because of an edit conflict (i.e. version aware updates)</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell><Data ss:Type="Number">20</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">transient</Data></Cell>
|
||||||
|
<Cell ss:Index="4"><Data ss:Type="String">transient processing issues</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">a retry usually would be appropriate</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell><Data ss:Type="Number">21</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">lock-error</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">#20</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">resource/record locking failure</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell><Data ss:Type="Number">22</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">no-store</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">#20</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">persistent store unavailable</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell><Data ss:Type="Number">23</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">exception</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">#20</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">unexpected internal error </Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell><Data ss:Type="Number">24</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">timeout</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">#20</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">internal timeout</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell><Data ss:Type="Number">25</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">throttled</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">#20</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">The system is not prepared to handle this request due to load management</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
</Table>
|
||||||
|
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
|
||||||
|
<PageSetup>
|
||||||
|
<Header x:Margin="0.3"/>
|
||||||
|
<Footer x:Margin="0.3"/>
|
||||||
|
<PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
|
||||||
|
</PageSetup>
|
||||||
|
<Unsynced/>
|
||||||
|
<Print>
|
||||||
|
<ValidPrinterInfo/>
|
||||||
|
<PaperSizeIndex>9</PaperSizeIndex>
|
||||||
|
<HorizontalResolution>600</HorizontalResolution>
|
||||||
|
<VerticalResolution>0</VerticalResolution>
|
||||||
|
</Print>
|
||||||
|
<Panes>
|
||||||
|
<Pane>
|
||||||
|
<Number>3</Number>
|
||||||
|
<ActiveRow>24</ActiveRow>
|
||||||
|
<ActiveCol>1</ActiveCol>
|
||||||
|
</Pane>
|
||||||
|
</Panes>
|
||||||
|
<ProtectObjects>False</ProtectObjects>
|
||||||
|
<ProtectScenarios>False</ProtectScenarios>
|
||||||
|
</WorksheetOptions>
|
||||||
|
</Worksheet>
|
||||||
|
</Workbook>
|
|
@ -0,0 +1,751 @@
|
||||||
|
<?xml version="1.0"?>
|
||||||
|
<?mso-application progid="Excel.Sheet"?>
|
||||||
|
<Workbook xmlns="urn:schemas-microsoft-com:office:spreadsheet"
|
||||||
|
xmlns:o="urn:schemas-microsoft-com:office:office"
|
||||||
|
xmlns:x="urn:schemas-microsoft-com:office:excel"
|
||||||
|
xmlns:ss="urn:schemas-microsoft-com:office:spreadsheet"
|
||||||
|
xmlns:html="http://www.w3.org/TR/REC-html40">
|
||||||
|
<DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
|
||||||
|
<Author>Grahame</Author>
|
||||||
|
<LastAuthor>Lloyd McKenzie</LastAuthor>
|
||||||
|
<Created>2012-03-19T11:12:07Z</Created>
|
||||||
|
<LastSaved>2014-01-26T22:05:00Z</LastSaved>
|
||||||
|
<Version>14.00</Version>
|
||||||
|
</DocumentProperties>
|
||||||
|
<OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office">
|
||||||
|
<AllowPNG/>
|
||||||
|
</OfficeDocumentSettings>
|
||||||
|
<ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">
|
||||||
|
<WindowHeight>6345</WindowHeight>
|
||||||
|
<WindowWidth>22755</WindowWidth>
|
||||||
|
<WindowTopX>5520</WindowTopX>
|
||||||
|
<WindowTopY>6075</WindowTopY>
|
||||||
|
<ProtectStructure>False</ProtectStructure>
|
||||||
|
<ProtectWindows>False</ProtectWindows>
|
||||||
|
</ExcelWorkbook>
|
||||||
|
<Styles>
|
||||||
|
<Style ss:ID="Default" ss:Name="Normal">
|
||||||
|
<Alignment ss:Vertical="Bottom"/>
|
||||||
|
<Borders/>
|
||||||
|
<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000"/>
|
||||||
|
<Interior/>
|
||||||
|
<NumberFormat/>
|
||||||
|
<Protection/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s62">
|
||||||
|
<Alignment ss:Horizontal="Left" ss:Vertical="Top" ss:ShrinkToFit="1"
|
||||||
|
ss:WrapText="1"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s63">
|
||||||
|
<Alignment ss:Horizontal="Left" ss:Vertical="Top" ss:ShrinkToFit="1"
|
||||||
|
ss:WrapText="1"/>
|
||||||
|
<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000"
|
||||||
|
ss:Bold="1"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s64">
|
||||||
|
<Alignment ss:Horizontal="Left" ss:Vertical="Top" ss:ShrinkToFit="1"
|
||||||
|
ss:WrapText="1"/>
|
||||||
|
<Borders>
|
||||||
|
<Border ss:Position="Bottom" ss:LineStyle="Continuous" ss:Weight="1"/>
|
||||||
|
</Borders>
|
||||||
|
<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000"
|
||||||
|
ss:Bold="1"/>
|
||||||
|
<Interior ss:Color="#EEECE1" ss:Pattern="Solid"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s65">
|
||||||
|
<Alignment ss:Horizontal="Left" ss:Vertical="Top" ss:ShrinkToFit="1"
|
||||||
|
ss:WrapText="1"/>
|
||||||
|
<Interior ss:Color="#D9D9D9" ss:Pattern="Solid"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s68">
|
||||||
|
<Alignment ss:Vertical="Bottom" ss:ShrinkToFit="1" ss:WrapText="1"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s69">
|
||||||
|
<Alignment ss:Vertical="Top" ss:WrapText="1"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s70">
|
||||||
|
<Alignment ss:Vertical="Top"/>
|
||||||
|
</Style>
|
||||||
|
<Style ss:ID="s83">
|
||||||
|
<Alignment ss:Vertical="Top" ss:WrapText="1"/>
|
||||||
|
<Borders/>
|
||||||
|
<Font ss:FontName="Calibri" x:Family="Swiss" ss:Size="11" ss:Color="#000000"/>
|
||||||
|
<Interior/>
|
||||||
|
<NumberFormat/>
|
||||||
|
<Protection/>
|
||||||
|
</Style>
|
||||||
|
</Styles>
|
||||||
|
<Worksheet ss:Name="Data Elements">
|
||||||
|
<Table ss:ExpandedColumnCount="16" ss:ExpandedRowCount="14" x:FullColumns="1"
|
||||||
|
x:FullRows="1" ss:StyleID="s62" ss:DefaultRowHeight="15">
|
||||||
|
<Column ss:StyleID="s63" ss:AutoFitWidth="0" ss:Width="150.75"/>
|
||||||
|
<Column ss:StyleID="s62" ss:Width="29.25"/>
|
||||||
|
<Column ss:StyleID="s62" ss:Width="22.5"/>
|
||||||
|
<Column ss:StyleID="s62" ss:Width="60"/>
|
||||||
|
<Column ss:StyleID="s62" ss:Width="27"/>
|
||||||
|
<Column ss:StyleID="s62" ss:AutoFitWidth="0" ss:Width="119.25"/>
|
||||||
|
<Column ss:StyleID="s62" ss:AutoFitWidth="0" ss:Width="106.5"/>
|
||||||
|
<Column ss:StyleID="s62" ss:AutoFitWidth="0" ss:Width="192.75"/>
|
||||||
|
<Column ss:StyleID="s62" ss:AutoFitWidth="0" ss:Width="161.25"/>
|
||||||
|
<Column ss:StyleID="s62" ss:AutoFitWidth="0" ss:Width="77.25"/>
|
||||||
|
<Column ss:StyleID="s62" ss:AutoFitWidth="0" ss:Width="114"/>
|
||||||
|
<Column ss:StyleID="s62" ss:AutoFitWidth="0" ss:Width="135" ss:Span="1"/>
|
||||||
|
<Row ss:Height="30" ss:StyleID="s64">
|
||||||
|
<Cell><Data ss:Type="String">Element</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Card.</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Inv.</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Must Understand</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">UML</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Type</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Binding</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Short Name</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Definition</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Aliases</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Requirements</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Comments</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">RIM Mapping</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">v2 Mapping</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">To Do</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Committee Notes</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:Height="30">
|
||||||
|
<Cell><Data ss:Type="String">Query</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s65"/>
|
||||||
|
<Cell ss:StyleID="s65"/>
|
||||||
|
<Cell ss:StyleID="s65"/>
|
||||||
|
<Cell ss:StyleID="s65"/>
|
||||||
|
<Cell><Data ss:Type="String">Resource</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s83"/>
|
||||||
|
<Cell><Data ss:Type="String">A description of a query with a set of parameters</Data></Cell>
|
||||||
|
<Cell ss:Index="11" ss:StyleID="s83"/>
|
||||||
|
<Cell ss:Index="13" ss:StyleID="s83"><Data ss:Type="String">QuerySpec</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s83"/>
|
||||||
|
<Cell ss:StyleID="s83"/>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="String">Query.identifier</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">1..1</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s83"/>
|
||||||
|
<Cell ss:StyleID="s83"/>
|
||||||
|
<Cell ss:StyleID="s83"/>
|
||||||
|
<Cell><Data ss:Type="String">uri</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s83"/>
|
||||||
|
<Cell><Data ss:Type="String">Links query and its response(s)</Data></Cell>
|
||||||
|
<Cell ss:Index="11" ss:StyleID="s83"/>
|
||||||
|
<Cell ss:Index="13" ss:StyleID="s83"><Data ss:Type="String">.queryId</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s83"/>
|
||||||
|
<Cell ss:StyleID="s83"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:Height="45">
|
||||||
|
<Cell><Data ss:Type="String">Query.parameter</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">1..*</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s83"/>
|
||||||
|
<Cell ss:StyleID="s83"/>
|
||||||
|
<Cell ss:StyleID="s83"/>
|
||||||
|
<Cell><Data ss:Type="String" x:Ticked="1">Extension</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s83"/>
|
||||||
|
<Cell><Data ss:Type="String">Set of query parameters with values</Data></Cell>
|
||||||
|
<Cell ss:Index="11" ss:StyleID="s83"/>
|
||||||
|
<Cell><Data ss:Type="String">Unless otherwise specified, parameters are usually strings</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s83"><Data ss:Type="String">.parameter</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s83"/>
|
||||||
|
<Cell ss:StyleID="s83"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:Height="60">
|
||||||
|
<Cell><Data ss:Type="String">Query.response</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">0..1</Data></Cell>
|
||||||
|
<Cell ss:Index="5"><Data ss:Type="String">right</Data></Cell>
|
||||||
|
<Cell ss:Index="8"><Data ss:Type="String">If this is a response to a query</Data></Cell>
|
||||||
|
<Cell ss:Index="13"><Data ss:Type="String">QueryAck (indirectly linked through .queryId, directly linked via Message.acknowledges</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:Height="135">
|
||||||
|
<Cell><Data ss:Type="String">Query.response.identifier</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">1..1</Data></Cell>
|
||||||
|
<Cell ss:Index="6"><Data ss:Type="String">uri</Data></Cell>
|
||||||
|
<Cell ss:Index="8"><Data ss:Type="String">Links response to source query</Data></Cell>
|
||||||
|
<Cell ss:Index="13"><Data ss:Type="String">.queryId?</Data></Cell>
|
||||||
|
<Cell ss:Index="15"><Data ss:Type="String">Need to explain if/how this differs from value of Query.identifier</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:Height="30">
|
||||||
|
<Cell><Data ss:Type="String">Query.response.outcome</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">1..1</Data></Cell>
|
||||||
|
<Cell ss:Index="6"><Data ss:Type="String">code</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">QueryOutcome</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">ok | limited | refused | error</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Outcome of processing the query</Data></Cell>
|
||||||
|
<Cell ss:Index="13"><Data ss:Type="String">.queryResponseCode</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="String">Query.response.total</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">0..1</Data></Cell>
|
||||||
|
<Cell ss:Index="6"><Data ss:Type="String">integer</Data></Cell>
|
||||||
|
<Cell ss:Index="8"><Data ss:Type="String">Total number of matching records</Data></Cell>
|
||||||
|
<Cell ss:Index="13"><Data ss:Type="String">.resultTotalQuantity</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="String">Query.response.parameter</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">0..*</Data></Cell>
|
||||||
|
<Cell ss:Index="6"><Data ss:Type="String" x:Ticked="1">Extension</Data></Cell>
|
||||||
|
<Cell ss:Index="8"><Data ss:Type="String">Parameters server used</Data></Cell>
|
||||||
|
<Cell ss:Index="13"><Data ss:Type="String">Not supported</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="String">Query.response.first</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">0..*</Data></Cell>
|
||||||
|
<Cell ss:Index="6"><Data ss:Type="String" x:Ticked="1">Extension</Data></Cell>
|
||||||
|
<Cell ss:Index="8"><Data ss:Type="String">To get first page (if paged)</Data></Cell>
|
||||||
|
<Cell ss:Index="13"><Data ss:Type="String">Not supported</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="String">Query.response.previous</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">0..*</Data></Cell>
|
||||||
|
<Cell ss:Index="6"><Data ss:Type="String" x:Ticked="1">Extension</Data></Cell>
|
||||||
|
<Cell ss:Index="8"><Data ss:Type="String">To get previous page (if paged)</Data></Cell>
|
||||||
|
<Cell ss:Index="13"><Data ss:Type="String">Not supported</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="String">Query.response.next</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">0..*</Data></Cell>
|
||||||
|
<Cell ss:Index="6"><Data ss:Type="String" x:Ticked="1">Extension</Data></Cell>
|
||||||
|
<Cell ss:Index="8"><Data ss:Type="String">To get next page (if paged)</Data></Cell>
|
||||||
|
<Cell ss:Index="13"><Data ss:Type="String">.continuationToken</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row>
|
||||||
|
<Cell><Data ss:Type="String">Query.response.last</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">0..*</Data></Cell>
|
||||||
|
<Cell ss:Index="6"><Data ss:Type="String" x:Ticked="1">Extension</Data></Cell>
|
||||||
|
<Cell ss:Index="8"><Data ss:Type="String">To get last page (if paged)</Data></Cell>
|
||||||
|
<Cell ss:Index="13"><Data ss:Type="String">Not supported</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:Height="90">
|
||||||
|
<Cell><Data ss:Type="String">Query.response.reference</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">0..*</Data></Cell>
|
||||||
|
<Cell ss:Index="6"><Data ss:Type="String">Resource(Any)</Data></Cell>
|
||||||
|
<Cell ss:Index="8"><Data ss:Type="String">Resources that are the results of the search</Data></Cell>
|
||||||
|
<Cell ss:Index="12"><Data ss:Type="String">Is query only used in messaging? </Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">.controlAct.outboundRelationship[typeCode=SUBJ].target or .controlAct.participation[typeCode=SBJ].role</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
</Table>
|
||||||
|
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
|
||||||
|
<PageSetup>
|
||||||
|
<Header x:Margin="0.3"/>
|
||||||
|
<Footer x:Margin="0.3"/>
|
||||||
|
<PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
|
||||||
|
</PageSetup>
|
||||||
|
<Selected/>
|
||||||
|
<FreezePanes/>
|
||||||
|
<FrozenNoSplit/>
|
||||||
|
<SplitHorizontal>1</SplitHorizontal>
|
||||||
|
<TopRowBottomPane>1</TopRowBottomPane>
|
||||||
|
<SplitVertical>1</SplitVertical>
|
||||||
|
<LeftColumnRightPane>1</LeftColumnRightPane>
|
||||||
|
<ActivePane>0</ActivePane>
|
||||||
|
<Panes>
|
||||||
|
<Pane>
|
||||||
|
<Number>3</Number>
|
||||||
|
</Pane>
|
||||||
|
<Pane>
|
||||||
|
<Number>1</Number>
|
||||||
|
</Pane>
|
||||||
|
<Pane>
|
||||||
|
<Number>2</Number>
|
||||||
|
</Pane>
|
||||||
|
<Pane>
|
||||||
|
<Number>0</Number>
|
||||||
|
</Pane>
|
||||||
|
</Panes>
|
||||||
|
<ProtectObjects>False</ProtectObjects>
|
||||||
|
<ProtectScenarios>False</ProtectScenarios>
|
||||||
|
</WorksheetOptions>
|
||||||
|
</Worksheet>
|
||||||
|
<Worksheet ss:Name="Invariants">
|
||||||
|
<Table ss:ExpandedColumnCount="6" ss:ExpandedRowCount="6" x:FullColumns="1"
|
||||||
|
x:FullRows="1" ss:StyleID="s68" ss:DefaultRowHeight="15">
|
||||||
|
<Column ss:Index="2" ss:StyleID="s68" ss:AutoFitWidth="0" ss:Width="115.5"/>
|
||||||
|
<Column ss:StyleID="s68" ss:AutoFitWidth="0" ss:Width="153"/>
|
||||||
|
<Column ss:StyleID="s68" ss:AutoFitWidth="0" ss:Width="204.75"/>
|
||||||
|
<Column ss:StyleID="s68" ss:AutoFitWidth="0" ss:Width="198.75"/>
|
||||||
|
<Column ss:StyleID="s68" ss:AutoFitWidth="0" ss:Width="188.25"/>
|
||||||
|
<Row ss:AutoFitHeight="0" ss:StyleID="s64">
|
||||||
|
<Cell><Data ss:Type="String">Id</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Name</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Context</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">English</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">OCL</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">XPath</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:StyleID="Default"/>
|
||||||
|
<Cell ss:StyleID="Default"/>
|
||||||
|
<Cell ss:StyleID="s63"/>
|
||||||
|
<Cell ss:StyleID="Default"/>
|
||||||
|
<Cell ss:StyleID="Default"/>
|
||||||
|
<Cell ss:StyleID="Default"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:StyleID="Default"/>
|
||||||
|
<Cell ss:StyleID="Default"/>
|
||||||
|
<Cell ss:StyleID="s63"/>
|
||||||
|
<Cell ss:StyleID="Default"/>
|
||||||
|
<Cell ss:StyleID="Default"/>
|
||||||
|
<Cell ss:StyleID="Default"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:StyleID="Default"/>
|
||||||
|
<Cell ss:StyleID="Default"/>
|
||||||
|
<Cell ss:StyleID="s63"/>
|
||||||
|
<Cell ss:StyleID="Default"/>
|
||||||
|
<Cell ss:StyleID="Default"/>
|
||||||
|
<Cell ss:StyleID="Default"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:StyleID="Default"/>
|
||||||
|
<Cell ss:StyleID="Default"/>
|
||||||
|
<Cell ss:StyleID="s63"/>
|
||||||
|
<Cell ss:StyleID="Default"/>
|
||||||
|
<Cell ss:StyleID="Default"/>
|
||||||
|
<Cell ss:StyleID="Default"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:StyleID="Default"/>
|
||||||
|
<Cell ss:StyleID="Default"/>
|
||||||
|
<Cell ss:StyleID="s63"/>
|
||||||
|
<Cell ss:StyleID="Default"/>
|
||||||
|
<Cell ss:StyleID="Default"/>
|
||||||
|
<Cell ss:StyleID="Default"/>
|
||||||
|
</Row>
|
||||||
|
</Table>
|
||||||
|
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
|
||||||
|
<PageSetup>
|
||||||
|
<Header x:Margin="0.3"/>
|
||||||
|
<Footer x:Margin="0.3"/>
|
||||||
|
<PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
|
||||||
|
</PageSetup>
|
||||||
|
<Unsynced/>
|
||||||
|
<FreezePanes/>
|
||||||
|
<FrozenNoSplit/>
|
||||||
|
<SplitHorizontal>1</SplitHorizontal>
|
||||||
|
<TopRowBottomPane>1</TopRowBottomPane>
|
||||||
|
<SplitVertical>2</SplitVertical>
|
||||||
|
<LeftColumnRightPane>2</LeftColumnRightPane>
|
||||||
|
<ActivePane>0</ActivePane>
|
||||||
|
<Panes>
|
||||||
|
<Pane>
|
||||||
|
<Number>3</Number>
|
||||||
|
</Pane>
|
||||||
|
<Pane>
|
||||||
|
<Number>1</Number>
|
||||||
|
</Pane>
|
||||||
|
<Pane>
|
||||||
|
<Number>2</Number>
|
||||||
|
</Pane>
|
||||||
|
<Pane>
|
||||||
|
<Number>0</Number>
|
||||||
|
</Pane>
|
||||||
|
</Panes>
|
||||||
|
<ProtectObjects>False</ProtectObjects>
|
||||||
|
<ProtectScenarios>False</ProtectScenarios>
|
||||||
|
</WorksheetOptions>
|
||||||
|
</Worksheet>
|
||||||
|
<Worksheet ss:Name="Events">
|
||||||
|
<Table ss:ExpandedColumnCount="6" ss:ExpandedRowCount="3" x:FullColumns="1"
|
||||||
|
x:FullRows="1" ss:DefaultRowHeight="15">
|
||||||
|
<Column ss:AutoFitWidth="0" ss:Width="82.5"/>
|
||||||
|
<Column ss:AutoFitWidth="0" ss:Width="198.75"/>
|
||||||
|
<Column ss:AutoFitWidth="0" ss:Width="157.5"/>
|
||||||
|
<Column ss:AutoFitWidth="0" ss:Width="162.75"/>
|
||||||
|
<Column ss:AutoFitWidth="0" ss:Width="195.75"/>
|
||||||
|
<Column ss:AutoFitWidth="0" ss:Width="74.25"/>
|
||||||
|
<Row ss:AutoFitHeight="0" ss:Height="33">
|
||||||
|
<Cell ss:StyleID="s64"><Data ss:Type="String">Event Code</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s64"><Data ss:Type="String">Description</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s64"><Data ss:Type="String">Notes</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s64"><Data ss:Type="String">Request Resources</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s64"><Data ss:Type="String">Response Resources</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s64"><Data ss:Type="String">Follow Ups</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:StyleID="s69"><Data ss:Type="String">query</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s69"><Data ss:Type="String">Request to perform a query according to the attached query resource</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s69"/>
|
||||||
|
<Cell ss:StyleID="s69"><Data ss:Type="String">query</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s69"><Data ss:Type="String">query</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell><Data ss:Type="String">query-response</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Response with the result of processing the query</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Used when queries are performed asynchronously</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">query</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
</Table>
|
||||||
|
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
|
||||||
|
<PageSetup>
|
||||||
|
<Header x:Margin="0.3"/>
|
||||||
|
<Footer x:Margin="0.3"/>
|
||||||
|
<PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
|
||||||
|
</PageSetup>
|
||||||
|
<Unsynced/>
|
||||||
|
<FreezePanes/>
|
||||||
|
<FrozenNoSplit/>
|
||||||
|
<SplitHorizontal>1</SplitHorizontal>
|
||||||
|
<TopRowBottomPane>1</TopRowBottomPane>
|
||||||
|
<SplitVertical>1</SplitVertical>
|
||||||
|
<LeftColumnRightPane>1</LeftColumnRightPane>
|
||||||
|
<ActivePane>0</ActivePane>
|
||||||
|
<Panes>
|
||||||
|
<Pane>
|
||||||
|
<Number>3</Number>
|
||||||
|
</Pane>
|
||||||
|
<Pane>
|
||||||
|
<Number>1</Number>
|
||||||
|
</Pane>
|
||||||
|
<Pane>
|
||||||
|
<Number>2</Number>
|
||||||
|
</Pane>
|
||||||
|
<Pane>
|
||||||
|
<Number>0</Number>
|
||||||
|
<ActiveRow>2</ActiveRow>
|
||||||
|
<ActiveCol>2</ActiveCol>
|
||||||
|
</Pane>
|
||||||
|
</Panes>
|
||||||
|
<ProtectObjects>False</ProtectObjects>
|
||||||
|
<ProtectScenarios>False</ProtectScenarios>
|
||||||
|
</WorksheetOptions>
|
||||||
|
</Worksheet>
|
||||||
|
<Worksheet ss:Name="Search">
|
||||||
|
<Table ss:ExpandedColumnCount="8" ss:ExpandedRowCount="41" x:FullColumns="1"
|
||||||
|
x:FullRows="1" ss:DefaultRowHeight="15">
|
||||||
|
<Column ss:AutoFitWidth="0" ss:Width="70.5"/>
|
||||||
|
<Column ss:AutoFitWidth="0" ss:Width="382.5"/>
|
||||||
|
<Row ss:AutoFitHeight="0" ss:Height="16.5" ss:StyleID="s64">
|
||||||
|
<Cell><Data ss:Type="String">Name</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Description</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Type</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Path</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell><Data ss:Type="String">identifier</Data></Cell>
|
||||||
|
<Cell ss:Index="3"><Data ss:Type="String">token</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Query.identifier</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell><Data ss:Type="String">response</Data></Cell>
|
||||||
|
<Cell ss:Index="3"><Data ss:Type="String">token</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Query.response.identifier</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:Index="6" ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s63"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s63"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s63"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s63"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s63"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s63"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s63"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s63"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s63"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s63"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s63"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s63"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s63"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s63"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s63"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s63"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s63"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s63"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s63"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s63"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s63"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s63"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s63"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s63"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s63"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s63"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s63"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s63"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s63"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s63"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s63"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s63"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s63"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s63"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s63"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:Index="8" ss:StyleID="s63"/>
|
||||||
|
</Row>
|
||||||
|
</Table>
|
||||||
|
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
|
||||||
|
<PageSetup>
|
||||||
|
<Header x:Margin="0.3"/>
|
||||||
|
<Footer x:Margin="0.3"/>
|
||||||
|
<PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
|
||||||
|
</PageSetup>
|
||||||
|
<Unsynced/>
|
||||||
|
<FreezePanes/>
|
||||||
|
<FrozenNoSplit/>
|
||||||
|
<SplitHorizontal>1</SplitHorizontal>
|
||||||
|
<TopRowBottomPane>1</TopRowBottomPane>
|
||||||
|
<SplitVertical>1</SplitVertical>
|
||||||
|
<LeftColumnRightPane>1</LeftColumnRightPane>
|
||||||
|
<ActivePane>0</ActivePane>
|
||||||
|
<Panes>
|
||||||
|
<Pane>
|
||||||
|
<Number>3</Number>
|
||||||
|
</Pane>
|
||||||
|
<Pane>
|
||||||
|
<Number>1</Number>
|
||||||
|
</Pane>
|
||||||
|
<Pane>
|
||||||
|
<Number>2</Number>
|
||||||
|
</Pane>
|
||||||
|
<Pane>
|
||||||
|
<Number>0</Number>
|
||||||
|
<ActiveRow>2</ActiveRow>
|
||||||
|
</Pane>
|
||||||
|
</Panes>
|
||||||
|
<ProtectObjects>False</ProtectObjects>
|
||||||
|
<ProtectScenarios>False</ProtectScenarios>
|
||||||
|
</WorksheetOptions>
|
||||||
|
</Worksheet>
|
||||||
|
<Worksheet ss:Name="Bindings">
|
||||||
|
<Table ss:ExpandedColumnCount="5" ss:ExpandedRowCount="4" x:FullColumns="1"
|
||||||
|
x:FullRows="1" ss:DefaultRowHeight="15">
|
||||||
|
<Column ss:AutoFitWidth="0" ss:Width="93"/>
|
||||||
|
<Column ss:AutoFitWidth="0" ss:Width="221.25"/>
|
||||||
|
<Column ss:AutoFitWidth="0" ss:Width="81.75"/>
|
||||||
|
<Column ss:AutoFitWidth="0" ss:Width="106.5"/>
|
||||||
|
<Column ss:AutoFitWidth="0" ss:Width="274.5"/>
|
||||||
|
<Row ss:AutoFitHeight="0" ss:Height="15.75">
|
||||||
|
<Cell ss:StyleID="s64"><Data ss:Type="String">Binding Name</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s64"><Data ss:Type="String">Definition</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s64"><Data ss:Type="String">Binding</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s64"><Data ss:Type="String">Reference</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s64"><Data ss:Type="String">Description</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:StyleID="s62"><Data ss:Type="String">QueryOutcome</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s62"><Data ss:Type="String">The outcome of processing a query request</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s70"><Data ss:Type="String">code list</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">#query-outcome</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:StyleID="s62"/>
|
||||||
|
<Cell ss:StyleID="s62"/>
|
||||||
|
<Cell ss:StyleID="s70"/>
|
||||||
|
<Cell ss:StyleID="s70"/>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:StyleID="s62"/>
|
||||||
|
<Cell ss:StyleID="s62"/>
|
||||||
|
<Cell ss:StyleID="s70"/>
|
||||||
|
<Cell ss:StyleID="s70"/>
|
||||||
|
</Row>
|
||||||
|
</Table>
|
||||||
|
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
|
||||||
|
<PageSetup>
|
||||||
|
<Header x:Margin="0.3"/>
|
||||||
|
<Footer x:Margin="0.3"/>
|
||||||
|
<PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
|
||||||
|
</PageSetup>
|
||||||
|
<Unsynced/>
|
||||||
|
<FreezePanes/>
|
||||||
|
<FrozenNoSplit/>
|
||||||
|
<SplitHorizontal>1</SplitHorizontal>
|
||||||
|
<TopRowBottomPane>1</TopRowBottomPane>
|
||||||
|
<SplitVertical>1</SplitVertical>
|
||||||
|
<LeftColumnRightPane>1</LeftColumnRightPane>
|
||||||
|
<ActivePane>0</ActivePane>
|
||||||
|
<Panes>
|
||||||
|
<Pane>
|
||||||
|
<Number>3</Number>
|
||||||
|
</Pane>
|
||||||
|
<Pane>
|
||||||
|
<Number>1</Number>
|
||||||
|
</Pane>
|
||||||
|
<Pane>
|
||||||
|
<Number>2</Number>
|
||||||
|
</Pane>
|
||||||
|
<Pane>
|
||||||
|
<Number>0</Number>
|
||||||
|
<ActiveRow>7</ActiveRow>
|
||||||
|
<ActiveCol>4</ActiveCol>
|
||||||
|
</Pane>
|
||||||
|
</Panes>
|
||||||
|
<ProtectObjects>False</ProtectObjects>
|
||||||
|
<ProtectScenarios>False</ProtectScenarios>
|
||||||
|
</WorksheetOptions>
|
||||||
|
</Worksheet>
|
||||||
|
<Worksheet ss:Name="query-outcome">
|
||||||
|
<Table ss:ExpandedColumnCount="3" ss:ExpandedRowCount="5" x:FullColumns="1"
|
||||||
|
x:FullRows="1" ss:DefaultRowHeight="15">
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell><Data ss:Type="String">Id</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Code</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Definition</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell><Data ss:Type="Number">1</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">ok</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">The query was processed successfully</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell><Data ss:Type="Number">2</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">limited</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">The query was processed successfully, but some additional limitations were added</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell><Data ss:Type="Number">3</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">refused</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">The server refused to process the query </Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell><Data ss:Type="Number">4</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">error</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">The server tried to process the query, but some error occurred</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
</Table>
|
||||||
|
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
|
||||||
|
<PageSetup>
|
||||||
|
<Header x:Margin="0.3"/>
|
||||||
|
<Footer x:Margin="0.3"/>
|
||||||
|
<PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
|
||||||
|
</PageSetup>
|
||||||
|
<Unsynced/>
|
||||||
|
<Panes>
|
||||||
|
<Pane>
|
||||||
|
<Number>3</Number>
|
||||||
|
<ActiveRow>1</ActiveRow>
|
||||||
|
<ActiveCol>1</ActiveCol>
|
||||||
|
<RangeSelection>R2C2:R5C2</RangeSelection>
|
||||||
|
</Pane>
|
||||||
|
</Panes>
|
||||||
|
<ProtectObjects>False</ProtectObjects>
|
||||||
|
<ProtectScenarios>False</ProtectScenarios>
|
||||||
|
</WorksheetOptions>
|
||||||
|
</Worksheet>
|
||||||
|
<Worksheet ss:Name="Examples">
|
||||||
|
<Table ss:ExpandedColumnCount="6" ss:ExpandedRowCount="4" x:FullColumns="1"
|
||||||
|
x:FullRows="1" ss:DefaultRowHeight="15">
|
||||||
|
<Column ss:AutoFitWidth="0" ss:Width="54"/>
|
||||||
|
<Column ss:AutoFitWidth="0" ss:Width="120"/>
|
||||||
|
<Column ss:AutoFitWidth="0" ss:Width="94.5"/>
|
||||||
|
<Column ss:AutoFitWidth="0" ss:Width="132"/>
|
||||||
|
<Column ss:AutoFitWidth="0" ss:Width="120.75"/>
|
||||||
|
<Column ss:AutoFitWidth="0" ss:Width="57.75"/>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell ss:StyleID="s64"><Data ss:Type="String">Name</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s64"><Data ss:Type="String">Description</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s64"><Data ss:Type="String">Identity</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s64"><Data ss:Type="String">Filename</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s64"><Data ss:Type="String">Type</Data></Cell>
|
||||||
|
<Cell ss:StyleID="s64"><Data ss:Type="String">In Book</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell><Data ss:Type="String">Simple</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Simple example</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="Number">1</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">query-example.xml</Data></Cell>
|
||||||
|
<Cell ss:Index="6"><Data ss:Type="String">y</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell><Data ss:Type="String">Request</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Request Message Example</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">req</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">query-example-request.xml</Data></Cell>
|
||||||
|
<Cell ss:Index="6"><Data ss:Type="String">n</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
<Row ss:AutoFitHeight="0">
|
||||||
|
<Cell><Data ss:Type="String">Response</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">Response Message Example</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">resp</Data></Cell>
|
||||||
|
<Cell><Data ss:Type="String">query-example-response.xml</Data></Cell>
|
||||||
|
<Cell ss:Index="6"><Data ss:Type="String">n</Data></Cell>
|
||||||
|
</Row>
|
||||||
|
</Table>
|
||||||
|
<WorksheetOptions xmlns="urn:schemas-microsoft-com:office:excel">
|
||||||
|
<PageSetup>
|
||||||
|
<Header x:Margin="0.3"/>
|
||||||
|
<Footer x:Margin="0.3"/>
|
||||||
|
<PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
|
||||||
|
</PageSetup>
|
||||||
|
<Unsynced/>
|
||||||
|
<Panes>
|
||||||
|
<Pane>
|
||||||
|
<Number>3</Number>
|
||||||
|
<ActiveRow>3</ActiveRow>
|
||||||
|
<ActiveCol>2</ActiveCol>
|
||||||
|
</Pane>
|
||||||
|
</Panes>
|
||||||
|
<ProtectObjects>False</ProtectObjects>
|
||||||
|
<ProtectScenarios>False</ProtectScenarios>
|
||||||
|
</WorksheetOptions>
|
||||||
|
</Worksheet>
|
||||||
|
</Workbook>
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue