remove hapi jpa spring config hierarchy (#3390)
* initial refactor to remove hapi jpa spring config hierarchy * fix poms * fix batch config * dependency rearrangement arising from further testing * fix searchDao bean name * fixed dstu2 tests * consolidate validation config * dstu2 validation regression (man dstu2 support is expensive) * fix test (with WIP comment) * restore poms * fix demo projects * fix build * bumping version * rename generated config class
This commit is contained in:
parent
1c82d0933c
commit
631391819b
|
@ -4,7 +4,7 @@
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||||
<artifactId>hapi-fhir</artifactId>
|
<artifactId>hapi-fhir</artifactId>
|
||||||
<version>6.0.0-PRE2-SNAPSHOT</version>
|
<version>6.0.0-PRE3-SNAPSHOT</version>
|
||||||
<relativePath>../pom.xml</relativePath>
|
<relativePath>../pom.xml</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||||
<artifactId>hapi-deployable-pom</artifactId>
|
<artifactId>hapi-deployable-pom</artifactId>
|
||||||
<version>6.0.0-PRE2-SNAPSHOT</version>
|
<version>6.0.0-PRE3-SNAPSHOT</version>
|
||||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||||
<artifactId>hapi-deployable-pom</artifactId>
|
<artifactId>hapi-deployable-pom</artifactId>
|
||||||
<version>6.0.0-PRE2-SNAPSHOT</version>
|
<version>6.0.0-PRE3-SNAPSHOT</version>
|
||||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,5 @@
|
||||||
|
package ca.uhn.fhir.rest.api;
|
||||||
|
|
||||||
|
public interface IResourceSupportedSvc {
|
||||||
|
boolean isSupported(String theResourceName);
|
||||||
|
}
|
|
@ -6,7 +6,7 @@
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||||
<artifactId>hapi-deployable-pom</artifactId>
|
<artifactId>hapi-deployable-pom</artifactId>
|
||||||
<version>6.0.0-PRE2-SNAPSHOT</version>
|
<version>6.0.0-PRE3-SNAPSHOT</version>
|
||||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
|
|
|
@ -3,14 +3,14 @@
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||||
<artifactId>hapi-fhir-bom</artifactId>
|
<artifactId>hapi-fhir-bom</artifactId>
|
||||||
<version>6.0.0-PRE2-SNAPSHOT</version>
|
<version>6.0.0-PRE3-SNAPSHOT</version>
|
||||||
<packaging>pom</packaging>
|
<packaging>pom</packaging>
|
||||||
<name>HAPI FHIR BOM</name>
|
<name>HAPI FHIR BOM</name>
|
||||||
|
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||||
<artifactId>hapi-deployable-pom</artifactId>
|
<artifactId>hapi-deployable-pom</artifactId>
|
||||||
<version>6.0.0-PRE2-SNAPSHOT</version>
|
<version>6.0.0-PRE3-SNAPSHOT</version>
|
||||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||||
<artifactId>hapi-fhir</artifactId>
|
<artifactId>hapi-fhir</artifactId>
|
||||||
<version>6.0.0-PRE2-SNAPSHOT</version>
|
<version>6.0.0-PRE3-SNAPSHOT</version>
|
||||||
<relativePath>../pom.xml</relativePath>
|
<relativePath>../pom.xml</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||||
<artifactId>hapi-deployable-pom</artifactId>
|
<artifactId>hapi-deployable-pom</artifactId>
|
||||||
<version>6.0.0-PRE2-SNAPSHOT</version>
|
<version>6.0.0-PRE3-SNAPSHOT</version>
|
||||||
<relativePath>../../hapi-deployable-pom/pom.xml</relativePath>
|
<relativePath>../../hapi-deployable-pom/pom.xml</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||||
<artifactId>hapi-fhir-cli</artifactId>
|
<artifactId>hapi-fhir-cli</artifactId>
|
||||||
<version>6.0.0-PRE2-SNAPSHOT</version>
|
<version>6.0.0-PRE3-SNAPSHOT</version>
|
||||||
<relativePath>../pom.xml</relativePath>
|
<relativePath>../pom.xml</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||||
<artifactId>hapi-deployable-pom</artifactId>
|
<artifactId>hapi-deployable-pom</artifactId>
|
||||||
<version>6.0.0-PRE2-SNAPSHOT</version>
|
<version>6.0.0-PRE3-SNAPSHOT</version>
|
||||||
<relativePath>../../hapi-deployable-pom</relativePath>
|
<relativePath>../../hapi-deployable-pom</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
|
|
|
@ -20,14 +20,15 @@ package ca.uhn.fhir.jpa.demo;
|
||||||
* #L%
|
* #L%
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
import ca.uhn.fhir.context.FhirContext;
|
||||||
import ca.uhn.fhir.jpa.api.config.DaoConfig;
|
import ca.uhn.fhir.jpa.api.config.DaoConfig;
|
||||||
import ca.uhn.fhir.jpa.config.BaseJavaConfigDstu2;
|
import ca.uhn.fhir.jpa.config.HapiJpaConfig;
|
||||||
|
import ca.uhn.fhir.jpa.config.JpaDstu2Config;
|
||||||
|
import ca.uhn.fhir.jpa.config.util.HapiEntityManagerFactoryUtil;
|
||||||
import ca.uhn.fhir.jpa.util.SubscriptionsRequireManualActivationInterceptorDstu2;
|
import ca.uhn.fhir.jpa.util.SubscriptionsRequireManualActivationInterceptorDstu2;
|
||||||
import ca.uhn.fhir.rest.server.interceptor.IServerInterceptor;
|
import ca.uhn.fhir.rest.server.interceptor.IServerInterceptor;
|
||||||
import ca.uhn.fhir.rest.server.interceptor.LoggingInterceptor;
|
import ca.uhn.fhir.rest.server.interceptor.LoggingInterceptor;
|
||||||
import ca.uhn.fhir.rest.server.interceptor.ResponseHighlighterInterceptor;
|
import ca.uhn.fhir.rest.server.interceptor.ResponseHighlighterInterceptor;
|
||||||
import org.apache.commons.lang3.time.DateUtils;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowire;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Qualifier;
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
|
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
|
||||||
|
@ -45,8 +46,8 @@ import java.util.Properties;
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
@EnableTransactionManagement()
|
@EnableTransactionManagement()
|
||||||
@Import(CommonConfig.class)
|
@Import({CommonConfig.class, JpaDstu2Config.class, HapiJpaConfig.class})
|
||||||
public class FhirServerConfig extends BaseJavaConfigDstu2 {
|
public class FhirServerConfig {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private DataSource myDataSource;
|
private DataSource myDataSource;
|
||||||
|
@ -64,10 +65,9 @@ public class FhirServerConfig extends BaseJavaConfigDstu2 {
|
||||||
return retVal;
|
return retVal;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
@Bean
|
@Bean
|
||||||
public LocalContainerEntityManagerFactoryBean entityManagerFactory(ConfigurableListableBeanFactory theConfigurableListableBeanFactory) {
|
public LocalContainerEntityManagerFactoryBean entityManagerFactory(ConfigurableListableBeanFactory theConfigurableListableBeanFactory, FhirContext theFhirContext) {
|
||||||
LocalContainerEntityManagerFactoryBean retVal = super.entityManagerFactory(theConfigurableListableBeanFactory);
|
LocalContainerEntityManagerFactoryBean retVal = HapiEntityManagerFactoryUtil.newEntityManagerFactory(theConfigurableListableBeanFactory, theFhirContext);
|
||||||
retVal.setPersistenceUnitName("HAPI_PU");
|
retVal.setPersistenceUnitName("HAPI_PU");
|
||||||
retVal.setDataSource(myDataSource);
|
retVal.setDataSource(myDataSource);
|
||||||
retVal.setJpaProperties(myJpaProperties);
|
retVal.setJpaProperties(myJpaProperties);
|
||||||
|
@ -92,13 +92,13 @@ public class FhirServerConfig extends BaseJavaConfigDstu2 {
|
||||||
* This interceptor adds some pretty syntax highlighting in responses when a browser is detected
|
* This interceptor adds some pretty syntax highlighting in responses when a browser is detected
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@Bean(autowire = Autowire.BY_TYPE)
|
@Bean
|
||||||
public ResponseHighlighterInterceptor responseHighlighterInterceptor() {
|
public ResponseHighlighterInterceptor responseHighlighterInterceptor() {
|
||||||
ResponseHighlighterInterceptor retVal = new ResponseHighlighterInterceptor();
|
ResponseHighlighterInterceptor retVal = new ResponseHighlighterInterceptor();
|
||||||
return retVal;
|
return retVal;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean(autowire = Autowire.BY_TYPE)
|
@Bean
|
||||||
public IServerInterceptor subscriptionSecurityInterceptor() {
|
public IServerInterceptor subscriptionSecurityInterceptor() {
|
||||||
SubscriptionsRequireManualActivationInterceptorDstu2 retVal = new SubscriptionsRequireManualActivationInterceptorDstu2();
|
SubscriptionsRequireManualActivationInterceptorDstu2 retVal = new SubscriptionsRequireManualActivationInterceptorDstu2();
|
||||||
return retVal;
|
return retVal;
|
||||||
|
|
|
@ -20,14 +20,14 @@ package ca.uhn.fhir.jpa.demo;
|
||||||
* #L%
|
* #L%
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import ca.uhn.fhir.jpa.binstore.DatabaseBlobBinaryStorageSvcImpl;
|
import ca.uhn.fhir.context.FhirContext;
|
||||||
import ca.uhn.fhir.jpa.binstore.IBinaryStorageSvc;
|
import ca.uhn.fhir.jpa.config.HapiJpaConfig;
|
||||||
import ca.uhn.fhir.jpa.config.BaseJavaConfigDstu3;
|
import ca.uhn.fhir.jpa.config.dstu3.JpaDstu3Config;
|
||||||
|
import ca.uhn.fhir.jpa.config.util.HapiEntityManagerFactoryUtil;
|
||||||
import ca.uhn.fhir.jpa.util.SubscriptionsRequireManualActivationInterceptorDstu3;
|
import ca.uhn.fhir.jpa.util.SubscriptionsRequireManualActivationInterceptorDstu3;
|
||||||
import ca.uhn.fhir.rest.server.interceptor.IServerInterceptor;
|
import ca.uhn.fhir.rest.server.interceptor.IServerInterceptor;
|
||||||
import ca.uhn.fhir.rest.server.interceptor.LoggingInterceptor;
|
import ca.uhn.fhir.rest.server.interceptor.LoggingInterceptor;
|
||||||
import ca.uhn.fhir.rest.server.interceptor.ResponseHighlighterInterceptor;
|
import ca.uhn.fhir.rest.server.interceptor.ResponseHighlighterInterceptor;
|
||||||
import org.springframework.beans.factory.annotation.Autowire;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Qualifier;
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
|
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
|
||||||
|
@ -52,8 +52,8 @@ import java.util.Properties;
|
||||||
*/
|
*/
|
||||||
@Configuration
|
@Configuration
|
||||||
@EnableTransactionManagement()
|
@EnableTransactionManagement()
|
||||||
@Import(CommonConfig.class)
|
@Import({CommonConfig.class, JpaDstu3Config.class, HapiJpaConfig.class,})
|
||||||
public class FhirServerConfigDstu3 extends BaseJavaConfigDstu3 {
|
public class FhirServerConfigDstu3 {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private DataSource myDataSource;
|
private DataSource myDataSource;
|
||||||
|
@ -61,10 +61,9 @@ public class FhirServerConfigDstu3 extends BaseJavaConfigDstu3 {
|
||||||
@Qualifier("jpaProperties")
|
@Qualifier("jpaProperties")
|
||||||
private Properties myJpaProperties;
|
private Properties myJpaProperties;
|
||||||
|
|
||||||
@Override
|
|
||||||
@Bean
|
@Bean
|
||||||
public LocalContainerEntityManagerFactoryBean entityManagerFactory(ConfigurableListableBeanFactory theConfigurableListableBeanFactory) {
|
public LocalContainerEntityManagerFactoryBean entityManagerFactory(ConfigurableListableBeanFactory theConfigurableListableBeanFactory, FhirContext theFhirContext) {
|
||||||
LocalContainerEntityManagerFactoryBean retVal = super.entityManagerFactory(theConfigurableListableBeanFactory);
|
LocalContainerEntityManagerFactoryBean retVal = HapiEntityManagerFactoryUtil.newEntityManagerFactory(theConfigurableListableBeanFactory, theFhirContext);
|
||||||
retVal.setPersistenceUnitName("HAPI_PU");
|
retVal.setPersistenceUnitName("HAPI_PU");
|
||||||
retVal.setDataSource(myDataSource);
|
retVal.setDataSource(myDataSource);
|
||||||
retVal.setJpaProperties(myJpaProperties);
|
retVal.setJpaProperties(myJpaProperties);
|
||||||
|
@ -89,13 +88,13 @@ public class FhirServerConfigDstu3 extends BaseJavaConfigDstu3 {
|
||||||
* This interceptor adds some pretty syntax highlighting in responses when a browser is detected
|
* This interceptor adds some pretty syntax highlighting in responses when a browser is detected
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@Bean(autowire = Autowire.BY_TYPE)
|
@Bean
|
||||||
public ResponseHighlighterInterceptor responseHighlighterInterceptor() {
|
public ResponseHighlighterInterceptor responseHighlighterInterceptor() {
|
||||||
ResponseHighlighterInterceptor retVal = new ResponseHighlighterInterceptor();
|
ResponseHighlighterInterceptor retVal = new ResponseHighlighterInterceptor();
|
||||||
return retVal;
|
return retVal;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean(autowire = Autowire.BY_TYPE)
|
@Bean
|
||||||
public IServerInterceptor subscriptionSecurityInterceptor() {
|
public IServerInterceptor subscriptionSecurityInterceptor() {
|
||||||
SubscriptionsRequireManualActivationInterceptorDstu3 retVal = new SubscriptionsRequireManualActivationInterceptorDstu3();
|
SubscriptionsRequireManualActivationInterceptorDstu3 retVal = new SubscriptionsRequireManualActivationInterceptorDstu3();
|
||||||
return retVal;
|
return retVal;
|
||||||
|
|
|
@ -20,12 +20,14 @@ package ca.uhn.fhir.jpa.demo;
|
||||||
* #L%
|
* #L%
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import ca.uhn.fhir.jpa.config.BaseJavaConfigR4;
|
import ca.uhn.fhir.context.FhirContext;
|
||||||
|
import ca.uhn.fhir.jpa.config.HapiJpaConfig;
|
||||||
|
import ca.uhn.fhir.jpa.config.r4.JpaR4Config;
|
||||||
|
import ca.uhn.fhir.jpa.config.util.HapiEntityManagerFactoryUtil;
|
||||||
import ca.uhn.fhir.jpa.util.SubscriptionsRequireManualActivationInterceptorR4;
|
import ca.uhn.fhir.jpa.util.SubscriptionsRequireManualActivationInterceptorR4;
|
||||||
import ca.uhn.fhir.rest.server.interceptor.IServerInterceptor;
|
import ca.uhn.fhir.rest.server.interceptor.IServerInterceptor;
|
||||||
import ca.uhn.fhir.rest.server.interceptor.LoggingInterceptor;
|
import ca.uhn.fhir.rest.server.interceptor.LoggingInterceptor;
|
||||||
import ca.uhn.fhir.rest.server.interceptor.ResponseHighlighterInterceptor;
|
import ca.uhn.fhir.rest.server.interceptor.ResponseHighlighterInterceptor;
|
||||||
import org.springframework.beans.factory.annotation.Autowire;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Qualifier;
|
import org.springframework.beans.factory.annotation.Qualifier;
|
||||||
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
|
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
|
||||||
|
@ -50,8 +52,8 @@ import java.util.Properties;
|
||||||
*/
|
*/
|
||||||
@Configuration
|
@Configuration
|
||||||
@EnableTransactionManagement()
|
@EnableTransactionManagement()
|
||||||
@Import(CommonConfig.class)
|
@Import({CommonConfig.class, JpaR4Config.class, HapiJpaConfig.class})
|
||||||
public class FhirServerConfigR4 extends BaseJavaConfigR4 {
|
public class FhirServerConfigR4 {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private DataSource myDataSource;
|
private DataSource myDataSource;
|
||||||
|
@ -59,10 +61,9 @@ public class FhirServerConfigR4 extends BaseJavaConfigR4 {
|
||||||
@Qualifier("jpaProperties")
|
@Qualifier("jpaProperties")
|
||||||
private Properties myJpaProperties;
|
private Properties myJpaProperties;
|
||||||
|
|
||||||
@Override
|
|
||||||
@Bean
|
@Bean
|
||||||
public LocalContainerEntityManagerFactoryBean entityManagerFactory(ConfigurableListableBeanFactory theConfigurableListableBeanFactory) {
|
public LocalContainerEntityManagerFactoryBean entityManagerFactory(ConfigurableListableBeanFactory theConfigurableListableBeanFactory, FhirContext theFhirContext) {
|
||||||
LocalContainerEntityManagerFactoryBean retVal = super.entityManagerFactory(theConfigurableListableBeanFactory);
|
LocalContainerEntityManagerFactoryBean retVal = HapiEntityManagerFactoryUtil.newEntityManagerFactory(theConfigurableListableBeanFactory, theFhirContext);
|
||||||
retVal.setPersistenceUnitName("HAPI_PU");
|
retVal.setPersistenceUnitName("HAPI_PU");
|
||||||
retVal.setDataSource(myDataSource);
|
retVal.setDataSource(myDataSource);
|
||||||
retVal.setJpaProperties(myJpaProperties);
|
retVal.setJpaProperties(myJpaProperties);
|
||||||
|
@ -87,13 +88,13 @@ public class FhirServerConfigR4 extends BaseJavaConfigR4 {
|
||||||
* This interceptor adds some pretty syntax highlighting in responses when a browser is detected
|
* This interceptor adds some pretty syntax highlighting in responses when a browser is detected
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
@Bean(autowire = Autowire.BY_TYPE)
|
@Bean
|
||||||
public ResponseHighlighterInterceptor responseHighlighterInterceptor() {
|
public ResponseHighlighterInterceptor responseHighlighterInterceptor() {
|
||||||
ResponseHighlighterInterceptor retVal = new ResponseHighlighterInterceptor();
|
ResponseHighlighterInterceptor retVal = new ResponseHighlighterInterceptor();
|
||||||
return retVal;
|
return retVal;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean(autowire = Autowire.BY_TYPE)
|
@Bean
|
||||||
public IServerInterceptor subscriptionSecurityInterceptor() {
|
public IServerInterceptor subscriptionSecurityInterceptor() {
|
||||||
SubscriptionsRequireManualActivationInterceptorR4 retVal = new SubscriptionsRequireManualActivationInterceptorR4();
|
SubscriptionsRequireManualActivationInterceptorR4 retVal = new SubscriptionsRequireManualActivationInterceptorR4();
|
||||||
return retVal;
|
return retVal;
|
||||||
|
|
|
@ -20,25 +20,24 @@ package ca.uhn.fhir.jpa.demo;
|
||||||
* #L%
|
* #L%
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import ca.uhn.fhir.i18n.Msg;
|
|
||||||
import ca.uhn.fhir.context.FhirContext;
|
import ca.uhn.fhir.context.FhirContext;
|
||||||
import ca.uhn.fhir.context.FhirVersionEnum;
|
import ca.uhn.fhir.context.FhirVersionEnum;
|
||||||
import ca.uhn.fhir.context.support.IValidationSupport;
|
import ca.uhn.fhir.context.support.IValidationSupport;
|
||||||
|
import ca.uhn.fhir.i18n.Msg;
|
||||||
import ca.uhn.fhir.interceptor.api.IInterceptorBroadcaster;
|
import ca.uhn.fhir.interceptor.api.IInterceptorBroadcaster;
|
||||||
import ca.uhn.fhir.jpa.api.config.DaoConfig;
|
import ca.uhn.fhir.jpa.api.config.DaoConfig;
|
||||||
import ca.uhn.fhir.jpa.api.dao.DaoRegistry;
|
import ca.uhn.fhir.jpa.api.dao.DaoRegistry;
|
||||||
import ca.uhn.fhir.jpa.api.dao.IFhirSystemDao;
|
import ca.uhn.fhir.jpa.api.dao.IFhirSystemDao;
|
||||||
import ca.uhn.fhir.jpa.binstore.BinaryAccessProvider;
|
import ca.uhn.fhir.jpa.binstore.BinaryAccessProvider;
|
||||||
import ca.uhn.fhir.jpa.config.BaseConfig;
|
import ca.uhn.fhir.jpa.config.JpaConfig;
|
||||||
import ca.uhn.fhir.jpa.interceptor.CascadingDeleteInterceptor;
|
import ca.uhn.fhir.jpa.interceptor.CascadingDeleteInterceptor;
|
||||||
|
import ca.uhn.fhir.jpa.provider.JpaCapabilityStatementProvider;
|
||||||
import ca.uhn.fhir.jpa.provider.JpaConformanceProviderDstu2;
|
import ca.uhn.fhir.jpa.provider.JpaConformanceProviderDstu2;
|
||||||
import ca.uhn.fhir.jpa.provider.JpaSystemProviderDstu2;
|
import ca.uhn.fhir.jpa.provider.JpaSystemProviderDstu2;
|
||||||
import ca.uhn.fhir.jpa.provider.TerminologyUploaderProvider;
|
import ca.uhn.fhir.jpa.provider.TerminologyUploaderProvider;
|
||||||
import ca.uhn.fhir.jpa.provider.dstu3.JpaConformanceProviderDstu3;
|
import ca.uhn.fhir.jpa.provider.dstu3.JpaConformanceProviderDstu3;
|
||||||
import ca.uhn.fhir.jpa.provider.dstu3.JpaSystemProviderDstu3;
|
import ca.uhn.fhir.jpa.provider.dstu3.JpaSystemProviderDstu3;
|
||||||
import ca.uhn.fhir.jpa.provider.JpaCapabilityStatementProvider;
|
|
||||||
import ca.uhn.fhir.jpa.provider.r4.JpaSystemProviderR4;
|
import ca.uhn.fhir.jpa.provider.r4.JpaSystemProviderR4;
|
||||||
import ca.uhn.fhir.rest.server.util.ISearchParamRegistry;
|
|
||||||
import ca.uhn.fhir.model.dstu2.composite.MetaDt;
|
import ca.uhn.fhir.model.dstu2.composite.MetaDt;
|
||||||
import ca.uhn.fhir.model.dstu2.resource.Bundle;
|
import ca.uhn.fhir.model.dstu2.resource.Bundle;
|
||||||
import ca.uhn.fhir.narrative.DefaultThymeleafNarrativeGenerator;
|
import ca.uhn.fhir.narrative.DefaultThymeleafNarrativeGenerator;
|
||||||
|
@ -47,8 +46,9 @@ import ca.uhn.fhir.rest.server.ETagSupportEnum;
|
||||||
import ca.uhn.fhir.rest.server.FifoMemoryPagingProvider;
|
import ca.uhn.fhir.rest.server.FifoMemoryPagingProvider;
|
||||||
import ca.uhn.fhir.rest.server.RestfulServer;
|
import ca.uhn.fhir.rest.server.RestfulServer;
|
||||||
import ca.uhn.fhir.rest.server.interceptor.CorsInterceptor;
|
import ca.uhn.fhir.rest.server.interceptor.CorsInterceptor;
|
||||||
import ca.uhn.fhir.rest.server.provider.ResourceProviderFactory;
|
|
||||||
import ca.uhn.fhir.rest.server.interceptor.ResponseHighlighterInterceptor;
|
import ca.uhn.fhir.rest.server.interceptor.ResponseHighlighterInterceptor;
|
||||||
|
import ca.uhn.fhir.rest.server.provider.ResourceProviderFactory;
|
||||||
|
import ca.uhn.fhir.rest.server.util.ISearchParamRegistry;
|
||||||
import org.springframework.web.context.ContextLoaderListener;
|
import org.springframework.web.context.ContextLoaderListener;
|
||||||
import org.springframework.web.context.WebApplicationContext;
|
import org.springframework.web.context.WebApplicationContext;
|
||||||
|
|
||||||
|
@ -109,7 +109,7 @@ public class JpaServerDemo extends RestfulServer {
|
||||||
} else if (fhirVersion == FhirVersionEnum.R4) {
|
} else if (fhirVersion == FhirVersionEnum.R4) {
|
||||||
systemProvider.add(myAppCtx.getBean("mySystemProviderR4", JpaSystemProviderR4.class));
|
systemProvider.add(myAppCtx.getBean("mySystemProviderR4", JpaSystemProviderR4.class));
|
||||||
systemProvider.add(myAppCtx.getBean(TerminologyUploaderProvider.class));
|
systemProvider.add(myAppCtx.getBean(TerminologyUploaderProvider.class));
|
||||||
systemProvider.add(myAppCtx.getBean(BaseConfig.GRAPHQL_PROVIDER_NAME));
|
systemProvider.add(myAppCtx.getBean(JpaConfig.GRAPHQL_PROVIDER_NAME));
|
||||||
} else {
|
} else {
|
||||||
throw new IllegalStateException(Msg.code(1533));
|
throw new IllegalStateException(Msg.code(1533));
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||||
<artifactId>hapi-fhir</artifactId>
|
<artifactId>hapi-fhir</artifactId>
|
||||||
<version>6.0.0-PRE2-SNAPSHOT</version>
|
<version>6.0.0-PRE3-SNAPSHOT</version>
|
||||||
<relativePath>../pom.xml</relativePath>
|
<relativePath>../pom.xml</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||||
<artifactId>hapi-deployable-pom</artifactId>
|
<artifactId>hapi-deployable-pom</artifactId>
|
||||||
<version>6.0.0-PRE2-SNAPSHOT</version>
|
<version>6.0.0-PRE3-SNAPSHOT</version>
|
||||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||||
<artifactId>hapi-deployable-pom</artifactId>
|
<artifactId>hapi-deployable-pom</artifactId>
|
||||||
<version>6.0.0-PRE2-SNAPSHOT</version>
|
<version>6.0.0-PRE3-SNAPSHOT</version>
|
||||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||||
<artifactId>hapi-deployable-pom</artifactId>
|
<artifactId>hapi-deployable-pom</artifactId>
|
||||||
<version>6.0.0-PRE2-SNAPSHOT</version>
|
<version>6.0.0-PRE3-SNAPSHOT</version>
|
||||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||||
<artifactId>hapi-fhir</artifactId>
|
<artifactId>hapi-fhir</artifactId>
|
||||||
<version>6.0.0-PRE2-SNAPSHOT</version>
|
<version>6.0.0-PRE3-SNAPSHOT</version>
|
||||||
<relativePath>../pom.xml</relativePath>
|
<relativePath>../pom.xml</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||||
<artifactId>hapi-deployable-pom</artifactId>
|
<artifactId>hapi-deployable-pom</artifactId>
|
||||||
<version>6.0.0-PRE2-SNAPSHOT</version>
|
<version>6.0.0-PRE3-SNAPSHOT</version>
|
||||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
|
|
|
@ -11,7 +11,7 @@
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||||
<artifactId>hapi-deployable-pom</artifactId>
|
<artifactId>hapi-deployable-pom</artifactId>
|
||||||
<version>6.0.0-PRE2-SNAPSHOT</version>
|
<version>6.0.0-PRE3-SNAPSHOT</version>
|
||||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||||
<artifactId>hapi-deployable-pom</artifactId>
|
<artifactId>hapi-deployable-pom</artifactId>
|
||||||
<version>6.0.0-PRE2-SNAPSHOT</version>
|
<version>6.0.0-PRE3-SNAPSHOT</version>
|
||||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||||
<artifactId>hapi-deployable-pom</artifactId>
|
<artifactId>hapi-deployable-pom</artifactId>
|
||||||
<version>6.0.0-PRE2-SNAPSHOT</version>
|
<version>6.0.0-PRE3-SNAPSHOT</version>
|
||||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
<parent>
|
<parent>
|
||||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||||
<artifactId>hapi-deployable-pom</artifactId>
|
<artifactId>hapi-deployable-pom</artifactId>
|
||||||
<version>6.0.0-PRE2-SNAPSHOT</version>
|
<version>6.0.0-PRE3-SNAPSHOT</version>
|
||||||
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
<relativePath>../hapi-deployable-pom/pom.xml</relativePath>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
|
@ -556,6 +556,18 @@
|
||||||
</plugins>
|
</plugins>
|
||||||
</pluginManagement>
|
</pluginManagement>
|
||||||
<plugins>
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-jar-plugin</artifactId>
|
||||||
|
<version>3.2.0</version>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<goals>
|
||||||
|
<goal>test-jar</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
<plugin>
|
<plugin>
|
||||||
<groupId>org.apache.maven.plugins</groupId>
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
<artifactId>maven-failsafe-plugin</artifactId>
|
<artifactId>maven-failsafe-plugin</artifactId>
|
||||||
|
@ -761,7 +773,7 @@
|
||||||
</execution>
|
</execution>
|
||||||
</executions>
|
</executions>
|
||||||
</plugin>
|
</plugin>
|
||||||
</plugins>
|
</plugins>
|
||||||
<resources>
|
<resources>
|
||||||
<resource>
|
<resource>
|
||||||
<directory>${project.basedir}/src/main/resources</directory>
|
<directory>${project.basedir}/src/main/resources</directory>
|
||||||
|
|
|
@ -20,19 +20,29 @@ package ca.uhn.fhir.jpa.batch;
|
||||||
* #L%
|
* #L%
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
import ca.uhn.fhir.jpa.batch.api.IBatchJobSubmitter;
|
||||||
import ca.uhn.fhir.jpa.batch.mdm.job.MdmClearJobConfig;
|
import ca.uhn.fhir.jpa.batch.mdm.job.MdmClearJobConfig;
|
||||||
|
import ca.uhn.fhir.jpa.batch.svc.BatchJobSubmitterImpl;
|
||||||
import ca.uhn.fhir.jpa.bulk.export.job.BulkExportJobConfig;
|
import ca.uhn.fhir.jpa.bulk.export.job.BulkExportJobConfig;
|
||||||
import ca.uhn.fhir.jpa.bulk.imprt.job.BulkImportJobConfig;
|
import ca.uhn.fhir.jpa.bulk.imprt.job.BulkImportJobConfig;
|
||||||
|
import ca.uhn.fhir.jpa.config.BatchJobRegisterer;
|
||||||
import ca.uhn.fhir.jpa.delete.job.DeleteExpungeJobConfig;
|
import ca.uhn.fhir.jpa.delete.job.DeleteExpungeJobConfig;
|
||||||
import ca.uhn.fhir.jpa.reindex.job.ReindexEverythingJobConfig;
|
import ca.uhn.fhir.jpa.reindex.job.ReindexEverythingJobConfig;
|
||||||
import ca.uhn.fhir.jpa.reindex.job.ReindexJobConfig;
|
import ca.uhn.fhir.jpa.reindex.job.ReindexJobConfig;
|
||||||
import ca.uhn.fhir.jpa.term.job.TermCodeSystemDeleteJobConfig;
|
import ca.uhn.fhir.jpa.term.job.TermCodeSystemDeleteJobConfig;
|
||||||
import ca.uhn.fhir.jpa.term.job.TermCodeSystemVersionDeleteJobConfig;
|
import ca.uhn.fhir.jpa.term.job.TermCodeSystemVersionDeleteJobConfig;
|
||||||
|
import org.springframework.batch.core.configuration.JobRegistry;
|
||||||
|
import org.springframework.batch.core.configuration.annotation.EnableBatchProcessing;
|
||||||
|
import org.springframework.batch.core.explore.JobExplorer;
|
||||||
|
import org.springframework.batch.core.launch.JobLauncher;
|
||||||
|
import org.springframework.batch.core.launch.support.SimpleJobOperator;
|
||||||
|
import org.springframework.batch.core.repository.JobRepository;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.context.annotation.Import;
|
import org.springframework.context.annotation.Import;
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
//When you define a new batch job, add it here.
|
@EnableBatchProcessing
|
||||||
@Import({
|
@Import({
|
||||||
CommonBatchJobConfig.class,
|
CommonBatchJobConfig.class,
|
||||||
BulkExportJobConfig.class,
|
BulkExportJobConfig.class,
|
||||||
|
@ -43,6 +53,28 @@ import org.springframework.context.annotation.Import;
|
||||||
MdmClearJobConfig.class,
|
MdmClearJobConfig.class,
|
||||||
TermCodeSystemDeleteJobConfig.class,
|
TermCodeSystemDeleteJobConfig.class,
|
||||||
TermCodeSystemVersionDeleteJobConfig.class
|
TermCodeSystemVersionDeleteJobConfig.class
|
||||||
|
// When you define a new batch job, add it here.
|
||||||
})
|
})
|
||||||
public class BatchJobsConfig {
|
public class BatchJobsConfig {
|
||||||
|
@Bean
|
||||||
|
public IBatchJobSubmitter batchJobSubmitter() {
|
||||||
|
return new BatchJobSubmitterImpl();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public BatchJobRegisterer batchJobRegisterer() {
|
||||||
|
return new BatchJobRegisterer();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public SimpleJobOperator jobOperator(JobExplorer theJobExplorer, JobRepository theJobRepository, JobRegistry theJobRegistry, JobLauncher theJobLauncher) {
|
||||||
|
SimpleJobOperator jobOperator = new SimpleJobOperator();
|
||||||
|
|
||||||
|
jobOperator.setJobExplorer(theJobExplorer);
|
||||||
|
jobOperator.setJobRepository(theJobRepository);
|
||||||
|
jobOperator.setJobRegistry(theJobRegistry);
|
||||||
|
jobOperator.setJobLauncher(theJobLauncher);
|
||||||
|
|
||||||
|
return jobOperator;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,126 +0,0 @@
|
||||||
package ca.uhn.fhir.jpa.config;
|
|
||||||
|
|
||||||
/*-
|
|
||||||
* #%L
|
|
||||||
* HAPI FHIR JPA Server
|
|
||||||
* %%
|
|
||||||
* Copyright (C) 2014 - 2022 Smile CDR, Inc.
|
|
||||||
* %%
|
|
||||||
* 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.context.support.DefaultProfileValidationSupport;
|
|
||||||
import ca.uhn.fhir.context.support.IValidationSupport;
|
|
||||||
import ca.uhn.fhir.jpa.api.config.DaoConfig;
|
|
||||||
import ca.uhn.fhir.jpa.dao.JpaPersistedResourceValidationSupport;
|
|
||||||
import ca.uhn.fhir.jpa.dao.ObservationLastNIndexPersistSvc;
|
|
||||||
import ca.uhn.fhir.jpa.term.TermCodeSystemStorageSvcImpl;
|
|
||||||
import ca.uhn.fhir.jpa.term.TermDeferredStorageSvcImpl;
|
|
||||||
import ca.uhn.fhir.jpa.term.TermReindexingSvcImpl;
|
|
||||||
import ca.uhn.fhir.jpa.term.api.ITermCodeSystemStorageSvc;
|
|
||||||
import ca.uhn.fhir.jpa.term.api.ITermDeferredStorageSvc;
|
|
||||||
import ca.uhn.fhir.jpa.term.api.ITermReadSvc;
|
|
||||||
import ca.uhn.fhir.jpa.term.api.ITermReindexingSvc;
|
|
||||||
import ca.uhn.fhir.jpa.term.api.ITermVersionAdapterSvc;
|
|
||||||
import ca.uhn.fhir.jpa.validation.JpaValidationSupportChain;
|
|
||||||
import ca.uhn.fhir.jpa.validation.ValidatorPolicyAdvisor;
|
|
||||||
import ca.uhn.fhir.jpa.validation.ValidatorResourceFetcher;
|
|
||||||
import ca.uhn.fhir.validation.IInstanceValidatorModule;
|
|
||||||
import org.hl7.fhir.common.hapi.validation.support.CachingValidationSupport;
|
|
||||||
import org.hl7.fhir.common.hapi.validation.validator.FhirInstanceValidator;
|
|
||||||
import org.hl7.fhir.r5.utils.validation.constants.BestPracticeWarningLevel;
|
|
||||||
import org.springframework.context.annotation.Bean;
|
|
||||||
import org.springframework.context.annotation.Configuration;
|
|
||||||
import org.springframework.context.annotation.Lazy;
|
|
||||||
import org.springframework.context.annotation.Primary;
|
|
||||||
|
|
||||||
@Configuration
|
|
||||||
public abstract class BaseConfigDstu3Plus extends BaseConfig {
|
|
||||||
|
|
||||||
@Bean
|
|
||||||
public ITermCodeSystemStorageSvc termCodeSystemStorageSvc() {
|
|
||||||
return new TermCodeSystemStorageSvcImpl();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean
|
|
||||||
public ITermDeferredStorageSvc termDeferredStorageSvc() {
|
|
||||||
return new TermDeferredStorageSvcImpl();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean
|
|
||||||
public ITermReindexingSvc termReindexingSvc() {
|
|
||||||
return new TermReindexingSvcImpl();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean
|
|
||||||
public abstract ITermVersionAdapterSvc terminologyVersionAdapterSvc();
|
|
||||||
|
|
||||||
@Bean(name = "myDefaultProfileValidationSupport")
|
|
||||||
public DefaultProfileValidationSupport defaultProfileValidationSupport(DaoConfig theDaoConfig) {
|
|
||||||
return new DefaultProfileValidationSupport(fhirContext());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean(name = JPA_VALIDATION_SUPPORT_CHAIN)
|
|
||||||
public JpaValidationSupportChain jpaValidationSupportChain() {
|
|
||||||
return new JpaValidationSupportChain(fhirContext());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean(name = JPA_VALIDATION_SUPPORT)
|
|
||||||
public IValidationSupport jpaValidationSupport() {
|
|
||||||
return new JpaPersistedResourceValidationSupport(fhirContext());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Primary
|
|
||||||
@Bean
|
|
||||||
public IValidationSupport validationSupportChain() {
|
|
||||||
// Short timeout for code translation because TermConceptMappingSvcImpl has its own caching
|
|
||||||
CachingValidationSupport.CacheTimeouts cacheTimeouts = CachingValidationSupport.CacheTimeouts.defaultValues()
|
|
||||||
.setTranslateCodeMillis(1000);
|
|
||||||
|
|
||||||
return new CachingValidationSupport(jpaValidationSupportChain(), cacheTimeouts);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean(name = "myInstanceValidator")
|
|
||||||
@Lazy
|
|
||||||
public IInstanceValidatorModule instanceValidator() {
|
|
||||||
FhirInstanceValidator val = new FhirInstanceValidator(validationSupportChain());
|
|
||||||
val.setValidatorResourceFetcher(jpaValidatorResourceFetcher());
|
|
||||||
val.setValidatorPolicyAdvisor(jpaValidatorPolicyAdvisor());
|
|
||||||
val.setBestPracticeWarningLevel(BestPracticeWarningLevel.Warning);
|
|
||||||
val.setValidationSupport(validationSupportChain());
|
|
||||||
return val;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean
|
|
||||||
@Lazy
|
|
||||||
public ValidatorResourceFetcher jpaValidatorResourceFetcher() {
|
|
||||||
return new ValidatorResourceFetcher();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean
|
|
||||||
@Lazy
|
|
||||||
public ValidatorPolicyAdvisor jpaValidatorPolicyAdvisor() {
|
|
||||||
return new ValidatorPolicyAdvisor();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean
|
|
||||||
public abstract ITermReadSvc terminologyService();
|
|
||||||
|
|
||||||
@Bean
|
|
||||||
public ObservationLastNIndexPersistSvc baseObservationLastNIndexpersistSvc() {
|
|
||||||
return new ObservationLastNIndexPersistSvc();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
|
@ -1,155 +0,0 @@
|
||||||
package ca.uhn.fhir.jpa.config;
|
|
||||||
|
|
||||||
import ca.uhn.fhir.context.FhirContext;
|
|
||||||
import ca.uhn.fhir.context.support.DefaultProfileValidationSupport;
|
|
||||||
import ca.uhn.fhir.context.support.IValidationSupport;
|
|
||||||
import ca.uhn.fhir.jpa.api.dao.IFhirSystemDao;
|
|
||||||
import ca.uhn.fhir.jpa.dao.FulltextSearchSvcImpl;
|
|
||||||
import ca.uhn.fhir.jpa.dao.IFulltextSearchSvc;
|
|
||||||
import ca.uhn.fhir.jpa.dao.ITransactionProcessorVersionAdapter;
|
|
||||||
import ca.uhn.fhir.jpa.dao.JpaPersistedResourceValidationSupport;
|
|
||||||
import ca.uhn.fhir.jpa.dao.TransactionProcessorVersionAdapterDstu2;
|
|
||||||
import ca.uhn.fhir.jpa.term.TermReadSvcDstu2;
|
|
||||||
import ca.uhn.fhir.jpa.term.api.ITermReadSvc;
|
|
||||||
import ca.uhn.fhir.jpa.util.ResourceCountCache;
|
|
||||||
import ca.uhn.fhir.model.dstu2.composite.MetaDt;
|
|
||||||
import ca.uhn.fhir.model.dstu2.resource.Bundle;
|
|
||||||
import ca.uhn.fhir.validation.IInstanceValidatorModule;
|
|
||||||
import org.apache.commons.lang3.time.DateUtils;
|
|
||||||
import org.hl7.fhir.common.hapi.validation.support.CachingValidationSupport;
|
|
||||||
import org.hl7.fhir.common.hapi.validation.support.CommonCodeSystemsTerminologyService;
|
|
||||||
import org.hl7.fhir.common.hapi.validation.support.InMemoryTerminologyServerValidationSupport;
|
|
||||||
import org.hl7.fhir.common.hapi.validation.support.ValidationSupportChain;
|
|
||||||
import org.hl7.fhir.common.hapi.validation.validator.FhirInstanceValidator;
|
|
||||||
import org.hl7.fhir.common.hapi.validation.validator.HapiToHl7OrgDstu2ValidatingSupportWrapper;
|
|
||||||
import org.hl7.fhir.r5.utils.validation.constants.BestPracticeWarningLevel;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowire;
|
|
||||||
import org.springframework.context.annotation.Bean;
|
|
||||||
import org.springframework.context.annotation.Configuration;
|
|
||||||
import org.springframework.context.annotation.Lazy;
|
|
||||||
import org.springframework.context.annotation.Primary;
|
|
||||||
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
|
||||||
|
|
||||||
/*
|
|
||||||
* #%L
|
|
||||||
* HAPI FHIR JPA Server
|
|
||||||
* %%
|
|
||||||
* Copyright (C) 2014 - 2022 Smile CDR, Inc.
|
|
||||||
* %%
|
|
||||||
* 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%
|
|
||||||
*/
|
|
||||||
|
|
||||||
@Configuration
|
|
||||||
@EnableTransactionManagement
|
|
||||||
public class BaseDstu2Config extends BaseConfig {
|
|
||||||
|
|
||||||
private static FhirContext ourFhirContextDstu2;
|
|
||||||
private static FhirContext ourFhirContextDstu2Hl7Org;
|
|
||||||
|
|
||||||
@Bean
|
|
||||||
@Primary
|
|
||||||
public FhirContext defaultFhirContext() {
|
|
||||||
return fhirContextDstu2();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public FhirContext fhirContext() {
|
|
||||||
return fhirContextDstu2();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean(name = "myFhirContextDstu2")
|
|
||||||
@Lazy
|
|
||||||
public FhirContext fhirContextDstu2() {
|
|
||||||
if (ourFhirContextDstu2 == null) {
|
|
||||||
ourFhirContextDstu2 = FhirContext.forDstu2();
|
|
||||||
}
|
|
||||||
return ourFhirContextDstu2;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean(name = "myFhirContextDstu2Hl7Org")
|
|
||||||
@Lazy
|
|
||||||
public FhirContext fhirContextDstu2Hl7Org() {
|
|
||||||
if (ourFhirContextDstu2Hl7Org == null) {
|
|
||||||
ourFhirContextDstu2Hl7Org = FhirContext.forDstu2Hl7Org();
|
|
||||||
}
|
|
||||||
return ourFhirContextDstu2Hl7Org;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean(name = "myInstanceValidator")
|
|
||||||
@Lazy
|
|
||||||
public IInstanceValidatorModule instanceValidator(ValidationSupportChain theValidationSupportChain) {
|
|
||||||
CachingValidationSupport cachingValidationSupport = new CachingValidationSupport(new HapiToHl7OrgDstu2ValidatingSupportWrapper(theValidationSupportChain));
|
|
||||||
FhirInstanceValidator retVal = new FhirInstanceValidator(cachingValidationSupport);
|
|
||||||
retVal.setBestPracticeWarningLevel(BestPracticeWarningLevel.Warning);
|
|
||||||
return retVal;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean
|
|
||||||
public ITransactionProcessorVersionAdapter transactionProcessorVersionFacade() {
|
|
||||||
return new TransactionProcessorVersionAdapterDstu2();
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Bean(name = "myDefaultProfileValidationSupport")
|
|
||||||
public DefaultProfileValidationSupport defaultProfileValidationSupport() {
|
|
||||||
return new DefaultProfileValidationSupport(fhirContext());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean(name = JPA_VALIDATION_SUPPORT_CHAIN)
|
|
||||||
public ValidationSupportChain validationSupportChain(DefaultProfileValidationSupport theDefaultProfileValidationSupport) {
|
|
||||||
InMemoryTerminologyServerValidationSupport inMemoryTerminologyServer = new InMemoryTerminologyServerValidationSupport(fhirContextDstu2());
|
|
||||||
IValidationSupport jpaValidationSupport = jpaValidationSupportDstu2();
|
|
||||||
CommonCodeSystemsTerminologyService commonCodeSystemsTermSvc = new CommonCodeSystemsTerminologyService(fhirContext());
|
|
||||||
return new ValidationSupportChain(theDefaultProfileValidationSupport, jpaValidationSupport, inMemoryTerminologyServer, commonCodeSystemsTermSvc);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Primary
|
|
||||||
@Bean(name = JPA_VALIDATION_SUPPORT)
|
|
||||||
public IValidationSupport jpaValidationSupportDstu2() {
|
|
||||||
return new JpaPersistedResourceValidationSupport(fhirContextDstu2());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean(name = "myResourceCountsCache")
|
|
||||||
public ResourceCountCache resourceCountsCache() {
|
|
||||||
ResourceCountCache retVal = new ResourceCountCache(() -> systemDaoDstu2().getResourceCounts());
|
|
||||||
retVal.setCacheMillis(4 * DateUtils.MILLIS_PER_HOUR);
|
|
||||||
return retVal;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean(autowire = Autowire.BY_TYPE)
|
|
||||||
public IFulltextSearchSvc searchDao() {
|
|
||||||
FulltextSearchSvcImpl searchDao = new FulltextSearchSvcImpl();
|
|
||||||
return searchDao;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean(name = "mySystemDaoDstu2", autowire = Autowire.BY_NAME)
|
|
||||||
public IFhirSystemDao<Bundle, MetaDt> systemDaoDstu2() {
|
|
||||||
ca.uhn.fhir.jpa.dao.FhirSystemDaoDstu2 retVal = new ca.uhn.fhir.jpa.dao.FhirSystemDaoDstu2();
|
|
||||||
return retVal;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean(name = "mySystemProviderDstu2")
|
|
||||||
public ca.uhn.fhir.jpa.provider.JpaSystemProviderDstu2 systemProviderDstu2() {
|
|
||||||
ca.uhn.fhir.jpa.provider.JpaSystemProviderDstu2 retVal = new ca.uhn.fhir.jpa.provider.JpaSystemProviderDstu2();
|
|
||||||
retVal.setDao(systemDaoDstu2());
|
|
||||||
retVal.setContext(fhirContextDstu2());
|
|
||||||
return retVal;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean(autowire = Autowire.BY_TYPE)
|
|
||||||
public ITermReadSvc terminologyService() {
|
|
||||||
return new TermReadSvcDstu2();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -24,7 +24,6 @@ import org.springframework.batch.core.Job;
|
||||||
import org.springframework.batch.core.configuration.DuplicateJobException;
|
import org.springframework.batch.core.configuration.DuplicateJobException;
|
||||||
import org.springframework.batch.core.configuration.JobFactory;
|
import org.springframework.batch.core.configuration.JobFactory;
|
||||||
import org.springframework.batch.core.configuration.JobRegistry;
|
import org.springframework.batch.core.configuration.JobRegistry;
|
||||||
import org.springframework.batch.core.configuration.support.ApplicationContextJobFactory;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.context.ApplicationContext;
|
import org.springframework.context.ApplicationContext;
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
package ca.uhn.fhir.jpa.config;
|
||||||
|
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
// TODO KHS do we even need this class?
|
||||||
|
// TODO KHS find out why this Spring Config produces the message and if there's anything we can do about it:
|
||||||
|
// o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker [PostProcessorRegistrationDelegate.java:376]
|
||||||
|
// Bean 'ca.uhn.fhir.jpa.config.BeanPostProcessorConfig'
|
||||||
|
// of type [ca.uhn.fhir.jpa.config.BeanPostProcessorConfig$$EnhancerBySpringCGLIB$$8d867950]
|
||||||
|
// is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying)
|
||||||
|
public class BeanPostProcessorConfig {
|
||||||
|
@Bean
|
||||||
|
public PersistenceExceptionTranslationPostProcessor persistenceExceptionTranslationPostProcessor() {
|
||||||
|
return new PersistenceExceptionTranslationPostProcessor();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,13 @@
|
||||||
|
package ca.uhn.fhir.jpa.config;
|
||||||
|
|
||||||
|
import ca.uhn.fhir.context.FhirContext;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Primary;
|
||||||
|
|
||||||
|
public class FhirContextDstu2Config {
|
||||||
|
@Primary
|
||||||
|
@Bean(name = "primaryFhirContext")
|
||||||
|
public FhirContext fhirContextDstu2() {
|
||||||
|
return FhirContext.forDstu2();
|
||||||
|
}
|
||||||
|
}
|
|
@ -20,8 +20,8 @@ package ca.uhn.fhir.jpa.config;
|
||||||
* #L%
|
* #L%
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import ca.uhn.fhir.i18n.Msg;
|
|
||||||
import ca.uhn.fhir.i18n.HapiLocalizer;
|
import ca.uhn.fhir.i18n.HapiLocalizer;
|
||||||
|
import ca.uhn.fhir.i18n.Msg;
|
||||||
import ca.uhn.fhir.jpa.model.entity.ForcedId;
|
import ca.uhn.fhir.jpa.model.entity.ForcedId;
|
||||||
import ca.uhn.fhir.jpa.model.entity.ResourceHistoryTable;
|
import ca.uhn.fhir.jpa.model.entity.ResourceHistoryTable;
|
||||||
import ca.uhn.fhir.jpa.model.entity.ResourceIndexedComboStringUnique;
|
import ca.uhn.fhir.jpa.model.entity.ResourceIndexedComboStringUnique;
|
||||||
|
|
|
@ -0,0 +1,62 @@
|
||||||
|
package ca.uhn.fhir.jpa.config;
|
||||||
|
|
||||||
|
import ca.uhn.fhir.jpa.api.IDaoRegistry;
|
||||||
|
import ca.uhn.fhir.jpa.api.dao.IFhirSystemDao;
|
||||||
|
import ca.uhn.fhir.jpa.batch.config.NonPersistedBatchConfigurer;
|
||||||
|
import ca.uhn.fhir.jpa.config.util.ResourceCountCacheUtil;
|
||||||
|
import ca.uhn.fhir.jpa.config.util.ValidationSupportConfigUtil;
|
||||||
|
import ca.uhn.fhir.jpa.dao.FulltextSearchSvcImpl;
|
||||||
|
import ca.uhn.fhir.jpa.dao.IFulltextSearchSvc;
|
||||||
|
import ca.uhn.fhir.jpa.provider.DaoRegistryResourceSupportedSvc;
|
||||||
|
import ca.uhn.fhir.jpa.search.DatabaseBackedPagingProvider;
|
||||||
|
import ca.uhn.fhir.jpa.search.IStaleSearchDeletingSvc;
|
||||||
|
import ca.uhn.fhir.jpa.search.StaleSearchDeletingSvcImpl;
|
||||||
|
import ca.uhn.fhir.jpa.util.ResourceCountCache;
|
||||||
|
import ca.uhn.fhir.jpa.validation.JpaValidationSupportChain;
|
||||||
|
import ca.uhn.fhir.rest.api.IResourceSupportedSvc;
|
||||||
|
import org.hl7.fhir.common.hapi.validation.support.CachingValidationSupport;
|
||||||
|
import org.springframework.batch.core.configuration.annotation.BatchConfigurer;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.context.annotation.Import;
|
||||||
|
import org.springframework.context.annotation.Primary;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
@Import({JpaConfig.class})
|
||||||
|
public class HapiJpaConfig {
|
||||||
|
@Bean
|
||||||
|
public IFulltextSearchSvc fullTextSearchSvc() {
|
||||||
|
return new FulltextSearchSvcImpl();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public IStaleSearchDeletingSvc staleSearchDeletingSvc() {
|
||||||
|
return new StaleSearchDeletingSvcImpl();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Primary
|
||||||
|
@Bean
|
||||||
|
public CachingValidationSupport validationSupportChain(JpaValidationSupportChain theJpaValidationSupportChain) {
|
||||||
|
return ValidationSupportConfigUtil.newCachingValidationSupport(theJpaValidationSupportChain);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public BatchConfigurer batchConfigurer() {
|
||||||
|
return new NonPersistedBatchConfigurer();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public DatabaseBackedPagingProvider databaseBackedPagingProvider() {
|
||||||
|
return new DatabaseBackedPagingProvider();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public IResourceSupportedSvc resourceSupportedSvc(IDaoRegistry theDaoRegistry) {
|
||||||
|
return new DaoRegistryResourceSupportedSvc(theDaoRegistry);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean(name = "myResourceCountsCache")
|
||||||
|
public ResourceCountCache resourceCountsCache(IFhirSystemDao<?, ?> theSystemDao) {
|
||||||
|
return ResourceCountCacheUtil.newResourceCountCache(theSystemDao);
|
||||||
|
}
|
||||||
|
}
|
|
@ -21,8 +21,8 @@ package ca.uhn.fhir.jpa.config;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import ca.uhn.fhir.util.ReflectionUtil;
|
import ca.uhn.fhir.util.ReflectionUtil;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
|
||||||
import com.google.common.annotations.VisibleForTesting;
|
import com.google.common.annotations.VisibleForTesting;
|
||||||
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.apache.commons.lang3.Validate;
|
import org.apache.commons.lang3.Validate;
|
||||||
import org.hibernate.dialect.Dialect;
|
import org.hibernate.dialect.Dialect;
|
||||||
import org.hibernate.search.engine.cfg.BackendSettings;
|
import org.hibernate.search.engine.cfg.BackendSettings;
|
||||||
|
|
|
@ -2,7 +2,6 @@ package ca.uhn.fhir.jpa.config;
|
||||||
|
|
||||||
import ca.uhn.fhir.context.FhirContext;
|
import ca.uhn.fhir.context.FhirContext;
|
||||||
import ca.uhn.fhir.context.support.IValidationSupport;
|
import ca.uhn.fhir.context.support.IValidationSupport;
|
||||||
import ca.uhn.fhir.i18n.HapiLocalizer;
|
|
||||||
import ca.uhn.fhir.interceptor.api.IInterceptorBroadcaster;
|
import ca.uhn.fhir.interceptor.api.IInterceptorBroadcaster;
|
||||||
import ca.uhn.fhir.interceptor.api.IInterceptorService;
|
import ca.uhn.fhir.interceptor.api.IInterceptorService;
|
||||||
import ca.uhn.fhir.interceptor.executor.InterceptorService;
|
import ca.uhn.fhir.interceptor.executor.InterceptorService;
|
||||||
|
@ -12,13 +11,10 @@ import ca.uhn.fhir.jpa.api.dao.IDao;
|
||||||
import ca.uhn.fhir.jpa.api.model.ExpungeOptions;
|
import ca.uhn.fhir.jpa.api.model.ExpungeOptions;
|
||||||
import ca.uhn.fhir.jpa.api.svc.ISearchCoordinatorSvc;
|
import ca.uhn.fhir.jpa.api.svc.ISearchCoordinatorSvc;
|
||||||
import ca.uhn.fhir.jpa.batch.BatchJobsConfig;
|
import ca.uhn.fhir.jpa.batch.BatchJobsConfig;
|
||||||
import ca.uhn.fhir.jpa.batch.api.IBatchJobSubmitter;
|
|
||||||
import ca.uhn.fhir.jpa.batch.config.BatchConstants;
|
import ca.uhn.fhir.jpa.batch.config.BatchConstants;
|
||||||
import ca.uhn.fhir.jpa.batch.config.NonPersistedBatchConfigurer;
|
|
||||||
import ca.uhn.fhir.jpa.batch.job.PartitionedUrlValidator;
|
import ca.uhn.fhir.jpa.batch.job.PartitionedUrlValidator;
|
||||||
import ca.uhn.fhir.jpa.batch.mdm.MdmClearJobSubmitterImpl;
|
import ca.uhn.fhir.jpa.batch.mdm.MdmClearJobSubmitterImpl;
|
||||||
import ca.uhn.fhir.jpa.batch.reader.BatchResourceSearcher;
|
import ca.uhn.fhir.jpa.batch.reader.BatchResourceSearcher;
|
||||||
import ca.uhn.fhir.jpa.batch.svc.BatchJobSubmitterImpl;
|
|
||||||
import ca.uhn.fhir.jpa.binstore.BinaryAccessProvider;
|
import ca.uhn.fhir.jpa.binstore.BinaryAccessProvider;
|
||||||
import ca.uhn.fhir.jpa.binstore.BinaryStorageInterceptor;
|
import ca.uhn.fhir.jpa.binstore.BinaryStorageInterceptor;
|
||||||
import ca.uhn.fhir.jpa.bulk.export.api.IBulkDataExportSvc;
|
import ca.uhn.fhir.jpa.bulk.export.api.IBulkDataExportSvc;
|
||||||
|
@ -88,13 +84,10 @@ import ca.uhn.fhir.jpa.provider.r4.MemberMatcherR4Helper;
|
||||||
import ca.uhn.fhir.jpa.reindex.ReindexJobSubmitterImpl;
|
import ca.uhn.fhir.jpa.reindex.ReindexJobSubmitterImpl;
|
||||||
import ca.uhn.fhir.jpa.sched.AutowiringSpringBeanJobFactory;
|
import ca.uhn.fhir.jpa.sched.AutowiringSpringBeanJobFactory;
|
||||||
import ca.uhn.fhir.jpa.sched.HapiSchedulerServiceImpl;
|
import ca.uhn.fhir.jpa.sched.HapiSchedulerServiceImpl;
|
||||||
import ca.uhn.fhir.jpa.search.DatabaseBackedPagingProvider;
|
|
||||||
import ca.uhn.fhir.jpa.search.IStaleSearchDeletingSvc;
|
|
||||||
import ca.uhn.fhir.jpa.search.PersistedJpaBundleProvider;
|
import ca.uhn.fhir.jpa.search.PersistedJpaBundleProvider;
|
||||||
import ca.uhn.fhir.jpa.search.PersistedJpaBundleProviderFactory;
|
import ca.uhn.fhir.jpa.search.PersistedJpaBundleProviderFactory;
|
||||||
import ca.uhn.fhir.jpa.search.PersistedJpaSearchFirstPageBundleProvider;
|
import ca.uhn.fhir.jpa.search.PersistedJpaSearchFirstPageBundleProvider;
|
||||||
import ca.uhn.fhir.jpa.search.SearchCoordinatorSvcImpl;
|
import ca.uhn.fhir.jpa.search.SearchCoordinatorSvcImpl;
|
||||||
import ca.uhn.fhir.jpa.search.StaleSearchDeletingSvcImpl;
|
|
||||||
import ca.uhn.fhir.jpa.search.builder.QueryStack;
|
import ca.uhn.fhir.jpa.search.builder.QueryStack;
|
||||||
import ca.uhn.fhir.jpa.search.builder.SearchBuilder;
|
import ca.uhn.fhir.jpa.search.builder.SearchBuilder;
|
||||||
import ca.uhn.fhir.jpa.search.builder.predicate.ComboNonUniqueSearchParameterPredicateBuilder;
|
import ca.uhn.fhir.jpa.search.builder.predicate.ComboNonUniqueSearchParameterPredicateBuilder;
|
||||||
|
@ -148,20 +141,10 @@ import ca.uhn.fhir.rest.server.interceptor.partition.RequestTenantPartitionInter
|
||||||
import ca.uhn.fhir.rest.server.provider.DeleteExpungeProvider;
|
import ca.uhn.fhir.rest.server.provider.DeleteExpungeProvider;
|
||||||
import ca.uhn.fhir.rest.server.provider.ReindexProvider;
|
import ca.uhn.fhir.rest.server.provider.ReindexProvider;
|
||||||
import ca.uhn.fhir.util.ThreadPoolUtil;
|
import ca.uhn.fhir.util.ThreadPoolUtil;
|
||||||
import org.hibernate.jpa.HibernatePersistenceProvider;
|
|
||||||
import org.hl7.fhir.common.hapi.validation.support.UnknownCodeSystemWarningValidationSupport;
|
import org.hl7.fhir.common.hapi.validation.support.UnknownCodeSystemWarningValidationSupport;
|
||||||
import org.hl7.fhir.instance.model.api.IBaseResource;
|
import org.hl7.fhir.instance.model.api.IBaseResource;
|
||||||
import org.hl7.fhir.utilities.graphql.IGraphQLStorageServices;
|
import org.hl7.fhir.utilities.graphql.IGraphQLStorageServices;
|
||||||
import org.hl7.fhir.utilities.npm.PackageClient;
|
import org.hl7.fhir.utilities.npm.PackageClient;
|
||||||
import org.springframework.batch.core.configuration.JobRegistry;
|
|
||||||
import org.springframework.batch.core.configuration.annotation.BatchConfigurer;
|
|
||||||
import org.springframework.batch.core.configuration.annotation.EnableBatchProcessing;
|
|
||||||
import org.springframework.batch.core.explore.JobExplorer;
|
|
||||||
import org.springframework.batch.core.launch.JobLauncher;
|
|
||||||
import org.springframework.batch.core.launch.support.SimpleJobOperator;
|
|
||||||
import org.springframework.batch.core.repository.JobRepository;
|
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
|
||||||
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
|
|
||||||
import org.springframework.context.ApplicationContext;
|
import org.springframework.context.ApplicationContext;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
@ -169,18 +152,14 @@ import org.springframework.context.annotation.Import;
|
||||||
import org.springframework.context.annotation.Lazy;
|
import org.springframework.context.annotation.Lazy;
|
||||||
import org.springframework.context.annotation.Primary;
|
import org.springframework.context.annotation.Primary;
|
||||||
import org.springframework.context.annotation.Scope;
|
import org.springframework.context.annotation.Scope;
|
||||||
import org.springframework.core.env.Environment;
|
|
||||||
import org.springframework.core.task.AsyncTaskExecutor;
|
import org.springframework.core.task.AsyncTaskExecutor;
|
||||||
import org.springframework.core.task.TaskExecutor;
|
import org.springframework.core.task.TaskExecutor;
|
||||||
import org.springframework.dao.annotation.PersistenceExceptionTranslationPostProcessor;
|
|
||||||
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
|
import org.springframework.data.jpa.repository.config.EnableJpaRepositories;
|
||||||
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
|
|
||||||
import org.springframework.scheduling.TaskScheduler;
|
import org.springframework.scheduling.TaskScheduler;
|
||||||
import org.springframework.scheduling.concurrent.ConcurrentTaskScheduler;
|
import org.springframework.scheduling.concurrent.ConcurrentTaskScheduler;
|
||||||
import org.springframework.scheduling.concurrent.ScheduledExecutorFactoryBean;
|
import org.springframework.scheduling.concurrent.ScheduledExecutorFactoryBean;
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
import javax.annotation.PostConstruct;
|
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -203,15 +182,15 @@ import java.util.Date;
|
||||||
* #L%
|
* #L%
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
@EnableJpaRepositories(basePackages = "ca.uhn.fhir.jpa.dao.data", enableDefaultTransactions=true)
|
@EnableJpaRepositories(basePackages = "ca.uhn.fhir.jpa.dao.data")
|
||||||
@Import({
|
@Import({
|
||||||
SearchParamConfig.class, BatchJobsConfig.class
|
BeanPostProcessorConfig.class,
|
||||||
|
BatchJobsConfig.class,
|
||||||
|
SearchParamConfig.class,
|
||||||
|
ValidationSupportConfig.class
|
||||||
})
|
})
|
||||||
@EnableBatchProcessing
|
public class JpaConfig {
|
||||||
public abstract class BaseConfig {
|
|
||||||
|
|
||||||
public static final String JPA_VALIDATION_SUPPORT_CHAIN = "myJpaValidationSupportChain";
|
public static final String JPA_VALIDATION_SUPPORT_CHAIN = "myJpaValidationSupportChain";
|
||||||
public static final String JPA_VALIDATION_SUPPORT = "myJpaValidationSupport";
|
public static final String JPA_VALIDATION_SUPPORT = "myJpaValidationSupport";
|
||||||
public static final String TASK_EXECUTOR_NAME = "hapiJpaTaskExecutor";
|
public static final String TASK_EXECUTOR_NAME = "hapiJpaTaskExecutor";
|
||||||
|
@ -222,100 +201,24 @@ public abstract class BaseConfig {
|
||||||
public static final String SEARCH_BUILDER = "SearchBuilder";
|
public static final String SEARCH_BUILDER = "SearchBuilder";
|
||||||
public static final String HISTORY_BUILDER = "HistoryBuilder";
|
public static final String HISTORY_BUILDER = "HistoryBuilder";
|
||||||
private static final String HAPI_DEFAULT_SCHEDULER_GROUP = "HAPI";
|
private static final String HAPI_DEFAULT_SCHEDULER_GROUP = "HAPI";
|
||||||
@Autowired
|
|
||||||
protected Environment myEnv;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private DaoRegistry myDaoRegistry;
|
|
||||||
private Integer searchCoordCorePoolSize = 20;
|
|
||||||
private Integer searchCoordMaxPoolSize = 100;
|
|
||||||
private Integer searchCoordQueueCapacity = 200;
|
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private JobLauncher myJobLauncher;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Subclasses may override this method to provide settings such as search coordinator pool sizes.
|
|
||||||
*/
|
|
||||||
@PostConstruct
|
|
||||||
public void initSettings() {
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSearchCoordCorePoolSize(Integer searchCoordCorePoolSize) {
|
|
||||||
this.searchCoordCorePoolSize = searchCoordCorePoolSize;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSearchCoordMaxPoolSize(Integer searchCoordMaxPoolSize) {
|
|
||||||
this.searchCoordMaxPoolSize = searchCoordMaxPoolSize;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setSearchCoordQueueCapacity(Integer searchCoordQueueCapacity) {
|
|
||||||
this.searchCoordQueueCapacity = searchCoordQueueCapacity;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean
|
|
||||||
public BatchConfigurer batchConfigurer() {
|
|
||||||
return new NonPersistedBatchConfigurer();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean("myDaoRegistry")
|
@Bean("myDaoRegistry")
|
||||||
public DaoRegistry daoRegistry() {
|
public DaoRegistry daoRegistry() {
|
||||||
return new DaoRegistry();
|
return new DaoRegistry();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
|
||||||
public DatabaseBackedPagingProvider databaseBackedPagingProvider() {
|
|
||||||
return new DatabaseBackedPagingProvider();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean
|
|
||||||
public IBatchJobSubmitter batchJobSubmitter() {
|
|
||||||
return new BatchJobSubmitterImpl();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean
|
|
||||||
public BatchJobRegisterer batchJobRegisterer() {
|
|
||||||
return new BatchJobRegisterer();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Lazy
|
@Lazy
|
||||||
@Bean
|
@Bean
|
||||||
public CascadingDeleteInterceptor cascadingDeleteInterceptor(FhirContext theFhirContext, DaoRegistry theDaoRegistry, IInterceptorBroadcaster theInterceptorBroadcaster) {
|
public CascadingDeleteInterceptor cascadingDeleteInterceptor(FhirContext theFhirContext, DaoRegistry theDaoRegistry, IInterceptorBroadcaster theInterceptorBroadcaster) {
|
||||||
return new CascadingDeleteInterceptor(theFhirContext, theDaoRegistry, theInterceptorBroadcaster);
|
return new CascadingDeleteInterceptor(theFhirContext, theDaoRegistry, theInterceptorBroadcaster);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
|
||||||
public SimpleJobOperator jobOperator(JobExplorer jobExplorer, JobRepository jobRepository, JobRegistry jobRegistry) {
|
|
||||||
SimpleJobOperator jobOperator = new SimpleJobOperator();
|
|
||||||
|
|
||||||
jobOperator.setJobExplorer(jobExplorer);
|
|
||||||
jobOperator.setJobRepository(jobRepository);
|
|
||||||
jobOperator.setJobRegistry(jobRegistry);
|
|
||||||
jobOperator.setJobLauncher(myJobLauncher);
|
|
||||||
|
|
||||||
return jobOperator;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
@Lazy
|
@Lazy
|
||||||
@Bean
|
@Bean
|
||||||
public ResponseTerminologyTranslationInterceptor responseTerminologyTranslationInterceptor(IValidationSupport theValidationSupport) {
|
public ResponseTerminologyTranslationInterceptor responseTerminologyTranslationInterceptor(IValidationSupport theValidationSupport) {
|
||||||
return new ResponseTerminologyTranslationInterceptor(theValidationSupport);
|
return new ResponseTerminologyTranslationInterceptor(theValidationSupport);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* This method should be overridden to provide an actual completed
|
|
||||||
* bean, but it provides a partially completed entity manager
|
|
||||||
* factory with HAPI FHIR customizations
|
|
||||||
*/
|
|
||||||
protected LocalContainerEntityManagerFactoryBean entityManagerFactory(ConfigurableListableBeanFactory myConfigurableListableBeanFactory) {
|
|
||||||
LocalContainerEntityManagerFactoryBean retVal = new HapiFhirLocalContainerEntityManagerFactoryBean(myConfigurableListableBeanFactory);
|
|
||||||
configureEntityManagerFactory(retVal, fhirContext());
|
|
||||||
return retVal;
|
|
||||||
}
|
|
||||||
|
|
||||||
public abstract FhirContext fhirContext();
|
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
@Lazy
|
@Lazy
|
||||||
public IGraphQLStorageServices graphqlStorageServices() {
|
public IGraphQLStorageServices graphqlStorageServices() {
|
||||||
|
@ -420,7 +323,7 @@ public abstract class BaseConfig {
|
||||||
return retVal;
|
return retVal;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean(name= BatchConstants.JOB_LAUNCHING_TASK_EXECUTOR)
|
@Bean(name = BatchConstants.JOB_LAUNCHING_TASK_EXECUTOR)
|
||||||
public TaskExecutor jobLaunchingTaskExecutor() {
|
public TaskExecutor jobLaunchingTaskExecutor() {
|
||||||
return ThreadPoolUtil.newThreadPool(0, 10, "job-launcher-");
|
return ThreadPoolUtil.newThreadPool(0, 10, "job-launcher-");
|
||||||
}
|
}
|
||||||
|
@ -441,13 +344,8 @@ public abstract class BaseConfig {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public IStaleSearchDeletingSvc staleSearchDeletingSvc() {
|
public HapiFhirHibernateJpaDialect hibernateJpaDialect(FhirContext theFhirContext) {
|
||||||
return new StaleSearchDeletingSvcImpl();
|
return new HapiFhirHibernateJpaDialect(theFhirContext.getLocalizer());
|
||||||
}
|
|
||||||
|
|
||||||
@Bean
|
|
||||||
public HapiFhirHibernateJpaDialect hibernateJpaDialect() {
|
|
||||||
return new HapiFhirHibernateJpaDialect(fhirContext().getLocalizer());
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
|
@ -461,11 +359,6 @@ public abstract class BaseConfig {
|
||||||
return new RequestPartitionHelperSvc();
|
return new RequestPartitionHelperSvc();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
|
||||||
public PersistenceExceptionTranslationPostProcessor persistenceExceptionTranslationPostProcessor() {
|
|
||||||
return new PersistenceExceptionTranslationPostProcessor();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public HapiTransactionService hapiTransactionService() {
|
public HapiTransactionService hapiTransactionService() {
|
||||||
return new HapiTransactionService();
|
return new HapiTransactionService();
|
||||||
|
@ -476,13 +369,6 @@ public abstract class BaseConfig {
|
||||||
return new InterceptorService("JPA");
|
return new InterceptorService("JPA");
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Subclasses may override
|
|
||||||
*/
|
|
||||||
protected boolean isSupported(String theResourceType) {
|
|
||||||
return myDaoRegistry.getResourceDaoOrNull(theResourceType) != null;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public IPackageInstallerSvc npmInstallerSvc() {
|
public IPackageInstallerSvc npmInstallerSvc() {
|
||||||
return new PackageInstallerSvcImpl();
|
return new PackageInstallerSvcImpl();
|
||||||
|
@ -593,6 +479,7 @@ public abstract class BaseConfig {
|
||||||
return new BulkDataImportSvcImpl();
|
return new BulkDataImportSvcImpl();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public PersistedJpaBundleProviderFactory persistedJpaBundleProviderFactory() {
|
public PersistedJpaBundleProviderFactory persistedJpaBundleProviderFactory() {
|
||||||
return new PersistedJpaBundleProviderFactory();
|
return new PersistedJpaBundleProviderFactory();
|
||||||
|
@ -623,6 +510,7 @@ public abstract class BaseConfig {
|
||||||
return new ResourceVersionSvcDaoImpl();
|
return new ResourceVersionSvcDaoImpl();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/* **************************************************************** *
|
/* **************************************************************** *
|
||||||
* Prototype Beans Below *
|
* Prototype Beans Below *
|
||||||
* **************************************************************** */
|
* **************************************************************** */
|
||||||
|
@ -927,8 +815,8 @@ public abstract class BaseConfig {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public UnknownCodeSystemWarningValidationSupport unknownCodeSystemWarningValidationSupport() {
|
public UnknownCodeSystemWarningValidationSupport unknownCodeSystemWarningValidationSupport(FhirContext theFhirContext) {
|
||||||
return new UnknownCodeSystemWarningValidationSupport(fhirContext());
|
return new UnknownCodeSystemWarningValidationSupport(theFhirContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Lazy
|
@Lazy
|
||||||
|
@ -936,16 +824,4 @@ public abstract class BaseConfig {
|
||||||
public MemberMatcherR4Helper memberMatcherR4Helper(FhirContext theFhirContext) {
|
public MemberMatcherR4Helper memberMatcherR4Helper(FhirContext theFhirContext) {
|
||||||
return new MemberMatcherR4Helper(theFhirContext);
|
return new MemberMatcherR4Helper(theFhirContext);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
public static void configureEntityManagerFactory(LocalContainerEntityManagerFactoryBean theFactory, FhirContext theCtx) {
|
|
||||||
theFactory.setJpaDialect(hibernateJpaDialect(theCtx.getLocalizer()));
|
|
||||||
theFactory.setPackagesToScan("ca.uhn.fhir.jpa.model.entity", "ca.uhn.fhir.jpa.entity");
|
|
||||||
theFactory.setPersistenceProvider(new HibernatePersistenceProvider());
|
|
||||||
}
|
|
||||||
|
|
||||||
private static HapiFhirHibernateJpaDialect hibernateJpaDialect(HapiLocalizer theLocalizer) {
|
|
||||||
return new HapiFhirHibernateJpaDialect(theLocalizer);
|
|
||||||
}
|
|
||||||
}
|
}
|
|
@ -0,0 +1,67 @@
|
||||||
|
package ca.uhn.fhir.jpa.config;
|
||||||
|
|
||||||
|
import ca.uhn.fhir.context.FhirContext;
|
||||||
|
import ca.uhn.fhir.jpa.api.dao.IFhirSystemDao;
|
||||||
|
import ca.uhn.fhir.jpa.dao.ITransactionProcessorVersionAdapter;
|
||||||
|
import ca.uhn.fhir.jpa.dao.TransactionProcessorVersionAdapterDstu2;
|
||||||
|
import ca.uhn.fhir.jpa.term.TermReadSvcDstu2;
|
||||||
|
import ca.uhn.fhir.jpa.term.api.ITermReadSvc;
|
||||||
|
import ca.uhn.fhir.model.dstu2.composite.MetaDt;
|
||||||
|
import ca.uhn.fhir.model.dstu2.resource.Bundle;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.context.annotation.Import;
|
||||||
|
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
||||||
|
|
||||||
|
/*
|
||||||
|
* #%L
|
||||||
|
* HAPI FHIR JPA Server
|
||||||
|
* %%
|
||||||
|
* Copyright (C) 2014 - 2022 Smile CDR, Inc.
|
||||||
|
* %%
|
||||||
|
* 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%
|
||||||
|
*/
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
@EnableTransactionManagement
|
||||||
|
@Import({
|
||||||
|
FhirContextDstu2Config.class,
|
||||||
|
GeneratedDaoAndResourceProviderConfigDstu2.class,
|
||||||
|
JpaConfig.class
|
||||||
|
})
|
||||||
|
public class JpaDstu2Config {
|
||||||
|
@Bean
|
||||||
|
public ITransactionProcessorVersionAdapter transactionProcessorVersionFacade() {
|
||||||
|
return new TransactionProcessorVersionAdapterDstu2();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean(name = "mySystemDaoDstu2")
|
||||||
|
public IFhirSystemDao<Bundle, MetaDt> systemDaoDstu2() {
|
||||||
|
ca.uhn.fhir.jpa.dao.FhirSystemDaoDstu2 retVal = new ca.uhn.fhir.jpa.dao.FhirSystemDaoDstu2();
|
||||||
|
return retVal;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean(name = "mySystemProviderDstu2")
|
||||||
|
public ca.uhn.fhir.jpa.provider.JpaSystemProviderDstu2 systemProviderDstu2(FhirContext theFhirContext) {
|
||||||
|
ca.uhn.fhir.jpa.provider.JpaSystemProviderDstu2 retVal = new ca.uhn.fhir.jpa.provider.JpaSystemProviderDstu2();
|
||||||
|
retVal.setDao(systemDaoDstu2());
|
||||||
|
retVal.setContext(theFhirContext);
|
||||||
|
return retVal;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public ITermReadSvc terminologyService() {
|
||||||
|
return new TermReadSvcDstu2();
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,57 @@
|
||||||
|
package ca.uhn.fhir.jpa.config;
|
||||||
|
|
||||||
|
/*-
|
||||||
|
* #%L
|
||||||
|
* HAPI FHIR JPA Server
|
||||||
|
* %%
|
||||||
|
* Copyright (C) 2014 - 2022 Smile CDR, Inc.
|
||||||
|
* %%
|
||||||
|
* 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.jpa.dao.ObservationLastNIndexPersistSvc;
|
||||||
|
import ca.uhn.fhir.jpa.term.TermCodeSystemStorageSvcImpl;
|
||||||
|
import ca.uhn.fhir.jpa.term.TermDeferredStorageSvcImpl;
|
||||||
|
import ca.uhn.fhir.jpa.term.TermReindexingSvcImpl;
|
||||||
|
import ca.uhn.fhir.jpa.term.api.ITermCodeSystemStorageSvc;
|
||||||
|
import ca.uhn.fhir.jpa.term.api.ITermDeferredStorageSvc;
|
||||||
|
import ca.uhn.fhir.jpa.term.api.ITermReindexingSvc;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
public class SharedConfigDstu3Plus {
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public ITermCodeSystemStorageSvc termCodeSystemStorageSvc() {
|
||||||
|
return new TermCodeSystemStorageSvcImpl();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public ITermDeferredStorageSvc termDeferredStorageSvc() {
|
||||||
|
return new TermDeferredStorageSvcImpl();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public ITermReindexingSvc termReindexingSvc() {
|
||||||
|
return new TermReindexingSvcImpl();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public ObservationLastNIndexPersistSvc baseObservationLastNIndexpersistSvc() {
|
||||||
|
return new ObservationLastNIndexPersistSvc();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,67 @@
|
||||||
|
package ca.uhn.fhir.jpa.config;
|
||||||
|
|
||||||
|
import ca.uhn.fhir.context.FhirContext;
|
||||||
|
import ca.uhn.fhir.context.FhirVersionEnum;
|
||||||
|
import ca.uhn.fhir.context.support.DefaultProfileValidationSupport;
|
||||||
|
import ca.uhn.fhir.context.support.IValidationSupport;
|
||||||
|
import ca.uhn.fhir.jpa.dao.JpaPersistedResourceValidationSupport;
|
||||||
|
import ca.uhn.fhir.jpa.validation.JpaValidationSupportChain;
|
||||||
|
import ca.uhn.fhir.jpa.validation.ValidatorPolicyAdvisor;
|
||||||
|
import ca.uhn.fhir.jpa.validation.ValidatorResourceFetcher;
|
||||||
|
import ca.uhn.fhir.validation.IInstanceValidatorModule;
|
||||||
|
import org.hl7.fhir.common.hapi.validation.support.CachingValidationSupport;
|
||||||
|
import org.hl7.fhir.common.hapi.validation.support.ValidationSupportChain;
|
||||||
|
import org.hl7.fhir.common.hapi.validation.validator.FhirInstanceValidator;
|
||||||
|
import org.hl7.fhir.common.hapi.validation.validator.HapiToHl7OrgDstu2ValidatingSupportWrapper;
|
||||||
|
import org.hl7.fhir.r5.utils.validation.constants.BestPracticeWarningLevel;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.context.annotation.Lazy;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
public class ValidationSupportConfig {
|
||||||
|
@Bean(name = "myDefaultProfileValidationSupport")
|
||||||
|
public DefaultProfileValidationSupport defaultProfileValidationSupport(FhirContext theFhirContext) {
|
||||||
|
return new DefaultProfileValidationSupport(theFhirContext);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean(name = JpaConfig.JPA_VALIDATION_SUPPORT_CHAIN)
|
||||||
|
public JpaValidationSupportChain jpaValidationSupportChain(FhirContext theFhirContext) {
|
||||||
|
return new JpaValidationSupportChain(theFhirContext);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean(name = JpaConfig.JPA_VALIDATION_SUPPORT)
|
||||||
|
public IValidationSupport jpaValidationSupport(FhirContext theFhirContext) {
|
||||||
|
return new JpaPersistedResourceValidationSupport(theFhirContext);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean(name = "myInstanceValidator")
|
||||||
|
public IInstanceValidatorModule instanceValidator(FhirContext theFhirContext, CachingValidationSupport theCachingValidationSupport, ValidationSupportChain theValidationSupportChain) {
|
||||||
|
if (theFhirContext.getVersion().getVersion().isEqualOrNewerThan(FhirVersionEnum.DSTU3)) {
|
||||||
|
FhirInstanceValidator val = new FhirInstanceValidator(theCachingValidationSupport);
|
||||||
|
val.setValidatorResourceFetcher(jpaValidatorResourceFetcher());
|
||||||
|
val.setValidatorPolicyAdvisor(jpaValidatorPolicyAdvisor());
|
||||||
|
val.setBestPracticeWarningLevel(BestPracticeWarningLevel.Warning);
|
||||||
|
val.setValidationSupport(theCachingValidationSupport);
|
||||||
|
return val;
|
||||||
|
} else {
|
||||||
|
CachingValidationSupport cachingValidationSupport = new CachingValidationSupport(new HapiToHl7OrgDstu2ValidatingSupportWrapper(theValidationSupportChain));
|
||||||
|
FhirInstanceValidator retVal = new FhirInstanceValidator(cachingValidationSupport);
|
||||||
|
retVal.setBestPracticeWarningLevel(BestPracticeWarningLevel.Warning);
|
||||||
|
return retVal;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
@Lazy
|
||||||
|
public ValidatorResourceFetcher jpaValidatorResourceFetcher() {
|
||||||
|
return new ValidatorResourceFetcher();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
@Lazy
|
||||||
|
public ValidatorPolicyAdvisor jpaValidatorPolicyAdvisor() {
|
||||||
|
return new ValidatorPolicyAdvisor();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,20 @@
|
||||||
|
package ca.uhn.fhir.jpa.config.dstu3;
|
||||||
|
|
||||||
|
import ca.uhn.fhir.context.FhirContext;
|
||||||
|
import ca.uhn.fhir.context.ParserOptions;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Primary;
|
||||||
|
|
||||||
|
public class FhirContextDstu3Config {
|
||||||
|
@Primary
|
||||||
|
@Bean(name = "primaryFhirContext")
|
||||||
|
public FhirContext fhirContextDstu3() {
|
||||||
|
FhirContext retVal = FhirContext.forDstu3();
|
||||||
|
|
||||||
|
// Don't strip versions in some places
|
||||||
|
ParserOptions parserOptions = retVal.getParserOptions();
|
||||||
|
parserOptions.setDontStripVersionsFromReferencesAtPaths("AuditEvent.entity.reference");
|
||||||
|
|
||||||
|
return retVal;
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,11 +1,11 @@
|
||||||
package ca.uhn.fhir.jpa.config.dstu3;
|
package ca.uhn.fhir.jpa.config.dstu3;
|
||||||
|
|
||||||
import ca.uhn.fhir.context.FhirContext;
|
import ca.uhn.fhir.context.FhirContext;
|
||||||
import ca.uhn.fhir.context.ParserOptions;
|
import ca.uhn.fhir.context.support.IValidationSupport;
|
||||||
import ca.uhn.fhir.jpa.api.dao.IFhirSystemDao;
|
import ca.uhn.fhir.jpa.api.dao.IFhirSystemDao;
|
||||||
import ca.uhn.fhir.jpa.config.BaseConfigDstu3Plus;
|
import ca.uhn.fhir.jpa.config.GeneratedDaoAndResourceProviderConfigDstu3;
|
||||||
import ca.uhn.fhir.jpa.dao.FulltextSearchSvcImpl;
|
import ca.uhn.fhir.jpa.config.JpaConfig;
|
||||||
import ca.uhn.fhir.jpa.dao.IFulltextSearchSvc;
|
import ca.uhn.fhir.jpa.config.SharedConfigDstu3Plus;
|
||||||
import ca.uhn.fhir.jpa.dao.ITransactionProcessorVersionAdapter;
|
import ca.uhn.fhir.jpa.dao.ITransactionProcessorVersionAdapter;
|
||||||
import ca.uhn.fhir.jpa.dao.dstu3.TransactionProcessorVersionAdapterDstu3;
|
import ca.uhn.fhir.jpa.dao.dstu3.TransactionProcessorVersionAdapterDstu3;
|
||||||
import ca.uhn.fhir.jpa.graphql.GraphQLProvider;
|
import ca.uhn.fhir.jpa.graphql.GraphQLProvider;
|
||||||
|
@ -17,14 +17,13 @@ import ca.uhn.fhir.jpa.term.api.ITermDeferredStorageSvc;
|
||||||
import ca.uhn.fhir.jpa.term.api.ITermLoaderSvc;
|
import ca.uhn.fhir.jpa.term.api.ITermLoaderSvc;
|
||||||
import ca.uhn.fhir.jpa.term.api.ITermReadSvcDstu3;
|
import ca.uhn.fhir.jpa.term.api.ITermReadSvcDstu3;
|
||||||
import ca.uhn.fhir.jpa.term.api.ITermVersionAdapterSvc;
|
import ca.uhn.fhir.jpa.term.api.ITermVersionAdapterSvc;
|
||||||
import ca.uhn.fhir.jpa.util.ResourceCountCache;
|
|
||||||
import org.apache.commons.lang3.time.DateUtils;
|
|
||||||
import org.hl7.fhir.dstu3.model.Bundle;
|
import org.hl7.fhir.dstu3.model.Bundle;
|
||||||
import org.hl7.fhir.dstu3.model.Meta;
|
import org.hl7.fhir.dstu3.model.Meta;
|
||||||
|
import org.hl7.fhir.utilities.graphql.IGraphQLStorageServices;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.context.annotation.Import;
|
||||||
import org.springframework.context.annotation.Lazy;
|
import org.springframework.context.annotation.Lazy;
|
||||||
import org.springframework.context.annotation.Primary;
|
|
||||||
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -49,37 +48,22 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
@EnableTransactionManagement
|
@EnableTransactionManagement
|
||||||
public class BaseDstu3Config extends BaseConfigDstu3Plus {
|
@Import({
|
||||||
|
FhirContextDstu3Config.class,
|
||||||
public static FhirContext ourFhirContext = FhirContext.forDstu3();
|
GeneratedDaoAndResourceProviderConfigDstu3.class,
|
||||||
|
SharedConfigDstu3Plus.class,
|
||||||
@Override
|
JpaConfig.class
|
||||||
public FhirContext fhirContext() {
|
})
|
||||||
return fhirContextDstu3();
|
public class JpaDstu3Config {
|
||||||
}
|
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
@Override
|
|
||||||
public ITermVersionAdapterSvc terminologyVersionAdapterSvc() {
|
public ITermVersionAdapterSvc terminologyVersionAdapterSvc() {
|
||||||
return new TermVersionAdapterSvcDstu3();
|
return new TermVersionAdapterSvcDstu3();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean(name = JpaConfig.GRAPHQL_PROVIDER_NAME)
|
||||||
@Primary
|
|
||||||
public FhirContext fhirContextDstu3() {
|
|
||||||
FhirContext retVal = ourFhirContext;
|
|
||||||
|
|
||||||
// Don't strip versions in some places
|
|
||||||
ParserOptions parserOptions = retVal.getParserOptions();
|
|
||||||
parserOptions.setDontStripVersionsFromReferencesAtPaths("AuditEvent.entity.reference");
|
|
||||||
|
|
||||||
return retVal;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean(name = GRAPHQL_PROVIDER_NAME)
|
|
||||||
@Lazy
|
@Lazy
|
||||||
public GraphQLProvider graphQLProvider() {
|
public GraphQLProvider graphQLProvider(FhirContext theFhirContext, IGraphQLStorageServices theGraphqlStorageServices, IValidationSupport theValidationSupport) {
|
||||||
return new GraphQLProvider(fhirContextDstu3(), validationSupportChain(), graphqlStorageServices());
|
return new GraphQLProvider(theFhirContext, theValidationSupport, theGraphqlStorageServices);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
|
@ -87,27 +71,15 @@ public class BaseDstu3Config extends BaseConfigDstu3Plus {
|
||||||
return new TransactionProcessorVersionAdapterDstu3();
|
return new TransactionProcessorVersionAdapterDstu3();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean(name = "myResourceCountsCache")
|
|
||||||
public ResourceCountCache resourceCountsCache() {
|
|
||||||
ResourceCountCache retVal = new ResourceCountCache(() -> systemDaoDstu3().getResourceCounts());
|
|
||||||
retVal.setCacheMillis(4 * DateUtils.MILLIS_PER_HOUR);
|
|
||||||
return retVal;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean
|
|
||||||
public IFulltextSearchSvc searchDaoDstu3() {
|
|
||||||
return new FulltextSearchSvcImpl();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean(name = "mySystemDaoDstu3")
|
@Bean(name = "mySystemDaoDstu3")
|
||||||
public IFhirSystemDao<Bundle, Meta> systemDaoDstu3() {
|
public IFhirSystemDao<Bundle, Meta> systemDaoDstu3() {
|
||||||
return new ca.uhn.fhir.jpa.dao.dstu3.FhirSystemDaoDstu3();
|
return new ca.uhn.fhir.jpa.dao.dstu3.FhirSystemDaoDstu3();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean(name = "mySystemProviderDstu3")
|
@Bean(name = "mySystemProviderDstu3")
|
||||||
public ca.uhn.fhir.jpa.provider.dstu3.JpaSystemProviderDstu3 systemProviderDstu3() {
|
public ca.uhn.fhir.jpa.provider.dstu3.JpaSystemProviderDstu3 systemProviderDstu3(FhirContext theFhirContext) {
|
||||||
ca.uhn.fhir.jpa.provider.dstu3.JpaSystemProviderDstu3 retVal = new ca.uhn.fhir.jpa.provider.dstu3.JpaSystemProviderDstu3();
|
ca.uhn.fhir.jpa.provider.dstu3.JpaSystemProviderDstu3 retVal = new ca.uhn.fhir.jpa.provider.dstu3.JpaSystemProviderDstu3();
|
||||||
retVal.setContext(fhirContextDstu3());
|
retVal.setContext(theFhirContext);
|
||||||
retVal.setDao(systemDaoDstu3());
|
retVal.setDao(systemDaoDstu3());
|
||||||
return retVal;
|
return retVal;
|
||||||
}
|
}
|
||||||
|
@ -117,8 +89,7 @@ public class BaseDstu3Config extends BaseConfigDstu3Plus {
|
||||||
return new TermLoaderSvcImpl(theDeferredStorageSvc, theCodeSystemStorageSvc);
|
return new TermLoaderSvcImpl(theDeferredStorageSvc, theCodeSystemStorageSvc);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Bean
|
||||||
@Bean
|
|
||||||
public ITermReadSvcDstu3 terminologyService() {
|
public ITermReadSvcDstu3 terminologyService() {
|
||||||
return new TermReadSvcDstu3();
|
return new TermReadSvcDstu3();
|
||||||
}
|
}
|
|
@ -0,0 +1,20 @@
|
||||||
|
package ca.uhn.fhir.jpa.config.r4;
|
||||||
|
|
||||||
|
import ca.uhn.fhir.context.FhirContext;
|
||||||
|
import ca.uhn.fhir.context.ParserOptions;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Primary;
|
||||||
|
|
||||||
|
public class FhirContextR4Config {
|
||||||
|
@Bean(name = "primaryFhirContext")
|
||||||
|
@Primary
|
||||||
|
public FhirContext fhirContextR4() {
|
||||||
|
FhirContext retVal = FhirContext.forR4();
|
||||||
|
|
||||||
|
// Don't strip versions in some places
|
||||||
|
ParserOptions parserOptions = retVal.getParserOptions();
|
||||||
|
parserOptions.setDontStripVersionsFromReferencesAtPaths("AuditEvent.entity.what");
|
||||||
|
|
||||||
|
return retVal;
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,11 +1,11 @@
|
||||||
package ca.uhn.fhir.jpa.config.r4;
|
package ca.uhn.fhir.jpa.config.r4;
|
||||||
|
|
||||||
import ca.uhn.fhir.context.FhirContext;
|
import ca.uhn.fhir.context.FhirContext;
|
||||||
import ca.uhn.fhir.context.ParserOptions;
|
import ca.uhn.fhir.context.support.IValidationSupport;
|
||||||
import ca.uhn.fhir.jpa.api.dao.IFhirSystemDao;
|
import ca.uhn.fhir.jpa.api.dao.IFhirSystemDao;
|
||||||
import ca.uhn.fhir.jpa.config.BaseConfigDstu3Plus;
|
import ca.uhn.fhir.jpa.config.GeneratedDaoAndResourceProviderConfigR4;
|
||||||
import ca.uhn.fhir.jpa.dao.FulltextSearchSvcImpl;
|
import ca.uhn.fhir.jpa.config.JpaConfig;
|
||||||
import ca.uhn.fhir.jpa.dao.IFulltextSearchSvc;
|
import ca.uhn.fhir.jpa.config.SharedConfigDstu3Plus;
|
||||||
import ca.uhn.fhir.jpa.dao.ITransactionProcessorVersionAdapter;
|
import ca.uhn.fhir.jpa.dao.ITransactionProcessorVersionAdapter;
|
||||||
import ca.uhn.fhir.jpa.dao.r4.TransactionProcessorVersionAdapterR4;
|
import ca.uhn.fhir.jpa.dao.r4.TransactionProcessorVersionAdapterR4;
|
||||||
import ca.uhn.fhir.jpa.graphql.GraphQLProvider;
|
import ca.uhn.fhir.jpa.graphql.GraphQLProvider;
|
||||||
|
@ -17,17 +17,67 @@ import ca.uhn.fhir.jpa.term.api.ITermDeferredStorageSvc;
|
||||||
import ca.uhn.fhir.jpa.term.api.ITermLoaderSvc;
|
import ca.uhn.fhir.jpa.term.api.ITermLoaderSvc;
|
||||||
import ca.uhn.fhir.jpa.term.api.ITermReadSvcR4;
|
import ca.uhn.fhir.jpa.term.api.ITermReadSvcR4;
|
||||||
import ca.uhn.fhir.jpa.term.api.ITermVersionAdapterSvc;
|
import ca.uhn.fhir.jpa.term.api.ITermVersionAdapterSvc;
|
||||||
import ca.uhn.fhir.jpa.util.ResourceCountCache;
|
|
||||||
import org.apache.commons.lang3.time.DateUtils;
|
|
||||||
import org.hl7.fhir.r4.model.Bundle;
|
import org.hl7.fhir.r4.model.Bundle;
|
||||||
import org.hl7.fhir.r4.model.Meta;
|
import org.hl7.fhir.r4.model.Meta;
|
||||||
import org.springframework.beans.factory.annotation.Autowire;
|
import org.hl7.fhir.utilities.graphql.IGraphQLStorageServices;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.context.annotation.Import;
|
||||||
import org.springframework.context.annotation.Lazy;
|
import org.springframework.context.annotation.Lazy;
|
||||||
import org.springframework.context.annotation.Primary;
|
|
||||||
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
||||||
|
|
||||||
|
@Configuration
|
||||||
|
@EnableTransactionManagement
|
||||||
|
@Import({
|
||||||
|
FhirContextR4Config.class,
|
||||||
|
GeneratedDaoAndResourceProviderConfigR4.class,
|
||||||
|
SharedConfigDstu3Plus.class,
|
||||||
|
JpaConfig.class
|
||||||
|
})
|
||||||
|
public class JpaR4Config {
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public ITermVersionAdapterSvc terminologyVersionAdapterSvc() {
|
||||||
|
return new TermVersionAdapterSvcR4();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public ITransactionProcessorVersionAdapter transactionProcessorVersionFacade() {
|
||||||
|
return new TransactionProcessorVersionAdapterR4();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean(name = JpaConfig.GRAPHQL_PROVIDER_NAME)
|
||||||
|
@Lazy
|
||||||
|
public GraphQLProvider graphQLProvider(FhirContext theFhirContext, IGraphQLStorageServices theGraphqlStorageServices, IValidationSupport theValidationSupport) {
|
||||||
|
return new GraphQLProvider(theFhirContext, theValidationSupport, theGraphqlStorageServices);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean(name = "mySystemDaoR4")
|
||||||
|
public IFhirSystemDao<Bundle, Meta> systemDaoR4() {
|
||||||
|
ca.uhn.fhir.jpa.dao.r4.FhirSystemDaoR4 retVal = new ca.uhn.fhir.jpa.dao.r4.FhirSystemDaoR4();
|
||||||
|
return retVal;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean(name = "mySystemProviderR4")
|
||||||
|
public ca.uhn.fhir.jpa.provider.r4.JpaSystemProviderR4 systemProviderR4(FhirContext theFhirContext) {
|
||||||
|
ca.uhn.fhir.jpa.provider.r4.JpaSystemProviderR4 retVal = new ca.uhn.fhir.jpa.provider.r4.JpaSystemProviderR4();
|
||||||
|
retVal.setContext(theFhirContext);
|
||||||
|
retVal.setDao(systemDaoR4());
|
||||||
|
return retVal;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public ITermLoaderSvc termLoaderService(ITermDeferredStorageSvc theDeferredStorageSvc, ITermCodeSystemStorageSvc theCodeSystemStorageSvc) {
|
||||||
|
return new TermLoaderSvcImpl(theDeferredStorageSvc, theCodeSystemStorageSvc);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean
|
||||||
|
public ITermReadSvcR4 terminologyService() {
|
||||||
|
return new TermReadSvcR4();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* #%L
|
* #%L
|
||||||
* HAPI FHIR JPA Server
|
* HAPI FHIR JPA Server
|
||||||
|
@ -47,81 +97,3 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
* #L%
|
* #L%
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@Configuration
|
|
||||||
@EnableTransactionManagement
|
|
||||||
public class BaseR4Config extends BaseConfigDstu3Plus {
|
|
||||||
|
|
||||||
@Override
|
|
||||||
public FhirContext fhirContext() {
|
|
||||||
return fhirContextR4();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean
|
|
||||||
@Override
|
|
||||||
public ITermVersionAdapterSvc terminologyVersionAdapterSvc() {
|
|
||||||
return new TermVersionAdapterSvcR4();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean
|
|
||||||
@Primary
|
|
||||||
public FhirContext fhirContextR4() {
|
|
||||||
FhirContext retVal = FhirContext.forR4();
|
|
||||||
|
|
||||||
// Don't strip versions in some places
|
|
||||||
ParserOptions parserOptions = retVal.getParserOptions();
|
|
||||||
parserOptions.setDontStripVersionsFromReferencesAtPaths("AuditEvent.entity.what");
|
|
||||||
|
|
||||||
return retVal;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean
|
|
||||||
public ITransactionProcessorVersionAdapter transactionProcessorVersionFacade() {
|
|
||||||
return new TransactionProcessorVersionAdapterR4();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean(name = GRAPHQL_PROVIDER_NAME)
|
|
||||||
@Lazy
|
|
||||||
public GraphQLProvider graphQLProvider() {
|
|
||||||
return new GraphQLProvider(fhirContextR4(), validationSupportChain(), graphqlStorageServices());
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean(name = "myResourceCountsCache")
|
|
||||||
public ResourceCountCache resourceCountsCache() {
|
|
||||||
ResourceCountCache retVal = new ResourceCountCache(() -> systemDaoR4().getResourceCounts());
|
|
||||||
retVal.setCacheMillis(4 * DateUtils.MILLIS_PER_HOUR);
|
|
||||||
return retVal;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean(autowire = Autowire.BY_TYPE)
|
|
||||||
public IFulltextSearchSvc searchDaoR4() {
|
|
||||||
FulltextSearchSvcImpl searchDao = new FulltextSearchSvcImpl();
|
|
||||||
return searchDao;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean(name = "mySystemDaoR4", autowire = Autowire.BY_NAME)
|
|
||||||
public IFhirSystemDao<Bundle, Meta> systemDaoR4() {
|
|
||||||
ca.uhn.fhir.jpa.dao.r4.FhirSystemDaoR4 retVal = new ca.uhn.fhir.jpa.dao.r4.FhirSystemDaoR4();
|
|
||||||
return retVal;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean(name = "mySystemProviderR4")
|
|
||||||
public ca.uhn.fhir.jpa.provider.r4.JpaSystemProviderR4 systemProviderR4() {
|
|
||||||
ca.uhn.fhir.jpa.provider.r4.JpaSystemProviderR4 retVal = new ca.uhn.fhir.jpa.provider.r4.JpaSystemProviderR4();
|
|
||||||
retVal.setContext(fhirContextR4());
|
|
||||||
retVal.setDao(systemDaoR4());
|
|
||||||
return retVal;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean
|
|
||||||
public ITermLoaderSvc termLoaderService(ITermDeferredStorageSvc theDeferredStorageSvc, ITermCodeSystemStorageSvc theCodeSystemStorageSvc) {
|
|
||||||
return new TermLoaderSvcImpl(theDeferredStorageSvc, theCodeSystemStorageSvc);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@Bean(autowire = Autowire.BY_TYPE)
|
|
||||||
public ITermReadSvcR4 terminologyService() {
|
|
||||||
return new TermReadSvcR4();
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
|
@ -0,0 +1,20 @@
|
||||||
|
package ca.uhn.fhir.jpa.config.r5;
|
||||||
|
|
||||||
|
import ca.uhn.fhir.context.FhirContext;
|
||||||
|
import ca.uhn.fhir.context.ParserOptions;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Primary;
|
||||||
|
|
||||||
|
public class FhirContextR5Config {
|
||||||
|
@Bean(name = "primaryFhirContext")
|
||||||
|
@Primary
|
||||||
|
public FhirContext fhirContextR5() {
|
||||||
|
FhirContext retVal = FhirContext.forR5();
|
||||||
|
|
||||||
|
// Don't strip versions in some places
|
||||||
|
ParserOptions parserOptions = retVal.getParserOptions();
|
||||||
|
parserOptions.setDontStripVersionsFromReferencesAtPaths("AuditEvent.entity.what");
|
||||||
|
|
||||||
|
return retVal;
|
||||||
|
}
|
||||||
|
}
|
|
@ -1,11 +1,11 @@
|
||||||
package ca.uhn.fhir.jpa.config.r5;
|
package ca.uhn.fhir.jpa.config.r5;
|
||||||
|
|
||||||
import ca.uhn.fhir.context.FhirContext;
|
import ca.uhn.fhir.context.FhirContext;
|
||||||
import ca.uhn.fhir.context.ParserOptions;
|
import ca.uhn.fhir.context.support.IValidationSupport;
|
||||||
import ca.uhn.fhir.jpa.api.dao.IFhirSystemDao;
|
import ca.uhn.fhir.jpa.api.dao.IFhirSystemDao;
|
||||||
import ca.uhn.fhir.jpa.config.BaseConfigDstu3Plus;
|
import ca.uhn.fhir.jpa.config.GeneratedDaoAndResourceProviderConfigR5;
|
||||||
import ca.uhn.fhir.jpa.dao.FulltextSearchSvcImpl;
|
import ca.uhn.fhir.jpa.config.JpaConfig;
|
||||||
import ca.uhn.fhir.jpa.dao.IFulltextSearchSvc;
|
import ca.uhn.fhir.jpa.config.SharedConfigDstu3Plus;
|
||||||
import ca.uhn.fhir.jpa.dao.ITransactionProcessorVersionAdapter;
|
import ca.uhn.fhir.jpa.dao.ITransactionProcessorVersionAdapter;
|
||||||
import ca.uhn.fhir.jpa.dao.r5.TransactionProcessorVersionAdapterR5;
|
import ca.uhn.fhir.jpa.dao.r5.TransactionProcessorVersionAdapterR5;
|
||||||
import ca.uhn.fhir.jpa.graphql.GraphQLProvider;
|
import ca.uhn.fhir.jpa.graphql.GraphQLProvider;
|
||||||
|
@ -17,15 +17,13 @@ import ca.uhn.fhir.jpa.term.api.ITermDeferredStorageSvc;
|
||||||
import ca.uhn.fhir.jpa.term.api.ITermLoaderSvc;
|
import ca.uhn.fhir.jpa.term.api.ITermLoaderSvc;
|
||||||
import ca.uhn.fhir.jpa.term.api.ITermReadSvcR5;
|
import ca.uhn.fhir.jpa.term.api.ITermReadSvcR5;
|
||||||
import ca.uhn.fhir.jpa.term.api.ITermVersionAdapterSvc;
|
import ca.uhn.fhir.jpa.term.api.ITermVersionAdapterSvc;
|
||||||
import ca.uhn.fhir.jpa.util.ResourceCountCache;
|
|
||||||
import org.apache.commons.lang3.time.DateUtils;
|
|
||||||
import org.hl7.fhir.r5.model.Bundle;
|
import org.hl7.fhir.r5.model.Bundle;
|
||||||
import org.hl7.fhir.r5.model.Meta;
|
import org.hl7.fhir.r5.model.Meta;
|
||||||
import org.springframework.beans.factory.annotation.Autowire;
|
import org.hl7.fhir.utilities.graphql.IGraphQLStorageServices;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
import org.springframework.context.annotation.Configuration;
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.context.annotation.Import;
|
||||||
import org.springframework.context.annotation.Lazy;
|
import org.springframework.context.annotation.Lazy;
|
||||||
import org.springframework.context.annotation.Primary;
|
|
||||||
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -50,65 +48,40 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
@EnableTransactionManagement
|
@EnableTransactionManagement
|
||||||
public class BaseR5Config extends BaseConfigDstu3Plus {
|
@Import({
|
||||||
|
FhirContextR5Config.class,
|
||||||
@Override
|
GeneratedDaoAndResourceProviderConfigR5.class,
|
||||||
public FhirContext fhirContext() {
|
SharedConfigDstu3Plus.class,
|
||||||
return fhirContextR5();
|
JpaConfig.class
|
||||||
}
|
})
|
||||||
|
public class JpaR5Config {
|
||||||
@Bean
|
@Bean
|
||||||
@Override
|
|
||||||
public ITermVersionAdapterSvc terminologyVersionAdapterSvc() {
|
public ITermVersionAdapterSvc terminologyVersionAdapterSvc() {
|
||||||
return new TermVersionAdapterSvcR5();
|
return new TermVersionAdapterSvcR5();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean
|
|
||||||
@Primary
|
|
||||||
public FhirContext fhirContextR5() {
|
|
||||||
FhirContext retVal = FhirContext.forR5();
|
|
||||||
|
|
||||||
// Don't strip versions in some places
|
|
||||||
ParserOptions parserOptions = retVal.getParserOptions();
|
|
||||||
parserOptions.setDontStripVersionsFromReferencesAtPaths("AuditEvent.entity.what");
|
|
||||||
|
|
||||||
return retVal;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public ITransactionProcessorVersionAdapter transactionProcessorVersionFacade() {
|
public ITransactionProcessorVersionAdapter transactionProcessorVersionFacade() {
|
||||||
return new TransactionProcessorVersionAdapterR5();
|
return new TransactionProcessorVersionAdapterR5();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean(name = GRAPHQL_PROVIDER_NAME)
|
@Bean(name = JpaConfig.GRAPHQL_PROVIDER_NAME)
|
||||||
@Lazy
|
@Lazy
|
||||||
public GraphQLProvider graphQLProvider() {
|
public GraphQLProvider graphQLProvider(FhirContext theFhirContext, IGraphQLStorageServices theGraphqlStorageServices, IValidationSupport theValidationSupport) {
|
||||||
return new GraphQLProvider(fhirContextR5(), validationSupportChain(), graphqlStorageServices());
|
return new GraphQLProvider(theFhirContext, theValidationSupport, theGraphqlStorageServices);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean(name = "myResourceCountsCache")
|
@Bean(name = "mySystemDaoR5")
|
||||||
public ResourceCountCache resourceCountsCache() {
|
|
||||||
ResourceCountCache retVal = new ResourceCountCache(() -> systemDaoR5().getResourceCounts());
|
|
||||||
retVal.setCacheMillis(4 * DateUtils.MILLIS_PER_HOUR);
|
|
||||||
return retVal;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean(autowire = Autowire.BY_TYPE)
|
|
||||||
public IFulltextSearchSvc searchDaoR5() {
|
|
||||||
FulltextSearchSvcImpl searchDao = new FulltextSearchSvcImpl();
|
|
||||||
return searchDao;
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean(name = "mySystemDaoR5", autowire = Autowire.BY_NAME)
|
|
||||||
public IFhirSystemDao<Bundle, Meta> systemDaoR5() {
|
public IFhirSystemDao<Bundle, Meta> systemDaoR5() {
|
||||||
ca.uhn.fhir.jpa.dao.r5.FhirSystemDaoR5 retVal = new ca.uhn.fhir.jpa.dao.r5.FhirSystemDaoR5();
|
ca.uhn.fhir.jpa.dao.r5.FhirSystemDaoR5 retVal = new ca.uhn.fhir.jpa.dao.r5.FhirSystemDaoR5();
|
||||||
return retVal;
|
return retVal;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Bean(name = "mySystemProviderR5")
|
@Bean(name = "mySystemProviderR5")
|
||||||
public ca.uhn.fhir.jpa.provider.r5.JpaSystemProviderR5 systemProviderR5() {
|
public ca.uhn.fhir.jpa.provider.r5.JpaSystemProviderR5 systemProviderR5(FhirContext theFhirContext) {
|
||||||
ca.uhn.fhir.jpa.provider.r5.JpaSystemProviderR5 retVal = new ca.uhn.fhir.jpa.provider.r5.JpaSystemProviderR5();
|
ca.uhn.fhir.jpa.provider.r5.JpaSystemProviderR5 retVal = new ca.uhn.fhir.jpa.provider.r5.JpaSystemProviderR5();
|
||||||
retVal.setContext(fhirContextR5());
|
retVal.setContext(theFhirContext);
|
||||||
retVal.setDao(systemDaoR5());
|
retVal.setDao(systemDaoR5());
|
||||||
return retVal;
|
return retVal;
|
||||||
}
|
}
|
||||||
|
@ -118,8 +91,7 @@ public class BaseR5Config extends BaseConfigDstu3Plus {
|
||||||
return new TermLoaderSvcImpl(theDeferredStorageSvc, theCodeSystemStorageSvc);
|
return new TermLoaderSvcImpl(theDeferredStorageSvc, theCodeSystemStorageSvc);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Bean
|
||||||
@Bean(autowire = Autowire.BY_TYPE)
|
|
||||||
public ITermReadSvcR5 terminologyService() {
|
public ITermReadSvcR5 terminologyService() {
|
||||||
return new TermReadSvcR5();
|
return new TermReadSvcR5();
|
||||||
}
|
}
|
|
@ -0,0 +1,28 @@
|
||||||
|
package ca.uhn.fhir.jpa.config.util;
|
||||||
|
|
||||||
|
import ca.uhn.fhir.context.FhirContext;
|
||||||
|
import ca.uhn.fhir.jpa.config.HapiFhirHibernateJpaDialect;
|
||||||
|
import ca.uhn.fhir.jpa.config.HapiFhirLocalContainerEntityManagerFactoryBean;
|
||||||
|
import org.hibernate.jpa.HibernatePersistenceProvider;
|
||||||
|
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
|
||||||
|
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
|
||||||
|
|
||||||
|
public final class HapiEntityManagerFactoryUtil {
|
||||||
|
private HapiEntityManagerFactoryUtil() {}
|
||||||
|
/**
|
||||||
|
* This method provides a partially completed entity manager
|
||||||
|
* factory with HAPI FHIR customizations
|
||||||
|
*/
|
||||||
|
public static LocalContainerEntityManagerFactoryBean newEntityManagerFactory(ConfigurableListableBeanFactory myConfigurableListableBeanFactory, FhirContext theFhirContext) {
|
||||||
|
LocalContainerEntityManagerFactoryBean retVal = new HapiFhirLocalContainerEntityManagerFactoryBean(myConfigurableListableBeanFactory);
|
||||||
|
configureEntityManagerFactory(retVal, theFhirContext);
|
||||||
|
return retVal;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void configureEntityManagerFactory(LocalContainerEntityManagerFactoryBean theFactory, FhirContext theFhirContext) {
|
||||||
|
theFactory.setJpaDialect(new HapiFhirHibernateJpaDialect(theFhirContext.getLocalizer()));
|
||||||
|
theFactory.setPackagesToScan("ca.uhn.fhir.jpa.model.entity", "ca.uhn.fhir.jpa.entity");
|
||||||
|
theFactory.setPersistenceProvider(new HibernatePersistenceProvider());
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,14 @@
|
||||||
|
package ca.uhn.fhir.jpa.config.util;
|
||||||
|
|
||||||
|
import ca.uhn.fhir.jpa.api.dao.IFhirSystemDao;
|
||||||
|
import ca.uhn.fhir.jpa.util.ResourceCountCache;
|
||||||
|
import org.apache.commons.lang3.time.DateUtils;
|
||||||
|
|
||||||
|
public final class ResourceCountCacheUtil {
|
||||||
|
private ResourceCountCacheUtil() {}
|
||||||
|
public static ResourceCountCache newResourceCountCache(IFhirSystemDao<?, ?> theSystemDao) {
|
||||||
|
ResourceCountCache retVal = new ResourceCountCache(() -> theSystemDao.getResourceCounts());
|
||||||
|
retVal.setCacheMillis(4 * DateUtils.MILLIS_PER_HOUR);
|
||||||
|
return retVal;
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,16 @@
|
||||||
|
package ca.uhn.fhir.jpa.config.util;
|
||||||
|
|
||||||
|
import ca.uhn.fhir.jpa.validation.JpaValidationSupportChain;
|
||||||
|
import org.hl7.fhir.common.hapi.validation.support.CachingValidationSupport;
|
||||||
|
|
||||||
|
public final class ValidationSupportConfigUtil {
|
||||||
|
private ValidationSupportConfigUtil() {}
|
||||||
|
|
||||||
|
public static CachingValidationSupport newCachingValidationSupport(JpaValidationSupportChain theJpaValidationSupportChain) {
|
||||||
|
// Short timeout for code translation because TermConceptMappingSvcImpl has its own caching
|
||||||
|
CachingValidationSupport.CacheTimeouts cacheTimeouts = CachingValidationSupport.CacheTimeouts.defaultValues()
|
||||||
|
.setTranslateCodeMillis(1000);
|
||||||
|
|
||||||
|
return new CachingValidationSupport(theJpaValidationSupportChain, cacheTimeouts);
|
||||||
|
}
|
||||||
|
}
|
|
@ -7,14 +7,13 @@ import ca.uhn.fhir.jpa.util.ResourceCountCache;
|
||||||
import ca.uhn.fhir.rest.api.RestOperationTypeEnum;
|
import ca.uhn.fhir.rest.api.RestOperationTypeEnum;
|
||||||
import ca.uhn.fhir.rest.api.server.IBundleProvider;
|
import ca.uhn.fhir.rest.api.server.IBundleProvider;
|
||||||
import ca.uhn.fhir.rest.api.server.RequestDetails;
|
import ca.uhn.fhir.rest.api.server.RequestDetails;
|
||||||
import ca.uhn.fhir.rest.server.exceptions.ResourceNotFoundException;
|
|
||||||
import ca.uhn.fhir.rest.server.interceptor.IServerInterceptor.ActionRequestDetails;
|
import ca.uhn.fhir.rest.server.interceptor.IServerInterceptor.ActionRequestDetails;
|
||||||
import ca.uhn.fhir.util.StopWatch;
|
import ca.uhn.fhir.util.StopWatch;
|
||||||
import com.google.common.annotations.VisibleForTesting;
|
import com.google.common.annotations.VisibleForTesting;
|
||||||
import org.hl7.fhir.instance.model.api.IBaseBundle;
|
import org.hl7.fhir.instance.model.api.IBaseBundle;
|
||||||
import org.hl7.fhir.instance.model.api.IBaseResource;
|
import org.hl7.fhir.instance.model.api.IBaseResource;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Qualifier;
|
import org.springframework.context.ApplicationContext;
|
||||||
import org.springframework.transaction.annotation.Propagation;
|
import org.springframework.transaction.annotation.Propagation;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
@ -48,11 +47,11 @@ import java.util.Map;
|
||||||
public abstract class BaseHapiFhirSystemDao<T extends IBaseBundle, MT> extends BaseHapiFhirDao<IBaseResource> implements IFhirSystemDao<T, MT> {
|
public abstract class BaseHapiFhirSystemDao<T extends IBaseBundle, MT> extends BaseHapiFhirDao<IBaseResource> implements IFhirSystemDao<T, MT> {
|
||||||
|
|
||||||
private static final org.slf4j.Logger ourLog = org.slf4j.LoggerFactory.getLogger(BaseHapiFhirSystemDao.class);
|
private static final org.slf4j.Logger ourLog = org.slf4j.LoggerFactory.getLogger(BaseHapiFhirSystemDao.class);
|
||||||
@Autowired
|
|
||||||
@Qualifier("myResourceCountsCache")
|
|
||||||
public ResourceCountCache myResourceCountsCache;
|
public ResourceCountCache myResourceCountsCache;
|
||||||
@Autowired
|
@Autowired
|
||||||
private TransactionProcessor myTransactionProcessor;
|
private TransactionProcessor myTransactionProcessor;
|
||||||
|
@Autowired
|
||||||
|
private ApplicationContext myApplicationContext;
|
||||||
|
|
||||||
@VisibleForTesting
|
@VisibleForTesting
|
||||||
public void setTransactionProcessorForUnitTest(TransactionProcessor theTransactionProcessor) {
|
public void setTransactionProcessorForUnitTest(TransactionProcessor theTransactionProcessor) {
|
||||||
|
@ -89,6 +88,10 @@ public abstract class BaseHapiFhirSystemDao<T extends IBaseBundle, MT> extends B
|
||||||
@Nullable
|
@Nullable
|
||||||
@Override
|
@Override
|
||||||
public Map<String, Long> getResourceCountsFromCache() {
|
public Map<String, Long> getResourceCountsFromCache() {
|
||||||
|
if (myResourceCountsCache == null) {
|
||||||
|
// Lazy load this to avoid a circular dependency
|
||||||
|
myResourceCountsCache = myApplicationContext.getBean("myResourceCountsCache", ResourceCountCache.class);
|
||||||
|
}
|
||||||
return myResourceCountsCache.get();
|
return myResourceCountsCache.get();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -20,12 +20,12 @@ package ca.uhn.fhir.jpa.dao;
|
||||||
* #L%
|
* #L%
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import ca.uhn.fhir.i18n.Msg;
|
|
||||||
import ca.uhn.fhir.context.FhirContext;
|
import ca.uhn.fhir.context.FhirContext;
|
||||||
import ca.uhn.fhir.context.support.DefaultProfileValidationSupport;
|
import ca.uhn.fhir.context.support.DefaultProfileValidationSupport;
|
||||||
import ca.uhn.fhir.context.support.IValidationSupport;
|
import ca.uhn.fhir.context.support.IValidationSupport;
|
||||||
import ca.uhn.fhir.context.support.IValidationSupport.CodeValidationResult;
|
import ca.uhn.fhir.context.support.IValidationSupport.CodeValidationResult;
|
||||||
import ca.uhn.fhir.context.support.ValueSetExpansionOptions;
|
import ca.uhn.fhir.context.support.ValueSetExpansionOptions;
|
||||||
|
import ca.uhn.fhir.i18n.Msg;
|
||||||
import ca.uhn.fhir.jpa.api.dao.IFhirResourceDaoCodeSystem;
|
import ca.uhn.fhir.jpa.api.dao.IFhirResourceDaoCodeSystem;
|
||||||
import ca.uhn.fhir.jpa.api.dao.IFhirResourceDaoValueSet;
|
import ca.uhn.fhir.jpa.api.dao.IFhirResourceDaoValueSet;
|
||||||
import ca.uhn.fhir.jpa.model.entity.BaseHasResource;
|
import ca.uhn.fhir.jpa.model.entity.BaseHasResource;
|
||||||
|
@ -51,7 +51,6 @@ import org.hl7.fhir.common.hapi.validation.support.ValidationSupportChain;
|
||||||
import org.hl7.fhir.instance.model.api.IIdType;
|
import org.hl7.fhir.instance.model.api.IIdType;
|
||||||
import org.hl7.fhir.instance.model.api.IPrimitiveType;
|
import org.hl7.fhir.instance.model.api.IPrimitiveType;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.annotation.Qualifier;
|
|
||||||
|
|
||||||
import javax.annotation.Nonnull;
|
import javax.annotation.Nonnull;
|
||||||
import javax.annotation.PostConstruct;
|
import javax.annotation.PostConstruct;
|
||||||
|
@ -69,14 +68,13 @@ import static org.apache.commons.lang3.StringUtils.isNotBlank;
|
||||||
public class FhirResourceDaoValueSetDstu2 extends BaseHapiFhirResourceDao<ValueSet>
|
public class FhirResourceDaoValueSetDstu2 extends BaseHapiFhirResourceDao<ValueSet>
|
||||||
implements IFhirResourceDaoValueSet<ValueSet, CodingDt, CodeableConceptDt>, IFhirResourceDaoCodeSystem<ValueSet, CodingDt, CodeableConceptDt> {
|
implements IFhirResourceDaoValueSet<ValueSet, CodingDt, CodeableConceptDt>, IFhirResourceDaoCodeSystem<ValueSet, CodingDt, CodeableConceptDt> {
|
||||||
|
|
||||||
|
private static FhirContext ourRiCtx;
|
||||||
|
|
||||||
private DefaultProfileValidationSupport myDefaultProfileValidationSupport;
|
private DefaultProfileValidationSupport myDefaultProfileValidationSupport;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private IValidationSupport myJpaValidationSupport;
|
private IValidationSupport myJpaValidationSupport;
|
||||||
|
|
||||||
@Autowired
|
|
||||||
@Qualifier("myFhirContextDstu2Hl7Org")
|
|
||||||
private FhirContext myRiCtx;
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private FhirContext myFhirContext;
|
private FhirContext myFhirContext;
|
||||||
|
|
||||||
|
@ -160,7 +158,7 @@ public class FhirResourceDaoValueSetDstu2 extends BaseHapiFhirResourceDao<ValueS
|
||||||
|
|
||||||
ValueSet defaultValueSet = myDefaultProfileValidationSupport.fetchResource(ValueSet.class, theUri);
|
ValueSet defaultValueSet = myDefaultProfileValidationSupport.fetchResource(ValueSet.class, theUri);
|
||||||
if (defaultValueSet != null) {
|
if (defaultValueSet != null) {
|
||||||
source = getContext().newJsonParser().parseResource(ValueSet.class, myRiCtx.newJsonParser().encodeResourceToString(defaultValueSet));
|
source = getContext().newJsonParser().parseResource(ValueSet.class, getRiCtx().newJsonParser().encodeResourceToString(defaultValueSet));
|
||||||
} else {
|
} else {
|
||||||
SearchParameterMap params = new SearchParameterMap();
|
SearchParameterMap params = new SearchParameterMap();
|
||||||
params.setLoadSynchronousUpTo(1);
|
params.setLoadSynchronousUpTo(1);
|
||||||
|
@ -195,7 +193,7 @@ public class FhirResourceDaoValueSetDstu2 extends BaseHapiFhirResourceDao<ValueS
|
||||||
if (theId.getValue().startsWith("http://hl7.org/fhir/")) {
|
if (theId.getValue().startsWith("http://hl7.org/fhir/")) {
|
||||||
org.hl7.fhir.dstu2.model.ValueSet valueSet = myValidationSupport.fetchResource(org.hl7.fhir.dstu2.model.ValueSet.class, theId.getValue());
|
org.hl7.fhir.dstu2.model.ValueSet valueSet = myValidationSupport.fetchResource(org.hl7.fhir.dstu2.model.ValueSet.class, theId.getValue());
|
||||||
if (valueSet != null) {
|
if (valueSet != null) {
|
||||||
return getContext().newJsonParser().parseResource(ValueSet.class, myRiCtx.newJsonParser().encodeResourceToString(valueSet));
|
return getContext().newJsonParser().parseResource(ValueSet.class, getRiCtx().newJsonParser().encodeResourceToString(valueSet));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
BaseHasResource sourceEntity = readEntity(theId, theRequest);
|
BaseHasResource sourceEntity = readEntity(theId, theRequest);
|
||||||
|
@ -206,6 +204,13 @@ public class FhirResourceDaoValueSetDstu2 extends BaseHapiFhirResourceDao<ValueS
|
||||||
return source;
|
return source;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
private FhirContext getRiCtx() {
|
||||||
|
if (ourRiCtx == null) {
|
||||||
|
ourRiCtx = FhirContext.forDstu2Hl7Org();
|
||||||
|
}
|
||||||
|
return ourRiCtx;
|
||||||
|
}
|
||||||
|
|
||||||
private IValidationSupport.LookupCodeResult lookup(List<ExpansionContains> theContains, String theSystem, String theCode) {
|
private IValidationSupport.LookupCodeResult lookup(List<ExpansionContains> theContains, String theSystem, String theCode) {
|
||||||
for (ExpansionContains nextCode : theContains) {
|
for (ExpansionContains nextCode : theContains) {
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@ package ca.uhn.fhir.jpa.dao;
|
||||||
* #L%
|
* #L%
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import ca.uhn.fhir.jpa.config.BaseConfig;
|
import ca.uhn.fhir.jpa.config.JpaConfig;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.context.ApplicationContext;
|
import org.springframework.context.ApplicationContext;
|
||||||
|
|
||||||
|
@ -33,7 +33,7 @@ public class HistoryBuilderFactory {
|
||||||
private ApplicationContext myApplicationContext;
|
private ApplicationContext myApplicationContext;
|
||||||
|
|
||||||
public HistoryBuilder newHistoryBuilder(@Nullable String theResourceType, @Nullable Long theResourceId, @Nullable Date theRangeStartInclusive, @Nullable Date theRangeEndInclusive) {
|
public HistoryBuilder newHistoryBuilder(@Nullable String theResourceType, @Nullable Long theResourceId, @Nullable Date theRangeStartInclusive, @Nullable Date theRangeEndInclusive) {
|
||||||
return (HistoryBuilder) myApplicationContext.getBean(BaseConfig.HISTORY_BUILDER, theResourceType, theResourceId, theRangeStartInclusive, theRangeEndInclusive);
|
return (HistoryBuilder) myApplicationContext.getBean(JpaConfig.HISTORY_BUILDER, theResourceType, theResourceId, theRangeStartInclusive, theRangeEndInclusive);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -22,7 +22,7 @@ package ca.uhn.fhir.jpa.dao;
|
||||||
|
|
||||||
import ca.uhn.fhir.jpa.api.config.DaoConfig;
|
import ca.uhn.fhir.jpa.api.config.DaoConfig;
|
||||||
import ca.uhn.fhir.jpa.api.dao.IDao;
|
import ca.uhn.fhir.jpa.api.dao.IDao;
|
||||||
import ca.uhn.fhir.jpa.config.BaseConfig;
|
import ca.uhn.fhir.jpa.config.JpaConfig;
|
||||||
import org.hl7.fhir.instance.model.api.IBaseResource;
|
import org.hl7.fhir.instance.model.api.IBaseResource;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.context.ApplicationContext;
|
import org.springframework.context.ApplicationContext;
|
||||||
|
@ -35,7 +35,7 @@ public class SearchBuilderFactory {
|
||||||
private DaoConfig myDaoConfig;
|
private DaoConfig myDaoConfig;
|
||||||
|
|
||||||
public ISearchBuilder newSearchBuilder(IDao theDao, String theResourceName, Class<? extends IBaseResource> theResourceType) {
|
public ISearchBuilder newSearchBuilder(IDao theDao, String theResourceName, Class<? extends IBaseResource> theResourceType) {
|
||||||
return (ISearchBuilder) myApplicationContext.getBean(BaseConfig.SEARCH_BUILDER, theDao, theResourceName, theResourceType, myDaoConfig);
|
return (ISearchBuilder) myApplicationContext.getBean(JpaConfig.SEARCH_BUILDER, theDao, theResourceName, theResourceType, myDaoConfig);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -28,7 +28,7 @@ import ca.uhn.fhir.i18n.Msg;
|
||||||
import ca.uhn.fhir.jpa.api.config.DaoConfig;
|
import ca.uhn.fhir.jpa.api.config.DaoConfig;
|
||||||
import ca.uhn.fhir.jpa.api.dao.DaoRegistry;
|
import ca.uhn.fhir.jpa.api.dao.DaoRegistry;
|
||||||
import ca.uhn.fhir.jpa.api.dao.IFhirResourceDaoValueSet;
|
import ca.uhn.fhir.jpa.api.dao.IFhirResourceDaoValueSet;
|
||||||
import ca.uhn.fhir.jpa.config.BaseConfig;
|
import ca.uhn.fhir.jpa.config.JpaConfig;
|
||||||
import ca.uhn.fhir.jpa.dao.IFulltextSearchSvc;
|
import ca.uhn.fhir.jpa.dao.IFulltextSearchSvc;
|
||||||
import ca.uhn.fhir.jpa.model.util.JpaConstants;
|
import ca.uhn.fhir.jpa.model.util.JpaConstants;
|
||||||
import ca.uhn.fhir.jpa.search.autocomplete.ValueSetAutocompleteOptions;
|
import ca.uhn.fhir.jpa.search.autocomplete.ValueSetAutocompleteOptions;
|
||||||
|
@ -69,7 +69,7 @@ public class ValueSetOperationProvider extends BaseJpaProvider {
|
||||||
@Autowired
|
@Autowired
|
||||||
private ITermReadSvc myTermReadSvc;
|
private ITermReadSvc myTermReadSvc;
|
||||||
@Autowired
|
@Autowired
|
||||||
@Qualifier(BaseConfig.JPA_VALIDATION_SUPPORT_CHAIN)
|
@Qualifier(JpaConfig.JPA_VALIDATION_SUPPORT_CHAIN)
|
||||||
private ValidationSupportChain myValidationSupportChain;
|
private ValidationSupportChain myValidationSupportChain;
|
||||||
@Autowired
|
@Autowired
|
||||||
private IValidationSupport myValidationSupport;
|
private IValidationSupport myValidationSupport;
|
||||||
|
|
|
@ -1,11 +1,11 @@
|
||||||
package ca.uhn.fhir.jpa.provider.r4;
|
package ca.uhn.fhir.jpa.provider.r4;
|
||||||
|
|
||||||
import ca.uhn.fhir.i18n.Msg;
|
|
||||||
import ca.uhn.fhir.context.support.ConceptValidationOptions;
|
import ca.uhn.fhir.context.support.ConceptValidationOptions;
|
||||||
import ca.uhn.fhir.context.support.IValidationSupport;
|
import ca.uhn.fhir.context.support.IValidationSupport;
|
||||||
import ca.uhn.fhir.context.support.ValidationSupportContext;
|
import ca.uhn.fhir.context.support.ValidationSupportContext;
|
||||||
|
import ca.uhn.fhir.i18n.Msg;
|
||||||
import ca.uhn.fhir.jpa.api.dao.IFhirResourceDaoCodeSystem;
|
import ca.uhn.fhir.jpa.api.dao.IFhirResourceDaoCodeSystem;
|
||||||
import ca.uhn.fhir.jpa.config.BaseConfig;
|
import ca.uhn.fhir.jpa.config.JpaConfig;
|
||||||
import ca.uhn.fhir.jpa.model.util.JpaConstants;
|
import ca.uhn.fhir.jpa.model.util.JpaConstants;
|
||||||
import ca.uhn.fhir.jpa.provider.BaseJpaResourceProviderValueSetDstu2;
|
import ca.uhn.fhir.jpa.provider.BaseJpaResourceProviderValueSetDstu2;
|
||||||
import ca.uhn.fhir.jpa.term.api.ITermReadSvcR4;
|
import ca.uhn.fhir.jpa.term.api.ITermReadSvcR4;
|
||||||
|
@ -53,7 +53,7 @@ import java.util.List;
|
||||||
public class BaseJpaResourceProviderCodeSystemR4 extends JpaResourceProviderR4<CodeSystem> {
|
public class BaseJpaResourceProviderCodeSystemR4 extends JpaResourceProviderR4<CodeSystem> {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
@Qualifier(BaseConfig.JPA_VALIDATION_SUPPORT_CHAIN)
|
@Qualifier(JpaConfig.JPA_VALIDATION_SUPPORT_CHAIN)
|
||||||
private ValidationSupportChain myValidationSupportChain;
|
private ValidationSupportChain myValidationSupportChain;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
|
|
|
@ -20,7 +20,7 @@ package ca.uhn.fhir.jpa.search;
|
||||||
* #L%
|
* #L%
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import ca.uhn.fhir.jpa.config.BaseConfig;
|
import ca.uhn.fhir.jpa.config.JpaConfig;
|
||||||
import ca.uhn.fhir.jpa.dao.ISearchBuilder;
|
import ca.uhn.fhir.jpa.dao.ISearchBuilder;
|
||||||
import ca.uhn.fhir.jpa.entity.Search;
|
import ca.uhn.fhir.jpa.entity.Search;
|
||||||
import ca.uhn.fhir.rest.api.server.RequestDetails;
|
import ca.uhn.fhir.rest.api.server.RequestDetails;
|
||||||
|
@ -33,16 +33,16 @@ public class PersistedJpaBundleProviderFactory {
|
||||||
private ApplicationContext myApplicationContext;
|
private ApplicationContext myApplicationContext;
|
||||||
|
|
||||||
public PersistedJpaBundleProvider newInstance(RequestDetails theRequest, String theUuid) {
|
public PersistedJpaBundleProvider newInstance(RequestDetails theRequest, String theUuid) {
|
||||||
Object retVal = myApplicationContext.getBean(BaseConfig.PERSISTED_JPA_BUNDLE_PROVIDER, theRequest, theUuid);
|
Object retVal = myApplicationContext.getBean(JpaConfig.PERSISTED_JPA_BUNDLE_PROVIDER, theRequest, theUuid);
|
||||||
return (PersistedJpaBundleProvider) retVal;
|
return (PersistedJpaBundleProvider) retVal;
|
||||||
}
|
}
|
||||||
|
|
||||||
public PersistedJpaBundleProvider newInstance(RequestDetails theRequest, Search theSearch) {
|
public PersistedJpaBundleProvider newInstance(RequestDetails theRequest, Search theSearch) {
|
||||||
Object retVal = myApplicationContext.getBean(BaseConfig.PERSISTED_JPA_BUNDLE_PROVIDER_BY_SEARCH, theRequest, theSearch);
|
Object retVal = myApplicationContext.getBean(JpaConfig.PERSISTED_JPA_BUNDLE_PROVIDER_BY_SEARCH, theRequest, theSearch);
|
||||||
return (PersistedJpaBundleProvider) retVal;
|
return (PersistedJpaBundleProvider) retVal;
|
||||||
}
|
}
|
||||||
|
|
||||||
public PersistedJpaSearchFirstPageBundleProvider newInstanceFirstPage(RequestDetails theRequestDetails, Search theSearch, SearchCoordinatorSvcImpl.SearchTask theTask, ISearchBuilder theSearchBuilder) {
|
public PersistedJpaSearchFirstPageBundleProvider newInstanceFirstPage(RequestDetails theRequestDetails, Search theSearch, SearchCoordinatorSvcImpl.SearchTask theTask, ISearchBuilder theSearchBuilder) {
|
||||||
return (PersistedJpaSearchFirstPageBundleProvider) myApplicationContext.getBean(BaseConfig.PERSISTED_JPA_SEARCH_FIRST_PAGE_BUNDLE_PROVIDER, theRequestDetails, theSearch, theTask, theSearchBuilder);
|
return (PersistedJpaSearchFirstPageBundleProvider) myApplicationContext.getBean(JpaConfig.PERSISTED_JPA_SEARCH_FIRST_PAGE_BUNDLE_PROVIDER, theRequestDetails, theSearch, theTask, theSearchBuilder);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -20,10 +20,10 @@ package ca.uhn.fhir.jpa.term;
|
||||||
* #L%
|
* #L%
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import ca.uhn.fhir.i18n.Msg;
|
|
||||||
import ca.uhn.fhir.context.support.ConceptValidationOptions;
|
import ca.uhn.fhir.context.support.ConceptValidationOptions;
|
||||||
import ca.uhn.fhir.context.support.IValidationSupport;
|
import ca.uhn.fhir.context.support.IValidationSupport;
|
||||||
import ca.uhn.fhir.context.support.ValueSetExpansionOptions;
|
import ca.uhn.fhir.context.support.ValueSetExpansionOptions;
|
||||||
|
import ca.uhn.fhir.i18n.Msg;
|
||||||
import ca.uhn.fhir.jpa.model.entity.ResourceTable;
|
import ca.uhn.fhir.jpa.model.entity.ResourceTable;
|
||||||
import ca.uhn.fhir.model.dstu2.composite.CodeableConceptDt;
|
import ca.uhn.fhir.model.dstu2.composite.CodeableConceptDt;
|
||||||
import ca.uhn.fhir.model.dstu2.composite.CodingDt;
|
import ca.uhn.fhir.model.dstu2.composite.CodingDt;
|
||||||
|
|
|
@ -774,7 +774,7 @@ public class BulkDataExportSvcImplR4Test extends BaseJpaR4Test {
|
||||||
}
|
}
|
||||||
|
|
||||||
private <T extends IBaseResource> List<T> readBulkExportContentsIntoResources(String theContents, Class<T> theClass) {
|
private <T extends IBaseResource> List<T> readBulkExportContentsIntoResources(String theContents, Class<T> theClass) {
|
||||||
IParser iParser = myFhirCtx.newJsonParser();
|
IParser iParser = myFhirContext.newJsonParser();
|
||||||
return Arrays.stream(theContents.split("\n"))
|
return Arrays.stream(theContents.split("\n"))
|
||||||
.map(iParser::parseResource)
|
.map(iParser::parseResource)
|
||||||
.map(theClass::cast)
|
.map(theClass::cast)
|
||||||
|
|
|
@ -203,10 +203,10 @@ public class BulkDataImportR4Test extends BaseJpaR4Test implements ITestDataBuil
|
||||||
StringBuilder fileContents = new StringBuilder();
|
StringBuilder fileContents = new StringBuilder();
|
||||||
|
|
||||||
for (int transactionIdx = 0; transactionIdx < transactionsPerFile; transactionIdx++) {
|
for (int transactionIdx = 0; transactionIdx < transactionsPerFile; transactionIdx++) {
|
||||||
BundleBuilder bundleBuilder = new BundleBuilder(myFhirCtx);
|
BundleBuilder bundleBuilder = new BundleBuilder(myFhirContext);
|
||||||
IBaseResource patient = buildPatient(withFamily("FAM " + fileIndex + " " + transactionIdx), withIdentifier(null, "patient" + counter++));
|
IBaseResource patient = buildPatient(withFamily("FAM " + fileIndex + " " + transactionIdx), withIdentifier(null, "patient" + counter++));
|
||||||
bundleBuilder.addTransactionCreateEntry(patient);
|
bundleBuilder.addTransactionCreateEntry(patient);
|
||||||
fileContents.append(myFhirCtx.newJsonParser().setPrettyPrint(false).encodeResourceToString(bundleBuilder.getBundle()));
|
fileContents.append(myFhirContext.newJsonParser().setPrettyPrint(false).encodeResourceToString(bundleBuilder.getBundle()));
|
||||||
fileContents.append("\n");
|
fileContents.append("\n");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -1,5 +1,8 @@
|
||||||
package ca.uhn.fhir.jpa.config;
|
package ca.uhn.fhir.jpa.config;
|
||||||
|
|
||||||
|
import ca.uhn.fhir.context.FhirContext;
|
||||||
|
import ca.uhn.fhir.jpa.config.util.HapiEntityManagerFactoryUtil;
|
||||||
|
import ca.uhn.fhir.jpa.model.dialect.HapiFhirH2Dialect;
|
||||||
import ca.uhn.fhir.jpa.util.CircularQueueCaptureQueriesListener;
|
import ca.uhn.fhir.jpa.util.CircularQueueCaptureQueriesListener;
|
||||||
import ca.uhn.fhir.jpa.util.CurrentThreadCaptureQueriesListener;
|
import ca.uhn.fhir.jpa.util.CurrentThreadCaptureQueriesListener;
|
||||||
import ca.uhn.fhir.rest.server.interceptor.RequestValidatingInterceptor;
|
import ca.uhn.fhir.rest.server.interceptor.RequestValidatingInterceptor;
|
||||||
|
@ -8,7 +11,6 @@ import ca.uhn.fhir.validation.ResultSeverityEnum;
|
||||||
import net.ttddyy.dsproxy.listener.ThreadQueryCountHolder;
|
import net.ttddyy.dsproxy.listener.ThreadQueryCountHolder;
|
||||||
import net.ttddyy.dsproxy.support.ProxyDataSourceBuilder;
|
import net.ttddyy.dsproxy.support.ProxyDataSourceBuilder;
|
||||||
import org.apache.commons.dbcp2.BasicDataSource;
|
import org.apache.commons.dbcp2.BasicDataSource;
|
||||||
import ca.uhn.fhir.jpa.model.dialect.HapiFhirH2Dialect;
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
@ -18,7 +20,6 @@ import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.context.annotation.Import;
|
import org.springframework.context.annotation.Import;
|
||||||
import org.springframework.context.annotation.Lazy;
|
import org.springframework.context.annotation.Lazy;
|
||||||
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
|
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
|
||||||
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
|
||||||
|
|
||||||
import javax.sql.DataSource;
|
import javax.sql.DataSource;
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
|
@ -29,9 +30,13 @@ import java.util.concurrent.TimeUnit;
|
||||||
import static org.junit.jupiter.api.Assertions.fail;
|
import static org.junit.jupiter.api.Assertions.fail;
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
@Import({TestJPAConfig.class, TestHibernateSearchAddInConfig.DefaultLuceneHeap.class})
|
@Import({
|
||||||
@EnableTransactionManagement()
|
JpaDstu2Config.class,
|
||||||
public class TestDstu2Config extends BaseJavaConfigDstu2 {
|
HapiJpaConfig.class,
|
||||||
|
TestJPAConfig.class,
|
||||||
|
TestHibernateSearchAddInConfig.DefaultLuceneHeap.class
|
||||||
|
})
|
||||||
|
public class TestDstu2Config {
|
||||||
private static final Logger ourLog = LoggerFactory.getLogger(TestDstu2Config.class);
|
private static final Logger ourLog = LoggerFactory.getLogger(TestDstu2Config.class);
|
||||||
private static int ourMaxThreads;
|
private static int ourMaxThreads;
|
||||||
|
|
||||||
|
@ -129,10 +134,9 @@ public class TestDstu2Config extends BaseJavaConfigDstu2 {
|
||||||
return dataSource;
|
return dataSource;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
@Bean
|
@Bean
|
||||||
public LocalContainerEntityManagerFactoryBean entityManagerFactory(ConfigurableListableBeanFactory theConfigurableListableBeanFactory) {
|
public LocalContainerEntityManagerFactoryBean entityManagerFactory(ConfigurableListableBeanFactory theConfigurableListableBeanFactory, FhirContext theFhirContext) {
|
||||||
LocalContainerEntityManagerFactoryBean retVal = super.entityManagerFactory(theConfigurableListableBeanFactory);
|
LocalContainerEntityManagerFactoryBean retVal = HapiEntityManagerFactoryUtil.newEntityManagerFactory(theConfigurableListableBeanFactory, theFhirContext);
|
||||||
retVal.setPersistenceUnitName("PU_HapiFhirJpaDstu2");
|
retVal.setPersistenceUnitName("PU_HapiFhirJpaDstu2");
|
||||||
retVal.setDataSource(dataSource());
|
retVal.setDataSource(dataSource());
|
||||||
retVal.setJpaProperties(jpaProperties());
|
retVal.setJpaProperties(jpaProperties());
|
||||||
|
|
|
@ -1,5 +1,9 @@
|
||||||
package ca.uhn.fhir.jpa.config;
|
package ca.uhn.fhir.jpa.config;
|
||||||
|
|
||||||
|
import ca.uhn.fhir.context.FhirContext;
|
||||||
|
import ca.uhn.fhir.jpa.config.dstu3.JpaDstu3Config;
|
||||||
|
import ca.uhn.fhir.jpa.config.util.HapiEntityManagerFactoryUtil;
|
||||||
|
import ca.uhn.fhir.jpa.model.dialect.HapiFhirH2Dialect;
|
||||||
import ca.uhn.fhir.jpa.subscription.match.deliver.email.EmailSenderImpl;
|
import ca.uhn.fhir.jpa.subscription.match.deliver.email.EmailSenderImpl;
|
||||||
import ca.uhn.fhir.jpa.subscription.match.deliver.email.IEmailSender;
|
import ca.uhn.fhir.jpa.subscription.match.deliver.email.IEmailSender;
|
||||||
import ca.uhn.fhir.jpa.util.CircularQueueCaptureQueriesListener;
|
import ca.uhn.fhir.jpa.util.CircularQueueCaptureQueriesListener;
|
||||||
|
@ -11,7 +15,7 @@ import ca.uhn.fhir.rest.server.mail.MailSvc;
|
||||||
import ca.uhn.fhir.validation.ResultSeverityEnum;
|
import ca.uhn.fhir.validation.ResultSeverityEnum;
|
||||||
import net.ttddyy.dsproxy.support.ProxyDataSourceBuilder;
|
import net.ttddyy.dsproxy.support.ProxyDataSourceBuilder;
|
||||||
import org.apache.commons.dbcp2.BasicDataSource;
|
import org.apache.commons.dbcp2.BasicDataSource;
|
||||||
import ca.uhn.fhir.jpa.model.dialect.HapiFhirH2Dialect;
|
import org.hl7.fhir.common.hapi.validation.validator.FhirInstanceValidator;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
|
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
|
@ -21,7 +25,6 @@ import org.springframework.context.annotation.Lazy;
|
||||||
import org.springframework.context.annotation.Primary;
|
import org.springframework.context.annotation.Primary;
|
||||||
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
|
import org.springframework.context.support.PropertySourcesPlaceholderConfigurer;
|
||||||
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
|
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
|
||||||
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
|
||||||
|
|
||||||
import javax.sql.DataSource;
|
import javax.sql.DataSource;
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
|
@ -31,9 +34,13 @@ import java.util.concurrent.TimeUnit;
|
||||||
import static org.junit.jupiter.api.Assertions.fail;
|
import static org.junit.jupiter.api.Assertions.fail;
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
@Import({TestJPAConfig.class, TestHibernateSearchAddInConfig.DefaultLuceneHeap.class})
|
@Import({
|
||||||
@EnableTransactionManagement()
|
JpaDstu3Config.class,
|
||||||
public class TestDstu3Config extends BaseJavaConfigDstu3 {
|
HapiJpaConfig.class,
|
||||||
|
TestJPAConfig.class,
|
||||||
|
TestHibernateSearchAddInConfig.DefaultLuceneHeap.class
|
||||||
|
})
|
||||||
|
public class TestDstu3Config {
|
||||||
|
|
||||||
static final org.slf4j.Logger ourLog = org.slf4j.LoggerFactory.getLogger(TestDstu3Config.class);
|
static final org.slf4j.Logger ourLog = org.slf4j.LoggerFactory.getLogger(TestDstu3Config.class);
|
||||||
private Exception myLastStackTrace;
|
private Exception myLastStackTrace;
|
||||||
|
@ -139,10 +146,9 @@ public class TestDstu3Config extends BaseJavaConfigDstu3 {
|
||||||
return new EmailSenderImpl(mailSvc);
|
return new EmailSenderImpl(mailSvc);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
@Bean
|
@Bean
|
||||||
public LocalContainerEntityManagerFactoryBean entityManagerFactory(ConfigurableListableBeanFactory theConfigurableListableBeanFactory) {
|
public LocalContainerEntityManagerFactoryBean entityManagerFactory(ConfigurableListableBeanFactory theConfigurableListableBeanFactory, FhirContext theFhirContext) {
|
||||||
LocalContainerEntityManagerFactoryBean retVal = super.entityManagerFactory(theConfigurableListableBeanFactory);
|
LocalContainerEntityManagerFactoryBean retVal = HapiEntityManagerFactoryUtil.newEntityManagerFactory(theConfigurableListableBeanFactory, theFhirContext);
|
||||||
retVal.setPersistenceUnitName("PU_HapiFhirJpaDstu3");
|
retVal.setPersistenceUnitName("PU_HapiFhirJpaDstu3");
|
||||||
retVal.setDataSource(dataSource());
|
retVal.setDataSource(dataSource());
|
||||||
retVal.setJpaProperties(jpaProperties());
|
retVal.setJpaProperties(jpaProperties());
|
||||||
|
@ -172,12 +178,12 @@ public class TestDstu3Config extends BaseJavaConfigDstu3 {
|
||||||
*/
|
*/
|
||||||
@Bean
|
@Bean
|
||||||
@Lazy
|
@Lazy
|
||||||
public RequestValidatingInterceptor requestValidatingInterceptor() {
|
public RequestValidatingInterceptor requestValidatingInterceptor(FhirInstanceValidator theFhirInstanceValidator) {
|
||||||
RequestValidatingInterceptor requestValidator = new RequestValidatingInterceptor();
|
RequestValidatingInterceptor requestValidator = new RequestValidatingInterceptor();
|
||||||
requestValidator.setFailOnSeverity(ResultSeverityEnum.ERROR);
|
requestValidator.setFailOnSeverity(ResultSeverityEnum.ERROR);
|
||||||
requestValidator.setAddResponseHeaderOnSeverity(null);
|
requestValidator.setAddResponseHeaderOnSeverity(null);
|
||||||
requestValidator.setAddResponseOutcomeHeaderOnSeverity(ResultSeverityEnum.INFORMATION);
|
requestValidator.setAddResponseOutcomeHeaderOnSeverity(ResultSeverityEnum.INFORMATION);
|
||||||
requestValidator.addValidatorModule(instanceValidator());
|
requestValidator.addValidatorModule(theFhirInstanceValidator);
|
||||||
|
|
||||||
return requestValidator;
|
return requestValidator;
|
||||||
}
|
}
|
||||||
|
|
|
@ -68,8 +68,8 @@ public class TestHibernateSearchAddInConfig {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Bean(name={"searchDao", "searchDaoDstu2", "searchDaoDstu3", "searchDaoR4", "searchDaoR5"})
|
@Bean
|
||||||
public IFulltextSearchSvc searchDao() {
|
public IFulltextSearchSvc fullTextSearchSvc() {
|
||||||
ourLog.info("Hibernate Search: FulltextSearchSvcImpl present");
|
ourLog.info("Hibernate Search: FulltextSearchSvcImpl present");
|
||||||
return new FulltextSearchSvcImpl();
|
return new FulltextSearchSvcImpl();
|
||||||
}
|
}
|
||||||
|
@ -88,9 +88,9 @@ public class TestHibernateSearchAddInConfig {
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
@Primary // force override of default bean which might have a variety of names
|
@Primary
|
||||||
@Bean(name={"searchDao", "searchDaoDstu2", "searchDaoDstu3", "searchDaoR4", "searchDaoR5"})
|
@Bean
|
||||||
public IFulltextSearchSvc searchDao() {
|
public IFulltextSearchSvc fullTextSearchSvc() {
|
||||||
ourLog.info("Hibernate Search: FulltextSearchSvcImpl not available");
|
ourLog.info("Hibernate Search: FulltextSearchSvcImpl not available");
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +1,10 @@
|
||||||
package ca.uhn.fhir.jpa.config;
|
package ca.uhn.fhir.jpa.config;
|
||||||
|
|
||||||
import ca.uhn.fhir.jpa.batch.BatchJobsConfig;
|
import ca.uhn.fhir.context.FhirContext;
|
||||||
import ca.uhn.fhir.jpa.batch.api.IBatchJobSubmitter;
|
|
||||||
import ca.uhn.fhir.jpa.batch.svc.BatchJobSubmitterImpl;
|
|
||||||
import ca.uhn.fhir.jpa.binstore.IBinaryStorageSvc;
|
import ca.uhn.fhir.jpa.binstore.IBinaryStorageSvc;
|
||||||
import ca.uhn.fhir.jpa.binstore.MemoryBinaryStorageSvcImpl;
|
import ca.uhn.fhir.jpa.binstore.MemoryBinaryStorageSvcImpl;
|
||||||
|
import ca.uhn.fhir.jpa.config.r4.JpaR4Config;
|
||||||
|
import ca.uhn.fhir.jpa.config.util.HapiEntityManagerFactoryUtil;
|
||||||
import ca.uhn.fhir.jpa.model.dialect.HapiFhirH2Dialect;
|
import ca.uhn.fhir.jpa.model.dialect.HapiFhirH2Dialect;
|
||||||
import ca.uhn.fhir.jpa.util.CircularQueueCaptureQueriesListener;
|
import ca.uhn.fhir.jpa.util.CircularQueueCaptureQueriesListener;
|
||||||
import ca.uhn.fhir.jpa.util.CurrentThreadCaptureQueriesListener;
|
import ca.uhn.fhir.jpa.util.CurrentThreadCaptureQueriesListener;
|
||||||
|
@ -14,7 +14,7 @@ import net.ttddyy.dsproxy.listener.SingleQueryCountHolder;
|
||||||
import net.ttddyy.dsproxy.listener.logging.SLF4JLogLevel;
|
import net.ttddyy.dsproxy.listener.logging.SLF4JLogLevel;
|
||||||
import net.ttddyy.dsproxy.support.ProxyDataSourceBuilder;
|
import net.ttddyy.dsproxy.support.ProxyDataSourceBuilder;
|
||||||
import org.apache.commons.dbcp2.BasicDataSource;
|
import org.apache.commons.dbcp2.BasicDataSource;
|
||||||
import org.hibernate.jpa.HibernatePersistenceProvider;
|
import org.hl7.fhir.common.hapi.validation.validator.FhirInstanceValidator;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
|
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
|
@ -22,7 +22,6 @@ import org.springframework.context.annotation.Configuration;
|
||||||
import org.springframework.context.annotation.Import;
|
import org.springframework.context.annotation.Import;
|
||||||
import org.springframework.context.annotation.Lazy;
|
import org.springframework.context.annotation.Lazy;
|
||||||
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
|
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
|
||||||
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
|
||||||
|
|
||||||
import javax.sql.DataSource;
|
import javax.sql.DataSource;
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
|
@ -32,9 +31,13 @@ import java.util.concurrent.TimeUnit;
|
||||||
import static org.junit.jupiter.api.Assertions.fail;
|
import static org.junit.jupiter.api.Assertions.fail;
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
@Import({TestJPAConfig.class, BatchJobsConfig.class, TestHibernateSearchAddInConfig.DefaultLuceneHeap.class})
|
@Import({
|
||||||
@EnableTransactionManagement()
|
JpaR4Config.class,
|
||||||
public class TestR4Config extends BaseJavaConfigR4 {
|
HapiJpaConfig.class,
|
||||||
|
TestJPAConfig.class,
|
||||||
|
TestHibernateSearchAddInConfig.DefaultLuceneHeap.class
|
||||||
|
})
|
||||||
|
public class TestR4Config {
|
||||||
|
|
||||||
private static final org.slf4j.Logger ourLog = org.slf4j.LoggerFactory.getLogger(TestR4Config.class);
|
private static final org.slf4j.Logger ourLog = org.slf4j.LoggerFactory.getLogger(TestR4Config.class);
|
||||||
public static Integer ourMaxThreads;
|
public static Integer ourMaxThreads;
|
||||||
|
@ -60,12 +63,6 @@ public class TestR4Config extends BaseJavaConfigR4 {
|
||||||
|
|
||||||
private Exception myLastStackTrace;
|
private Exception myLastStackTrace;
|
||||||
|
|
||||||
@Override
|
|
||||||
@Bean
|
|
||||||
public IBatchJobSubmitter batchJobSubmitter() {
|
|
||||||
return new BatchJobSubmitterImpl();
|
|
||||||
}
|
|
||||||
|
|
||||||
@Bean
|
@Bean
|
||||||
public CircularQueueCaptureQueriesListener captureQueriesListener() {
|
public CircularQueueCaptureQueriesListener captureQueriesListener() {
|
||||||
return new CircularQueueCaptureQueriesListener();
|
return new CircularQueueCaptureQueriesListener();
|
||||||
|
@ -144,14 +141,9 @@ public class TestR4Config extends BaseJavaConfigR4 {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@Override
|
|
||||||
@Bean
|
@Bean
|
||||||
public LocalContainerEntityManagerFactoryBean entityManagerFactory(ConfigurableListableBeanFactory theConfigurableListableBeanFactory) {
|
public LocalContainerEntityManagerFactoryBean entityManagerFactory(ConfigurableListableBeanFactory theConfigurableListableBeanFactory, FhirContext theFhirContext) {
|
||||||
LocalContainerEntityManagerFactoryBean retVal = new HapiFhirLocalContainerEntityManagerFactoryBean(theConfigurableListableBeanFactory);
|
LocalContainerEntityManagerFactoryBean retVal = HapiEntityManagerFactoryUtil.newEntityManagerFactory(theConfigurableListableBeanFactory, theFhirContext);
|
||||||
configureEntityManagerFactory(retVal, fhirContext());
|
|
||||||
retVal.setJpaDialect(new HapiFhirHibernateJpaDialect(fhirContext().getLocalizer()));
|
|
||||||
retVal.setPackagesToScan("ca.uhn.fhir.jpa.model.entity", "ca.uhn.fhir.jpa.entity");
|
|
||||||
retVal.setPersistenceProvider(new HibernatePersistenceProvider());
|
|
||||||
retVal.setPersistenceUnitName("PU_HapiFhirJpaR4");
|
retVal.setPersistenceUnitName("PU_HapiFhirJpaR4");
|
||||||
retVal.setDataSource(dataSource());
|
retVal.setDataSource(dataSource());
|
||||||
retVal.setJpaProperties(jpaProperties());
|
retVal.setJpaProperties(jpaProperties());
|
||||||
|
@ -180,12 +172,12 @@ public class TestR4Config extends BaseJavaConfigR4 {
|
||||||
*/
|
*/
|
||||||
@Bean
|
@Bean
|
||||||
@Lazy
|
@Lazy
|
||||||
public RequestValidatingInterceptor requestValidatingInterceptor() {
|
public RequestValidatingInterceptor requestValidatingInterceptor(FhirInstanceValidator theFhirInstanceValidator) {
|
||||||
RequestValidatingInterceptor requestValidator = new RequestValidatingInterceptor();
|
RequestValidatingInterceptor requestValidator = new RequestValidatingInterceptor();
|
||||||
requestValidator.setFailOnSeverity(ResultSeverityEnum.ERROR);
|
requestValidator.setFailOnSeverity(ResultSeverityEnum.ERROR);
|
||||||
requestValidator.setAddResponseHeaderOnSeverity(null);
|
requestValidator.setAddResponseHeaderOnSeverity(null);
|
||||||
requestValidator.setAddResponseOutcomeHeaderOnSeverity(ResultSeverityEnum.INFORMATION);
|
requestValidator.setAddResponseOutcomeHeaderOnSeverity(ResultSeverityEnum.INFORMATION);
|
||||||
requestValidator.addValidatorModule(instanceValidator());
|
requestValidator.addValidatorModule(theFhirInstanceValidator);
|
||||||
|
|
||||||
return requestValidator;
|
return requestValidator;
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,11 @@
|
||||||
package ca.uhn.fhir.jpa.config;
|
package ca.uhn.fhir.jpa.config;
|
||||||
|
|
||||||
|
import ca.uhn.fhir.context.FhirContext;
|
||||||
import ca.uhn.fhir.jpa.binstore.IBinaryStorageSvc;
|
import ca.uhn.fhir.jpa.binstore.IBinaryStorageSvc;
|
||||||
import ca.uhn.fhir.jpa.binstore.MemoryBinaryStorageSvcImpl;
|
import ca.uhn.fhir.jpa.binstore.MemoryBinaryStorageSvcImpl;
|
||||||
|
import ca.uhn.fhir.jpa.config.r5.JpaR5Config;
|
||||||
|
import ca.uhn.fhir.jpa.config.util.HapiEntityManagerFactoryUtil;
|
||||||
|
import ca.uhn.fhir.jpa.model.dialect.HapiFhirH2Dialect;
|
||||||
import ca.uhn.fhir.jpa.util.CircularQueueCaptureQueriesListener;
|
import ca.uhn.fhir.jpa.util.CircularQueueCaptureQueriesListener;
|
||||||
import ca.uhn.fhir.jpa.util.CurrentThreadCaptureQueriesListener;
|
import ca.uhn.fhir.jpa.util.CurrentThreadCaptureQueriesListener;
|
||||||
import ca.uhn.fhir.rest.server.interceptor.RequestValidatingInterceptor;
|
import ca.uhn.fhir.rest.server.interceptor.RequestValidatingInterceptor;
|
||||||
|
@ -9,7 +13,7 @@ import ca.uhn.fhir.validation.ResultSeverityEnum;
|
||||||
import net.ttddyy.dsproxy.listener.SingleQueryCountHolder;
|
import net.ttddyy.dsproxy.listener.SingleQueryCountHolder;
|
||||||
import net.ttddyy.dsproxy.support.ProxyDataSourceBuilder;
|
import net.ttddyy.dsproxy.support.ProxyDataSourceBuilder;
|
||||||
import org.apache.commons.dbcp2.BasicDataSource;
|
import org.apache.commons.dbcp2.BasicDataSource;
|
||||||
import ca.uhn.fhir.jpa.model.dialect.HapiFhirH2Dialect;
|
import org.hl7.fhir.common.hapi.validation.validator.FhirInstanceValidator;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
|
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.Bean;
|
||||||
|
@ -18,7 +22,6 @@ import org.springframework.context.annotation.Import;
|
||||||
import org.springframework.context.annotation.Lazy;
|
import org.springframework.context.annotation.Lazy;
|
||||||
import org.springframework.core.env.Environment;
|
import org.springframework.core.env.Environment;
|
||||||
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
|
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
|
||||||
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
|
||||||
|
|
||||||
import javax.sql.DataSource;
|
import javax.sql.DataSource;
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
|
@ -27,9 +30,13 @@ import java.util.Properties;
|
||||||
import static org.junit.jupiter.api.Assertions.fail;
|
import static org.junit.jupiter.api.Assertions.fail;
|
||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
@Import({TestJPAConfig.class, TestHibernateSearchAddInConfig.DefaultLuceneHeap.class})
|
@Import({
|
||||||
@EnableTransactionManagement()
|
JpaR5Config.class,
|
||||||
public class TestR5Config extends BaseJavaConfigR5 {
|
HapiJpaConfig.class,
|
||||||
|
TestJPAConfig.class,
|
||||||
|
TestHibernateSearchAddInConfig.DefaultLuceneHeap.class
|
||||||
|
})
|
||||||
|
public class TestR5Config {
|
||||||
|
|
||||||
private static final org.slf4j.Logger ourLog = org.slf4j.LoggerFactory.getLogger(TestR5Config.class);
|
private static final org.slf4j.Logger ourLog = org.slf4j.LoggerFactory.getLogger(TestR5Config.class);
|
||||||
public static Integer ourMaxThreads;
|
public static Integer ourMaxThreads;
|
||||||
|
@ -134,10 +141,9 @@ public class TestR5Config extends BaseJavaConfigR5 {
|
||||||
return new SingleQueryCountHolder();
|
return new SingleQueryCountHolder();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
|
||||||
@Bean
|
@Bean
|
||||||
public LocalContainerEntityManagerFactoryBean entityManagerFactory(ConfigurableListableBeanFactory theConfigurableListableBeanFactory) {
|
public LocalContainerEntityManagerFactoryBean entityManagerFactory(ConfigurableListableBeanFactory theConfigurableListableBeanFactory, FhirContext theFhirContext) {
|
||||||
LocalContainerEntityManagerFactoryBean retVal = super.entityManagerFactory(theConfigurableListableBeanFactory);
|
LocalContainerEntityManagerFactoryBean retVal = HapiEntityManagerFactoryUtil.newEntityManagerFactory(theConfigurableListableBeanFactory, theFhirContext);
|
||||||
retVal.setPersistenceUnitName("PU_HapiFhirJpaR5");
|
retVal.setPersistenceUnitName("PU_HapiFhirJpaR5");
|
||||||
retVal.setDataSource(dataSource());
|
retVal.setDataSource(dataSource());
|
||||||
retVal.setJpaProperties(jpaProperties());
|
retVal.setJpaProperties(jpaProperties());
|
||||||
|
@ -166,12 +172,12 @@ public class TestR5Config extends BaseJavaConfigR5 {
|
||||||
*/
|
*/
|
||||||
@Bean
|
@Bean
|
||||||
@Lazy
|
@Lazy
|
||||||
public RequestValidatingInterceptor requestValidatingInterceptor() {
|
public RequestValidatingInterceptor requestValidatingInterceptor(FhirInstanceValidator theFhirInstanceValidator) {
|
||||||
RequestValidatingInterceptor requestValidator = new RequestValidatingInterceptor();
|
RequestValidatingInterceptor requestValidator = new RequestValidatingInterceptor();
|
||||||
requestValidator.setFailOnSeverity(ResultSeverityEnum.ERROR);
|
requestValidator.setFailOnSeverity(ResultSeverityEnum.ERROR);
|
||||||
requestValidator.setAddResponseHeaderOnSeverity(null);
|
requestValidator.setAddResponseHeaderOnSeverity(null);
|
||||||
requestValidator.setAddResponseOutcomeHeaderOnSeverity(ResultSeverityEnum.INFORMATION);
|
requestValidator.setAddResponseOutcomeHeaderOnSeverity(ResultSeverityEnum.INFORMATION);
|
||||||
requestValidator.addValidatorModule(instanceValidator());
|
requestValidator.addValidatorModule(theFhirInstanceValidator);
|
||||||
|
|
||||||
return requestValidator;
|
return requestValidator;
|
||||||
}
|
}
|
||||||
|
|
|
@ -10,7 +10,7 @@ import ca.uhn.fhir.jpa.api.dao.IFhirSystemDao;
|
||||||
import ca.uhn.fhir.jpa.api.model.ExpungeOptions;
|
import ca.uhn.fhir.jpa.api.model.ExpungeOptions;
|
||||||
import ca.uhn.fhir.jpa.api.svc.ISearchCoordinatorSvc;
|
import ca.uhn.fhir.jpa.api.svc.ISearchCoordinatorSvc;
|
||||||
import ca.uhn.fhir.jpa.bulk.export.api.IBulkDataExportSvc;
|
import ca.uhn.fhir.jpa.bulk.export.api.IBulkDataExportSvc;
|
||||||
import ca.uhn.fhir.jpa.config.BaseConfig;
|
import ca.uhn.fhir.jpa.config.JpaConfig;
|
||||||
import ca.uhn.fhir.jpa.dao.data.IForcedIdDao;
|
import ca.uhn.fhir.jpa.dao.data.IForcedIdDao;
|
||||||
import ca.uhn.fhir.jpa.dao.data.IResourceHistoryTableDao;
|
import ca.uhn.fhir.jpa.dao.data.IResourceHistoryTableDao;
|
||||||
import ca.uhn.fhir.jpa.dao.data.IResourceIndexedComboTokensNonUniqueDao;
|
import ca.uhn.fhir.jpa.dao.data.IResourceIndexedComboTokensNonUniqueDao;
|
||||||
|
@ -194,7 +194,7 @@ public abstract class BaseJpaTest extends BaseTest {
|
||||||
private IdHelperService myIdHelperService;
|
private IdHelperService myIdHelperService;
|
||||||
@Autowired
|
@Autowired
|
||||||
private MemoryCacheService myMemoryCacheService;
|
private MemoryCacheService myMemoryCacheService;
|
||||||
@Qualifier(BaseConfig.JPA_VALIDATION_SUPPORT)
|
@Qualifier(JpaConfig.JPA_VALIDATION_SUPPORT)
|
||||||
@Autowired
|
@Autowired
|
||||||
private IValidationSupport myJpaPersistedValidationSupport;
|
private IValidationSupport myJpaPersistedValidationSupport;
|
||||||
@Autowired
|
@Autowired
|
||||||
|
@ -305,7 +305,7 @@ public abstract class BaseJpaTest extends BaseTest {
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
protected abstract FhirContext getContext();
|
protected abstract FhirContext getFhirContext();
|
||||||
|
|
||||||
protected abstract PlatformTransactionManager getTxManager();
|
protected abstract PlatformTransactionManager getTxManager();
|
||||||
|
|
||||||
|
@ -458,7 +458,7 @@ public abstract class BaseJpaTest extends BaseTest {
|
||||||
protected List<String> toUnqualifiedIdValues(IBaseBundle theFound) {
|
protected List<String> toUnqualifiedIdValues(IBaseBundle theFound) {
|
||||||
List<String> retVal = new ArrayList<>();
|
List<String> retVal = new ArrayList<>();
|
||||||
|
|
||||||
List<IBaseResource> res = BundleUtil.toListOfResources(getContext(), theFound);
|
List<IBaseResource> res = BundleUtil.toListOfResources(getFhirContext(), theFound);
|
||||||
int size = res.size();
|
int size = res.size();
|
||||||
ourLog.info("Found {} results", size);
|
ourLog.info("Found {} results", size);
|
||||||
for (IBaseResource next : res) {
|
for (IBaseResource next : res) {
|
||||||
|
@ -481,7 +481,7 @@ public abstract class BaseJpaTest extends BaseTest {
|
||||||
protected List<String> toUnqualifiedVersionlessIdValues(IBaseBundle theFound) {
|
protected List<String> toUnqualifiedVersionlessIdValues(IBaseBundle theFound) {
|
||||||
List<String> retVal = new ArrayList<>();
|
List<String> retVal = new ArrayList<>();
|
||||||
|
|
||||||
List<IBaseResource> res = BundleUtil.toListOfResources(getContext(), theFound);
|
List<IBaseResource> res = BundleUtil.toListOfResources(getFhirContext(), theFound);
|
||||||
int size = res.size();
|
int size = res.size();
|
||||||
ourLog.info("Found {} results", size);
|
ourLog.info("Found {} results", size);
|
||||||
for (IBaseResource next : res) {
|
for (IBaseResource next : res) {
|
||||||
|
|
|
@ -4,8 +4,6 @@ import ca.uhn.fhir.interceptor.api.IInterceptorBroadcaster;
|
||||||
import ca.uhn.fhir.jpa.rp.dstu2.PatientResourceProvider;
|
import ca.uhn.fhir.jpa.rp.dstu2.PatientResourceProvider;
|
||||||
import ca.uhn.fhir.rest.server.RestfulServer;
|
import ca.uhn.fhir.rest.server.RestfulServer;
|
||||||
import ca.uhn.fhir.rest.server.servlet.ServletRequestDetails;
|
import ca.uhn.fhir.rest.server.servlet.ServletRequestDetails;
|
||||||
import ca.uhn.fhir.util.TestUtil;
|
|
||||||
import org.junit.jupiter.api.AfterAll;
|
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
|
|
||||||
import javax.servlet.ServletConfig;
|
import javax.servlet.ServletConfig;
|
||||||
|
@ -26,7 +24,7 @@ public abstract class BaseJpaDstu2SystemTest extends BaseJpaDstu2Test {
|
||||||
when(mySrd.getInterceptorBroadcaster()).thenReturn(mock(IInterceptorBroadcaster.class));
|
when(mySrd.getInterceptorBroadcaster()).thenReturn(mock(IInterceptorBroadcaster.class));
|
||||||
|
|
||||||
if (myServer == null) {
|
if (myServer == null) {
|
||||||
myServer = new RestfulServer(myFhirCtx);
|
myServer = new RestfulServer(myFhirContext);
|
||||||
|
|
||||||
PatientResourceProvider patientRp = new PatientResourceProvider();
|
PatientResourceProvider patientRp = new PatientResourceProvider();
|
||||||
patientRp.setDao(myPatientDao);
|
patientRp.setDao(myPatientDao);
|
||||||
|
|
|
@ -21,7 +21,6 @@ import ca.uhn.fhir.jpa.provider.JpaSystemProviderDstu2;
|
||||||
import ca.uhn.fhir.jpa.search.DatabaseBackedPagingProvider;
|
import ca.uhn.fhir.jpa.search.DatabaseBackedPagingProvider;
|
||||||
import ca.uhn.fhir.jpa.search.reindex.IResourceReindexingSvc;
|
import ca.uhn.fhir.jpa.search.reindex.IResourceReindexingSvc;
|
||||||
import ca.uhn.fhir.jpa.searchparam.registry.ISearchParamRegistryController;
|
import ca.uhn.fhir.jpa.searchparam.registry.ISearchParamRegistryController;
|
||||||
import ca.uhn.fhir.rest.server.util.ISearchParamRegistry;
|
|
||||||
import ca.uhn.fhir.jpa.sp.ISearchParamPresenceSvc;
|
import ca.uhn.fhir.jpa.sp.ISearchParamPresenceSvc;
|
||||||
import ca.uhn.fhir.jpa.subscription.match.registry.SubscriptionLoader;
|
import ca.uhn.fhir.jpa.subscription.match.registry.SubscriptionLoader;
|
||||||
import ca.uhn.fhir.jpa.util.ResourceCountCache;
|
import ca.uhn.fhir.jpa.util.ResourceCountCache;
|
||||||
|
@ -59,8 +58,8 @@ import ca.uhn.fhir.model.dstu2.resource.ValueSet;
|
||||||
import ca.uhn.fhir.parser.IParser;
|
import ca.uhn.fhir.parser.IParser;
|
||||||
import ca.uhn.fhir.rest.api.EncodingEnum;
|
import ca.uhn.fhir.rest.api.EncodingEnum;
|
||||||
import ca.uhn.fhir.rest.server.provider.ResourceProviderFactory;
|
import ca.uhn.fhir.rest.server.provider.ResourceProviderFactory;
|
||||||
|
import ca.uhn.fhir.rest.server.util.ISearchParamRegistry;
|
||||||
import org.apache.commons.io.IOUtils;
|
import org.apache.commons.io.IOUtils;
|
||||||
import org.hl7.fhir.common.hapi.validation.support.CachingValidationSupport;
|
|
||||||
import org.hl7.fhir.common.hapi.validation.support.ValidationSupportChain;
|
import org.hl7.fhir.common.hapi.validation.support.ValidationSupportChain;
|
||||||
import org.hl7.fhir.instance.model.api.IBaseResource;
|
import org.hl7.fhir.instance.model.api.IBaseResource;
|
||||||
import org.junit.jupiter.api.AfterEach;
|
import org.junit.jupiter.api.AfterEach;
|
||||||
|
@ -133,8 +132,7 @@ public abstract class BaseJpaDstu2Test extends BaseJpaTest {
|
||||||
@Autowired
|
@Autowired
|
||||||
protected EntityManager myEntityManager;
|
protected EntityManager myEntityManager;
|
||||||
@Autowired
|
@Autowired
|
||||||
@Qualifier("myFhirContextDstu2")
|
protected FhirContext myFhirContext;
|
||||||
protected FhirContext myFhirCtx;
|
|
||||||
@Autowired
|
@Autowired
|
||||||
@Qualifier("myImmunizationDaoDstu2")
|
@Qualifier("myImmunizationDaoDstu2")
|
||||||
protected IFhirResourceDao<Immunization> myImmunizationDao;
|
protected IFhirResourceDao<Immunization> myImmunizationDao;
|
||||||
|
@ -248,8 +246,8 @@ public abstract class BaseJpaDstu2Test extends BaseJpaTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected FhirContext getContext() {
|
public FhirContext getFhirContext() {
|
||||||
return myFhirCtx;
|
return myFhirContext;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -263,7 +261,7 @@ public abstract class BaseJpaDstu2Test extends BaseJpaTest {
|
||||||
fail("Unable to load resource: " + resourceName);
|
fail("Unable to load resource: " + resourceName);
|
||||||
}
|
}
|
||||||
String string = IOUtils.toString(stream, StandardCharsets.UTF_8);
|
String string = IOUtils.toString(stream, StandardCharsets.UTF_8);
|
||||||
IParser newJsonParser = EncodingEnum.detectEncodingNoDefault(string).newParser(myFhirCtx);
|
IParser newJsonParser = EncodingEnum.detectEncodingNoDefault(string).newParser(myFhirContext);
|
||||||
return newJsonParser.parseResource(type, string);
|
return newJsonParser.parseResource(type, string);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -2,11 +2,16 @@ package ca.uhn.fhir.jpa.dao.dstu2;
|
||||||
|
|
||||||
import ca.uhn.fhir.i18n.Msg;
|
import ca.uhn.fhir.i18n.Msg;
|
||||||
import ca.uhn.fhir.jpa.config.TestHibernateSearchAddInConfig;
|
import ca.uhn.fhir.jpa.config.TestHibernateSearchAddInConfig;
|
||||||
import ca.uhn.fhir.rest.api.server.storage.ResourcePersistentId;
|
import ca.uhn.fhir.jpa.dao.data.ISearchParamPresentDao;
|
||||||
|
import ca.uhn.fhir.jpa.model.entity.ResourceIndexedSearchParamDate;
|
||||||
|
import ca.uhn.fhir.jpa.model.entity.ResourceIndexedSearchParamNumber;
|
||||||
|
import ca.uhn.fhir.jpa.model.entity.ResourceIndexedSearchParamQuantity;
|
||||||
|
import ca.uhn.fhir.jpa.model.entity.ResourceIndexedSearchParamString;
|
||||||
|
import ca.uhn.fhir.jpa.model.entity.ResourceIndexedSearchParamToken;
|
||||||
|
import ca.uhn.fhir.jpa.model.entity.ResourceIndexedSearchParamUri;
|
||||||
|
import ca.uhn.fhir.jpa.model.entity.ResourceLink;
|
||||||
import ca.uhn.fhir.jpa.searchparam.SearchParamConstants;
|
import ca.uhn.fhir.jpa.searchparam.SearchParamConstants;
|
||||||
import ca.uhn.fhir.jpa.searchparam.SearchParameterMap;
|
import ca.uhn.fhir.jpa.searchparam.SearchParameterMap;
|
||||||
import ca.uhn.fhir.jpa.dao.data.ISearchParamPresentDao;
|
|
||||||
import ca.uhn.fhir.jpa.model.entity.*;
|
|
||||||
import ca.uhn.fhir.jpa.util.TestUtil;
|
import ca.uhn.fhir.jpa.util.TestUtil;
|
||||||
import ca.uhn.fhir.model.api.IResource;
|
import ca.uhn.fhir.model.api.IResource;
|
||||||
import ca.uhn.fhir.model.api.Include;
|
import ca.uhn.fhir.model.api.Include;
|
||||||
|
@ -20,7 +25,23 @@ import ca.uhn.fhir.model.dstu2.composite.IdentifierDt;
|
||||||
import ca.uhn.fhir.model.dstu2.composite.PeriodDt;
|
import ca.uhn.fhir.model.dstu2.composite.PeriodDt;
|
||||||
import ca.uhn.fhir.model.dstu2.composite.QuantityDt;
|
import ca.uhn.fhir.model.dstu2.composite.QuantityDt;
|
||||||
import ca.uhn.fhir.model.dstu2.composite.ResourceReferenceDt;
|
import ca.uhn.fhir.model.dstu2.composite.ResourceReferenceDt;
|
||||||
import ca.uhn.fhir.model.dstu2.resource.*;
|
import ca.uhn.fhir.model.dstu2.resource.Appointment;
|
||||||
|
import ca.uhn.fhir.model.dstu2.resource.ConceptMap;
|
||||||
|
import ca.uhn.fhir.model.dstu2.resource.Device;
|
||||||
|
import ca.uhn.fhir.model.dstu2.resource.DiagnosticOrder;
|
||||||
|
import ca.uhn.fhir.model.dstu2.resource.DiagnosticReport;
|
||||||
|
import ca.uhn.fhir.model.dstu2.resource.Encounter;
|
||||||
|
import ca.uhn.fhir.model.dstu2.resource.Immunization;
|
||||||
|
import ca.uhn.fhir.model.dstu2.resource.Location;
|
||||||
|
import ca.uhn.fhir.model.dstu2.resource.Medication;
|
||||||
|
import ca.uhn.fhir.model.dstu2.resource.MedicationOrder;
|
||||||
|
import ca.uhn.fhir.model.dstu2.resource.Observation;
|
||||||
|
import ca.uhn.fhir.model.dstu2.resource.Organization;
|
||||||
|
import ca.uhn.fhir.model.dstu2.resource.Patient;
|
||||||
|
import ca.uhn.fhir.model.dstu2.resource.Practitioner;
|
||||||
|
import ca.uhn.fhir.model.dstu2.resource.Subscription;
|
||||||
|
import ca.uhn.fhir.model.dstu2.resource.Substance;
|
||||||
|
import ca.uhn.fhir.model.dstu2.resource.ValueSet;
|
||||||
import ca.uhn.fhir.model.dstu2.valueset.ContactPointSystemEnum;
|
import ca.uhn.fhir.model.dstu2.valueset.ContactPointSystemEnum;
|
||||||
import ca.uhn.fhir.model.dstu2.valueset.SubscriptionChannelTypeEnum;
|
import ca.uhn.fhir.model.dstu2.valueset.SubscriptionChannelTypeEnum;
|
||||||
import ca.uhn.fhir.model.dstu2.valueset.SubscriptionStatusEnum;
|
import ca.uhn.fhir.model.dstu2.valueset.SubscriptionStatusEnum;
|
||||||
|
@ -34,7 +55,21 @@ import ca.uhn.fhir.rest.api.Constants;
|
||||||
import ca.uhn.fhir.rest.api.SortOrderEnum;
|
import ca.uhn.fhir.rest.api.SortOrderEnum;
|
||||||
import ca.uhn.fhir.rest.api.SortSpec;
|
import ca.uhn.fhir.rest.api.SortSpec;
|
||||||
import ca.uhn.fhir.rest.api.server.IBundleProvider;
|
import ca.uhn.fhir.rest.api.server.IBundleProvider;
|
||||||
import ca.uhn.fhir.rest.param.*;
|
import ca.uhn.fhir.rest.api.server.storage.ResourcePersistentId;
|
||||||
|
import ca.uhn.fhir.rest.param.CompositeParam;
|
||||||
|
import ca.uhn.fhir.rest.param.DateParam;
|
||||||
|
import ca.uhn.fhir.rest.param.DateRangeParam;
|
||||||
|
import ca.uhn.fhir.rest.param.NumberParam;
|
||||||
|
import ca.uhn.fhir.rest.param.ParamPrefixEnum;
|
||||||
|
import ca.uhn.fhir.rest.param.QuantityParam;
|
||||||
|
import ca.uhn.fhir.rest.param.ReferenceParam;
|
||||||
|
import ca.uhn.fhir.rest.param.StringAndListParam;
|
||||||
|
import ca.uhn.fhir.rest.param.StringOrListParam;
|
||||||
|
import ca.uhn.fhir.rest.param.StringParam;
|
||||||
|
import ca.uhn.fhir.rest.param.TokenAndListParam;
|
||||||
|
import ca.uhn.fhir.rest.param.TokenOrListParam;
|
||||||
|
import ca.uhn.fhir.rest.param.TokenParam;
|
||||||
|
import ca.uhn.fhir.rest.param.UriParam;
|
||||||
import ca.uhn.fhir.rest.server.exceptions.InvalidRequestException;
|
import ca.uhn.fhir.rest.server.exceptions.InvalidRequestException;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.hl7.fhir.instance.model.api.IBaseResource;
|
import org.hl7.fhir.instance.model.api.IBaseResource;
|
||||||
|
@ -2112,7 +2147,7 @@ public class FhirResourceDaoDstu2SearchNoFtTest extends BaseJpaDstu2Test {
|
||||||
value = myDeviceDao.search(new SearchParameterMap());
|
value = myDeviceDao.search(new SearchParameterMap());
|
||||||
if (value.size() > 0) {
|
if (value.size() > 0) {
|
||||||
ourLog.info("Found: " + (value.getResources(0, 1).get(0).getIdElement()));
|
ourLog.info("Found: " + (value.getResources(0, 1).get(0).getIdElement()));
|
||||||
fail(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(value.getResources(0, 1).get(0)));
|
fail(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(value.getResources(0, 1).get(0)));
|
||||||
}
|
}
|
||||||
assertEquals(0, value.size().intValue());
|
assertEquals(0, value.size().intValue());
|
||||||
|
|
||||||
|
|
|
@ -1510,7 +1510,7 @@ public class FhirResourceDaoDstu2Test extends BaseJpaDstu2Test {
|
||||||
Set<ResourcePersistentId> val = myOrganizationDao.searchForIds(new SearchParameterMap("name", new StringParam("P")), null);
|
Set<ResourcePersistentId> val = myOrganizationDao.searchForIds(new SearchParameterMap("name", new StringParam("P")), null);
|
||||||
int initial = val.size();
|
int initial = val.size();
|
||||||
|
|
||||||
Organization org = myFhirCtx.newJsonParser().parseResource(Organization.class, inputStr);
|
Organization org = myFhirContext.newJsonParser().parseResource(Organization.class, inputStr);
|
||||||
myOrganizationDao.create(org, mySrd);
|
myOrganizationDao.create(org, mySrd);
|
||||||
|
|
||||||
val = myOrganizationDao.searchForIds(new SearchParameterMap("name", new StringParam("P")), null);
|
val = myOrganizationDao.searchForIds(new SearchParameterMap("name", new StringParam("P")), null);
|
||||||
|
@ -2084,7 +2084,7 @@ public class FhirResourceDaoDstu2Test extends BaseJpaDstu2Test {
|
||||||
|
|
||||||
oid1 = myObservationDao.create(obs, mySrd).getId().toUnqualifiedVersionless();
|
oid1 = myObservationDao.create(obs, mySrd).getId().toUnqualifiedVersionless();
|
||||||
|
|
||||||
ourLog.info("Observation: \n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(obs));
|
ourLog.info("Observation: \n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(obs));
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -2096,7 +2096,7 @@ public class FhirResourceDaoDstu2Test extends BaseJpaDstu2Test {
|
||||||
|
|
||||||
oid2 = myObservationDao.create(obs, mySrd).getId().toUnqualifiedVersionless();
|
oid2 = myObservationDao.create(obs, mySrd).getId().toUnqualifiedVersionless();
|
||||||
|
|
||||||
ourLog.info("Observation: \n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(obs));
|
ourLog.info("Observation: \n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(obs));
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -2108,7 +2108,7 @@ public class FhirResourceDaoDstu2Test extends BaseJpaDstu2Test {
|
||||||
|
|
||||||
oid3 = myObservationDao.create(obs, mySrd).getId().toUnqualifiedVersionless();
|
oid3 = myObservationDao.create(obs, mySrd).getId().toUnqualifiedVersionless();
|
||||||
|
|
||||||
ourLog.info("Observation: \n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(obs));
|
ourLog.info("Observation: \n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(obs));
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -2120,7 +2120,7 @@ public class FhirResourceDaoDstu2Test extends BaseJpaDstu2Test {
|
||||||
|
|
||||||
oid4 = myObservationDao.create(obs, mySrd).getId().toUnqualifiedVersionless();
|
oid4 = myObservationDao.create(obs, mySrd).getId().toUnqualifiedVersionless();
|
||||||
|
|
||||||
ourLog.info("Observation: \n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(obs));
|
ourLog.info("Observation: \n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(obs));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -2681,7 +2681,7 @@ public class FhirResourceDaoDstu2Test extends BaseJpaDstu2Test {
|
||||||
IIdType orgId = myOrganizationDao.create(org, mySrd).getId();
|
IIdType orgId = myOrganizationDao.create(org, mySrd).getId();
|
||||||
|
|
||||||
Organization returned = myOrganizationDao.read(orgId, mySrd);
|
Organization returned = myOrganizationDao.read(orgId, mySrd);
|
||||||
String val = myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(returned);
|
String val = myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(returned);
|
||||||
|
|
||||||
ourLog.info(val);
|
ourLog.info(val);
|
||||||
assertThat(val, containsString("<name value=\"測試醫院\"/>"));
|
assertThat(val, containsString("<name value=\"測試醫院\"/>"));
|
||||||
|
@ -2842,16 +2842,16 @@ public class FhirResourceDaoDstu2Test extends BaseJpaDstu2Test {
|
||||||
|
|
||||||
String stream = IOUtils.toString(getClass().getResourceAsStream("/binu_testpatient_structuredefinition_dstu2.xml"), StandardCharsets.UTF_8);
|
String stream = IOUtils.toString(getClass().getResourceAsStream("/binu_testpatient_structuredefinition_dstu2.xml"), StandardCharsets.UTF_8);
|
||||||
|
|
||||||
StructureDefinition sd = myFhirCtx.newXmlParser().parseResource(StructureDefinition.class, stream);
|
StructureDefinition sd = myFhirContext.newXmlParser().parseResource(StructureDefinition.class, stream);
|
||||||
myStructureDefinitionDao.create(sd, mySrd);
|
myStructureDefinitionDao.create(sd, mySrd);
|
||||||
|
|
||||||
String rawResource = IOUtils.toString(getClass().getResourceAsStream("/binu_testpatient_resource.json"), StandardCharsets.UTF_8);
|
String rawResource = IOUtils.toString(getClass().getResourceAsStream("/binu_testpatient_resource.json"), StandardCharsets.UTF_8);
|
||||||
IBaseResource parsedResource = myFhirCtx.newJsonParser().parseResource(rawResource);
|
IBaseResource parsedResource = myFhirContext.newJsonParser().parseResource(rawResource);
|
||||||
try {
|
try {
|
||||||
myPatientDao.validate((Patient) parsedResource, null, rawResource, EncodingEnum.JSON, ValidationModeEnum.UPDATE, null, mySrd);
|
myPatientDao.validate((Patient) parsedResource, null, rawResource, EncodingEnum.JSON, ValidationModeEnum.UPDATE, null, mySrd);
|
||||||
fail();
|
fail();
|
||||||
} catch (PreconditionFailedException e) {
|
} catch (PreconditionFailedException e) {
|
||||||
ourLog.info(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(e.getOperationOutcome()));
|
ourLog.info(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(e.getOperationOutcome()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -18,19 +18,17 @@ import ca.uhn.fhir.rest.api.ValidationModeEnum;
|
||||||
import ca.uhn.fhir.rest.server.exceptions.PreconditionFailedException;
|
import ca.uhn.fhir.rest.server.exceptions.PreconditionFailedException;
|
||||||
import ca.uhn.fhir.rest.server.exceptions.ResourceVersionConflictException;
|
import ca.uhn.fhir.rest.server.exceptions.ResourceVersionConflictException;
|
||||||
import ca.uhn.fhir.rest.server.exceptions.UnprocessableEntityException;
|
import ca.uhn.fhir.rest.server.exceptions.UnprocessableEntityException;
|
||||||
import ca.uhn.fhir.util.TestUtil;
|
|
||||||
import org.hl7.fhir.instance.model.api.IBaseOperationOutcome;
|
import org.hl7.fhir.instance.model.api.IBaseOperationOutcome;
|
||||||
import org.hl7.fhir.instance.model.api.IIdType;
|
import org.hl7.fhir.instance.model.api.IIdType;
|
||||||
import org.junit.jupiter.api.AfterEach;
|
import org.junit.jupiter.api.AfterEach;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
|
|
||||||
import static org.hamcrest.Matchers.containsString;
|
|
||||||
import static org.hamcrest.MatcherAssert.assertThat;
|
import static org.hamcrest.MatcherAssert.assertThat;
|
||||||
|
import static org.hamcrest.Matchers.containsString;
|
||||||
import static org.junit.jupiter.api.Assertions.fail;
|
import static org.junit.jupiter.api.Assertions.fail;
|
||||||
|
|
||||||
public class FhirResourceDaoDstu2ValidateTest extends BaseJpaDstu2Test {
|
public class FhirResourceDaoDstu2ValidateTest extends BaseJpaDstu2Test {
|
||||||
|
@ -51,7 +49,7 @@ public class FhirResourceDaoDstu2ValidateTest extends BaseJpaDstu2Test {
|
||||||
String methodName = "testValidateResourceContainingProfileDeclarationJson";
|
String methodName = "testValidateResourceContainingProfileDeclarationJson";
|
||||||
OperationOutcome outcome = doTestValidateResourceContainingProfileDeclaration(methodName, EncodingEnum.JSON);
|
OperationOutcome outcome = doTestValidateResourceContainingProfileDeclaration(methodName, EncodingEnum.JSON);
|
||||||
|
|
||||||
String ooString = myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(outcome);
|
String ooString = myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(outcome);
|
||||||
ourLog.info(ooString);
|
ourLog.info(ooString);
|
||||||
assertThat(ooString, containsString("Observation.subject: minimum required = 1, but only found 0"));
|
assertThat(ooString, containsString("Observation.subject: minimum required = 1, but only found 0"));
|
||||||
assertThat(ooString, containsString("Observation.encounter: max allowed = 0, but found 1"));
|
assertThat(ooString, containsString("Observation.encounter: max allowed = 0, but found 1"));
|
||||||
|
@ -63,7 +61,7 @@ public class FhirResourceDaoDstu2ValidateTest extends BaseJpaDstu2Test {
|
||||||
String methodName = "testValidateResourceContainingProfileDeclarationXml";
|
String methodName = "testValidateResourceContainingProfileDeclarationXml";
|
||||||
OperationOutcome outcome = doTestValidateResourceContainingProfileDeclaration(methodName, EncodingEnum.XML);
|
OperationOutcome outcome = doTestValidateResourceContainingProfileDeclaration(methodName, EncodingEnum.XML);
|
||||||
|
|
||||||
String ooString = myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(outcome);
|
String ooString = myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(outcome);
|
||||||
ourLog.info(ooString);
|
ourLog.info(ooString);
|
||||||
assertThat(ooString, containsString("Observation.subject: minimum required = 1, but only found 0"));
|
assertThat(ooString, containsString("Observation.subject: minimum required = 1, but only found 0"));
|
||||||
assertThat(ooString, containsString("Observation.encounter: max allowed = 0, but found 1"));
|
assertThat(ooString, containsString("Observation.encounter: max allowed = 0, but found 1"));
|
||||||
|
@ -99,7 +97,7 @@ public class FhirResourceDaoDstu2ValidateTest extends BaseJpaDstu2Test {
|
||||||
ValidationModeEnum mode = ValidationModeEnum.CREATE;
|
ValidationModeEnum mode = ValidationModeEnum.CREATE;
|
||||||
switch (enc) {
|
switch (enc) {
|
||||||
case JSON:
|
case JSON:
|
||||||
encoded = myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(input);
|
encoded = myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(input);
|
||||||
ourLog.info(encoded);
|
ourLog.info(encoded);
|
||||||
try {
|
try {
|
||||||
myObservationDao.validate(input, null, encoded, EncodingEnum.JSON, mode, null, mySrd);
|
myObservationDao.validate(input, null, encoded, EncodingEnum.JSON, mode, null, mySrd);
|
||||||
|
@ -109,7 +107,7 @@ public class FhirResourceDaoDstu2ValidateTest extends BaseJpaDstu2Test {
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case XML:
|
case XML:
|
||||||
encoded = myFhirCtx.newXmlParser().encodeResourceToString(input);
|
encoded = myFhirContext.newXmlParser().encodeResourceToString(input);
|
||||||
try {
|
try {
|
||||||
myObservationDao.validate(input, null, encoded, EncodingEnum.XML, mode, null, mySrd);
|
myObservationDao.validate(input, null, encoded, EncodingEnum.XML, mode, null, mySrd);
|
||||||
fail();
|
fail();
|
||||||
|
@ -136,13 +134,13 @@ public class FhirResourceDaoDstu2ValidateTest extends BaseJpaDstu2Test {
|
||||||
input.getCode().addCoding().setSystem("http://loinc.org").setCode("12345");
|
input.getCode().addCoding().setSystem("http://loinc.org").setCode("12345");
|
||||||
|
|
||||||
ValidationModeEnum mode = ValidationModeEnum.CREATE;
|
ValidationModeEnum mode = ValidationModeEnum.CREATE;
|
||||||
String encoded = myFhirCtx.newJsonParser().encodeResourceToString(input);
|
String encoded = myFhirContext.newJsonParser().encodeResourceToString(input);
|
||||||
ourLog.info(encoded);
|
ourLog.info(encoded);
|
||||||
try {
|
try {
|
||||||
myObservationDao.validate(input, null, encoded, EncodingEnum.JSON, mode, null, mySrd);
|
myObservationDao.validate(input, null, encoded, EncodingEnum.JSON, mode, null, mySrd);
|
||||||
fail();
|
fail();
|
||||||
} catch (PreconditionFailedException e) {
|
} catch (PreconditionFailedException e) {
|
||||||
String ooString = myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(e.getOperationOutcome());
|
String ooString = myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(e.getOperationOutcome());
|
||||||
ourLog.info(ooString);
|
ourLog.info(ooString);
|
||||||
assertThat(ooString, containsString("Profile reference 'http://example.com/StructureDefinition/testValidateResourceContainingProfileDeclarationInvalid' has not been checked because it is unknown"));
|
assertThat(ooString, containsString("Profile reference 'http://example.com/StructureDefinition/testValidateResourceContainingProfileDeclarationInvalid' has not been checked because it is unknown"));
|
||||||
}
|
}
|
||||||
|
@ -204,7 +202,7 @@ public class FhirResourceDaoDstu2ValidateTest extends BaseJpaDstu2Test {
|
||||||
} catch (PreconditionFailedException e) {
|
} catch (PreconditionFailedException e) {
|
||||||
// should not happen
|
// should not happen
|
||||||
IBaseOperationOutcome oo = e.getOperationOutcome();
|
IBaseOperationOutcome oo = e.getOperationOutcome();
|
||||||
fail(myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(oo));
|
fail(myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(oo));
|
||||||
}
|
}
|
||||||
pat.setId("");
|
pat.setId("");
|
||||||
|
|
||||||
|
@ -238,7 +236,7 @@ public class FhirResourceDaoDstu2ValidateTest extends BaseJpaDstu2Test {
|
||||||
outcome = (OperationOutcome) e.getOperationOutcome();
|
outcome = (OperationOutcome) e.getOperationOutcome();
|
||||||
}
|
}
|
||||||
|
|
||||||
String ooString = myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(outcome);
|
String ooString = myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(outcome);
|
||||||
ourLog.info(ooString);
|
ourLog.info(ooString);
|
||||||
assertThat(ooString, containsString("Unable to delete Organization"));
|
assertThat(ooString, containsString("Unable to delete Organization"));
|
||||||
|
|
||||||
|
@ -247,7 +245,7 @@ public class FhirResourceDaoDstu2ValidateTest extends BaseJpaDstu2Test {
|
||||||
myPatientDao.update(pat, mySrd);
|
myPatientDao.update(pat, mySrd);
|
||||||
|
|
||||||
outcome = (OperationOutcome) myOrganizationDao.validate(null, orgId, null, null, ValidationModeEnum.DELETE, null, mySrd).getOperationOutcome();
|
outcome = (OperationOutcome) myOrganizationDao.validate(null, orgId, null, null, ValidationModeEnum.DELETE, null, mySrd).getOperationOutcome();
|
||||||
ooString = myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(outcome);
|
ooString = myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(outcome);
|
||||||
ourLog.info(ooString);
|
ourLog.info(ooString);
|
||||||
assertThat(ooString, containsString("Ok to delete"));
|
assertThat(ooString, containsString("Ok to delete"));
|
||||||
|
|
||||||
|
|
|
@ -157,7 +157,7 @@ public class FhirResourceDaoValueSetDstu2Test extends BaseJpaDstu2Test {
|
||||||
String resp;
|
String resp;
|
||||||
|
|
||||||
ValueSet expanded = myValueSetDao.expand(myExtensionalVsId, null, mySrd);
|
ValueSet expanded = myValueSetDao.expand(myExtensionalVsId, null, mySrd);
|
||||||
resp = myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(expanded);
|
resp = myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(expanded);
|
||||||
ourLog.info(resp);
|
ourLog.info(resp);
|
||||||
// @formatter:off
|
// @formatter:off
|
||||||
assertThat(resp,
|
assertThat(resp,
|
||||||
|
@ -182,7 +182,7 @@ public class FhirResourceDaoValueSetDstu2Test extends BaseJpaDstu2Test {
|
||||||
*/
|
*/
|
||||||
|
|
||||||
expanded = myValueSetDao.expand(myExtensionalVsId, new ValueSetExpansionOptions().setFilter("systolic"), mySrd);
|
expanded = myValueSetDao.expand(myExtensionalVsId, new ValueSetExpansionOptions().setFilter("systolic"), mySrd);
|
||||||
resp = myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(expanded);
|
resp = myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(expanded);
|
||||||
ourLog.info(resp);
|
ourLog.info(resp);
|
||||||
//@formatter:off
|
//@formatter:off
|
||||||
assertThat(resp, stringContainsInOrder(
|
assertThat(resp, stringContainsInOrder(
|
||||||
|
@ -195,7 +195,7 @@ public class FhirResourceDaoValueSetDstu2Test extends BaseJpaDstu2Test {
|
||||||
*/
|
*/
|
||||||
|
|
||||||
expanded = myValueSetDao.expand(myExtensionalVsId, new ValueSetExpansionOptions().setFilter("11378"), mySrd);
|
expanded = myValueSetDao.expand(myExtensionalVsId, new ValueSetExpansionOptions().setFilter("11378"), mySrd);
|
||||||
resp = myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(expanded);
|
resp = myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(expanded);
|
||||||
ourLog.info(resp);
|
ourLog.info(resp);
|
||||||
//@formatter:off
|
//@formatter:off
|
||||||
assertThat(resp, stringContainsInOrder(
|
assertThat(resp, stringContainsInOrder(
|
||||||
|
@ -207,7 +207,7 @@ public class FhirResourceDaoValueSetDstu2Test extends BaseJpaDstu2Test {
|
||||||
@Test
|
@Test
|
||||||
public void testExpandByIdentifier() {
|
public void testExpandByIdentifier() {
|
||||||
ValueSet expanded = myValueSetDao.expandByIdentifier("http://www.healthintersections.com.au/fhir/ValueSet/extensional-case-2", new ValueSetExpansionOptions().setFilter("11378"));
|
ValueSet expanded = myValueSetDao.expandByIdentifier("http://www.healthintersections.com.au/fhir/ValueSet/extensional-case-2", new ValueSetExpansionOptions().setFilter("11378"));
|
||||||
String resp = myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(expanded);
|
String resp = myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(expanded);
|
||||||
ourLog.info(resp);
|
ourLog.info(resp);
|
||||||
//@formatter:off
|
//@formatter:off
|
||||||
assertThat(resp, stringContainsInOrder(
|
assertThat(resp, stringContainsInOrder(
|
||||||
|
@ -222,7 +222,7 @@ public class FhirResourceDaoValueSetDstu2Test extends BaseJpaDstu2Test {
|
||||||
public void testExpandByValueSet() throws IOException {
|
public void testExpandByValueSet() throws IOException {
|
||||||
ValueSet toExpand = loadResourceFromClasspath(ValueSet.class, "/extensional-case-2.xml");
|
ValueSet toExpand = loadResourceFromClasspath(ValueSet.class, "/extensional-case-2.xml");
|
||||||
ValueSet expanded = myValueSetDao.expand(toExpand, new ValueSetExpansionOptions().setFilter("11378"));
|
ValueSet expanded = myValueSetDao.expand(toExpand, new ValueSetExpansionOptions().setFilter("11378"));
|
||||||
String resp = myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(expanded);
|
String resp = myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(expanded);
|
||||||
ourLog.info(resp);
|
ourLog.info(resp);
|
||||||
//@formatter:off
|
//@formatter:off
|
||||||
assertThat(resp, stringContainsInOrder(
|
assertThat(resp, stringContainsInOrder(
|
||||||
|
|
|
@ -50,7 +50,16 @@ import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import static org.hamcrest.MatcherAssert.assertThat;
|
import static org.hamcrest.MatcherAssert.assertThat;
|
||||||
import static org.hamcrest.Matchers.*;
|
import static org.hamcrest.Matchers.contains;
|
||||||
|
import static org.hamcrest.Matchers.containsString;
|
||||||
|
import static org.hamcrest.Matchers.empty;
|
||||||
|
import static org.hamcrest.Matchers.emptyString;
|
||||||
|
import static org.hamcrest.Matchers.endsWith;
|
||||||
|
import static org.hamcrest.Matchers.equalTo;
|
||||||
|
import static org.hamcrest.Matchers.greaterThan;
|
||||||
|
import static org.hamcrest.Matchers.is;
|
||||||
|
import static org.hamcrest.Matchers.not;
|
||||||
|
import static org.hamcrest.Matchers.startsWith;
|
||||||
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
|
import static org.junit.jupiter.api.Assertions.assertArrayEquals;
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
import static org.junit.jupiter.api.Assertions.assertNotEquals;
|
import static org.junit.jupiter.api.Assertions.assertNotEquals;
|
||||||
|
@ -168,7 +177,7 @@ public class FhirSystemDaoDstu2Test extends BaseJpaDstu2SystemTest {
|
||||||
assertEquals(2, resp.getEntry().size());
|
assertEquals(2, resp.getEntry().size());
|
||||||
assertEquals(BundleTypeEnum.BATCH_RESPONSE, resp.getTypeElement().getValueAsEnum());
|
assertEquals(BundleTypeEnum.BATCH_RESPONSE, resp.getTypeElement().getValueAsEnum());
|
||||||
|
|
||||||
ourLog.info(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(resp));
|
ourLog.info(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(resp));
|
||||||
EntryResponse respEntry;
|
EntryResponse respEntry;
|
||||||
|
|
||||||
// Bundle.entry[1] is create response
|
// Bundle.entry[1] is create response
|
||||||
|
@ -200,11 +209,11 @@ public class FhirSystemDaoDstu2Test extends BaseJpaDstu2SystemTest {
|
||||||
@Test
|
@Test
|
||||||
public void testTransactionBug638() throws Exception {
|
public void testTransactionBug638() throws Exception {
|
||||||
String input = loadClasspath("/bug638.xml");
|
String input = loadClasspath("/bug638.xml");
|
||||||
Bundle request = myFhirCtx.newXmlParser().parseResource(Bundle.class, input);
|
Bundle request = myFhirContext.newXmlParser().parseResource(Bundle.class, input);
|
||||||
|
|
||||||
Bundle resp = mySystemDao.transaction(mySrd, request);
|
Bundle resp = mySystemDao.transaction(mySrd, request);
|
||||||
|
|
||||||
ourLog.info(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(resp));
|
ourLog.info(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(resp));
|
||||||
|
|
||||||
assertEquals(18, resp.getEntry().size());
|
assertEquals(18, resp.getEntry().size());
|
||||||
}
|
}
|
||||||
|
@ -1045,11 +1054,11 @@ public class FhirSystemDaoDstu2Test extends BaseJpaDstu2SystemTest {
|
||||||
|
|
||||||
InputStream bundleRes = SystemProviderDstu2Test.class.getResourceAsStream("/transaction_link_patient_eve.xml");
|
InputStream bundleRes = SystemProviderDstu2Test.class.getResourceAsStream("/transaction_link_patient_eve.xml");
|
||||||
String bundleStr = IOUtils.toString(bundleRes);
|
String bundleStr = IOUtils.toString(bundleRes);
|
||||||
Bundle bundle = myFhirCtx.newXmlParser().parseResource(Bundle.class, bundleStr);
|
Bundle bundle = myFhirContext.newXmlParser().parseResource(Bundle.class, bundleStr);
|
||||||
|
|
||||||
Bundle resp = mySystemDao.transaction(mySrd, bundle);
|
Bundle resp = mySystemDao.transaction(mySrd, bundle);
|
||||||
|
|
||||||
ourLog.info(myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(resp));
|
ourLog.info(myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(resp));
|
||||||
|
|
||||||
assertThat(resp.getEntry().get(0).getResponse().getLocation(), startsWith("Patient/a555-44-4444/_history/"));
|
assertThat(resp.getEntry().get(0).getResponse().getLocation(), startsWith("Patient/a555-44-4444/_history/"));
|
||||||
assertThat(resp.getEntry().get(1).getResponse().getLocation(), startsWith("Patient/temp6789/_history/"));
|
assertThat(resp.getEntry().get(1).getResponse().getLocation(), startsWith("Patient/temp6789/_history/"));
|
||||||
|
@ -1063,8 +1072,8 @@ public class FhirSystemDaoDstu2Test extends BaseJpaDstu2SystemTest {
|
||||||
public void testTransactionFromBundle6() throws Exception {
|
public void testTransactionFromBundle6() throws Exception {
|
||||||
InputStream bundleRes = SystemProviderDstu2Test.class.getResourceAsStream("/simone_bundle3.xml");
|
InputStream bundleRes = SystemProviderDstu2Test.class.getResourceAsStream("/simone_bundle3.xml");
|
||||||
String bundle = IOUtils.toString(bundleRes);
|
String bundle = IOUtils.toString(bundleRes);
|
||||||
Bundle output = mySystemDao.transaction(mySrd, myFhirCtx.newXmlParser().parseResource(Bundle.class, bundle));
|
Bundle output = mySystemDao.transaction(mySrd, myFhirContext.newXmlParser().parseResource(Bundle.class, bundle));
|
||||||
ourLog.info(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(output));
|
ourLog.info(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(output));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -1072,11 +1081,11 @@ public class FhirSystemDaoDstu2Test extends BaseJpaDstu2SystemTest {
|
||||||
|
|
||||||
InputStream bundleRes = SystemProviderDstu2Test.class.getResourceAsStream("/josh-bundle.json");
|
InputStream bundleRes = SystemProviderDstu2Test.class.getResourceAsStream("/josh-bundle.json");
|
||||||
String bundleStr = IOUtils.toString(bundleRes);
|
String bundleStr = IOUtils.toString(bundleRes);
|
||||||
Bundle bundle = myFhirCtx.newJsonParser().parseResource(Bundle.class, bundleStr);
|
Bundle bundle = myFhirContext.newJsonParser().parseResource(Bundle.class, bundleStr);
|
||||||
|
|
||||||
Bundle resp = mySystemDao.transaction(mySrd, bundle);
|
Bundle resp = mySystemDao.transaction(mySrd, bundle);
|
||||||
|
|
||||||
ourLog.info(myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(resp));
|
ourLog.info(myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(resp));
|
||||||
|
|
||||||
assertEquals("201 Created", resp.getEntry().get(0).getResponse().getStatus());
|
assertEquals("201 Created", resp.getEntry().get(0).getResponse().getStatus());
|
||||||
assertEquals("201 Created", resp.getEntry().get(1).getResponse().getStatus());
|
assertEquals("201 Created", resp.getEntry().get(1).getResponse().getStatus());
|
||||||
|
@ -1137,7 +1146,7 @@ public class FhirSystemDaoDstu2Test extends BaseJpaDstu2SystemTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void testTransactionOrderingValidateResponse(int pass, Bundle resp) {
|
private void testTransactionOrderingValidateResponse(int pass, Bundle resp) {
|
||||||
ourLog.info(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(resp));
|
ourLog.info(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(resp));
|
||||||
assertEquals(4, resp.getEntry().size());
|
assertEquals(4, resp.getEntry().size());
|
||||||
assertEquals("200 OK", resp.getEntry().get(0).getResponse().getStatus());
|
assertEquals("200 OK", resp.getEntry().get(0).getResponse().getStatus());
|
||||||
if (pass == 0) {
|
if (pass == 0) {
|
||||||
|
@ -1291,7 +1300,7 @@ public class FhirSystemDaoDstu2Test extends BaseJpaDstu2SystemTest {
|
||||||
Bundle resp = mySystemDao.transaction(mySrd, request);
|
Bundle resp = mySystemDao.transaction(mySrd, request);
|
||||||
assertEquals(2, resp.getEntry().size());
|
assertEquals(2, resp.getEntry().size());
|
||||||
|
|
||||||
ourLog.info(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(resp));
|
ourLog.info(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(resp));
|
||||||
|
|
||||||
Entry nextEntry = resp.getEntry().get(0);
|
Entry nextEntry = resp.getEntry().get(0);
|
||||||
assertEquals("200 OK", nextEntry.getResponse().getStatus());
|
assertEquals("200 OK", nextEntry.getResponse().getStatus());
|
||||||
|
@ -1435,7 +1444,7 @@ public class FhirSystemDaoDstu2Test extends BaseJpaDstu2SystemTest {
|
||||||
|
|
||||||
Bundle initialBundleResponse = mySystemDao.transaction(mySrd, request);
|
Bundle initialBundleResponse = mySystemDao.transaction(mySrd, request);
|
||||||
assertEquals(1, initialBundleResponse.getEntry().size());
|
assertEquals(1, initialBundleResponse.getEntry().size());
|
||||||
ourLog.info(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(initialBundleResponse));
|
ourLog.info(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(initialBundleResponse));
|
||||||
|
|
||||||
Entry initialBundleResponseEntry = initialBundleResponse.getEntry().get(0);
|
Entry initialBundleResponseEntry = initialBundleResponse.getEntry().get(0);
|
||||||
assertEquals("201 Created", initialBundleResponseEntry.getResponse().getStatus());
|
assertEquals("201 Created", initialBundleResponseEntry.getResponse().getStatus());
|
||||||
|
@ -1445,7 +1454,7 @@ public class FhirSystemDaoDstu2Test extends BaseJpaDstu2SystemTest {
|
||||||
|
|
||||||
Bundle secondBundleResponse = mySystemDao.transaction(mySrd, request);
|
Bundle secondBundleResponse = mySystemDao.transaction(mySrd, request);
|
||||||
assertEquals(1, secondBundleResponse.getEntry().size());
|
assertEquals(1, secondBundleResponse.getEntry().size());
|
||||||
ourLog.info(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(secondBundleResponse));
|
ourLog.info(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(secondBundleResponse));
|
||||||
|
|
||||||
Entry secondBundleResponseEntry = secondBundleResponse.getEntry().get(0);
|
Entry secondBundleResponseEntry = secondBundleResponse.getEntry().get(0);
|
||||||
assertEquals("200 OK", secondBundleResponseEntry.getResponse().getStatus());
|
assertEquals("200 OK", secondBundleResponseEntry.getResponse().getStatus());
|
||||||
|
@ -1464,7 +1473,7 @@ public class FhirSystemDaoDstu2Test extends BaseJpaDstu2SystemTest {
|
||||||
|
|
||||||
Bundle initialBundleResponse = mySystemDao.transaction(mySrd, request);
|
Bundle initialBundleResponse = mySystemDao.transaction(mySrd, request);
|
||||||
assertEquals(1, initialBundleResponse.getEntry().size());
|
assertEquals(1, initialBundleResponse.getEntry().size());
|
||||||
ourLog.info(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(initialBundleResponse));
|
ourLog.info(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(initialBundleResponse));
|
||||||
|
|
||||||
Entry initialBundleResponseEntry = initialBundleResponse.getEntry().get(0);
|
Entry initialBundleResponseEntry = initialBundleResponse.getEntry().get(0);
|
||||||
assertEquals("201 Created", initialBundleResponseEntry.getResponse().getStatus());
|
assertEquals("201 Created", initialBundleResponseEntry.getResponse().getStatus());
|
||||||
|
@ -1472,7 +1481,7 @@ public class FhirSystemDaoDstu2Test extends BaseJpaDstu2SystemTest {
|
||||||
|
|
||||||
Bundle secondBundleResponse = mySystemDao.transaction(mySrd, request);
|
Bundle secondBundleResponse = mySystemDao.transaction(mySrd, request);
|
||||||
assertEquals(1, secondBundleResponse.getEntry().size());
|
assertEquals(1, secondBundleResponse.getEntry().size());
|
||||||
ourLog.info(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(secondBundleResponse));
|
ourLog.info(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(secondBundleResponse));
|
||||||
|
|
||||||
Entry secondBundleResponseEntry = secondBundleResponse.getEntry().get(0);
|
Entry secondBundleResponseEntry = secondBundleResponse.getEntry().get(0);
|
||||||
assertEquals("200 OK", secondBundleResponseEntry.getResponse().getStatus());
|
assertEquals("200 OK", secondBundleResponseEntry.getResponse().getStatus());
|
||||||
|
@ -1591,9 +1600,9 @@ public class FhirSystemDaoDstu2Test extends BaseJpaDstu2SystemTest {
|
||||||
"}";
|
"}";
|
||||||
//@formatter:on
|
//@formatter:on
|
||||||
|
|
||||||
Bundle inputBundle = myFhirCtx.newJsonParser().parseResource(Bundle.class, input);
|
Bundle inputBundle = myFhirContext.newJsonParser().parseResource(Bundle.class, input);
|
||||||
Bundle outputBundle = mySystemDao.transaction(mySrd, inputBundle);
|
Bundle outputBundle = mySystemDao.transaction(mySrd, inputBundle);
|
||||||
ourLog.info(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(outputBundle));
|
ourLog.info(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(outputBundle));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -1657,7 +1666,7 @@ public class FhirSystemDaoDstu2Test extends BaseJpaDstu2SystemTest {
|
||||||
//@formatter:on
|
//@formatter:on
|
||||||
|
|
||||||
Bundle outputBundle = mySystemDao.transaction(mySrd, inputBundle);
|
Bundle outputBundle = mySystemDao.transaction(mySrd, inputBundle);
|
||||||
ourLog.info(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(outputBundle));
|
ourLog.info(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(outputBundle));
|
||||||
|
|
||||||
assertEquals(3, outputBundle.getEntry().size());
|
assertEquals(3, outputBundle.getEntry().size());
|
||||||
IdDt id0 = new IdDt(outputBundle.getEntry().get(0).getResponse().getLocation());
|
IdDt id0 = new IdDt(outputBundle.getEntry().get(0).getResponse().getLocation());
|
||||||
|
@ -1680,9 +1689,9 @@ public class FhirSystemDaoDstu2Test extends BaseJpaDstu2SystemTest {
|
||||||
// First bundle (name is Joshua)
|
// First bundle (name is Joshua)
|
||||||
|
|
||||||
String input = IOUtils.toString(getClass().getResource("/dstu3-post1.xml"), StandardCharsets.UTF_8);
|
String input = IOUtils.toString(getClass().getResource("/dstu3-post1.xml"), StandardCharsets.UTF_8);
|
||||||
Bundle request = myFhirCtx.newXmlParser().parseResource(Bundle.class, input);
|
Bundle request = myFhirContext.newXmlParser().parseResource(Bundle.class, input);
|
||||||
Bundle response = mySystemDao.transaction(mySrd, request);
|
Bundle response = mySystemDao.transaction(mySrd, request);
|
||||||
ourLog.info(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(response));
|
ourLog.info(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(response));
|
||||||
|
|
||||||
assertEquals(1, response.getEntry().size());
|
assertEquals(1, response.getEntry().size());
|
||||||
assertEquals("201 Created", response.getEntry().get(0).getResponse().getStatus());
|
assertEquals("201 Created", response.getEntry().get(0).getResponse().getStatus());
|
||||||
|
@ -1692,9 +1701,9 @@ public class FhirSystemDaoDstu2Test extends BaseJpaDstu2SystemTest {
|
||||||
// Now the second (name is Adam, shouldn't get used)
|
// Now the second (name is Adam, shouldn't get used)
|
||||||
|
|
||||||
input = IOUtils.toString(getClass().getResource("/dstu3-post2.xml"), StandardCharsets.UTF_8);
|
input = IOUtils.toString(getClass().getResource("/dstu3-post2.xml"), StandardCharsets.UTF_8);
|
||||||
request = myFhirCtx.newXmlParser().parseResource(Bundle.class, input);
|
request = myFhirContext.newXmlParser().parseResource(Bundle.class, input);
|
||||||
response = mySystemDao.transaction(mySrd, request);
|
response = mySystemDao.transaction(mySrd, request);
|
||||||
ourLog.info(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(response));
|
ourLog.info(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(response));
|
||||||
|
|
||||||
assertEquals(1, response.getEntry().size());
|
assertEquals(1, response.getEntry().size());
|
||||||
assertEquals("200 OK", response.getEntry().get(0).getResponse().getStatus());
|
assertEquals("200 OK", response.getEntry().get(0).getResponse().getStatus());
|
||||||
|
@ -1703,7 +1712,7 @@ public class FhirSystemDaoDstu2Test extends BaseJpaDstu2SystemTest {
|
||||||
assertEquals(id, id2);
|
assertEquals(id, id2);
|
||||||
|
|
||||||
Patient patient = myPatientDao.read(new IdType(id), mySrd);
|
Patient patient = myPatientDao.read(new IdType(id), mySrd);
|
||||||
ourLog.info(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(patient));
|
ourLog.info(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(patient));
|
||||||
assertEquals("Joshua", patient.getNameFirstRep().getGivenAsSingleString());
|
assertEquals("Joshua", patient.getNameFirstRep().getGivenAsSingleString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1722,10 +1731,10 @@ public class FhirSystemDaoDstu2Test extends BaseJpaDstu2SystemTest {
|
||||||
mo.setMedication(new ResourceReferenceDt(medId));
|
mo.setMedication(new ResourceReferenceDt(medId));
|
||||||
bundle.addEntry().setResource(mo).setFullUrl(mo.getId().getValue()).getRequest().setMethod(HTTPVerbEnum.POST);
|
bundle.addEntry().setResource(mo).setFullUrl(mo.getId().getValue()).getRequest().setMethod(HTTPVerbEnum.POST);
|
||||||
|
|
||||||
ourLog.info("Request:\n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(bundle));
|
ourLog.info("Request:\n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(bundle));
|
||||||
|
|
||||||
Bundle outcome = mySystemDao.transaction(mySrd, bundle);
|
Bundle outcome = mySystemDao.transaction(mySrd, bundle);
|
||||||
ourLog.info("Response:\n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(outcome));
|
ourLog.info("Response:\n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(outcome));
|
||||||
|
|
||||||
IdDt medId1 = new IdDt(outcome.getEntry().get(0).getResponse().getLocation());
|
IdDt medId1 = new IdDt(outcome.getEntry().get(0).getResponse().getLocation());
|
||||||
IdDt medOrderId1 = new IdDt(outcome.getEntry().get(1).getResponse().getLocation());
|
IdDt medOrderId1 = new IdDt(outcome.getEntry().get(1).getResponse().getLocation());
|
||||||
|
@ -1782,7 +1791,7 @@ public class FhirSystemDaoDstu2Test extends BaseJpaDstu2SystemTest {
|
||||||
|
|
||||||
Bundle resp = mySystemDao.transaction(mySrd, res);
|
Bundle resp = mySystemDao.transaction(mySrd, res);
|
||||||
|
|
||||||
ourLog.info(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(resp));
|
ourLog.info(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(resp));
|
||||||
|
|
||||||
assertEquals(BundleTypeEnum.TRANSACTION_RESPONSE, resp.getTypeElement().getValueAsEnum());
|
assertEquals(BundleTypeEnum.TRANSACTION_RESPONSE, resp.getTypeElement().getValueAsEnum());
|
||||||
assertEquals(3, resp.getEntry().size());
|
assertEquals(3, resp.getEntry().size());
|
||||||
|
@ -1823,7 +1832,7 @@ public class FhirSystemDaoDstu2Test extends BaseJpaDstu2SystemTest {
|
||||||
|
|
||||||
Bundle resp = mySystemDao.transaction(mySrd, res);
|
Bundle resp = mySystemDao.transaction(mySrd, res);
|
||||||
|
|
||||||
ourLog.info(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(resp));
|
ourLog.info(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(resp));
|
||||||
|
|
||||||
assertEquals(BundleTypeEnum.TRANSACTION_RESPONSE, resp.getTypeElement().getValueAsEnum());
|
assertEquals(BundleTypeEnum.TRANSACTION_RESPONSE, resp.getTypeElement().getValueAsEnum());
|
||||||
assertEquals(3, resp.getEntry().size());
|
assertEquals(3, resp.getEntry().size());
|
||||||
|
@ -1973,7 +1982,7 @@ public class FhirSystemDaoDstu2Test extends BaseJpaDstu2SystemTest {
|
||||||
drEntry.setResource(dr).setFullUrl(dr.getId()).getRequest().setUrl("DiagnosticReport").setMethod(HTTPVerbEnum.POST);
|
drEntry.setResource(dr).setFullUrl(dr.getId()).getRequest().setUrl("DiagnosticReport").setMethod(HTTPVerbEnum.POST);
|
||||||
transactionBundle.addEntry(drEntry);
|
transactionBundle.addEntry(drEntry);
|
||||||
|
|
||||||
ourLog.info(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(transactionBundle));
|
ourLog.info(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(transactionBundle));
|
||||||
|
|
||||||
Bundle transactionResp = mySystemDao.transaction(mySrd, transactionBundle);
|
Bundle transactionResp = mySystemDao.transaction(mySrd, transactionBundle);
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,7 @@ public abstract class BaseJpaDstu3SystemTest extends BaseJpaDstu3Test {
|
||||||
when(mySrd.getInterceptorBroadcaster()).thenReturn(mock(IInterceptorBroadcaster.class));
|
when(mySrd.getInterceptorBroadcaster()).thenReturn(mock(IInterceptorBroadcaster.class));
|
||||||
|
|
||||||
if (myServer == null) {
|
if (myServer == null) {
|
||||||
myServer = new RestfulServer(myFhirCtx);
|
myServer = new RestfulServer(myFhirContext);
|
||||||
|
|
||||||
PatientResourceProvider patientRp = new PatientResourceProvider();
|
PatientResourceProvider patientRp = new PatientResourceProvider();
|
||||||
patientRp.setDao(myPatientDao);
|
patientRp.setDao(myPatientDao);
|
||||||
|
|
|
@ -105,7 +105,6 @@ import org.hl7.fhir.dstu3.model.Task;
|
||||||
import org.hl7.fhir.dstu3.model.ValueSet;
|
import org.hl7.fhir.dstu3.model.ValueSet;
|
||||||
import org.hl7.fhir.exceptions.FHIRException;
|
import org.hl7.fhir.exceptions.FHIRException;
|
||||||
import org.hl7.fhir.instance.model.api.IBaseResource;
|
import org.hl7.fhir.instance.model.api.IBaseResource;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
|
||||||
import org.junit.jupiter.api.AfterEach;
|
import org.junit.jupiter.api.AfterEach;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.extension.ExtendWith;
|
import org.junit.jupiter.api.extension.ExtendWith;
|
||||||
|
@ -196,11 +195,10 @@ public abstract class BaseJpaDstu3Test extends BaseJpaTest {
|
||||||
@Autowired
|
@Autowired
|
||||||
@Qualifier("myEncounterDaoDstu3")
|
@Qualifier("myEncounterDaoDstu3")
|
||||||
protected IFhirResourceDao<Encounter> myEncounterDao;
|
protected IFhirResourceDao<Encounter> myEncounterDao;
|
||||||
// @PersistenceContext()
|
|
||||||
@Autowired
|
@Autowired
|
||||||
protected EntityManager myEntityManager;
|
protected EntityManager myEntityManager;
|
||||||
@Autowired
|
@Autowired
|
||||||
protected FhirContext myFhirCtx;
|
protected FhirContext myFhirContext;
|
||||||
@Autowired
|
@Autowired
|
||||||
@Qualifier("myGroupDaoDstu3")
|
@Qualifier("myGroupDaoDstu3")
|
||||||
protected IFhirResourceDao<Group> myGroupDao;
|
protected IFhirResourceDao<Group> myGroupDao;
|
||||||
|
@ -395,12 +393,12 @@ public abstract class BaseJpaDstu3Test extends BaseJpaTest {
|
||||||
|
|
||||||
@BeforeEach
|
@BeforeEach
|
||||||
public void beforeResetConfig() {
|
public void beforeResetConfig() {
|
||||||
myFhirCtx.setParserErrorHandler(new StrictErrorHandler());
|
myFhirContext.setParserErrorHandler(new StrictErrorHandler());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected FhirContext getContext() {
|
public FhirContext getFhirContext() {
|
||||||
return myFhirCtx;
|
return myFhirContext;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -414,7 +412,7 @@ public abstract class BaseJpaDstu3Test extends BaseJpaTest {
|
||||||
fail("Unable to load resource: " + resourceName);
|
fail("Unable to load resource: " + resourceName);
|
||||||
}
|
}
|
||||||
String string = IOUtils.toString(stream, StandardCharsets.UTF_8);
|
String string = IOUtils.toString(stream, StandardCharsets.UTF_8);
|
||||||
IParser newJsonParser = EncodingEnum.detectEncodingNoDefault(string).newParser(myFhirCtx);
|
IParser newJsonParser = EncodingEnum.detectEncodingNoDefault(string).newParser(myFhirContext);
|
||||||
return newJsonParser.parseResource(type, string);
|
return newJsonParser.parseResource(type, string);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -4,9 +4,9 @@ import ca.uhn.fhir.jpa.searchparam.SearchParameterMap;
|
||||||
import ca.uhn.fhir.rest.api.server.IBundleProvider;
|
import ca.uhn.fhir.rest.api.server.IBundleProvider;
|
||||||
import org.hl7.fhir.dstu3.model.StringType;
|
import org.hl7.fhir.dstu3.model.StringType;
|
||||||
import org.hl7.fhir.instance.model.api.IIdType;
|
import org.hl7.fhir.instance.model.api.IIdType;
|
||||||
import org.junit.jupiter.api.Test;
|
|
||||||
import org.junit.jupiter.api.AfterEach;
|
import org.junit.jupiter.api.AfterEach;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@ public class FhirResourceDaoCustomTypeDstu3Test extends BaseJpaDstu3Test {
|
||||||
|
|
||||||
@BeforeEach
|
@BeforeEach
|
||||||
public void before() {
|
public void before() {
|
||||||
myFhirCtx.setDefaultTypeForProfile(CustomObservationDstu3.PROFILE, CustomObservationDstu3.class);
|
myFhirContext.setDefaultTypeForProfile(CustomObservationDstu3.PROFILE, CustomObservationDstu3.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -39,6 +39,6 @@ public class FhirResourceDaoCustomTypeDstu3Test extends BaseJpaDstu3Test {
|
||||||
|
|
||||||
@AfterEach
|
@AfterEach
|
||||||
public void after() {
|
public void after() {
|
||||||
myFhirCtx.setDefaultTypeForProfile(CustomObservationDstu3.PROFILE, null);
|
myFhirContext.setDefaultTypeForProfile(CustomObservationDstu3.PROFILE, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +1,8 @@
|
||||||
package ca.uhn.fhir.jpa.dao.dstu3;
|
package ca.uhn.fhir.jpa.dao.dstu3;
|
||||||
|
|
||||||
import ca.uhn.fhir.jpa.api.model.DaoMethodOutcome;
|
import ca.uhn.fhir.jpa.api.model.DaoMethodOutcome;
|
||||||
import ca.uhn.fhir.util.TestUtil;
|
|
||||||
import org.apache.commons.io.IOUtils;
|
import org.apache.commons.io.IOUtils;
|
||||||
import org.hl7.fhir.dstu3.model.Bundle;
|
import org.hl7.fhir.dstu3.model.Bundle;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
|
@ -16,7 +14,7 @@ public class FhirResourceDaoDocumentDstu3Test extends BaseJpaDstu3Test {
|
||||||
@Test
|
@Test
|
||||||
public void testPostDocument() throws Exception {
|
public void testPostDocument() throws Exception {
|
||||||
String input = IOUtils.toString(getClass().getResourceAsStream("/sample-document.xml"), StandardCharsets.UTF_8);
|
String input = IOUtils.toString(getClass().getResourceAsStream("/sample-document.xml"), StandardCharsets.UTF_8);
|
||||||
Bundle inputBundle = myFhirCtx.newXmlParser().parseResource(Bundle.class, input);
|
Bundle inputBundle = myFhirContext.newXmlParser().parseResource(Bundle.class, input);
|
||||||
DaoMethodOutcome responseBundle = myBundleDao.create(inputBundle, mySrd);
|
DaoMethodOutcome responseBundle = myBundleDao.create(inputBundle, mySrd);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -34,7 +34,7 @@ public class FhirResourceDaoDstu3CodeSystemTest extends BaseJpaDstu3Test {
|
||||||
TermReindexingSvcImpl.setForceSaveDeferredAlwaysForUnitTest(true);
|
TermReindexingSvcImpl.setForceSaveDeferredAlwaysForUnitTest(true);
|
||||||
|
|
||||||
String input = IOUtils.toString(getClass().getResource("/dstu3_codesystem_complete.json"), StandardCharsets.UTF_8);
|
String input = IOUtils.toString(getClass().getResource("/dstu3_codesystem_complete.json"), StandardCharsets.UTF_8);
|
||||||
CodeSystem cs = myFhirCtx.newJsonParser().parseResource(CodeSystem.class, input);
|
CodeSystem cs = myFhirContext.newJsonParser().parseResource(CodeSystem.class, input);
|
||||||
myCodeSystemDao.create(cs, mySrd);
|
myCodeSystemDao.create(cs, mySrd);
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -1,8 +1,8 @@
|
||||||
package ca.uhn.fhir.jpa.dao.dstu3;
|
package ca.uhn.fhir.jpa.dao.dstu3;
|
||||||
|
|
||||||
import ca.uhn.fhir.context.support.TranslateConceptResult;
|
import ca.uhn.fhir.context.support.TranslateConceptResult;
|
||||||
import ca.uhn.fhir.jpa.api.model.TranslationRequest;
|
|
||||||
import ca.uhn.fhir.context.support.TranslateConceptResults;
|
import ca.uhn.fhir.context.support.TranslateConceptResults;
|
||||||
|
import ca.uhn.fhir.jpa.api.model.TranslationRequest;
|
||||||
import ca.uhn.fhir.jpa.entity.TermConceptMap;
|
import ca.uhn.fhir.jpa.entity.TermConceptMap;
|
||||||
import org.hl7.fhir.dstu3.model.ConceptMap;
|
import org.hl7.fhir.dstu3.model.ConceptMap;
|
||||||
import org.hl7.fhir.dstu3.model.Enumerations.PublicationStatus;
|
import org.hl7.fhir.dstu3.model.Enumerations.PublicationStatus;
|
||||||
|
@ -62,7 +62,7 @@ public class FhirResourceDaoDstu3ConceptMapTest extends BaseJpaDstu3Test {
|
||||||
public void testTranslateByCodeSystemsAndSourceCodeOneToMany() {
|
public void testTranslateByCodeSystemsAndSourceCodeOneToMany() {
|
||||||
ConceptMap conceptMap = myConceptMapDao.read(myConceptMapId);
|
ConceptMap conceptMap = myConceptMapDao.read(myConceptMapId);
|
||||||
|
|
||||||
ourLog.info("ConceptMap:\n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(conceptMap));
|
ourLog.info("ConceptMap:\n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(conceptMap));
|
||||||
|
|
||||||
new TransactionTemplate(myTxManager).execute(new TransactionCallbackWithoutResult() {
|
new TransactionTemplate(myTxManager).execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -36,7 +36,7 @@ public class FhirResourceDaoDstu3ContainedTest extends BaseJpaDstu3Test {
|
||||||
p2.addName().setFamily("MYFAMILY").addGiven("MYGIVEN");
|
p2.addName().setFamily("MYFAMILY").addGiven("MYGIVEN");
|
||||||
IIdType pid2 = myPatientDao.create(p2, mySrd).getId().toUnqualifiedVersionless();
|
IIdType pid2 = myPatientDao.create(p2, mySrd).getId().toUnqualifiedVersionless();
|
||||||
|
|
||||||
ourLog.info(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(o2));
|
ourLog.info(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(o2));
|
||||||
|
|
||||||
|
|
||||||
SearchParameterMap map = new SearchParameterMap();
|
SearchParameterMap map = new SearchParameterMap();
|
||||||
|
|
|
@ -96,7 +96,7 @@ public class FhirResourceDaoDstu3PhoneticSearchNoFtTest extends BaseJpaDstu3Test
|
||||||
patient.addName().addGiven(GALE);
|
patient.addName().addGiven(GALE);
|
||||||
patient.addAddress().addLine(ADDRESS);
|
patient.addAddress().addLine(ADDRESS);
|
||||||
patient.addTelecom().setValue(PHONE);
|
patient.addTelecom().setValue(PHONE);
|
||||||
ourLog.info(myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(patient));
|
ourLog.info(myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(patient));
|
||||||
|
|
||||||
IIdType pId = myPatientDao.create(patient, mySrd).getId().toUnqualifiedVersionless();
|
IIdType pId = myPatientDao.create(patient, mySrd).getId().toUnqualifiedVersionless();
|
||||||
|
|
||||||
|
@ -150,7 +150,7 @@ public class FhirResourceDaoDstu3PhoneticSearchNoFtTest extends BaseJpaDstu3Test
|
||||||
searchParameter.addExtension()
|
searchParameter.addExtension()
|
||||||
.setUrl(HapiExtensions.EXT_SEARCHPARAM_PHONETIC_ENCODER)
|
.setUrl(HapiExtensions.EXT_SEARCHPARAM_PHONETIC_ENCODER)
|
||||||
.setValue(new StringType(theEncoder.name()));
|
.setValue(new StringType(theEncoder.name()));
|
||||||
ourLog.info(myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(searchParameter));
|
ourLog.info(myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(searchParameter));
|
||||||
mySearchParameterDao.create(searchParameter, mySrd).getId().toUnqualifiedVersionless();
|
mySearchParameterDao.create(searchParameter, mySrd).getId().toUnqualifiedVersionless();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -14,13 +14,34 @@ import ca.uhn.fhir.rest.param.TokenParam;
|
||||||
import ca.uhn.fhir.rest.server.exceptions.InternalErrorException;
|
import ca.uhn.fhir.rest.server.exceptions.InternalErrorException;
|
||||||
import ca.uhn.fhir.rest.server.exceptions.InvalidRequestException;
|
import ca.uhn.fhir.rest.server.exceptions.InvalidRequestException;
|
||||||
import ca.uhn.fhir.rest.server.exceptions.UnprocessableEntityException;
|
import ca.uhn.fhir.rest.server.exceptions.UnprocessableEntityException;
|
||||||
import ca.uhn.fhir.util.TestUtil;
|
import org.hl7.fhir.dstu3.model.Appointment;
|
||||||
import org.hl7.fhir.dstu3.model.*;
|
|
||||||
import org.hl7.fhir.dstu3.model.Appointment.AppointmentStatus;
|
import org.hl7.fhir.dstu3.model.Appointment.AppointmentStatus;
|
||||||
|
import org.hl7.fhir.dstu3.model.CodeType;
|
||||||
|
import org.hl7.fhir.dstu3.model.CodeableConcept;
|
||||||
|
import org.hl7.fhir.dstu3.model.Coding;
|
||||||
|
import org.hl7.fhir.dstu3.model.Communication;
|
||||||
|
import org.hl7.fhir.dstu3.model.Condition;
|
||||||
|
import org.hl7.fhir.dstu3.model.DateTimeType;
|
||||||
|
import org.hl7.fhir.dstu3.model.DateType;
|
||||||
|
import org.hl7.fhir.dstu3.model.DecimalType;
|
||||||
|
import org.hl7.fhir.dstu3.model.Enumerations;
|
||||||
import org.hl7.fhir.dstu3.model.Enumerations.AdministrativeGender;
|
import org.hl7.fhir.dstu3.model.Enumerations.AdministrativeGender;
|
||||||
|
import org.hl7.fhir.dstu3.model.Extension;
|
||||||
|
import org.hl7.fhir.dstu3.model.IntegerType;
|
||||||
|
import org.hl7.fhir.dstu3.model.Medication;
|
||||||
|
import org.hl7.fhir.dstu3.model.MedicationAdministration;
|
||||||
|
import org.hl7.fhir.dstu3.model.MedicationRequest;
|
||||||
|
import org.hl7.fhir.dstu3.model.MedicationStatement;
|
||||||
|
import org.hl7.fhir.dstu3.model.Observation;
|
||||||
|
import org.hl7.fhir.dstu3.model.Patient;
|
||||||
|
import org.hl7.fhir.dstu3.model.Practitioner;
|
||||||
|
import org.hl7.fhir.dstu3.model.ProcedureRequest;
|
||||||
|
import org.hl7.fhir.dstu3.model.Reference;
|
||||||
|
import org.hl7.fhir.dstu3.model.SearchParameter;
|
||||||
|
import org.hl7.fhir.dstu3.model.Specimen;
|
||||||
|
import org.hl7.fhir.dstu3.model.StringType;
|
||||||
import org.hl7.fhir.exceptions.FHIRException;
|
import org.hl7.fhir.exceptions.FHIRException;
|
||||||
import org.hl7.fhir.instance.model.api.IIdType;
|
import org.hl7.fhir.instance.model.api.IIdType;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
|
||||||
import org.junit.jupiter.api.AfterEach;
|
import org.junit.jupiter.api.AfterEach;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
@ -158,7 +179,7 @@ public class FhirResourceDaoDstu3SearchCustomSearchParamTest extends BaseJpaDstu
|
||||||
pract.addName().setFamily("PRACT");
|
pract.addName().setFamily("PRACT");
|
||||||
myPractitionerDao.update(pract);
|
myPractitionerDao.update(pract);
|
||||||
|
|
||||||
Patient pat = myFhirCtx.newJsonParser().parseResource(Patient.class, loadClasspath("/dstu3_custom_resource_patient.json"));
|
Patient pat = myFhirContext.newJsonParser().parseResource(Patient.class, loadClasspath("/dstu3_custom_resource_patient.json"));
|
||||||
IIdType pid = myPatientDao.create(pat, mySrd).getId().toUnqualifiedVersionless();
|
IIdType pid = myPatientDao.create(pat, mySrd).getId().toUnqualifiedVersionless();
|
||||||
|
|
||||||
SearchParameterMap params = new SearchParameterMap();
|
SearchParameterMap params = new SearchParameterMap();
|
||||||
|
@ -928,7 +949,7 @@ public class FhirResourceDaoDstu3SearchCustomSearchParamTest extends BaseJpaDstu
|
||||||
sp.setExpression("Observation.specimen.resolve().receivedTime");
|
sp.setExpression("Observation.specimen.resolve().receivedTime");
|
||||||
sp.setXpathUsage(SearchParameter.XPathUsageType.NORMAL);
|
sp.setXpathUsage(SearchParameter.XPathUsageType.NORMAL);
|
||||||
sp.setStatus(Enumerations.PublicationStatus.ACTIVE);
|
sp.setStatus(Enumerations.PublicationStatus.ACTIVE);
|
||||||
ourLog.info(myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(sp));
|
ourLog.info(myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(sp));
|
||||||
mySearchParameterDao.create(sp);
|
mySearchParameterDao.create(sp);
|
||||||
|
|
||||||
mySearchParamRegistry.forceRefresh();
|
mySearchParamRegistry.forceRefresh();
|
||||||
|
|
|
@ -40,7 +40,7 @@ public class FhirResourceDaoDstu3SearchDistanceTest extends BaseJpaDstu3Test {
|
||||||
SearchParameterMap map = myMatchUrlService.translateMatchUrl(
|
SearchParameterMap map = myMatchUrlService.translateMatchUrl(
|
||||||
"Location?" +
|
"Location?" +
|
||||||
Location.SP_NEAR + "=" + latitude + ":" + longitude,
|
Location.SP_NEAR + "=" + latitude + ":" + longitude,
|
||||||
myFhirCtx.getResourceDefinition("Location"));
|
myFhirContext.getResourceDefinition("Location"));
|
||||||
|
|
||||||
List<String> ids = toUnqualifiedVersionlessIdValues(myLocationDao.search(map));
|
List<String> ids = toUnqualifiedVersionlessIdValues(myLocationDao.search(map));
|
||||||
assertThat(ids, contains(locId));
|
assertThat(ids, contains(locId));
|
||||||
|
@ -60,7 +60,7 @@ public class FhirResourceDaoDstu3SearchDistanceTest extends BaseJpaDstu3Test {
|
||||||
Location.SP_NEAR + "=" + latitude + ":" + longitude +
|
Location.SP_NEAR + "=" + latitude + ":" + longitude +
|
||||||
"&" +
|
"&" +
|
||||||
Location.SP_NEAR_DISTANCE + "=0||",
|
Location.SP_NEAR_DISTANCE + "=0||",
|
||||||
myFhirCtx.getResourceDefinition("Location"));
|
myFhirContext.getResourceDefinition("Location"));
|
||||||
|
|
||||||
List<String> ids = toUnqualifiedVersionlessIdValues(myLocationDao.search(map));
|
List<String> ids = toUnqualifiedVersionlessIdValues(myLocationDao.search(map));
|
||||||
assertThat(ids, contains(locId));
|
assertThat(ids, contains(locId));
|
||||||
|
@ -81,7 +81,7 @@ public class FhirResourceDaoDstu3SearchDistanceTest extends BaseJpaDstu3Test {
|
||||||
"Location?" +
|
"Location?" +
|
||||||
Location.SP_NEAR + "=" + CoordCalculatorTest.LATITUDE_CHIN + ":" + CoordCalculatorTest.LONGITUDE_CHIN +
|
Location.SP_NEAR + "=" + CoordCalculatorTest.LATITUDE_CHIN + ":" + CoordCalculatorTest.LONGITUDE_CHIN +
|
||||||
"&" +
|
"&" +
|
||||||
Location.SP_NEAR_DISTANCE + "=" + bigEnoughDistance + "|http://unitsofmeasure.org|km", myFhirCtx.getResourceDefinition("Location"));
|
Location.SP_NEAR_DISTANCE + "=" + bigEnoughDistance + "|http://unitsofmeasure.org|km", myFhirContext.getResourceDefinition("Location"));
|
||||||
|
|
||||||
List<String> ids = toUnqualifiedVersionlessIdValues(myLocationDao.search(map));
|
List<String> ids = toUnqualifiedVersionlessIdValues(myLocationDao.search(map));
|
||||||
assertThat(ids, contains(locId));
|
assertThat(ids, contains(locId));
|
||||||
|
@ -93,7 +93,7 @@ public class FhirResourceDaoDstu3SearchDistanceTest extends BaseJpaDstu3Test {
|
||||||
"Location?" +
|
"Location?" +
|
||||||
Location.SP_NEAR + "=" + CoordCalculatorTest.LATITUDE_CHIN + ":" + CoordCalculatorTest.LONGITUDE_CHIN +
|
Location.SP_NEAR + "=" + CoordCalculatorTest.LATITUDE_CHIN + ":" + CoordCalculatorTest.LONGITUDE_CHIN +
|
||||||
"&" +
|
"&" +
|
||||||
Location.SP_NEAR_DISTANCE + "=" + tooSmallDistance + "|http://unitsofmeasure.org|km", myFhirCtx.getResourceDefinition("Location"));
|
Location.SP_NEAR_DISTANCE + "=" + tooSmallDistance + "|http://unitsofmeasure.org|km", myFhirContext.getResourceDefinition("Location"));
|
||||||
|
|
||||||
List<String> ids = toUnqualifiedVersionlessIdValues(myLocationDao.search(map));
|
List<String> ids = toUnqualifiedVersionlessIdValues(myLocationDao.search(map));
|
||||||
assertThat(ids.size(), is(0));
|
assertThat(ids.size(), is(0));
|
||||||
|
|
|
@ -261,10 +261,10 @@ public class FhirResourceDaoDstu3SearchNoFtTest extends BaseJpaDstu3Test {
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void testEverythingWithLargeSet() throws Exception {
|
public void testEverythingWithLargeSet() throws Exception {
|
||||||
myFhirCtx.setParserErrorHandler(new StrictErrorHandler());
|
myFhirContext.setParserErrorHandler(new StrictErrorHandler());
|
||||||
|
|
||||||
String inputString = IOUtils.toString(getClass().getResourceAsStream("/david_big_bundle.json"), StandardCharsets.UTF_8);
|
String inputString = IOUtils.toString(getClass().getResourceAsStream("/david_big_bundle.json"), StandardCharsets.UTF_8);
|
||||||
Bundle inputBundle = myFhirCtx.newJsonParser().parseResource(Bundle.class, inputString);
|
Bundle inputBundle = myFhirContext.newJsonParser().parseResource(Bundle.class, inputString);
|
||||||
inputBundle.setType(BundleType.TRANSACTION);
|
inputBundle.setType(BundleType.TRANSACTION);
|
||||||
|
|
||||||
Set<String> allIds = new TreeSet<>();
|
Set<String> allIds = new TreeSet<>();
|
||||||
|
@ -329,7 +329,7 @@ public class FhirResourceDaoDstu3SearchNoFtTest extends BaseJpaDstu3Test {
|
||||||
map.setLoadSynchronous(true);
|
map.setLoadSynchronous(true);
|
||||||
|
|
||||||
ReferenceParam referenceParam = new ReferenceParam();
|
ReferenceParam referenceParam = new ReferenceParam();
|
||||||
referenceParam.setValueAsQueryToken(myFhirCtx, "subject", "._has:Group:member:_id", "Group/G");
|
referenceParam.setValueAsQueryToken(myFhirContext, "subject", "._has:Group:member:_id", "Group/G");
|
||||||
map.add("subject", referenceParam);
|
map.add("subject", referenceParam);
|
||||||
List<String> actual = toUnqualifiedVersionlessIdValues(myDiagnosticReportDao.search(map));
|
List<String> actual = toUnqualifiedVersionlessIdValues(myDiagnosticReportDao.search(map));
|
||||||
assertThat(actual, containsInAnyOrder("DiagnosticReport/DR"));
|
assertThat(actual, containsInAnyOrder("DiagnosticReport/DR"));
|
||||||
|
@ -671,7 +671,7 @@ public class FhirResourceDaoDstu3SearchNoFtTest extends BaseJpaDstu3Test {
|
||||||
public void testIndexWithUtf8Chars() throws IOException {
|
public void testIndexWithUtf8Chars() throws IOException {
|
||||||
String input = IOUtils.toString(getClass().getResourceAsStream("/bug454_utf8.json"), StandardCharsets.UTF_8);
|
String input = IOUtils.toString(getClass().getResourceAsStream("/bug454_utf8.json"), StandardCharsets.UTF_8);
|
||||||
|
|
||||||
CodeSystem cs = (CodeSystem) myFhirCtx.newJsonParser().parseResource(input);
|
CodeSystem cs = (CodeSystem) myFhirContext.newJsonParser().parseResource(input);
|
||||||
myCodeSystemDao.create(cs);
|
myCodeSystemDao.create(cs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2920,7 +2920,7 @@ public class FhirResourceDaoDstu3SearchNoFtTest extends BaseJpaDstu3Test {
|
||||||
value = myDeviceDao.search(new SearchParameterMap());
|
value = myDeviceDao.search(new SearchParameterMap());
|
||||||
if (value.size() > 0) {
|
if (value.size() > 0) {
|
||||||
ourLog.info("Found: " + (value.getResources(0, 1).get(0).getIdElement()));
|
ourLog.info("Found: " + (value.getResources(0, 1).get(0).getIdElement()));
|
||||||
fail(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(value.getResources(0, 1).get(0)));
|
fail(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(value.getResources(0, 1).get(0)));
|
||||||
}
|
}
|
||||||
assertEquals(0, value.size().intValue());
|
assertEquals(0, value.size().intValue());
|
||||||
|
|
||||||
|
@ -3252,7 +3252,7 @@ public class FhirResourceDaoDstu3SearchNoFtTest extends BaseJpaDstu3Test {
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testSearchWithUriParamBelow() throws Exception {
|
public void testSearchWithUriParamBelow() throws Exception {
|
||||||
myFhirCtx.setParserErrorHandler(new StrictErrorHandler());
|
myFhirContext.setParserErrorHandler(new StrictErrorHandler());
|
||||||
|
|
||||||
Class<ValueSet> type = ValueSet.class;
|
Class<ValueSet> type = ValueSet.class;
|
||||||
String resourceName = "/valueset-dstu2.json";
|
String resourceName = "/valueset-dstu2.json";
|
||||||
|
|
|
@ -1,8 +1,6 @@
|
||||||
package ca.uhn.fhir.jpa.dao.dstu3;
|
package ca.uhn.fhir.jpa.dao.dstu3;
|
||||||
|
|
||||||
import ca.uhn.fhir.util.TestUtil;
|
|
||||||
import org.hl7.fhir.dstu3.model.StructureDefinition;
|
import org.hl7.fhir.dstu3.model.StructureDefinition;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
|
||||||
import org.junit.jupiter.api.AfterEach;
|
import org.junit.jupiter.api.AfterEach;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
|
@ -24,7 +22,7 @@ public class FhirResourceDaoDstu3StructureDefinitionTest extends BaseJpaDstu3Tes
|
||||||
assertEquals(0, sd.getSnapshot().getElement().size());
|
assertEquals(0, sd.getSnapshot().getElement().size());
|
||||||
|
|
||||||
StructureDefinition output = myStructureDefinitionDao.generateSnapshot(sd, "http://foo", null, "THE BEST PROFILE");
|
StructureDefinition output = myStructureDefinitionDao.generateSnapshot(sd, "http://foo", null, "THE BEST PROFILE");
|
||||||
ourLog.info(myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(output));
|
ourLog.info(myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(output));
|
||||||
|
|
||||||
assertEquals(54, output.getSnapshot().getElement().size());
|
assertEquals(54, output.getSnapshot().getElement().size());
|
||||||
}
|
}
|
||||||
|
|
|
@ -221,11 +221,11 @@ public class FhirResourceDaoDstu3TerminologyTest extends BaseJpaDstu3Test {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void logAndValidateValueSet(ValueSet theResult) {
|
private void logAndValidateValueSet(ValueSet theResult) {
|
||||||
IParser parser = myFhirCtx.newXmlParser().setPrettyPrint(true);
|
IParser parser = myFhirContext.newXmlParser().setPrettyPrint(true);
|
||||||
String encoded = parser.encodeResourceToString(theResult);
|
String encoded = parser.encodeResourceToString(theResult);
|
||||||
ourLog.info(encoded);
|
ourLog.info(encoded);
|
||||||
|
|
||||||
FhirValidator validator = myFhirCtx.newValidator();
|
FhirValidator validator = myFhirContext.newValidator();
|
||||||
validator.setValidateAgainstStandardSchema(true);
|
validator.setValidateAgainstStandardSchema(true);
|
||||||
validator.setValidateAgainstStandardSchematron(true);
|
validator.setValidateAgainstStandardSchematron(true);
|
||||||
ValidationResult result = validator.validateWithResult(theResult);
|
ValidationResult result = validator.validateWithResult(theResult);
|
||||||
|
@ -332,7 +332,7 @@ public class FhirResourceDaoDstu3TerminologyTest extends BaseJpaDstu3Test {
|
||||||
|
|
||||||
|
|
||||||
ValueSet result = myValueSetDao.expandByIdentifier("http://hl7.org/fhir/ValueSet/doc-typecodes", new ValueSetExpansionOptions().setFilter(""));
|
ValueSet result = myValueSetDao.expandByIdentifier("http://hl7.org/fhir/ValueSet/doc-typecodes", new ValueSetExpansionOptions().setFilter(""));
|
||||||
ourLog.info(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(result));
|
ourLog.info(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(result));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -673,7 +673,7 @@ public class FhirResourceDaoDstu3TerminologyTest extends BaseJpaDstu3Test {
|
||||||
|
|
||||||
assertEquals(4, result.getExpansion().getContains().size());
|
assertEquals(4, result.getExpansion().getContains().size());
|
||||||
|
|
||||||
String encoded = myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(result);
|
String encoded = myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(result);
|
||||||
assertThat(encoded, containsStringIgnoringCase("<code value=\"childAAB\"/>"));
|
assertThat(encoded, containsStringIgnoringCase("<code value=\"childAAB\"/>"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -32,7 +32,6 @@ import ca.uhn.fhir.rest.server.exceptions.ResourceGoneException;
|
||||||
import ca.uhn.fhir.rest.server.exceptions.ResourceNotFoundException;
|
import ca.uhn.fhir.rest.server.exceptions.ResourceNotFoundException;
|
||||||
import ca.uhn.fhir.rest.server.exceptions.ResourceVersionConflictException;
|
import ca.uhn.fhir.rest.server.exceptions.ResourceVersionConflictException;
|
||||||
import ca.uhn.fhir.rest.server.exceptions.UnprocessableEntityException;
|
import ca.uhn.fhir.rest.server.exceptions.UnprocessableEntityException;
|
||||||
|
|
||||||
import com.google.common.collect.Lists;
|
import com.google.common.collect.Lists;
|
||||||
import org.apache.commons.io.IOUtils;
|
import org.apache.commons.io.IOUtils;
|
||||||
import org.apache.commons.lang3.RandomStringUtils;
|
import org.apache.commons.lang3.RandomStringUtils;
|
||||||
|
@ -100,6 +99,7 @@ import java.util.List;
|
||||||
import java.util.Set;
|
import java.util.Set;
|
||||||
|
|
||||||
import static org.apache.commons.lang3.StringUtils.defaultString;
|
import static org.apache.commons.lang3.StringUtils.defaultString;
|
||||||
|
import static org.hamcrest.MatcherAssert.assertThat;
|
||||||
import static org.hamcrest.Matchers.contains;
|
import static org.hamcrest.Matchers.contains;
|
||||||
import static org.hamcrest.Matchers.containsInAnyOrder;
|
import static org.hamcrest.Matchers.containsInAnyOrder;
|
||||||
import static org.hamcrest.Matchers.containsString;
|
import static org.hamcrest.Matchers.containsString;
|
||||||
|
@ -114,7 +114,6 @@ import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||||
import static org.junit.jupiter.api.Assertions.assertNotEquals;
|
import static org.junit.jupiter.api.Assertions.assertNotEquals;
|
||||||
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
import static org.junit.jupiter.api.Assertions.assertNotNull;
|
||||||
import static org.junit.jupiter.api.Assertions.assertNull;
|
import static org.junit.jupiter.api.Assertions.assertNull;
|
||||||
import static org.hamcrest.MatcherAssert.assertThat;
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||||
import static org.junit.jupiter.api.Assertions.fail;
|
import static org.junit.jupiter.api.Assertions.fail;
|
||||||
|
|
||||||
|
@ -464,11 +463,11 @@ public class FhirResourceDaoDstu3Test extends BaseJpaDstu3Test {
|
||||||
String vsContents;
|
String vsContents;
|
||||||
vsContents = IOUtils.toString(FhirResourceDaoDstu3Test.class.getResourceAsStream("/org/hl7/fhir/dstu3/model/profile/" + name + ".xml"), StandardCharsets.UTF_8);
|
vsContents = IOUtils.toString(FhirResourceDaoDstu3Test.class.getResourceAsStream("/org/hl7/fhir/dstu3/model/profile/" + name + ".xml"), StandardCharsets.UTF_8);
|
||||||
|
|
||||||
bundle = myFhirCtx.newXmlParser().parseResource(org.hl7.fhir.dstu3.model.Bundle.class, vsContents);
|
bundle = myFhirContext.newXmlParser().parseResource(org.hl7.fhir.dstu3.model.Bundle.class, vsContents);
|
||||||
for (BundleEntryComponent i : bundle.getEntry()) {
|
for (BundleEntryComponent i : bundle.getEntry()) {
|
||||||
org.hl7.fhir.dstu3.model.Resource next = i.getResource();
|
org.hl7.fhir.dstu3.model.Resource next = i.getResource();
|
||||||
|
|
||||||
ourLog.debug(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(next));
|
ourLog.debug(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(next));
|
||||||
if (next instanceof StructureDefinition) {
|
if (next instanceof StructureDefinition) {
|
||||||
myStructureDefinitionDao.update((StructureDefinition) next, mySrd);
|
myStructureDefinitionDao.update((StructureDefinition) next, mySrd);
|
||||||
} else if (next instanceof CompartmentDefinition) {
|
} else if (next instanceof CompartmentDefinition) {
|
||||||
|
@ -617,7 +616,7 @@ public class FhirResourceDaoDstu3Test extends BaseJpaDstu3Test {
|
||||||
" </NamingSystem>";
|
" </NamingSystem>";
|
||||||
//@formatter:on
|
//@formatter:on
|
||||||
|
|
||||||
NamingSystem res = myFhirCtx.newXmlParser().parseResource(NamingSystem.class, input);
|
NamingSystem res = myFhirContext.newXmlParser().parseResource(NamingSystem.class, input);
|
||||||
IIdType id = myNamingSystemDao.create(res, mySrd).getId().toUnqualifiedVersionless();
|
IIdType id = myNamingSystemDao.create(res, mySrd).getId().toUnqualifiedVersionless();
|
||||||
|
|
||||||
assertThat(toUnqualifiedVersionlessIdValues(myNamingSystemDao.search(new SearchParameterMap(NamingSystem.SP_NAME, new StringParam("NDF")).setLoadSynchronous(true))), org.hamcrest.Matchers.contains(id.getValue()));
|
assertThat(toUnqualifiedVersionlessIdValues(myNamingSystemDao.search(new SearchParameterMap(NamingSystem.SP_NAME, new StringParam("NDF")).setLoadSynchronous(true))), org.hamcrest.Matchers.contains(id.getValue()));
|
||||||
|
@ -1918,7 +1917,7 @@ public class FhirResourceDaoDstu3Test extends BaseJpaDstu3Test {
|
||||||
Set<ResourcePersistentId> val = myOrganizationDao.searchForIds(new SearchParameterMap("name", new StringParam("P")), null);
|
Set<ResourcePersistentId> val = myOrganizationDao.searchForIds(new SearchParameterMap("name", new StringParam("P")), null);
|
||||||
int initial = val.size();
|
int initial = val.size();
|
||||||
|
|
||||||
Organization org = myFhirCtx.newJsonParser().parseResource(Organization.class, inputStr);
|
Organization org = myFhirContext.newJsonParser().parseResource(Organization.class, inputStr);
|
||||||
myOrganizationDao.create(org, mySrd);
|
myOrganizationDao.create(org, mySrd);
|
||||||
|
|
||||||
val = myOrganizationDao.searchForIds(new SearchParameterMap("name", new StringParam("P")), null);
|
val = myOrganizationDao.searchForIds(new SearchParameterMap("name", new StringParam("P")), null);
|
||||||
|
@ -2555,7 +2554,7 @@ public class FhirResourceDaoDstu3Test extends BaseJpaDstu3Test {
|
||||||
|
|
||||||
oid1 = myObservationDao.create(obs, mySrd).getId().toUnqualifiedVersionless();
|
oid1 = myObservationDao.create(obs, mySrd).getId().toUnqualifiedVersionless();
|
||||||
|
|
||||||
ourLog.info("Observation: \n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(obs));
|
ourLog.info("Observation: \n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(obs));
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -2567,7 +2566,7 @@ public class FhirResourceDaoDstu3Test extends BaseJpaDstu3Test {
|
||||||
|
|
||||||
oid2 = myObservationDao.create(obs, mySrd).getId().toUnqualifiedVersionless();
|
oid2 = myObservationDao.create(obs, mySrd).getId().toUnqualifiedVersionless();
|
||||||
|
|
||||||
ourLog.info("Observation: \n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(obs));
|
ourLog.info("Observation: \n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(obs));
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -2579,7 +2578,7 @@ public class FhirResourceDaoDstu3Test extends BaseJpaDstu3Test {
|
||||||
|
|
||||||
oid3 = myObservationDao.create(obs, mySrd).getId().toUnqualifiedVersionless();
|
oid3 = myObservationDao.create(obs, mySrd).getId().toUnqualifiedVersionless();
|
||||||
|
|
||||||
ourLog.info("Observation: \n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(obs));
|
ourLog.info("Observation: \n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(obs));
|
||||||
}
|
}
|
||||||
|
|
||||||
{
|
{
|
||||||
|
@ -2591,7 +2590,7 @@ public class FhirResourceDaoDstu3Test extends BaseJpaDstu3Test {
|
||||||
|
|
||||||
oid4 = myObservationDao.create(obs, mySrd).getId().toUnqualifiedVersionless();
|
oid4 = myObservationDao.create(obs, mySrd).getId().toUnqualifiedVersionless();
|
||||||
|
|
||||||
ourLog.info("Observation: \n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(obs));
|
ourLog.info("Observation: \n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(obs));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -3150,7 +3149,7 @@ public class FhirResourceDaoDstu3Test extends BaseJpaDstu3Test {
|
||||||
IIdType orgId = myOrganizationDao.create(org, mySrd).getId();
|
IIdType orgId = myOrganizationDao.create(org, mySrd).getId();
|
||||||
|
|
||||||
Organization returned = myOrganizationDao.read(orgId, mySrd);
|
Organization returned = myOrganizationDao.read(orgId, mySrd);
|
||||||
String val = myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(returned);
|
String val = myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(returned);
|
||||||
|
|
||||||
ourLog.info(val);
|
ourLog.info(val);
|
||||||
assertThat(val, containsString("<name value=\"測試醫院\"/>"));
|
assertThat(val, containsString("<name value=\"測試醫院\"/>"));
|
||||||
|
|
|
@ -1,9 +1,8 @@
|
||||||
package ca.uhn.fhir.jpa.dao.dstu3;
|
package ca.uhn.fhir.jpa.dao.dstu3;
|
||||||
|
|
||||||
import ca.uhn.fhir.context.support.IValidationSupport;
|
import ca.uhn.fhir.context.support.IValidationSupport;
|
||||||
import ca.uhn.fhir.jpa.config.BaseConfig;
|
import ca.uhn.fhir.jpa.config.JpaConfig;
|
||||||
import ca.uhn.fhir.jpa.dao.JpaPersistedResourceValidationSupport;
|
import ca.uhn.fhir.jpa.dao.JpaPersistedResourceValidationSupport;
|
||||||
import ca.uhn.fhir.jpa.util.TestUtil;
|
|
||||||
import ca.uhn.fhir.rest.api.EncodingEnum;
|
import ca.uhn.fhir.rest.api.EncodingEnum;
|
||||||
import ca.uhn.fhir.rest.api.MethodOutcome;
|
import ca.uhn.fhir.rest.api.MethodOutcome;
|
||||||
import ca.uhn.fhir.rest.api.ValidationModeEnum;
|
import ca.uhn.fhir.rest.api.ValidationModeEnum;
|
||||||
|
@ -16,14 +15,27 @@ import ca.uhn.fhir.validation.IValidatorModule;
|
||||||
import org.apache.commons.io.IOUtils;
|
import org.apache.commons.io.IOUtils;
|
||||||
import org.hl7.fhir.common.hapi.validation.support.CachingValidationSupport;
|
import org.hl7.fhir.common.hapi.validation.support.CachingValidationSupport;
|
||||||
import org.hl7.fhir.common.hapi.validation.validator.FhirInstanceValidator;
|
import org.hl7.fhir.common.hapi.validation.validator.FhirInstanceValidator;
|
||||||
import org.hl7.fhir.dstu3.model.*;
|
import org.hl7.fhir.dstu3.model.Bundle;
|
||||||
import org.hl7.fhir.dstu3.model.Bundle.BundleEntryComponent;
|
import org.hl7.fhir.dstu3.model.Bundle.BundleEntryComponent;
|
||||||
|
import org.hl7.fhir.dstu3.model.CodeSystem;
|
||||||
|
import org.hl7.fhir.dstu3.model.Coding;
|
||||||
|
import org.hl7.fhir.dstu3.model.IdType;
|
||||||
|
import org.hl7.fhir.dstu3.model.Narrative;
|
||||||
|
import org.hl7.fhir.dstu3.model.Observation;
|
||||||
import org.hl7.fhir.dstu3.model.Observation.ObservationStatus;
|
import org.hl7.fhir.dstu3.model.Observation.ObservationStatus;
|
||||||
|
import org.hl7.fhir.dstu3.model.OperationOutcome;
|
||||||
|
import org.hl7.fhir.dstu3.model.Organization;
|
||||||
|
import org.hl7.fhir.dstu3.model.Patient;
|
||||||
|
import org.hl7.fhir.dstu3.model.Questionnaire;
|
||||||
|
import org.hl7.fhir.dstu3.model.QuestionnaireResponse;
|
||||||
|
import org.hl7.fhir.dstu3.model.Reference;
|
||||||
|
import org.hl7.fhir.dstu3.model.StringType;
|
||||||
|
import org.hl7.fhir.dstu3.model.StructureDefinition;
|
||||||
|
import org.hl7.fhir.dstu3.model.ValueSet;
|
||||||
import org.hl7.fhir.instance.model.api.IBaseResource;
|
import org.hl7.fhir.instance.model.api.IBaseResource;
|
||||||
import org.hl7.fhir.instance.model.api.IIdType;
|
import org.hl7.fhir.instance.model.api.IIdType;
|
||||||
import org.hl7.fhir.r5.utils.validation.constants.BestPracticeWarningLevel;
|
import org.hl7.fhir.r5.utils.validation.constants.BestPracticeWarningLevel;
|
||||||
import org.junit.jupiter.api.AfterEach;
|
import org.junit.jupiter.api.AfterEach;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
|
||||||
import org.junit.jupiter.api.Disabled;
|
import org.junit.jupiter.api.Disabled;
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
@ -34,9 +46,9 @@ import java.io.IOException;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
|
import static org.hamcrest.MatcherAssert.assertThat;
|
||||||
import static org.hamcrest.Matchers.containsInAnyOrder;
|
import static org.hamcrest.Matchers.containsInAnyOrder;
|
||||||
import static org.hamcrest.Matchers.containsString;
|
import static org.hamcrest.Matchers.containsString;
|
||||||
import static org.hamcrest.MatcherAssert.assertThat;
|
|
||||||
import static org.junit.jupiter.api.Assertions.fail;
|
import static org.junit.jupiter.api.Assertions.fail;
|
||||||
|
|
||||||
public class FhirResourceDaoDstu3ValidateTest extends BaseJpaDstu3Test {
|
public class FhirResourceDaoDstu3ValidateTest extends BaseJpaDstu3Test {
|
||||||
|
@ -48,7 +60,7 @@ public class FhirResourceDaoDstu3ValidateTest extends BaseJpaDstu3Test {
|
||||||
@Autowired
|
@Autowired
|
||||||
private FhirInstanceValidator myFhirInstanceValidator;
|
private FhirInstanceValidator myFhirInstanceValidator;
|
||||||
@Autowired
|
@Autowired
|
||||||
@Qualifier(BaseConfig.JPA_VALIDATION_SUPPORT)
|
@Qualifier(JpaConfig.JPA_VALIDATION_SUPPORT)
|
||||||
private IValidationSupport myPersistedResourceValidationSupport;
|
private IValidationSupport myPersistedResourceValidationSupport;
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -65,9 +77,9 @@ public class FhirResourceDaoDstu3ValidateTest extends BaseJpaDstu3Test {
|
||||||
qr.addItem().setLinkId("A").addAnswer().setValue(new StringType("AAA"));
|
qr.addItem().setLinkId("A").addAnswer().setValue(new StringType("AAA"));
|
||||||
|
|
||||||
MethodOutcome results = myQuestionnaireResponseDao.validate(qr, null, null, null, null, null, null);
|
MethodOutcome results = myQuestionnaireResponseDao.validate(qr, null, null, null, null, null, null);
|
||||||
ourLog.info(myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(results.getOperationOutcome()));
|
ourLog.info(myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(results.getOperationOutcome()));
|
||||||
} catch (PreconditionFailedException e) {
|
} catch (PreconditionFailedException e) {
|
||||||
ourLog.info(myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(e.getOperationOutcome()));
|
ourLog.info(myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(e.getOperationOutcome()));
|
||||||
fail(e.toString());
|
fail(e.toString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -83,7 +95,7 @@ public class FhirResourceDaoDstu3ValidateTest extends BaseJpaDstu3Test {
|
||||||
qr.addItem().setLinkId("A").addAnswer().setValue(new StringType("AAA"));
|
qr.addItem().setLinkId("A").addAnswer().setValue(new StringType("AAA"));
|
||||||
|
|
||||||
MethodOutcome results = myQuestionnaireResponseDao.validate(qr, null, null, null, null, null, null);
|
MethodOutcome results = myQuestionnaireResponseDao.validate(qr, null, null, null, null, null, null);
|
||||||
ourLog.info(myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(results.getOperationOutcome()));
|
ourLog.info(myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(results.getOperationOutcome()));
|
||||||
|
|
||||||
ourLog.info("Clearing cache");
|
ourLog.info("Clearing cache");
|
||||||
myValidationSupport.invalidateCaches();
|
myValidationSupport.invalidateCaches();
|
||||||
|
@ -94,7 +106,7 @@ public class FhirResourceDaoDstu3ValidateTest extends BaseJpaDstu3Test {
|
||||||
myQuestionnaireResponseDao.validate(qr, null, null, null, null, null, null);
|
myQuestionnaireResponseDao.validate(qr, null, null, null, null, null, null);
|
||||||
fail();
|
fail();
|
||||||
} catch (PreconditionFailedException e) {
|
} catch (PreconditionFailedException e) {
|
||||||
ourLog.info(myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(e.getOperationOutcome()));
|
ourLog.info(myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(e.getOperationOutcome()));
|
||||||
// good
|
// good
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -110,7 +122,7 @@ public class FhirResourceDaoDstu3ValidateTest extends BaseJpaDstu3Test {
|
||||||
myValueSetDao.create(vs);
|
myValueSetDao.create(vs);
|
||||||
|
|
||||||
ValueSet expansion = myValueSetDao.expandByIdentifier("http://ccim.on.ca/fhir/iar/ValueSet/iar-citizenship-status", null);
|
ValueSet expansion = myValueSetDao.expandByIdentifier("http://ccim.on.ca/fhir/iar/ValueSet/iar-citizenship-status", null);
|
||||||
ourLog.info(myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(expansion));
|
ourLog.info(myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(expansion));
|
||||||
|
|
||||||
assertThat(expansion.getExpansion().getContains().stream().map(t->t.getCode()).collect(Collectors.toList()), containsInAnyOrder(
|
assertThat(expansion.getExpansion().getContains().stream().map(t->t.getCode()).collect(Collectors.toList()), containsInAnyOrder(
|
||||||
"CDN", "PR", "TR", "REF", "UNK", "ASKU"
|
"CDN", "PR", "TR", "REF", "UNK", "ASKU"
|
||||||
|
@ -163,25 +175,25 @@ public class FhirResourceDaoDstu3ValidateTest extends BaseJpaDstu3Test {
|
||||||
try {
|
try {
|
||||||
MethodOutcome outcome = myQuestionnaireResponseDao.validate(qr, null, null, null, ValidationModeEnum.CREATE, null, mySrd);
|
MethodOutcome outcome = myQuestionnaireResponseDao.validate(qr, null, null, null, ValidationModeEnum.CREATE, null, mySrd);
|
||||||
OperationOutcome oo = (OperationOutcome) outcome.getOperationOutcome();
|
OperationOutcome oo = (OperationOutcome) outcome.getOperationOutcome();
|
||||||
ourLog.info(myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(oo));
|
ourLog.info(myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(oo));
|
||||||
fail();
|
fail();
|
||||||
} catch (PreconditionFailedException e) {
|
} catch (PreconditionFailedException e) {
|
||||||
OperationOutcome oo = (OperationOutcome) e.getOperationOutcome();
|
OperationOutcome oo = (OperationOutcome) e.getOperationOutcome();
|
||||||
String encoded = myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(oo);
|
String encoded = myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(oo);
|
||||||
ourLog.info(encoded);
|
ourLog.info(encoded);
|
||||||
assertThat(encoded, containsString("is not in the options value set"));
|
assertThat(encoded, containsString("is not in the options value set"));
|
||||||
}
|
}
|
||||||
|
|
||||||
// Validate as string
|
// Validate as string
|
||||||
try {
|
try {
|
||||||
String raw = myFhirCtx.newJsonParser().encodeResourceToString(qr);
|
String raw = myFhirContext.newJsonParser().encodeResourceToString(qr);
|
||||||
MethodOutcome outcome = myQuestionnaireResponseDao.validate(qr, null, raw, EncodingEnum.JSON, ValidationModeEnum.CREATE, null, mySrd);
|
MethodOutcome outcome = myQuestionnaireResponseDao.validate(qr, null, raw, EncodingEnum.JSON, ValidationModeEnum.CREATE, null, mySrd);
|
||||||
OperationOutcome oo = (OperationOutcome) outcome.getOperationOutcome();
|
OperationOutcome oo = (OperationOutcome) outcome.getOperationOutcome();
|
||||||
ourLog.info(myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(oo));
|
ourLog.info(myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(oo));
|
||||||
fail();
|
fail();
|
||||||
} catch (PreconditionFailedException e) {
|
} catch (PreconditionFailedException e) {
|
||||||
OperationOutcome oo = (OperationOutcome) e.getOperationOutcome();
|
OperationOutcome oo = (OperationOutcome) e.getOperationOutcome();
|
||||||
String encoded = myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(oo);
|
String encoded = myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(oo);
|
||||||
ourLog.info(encoded);
|
ourLog.info(encoded);
|
||||||
assertThat(encoded, containsString("is not in the options value set"));
|
assertThat(encoded, containsString("is not in the options value set"));
|
||||||
}
|
}
|
||||||
|
@ -192,14 +204,14 @@ public class FhirResourceDaoDstu3ValidateTest extends BaseJpaDstu3Test {
|
||||||
@Test
|
@Test
|
||||||
public void testValidateStructureDefinition() throws Exception {
|
public void testValidateStructureDefinition() throws Exception {
|
||||||
String input = IOUtils.toString(getClass().getResourceAsStream("/sd-david-dhtest7.json"), StandardCharsets.UTF_8);
|
String input = IOUtils.toString(getClass().getResourceAsStream("/sd-david-dhtest7.json"), StandardCharsets.UTF_8);
|
||||||
StructureDefinition sd = myFhirCtx.newJsonParser().parseResource(StructureDefinition.class, input);
|
StructureDefinition sd = myFhirContext.newJsonParser().parseResource(StructureDefinition.class, input);
|
||||||
|
|
||||||
|
|
||||||
ourLog.info("Starting validation");
|
ourLog.info("Starting validation");
|
||||||
try {
|
try {
|
||||||
myStructureDefinitionDao.validate(sd, null, null, null, ValidationModeEnum.UPDATE, null, mySrd);
|
myStructureDefinitionDao.validate(sd, null, null, null, ValidationModeEnum.UPDATE, null, mySrd);
|
||||||
} catch (PreconditionFailedException e) {
|
} catch (PreconditionFailedException e) {
|
||||||
ourLog.info(myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(e.getOperationOutcome()));
|
ourLog.info(myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(e.getOperationOutcome()));
|
||||||
}
|
}
|
||||||
ourLog.info("Done validation");
|
ourLog.info("Done validation");
|
||||||
|
|
||||||
|
@ -217,14 +229,14 @@ public class FhirResourceDaoDstu3ValidateTest extends BaseJpaDstu3Test {
|
||||||
@Test
|
@Test
|
||||||
public void testValidateDocument() throws Exception {
|
public void testValidateDocument() throws Exception {
|
||||||
String input = IOUtils.toString(getClass().getResourceAsStream("/document-bundle-dstu3.json"), StandardCharsets.UTF_8);
|
String input = IOUtils.toString(getClass().getResourceAsStream("/document-bundle-dstu3.json"), StandardCharsets.UTF_8);
|
||||||
Bundle document = myFhirCtx.newJsonParser().parseResource(Bundle.class, input);
|
Bundle document = myFhirContext.newJsonParser().parseResource(Bundle.class, input);
|
||||||
|
|
||||||
|
|
||||||
ourLog.info("Starting validation");
|
ourLog.info("Starting validation");
|
||||||
try {
|
try {
|
||||||
MethodOutcome outcome = myBundleDao.validate(document, null, null, null, ValidationModeEnum.CREATE, null, mySrd);
|
MethodOutcome outcome = myBundleDao.validate(document, null, null, null, ValidationModeEnum.CREATE, null, mySrd);
|
||||||
} catch (PreconditionFailedException e) {
|
} catch (PreconditionFailedException e) {
|
||||||
ourLog.info(myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(e.getOperationOutcome()));
|
ourLog.info(myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(e.getOperationOutcome()));
|
||||||
}
|
}
|
||||||
ourLog.info("Done validation");
|
ourLog.info("Done validation");
|
||||||
|
|
||||||
|
@ -237,7 +249,7 @@ public class FhirResourceDaoDstu3ValidateTest extends BaseJpaDstu3Test {
|
||||||
String methodName = "testValidateResourceContainingProfileDeclarationJson";
|
String methodName = "testValidateResourceContainingProfileDeclarationJson";
|
||||||
OperationOutcome outcome = doTestValidateResourceContainingProfileDeclaration(methodName, EncodingEnum.JSON);
|
OperationOutcome outcome = doTestValidateResourceContainingProfileDeclaration(methodName, EncodingEnum.JSON);
|
||||||
|
|
||||||
String ooString = myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(outcome);
|
String ooString = myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(outcome);
|
||||||
ourLog.info(ooString);
|
ourLog.info(ooString);
|
||||||
assertThat(ooString, containsString("Element '.subject': minimum required = 1, but only found 0"));
|
assertThat(ooString, containsString("Element '.subject': minimum required = 1, but only found 0"));
|
||||||
assertThat(ooString, containsString("Element encounter @ : max allowed = 0, but found 1"));
|
assertThat(ooString, containsString("Element encounter @ : max allowed = 0, but found 1"));
|
||||||
|
@ -250,7 +262,7 @@ public class FhirResourceDaoDstu3ValidateTest extends BaseJpaDstu3Test {
|
||||||
String methodName = "testValidateResourceContainingProfileDeclarationXml";
|
String methodName = "testValidateResourceContainingProfileDeclarationXml";
|
||||||
OperationOutcome outcome = doTestValidateResourceContainingProfileDeclaration(methodName, EncodingEnum.XML);
|
OperationOutcome outcome = doTestValidateResourceContainingProfileDeclaration(methodName, EncodingEnum.XML);
|
||||||
|
|
||||||
String ooString = myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(outcome);
|
String ooString = myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(outcome);
|
||||||
ourLog.info(ooString);
|
ourLog.info(ooString);
|
||||||
assertThat(ooString, containsString("Element '/f:Observation.subject': minimum required = 1, but only found 0"));
|
assertThat(ooString, containsString("Element '/f:Observation.subject': minimum required = 1, but only found 0"));
|
||||||
assertThat(ooString, containsString("Element encounter @ /f:Observation: max allowed = 0, but found 1"));
|
assertThat(ooString, containsString("Element encounter @ /f:Observation: max allowed = 0, but found 1"));
|
||||||
|
@ -287,7 +299,7 @@ public class FhirResourceDaoDstu3ValidateTest extends BaseJpaDstu3Test {
|
||||||
ValidationModeEnum mode = ValidationModeEnum.CREATE;
|
ValidationModeEnum mode = ValidationModeEnum.CREATE;
|
||||||
switch (enc) {
|
switch (enc) {
|
||||||
case JSON:
|
case JSON:
|
||||||
encoded = myFhirCtx.newJsonParser().encodeResourceToString(input);
|
encoded = myFhirContext.newJsonParser().encodeResourceToString(input);
|
||||||
try {
|
try {
|
||||||
myObservationDao.validate(input, null, encoded, EncodingEnum.JSON, mode, null, mySrd);
|
myObservationDao.validate(input, null, encoded, EncodingEnum.JSON, mode, null, mySrd);
|
||||||
fail();
|
fail();
|
||||||
|
@ -296,7 +308,7 @@ public class FhirResourceDaoDstu3ValidateTest extends BaseJpaDstu3Test {
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case XML:
|
case XML:
|
||||||
encoded = myFhirCtx.newXmlParser().encodeResourceToString(input);
|
encoded = myFhirContext.newXmlParser().encodeResourceToString(input);
|
||||||
try {
|
try {
|
||||||
myObservationDao.validate(input, null, encoded, EncodingEnum.XML, mode, null, mySrd);
|
myObservationDao.validate(input, null, encoded, EncodingEnum.XML, mode, null, mySrd);
|
||||||
fail();
|
fail();
|
||||||
|
@ -323,15 +335,15 @@ public class FhirResourceDaoDstu3ValidateTest extends BaseJpaDstu3Test {
|
||||||
input.getCode().addCoding().setSystem("http://loinc.org").setCode("12345");
|
input.getCode().addCoding().setSystem("http://loinc.org").setCode("12345");
|
||||||
|
|
||||||
ValidationModeEnum mode = ValidationModeEnum.CREATE;
|
ValidationModeEnum mode = ValidationModeEnum.CREATE;
|
||||||
String encoded = myFhirCtx.newJsonParser().encodeResourceToString(input);
|
String encoded = myFhirContext.newJsonParser().encodeResourceToString(input);
|
||||||
try {
|
try {
|
||||||
// Expected to throw exception
|
// Expected to throw exception
|
||||||
MethodOutcome output = myObservationDao.validate(input, null, encoded, EncodingEnum.JSON, mode, null, mySrd);
|
MethodOutcome output = myObservationDao.validate(input, null, encoded, EncodingEnum.JSON, mode, null, mySrd);
|
||||||
ourLog.info(myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(output.getOperationOutcome()));
|
ourLog.info(myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(output.getOperationOutcome()));
|
||||||
fail();
|
fail();
|
||||||
} catch (PreconditionFailedException e) {
|
} catch (PreconditionFailedException e) {
|
||||||
OperationOutcome oo = (OperationOutcome) e.getOperationOutcome();
|
OperationOutcome oo = (OperationOutcome) e.getOperationOutcome();
|
||||||
String outputString = myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(oo);
|
String outputString = myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(oo);
|
||||||
ourLog.info(outputString);
|
ourLog.info(outputString);
|
||||||
assertThat(outputString, containsString("Profile reference 'http://example.com/StructureDefinition/testValidateResourceContainingProfileDeclarationInvalid' has not been checked because it is unknown"));
|
assertThat(outputString, containsString("Profile reference 'http://example.com/StructureDefinition/testValidateResourceContainingProfileDeclarationInvalid' has not been checked because it is unknown"));
|
||||||
}
|
}
|
||||||
|
@ -421,7 +433,7 @@ public class FhirResourceDaoDstu3ValidateTest extends BaseJpaDstu3Test {
|
||||||
outcome = (OperationOutcome) e.getOperationOutcome();
|
outcome = (OperationOutcome) e.getOperationOutcome();
|
||||||
}
|
}
|
||||||
|
|
||||||
String ooString = myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(outcome);
|
String ooString = myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(outcome);
|
||||||
ourLog.info(ooString);
|
ourLog.info(ooString);
|
||||||
assertThat(ooString, containsString("Unable to delete Organization"));
|
assertThat(ooString, containsString("Unable to delete Organization"));
|
||||||
|
|
||||||
|
@ -430,7 +442,7 @@ public class FhirResourceDaoDstu3ValidateTest extends BaseJpaDstu3Test {
|
||||||
myPatientDao.update(pat, mySrd);
|
myPatientDao.update(pat, mySrd);
|
||||||
|
|
||||||
outcome = (OperationOutcome) myOrganizationDao.validate(null, orgId, null, null, ValidationModeEnum.DELETE, null, mySrd).getOperationOutcome();
|
outcome = (OperationOutcome) myOrganizationDao.validate(null, orgId, null, null, ValidationModeEnum.DELETE, null, mySrd).getOperationOutcome();
|
||||||
ooString = myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(outcome);
|
ooString = myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(outcome);
|
||||||
ourLog.info(ooString);
|
ourLog.info(ooString);
|
||||||
assertThat(ooString, containsString("Ok to delete"));
|
assertThat(ooString, containsString("Ok to delete"));
|
||||||
|
|
||||||
|
@ -460,10 +472,10 @@ public class FhirResourceDaoDstu3ValidateTest extends BaseJpaDstu3Test {
|
||||||
try {
|
try {
|
||||||
MethodOutcome results = myQuestionnaireDao.validate(null, null, input, EncodingEnum.XML, ValidationModeEnum.UPDATE, null, mySrd);
|
MethodOutcome results = myQuestionnaireDao.validate(null, null, input, EncodingEnum.XML, ValidationModeEnum.UPDATE, null, mySrd);
|
||||||
OperationOutcome oo = (OperationOutcome) results.getOperationOutcome();
|
OperationOutcome oo = (OperationOutcome) results.getOperationOutcome();
|
||||||
ourLog.info(myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(oo));
|
ourLog.info(myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(oo));
|
||||||
} catch (PreconditionFailedException e) {
|
} catch (PreconditionFailedException e) {
|
||||||
// this is a failure of the test
|
// this is a failure of the test
|
||||||
ourLog.info(myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(e.getOperationOutcome()));
|
ourLog.info(myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(e.getOperationOutcome()));
|
||||||
throw e;
|
throw e;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -479,16 +491,16 @@ public class FhirResourceDaoDstu3ValidateTest extends BaseJpaDstu3Test {
|
||||||
p.getMeta().addProfile("http://hl7.org/fhir/StructureDefinition/MyPatient421");
|
p.getMeta().addProfile("http://hl7.org/fhir/StructureDefinition/MyPatient421");
|
||||||
p.setActive(true);
|
p.setActive(true);
|
||||||
|
|
||||||
String raw = myFhirCtx.newJsonParser().encodeResourceToString(p);
|
String raw = myFhirContext.newJsonParser().encodeResourceToString(p);
|
||||||
try {
|
try {
|
||||||
MethodOutcome outcome = myPatientDao.validate(p, null, raw, EncodingEnum.JSON, null, null, mySrd);
|
MethodOutcome outcome = myPatientDao.validate(p, null, raw, EncodingEnum.JSON, null, null, mySrd);
|
||||||
|
|
||||||
String encoded = myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(outcome.getOperationOutcome());
|
String encoded = myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(outcome.getOperationOutcome());
|
||||||
ourLog.info("OO: {}", encoded);
|
ourLog.info("OO: {}", encoded);
|
||||||
assertThat(encoded, containsString("No issues detected"));
|
assertThat(encoded, containsString("No issues detected"));
|
||||||
} catch (PreconditionFailedException e) {
|
} catch (PreconditionFailedException e) {
|
||||||
// not expected, but let's log the error
|
// not expected, but let's log the error
|
||||||
ourLog.info(myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(e.getOperationOutcome()));
|
ourLog.info(myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(e.getOperationOutcome()));
|
||||||
fail(e.toString());
|
fail(e.toString());
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -128,7 +128,7 @@ public class FhirResourceDaoDstu3ValueSetTest extends BaseJpaDstu3Test {
|
||||||
assertEquals("http://hl7.org/fhir/ValueSet/endpoint-payload-type", vs.getUrl());
|
assertEquals("http://hl7.org/fhir/ValueSet/endpoint-payload-type", vs.getUrl());
|
||||||
|
|
||||||
ValueSet expansion = myValueSetDao.expand(vs.getIdElement(), null, mySrd);
|
ValueSet expansion = myValueSetDao.expand(vs.getIdElement(), null, mySrd);
|
||||||
ourLog.info(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(expansion));
|
ourLog.info(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(expansion));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -136,7 +136,7 @@ public class FhirResourceDaoDstu3ValueSetTest extends BaseJpaDstu3Test {
|
||||||
String resp;
|
String resp;
|
||||||
|
|
||||||
ValueSet expanded = myValueSetDao.expand(myExtensionalVsId, null, mySrd);
|
ValueSet expanded = myValueSetDao.expand(myExtensionalVsId, null, mySrd);
|
||||||
resp = myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(expanded);
|
resp = myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(expanded);
|
||||||
ourLog.info(resp);
|
ourLog.info(resp);
|
||||||
assertThat(resp, containsString("<ValueSet xmlns=\"http://hl7.org/fhir\">"));
|
assertThat(resp, containsString("<ValueSet xmlns=\"http://hl7.org/fhir\">"));
|
||||||
assertThat(resp, containsString("<expansion>"));
|
assertThat(resp, containsString("<expansion>"));
|
||||||
|
@ -157,7 +157,7 @@ public class FhirResourceDaoDstu3ValueSetTest extends BaseJpaDstu3Test {
|
||||||
*/
|
*/
|
||||||
|
|
||||||
expanded = myValueSetDao.expand(myExtensionalVsId, new ValueSetExpansionOptions().setFilter("systolic"), mySrd);
|
expanded = myValueSetDao.expand(myExtensionalVsId, new ValueSetExpansionOptions().setFilter("systolic"), mySrd);
|
||||||
resp = myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(expanded);
|
resp = myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(expanded);
|
||||||
ourLog.info(resp);
|
ourLog.info(resp);
|
||||||
//@formatter:off
|
//@formatter:off
|
||||||
assertThat(resp, stringContainsInOrder(
|
assertThat(resp, stringContainsInOrder(
|
||||||
|
@ -171,7 +171,7 @@ public class FhirResourceDaoDstu3ValueSetTest extends BaseJpaDstu3Test {
|
||||||
@Disabled
|
@Disabled
|
||||||
public void testExpandByIdentifier() {
|
public void testExpandByIdentifier() {
|
||||||
ValueSet expanded = myValueSetDao.expandByIdentifier("http://www.healthintersections.com.au/fhir/ValueSet/extensional-case-2", new ValueSetExpansionOptions().setFilter("11378"));
|
ValueSet expanded = myValueSetDao.expandByIdentifier("http://www.healthintersections.com.au/fhir/ValueSet/extensional-case-2", new ValueSetExpansionOptions().setFilter("11378"));
|
||||||
String resp = myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(expanded);
|
String resp = myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(expanded);
|
||||||
ourLog.info(resp);
|
ourLog.info(resp);
|
||||||
//@formatter:off
|
//@formatter:off
|
||||||
assertThat(resp, stringContainsInOrder(
|
assertThat(resp, stringContainsInOrder(
|
||||||
|
@ -190,7 +190,7 @@ public class FhirResourceDaoDstu3ValueSetTest extends BaseJpaDstu3Test {
|
||||||
public void testExpandByValueSet() throws IOException {
|
public void testExpandByValueSet() throws IOException {
|
||||||
ValueSet toExpand = loadResourceFromClasspath(ValueSet.class, "/extensional-case-3-vs.xml");
|
ValueSet toExpand = loadResourceFromClasspath(ValueSet.class, "/extensional-case-3-vs.xml");
|
||||||
ValueSet expanded = myValueSetDao.expand(toExpand, new ValueSetExpansionOptions().setFilter("11378"));
|
ValueSet expanded = myValueSetDao.expand(toExpand, new ValueSetExpansionOptions().setFilter("11378"));
|
||||||
String resp = myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(expanded);
|
String resp = myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(expanded);
|
||||||
ourLog.info(resp);
|
ourLog.info(resp);
|
||||||
//@formatter:off
|
//@formatter:off
|
||||||
assertThat(resp, stringContainsInOrder(
|
assertThat(resp, stringContainsInOrder(
|
||||||
|
|
|
@ -241,16 +241,16 @@ public class FhirSystemDaoDstu3Test extends BaseJpaDstu3SystemTest {
|
||||||
|
|
||||||
private Bundle loadBundle(String theFileName) throws IOException {
|
private Bundle loadBundle(String theFileName) throws IOException {
|
||||||
String req = IOUtils.toString(FhirSystemDaoDstu3Test.class.getResourceAsStream(theFileName), StandardCharsets.UTF_8);
|
String req = IOUtils.toString(FhirSystemDaoDstu3Test.class.getResourceAsStream(theFileName), StandardCharsets.UTF_8);
|
||||||
return myFhirCtx.newXmlParser().parseResource(Bundle.class, req);
|
return myFhirContext.newXmlParser().parseResource(Bundle.class, req);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testTransactionWithDuplicateConditionalCreates2() throws IOException {
|
public void testTransactionWithDuplicateConditionalCreates2() throws IOException {
|
||||||
Bundle request = myFhirCtx.newJsonParser().parseResource(Bundle.class, IOUtils.toString(FhirSystemDaoR4.class.getResourceAsStream("/dstu3/duplicate-conditional-create.json"), Constants.CHARSET_UTF8));
|
Bundle request = myFhirContext.newJsonParser().parseResource(Bundle.class, IOUtils.toString(FhirSystemDaoR4.class.getResourceAsStream("/dstu3/duplicate-conditional-create.json"), Constants.CHARSET_UTF8));
|
||||||
|
|
||||||
Bundle response = mySystemDao.transaction(null, request);
|
Bundle response = mySystemDao.transaction(null, request);
|
||||||
|
|
||||||
ourLog.info("Response:\n{}", myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(response));
|
ourLog.info("Response:\n{}", myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(response));
|
||||||
|
|
||||||
List<String> responseTypes = response
|
List<String> responseTypes = response
|
||||||
.getEntry()
|
.getEntry()
|
||||||
|
@ -289,7 +289,7 @@ public class FhirSystemDaoDstu3Test extends BaseJpaDstu3SystemTest {
|
||||||
assertEquals("404 Not Found", response.getEntry().get(1).getResponse().getStatus());
|
assertEquals("404 Not Found", response.getEntry().get(1).getResponse().getStatus());
|
||||||
|
|
||||||
OperationOutcome oo = (OperationOutcome) response.getEntry().get(1).getResponse().getOutcome();
|
OperationOutcome oo = (OperationOutcome) response.getEntry().get(1).getResponse().getOutcome();
|
||||||
ourLog.info(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(oo));
|
ourLog.info(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(oo));
|
||||||
assertEquals(IssueSeverity.ERROR, oo.getIssue().get(0).getSeverity());
|
assertEquals(IssueSeverity.ERROR, oo.getIssue().get(0).getSeverity());
|
||||||
assertEquals(Msg.code(2001) + "Resource Patient/BABABABA is not known", oo.getIssue().get(0).getDiagnostics());
|
assertEquals(Msg.code(2001) + "Resource Patient/BABABABA is not known", oo.getIssue().get(0).getDiagnostics());
|
||||||
}
|
}
|
||||||
|
@ -323,7 +323,7 @@ public class FhirSystemDaoDstu3Test extends BaseJpaDstu3SystemTest {
|
||||||
assertEquals("400 Bad Request", response.getEntry().get(1).getResponse().getStatus());
|
assertEquals("400 Bad Request", response.getEntry().get(1).getResponse().getStatus());
|
||||||
|
|
||||||
OperationOutcome oo = (OperationOutcome) response.getEntry().get(1).getResponse().getOutcome();
|
OperationOutcome oo = (OperationOutcome) response.getEntry().get(1).getResponse().getOutcome();
|
||||||
ourLog.info(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(oo));
|
ourLog.info(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(oo));
|
||||||
assertEquals(IssueSeverity.ERROR, oo.getIssue().get(0).getSeverity());
|
assertEquals(IssueSeverity.ERROR, oo.getIssue().get(0).getSeverity());
|
||||||
assertThat(oo.getIssue().get(0).getDiagnostics(), containsString("Unknown search parameter"));
|
assertThat(oo.getIssue().get(0).getDiagnostics(), containsString("Unknown search parameter"));
|
||||||
}
|
}
|
||||||
|
@ -362,7 +362,7 @@ public class FhirSystemDaoDstu3Test extends BaseJpaDstu3SystemTest {
|
||||||
.getRequest().setMethod(HTTPVerb.POST);
|
.getRequest().setMethod(HTTPVerb.POST);
|
||||||
|
|
||||||
Bundle resp = mySystemDao.transaction(mySrd, inputBundle);
|
Bundle resp = mySystemDao.transaction(mySrd, inputBundle);
|
||||||
ourLog.info(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(resp));
|
ourLog.info(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(resp));
|
||||||
|
|
||||||
IdType epId = new IdType(resp.getEntry().get(0).getResponse().getLocation());
|
IdType epId = new IdType(resp.getEntry().get(0).getResponse().getLocation());
|
||||||
IdType condId = new IdType(resp.getEntry().get(1).getResponse().getLocation());
|
IdType condId = new IdType(resp.getEntry().get(1).getResponse().getLocation());
|
||||||
|
@ -394,9 +394,9 @@ public class FhirSystemDaoDstu3Test extends BaseJpaDstu3SystemTest {
|
||||||
.getRequest().setMethod(HTTPVerb.DELETE)
|
.getRequest().setMethod(HTTPVerb.DELETE)
|
||||||
.setUrl(condId.toUnqualifiedVersionless().getValue());
|
.setUrl(condId.toUnqualifiedVersionless().getValue());
|
||||||
|
|
||||||
ourLog.info(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(inputBundle));
|
ourLog.info(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(inputBundle));
|
||||||
resp = mySystemDao.transaction(mySrd, inputBundle);
|
resp = mySystemDao.transaction(mySrd, inputBundle);
|
||||||
ourLog.info(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(resp));
|
ourLog.info(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(resp));
|
||||||
|
|
||||||
// They should now be deleted
|
// They should now be deleted
|
||||||
try {
|
try {
|
||||||
|
@ -414,11 +414,11 @@ public class FhirSystemDaoDstu3Test extends BaseJpaDstu3SystemTest {
|
||||||
public void testProcessCollectionAsBatch() throws IOException {
|
public void testProcessCollectionAsBatch() throws IOException {
|
||||||
byte[] inputBytes = IOUtils.toByteArray(getClass().getResourceAsStream("/dstu3/Reilly_Libby_73.json.gz"));
|
byte[] inputBytes = IOUtils.toByteArray(getClass().getResourceAsStream("/dstu3/Reilly_Libby_73.json.gz"));
|
||||||
String input = GZipUtil.decompress(inputBytes);
|
String input = GZipUtil.decompress(inputBytes);
|
||||||
Bundle bundle = myFhirCtx.newJsonParser().setParserErrorHandler(new LenientErrorHandler()).parseResource(Bundle.class, input);
|
Bundle bundle = myFhirContext.newJsonParser().setParserErrorHandler(new LenientErrorHandler()).parseResource(Bundle.class, input);
|
||||||
ourLog.info("Bundle has {} resources", bundle);
|
ourLog.info("Bundle has {} resources", bundle);
|
||||||
|
|
||||||
Bundle output = mySystemDao.transaction(mySrd, bundle);
|
Bundle output = mySystemDao.transaction(mySrd, bundle);
|
||||||
ourLog.info(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(output));
|
ourLog.info(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(output));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -428,14 +428,14 @@ public class FhirSystemDaoDstu3Test extends BaseJpaDstu3SystemTest {
|
||||||
@Test
|
@Test
|
||||||
public void testContainedArePreservedForBug410() throws IOException {
|
public void testContainedArePreservedForBug410() throws IOException {
|
||||||
String input = IOUtils.toString(getClass().getResourceAsStream("/bug-410-bundle.xml"), StandardCharsets.UTF_8);
|
String input = IOUtils.toString(getClass().getResourceAsStream("/bug-410-bundle.xml"), StandardCharsets.UTF_8);
|
||||||
Bundle bundle = myFhirCtx.newXmlParser().parseResource(Bundle.class, input);
|
Bundle bundle = myFhirContext.newXmlParser().parseResource(Bundle.class, input);
|
||||||
|
|
||||||
Bundle output = mySystemDao.transaction(mySrd, bundle);
|
Bundle output = mySystemDao.transaction(mySrd, bundle);
|
||||||
ourLog.info(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(output));
|
ourLog.info(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(output));
|
||||||
|
|
||||||
IdType id = new IdType(output.getEntry().get(1).getResponse().getLocation());
|
IdType id = new IdType(output.getEntry().get(1).getResponse().getLocation());
|
||||||
MedicationRequest mo = myMedicationRequestDao.read(id);
|
MedicationRequest mo = myMedicationRequestDao.read(id);
|
||||||
ourLog.info(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(mo));
|
ourLog.info(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(mo));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -547,7 +547,7 @@ public class FhirSystemDaoDstu3Test extends BaseJpaDstu3SystemTest {
|
||||||
@Test
|
@Test
|
||||||
public void testStructureDefinitionInBundle() throws IOException {
|
public void testStructureDefinitionInBundle() throws IOException {
|
||||||
String input = IOUtils.toString(FhirSystemDaoDstu3Test.class.getResourceAsStream("/bug1044-bundle.xml"), Charsets.UTF_8);
|
String input = IOUtils.toString(FhirSystemDaoDstu3Test.class.getResourceAsStream("/bug1044-bundle.xml"), Charsets.UTF_8);
|
||||||
Bundle inputBundle = myFhirCtx.newXmlParser().parseResource(Bundle.class, input);
|
Bundle inputBundle = myFhirContext.newXmlParser().parseResource(Bundle.class, input);
|
||||||
|
|
||||||
mySystemDao.transaction(mySrd, inputBundle);
|
mySystemDao.transaction(mySrd, inputBundle);
|
||||||
}
|
}
|
||||||
|
@ -630,10 +630,10 @@ public class FhirSystemDaoDstu3Test extends BaseJpaDstu3SystemTest {
|
||||||
@Test
|
@Test
|
||||||
public void testTransaction1() throws IOException {
|
public void testTransaction1() throws IOException {
|
||||||
String inputBundleString = loadClasspath("/david-bundle-error.json");
|
String inputBundleString = loadClasspath("/david-bundle-error.json");
|
||||||
Bundle bundle = myFhirCtx.newJsonParser().parseResource(Bundle.class, inputBundleString);
|
Bundle bundle = myFhirContext.newJsonParser().parseResource(Bundle.class, inputBundleString);
|
||||||
Bundle resp = mySystemDao.transaction(mySrd, bundle);
|
Bundle resp = mySystemDao.transaction(mySrd, bundle);
|
||||||
|
|
||||||
ourLog.info(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(resp));
|
ourLog.info(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(resp));
|
||||||
|
|
||||||
assertEquals("201 Created", resp.getEntry().get(0).getResponse().getStatus());
|
assertEquals("201 Created", resp.getEntry().get(0).getResponse().getStatus());
|
||||||
}
|
}
|
||||||
|
@ -654,7 +654,7 @@ public class FhirSystemDaoDstu3Test extends BaseJpaDstu3SystemTest {
|
||||||
assertEquals(2, resp.getEntry().size());
|
assertEquals(2, resp.getEntry().size());
|
||||||
assertEquals(BundleType.BATCHRESPONSE, resp.getTypeElement().getValue());
|
assertEquals(BundleType.BATCHRESPONSE, resp.getTypeElement().getValue());
|
||||||
|
|
||||||
ourLog.info(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(resp));
|
ourLog.info(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(resp));
|
||||||
BundleEntryResponseComponent respEntry;
|
BundleEntryResponseComponent respEntry;
|
||||||
|
|
||||||
// Bundle.entry[0] is create response
|
// Bundle.entry[0] is create response
|
||||||
|
@ -974,7 +974,7 @@ public class FhirSystemDaoDstu3Test extends BaseJpaDstu3SystemTest {
|
||||||
assertEquals("404 Not Found", response.getEntry().get(1).getResponse().getStatus());
|
assertEquals("404 Not Found", response.getEntry().get(1).getResponse().getStatus());
|
||||||
|
|
||||||
OperationOutcome oo = (OperationOutcome) response.getEntry().get(1).getResponse().getOutcome();
|
OperationOutcome oo = (OperationOutcome) response.getEntry().get(1).getResponse().getOutcome();
|
||||||
ourLog.info(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(oo));
|
ourLog.info(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(oo));
|
||||||
assertEquals(IssueSeverity.ERROR, oo.getIssue().get(0).getSeverity());
|
assertEquals(IssueSeverity.ERROR, oo.getIssue().get(0).getSeverity());
|
||||||
assertEquals(Msg.code(2001) + "Resource Patient/BABABABA is not known", oo.getIssue().get(0).getDiagnostics());
|
assertEquals(Msg.code(2001) + "Resource Patient/BABABABA is not known", oo.getIssue().get(0).getDiagnostics());
|
||||||
}
|
}
|
||||||
|
@ -1008,7 +1008,7 @@ public class FhirSystemDaoDstu3Test extends BaseJpaDstu3SystemTest {
|
||||||
assertEquals("400 Bad Request", response.getEntry().get(1).getResponse().getStatus());
|
assertEquals("400 Bad Request", response.getEntry().get(1).getResponse().getStatus());
|
||||||
|
|
||||||
OperationOutcome oo = (OperationOutcome) response.getEntry().get(1).getResponse().getOutcome();
|
OperationOutcome oo = (OperationOutcome) response.getEntry().get(1).getResponse().getOutcome();
|
||||||
ourLog.info(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(oo));
|
ourLog.info(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(oo));
|
||||||
assertEquals(IssueSeverity.ERROR, oo.getIssue().get(0).getSeverity());
|
assertEquals(IssueSeverity.ERROR, oo.getIssue().get(0).getSeverity());
|
||||||
assertThat(oo.getIssue().get(0).getDiagnostics(), containsString("Unknown search parameter"));
|
assertThat(oo.getIssue().get(0).getDiagnostics(), containsString("Unknown search parameter"));
|
||||||
}
|
}
|
||||||
|
@ -1424,12 +1424,12 @@ public class FhirSystemDaoDstu3Test extends BaseJpaDstu3SystemTest {
|
||||||
fail(e.toString());
|
fail(e.toString());
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
Bundle bundle = myFhirCtx.newJsonParser().parseResource(Bundle.class, input);
|
Bundle bundle = myFhirContext.newJsonParser().parseResource(Bundle.class, input);
|
||||||
mySystemDao.transaction(mySrd, bundle);
|
mySystemDao.transaction(mySrd, bundle);
|
||||||
|
|
||||||
IBundleProvider history = mySystemDao.history(null, null, null, null);
|
IBundleProvider history = mySystemDao.history(null, null, null, null);
|
||||||
Bundle list = toBundle(history);
|
Bundle list = toBundle(history);
|
||||||
ourLog.info(myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(list));
|
ourLog.info(myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(list));
|
||||||
|
|
||||||
assertEquals(6, list.getEntry().size());
|
assertEquals(6, list.getEntry().size());
|
||||||
|
|
||||||
|
@ -1671,11 +1671,11 @@ public class FhirSystemDaoDstu3Test extends BaseJpaDstu3SystemTest {
|
||||||
|
|
||||||
InputStream bundleRes = SystemProviderDstu2Test.class.getResourceAsStream("/transaction_link_patient_eve.xml");
|
InputStream bundleRes = SystemProviderDstu2Test.class.getResourceAsStream("/transaction_link_patient_eve.xml");
|
||||||
String bundleStr = IOUtils.toString(bundleRes, StandardCharsets.UTF_8);
|
String bundleStr = IOUtils.toString(bundleRes, StandardCharsets.UTF_8);
|
||||||
Bundle bundle = myFhirCtx.newXmlParser().parseResource(Bundle.class, bundleStr);
|
Bundle bundle = myFhirContext.newXmlParser().parseResource(Bundle.class, bundleStr);
|
||||||
|
|
||||||
Bundle resp = mySystemDao.transaction(mySrd, bundle);
|
Bundle resp = mySystemDao.transaction(mySrd, bundle);
|
||||||
|
|
||||||
ourLog.info(myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(resp));
|
ourLog.info(myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(resp));
|
||||||
|
|
||||||
assertThat(resp.getEntry().get(0).getResponse().getLocation(), startsWith("Patient/a555-44-4444/_history/"));
|
assertThat(resp.getEntry().get(0).getResponse().getLocation(), startsWith("Patient/a555-44-4444/_history/"));
|
||||||
assertThat(resp.getEntry().get(1).getResponse().getLocation(), startsWith("Patient/temp6789/_history/"));
|
assertThat(resp.getEntry().get(1).getResponse().getLocation(), startsWith("Patient/temp6789/_history/"));
|
||||||
|
@ -1688,10 +1688,10 @@ public class FhirSystemDaoDstu3Test extends BaseJpaDstu3SystemTest {
|
||||||
@Test
|
@Test
|
||||||
public void testTransactionFromBundle2() throws Exception {
|
public void testTransactionFromBundle2() throws Exception {
|
||||||
String input = IOUtils.toString(getClass().getResourceAsStream("/transaction-bundle.xml"), StandardCharsets.UTF_8);
|
String input = IOUtils.toString(getClass().getResourceAsStream("/transaction-bundle.xml"), StandardCharsets.UTF_8);
|
||||||
Bundle bundle = myFhirCtx.newXmlParser().parseResource(Bundle.class, input);
|
Bundle bundle = myFhirContext.newXmlParser().parseResource(Bundle.class, input);
|
||||||
Bundle response = mySystemDao.transaction(mySrd, bundle);
|
Bundle response = mySystemDao.transaction(mySrd, bundle);
|
||||||
|
|
||||||
ourLog.info(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(response));
|
ourLog.info(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(response));
|
||||||
assertEquals("201 Created", response.getEntry().get(0).getResponse().getStatus());
|
assertEquals("201 Created", response.getEntry().get(0).getResponse().getStatus());
|
||||||
assertThat(response.getEntry().get(0).getResponse().getLocation(), matchesPattern("Practitioner/[0-9]+/_history/1"));
|
assertThat(response.getEntry().get(0).getResponse().getLocation(), matchesPattern("Practitioner/[0-9]+/_history/1"));
|
||||||
|
|
||||||
|
@ -1699,10 +1699,10 @@ public class FhirSystemDaoDstu3Test extends BaseJpaDstu3SystemTest {
|
||||||
* Now a second time
|
* Now a second time
|
||||||
*/
|
*/
|
||||||
|
|
||||||
bundle = myFhirCtx.newXmlParser().parseResource(Bundle.class, input);
|
bundle = myFhirContext.newXmlParser().parseResource(Bundle.class, input);
|
||||||
response = mySystemDao.transaction(mySrd, bundle);
|
response = mySystemDao.transaction(mySrd, bundle);
|
||||||
|
|
||||||
ourLog.info(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(response));
|
ourLog.info(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(response));
|
||||||
assertEquals("200 OK", response.getEntry().get(0).getResponse().getStatus());
|
assertEquals("200 OK", response.getEntry().get(0).getResponse().getStatus());
|
||||||
assertThat(response.getEntry().get(0).getResponse().getLocation(), matchesPattern("Practitioner/[0-9]+/_history/1"));
|
assertThat(response.getEntry().get(0).getResponse().getLocation(), matchesPattern("Practitioner/[0-9]+/_history/1"));
|
||||||
|
|
||||||
|
@ -1712,8 +1712,8 @@ public class FhirSystemDaoDstu3Test extends BaseJpaDstu3SystemTest {
|
||||||
public void testTransactionFromBundle6() throws Exception {
|
public void testTransactionFromBundle6() throws Exception {
|
||||||
InputStream bundleRes = SystemProviderDstu2Test.class.getResourceAsStream("/simone_bundle3.xml");
|
InputStream bundleRes = SystemProviderDstu2Test.class.getResourceAsStream("/simone_bundle3.xml");
|
||||||
String bundle = IOUtils.toString(bundleRes, StandardCharsets.UTF_8);
|
String bundle = IOUtils.toString(bundleRes, StandardCharsets.UTF_8);
|
||||||
Bundle output = mySystemDao.transaction(mySrd, myFhirCtx.newXmlParser().parseResource(Bundle.class, bundle));
|
Bundle output = mySystemDao.transaction(mySrd, myFhirContext.newXmlParser().parseResource(Bundle.class, bundle));
|
||||||
ourLog.info(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(output));
|
ourLog.info(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(output));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -1721,11 +1721,11 @@ public class FhirSystemDaoDstu3Test extends BaseJpaDstu3SystemTest {
|
||||||
|
|
||||||
InputStream bundleRes = SystemProviderDstu2Test.class.getResourceAsStream("/josh-bundle.json");
|
InputStream bundleRes = SystemProviderDstu2Test.class.getResourceAsStream("/josh-bundle.json");
|
||||||
String bundleStr = IOUtils.toString(bundleRes, StandardCharsets.UTF_8);
|
String bundleStr = IOUtils.toString(bundleRes, StandardCharsets.UTF_8);
|
||||||
Bundle bundle = myFhirCtx.newJsonParser().parseResource(Bundle.class, bundleStr);
|
Bundle bundle = myFhirContext.newJsonParser().parseResource(Bundle.class, bundleStr);
|
||||||
|
|
||||||
Bundle resp = mySystemDao.transaction(mySrd, bundle);
|
Bundle resp = mySystemDao.transaction(mySrd, bundle);
|
||||||
|
|
||||||
ourLog.info(myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(resp));
|
ourLog.info(myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(resp));
|
||||||
|
|
||||||
assertEquals("201 Created", resp.getEntry().get(0).getResponse().getStatus());
|
assertEquals("201 Created", resp.getEntry().get(0).getResponse().getStatus());
|
||||||
assertEquals("201 Created", resp.getEntry().get(1).getResponse().getStatus());
|
assertEquals("201 Created", resp.getEntry().get(1).getResponse().getStatus());
|
||||||
|
@ -1759,7 +1759,7 @@ public class FhirSystemDaoDstu3Test extends BaseJpaDstu3SystemTest {
|
||||||
params.put(Constants.PARAMETER_CASCADE_DELETE, new String[]{Constants.CASCADE_DELETE});
|
params.put(Constants.PARAMETER_CASCADE_DELETE, new String[]{Constants.CASCADE_DELETE});
|
||||||
mySrd.setParameters(params);
|
mySrd.setParameters(params);
|
||||||
|
|
||||||
CascadingDeleteInterceptor deleteInterceptor = new CascadingDeleteInterceptor(myFhirCtx, myDaoRegistry, myInterceptorBroadcaster);
|
CascadingDeleteInterceptor deleteInterceptor = new CascadingDeleteInterceptor(myFhirContext, myDaoRegistry, myInterceptorBroadcaster);
|
||||||
myInterceptorBroadcaster.registerInterceptor(deleteInterceptor);
|
myInterceptorBroadcaster.registerInterceptor(deleteInterceptor);
|
||||||
|
|
||||||
|
|
||||||
|
@ -1822,7 +1822,7 @@ public class FhirSystemDaoDstu3Test extends BaseJpaDstu3SystemTest {
|
||||||
}
|
}
|
||||||
|
|
||||||
private void testTransactionOrderingValidateResponse(int pass, Bundle resp) {
|
private void testTransactionOrderingValidateResponse(int pass, Bundle resp) {
|
||||||
ourLog.info(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(resp));
|
ourLog.info(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(resp));
|
||||||
assertEquals(4, resp.getEntry().size());
|
assertEquals(4, resp.getEntry().size());
|
||||||
assertEquals("200 OK", resp.getEntry().get(0).getResponse().getStatus());
|
assertEquals("200 OK", resp.getEntry().get(0).getResponse().getStatus());
|
||||||
if (pass == 0) {
|
if (pass == 0) {
|
||||||
|
@ -1857,13 +1857,13 @@ public class FhirSystemDaoDstu3Test extends BaseJpaDstu3SystemTest {
|
||||||
|
|
||||||
Bundle inputBundle;
|
Bundle inputBundle;
|
||||||
Bundle outputBundle;
|
Bundle outputBundle;
|
||||||
inputBundle = myFhirCtx.newJsonParser().parseResource(Bundle.class, input);
|
inputBundle = myFhirContext.newJsonParser().parseResource(Bundle.class, input);
|
||||||
outputBundle = mySystemDao.transaction(mySrd, inputBundle);
|
outputBundle = mySystemDao.transaction(mySrd, inputBundle);
|
||||||
ourLog.info(myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(outputBundle));
|
ourLog.info(myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(outputBundle));
|
||||||
|
|
||||||
inputBundle = myFhirCtx.newJsonParser().parseResource(Bundle.class, input);
|
inputBundle = myFhirContext.newJsonParser().parseResource(Bundle.class, input);
|
||||||
outputBundle = mySystemDao.transaction(mySrd, inputBundle);
|
outputBundle = mySystemDao.transaction(mySrd, inputBundle);
|
||||||
ourLog.info(myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(outputBundle));
|
ourLog.info(myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(outputBundle));
|
||||||
|
|
||||||
IBundleProvider allPatients = myPatientDao.search(new SearchParameterMap());
|
IBundleProvider allPatients = myPatientDao.search(new SearchParameterMap());
|
||||||
assertEquals(1, allPatients.size().intValue());
|
assertEquals(1, allPatients.size().intValue());
|
||||||
|
@ -2225,14 +2225,14 @@ public class FhirSystemDaoDstu3Test extends BaseJpaDstu3SystemTest {
|
||||||
|
|
||||||
InputStream bundleRes = SystemProviderDstu2Test.class.getResourceAsStream("/questionnaire-sdc-profile-example-ussg-fht.xml");
|
InputStream bundleRes = SystemProviderDstu2Test.class.getResourceAsStream("/questionnaire-sdc-profile-example-ussg-fht.xml");
|
||||||
String bundleStr = IOUtils.toString(bundleRes, StandardCharsets.UTF_8);
|
String bundleStr = IOUtils.toString(bundleRes, StandardCharsets.UTF_8);
|
||||||
Bundle bundle = myFhirCtx.newXmlParser().parseResource(Bundle.class, bundleStr);
|
Bundle bundle = myFhirContext.newXmlParser().parseResource(Bundle.class, bundleStr);
|
||||||
|
|
||||||
Bundle resp = mySystemDao.transaction(mySrd, bundle);
|
Bundle resp = mySystemDao.transaction(mySrd, bundle);
|
||||||
|
|
||||||
String encoded = myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(resp);
|
String encoded = myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(resp);
|
||||||
ourLog.info(encoded);
|
ourLog.info(encoded);
|
||||||
|
|
||||||
encoded = myFhirCtx.newJsonParser().setPrettyPrint(false).encodeResourceToString(resp);
|
encoded = myFhirContext.newJsonParser().setPrettyPrint(false).encodeResourceToString(resp);
|
||||||
//@formatter:off
|
//@formatter:off
|
||||||
assertThat(encoded, containsString("\"response\":{" +
|
assertThat(encoded, containsString("\"response\":{" +
|
||||||
"\"status\":\"201 Created\"," +
|
"\"status\":\"201 Created\"," +
|
||||||
|
@ -2245,10 +2245,10 @@ public class FhirSystemDaoDstu3Test extends BaseJpaDstu3SystemTest {
|
||||||
|
|
||||||
resp = mySystemDao.transaction(mySrd, bundle);
|
resp = mySystemDao.transaction(mySrd, bundle);
|
||||||
|
|
||||||
encoded = myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(resp);
|
encoded = myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(resp);
|
||||||
ourLog.info(encoded);
|
ourLog.info(encoded);
|
||||||
|
|
||||||
encoded = myFhirCtx.newJsonParser().setPrettyPrint(false).encodeResourceToString(resp);
|
encoded = myFhirContext.newJsonParser().setPrettyPrint(false).encodeResourceToString(resp);
|
||||||
//@formatter:off
|
//@formatter:off
|
||||||
assertThat(encoded, containsString("\"response\":{" +
|
assertThat(encoded, containsString("\"response\":{" +
|
||||||
"\"status\":\"200 OK\"," +
|
"\"status\":\"200 OK\"," +
|
||||||
|
@ -2422,10 +2422,10 @@ public class FhirSystemDaoDstu3Test extends BaseJpaDstu3SystemTest {
|
||||||
myPatientDao.create(patient, mySrd);
|
myPatientDao.create(patient, mySrd);
|
||||||
|
|
||||||
String input = IOUtils.toString(getClass().getResourceAsStream("/simone-conditional-url.xml"), StandardCharsets.UTF_8);
|
String input = IOUtils.toString(getClass().getResourceAsStream("/simone-conditional-url.xml"), StandardCharsets.UTF_8);
|
||||||
Bundle bundle = myFhirCtx.newXmlParser().parseResource(Bundle.class, input);
|
Bundle bundle = myFhirContext.newXmlParser().parseResource(Bundle.class, input);
|
||||||
|
|
||||||
Bundle response = mySystemDao.transaction(mySrd, bundle);
|
Bundle response = mySystemDao.transaction(mySrd, bundle);
|
||||||
ourLog.info(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(response));
|
ourLog.info(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(response));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2442,7 +2442,7 @@ public class FhirSystemDaoDstu3Test extends BaseJpaDstu3SystemTest {
|
||||||
myPatientDao.create(patient, mySrd);
|
myPatientDao.create(patient, mySrd);
|
||||||
|
|
||||||
String input = IOUtils.toString(getClass().getResourceAsStream("/simone-conditional-url.xml"), StandardCharsets.UTF_8);
|
String input = IOUtils.toString(getClass().getResourceAsStream("/simone-conditional-url.xml"), StandardCharsets.UTF_8);
|
||||||
Bundle bundle = myFhirCtx.newXmlParser().parseResource(Bundle.class, input);
|
Bundle bundle = myFhirContext.newXmlParser().parseResource(Bundle.class, input);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
mySystemDao.transaction(mySrd, bundle);
|
mySystemDao.transaction(mySrd, bundle);
|
||||||
|
@ -2458,7 +2458,7 @@ public class FhirSystemDaoDstu3Test extends BaseJpaDstu3SystemTest {
|
||||||
myDaoConfig.setAllowInlineMatchUrlReferences(true);
|
myDaoConfig.setAllowInlineMatchUrlReferences(true);
|
||||||
|
|
||||||
String input = IOUtils.toString(getClass().getResourceAsStream("/simone-conditional-url.xml"), StandardCharsets.UTF_8);
|
String input = IOUtils.toString(getClass().getResourceAsStream("/simone-conditional-url.xml"), StandardCharsets.UTF_8);
|
||||||
Bundle bundle = myFhirCtx.newXmlParser().parseResource(Bundle.class, input);
|
Bundle bundle = myFhirContext.newXmlParser().parseResource(Bundle.class, input);
|
||||||
|
|
||||||
try {
|
try {
|
||||||
mySystemDao.transaction(mySrd, bundle);
|
mySystemDao.transaction(mySrd, bundle);
|
||||||
|
@ -2488,10 +2488,10 @@ public class FhirSystemDaoDstu3Test extends BaseJpaDstu3SystemTest {
|
||||||
@Test
|
@Test
|
||||||
public void testTransactionWithMultiBundle() throws IOException {
|
public void testTransactionWithMultiBundle() throws IOException {
|
||||||
String inputBundleString = loadClasspath("/batch-error.xml");
|
String inputBundleString = loadClasspath("/batch-error.xml");
|
||||||
Bundle bundle = myFhirCtx.newXmlParser().parseResource(Bundle.class, inputBundleString);
|
Bundle bundle = myFhirContext.newXmlParser().parseResource(Bundle.class, inputBundleString);
|
||||||
Bundle resp = mySystemDao.transaction(mySrd, bundle);
|
Bundle resp = mySystemDao.transaction(mySrd, bundle);
|
||||||
|
|
||||||
ourLog.info(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(resp));
|
ourLog.info(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(resp));
|
||||||
|
|
||||||
assertEquals("201 Created", resp.getEntry().get(0).getResponse().getStatus());
|
assertEquals("201 Created", resp.getEntry().get(0).getResponse().getStatus());
|
||||||
|
|
||||||
|
@ -2555,7 +2555,7 @@ public class FhirSystemDaoDstu3Test extends BaseJpaDstu3SystemTest {
|
||||||
//@formatter:on
|
//@formatter:on
|
||||||
|
|
||||||
Bundle outputBundle = mySystemDao.transaction(mySrd, inputBundle);
|
Bundle outputBundle = mySystemDao.transaction(mySrd, inputBundle);
|
||||||
ourLog.info(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(outputBundle));
|
ourLog.info(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(outputBundle));
|
||||||
|
|
||||||
assertEquals(3, outputBundle.getEntry().size());
|
assertEquals(3, outputBundle.getEntry().size());
|
||||||
IdDt id0 = new IdDt(outputBundle.getEntry().get(0).getResponse().getLocation());
|
IdDt id0 = new IdDt(outputBundle.getEntry().get(0).getResponse().getLocation());
|
||||||
|
@ -2590,7 +2590,7 @@ public class FhirSystemDaoDstu3Test extends BaseJpaDstu3SystemTest {
|
||||||
Bundle input2 = createInputTransactionWithPlaceholderIdInMatchUrl(HTTPVerb.POST);
|
Bundle input2 = createInputTransactionWithPlaceholderIdInMatchUrl(HTTPVerb.POST);
|
||||||
Bundle output2 = mySystemDao.transaction(null, input2);
|
Bundle output2 = mySystemDao.transaction(null, input2);
|
||||||
|
|
||||||
ourLog.info(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(output2));
|
ourLog.info(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(output2));
|
||||||
|
|
||||||
assertEquals("200 OK", output2.getEntry().get(0).getResponse().getStatus());
|
assertEquals("200 OK", output2.getEntry().get(0).getResponse().getStatus());
|
||||||
assertEquals("200 OK", output2.getEntry().get(1).getResponse().getStatus());
|
assertEquals("200 OK", output2.getEntry().get(1).getResponse().getStatus());
|
||||||
|
@ -2620,7 +2620,7 @@ public class FhirSystemDaoDstu3Test extends BaseJpaDstu3SystemTest {
|
||||||
Bundle input2 = createInputTransactionWithPlaceholderIdInMatchUrl(HTTPVerb.PUT);
|
Bundle input2 = createInputTransactionWithPlaceholderIdInMatchUrl(HTTPVerb.PUT);
|
||||||
Bundle output2 = mySystemDao.transaction(null, input2);
|
Bundle output2 = mySystemDao.transaction(null, input2);
|
||||||
|
|
||||||
ourLog.info(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(output2));
|
ourLog.info(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(output2));
|
||||||
|
|
||||||
assertEquals("200 OK", output2.getEntry().get(0).getResponse().getStatus());
|
assertEquals("200 OK", output2.getEntry().get(0).getResponse().getStatus());
|
||||||
assertEquals("200 OK", output2.getEntry().get(1).getResponse().getStatus());
|
assertEquals("200 OK", output2.getEntry().get(1).getResponse().getStatus());
|
||||||
|
@ -2637,9 +2637,9 @@ public class FhirSystemDaoDstu3Test extends BaseJpaDstu3SystemTest {
|
||||||
// First bundle (name is Joshua)
|
// First bundle (name is Joshua)
|
||||||
|
|
||||||
String input = IOUtils.toString(getClass().getResource("/dstu3-post1.xml"), StandardCharsets.UTF_8);
|
String input = IOUtils.toString(getClass().getResource("/dstu3-post1.xml"), StandardCharsets.UTF_8);
|
||||||
Bundle request = myFhirCtx.newXmlParser().parseResource(Bundle.class, input);
|
Bundle request = myFhirContext.newXmlParser().parseResource(Bundle.class, input);
|
||||||
Bundle response = mySystemDao.transaction(mySrd, request);
|
Bundle response = mySystemDao.transaction(mySrd, request);
|
||||||
ourLog.info(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(response));
|
ourLog.info(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(response));
|
||||||
|
|
||||||
assertEquals(1, response.getEntry().size());
|
assertEquals(1, response.getEntry().size());
|
||||||
assertEquals("201 Created", response.getEntry().get(0).getResponse().getStatus());
|
assertEquals("201 Created", response.getEntry().get(0).getResponse().getStatus());
|
||||||
|
@ -2649,9 +2649,9 @@ public class FhirSystemDaoDstu3Test extends BaseJpaDstu3SystemTest {
|
||||||
// Now the second (name is Adam, shouldn't get used)
|
// Now the second (name is Adam, shouldn't get used)
|
||||||
|
|
||||||
input = IOUtils.toString(getClass().getResource("/dstu3-post2.xml"), StandardCharsets.UTF_8);
|
input = IOUtils.toString(getClass().getResource("/dstu3-post2.xml"), StandardCharsets.UTF_8);
|
||||||
request = myFhirCtx.newXmlParser().parseResource(Bundle.class, input);
|
request = myFhirContext.newXmlParser().parseResource(Bundle.class, input);
|
||||||
response = mySystemDao.transaction(mySrd, request);
|
response = mySystemDao.transaction(mySrd, request);
|
||||||
ourLog.info(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(response));
|
ourLog.info(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(response));
|
||||||
|
|
||||||
assertEquals(1, response.getEntry().size());
|
assertEquals(1, response.getEntry().size());
|
||||||
assertEquals("200 OK", response.getEntry().get(0).getResponse().getStatus());
|
assertEquals("200 OK", response.getEntry().get(0).getResponse().getStatus());
|
||||||
|
@ -2660,7 +2660,7 @@ public class FhirSystemDaoDstu3Test extends BaseJpaDstu3SystemTest {
|
||||||
assertEquals(id, id2);
|
assertEquals(id, id2);
|
||||||
|
|
||||||
Patient patient = myPatientDao.read(new IdType(id), mySrd);
|
Patient patient = myPatientDao.read(new IdType(id), mySrd);
|
||||||
ourLog.info(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(patient));
|
ourLog.info(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(patient));
|
||||||
assertEquals("Joshua", patient.getNameFirstRep().getGivenAsSingleString());
|
assertEquals("Joshua", patient.getNameFirstRep().getGivenAsSingleString());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2679,7 +2679,7 @@ public class FhirSystemDaoDstu3Test extends BaseJpaDstu3SystemTest {
|
||||||
request.addEntry().setResource(o).getRequest().setMethod(HTTPVerb.POST);
|
request.addEntry().setResource(o).getRequest().setMethod(HTTPVerb.POST);
|
||||||
|
|
||||||
Bundle resp = mySystemDao.transaction(mySrd, request);
|
Bundle resp = mySystemDao.transaction(mySrd, request);
|
||||||
ourLog.info(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(resp));
|
ourLog.info(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(resp));
|
||||||
|
|
||||||
String patientId = new IdType(resp.getEntry().get(0).getResponse().getLocation()).toUnqualifiedVersionless().getValue();
|
String patientId = new IdType(resp.getEntry().get(0).getResponse().getLocation()).toUnqualifiedVersionless().getValue();
|
||||||
assertThat(patientId, startsWith("Patient/"));
|
assertThat(patientId, startsWith("Patient/"));
|
||||||
|
@ -2706,10 +2706,10 @@ public class FhirSystemDaoDstu3Test extends BaseJpaDstu3SystemTest {
|
||||||
mo.setMedication(new Reference(medId));
|
mo.setMedication(new Reference(medId));
|
||||||
bundle.addEntry().setResource(mo).setFullUrl(mo.getIdElement().getValue()).getRequest().setMethod(HTTPVerb.POST);
|
bundle.addEntry().setResource(mo).setFullUrl(mo.getIdElement().getValue()).getRequest().setMethod(HTTPVerb.POST);
|
||||||
|
|
||||||
ourLog.info("Request:\n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(bundle));
|
ourLog.info("Request:\n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(bundle));
|
||||||
|
|
||||||
Bundle outcome = mySystemDao.transaction(mySrd, bundle);
|
Bundle outcome = mySystemDao.transaction(mySrd, bundle);
|
||||||
ourLog.info("Response:\n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(outcome));
|
ourLog.info("Response:\n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(outcome));
|
||||||
|
|
||||||
IdType medId1 = new IdType(outcome.getEntry().get(0).getResponse().getLocation());
|
IdType medId1 = new IdType(outcome.getEntry().get(0).getResponse().getLocation());
|
||||||
IdType medOrderId1 = new IdType(outcome.getEntry().get(1).getResponse().getLocation());
|
IdType medOrderId1 = new IdType(outcome.getEntry().get(1).getResponse().getLocation());
|
||||||
|
@ -2759,7 +2759,7 @@ public class FhirSystemDaoDstu3Test extends BaseJpaDstu3SystemTest {
|
||||||
request.addEntry().setResource(o).getRequest().setMethod(HTTPVerb.POST);
|
request.addEntry().setResource(o).getRequest().setMethod(HTTPVerb.POST);
|
||||||
|
|
||||||
Bundle resp = mySystemDao.transaction(mySrd, request);
|
Bundle resp = mySystemDao.transaction(mySrd, request);
|
||||||
ourLog.info(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(resp));
|
ourLog.info(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(resp));
|
||||||
|
|
||||||
String patientId = new IdType(resp.getEntry().get(0).getResponse().getLocation()).toUnqualifiedVersionless().getValue();
|
String patientId = new IdType(resp.getEntry().get(0).getResponse().getLocation()).toUnqualifiedVersionless().getValue();
|
||||||
assertThat(patientId, startsWith("Patient/"));
|
assertThat(patientId, startsWith("Patient/"));
|
||||||
|
@ -2793,7 +2793,7 @@ public class FhirSystemDaoDstu3Test extends BaseJpaDstu3SystemTest {
|
||||||
|
|
||||||
Bundle resp = mySystemDao.transaction(mySrd, res);
|
Bundle resp = mySystemDao.transaction(mySrd, res);
|
||||||
|
|
||||||
ourLog.info(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(resp));
|
ourLog.info(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(resp));
|
||||||
|
|
||||||
assertEquals(BundleType.TRANSACTIONRESPONSE, resp.getTypeElement().getValue());
|
assertEquals(BundleType.TRANSACTIONRESPONSE, resp.getTypeElement().getValue());
|
||||||
assertEquals(3, resp.getEntry().size());
|
assertEquals(3, resp.getEntry().size());
|
||||||
|
@ -2834,7 +2834,7 @@ public class FhirSystemDaoDstu3Test extends BaseJpaDstu3SystemTest {
|
||||||
|
|
||||||
Bundle resp = mySystemDao.transaction(mySrd, res);
|
Bundle resp = mySystemDao.transaction(mySrd, res);
|
||||||
|
|
||||||
ourLog.info(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(resp));
|
ourLog.info(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(resp));
|
||||||
|
|
||||||
assertEquals(BundleType.TRANSACTIONRESPONSE, resp.getTypeElement().getValue());
|
assertEquals(BundleType.TRANSACTIONRESPONSE, resp.getTypeElement().getValue());
|
||||||
assertEquals(3, resp.getEntry().size());
|
assertEquals(3, resp.getEntry().size());
|
||||||
|
|
|
@ -124,7 +124,7 @@ class DeleteExpungeDaoTest extends BaseJpaR4Test {
|
||||||
//See https://github.com/hapifhir/hapi-fhir/issues/2661
|
//See https://github.com/hapifhir/hapi-fhir/issues/2661
|
||||||
|
|
||||||
// setup
|
// setup
|
||||||
BundleBuilder builder = new BundleBuilder(myFhirCtx);
|
BundleBuilder builder = new BundleBuilder(myFhirContext);
|
||||||
for (int i = 0; i < 20; i++) {
|
for (int i = 0; i < 20; i++) {
|
||||||
Organization o = new Organization();
|
Organization o = new Organization();
|
||||||
o.setId("Organization/O-" + i);
|
o.setId("Organization/O-" + i);
|
||||||
|
|
|
@ -21,7 +21,7 @@ public abstract class BaseJpaR4SystemTest extends BaseJpaR4Test {
|
||||||
super.beforeInitMocks();
|
super.beforeInitMocks();
|
||||||
|
|
||||||
if (myServer == null) {
|
if (myServer == null) {
|
||||||
myServer = new RestfulServer(myFhirCtx, mySrdInterceptorService);
|
myServer = new RestfulServer(myFhirContext, mySrdInterceptorService);
|
||||||
|
|
||||||
PatientResourceProvider patientRp = new PatientResourceProvider();
|
PatientResourceProvider patientRp = new PatientResourceProvider();
|
||||||
patientRp.setDao(myPatientDao);
|
patientRp.setDao(myPatientDao);
|
||||||
|
|
|
@ -167,7 +167,6 @@ import org.hl7.fhir.r5.utils.validation.constants.BindingKind;
|
||||||
import org.hl7.fhir.r5.utils.validation.constants.CodedContentValidationPolicy;
|
import org.hl7.fhir.r5.utils.validation.constants.CodedContentValidationPolicy;
|
||||||
import org.hl7.fhir.r5.utils.validation.constants.ContainedReferenceValidationPolicy;
|
import org.hl7.fhir.r5.utils.validation.constants.ContainedReferenceValidationPolicy;
|
||||||
import org.hl7.fhir.r5.utils.validation.constants.ReferenceValidationPolicy;
|
import org.hl7.fhir.r5.utils.validation.constants.ReferenceValidationPolicy;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
|
||||||
import org.junit.jupiter.api.AfterEach;
|
import org.junit.jupiter.api.AfterEach;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
import org.junit.jupiter.api.extension.ExtendWith;
|
import org.junit.jupiter.api.extension.ExtendWith;
|
||||||
|
@ -316,7 +315,7 @@ public abstract class BaseJpaR4Test extends BaseJpaTest implements ITestDataBuil
|
||||||
@Autowired
|
@Autowired
|
||||||
protected EntityManager myEntityManager;
|
protected EntityManager myEntityManager;
|
||||||
@Autowired
|
@Autowired
|
||||||
protected FhirContext myFhirCtx;
|
protected FhirContext myFhirContext;
|
||||||
@Autowired
|
@Autowired
|
||||||
@Qualifier("myGroupDaoR4")
|
@Qualifier("myGroupDaoR4")
|
||||||
protected IFhirResourceDao<Group> myGroupDao;
|
protected IFhirResourceDao<Group> myGroupDao;
|
||||||
|
@ -566,7 +565,7 @@ public abstract class BaseJpaR4Test extends BaseJpaTest implements ITestDataBuil
|
||||||
|
|
||||||
@BeforeEach
|
@BeforeEach
|
||||||
public void beforeResetConfig() {
|
public void beforeResetConfig() {
|
||||||
myFhirCtx.setParserErrorHandler(new StrictErrorHandler());
|
myFhirContext.setParserErrorHandler(new StrictErrorHandler());
|
||||||
myValidationSettings.setLocalReferenceValidationDefaultPolicy(new ValidationSettings().getLocalReferenceValidationDefaultPolicy());
|
myValidationSettings.setLocalReferenceValidationDefaultPolicy(new ValidationSettings().getLocalReferenceValidationDefaultPolicy());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -583,17 +582,12 @@ public abstract class BaseJpaR4Test extends BaseJpaTest implements ITestDataBuil
|
||||||
}
|
}
|
||||||
|
|
||||||
protected String encode(IBaseResource theResource) {
|
protected String encode(IBaseResource theResource) {
|
||||||
return myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(theResource);
|
return myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(theResource);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public FhirContext getFhirContext() {
|
public FhirContext getFhirContext() {
|
||||||
return myFhirCtx;
|
return myFhirContext;
|
||||||
}
|
|
||||||
|
|
||||||
@Override
|
|
||||||
protected FhirContext getContext() {
|
|
||||||
return myFhirCtx;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -602,25 +596,25 @@ public abstract class BaseJpaR4Test extends BaseJpaTest implements ITestDataBuil
|
||||||
}
|
}
|
||||||
|
|
||||||
protected <T extends IBaseResource> T loadResourceFromClasspath(Class<T> type, String resourceName) throws IOException {
|
protected <T extends IBaseResource> T loadResourceFromClasspath(Class<T> type, String resourceName) throws IOException {
|
||||||
return ClasspathUtil.loadResource(myFhirCtx, type, resourceName);
|
return ClasspathUtil.loadResource(myFhirContext, type, resourceName);
|
||||||
}
|
}
|
||||||
|
|
||||||
protected void validate(IBaseResource theResource) {
|
protected void validate(IBaseResource theResource) {
|
||||||
FhirValidator validatorModule = myFhirCtx.newValidator();
|
FhirValidator validatorModule = myFhirContext.newValidator();
|
||||||
FhirInstanceValidator instanceValidator = new FhirInstanceValidator(myValidationSupport);
|
FhirInstanceValidator instanceValidator = new FhirInstanceValidator(myValidationSupport);
|
||||||
instanceValidator.setBestPracticeWarningLevel(BestPracticeWarningLevel.Ignore);
|
instanceValidator.setBestPracticeWarningLevel(BestPracticeWarningLevel.Ignore);
|
||||||
instanceValidator.setValidatorPolicyAdvisor(new ValidationPolicyAdvisor());
|
instanceValidator.setValidatorPolicyAdvisor(new ValidationPolicyAdvisor());
|
||||||
validatorModule.registerValidatorModule(instanceValidator);
|
validatorModule.registerValidatorModule(instanceValidator);
|
||||||
ValidationResult result = validatorModule.validateWithResult(theResource);
|
ValidationResult result = validatorModule.validateWithResult(theResource);
|
||||||
if (!result.isSuccessful()) {
|
if (!result.isSuccessful()) {
|
||||||
fail(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(result.toOperationOutcome()));
|
fail(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(result.toOperationOutcome()));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@SuppressWarnings("unchecked")
|
@SuppressWarnings("unchecked")
|
||||||
protected void upload(String theClasspath) throws IOException {
|
protected void upload(String theClasspath) throws IOException {
|
||||||
String resource = loadResource(theClasspath);
|
String resource = loadResource(theClasspath);
|
||||||
IParser parser = EncodingEnum.detectEncoding(resource).newParser(myFhirCtx);
|
IParser parser = EncodingEnum.detectEncoding(resource).newParser(myFhirContext);
|
||||||
IBaseResource resourceParsed = parser.parseResource(resource);
|
IBaseResource resourceParsed = parser.parseResource(resource);
|
||||||
IFhirResourceDao dao = myDaoRegistry.getResourceDao(resourceParsed.getIdElement().getResourceType());
|
IFhirResourceDao dao = myDaoRegistry.getResourceDao(resourceParsed.getIdElement().getResourceType());
|
||||||
dao.update(resourceParsed);
|
dao.update(resourceParsed);
|
||||||
|
@ -690,7 +684,7 @@ public abstract class BaseJpaR4Test extends BaseJpaTest implements ITestDataBuil
|
||||||
|
|
||||||
Optional<ValueSet.ValueSetExpansionContainsComponent> first = stream.findFirst();
|
Optional<ValueSet.ValueSetExpansionContainsComponent> first = stream.findFirst();
|
||||||
if (!first.isPresent()) {
|
if (!first.isPresent()) {
|
||||||
String expandedValueSetString = myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(theValueSet);
|
String expandedValueSetString = myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(theValueSet);
|
||||||
String failureMessage = String.format("Expanded ValueSet %s did not contain concept [%s|%s|%s] with [%d] designations. Outcome:\n%s", theValueSet.getId(), theSystem, theCode, theDisplay, theDesignationCount, expandedValueSetString);
|
String failureMessage = String.format("Expanded ValueSet %s did not contain concept [%s|%s|%s] with [%d] designations. Outcome:\n%s", theValueSet.getId(), theSystem, theCode, theDisplay, theDesignationCount, expandedValueSetString);
|
||||||
fail(failureMessage);
|
fail(failureMessage);
|
||||||
return null;
|
return null;
|
||||||
|
|
|
@ -94,7 +94,7 @@ abstract public class BaseR4SearchLastN extends BaseJpaTest {
|
||||||
protected ElasticsearchSvcImpl myElasticsearchSvc;
|
protected ElasticsearchSvcImpl myElasticsearchSvc;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
protected FhirContext getContext() {
|
protected FhirContext getFhirContext() {
|
||||||
return myFhirCtx;
|
return myFhirCtx;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -57,7 +57,7 @@ public class ChainingR4SearchTest extends BaseJpaR4Test {
|
||||||
|
|
||||||
@BeforeEach
|
@BeforeEach
|
||||||
public void before() throws Exception {
|
public void before() throws Exception {
|
||||||
myFhirCtx.setParserErrorHandler(new StrictErrorHandler());
|
myFhirContext.setParserErrorHandler(new StrictErrorHandler());
|
||||||
|
|
||||||
myDaoConfig.setAllowMultipleDelete(true);
|
myDaoConfig.setAllowMultipleDelete(true);
|
||||||
myDaoConfig.setSearchPreFetchThresholds(new DaoConfig().getSearchPreFetchThresholds());
|
myDaoConfig.setSearchPreFetchThresholds(new DaoConfig().getSearchPreFetchThresholds());
|
||||||
|
|
|
@ -34,7 +34,6 @@ import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Optional;
|
|
||||||
|
|
||||||
import static org.hamcrest.CoreMatchers.equalTo;
|
import static org.hamcrest.CoreMatchers.equalTo;
|
||||||
import static org.hamcrest.CoreMatchers.startsWith;
|
import static org.hamcrest.CoreMatchers.startsWith;
|
||||||
|
@ -211,7 +210,7 @@ public class FhirResourceDaoCreatePlaceholdersR4Test extends BaseJpaR4Test {
|
||||||
|
|
||||||
// Read the Observation
|
// Read the Observation
|
||||||
Observation createdObs = myObservationDao.read(id);
|
Observation createdObs = myObservationDao.read(id);
|
||||||
ourLog.info("\nObservation created:\n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(createdObs));
|
ourLog.info("\nObservation created:\n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(createdObs));
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Read the placeholder Patient referenced by the Observation
|
* Read the placeholder Patient referenced by the Observation
|
||||||
|
@ -219,7 +218,7 @@ public class FhirResourceDaoCreatePlaceholdersR4Test extends BaseJpaR4Test {
|
||||||
*/
|
*/
|
||||||
Patient placeholderPat = myPatientDao.read(new IdType(createdObs.getSubject().getReference()));
|
Patient placeholderPat = myPatientDao.read(new IdType(createdObs.getSubject().getReference()));
|
||||||
IIdType placeholderPatId = placeholderPat.getIdElement();
|
IIdType placeholderPatId = placeholderPat.getIdElement();
|
||||||
ourLog.info("\nPlaceholder Patient created:\n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(placeholderPat));
|
ourLog.info("\nPlaceholder Patient created:\n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(placeholderPat));
|
||||||
assertEquals(0, placeholderPat.getIdentifier().size());
|
assertEquals(0, placeholderPat.getIdentifier().size());
|
||||||
Extension extension = placeholderPat.getExtensionByUrl(HapiExtensions.EXT_RESOURCE_PLACEHOLDER);
|
Extension extension = placeholderPat.getExtensionByUrl(HapiExtensions.EXT_RESOURCE_PLACEHOLDER);
|
||||||
assertNotNull(extension);
|
assertNotNull(extension);
|
||||||
|
@ -237,7 +236,7 @@ public class FhirResourceDaoCreatePlaceholdersR4Test extends BaseJpaR4Test {
|
||||||
* Placeholder extension should not exist
|
* Placeholder extension should not exist
|
||||||
*/
|
*/
|
||||||
Patient updatedPat = myPatientDao.read(updatedPatId);
|
Patient updatedPat = myPatientDao.read(updatedPatId);
|
||||||
ourLog.info("\nUpdated Patient:\n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(updatedPat));
|
ourLog.info("\nUpdated Patient:\n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(updatedPat));
|
||||||
assertEquals(1, updatedPat.getIdentifier().size());
|
assertEquals(1, updatedPat.getIdentifier().size());
|
||||||
extension = updatedPat.getExtensionByUrl(HapiExtensions.EXT_RESOURCE_PLACEHOLDER);
|
extension = updatedPat.getExtensionByUrl(HapiExtensions.EXT_RESOURCE_PLACEHOLDER);
|
||||||
assertNull(extension);
|
assertNull(extension);
|
||||||
|
@ -256,10 +255,10 @@ public class FhirResourceDaoCreatePlaceholdersR4Test extends BaseJpaR4Test {
|
||||||
IIdType id = myObservationDao.create(obsToCreate, mySrd).getId();
|
IIdType id = myObservationDao.create(obsToCreate, mySrd).getId();
|
||||||
|
|
||||||
Observation createdObs = myObservationDao.read(id);
|
Observation createdObs = myObservationDao.read(id);
|
||||||
ourLog.info(myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(createdObs));
|
ourLog.info(myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(createdObs));
|
||||||
|
|
||||||
Patient patient = myPatientDao.read(new IdType(createdObs.getSubject().getReference()));
|
Patient patient = myPatientDao.read(new IdType(createdObs.getSubject().getReference()));
|
||||||
ourLog.info(myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(patient));
|
ourLog.info(myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(patient));
|
||||||
assertEquals(0, patient.getIdentifier().size());
|
assertEquals(0, patient.getIdentifier().size());
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -290,7 +289,7 @@ public class FhirResourceDaoCreatePlaceholdersR4Test extends BaseJpaR4Test {
|
||||||
|
|
||||||
//Read the Placeholder Patient
|
//Read the Placeholder Patient
|
||||||
Patient placeholderPat = myPatientDao.read(new IdType(createdObs.getSubject().getReference()));
|
Patient placeholderPat = myPatientDao.read(new IdType(createdObs.getSubject().getReference()));
|
||||||
ourLog.info("\nObservation created:\n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(createdObs));
|
ourLog.info("\nObservation created:\n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(createdObs));
|
||||||
|
|
||||||
//Ensure the Obs has the right placeholder ID.
|
//Ensure the Obs has the right placeholder ID.
|
||||||
IIdType placeholderPatId = placeholderPat.getIdElement();
|
IIdType placeholderPatId = placeholderPat.getIdElement();
|
||||||
|
@ -299,7 +298,7 @@ public class FhirResourceDaoCreatePlaceholdersR4Test extends BaseJpaR4Test {
|
||||||
/*
|
/*
|
||||||
* Should have a single identifier populated.
|
* Should have a single identifier populated.
|
||||||
*/
|
*/
|
||||||
ourLog.info("\nPlaceholder Patient created:\n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(placeholderPat));
|
ourLog.info("\nPlaceholder Patient created:\n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(placeholderPat));
|
||||||
assertEquals(1, placeholderPat.getIdentifier().size());
|
assertEquals(1, placeholderPat.getIdentifier().size());
|
||||||
List<Identifier> identifiers = placeholderPat.getIdentifier();
|
List<Identifier> identifiers = placeholderPat.getIdentifier();
|
||||||
Identifier identifier = identifiers.get(0);
|
Identifier identifier = identifiers.get(0);
|
||||||
|
@ -335,7 +334,7 @@ public class FhirResourceDaoCreatePlaceholdersR4Test extends BaseJpaR4Test {
|
||||||
|
|
||||||
//Read the Placeholder Patient
|
//Read the Placeholder Patient
|
||||||
Patient placeholderPat = myPatientDao.read(new IdType(createdObs.getSubject().getReference()));
|
Patient placeholderPat = myPatientDao.read(new IdType(createdObs.getSubject().getReference()));
|
||||||
ourLog.info("\nObservation created:\n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(createdObs));
|
ourLog.info("\nObservation created:\n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(createdObs));
|
||||||
|
|
||||||
//Ensure the Obs has the right placeholder ID.
|
//Ensure the Obs has the right placeholder ID.
|
||||||
IIdType placeholderPatId = placeholderPat.getIdElement();
|
IIdType placeholderPatId = placeholderPat.getIdElement();
|
||||||
|
@ -344,7 +343,7 @@ public class FhirResourceDaoCreatePlaceholdersR4Test extends BaseJpaR4Test {
|
||||||
/*
|
/*
|
||||||
* Should have a single identifier populated.
|
* Should have a single identifier populated.
|
||||||
*/
|
*/
|
||||||
ourLog.info("\nPlaceholder Patient created:\n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(placeholderPat));
|
ourLog.info("\nPlaceholder Patient created:\n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(placeholderPat));
|
||||||
assertEquals(1, placeholderPat.getIdentifier().size());
|
assertEquals(1, placeholderPat.getIdentifier().size());
|
||||||
List<Identifier> identifiers = placeholderPat.getIdentifier();
|
List<Identifier> identifiers = placeholderPat.getIdentifier();
|
||||||
Identifier identifier = identifiers.get(0);
|
Identifier identifier = identifiers.get(0);
|
||||||
|
@ -381,7 +380,7 @@ public class FhirResourceDaoCreatePlaceholdersR4Test extends BaseJpaR4Test {
|
||||||
|
|
||||||
//Read the Placeholder Patient
|
//Read the Placeholder Patient
|
||||||
Patient placeholderPat = myPatientDao.read(new IdType(createdObs.getSubject().getReference()));
|
Patient placeholderPat = myPatientDao.read(new IdType(createdObs.getSubject().getReference()));
|
||||||
ourLog.info("\nObservation created:\n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(createdObs));
|
ourLog.info("\nObservation created:\n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(createdObs));
|
||||||
|
|
||||||
//Ensure the Obs has the right placeholder ID.
|
//Ensure the Obs has the right placeholder ID.
|
||||||
IIdType placeholderPatId = placeholderPat.getIdElement();
|
IIdType placeholderPatId = placeholderPat.getIdElement();
|
||||||
|
@ -390,7 +389,7 @@ public class FhirResourceDaoCreatePlaceholdersR4Test extends BaseJpaR4Test {
|
||||||
/*
|
/*
|
||||||
* Should have a single identifier populated.
|
* Should have a single identifier populated.
|
||||||
*/
|
*/
|
||||||
ourLog.info("\nPlaceholder Patient created:\n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(placeholderPat));
|
ourLog.info("\nPlaceholder Patient created:\n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(placeholderPat));
|
||||||
assertEquals(1, placeholderPat.getIdentifier().size());
|
assertEquals(1, placeholderPat.getIdentifier().size());
|
||||||
List<Identifier> identifiers = placeholderPat.getIdentifier();
|
List<Identifier> identifiers = placeholderPat.getIdentifier();
|
||||||
Identifier identifier = identifiers.get(0);
|
Identifier identifier = identifiers.get(0);
|
||||||
|
@ -428,7 +427,7 @@ public class FhirResourceDaoCreatePlaceholdersR4Test extends BaseJpaR4Test {
|
||||||
|
|
||||||
//Read the Placeholder Patient
|
//Read the Placeholder Patient
|
||||||
Patient placeholderPat = myPatientDao.read(new IdType(createdObs.getSubject().getReference()));
|
Patient placeholderPat = myPatientDao.read(new IdType(createdObs.getSubject().getReference()));
|
||||||
ourLog.info("\nObservation created:\n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(createdObs));
|
ourLog.info("\nObservation created:\n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(createdObs));
|
||||||
|
|
||||||
//Ensure the Obs has the right placeholder ID.
|
//Ensure the Obs has the right placeholder ID.
|
||||||
IIdType placeholderPatId = placeholderPat.getIdElement();
|
IIdType placeholderPatId = placeholderPat.getIdElement();
|
||||||
|
@ -437,7 +436,7 @@ public class FhirResourceDaoCreatePlaceholdersR4Test extends BaseJpaR4Test {
|
||||||
/*
|
/*
|
||||||
* Placeholder Identifiers should both be populated since they were both provided, and did not match
|
* Placeholder Identifiers should both be populated since they were both provided, and did not match
|
||||||
*/
|
*/
|
||||||
ourLog.info("\nPlaceholder Patient created:\n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(placeholderPat));
|
ourLog.info("\nPlaceholder Patient created:\n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(placeholderPat));
|
||||||
assertEquals(2, placeholderPat.getIdentifier().size());
|
assertEquals(2, placeholderPat.getIdentifier().size());
|
||||||
List<Identifier> identifiers = placeholderPat.getIdentifier();
|
List<Identifier> identifiers = placeholderPat.getIdentifier();
|
||||||
|
|
||||||
|
@ -458,7 +457,7 @@ public class FhirResourceDaoCreatePlaceholdersR4Test extends BaseJpaR4Test {
|
||||||
|
|
||||||
// Read the conditionally updated Patient
|
// Read the conditionally updated Patient
|
||||||
Patient conditionalUpdatePat = myPatientDao.read(conditionalUpdatePatId);
|
Patient conditionalUpdatePat = myPatientDao.read(conditionalUpdatePatId);
|
||||||
ourLog.info("\nConditionally updated Patient:\n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(conditionalUpdatePat));
|
ourLog.info("\nConditionally updated Patient:\n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(conditionalUpdatePat));
|
||||||
assertEquals(1, conditionalUpdatePat.getIdentifier().size());
|
assertEquals(1, conditionalUpdatePat.getIdentifier().size());
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -466,7 +465,7 @@ public class FhirResourceDaoCreatePlaceholdersR4Test extends BaseJpaR4Test {
|
||||||
* ID of placeholder Patient should match ID of conditionally updated Patient
|
* ID of placeholder Patient should match ID of conditionally updated Patient
|
||||||
*/
|
*/
|
||||||
createdObs = myObservationDao.read(obsId);
|
createdObs = myObservationDao.read(obsId);
|
||||||
ourLog.info("\nObservation read after Patient update:\n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(createdObs));
|
ourLog.info("\nObservation read after Patient update:\n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(createdObs));
|
||||||
assertEquals(createdObs.getSubject().getReference(), conditionalUpdatePatId.toUnqualifiedVersionless().getValueAsString());
|
assertEquals(createdObs.getSubject().getReference(), conditionalUpdatePatId.toUnqualifiedVersionless().getValueAsString());
|
||||||
assertEquals(placeholderPatId.toUnqualifiedVersionless().getValueAsString(), conditionalUpdatePatId.toUnqualifiedVersionless().getValueAsString());
|
assertEquals(placeholderPatId.toUnqualifiedVersionless().getValueAsString(), conditionalUpdatePatId.toUnqualifiedVersionless().getValueAsString());
|
||||||
}
|
}
|
||||||
|
@ -488,7 +487,7 @@ public class FhirResourceDaoCreatePlaceholdersR4Test extends BaseJpaR4Test {
|
||||||
|
|
||||||
// Read the Observation
|
// Read the Observation
|
||||||
Observation createdObs = myObservationDao.read(obsId);
|
Observation createdObs = myObservationDao.read(obsId);
|
||||||
ourLog.info("\nObservation created:\n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(createdObs));
|
ourLog.info("\nObservation created:\n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(createdObs));
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Read the placeholder Patient referenced by the Observation
|
* Read the placeholder Patient referenced by the Observation
|
||||||
|
@ -496,7 +495,7 @@ public class FhirResourceDaoCreatePlaceholdersR4Test extends BaseJpaR4Test {
|
||||||
*/
|
*/
|
||||||
Patient placeholderPat = myPatientDao.read(new IdType(createdObs.getSubject().getReference()));
|
Patient placeholderPat = myPatientDao.read(new IdType(createdObs.getSubject().getReference()));
|
||||||
IIdType placeholderPatId = placeholderPat.getIdElement();
|
IIdType placeholderPatId = placeholderPat.getIdElement();
|
||||||
ourLog.info("\nPlaceholder Patient created:\n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(placeholderPat));
|
ourLog.info("\nPlaceholder Patient created:\n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(placeholderPat));
|
||||||
assertEquals(1, placeholderPat.getIdentifier().size());
|
assertEquals(1, placeholderPat.getIdentifier().size());
|
||||||
assertEquals(createdObs.getSubject().getReference(), placeholderPatId.toUnqualifiedVersionless().getValueAsString());
|
assertEquals(createdObs.getSubject().getReference(), placeholderPatId.toUnqualifiedVersionless().getValueAsString());
|
||||||
|
|
||||||
|
@ -508,7 +507,7 @@ public class FhirResourceDaoCreatePlaceholdersR4Test extends BaseJpaR4Test {
|
||||||
|
|
||||||
// Read the conditionally updated Patient
|
// Read the conditionally updated Patient
|
||||||
Patient conditionalUpdatePat = myPatientDao.read(conditionalUpdatePatId);
|
Patient conditionalUpdatePat = myPatientDao.read(conditionalUpdatePatId);
|
||||||
ourLog.info("\nConditionally updated Patient:\n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(conditionalUpdatePat));
|
ourLog.info("\nConditionally updated Patient:\n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(conditionalUpdatePat));
|
||||||
assertEquals(1, conditionalUpdatePat.getIdentifier().size());
|
assertEquals(1, conditionalUpdatePat.getIdentifier().size());
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -516,7 +515,7 @@ public class FhirResourceDaoCreatePlaceholdersR4Test extends BaseJpaR4Test {
|
||||||
* ID of placeholder Patient should match ID of conditionally updated Patient
|
* ID of placeholder Patient should match ID of conditionally updated Patient
|
||||||
*/
|
*/
|
||||||
createdObs = myObservationDao.read(obsId);
|
createdObs = myObservationDao.read(obsId);
|
||||||
ourLog.info("\nObservation read after Patient update:\n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(createdObs));
|
ourLog.info("\nObservation read after Patient update:\n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(createdObs));
|
||||||
assertEquals(createdObs.getSubject().getReference(), conditionalUpdatePatId.toUnqualifiedVersionless().getValueAsString());
|
assertEquals(createdObs.getSubject().getReference(), conditionalUpdatePatId.toUnqualifiedVersionless().getValueAsString());
|
||||||
assertEquals(placeholderPatId.toUnqualifiedVersionless().getValueAsString(), conditionalUpdatePatId.toUnqualifiedVersionless().getValueAsString());
|
assertEquals(placeholderPatId.toUnqualifiedVersionless().getValueAsString(), conditionalUpdatePatId.toUnqualifiedVersionless().getValueAsString());
|
||||||
}
|
}
|
||||||
|
@ -533,10 +532,10 @@ public class FhirResourceDaoCreatePlaceholdersR4Test extends BaseJpaR4Test {
|
||||||
IIdType id = myObservationDao.create(obsToCreate, mySrd).getId();
|
IIdType id = myObservationDao.create(obsToCreate, mySrd).getId();
|
||||||
|
|
||||||
Observation createdObs = myObservationDao.read(id);
|
Observation createdObs = myObservationDao.read(id);
|
||||||
ourLog.info(myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(createdObs));
|
ourLog.info(myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(createdObs));
|
||||||
|
|
||||||
Patient patient = myPatientDao.read(new IdType(createdObs.getSubject().getReference()));
|
Patient patient = myPatientDao.read(new IdType(createdObs.getSubject().getReference()));
|
||||||
ourLog.info(myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(patient));
|
ourLog.info(myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(patient));
|
||||||
assertEquals(1, patient.getIdentifier().size());
|
assertEquals(1, patient.getIdentifier().size());
|
||||||
assertEquals("http://foo", patient.getIdentifier().get(0).getSystem());
|
assertEquals("http://foo", patient.getIdentifier().get(0).getSystem());
|
||||||
assertEquals("123", patient.getIdentifier().get(0).getValue());
|
assertEquals("123", patient.getIdentifier().get(0).getValue());
|
||||||
|
@ -556,7 +555,7 @@ public class FhirResourceDaoCreatePlaceholdersR4Test extends BaseJpaR4Test {
|
||||||
IIdType id = myAuditEventDao.create(eventToCreate, mySrd).getId();
|
IIdType id = myAuditEventDao.create(eventToCreate, mySrd).getId();
|
||||||
|
|
||||||
AuditEvent createdEvent = myAuditEventDao.read(id);
|
AuditEvent createdEvent = myAuditEventDao.read(id);
|
||||||
ourLog.info(myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(createdEvent));
|
ourLog.info(myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(createdEvent));
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -587,7 +586,7 @@ public class FhirResourceDaoCreatePlaceholdersR4Test extends BaseJpaR4Test {
|
||||||
obs.setId("Observation/DEF");
|
obs.setId("Observation/DEF");
|
||||||
Reference patientRef = new Reference("Patient/RED");
|
Reference patientRef = new Reference("Patient/RED");
|
||||||
obs.setSubject(patientRef);
|
obs.setSubject(patientRef);
|
||||||
BundleBuilder builder = new BundleBuilder(myFhirCtx);
|
BundleBuilder builder = new BundleBuilder(myFhirContext);
|
||||||
builder.addTransactionUpdateEntry(obs);
|
builder.addTransactionUpdateEntry(obs);
|
||||||
|
|
||||||
mySystemDao.transaction(new SystemRequestDetails(), (Bundle) builder.getBundle());
|
mySystemDao.transaction(new SystemRequestDetails(), (Bundle) builder.getBundle());
|
||||||
|
@ -619,7 +618,7 @@ public class FhirResourceDaoCreatePlaceholdersR4Test extends BaseJpaR4Test {
|
||||||
obs.setId("Observation/DEF");
|
obs.setId("Observation/DEF");
|
||||||
Reference patientRef = new Reference(patientId);
|
Reference patientRef = new Reference(patientId);
|
||||||
obs.setSubject(patientRef);
|
obs.setSubject(patientRef);
|
||||||
BundleBuilder builder = new BundleBuilder(myFhirCtx);
|
BundleBuilder builder = new BundleBuilder(myFhirContext);
|
||||||
builder.addTransactionUpdateEntry(obs);
|
builder.addTransactionUpdateEntry(obs);
|
||||||
|
|
||||||
Bundle transaction = mySystemDao.transaction(new SystemRequestDetails(), (Bundle) builder.getBundle());
|
Bundle transaction = mySystemDao.transaction(new SystemRequestDetails(), (Bundle) builder.getBundle());
|
||||||
|
@ -655,7 +654,7 @@ public class FhirResourceDaoCreatePlaceholdersR4Test extends BaseJpaR4Test {
|
||||||
obs.setId("Observation/DEF");
|
obs.setId("Observation/DEF");
|
||||||
Reference patientRef = new Reference("Patient/" + ret.getId().getIdPart());
|
Reference patientRef = new Reference("Patient/" + ret.getId().getIdPart());
|
||||||
obs.setSubject(patientRef);
|
obs.setSubject(patientRef);
|
||||||
BundleBuilder builder = new BundleBuilder(myFhirCtx);
|
BundleBuilder builder = new BundleBuilder(myFhirContext);
|
||||||
builder.addTransactionUpdateEntry(obs);
|
builder.addTransactionUpdateEntry(obs);
|
||||||
|
|
||||||
Bundle transaction = mySystemDao.transaction(new SystemRequestDetails(), (Bundle) builder.getBundle());
|
Bundle transaction = mySystemDao.transaction(new SystemRequestDetails(), (Bundle) builder.getBundle());
|
||||||
|
@ -680,7 +679,7 @@ public class FhirResourceDaoCreatePlaceholdersR4Test extends BaseJpaR4Test {
|
||||||
obs1.setId("Observation/DEF1");
|
obs1.setId("Observation/DEF1");
|
||||||
Reference patientRef = new Reference("Patient/RED");
|
Reference patientRef = new Reference("Patient/RED");
|
||||||
obs1.setSubject(patientRef);
|
obs1.setSubject(patientRef);
|
||||||
BundleBuilder builder = new BundleBuilder(myFhirCtx);
|
BundleBuilder builder = new BundleBuilder(myFhirContext);
|
||||||
Observation obs2 = new Observation();
|
Observation obs2 = new Observation();
|
||||||
obs2.setId("Observation/DEF2");
|
obs2.setId("Observation/DEF2");
|
||||||
obs2.setSubject(patientRef);
|
obs2.setSubject(patientRef);
|
||||||
|
@ -702,7 +701,7 @@ public class FhirResourceDaoCreatePlaceholdersR4Test extends BaseJpaR4Test {
|
||||||
obs1.setId("Observation/DEF1");
|
obs1.setId("Observation/DEF1");
|
||||||
Reference patientRef = new Reference("Patient/RED");
|
Reference patientRef = new Reference("Patient/RED");
|
||||||
obs1.setSubject(patientRef);
|
obs1.setSubject(patientRef);
|
||||||
BundleBuilder builder = new BundleBuilder(myFhirCtx);
|
BundleBuilder builder = new BundleBuilder(myFhirContext);
|
||||||
Observation obs2 = new Observation();
|
Observation obs2 = new Observation();
|
||||||
obs2.setId("Observation/DEF2");
|
obs2.setId("Observation/DEF2");
|
||||||
obs2.setSubject(patientRef);
|
obs2.setSubject(patientRef);
|
||||||
|
|
|
@ -4,9 +4,9 @@ import ca.uhn.fhir.jpa.searchparam.SearchParameterMap;
|
||||||
import ca.uhn.fhir.rest.api.server.IBundleProvider;
|
import ca.uhn.fhir.rest.api.server.IBundleProvider;
|
||||||
import org.hl7.fhir.instance.model.api.IIdType;
|
import org.hl7.fhir.instance.model.api.IIdType;
|
||||||
import org.hl7.fhir.r4.model.StringType;
|
import org.hl7.fhir.r4.model.StringType;
|
||||||
import org.junit.jupiter.api.Test;
|
|
||||||
import org.junit.jupiter.api.AfterEach;
|
import org.junit.jupiter.api.AfterEach;
|
||||||
import org.junit.jupiter.api.BeforeEach;
|
import org.junit.jupiter.api.BeforeEach;
|
||||||
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
|
|
||||||
|
@ -17,7 +17,7 @@ public class FhirResourceDaoCustomTypeR4Test extends BaseJpaR4Test {
|
||||||
|
|
||||||
@BeforeEach
|
@BeforeEach
|
||||||
public void before() {
|
public void before() {
|
||||||
myFhirCtx.setDefaultTypeForProfile(CustomObservationR4.PROFILE, CustomObservationR4.class);
|
myFhirContext.setDefaultTypeForProfile(CustomObservationR4.PROFILE, CustomObservationR4.class);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
|
@ -39,6 +39,6 @@ public class FhirResourceDaoCustomTypeR4Test extends BaseJpaR4Test {
|
||||||
|
|
||||||
@AfterEach
|
@AfterEach
|
||||||
public void after() {
|
public void after() {
|
||||||
myFhirCtx.setDefaultTypeForProfile(CustomObservationR4.PROFILE, null);
|
myFhirContext.setDefaultTypeForProfile(CustomObservationR4.PROFILE, null);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,10 +1,8 @@
|
||||||
package ca.uhn.fhir.jpa.dao.r4;
|
package ca.uhn.fhir.jpa.dao.r4;
|
||||||
|
|
||||||
import ca.uhn.fhir.jpa.api.model.DaoMethodOutcome;
|
import ca.uhn.fhir.jpa.api.model.DaoMethodOutcome;
|
||||||
import ca.uhn.fhir.util.TestUtil;
|
|
||||||
import org.apache.commons.io.IOUtils;
|
import org.apache.commons.io.IOUtils;
|
||||||
import org.hl7.fhir.r4.model.Bundle;
|
import org.hl7.fhir.r4.model.Bundle;
|
||||||
import org.junit.jupiter.api.AfterAll;
|
|
||||||
import org.junit.jupiter.api.Test;
|
import org.junit.jupiter.api.Test;
|
||||||
|
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
|
@ -16,7 +14,7 @@ public class FhirResourceDaoDocumentR4Test extends BaseJpaR4Test {
|
||||||
@Test
|
@Test
|
||||||
public void testPostDocument() throws Exception {
|
public void testPostDocument() throws Exception {
|
||||||
String input = IOUtils.toString(getClass().getResourceAsStream("/sample-document.xml"), StandardCharsets.UTF_8);
|
String input = IOUtils.toString(getClass().getResourceAsStream("/sample-document.xml"), StandardCharsets.UTF_8);
|
||||||
Bundle inputBundle = myFhirCtx.newXmlParser().parseResource(Bundle.class, input);
|
Bundle inputBundle = myFhirContext.newXmlParser().parseResource(Bundle.class, input);
|
||||||
DaoMethodOutcome responseBundle = myBundleDao.create(inputBundle, mySrd);
|
DaoMethodOutcome responseBundle = myBundleDao.create(inputBundle, mySrd);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -29,7 +29,7 @@ public class FhirResourceDaoR4CodeSystemTest extends BaseJpaR4Test {
|
||||||
TermReindexingSvcImpl.setForceSaveDeferredAlwaysForUnitTest(true);
|
TermReindexingSvcImpl.setForceSaveDeferredAlwaysForUnitTest(true);
|
||||||
|
|
||||||
String input = IOUtils.toString(getClass().getResource("/r4/codesystem_complete.json"), StandardCharsets.UTF_8);
|
String input = IOUtils.toString(getClass().getResource("/r4/codesystem_complete.json"), StandardCharsets.UTF_8);
|
||||||
CodeSystem cs = myFhirCtx.newJsonParser().parseResource(CodeSystem.class, input);
|
CodeSystem cs = myFhirContext.newJsonParser().parseResource(CodeSystem.class, input);
|
||||||
myCodeSystemDao.create(cs, mySrd);
|
myCodeSystemDao.create(cs, mySrd);
|
||||||
|
|
||||||
myResourceReindexingSvc.markAllResourcesForReindexing();
|
myResourceReindexingSvc.markAllResourcesForReindexing();
|
||||||
|
|
|
@ -492,7 +492,7 @@ public class FhirResourceDaoR4ComboUniqueParamTest extends BaseComboParamsR4Test
|
||||||
.setValue(new BooleanType(true));
|
.setValue(new BooleanType(true));
|
||||||
mySearchParameterDao.create(sp);
|
mySearchParameterDao.create(sp);
|
||||||
mySearchParamRegistry.forceRefresh();
|
mySearchParamRegistry.forceRefresh();
|
||||||
ourLog.info(myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(sp));
|
ourLog.info(myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(sp));
|
||||||
|
|
||||||
// Now create matching/non-matching resources
|
// Now create matching/non-matching resources
|
||||||
Patient pt = new Patient();
|
Patient pt = new Patient();
|
||||||
|
@ -977,11 +977,11 @@ public class FhirResourceDaoR4ComboUniqueParamTest extends BaseComboParamsR4Test
|
||||||
" ]\n" +
|
" ]\n" +
|
||||||
"}";
|
"}";
|
||||||
|
|
||||||
Bundle inputBundle = myFhirCtx.newJsonParser().parseResource(Bundle.class, input);
|
Bundle inputBundle = myFhirContext.newJsonParser().parseResource(Bundle.class, input);
|
||||||
ourLog.info(myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(inputBundle));
|
ourLog.info(myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(inputBundle));
|
||||||
mySystemDao.transaction(mySrd, inputBundle);
|
mySystemDao.transaction(mySrd, inputBundle);
|
||||||
|
|
||||||
inputBundle = myFhirCtx.newJsonParser().parseResource(Bundle.class, input);
|
inputBundle = myFhirContext.newJsonParser().parseResource(Bundle.class, input);
|
||||||
mySystemDao.transaction(mySrd, inputBundle);
|
mySystemDao.transaction(mySrd, inputBundle);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -81,7 +81,7 @@ public class FhirResourceDaoR4ConceptMapTest extends BaseJpaR4Test {
|
||||||
public void testTranslateByCodeSystemsAndSourceCodeOneToMany() {
|
public void testTranslateByCodeSystemsAndSourceCodeOneToMany() {
|
||||||
ConceptMap conceptMap = myConceptMapDao.read(myConceptMapId);
|
ConceptMap conceptMap = myConceptMapDao.read(myConceptMapId);
|
||||||
|
|
||||||
ourLog.info("ConceptMap:\n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(conceptMap));
|
ourLog.info("ConceptMap:\n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(conceptMap));
|
||||||
|
|
||||||
new TransactionTemplate(myTxManager).execute(new TransactionCallbackWithoutResult() {
|
new TransactionTemplate(myTxManager).execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -125,7 +125,7 @@ public class FhirResourceDaoR4ConceptMapTest extends BaseJpaR4Test {
|
||||||
public void testTranslateByCodeSystemsAndSourceCodeOneToOne() {
|
public void testTranslateByCodeSystemsAndSourceCodeOneToOne() {
|
||||||
ConceptMap conceptMap = myConceptMapDao.read(myConceptMapId);
|
ConceptMap conceptMap = myConceptMapDao.read(myConceptMapId);
|
||||||
|
|
||||||
ourLog.info("ConceptMap:\n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(conceptMap));
|
ourLog.info("ConceptMap:\n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(conceptMap));
|
||||||
|
|
||||||
new TransactionTemplate(myTxManager).execute(new TransactionCallbackWithoutResult() {
|
new TransactionTemplate(myTxManager).execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -160,7 +160,7 @@ public class FhirResourceDaoR4ConceptMapTest extends BaseJpaR4Test {
|
||||||
public void testTranslateByCodeSystemsAndSourceCodeUnmapped() {
|
public void testTranslateByCodeSystemsAndSourceCodeUnmapped() {
|
||||||
ConceptMap conceptMap = myConceptMapDao.read(myConceptMapId);
|
ConceptMap conceptMap = myConceptMapDao.read(myConceptMapId);
|
||||||
|
|
||||||
ourLog.info("ConceptMap:\n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(conceptMap));
|
ourLog.info("ConceptMap:\n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(conceptMap));
|
||||||
|
|
||||||
new TransactionTemplate(myTxManager).execute(new TransactionCallbackWithoutResult() {
|
new TransactionTemplate(myTxManager).execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -187,7 +187,7 @@ public class FhirResourceDaoR4ConceptMapTest extends BaseJpaR4Test {
|
||||||
public void testTranslateUsingPredicatesWithCodeOnly() {
|
public void testTranslateUsingPredicatesWithCodeOnly() {
|
||||||
ConceptMap conceptMap = myConceptMapDao.read(myConceptMapId);
|
ConceptMap conceptMap = myConceptMapDao.read(myConceptMapId);
|
||||||
|
|
||||||
ourLog.info("ConceptMap:\n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(conceptMap));
|
ourLog.info("ConceptMap:\n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(conceptMap));
|
||||||
|
|
||||||
new TransactionTemplate(myTxManager).execute(new TransactionCallbackWithoutResult() {
|
new TransactionTemplate(myTxManager).execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -238,7 +238,7 @@ public class FhirResourceDaoR4ConceptMapTest extends BaseJpaR4Test {
|
||||||
public void testTranslateUsingPredicatesWithSourceAndTargetSystem2() {
|
public void testTranslateUsingPredicatesWithSourceAndTargetSystem2() {
|
||||||
ConceptMap conceptMap = myConceptMapDao.read(myConceptMapId);
|
ConceptMap conceptMap = myConceptMapDao.read(myConceptMapId);
|
||||||
|
|
||||||
ourLog.info("ConceptMap:\n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(conceptMap));
|
ourLog.info("ConceptMap:\n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(conceptMap));
|
||||||
|
|
||||||
new TransactionTemplate(myTxManager).execute(new TransactionCallbackWithoutResult() {
|
new TransactionTemplate(myTxManager).execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -277,7 +277,7 @@ public class FhirResourceDaoR4ConceptMapTest extends BaseJpaR4Test {
|
||||||
public void testTranslateUsingPredicatesWithSourceAndTargetSystem3() {
|
public void testTranslateUsingPredicatesWithSourceAndTargetSystem3() {
|
||||||
ConceptMap conceptMap = myConceptMapDao.read(myConceptMapId);
|
ConceptMap conceptMap = myConceptMapDao.read(myConceptMapId);
|
||||||
|
|
||||||
ourLog.info("ConceptMap:\n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(conceptMap));
|
ourLog.info("ConceptMap:\n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(conceptMap));
|
||||||
|
|
||||||
new TransactionTemplate(myTxManager).execute(new TransactionCallbackWithoutResult() {
|
new TransactionTemplate(myTxManager).execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -324,7 +324,7 @@ public class FhirResourceDaoR4ConceptMapTest extends BaseJpaR4Test {
|
||||||
public void testTranslateUsingPredicatesWithSourceSystem() {
|
public void testTranslateUsingPredicatesWithSourceSystem() {
|
||||||
ConceptMap conceptMap = myConceptMapDao.read(myConceptMapId);
|
ConceptMap conceptMap = myConceptMapDao.read(myConceptMapId);
|
||||||
|
|
||||||
ourLog.info("ConceptMap:\n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(conceptMap));
|
ourLog.info("ConceptMap:\n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(conceptMap));
|
||||||
|
|
||||||
new TransactionTemplate(myTxManager).execute(new TransactionCallbackWithoutResult() {
|
new TransactionTemplate(myTxManager).execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -377,7 +377,7 @@ public class FhirResourceDaoR4ConceptMapTest extends BaseJpaR4Test {
|
||||||
public void testTranslateUsingPredicatesWithSourceSystemAndVersion1() {
|
public void testTranslateUsingPredicatesWithSourceSystemAndVersion1() {
|
||||||
ConceptMap conceptMap = myConceptMapDao.read(myConceptMapId);
|
ConceptMap conceptMap = myConceptMapDao.read(myConceptMapId);
|
||||||
|
|
||||||
ourLog.info("ConceptMap:\n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(conceptMap));
|
ourLog.info("ConceptMap:\n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(conceptMap));
|
||||||
|
|
||||||
new TransactionTemplate(myTxManager).execute(new TransactionCallbackWithoutResult() {
|
new TransactionTemplate(myTxManager).execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -416,7 +416,7 @@ public class FhirResourceDaoR4ConceptMapTest extends BaseJpaR4Test {
|
||||||
public void testTranslateUsingPredicatesWithSourceSystemAndVersion3() {
|
public void testTranslateUsingPredicatesWithSourceSystemAndVersion3() {
|
||||||
ConceptMap conceptMap = myConceptMapDao.read(myConceptMapId);
|
ConceptMap conceptMap = myConceptMapDao.read(myConceptMapId);
|
||||||
|
|
||||||
ourLog.info("ConceptMap:\n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(conceptMap));
|
ourLog.info("ConceptMap:\n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(conceptMap));
|
||||||
|
|
||||||
new TransactionTemplate(myTxManager).execute(new TransactionCallbackWithoutResult() {
|
new TransactionTemplate(myTxManager).execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -463,7 +463,7 @@ public class FhirResourceDaoR4ConceptMapTest extends BaseJpaR4Test {
|
||||||
public void testTranslateUsingPredicatesWithSourceValueSet() {
|
public void testTranslateUsingPredicatesWithSourceValueSet() {
|
||||||
ConceptMap conceptMap = myConceptMapDao.read(myConceptMapId);
|
ConceptMap conceptMap = myConceptMapDao.read(myConceptMapId);
|
||||||
|
|
||||||
ourLog.info("ConceptMap:\n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(conceptMap));
|
ourLog.info("ConceptMap:\n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(conceptMap));
|
||||||
|
|
||||||
new TransactionTemplate(myTxManager).execute(new TransactionCallbackWithoutResult() {
|
new TransactionTemplate(myTxManager).execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -516,7 +516,7 @@ public class FhirResourceDaoR4ConceptMapTest extends BaseJpaR4Test {
|
||||||
public void testTranslateUsingPredicatesWithTargetValueSet() {
|
public void testTranslateUsingPredicatesWithTargetValueSet() {
|
||||||
ConceptMap conceptMap = myConceptMapDao.read(myConceptMapId);
|
ConceptMap conceptMap = myConceptMapDao.read(myConceptMapId);
|
||||||
|
|
||||||
ourLog.info("ConceptMap:\n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(conceptMap));
|
ourLog.info("ConceptMap:\n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(conceptMap));
|
||||||
|
|
||||||
new TransactionTemplate(myTxManager).execute(new TransactionCallbackWithoutResult() {
|
new TransactionTemplate(myTxManager).execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -569,7 +569,7 @@ public class FhirResourceDaoR4ConceptMapTest extends BaseJpaR4Test {
|
||||||
public void testTranslateWithReverse() {
|
public void testTranslateWithReverse() {
|
||||||
ConceptMap conceptMap = myConceptMapDao.read(myConceptMapId);
|
ConceptMap conceptMap = myConceptMapDao.read(myConceptMapId);
|
||||||
|
|
||||||
ourLog.info("ConceptMap:\n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(conceptMap));
|
ourLog.info("ConceptMap:\n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(conceptMap));
|
||||||
|
|
||||||
new TransactionTemplate(myTxManager).execute(new TransactionCallbackWithoutResult() {
|
new TransactionTemplate(myTxManager).execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -717,7 +717,7 @@ public class FhirResourceDaoR4ConceptMapTest extends BaseJpaR4Test {
|
||||||
public void testTranslateWithReverseHavingEquivalence() {
|
public void testTranslateWithReverseHavingEquivalence() {
|
||||||
ConceptMap conceptMap = myConceptMapDao.read(myConceptMapId);
|
ConceptMap conceptMap = myConceptMapDao.read(myConceptMapId);
|
||||||
|
|
||||||
ourLog.info("ConceptMap:\n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(conceptMap));
|
ourLog.info("ConceptMap:\n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(conceptMap));
|
||||||
|
|
||||||
new TransactionTemplate(myTxManager).execute(new TransactionCallbackWithoutResult() {
|
new TransactionTemplate(myTxManager).execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -758,7 +758,7 @@ public class FhirResourceDaoR4ConceptMapTest extends BaseJpaR4Test {
|
||||||
public void testTranslateWithReverseByCodeSystemsAndSourceCodeUnmapped() {
|
public void testTranslateWithReverseByCodeSystemsAndSourceCodeUnmapped() {
|
||||||
ConceptMap conceptMap = myConceptMapDao.read(myConceptMapId);
|
ConceptMap conceptMap = myConceptMapDao.read(myConceptMapId);
|
||||||
|
|
||||||
ourLog.info("ConceptMap:\n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(conceptMap));
|
ourLog.info("ConceptMap:\n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(conceptMap));
|
||||||
|
|
||||||
new TransactionTemplate(myTxManager).execute(new TransactionCallbackWithoutResult() {
|
new TransactionTemplate(myTxManager).execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -786,7 +786,7 @@ public class FhirResourceDaoR4ConceptMapTest extends BaseJpaR4Test {
|
||||||
public void testTranslateWithReverseUsingPredicatesWithCodeOnly() {
|
public void testTranslateWithReverseUsingPredicatesWithCodeOnly() {
|
||||||
ConceptMap conceptMap = myConceptMapDao.read(myConceptMapId);
|
ConceptMap conceptMap = myConceptMapDao.read(myConceptMapId);
|
||||||
|
|
||||||
ourLog.info("ConceptMap:\n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(conceptMap));
|
ourLog.info("ConceptMap:\n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(conceptMap));
|
||||||
|
|
||||||
new TransactionTemplate(myTxManager).execute(new TransactionCallbackWithoutResult() {
|
new TransactionTemplate(myTxManager).execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -831,7 +831,7 @@ public class FhirResourceDaoR4ConceptMapTest extends BaseJpaR4Test {
|
||||||
public void testTranslateWithReverseUsingPredicatesWithSourceAndTargetSystem1() {
|
public void testTranslateWithReverseUsingPredicatesWithSourceAndTargetSystem1() {
|
||||||
ConceptMap conceptMap = myConceptMapDao.read(myConceptMapId);
|
ConceptMap conceptMap = myConceptMapDao.read(myConceptMapId);
|
||||||
|
|
||||||
ourLog.info("ConceptMap:\n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(conceptMap));
|
ourLog.info("ConceptMap:\n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(conceptMap));
|
||||||
|
|
||||||
new TransactionTemplate(myTxManager).execute(new TransactionCallbackWithoutResult() {
|
new TransactionTemplate(myTxManager).execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -872,7 +872,7 @@ public class FhirResourceDaoR4ConceptMapTest extends BaseJpaR4Test {
|
||||||
public void testTranslateWithReverseUsingPredicatesWithSourceAndTargetSystem4() {
|
public void testTranslateWithReverseUsingPredicatesWithSourceAndTargetSystem4() {
|
||||||
ConceptMap conceptMap = myConceptMapDao.read(myConceptMapId);
|
ConceptMap conceptMap = myConceptMapDao.read(myConceptMapId);
|
||||||
|
|
||||||
ourLog.info("ConceptMap:\n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(conceptMap));
|
ourLog.info("ConceptMap:\n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(conceptMap));
|
||||||
|
|
||||||
new TransactionTemplate(myTxManager).execute(new TransactionCallbackWithoutResult() {
|
new TransactionTemplate(myTxManager).execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -913,7 +913,7 @@ public class FhirResourceDaoR4ConceptMapTest extends BaseJpaR4Test {
|
||||||
public void testTranslateWithReverseUsingPredicatesWithSourceSystem() {
|
public void testTranslateWithReverseUsingPredicatesWithSourceSystem() {
|
||||||
ConceptMap conceptMap = myConceptMapDao.read(myConceptMapId);
|
ConceptMap conceptMap = myConceptMapDao.read(myConceptMapId);
|
||||||
|
|
||||||
ourLog.info("ConceptMap:\n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(conceptMap));
|
ourLog.info("ConceptMap:\n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(conceptMap));
|
||||||
|
|
||||||
new TransactionTemplate(myTxManager).execute(new TransactionCallbackWithoutResult() {
|
new TransactionTemplate(myTxManager).execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -960,7 +960,7 @@ public class FhirResourceDaoR4ConceptMapTest extends BaseJpaR4Test {
|
||||||
public void testTranslateWithReverseUsingPredicatesWithSourceSystemAndVersion() {
|
public void testTranslateWithReverseUsingPredicatesWithSourceSystemAndVersion() {
|
||||||
ConceptMap conceptMap = myConceptMapDao.read(myConceptMapId);
|
ConceptMap conceptMap = myConceptMapDao.read(myConceptMapId);
|
||||||
|
|
||||||
ourLog.info("ConceptMap:\n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(conceptMap));
|
ourLog.info("ConceptMap:\n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(conceptMap));
|
||||||
|
|
||||||
new TransactionTemplate(myTxManager).execute(new TransactionCallbackWithoutResult() {
|
new TransactionTemplate(myTxManager).execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -1009,7 +1009,7 @@ public class FhirResourceDaoR4ConceptMapTest extends BaseJpaR4Test {
|
||||||
public void testTranslateWithReverseUsingPredicatesWithSourceValueSet() {
|
public void testTranslateWithReverseUsingPredicatesWithSourceValueSet() {
|
||||||
ConceptMap conceptMap = myConceptMapDao.read(myConceptMapId);
|
ConceptMap conceptMap = myConceptMapDao.read(myConceptMapId);
|
||||||
|
|
||||||
ourLog.info("ConceptMap:\n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(conceptMap));
|
ourLog.info("ConceptMap:\n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(conceptMap));
|
||||||
|
|
||||||
new TransactionTemplate(myTxManager).execute(new TransactionCallbackWithoutResult() {
|
new TransactionTemplate(myTxManager).execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
|
@ -1056,7 +1056,7 @@ public class FhirResourceDaoR4ConceptMapTest extends BaseJpaR4Test {
|
||||||
public void testTranslateWithReverseUsingPredicatesWithTargetValueSet() {
|
public void testTranslateWithReverseUsingPredicatesWithTargetValueSet() {
|
||||||
ConceptMap conceptMap = myConceptMapDao.read(myConceptMapId);
|
ConceptMap conceptMap = myConceptMapDao.read(myConceptMapId);
|
||||||
|
|
||||||
ourLog.info("ConceptMap:\n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(conceptMap));
|
ourLog.info("ConceptMap:\n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(conceptMap));
|
||||||
|
|
||||||
new TransactionTemplate(myTxManager).execute(new TransactionCallbackWithoutResult() {
|
new TransactionTemplate(myTxManager).execute(new TransactionCallbackWithoutResult() {
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -72,7 +72,7 @@ public class FhirResourceDaoR4ConcurrentWriteTest extends BaseJpaR4Test {
|
||||||
myRetryInterceptor = new UserRequestRetryVersionConflictsInterceptor();
|
myRetryInterceptor = new UserRequestRetryVersionConflictsInterceptor();
|
||||||
myConcurrencySemaphoreInterceptor = new TransactionConcurrencySemaphoreInterceptor(myMemoryCacheService);
|
myConcurrencySemaphoreInterceptor = new TransactionConcurrencySemaphoreInterceptor(myMemoryCacheService);
|
||||||
|
|
||||||
RestfulServer server = new RestfulServer(myFhirCtx);
|
RestfulServer server = new RestfulServer(myFhirContext);
|
||||||
when(mySrd.getServer()).thenReturn(server);
|
when(mySrd.getServer()).thenReturn(server);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -215,7 +215,7 @@ public class FhirResourceDaoR4ConcurrentWriteTest extends BaseJpaR4Test {
|
||||||
myConcurrencySemaphoreInterceptor.setLogWaits(true);
|
myConcurrencySemaphoreInterceptor.setLogWaits(true);
|
||||||
|
|
||||||
Runnable creator = ()->{
|
Runnable creator = ()->{
|
||||||
BundleBuilder bb = new BundleBuilder(myFhirCtx);
|
BundleBuilder bb = new BundleBuilder(myFhirContext);
|
||||||
|
|
||||||
Patient patient1 = new Patient();
|
Patient patient1 = new Patient();
|
||||||
patient1.addIdentifier().setSystem("http://foo").setValue("1");
|
patient1.addIdentifier().setSystem("http://foo").setValue("1");
|
||||||
|
@ -276,7 +276,7 @@ public class FhirResourceDaoR4ConcurrentWriteTest extends BaseJpaR4Test {
|
||||||
@Nonnull
|
@Nonnull
|
||||||
private Runnable newTransactionTaskWithUpdatesAndConditionalUpdates(AtomicInteger theSetCounter, AtomicInteger theFuzzCounter) {
|
private Runnable newTransactionTaskWithUpdatesAndConditionalUpdates(AtomicInteger theSetCounter, AtomicInteger theFuzzCounter) {
|
||||||
Runnable creator = () -> {
|
Runnable creator = () -> {
|
||||||
BundleBuilder bb = new BundleBuilder(myFhirCtx);
|
BundleBuilder bb = new BundleBuilder(myFhirContext);
|
||||||
String patientId = "Patient/PT" + theSetCounter.get();
|
String patientId = "Patient/PT" + theSetCounter.get();
|
||||||
IdType practitionerId = IdType.newRandomUuid();
|
IdType practitionerId = IdType.newRandomUuid();
|
||||||
IdType practitionerId2 = IdType.newRandomUuid();
|
IdType practitionerId2 = IdType.newRandomUuid();
|
||||||
|
@ -358,7 +358,7 @@ public class FhirResourceDaoR4ConcurrentWriteTest extends BaseJpaR4Test {
|
||||||
|
|
||||||
// Make sure we saved the object
|
// Make sure we saved the object
|
||||||
Patient patient = myPatientDao.read(new IdType("Patient/ABC"));
|
Patient patient = myPatientDao.read(new IdType("Patient/ABC"));
|
||||||
ourLog.info(myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(patient));
|
ourLog.info(myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(patient));
|
||||||
assertEquals(true, patient.getActive());
|
assertEquals(true, patient.getActive());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -391,7 +391,7 @@ public class FhirResourceDaoR4ConcurrentWriteTest extends BaseJpaR4Test {
|
||||||
|
|
||||||
// Make sure we saved the object
|
// Make sure we saved the object
|
||||||
Patient patient = myPatientDao.read(new IdType("Patient/ABC"));
|
Patient patient = myPatientDao.read(new IdType("Patient/ABC"));
|
||||||
ourLog.info(myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(patient));
|
ourLog.info(myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(patient));
|
||||||
assertEquals(true, patient.getActive());
|
assertEquals(true, patient.getActive());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -424,7 +424,7 @@ public class FhirResourceDaoR4ConcurrentWriteTest extends BaseJpaR4Test {
|
||||||
|
|
||||||
// Make sure we saved the object
|
// Make sure we saved the object
|
||||||
Patient patient = myPatientDao.read(new IdType("Patient/ABC"));
|
Patient patient = myPatientDao.read(new IdType("Patient/ABC"));
|
||||||
ourLog.info(myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(patient));
|
ourLog.info(myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(patient));
|
||||||
assertEquals(true, patient.getActive());
|
assertEquals(true, patient.getActive());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -578,7 +578,7 @@ public class FhirResourceDaoR4ConcurrentWriteTest extends BaseJpaR4Test {
|
||||||
|
|
||||||
// Make sure we saved the object
|
// Make sure we saved the object
|
||||||
Patient patient = myPatientDao.read(new IdType("Patient/ABC"));
|
Patient patient = myPatientDao.read(new IdType("Patient/ABC"));
|
||||||
ourLog.info(myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(patient));
|
ourLog.info(myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(patient));
|
||||||
assertEquals(true, patient.getActive());
|
assertEquals(true, patient.getActive());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -614,7 +614,7 @@ public class FhirResourceDaoR4ConcurrentWriteTest extends BaseJpaR4Test {
|
||||||
|
|
||||||
// Make sure we saved the object
|
// Make sure we saved the object
|
||||||
Patient patient = myPatientDao.read(new IdType("Patient/ABC"));
|
Patient patient = myPatientDao.read(new IdType("Patient/ABC"));
|
||||||
ourLog.info(myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(patient));
|
ourLog.info(myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(patient));
|
||||||
assertEquals(true, patient.getActive());
|
assertEquals(true, patient.getActive());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -654,7 +654,7 @@ public class FhirResourceDaoR4ConcurrentWriteTest extends BaseJpaR4Test {
|
||||||
|
|
||||||
// Make sure we saved the object
|
// Make sure we saved the object
|
||||||
Patient patient = myPatientDao.read(new IdType("Patient/ABC"));
|
Patient patient = myPatientDao.read(new IdType("Patient/ABC"));
|
||||||
ourLog.info(myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(patient));
|
ourLog.info(myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(patient));
|
||||||
assertEquals(true, patient.getActive());
|
assertEquals(true, patient.getActive());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -707,7 +707,7 @@ public class FhirResourceDaoR4ConcurrentWriteTest extends BaseJpaR4Test {
|
||||||
|
|
||||||
// Make sure we saved the object
|
// Make sure we saved the object
|
||||||
Patient patient = myPatientDao.read(pId);
|
Patient patient = myPatientDao.read(pId);
|
||||||
ourLog.info(myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(patient));
|
ourLog.info(myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(patient));
|
||||||
assertEquals("6", patient.getMeta().getVersionId());
|
assertEquals("6", patient.getMeta().getVersionId());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -721,7 +721,7 @@ public class FhirResourceDaoR4ConcurrentWriteTest extends BaseJpaR4Test {
|
||||||
String value = UserRequestRetryVersionConflictsInterceptor.RETRY + "; " + UserRequestRetryVersionConflictsInterceptor.MAX_RETRIES + "=10";
|
String value = UserRequestRetryVersionConflictsInterceptor.RETRY + "; " + UserRequestRetryVersionConflictsInterceptor.MAX_RETRIES + "=10";
|
||||||
when(srd.getHeaders(eq(UserRequestRetryVersionConflictsInterceptor.HEADER_NAME))).thenReturn(Collections.singletonList(value));
|
when(srd.getHeaders(eq(UserRequestRetryVersionConflictsInterceptor.HEADER_NAME))).thenReturn(Collections.singletonList(value));
|
||||||
when(srd.getUserData()).thenReturn(new HashMap<>());
|
when(srd.getUserData()).thenReturn(new HashMap<>());
|
||||||
when(srd.getServer()).thenReturn(new RestfulServer(myFhirCtx));
|
when(srd.getServer()).thenReturn(new RestfulServer(myFhirContext));
|
||||||
when(srd.getInterceptorBroadcaster()).thenReturn(new InterceptorService());
|
when(srd.getInterceptorBroadcaster()).thenReturn(new InterceptorService());
|
||||||
|
|
||||||
List<Future<?>> futures = new ArrayList<>();
|
List<Future<?>> futures = new ArrayList<>();
|
||||||
|
@ -759,7 +759,7 @@ public class FhirResourceDaoR4ConcurrentWriteTest extends BaseJpaR4Test {
|
||||||
|
|
||||||
// Make sure we saved the object
|
// Make sure we saved the object
|
||||||
Patient patient = myPatientDao.read(new IdType("Patient/ABC"));
|
Patient patient = myPatientDao.read(new IdType("Patient/ABC"));
|
||||||
ourLog.info(myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(patient));
|
ourLog.info(myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(patient));
|
||||||
assertEquals(true, patient.getActive());
|
assertEquals(true, patient.getActive());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -774,7 +774,7 @@ public class FhirResourceDaoR4ConcurrentWriteTest extends BaseJpaR4Test {
|
||||||
String value = UserRequestRetryVersionConflictsInterceptor.RETRY + "; " + UserRequestRetryVersionConflictsInterceptor.MAX_RETRIES + "=10";
|
String value = UserRequestRetryVersionConflictsInterceptor.RETRY + "; " + UserRequestRetryVersionConflictsInterceptor.MAX_RETRIES + "=10";
|
||||||
when(srd.getHeaders(eq(UserRequestRetryVersionConflictsInterceptor.HEADER_NAME))).thenReturn(Collections.singletonList(value));
|
when(srd.getHeaders(eq(UserRequestRetryVersionConflictsInterceptor.HEADER_NAME))).thenReturn(Collections.singletonList(value));
|
||||||
when(srd.getUserData()).thenReturn(new HashMap<>());
|
when(srd.getUserData()).thenReturn(new HashMap<>());
|
||||||
when(srd.getServer()).thenReturn(new RestfulServer(myFhirCtx));
|
when(srd.getServer()).thenReturn(new RestfulServer(myFhirContext));
|
||||||
when(srd.getInterceptorBroadcaster()).thenReturn(new InterceptorService());
|
when(srd.getInterceptorBroadcaster()).thenReturn(new InterceptorService());
|
||||||
|
|
||||||
List<Future<?>> futures = new ArrayList<>();
|
List<Future<?>> futures = new ArrayList<>();
|
||||||
|
@ -783,7 +783,7 @@ public class FhirResourceDaoR4ConcurrentWriteTest extends BaseJpaR4Test {
|
||||||
String patientId = "PATIENT" + i;
|
String patientId = "PATIENT" + i;
|
||||||
|
|
||||||
Runnable task = () -> {
|
Runnable task = () -> {
|
||||||
BundleBuilder bb = new BundleBuilder(myFhirCtx);
|
BundleBuilder bb = new BundleBuilder(myFhirContext);
|
||||||
|
|
||||||
Patient p = new Patient();
|
Patient p = new Patient();
|
||||||
p.setId(patientId);
|
p.setId(patientId);
|
||||||
|
|
|
@ -2,7 +2,6 @@ package ca.uhn.fhir.jpa.dao.r4;
|
||||||
|
|
||||||
import ca.uhn.fhir.i18n.Msg;
|
import ca.uhn.fhir.i18n.Msg;
|
||||||
import ca.uhn.fhir.jpa.searchparam.SearchParameterMap;
|
import ca.uhn.fhir.jpa.searchparam.SearchParameterMap;
|
||||||
import ca.uhn.fhir.rest.api.SearchContainedModeEnum;
|
|
||||||
import ca.uhn.fhir.rest.api.server.IBundleProvider;
|
import ca.uhn.fhir.rest.api.server.IBundleProvider;
|
||||||
import ca.uhn.fhir.rest.param.ReferenceParam;
|
import ca.uhn.fhir.rest.param.ReferenceParam;
|
||||||
import ca.uhn.fhir.rest.server.exceptions.InvalidRequestException;
|
import ca.uhn.fhir.rest.server.exceptions.InvalidRequestException;
|
||||||
|
@ -57,13 +56,13 @@ public class FhirResourceDaoR4ContainedTest extends BaseJpaR4Test {
|
||||||
obs.getCode().setText("Some Observation");
|
obs.getCode().setText("Some Observation");
|
||||||
obs.setSubject(new Reference(p));
|
obs.setSubject(new Reference(p));
|
||||||
|
|
||||||
ourLog.info("Input: {}", myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(obs));
|
ourLog.info("Input: {}", myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(obs));
|
||||||
|
|
||||||
IIdType id = myObservationDao.create(obs, mySrd).getId().toUnqualifiedVersionless();
|
IIdType id = myObservationDao.create(obs, mySrd).getId().toUnqualifiedVersionless();
|
||||||
|
|
||||||
Observation createdObs = myObservationDao.read(id);
|
Observation createdObs = myObservationDao.read(id);
|
||||||
|
|
||||||
ourLog.info("Output: {}", myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(createdObs));
|
ourLog.info("Output: {}", myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(createdObs));
|
||||||
|
|
||||||
runInTransaction(()->{
|
runInTransaction(()->{
|
||||||
ourLog.info("String indexes:\n * {}", myResourceIndexedSearchParamStringDao.findAll().stream().map(t->t.toString()).collect(Collectors.joining("\n * ")));
|
ourLog.info("String indexes:\n * {}", myResourceIndexedSearchParamStringDao.findAll().stream().map(t->t.toString()).collect(Collectors.joining("\n * ")));
|
||||||
|
@ -93,13 +92,13 @@ public class FhirResourceDaoR4ContainedTest extends BaseJpaR4Test {
|
||||||
obs.getContained().add(p);
|
obs.getContained().add(p);
|
||||||
obs.getSubject().setReference("#fooId");
|
obs.getSubject().setReference("#fooId");
|
||||||
|
|
||||||
ourLog.info("Input: {}", myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(obs));
|
ourLog.info("Input: {}", myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(obs));
|
||||||
|
|
||||||
IIdType id = myObservationDao.create(obs, mySrd).getId().toUnqualifiedVersionless();
|
IIdType id = myObservationDao.create(obs, mySrd).getId().toUnqualifiedVersionless();
|
||||||
|
|
||||||
Observation createdObs = myObservationDao.read(id);
|
Observation createdObs = myObservationDao.read(id);
|
||||||
|
|
||||||
ourLog.info("Output: {}", myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(createdObs));
|
ourLog.info("Output: {}", myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(createdObs));
|
||||||
|
|
||||||
runInTransaction(()->{
|
runInTransaction(()->{
|
||||||
Long i = myEntityManager
|
Long i = myEntityManager
|
||||||
|
@ -153,13 +152,13 @@ public class FhirResourceDaoR4ContainedTest extends BaseJpaR4Test {
|
||||||
patient.addGeneralPractitioner().setReference("#org1");
|
patient.addGeneralPractitioner().setReference("#org1");
|
||||||
patient.getManagingOrganization().setReference("#org2");
|
patient.getManagingOrganization().setReference("#org2");
|
||||||
|
|
||||||
ourLog.info("Input: {}", myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(patient));
|
ourLog.info("Input: {}", myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(patient));
|
||||||
|
|
||||||
IIdType id = myPatientDao.create(patient, mySrd).getId().toUnqualifiedVersionless();
|
IIdType id = myPatientDao.create(patient, mySrd).getId().toUnqualifiedVersionless();
|
||||||
|
|
||||||
Patient createdPatient = myPatientDao.read(id);
|
Patient createdPatient = myPatientDao.read(id);
|
||||||
|
|
||||||
ourLog.info("Output: {}", myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(createdPatient));
|
ourLog.info("Output: {}", myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(createdPatient));
|
||||||
|
|
||||||
runInTransaction(()->{
|
runInTransaction(()->{
|
||||||
Long i = myEntityManager
|
Long i = myEntityManager
|
||||||
|
@ -224,13 +223,13 @@ public class FhirResourceDaoR4ContainedTest extends BaseJpaR4Test {
|
||||||
encounter.addReasonReference().setReference("#obs1");
|
encounter.addReasonReference().setReference("#obs1");
|
||||||
encounter.getContained().add(obs);
|
encounter.getContained().add(obs);
|
||||||
|
|
||||||
ourLog.info("Input: {}", myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(encounter));
|
ourLog.info("Input: {}", myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(encounter));
|
||||||
|
|
||||||
IIdType id = myEncounterDao.create(encounter, mySrd).getId().toUnqualifiedVersionless();
|
IIdType id = myEncounterDao.create(encounter, mySrd).getId().toUnqualifiedVersionless();
|
||||||
|
|
||||||
Encounter createdEncounter = myEncounterDao.read(id);
|
Encounter createdEncounter = myEncounterDao.read(id);
|
||||||
|
|
||||||
ourLog.info("Output: {}", myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(createdEncounter));
|
ourLog.info("Output: {}", myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(createdEncounter));
|
||||||
|
|
||||||
runInTransaction(()->{
|
runInTransaction(()->{
|
||||||
// The practitioner
|
// The practitioner
|
||||||
|
|
|
@ -67,7 +67,6 @@ import static org.hamcrest.Matchers.empty;
|
||||||
import static org.hamcrest.Matchers.matchesPattern;
|
import static org.hamcrest.Matchers.matchesPattern;
|
||||||
import static org.junit.jupiter.api.Assertions.assertEquals;
|
import static org.junit.jupiter.api.Assertions.assertEquals;
|
||||||
import static org.junit.jupiter.api.Assertions.assertFalse;
|
import static org.junit.jupiter.api.Assertions.assertFalse;
|
||||||
import static org.junit.jupiter.api.Assertions.assertNull;
|
|
||||||
import static org.junit.jupiter.api.Assertions.assertTrue;
|
import static org.junit.jupiter.api.Assertions.assertTrue;
|
||||||
import static org.junit.jupiter.api.Assertions.fail;
|
import static org.junit.jupiter.api.Assertions.fail;
|
||||||
|
|
||||||
|
@ -340,7 +339,7 @@ public class FhirResourceDaoR4CreateTest extends BaseJpaR4Test {
|
||||||
*/
|
*/
|
||||||
@Test
|
@Test
|
||||||
public void testConditionalCreateFailsIfMatchUrlDoesntMatch_InTransaction() {
|
public void testConditionalCreateFailsIfMatchUrlDoesntMatch_InTransaction() {
|
||||||
BundleBuilder bb = new BundleBuilder(myFhirCtx);
|
BundleBuilder bb = new BundleBuilder(myFhirContext);
|
||||||
|
|
||||||
Patient patient = new Patient();
|
Patient patient = new Patient();
|
||||||
patient.setId(IdType.newRandomUuid());
|
patient.setId(IdType.newRandomUuid());
|
||||||
|
@ -363,7 +362,7 @@ public class FhirResourceDaoR4CreateTest extends BaseJpaR4Test {
|
||||||
@Test
|
@Test
|
||||||
public void testCreateResourceWithKoreanText() throws IOException {
|
public void testCreateResourceWithKoreanText() throws IOException {
|
||||||
String input = loadClasspath("/r4/bug832-korean-text.xml");
|
String input = loadClasspath("/r4/bug832-korean-text.xml");
|
||||||
Patient p = myFhirCtx.newXmlParser().parseResource(Patient.class, input);
|
Patient p = myFhirContext.newXmlParser().parseResource(Patient.class, input);
|
||||||
String id = myPatientDao.create(p).getId().toUnqualifiedVersionless().getValue();
|
String id = myPatientDao.create(p).getId().toUnqualifiedVersionless().getValue();
|
||||||
|
|
||||||
SearchParameterMap map = new SearchParameterMap();
|
SearchParameterMap map = new SearchParameterMap();
|
||||||
|
@ -619,11 +618,11 @@ public class FhirResourceDaoR4CreateTest extends BaseJpaR4Test {
|
||||||
.getRequest()
|
.getRequest()
|
||||||
.setMethod(Bundle.HTTPVerb.POST);
|
.setMethod(Bundle.HTTPVerb.POST);
|
||||||
|
|
||||||
ourLog.info(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(input));
|
ourLog.info(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(input));
|
||||||
|
|
||||||
Bundle output = mySystemDao.transaction(mySrd, input);
|
Bundle output = mySystemDao.transaction(mySrd, input);
|
||||||
|
|
||||||
ourLog.info(myFhirCtx.newXmlParser().setPrettyPrint(true).encodeResourceToString(output));
|
ourLog.info(myFhirContext.newXmlParser().setPrettyPrint(true).encodeResourceToString(output));
|
||||||
|
|
||||||
assertThat(output.getEntry().get(0).getResponse().getLocation(), matchesPattern("Organization/[a-z0-9]{8}-.*"));
|
assertThat(output.getEntry().get(0).getResponse().getLocation(), matchesPattern("Organization/[a-z0-9]{8}-.*"));
|
||||||
assertThat(output.getEntry().get(1).getResponse().getLocation(), matchesPattern("Patient/[a-z0-9]{8}-.*"));
|
assertThat(output.getEntry().get(1).getResponse().getLocation(), matchesPattern("Patient/[a-z0-9]{8}-.*"));
|
||||||
|
@ -640,7 +639,7 @@ public class FhirResourceDaoR4CreateTest extends BaseJpaR4Test {
|
||||||
o.getMeta().addTag("http://foo", "bar", "FOOBAR");
|
o.getMeta().addTag("http://foo", "bar", "FOOBAR");
|
||||||
p.getManagingOrganization().setResource(o);
|
p.getManagingOrganization().setResource(o);
|
||||||
|
|
||||||
String encoded = myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(p);
|
String encoded = myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(p);
|
||||||
ourLog.info("Input: {}", encoded);
|
ourLog.info("Input: {}", encoded);
|
||||||
assertThat(encoded, containsString("#1"));
|
assertThat(encoded, containsString("#1"));
|
||||||
|
|
||||||
|
@ -648,7 +647,7 @@ public class FhirResourceDaoR4CreateTest extends BaseJpaR4Test {
|
||||||
|
|
||||||
p = myPatientDao.read(id);
|
p = myPatientDao.read(id);
|
||||||
|
|
||||||
encoded = myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(p);
|
encoded = myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(p);
|
||||||
ourLog.info("Output: {}", encoded);
|
ourLog.info("Output: {}", encoded);
|
||||||
assertThat(encoded, containsString("#1"));
|
assertThat(encoded, containsString("#1"));
|
||||||
|
|
||||||
|
@ -691,7 +690,7 @@ public class FhirResourceDaoR4CreateTest extends BaseJpaR4Test {
|
||||||
q.setCode("cm");
|
q.setCode("cm");
|
||||||
obs.setValue(q);
|
obs.setValue(q);
|
||||||
|
|
||||||
ourLog.info("Observation1: \n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(obs));
|
ourLog.info("Observation1: \n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(obs));
|
||||||
|
|
||||||
assertTrue(myObservationDao.create(obs).getCreated());
|
assertTrue(myObservationDao.create(obs).getCreated());
|
||||||
|
|
||||||
|
@ -731,7 +730,7 @@ public class FhirResourceDaoR4CreateTest extends BaseJpaR4Test {
|
||||||
q.setCode("mm");
|
q.setCode("mm");
|
||||||
obs.setValue(q);
|
obs.setValue(q);
|
||||||
|
|
||||||
ourLog.info("Observation1: \n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(obs));
|
ourLog.info("Observation1: \n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(obs));
|
||||||
|
|
||||||
myCaptureQueriesListener.clear();
|
myCaptureQueriesListener.clear();
|
||||||
assertTrue(myObservationDao.create(obs).getCreated());
|
assertTrue(myObservationDao.create(obs).getCreated());
|
||||||
|
@ -808,7 +807,7 @@ public class FhirResourceDaoR4CreateTest extends BaseJpaR4Test {
|
||||||
q.setCode("mm");
|
q.setCode("mm");
|
||||||
obs.setValue(q);
|
obs.setValue(q);
|
||||||
|
|
||||||
ourLog.info("Observation1: \n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(obs));
|
ourLog.info("Observation1: \n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(obs));
|
||||||
|
|
||||||
assertTrue(myObservationDao.create(obs).getCreated());
|
assertTrue(myObservationDao.create(obs).getCreated());
|
||||||
|
|
||||||
|
@ -843,7 +842,7 @@ public class FhirResourceDaoR4CreateTest extends BaseJpaR4Test {
|
||||||
|
|
||||||
assertEquals(1, ids.size());
|
assertEquals(1, ids.size());
|
||||||
|
|
||||||
ourLog.info("Observation2: \n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(resources.get(0)));
|
ourLog.info("Observation2: \n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(resources.get(0)));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -860,7 +859,7 @@ public class FhirResourceDaoR4CreateTest extends BaseJpaR4Test {
|
||||||
q.setCode("kg/dL");
|
q.setCode("kg/dL");
|
||||||
obs.setValue(q);
|
obs.setValue(q);
|
||||||
|
|
||||||
ourLog.info("Observation1: \n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(obs));
|
ourLog.info("Observation1: \n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(obs));
|
||||||
|
|
||||||
assertTrue(myObservationDao.create(obs).getCreated());
|
assertTrue(myObservationDao.create(obs).getCreated());
|
||||||
|
|
||||||
|
@ -900,7 +899,7 @@ public class FhirResourceDaoR4CreateTest extends BaseJpaR4Test {
|
||||||
q.setCode("kg/dL");
|
q.setCode("kg/dL");
|
||||||
obs.setValue(q);
|
obs.setValue(q);
|
||||||
|
|
||||||
ourLog.info("Observation1: \n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(obs));
|
ourLog.info("Observation1: \n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(obs));
|
||||||
|
|
||||||
assertTrue(myObservationDao.create(obs).getCreated());
|
assertTrue(myObservationDao.create(obs).getCreated());
|
||||||
|
|
||||||
|
@ -947,7 +946,7 @@ public class FhirResourceDaoR4CreateTest extends BaseJpaR4Test {
|
||||||
q.setCode("mm");
|
q.setCode("mm");
|
||||||
obs.setValue(q);
|
obs.setValue(q);
|
||||||
|
|
||||||
ourLog.info("Observation1: \n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(obs));
|
ourLog.info("Observation1: \n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(obs));
|
||||||
|
|
||||||
myCaptureQueriesListener.clear();
|
myCaptureQueriesListener.clear();
|
||||||
assertTrue(myObservationDao.create(obs).getCreated());
|
assertTrue(myObservationDao.create(obs).getCreated());
|
||||||
|
@ -1080,7 +1079,7 @@ public class FhirResourceDaoR4CreateTest extends BaseJpaR4Test {
|
||||||
q.setCode("mm");
|
q.setCode("mm");
|
||||||
obs.setValue(q);
|
obs.setValue(q);
|
||||||
|
|
||||||
ourLog.info("Observation1: \n" + myFhirCtx.newJsonParser().setPrettyPrint(true).encodeResourceToString(obs));
|
ourLog.info("Observation1: \n" + myFhirContext.newJsonParser().setPrettyPrint(true).encodeResourceToString(obs));
|
||||||
|
|
||||||
myCaptureQueriesListener.clear();
|
myCaptureQueriesListener.clear();
|
||||||
assertTrue(myObservationDao.create(obs).getCreated());
|
assertTrue(myObservationDao.create(obs).getCreated());
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue