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

This commit is contained in:
jamesagnew 2015-08-20 21:35:34 -04:00
commit e4b732efe6
832 changed files with 9841 additions and 5080 deletions

View File

@ -19,8 +19,7 @@ package ca.uhn.fhir.context;
* limitations under the License.
* #L%
*/
import static org.apache.commons.lang3.StringUtils.*;
import static org.apache.commons.lang3.StringUtils.isBlank;
import java.io.IOException;
import java.io.InputStream;

View File

@ -1,5 +1,25 @@
package ca.uhn.fhir.model.primitive;
/*
* #%L
* HAPI FHIR - Core Library
* %%
* Copyright (C) 2014 - 2015 University Health Network
* %%
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* #L%
*/
import ca.uhn.fhir.model.api.annotation.DatatypeDef;
import net.sourceforge.cobertura.CoverageIgnore;

View File

@ -59,16 +59,16 @@ public @interface OperationParam {
Class<? extends IBase> type() default IBase.class;
/**
* The minimum number of repetitions allowed for this child
* The minimum number of repetitions allowed for this child (default is 0)
*/
int min() default 0;
/**
* The maximum number of repetitions allowed for this child. Should be
* set to {@link #MAX_UNLIMITED} if there is no limit to the number of
* repetitions.
* repetitions (default is 1)
*/
int max() default MAX_UNLIMITED;
int max() default 1;
}

View File

@ -1,5 +1,25 @@
package ca.uhn.fhir.rest.client.interceptor;
/*
* #%L
* HAPI FHIR - Core Library
* %%
* Copyright (C) 2014 - 2015 University Health Network
* %%
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* #L%
*/
import org.apache.commons.lang3.Validate;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpRequestBase;

View File

@ -174,6 +174,10 @@
<groupId>org.springframework</groupId>
<artifactId>spring-context-support</artifactId>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
</dependency>
<!-- Hibernate -->
<dependency>

View File

