Increase code lengths
This commit is contained in:
parent
b2741dab0d
commit
54c07263b6
|
@ -49,6 +49,7 @@ import static org.apache.commons.lang3.StringUtils.isNotBlank;
|
||||||
@Index(name = "IDX_CONCEPT_UPDATED", columnList = "CONCEPT_UPDATED")
|
@Index(name = "IDX_CONCEPT_UPDATED", columnList = "CONCEPT_UPDATED")
|
||||||
})
|
})
|
||||||
public class TermConcept implements Serializable {
|
public class TermConcept implements Serializable {
|
||||||
|
public static final int CODE_LENGTH = 500;
|
||||||
protected static final int MAX_DESC_LENGTH = 400;
|
protected static final int MAX_DESC_LENGTH = 400;
|
||||||
private static final org.slf4j.Logger ourLog = org.slf4j.LoggerFactory.getLogger(TermConcept.class);
|
private static final org.slf4j.Logger ourLog = org.slf4j.LoggerFactory.getLogger(TermConcept.class);
|
||||||
|
|
||||||
|
@ -57,7 +58,7 @@ public class TermConcept implements Serializable {
|
||||||
@OneToMany(fetch = FetchType.LAZY, mappedBy = "myParent", cascade = {})
|
@OneToMany(fetch = FetchType.LAZY, mappedBy = "myParent", cascade = {})
|
||||||
private Collection<TermConceptParentChildLink> myChildren;
|
private Collection<TermConceptParentChildLink> myChildren;
|
||||||
|
|
||||||
@Column(name = "CODE", length = 100, nullable = false)
|
@Column(name = "CODE", length = CODE_LENGTH, nullable = false)
|
||||||
@Fields({@Field(name = "myCode", index = org.hibernate.search.annotations.Index.YES, store = Store.YES, analyze = Analyze.YES, analyzer = @Analyzer(definition = "exactAnalyzer")),})
|
@Fields({@Field(name = "myCode", index = org.hibernate.search.annotations.Index.YES, store = Store.YES, analyze = Analyze.YES, analyzer = @Analyzer(definition = "exactAnalyzer")),})
|
||||||
private String myCode;
|
private String myCode;
|
||||||
@Temporal(TemporalType.TIMESTAMP)
|
@Temporal(TemporalType.TIMESTAMP)
|
||||||
|
|
|
@ -45,7 +45,7 @@ public class TermConceptMapGroupElement implements Serializable {
|
||||||
@JoinColumn(name = "CONCEPT_MAP_GROUP_PID", nullable = false, referencedColumnName = "PID", foreignKey=@ForeignKey(name="FK_TCMGELEMENT_GROUP"))
|
@JoinColumn(name = "CONCEPT_MAP_GROUP_PID", nullable = false, referencedColumnName = "PID", foreignKey=@ForeignKey(name="FK_TCMGELEMENT_GROUP"))
|
||||||
private TermConceptMapGroup myConceptMapGroup;
|
private TermConceptMapGroup myConceptMapGroup;
|
||||||
|
|
||||||
@Column(name = "SOURCE_CODE", nullable = false, length = 100)
|
@Column(name = "SOURCE_CODE", nullable = false, length = TermConcept.CODE_LENGTH)
|
||||||
private String myCode;
|
private String myCode;
|
||||||
|
|
||||||
@Column(name = "SOURCE_DISPLAY", length = TermConcept.MAX_DESC_LENGTH)
|
@Column(name = "SOURCE_DISPLAY", length = TermConcept.MAX_DESC_LENGTH)
|
||||||
|
|
|
@ -44,7 +44,7 @@ public class TermConceptMapGroupElementTarget implements Serializable {
|
||||||
@JoinColumn(name = "CONCEPT_MAP_GRP_ELM_PID", nullable = false, referencedColumnName = "PID", foreignKey=@ForeignKey(name="FK_TCMGETARGET_ELEMENT"))
|
@JoinColumn(name = "CONCEPT_MAP_GRP_ELM_PID", nullable = false, referencedColumnName = "PID", foreignKey=@ForeignKey(name="FK_TCMGETARGET_ELEMENT"))
|
||||||
private TermConceptMapGroupElement myConceptMapGroupElement;
|
private TermConceptMapGroupElement myConceptMapGroupElement;
|
||||||
|
|
||||||
@Column(name = "TARGET_CODE", nullable = false, length = 50)
|
@Column(name = "TARGET_CODE", nullable = false, length = TermConcept.CODE_LENGTH)
|
||||||
private String myCode;
|
private String myCode;
|
||||||
|
|
||||||
@Column(name = "TARGET_DISPLAY", length = TermConcept.MAX_DESC_LENGTH)
|
@Column(name = "TARGET_DISPLAY", length = TermConcept.MAX_DESC_LENGTH)
|
||||||
|
|
|
@ -9,9 +9,9 @@ package ca.uhn.fhir.rest.server.interceptor;
|
||||||
* Licensed under the Apache License, Version 2.0 (the "License");
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
* you may not use this file except in compliance with the License.
|
* you may not use this file except in compliance with the License.
|
||||||
* You may obtain a copy of the License at
|
* You may obtain a copy of the License at
|
||||||
*
|
*
|
||||||
* http://www.apache.org/licenses/LICENSE-2.0
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
*
|
*
|
||||||
* Unless required by applicable law or agreed to in writing, software
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
* distributed under the License is distributed on an "AS IS" BASIS,
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
@ -262,6 +262,10 @@ public interface IServerInterceptor {
|
||||||
* This method is called after all processing is completed for a request, but only if the
|
* This method is called after all processing is completed for a request, but only if the
|
||||||
* request completes normally (i.e. no exception is thrown).
|
* request completes normally (i.e. no exception is thrown).
|
||||||
* <p>
|
* <p>
|
||||||
|
* This method should not throw any exceptions. Any exception that is thrown by this
|
||||||
|
* method will be logged, but otherwise not acted upon.
|
||||||
|
* </p>
|
||||||
|
* <p>
|
||||||
* Note that this individual interceptors will have this method called in the reverse order from the order in
|
* Note that this individual interceptors will have this method called in the reverse order from the order in
|
||||||
* which the interceptors were registered with the server.
|
* which the interceptors were registered with the server.
|
||||||
* </p>
|
* </p>
|
||||||
|
|
|
@ -156,6 +156,28 @@ public class InterceptorDstu3Test {
|
||||||
assertNotNull(arTypeCapt.getValue().getResource());
|
assertNotNull(arTypeCapt.getValue().getResource());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testExceptionInProcessingCompletedNormally() throws Exception {
|
||||||
|
ourServlet.setInterceptors(myInterceptor1);
|
||||||
|
|
||||||
|
when(myInterceptor1.incomingRequestPreProcessed(nullable(HttpServletRequest.class), nullable(HttpServletResponse.class))).thenReturn(true);
|
||||||
|
when(myInterceptor1.incomingRequestPostProcessed(nullable(ServletRequestDetails.class), nullable(HttpServletRequest.class), nullable(HttpServletResponse.class))).thenReturn(true);
|
||||||
|
when(myInterceptor1.outgoingResponse(nullable(ServletRequestDetails.class), nullable(OperationOutcome.class))).thenReturn(true);
|
||||||
|
when(myInterceptor1.outgoingResponse(nullable(ServletRequestDetails.class), nullable(ResponseDetails.class), nullable(HttpServletRequest.class), nullable(HttpServletResponse.class))).thenReturn(true);
|
||||||
|
doThrow(new NullPointerException("FOO")).when(myInterceptor1).processingCompletedNormally(any());
|
||||||
|
|
||||||
|
String input = createInput();
|
||||||
|
|
||||||
|
HttpPost httpPost = new HttpPost("http://localhost:" + ourPort + "/Patient");
|
||||||
|
httpPost.setEntity(new StringEntity(input, ContentType.create(Constants.CT_FHIR_JSON, "UTF-8")));
|
||||||
|
HttpResponse status = ourClient.execute(httpPost);
|
||||||
|
try {
|
||||||
|
assertEquals(201, status.getStatusLine().getStatusCode());
|
||||||
|
} finally {
|
||||||
|
IOUtils.closeQuietly(status.getEntity().getContent());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testResponseWithNothing() throws Exception {
|
public void testResponseWithNothing() throws Exception {
|
||||||
ourServlet.setInterceptors(myInterceptor1);
|
ourServlet.setInterceptors(myInterceptor1);
|
||||||
|
@ -229,34 +251,6 @@ public class InterceptorDstu3Test {
|
||||||
i.resourceUpdated(null, null, null);
|
i.resourceUpdated(null, null, null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@AfterClass
|
|
||||||
public static void afterClassClearContext() throws Exception {
|
|
||||||
ourServer.stop();
|
|
||||||
TestUtil.clearAllStaticFieldsForUnitTest();
|
|
||||||
}
|
|
||||||
|
|
||||||
@BeforeClass
|
|
||||||
public static void beforeClass() throws Exception {
|
|
||||||
ourPort = PortUtil.findFreePort();
|
|
||||||
ourServer = new Server(ourPort);
|
|
||||||
|
|
||||||
DummyPatientResourceProvider patientProvider = new DummyPatientResourceProvider();
|
|
||||||
|
|
||||||
ServletHandler proxyHandler = new ServletHandler();
|
|
||||||
ourServlet = new RestfulServer(ourCtx);
|
|
||||||
ourServlet.setResourceProviders(patientProvider);
|
|
||||||
ServletHolder servletHolder = new ServletHolder(ourServlet);
|
|
||||||
proxyHandler.addServletWithMapping(servletHolder, "/*");
|
|
||||||
ourServer.setHandler(proxyHandler);
|
|
||||||
ourServer.start();
|
|
||||||
|
|
||||||
PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager(5000, TimeUnit.MILLISECONDS);
|
|
||||||
HttpClientBuilder builder = HttpClientBuilder.create();
|
|
||||||
builder.setConnectionManager(connectionManager);
|
|
||||||
ourClient = builder.build();
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public static class DummyPatientResourceProvider implements IResourceProvider {
|
public static class DummyPatientResourceProvider implements IResourceProvider {
|
||||||
|
|
||||||
@Create()
|
@Create()
|
||||||
|
@ -285,4 +279,32 @@ public class InterceptorDstu3Test {
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@AfterClass
|
||||||
|
public static void afterClassClearContext() throws Exception {
|
||||||
|
ourServer.stop();
|
||||||
|
TestUtil.clearAllStaticFieldsForUnitTest();
|
||||||
|
}
|
||||||
|
|
||||||
|
@BeforeClass
|
||||||
|
public static void beforeClass() throws Exception {
|
||||||
|
ourPort = PortUtil.findFreePort();
|
||||||
|
ourServer = new Server(ourPort);
|
||||||
|
|
||||||
|
DummyPatientResourceProvider patientProvider = new DummyPatientResourceProvider();
|
||||||
|
|
||||||
|
ServletHandler proxyHandler = new ServletHandler();
|
||||||
|
ourServlet = new RestfulServer(ourCtx);
|
||||||
|
ourServlet.setResourceProviders(patientProvider);
|
||||||
|
ServletHolder servletHolder = new ServletHolder(ourServlet);
|
||||||
|
proxyHandler.addServletWithMapping(servletHolder, "/*");
|
||||||
|
ourServer.setHandler(proxyHandler);
|
||||||
|
ourServer.start();
|
||||||
|
|
||||||
|
PoolingHttpClientConnectionManager connectionManager = new PoolingHttpClientConnectionManager(5000, TimeUnit.MILLISECONDS);
|
||||||
|
HttpClientBuilder builder = HttpClientBuilder.create();
|
||||||
|
builder.setConnectionManager(connectionManager);
|
||||||
|
ourClient = builder.build();
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -36,6 +36,20 @@ public class JsonParserR4Test {
|
||||||
return b;
|
return b;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testDontStripVersions() {
|
||||||
|
FhirContext ctx = FhirContext.forR4();
|
||||||
|
ctx.getParserOptions().setDontStripVersionsFromReferencesAtPaths("QuestionnaireResponse.questionnaire");
|
||||||
|
|
||||||
|
QuestionnaireResponse qr = new QuestionnaireResponse();
|
||||||
|
qr.getQuestionnaireElement().setValueAsString("Questionnaire/123/_history/456");
|
||||||
|
|
||||||
|
String output = ctx.newJsonParser().setPrettyPrint(true).encodeResourceToString(qr);
|
||||||
|
ourLog.info(output);
|
||||||
|
|
||||||
|
assertThat(output, containsString("\"Questionnaire/123/_history/456\""));
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* See #814
|
* See #814
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -293,6 +293,10 @@
|
||||||
A crash was fixed when using the ConceptMap/$translate operation to translate a mapping
|
A crash was fixed when using the ConceptMap/$translate operation to translate a mapping
|
||||||
where the equivalence was not specified.
|
where the equivalence was not specified.
|
||||||
</action>
|
</action>
|
||||||
|
<action type="add">
|
||||||
|
The maximum length for codes in the JPA server terminology service have been increased
|
||||||
|
to 500 in order to better accomodate code systems with very long codes.
|
||||||
|
</action>
|
||||||
</release>
|
</release>
|
||||||
<release version="3.4.0" date="2018-05-28">
|
<release version="3.4.0" date="2018-05-28">
|
||||||
<action type="add">
|
<action type="add">
|
||||||
|
|
Loading…
Reference in New Issue