Merge branch 'master' of github.com:jamesagnew/hapi-fhir

This commit is contained in:
James Agnew 2015-04-02 11:38:08 -04:00
commit f2322064f3
27 changed files with 226 additions and 100 deletions

View File

@ -454,6 +454,7 @@ public class FhirContext {
* *
* @deprecated Support for DEV resources will be removed, you should use DSTU2 resources instead * @deprecated Support for DEV resources will be removed, you should use DSTU2 resources instead
*/ */
@Deprecated
public static FhirContext forDev() { public static FhirContext forDev() {
return new FhirContext(FhirVersionEnum.DEV); return new FhirContext(FhirVersionEnum.DEV);
} }

View File

@ -36,6 +36,7 @@ public abstract class BaseIdentifiableElement extends BaseElement implements IId
* @deprecated Use {@link #getElementSpecificId()} instead. This method will be removed because it is easily * @deprecated Use {@link #getElementSpecificId()} instead. This method will be removed because it is easily
* confused with other ID methods (such as patient#getIdentifier) * confused with other ID methods (such as patient#getIdentifier)
*/ */
@Deprecated
@Override @Override
public IdDt getId() { public IdDt getId() {
if (myElementSpecificId == null) { if (myElementSpecificId == null) {
@ -54,6 +55,7 @@ public abstract class BaseIdentifiableElement extends BaseElement implements IId
* @deprecated Use {@link #setElementSpecificId(String)} instead. This method will be removed because it is easily * @deprecated Use {@link #setElementSpecificId(String)} instead. This method will be removed because it is easily
* confused with other ID methods (such as patient#getIdentifier) * confused with other ID methods (such as patient#getIdentifier)
*/ */
@Deprecated
@Override @Override
public void setId(IdDt theId) { public void setId(IdDt theId) {
if (theId == null) { if (theId == null) {
@ -68,6 +70,7 @@ public abstract class BaseIdentifiableElement extends BaseElement implements IId
* confused with other ID methods (such as patient#getIdentifier) * confused with other ID methods (such as patient#getIdentifier)
*/ */
@Override @Override
@Deprecated
public void setId(String theId) { public void setId(String theId) {
myElementSpecificId = theId; myElementSpecificId = theId;
} }

View File

@ -68,6 +68,7 @@ public class Bundle extends BaseBundle /* implements IElement */{
* @deprecated Tags wil become immutable in a future release of HAPI, so * @deprecated Tags wil become immutable in a future release of HAPI, so
* {@link #addCategory(String, String, String)} should be used instead * {@link #addCategory(String, String, String)} should be used instead
*/ */
@Deprecated
public Tag addCategory() { public Tag addCategory() {
Tag retVal = new Tag(); Tag retVal = new Tag();
getCategories().add(retVal); getCategories().add(retVal);

View File

@ -67,6 +67,7 @@ public class BundleEntry extends BaseBundle {
* @deprecated Tags wil become immutable in a future release of HAPI, so * @deprecated Tags wil become immutable in a future release of HAPI, so
* {@link #addCategory(String, String, String)} should be used instead * {@link #addCategory(String, String, String)} should be used instead
*/ */
@Deprecated
public Tag addCategory() { public Tag addCategory() {
Tag retVal = new Tag(); Tag retVal = new Tag();
getCategories().add(retVal); getCategories().add(retVal);
@ -146,6 +147,7 @@ public class BundleEntry extends BaseBundle {
* if this entry represents a deleted resource, use {@link #setDeletedResourceId(IdDt)}. * if this entry represents a deleted resource, use {@link #setDeletedResourceId(IdDt)}.
*/ */
@Override @Override
@Deprecated
public IdDt getId() { public IdDt getId() {
return super.getId(); return super.getId();
} }
@ -160,6 +162,7 @@ public class BundleEntry extends BaseBundle {
/** /**
* @deprecated Use resource ID to determine base URL * @deprecated Use resource ID to determine base URL
*/ */
@Deprecated
public StringDt getLinkBase() { public StringDt getLinkBase() {
if (myLinkBase == null) { if (myLinkBase == null) {
myLinkBase = new StringDt(); myLinkBase = new StringDt();
@ -220,6 +223,7 @@ public class BundleEntry extends BaseBundle {
* DSTU2, it is recommended that you migrate code away from using this method and over to using resource * DSTU2, it is recommended that you migrate code away from using this method and over to using resource
* metadata instead. * metadata instead.
*/ */
@Deprecated
public InstantDt getUpdated() { public InstantDt getUpdated() {
if (myUpdated == null) { if (myUpdated == null) {
myUpdated = new InstantDt(); myUpdated = new InstantDt();
@ -283,6 +287,7 @@ public class BundleEntry extends BaseBundle {
* @deprecated Bundle entries no longer have an ID in DSTU2, as ID is explicitly stated in the resource itself. * @deprecated Bundle entries no longer have an ID in DSTU2, as ID is explicitly stated in the resource itself.
*/ */
@Override @Override
@Deprecated
public void setId(IdDt theId) { public void setId(IdDt theId) {
super.setId(theId); super.setId(theId);
} }
@ -294,6 +299,7 @@ public class BundleEntry extends BaseBundle {
/** /**
* @deprecated Use resource ID to determine base URL * @deprecated Use resource ID to determine base URL
*/ */
@Deprecated
public void setLinkBase(StringDt theLinkBase) { public void setLinkBase(StringDt theLinkBase) {
myLinkBase = theLinkBase; myLinkBase = theLinkBase;
} }
@ -329,6 +335,7 @@ public class BundleEntry extends BaseBundle {
* DSTU2, it is recommended that you migrate code away from using this method and over to using resource * DSTU2, it is recommended that you migrate code away from using this method and over to using resource
* metadata instead. * metadata instead.
*/ */
@Deprecated
public void setUpdated(InstantDt theUpdated) { public void setUpdated(InstantDt theUpdated) {
Validate.notNull(theUpdated, "Updated may not be null"); Validate.notNull(theUpdated, "Updated may not be null");
myUpdated = theUpdated; myUpdated = theUpdated;

View File

@ -34,6 +34,7 @@ public interface IIdentifiableElement extends IElement {
* @deprecated Use {@link #getElementSpecificId()} instead. This method will be removed because it is easily * @deprecated Use {@link #getElementSpecificId()} instead. This method will be removed because it is easily
* confused with other ID methods (such as patient#getIdentifier) * confused with other ID methods (such as patient#getIdentifier)
*/ */
@Deprecated
IdDt getId(); IdDt getId();
/** /**
@ -46,12 +47,14 @@ public interface IIdentifiableElement extends IElement {
* @deprecated Use {@link #setElementSpecificId(String)} instead. This method will be removed because it is easily * @deprecated Use {@link #setElementSpecificId(String)} instead. This method will be removed because it is easily
* confused with other ID methods (such as patient#getIdentifier) * confused with other ID methods (such as patient#getIdentifier)
*/ */
@Deprecated
void setId(IdDt theId); void setId(IdDt theId);
/** /**
* @deprecated Use {@link #setElementSpecificId(String)} instead. This method will be removed because it is easily * @deprecated Use {@link #setElementSpecificId(String)} instead. This method will be removed because it is easily
* confused with other ID methods (such as patient#getIdentifier) * confused with other ID methods (such as patient#getIdentifier)
*/ */
@Deprecated
void setId(String theId); void setId(String theId);
} }

View File

@ -31,6 +31,7 @@ package ca.uhn.fhir.model.api;
* *
* @deprecated {@link Include} should be used instead * @deprecated {@link Include} should be used instead
*/ */
@Deprecated
public class PathSpecification extends Include { public class PathSpecification extends Include {
public PathSpecification(String theInclude) { public PathSpecification(String theInclude) {

View File

@ -61,12 +61,14 @@ public class Tag extends BaseElement implements IElement {
/** /**
* @deprecated Tags will become immutable in a future release, so this constructor should not be used. * @deprecated Tags will become immutable in a future release, so this constructor should not be used.
*/ */
@Deprecated
public Tag() { public Tag() {
} }
/** /**
* @deprecated There is no reason to create a tag with a term and not a scheme, so this constructor will be removed * @deprecated There is no reason to create a tag with a term and not a scheme, so this constructor will be removed
*/ */
@Deprecated
public Tag(String theTerm) { public Tag(String theTerm) {
this((String) null, theTerm, null); this((String) null, theTerm, null);
} }
@ -148,6 +150,7 @@ public class Tag extends BaseElement implements IElement {
* ensuring that the TagList acts as an unordered set. Use the constructor to set this field when creating a new * ensuring that the TagList acts as an unordered set. Use the constructor to set this field when creating a new
* tag object * tag object
*/ */
@Deprecated
public Tag setLabel(String theLabel) { public Tag setLabel(String theLabel) {
myLabel = theLabel; myLabel = theLabel;
return this; return this;
@ -160,6 +163,7 @@ public class Tag extends BaseElement implements IElement {
* ensuring that the TagList acts as an unordered set. Use the constructor to set this field when creating a new * ensuring that the TagList acts as an unordered set. Use the constructor to set this field when creating a new
* tag object * tag object
*/ */
@Deprecated
public Tag setScheme(String theScheme) { public Tag setScheme(String theScheme) {
myScheme = theScheme; myScheme = theScheme;
return this; return this;
@ -172,6 +176,7 @@ public class Tag extends BaseElement implements IElement {
* ensuring that the TagList acts as an unordered set. Use the constructor to set this field when creating a new * ensuring that the TagList acts as an unordered set. Use the constructor to set this field when creating a new
* tag object * tag object
*/ */
@Deprecated
public Tag setTerm(String theTerm) { public Tag setTerm(String theTerm) {
myTerm = theTerm; myTerm = theTerm;
return this; return this;

View File

@ -79,6 +79,7 @@ public class TagList implements Set<Tag>, Serializable, IBase {
/** /**
* @deprecated Tags wil become immutable in a future release of HAPI, so {@link #addTag(String, String, String)} should be used instead * @deprecated Tags wil become immutable in a future release of HAPI, so {@link #addTag(String, String, String)} should be used instead
*/ */
@Deprecated
public Tag addTag() { public Tag addTag() {
myOrderedTags = null; myOrderedTags = null;
return addTag(null, null, null); return addTag(null, null, null);

View File

@ -181,6 +181,7 @@ public class IdDt extends UriDt implements IPrimitiveDatatype<String> {
/** /**
* @deprecated Use {@link #getIdPartAsBigDecimal()} instead (this method was deprocated because its name is ambiguous) * @deprecated Use {@link #getIdPartAsBigDecimal()} instead (this method was deprocated because its name is ambiguous)
*/ */
@Deprecated
public BigDecimal asBigDecimal() { public BigDecimal asBigDecimal() {
return getIdPartAsBigDecimal(); return getIdPartAsBigDecimal();
} }

View File

@ -28,6 +28,7 @@ import java.lang.annotation.Target;
/** /**
* @deprecated IdDt can now hold both an ID and a version ID, so a single parameter with the {@link IdParam} annotation may be used * @deprecated IdDt can now hold both an ID and a version ID, so a single parameter with the {@link IdParam} annotation may be used
*/ */
@Deprecated
@Retention(RetentionPolicy.RUNTIME) @Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.PARAMETER) @Target(ElementType.PARAMETER)
public @interface VersionIdParam { public @interface VersionIdParam {

View File

@ -97,6 +97,7 @@ public class MethodOutcome {
/** /**
* @deprecated Use the constructor which accepts a single IdDt parameter, and include the logical ID and version ID in that IdDt instance * @deprecated Use the constructor which accepts a single IdDt parameter, and include the logical ID and version ID in that IdDt instance
*/ */
@Deprecated
public MethodOutcome(IdDt theId, IdDt theVersionId) { public MethodOutcome(IdDt theId, IdDt theVersionId) {
myId = theId; myId = theId;
myVersionId = theVersionId; myVersionId = theVersionId;
@ -105,6 +106,7 @@ public class MethodOutcome {
/** /**
* @deprecated Use the constructor which accepts a single IdDt parameter, and include the logical ID and version ID in that IdDt instance * @deprecated Use the constructor which accepts a single IdDt parameter, and include the logical ID and version ID in that IdDt instance
*/ */
@Deprecated
public MethodOutcome(IdDt theId, IdDt theVersionId, BaseOperationOutcome theBaseOperationOutcome) { public MethodOutcome(IdDt theId, IdDt theVersionId, BaseOperationOutcome theBaseOperationOutcome) {
myId = theId; myId = theId;
myVersionId = theVersionId; myVersionId = theVersionId;
@ -127,6 +129,7 @@ public class MethodOutcome {
/** /**
* @deprecated {@link MethodOutcome#getId()} should return the complete ID including version if it is available * @deprecated {@link MethodOutcome#getId()} should return the complete ID including version if it is available
*/ */
@Deprecated
public IdDt getVersionId() { public IdDt getVersionId() {
return myVersionId; return myVersionId;
} }
@ -173,6 +176,7 @@ public class MethodOutcome {
/** /**
* @deprecated Put the ID and version ID into the same IdDt instance and pass it to {@link #setId(IdDt)} * @deprecated Put the ID and version ID into the same IdDt instance and pass it to {@link #setId(IdDt)}
*/ */
@Deprecated
public void setVersionId(IdDt theVersionId) { public void setVersionId(IdDt theVersionId) {
myVersionId = theVersionId; myVersionId = theVersionId;
} }

View File

@ -38,6 +38,7 @@ import ca.uhn.fhir.rest.client.api.IBasicClient;
/** /**
* @deprecated Use {@link ca.uhn.fhir.rest.client.interceptor.BasicAuthInterceptor} instead. Note that BasicAuthInterceptor class is a HAPI client interceptor instead of being a commons-httpclient interceptor, so you register it to your client instance once it's created using {@link IGenericClient#registerInterceptor(IClientInterceptor)} or {@link IBasicClient#registerInterceptor(IClientInterceptor)} instead * @deprecated Use {@link ca.uhn.fhir.rest.client.interceptor.BasicAuthInterceptor} instead. Note that BasicAuthInterceptor class is a HAPI client interceptor instead of being a commons-httpclient interceptor, so you register it to your client instance once it's created using {@link IGenericClient#registerInterceptor(IClientInterceptor)} or {@link IBasicClient#registerInterceptor(IClientInterceptor)} instead
*/ */
@Deprecated
public class HttpBasicAuthInterceptor implements HttpRequestInterceptor { public class HttpBasicAuthInterceptor implements HttpRequestInterceptor {
private String myUsername; private String myUsername;

View File

@ -66,6 +66,7 @@ public interface IGenericClient extends IRestfulClient {
* @deprecated Use {@link #create() fluent method instead}. This method will be removed. * @deprecated Use {@link #create() fluent method instead}. This method will be removed.
* *
*/ */
@Deprecated
MethodOutcome create(IResource theResource); MethodOutcome create(IResource theResource);
/** /**
@ -83,6 +84,7 @@ public interface IGenericClient extends IRestfulClient {
* @return An outcome * @return An outcome
* @deprecated Use {@link #delete()} instead * @deprecated Use {@link #delete()} instead
*/ */
@Deprecated
MethodOutcome delete(Class<? extends IResource> theType, IdDt theId); MethodOutcome delete(Class<? extends IResource> theType, IdDt theId);
/** /**
@ -95,6 +97,7 @@ public interface IGenericClient extends IRestfulClient {
* @return An outcome * @return An outcome
* @deprecated Use {@link #delete()} instead * @deprecated Use {@link #delete()} instead
*/ */
@Deprecated
MethodOutcome delete(Class<? extends IResource> theType, String theId); MethodOutcome delete(Class<? extends IResource> theType, String theId);
/** /**
@ -125,6 +128,7 @@ public interface IGenericClient extends IRestfulClient {
* @return A bundle containing returned resources * @return A bundle containing returned resources
* @deprecated As of 0.9, use the fluent {@link #history()} method instead * @deprecated As of 0.9, use the fluent {@link #history()} method instead
*/ */
@Deprecated
<T extends IResource> Bundle history(Class<T> theType, IdDt theId, DateTimeDt theSince, Integer theLimit); <T extends IResource> Bundle history(Class<T> theType, IdDt theId, DateTimeDt theSince, Integer theLimit);
/** /**
@ -145,6 +149,7 @@ public interface IGenericClient extends IRestfulClient {
* @return A bundle containing returned resources * @return A bundle containing returned resources
* @deprecated As of 0.9, use the fluent {@link #history()} method instead * @deprecated As of 0.9, use the fluent {@link #history()} method instead
*/ */
@Deprecated
<T extends IResource> Bundle history(Class<T> theType, String theId, DateTimeDt theSince, Integer theLimit); <T extends IResource> Bundle history(Class<T> theType, String theId, DateTimeDt theSince, Integer theLimit);
/** /**
@ -268,6 +273,7 @@ public interface IGenericClient extends IRestfulClient {
* @deprecated Use {@link #transaction()} * @deprecated Use {@link #transaction()}
* *
*/ */
@Deprecated
List<IResource> transaction(List<IResource> theResources); List<IResource> transaction(List<IResource> theResources);
/** /**
@ -341,6 +347,7 @@ public interface IGenericClient extends IRestfulClient {
* @return The resource * @return The resource
* @deprecated Deprecated in 0.7 - IdDt can contain an ID and a version, so this class doesn't make a lot of sense * @deprecated Deprecated in 0.7 - IdDt can contain an ID and a version, so this class doesn't make a lot of sense
*/ */
@Deprecated
<T extends IResource> T vread(Class<T> theType, IdDt theId, IdDt theVersionId); <T extends IResource> T vread(Class<T> theType, IdDt theId, IdDt theVersionId);
/** /**

View File

@ -25,6 +25,7 @@ package ca.uhn.fhir.rest.gclient;
* @deprecated Use {@link CompositeClientParam} instead. That class is identical to this one but was renamed to reduce * @deprecated Use {@link CompositeClientParam} instead. That class is identical to this one but was renamed to reduce
* confusing duplicate names in the API. This class will be removed in a future release. * confusing duplicate names in the API. This class will be removed in a future release.
*/ */
@Deprecated
public class CompositeParam<A extends IParam, B extends IParam> extends CompositeClientParam<A,B> { public class CompositeParam<A extends IParam, B extends IParam> extends CompositeClientParam<A,B> {
public CompositeParam(String theParamName) { public CompositeParam(String theParamName) {

View File

@ -25,6 +25,7 @@ package ca.uhn.fhir.rest.gclient;
* @deprecated Use {@link DateClientParam} instead. That class is identical to this one but was renamed to reduct * @deprecated Use {@link DateClientParam} instead. That class is identical to this one but was renamed to reduct
* confusing duplicate names in the API. This class will be removed in a future release. * confusing duplicate names in the API. This class will be removed in a future release.
*/ */
@Deprecated
public class DateParam extends DateClientParam { public class DateParam extends DateClientParam {
public DateParam(String theParamName) { public DateParam(String theParamName) {

View File

@ -35,6 +35,7 @@ public interface IClientExecutable<T extends IClientExecutable<?,?>, Y> {
* *
* @deprecated Use the client logging interceptor to log requests and responses instead. See <a href="http://jamesagnew.github.io/hapi-fhir/doc_rest_client.html#req_resp_logging">here</a> for more information. * @deprecated Use the client logging interceptor to log requests and responses instead. See <a href="http://jamesagnew.github.io/hapi-fhir/doc_rest_client.html#req_resp_logging">here</a> for more information.
*/ */
@Deprecated
T andLogRequestAndResponse(boolean theLogRequestAndResponse); T andLogRequestAndResponse(boolean theLogRequestAndResponse);
T prettyPrint(); T prettyPrint();

View File

@ -25,6 +25,7 @@ package ca.uhn.fhir.rest.gclient;
* @deprecated Use {@link NumberClientParam} instead. That class is identical to this one but was renamed to reduct * @deprecated Use {@link NumberClientParam} instead. That class is identical to this one but was renamed to reduct
* confusing duplicate names in the API. This class will be removed in a future release. * confusing duplicate names in the API. This class will be removed in a future release.
*/ */
@Deprecated
public class NumberParam extends NumberClientParam { public class NumberParam extends NumberClientParam {
public NumberParam(String theParamName) { public NumberParam(String theParamName) {

View File

@ -25,6 +25,7 @@ package ca.uhn.fhir.rest.gclient;
* @deprecated Use {@link QuantityClientParam} instead. That class is identical to this one but was renamed to reduct * @deprecated Use {@link QuantityClientParam} instead. That class is identical to this one but was renamed to reduct
* confusing duplicate names in the API. This class will be removed in a future release. * confusing duplicate names in the API. This class will be removed in a future release.
*/ */
@Deprecated
public class QuantityParam extends QuantityClientParam { public class QuantityParam extends QuantityClientParam {
public QuantityParam(String theParamName) { public QuantityParam(String theParamName) {

View File

@ -25,6 +25,7 @@ package ca.uhn.fhir.rest.gclient;
* @deprecated Use {@link ReferenceClientParam} instead. That class is identical to this one but was renamed to reduct * @deprecated Use {@link ReferenceClientParam} instead. That class is identical to this one but was renamed to reduct
* confusing duplicate names in the API. This class will be removed in a future release. * confusing duplicate names in the API. This class will be removed in a future release.
*/ */
@Deprecated
public class ReferenceParam extends ReferenceClientParam { public class ReferenceParam extends ReferenceClientParam {
public ReferenceParam(String theParamName) { public ReferenceParam(String theParamName) {

View File

@ -25,6 +25,7 @@ package ca.uhn.fhir.rest.gclient;
* @deprecated Use {@link StringClientParam} instead. That class is identical to this one but was renamed to reduct * @deprecated Use {@link StringClientParam} instead. That class is identical to this one but was renamed to reduct
* confusing duplicate names in the API. This class will be removed in a future release. * confusing duplicate names in the API. This class will be removed in a future release.
*/ */
@Deprecated
public class StringParam extends StringClientParam { public class StringParam extends StringClientParam {
public StringParam(String theParamName) { public StringParam(String theParamName) {

View File

@ -25,6 +25,7 @@ package ca.uhn.fhir.rest.gclient;
* @deprecated Use {@link TokenClientParam} instead. That class is identical to this one but was renamed to reduct * @deprecated Use {@link TokenClientParam} instead. That class is identical to this one but was renamed to reduct
* confusing duplicate names in the API. This class will be removed in a future release. * confusing duplicate names in the API. This class will be removed in a future release.
*/ */
@Deprecated
public class TokenParam extends TokenClientParam { public class TokenParam extends TokenClientParam {
public TokenParam(String theParamName) { public TokenParam(String theParamName) {

View File

@ -27,6 +27,7 @@ import ca.uhn.fhir.model.dstu.valueset.QuantityCompararatorEnum;
/** /**
* @deprecated Use {@link DateParam} instead (this class is identical, but was renamed to be less confusing) * @deprecated Use {@link DateParam} instead (this class is identical, but was renamed to be less confusing)
*/ */
@Deprecated
public class QualifiedDateParam extends DateParam { public class QualifiedDateParam extends DateParam {
/** /**
* Constructor * Constructor

View File

@ -57,6 +57,7 @@ public class ResourceNotFoundException extends BaseServerResponseException {
/** /**
* @deprecated This doesn't make sense, since an identifier is not a resource ID and shouldn't generate a 404 if it isn't found - Should be removed * @deprecated This doesn't make sense, since an identifier is not a resource ID and shouldn't generate a 404 if it isn't found - Should be removed
*/ */
@Deprecated
public ResourceNotFoundException(Class<? extends IResource> theClass, BaseIdentifierDt theId) { public ResourceNotFoundException(Class<? extends IResource> theClass, BaseIdentifierDt theId) {
super(STATUS_CODE, "Resource of type " + theClass.getSimpleName() + " with ID " + theId + " is not known"); super(STATUS_CODE, "Resource of type " + theClass.getSimpleName() + " with ID " + theId + " is not known");
} }

View File

@ -21,13 +21,13 @@ package ca.uhn.fhir.rest.server.exceptions;
*/ */
import ca.uhn.fhir.model.base.resource.BaseOperationOutcome; import ca.uhn.fhir.model.base.resource.BaseOperationOutcome;
import ca.uhn.fhir.rest.annotation.Update;
import ca.uhn.fhir.rest.server.Constants; import ca.uhn.fhir.rest.server.Constants;
/** /**
* @deprecated Use {@link PreconditionFailedException} instead - This exception is * @deprecated Use {@link PreconditionFailedException} instead - This exception is
* strangely named and will be removed at some point. * strangely named and will be removed at some point.
*/ */
@Deprecated
public class ResourceVersionNotSpecifiedException extends BaseServerResponseException { public class ResourceVersionNotSpecifiedException extends BaseServerResponseException {
public static final int STATUS_CODE = Constants.STATUS_HTTP_412_PRECONDITION_FAILED; public static final int STATUS_CODE = Constants.STATUS_HTTP_412_PRECONDITION_FAILED;
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

View File

@ -6,6 +6,7 @@ import static org.junit.Assert.*;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Observable;
import net.sf.json.JSON; import net.sf.json.JSON;
import net.sf.json.JSONSerializer; import net.sf.json.JSONSerializer;
@ -26,9 +27,9 @@ import ca.uhn.fhir.model.api.TagList;
import ca.uhn.fhir.model.base.composite.BaseCodingDt; import ca.uhn.fhir.model.base.composite.BaseCodingDt;
import ca.uhn.fhir.model.dstu2.composite.CodingDt; import ca.uhn.fhir.model.dstu2.composite.CodingDt;
import ca.uhn.fhir.model.dstu2.composite.HumanNameDt; import ca.uhn.fhir.model.dstu2.composite.HumanNameDt;
import ca.uhn.fhir.model.dstu2.composite.ResourceReferenceDt;
import ca.uhn.fhir.model.dstu2.resource.Binary; import ca.uhn.fhir.model.dstu2.resource.Binary;
import ca.uhn.fhir.model.dstu2.resource.MedicationPrescription; import ca.uhn.fhir.model.dstu2.resource.MedicationPrescription;
import ca.uhn.fhir.model.dstu2.resource.Observation;
import ca.uhn.fhir.model.dstu2.resource.Patient; import ca.uhn.fhir.model.dstu2.resource.Patient;
import ca.uhn.fhir.model.dstu2.resource.QuestionnaireAnswers; import ca.uhn.fhir.model.dstu2.resource.QuestionnaireAnswers;
import ca.uhn.fhir.model.dstu2.valueset.IdentifierUseEnum; import ca.uhn.fhir.model.dstu2.valueset.IdentifierUseEnum;
@ -53,6 +54,43 @@ public class JsonParserTest {
assertEquals("{\"resourceType\":\"Binary\",\"id\":\"11\",\"meta\":{\"versionId\":\"22\"},\"contentType\":\"foo\",\"content\":\"AQIDBA==\"}", val); assertEquals("{\"resourceType\":\"Binary\",\"id\":\"11\",\"meta\":{\"versionId\":\"22\"},\"contentType\":\"foo\",\"content\":\"AQIDBA==\"}", val);
} }
/**
* see #144 and #146
*/
@Test
public void testParseContained() {
FhirContext c = FhirContext.forDstu2();
IParser parser = c.newJsonParser().setPrettyPrint(true);
Observation o = new Observation();
o.getCode().setText("obs text");
Patient p = new Patient();
p.addName().addFamily("patient family");
o.getSubject().setResource(p);
String enc = parser.encodeResourceToString(o);
ourLog.info(enc);
//@formatter:off
assertThat(enc, stringContainsInOrder(
"\"resourceType\":\"Observation\"",
"\"contained\":[",
"\"resourceType\":\"Patient\",",
"\"id\":\"1\"",
"\"reference\":\"#1\""
));
//@formatter:on
o = parser.parseResource(Observation.class, enc);
assertEquals("obs text", o.getCode().getText());
assertNotNull(o.getSubject().getResource());
p = (Patient) o.getSubject().getResource();
assertEquals("patient family", p.getNameFirstRep().getFamilyAsSingleString());
}
@Test @Test
public void testEncodeAndParseMetaProfileAndTags() { public void testEncodeAndParseMetaProfileAndTags() {
Patient p = new Patient(); Patient p = new Patient();
@ -109,7 +147,6 @@ public class JsonParserTest {
assertEquals(new Tag("scheme2", "term2", "label2"), tagList.get(1)); assertEquals(new Tag("scheme2", "term2", "label2"), tagList.get(1));
} }
@Test @Test
public void testEncodeAndParseSecurityLabels() { public void testEncodeAndParseSecurityLabels() {
Patient p = new Patient(); Patient p = new Patient();
@ -175,7 +212,6 @@ public class JsonParserTest {
assertEquals("VERSION2", label.getVersion()); assertEquals("VERSION2", label.getVersion());
} }
/** /**
* Fixing #89 * Fixing #89
*/ */
@ -236,38 +272,11 @@ public class JsonParserTest {
ourLog.info(output); ourLog.info(output);
String enc = ourCtx.newJsonParser().encodeResourceToString(patient); String enc = ourCtx.newJsonParser().encodeResourceToString(patient);
assertThat(enc, Matchers.stringContainsInOrder("{\"resourceType\":\"Patient\",", assertThat(enc, Matchers.stringContainsInOrder("{\"resourceType\":\"Patient\",", "\"extension\":[{\"url\":\"http://example.com/extensions#someext\",\"valueDateTime\":\"2011-01-02T11:13:15\"}",
"\"extension\":[{\"url\":\"http://example.com/extensions#someext\",\"valueDateTime\":\"2011-01-02T11:13:15\"}", "{\"url\":\"http://example.com#parent\",\"extension\":[{\"url\":\"http://example.com#child\",\"valueString\":\"value1\"},{\"url\":\"http://example.com#child\",\"valueString\":\"value2\"}]}"));
"{\"url\":\"http://example.com#parent\",\"extension\":[{\"url\":\"http://example.com#child\",\"valueString\":\"value1\"},{\"url\":\"http://example.com#child\",\"valueString\":\"value2\"}]}" assertThat(enc, Matchers.stringContainsInOrder("\"modifierExtension\":[" + "{" + "\"url\":\"http://example.com/extensions#modext\"," + "\"valueDate\":\"1995-01-02\"" + "}" + "],"));
)); assertThat(enc, containsString("\"_given\":[" + "{" + "\"extension\":[" + "{" + "\"url\":\"http://examples.com#givenext\"," + "\"valueString\":\"given\"" + "}" + "]" + "}," + "{" + "\"extension\":[" + "{" + "\"url\":\"http://examples.com#givenext_parent\"," + "\"extension\":[" + "{"
assertThat(enc, Matchers.stringContainsInOrder("\"modifierExtension\":[" + + "\"url\":\"http://examples.com#givenext_child\"," + "\"valueString\":\"CHILD\"" + "}" + "]" + "}" + "]" + "}"));
"{" +
"\"url\":\"http://example.com/extensions#modext\"," +
"\"valueDate\":\"1995-01-02\"" +
"}" +
"],"));
assertThat(enc, containsString("\"_given\":[" +
"{" +
"\"extension\":[" +
"{" +
"\"url\":\"http://examples.com#givenext\"," +
"\"valueString\":\"given\"" +
"}" +
"]" +
"}," +
"{" +
"\"extension\":[" +
"{" +
"\"url\":\"http://examples.com#givenext_parent\"," +
"\"extension\":[" +
"{" +
"\"url\":\"http://examples.com#givenext_child\"," +
"\"valueString\":\"CHILD\"" +
"}" +
"]" +
"}" +
"]" +
"}"));
/* /*
* Now parse this back * Now parse this back
@ -307,8 +316,6 @@ public class JsonParserTest {
} }
/** /**
* #65 * #65
*/ */
@ -394,8 +401,6 @@ public class JsonParserTest {
} }
@Test @Test
public void testParsePatientInBundle() { public void testParsePatientInBundle() {
@ -458,12 +463,15 @@ public class JsonParserTest {
// assertEquals("http://example.com/base/Bundle/example/_history/1", parsed.getId().getValue()); // assertEquals("http://example.com/base/Bundle/example/_history/1", parsed.getId().getValue());
// assertEquals("1", parsed.getResourceMetadata().get(ResourceMetadataKeyEnum.VERSION)); // assertEquals("1", parsed.getResourceMetadata().get(ResourceMetadataKeyEnum.VERSION));
// assertEquals("1", parsed.getId().getVersionIdPart()); // assertEquals("1", parsed.getId().getVersionIdPart());
// assertEquals(new InstantDt("2014-08-18T01:43:30Z"), parsed.getResourceMetadata().get(ResourceMetadataKeyEnum.UPDATED)); // assertEquals(new InstantDt("2014-08-18T01:43:30Z"),
// parsed.getResourceMetadata().get(ResourceMetadataKeyEnum.UPDATED));
// assertEquals("searchset", parsed.getType().getValue()); // assertEquals("searchset", parsed.getType().getValue());
// assertEquals(3, parsed.getTotalResults().getValue().intValue()); // assertEquals(3, parsed.getTotalResults().getValue().intValue());
// assertEquals("http://example.com/base", parsed.getLinkBase().getValue()); // assertEquals("http://example.com/base", parsed.getLinkBase().getValue());
// assertEquals("https://example.com/base/MedicationPrescription?patient=347&searchId=ff15fd40-ff71-4b48-b366-09c706bed9d0&page=2", parsed.getLinkNext().getValue()); // assertEquals("https://example.com/base/MedicationPrescription?patient=347&searchId=ff15fd40-ff71-4b48-b366-09c706bed9d0&page=2",
// assertEquals("https://example.com/base/MedicationPrescription?patient=347&_include=MedicationPrescription.medication", parsed.getLinkSelf().getValue()); // parsed.getLinkNext().getValue());
// assertEquals("https://example.com/base/MedicationPrescription?patient=347&_include=MedicationPrescription.medication",
// parsed.getLinkSelf().getValue());
// //
// assertEquals(2, parsed.getEntries().size()); // assertEquals(2, parsed.getEntries().size());
// //
@ -532,8 +540,6 @@ public class JsonParserTest {
} }
@Test @Test
public void testParseAndEncodeBundleWithDeletedEntry() { public void testParseAndEncodeBundleWithDeletedEntry() {

View File

@ -1,11 +1,7 @@
package ca.uhn.fhir.parser; package ca.uhn.fhir.parser;
import static org.hamcrest.Matchers.*; import static org.hamcrest.Matchers.*;
import static org.junit.Assert.assertArrayEquals; import static org.junit.Assert.*;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNull;
import static org.junit.Assert.assertThat;
import static org.junit.Assert.assertTrue;
import java.io.StringReader; import java.io.StringReader;
import java.util.ArrayList; import java.util.ArrayList;
@ -37,6 +33,7 @@ import ca.uhn.fhir.model.dstu2.resource.Composition;
import ca.uhn.fhir.model.dstu2.resource.Encounter; import ca.uhn.fhir.model.dstu2.resource.Encounter;
import ca.uhn.fhir.model.dstu2.resource.Medication; import ca.uhn.fhir.model.dstu2.resource.Medication;
import ca.uhn.fhir.model.dstu2.resource.MedicationPrescription; import ca.uhn.fhir.model.dstu2.resource.MedicationPrescription;
import ca.uhn.fhir.model.dstu2.resource.Observation;
import ca.uhn.fhir.model.dstu2.resource.Organization; import ca.uhn.fhir.model.dstu2.resource.Organization;
import ca.uhn.fhir.model.dstu2.resource.Patient; import ca.uhn.fhir.model.dstu2.resource.Patient;
import ca.uhn.fhir.model.dstu2.valueset.IdentifierUseEnum; import ca.uhn.fhir.model.dstu2.valueset.IdentifierUseEnum;
@ -57,6 +54,44 @@ public class XmlParserTest {
XMLUnit.setIgnoreWhitespace(true); XMLUnit.setIgnoreWhitespace(true);
} }
/**
* see #144 and #146
*/
@Test
public void testParseContained() {
FhirContext c = FhirContext.forDstu2();
IParser parser = c.newXmlParser().setPrettyPrint(true);
Observation o = new Observation();
o.getCode().setText("obs text");
Patient p = new Patient();
p.addName().addFamily("patient family");
o.getSubject().setResource(p);
String enc = parser.encodeResourceToString(o);
ourLog.info(enc);
//@formatter:off
assertThat(enc, stringContainsInOrder(
"<Observation xmlns=\"http://hl7.org/fhir\">",
"<contained>",
"<Patient xmlns=\"http://hl7.org/fhir\">",
"<id value=\"1\"/>",
"</contained>",
"<reference value=\"#1\"/>"
));
//@formatter:on
o = parser.parseResource(Observation.class, enc);
assertEquals("obs text", o.getCode().getText());
assertNotNull(o.getSubject().getResource());
p = (Patient) o.getSubject().getResource();
assertEquals("patient family", p.getNameFirstRep().getFamilyAsSingleString());
}
/** /**
* See #113 * See #113
*/ */

41
pom.xml
View File

@ -217,11 +217,30 @@
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId> <artifactId>maven-compiler-plugin</artifactId>
<version>3.2</version> <version>3.3</version>
<configuration> <configuration>
<source>1.6</source> <source>1.6</source>
<target>1.6</target> <target>1.6</target>
<compilerId>javac-with-errorprone</compilerId>
<forceJavacCompilerUse>true</forceJavacCompilerUse>
</configuration> </configuration>
<dependencies>
<dependency>
<groupId>com.google.errorprone</groupId>
<artifactId>error_prone_core</artifactId>
<version>2.0.1</version>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-compiler-javac</artifactId>
<version>2.5</version>
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-compiler-javac-errorprone</artifactId>
<version>2.5</version>
</dependency>
</dependencies>
</plugin> </plugin>
<plugin> <plugin>
<groupId>org.apache.maven.plugins</groupId> <groupId>org.apache.maven.plugins</groupId>
@ -374,6 +393,26 @@
<ignore></ignore> <ignore></ignore>
</action> </action>
</pluginExecution> </pluginExecution>
<pluginExecution>
<pluginExecutionFilter>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-compiler-plugin
</artifactId>
<versionRange>
[3.3,)
</versionRange>
<goals>
<goal>compile</goal>
<goal>testCompile</goal>
</goals>
</pluginExecutionFilter>
<action>
<ignore></ignore>
</action>
</pluginExecution>
</pluginExecutions> </pluginExecutions>
</lifecycleMappingMetadata> </lifecycleMappingMetadata>
</configuration> </configuration>