@ -19,8 +19,8 @@ package ca.uhn.fhir.jpa.dao;
* limitations under the License.
* #L%
*/
import static org.apache.commons.lang3.StringUtils.*;
import static org.apache.commons.lang3.StringUtils.isBlank;
import static org.apache.commons.lang3.StringUtils.isNotBlank;
import java.io.UnsupportedEncodingException;
import java.net.URI;
@ -115,7 +115,7 @@ import ca.uhn.fhir.rest.server.interceptor.IServerInterceptor;
import ca.uhn.fhir.rest.server.interceptor.IServerInterceptor.ActionRequestDetails;
import ca.uhn.fhir.util.FhirTerser;
public abstract class BaseHapiFhirDao implements IDao {
public abstract class BaseHapiFhirDao<T extends IBaseResource> implements IDao {
public static final String NS_JPA_PROFILE = "https://github.com/jamesagnew/hapi-fhir/ns/jpa/profile";
private static final org.slf4j.Logger ourLog = org.slf4j.LoggerFactory.getLogger(BaseHapiFhirDao.class);
@ -344,7 +344,7 @@ public abstract class BaseHapiFhirDao implements IDao {
}
@SuppressWarnings("unchecked")
protected <T extends IBaseResource> IFhirResourceDao<T> getDao(Class<T> theType) {
protected <R extends IBaseResource> IFhirResourceDao<R> getDao(Class<R> theType) {
if (myResourceTypeToDao == null) {
myResourceTypeToDao = new HashMap<Class<? extends IBaseResource>, IFhirResourceDao<?>>();
for (IFhirResourceDao<?> next : myResourceDaos) {
@ -358,7 +358,7 @@ public abstract class BaseHapiFhirDao implements IDao {
}
return (IFhirResourceDao<T>) myResourceTypeToDao.get(theType);
return (IFhirResourceDao<R>) myResourceTypeToDao.get(theType);
}
protected TagDefinition getTag(TagTypeEnum theTagType, String theScheme, String theTerm, String theLabel) {
@ -644,12 +644,12 @@ public abstract class BaseHapiFhirDao implements IDao {
}
protected <T extends IResource> Set<Long> processMatchUrl(String theMatchUrl, Class<T> theResourceType) {
protected <R extends IResource> Set<Long> processMatchUrl(String theMatchUrl, Class<R> theResourceType) {
RuntimeResourceDefinition resourceDef = getContext().getResourceDefinition(theResourceType);
SearchParameterMap paramMap = translateMatchUrl(theMatchUrl, resourceDef);
IFhirResourceDao<T> dao = getDao(theResourceType);
IFhirResourceDao<R> dao = getDao(theResourceType);
Set<Long> ids = dao.searchForIdsWithAndOr(paramMap);
return ids;
@ -899,6 +899,7 @@ public abstract class BaseHapiFhirDao implements IDao {
case DSTU1:
mySearchParamExtractor = new SearchParamExtractorDstu1(theContext);
break;
case DSTU2_HL7ORG:
case DEV:
throw new IllegalStateException("Don't know how to handle version: " + myContext.getVersion().getVersion());
}
@ -917,7 +918,7 @@ public abstract class BaseHapiFhirDao implements IDao {
return toResource(type.getImplementingClass(), theEntity);
}
protected <T extends IBaseResource> T toResource(Class<T> theResourceType, BaseHasResource theEntity) {
protected <R extends IBaseResource> R toResource(Class<R> theResourceType, BaseHasResource theEntity) {
String resourceText = null;
switch (theEntity.getEncoding()) {
case JSON:
@ -933,7 +934,7 @@ public abstract class BaseHapiFhirDao implements IDao {
}
IParser parser = theEntity.getEncoding().newParser(getContext(theEntity.getFhirVersion()));
T retVal;
R retVal;
try {
retVal = parser.parseResource(theResourceType, resourceText);
} catch (Exception e) {
@ -955,9 +956,9 @@ public abstract class BaseHapiFhirDao implements IDao {
IResource res = (IResource) retVal;
res.setId(theEntity.getIdDt());
res.getResourceMetadata().put(ResourceMetadataKeyEnum.VERSION_ID, theEntity.getVersion());
res.getResourceMetadata().put(ResourceMetadataKeyEnum.PUBLISHED, theEntity.getPublished());
res.getResourceMetadata().put(ResourceMetadataKeyEnum.UPDATED, theEntity.getUpdated());
ResourceMetadataKeyEnum.VERSION.put(res, Long.toString(theEntity.getVersion()));
ResourceMetadataKeyEnum.PUBLISHED.put(res, theEntity.getPublished());
ResourceMetadataKeyEnum.UPDATED.put(res, theEntity.getUpdated());
if (theEntity.getTitle() != null) {
ResourceMetadataKeyEnum.TITLE.put(res, theEntity.getTitle());
@ -1038,9 +1039,10 @@ public abstract class BaseHapiFhirDao implements IDao {
return updateEntity(theResource, entity, theUpdateHistory, theDeletedTimestampOrNull, true, true);
}
@SuppressWarnings("unchecked")
protected ResourceTable updateEntity(final IResource theResource, ResourceTable entity, boolean theUpdateHistory, Date theDeletedTimestampOrNull, boolean thePerformIndexing, boolean theUpdateVersion) {
validateResourceForStorage(theResource);
validateResourceForStorage((T) theResource);
if (entity.getPublished() == null) {
entity.setPublished(new Date());
@ -1216,12 +1218,15 @@ public abstract class BaseHapiFhirDao implements IDao {
}
/**
* Subclasses may override to provide specific behaviour
* This method is invoked immediately before storing a new resource, or an
* update to an existing resource to allow the DAO to ensure that it is valid
* for persistence. By default, no validation is performed, but subclasses
* may override to provide specific behaviour.
*
* @param theResource
* The resource that is about to be persisted
*/
protected void validateResourceForStorage(IResource theResource) {
protected void validateResourceForStorage(T theResource) {
// nothing
}

View File

@ -131,7 +131,7 @@ import ca.uhn.fhir.util.FhirTerser;
import ca.uhn.fhir.util.ObjectUtil;
@Transactional(propagation = Propagation.REQUIRED)
public abstract class BaseHapiFhirResourceDao<T extends IResource> extends BaseHapiFhirDao implements IFhirResourceDao<T> {
public abstract class BaseHapiFhirResourceDao<T extends IResource> extends BaseHapiFhirDao<T> implements IFhirResourceDao<T> {
static final String OO_SEVERITY_WARN = "warning";
static final String OO_SEVERITY_INFO = "information";

View File

@ -1,5 +1,25 @@
package ca.uhn.fhir.jpa.dao;
/*
* #%L
* HAPI FHIR JPA Server
* %%
* Copyright (C) 2014 - 2015 University Health Network
* %%
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* #L%
*/
import javax.annotation.PostConstruct;
import org.hl7.fhir.instance.model.api.IBaseOperationOutcome;
@ -7,7 +27,6 @@ import org.hl7.fhir.instance.model.api.IBaseResource;
import org.hl7.fhir.instance.model.api.IIdType;
import ca.uhn.fhir.context.FhirContext;
import ca.uhn.fhir.model.api.IResource;
import ca.uhn.fhir.model.dstu2.resource.OperationOutcome;
import ca.uhn.fhir.model.dstu2.resource.Questionnaire;
import ca.uhn.fhir.model.dstu2.resource.QuestionnaireResponse;
@ -39,7 +58,7 @@ public class FhirResourceDaoQuestionnaireResponseDstu2 extends FhirResourceDaoDs
}
@Override
protected void validateResourceForStorage(IResource theResource) {
protected void validateResourceForStorage(QuestionnaireResponse theResource) {
super.validateResourceForStorage(theResource);
if (!myValidateResponses) {
return;

View File

@ -0,0 +1,187 @@
package ca.uhn.fhir.jpa.dao;
import static org.apache.commons.lang3.StringUtils.isBlank;
import static org.apache.commons.lang3.StringUtils.isNotBlank;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Set;
import org.apache.commons.codec.binary.StringUtils;
import org.hl7.fhir.instance.model.api.IIdType;
import org.hl7.fhir.instance.model.api.IPrimitiveType;
import ca.uhn.fhir.jpa.entity.BaseHasResource;
import ca.uhn.fhir.model.dstu2.composite.CodeableConceptDt;
import ca.uhn.fhir.model.dstu2.composite.CodingDt;
import ca.uhn.fhir.model.dstu2.resource.ValueSet;
import ca.uhn.fhir.model.dstu2.resource.ValueSet.CodeSystemConcept;
import ca.uhn.fhir.model.dstu2.resource.ValueSet.ComposeInclude;
import ca.uhn.fhir.model.dstu2.resource.ValueSet.ComposeIncludeConcept;
import ca.uhn.fhir.model.dstu2.resource.ValueSet.ExpansionContains;
import ca.uhn.fhir.model.primitive.CodeDt;
import ca.uhn.fhir.model.primitive.DateTimeDt;
import ca.uhn.fhir.model.primitive.IdDt;
import ca.uhn.fhir.model.primitive.StringDt;
import ca.uhn.fhir.model.primitive.UriDt;
import ca.uhn.fhir.rest.param.TokenParam;
import ca.uhn.fhir.rest.server.exceptions.InvalidRequestException;
import ca.uhn.fhir.rest.server.exceptions.ResourceNotFoundException;
public class FhirResourceDaoValueSetDstu2 extends FhirResourceDaoDstu2<ValueSet>implements IFhirResourceDaoValueSet<ValueSet> {
@Override
public ValueSet expand(IIdType theId, StringDt theFilter) {
ValueSet retVal = new ValueSet();
retVal.setDate(DateTimeDt.withCurrentTime());
BaseHasResource sourceEntity = readEntity(theId);
if (sourceEntity == null) {
throw new ResourceNotFoundException(theId);
}
ValueSet source = (ValueSet) toResource(sourceEntity);
/*
* Add composed concepts
*/
for (ComposeInclude nextInclude : source.getCompose().getInclude()) {
for (ComposeIncludeConcept next : nextInclude.getConcept()) {
if (theFilter == null || theFilter.isEmpty()) {
addCompose(retVal, nextInclude.getSystem(), next.getCode(), next.getDisplay());
} else {
String filter = theFilter.getValue().toLowerCase();
if (next.getDisplay().toLowerCase().contains(filter) || next.getCode().toLowerCase().contains(filter)) {
addCompose(retVal, nextInclude.getSystem(), next.getCode(), next.getDisplay());
}
}
}
}
/*
* Add defined concepts
*/
for (CodeSystemConcept next : source.getCodeSystem().getConcept()) {
addCompose(theFilter, retVal, source, next);
}
return retVal;
}
private void addCompose(StringDt theFilter, ValueSet theValueSetToPopulate, ValueSet theSourceValueSet, CodeSystemConcept theConcept) {
if (theFilter == null || theFilter.isEmpty()) {
addCompose(theValueSetToPopulate, theSourceValueSet.getCodeSystem().getSystem(), theConcept.getCode(), theConcept.getDisplay());
} else {
String filter = theFilter.getValue().toLowerCase();
if (theConcept.getDisplay().toLowerCase().contains(filter) || theConcept.getCode().toLowerCase().contains(filter)) {
addCompose(theValueSetToPopulate, theSourceValueSet.getCodeSystem().getSystem(), theConcept.getCode(), theConcept.getDisplay());
}
}
for (CodeSystemConcept nextChild : theConcept.getConcept()) {
addCompose(theFilter, theValueSetToPopulate, theSourceValueSet, nextChild);
}
}
private void addCompose(ValueSet retVal, String theSystem, String theCode, String theDisplay) {
if (isBlank(theCode)) {
return;
}
ExpansionContains contains = retVal.getExpansion().addContains();
contains.setSystem(theSystem);
contains.setCode(theCode);
contains.setDisplay(theDisplay);
}
@Override
public ca.uhn.fhir.jpa.dao.IFhirResourceDaoValueSet.ValidateCodeResult validateCode(UriDt theValueSetIdentifier, IIdType theId, CodeDt theCode, UriDt theSystem, StringDt theDisplay,
CodingDt theCoding, CodeableConceptDt theCodeableConcept) {
List<IIdType> valueSetIds;
boolean haveCodeableConcept = theCodeableConcept != null && theCodeableConcept.getCoding().size() > 0;
boolean haveCoding = theCoding != null && theCoding.isEmpty() == false;
boolean haveCode = theCode != null && theCode.isEmpty() == false;
if (!haveCodeableConcept && !haveCoding && !haveCode) {
throw new InvalidRequestException("No code, coding, or codeableConcept provided to validate");
}
if (!(haveCodeableConcept ^ haveCoding ^ haveCode)) {
throw new InvalidRequestException("$validate-code can only validate (system AND code) OR (coding) OR (codeableConcept)");
}
boolean haveIdentifierParam = theValueSetIdentifier != null && theValueSetIdentifier.isEmpty() == false;
if (theId != null) {
valueSetIds = Collections.singletonList((IIdType) theId);
} else if (haveIdentifierParam) {
Set<Long> ids = searchForIds(ValueSet.SP_IDENTIFIER, new TokenParam(null, theValueSetIdentifier.getValue()));
valueSetIds = new ArrayList<IIdType>();
for (Long next : ids) {
valueSetIds.add(new IdDt("ValueSet", next));
}
} else {
if (theCode == null || theCode.isEmpty()) {
throw new InvalidRequestException("Either ValueSet ID or ValueSet identifier or system and code must be provided. Unable to validate.");
}
Set<Long> ids = searchForIds(ValueSet.SP_CODE, new TokenParam(toStringOrNull(theSystem), theCode.getValue()));
valueSetIds = new ArrayList<IIdType>();
for (Long next : ids) {
valueSetIds.add(new IdDt("ValueSet", next));
}
}
for (IIdType nextId : valueSetIds) {
ValueSet expansion = expand(nextId, null);
List<ExpansionContains> contains = expansion.getExpansion().getContains();
ValidateCodeResult result = validateCodeIsInContains(contains, toStringOrNull(theSystem), toStringOrNull(theCode), theCoding, theCodeableConcept);
if (result != null) {
if (theDisplay != null && isNotBlank(theDisplay.getValue()) && isNotBlank(result.getDisplay())) {
if (!theDisplay.getValue().equals(result.getDisplay())) {
return new ValidateCodeResult(false, "Display for code does not match", result.getDisplay());
}
}
return result;
}
}
return new ValidateCodeResult(false, "Code not found", null);
}
private String toStringOrNull(IPrimitiveType<String> thePrimitive) {
return thePrimitive != null ? thePrimitive.getValue() : null;
}
private ca.uhn.fhir.jpa.dao.IFhirResourceDaoValueSet.ValidateCodeResult validateCodeIsInContains(List<ExpansionContains> contains, String theSystem, String theCode, CodingDt theCoding,
CodeableConceptDt theCodeableConcept) {
for (ExpansionContains nextCode : contains) {
ca.uhn.fhir.jpa.dao.IFhirResourceDaoValueSet.ValidateCodeResult result = validateCodeIsInContains(nextCode.getContains(), theSystem, theCode, theCoding, theCodeableConcept);
if (result != null) {
return result;
}
String system = nextCode.getSystem();
String code = nextCode.getCode();
if (isNotBlank(theCode)) {
if (theCode.equals(code) && (isBlank(theSystem) || theSystem.equals(system))) {
return new ValidateCodeResult(true, "Validation succeeded", nextCode.getDisplay());
}
} else if (theCoding != null) {
if (StringUtils.equals(system, theCoding.getSystem()) && StringUtils.equals(code, theCoding.getCode())) {
return new ValidateCodeResult(true, "Validation succeeded", nextCode.getDisplay());
}
} else {
for (CodingDt next : theCodeableConcept.getCoding()) {
if (StringUtils.equals(system, next.getSystem()) && StringUtils.equals(code, next.getCode())) {
return new ValidateCodeResult(true, "Validation succeeded", nextCode.getDisplay());
}
}
}
}
return null;
}
}

View File

@ -0,0 +1,44 @@
package ca.uhn.fhir.jpa.dao;
import org.hl7.fhir.instance.model.api.IBaseResource;
import org.hl7.fhir.instance.model.api.IIdType;
import ca.uhn.fhir.model.dstu2.composite.CodeableConceptDt;
import ca.uhn.fhir.model.dstu2.composite.CodingDt;
import ca.uhn.fhir.model.dstu2.resource.ValueSet;
import ca.uhn.fhir.model.primitive.CodeDt;
import ca.uhn.fhir.model.primitive.StringDt;
import ca.uhn.fhir.model.primitive.UriDt;
public interface IFhirResourceDaoValueSet<T extends IBaseResource> extends IFhirResourceDao<T> {
ValueSet expand(IIdType theId, StringDt theFilter);
ValidateCodeResult validateCode(UriDt theValueSetIdentifier, IIdType theId, CodeDt theCode, UriDt theSystem, StringDt theDisplay, CodingDt theCoding, CodeableConceptDt theCodeableConcept);
public class ValidateCodeResult {
private String myDisplay;
private String myMessage;
private boolean myResult;
public ValidateCodeResult(boolean theResult, String theMessage, String theDisplay) {
super();
myResult = theResult;
myMessage = theMessage;
myDisplay = theDisplay;
}
public String getDisplay() {
return myDisplay;
}
public String getMessage() {
return myMessage;
}
public boolean isResult() {
return myResult;
}
}
}

View File

@ -63,6 +63,7 @@ import ca.uhn.fhir.model.dstu2.resource.Conformance.RestSecurity;
import ca.uhn.fhir.model.dstu2.resource.Patient;
import ca.uhn.fhir.model.dstu2.resource.Patient.Communication;
import ca.uhn.fhir.model.dstu2.resource.Questionnaire;
import ca.uhn.fhir.model.dstu2.resource.ValueSet;
import ca.uhn.fhir.model.dstu2.valueset.RestfulSecurityServiceEnum;
import ca.uhn.fhir.model.primitive.BaseDateTimeDt;
import ca.uhn.fhir.model.primitive.IntegerDt;
@ -405,6 +406,12 @@ public class SearchParamExtractorDstu2 extends BaseSearchParamExtractor implemen
public List<BaseResourceIndexedSearchParam> extractSearchParamTokens(ResourceTable theEntity, IResource theResource) {
ArrayList<BaseResourceIndexedSearchParam> retVal = new ArrayList<BaseResourceIndexedSearchParam>();
String useSystem = null;
if (theResource instanceof ValueSet) {
ValueSet vs = (ValueSet) theResource;
useSystem = vs.getCodeSystem().getSystem();
}
RuntimeResourceDefinition def = getContext().getResourceDefinition(theResource);
for (RuntimeSearchParam nextSpDef : def.getSearchParams()) {
if (nextSpDef.getParamType() != RestSearchParameterTypeEnum.TOKEN) {
@ -466,7 +473,11 @@ public class SearchParamExtractorDstu2 extends BaseSearchParamExtractor implemen
if (nextValue.isEmpty()) {
continue;
}
systems.add(null);
if ("ValueSet.codeSystem.concept.code".equals(nextPath)) {
systems.add(useSystem);
} else {
systems.add(null);
}
codes.add(nextValue.getValueAsString());
} else if (nextObject instanceof CodingDt) {
CodingDt nextValue = (CodingDt) nextObject;

View File

@ -1,5 +1,25 @@
package ca.uhn.fhir.jpa.provider;
/*
* #%L
* HAPI FHIR JPA Server
* %%
* Copyright (C) 2014 - 2015 University Health Network
* %%
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* #L%
*/
import ca.uhn.fhir.model.dstu2.resource.QuestionnaireResponse;
public class BaseJpaResourceProviderQuestionnaireResponseDstu2 extends JpaResourceProviderDstu2<QuestionnaireResponse> {

View File

@ -1,116 +1,76 @@
package ca.uhn.fhir.jpa.provider;
/*
* #%L
* HAPI FHIR JPA Server
* %%
* Copyright (C) 2014 - 2015 University Health Network
* %%
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* #L%
*/
import java.util.HashMap;
import java.util.Map;
import static org.apache.commons.lang3.StringUtils.isNotBlank;
import javax.servlet.http.HttpServletRequest;
import ca.uhn.fhir.jpa.dao.IFhirResourceDaoValueSet;
import ca.uhn.fhir.jpa.dao.IFhirResourceDaoValueSet.ValidateCodeResult;
import ca.uhn.fhir.model.dstu2.composite.CodeableConceptDt;
import ca.uhn.fhir.model.dstu2.composite.CodingDt;
import ca.uhn.fhir.model.dstu2.resource.Parameters;
import ca.uhn.fhir.model.dstu2.resource.ValueSet;
import ca.uhn.fhir.model.dstu2.resource.ValueSet.CodeSystemConcept;
import ca.uhn.fhir.model.dstu2.resource.ValueSet.ComposeInclude;
import ca.uhn.fhir.model.dstu2.resource.ValueSet.ComposeIncludeConcept;
import ca.uhn.fhir.model.primitive.DateTimeDt;
import ca.uhn.fhir.model.primitive.BooleanDt;
import ca.uhn.fhir.model.primitive.CodeDt;
import ca.uhn.fhir.model.primitive.IdDt;
import ca.uhn.fhir.model.primitive.StringDt;
import ca.uhn.fhir.model.primitive.UriDt;
import ca.uhn.fhir.rest.annotation.IdParam;
import ca.uhn.fhir.rest.annotation.Operation;
import ca.uhn.fhir.rest.annotation.OperationParam;
public class BaseJpaResourceProviderValueSetDstu2 extends JpaResourceProviderDstu2<ValueSet> {
//@formatter:off
@Operation(name = "$expand", idempotent = true)
public ValueSet everything(HttpServletRequest theServletRequest, @IdParam IdDt theId, @OperationParam(name = "filter") StringDt theFilter) {
public ValueSet everything(
HttpServletRequest theServletRequest,
@IdParam IdDt theId,
@OperationParam(name = "filter") StringDt theFilter) {
//@formatter:on
startRequest(theServletRequest);
try {
ValueSet retVal = new ValueSet();
retVal.setDate(DateTimeDt.withCurrentTime());
ValueSet source = read(theServletRequest, theId);
Map<String, ComposeInclude> systemToCompose = new HashMap<String, ComposeInclude>();
/*
* Add composed concepts
*/
for (ComposeInclude nextInclude : source.getCompose().getInclude()) {
for (ComposeIncludeConcept next : nextInclude.getConcept()) {
ComposeInclude include = null;
if (theFilter == null || theFilter.isEmpty()) {
if (include == null) {
include = getOrAddComposeInclude(retVal, systemToCompose, nextInclude.getSystem());
}
include.addConcept(next);
} else {
String filter = theFilter.getValue().toLowerCase();
if (next.getDisplay().toLowerCase().contains(filter) || next.getCode().toLowerCase().contains(filter)) {
if (include == null) {
include = getOrAddComposeInclude(retVal, systemToCompose, nextInclude.getSystem());
}
include.addConcept(next);
}
}
}
}
/*
* Add defined concepts
*/
ComposeInclude include = null;
for (CodeSystemConcept next : source.getCodeSystem().getConcept()) {
if (theFilter == null || theFilter.isEmpty()) {
if (include == null) {
include = getOrAddComposeInclude(retVal, systemToCompose, source.getCodeSystem().getSystem());
}
include.addConcept(new ComposeIncludeConcept().setCode(next.getCode()).setDisplay(next.getDisplay()));
} else {
String filter = theFilter.getValue().toLowerCase();
if (next.getDisplay().toLowerCase().contains(filter) || next.getCode().toLowerCase().contains(filter)) {
if (include == null) {
include = getOrAddComposeInclude(retVal, systemToCompose, source.getCodeSystem().getSystem());
}
include.addConcept(new ComposeIncludeConcept().setCode(next.getCode()).setDisplay(next.getDisplay()));
}
}
}
return retVal;
IFhirResourceDaoValueSet<ValueSet> dao = (IFhirResourceDaoValueSet<ValueSet>) getDao();
return dao.expand(theId, theFilter);
} finally {
endRequest(theServletRequest);
}
}
private ComposeInclude getOrAddComposeInclude(ValueSet retVal, Map<String, ComposeInclude> systemToCompose, String system) {
ComposeInclude include;
include = systemToCompose.get(system);
if (include == null) {
include = retVal.getCompose().addInclude();
include.setSystem(system);
systemToCompose.put(system, include);
//@formatter:off
@Operation(name = "$validate-code", idempotent = true, returnParameters= {
@OperationParam(name="result", type=BooleanDt.class, min=1),
@OperationParam(name="message", type=StringDt.class),
@OperationParam(name="display", type=StringDt.class)
})
public Parameters everything(
HttpServletRequest theServletRequest,
@IdParam IdDt theId,
@OperationParam(name="identifier") UriDt theValueSetIdentifier,
@OperationParam(name="code") CodeDt theCode,
@OperationParam(name="system") UriDt theSystem,
@OperationParam(name="display") StringDt theDisplay,
@OperationParam(name="coding") CodingDt theCoding,
@OperationParam(name="codeableConcept") CodeableConceptDt theCodeableConcept
) {
//@formatter:on
startRequest(theServletRequest);
try {
IFhirResourceDaoValueSet<ValueSet> dao = (IFhirResourceDaoValueSet<ValueSet>) getDao();
ValidateCodeResult result = dao.validateCode(theValueSetIdentifier, theId, theCode, theSystem, theDisplay, theCoding, theCodeableConcept);
Parameters retVal = new Parameters();
retVal.addParameter().setName("result").setValue(new BooleanDt(result.isResult()));
if (isNotBlank(result.getMessage())) {
retVal.addParameter().setName("message").setValue(new StringDt(result.getMessage()));
}
if (isNotBlank(result.getDisplay())) {
retVal.addParameter().setName("display").setValue(new StringDt(result.getDisplay()));
}
return retVal;
} finally {
endRequest(theServletRequest);
}
return include;
}
}

View File

@ -0,0 +1,217 @@
package ca.uhn.fhir.jpa.dao;
import static org.hamcrest.Matchers.stringContainsInOrder;
import static org.junit.Assert.*;
import java.io.IOException;
import java.io.InputStreamReader;
import org.hl7.fhir.instance.model.api.IIdType;
import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.test.context.ContextConfiguration;
import org.springframework.test.context.junit4.SpringJUnit4ClassRunner;
import org.springframework.transaction.annotation.Transactional;
import ca.uhn.fhir.context.FhirContext;
import ca.uhn.fhir.jpa.dao.IFhirResourceDaoValueSet.ValidateCodeResult;
import ca.uhn.fhir.jpa.provider.ResourceProviderDstu2Test;
import ca.uhn.fhir.model.dstu2.composite.CodeableConceptDt;
import ca.uhn.fhir.model.dstu2.composite.CodingDt;
import ca.uhn.fhir.model.dstu2.resource.Bundle;
import ca.uhn.fhir.model.dstu2.resource.ValueSet;
import ca.uhn.fhir.model.primitive.CodeDt;
import ca.uhn.fhir.model.primitive.IdDt;
import ca.uhn.fhir.model.primitive.StringDt;
import ca.uhn.fhir.model.primitive.UriDt;
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({ "/hapi-fhir-server-resourceproviders-dstu2.xml", "/fhir-jpabase-spring-test-config.xml" })
public class FhirResourceDaoValueSetDstu2Test {
private static final org.slf4j.Logger ourLog = org.slf4j.LoggerFactory.getLogger(FhirResourceDaoValueSetDstu2Test.class);
private static IIdType vsid;
@Autowired
private FhirContext myCtx;
@Autowired
@Qualifier("mySystemDaoDstu2")
private IFhirSystemDao<Bundle> mySystemDao;
@Autowired
@Qualifier("myValueSetDaoDstu2")
private IFhirResourceDaoValueSet<ValueSet> myValueSetDao;
@Before
@Transactional
public void before01() {
if (vsid == null) {
FhirSystemDaoDstu2Test.doDeleteEverything(mySystemDao);
}
}
@Before
@Transactional
public void before02() {
if (vsid == null) {
ValueSet upload = myCtx.newXmlParser().parseResource(ValueSet.class, new InputStreamReader(ResourceProviderDstu2Test.class.getResourceAsStream("/extensional-case-2.xml")));
upload.setId("");
vsid = myValueSetDao.create(upload).getId().toUnqualifiedVersionless();
}
}
@Test
public void testValidateCodeOperationByCodeAndSystemBad() {
UriDt valueSetIdentifier = null;
IdDt id = null;
CodeDt code = new CodeDt("8450-9-XXX");
UriDt system = new UriDt("http://loinc.org");
StringDt display = null;
CodingDt coding = null;
CodeableConceptDt codeableConcept = null;
ValidateCodeResult result = myValueSetDao.validateCode(valueSetIdentifier, id, code, system, display, coding, codeableConcept);
assertFalse(result.isResult());
}
@Test
public void testValidateCodeOperationByCodeAndSystemGood() {
UriDt valueSetIdentifier = null;
IdDt id = null;
CodeDt code = new CodeDt("8450-9");
UriDt system = new UriDt("http://loinc.org");
StringDt display = null;
CodingDt coding = null;
CodeableConceptDt codeableConcept = null;
ValidateCodeResult result = myValueSetDao.validateCode(valueSetIdentifier, id, code, system, display, coding, codeableConcept);
assertTrue(result.isResult());
assertEquals("Systolic blood pressure--expiration", result.getDisplay());
}
@Test
public void testValidateCodeOperationByIdentifierAndCodeAndSystem() {
UriDt valueSetIdentifier = new UriDt("http://www.healthintersections.com.au/fhir/ValueSet/extensional-case-2");
IdDt id = null;
CodeDt code = new CodeDt("11378-7");
UriDt system = new UriDt("http://loinc.org");
StringDt display = null;
CodingDt coding = null;
CodeableConceptDt codeableConcept = null;
ValidateCodeResult result = myValueSetDao.validateCode(valueSetIdentifier, id, code, system, display, coding, codeableConcept);
assertTrue(result.isResult());
assertEquals("Systolic blood pressure at First encounter", result.getDisplay());
}
@Test
public void testValidateCodeOperationByIdentifierAndCodeAndSystemAndBadDisplay() {
UriDt valueSetIdentifier = new UriDt("http://www.healthintersections.com.au/fhir/ValueSet/extensional-case-2");
IdDt id = null;
CodeDt code = new CodeDt("11378-7");
UriDt system = new UriDt("http://loinc.org");
StringDt display = new StringDt("Systolic blood pressure at First encounterXXXX");
CodingDt coding = null;
CodeableConceptDt codeableConcept = null;
ValidateCodeResult result = myValueSetDao.validateCode(valueSetIdentifier, id, code, system, display, coding, codeableConcept);
assertFalse(result.isResult());
assertEquals("Systolic blood pressure at First encounter", result.getDisplay());
}
@Test
public void testValidateCodeOperationByIdentifierAndCodeAndSystemAndGoodDisplay() {
UriDt valueSetIdentifier = new UriDt("http://www.healthintersections.com.au/fhir/ValueSet/extensional-case-2");
IdDt id = null;
CodeDt code = new CodeDt("11378-7");
UriDt system = new UriDt("http://loinc.org");
StringDt display = new StringDt("Systolic blood pressure at First encounter");
CodingDt coding = null;
CodeableConceptDt codeableConcept = null;
ValidateCodeResult result = myValueSetDao.validateCode(valueSetIdentifier, id, code, system, display, coding, codeableConcept);
assertTrue(result.isResult());
assertEquals("Systolic blood pressure at First encounter", result.getDisplay());
}
@Test
public void testValidateCodeOperationByResourceIdAndCodeableConcept() {
UriDt valueSetIdentifier = null;
IIdType id = vsid;
CodeDt code = null;
UriDt system = null;
StringDt display = null;
CodingDt coding = null;
CodeableConceptDt codeableConcept = new CodeableConceptDt("http://loinc.org", "11378-7");
ValidateCodeResult result = myValueSetDao.validateCode(valueSetIdentifier, id, code, system, display, coding, codeableConcept);
assertTrue(result.isResult());
assertEquals("Systolic blood pressure at First encounter", result.getDisplay());
}
@Test
public void testValidateCodeOperationByResourceIdAndCodeAndSystem() {
UriDt valueSetIdentifier = null;
IIdType id = vsid;
CodeDt code = new CodeDt("11378-7");
UriDt system = new UriDt("http://loinc.org");
StringDt display = null;
CodingDt coding = null;
CodeableConceptDt codeableConcept = null;
ValidateCodeResult result = myValueSetDao.validateCode(valueSetIdentifier, id, code, system, display, coding, codeableConcept);
assertTrue(result.isResult());
assertEquals("Systolic blood pressure at First encounter", result.getDisplay());
}
@Test
public void testValueSetExpandOperation() throws IOException {
String resp;
ValueSet expanded = myValueSetDao.expand(vsid, null);
resp = myCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(expanded);
ourLog.info(resp);
// @formatter:off
assertThat(resp,
stringContainsInOrder("<ValueSet xmlns=\"http://hl7.org/fhir\">",
"<expansion>",
"<contains>",
"<system value=\"http://loinc.org\"/>",
"<code value=\"11378-7\"/>",
"<display value=\"Systolic blood pressure at First encounter\"/>",
"</contains>",
"<contains>",
"<system value=\"http://loinc.org\"/>",
"<code value=\"8450-9\"/>",
"<display value=\"Systolic blood pressure--expiration\"/>",
"</contains>",
"</expansion>"
));
//@formatter:on
/*
* Filter with display name
*/
expanded = myValueSetDao.expand(vsid, new StringDt("systolic"));
resp = myCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(expanded);
ourLog.info(resp);
//@formatter:off
assertThat(resp, stringContainsInOrder(
"<code value=\"11378-7\"/>",
"<display value=\"Systolic blood pressure at First encounter\"/>"));
//@formatter:on
/*
* Filter with code
*/
expanded = myValueSetDao.expand(vsid, new StringDt("11378"));
resp = myCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(expanded);
ourLog.info(resp);
//@formatter:off
assertThat(resp, stringContainsInOrder(
"<code value=\"11378-7\"/>",
"<display value=\"Systolic blood pressure at First encounter\"/>"));
//@formatter:on
}
}

View File

@ -428,8 +428,6 @@ public class ResourceProviderDstu2Test extends BaseJpaTest {
@Test
public void testCreateQuestionnaireResponseWithValidation() throws IOException {
String methodName = "testCreateQuestionnaireResponseWithValidation";
ValueSet options = new ValueSet();
options.getCodeSystem().setSystem("urn:system").addConcept().setCode("code0");
IIdType optId = ourClient.create().resource(options).execute().getId();
@ -1508,21 +1506,21 @@ public class ResourceProviderDstu2Test extends BaseJpaTest {
ourLog.info(resp);
assertEquals(200, response.getStatusLine().getStatusCode());
// @formatter:off
assertThat(
resp,
stringContainsInOrder("<ValueSet xmlns=\"http://hl7.org/fhir\">",
"<compose>",
"<include>",
assertThat(resp,
stringContainsInOrder("<ValueSet xmlns=\"http://hl7.org/fhir\">",
"<expansion>",
"<contains>",
"<system value=\"http://loinc.org\"/>",
"<concept>",
"<code value=\"11378-7\"/>",
"<display value=\"Systolic blood pressure at First encounter\"/>",
"</concept>",
"<concept>",
"</contains>",
"<contains>",
"<system value=\"http://loinc.org\"/>",
"<code value=\"8450-9\"/>",
"<display value=\"Systolic blood pressure--expiration\"/>",
"</concept>"
));
"</contains>",
"</expansion>"
));
//@formatter:on
} finally {
IOUtils.closeQuietly(response.getEntity().getContent());

View File

@ -0,0 +1,39 @@
package ca.uhn.fhir.validator;
import static org.junit.Assert.*;
import org.junit.Test;
import ca.uhn.fhir.context.FhirContext;
import ca.uhn.fhir.model.dstu2.resource.QuestionnaireResponse;
import ca.uhn.fhir.model.primitive.DateTimeDt;
import ca.uhn.fhir.validation.FhirInstanceValidator;
import ca.uhn.fhir.validation.FhirValidator;
import ca.uhn.fhir.validation.ValidationResult;
/**
* This test doesn't really belong to JPA, but it needs to be in a project with both DSTU2 and HL7ORG_DSTU2 present, so here will do.
*/
public class ValidatorAcrossVersionsTest {
private static final org.slf4j.Logger ourLog = org.slf4j.LoggerFactory.getLogger(ValidatorAcrossVersionsTest.class);
@Test
public void testValidateProfileOnDstu2Resource() {
FhirContext ctxDstu2 = FhirContext.forDstu2();
FhirValidator val = ctxDstu2.newValidator();
val.setValidateAgainstStandardSchema(false);
val.setValidateAgainstStandardSchematron(false);
val.registerValidatorModule(new FhirInstanceValidator());
QuestionnaireResponse resp = new QuestionnaireResponse();
resp.setAuthored(DateTimeDt.withCurrentTime());
ValidationResult result = val.validateWithResult(resp);
ourLog.info(ctxDstu2.newJsonParser().setPrettyPrint(true).encodeResourceToString(result.toOperationOutcome()));
assertEquals(1, result.getMessages().size());
assertEquals("Element '/f:QuestionnaireResponse.status': minimum required = 1, but only found 0", result.getMessages().get(0).getMessage());
}
}

View File

@ -1,8 +1,9 @@
package ca.uhn.fhir.validation;
import static org.apache.commons.lang3.StringUtils.isBlank;
import static org.apache.commons.lang3.StringUtils.*;
import java.io.IOException;
import java.io.InputStream;
import java.io.StringReader;
import java.util.ArrayList;
import java.util.Collections;
@ -17,123 +18,166 @@ import org.hl7.fhir.instance.model.OperationOutcome.IssueSeverity;
import org.hl7.fhir.instance.model.StructureDefinition;
import org.hl7.fhir.instance.utils.WorkerContext;
import org.hl7.fhir.instance.validation.IResourceValidator.BestPracticeWarningLevel;
import org.hl7.fhir.instance.validation.IResourceValidator.CheckDisplayOption;
import org.hl7.fhir.instance.validation.ValidationMessage;
import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;
import org.xml.sax.InputSource;
import ca.uhn.fhir.context.ConfigurationException;
import ca.uhn.fhir.context.FhirContext;
import ca.uhn.fhir.rest.server.EncodingEnum;
import ca.uhn.fhir.rest.server.exceptions.InternalErrorException;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.google.gson.JsonObject;
import ca.uhn.fhir.context.ConfigurationException;
import ca.uhn.fhir.context.FhirContext;
import ca.uhn.fhir.context.FhirVersionEnum;
import ca.uhn.fhir.rest.server.EncodingEnum;
import ca.uhn.fhir.rest.server.exceptions.InternalErrorException;
public class FhirInstanceValidator extends BaseValidatorBridge implements IValidatorModule {
static final org.slf4j.Logger ourLog = org.slf4j.LoggerFactory.getLogger(FhirInstanceValidator.class);
private static FhirContext ourHl7OrgCtx;
private DocumentBuilderFactory myDocBuilderFactory;
static final org.slf4j.Logger ourLog = org.slf4j.LoggerFactory.getLogger(FhirInstanceValidator.class);
private DocumentBuilderFactory myDocBuilderFactory;
private BestPracticeWarningLevel myBestPracticeWarningLevel = BestPracticeWarningLevel.Hint;
private BestPracticeWarningLevel myBestPracticeWarningLevel;
public FhirInstanceValidator() {
myDocBuilderFactory = DocumentBuilderFactory.newInstance();
myDocBuilderFactory.setNamespaceAware(true);
}
public FhirInstanceValidator() {
myDocBuilderFactory = DocumentBuilderFactory.newInstance();
myDocBuilderFactory.setNamespaceAware(true);
}
private String determineResourceName(Document theDocument) {
Element root = null;
private String determineResourceName(Document theDocument) {
Element root = null;
NodeList list = theDocument.getChildNodes();
for (int i = 0; i < list.getLength(); i++) {
if (list.item(i) instanceof Element) {
root = (Element) list.item(i);
break;
}
}
root = theDocument.getDocumentElement();
return root.getLocalName();
}
NodeList list = theDocument.getChildNodes();
for (int i = 0; i < list.getLength(); i++) {
if (list.item(i) instanceof Element) {
root = (Element) list.item(i);
break;
}
}
root = theDocument.getDocumentElement();
return root.getLocalName();
}
private StructureDefinition loadProfileOrReturnNull(List<ValidationMessage> theMessages, FhirContext theCtx, String theResourceName) {
if (isBlank(theResourceName)) {
theMessages.add(new ValidationMessage().setLevel(IssueSeverity.FATAL).setMessage("Could not determine resource type from request. Content appears invalid."));
return null;
}
private FhirContext getHl7OrgDstu2Ctx(FhirContext theCtx) {
if (theCtx.getVersion().getVersion() == FhirVersionEnum.DSTU2_HL7ORG) {
return theCtx;
}
FhirContext retVal = ourHl7OrgCtx;
if (retVal == null) {
retVal = FhirContext.forDstu2Hl7Org();
ourHl7OrgCtx = retVal;
}
return retVal;
}
String profileCpName = "/org/hl7/fhir/instance/model/profile/" + theResourceName.toLowerCase() + ".profile.xml";
String profileText;
try {
profileText = IOUtils.toString(FhirInstanceValidator.class.getResourceAsStream(profileCpName), "UTF-8");
} catch (IOException e1) {
theMessages.add(new ValidationMessage().setLevel(IssueSeverity.FATAL).setMessage("No profile found for resource type " + theResourceName));
return null;
}
StructureDefinition profile = theCtx.newXmlParser().parseResource(StructureDefinition.class, profileText);
return profile;
}
private StructureDefinition loadProfileOrReturnNull(List<ValidationMessage> theMessages, FhirContext theCtx,
String theResourceName) {
if (isBlank(theResourceName)) {
if (theMessages != null) {
theMessages.add(new ValidationMessage().setLevel(IssueSeverity.FATAL)
.setMessage("Could not determine resource type from request. Content appears invalid."));
}
return null;
}
protected List<ValidationMessage> validate(FhirContext theCtx, String theInput, EncodingEnum theEncoding) {
WorkerContext workerContext = new WorkerContext();
org.hl7.fhir.instance.validation.InstanceValidator v;
try {
v = new org.hl7.fhir.instance.validation.InstanceValidator(workerContext);
} catch (Exception e) {
throw new ConfigurationException(e);
}
String profileCpName = "/org/hl7/fhir/instance/model/profile/" + theResourceName.toLowerCase() + ".profile.xml";
String profileText;
try {
InputStream inputStream = FhirInstanceValidator.class.getResourceAsStream(profileCpName);
if (inputStream == null) {
if (theMessages != null) {
theMessages.add(new ValidationMessage().setLevel(IssueSeverity.FATAL)
.setMessage("No profile found for resource type " + theResourceName));
} else {
return null;
}
}
profileText = IOUtils.toString(inputStream, "UTF-8");
} catch (IOException e1) {
if (theMessages != null) {
theMessages.add(new ValidationMessage().setLevel(IssueSeverity.FATAL)
.setMessage("No profile found for resource type " + theResourceName));
}
return null;
}
StructureDefinition profile = getHl7OrgDstu2Ctx(theCtx).newXmlParser().parseResource(StructureDefinition.class,
profileText);
return profile;
}
v.setBestPracticeWarningLevel(myBestPracticeWarningLevel);
protected List<ValidationMessage> validate(final FhirContext theCtx, String theInput, EncodingEnum theEncoding) {
WorkerContext workerContext = new WorkerContext() {
@Override
public StructureDefinition getProfile(String theId) {
StructureDefinition retVal = super.getProfile(theId);
if (retVal == null) {
if (theId.startsWith("http://hl7.org/fhir/StructureDefinition/")) {
retVal = loadProfileOrReturnNull(null, getHl7OrgDstu2Ctx(theCtx), theId.substring("http://hl7.org/fhir/StructureDefinition/".length()));
if (retVal != null) {
seeProfile(theId, retVal);
}
}
}
return retVal;
}};
org.hl7.fhir.instance.validation.InstanceValidator v;
try {
v = new org.hl7.fhir.instance.validation.InstanceValidator(workerContext);
} catch (Exception e) {
throw new ConfigurationException(e);
}
List<ValidationMessage> messages = new ArrayList<ValidationMessage>();
v.setBestPracticeWarningLevel(myBestPracticeWarningLevel);
if (theEncoding == EncodingEnum.XML) {
Document document;
try {
DocumentBuilder builder = myDocBuilderFactory.newDocumentBuilder();
InputSource src = new InputSource(new StringReader(theInput));
document = builder.parse(src);
} catch (Exception e2) {
ourLog.error("Failure to parse XML input", e2);
ValidationMessage m = new ValidationMessage();
m.setLevel(IssueSeverity.FATAL);
m.setMessage("Failed to parse input, it does not appear to be valid XML:" + e2.getMessage());
return Collections.singletonList(m);
}
List<ValidationMessage> messages = new ArrayList<ValidationMessage>();
String resourceName = determineResourceName(document);
StructureDefinition profile = loadProfileOrReturnNull(messages, theCtx, resourceName);
if (profile != null) {
try {
v.validate(messages, document, profile);
} catch (Exception e) {
throw new InternalErrorException("Unexpected failure while validating resource", e);
}
}
} else if (theEncoding == EncodingEnum.JSON) {
Gson gson = new GsonBuilder().create();
JsonObject json = gson.fromJson(theInput, JsonObject.class);
if (theEncoding == EncodingEnum.XML) {
Document document;
try {
DocumentBuilder builder = myDocBuilderFactory.newDocumentBuilder();
InputSource src = new InputSource(new StringReader(theInput));
document = builder.parse(src);
} catch (Exception e2) {
ourLog.error("Failure to parse XML input", e2);
ValidationMessage m = new ValidationMessage();
m.setLevel(IssueSeverity.FATAL);
m.setMessage("Failed to parse input, it does not appear to be valid XML:" + e2.getMessage());
return Collections.singletonList(m);
}
String resourceName = json.get("resourceType").getAsString();
StructureDefinition profile = loadProfileOrReturnNull(messages, theCtx, resourceName);
if (profile != null) {
try {
v.validate(messages, json, profile);
} catch (Exception e) {
throw new InternalErrorException("Unexpected failure while validating resource", e);
}
}
} else {
throw new IllegalArgumentException("Unknown encoding: " + theEncoding);
}
String resourceName = determineResourceName(document);
StructureDefinition profile = loadProfileOrReturnNull(messages, theCtx, resourceName);
if (profile != null) {
try {
v.validate(messages, document, profile);
} catch (Exception e) {
throw new InternalErrorException("Unexpected failure while validating resource", e);
}
}
} else if (theEncoding == EncodingEnum.JSON) {
Gson gson = new GsonBuilder().create();
JsonObject json = gson.fromJson(theInput, JsonObject.class);
return messages;
}
String resourceName = json.get("resourceType").getAsString();
StructureDefinition profile = loadProfileOrReturnNull(messages, theCtx, resourceName);
if (profile != null) {
try {
v.validate(messages, json, profile);
} catch (Exception e) {
throw new InternalErrorException("Unexpected failure while validating resource", e);
}
}
} else {
throw new IllegalArgumentException("Unknown encoding: " + theEncoding);
}
return messages;
}
/**
* Returns the "best practice" warning level (default is {@link BestPracticeWarningLevel#Hint})
*
@ -147,7 +191,7 @@ public class FhirInstanceValidator extends BaseValidatorBridge implements IValid
* Sets the "best practice warning level". When validating, any deviations from best practices
* will be reported at this level. {@link BestPracticeWarningLevel#Ignore} means that best practice
* deviations will not be reported, {@link BestPracticeWarningLevel#Warning} means that best
* practice deviations will be reported as warnings, etc.
* practice deviations will be reported as warnings, etc. Default is {@link BestPracticeWarningLevel#Hint}
* @param theBestPracticeWarningLevel The level, must not be <code>null</code>
*/
public void setBestPracticeWarningLevel(BestPracticeWarningLevel theBestPracticeWarningLevel) {

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import org.hl7.fhir.instance.model.annotations.DatatypeDef;
import org.hl7.fhir.instance.model.annotations.Block;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;
@ -64,7 +64,7 @@ public class AllergyIntolerance extends DomainResource {
*/
REFUTED,
/**
* The statement was entered in error and Is not valid
* The statement was entered in error and is not valid
*/
ENTEREDINERROR,
/**
@ -112,7 +112,7 @@ public class AllergyIntolerance extends DomainResource {
case CONFIRMED: return "A high level of certainty about the propensity for a reaction to the identified Substance, which may include clinical evidence by testing or rechallenge.";
case RESOLVED: return "A reaction to the identified Substance has been clinically reassessed by testing or rechallenge and considered to be resolved.";
case REFUTED: return "A propensity for a reaction to the identified Substance has been disproven with a high level of clinical certainty, which may include testing or rechallenge, and is refuted.";
case ENTEREDINERROR: return "The statement was entered in error and Is not valid";
case ENTEREDINERROR: return "The statement was entered in error and is not valid";
default: return "?";
}
}
@ -331,6 +331,10 @@ public class AllergyIntolerance extends DomainResource {
* Substances that are encountered in the environment
*/
ENVIRONMENT,
/**
* Other substances that are not covered by any other category
*/
OTHER,
/**
* added to help the parsers
*/
@ -344,6 +348,8 @@ public class AllergyIntolerance extends DomainResource {
return MEDICATION;
if ("environment".equals(codeString))
return ENVIRONMENT;
if ("other".equals(codeString))
return OTHER;
throw new Exception("Unknown AllergyIntoleranceCategory code '"+codeString+"'");
}
public String toCode() {
@ -351,6 +357,7 @@ public class AllergyIntolerance extends DomainResource {
case FOOD: return "food";
case MEDICATION: return "medication";
case ENVIRONMENT: return "environment";
case OTHER: return "other";
default: return "?";
}
}
@ -359,6 +366,7 @@ public class AllergyIntolerance extends DomainResource {
case FOOD: return "http://hl7.org/fhir/allergy-intolerance-category";
case MEDICATION: return "http://hl7.org/fhir/allergy-intolerance-category";
case ENVIRONMENT: return "http://hl7.org/fhir/allergy-intolerance-category";
case OTHER: return "http://hl7.org/fhir/allergy-intolerance-category";
default: return "?";
}
}
@ -367,6 +375,7 @@ public class AllergyIntolerance extends DomainResource {
case FOOD: return "Any substance consumed to provide nutritional support for the body";
case MEDICATION: return "Substances administered to achieve a physiological effect";
case ENVIRONMENT: return "Substances that are encountered in the environment";
case OTHER: return "Other substances that are not covered by any other category";
default: return "?";
}
}
@ -375,6 +384,7 @@ public class AllergyIntolerance extends DomainResource {
case FOOD: return "Food";
case MEDICATION: return "Medication";
case ENVIRONMENT: return "Environment";
case OTHER: return "Other";
default: return "?";
}
}
@ -391,6 +401,8 @@ public class AllergyIntolerance extends DomainResource {
return AllergyIntoleranceCategory.MEDICATION;
if ("environment".equals(codeString))
return AllergyIntoleranceCategory.ENVIRONMENT;
if ("other".equals(codeString))
return AllergyIntoleranceCategory.OTHER;
throw new IllegalArgumentException("Unknown AllergyIntoleranceCategory code '"+codeString+"'");
}
public String toCode(AllergyIntoleranceCategory code) {
@ -400,6 +412,8 @@ public class AllergyIntolerance extends DomainResource {
return "medication";
if (code == AllergyIntoleranceCategory.ENVIRONMENT)
return "environment";
if (code == AllergyIntoleranceCategory.OTHER)
return "other";
return "?";
}
}
@ -1156,7 +1170,7 @@ public class AllergyIntolerance extends DomainResource {
* Category of the identified Substance.
*/
@Child(name = "category", type = {CodeType.class}, order=9, min=0, max=1)
@Description(shortDefinition="food | medication | environment - Category of Substance", formalDefinition="Category of the identified Substance." )
@Description(shortDefinition="food | medication | environment | other - Category of Substance", formalDefinition="Category of the identified Substance." )
protected Enumeration<AllergyIntoleranceCategory> category;
/**
@ -1880,7 +1894,7 @@ public class AllergyIntolerance extends DomainResource {
public static final String SP_ROUTE = "route";
@SearchParamDefinition(name="patient", path="AllergyIntolerance.patient", description="Who the sensitivity is for", type="reference" )
public static final String SP_PATIENT = "patient";
@SearchParamDefinition(name="category", path="AllergyIntolerance.category", description="food | medication | environment - Category of Substance", type="token" )
@SearchParamDefinition(name="category", path="AllergyIntolerance.category", description="food | medication | environment | other - Category of Substance", type="token" )
public static final String SP_CATEGORY = "category";
@SearchParamDefinition(name="last-date", path="AllergyIntolerance.lastOccurence", description="Date(/time) of last known occurence of a reaction", type="date" )
public static final String SP_LASTDATE = "last-date";

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 06:45-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;
@ -568,7 +568,7 @@ public class CarePlan extends DomainResource {
/**
* The details of the proposed activity represented in a specific resource.
*/
@Child(name = "reference", type = {Appointment.class, CommunicationRequest.class, DeviceUseRequest.class, DiagnosticOrder.class, MedicationPrescription.class, NutritionOrder.class, Order.class, ProcedureRequest.class, ProcessRequest.class, ReferralRequest.class, SupplyRequest.class, VisionPrescription.class}, order=3, min=0, max=1)
@Child(name = "reference", type = {Appointment.class, CommunicationRequest.class, DeviceUseRequest.class, DiagnosticOrder.class, MedicationOrder.class, NutritionOrder.class, Order.class, ProcedureRequest.class, ProcessRequest.class, ReferralRequest.class, SupplyRequest.class, VisionPrescription.class}, order=3, min=0, max=1)
@Description(shortDefinition="Activity details defined in specific resource", formalDefinition="The details of the proposed activity represented in a specific resource." )
protected Reference reference;
@ -758,7 +758,7 @@ public class CarePlan extends DomainResource {
super.listChildren(childrenList);
childrenList.add(new Property("actionResulting", "Reference(Any)", "Resources that describe follow-on actions resulting from the plan, such as drug prescriptions, encounter records, appointments, etc.", 0, java.lang.Integer.MAX_VALUE, actionResulting));
childrenList.add(new Property("notes", "string", "Notes about the execution of the activity.", 0, java.lang.Integer.MAX_VALUE, notes));
childrenList.add(new Property("reference", "Reference(Appointment|CommunicationRequest|DeviceUseRequest|DiagnosticOrder|MedicationPrescription|NutritionOrder|Order|ProcedureRequest|ProcessRequest|ReferralRequest|SupplyRequest|VisionPrescription)", "The details of the proposed activity represented in a specific resource.", 0, java.lang.Integer.MAX_VALUE, reference));
childrenList.add(new Property("reference", "Reference(Appointment|CommunicationRequest|DeviceUseRequest|DiagnosticOrder|MedicationOrder|NutritionOrder|Order|ProcedureRequest|ProcessRequest|ReferralRequest|SupplyRequest|VisionPrescription)", "The details of the proposed activity represented in a specific resource.", 0, java.lang.Integer.MAX_VALUE, reference));
childrenList.add(new Property("detail", "", "A simple summary of a planned activity suitable for a general care plan system (e.g. form driven) that doesn't know about specific resources such as procedure etc.", 0, java.lang.Integer.MAX_VALUE, detail));
}
@ -906,16 +906,16 @@ public class CarePlan extends DomainResource {
/**
* Identifies the quantity expected to be consumed in a given day.
*/
@Child(name = "dailyAmount", type = {Quantity.class}, order=12, min=0, max=1)
@Child(name = "dailyAmount", type = {SimpleQuantity.class}, order=12, min=0, max=1)
@Description(shortDefinition="How to consume/day?", formalDefinition="Identifies the quantity expected to be consumed in a given day." )
protected Quantity dailyAmount;
protected SimpleQuantity dailyAmount;
/**
* Identifies the quantity expected to be supplied, addministered or consumed by the subject.
*/
@Child(name = "quantity", type = {Quantity.class}, order=13, min=0, max=1)
@Child(name = "quantity", type = {SimpleQuantity.class}, order=13, min=0, max=1)
@Description(shortDefinition="How much to administer/supply/consume", formalDefinition="Identifies the quantity expected to be supplied, addministered or consumed by the subject." )
protected Quantity quantity;
protected SimpleQuantity quantity;
/**
* This provides a textual description of constraints on the intended activity occurrence, including relation to other activities. It may also include objectives, pre-conditions and end-conditions. Finally, it may convey specifics about the activity such as body site, method, route, etc.
@ -924,7 +924,7 @@ public class CarePlan extends DomainResource {
@Description(shortDefinition="Extra info on activity occurrence", formalDefinition="This provides a textual description of constraints on the intended activity occurrence, including relation to other activities. It may also include objectives, pre-conditions and end-conditions. Finally, it may convey specifics about the activity such as body site, method, route, etc." )
protected StringType note;
private static final long serialVersionUID = -1276666801L;
private static final long serialVersionUID = -369716593L;
/*
* Constructor
@ -1428,12 +1428,12 @@ public class CarePlan extends DomainResource {
/**
* @return {@link #dailyAmount} (Identifies the quantity expected to be consumed in a given day.)
*/
public Quantity getDailyAmount() {
public SimpleQuantity getDailyAmount() {
if (this.dailyAmount == null)
if (Configuration.errorOnAutoCreate())
throw new Error("Attempt to auto-create CarePlanActivityDetailComponent.dailyAmount");
else if (Configuration.doAutoCreate())
this.dailyAmount = new Quantity(); // cc
this.dailyAmount = new SimpleQuantity(); // cc
return this.dailyAmount;
}
@ -1444,7 +1444,7 @@ public class CarePlan extends DomainResource {
/**
* @param value {@link #dailyAmount} (Identifies the quantity expected to be consumed in a given day.)
*/
public CarePlanActivityDetailComponent setDailyAmount(Quantity value) {
public CarePlanActivityDetailComponent setDailyAmount(SimpleQuantity value) {
this.dailyAmount = value;
return this;
}
@ -1452,12 +1452,12 @@ public class CarePlan extends DomainResource {
/**
* @return {@link #quantity} (Identifies the quantity expected to be supplied, addministered or consumed by the subject.)
*/
public Quantity getQuantity() {
public SimpleQuantity getQuantity() {
if (this.quantity == null)
if (Configuration.errorOnAutoCreate())
throw new Error("Attempt to auto-create CarePlanActivityDetailComponent.quantity");
else if (Configuration.doAutoCreate())
this.quantity = new Quantity(); // cc
this.quantity = new SimpleQuantity(); // cc
return this.quantity;
}
@ -1468,7 +1468,7 @@ public class CarePlan extends DomainResource {
/**
* @param value {@link #quantity} (Identifies the quantity expected to be supplied, addministered or consumed by the subject.)
*/
public CarePlanActivityDetailComponent setQuantity(Quantity value) {
public CarePlanActivityDetailComponent setQuantity(SimpleQuantity value) {
this.quantity = value;
return this;
}
@ -1535,8 +1535,8 @@ public class CarePlan extends DomainResource {
childrenList.add(new Property("location", "Reference(Location)", "Identifies the facility where the activity will occur. E.g. home, hospital, specific clinic, etc.", 0, java.lang.Integer.MAX_VALUE, location));
childrenList.add(new Property("performer", "Reference(Practitioner|Organization|RelatedPerson|Patient)", "Identifies who's expected to be involved in the activity.", 0, java.lang.Integer.MAX_VALUE, performer));
childrenList.add(new Property("product", "Reference(Medication|Substance)", "Identifies the food, drug or other product to be consumed or supplied in the activity.", 0, java.lang.Integer.MAX_VALUE, product));
childrenList.add(new Property("dailyAmount", "Quantity", "Identifies the quantity expected to be consumed in a given day.", 0, java.lang.Integer.MAX_VALUE, dailyAmount));
childrenList.add(new Property("quantity", "Quantity", "Identifies the quantity expected to be supplied, addministered or consumed by the subject.", 0, java.lang.Integer.MAX_VALUE, quantity));
childrenList.add(new Property("dailyAmount", "SimpleQuantity", "Identifies the quantity expected to be consumed in a given day.", 0, java.lang.Integer.MAX_VALUE, dailyAmount));
childrenList.add(new Property("quantity", "SimpleQuantity", "Identifies the quantity expected to be supplied, addministered or consumed by the subject.", 0, java.lang.Integer.MAX_VALUE, quantity));
childrenList.add(new Property("note", "string", "This provides a textual description of constraints on the intended activity occurrence, including relation to other activities. It may also include objectives, pre-conditions and end-conditions. Finally, it may convey specifics about the activity such as body site, method, route, etc.", 0, java.lang.Integer.MAX_VALUE, note));
}

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;
@ -1196,9 +1196,9 @@ public class Claim extends DomainResource {
/**
* The number of repetitions of a service or product.
*/
@Child(name = "quantity", type = {Quantity.class}, order=7, min=0, max=1)
@Child(name = "quantity", type = {SimpleQuantity.class}, order=7, min=0, max=1)
@Description(shortDefinition="Count of Products or Services", formalDefinition="The number of repetitions of a service or product." )
protected Quantity quantity;
protected SimpleQuantity quantity;
/**
* If the item is a node then this is the fee for the product or service, otherwise this is the total of the fees for the children of the group.
@ -1270,7 +1270,7 @@ public class Claim extends DomainResource {
@Description(shortDefinition="Prosthetic details", formalDefinition="The materials and placement date of prior fixed prosthesis." )
protected ProsthesisComponent prosthesis;
private static final long serialVersionUID = -311028698L;
private static final long serialVersionUID = 1295830456L;
/*
* Constructor
@ -1532,12 +1532,12 @@ public class Claim extends DomainResource {
/**
* @return {@link #quantity} (The number of repetitions of a service or product.)
*/
public Quantity getQuantity() {
public SimpleQuantity getQuantity() {
if (this.quantity == null)
if (Configuration.errorOnAutoCreate())
throw new Error("Attempt to auto-create ItemsComponent.quantity");
else if (Configuration.doAutoCreate())
this.quantity = new Quantity(); // cc
this.quantity = new SimpleQuantity(); // cc
return this.quantity;
}
@ -1548,7 +1548,7 @@ public class Claim extends DomainResource {
/**
* @param value {@link #quantity} (The number of repetitions of a service or product.)
*/
public ItemsComponent setQuantity(Quantity value) {
public ItemsComponent setQuantity(SimpleQuantity value) {
this.quantity = value;
return this;
}
@ -1899,7 +1899,7 @@ public class Claim extends DomainResource {
childrenList.add(new Property("diagnosisLinkId", "positiveInt", "Diagnosis applicable for this service or product line.", 0, java.lang.Integer.MAX_VALUE, diagnosisLinkId));
childrenList.add(new Property("service", "Coding", "If a grouping item then 'GROUP' otherwise it is a node therefore a code to indicate the Professional Service or Product supplied.", 0, java.lang.Integer.MAX_VALUE, service));
childrenList.add(new Property("serviceDate", "date", "The date when the enclosed suite of services were performed or completed.", 0, java.lang.Integer.MAX_VALUE, serviceDate));
childrenList.add(new Property("quantity", "Quantity", "The number of repetitions of a service or product.", 0, java.lang.Integer.MAX_VALUE, quantity));
childrenList.add(new Property("quantity", "SimpleQuantity", "The number of repetitions of a service or product.", 0, java.lang.Integer.MAX_VALUE, quantity));
childrenList.add(new Property("unitPrice", "Money", "If the item is a node then this is the fee for the product or service, otherwise this is the total of the fees for the children of the group.", 0, java.lang.Integer.MAX_VALUE, unitPrice));
childrenList.add(new Property("factor", "decimal", "A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.", 0, java.lang.Integer.MAX_VALUE, factor));
childrenList.add(new Property("points", "decimal", "An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.", 0, java.lang.Integer.MAX_VALUE, points));
@ -2018,9 +2018,9 @@ public class Claim extends DomainResource {
/**
* The number of repetitions of a service or product.
*/
@Child(name = "quantity", type = {Quantity.class}, order=4, min=0, max=1)
@Child(name = "quantity", type = {SimpleQuantity.class}, order=4, min=0, max=1)
@Description(shortDefinition="Count of Products or Services", formalDefinition="The number of repetitions of a service or product." )
protected Quantity quantity;
protected SimpleQuantity quantity;
/**
* If the item is a node then this is the fee for the product or service, otherwise this is the total of the fees for the children of the group.
@ -2064,7 +2064,7 @@ public class Claim extends DomainResource {
@Description(shortDefinition="Additional items", formalDefinition="Third tier of goods and services." )
protected List<SubDetailComponent> subDetail;
private static final long serialVersionUID = -1641314433L;
private static final long serialVersionUID = 5768017L;
/*
* Constructor
@ -2179,12 +2179,12 @@ public class Claim extends DomainResource {
/**
* @return {@link #quantity} (The number of repetitions of a service or product.)
*/
public Quantity getQuantity() {
public SimpleQuantity getQuantity() {
if (this.quantity == null)
if (Configuration.errorOnAutoCreate())
throw new Error("Attempt to auto-create DetailComponent.quantity");
else if (Configuration.doAutoCreate())
this.quantity = new Quantity(); // cc
this.quantity = new SimpleQuantity(); // cc
return this.quantity;
}
@ -2195,7 +2195,7 @@ public class Claim extends DomainResource {
/**
* @param value {@link #quantity} (The number of repetitions of a service or product.)
*/
public DetailComponent setQuantity(Quantity value) {
public DetailComponent setQuantity(SimpleQuantity value) {
this.quantity = value;
return this;
}
@ -2415,7 +2415,7 @@ public class Claim extends DomainResource {
childrenList.add(new Property("sequence", "positiveInt", "A service line number.", 0, java.lang.Integer.MAX_VALUE, sequence));
childrenList.add(new Property("type", "Coding", "The type of product or service.", 0, java.lang.Integer.MAX_VALUE, type));
childrenList.add(new Property("service", "Coding", "If a grouping item then 'GROUP' otherwise it is a node therefore a code to indicate the Professional Service or Product supplied.", 0, java.lang.Integer.MAX_VALUE, service));
childrenList.add(new Property("quantity", "Quantity", "The number of repetitions of a service or product.", 0, java.lang.Integer.MAX_VALUE, quantity));
childrenList.add(new Property("quantity", "SimpleQuantity", "The number of repetitions of a service or product.", 0, java.lang.Integer.MAX_VALUE, quantity));
childrenList.add(new Property("unitPrice", "Money", "If the item is a node then this is the fee for the product or service, otherwise this is the total of the fees for the children of the group.", 0, java.lang.Integer.MAX_VALUE, unitPrice));
childrenList.add(new Property("factor", "decimal", "A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.", 0, java.lang.Integer.MAX_VALUE, factor));
childrenList.add(new Property("points", "decimal", "An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.", 0, java.lang.Integer.MAX_VALUE, points));
@ -2503,9 +2503,9 @@ public class Claim extends DomainResource {
/**
* The number of repetitions of a service or product.
*/
@Child(name = "quantity", type = {Quantity.class}, order=4, min=0, max=1)
@Child(name = "quantity", type = {SimpleQuantity.class}, order=4, min=0, max=1)
@Description(shortDefinition="Count of Products or Services", formalDefinition="The number of repetitions of a service or product." )
protected Quantity quantity;
protected SimpleQuantity quantity;
/**
* The fee for an addittional service or product or charge.
@ -2542,7 +2542,7 @@ public class Claim extends DomainResource {
@Description(shortDefinition="Unique Device Identifier", formalDefinition="List of Unique Device Identifiers associated with this line item." )
protected Coding udi;
private static final long serialVersionUID = -947666334L;
private static final long serialVersionUID = 623567568L;
/*
* Constructor
@ -2657,12 +2657,12 @@ public class Claim extends DomainResource {
/**
* @return {@link #quantity} (The number of repetitions of a service or product.)
*/
public Quantity getQuantity() {
public SimpleQuantity getQuantity() {
if (this.quantity == null)
if (Configuration.errorOnAutoCreate())
throw new Error("Attempt to auto-create SubDetailComponent.quantity");
else if (Configuration.doAutoCreate())
this.quantity = new Quantity(); // cc
this.quantity = new SimpleQuantity(); // cc
return this.quantity;
}
@ -2673,7 +2673,7 @@ public class Claim extends DomainResource {
/**
* @param value {@link #quantity} (The number of repetitions of a service or product.)
*/
public SubDetailComponent setQuantity(Quantity value) {
public SubDetailComponent setQuantity(SimpleQuantity value) {
this.quantity = value;
return this;
}
@ -2853,7 +2853,7 @@ public class Claim extends DomainResource {
childrenList.add(new Property("sequence", "positiveInt", "A service line number.", 0, java.lang.Integer.MAX_VALUE, sequence));
childrenList.add(new Property("type", "Coding", "The type of product or service.", 0, java.lang.Integer.MAX_VALUE, type));
childrenList.add(new Property("service", "Coding", "The fee for an addittional service or product or charge.", 0, java.lang.Integer.MAX_VALUE, service));
childrenList.add(new Property("quantity", "Quantity", "The number of repetitions of a service or product.", 0, java.lang.Integer.MAX_VALUE, quantity));
childrenList.add(new Property("quantity", "SimpleQuantity", "The number of repetitions of a service or product.", 0, java.lang.Integer.MAX_VALUE, quantity));
childrenList.add(new Property("unitPrice", "Money", "The fee for an addittional service or product or charge.", 0, java.lang.Integer.MAX_VALUE, unitPrice));
childrenList.add(new Property("factor", "decimal", "A real number that represents a multiplier used in determining the overall value of services delivered and/or goods received. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.", 0, java.lang.Integer.MAX_VALUE, factor));
childrenList.add(new Property("points", "decimal", "An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the good or service delivered. The concept of Points allows for assignment of point values for services and/or goods, such that a monetary amount can be assigned to each point.", 0, java.lang.Integer.MAX_VALUE, points));
@ -3403,7 +3403,7 @@ public class Claim extends DomainResource {
/**
* Prescription to support the dispensing of Pharmacy or Vision products.
*/
@Child(name = "prescription", type = {MedicationPrescription.class, VisionPrescription.class}, order=13, min=0, max=1)
@Child(name = "prescription", type = {MedicationOrder.class, VisionPrescription.class}, order=13, min=0, max=1)
@Description(shortDefinition="Prescription", formalDefinition="Prescription to support the dispensing of Pharmacy or Vision products." )
protected Reference prescription;
@ -3415,14 +3415,14 @@ public class Claim extends DomainResource {
/**
* Original prescription to support the dispensing of pharmacy services, medications or products.
*/
@Child(name = "originalPrescription", type = {MedicationPrescription.class}, order=14, min=0, max=1)
@Child(name = "originalPrescription", type = {MedicationOrder.class}, order=14, min=0, max=1)
@Description(shortDefinition="Original Prescription", formalDefinition="Original prescription to support the dispensing of pharmacy services, medications or products." )
protected Reference originalPrescription;
/**
* The actual object that is the target of the reference (Original prescription to support the dispensing of pharmacy services, medications or products.)
*/
protected MedicationPrescription originalPrescriptionTarget;
protected MedicationOrder originalPrescriptionTarget;
/**
* The party to be reimbursed for the services.
@ -3532,7 +3532,7 @@ public class Claim extends DomainResource {
@Description(shortDefinition="Only if type = oral", formalDefinition="A list of teeth which would be expected but are not found due to having been previously extracted or for other reasons." )
protected List<MissingTeethComponent> missingTeeth;
private static final long serialVersionUID = 1120349447L;
private static final long serialVersionUID = 4272227L;
/*
* Constructor
@ -4115,19 +4115,19 @@ public class Claim extends DomainResource {
/**
* @return {@link #originalPrescription} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Original prescription to support the dispensing of pharmacy services, medications or products.)
*/
public MedicationPrescription getOriginalPrescriptionTarget() {
public MedicationOrder getOriginalPrescriptionTarget() {
if (this.originalPrescriptionTarget == null)
if (Configuration.errorOnAutoCreate())
throw new Error("Attempt to auto-create Claim.originalPrescription");
else if (Configuration.doAutoCreate())
this.originalPrescriptionTarget = new MedicationPrescription(); // aa
this.originalPrescriptionTarget = new MedicationOrder(); // aa
return this.originalPrescriptionTarget;
}
/**
* @param value {@link #originalPrescription} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Original prescription to support the dispensing of pharmacy services, medications or products.)
*/
public Claim setOriginalPrescriptionTarget(MedicationPrescription value) {
public Claim setOriginalPrescriptionTarget(MedicationOrder value) {
this.originalPrescriptionTarget = value;
return this;
}
@ -4701,8 +4701,8 @@ public class Claim extends DomainResource {
childrenList.add(new Property("fundsReserve", "Coding", "In the case of a Pre-Determination/Pre-Authorization the provider may request that funds in the amount of the expected Benefit be reserved ('Patient' or 'Provider') to pay for the Benefits determined on the subsequent claim(s). 'None' explicitly indicates no funds reserving is requested.", 0, java.lang.Integer.MAX_VALUE, fundsReserve));
childrenList.add(new Property("enterer", "Reference(Practitioner)", "Person who created the invoice/claim/pre-determination or pre-authorization.", 0, java.lang.Integer.MAX_VALUE, enterer));
childrenList.add(new Property("facility", "Reference(Location)", "Facility where the services were provided.", 0, java.lang.Integer.MAX_VALUE, facility));
childrenList.add(new Property("prescription", "Reference(MedicationPrescription|VisionPrescription)", "Prescription to support the dispensing of Pharmacy or Vision products.", 0, java.lang.Integer.MAX_VALUE, prescription));
childrenList.add(new Property("originalPrescription", "Reference(MedicationPrescription)", "Original prescription to support the dispensing of pharmacy services, medications or products.", 0, java.lang.Integer.MAX_VALUE, originalPrescription));
childrenList.add(new Property("prescription", "Reference(MedicationOrder|VisionPrescription)", "Prescription to support the dispensing of Pharmacy or Vision products.", 0, java.lang.Integer.MAX_VALUE, prescription));
childrenList.add(new Property("originalPrescription", "Reference(MedicationOrder)", "Original prescription to support the dispensing of pharmacy services, medications or products.", 0, java.lang.Integer.MAX_VALUE, originalPrescription));
childrenList.add(new Property("payee", "", "The party to be reimbursed for the services.", 0, java.lang.Integer.MAX_VALUE, payee));
childrenList.add(new Property("referral", "Reference(ReferralRequest)", "The referral resource which lists the date, practitioner, reason and other supporting information.", 0, java.lang.Integer.MAX_VALUE, referral));
childrenList.add(new Property("diagnosis", "", "Ordered list of patient diagnosis for which care is sought.", 0, java.lang.Integer.MAX_VALUE, diagnosis));

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;
@ -710,7 +710,7 @@ public class ClinicalImpression extends DomainResource {
/**
* Plan of action after assessment.
*/
@Child(name = "plan", type = {CarePlan.class, Appointment.class, CommunicationRequest.class, DeviceUseRequest.class, DiagnosticOrder.class, MedicationPrescription.class, NutritionOrder.class, Order.class, ProcedureRequest.class, ProcessRequest.class, ReferralRequest.class, SupplyRequest.class, VisionPrescription.class}, order=15, min=0, max=Child.MAX_UNLIMITED)
@Child(name = "plan", type = {CarePlan.class, Appointment.class, CommunicationRequest.class, DeviceUseRequest.class, DiagnosticOrder.class, MedicationOrder.class, NutritionOrder.class, Order.class, ProcedureRequest.class, ProcessRequest.class, ReferralRequest.class, SupplyRequest.class, VisionPrescription.class}, order=15, min=0, max=Child.MAX_UNLIMITED)
@Description(shortDefinition="Plan of action after assessment", formalDefinition="Plan of action after assessment." )
protected List<Reference> plan;
/**
@ -722,7 +722,7 @@ public class ClinicalImpression extends DomainResource {
/**
* Actions taken during assessment.
*/
@Child(name = "action", type = {ReferralRequest.class, ProcedureRequest.class, Procedure.class, MedicationPrescription.class, DiagnosticOrder.class, NutritionOrder.class, SupplyRequest.class, Appointment.class}, order=16, min=0, max=Child.MAX_UNLIMITED)
@Child(name = "action", type = {ReferralRequest.class, ProcedureRequest.class, Procedure.class, MedicationOrder.class, DiagnosticOrder.class, NutritionOrder.class, SupplyRequest.class, Appointment.class}, order=16, min=0, max=Child.MAX_UNLIMITED)
@Description(shortDefinition="Actions taken during assessment", formalDefinition="Actions taken during assessment." )
protected List<Reference> action;
/**
@ -1540,8 +1540,8 @@ public class ClinicalImpression extends DomainResource {
childrenList.add(new Property("resolved", "CodeableConcept", "Diagnoses/conditions resolved since the last assessment.", 0, java.lang.Integer.MAX_VALUE, resolved));
childrenList.add(new Property("ruledOut", "", "Diagnosis considered not possible.", 0, java.lang.Integer.MAX_VALUE, ruledOut));
childrenList.add(new Property("prognosis", "string", "Estimate of likely outcome.", 0, java.lang.Integer.MAX_VALUE, prognosis));
childrenList.add(new Property("plan", "Reference(CarePlan|Appointment|CommunicationRequest|DeviceUseRequest|DiagnosticOrder|MedicationPrescription|NutritionOrder|Order|ProcedureRequest|ProcessRequest|ReferralRequest|SupplyRequest|VisionPrescription)", "Plan of action after assessment.", 0, java.lang.Integer.MAX_VALUE, plan));
childrenList.add(new Property("action", "Reference(ReferralRequest|ProcedureRequest|Procedure|MedicationPrescription|DiagnosticOrder|NutritionOrder|SupplyRequest|Appointment)", "Actions taken during assessment.", 0, java.lang.Integer.MAX_VALUE, action));
childrenList.add(new Property("plan", "Reference(CarePlan|Appointment|CommunicationRequest|DeviceUseRequest|DiagnosticOrder|MedicationOrder|NutritionOrder|Order|ProcedureRequest|ProcessRequest|ReferralRequest|SupplyRequest|VisionPrescription)", "Plan of action after assessment.", 0, java.lang.Integer.MAX_VALUE, plan));
childrenList.add(new Property("action", "Reference(ReferralRequest|ProcedureRequest|Procedure|MedicationOrder|DiagnosticOrder|NutritionOrder|SupplyRequest|Appointment)", "Actions taken during assessment.", 0, java.lang.Integer.MAX_VALUE, action));
}
public ClinicalImpression copy() {

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;
@ -41,7 +41,7 @@ import org.hl7.fhir.instance.model.annotations.Description;
import org.hl7.fhir.instance.model.annotations.Block;
import org.hl7.fhir.instance.model.api.*;
/**
* A set of healthcare-related information that is assembled together into a single logical document that provides a single coherent statement of meaning, establishes its own context and that has clinical attestation with regard to who is making the statement.
* A set of healthcare-related information that is assembled together into a single logical document that provides a single coherent statement of meaning, establishes its own context and that has clinical attestation with regard to who is making the statement. While a Composition defines the structure, it does not actually contain the content: rather the full content of a document is contained in a Bundle, of which the Composition is the first resource contained.
*/
@ResourceDef(name="Composition", profile="http://hl7.org/fhir/Profile/Composition")
public class Composition extends DomainResource {
@ -56,11 +56,7 @@ public class Composition extends DomainResource {
*/
FINAL,
/**
* The composition or document has been modified subsequent to being released as "final", and is complete and verified by an authorized person. The modifications added new information to the composition or document, but did not revise existing content
*/
APPENDED,
/**
* The composition or document has been modified subsequent to being released as "final", and is complete and verified by an authorized person
* The composition content or the referenced resources have been modified (edited or added to) subsequent to being released as "final" and the composition is complete and verified by an authorized person
*/
AMENDED,
/**
@ -78,8 +74,6 @@ public class Composition extends DomainResource {
return PRELIMINARY;
if ("final".equals(codeString))
return FINAL;
if ("appended".equals(codeString))
return APPENDED;
if ("amended".equals(codeString))
return AMENDED;
if ("entered-in-error".equals(codeString))
@ -90,7 +84,6 @@ public class Composition extends DomainResource {
switch (this) {
case PRELIMINARY: return "preliminary";
case FINAL: return "final";
case APPENDED: return "appended";
case AMENDED: return "amended";
case ENTEREDINERROR: return "entered-in-error";
default: return "?";
@ -100,7 +93,6 @@ public class Composition extends DomainResource {
switch (this) {
case PRELIMINARY: return "http://hl7.org/fhir/composition-status";
case FINAL: return "http://hl7.org/fhir/composition-status";
case APPENDED: return "http://hl7.org/fhir/composition-status";
case AMENDED: return "http://hl7.org/fhir/composition-status";
case ENTEREDINERROR: return "http://hl7.org/fhir/composition-status";
default: return "?";
@ -110,8 +102,7 @@ public class Composition extends DomainResource {
switch (this) {
case PRELIMINARY: return "This is a preliminary composition or document (also known as initial or interim). The content may be incomplete or unverified";
case FINAL: return "This version of the composition is complete and verified by an appropriate person and no further work is planned. Any subsequent updates would be on a new version of the composition.";
case APPENDED: return "The composition or document has been modified subsequent to being released as 'final', and is complete and verified by an authorized person. The modifications added new information to the composition or document, but did not revise existing content";
case AMENDED: return "The composition or document has been modified subsequent to being released as 'final', and is complete and verified by an authorized person";
case AMENDED: return "The composition content or the referenced resources have been modified (edited or added to) subsequent to being released as 'final' and the composition is complete and verified by an authorized person";
case ENTEREDINERROR: return "The composition or document was originally created/issued in error, and this is an amendment that marks that the entire series should not be considered as valid";
default: return "?";
}
@ -120,7 +111,6 @@ public class Composition extends DomainResource {
switch (this) {
case PRELIMINARY: return "Preliminary";
case FINAL: return "Final";
case APPENDED: return "Appended ap Appended";
case AMENDED: return "Amended";
case ENTEREDINERROR: return "Entered in Error";
default: return "?";
@ -137,8 +127,6 @@ public class Composition extends DomainResource {
return CompositionStatus.PRELIMINARY;
if ("final".equals(codeString))
return CompositionStatus.FINAL;
if ("appended".equals(codeString))
return CompositionStatus.APPENDED;
if ("amended".equals(codeString))
return CompositionStatus.AMENDED;
if ("entered-in-error".equals(codeString))
@ -150,8 +138,6 @@ public class Composition extends DomainResource {
return "preliminary";
if (code == CompositionStatus.FINAL)
return "final";
if (code == CompositionStatus.APPENDED)
return "appended";
if (code == CompositionStatus.AMENDED)
return "amended";
if (code == CompositionStatus.ENTEREDINERROR)
@ -504,13 +490,13 @@ public class Composition extends DomainResource {
protected Period period;
/**
* Full details for the event(s) the composition/documentation consents.
* The description and/or reference of the event(s) being documented. For example, this could be used to document such a colonoscopy or an appendectomy.
*/
@Child(name = "detail", type = {}, order=3, min=0, max=Child.MAX_UNLIMITED)
@Description(shortDefinition="Full details for the event(s) the composition consents", formalDefinition="Full details for the event(s) the composition/documentation consents." )
@Description(shortDefinition="The event(s) being documented", formalDefinition="The description and/or reference of the event(s) being documented. For example, this could be used to document such a colonoscopy or an appendectomy." )
protected List<Reference> detail;
/**
* The actual objects that are the target of the reference (Full details for the event(s) the composition/documentation consents.)
* The actual objects that are the target of the reference (The description and/or reference of the event(s) being documented. For example, this could be used to document such a colonoscopy or an appendectomy.)
*/
protected List<Resource> detailTarget;
@ -589,7 +575,7 @@ public class Composition extends DomainResource {
}
/**
* @return {@link #detail} (Full details for the event(s) the composition/documentation consents.)
* @return {@link #detail} (The description and/or reference of the event(s) being documented. For example, this could be used to document such a colonoscopy or an appendectomy.)
*/
public List<Reference> getDetail() {
if (this.detail == null)
@ -607,7 +593,7 @@ public class Composition extends DomainResource {
}
/**
* @return {@link #detail} (Full details for the event(s) the composition/documentation consents.)
* @return {@link #detail} (The description and/or reference of the event(s) being documented. For example, this could be used to document such a colonoscopy or an appendectomy.)
*/
// syntactic sugar
public Reference addDetail() { //3
@ -629,7 +615,7 @@ public class Composition extends DomainResource {
}
/**
* @return {@link #detail} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Full details for the event(s) the composition/documentation consents.)
* @return {@link #detail} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. The description and/or reference of the event(s) being documented. For example, this could be used to document such a colonoscopy or an appendectomy.)
*/
public List<Resource> getDetailTarget() {
if (this.detailTarget == null)
@ -641,7 +627,7 @@ public class Composition extends DomainResource {
super.listChildren(childrenList);
childrenList.add(new Property("code", "CodeableConcept", "This list of codes represents the main clinical acts, such as a colonoscopy or an appendectomy, being documented. In some cases, the event is inherent in the typeCode, such as a 'History and Physical Report' in which the procedure being documented is necessarily a 'History and Physical' act.", 0, java.lang.Integer.MAX_VALUE, code));
childrenList.add(new Property("period", "Period", "The period of time covered by the documentation. There is no assertion that the documentation is a complete representation for this period, only that it documents events during this time.", 0, java.lang.Integer.MAX_VALUE, period));
childrenList.add(new Property("detail", "Reference(Any)", "Full details for the event(s) the composition/documentation consents.", 0, java.lang.Integer.MAX_VALUE, detail));
childrenList.add(new Property("detail", "Reference(Any)", "The description and/or reference of the event(s) being documented. For example, this could be used to document such a colonoscopy or an appendectomy.", 0, java.lang.Integer.MAX_VALUE, detail));
}
public CompositionEventComponent copy() {
@ -1140,7 +1126,7 @@ public class Composition extends DomainResource {
/**
* Official human-readable label for the composition.
*/
@Child(name = "title", type = {StringType.class}, order=4, min=0, max=1)
@Child(name = "title", type = {StringType.class}, order=4, min=1, max=1)
@Description(shortDefinition="Human Readable name/title", formalDefinition="Official human-readable label for the composition." )
protected StringType title;
@ -1148,7 +1134,7 @@ public class Composition extends DomainResource {
* The workflow/clinical status of this composition. The status is a marker for the clinical standing of the document.
*/
@Child(name = "status", type = {CodeType.class}, order=5, min=1, max=1)
@Description(shortDefinition="preliminary | final | appended | amended | entered-in-error", formalDefinition="The workflow/clinical status of this composition. The status is a marker for the clinical standing of the document." )
@Description(shortDefinition="preliminary | final | amended | entered-in-error", formalDefinition="The workflow/clinical status of this composition. The status is a marker for the clinical standing of the document." )
protected Enumeration<CompositionStatus> status;
/**
@ -1239,10 +1225,11 @@ public class Composition extends DomainResource {
/*
* Constructor
*/
public Composition(DateTimeType date, CodeableConcept type, Enumeration<CompositionStatus> status, Reference subject) {
public Composition(DateTimeType date, CodeableConcept type, StringType title, Enumeration<CompositionStatus> status, Reference subject) {
super();
this.date = date;
this.type = type;
this.title = title;
this.status = status;
this.subject = subject;
}
@ -1403,13 +1390,9 @@ public class Composition extends DomainResource {
* @param value Official human-readable label for the composition.
*/
public Composition setTitle(String value) {
if (Utilities.noString(value))
this.title = null;
else {
if (this.title == null)
this.title = new StringType();
this.title.setValue(value);
}
return this;
}
@ -1931,7 +1914,7 @@ public class Composition extends DomainResource {
public static final String SP_CONTEXT = "context";
@SearchParamDefinition(name="class", path="Composition.class", description="Categorization of Composition", type="token" )
public static final String SP_CLASS = "class";
@SearchParamDefinition(name="status", path="Composition.status", description="preliminary | final | appended | amended | entered-in-error", type="token" )
@SearchParamDefinition(name="status", path="Composition.status", description="preliminary | final | amended | entered-in-error", type="token" )
public static final String SP_STATUS = "status";
}

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;

View File

@ -29,12 +29,12 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
public class Constants {
public final static String VERSION = "0.5.0";
public final static String REVISION = "6166";
public final static String DATE = "Fri Aug 07 07:14:05 EDT 2015";
public final static String REVISION = "6313";
public final static String DATE = "Thu Aug 13 16:43:28 EDT 2015";
}

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;
@ -235,9 +235,9 @@ public class Contract extends DomainResource {
/**
* Specifies the units by which the Contract Valued Item is measured or counted, and quantifies the countable or measurable Contract Valued Item instances.
*/
@Child(name = "quantity", type = {Quantity.class}, order=4, min=0, max=1)
@Child(name = "quantity", type = {SimpleQuantity.class}, order=4, min=0, max=1)
@Description(shortDefinition="Count of Contract Valued Items", formalDefinition="Specifies the units by which the Contract Valued Item is measured or counted, and quantifies the countable or measurable Contract Valued Item instances." )
protected Quantity quantity;
protected SimpleQuantity quantity;
/**
* A Contract Valued Item unit valuation measure.
@ -267,7 +267,7 @@ public class Contract extends DomainResource {
@Description(shortDefinition="Total Contract Valued Item Value", formalDefinition="Expresses the product of the Contract Valued Item unitQuantity and the unitPriceAmt. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied." )
protected Money net;
private static final long serialVersionUID = 1311183770L;
private static final long serialVersionUID = 1782449516L;
/*
* Constructor
@ -397,12 +397,12 @@ public class Contract extends DomainResource {
/**
* @return {@link #quantity} (Specifies the units by which the Contract Valued Item is measured or counted, and quantifies the countable or measurable Contract Valued Item instances.)
*/
public Quantity getQuantity() {
public SimpleQuantity getQuantity() {
if (this.quantity == null)
if (Configuration.errorOnAutoCreate())
throw new Error("Attempt to auto-create ValuedItemComponent.quantity");
else if (Configuration.doAutoCreate())
this.quantity = new Quantity(); // cc
this.quantity = new SimpleQuantity(); // cc
return this.quantity;
}
@ -413,7 +413,7 @@ public class Contract extends DomainResource {
/**
* @param value {@link #quantity} (Specifies the units by which the Contract Valued Item is measured or counted, and quantifies the countable or measurable Contract Valued Item instances.)
*/
public ValuedItemComponent setQuantity(Quantity value) {
public ValuedItemComponent setQuantity(SimpleQuantity value) {
this.quantity = value;
return this;
}
@ -569,7 +569,7 @@ public class Contract extends DomainResource {
childrenList.add(new Property("entity[x]", "CodeableConcept|Reference(Any)", "Specific type of Contract Valued Item that may be priced.", 0, java.lang.Integer.MAX_VALUE, entity));
childrenList.add(new Property("identifier", "Identifier", "Identifies a Contract Valued Item instance.", 0, java.lang.Integer.MAX_VALUE, identifier));
childrenList.add(new Property("effectiveTime", "dateTime", "Indicates the time during which this Contract ValuedItem information is effective.", 0, java.lang.Integer.MAX_VALUE, effectiveTime));
childrenList.add(new Property("quantity", "Quantity", "Specifies the units by which the Contract Valued Item is measured or counted, and quantifies the countable or measurable Contract Valued Item instances.", 0, java.lang.Integer.MAX_VALUE, quantity));
childrenList.add(new Property("quantity", "SimpleQuantity", "Specifies the units by which the Contract Valued Item is measured or counted, and quantifies the countable or measurable Contract Valued Item instances.", 0, java.lang.Integer.MAX_VALUE, quantity));
childrenList.add(new Property("unitPrice", "Money", "A Contract Valued Item unit valuation measure.", 0, java.lang.Integer.MAX_VALUE, unitPrice));
childrenList.add(new Property("factor", "decimal", "A real number that represents a multiplier used in determining the overall value of the Contract Valued Item delivered. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.", 0, java.lang.Integer.MAX_VALUE, factor));
childrenList.add(new Property("points", "decimal", "An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the Contract Valued Item delivered. The concept of Points allows for assignment of point values for a Contract Valued Item, such that a monetary amount can be assigned to each point.", 0, java.lang.Integer.MAX_VALUE, points));
@ -1630,9 +1630,9 @@ public class Contract extends DomainResource {
/**
* Specifies the units by which the Contract Provision Valued Item is measured or counted, and quantifies the countable or measurable Contract Term Valued Item instances.
*/
@Child(name = "quantity", type = {Quantity.class}, order=4, min=0, max=1)
@Child(name = "quantity", type = {SimpleQuantity.class}, order=4, min=0, max=1)
@Description(shortDefinition="Contract Term Valued Item Count", formalDefinition="Specifies the units by which the Contract Provision Valued Item is measured or counted, and quantifies the countable or measurable Contract Term Valued Item instances." )
protected Quantity quantity;
protected SimpleQuantity quantity;
/**
* A Contract Provision Valued Item unit valuation measure.
@ -1662,7 +1662,7 @@ public class Contract extends DomainResource {
@Description(shortDefinition="Total Contract Term Valued Item Value", formalDefinition="Expresses the product of the Contract Provision Valued Item unitQuantity and the unitPriceAmt. For example, the formula: unit Quantity * unit Price (Cost per Point) * factor Number * points = net Amount. Quantity, factor and points are assumed to be 1 if not supplied." )
protected Money net;
private static final long serialVersionUID = 1311183770L;
private static final long serialVersionUID = 1782449516L;
/*
* Constructor
@ -1792,12 +1792,12 @@ public class Contract extends DomainResource {
/**
* @return {@link #quantity} (Specifies the units by which the Contract Provision Valued Item is measured or counted, and quantifies the countable or measurable Contract Term Valued Item instances.)
*/
public Quantity getQuantity() {
public SimpleQuantity getQuantity() {
if (this.quantity == null)
if (Configuration.errorOnAutoCreate())
throw new Error("Attempt to auto-create TermValuedItemComponent.quantity");
else if (Configuration.doAutoCreate())
this.quantity = new Quantity(); // cc
this.quantity = new SimpleQuantity(); // cc
return this.quantity;
}
@ -1808,7 +1808,7 @@ public class Contract extends DomainResource {
/**
* @param value {@link #quantity} (Specifies the units by which the Contract Provision Valued Item is measured or counted, and quantifies the countable or measurable Contract Term Valued Item instances.)
*/
public TermValuedItemComponent setQuantity(Quantity value) {
public TermValuedItemComponent setQuantity(SimpleQuantity value) {
this.quantity = value;
return this;
}
@ -1964,7 +1964,7 @@ public class Contract extends DomainResource {
childrenList.add(new Property("entity[x]", "CodeableConcept|Reference(Any)", "Specific type of Contract Provision Valued Item that may be priced.", 0, java.lang.Integer.MAX_VALUE, entity));
childrenList.add(new Property("identifier", "Identifier", "Identifies a Contract Provision Valued Item instance.", 0, java.lang.Integer.MAX_VALUE, identifier));
childrenList.add(new Property("effectiveTime", "dateTime", "Indicates the time during which this Contract Term ValuedItem information is effective.", 0, java.lang.Integer.MAX_VALUE, effectiveTime));
childrenList.add(new Property("quantity", "Quantity", "Specifies the units by which the Contract Provision Valued Item is measured or counted, and quantifies the countable or measurable Contract Term Valued Item instances.", 0, java.lang.Integer.MAX_VALUE, quantity));
childrenList.add(new Property("quantity", "SimpleQuantity", "Specifies the units by which the Contract Provision Valued Item is measured or counted, and quantifies the countable or measurable Contract Term Valued Item instances.", 0, java.lang.Integer.MAX_VALUE, quantity));
childrenList.add(new Property("unitPrice", "Money", "A Contract Provision Valued Item unit valuation measure.", 0, java.lang.Integer.MAX_VALUE, unitPrice));
childrenList.add(new Property("factor", "decimal", "A real number that represents a multiplier used in determining the overall value of the Contract Provision Valued Item delivered. The concept of a Factor allows for a discount or surcharge multiplier to be applied to a monetary amount.", 0, java.lang.Integer.MAX_VALUE, factor));
childrenList.add(new Property("points", "decimal", "An amount that expresses the weighting (based on difficulty, cost and/or resource intensiveness) associated with the Contract Provision Valued Item delivered. The concept of Points allows for assignment of point values for a Contract ProvisionValued Item, such that a monetary amount can be assigned to each point.", 0, java.lang.Integer.MAX_VALUE, points));

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import org.hl7.fhir.instance.model.annotations.DatatypeDef;
import org.hl7.fhir.instance.model.annotations.Block;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;
@ -222,14 +222,14 @@ public class Device extends DomainResource {
protected Organization ownerTarget;
/**
* The resource may be found in a literal location (i.e. GPS coordinates), a logical place (i.e. "in/with the patient"), or a coded location.
* The place where the device can be found.
*/
@Child(name = "location", type = {Location.class}, order=12, min=0, max=1)
@Description(shortDefinition="Where the resource is found", formalDefinition="The resource may be found in a literal location (i.e. GPS coordinates), a logical place (i.e. 'in/with the patient'), or a coded location." )
@Description(shortDefinition="Where the resource is found", formalDefinition="The place where the device can be found." )
protected Reference location;
/**
* The actual object that is the target of the reference (The resource may be found in a literal location (i.e. GPS coordinates), a logical place (i.e. "in/with the patient"), or a coded location.)
* The actual object that is the target of the reference (The place where the device can be found.)
*/
protected Location locationTarget;
@ -817,7 +817,7 @@ public class Device extends DomainResource {
}
/**
* @return {@link #location} (The resource may be found in a literal location (i.e. GPS coordinates), a logical place (i.e. "in/with the patient"), or a coded location.)
* @return {@link #location} (The place where the device can be found.)
*/
public Reference getLocation() {
if (this.location == null)
@ -833,7 +833,7 @@ public class Device extends DomainResource {
}
/**
* @param value {@link #location} (The resource may be found in a literal location (i.e. GPS coordinates), a logical place (i.e. "in/with the patient"), or a coded location.)
* @param value {@link #location} (The place where the device can be found.)
*/
public Device setLocation(Reference value) {
this.location = value;
@ -841,7 +841,7 @@ public class Device extends DomainResource {
}
/**
* @return {@link #location} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The resource may be found in a literal location (i.e. GPS coordinates), a logical place (i.e. "in/with the patient"), or a coded location.)
* @return {@link #location} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The place where the device can be found.)
*/
public Location getLocationTarget() {
if (this.locationTarget == null)
@ -853,7 +853,7 @@ public class Device extends DomainResource {
}
/**
* @param value {@link #location} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The resource may be found in a literal location (i.e. GPS coordinates), a logical place (i.e. "in/with the patient"), or a coded location.)
* @param value {@link #location} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The place where the device can be found.)
*/
public Device setLocationTarget(Location value) {
this.locationTarget = value;
@ -1007,7 +1007,7 @@ public class Device extends DomainResource {
childrenList.add(new Property("udi", "string", "United States Food and Drug Administration mandated Unique Device Identifier (UDI). Use the human readable information (the content that the user sees, which is sometimes different to the exact syntax represented in the barcode) - see http://www.fda.gov/MedicalDevices/DeviceRegulationandGuidance/UniqueDeviceIdentification/default.htm.", 0, java.lang.Integer.MAX_VALUE, udi));
childrenList.add(new Property("lotNumber", "string", "Lot number assigned by the manufacturer.", 0, java.lang.Integer.MAX_VALUE, lotNumber));
childrenList.add(new Property("owner", "Reference(Organization)", "An organization that is responsible for the provision and ongoing maintenance of the device.", 0, java.lang.Integer.MAX_VALUE, owner));
childrenList.add(new Property("location", "Reference(Location)", "The resource may be found in a literal location (i.e. GPS coordinates), a logical place (i.e. 'in/with the patient'), or a coded location.", 0, java.lang.Integer.MAX_VALUE, location));
childrenList.add(new Property("location", "Reference(Location)", "The place where the device can be found.", 0, java.lang.Integer.MAX_VALUE, location));
childrenList.add(new Property("patient", "Reference(Patient)", "Patient information, if the resource is affixed to a person.", 0, java.lang.Integer.MAX_VALUE, patient));
childrenList.add(new Property("contact", "ContactPoint", "Contact details for an organization or a particular human that is responsible for the device.", 0, java.lang.Integer.MAX_VALUE, contact));
childrenList.add(new Property("url", "uri", "A network address on which the device may be contacted directly.", 0, java.lang.Integer.MAX_VALUE, url));

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;
@ -439,15 +439,15 @@ public class DiagnosticReport extends DomainResource {
protected Resource performerTarget;
/**
* Details concerning a test requested.
* Details concerning a test or procedure requested.
*/
@Child(name = "requestDetail", type = {DiagnosticOrder.class}, order=9, min=0, max=Child.MAX_UNLIMITED)
@Description(shortDefinition="What was requested", formalDefinition="Details concerning a test requested." )
protected List<Reference> requestDetail;
@Child(name = "request", type = {DiagnosticOrder.class, ProcedureRequest.class, ReferralRequest.class}, order=9, min=0, max=Child.MAX_UNLIMITED)
@Description(shortDefinition="What was requested", formalDefinition="Details concerning a test or procedure requested." )
protected List<Reference> request;
/**
* The actual objects that are the target of the reference (Details concerning a test requested.)
* The actual objects that are the target of the reference (Details concerning a test or procedure requested.)
*/
protected List<DiagnosticOrder> requestDetailTarget;
protected List<Resource> requestTarget;
/**
@ -514,7 +514,7 @@ public class DiagnosticReport extends DomainResource {
@Description(shortDefinition="Entire Report as issued", formalDefinition="Rich text representation of the entire result as issued by the diagnostic service. Multiple formats are allowed but they SHALL be semantically equivalent." )
protected List<Attachment> presentedForm;
private static final long serialVersionUID = 488621746L;
private static final long serialVersionUID = 920334551L;
/*
* Constructor
@ -882,64 +882,52 @@ public class DiagnosticReport extends DomainResource {
}
/**
* @return {@link #requestDetail} (Details concerning a test requested.)
* @return {@link #request} (Details concerning a test or procedure requested.)
*/
public List<Reference> getRequestDetail() {
if (this.requestDetail == null)
this.requestDetail = new ArrayList<Reference>();
return this.requestDetail;
public List<Reference> getRequest() {
if (this.request == null)
this.request = new ArrayList<Reference>();
return this.request;
}
public boolean hasRequestDetail() {
if (this.requestDetail == null)
public boolean hasRequest() {
if (this.request == null)
return false;
for (Reference item : this.requestDetail)
for (Reference item : this.request)
if (!item.isEmpty())
return true;
return false;
}
/**
* @return {@link #requestDetail} (Details concerning a test requested.)
* @return {@link #request} (Details concerning a test or procedure requested.)
*/
// syntactic sugar
public Reference addRequestDetail() { //3
public Reference addRequest() { //3
Reference t = new Reference();
if (this.requestDetail == null)
this.requestDetail = new ArrayList<Reference>();
this.requestDetail.add(t);
if (this.request == null)
this.request = new ArrayList<Reference>();
this.request.add(t);
return t;
}
// syntactic sugar
public DiagnosticReport addRequestDetail(Reference t) { //3
public DiagnosticReport addRequest(Reference t) { //3
if (t == null)
return this;
if (this.requestDetail == null)
this.requestDetail = new ArrayList<Reference>();
this.requestDetail.add(t);
if (this.request == null)
this.request = new ArrayList<Reference>();
this.request.add(t);
return this;
}
/**
* @return {@link #requestDetail} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Details concerning a test requested.)
* @return {@link #request} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Details concerning a test or procedure requested.)
*/
public List<DiagnosticOrder> getRequestDetailTarget() {
if (this.requestDetailTarget == null)
this.requestDetailTarget = new ArrayList<DiagnosticOrder>();
return this.requestDetailTarget;
}
// syntactic sugar
/**
* @return {@link #requestDetail} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. Details concerning a test requested.)
*/
public DiagnosticOrder addRequestDetailTarget() {
DiagnosticOrder r = new DiagnosticOrder();
if (this.requestDetailTarget == null)
this.requestDetailTarget = new ArrayList<DiagnosticOrder>();
this.requestDetailTarget.add(r);
return r;
public List<Resource> getRequestTarget() {
if (this.requestTarget == null)
this.requestTarget = new ArrayList<Resource>();
return this.requestTarget;
}
/**
@ -1293,7 +1281,7 @@ public class DiagnosticReport extends DomainResource {
childrenList.add(new Property("effective[x]", "dateTime|Period", "The time or time-period the observed values are related to. When the subject of the report is a patient, this is usually either the time of the procedure or of specimen collection(s), but very often the source of the date/time is not known, only the date/time itself.", 0, java.lang.Integer.MAX_VALUE, effective));
childrenList.add(new Property("issued", "instant", "The date and time that this version of the report was released from the source diagnostic service.", 0, java.lang.Integer.MAX_VALUE, issued));
childrenList.add(new Property("performer", "Reference(Practitioner|Organization)", "The diagnostic service that is responsible for issuing the report.", 0, java.lang.Integer.MAX_VALUE, performer));
childrenList.add(new Property("requestDetail", "Reference(DiagnosticOrder)", "Details concerning a test requested.", 0, java.lang.Integer.MAX_VALUE, requestDetail));
childrenList.add(new Property("request", "Reference(DiagnosticOrder|ProcedureRequest|ReferralRequest)", "Details concerning a test or procedure requested.", 0, java.lang.Integer.MAX_VALUE, request));
childrenList.add(new Property("specimen", "Reference(Specimen)", "Details about the specimens on which this diagnostic report is based.", 0, java.lang.Integer.MAX_VALUE, specimen));
childrenList.add(new Property("result", "Reference(Observation)", "Observations that are part of this diagnostic report. Observations can be simple name/value pairs (e.g. 'atomic' results), or they can be grouping observations that include references to other members of the group (e.g. 'panels').", 0, java.lang.Integer.MAX_VALUE, result));
childrenList.add(new Property("imagingStudy", "Reference(ImagingStudy|ImagingObjectSelection)", "One or more links to full details of any imaging performed during the diagnostic investigation. Typically, this is imaging performed by DICOM enabled modalities, but this is not required. A fully enabled PACS viewer can use this information to provide views of the source images.", 0, java.lang.Integer.MAX_VALUE, imagingStudy));
@ -1319,10 +1307,10 @@ public class DiagnosticReport extends DomainResource {
dst.effective = effective == null ? null : effective.copy();
dst.issued = issued == null ? null : issued.copy();
dst.performer = performer == null ? null : performer.copy();
if (requestDetail != null) {
dst.requestDetail = new ArrayList<Reference>();
for (Reference i : requestDetail)
dst.requestDetail.add(i.copy());
if (request != null) {
dst.request = new ArrayList<Reference>();
for (Reference i : request)
dst.request.add(i.copy());
};
if (specimen != null) {
dst.specimen = new ArrayList<Reference>();
@ -1372,10 +1360,10 @@ public class DiagnosticReport extends DomainResource {
return compareDeep(identifier, o.identifier, true) && compareDeep(status, o.status, true) && compareDeep(category, o.category, true)
&& compareDeep(code, o.code, true) && compareDeep(subject, o.subject, true) && compareDeep(encounter, o.encounter, true)
&& compareDeep(effective, o.effective, true) && compareDeep(issued, o.issued, true) && compareDeep(performer, o.performer, true)
&& compareDeep(requestDetail, o.requestDetail, true) && compareDeep(specimen, o.specimen, true)
&& compareDeep(result, o.result, true) && compareDeep(imagingStudy, o.imagingStudy, true) && compareDeep(image, o.image, true)
&& compareDeep(conclusion, o.conclusion, true) && compareDeep(codedDiagnosis, o.codedDiagnosis, true)
&& compareDeep(presentedForm, o.presentedForm, true);
&& compareDeep(request, o.request, true) && compareDeep(specimen, o.specimen, true) && compareDeep(result, o.result, true)
&& compareDeep(imagingStudy, o.imagingStudy, true) && compareDeep(image, o.image, true) && compareDeep(conclusion, o.conclusion, true)
&& compareDeep(codedDiagnosis, o.codedDiagnosis, true) && compareDeep(presentedForm, o.presentedForm, true)
;
}
@Override
@ -1393,7 +1381,7 @@ public class DiagnosticReport extends DomainResource {
return super.isEmpty() && (identifier == null || identifier.isEmpty()) && (status == null || status.isEmpty())
&& (category == null || category.isEmpty()) && (code == null || code.isEmpty()) && (subject == null || subject.isEmpty())
&& (encounter == null || encounter.isEmpty()) && (effective == null || effective.isEmpty())
&& (issued == null || issued.isEmpty()) && (performer == null || performer.isEmpty()) && (requestDetail == null || requestDetail.isEmpty())
&& (issued == null || issued.isEmpty()) && (performer == null || performer.isEmpty()) && (request == null || request.isEmpty())
&& (specimen == null || specimen.isEmpty()) && (result == null || result.isEmpty()) && (imagingStudy == null || imagingStudy.isEmpty())
&& (image == null || image.isEmpty()) && (conclusion == null || conclusion.isEmpty()) && (codedDiagnosis == null || codedDiagnosis.isEmpty())
&& (presentedForm == null || presentedForm.isEmpty());
@ -1408,9 +1396,9 @@ public class DiagnosticReport extends DomainResource {
public static final String SP_DATE = "date";
@SearchParamDefinition(name="identifier", path="DiagnosticReport.identifier", description="An identifier for the report", type="token" )
public static final String SP_IDENTIFIER = "identifier";
@SearchParamDefinition(name="image", path="DiagnosticReport.image.link", description="Reference to the image source", type="reference" )
@SearchParamDefinition(name="image", path="DiagnosticReport.image.link", description="A reference to the image source.", type="reference" )
public static final String SP_IMAGE = "image";
@SearchParamDefinition(name="request", path="DiagnosticReport.requestDetail", description="What was requested", type="reference" )
@SearchParamDefinition(name="request", path="DiagnosticReport.request", description="Reference to the test or procedure request.", type="reference" )
public static final String SP_REQUEST = "request";
@SearchParamDefinition(name="performer", path="DiagnosticReport.performer", description="Who was the source of the report (organization)", type="reference" )
public static final String SP_PERFORMER = "performer";

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import org.hl7.fhir.instance.model.annotations.DatatypeDef;
import org.hl7.fhir.instance.model.annotations.Block;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;
@ -50,10 +50,10 @@ public class DocumentManifest extends DomainResource {
@Block()
public static class DocumentManifestContentComponent extends BackboneElement implements IBaseBackboneElement {
/**
* The list of DocumentReference or Media Resources, or Attachment that consist of the parts of this document manifest. Usually, these would be document references, but direct references to Media or Attachments are also allowed.
* The list of references to document content, or Attachment that consist of the parts of this document manifest. Usually, these would be document references, but direct references to Media or Attachments are also allowed.
*/
@Child(name = "p", type = {Attachment.class, DocumentReference.class, Media.class}, order=1, min=1, max=1)
@Description(shortDefinition="Contents of this set of documents", formalDefinition="The list of DocumentReference or Media Resources, or Attachment that consist of the parts of this document manifest. Usually, these would be document references, but direct references to Media or Attachments are also allowed." )
@Description(shortDefinition="Contents of this set of documents", formalDefinition="The list of references to document content, or Attachment that consist of the parts of this document manifest. Usually, these would be document references, but direct references to Media or Attachments are also allowed." )
protected Type p;
private static final long serialVersionUID = -347538500L;
@ -74,14 +74,14 @@ public class DocumentManifest extends DomainResource {
}
/**
* @return {@link #p} (The list of DocumentReference or Media Resources, or Attachment that consist of the parts of this document manifest. Usually, these would be document references, but direct references to Media or Attachments are also allowed.)
* @return {@link #p} (The list of references to document content, or Attachment that consist of the parts of this document manifest. Usually, these would be document references, but direct references to Media or Attachments are also allowed.)
*/
public Type getP() {
return this.p;
}
/**
* @return {@link #p} (The list of DocumentReference or Media Resources, or Attachment that consist of the parts of this document manifest. Usually, these would be document references, but direct references to Media or Attachments are also allowed.)
* @return {@link #p} (The list of references to document content, or Attachment that consist of the parts of this document manifest. Usually, these would be document references, but direct references to Media or Attachments are also allowed.)
*/
public Attachment getPAttachment() throws Exception {
if (!(this.p instanceof Attachment))
@ -94,7 +94,7 @@ public class DocumentManifest extends DomainResource {
}
/**
* @return {@link #p} (The list of DocumentReference or Media Resources, or Attachment that consist of the parts of this document manifest. Usually, these would be document references, but direct references to Media or Attachments are also allowed.)
* @return {@link #p} (The list of references to document content, or Attachment that consist of the parts of this document manifest. Usually, these would be document references, but direct references to Media or Attachments are also allowed.)
*/
public Reference getPReference() throws Exception {
if (!(this.p instanceof Reference))
@ -111,7 +111,7 @@ public class DocumentManifest extends DomainResource {
}
/**
* @param value {@link #p} (The list of DocumentReference or Media Resources, or Attachment that consist of the parts of this document manifest. Usually, these would be document references, but direct references to Media or Attachments are also allowed.)
* @param value {@link #p} (The list of references to document content, or Attachment that consist of the parts of this document manifest. Usually, these would be document references, but direct references to Media or Attachments are also allowed.)
*/
public DocumentManifestContentComponent setP(Type value) {
this.p = value;
@ -120,7 +120,7 @@ public class DocumentManifest extends DomainResource {
protected void listChildren(List<Property> childrenList) {
super.listChildren(childrenList);
childrenList.add(new Property("p[x]", "Attachment|Reference(DocumentReference|Media)", "The list of DocumentReference or Media Resources, or Attachment that consist of the parts of this document manifest. Usually, these would be document references, but direct references to Media or Attachments are also allowed.", 0, java.lang.Integer.MAX_VALUE, p));
childrenList.add(new Property("p[x]", "Attachment|Reference(Any)", "The list of references to document content, or Attachment that consist of the parts of this document manifest. Usually, these would be document references, but direct references to Media or Attachments are also allowed.", 0, java.lang.Integer.MAX_VALUE, p));
}
public DocumentManifestContentComponent copy() {
@ -319,7 +319,7 @@ public class DocumentManifest extends DomainResource {
/**
* A patient, practitioner, or organization for which this set of documents is intended.
*/
@Child(name = "recipient", type = {Patient.class, Practitioner.class, Organization.class}, order=3, min=0, max=Child.MAX_UNLIMITED)
@Child(name = "recipient", type = {Patient.class, Practitioner.class, RelatedPerson.class, Organization.class}, order=3, min=0, max=Child.MAX_UNLIMITED)
@Description(shortDefinition="Intended to get notified about this set of documents", formalDefinition="A patient, practitioner, or organization for which this set of documents is intended." )
protected List<Reference> recipient;
/**
@ -336,13 +336,13 @@ public class DocumentManifest extends DomainResource {
protected CodeableConcept type;
/**
* Identifies who is responsible for adding the information to the document.
* Identifies who is responsible for creating the manifest, and adding documents to it.
*/
@Child(name = "author", type = {Practitioner.class, Organization.class, Device.class, Patient.class, RelatedPerson.class}, order=5, min=0, max=Child.MAX_UNLIMITED)
@Description(shortDefinition="Who and/or what authored the document", formalDefinition="Identifies who is responsible for adding the information to the document." )
@Description(shortDefinition="Who and/or what authored the manifest", formalDefinition="Identifies who is responsible for creating the manifest, and adding documents to it." )
protected List<Reference> author;
/**
* The actual objects that are the target of the reference (Identifies who is responsible for adding the information to the document.)
* The actual objects that are the target of the reference (Identifies who is responsible for creating the manifest, and adding documents to it.)
*/
protected List<Resource> authorTarget;
@ -583,7 +583,7 @@ public class DocumentManifest extends DomainResource {
}
/**
* @return {@link #author} (Identifies who is responsible for adding the information to the document.)
* @return {@link #author} (Identifies who is responsible for creating the manifest, and adding documents to it.)
*/
public List<Reference> getAuthor() {
if (this.author == null)
@ -601,7 +601,7 @@ public class DocumentManifest extends DomainResource {
}
/**
* @return {@link #author} (Identifies who is responsible for adding the information to the document.)
* @return {@link #author} (Identifies who is responsible for creating the manifest, and adding documents to it.)
*/
// syntactic sugar
public Reference addAuthor() { //3
@ -623,7 +623,7 @@ public class DocumentManifest extends DomainResource {
}
/**
* @return {@link #author} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Identifies who is responsible for adding the information to the document.)
* @return {@link #author} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Identifies who is responsible for creating the manifest, and adding documents to it.)
*/
public List<Resource> getAuthorTarget() {
if (this.authorTarget == null)
@ -908,9 +908,9 @@ public class DocumentManifest extends DomainResource {
childrenList.add(new Property("masterIdentifier", "Identifier", "A single identifier that uniquely identifies this manifest. Principally used to refer to the manifest in non-FHIR contexts.", 0, java.lang.Integer.MAX_VALUE, masterIdentifier));
childrenList.add(new Property("identifier", "Identifier", "Other identifiers associated with the document manifest, including version independent identifiers.", 0, java.lang.Integer.MAX_VALUE, identifier));
childrenList.add(new Property("subject", "Reference(Patient|Practitioner|Group|Device)", "Who or what the set of documents is about. The documents can be about a person, (patient or healthcare practitioner), a device (i.e. machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure). If the documents cross more than one subject, then more than one subject is allowed here (unusual use case).", 0, java.lang.Integer.MAX_VALUE, subject));
childrenList.add(new Property("recipient", "Reference(Patient|Practitioner|Organization)", "A patient, practitioner, or organization for which this set of documents is intended.", 0, java.lang.Integer.MAX_VALUE, recipient));
childrenList.add(new Property("recipient", "Reference(Patient|Practitioner|RelatedPerson|Organization)", "A patient, practitioner, or organization for which this set of documents is intended.", 0, java.lang.Integer.MAX_VALUE, recipient));
childrenList.add(new Property("type", "CodeableConcept", "Specifies the kind of this set of documents (e.g. Patient Summary, Discharge Summary, Prescription, etc.). The type of a set of documents may be the same as one of the documents in it - especially if there is only one - but it may be wider.", 0, java.lang.Integer.MAX_VALUE, type));
childrenList.add(new Property("author", "Reference(Practitioner|Organization|Device|Patient|RelatedPerson)", "Identifies who is responsible for adding the information to the document.", 0, java.lang.Integer.MAX_VALUE, author));
childrenList.add(new Property("author", "Reference(Practitioner|Organization|Device|Patient|RelatedPerson)", "Identifies who is responsible for creating the manifest, and adding documents to it.", 0, java.lang.Integer.MAX_VALUE, author));
childrenList.add(new Property("created", "dateTime", "When the document manifest was created for submission to the server (not necessarily the same thing as the actual resource last modified time, since it may be modified, replicated etc).", 0, java.lang.Integer.MAX_VALUE, created));
childrenList.add(new Property("source", "uri", "Identifies the source system, application, or software that produced the document manifest.", 0, java.lang.Integer.MAX_VALUE, source));
childrenList.add(new Property("status", "code", "The status of this document manifest.", 0, java.lang.Integer.MAX_VALUE, status));
@ -1003,7 +1003,7 @@ public class DocumentManifest extends DomainResource {
public static final String SP_IDENTIFIER = "identifier";
@SearchParamDefinition(name="subject", path="DocumentManifest.subject", description="The subject of the set of documents", type="reference" )
public static final String SP_SUBJECT = "subject";
@SearchParamDefinition(name="author", path="DocumentManifest.author", description="Who and/or what authored the document", type="reference" )
@SearchParamDefinition(name="author", path="DocumentManifest.author", description="Who and/or what authored the manifest", type="reference" )
public static final String SP_AUTHOR = "author";
@SearchParamDefinition(name="created", path="DocumentManifest.created", description="When this document manifest created", type="date" )
public static final String SP_CREATED = "created";

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;
@ -318,38 +318,50 @@ public class DocumentReference extends DomainResource {
@Block()
public static class DocumentReferenceContextComponent extends BackboneElement implements IBaseBackboneElement {
/**
* Describes the clinical encounter or type of care that the document content is associated with.
*/
@Child(name = "encounter", type = {Encounter.class}, order=1, min=0, max=1)
@Description(shortDefinition="Context of the document content", formalDefinition="Describes the clinical encounter or type of care that the document content is associated with." )
protected Reference encounter;
/**
* The actual object that is the target of the reference (Describes the clinical encounter or type of care that the document content is associated with.)
*/
protected Encounter encounterTarget;
/**
* This list of codes represents the main clinical acts, such as a colonoscopy or an appendectomy, being documented. In some cases, the event is inherent in the typeCode, such as a "History and Physical Report" in which the procedure being documented is necessarily a "History and Physical" act.
*/
@Child(name = "event", type = {CodeableConcept.class}, order=1, min=0, max=Child.MAX_UNLIMITED)
@Child(name = "event", type = {CodeableConcept.class}, order=2, min=0, max=Child.MAX_UNLIMITED)
@Description(shortDefinition="Main Clinical Acts Documented", formalDefinition="This list of codes represents the main clinical acts, such as a colonoscopy or an appendectomy, being documented. In some cases, the event is inherent in the typeCode, such as a 'History and Physical Report' in which the procedure being documented is necessarily a 'History and Physical' act." )
protected List<CodeableConcept> event;
/**
* The time period over which the service that is described by the document was provided.
*/
@Child(name = "period", type = {Period.class}, order=2, min=0, max=1)
@Child(name = "period", type = {Period.class}, order=3, min=0, max=1)
@Description(shortDefinition="Time of service that is being documented", formalDefinition="The time period over which the service that is described by the document was provided." )
protected Period period;
/**
* The kind of facility where the patient was seen.
*/
@Child(name = "facilityType", type = {CodeableConcept.class}, order=3, min=0, max=1)
@Child(name = "facilityType", type = {CodeableConcept.class}, order=4, min=0, max=1)
@Description(shortDefinition="Kind of facility where patient was seen", formalDefinition="The kind of facility where the patient was seen." )
protected CodeableConcept facilityType;
/**
* This property may convey specifics about the practice setting where the content was created, often reflecting the clinical specialty.
*/
@Child(name = "practiceSetting", type = {CodeableConcept.class}, order=4, min=0, max=1)
@Child(name = "practiceSetting", type = {CodeableConcept.class}, order=5, min=0, max=1)
@Description(shortDefinition="Additional details about where the content was created (e.g. clinical specialty)", formalDefinition="This property may convey specifics about the practice setting where the content was created, often reflecting the clinical specialty." )
protected CodeableConcept practiceSetting;
/**
* The Patient Information as known when the document was published. May be a reference to a version specific, or contained.
*/
@Child(name = "sourcePatientInfo", type = {Patient.class}, order=5, min=0, max=1)
@Child(name = "sourcePatientInfo", type = {Patient.class}, order=6, min=0, max=1)
@Description(shortDefinition="Source patient info", formalDefinition="The Patient Information as known when the document was published. May be a reference to a version specific, or contained." )
protected Reference sourcePatientInfo;
@ -361,11 +373,11 @@ public class DocumentReference extends DomainResource {
/**
* Related identifiers or resources associated with the DocumentReference.
*/
@Child(name = "related", type = {}, order=6, min=0, max=Child.MAX_UNLIMITED)
@Description(shortDefinition="Related things", formalDefinition="Related identifiers or resources associated with the DocumentReference." )
@Child(name = "related", type = {}, order=7, min=0, max=Child.MAX_UNLIMITED)
@Description(shortDefinition="Related identifiers or resources", formalDefinition="Related identifiers or resources associated with the DocumentReference." )
protected List<DocumentReferenceContextRelatedComponent> related;
private static final long serialVersionUID = -225578230L;
private static final long serialVersionUID = 994799273L;
/*
* Constructor
@ -374,6 +386,50 @@ public class DocumentReference extends DomainResource {
super();
}
/**
* @return {@link #encounter} (Describes the clinical encounter or type of care that the document content is associated with.)
*/
public Reference getEncounter() {
if (this.encounter == null)
if (Configuration.errorOnAutoCreate())
throw new Error("Attempt to auto-create DocumentReferenceContextComponent.encounter");
else if (Configuration.doAutoCreate())
this.encounter = new Reference(); // cc
return this.encounter;
}
public boolean hasEncounter() {
return this.encounter != null && !this.encounter.isEmpty();
}
/**
* @param value {@link #encounter} (Describes the clinical encounter or type of care that the document content is associated with.)
*/
public DocumentReferenceContextComponent setEncounter(Reference value) {
this.encounter = value;
return this;
}
/**
* @return {@link #encounter} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (Describes the clinical encounter or type of care that the document content is associated with.)
*/
public Encounter getEncounterTarget() {
if (this.encounterTarget == null)
if (Configuration.errorOnAutoCreate())
throw new Error("Attempt to auto-create DocumentReferenceContextComponent.encounter");
else if (Configuration.doAutoCreate())
this.encounterTarget = new Encounter(); // aa
return this.encounterTarget;
}
/**
* @param value {@link #encounter} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (Describes the clinical encounter or type of care that the document content is associated with.)
*/
public DocumentReferenceContextComponent setEncounterTarget(Encounter value) {
this.encounterTarget = value;
return this;
}
/**
* @return {@link #event} (This list of codes represents the main clinical acts, such as a colonoscopy or an appendectomy, being documented. In some cases, the event is inherent in the typeCode, such as a "History and Physical Report" in which the procedure being documented is necessarily a "History and Physical" act.)
*/
@ -572,6 +628,7 @@ public class DocumentReference extends DomainResource {
protected void listChildren(List<Property> childrenList) {
super.listChildren(childrenList);
childrenList.add(new Property("encounter", "Reference(Encounter)", "Describes the clinical encounter or type of care that the document content is associated with.", 0, java.lang.Integer.MAX_VALUE, encounter));
childrenList.add(new Property("event", "CodeableConcept", "This list of codes represents the main clinical acts, such as a colonoscopy or an appendectomy, being documented. In some cases, the event is inherent in the typeCode, such as a 'History and Physical Report' in which the procedure being documented is necessarily a 'History and Physical' act.", 0, java.lang.Integer.MAX_VALUE, event));
childrenList.add(new Property("period", "Period", "The time period over which the service that is described by the document was provided.", 0, java.lang.Integer.MAX_VALUE, period));
childrenList.add(new Property("facilityType", "CodeableConcept", "The kind of facility where the patient was seen.", 0, java.lang.Integer.MAX_VALUE, facilityType));
@ -583,6 +640,7 @@ public class DocumentReference extends DomainResource {
public DocumentReferenceContextComponent copy() {
DocumentReferenceContextComponent dst = new DocumentReferenceContextComponent();
copyValues(dst);
dst.encounter = encounter == null ? null : encounter.copy();
if (event != null) {
dst.event = new ArrayList<CodeableConcept>();
for (CodeableConcept i : event)
@ -607,9 +665,10 @@ public class DocumentReference extends DomainResource {
if (!(other instanceof DocumentReferenceContextComponent))
return false;
DocumentReferenceContextComponent o = (DocumentReferenceContextComponent) other;
return compareDeep(event, o.event, true) && compareDeep(period, o.period, true) && compareDeep(facilityType, o.facilityType, true)
&& compareDeep(practiceSetting, o.practiceSetting, true) && compareDeep(sourcePatientInfo, o.sourcePatientInfo, true)
&& compareDeep(related, o.related, true);
return compareDeep(encounter, o.encounter, true) && compareDeep(event, o.event, true) && compareDeep(period, o.period, true)
&& compareDeep(facilityType, o.facilityType, true) && compareDeep(practiceSetting, o.practiceSetting, true)
&& compareDeep(sourcePatientInfo, o.sourcePatientInfo, true) && compareDeep(related, o.related, true)
;
}
@Override
@ -623,10 +682,10 @@ public class DocumentReference extends DomainResource {
}
public boolean isEmpty() {
return super.isEmpty() && (event == null || event.isEmpty()) && (period == null || period.isEmpty())
&& (facilityType == null || facilityType.isEmpty()) && (practiceSetting == null || practiceSetting.isEmpty())
&& (sourcePatientInfo == null || sourcePatientInfo.isEmpty()) && (related == null || related.isEmpty())
;
return super.isEmpty() && (encounter == null || encounter.isEmpty()) && (event == null || event.isEmpty())
&& (period == null || period.isEmpty()) && (facilityType == null || facilityType.isEmpty())
&& (practiceSetting == null || practiceSetting.isEmpty()) && (sourcePatientInfo == null || sourcePatientInfo.isEmpty())
&& (related == null || related.isEmpty());
}
}
@ -808,14 +867,14 @@ public class DocumentReference extends DomainResource {
/**
* An identifier of the document encoding, structure, and template that the document conforms to beyond the base format indicated in the mimeType.
*/
@Child(name = "format", type = {UriType.class}, order=5, min=0, max=Child.MAX_UNLIMITED)
@Child(name = "format", type = {Coding.class}, order=5, min=0, max=Child.MAX_UNLIMITED)
@Description(shortDefinition="Format/content rules for the document", formalDefinition="An identifier of the document encoding, structure, and template that the document conforms to beyond the base format indicated in the mimeType." )
protected List<UriType> format;
protected List<Coding> format;
/**
* Identifies who is responsible for adding the information to the document.
*/
@Child(name = "author", type = {Practitioner.class, Organization.class, Device.class, Patient.class, RelatedPerson.class}, order=6, min=1, max=Child.MAX_UNLIMITED)
@Child(name = "author", type = {Practitioner.class, Organization.class, Device.class, Patient.class, RelatedPerson.class}, order=6, min=0, max=Child.MAX_UNLIMITED)
@Description(shortDefinition="Who and/or what authored the document", formalDefinition="Identifies who is responsible for adding the information to the document." )
protected List<Reference> author;
/**
@ -891,11 +950,11 @@ public class DocumentReference extends DomainResource {
protected StringType description;
/**
* A set of Security-Tag codes specifying the level of privacy/security of the Document.
* A set of Security-Tag codes specifying the level of privacy/security of the Document. Note that DocumentReference.meta.security is the security labels of the reference to the document, while DocumentReference.securityLabel is the security labels on the document it refers to.
*/
@Child(name = "confidentiality", type = {CodeableConcept.class}, order=15, min=0, max=Child.MAX_UNLIMITED)
@Description(shortDefinition="Document security-tags", formalDefinition="A set of Security-Tag codes specifying the level of privacy/security of the Document." )
protected List<CodeableConcept> confidentiality;
@Child(name = "securityLabel", type = {CodeableConcept.class}, order=15, min=0, max=Child.MAX_UNLIMITED)
@Description(shortDefinition="Document security-tags", formalDefinition="A set of Security-Tag codes specifying the level of privacy/security of the Document. Note that DocumentReference.meta.security is the security labels of the reference to the document, while DocumentReference.securityLabel is the security labels on the document it refers to." )
protected List<CodeableConcept> securityLabel;
/**
* The document or url to the document along with critical metadata to prove content has integrity.
@ -911,7 +970,7 @@ public class DocumentReference extends DomainResource {
@Description(shortDefinition="Clinical context of document", formalDefinition="The clinical context in which the document was prepared." )
protected DocumentReferenceContextComponent context;
private static final long serialVersionUID = 1440270142L;
private static final long serialVersionUID = 2074994054L;
/*
* Constructor
@ -1084,16 +1143,16 @@ public class DocumentReference extends DomainResource {
/**
* @return {@link #format} (An identifier of the document encoding, structure, and template that the document conforms to beyond the base format indicated in the mimeType.)
*/
public List<UriType> getFormat() {
public List<Coding> getFormat() {
if (this.format == null)
this.format = new ArrayList<UriType>();
this.format = new ArrayList<Coding>();
return this.format;
}
public boolean hasFormat() {
if (this.format == null)
return false;
for (UriType item : this.format)
for (Coding item : this.format)
if (!item.isEmpty())
return true;
return false;
@ -1103,38 +1162,24 @@ public class DocumentReference extends DomainResource {
* @return {@link #format} (An identifier of the document encoding, structure, and template that the document conforms to beyond the base format indicated in the mimeType.)
*/
// syntactic sugar
public UriType addFormatElement() {//2
UriType t = new UriType();
public Coding addFormat() { //3
Coding t = new Coding();
if (this.format == null)
this.format = new ArrayList<UriType>();
this.format = new ArrayList<Coding>();
this.format.add(t);
return t;
}
/**
* @param value {@link #format} (An identifier of the document encoding, structure, and template that the document conforms to beyond the base format indicated in the mimeType.)
*/
public DocumentReference addFormat(String value) { //1
UriType t = new UriType();
t.setValue(value);
// syntactic sugar
public DocumentReference addFormat(Coding t) { //3
if (t == null)
return this;
if (this.format == null)
this.format = new ArrayList<UriType>();
this.format = new ArrayList<Coding>();
this.format.add(t);
return this;
}
/**
* @param value {@link #format} (An identifier of the document encoding, structure, and template that the document conforms to beyond the base format indicated in the mimeType.)
*/
public boolean hasFormat(String value) {
if (this.format == null)
return false;
for (UriType v : this.format)
if (v.equals(value)) // uri
return true;
return false;
}
/**
* @return {@link #author} (Identifies who is responsible for adding the information to the document.)
*/
@ -1520,42 +1565,42 @@ public class DocumentReference extends DomainResource {
}
/**
* @return {@link #confidentiality} (A set of Security-Tag codes specifying the level of privacy/security of the Document.)
* @return {@link #securityLabel} (A set of Security-Tag codes specifying the level of privacy/security of the Document. Note that DocumentReference.meta.security is the security labels of the reference to the document, while DocumentReference.securityLabel is the security labels on the document it refers to.)
*/
public List<CodeableConcept> getConfidentiality() {
if (this.confidentiality == null)
this.confidentiality = new ArrayList<CodeableConcept>();
return this.confidentiality;
public List<CodeableConcept> getSecurityLabel() {
if (this.securityLabel == null)
this.securityLabel = new ArrayList<CodeableConcept>();
return this.securityLabel;
}
public boolean hasConfidentiality() {
if (this.confidentiality == null)
public boolean hasSecurityLabel() {
if (this.securityLabel == null)
return false;
for (CodeableConcept item : this.confidentiality)
for (CodeableConcept item : this.securityLabel)
if (!item.isEmpty())
return true;
return false;
}
/**
* @return {@link #confidentiality} (A set of Security-Tag codes specifying the level of privacy/security of the Document.)
* @return {@link #securityLabel} (A set of Security-Tag codes specifying the level of privacy/security of the Document. Note that DocumentReference.meta.security is the security labels of the reference to the document, while DocumentReference.securityLabel is the security labels on the document it refers to.)
*/
// syntactic sugar
public CodeableConcept addConfidentiality() { //3
public CodeableConcept addSecurityLabel() { //3
CodeableConcept t = new CodeableConcept();
if (this.confidentiality == null)
this.confidentiality = new ArrayList<CodeableConcept>();
this.confidentiality.add(t);
if (this.securityLabel == null)
this.securityLabel = new ArrayList<CodeableConcept>();
this.securityLabel.add(t);
return t;
}
// syntactic sugar
public DocumentReference addConfidentiality(CodeableConcept t) { //3
public DocumentReference addSecurityLabel(CodeableConcept t) { //3
if (t == null)
return this;
if (this.confidentiality == null)
this.confidentiality = new ArrayList<CodeableConcept>();
this.confidentiality.add(t);
if (this.securityLabel == null)
this.securityLabel = new ArrayList<CodeableConcept>();
this.securityLabel.add(t);
return this;
}
@ -1630,7 +1675,7 @@ public class DocumentReference extends DomainResource {
childrenList.add(new Property("subject", "Reference(Patient|Practitioner|Group|Device)", "Who or what the document is about. The document can be about a person, (patient or healthcare practitioner), a device (I.e. machine) or even a group of subjects (such as a document about a herd of farm animals, or a set of patients that share a common exposure).", 0, java.lang.Integer.MAX_VALUE, subject));
childrenList.add(new Property("type", "CodeableConcept", "Specifies the particular kind of document. This usually equates to the purpose of making the document. It is recommended that the value Set be drawn from a coding scheme providing a fine level of granularity such as LOINC. (e.g. Patient Summary, Discharge Summary, Prescription, etc.).", 0, java.lang.Integer.MAX_VALUE, type));
childrenList.add(new Property("class", "CodeableConcept", "A categorization for the type of document - helps for indexing and searching. This may be implied by or derived from the code specified in the Composition Type.", 0, java.lang.Integer.MAX_VALUE, class_));
childrenList.add(new Property("format", "uri", "An identifier of the document encoding, structure, and template that the document conforms to beyond the base format indicated in the mimeType.", 0, java.lang.Integer.MAX_VALUE, format));
childrenList.add(new Property("format", "Coding", "An identifier of the document encoding, structure, and template that the document conforms to beyond the base format indicated in the mimeType.", 0, java.lang.Integer.MAX_VALUE, format));
childrenList.add(new Property("author", "Reference(Practitioner|Organization|Device|Patient|RelatedPerson)", "Identifies who is responsible for adding the information to the document.", 0, java.lang.Integer.MAX_VALUE, author));
childrenList.add(new Property("custodian", "Reference(Organization)", "Identifies the organization or group who is responsible for ongoing maintenance of and access to the document.", 0, java.lang.Integer.MAX_VALUE, custodian));
childrenList.add(new Property("authenticator", "Reference(Practitioner|Organization)", "Which person or organization authenticates that this document is valid.", 0, java.lang.Integer.MAX_VALUE, authenticator));
@ -1640,7 +1685,7 @@ public class DocumentReference extends DomainResource {
childrenList.add(new Property("docStatus", "CodeableConcept", "The status of the underlying document.", 0, java.lang.Integer.MAX_VALUE, docStatus));
childrenList.add(new Property("relatesTo", "", "Relationships that this document has with other document references that already exist.", 0, java.lang.Integer.MAX_VALUE, relatesTo));
childrenList.add(new Property("description", "string", "Human-readable description of the source document. This is sometimes known as the 'title'.", 0, java.lang.Integer.MAX_VALUE, description));
childrenList.add(new Property("confidentiality", "CodeableConcept", "A set of Security-Tag codes specifying the level of privacy/security of the Document.", 0, java.lang.Integer.MAX_VALUE, confidentiality));
childrenList.add(new Property("securityLabel", "CodeableConcept", "A set of Security-Tag codes specifying the level of privacy/security of the Document. Note that DocumentReference.meta.security is the security labels of the reference to the document, while DocumentReference.securityLabel is the security labels on the document it refers to.", 0, java.lang.Integer.MAX_VALUE, securityLabel));
childrenList.add(new Property("content", "Attachment", "The document or url to the document along with critical metadata to prove content has integrity.", 0, java.lang.Integer.MAX_VALUE, content));
childrenList.add(new Property("context", "", "The clinical context in which the document was prepared.", 0, java.lang.Integer.MAX_VALUE, context));
}
@ -1658,8 +1703,8 @@ public class DocumentReference extends DomainResource {
dst.type = type == null ? null : type.copy();
dst.class_ = class_ == null ? null : class_.copy();
if (format != null) {
dst.format = new ArrayList<UriType>();
for (UriType i : format)
dst.format = new ArrayList<Coding>();
for (Coding i : format)
dst.format.add(i.copy());
};
if (author != null) {
@ -1679,10 +1724,10 @@ public class DocumentReference extends DomainResource {
dst.relatesTo.add(i.copy());
};
dst.description = description == null ? null : description.copy();
if (confidentiality != null) {
dst.confidentiality = new ArrayList<CodeableConcept>();
for (CodeableConcept i : confidentiality)
dst.confidentiality.add(i.copy());
if (securityLabel != null) {
dst.securityLabel = new ArrayList<CodeableConcept>();
for (CodeableConcept i : securityLabel)
dst.securityLabel.add(i.copy());
};
if (content != null) {
dst.content = new ArrayList<Attachment>();
@ -1709,7 +1754,7 @@ public class DocumentReference extends DomainResource {
&& compareDeep(format, o.format, true) && compareDeep(author, o.author, true) && compareDeep(custodian, o.custodian, true)
&& compareDeep(authenticator, o.authenticator, true) && compareDeep(created, o.created, true) && compareDeep(indexed, o.indexed, true)
&& compareDeep(status, o.status, true) && compareDeep(docStatus, o.docStatus, true) && compareDeep(relatesTo, o.relatesTo, true)
&& compareDeep(description, o.description, true) && compareDeep(confidentiality, o.confidentiality, true)
&& compareDeep(description, o.description, true) && compareDeep(securityLabel, o.securityLabel, true)
&& compareDeep(content, o.content, true) && compareDeep(context, o.context, true);
}
@ -1720,8 +1765,8 @@ public class DocumentReference extends DomainResource {
if (!(other instanceof DocumentReference))
return false;
DocumentReference o = (DocumentReference) other;
return compareValues(format, o.format, true) && compareValues(created, o.created, true) && compareValues(indexed, o.indexed, true)
&& compareValues(status, o.status, true) && compareValues(description, o.description, true);
return compareValues(created, o.created, true) && compareValues(indexed, o.indexed, true) && compareValues(status, o.status, true)
&& compareValues(description, o.description, true);
}
public boolean isEmpty() {
@ -1731,7 +1776,7 @@ public class DocumentReference extends DomainResource {
&& (authenticator == null || authenticator.isEmpty()) && (created == null || created.isEmpty())
&& (indexed == null || indexed.isEmpty()) && (status == null || status.isEmpty()) && (docStatus == null || docStatus.isEmpty())
&& (relatesTo == null || relatesTo.isEmpty()) && (description == null || description.isEmpty())
&& (confidentiality == null || confidentiality.isEmpty()) && (content == null || content.isEmpty())
&& (securityLabel == null || securityLabel.isEmpty()) && (content == null || content.isEmpty())
&& (context == null || context.isEmpty());
}
@ -1740,10 +1785,10 @@ public class DocumentReference extends DomainResource {
return ResourceType.DocumentReference;
}
@SearchParamDefinition(name="securitylabel", path="DocumentReference.securityLabel", description="Document security-tags", type="token" )
public static final String SP_SECURITYLABEL = "securitylabel";
@SearchParamDefinition(name="subject", path="DocumentReference.subject", description="Who|what is the subject of the document", type="reference" )
public static final String SP_SUBJECT = "subject";
@SearchParamDefinition(name="confidentiality", path="DocumentReference.confidentiality", description="Document security-tags", type="token" )
public static final String SP_CONFIDENTIALITY = "confidentiality";
@SearchParamDefinition(name="description", path="DocumentReference.description", description="Human-readable description (title)", type="string" )
public static final String SP_DESCRIPTION = "description";
@SearchParamDefinition(name="language", path="DocumentReference.content.language", description="Human language of the content (BCP-47)", type="token" )
@ -1778,10 +1823,12 @@ public class DocumentReference extends DomainResource {
public static final String SP_AUTHOR = "author";
@SearchParamDefinition(name="created", path="DocumentReference.created", description="Document creation time", type="date" )
public static final String SP_CREATED = "created";
@SearchParamDefinition(name="format", path="DocumentReference.format", description="Format/content rules for the document", type="uri" )
@SearchParamDefinition(name="format", path="DocumentReference.format", description="Format/content rules for the document", type="token" )
public static final String SP_FORMAT = "format";
@SearchParamDefinition(name="relatedref", path="DocumentReference.context.related.ref", description="Related Resource", type="reference" )
public static final String SP_RELATEDREF = "relatedref";
@SearchParamDefinition(name="encounter", path="DocumentReference.context.encounter", description="Context of the document content", type="reference" )
public static final String SP_ENCOUNTER = "encounter";
@SearchParamDefinition(name="location", path="DocumentReference.content.url", description="Uri where the data can be found", type="uri" )
public static final String SP_LOCATION = "location";
@SearchParamDefinition(name="relatesto", path="DocumentReference.relatesTo.target", description="Target of the relationship", type="reference" )

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import org.hl7.fhir.instance.model.annotations.DatatypeDef;
import org.hl7.fhir.instance.model.annotations.Block;

View File

@ -29,38 +29,20 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import org.apache.commons.lang3.Validate;
import java.util.*;
import org.hl7.fhir.utilities.Utilities;
import org.hl7.fhir.instance.model.annotations.Child;
import org.hl7.fhir.instance.model.annotations.Description;
import org.hl7.fhir.instance.model.api.IBaseHasExtensions;
import org.hl7.fhir.utilities.Utilities;
import org.hl7.fhir.instance.model.annotations.DatatypeDef;
import org.hl7.fhir.instance.model.annotations.Block;
import org.hl7.fhir.instance.model.api.*;
/**
* Base definition for all elements in a resource.
*/
public abstract class Element extends Base implements IBaseHasExtensions {
/**
* Returns an unmodifiable list containing all extensions on this element which
* match the given URL.
*
* @param theUrl The URL. Must not be blank or null.
* @return an unmodifiable list containing all extensions on this element which
* match the given URL
*/
public List<Extension> getExtensionsByUrl(String theUrl) {
Validate.notBlank(theUrl, "theUrl must not be blank or null");
ArrayList<Extension> retVal = new ArrayList<Extension>();
for (Extension next : getExtension()) {
if (theUrl.equals(next.getUrl())) {
retVal.add(next);
}
}
return Collections.unmodifiableList(retVal);
}
/**
* unique id for the element within a resource (for internal references).
@ -174,6 +156,24 @@ public abstract class Element extends Base implements IBaseHasExtensions {
return this;
}
/**
* Returns an unmodifiable list containing all extensions on this element which
* match the given URL.
*
* @param theUrl The URL. Must not be blank or null.
* @return an unmodifiable list containing all extensions on this element which
* match the given URL
*/
public List<Extension> getExtensionsByUrl(String theUrl) {
org.apache.commons.lang3.Validate.notBlank(theUrl, "theUrl must not be blank or null");
ArrayList<Extension> retVal = new ArrayList<Extension>();
for (Extension next : getExtension()) {
if (theUrl.equals(next.getUrl())) {
retVal.add(next);
}
}
return java.util.Collections.unmodifiableList(retVal);
}
protected void listChildren(List<Property> childrenList) {
childrenList.add(new Property("id", "id", "unique id for the element within a resource (for internal references).", 0, java.lang.Integer.MAX_VALUE, id));
childrenList.add(new Property("extension", "Extension", "May be used to represent additional information that is not part of the basic definition of the element. In order to make the use of extensions safe and manageable, there is a strict set of governance applied to the definition and use of extensions. Though any implementer is allowed to define an extension, there is a set of requirements that SHALL be met as part of the definition of the extension.", 0, java.lang.Integer.MAX_VALUE, extension));

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;
@ -1639,17 +1639,13 @@ public class Encounter extends DomainResource {
protected Patient patientTarget;
/**
* Where a specific encounter should be classified as a part of a specific episode(s) of care this field should be used. This association can facilitate grouping of related encounters together for a specific purpose, such as govt reporting, issue tracking, association via a common problem.
The association is recorded on the encounter as these are typically created after the episode of care, and grouped on entry rather than editing the episode of care to append another encounter to it (the episode of care could span years).
* Where a specific encounter should be classified as a part of a specific episode(s) of care this field should be used. This association can facilitate grouping of related encounters together for a specific purpose, such as govt reporting, issue tracking, association via a common problem. The association is recorded on the encounter as these are typically created after the episode of care, and grouped on entry rather than editing the episode of care to append another encounter to it (the episode of care could span years).
*/
@Child(name = "episodeOfCare", type = {EpisodeOfCare.class}, order=6, min=0, max=Child.MAX_UNLIMITED)
@Description(shortDefinition="Episode(s) of care that this encounter should be recorded against", formalDefinition="Where a specific encounter should be classified as a part of a specific episode(s) of care this field should be used. This association can facilitate grouping of related encounters together for a specific purpose, such as govt reporting, issue tracking, association via a common problem.\n\nThe association is recorded on the encounter as these are typically created after the episode of care, and grouped on entry rather than editing the episode of care to append another encounter to it (the episode of care could span years)." )
@Description(shortDefinition="Episode(s) of care that this encounter should be recorded against", formalDefinition="Where a specific encounter should be classified as a part of a specific episode(s) of care this field should be used. This association can facilitate grouping of related encounters together for a specific purpose, such as govt reporting, issue tracking, association via a common problem. The association is recorded on the encounter as these are typically created after the episode of care, and grouped on entry rather than editing the episode of care to append another encounter to it (the episode of care could span years)." )
protected List<Reference> episodeOfCare;
/**
* The actual objects that are the target of the reference (Where a specific encounter should be classified as a part of a specific episode(s) of care this field should be used. This association can facilitate grouping of related encounters together for a specific purpose, such as govt reporting, issue tracking, association via a common problem.
The association is recorded on the encounter as these are typically created after the episode of care, and grouped on entry rather than editing the episode of care to append another encounter to it (the episode of care could span years).)
* The actual objects that are the target of the reference (Where a specific encounter should be classified as a part of a specific episode(s) of care this field should be used. This association can facilitate grouping of related encounters together for a specific purpose, such as govt reporting, issue tracking, association via a common problem. The association is recorded on the encounter as these are typically created after the episode of care, and grouped on entry rather than editing the episode of care to append another encounter to it (the episode of care could span years).)
*/
protected List<EpisodeOfCare> episodeOfCareTarget;
@ -1707,15 +1703,13 @@ The association is recorded on the encounter as these are typically created afte
protected List<CodeableConcept> reason;
/**
* Reason the encounter takes place, as specified using information from another resource. For admissions, this is the admission diagnosis.
The indication will typically be a Condition (with other resources referenced in the evidence.detail), or a Procedure.
* Reason the encounter takes place, as specified using information from another resource. For admissions, this is the admission diagnosis. The indication will typically be a Condition (with other resources referenced in the evidence.detail), or a Procedure.
*/
@Child(name = "indication", type = {}, order=13, min=0, max=Child.MAX_UNLIMITED)
@Description(shortDefinition="Reason the encounter takes place (resource)", formalDefinition="Reason the encounter takes place, as specified using information from another resource. For admissions, this is the admission diagnosis.\nThe indication will typically be a Condition (with other resources referenced in the evidence.detail), or a Procedure." )
@Description(shortDefinition="Reason the encounter takes place (resource)", formalDefinition="Reason the encounter takes place, as specified using information from another resource. For admissions, this is the admission diagnosis. The indication will typically be a Condition (with other resources referenced in the evidence.detail), or a Procedure." )
protected List<Reference> indication;
/**
* The actual objects that are the target of the reference (Reason the encounter takes place, as specified using information from another resource. For admissions, this is the admission diagnosis.
The indication will typically be a Condition (with other resources referenced in the evidence.detail), or a Procedure.)
* The actual objects that are the target of the reference (Reason the encounter takes place, as specified using information from another resource. For admissions, this is the admission diagnosis. The indication will typically be a Condition (with other resources referenced in the evidence.detail), or a Procedure.)
*/
protected List<Resource> indicationTarget;
@ -2041,9 +2035,7 @@ The indication will typically be a Condition (with other resources referenced in
}
/**
* @return {@link #episodeOfCare} (Where a specific encounter should be classified as a part of a specific episode(s) of care this field should be used. This association can facilitate grouping of related encounters together for a specific purpose, such as govt reporting, issue tracking, association via a common problem.
The association is recorded on the encounter as these are typically created after the episode of care, and grouped on entry rather than editing the episode of care to append another encounter to it (the episode of care could span years).)
* @return {@link #episodeOfCare} (Where a specific encounter should be classified as a part of a specific episode(s) of care this field should be used. This association can facilitate grouping of related encounters together for a specific purpose, such as govt reporting, issue tracking, association via a common problem. The association is recorded on the encounter as these are typically created after the episode of care, and grouped on entry rather than editing the episode of care to append another encounter to it (the episode of care could span years).)
*/
public List<Reference> getEpisodeOfCare() {
if (this.episodeOfCare == null)
@ -2061,9 +2053,7 @@ The association is recorded on the encounter as these are typically created afte
}
/**
* @return {@link #episodeOfCare} (Where a specific encounter should be classified as a part of a specific episode(s) of care this field should be used. This association can facilitate grouping of related encounters together for a specific purpose, such as govt reporting, issue tracking, association via a common problem.
The association is recorded on the encounter as these are typically created after the episode of care, and grouped on entry rather than editing the episode of care to append another encounter to it (the episode of care could span years).)
* @return {@link #episodeOfCare} (Where a specific encounter should be classified as a part of a specific episode(s) of care this field should be used. This association can facilitate grouping of related encounters together for a specific purpose, such as govt reporting, issue tracking, association via a common problem. The association is recorded on the encounter as these are typically created after the episode of care, and grouped on entry rather than editing the episode of care to append another encounter to it (the episode of care could span years).)
*/
// syntactic sugar
public Reference addEpisodeOfCare() { //3
@ -2085,9 +2075,7 @@ The association is recorded on the encounter as these are typically created afte
}
/**
* @return {@link #episodeOfCare} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Where a specific encounter should be classified as a part of a specific episode(s) of care this field should be used. This association can facilitate grouping of related encounters together for a specific purpose, such as govt reporting, issue tracking, association via a common problem.
The association is recorded on the encounter as these are typically created after the episode of care, and grouped on entry rather than editing the episode of care to append another encounter to it (the episode of care could span years).)
* @return {@link #episodeOfCare} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Where a specific encounter should be classified as a part of a specific episode(s) of care this field should be used. This association can facilitate grouping of related encounters together for a specific purpose, such as govt reporting, issue tracking, association via a common problem. The association is recorded on the encounter as these are typically created after the episode of care, and grouped on entry rather than editing the episode of care to append another encounter to it (the episode of care could span years).)
*/
public List<EpisodeOfCare> getEpisodeOfCareTarget() {
if (this.episodeOfCareTarget == null)
@ -2097,9 +2085,7 @@ The association is recorded on the encounter as these are typically created afte
// syntactic sugar
/**
* @return {@link #episodeOfCare} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. Where a specific encounter should be classified as a part of a specific episode(s) of care this field should be used. This association can facilitate grouping of related encounters together for a specific purpose, such as govt reporting, issue tracking, association via a common problem.
The association is recorded on the encounter as these are typically created after the episode of care, and grouped on entry rather than editing the episode of care to append another encounter to it (the episode of care could span years).)
* @return {@link #episodeOfCare} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. Where a specific encounter should be classified as a part of a specific episode(s) of care this field should be used. This association can facilitate grouping of related encounters together for a specific purpose, such as govt reporting, issue tracking, association via a common problem. The association is recorded on the encounter as these are typically created after the episode of care, and grouped on entry rather than editing the episode of care to append another encounter to it (the episode of care could span years).)
*/
public EpisodeOfCare addEpisodeOfCareTarget() {
EpisodeOfCare r = new EpisodeOfCare();
@ -2343,8 +2329,7 @@ The association is recorded on the encounter as these are typically created afte
}
/**
* @return {@link #indication} (Reason the encounter takes place, as specified using information from another resource. For admissions, this is the admission diagnosis.
The indication will typically be a Condition (with other resources referenced in the evidence.detail), or a Procedure.)
* @return {@link #indication} (Reason the encounter takes place, as specified using information from another resource. For admissions, this is the admission diagnosis. The indication will typically be a Condition (with other resources referenced in the evidence.detail), or a Procedure.)
*/
public List<Reference> getIndication() {
if (this.indication == null)
@ -2362,8 +2347,7 @@ The indication will typically be a Condition (with other resources referenced in
}
/**
* @return {@link #indication} (Reason the encounter takes place, as specified using information from another resource. For admissions, this is the admission diagnosis.
The indication will typically be a Condition (with other resources referenced in the evidence.detail), or a Procedure.)
* @return {@link #indication} (Reason the encounter takes place, as specified using information from another resource. For admissions, this is the admission diagnosis. The indication will typically be a Condition (with other resources referenced in the evidence.detail), or a Procedure.)
*/
// syntactic sugar
public Reference addIndication() { //3
@ -2385,8 +2369,7 @@ The indication will typically be a Condition (with other resources referenced in
}
/**
* @return {@link #indication} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Reason the encounter takes place, as specified using information from another resource. For admissions, this is the admission diagnosis.
The indication will typically be a Condition (with other resources referenced in the evidence.detail), or a Procedure.)
* @return {@link #indication} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Reason the encounter takes place, as specified using information from another resource. For admissions, this is the admission diagnosis. The indication will typically be a Condition (with other resources referenced in the evidence.detail), or a Procedure.)
*/
public List<Resource> getIndicationTarget() {
if (this.indicationTarget == null)
@ -2578,14 +2561,14 @@ The indication will typically be a Condition (with other resources referenced in
childrenList.add(new Property("class", "code", "inpatient | outpatient | ambulatory | emergency +.", 0, java.lang.Integer.MAX_VALUE, class_));
childrenList.add(new Property("type", "CodeableConcept", "Specific type of encounter (e.g. e-mail consultation, surgical day-care, skilled nursing, rehabilitation).", 0, java.lang.Integer.MAX_VALUE, type));
childrenList.add(new Property("patient", "Reference(Patient)", "The patient present at the encounter.", 0, java.lang.Integer.MAX_VALUE, patient));
childrenList.add(new Property("episodeOfCare", "Reference(EpisodeOfCare)", "Where a specific encounter should be classified as a part of a specific episode(s) of care this field should be used. This association can facilitate grouping of related encounters together for a specific purpose, such as govt reporting, issue tracking, association via a common problem.\n\nThe association is recorded on the encounter as these are typically created after the episode of care, and grouped on entry rather than editing the episode of care to append another encounter to it (the episode of care could span years).", 0, java.lang.Integer.MAX_VALUE, episodeOfCare));
childrenList.add(new Property("episodeOfCare", "Reference(EpisodeOfCare)", "Where a specific encounter should be classified as a part of a specific episode(s) of care this field should be used. This association can facilitate grouping of related encounters together for a specific purpose, such as govt reporting, issue tracking, association via a common problem. The association is recorded on the encounter as these are typically created after the episode of care, and grouped on entry rather than editing the episode of care to append another encounter to it (the episode of care could span years).", 0, java.lang.Integer.MAX_VALUE, episodeOfCare));
childrenList.add(new Property("incomingReferralRequest", "Reference(ReferralRequest)", "The referral request that this encounter satisfies (incoming referral).", 0, java.lang.Integer.MAX_VALUE, incomingReferralRequest));
childrenList.add(new Property("participant", "", "The main practitioner responsible for providing the service.", 0, java.lang.Integer.MAX_VALUE, participant));
childrenList.add(new Property("fulfills", "Reference(Appointment)", "The appointment that scheduled this encounter.", 0, java.lang.Integer.MAX_VALUE, fulfills));
childrenList.add(new Property("period", "Period", "The start and end time of the encounter.", 0, java.lang.Integer.MAX_VALUE, period));
childrenList.add(new Property("length", "Duration", "Quantity of time the encounter lasted. This excludes the time during leaves of absence.", 0, java.lang.Integer.MAX_VALUE, length));
childrenList.add(new Property("reason", "CodeableConcept", "Reason the encounter takes place, expressed as a code. For admissions, this can be used for a coded admission diagnosis.", 0, java.lang.Integer.MAX_VALUE, reason));
childrenList.add(new Property("indication", "Reference(Any)", "Reason the encounter takes place, as specified using information from another resource. For admissions, this is the admission diagnosis.\nThe indication will typically be a Condition (with other resources referenced in the evidence.detail), or a Procedure.", 0, java.lang.Integer.MAX_VALUE, indication));
childrenList.add(new Property("indication", "Reference(Any)", "Reason the encounter takes place, as specified using information from another resource. For admissions, this is the admission diagnosis. The indication will typically be a Condition (with other resources referenced in the evidence.detail), or a Procedure.", 0, java.lang.Integer.MAX_VALUE, indication));
childrenList.add(new Property("priority", "CodeableConcept", "Indicates the urgency of the encounter.", 0, java.lang.Integer.MAX_VALUE, priority));
childrenList.add(new Property("hospitalization", "", "Details about an admission to a clinic.", 0, java.lang.Integer.MAX_VALUE, hospitalization));
childrenList.add(new Property("location", "", "List of locations at which the patient has been.", 0, java.lang.Integer.MAX_VALUE, location));

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import org.hl7.fhir.instance.model.api.*;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;
@ -2031,6 +2031,8 @@ public class HealthcareService extends DomainResource {
return ResourceType.HealthcareService;
}
@SearchParamDefinition(name="identifier", path="HealthcareService.identifier", description="External Identifiers for this item", type="token" )
public static final String SP_IDENTIFIER = "identifier";
@SearchParamDefinition(name="servicecategory", path="HealthcareService.serviceCategory", description="Service Category of the Healthcare Service", type="token" )
public static final String SP_SERVICECATEGORY = "servicecategory";
@SearchParamDefinition(name="servicetype", path="HealthcareService.serviceType.type", description="The type of service provided by this healthcare service", type="token" )

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;
@ -41,7 +41,7 @@ import org.hl7.fhir.instance.model.annotations.Description;
import org.hl7.fhir.instance.model.annotations.Block;
import org.hl7.fhir.instance.model.api.*;
/**
* A manifest of a set of DICOM Service-Object Pair Instances (SOP Instances). The referenced SOP Instances (images or other content) are for a single patient, and may be from one or more studies. The referenced SOP Instances have been selected for a purpose, such as quality assurance, conference, or consult. Reflecting that range of purposes, typical ImagingObjectSelection resources may include all SOP Instances in a study (perhaps for sharing through a Health Information Exchange); key images from multiple studies (for reference by a referring or treating physician); a multi-frame ultrasound instance (cine video clip) and a set of measurements taken from that instance (for inclusion in a teaching file); and so on.
* A manifest of a set of DICOM Service-Object Pair Instances (SOP Instances). The referenced SOP Instances (images or other content) are for a single patient, and may be from one or more studies. The referenced SOP Instances have been selected for a purpose, such as quality assurance, conference, or consult. Reflecting that range of purposes, typical ImagingObjectSelection resources may include all SOP Instances in a study (perhaps for sharing through a Health Information Exchange); key images from multiple studies (for reference by a referring or treating physician); a multi-frame ultrasound instance ("cine" video clip) and a set of measurements taken from that instance (for inclusion in a teaching file); and so on.
*/
@ResourceDef(name="ImagingObjectSelection", profile="http://hl7.org/fhir/Profile/ImagingObjectSelection")
public class ImagingObjectSelection extends DomainResource {

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;
@ -1003,9 +1003,9 @@ public class Immunization extends DomainResource {
/**
* The quantity of vaccine product that was administered.
*/
@Child(name = "doseQuantity", type = {Quantity.class}, order=15, min=0, max=1)
@Child(name = "doseQuantity", type = {SimpleQuantity.class}, order=15, min=0, max=1)
@Description(shortDefinition="Amount of vaccine administered", formalDefinition="The quantity of vaccine product that was administered." )
protected Quantity doseQuantity;
protected SimpleQuantity doseQuantity;
/**
* Reasons why a vaccine was or was not administered.
@ -1028,7 +1028,7 @@ public class Immunization extends DomainResource {
@Description(shortDefinition="What protocol was followed", formalDefinition="Contains information about the protocol(s) under which the vaccine was administered." )
protected List<ImmunizationVaccinationProtocolComponent> vaccinationProtocol;
private static final long serialVersionUID = -1610924217L;
private static final long serialVersionUID = -224069771L;
/*
* Constructor
@ -1661,12 +1661,12 @@ public class Immunization extends DomainResource {
/**
* @return {@link #doseQuantity} (The quantity of vaccine product that was administered.)
*/
public Quantity getDoseQuantity() {
public SimpleQuantity getDoseQuantity() {
if (this.doseQuantity == null)
if (Configuration.errorOnAutoCreate())
throw new Error("Attempt to auto-create Immunization.doseQuantity");
else if (Configuration.doAutoCreate())
this.doseQuantity = new Quantity(); // cc
this.doseQuantity = new SimpleQuantity(); // cc
return this.doseQuantity;
}
@ -1677,7 +1677,7 @@ public class Immunization extends DomainResource {
/**
* @param value {@link #doseQuantity} (The quantity of vaccine product that was administered.)
*/
public Immunization setDoseQuantity(Quantity value) {
public Immunization setDoseQuantity(SimpleQuantity value) {
this.doseQuantity = value;
return this;
}
@ -1803,7 +1803,7 @@ public class Immunization extends DomainResource {
childrenList.add(new Property("expirationDate", "date", "Date vaccine batch expires.", 0, java.lang.Integer.MAX_VALUE, expirationDate));
childrenList.add(new Property("site", "CodeableConcept", "Body site where vaccine was administered.", 0, java.lang.Integer.MAX_VALUE, site));
childrenList.add(new Property("route", "CodeableConcept", "The path by which the vaccine product is taken into the body.", 0, java.lang.Integer.MAX_VALUE, route));
childrenList.add(new Property("doseQuantity", "Quantity", "The quantity of vaccine product that was administered.", 0, java.lang.Integer.MAX_VALUE, doseQuantity));
childrenList.add(new Property("doseQuantity", "SimpleQuantity", "The quantity of vaccine product that was administered.", 0, java.lang.Integer.MAX_VALUE, doseQuantity));
childrenList.add(new Property("explanation", "", "Reasons why a vaccine was or was not administered.", 0, java.lang.Integer.MAX_VALUE, explanation));
childrenList.add(new Property("reaction", "", "Categorical data indicating that an adverse event is associated in time to an immunization.", 0, java.lang.Integer.MAX_VALUE, reaction));
childrenList.add(new Property("vaccinationProtocol", "", "Contains information about the protocol(s) under which the vaccine was administered.", 0, java.lang.Integer.MAX_VALUE, vaccinationProtocol));

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;
@ -121,10 +121,10 @@ public class Medication extends DomainResource {
@Block()
public static class MedicationProductComponent extends BackboneElement implements IBaseBackboneElement {
/**
* Describes the form of the item. Powder; tables; carton.
* Describes the form of the item. Powder; tablets; carton.
*/
@Child(name = "form", type = {CodeableConcept.class}, order=1, min=0, max=1)
@Description(shortDefinition="powder | tablets | carton +", formalDefinition="Describes the form of the item. Powder; tables; carton." )
@Description(shortDefinition="powder | tablets | carton +", formalDefinition="Describes the form of the item. Powder; tablets; carton." )
protected CodeableConcept form;
/**
@ -151,7 +151,7 @@ public class Medication extends DomainResource {
}
/**
* @return {@link #form} (Describes the form of the item. Powder; tables; carton.)
* @return {@link #form} (Describes the form of the item. Powder; tablets; carton.)
*/
public CodeableConcept getForm() {
if (this.form == null)
@ -167,7 +167,7 @@ public class Medication extends DomainResource {
}
/**
* @param value {@link #form} (Describes the form of the item. Powder; tables; carton.)
* @param value {@link #form} (Describes the form of the item. Powder; tablets; carton.)
*/
public MedicationProductComponent setForm(CodeableConcept value) {
this.form = value;
@ -256,7 +256,7 @@ public class Medication extends DomainResource {
protected void listChildren(List<Property> childrenList) {
super.listChildren(childrenList);
childrenList.add(new Property("form", "CodeableConcept", "Describes the form of the item. Powder; tables; carton.", 0, java.lang.Integer.MAX_VALUE, form));
childrenList.add(new Property("form", "CodeableConcept", "Describes the form of the item. Powder; tablets; carton.", 0, java.lang.Integer.MAX_VALUE, form));
childrenList.add(new Property("ingredient", "", "Identifies a particular constituent of interest in the product.", 0, java.lang.Integer.MAX_VALUE, ingredient));
childrenList.add(new Property("batch", "", "Information about a group of medication produced or packaged from one production run.", 0, java.lang.Integer.MAX_VALUE, batch));
}
@ -765,11 +765,11 @@ public class Medication extends DomainResource {
/**
* The amount of the product that is in the package.
*/
@Child(name = "amount", type = {Quantity.class}, order=2, min=0, max=1)
@Child(name = "amount", type = {SimpleQuantity.class}, order=2, min=0, max=1)
@Description(shortDefinition="How many are in the package?", formalDefinition="The amount of the product that is in the package." )
protected Quantity amount;
protected SimpleQuantity amount;
private static final long serialVersionUID = -1385430192L;
private static final long serialVersionUID = -1150048030L;
/*
* Constructor
@ -833,12 +833,12 @@ public class Medication extends DomainResource {
/**
* @return {@link #amount} (The amount of the product that is in the package.)
*/
public Quantity getAmount() {
public SimpleQuantity getAmount() {
if (this.amount == null)
if (Configuration.errorOnAutoCreate())
throw new Error("Attempt to auto-create MedicationPackageContentComponent.amount");
else if (Configuration.doAutoCreate())
this.amount = new Quantity(); // cc
this.amount = new SimpleQuantity(); // cc
return this.amount;
}
@ -849,7 +849,7 @@ public class Medication extends DomainResource {
/**
* @param value {@link #amount} (The amount of the product that is in the package.)
*/
public MedicationPackageContentComponent setAmount(Quantity value) {
public MedicationPackageContentComponent setAmount(SimpleQuantity value) {
this.amount = value;
return this;
}
@ -857,7 +857,7 @@ public class Medication extends DomainResource {
protected void listChildren(List<Property> childrenList) {
super.listChildren(childrenList);
childrenList.add(new Property("item", "Reference(Medication)", "Identifies one of the items in the package.", 0, java.lang.Integer.MAX_VALUE, item));
childrenList.add(new Property("amount", "Quantity", "The amount of the product that is in the package.", 0, java.lang.Integer.MAX_VALUE, amount));
childrenList.add(new Property("amount", "SimpleQuantity", "The amount of the product that is in the package.", 0, java.lang.Integer.MAX_VALUE, amount));
}
public MedicationPackageContentComponent copy() {
@ -896,30 +896,23 @@ public class Medication extends DomainResource {
}
/**
* The common/commercial name of the medication absent information such as strength, form, etc. E.g. Acetaminophen, Tylenol 3, etc. The fully coordinated name is communicated as the display of Medication.code.
* A code (or set of codes) that specify this medication, or a textual description if no code is available. Usage note: This could be a standard medication code such as a code from RxNorm, SNOMED CT, IDMP etc. It could also be a national or local formulary code, optionally with translations to other code systems.
*/
@Child(name = "name", type = {StringType.class}, order=0, min=0, max=1)
@Description(shortDefinition="Common / Commercial name", formalDefinition="The common/commercial name of the medication absent information such as strength, form, etc. E.g. Acetaminophen, Tylenol 3, etc. The fully coordinated name is communicated as the display of Medication.code." )
protected StringType name;
/**
* A code (or set of codes) that identify this medication. Usage note: This could be a standard drug code such as a drug regulator code, RxNorm code, SNOMED CT code, etc. It could also be a local formulary code, optionally with translations to the standard drug codes.
*/
@Child(name = "code", type = {CodeableConcept.class}, order=1, min=0, max=1)
@Description(shortDefinition="Codes that identify this medication", formalDefinition="A code (or set of codes) that identify this medication. Usage note: This could be a standard drug code such as a drug regulator code, RxNorm code, SNOMED CT code, etc. It could also be a local formulary code, optionally with translations to the standard drug codes." )
@Child(name = "code", type = {CodeableConcept.class}, order=0, min=0, max=1)
@Description(shortDefinition="Codes that identify this medication", formalDefinition="A code (or set of codes) that specify this medication, or a textual description if no code is available. Usage note: This could be a standard medication code such as a code from RxNorm, SNOMED CT, IDMP etc. It could also be a national or local formulary code, optionally with translations to other code systems." )
protected CodeableConcept code;
/**
* Set to true if the item is attributable to a specific manufacturer (even if we don't know who that is).
* Set to true if the item is attributable to a specific manufacturer.
*/
@Child(name = "isBrand", type = {BooleanType.class}, order=2, min=0, max=1)
@Description(shortDefinition="True if a brand", formalDefinition="Set to true if the item is attributable to a specific manufacturer (even if we don't know who that is)." )
@Child(name = "isBrand", type = {BooleanType.class}, order=1, min=0, max=1)
@Description(shortDefinition="True if a brand", formalDefinition="Set to true if the item is attributable to a specific manufacturer." )
protected BooleanType isBrand;
/**
* Describes the details of the manufacturer.
*/
@Child(name = "manufacturer", type = {Organization.class}, order=3, min=0, max=1)
@Child(name = "manufacturer", type = {Organization.class}, order=2, min=0, max=1)
@Description(shortDefinition="Manufacturer of the item", formalDefinition="Describes the details of the manufacturer." )
protected Reference manufacturer;
@ -931,25 +924,25 @@ public class Medication extends DomainResource {
/**
* Medications are either a single administrable product or a package that contains one or more products.
*/
@Child(name = "kind", type = {CodeType.class}, order=4, min=0, max=1)
@Child(name = "kind", type = {CodeType.class}, order=3, min=0, max=1)
@Description(shortDefinition="product | package", formalDefinition="Medications are either a single administrable product or a package that contains one or more products." )
protected Enumeration<MedicationKind> kind;
/**
* Information that only applies to products (not packages).
*/
@Child(name = "product", type = {}, order=5, min=0, max=1)
@Child(name = "product", type = {}, order=4, min=0, max=1)
@Description(shortDefinition="Administrable medication details", formalDefinition="Information that only applies to products (not packages)." )
protected MedicationProductComponent product;
/**
* Information that only applies to packages (not products).
*/
@Child(name = "package", type = {}, order=6, min=0, max=1)
@Child(name = "package", type = {}, order=5, min=0, max=1)
@Description(shortDefinition="Details about packaged medications", formalDefinition="Information that only applies to packages (not products)." )
protected MedicationPackageComponent package_;
private static final long serialVersionUID = 385691577L;
private static final long serialVersionUID = -1593137297L;
/*
* Constructor
@ -959,56 +952,7 @@ public class Medication extends DomainResource {
}
/**
* @return {@link #name} (The common/commercial name of the medication absent information such as strength, form, etc. E.g. Acetaminophen, Tylenol 3, etc. The fully coordinated name is communicated as the display of Medication.code.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value
*/
public StringType getNameElement() {
if (this.name == null)
if (Configuration.errorOnAutoCreate())
throw new Error("Attempt to auto-create Medication.name");
else if (Configuration.doAutoCreate())
this.name = new StringType(); // bb
return this.name;
}
public boolean hasNameElement() {
return this.name != null && !this.name.isEmpty();
}
public boolean hasName() {
return this.name != null && !this.name.isEmpty();
}
/**
* @param value {@link #name} (The common/commercial name of the medication absent information such as strength, form, etc. E.g. Acetaminophen, Tylenol 3, etc. The fully coordinated name is communicated as the display of Medication.code.). This is the underlying object with id, value and extensions. The accessor "getName" gives direct access to the value
*/
public Medication setNameElement(StringType value) {
this.name = value;
return this;
}
/**
* @return The common/commercial name of the medication absent information such as strength, form, etc. E.g. Acetaminophen, Tylenol 3, etc. The fully coordinated name is communicated as the display of Medication.code.
*/
public String getName() {
return this.name == null ? null : this.name.getValue();
}
/**
* @param value The common/commercial name of the medication absent information such as strength, form, etc. E.g. Acetaminophen, Tylenol 3, etc. The fully coordinated name is communicated as the display of Medication.code.
*/
public Medication setName(String value) {
if (Utilities.noString(value))
this.name = null;
else {
if (this.name == null)
this.name = new StringType();
this.name.setValue(value);
}
return this;
}
/**
* @return {@link #code} (A code (or set of codes) that identify this medication. Usage note: This could be a standard drug code such as a drug regulator code, RxNorm code, SNOMED CT code, etc. It could also be a local formulary code, optionally with translations to the standard drug codes.)
* @return {@link #code} (A code (or set of codes) that specify this medication, or a textual description if no code is available. Usage note: This could be a standard medication code such as a code from RxNorm, SNOMED CT, IDMP etc. It could also be a national or local formulary code, optionally with translations to other code systems.)
*/
public CodeableConcept getCode() {
if (this.code == null)
@ -1024,7 +968,7 @@ public class Medication extends DomainResource {
}
/**
* @param value {@link #code} (A code (or set of codes) that identify this medication. Usage note: This could be a standard drug code such as a drug regulator code, RxNorm code, SNOMED CT code, etc. It could also be a local formulary code, optionally with translations to the standard drug codes.)
* @param value {@link #code} (A code (or set of codes) that specify this medication, or a textual description if no code is available. Usage note: This could be a standard medication code such as a code from RxNorm, SNOMED CT, IDMP etc. It could also be a national or local formulary code, optionally with translations to other code systems.)
*/
public Medication setCode(CodeableConcept value) {
this.code = value;
@ -1032,7 +976,7 @@ public class Medication extends DomainResource {
}
/**
* @return {@link #isBrand} (Set to true if the item is attributable to a specific manufacturer (even if we don't know who that is).). This is the underlying object with id, value and extensions. The accessor "getIsBrand" gives direct access to the value
* @return {@link #isBrand} (Set to true if the item is attributable to a specific manufacturer.). This is the underlying object with id, value and extensions. The accessor "getIsBrand" gives direct access to the value
*/
public BooleanType getIsBrandElement() {
if (this.isBrand == null)
@ -1052,7 +996,7 @@ public class Medication extends DomainResource {
}
/**
* @param value {@link #isBrand} (Set to true if the item is attributable to a specific manufacturer (even if we don't know who that is).). This is the underlying object with id, value and extensions. The accessor "getIsBrand" gives direct access to the value
* @param value {@link #isBrand} (Set to true if the item is attributable to a specific manufacturer.). This is the underlying object with id, value and extensions. The accessor "getIsBrand" gives direct access to the value
*/
public Medication setIsBrandElement(BooleanType value) {
this.isBrand = value;
@ -1060,14 +1004,14 @@ public class Medication extends DomainResource {
}
/**
* @return Set to true if the item is attributable to a specific manufacturer (even if we don't know who that is).
* @return Set to true if the item is attributable to a specific manufacturer.
*/
public boolean getIsBrand() {
return this.isBrand == null || this.isBrand.isEmpty() ? false : this.isBrand.getValue();
}
/**
* @param value Set to true if the item is attributable to a specific manufacturer (even if we don't know who that is).
* @param value Set to true if the item is attributable to a specific manufacturer.
*/
public Medication setIsBrand(boolean value) {
if (this.isBrand == null)
@ -1219,9 +1163,8 @@ public class Medication extends DomainResource {
protected void listChildren(List<Property> childrenList) {
super.listChildren(childrenList);
childrenList.add(new Property("name", "string", "The common/commercial name of the medication absent information such as strength, form, etc. E.g. Acetaminophen, Tylenol 3, etc. The fully coordinated name is communicated as the display of Medication.code.", 0, java.lang.Integer.MAX_VALUE, name));
childrenList.add(new Property("code", "CodeableConcept", "A code (or set of codes) that identify this medication. Usage note: This could be a standard drug code such as a drug regulator code, RxNorm code, SNOMED CT code, etc. It could also be a local formulary code, optionally with translations to the standard drug codes.", 0, java.lang.Integer.MAX_VALUE, code));
childrenList.add(new Property("isBrand", "boolean", "Set to true if the item is attributable to a specific manufacturer (even if we don't know who that is).", 0, java.lang.Integer.MAX_VALUE, isBrand));
childrenList.add(new Property("code", "CodeableConcept", "A code (or set of codes) that specify this medication, or a textual description if no code is available. Usage note: This could be a standard medication code such as a code from RxNorm, SNOMED CT, IDMP etc. It could also be a national or local formulary code, optionally with translations to other code systems.", 0, java.lang.Integer.MAX_VALUE, code));
childrenList.add(new Property("isBrand", "boolean", "Set to true if the item is attributable to a specific manufacturer.", 0, java.lang.Integer.MAX_VALUE, isBrand));
childrenList.add(new Property("manufacturer", "Reference(Organization)", "Describes the details of the manufacturer.", 0, java.lang.Integer.MAX_VALUE, manufacturer));
childrenList.add(new Property("kind", "code", "Medications are either a single administrable product or a package that contains one or more products.", 0, java.lang.Integer.MAX_VALUE, kind));
childrenList.add(new Property("product", "", "Information that only applies to products (not packages).", 0, java.lang.Integer.MAX_VALUE, product));
@ -1231,7 +1174,6 @@ public class Medication extends DomainResource {
public Medication copy() {
Medication dst = new Medication();
copyValues(dst);
dst.name = name == null ? null : name.copy();
dst.code = code == null ? null : code.copy();
dst.isBrand = isBrand == null ? null : isBrand.copy();
dst.manufacturer = manufacturer == null ? null : manufacturer.copy();
@ -1252,9 +1194,9 @@ public class Medication extends DomainResource {
if (!(other instanceof Medication))
return false;
Medication o = (Medication) other;
return compareDeep(name, o.name, true) && compareDeep(code, o.code, true) && compareDeep(isBrand, o.isBrand, true)
&& compareDeep(manufacturer, o.manufacturer, true) && compareDeep(kind, o.kind, true) && compareDeep(product, o.product, true)
&& compareDeep(package_, o.package_, true);
return compareDeep(code, o.code, true) && compareDeep(isBrand, o.isBrand, true) && compareDeep(manufacturer, o.manufacturer, true)
&& compareDeep(kind, o.kind, true) && compareDeep(product, o.product, true) && compareDeep(package_, o.package_, true)
;
}
@Override
@ -1264,15 +1206,13 @@ public class Medication extends DomainResource {
if (!(other instanceof Medication))
return false;
Medication o = (Medication) other;
return compareValues(name, o.name, true) && compareValues(isBrand, o.isBrand, true) && compareValues(kind, o.kind, true)
;
return compareValues(isBrand, o.isBrand, true) && compareValues(kind, o.kind, true);
}
public boolean isEmpty() {
return super.isEmpty() && (name == null || name.isEmpty()) && (code == null || code.isEmpty())
&& (isBrand == null || isBrand.isEmpty()) && (manufacturer == null || manufacturer.isEmpty())
&& (kind == null || kind.isEmpty()) && (product == null || product.isEmpty()) && (package_ == null || package_.isEmpty())
;
return super.isEmpty() && (code == null || code.isEmpty()) && (isBrand == null || isBrand.isEmpty())
&& (manufacturer == null || manufacturer.isEmpty()) && (kind == null || kind.isEmpty()) && (product == null || product.isEmpty())
&& (package_ == null || package_.isEmpty());
}
@Override
@ -1288,8 +1228,6 @@ public class Medication extends DomainResource {
public static final String SP_INGREDIENT = "ingredient";
@SearchParamDefinition(name="form", path="Medication.product.form", description="powder | tablets | carton +", type="token" )
public static final String SP_FORM = "form";
@SearchParamDefinition(name="name", path="Medication.name", description="Common / Commercial name", type="string" )
public static final String SP_NAME = "name";
@SearchParamDefinition(name="content", path="Medication.package.content.item", description="A product in the package", type="reference" )
public static final String SP_CONTENT = "content";
@SearchParamDefinition(name="manufacturer", path="Medication.manufacturer", description="Manufacturer of the item", type="reference" )

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;
@ -193,18 +193,18 @@ public class MedicationAdministration extends DomainResource {
/**
* The amount of the medication given at one administration event. Use this value when the administration is essentially an instantaneous event such as a swallowing a tablet or giving an injection.
*/
@Child(name = "quantity", type = {Quantity.class}, order=5, min=0, max=1)
@Child(name = "quantity", type = {SimpleQuantity.class}, order=5, min=0, max=1)
@Description(shortDefinition="Amount administered in one dose", formalDefinition="The amount of the medication given at one administration event. Use this value when the administration is essentially an instantaneous event such as a swallowing a tablet or giving an injection." )
protected Quantity quantity;
protected SimpleQuantity quantity;
/**
* Identifies the speed with which the medication was introduced into the patient. Typically the rate for an infusion e.g. 200ml in 2 hours. May also be expressed as a rate per unit of time such as 100ml per hour - the duration is then not specified, or is specified in the quantity.
*/
@Child(name = "rate", type = {Ratio.class}, order=6, min=0, max=1)
@Child(name = "rate", type = {Ratio.class, Range.class}, order=6, min=0, max=1)
@Description(shortDefinition="Dose quantity per unit of time", formalDefinition="Identifies the speed with which the medication was introduced into the patient. Typically the rate for an infusion e.g. 200ml in 2 hours. May also be expressed as a rate per unit of time such as 100ml per hour - the duration is then not specified, or is specified in the quantity." )
protected Ratio rate;
protected Type rate;
private static final long serialVersionUID = -358534919L;
private static final long serialVersionUID = -1465497586L;
/*
* Constructor
@ -337,12 +337,12 @@ public class MedicationAdministration extends DomainResource {
/**
* @return {@link #quantity} (The amount of the medication given at one administration event. Use this value when the administration is essentially an instantaneous event such as a swallowing a tablet or giving an injection.)
*/
public Quantity getQuantity() {
public SimpleQuantity getQuantity() {
if (this.quantity == null)
if (Configuration.errorOnAutoCreate())
throw new Error("Attempt to auto-create MedicationAdministrationDosageComponent.quantity");
else if (Configuration.doAutoCreate())
this.quantity = new Quantity(); // cc
this.quantity = new SimpleQuantity(); // cc
return this.quantity;
}
@ -353,7 +353,7 @@ public class MedicationAdministration extends DomainResource {
/**
* @param value {@link #quantity} (The amount of the medication given at one administration event. Use this value when the administration is essentially an instantaneous event such as a swallowing a tablet or giving an injection.)
*/
public MedicationAdministrationDosageComponent setQuantity(Quantity value) {
public MedicationAdministrationDosageComponent setQuantity(SimpleQuantity value) {
this.quantity = value;
return this;
}
@ -361,15 +361,36 @@ public class MedicationAdministration extends DomainResource {
/**
* @return {@link #rate} (Identifies the speed with which the medication was introduced into the patient. Typically the rate for an infusion e.g. 200ml in 2 hours. May also be expressed as a rate per unit of time such as 100ml per hour - the duration is then not specified, or is specified in the quantity.)
*/
public Ratio getRate() {
if (this.rate == null)
if (Configuration.errorOnAutoCreate())
throw new Error("Attempt to auto-create MedicationAdministrationDosageComponent.rate");
else if (Configuration.doAutoCreate())
this.rate = new Ratio(); // cc
public Type getRate() {
return this.rate;
}
/**
* @return {@link #rate} (Identifies the speed with which the medication was introduced into the patient. Typically the rate for an infusion e.g. 200ml in 2 hours. May also be expressed as a rate per unit of time such as 100ml per hour - the duration is then not specified, or is specified in the quantity.)
*/
public Ratio getRateRatio() throws Exception {
if (!(this.rate instanceof Ratio))
throw new Exception("Type mismatch: the type Ratio was expected, but "+this.rate.getClass().getName()+" was encountered");
return (Ratio) this.rate;
}
public boolean hasRateRatio() throws Exception {
return this.rate instanceof Ratio;
}
/**
* @return {@link #rate} (Identifies the speed with which the medication was introduced into the patient. Typically the rate for an infusion e.g. 200ml in 2 hours. May also be expressed as a rate per unit of time such as 100ml per hour - the duration is then not specified, or is specified in the quantity.)
*/
public Range getRateRange() throws Exception {
if (!(this.rate instanceof Range))
throw new Exception("Type mismatch: the type Range was expected, but "+this.rate.getClass().getName()+" was encountered");
return (Range) this.rate;
}
public boolean hasRateRange() throws Exception {
return this.rate instanceof Range;
}
public boolean hasRate() {
return this.rate != null && !this.rate.isEmpty();
}
@ -377,7 +398,7 @@ public class MedicationAdministration extends DomainResource {
/**
* @param value {@link #rate} (Identifies the speed with which the medication was introduced into the patient. Typically the rate for an infusion e.g. 200ml in 2 hours. May also be expressed as a rate per unit of time such as 100ml per hour - the duration is then not specified, or is specified in the quantity.)
*/
public MedicationAdministrationDosageComponent setRate(Ratio value) {
public MedicationAdministrationDosageComponent setRate(Type value) {
this.rate = value;
return this;
}
@ -388,8 +409,8 @@ public class MedicationAdministration extends DomainResource {
childrenList.add(new Property("site", "CodeableConcept", "A coded specification of the anatomic site where the medication first entered the body. E.g. 'left arm'.", 0, java.lang.Integer.MAX_VALUE, site));
childrenList.add(new Property("route", "CodeableConcept", "A code specifying the route or physiological path of administration of a therapeutic agent into or onto the patient. E.g. topical, intravenous, etc.", 0, java.lang.Integer.MAX_VALUE, route));
childrenList.add(new Property("method", "CodeableConcept", "A coded value indicating the method by which the medication was introduced into or onto the body. Most commonly used for injections. Examples: Slow Push; Deep IV. Terminologies used often pre-coordinate this term with the route and or form of administration.", 0, java.lang.Integer.MAX_VALUE, method));
childrenList.add(new Property("quantity", "Quantity", "The amount of the medication given at one administration event. Use this value when the administration is essentially an instantaneous event such as a swallowing a tablet or giving an injection.", 0, java.lang.Integer.MAX_VALUE, quantity));
childrenList.add(new Property("rate", "Ratio", "Identifies the speed with which the medication was introduced into the patient. Typically the rate for an infusion e.g. 200ml in 2 hours. May also be expressed as a rate per unit of time such as 100ml per hour - the duration is then not specified, or is specified in the quantity.", 0, java.lang.Integer.MAX_VALUE, rate));
childrenList.add(new Property("quantity", "SimpleQuantity", "The amount of the medication given at one administration event. Use this value when the administration is essentially an instantaneous event such as a swallowing a tablet or giving an injection.", 0, java.lang.Integer.MAX_VALUE, quantity));
childrenList.add(new Property("rate[x]", "Ratio|Range", "Identifies the speed with which the medication was introduced into the patient. Typically the rate for an infusion e.g. 200ml in 2 hours. May also be expressed as a rate per unit of time such as 100ml per hour - the duration is then not specified, or is specified in the quantity.", 0, java.lang.Integer.MAX_VALUE, rate));
}
public MedicationAdministrationDosageComponent copy() {
@ -487,14 +508,14 @@ public class MedicationAdministration extends DomainResource {
/**
* The original request, instruction or authority to perform the administration.
*/
@Child(name = "prescription", type = {MedicationPrescription.class}, order=5, min=0, max=1)
@Child(name = "prescription", type = {MedicationOrder.class}, order=5, min=0, max=1)
@Description(shortDefinition="Order administration performed against", formalDefinition="The original request, instruction or authority to perform the administration." )
protected Reference prescription;
/**
* The actual object that is the target of the reference (The original request, instruction or authority to perform the administration.)
*/
protected MedicationPrescription prescriptionTarget;
protected MedicationOrder prescriptionTarget;
/**
* Set this to true if the record is saying that the medication was NOT administered.
@ -557,7 +578,7 @@ public class MedicationAdministration extends DomainResource {
@Description(shortDefinition="Details of how medication was taken", formalDefinition="Indicates how the medication is/was used by the patient." )
protected MedicationAdministrationDosageComponent dosage;
private static final long serialVersionUID = 1854331183L;
private static final long serialVersionUID = -320745165L;
/*
* Constructor
@ -821,19 +842,19 @@ public class MedicationAdministration extends DomainResource {
/**
* @return {@link #prescription} The actual object that is the target of the reference. The reference library doesn't populate this, but you can use it to hold the resource if you resolve it. (The original request, instruction or authority to perform the administration.)
*/
public MedicationPrescription getPrescriptionTarget() {
public MedicationOrder getPrescriptionTarget() {
if (this.prescriptionTarget == null)
if (Configuration.errorOnAutoCreate())
throw new Error("Attempt to auto-create MedicationAdministration.prescription");
else if (Configuration.doAutoCreate())
this.prescriptionTarget = new MedicationPrescription(); // aa
this.prescriptionTarget = new MedicationOrder(); // aa
return this.prescriptionTarget;
}
/**
* @param value {@link #prescription} The actual object that is the target of the reference. The reference library doesn't use these, but you can use it to hold the resource if you resolve it. (The original request, instruction or authority to perform the administration.)
*/
public MedicationAdministration setPrescriptionTarget(MedicationPrescription value) {
public MedicationAdministration setPrescriptionTarget(MedicationOrder value) {
this.prescriptionTarget = value;
return this;
}
@ -1194,7 +1215,7 @@ public class MedicationAdministration extends DomainResource {
childrenList.add(new Property("patient", "Reference(Patient)", "The person or animal to whom the medication was given.", 0, java.lang.Integer.MAX_VALUE, patient));
childrenList.add(new Property("practitioner", "Reference(Practitioner)", "The individual who was responsible for giving the medication to the patient.", 0, java.lang.Integer.MAX_VALUE, practitioner));
childrenList.add(new Property("encounter", "Reference(Encounter)", "The visit or admission the or other contact between patient and health care provider the medication administration was performed as part of.", 0, java.lang.Integer.MAX_VALUE, encounter));
childrenList.add(new Property("prescription", "Reference(MedicationPrescription)", "The original request, instruction or authority to perform the administration.", 0, java.lang.Integer.MAX_VALUE, prescription));
childrenList.add(new Property("prescription", "Reference(MedicationOrder)", "The original request, instruction or authority to perform the administration.", 0, java.lang.Integer.MAX_VALUE, prescription));
childrenList.add(new Property("wasNotGiven", "boolean", "Set this to true if the record is saying that the medication was NOT administered.", 0, java.lang.Integer.MAX_VALUE, wasNotGiven));
childrenList.add(new Property("reasonNotGiven", "CodeableConcept", "A code indicating why the administration was not performed.", 0, java.lang.Integer.MAX_VALUE, reasonNotGiven));
childrenList.add(new Property("reasonGiven", "CodeableConcept", "A code indicating why the medication was given.", 0, java.lang.Integer.MAX_VALUE, reasonGiven));
@ -1289,6 +1310,8 @@ public class MedicationAdministration extends DomainResource {
@SearchParamDefinition(name="identifier", path="MedicationAdministration.identifier", description="Return administrations with this external identity", type="token" )
public static final String SP_IDENTIFIER = "identifier";
@SearchParamDefinition(name="code", path="MedicationAdministration.medicationCodeableConcept", description="Return administrations of this medication code", type="token" )
public static final String SP_CODE = "code";
@SearchParamDefinition(name="prescription", path="MedicationAdministration.prescription", description="The identity of a prescription to list administrations from", type="reference" )
public static final String SP_PRESCRIPTION = "prescription";
@SearchParamDefinition(name="effectivetime", path="MedicationAdministration.effectiveTime[x]", description="Date administration happened (or did not happen)", type="date" )
@ -1297,7 +1320,7 @@ public class MedicationAdministration extends DomainResource {
public static final String SP_PRACTITIONER = "practitioner";
@SearchParamDefinition(name="patient", path="MedicationAdministration.patient", description="The identity of a patient to list administrations for", type="reference" )
public static final String SP_PATIENT = "patient";
@SearchParamDefinition(name="medication", path="MedicationAdministration.medicationReference", description="Return administrations of this medication", type="reference" )
@SearchParamDefinition(name="medication", path="MedicationAdministration.medicationReference", description="Return administrations of this medication resource", type="reference" )
public static final String SP_MEDICATION = "medication";
@SearchParamDefinition(name="encounter", path="MedicationAdministration.encounter", description="Return administrations that share this encounter", type="reference" )
public static final String SP_ENCOUNTER = "encounter";

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;
@ -179,9 +179,9 @@ public class MedicationDispense extends DomainResource {
/**
* The timing schedule for giving the medication to the patient. The Schedule data type allows many different expressions, for example. "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013".
*/
@Child(name = "schedule", type = {DateTimeType.class, Period.class, Timing.class}, order=3, min=0, max=1)
@Child(name = "timing", type = {Timing.class}, order=3, min=0, max=1)
@Description(shortDefinition="When medication should be administered", formalDefinition="The timing schedule for giving the medication to the patient. The Schedule data type allows many different expressions, for example. 'Every 8 hours'; 'Three times a day'; '1/2 an hour before breakfast for 10 days from 23-Dec 2011:'; '15 Oct 2013, 17 Oct 2013 and 1 Nov 2013'." )
protected Type schedule;
protected Timing timing;
/**
* If set to true or if specified as a CodeableConcept, indicates that the medication is only taken when needed within the specified schedule rather than at every scheduled dose. If a CodeableConcept is present, it indicates the pre-condition for taking the Medication.
@ -205,27 +205,25 @@ public class MedicationDispense extends DomainResource {
protected CodeableConcept route;
/**
* A coded value indicating the method by which the medication is introduced into or onto the body. Most commonly used for injections. Examples: Slow Push; Deep IV.
Terminologies used often pre-coordinate this term with the route and or form of administration.
* A coded value indicating the method by which the medication is introduced into or onto the body. Most commonly used for injections. Examples: Slow Push; Deep IV. Terminologies used often pre-coordinate this term with the route and or form of administration.
*/
@Child(name = "method", type = {CodeableConcept.class}, order=7, min=0, max=1)
@Description(shortDefinition="Technique for administering medication", formalDefinition="A coded value indicating the method by which the medication is introduced into or onto the body. Most commonly used for injections. Examples: Slow Push; Deep IV.\n\nTerminologies used often pre-coordinate this term with the route and or form of administration." )
@Description(shortDefinition="Technique for administering medication", formalDefinition="A coded value indicating the method by which the medication is introduced into or onto the body. Most commonly used for injections. Examples: Slow Push; Deep IV. Terminologies used often pre-coordinate this term with the route and or form of administration." )
protected CodeableConcept method;
/**
* The amount of therapeutic or other substance given at one administration event.
*/
@Child(name = "dose", type = {Range.class, Quantity.class}, order=8, min=0, max=1)
@Child(name = "dose", type = {Range.class, SimpleQuantity.class}, order=8, min=0, max=1)
@Description(shortDefinition="Amount of medication per dose", formalDefinition="The amount of therapeutic or other substance given at one administration event." )
protected Type dose;
/**
* Identifies the speed with which the substance is introduced into the subject. Typically the rate for an infusion. 200ml in 2 hours.
*/
@Child(name = "rate", type = {Ratio.class}, order=9, min=0, max=1)
@Child(name = "rate", type = {Ratio.class, Range.class}, order=9, min=0, max=1)
@Description(shortDefinition="Amount of medication per unit of time", formalDefinition="Identifies the speed with which the substance is introduced into the subject. Typically the rate for an infusion. 200ml in 2 hours." )
protected Ratio rate;
protected Type rate;
/**
* The maximum total quantity of a therapeutic substance that may be administered to a subject over the period of time, e.g. 1000mg in 24 hours.
@ -234,7 +232,7 @@ Terminologies used often pre-coordinate this term with the route and or form of
@Description(shortDefinition="Upper limit on medication per unit of time", formalDefinition="The maximum total quantity of a therapeutic substance that may be administered to a subject over the period of time, e.g. 1000mg in 24 hours." )
protected Ratio maxDosePerPeriod;
private static final long serialVersionUID = -1409331091L;
private static final long serialVersionUID = -422348215L;
/*
* Constructor
@ -317,60 +315,26 @@ Terminologies used often pre-coordinate this term with the route and or form of
}
/**
* @return {@link #schedule} (The timing schedule for giving the medication to the patient. The Schedule data type allows many different expressions, for example. "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013".)
* @return {@link #timing} (The timing schedule for giving the medication to the patient. The Schedule data type allows many different expressions, for example. "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013".)
*/
public Type getSchedule() {
return this.schedule;
public Timing getTiming() {
if (this.timing == null)
if (Configuration.errorOnAutoCreate())
throw new Error("Attempt to auto-create MedicationDispenseDosageInstructionComponent.timing");
else if (Configuration.doAutoCreate())
this.timing = new Timing(); // cc
return this.timing;
}
public boolean hasTiming() {
return this.timing != null && !this.timing.isEmpty();
}
/**
* @return {@link #schedule} (The timing schedule for giving the medication to the patient. The Schedule data type allows many different expressions, for example. "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013".)
* @param value {@link #timing} (The timing schedule for giving the medication to the patient. The Schedule data type allows many different expressions, for example. "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013".)
*/
public DateTimeType getScheduleDateTimeType() throws Exception {
if (!(this.schedule instanceof DateTimeType))
throw new Exception("Type mismatch: the type DateTimeType was expected, but "+this.schedule.getClass().getName()+" was encountered");
return (DateTimeType) this.schedule;
}
public boolean hasScheduleDateTimeType() throws Exception {
return this.schedule instanceof DateTimeType;
}
/**
* @return {@link #schedule} (The timing schedule for giving the medication to the patient. The Schedule data type allows many different expressions, for example. "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013".)
*/
public Period getSchedulePeriod() throws Exception {
if (!(this.schedule instanceof Period))
throw new Exception("Type mismatch: the type Period was expected, but "+this.schedule.getClass().getName()+" was encountered");
return (Period) this.schedule;
}
public boolean hasSchedulePeriod() throws Exception {
return this.schedule instanceof Period;
}
/**
* @return {@link #schedule} (The timing schedule for giving the medication to the patient. The Schedule data type allows many different expressions, for example. "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013".)
*/
public Timing getScheduleTiming() throws Exception {
if (!(this.schedule instanceof Timing))
throw new Exception("Type mismatch: the type Timing was expected, but "+this.schedule.getClass().getName()+" was encountered");
return (Timing) this.schedule;
}
public boolean hasScheduleTiming() throws Exception {
return this.schedule instanceof Timing;
}
public boolean hasSchedule() {
return this.schedule != null && !this.schedule.isEmpty();
}
/**
* @param value {@link #schedule} (The timing schedule for giving the medication to the patient. The Schedule data type allows many different expressions, for example. "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013".)
*/
public MedicationDispenseDosageInstructionComponent setSchedule(Type value) {
this.schedule = value;
public MedicationDispenseDosageInstructionComponent setTiming(Timing value) {
this.timing = value;
return this;
}
@ -468,9 +432,7 @@ Terminologies used often pre-coordinate this term with the route and or form of
}
/**
* @return {@link #method} (A coded value indicating the method by which the medication is introduced into or onto the body. Most commonly used for injections. Examples: Slow Push; Deep IV.
Terminologies used often pre-coordinate this term with the route and or form of administration.)
* @return {@link #method} (A coded value indicating the method by which the medication is introduced into or onto the body. Most commonly used for injections. Examples: Slow Push; Deep IV. Terminologies used often pre-coordinate this term with the route and or form of administration.)
*/
public CodeableConcept getMethod() {
if (this.method == null)
@ -486,9 +448,7 @@ Terminologies used often pre-coordinate this term with the route and or form of
}
/**
* @param value {@link #method} (A coded value indicating the method by which the medication is introduced into or onto the body. Most commonly used for injections. Examples: Slow Push; Deep IV.
Terminologies used often pre-coordinate this term with the route and or form of administration.)
* @param value {@link #method} (A coded value indicating the method by which the medication is introduced into or onto the body. Most commonly used for injections. Examples: Slow Push; Deep IV. Terminologies used often pre-coordinate this term with the route and or form of administration.)
*/
public MedicationDispenseDosageInstructionComponent setMethod(CodeableConcept value) {
this.method = value;
@ -518,14 +478,14 @@ Terminologies used often pre-coordinate this term with the route and or form of
/**
* @return {@link #dose} (The amount of therapeutic or other substance given at one administration event.)
*/
public Quantity getDoseQuantity() throws Exception {
if (!(this.dose instanceof Quantity))
throw new Exception("Type mismatch: the type Quantity was expected, but "+this.dose.getClass().getName()+" was encountered");
return (Quantity) this.dose;
public SimpleQuantity getDoseSimpleQuantity() throws Exception {
if (!(this.dose instanceof SimpleQuantity))
throw new Exception("Type mismatch: the type SimpleQuantity was expected, but "+this.dose.getClass().getName()+" was encountered");
return (SimpleQuantity) this.dose;
}
public boolean hasDoseQuantity() throws Exception {
return this.dose instanceof Quantity;
public boolean hasDoseSimpleQuantity() throws Exception {
return this.dose instanceof SimpleQuantity;
}
public boolean hasDose() {
@ -543,15 +503,36 @@ Terminologies used often pre-coordinate this term with the route and or form of
/**
* @return {@link #rate} (Identifies the speed with which the substance is introduced into the subject. Typically the rate for an infusion. 200ml in 2 hours.)
*/
public Ratio getRate() {
if (this.rate == null)
if (Configuration.errorOnAutoCreate())
throw new Error("Attempt to auto-create MedicationDispenseDosageInstructionComponent.rate");
else if (Configuration.doAutoCreate())
this.rate = new Ratio(); // cc
public Type getRate() {
return this.rate;
}
/**
* @return {@link #rate} (Identifies the speed with which the substance is introduced into the subject. Typically the rate for an infusion. 200ml in 2 hours.)
*/
public Ratio getRateRatio() throws Exception {
if (!(this.rate instanceof Ratio))
throw new Exception("Type mismatch: the type Ratio was expected, but "+this.rate.getClass().getName()+" was encountered");
return (Ratio) this.rate;
}
public boolean hasRateRatio() throws Exception {
return this.rate instanceof Ratio;
}
/**
* @return {@link #rate} (Identifies the speed with which the substance is introduced into the subject. Typically the rate for an infusion. 200ml in 2 hours.)
*/
public Range getRateRange() throws Exception {
if (!(this.rate instanceof Range))
throw new Exception("Type mismatch: the type Range was expected, but "+this.rate.getClass().getName()+" was encountered");
return (Range) this.rate;
}
public boolean hasRateRange() throws Exception {
return this.rate instanceof Range;
}
public boolean hasRate() {
return this.rate != null && !this.rate.isEmpty();
}
@ -559,7 +540,7 @@ Terminologies used often pre-coordinate this term with the route and or form of
/**
* @param value {@link #rate} (Identifies the speed with which the substance is introduced into the subject. Typically the rate for an infusion. 200ml in 2 hours.)
*/
public MedicationDispenseDosageInstructionComponent setRate(Ratio value) {
public MedicationDispenseDosageInstructionComponent setRate(Type value) {
this.rate = value;
return this;
}
@ -592,13 +573,13 @@ Terminologies used often pre-coordinate this term with the route and or form of
super.listChildren(childrenList);
childrenList.add(new Property("text", "string", "Free text dosage instructions can be used for cases where the instructions are too complex to code. When coded instructions are present, the free text instructions may still be present for display to humans taking or administering the medication.", 0, java.lang.Integer.MAX_VALUE, text));
childrenList.add(new Property("additionalInstructions", "CodeableConcept", "Additional instructions such as 'Swallow with plenty of water' which may or may not be coded.", 0, java.lang.Integer.MAX_VALUE, additionalInstructions));
childrenList.add(new Property("schedule[x]", "dateTime|Period|Timing", "The timing schedule for giving the medication to the patient. The Schedule data type allows many different expressions, for example. 'Every 8 hours'; 'Three times a day'; '1/2 an hour before breakfast for 10 days from 23-Dec 2011:'; '15 Oct 2013, 17 Oct 2013 and 1 Nov 2013'.", 0, java.lang.Integer.MAX_VALUE, schedule));
childrenList.add(new Property("timing", "Timing", "The timing schedule for giving the medication to the patient. The Schedule data type allows many different expressions, for example. 'Every 8 hours'; 'Three times a day'; '1/2 an hour before breakfast for 10 days from 23-Dec 2011:'; '15 Oct 2013, 17 Oct 2013 and 1 Nov 2013'.", 0, java.lang.Integer.MAX_VALUE, timing));
childrenList.add(new Property("asNeeded[x]", "boolean|CodeableConcept", "If set to true or if specified as a CodeableConcept, indicates that the medication is only taken when needed within the specified schedule rather than at every scheduled dose. If a CodeableConcept is present, it indicates the pre-condition for taking the Medication.", 0, java.lang.Integer.MAX_VALUE, asNeeded));
childrenList.add(new Property("site", "CodeableConcept", "A coded specification of the anatomic site where the medication first enters the body.", 0, java.lang.Integer.MAX_VALUE, site));
childrenList.add(new Property("route", "CodeableConcept", "A code specifying the route or physiological path of administration of a therapeutic agent into or onto a subject.", 0, java.lang.Integer.MAX_VALUE, route));
childrenList.add(new Property("method", "CodeableConcept", "A coded value indicating the method by which the medication is introduced into or onto the body. Most commonly used for injections. Examples: Slow Push; Deep IV.\n\nTerminologies used often pre-coordinate this term with the route and or form of administration.", 0, java.lang.Integer.MAX_VALUE, method));
childrenList.add(new Property("dose[x]", "Range|Quantity", "The amount of therapeutic or other substance given at one administration event.", 0, java.lang.Integer.MAX_VALUE, dose));
childrenList.add(new Property("rate", "Ratio", "Identifies the speed with which the substance is introduced into the subject. Typically the rate for an infusion. 200ml in 2 hours.", 0, java.lang.Integer.MAX_VALUE, rate));
childrenList.add(new Property("method", "CodeableConcept", "A coded value indicating the method by which the medication is introduced into or onto the body. Most commonly used for injections. Examples: Slow Push; Deep IV. Terminologies used often pre-coordinate this term with the route and or form of administration.", 0, java.lang.Integer.MAX_VALUE, method));
childrenList.add(new Property("dose[x]", "Range|SimpleQuantity", "The amount of therapeutic or other substance given at one administration event.", 0, java.lang.Integer.MAX_VALUE, dose));
childrenList.add(new Property("rate[x]", "Ratio|Range", "Identifies the speed with which the substance is introduced into the subject. Typically the rate for an infusion. 200ml in 2 hours.", 0, java.lang.Integer.MAX_VALUE, rate));
childrenList.add(new Property("maxDosePerPeriod", "Ratio", "The maximum total quantity of a therapeutic substance that may be administered to a subject over the period of time, e.g. 1000mg in 24 hours.", 0, java.lang.Integer.MAX_VALUE, maxDosePerPeriod));
}
@ -607,7 +588,7 @@ Terminologies used often pre-coordinate this term with the route and or form of
copyValues(dst);
dst.text = text == null ? null : text.copy();
dst.additionalInstructions = additionalInstructions == null ? null : additionalInstructions.copy();
dst.schedule = schedule == null ? null : schedule.copy();
dst.timing = timing == null ? null : timing.copy();
dst.asNeeded = asNeeded == null ? null : asNeeded.copy();
dst.site = site == null ? null : site.copy();
dst.route = route == null ? null : route.copy();
@ -626,7 +607,7 @@ Terminologies used often pre-coordinate this term with the route and or form of
return false;
MedicationDispenseDosageInstructionComponent o = (MedicationDispenseDosageInstructionComponent) other;
return compareDeep(text, o.text, true) && compareDeep(additionalInstructions, o.additionalInstructions, true)
&& compareDeep(schedule, o.schedule, true) && compareDeep(asNeeded, o.asNeeded, true) && compareDeep(site, o.site, true)
&& compareDeep(timing, o.timing, true) && compareDeep(asNeeded, o.asNeeded, true) && compareDeep(site, o.site, true)
&& compareDeep(route, o.route, true) && compareDeep(method, o.method, true) && compareDeep(dose, o.dose, true)
&& compareDeep(rate, o.rate, true) && compareDeep(maxDosePerPeriod, o.maxDosePerPeriod, true);
}
@ -643,7 +624,7 @@ Terminologies used often pre-coordinate this term with the route and or form of
public boolean isEmpty() {
return super.isEmpty() && (text == null || text.isEmpty()) && (additionalInstructions == null || additionalInstructions.isEmpty())
&& (schedule == null || schedule.isEmpty()) && (asNeeded == null || asNeeded.isEmpty()) && (site == null || site.isEmpty())
&& (timing == null || timing.isEmpty()) && (asNeeded == null || asNeeded.isEmpty()) && (site == null || site.isEmpty())
&& (route == null || route.isEmpty()) && (method == null || method.isEmpty()) && (dose == null || dose.isEmpty())
&& (rate == null || rate.isEmpty()) && (maxDosePerPeriod == null || maxDosePerPeriod.isEmpty())
;
@ -914,13 +895,13 @@ Terminologies used often pre-coordinate this term with the route and or form of
/**
* Indicates the medication order that is being dispensed against.
*/
@Child(name = "authorizingPrescription", type = {MedicationPrescription.class}, order=4, min=0, max=Child.MAX_UNLIMITED)
@Child(name = "authorizingPrescription", type = {MedicationOrder.class}, order=4, min=0, max=Child.MAX_UNLIMITED)
@Description(shortDefinition="Medication order that authorizes the dispense", formalDefinition="Indicates the medication order that is being dispensed against." )
protected List<Reference> authorizingPrescription;
/**
* The actual objects that are the target of the reference (Indicates the medication order that is being dispensed against.)
*/
protected List<MedicationPrescription> authorizingPrescriptionTarget;
protected List<MedicationOrder> authorizingPrescriptionTarget;
/**
@ -933,16 +914,16 @@ Terminologies used often pre-coordinate this term with the route and or form of
/**
* The amount of medication that has been dispensed. Includes unit of measure.
*/
@Child(name = "quantity", type = {Quantity.class}, order=6, min=0, max=1)
@Child(name = "quantity", type = {SimpleQuantity.class}, order=6, min=0, max=1)
@Description(shortDefinition="Amount dispensed", formalDefinition="The amount of medication that has been dispensed. Includes unit of measure." )
protected Quantity quantity;
protected SimpleQuantity quantity;
/**
* The amount of medication expressed as a timing amount.
*/
@Child(name = "daysSupply", type = {Quantity.class}, order=7, min=0, max=1)
@Child(name = "daysSupply", type = {SimpleQuantity.class}, order=7, min=0, max=1)
@Description(shortDefinition="Days Supply", formalDefinition="The amount of medication expressed as a timing amount." )
protected Quantity daysSupply;
protected SimpleQuantity daysSupply;
/**
* Identifies the medication being administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications.
@ -1010,7 +991,7 @@ Terminologies used often pre-coordinate this term with the route and or form of
@Description(shortDefinition="Deals with substitution of one medicine for another", formalDefinition="Indicates whether or not substitution was made as part of the dispense. In some cases substitution will be expected but doesn't happen, in other cases substitution is not expected but does happen. This block explains what substitition did or did not happen and why." )
protected MedicationDispenseSubstitutionComponent substitution;
private static final long serialVersionUID = -1930133151L;
private static final long serialVersionUID = -2071218407L;
/*
* Constructor
@ -1231,9 +1212,9 @@ Terminologies used often pre-coordinate this term with the route and or form of
/**
* @return {@link #authorizingPrescription} (The actual objects that are the target of the reference. The reference library doesn't populate this, but you can use this to hold the resources if you resolvethemt. Indicates the medication order that is being dispensed against.)
*/
public List<MedicationPrescription> getAuthorizingPrescriptionTarget() {
public List<MedicationOrder> getAuthorizingPrescriptionTarget() {
if (this.authorizingPrescriptionTarget == null)
this.authorizingPrescriptionTarget = new ArrayList<MedicationPrescription>();
this.authorizingPrescriptionTarget = new ArrayList<MedicationOrder>();
return this.authorizingPrescriptionTarget;
}
@ -1241,10 +1222,10 @@ Terminologies used often pre-coordinate this term with the route and or form of
/**
* @return {@link #authorizingPrescription} (Add an actual object that is the target of the reference. The reference library doesn't use these, but you can use this to hold the resources if you resolvethemt. Indicates the medication order that is being dispensed against.)
*/
public MedicationPrescription addAuthorizingPrescriptionTarget() {
MedicationPrescription r = new MedicationPrescription();
public MedicationOrder addAuthorizingPrescriptionTarget() {
MedicationOrder r = new MedicationOrder();
if (this.authorizingPrescriptionTarget == null)
this.authorizingPrescriptionTarget = new ArrayList<MedicationPrescription>();
this.authorizingPrescriptionTarget = new ArrayList<MedicationOrder>();
this.authorizingPrescriptionTarget.add(r);
return r;
}
@ -1276,12 +1257,12 @@ Terminologies used often pre-coordinate this term with the route and or form of
/**
* @return {@link #quantity} (The amount of medication that has been dispensed. Includes unit of measure.)
*/
public Quantity getQuantity() {
public SimpleQuantity getQuantity() {
if (this.quantity == null)
if (Configuration.errorOnAutoCreate())
throw new Error("Attempt to auto-create MedicationDispense.quantity");
else if (Configuration.doAutoCreate())
this.quantity = new Quantity(); // cc
this.quantity = new SimpleQuantity(); // cc
return this.quantity;
}
@ -1292,7 +1273,7 @@ Terminologies used often pre-coordinate this term with the route and or form of
/**
* @param value {@link #quantity} (The amount of medication that has been dispensed. Includes unit of measure.)
*/
public MedicationDispense setQuantity(Quantity value) {
public MedicationDispense setQuantity(SimpleQuantity value) {
this.quantity = value;
return this;
}
@ -1300,12 +1281,12 @@ Terminologies used often pre-coordinate this term with the route and or form of
/**
* @return {@link #daysSupply} (The amount of medication expressed as a timing amount.)
*/
public Quantity getDaysSupply() {
public SimpleQuantity getDaysSupply() {
if (this.daysSupply == null)
if (Configuration.errorOnAutoCreate())
throw new Error("Attempt to auto-create MedicationDispense.daysSupply");
else if (Configuration.doAutoCreate())
this.daysSupply = new Quantity(); // cc
this.daysSupply = new SimpleQuantity(); // cc
return this.daysSupply;
}
@ -1316,7 +1297,7 @@ Terminologies used often pre-coordinate this term with the route and or form of
/**
* @param value {@link #daysSupply} (The amount of medication expressed as a timing amount.)
*/
public MedicationDispense setDaysSupply(Quantity value) {
public MedicationDispense setDaysSupply(SimpleQuantity value) {
this.daysSupply = value;
return this;
}
@ -1676,10 +1657,10 @@ Terminologies used often pre-coordinate this term with the route and or form of
childrenList.add(new Property("status", "code", "A code specifying the state of the set of dispense events.", 0, java.lang.Integer.MAX_VALUE, status));
childrenList.add(new Property("patient", "Reference(Patient)", "A link to a resource representing the person to whom the medication will be given.", 0, java.lang.Integer.MAX_VALUE, patient));
childrenList.add(new Property("dispenser", "Reference(Practitioner)", "The individual responsible for dispensing the medication.", 0, java.lang.Integer.MAX_VALUE, dispenser));
childrenList.add(new Property("authorizingPrescription", "Reference(MedicationPrescription)", "Indicates the medication order that is being dispensed against.", 0, java.lang.Integer.MAX_VALUE, authorizingPrescription));
childrenList.add(new Property("authorizingPrescription", "Reference(MedicationOrder)", "Indicates the medication order that is being dispensed against.", 0, java.lang.Integer.MAX_VALUE, authorizingPrescription));
childrenList.add(new Property("type", "CodeableConcept", "Indicates the type of dispensing event that is performed. Examples include: Trial Fill, Completion of Trial, Partial Fill, Emergency Fill, Samples, etc.", 0, java.lang.Integer.MAX_VALUE, type));
childrenList.add(new Property("quantity", "Quantity", "The amount of medication that has been dispensed. Includes unit of measure.", 0, java.lang.Integer.MAX_VALUE, quantity));
childrenList.add(new Property("daysSupply", "Quantity", "The amount of medication expressed as a timing amount.", 0, java.lang.Integer.MAX_VALUE, daysSupply));
childrenList.add(new Property("quantity", "SimpleQuantity", "The amount of medication that has been dispensed. Includes unit of measure.", 0, java.lang.Integer.MAX_VALUE, quantity));
childrenList.add(new Property("daysSupply", "SimpleQuantity", "The amount of medication expressed as a timing amount.", 0, java.lang.Integer.MAX_VALUE, daysSupply));
childrenList.add(new Property("medication[x]", "CodeableConcept|Reference(Medication)", "Identifies the medication being administered. This is either a link to a resource representing the details of the medication or a simple attribute carrying a code that identifies the medication from a known list of medications.", 0, java.lang.Integer.MAX_VALUE, medication));
childrenList.add(new Property("whenPrepared", "dateTime", "The time when the dispensed product was packaged and reviewed.", 0, java.lang.Integer.MAX_VALUE, whenPrepared));
childrenList.add(new Property("whenHandedOver", "dateTime", "The time the dispensed product was provided to the patient or their representative.", 0, java.lang.Integer.MAX_VALUE, whenHandedOver));
@ -1770,19 +1751,15 @@ Terminologies used often pre-coordinate this term with the route and or form of
return ResourceType.MedicationDispense;
}
@SearchParamDefinition(name="dispenser", path="MedicationDispense.dispenser", description="Return all dispenses performed by a specific indiividual", type="reference" )
public static final String SP_DISPENSER = "dispenser";
@SearchParamDefinition(name="identifier", path="MedicationDispense.identifier", description="Return dispenses with this external identity", type="token" )
public static final String SP_IDENTIFIER = "identifier";
@SearchParamDefinition(name="code", path="MedicationDispense.medicationCodeableConcept", description="Returns dispenses of this medicine code", type="token" )
public static final String SP_CODE = "code";
@SearchParamDefinition(name="receiver", path="MedicationDispense.receiver", description="Who collected the medication", type="reference" )
public static final String SP_RECEIVER = "receiver";
@SearchParamDefinition(name="prescription", path="MedicationDispense.authorizingPrescription", description="The identity of a prescription to list dispenses from", type="reference" )
public static final String SP_PRESCRIPTION = "prescription";
@SearchParamDefinition(name="patient", path="MedicationDispense.patient", description="The identity of a patient to list dispenses for", type="reference" )
public static final String SP_PATIENT = "patient";
@SearchParamDefinition(name="destination", path="MedicationDispense.destination", description="Return dispenses that should be sent to a secific destination", type="reference" )
public static final String SP_DESTINATION = "destination";
@SearchParamDefinition(name="medication", path="MedicationDispense.medicationReference", description="Returns dispenses of this medicine", type="reference" )
@SearchParamDefinition(name="medication", path="MedicationDispense.medicationReference", description="Returns dispenses of this medicine resource", type="reference" )
public static final String SP_MEDICATION = "medication";
@SearchParamDefinition(name="responsibleparty", path="MedicationDispense.substitution.responsibleParty", description="Return all dispenses with the specified responsible party", type="reference" )
public static final String SP_RESPONSIBLEPARTY = "responsibleparty";
@ -1792,6 +1769,12 @@ Terminologies used often pre-coordinate this term with the route and or form of
public static final String SP_WHENHANDEDOVER = "whenhandedover";
@SearchParamDefinition(name="whenprepared", path="MedicationDispense.whenPrepared", description="Date when medication prepared", type="date" )
public static final String SP_WHENPREPARED = "whenprepared";
@SearchParamDefinition(name="dispenser", path="MedicationDispense.dispenser", description="Return all dispenses performed by a specific indiividual", type="reference" )
public static final String SP_DISPENSER = "dispenser";
@SearchParamDefinition(name="prescription", path="MedicationDispense.authorizingPrescription", description="The identity of a prescription to list dispenses from", type="reference" )
public static final String SP_PRESCRIPTION = "prescription";
@SearchParamDefinition(name="patient", path="MedicationDispense.patient", description="The identity of a patient to list dispenses for", type="reference" )
public static final String SP_PATIENT = "patient";
@SearchParamDefinition(name="status", path="MedicationDispense.status", description="Status of the dispense", type="token" )
public static final String SP_STATUS = "status";

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;
@ -144,9 +144,9 @@ public class MedicationStatement extends DomainResource {
/**
* The timing schedule for giving the medication to the patient. The Schedule data type allows many different expressions, for example. "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013".
*/
@Child(name = "schedule", type = {Timing.class}, order=2, min=0, max=1)
@Child(name = "timing", type = {Timing.class}, order=2, min=0, max=1)
@Description(shortDefinition="When/how often was medication taken?", formalDefinition="The timing schedule for giving the medication to the patient. The Schedule data type allows many different expressions, for example. 'Every 8 hours'; 'Three times a day'; '1/2 an hour before breakfast for 10 days from 23-Dec 2011:'; '15 Oct 2013, 17 Oct 2013 and 1 Nov 2013'." )
protected Timing schedule;
protected Timing timing;
/**
* If set to true or if specified as a CodeableConcept, indicates that the medication is only taken when needed within the specified schedule rather than at every scheduled dose. If a CodeableConcept is present, it indicates the precondition for taking the Medication.
@ -179,16 +179,16 @@ public class MedicationStatement extends DomainResource {
/**
* The amount of therapeutic or other substance given at one administration event.
*/
@Child(name = "quantity", type = {Quantity.class}, order=7, min=0, max=1)
@Child(name = "quantity", type = {SimpleQuantity.class}, order=7, min=0, max=1)
@Description(shortDefinition="Amount administered in one dose", formalDefinition="The amount of therapeutic or other substance given at one administration event." )
protected Quantity quantity;
protected SimpleQuantity quantity;
/**
* Identifies the speed with which the substance is introduced into the subject. Typically the rate for an infusion. 200ml in 2 hours.
*/
@Child(name = "rate", type = {Ratio.class}, order=8, min=0, max=1)
@Child(name = "rate", type = {Ratio.class, Range.class}, order=8, min=0, max=1)
@Description(shortDefinition="Dose quantity per unit of time", formalDefinition="Identifies the speed with which the substance is introduced into the subject. Typically the rate for an infusion. 200ml in 2 hours." )
protected Ratio rate;
protected Type rate;
/**
* The maximum total quantity of a therapeutic substance that may be administered to a subject over the period of time. E.g. 1000mg in 24 hours.
@ -197,7 +197,7 @@ public class MedicationStatement extends DomainResource {
@Description(shortDefinition="Maximum dose that was consumed per unit of time", formalDefinition="The maximum total quantity of a therapeutic substance that may be administered to a subject over the period of time. E.g. 1000mg in 24 hours." )
protected Ratio maxDosePerPeriod;
private static final long serialVersionUID = 1729854997L;
private static final long serialVersionUID = -2038870561L;
/*
* Constructor
@ -256,26 +256,26 @@ public class MedicationStatement extends DomainResource {
}
/**
* @return {@link #schedule} (The timing schedule for giving the medication to the patient. The Schedule data type allows many different expressions, for example. "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013".)
* @return {@link #timing} (The timing schedule for giving the medication to the patient. The Schedule data type allows many different expressions, for example. "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013".)
*/
public Timing getSchedule() {
if (this.schedule == null)
public Timing getTiming() {
if (this.timing == null)
if (Configuration.errorOnAutoCreate())
throw new Error("Attempt to auto-create MedicationStatementDosageComponent.schedule");
throw new Error("Attempt to auto-create MedicationStatementDosageComponent.timing");
else if (Configuration.doAutoCreate())
this.schedule = new Timing(); // cc
return this.schedule;
this.timing = new Timing(); // cc
return this.timing;
}
public boolean hasSchedule() {
return this.schedule != null && !this.schedule.isEmpty();
public boolean hasTiming() {
return this.timing != null && !this.timing.isEmpty();
}
/**
* @param value {@link #schedule} (The timing schedule for giving the medication to the patient. The Schedule data type allows many different expressions, for example. "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013".)
* @param value {@link #timing} (The timing schedule for giving the medication to the patient. The Schedule data type allows many different expressions, for example. "Every 8 hours"; "Three times a day"; "1/2 an hour before breakfast for 10 days from 23-Dec 2011:"; "15 Oct 2013, 17 Oct 2013 and 1 Nov 2013".)
*/
public MedicationStatementDosageComponent setSchedule(Timing value) {
this.schedule = value;
public MedicationStatementDosageComponent setTiming(Timing value) {
this.timing = value;
return this;
}
@ -399,12 +399,12 @@ public class MedicationStatement extends DomainResource {
/**
* @return {@link #quantity} (The amount of therapeutic or other substance given at one administration event.)
*/
public Quantity getQuantity() {
public SimpleQuantity getQuantity() {
if (this.quantity == null)
if (Configuration.errorOnAutoCreate())
throw new Error("Attempt to auto-create MedicationStatementDosageComponent.quantity");
else if (Configuration.doAutoCreate())
this.quantity = new Quantity(); // cc
this.quantity = new SimpleQuantity(); // cc
return this.quantity;
}
@ -415,7 +415,7 @@ public class MedicationStatement extends DomainResource {
/**
* @param value {@link #quantity} (The amount of therapeutic or other substance given at one administration event.)
*/
public MedicationStatementDosageComponent setQuantity(Quantity value) {
public MedicationStatementDosageComponent setQuantity(SimpleQuantity value) {
this.quantity = value;
return this;
}
@ -423,15 +423,36 @@ public class MedicationStatement extends DomainResource {
/**
* @return {@link #rate} (Identifies the speed with which the substance is introduced into the subject. Typically the rate for an infusion. 200ml in 2 hours.)
*/
public Ratio getRate() {
if (this.rate == null)
if (Configuration.errorOnAutoCreate())
throw new Error("Attempt to auto-create MedicationStatementDosageComponent.rate");
else if (Configuration.doAutoCreate())
this.rate = new Ratio(); // cc
public Type getRate() {
return this.rate;
}
/**
* @return {@link #rate} (Identifies the speed with which the substance is introduced into the subject. Typically the rate for an infusion. 200ml in 2 hours.)
*/
public Ratio getRateRatio() throws Exception {
if (!(this.rate instanceof Ratio))
throw new Exception("Type mismatch: the type Ratio was expected, but "+this.rate.getClass().getName()+" was encountered");
return (Ratio) this.rate;
}
public boolean hasRateRatio() throws Exception {
return this.rate instanceof Ratio;
}
/**
* @return {@link #rate} (Identifies the speed with which the substance is introduced into the subject. Typically the rate for an infusion. 200ml in 2 hours.)
*/
public Range getRateRange() throws Exception {
if (!(this.rate instanceof Range))
throw new Exception("Type mismatch: the type Range was expected, but "+this.rate.getClass().getName()+" was encountered");
return (Range) this.rate;
}
public boolean hasRateRange() throws Exception {
return this.rate instanceof Range;
}
public boolean hasRate() {
return this.rate != null && !this.rate.isEmpty();
}
@ -439,7 +460,7 @@ public class MedicationStatement extends DomainResource {
/**
* @param value {@link #rate} (Identifies the speed with which the substance is introduced into the subject. Typically the rate for an infusion. 200ml in 2 hours.)
*/
public MedicationStatementDosageComponent setRate(Ratio value) {
public MedicationStatementDosageComponent setRate(Type value) {
this.rate = value;
return this;
}
@ -471,13 +492,13 @@ public class MedicationStatement extends DomainResource {
protected void listChildren(List<Property> childrenList) {
super.listChildren(childrenList);
childrenList.add(new Property("text", "string", "Free text dosage instructions can be used for cases where the instructions are too complex to code. When coded instructions are present, the free text instructions may still be present for display to humans taking or administering the medication.", 0, java.lang.Integer.MAX_VALUE, text));
childrenList.add(new Property("schedule", "Timing", "The timing schedule for giving the medication to the patient. The Schedule data type allows many different expressions, for example. 'Every 8 hours'; 'Three times a day'; '1/2 an hour before breakfast for 10 days from 23-Dec 2011:'; '15 Oct 2013, 17 Oct 2013 and 1 Nov 2013'.", 0, java.lang.Integer.MAX_VALUE, schedule));
childrenList.add(new Property("timing", "Timing", "The timing schedule for giving the medication to the patient. The Schedule data type allows many different expressions, for example. 'Every 8 hours'; 'Three times a day'; '1/2 an hour before breakfast for 10 days from 23-Dec 2011:'; '15 Oct 2013, 17 Oct 2013 and 1 Nov 2013'.", 0, java.lang.Integer.MAX_VALUE, timing));
childrenList.add(new Property("asNeeded[x]", "boolean|CodeableConcept", "If set to true or if specified as a CodeableConcept, indicates that the medication is only taken when needed within the specified schedule rather than at every scheduled dose. If a CodeableConcept is present, it indicates the precondition for taking the Medication.", 0, java.lang.Integer.MAX_VALUE, asNeeded));
childrenList.add(new Property("site", "CodeableConcept", "A coded specification of the anatomic site where the medication first enters the body.", 0, java.lang.Integer.MAX_VALUE, site));
childrenList.add(new Property("route", "CodeableConcept", "A code specifying the route or physiological path of administration of a therapeutic agent into or onto a subject.", 0, java.lang.Integer.MAX_VALUE, route));
childrenList.add(new Property("method", "CodeableConcept", "A coded value indicating the method by which the medication is introduced into or onto the body. Most commonly used for injections. Examples: Slow Push; Deep IV. Terminologies used often pre-coordinate this term with the route and or form of administration.", 0, java.lang.Integer.MAX_VALUE, method));
childrenList.add(new Property("quantity", "Quantity", "The amount of therapeutic or other substance given at one administration event.", 0, java.lang.Integer.MAX_VALUE, quantity));
childrenList.add(new Property("rate", "Ratio", "Identifies the speed with which the substance is introduced into the subject. Typically the rate for an infusion. 200ml in 2 hours.", 0, java.lang.Integer.MAX_VALUE, rate));
childrenList.add(new Property("quantity", "SimpleQuantity", "The amount of therapeutic or other substance given at one administration event.", 0, java.lang.Integer.MAX_VALUE, quantity));
childrenList.add(new Property("rate[x]", "Ratio|Range", "Identifies the speed with which the substance is introduced into the subject. Typically the rate for an infusion. 200ml in 2 hours.", 0, java.lang.Integer.MAX_VALUE, rate));
childrenList.add(new Property("maxDosePerPeriod", "Ratio", "The maximum total quantity of a therapeutic substance that may be administered to a subject over the period of time. E.g. 1000mg in 24 hours.", 0, java.lang.Integer.MAX_VALUE, maxDosePerPeriod));
}
@ -485,7 +506,7 @@ public class MedicationStatement extends DomainResource {
MedicationStatementDosageComponent dst = new MedicationStatementDosageComponent();
copyValues(dst);
dst.text = text == null ? null : text.copy();
dst.schedule = schedule == null ? null : schedule.copy();
dst.timing = timing == null ? null : timing.copy();
dst.asNeeded = asNeeded == null ? null : asNeeded.copy();
dst.site = site == null ? null : site.copy();
dst.route = route == null ? null : route.copy();
@ -503,7 +524,7 @@ public class MedicationStatement extends DomainResource {
if (!(other instanceof MedicationStatementDosageComponent))
return false;
MedicationStatementDosageComponent o = (MedicationStatementDosageComponent) other;
return compareDeep(text, o.text, true) && compareDeep(schedule, o.schedule, true) && compareDeep(asNeeded, o.asNeeded, true)
return compareDeep(text, o.text, true) && compareDeep(timing, o.timing, true) && compareDeep(asNeeded, o.asNeeded, true)
&& compareDeep(site, o.site, true) && compareDeep(route, o.route, true) && compareDeep(method, o.method, true)
&& compareDeep(quantity, o.quantity, true) && compareDeep(rate, o.rate, true) && compareDeep(maxDosePerPeriod, o.maxDosePerPeriod, true)
;
@ -520,7 +541,7 @@ public class MedicationStatement extends DomainResource {
}
public boolean isEmpty() {
return super.isEmpty() && (text == null || text.isEmpty()) && (schedule == null || schedule.isEmpty())
return super.isEmpty() && (text == null || text.isEmpty()) && (timing == null || timing.isEmpty())
&& (asNeeded == null || asNeeded.isEmpty()) && (site == null || site.isEmpty()) && (route == null || route.isEmpty())
&& (method == null || method.isEmpty()) && (quantity == null || quantity.isEmpty()) && (rate == null || rate.isEmpty())
&& (maxDosePerPeriod == null || maxDosePerPeriod.isEmpty());
@ -538,7 +559,7 @@ public class MedicationStatement extends DomainResource {
/**
* The person or animal who is /was taking the medication.
*/
@Child(name = "patient", type = {Patient.class}, order=1, min=0, max=1)
@Child(name = "patient", type = {Patient.class}, order=1, min=1, max=1)
@Description(shortDefinition="Who was/is taking medication", formalDefinition="The person or animal who is /was taking the medication." )
protected Reference patient;
@ -634,8 +655,9 @@ public class MedicationStatement extends DomainResource {
/*
* Constructor
*/
public MedicationStatement(Enumeration<MedicationStatementStatus> status, Type medication) {
public MedicationStatement(Reference patient, Enumeration<MedicationStatementStatus> status, Type medication) {
super();
this.patient = patient;
this.status = status;
this.medication = medication;
}
@ -1257,9 +1279,11 @@ public class MedicationStatement extends DomainResource {
@SearchParamDefinition(name="identifier", path="MedicationStatement.identifier", description="Return statements with this external identity", type="token" )
public static final String SP_IDENTIFIER = "identifier";
@SearchParamDefinition(name="code", path="MedicationStatement.medicationCodeableConcept", description="Return administrations of this medication code", type="token" )
public static final String SP_CODE = "code";
@SearchParamDefinition(name="patient", path="MedicationStatement.patient", description="The identity of a patient to list statements for", type="reference" )
public static final String SP_PATIENT = "patient";
@SearchParamDefinition(name="medication", path="MedicationStatement.medicationReference", description="Code for medicine or text in medicine name", type="reference" )
@SearchParamDefinition(name="medication", path="MedicationStatement.medicationReference", description="Return administrations of this medication reference", type="reference" )
public static final String SP_MEDICATION = "medication";
@SearchParamDefinition(name="source", path="MedicationStatement.informationSource", description="Who the information in the statement came from", type="reference" )
public static final String SP_SOURCE = "source";

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;

View File

@ -29,11 +29,12 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;
import org.hl7.fhir.utilities.Utilities;
import org.hl7.fhir.instance.model.Enumerations.*;
import org.hl7.fhir.instance.model.annotations.Child;
import org.hl7.fhir.instance.model.annotations.Description;
import org.hl7.fhir.instance.model.annotations.DatatypeDef;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import org.hl7.fhir.instance.model.annotations.DatatypeDef;
import org.hl7.fhir.instance.model.annotations.Block;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;
import org.hl7.fhir.utilities.xhtml.XhtmlNode;

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;
@ -588,11 +588,11 @@ public class NutritionOrder extends DomainResource {
/**
* The quantity of the specified nutrient to include in diet.
*/
@Child(name = "amount", type = {Quantity.class}, order=2, min=0, max=1)
@Child(name = "amount", type = {SimpleQuantity.class}, order=2, min=0, max=1)
@Description(shortDefinition="Quantity of the specified nutrient", formalDefinition="The quantity of the specified nutrient to include in diet." )
protected Quantity amount;
protected SimpleQuantity amount;
private static final long serialVersionUID = 1042462093L;
private static final long serialVersionUID = 465107295L;
/*
* Constructor
@ -628,12 +628,12 @@ public class NutritionOrder extends DomainResource {
/**
* @return {@link #amount} (The quantity of the specified nutrient to include in diet.)
*/
public Quantity getAmount() {
public SimpleQuantity getAmount() {
if (this.amount == null)
if (Configuration.errorOnAutoCreate())
throw new Error("Attempt to auto-create NutritionOrderOralDietNutrientComponent.amount");
else if (Configuration.doAutoCreate())
this.amount = new Quantity(); // cc
this.amount = new SimpleQuantity(); // cc
return this.amount;
}
@ -644,7 +644,7 @@ public class NutritionOrder extends DomainResource {
/**
* @param value {@link #amount} (The quantity of the specified nutrient to include in diet.)
*/
public NutritionOrderOralDietNutrientComponent setAmount(Quantity value) {
public NutritionOrderOralDietNutrientComponent setAmount(SimpleQuantity value) {
this.amount = value;
return this;
}
@ -652,7 +652,7 @@ public class NutritionOrder extends DomainResource {
protected void listChildren(List<Property> childrenList) {
super.listChildren(childrenList);
childrenList.add(new Property("modifier", "CodeableConcept", "The nutrient that is being modified such as carbohydrate or sodium.", 0, java.lang.Integer.MAX_VALUE, modifier));
childrenList.add(new Property("amount", "Quantity", "The quantity of the specified nutrient to include in diet.", 0, java.lang.Integer.MAX_VALUE, amount));
childrenList.add(new Property("amount", "SimpleQuantity", "The quantity of the specified nutrient to include in diet.", 0, java.lang.Integer.MAX_VALUE, amount));
}
public NutritionOrderOralDietNutrientComponent copy() {
@ -830,9 +830,9 @@ public class NutritionOrder extends DomainResource {
/**
* The amount of the nutritional supplement to be given.
*/
@Child(name = "quantity", type = {Quantity.class}, order=4, min=0, max=1)
@Child(name = "quantity", type = {SimpleQuantity.class}, order=4, min=0, max=1)
@Description(shortDefinition="Amount of the nutritional supplement", formalDefinition="The amount of the nutritional supplement to be given." )
protected Quantity quantity;
protected SimpleQuantity quantity;
/**
* Free text or additional instructions or information pertaining to the oral supplement.
@ -841,7 +841,7 @@ public class NutritionOrder extends DomainResource {
@Description(shortDefinition="Instructions or additional information about the oral supplement", formalDefinition="Free text or additional instructions or information pertaining to the oral supplement." )
protected StringType instruction;
private static final long serialVersionUID = -37646618L;
private static final long serialVersionUID = 297545236L;
/*
* Constructor
@ -966,12 +966,12 @@ public class NutritionOrder extends DomainResource {
/**
* @return {@link #quantity} (The amount of the nutritional supplement to be given.)
*/
public Quantity getQuantity() {
public SimpleQuantity getQuantity() {
if (this.quantity == null)
if (Configuration.errorOnAutoCreate())
throw new Error("Attempt to auto-create NutritionOrderSupplementComponent.quantity");
else if (Configuration.doAutoCreate())
this.quantity = new Quantity(); // cc
this.quantity = new SimpleQuantity(); // cc
return this.quantity;
}
@ -982,7 +982,7 @@ public class NutritionOrder extends DomainResource {
/**
* @param value {@link #quantity} (The amount of the nutritional supplement to be given.)
*/
public NutritionOrderSupplementComponent setQuantity(Quantity value) {
public NutritionOrderSupplementComponent setQuantity(SimpleQuantity value) {
this.quantity = value;
return this;
}
@ -1041,7 +1041,7 @@ public class NutritionOrder extends DomainResource {
childrenList.add(new Property("type", "CodeableConcept", "The kind of nutritional supplement product required such as a high protein or pediatric clear liquid supplement.", 0, java.lang.Integer.MAX_VALUE, type));
childrenList.add(new Property("productName", "string", "The product or brand name of the nutritional supplement such as 'Acme Protein Shake'.", 0, java.lang.Integer.MAX_VALUE, productName));
childrenList.add(new Property("schedule", "Timing", "The time period and frequency at which the supplement(s) should be given.", 0, java.lang.Integer.MAX_VALUE, schedule));
childrenList.add(new Property("quantity", "Quantity", "The amount of the nutritional supplement to be given.", 0, java.lang.Integer.MAX_VALUE, quantity));
childrenList.add(new Property("quantity", "SimpleQuantity", "The amount of the nutritional supplement to be given.", 0, java.lang.Integer.MAX_VALUE, quantity));
childrenList.add(new Property("instruction", "string", "Free text or additional instructions or information pertaining to the oral supplement.", 0, java.lang.Integer.MAX_VALUE, instruction));
}
@ -1123,9 +1123,9 @@ public class NutritionOrder extends DomainResource {
/**
* The amount of energy (Calories) that the formula should provide per specified volume, typically per mL or fluid oz. For example, an infant may require a formula the provides 24 Calories per fluid ounce or an adult may require an enteral formula that provides 1.5 Calorie/mL.
*/
@Child(name = "caloricDensity", type = {Quantity.class}, order=5, min=0, max=1)
@Child(name = "caloricDensity", type = {SimpleQuantity.class}, order=5, min=0, max=1)
@Description(shortDefinition="Amount of energy per specified volume that is required", formalDefinition="The amount of energy (Calories) that the formula should provide per specified volume, typically per mL or fluid oz. For example, an infant may require a formula the provides 24 Calories per fluid ounce or an adult may require an enteral formula that provides 1.5 Calorie/mL." )
protected Quantity caloricDensity;
protected SimpleQuantity caloricDensity;
/**
* The route or physiological path of administration into the patient 's gastrointestinal tract for purposes of providing the formula feeding, e.g., nasogastric tube.
@ -1144,9 +1144,9 @@ public class NutritionOrder extends DomainResource {
/**
* The maximum total quantity of formula that may be administered to a subject over the period of time, e.g., 1440 mL over 24 hours.
*/
@Child(name = "maxVolumeToDeliver", type = {Quantity.class}, order=8, min=0, max=1)
@Child(name = "maxVolumeToDeliver", type = {SimpleQuantity.class}, order=8, min=0, max=1)
@Description(shortDefinition="Upper limit on formula volume per unit of time", formalDefinition="The maximum total quantity of formula that may be administered to a subject over the period of time, e.g., 1440 mL over 24 hours." )
protected Quantity maxVolumeToDeliver;
protected SimpleQuantity maxVolumeToDeliver;
/**
* Free text formula administration, feeding instructions or additional instructions or information.
@ -1155,7 +1155,7 @@ public class NutritionOrder extends DomainResource {
@Description(shortDefinition="Formula feeding instructions expressed as text", formalDefinition="Free text formula administration, feeding instructions or additional instructions or information." )
protected StringType administrationInstruction;
private static final long serialVersionUID = -124511395L;
private static final long serialVersionUID = 292116061L;
/*
* Constructor
@ -1313,12 +1313,12 @@ public class NutritionOrder extends DomainResource {
/**
* @return {@link #caloricDensity} (The amount of energy (Calories) that the formula should provide per specified volume, typically per mL or fluid oz. For example, an infant may require a formula the provides 24 Calories per fluid ounce or an adult may require an enteral formula that provides 1.5 Calorie/mL.)
*/
public Quantity getCaloricDensity() {
public SimpleQuantity getCaloricDensity() {
if (this.caloricDensity == null)
if (Configuration.errorOnAutoCreate())
throw new Error("Attempt to auto-create NutritionOrderEnteralFormulaComponent.caloricDensity");
else if (Configuration.doAutoCreate())
this.caloricDensity = new Quantity(); // cc
this.caloricDensity = new SimpleQuantity(); // cc
return this.caloricDensity;
}
@ -1329,7 +1329,7 @@ public class NutritionOrder extends DomainResource {
/**
* @param value {@link #caloricDensity} (The amount of energy (Calories) that the formula should provide per specified volume, typically per mL or fluid oz. For example, an infant may require a formula the provides 24 Calories per fluid ounce or an adult may require an enteral formula that provides 1.5 Calorie/mL.)
*/
public NutritionOrderEnteralFormulaComponent setCaloricDensity(Quantity value) {
public NutritionOrderEnteralFormulaComponent setCaloricDensity(SimpleQuantity value) {
this.caloricDensity = value;
return this;
}
@ -1401,12 +1401,12 @@ public class NutritionOrder extends DomainResource {
/**
* @return {@link #maxVolumeToDeliver} (The maximum total quantity of formula that may be administered to a subject over the period of time, e.g., 1440 mL over 24 hours.)
*/
public Quantity getMaxVolumeToDeliver() {
public SimpleQuantity getMaxVolumeToDeliver() {
if (this.maxVolumeToDeliver == null)
if (Configuration.errorOnAutoCreate())
throw new Error("Attempt to auto-create NutritionOrderEnteralFormulaComponent.maxVolumeToDeliver");
else if (Configuration.doAutoCreate())
this.maxVolumeToDeliver = new Quantity(); // cc
this.maxVolumeToDeliver = new SimpleQuantity(); // cc
return this.maxVolumeToDeliver;
}
@ -1417,7 +1417,7 @@ public class NutritionOrder extends DomainResource {
/**
* @param value {@link #maxVolumeToDeliver} (The maximum total quantity of formula that may be administered to a subject over the period of time, e.g., 1440 mL over 24 hours.)
*/
public NutritionOrderEnteralFormulaComponent setMaxVolumeToDeliver(Quantity value) {
public NutritionOrderEnteralFormulaComponent setMaxVolumeToDeliver(SimpleQuantity value) {
this.maxVolumeToDeliver = value;
return this;
}
@ -1477,10 +1477,10 @@ public class NutritionOrder extends DomainResource {
childrenList.add(new Property("baseFormulaProductName", "string", "The product or brand name of the enteral or infant formula product such as 'ACME Adult Standard Formula'.", 0, java.lang.Integer.MAX_VALUE, baseFormulaProductName));
childrenList.add(new Property("additiveType", "CodeableConcept", "Indicates the type of modular component such as protein, carbohydrate, fat or fiber to be provided in addition to or mixed with the base formula.", 0, java.lang.Integer.MAX_VALUE, additiveType));
childrenList.add(new Property("additiveProductName", "string", "The product or brand name of the type of modular component to be added to the formula.", 0, java.lang.Integer.MAX_VALUE, additiveProductName));
childrenList.add(new Property("caloricDensity", "Quantity", "The amount of energy (Calories) that the formula should provide per specified volume, typically per mL or fluid oz. For example, an infant may require a formula the provides 24 Calories per fluid ounce or an adult may require an enteral formula that provides 1.5 Calorie/mL.", 0, java.lang.Integer.MAX_VALUE, caloricDensity));
childrenList.add(new Property("caloricDensity", "SimpleQuantity", "The amount of energy (Calories) that the formula should provide per specified volume, typically per mL or fluid oz. For example, an infant may require a formula the provides 24 Calories per fluid ounce or an adult may require an enteral formula that provides 1.5 Calorie/mL.", 0, java.lang.Integer.MAX_VALUE, caloricDensity));
childrenList.add(new Property("routeofAdministration", "CodeableConcept", "The route or physiological path of administration into the patient 's gastrointestinal tract for purposes of providing the formula feeding, e.g., nasogastric tube.", 0, java.lang.Integer.MAX_VALUE, routeofAdministration));
childrenList.add(new Property("administration", "", "Formula administration instructions as structured data. This repeating structure allows for changing the administration rate or volume over time for both bolus and continuous feeding. An example of this would be an instruction to increase the rate of continuous feeding every 2 hours.", 0, java.lang.Integer.MAX_VALUE, administration));
childrenList.add(new Property("maxVolumeToDeliver", "Quantity", "The maximum total quantity of formula that may be administered to a subject over the period of time, e.g., 1440 mL over 24 hours.", 0, java.lang.Integer.MAX_VALUE, maxVolumeToDeliver));
childrenList.add(new Property("maxVolumeToDeliver", "SimpleQuantity", "The maximum total quantity of formula that may be administered to a subject over the period of time, e.g., 1440 mL over 24 hours.", 0, java.lang.Integer.MAX_VALUE, maxVolumeToDeliver));
childrenList.add(new Property("administrationInstruction", "string", "Free text formula administration, feeding instructions or additional instructions or information.", 0, java.lang.Integer.MAX_VALUE, administrationInstruction));
}
@ -1550,18 +1550,18 @@ public class NutritionOrder extends DomainResource {
/**
* The volume of formula to provide to the patient per the specified administration schedule.
*/
@Child(name = "quantity", type = {Quantity.class}, order=2, min=0, max=1)
@Child(name = "quantity", type = {SimpleQuantity.class}, order=2, min=0, max=1)
@Description(shortDefinition="The volume of formula to provide", formalDefinition="The volume of formula to provide to the patient per the specified administration schedule." )
protected Quantity quantity;
protected SimpleQuantity quantity;
/**
* The rate of administration of formula via a feeding pump, e.g., 60 mL per hour, according to the specified schedule.
*/
@Child(name = "rate", type = {Quantity.class, Ratio.class}, order=3, min=0, max=1)
@Child(name = "rate", type = {SimpleQuantity.class, Ratio.class}, order=3, min=0, max=1)
@Description(shortDefinition="Speed with which the formula is provided per period of time", formalDefinition="The rate of administration of formula via a feeding pump, e.g., 60 mL per hour, according to the specified schedule." )
protected Type rate;
private static final long serialVersionUID = 673093291L;
private static final long serialVersionUID = 1895031997L;
/*
* Constructor
@ -1597,12 +1597,12 @@ public class NutritionOrder extends DomainResource {
/**
* @return {@link #quantity} (The volume of formula to provide to the patient per the specified administration schedule.)
*/
public Quantity getQuantity() {
public SimpleQuantity getQuantity() {
if (this.quantity == null)
if (Configuration.errorOnAutoCreate())
throw new Error("Attempt to auto-create NutritionOrderEnteralFormulaAdministrationComponent.quantity");
else if (Configuration.doAutoCreate())
this.quantity = new Quantity(); // cc
this.quantity = new SimpleQuantity(); // cc
return this.quantity;
}
@ -1613,7 +1613,7 @@ public class NutritionOrder extends DomainResource {
/**
* @param value {@link #quantity} (The volume of formula to provide to the patient per the specified administration schedule.)
*/
public NutritionOrderEnteralFormulaAdministrationComponent setQuantity(Quantity value) {
public NutritionOrderEnteralFormulaAdministrationComponent setQuantity(SimpleQuantity value) {
this.quantity = value;
return this;
}
@ -1628,14 +1628,14 @@ public class NutritionOrder extends DomainResource {
/**
* @return {@link #rate} (The rate of administration of formula via a feeding pump, e.g., 60 mL per hour, according to the specified schedule.)
*/
public Quantity getRateQuantity() throws Exception {
if (!(this.rate instanceof Quantity))
throw new Exception("Type mismatch: the type Quantity was expected, but "+this.rate.getClass().getName()+" was encountered");
return (Quantity) this.rate;
public SimpleQuantity getRateSimpleQuantity() throws Exception {
if (!(this.rate instanceof SimpleQuantity))
throw new Exception("Type mismatch: the type SimpleQuantity was expected, but "+this.rate.getClass().getName()+" was encountered");
return (SimpleQuantity) this.rate;
}
public boolean hasRateQuantity() throws Exception {
return this.rate instanceof Quantity;
public boolean hasRateSimpleQuantity() throws Exception {
return this.rate instanceof SimpleQuantity;
}
/**
@ -1666,8 +1666,8 @@ public class NutritionOrder extends DomainResource {
protected void listChildren(List<Property> childrenList) {
super.listChildren(childrenList);
childrenList.add(new Property("schedule", "Timing", "The time period and frequency at which the enteral formula should be delivered to the patient.", 0, java.lang.Integer.MAX_VALUE, schedule));
childrenList.add(new Property("quantity", "Quantity", "The volume of formula to provide to the patient per the specified administration schedule.", 0, java.lang.Integer.MAX_VALUE, quantity));
childrenList.add(new Property("rate[x]", "Quantity|Ratio", "The rate of administration of formula via a feeding pump, e.g., 60 mL per hour, according to the specified schedule.", 0, java.lang.Integer.MAX_VALUE, rate));
childrenList.add(new Property("quantity", "SimpleQuantity", "The volume of formula to provide to the patient per the specified administration schedule.", 0, java.lang.Integer.MAX_VALUE, quantity));
childrenList.add(new Property("rate[x]", "SimpleQuantity|Ratio", "The rate of administration of formula via a feeding pump, e.g., 60 mL per hour, according to the specified schedule.", 0, java.lang.Integer.MAX_VALUE, rate));
}
public NutritionOrderEnteralFormulaAdministrationComponent copy() {

View File

@ -29,7 +29,7 @@ package org.hl7.fhir.instance.model;
*/
// Generated on Fri, Aug 7, 2015 07:14-0400 for FHIR v0.5.0
// Generated on Thu, Aug 13, 2015 16:43-0400 for FHIR v0.5.0
import java.util.*;
@ -321,16 +321,16 @@ public class Observation extends DomainResource {
/**
* The value of the low bound of the reference range. If this element is omitted, the low bound of the reference range is assumed to be meaningless. (e.g. reference range is <2.3) If the low.comparator element is missing, it is assumed to be '>'.
*/
@Child(name = "low", type = {Quantity.class}, order=1, min=0, max=1)
@Child(name = "low", type = {SimpleQuantity.class}, order=1, min=0, max=1)
@Description(shortDefinition="Low Range, if relevant", formalDefinition="The value of the low bound of the reference range. If this element is omitted, the low bound of the reference range is assumed to be meaningless. (e.g. reference range is <2.3) If the low.comparator element is missing, it is assumed to be '>'." )
protected Quantity low;
protected SimpleQuantity low;
/**
* The value of the high bound of the reference range. If this element is omitted, the high bound of the reference range is assumed to be meaningless. (e.g. reference range is > 5) If the low.comparator element is missing , it is assumed to be '<'.
*/
@Child(name = "high", type = {Quantity.class}, order=2, min=0, max=1)
@Child(name = "high", type = {SimpleQuantity.class}, order=2, min=0, max=1)
@Description(shortDefinition="High Range, if relevant", formalDefinition="The value of the high bound of the reference range. If this element is omitted, the high bound of the reference range is assumed to be meaningless. (e.g. reference range is > 5) If the low.comparator element is missing , it is assumed to be '<'." )
protected Quantity high;
protected SimpleQuantity high;
/**
* Code for the meaning of the reference range.
@ -353,7 +353,7 @@ public class Observation extends DomainResource {
@Description(shortDefinition="Text based reference range in an observation", formalDefinition="Text based reference range in an observation which may be used when a quantitative range is not appropriate for an observation. An example would be a reference value of 'Negative' or a list or table of 'normals'." )
protected StringType text;
private static final long serialVersionUID = 230621180L;
private static final long serialVersionUID = -238694788L;
/*
* Constructor
@ -365,12 +365,12 @@ public class Observation extends DomainResource {
/**
* @return {@link #low} (The value of the low bound of the reference range. If this element is omitted, the low bound of the reference range is assumed to be meaningless. (e.g. reference range is <2.3) If the low.comparator element is missing, it is assumed to be '>'.)
*/
public Quantity getLow() {
public SimpleQuantity getLow() {
if (this.low == null)
if (Configuration.errorOnAutoCreate())
throw new Error("Attempt to auto-create ObservationReferenceRangeComponent.low");
else if (Configuration.doAutoCreate())
this.low = new Quantity(); // cc
this.low = new SimpleQuantity(); // cc
return this.low;
}
@ -381,7 +381,7 @@ public class Observation extends DomainResource {
/**
* @param value {@link #low} (The value of the low bound of the reference range. If this element is omitted, the low bound of the reference range is assumed to be meaningless. (e.g. reference range is <2.3) If the low.comparator element is missing, it is assumed to be '>'.)
*/
public ObservationReferenceRangeComponent setLow(Quantity value) {
public ObservationReferenceRangeComponent setLow(SimpleQuantity value) {
this.low = value;
return this;
}
@ -389,12 +389,12 @@ public class Observation extends DomainResource {
/**
* @return {@link #high} (The value of the high bound of the reference range. If this element is omitted, the high bound of the reference range is assumed to be meaningless. (e.g. reference range is > 5) If the low.comparator element is missing , it is assumed to be '<'.)
*/
public Quantity getHigh() {
public SimpleQuantity getHigh() {
if (this.high == null)
if (Configuration.errorOnAutoCreate())
throw new Error("Attempt to auto-create ObservationReferenceRangeComponent.high");
else if (Configuration.doAutoCreate())
this.high = new Quantity(); // cc
this.high = new SimpleQuantity(); // cc
return this.high;
}
@ -405,7 +405,7 @@ public class Observation extends DomainResource {
/**
* @param value {@link #high} (The value of the high bound of the reference range. If this element is omitted, the high bound of the reference range is assumed to be meaningless. (e.g. reference range is > 5) If the low.comparator element is missing , it is assumed to be '<'.)
*/
public ObservationReferenceRangeComponent setHigh(Quantity value) {
public ObservationReferenceRangeComponent setHigh(SimpleQuantity value) {
this.high = value;
return this;
}
@ -509,8 +509,8 @@ public class Observation extends DomainResource {
protected void listChildren(List<Property> childrenList) {
super.listChildren(childrenList);
childrenList.add(new Property("low", "Quantity", "The value of the low bound of the reference range. If this element is omitted, the low bound of the reference range is assumed to be meaningless. (e.g. reference range is <2.3) If the low.comparator element is missing, it is assumed to be '>'.", 0, java.lang.Integer.MAX_VALUE, low));
childrenList.add(new Property("high", "Quantity", "The value of the high bound of the reference range. If this element is omitted, the high bound of the reference range is assumed to be meaningless. (e.g. reference range is > 5) If the low.comparator element is missing , it is assumed to be '<'.", 0, java.lang.Integer.MAX_VALUE, high));
childrenList.add(new Property("low", "SimpleQuantity", "The value of the low bound of the reference range. If this element is omitted, the low bound of the reference range is assumed to be meaningless. (e.g. reference range is <2.3) If the low.comparator element is missing, it is assumed to be '>'.", 0, java.lang.Integer.MAX_VALUE, low));
childrenList.add(new Property("high", "SimpleQuantity", "The value of the high bound of the reference range. If this element is omitted, the high bound of the reference range is assumed to be meaningless. (e.g. reference range is > 5) If the low.comparator element is missing , it is assumed to be '<'.", 0, java.lang.Integer.MAX_VALUE, high));
childrenList.add(new Property("meaning", "CodeableConcept", "Code for the meaning of the reference range.", 0, java.lang.Integer.MAX_VALUE, meaning));
childrenList.add(new Property("age", "Range", "The age at which this reference range is applicable. This is a neonatal age (e.g. number of weeks at term) if the meaning says so.", 0, java.lang.Integer.MAX_VALUE, age));
childrenList.add(new Property("text", "string", "Text based reference range in an observation which may be used when a quantitative range is not appropriate for an observation. An example would be a reference value of 'Negative' or a list or table of 'normals'.", 0, java.lang.Integer.MAX_VALUE, text));

Some files were not shown because too many files have changed in this diff Show More