Unit Test work - still cannot get Dstu3 working after several attempts, but included the skelton of a test to capture the effort anyways.
This commit is contained in:
2
pom.xml
2
pom.xml
@@ -14,6 +14,7 @@
|
|||||||
<parent>
|
<parent>
|
||||||
<groupId>ca.uhn.hapi.fhir</groupId>
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||||
<artifactId>hapi-fhir</artifactId>
|
<artifactId>hapi-fhir</artifactId>
|
||||||
|
<!-- FIMXME KBD Change this to 5.3.0 BEFORE merging this code to master ! -->
|
||||||
<version>5.3.0-SNAPSHOT</version>
|
<version>5.3.0-SNAPSHOT</version>
|
||||||
</parent>
|
</parent>
|
||||||
|
|
||||||
@@ -278,7 +279,6 @@
|
|||||||
<version>${spring_boot_version}</version>
|
<version>${spring_boot_version}</version>
|
||||||
</dependency>
|
</dependency>
|
||||||
|
|
||||||
|
|
||||||
<dependency>
|
<dependency>
|
||||||
<groupId>org.junit.jupiter</groupId>
|
<groupId>org.junit.jupiter</groupId>
|
||||||
<artifactId>junit-jupiter-api</artifactId>
|
<artifactId>junit-jupiter-api</artifactId>
|
||||||
|
|||||||
@@ -21,6 +21,7 @@ import org.springframework.context.annotation.Configuration;
|
|||||||
@EnableConfigurationProperties
|
@EnableConfigurationProperties
|
||||||
public class AppProperties {
|
public class AppProperties {
|
||||||
|
|
||||||
|
private Boolean cql_enabled = false;
|
||||||
private Boolean empi_enabled = false;
|
private Boolean empi_enabled = false;
|
||||||
private Boolean allow_cascading_deletes = false;
|
private Boolean allow_cascading_deletes = false;
|
||||||
private Boolean allow_contains_searches = true;
|
private Boolean allow_contains_searches = true;
|
||||||
@@ -85,6 +86,14 @@ public class AppProperties {
|
|||||||
this.partitioning = partitioning;
|
this.partitioning = partitioning;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public Boolean getCql_enabled() {
|
||||||
|
return cql_enabled;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setCql_enabled(Boolean cql_enabled) {
|
||||||
|
this.cql_enabled = cql_enabled;
|
||||||
|
}
|
||||||
|
|
||||||
public Boolean getEmpi_enabled() {
|
public Boolean getEmpi_enabled() {
|
||||||
return empi_enabled;
|
return empi_enabled;
|
||||||
}
|
}
|
||||||
@@ -93,7 +102,6 @@ public class AppProperties {
|
|||||||
this.empi_enabled = empi_enabled;
|
this.empi_enabled = empi_enabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
public Cors getCors() {
|
public Cors getCors() {
|
||||||
return cors;
|
return cors;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -32,8 +32,8 @@ public class Application extends SpringBootServletInitializer {
|
|||||||
System.setProperty("spring.batch.job.enabled", "false");
|
System.setProperty("spring.batch.job.enabled", "false");
|
||||||
SpringApplication.run(Application.class, args);
|
SpringApplication.run(Application.class, args);
|
||||||
|
|
||||||
//Server is now accessible at eg. http://localhost:8080/hapi-fhir-jpaserver/fhir/metadata
|
//Server is now accessible at eg. http://localhost:8080/fhir/metadata
|
||||||
//UI is now accessible at http://localhost:8080/hapi-fhir-jpaserver/
|
//UI is now accessible at http://localhost:8080/
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -2,6 +2,8 @@ package ca.uhn.fhir.jpa.starter;
|
|||||||
|
|
||||||
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.cql.provider.CqlProviderLoader;
|
||||||
|
import ca.uhn.fhir.empi.provider.EmpiProviderLoader;
|
||||||
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.jpa.api.config.DaoConfig;
|
import ca.uhn.fhir.jpa.api.config.DaoConfig;
|
||||||
@@ -97,6 +99,10 @@ public class BaseJpaRestfulServer extends RestfulServer {
|
|||||||
@Autowired
|
@Autowired
|
||||||
ApplicationContext myApplicationContext;
|
ApplicationContext myApplicationContext;
|
||||||
|
|
||||||
|
// These are set only if the features are enabled
|
||||||
|
private CqlProviderLoader cqlProviderLoader;
|
||||||
|
private EmpiProviderLoader empiProviderLoader;
|
||||||
|
|
||||||
public BaseJpaRestfulServer() {
|
public BaseJpaRestfulServer() {
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -121,10 +127,21 @@ public class BaseJpaRestfulServer extends RestfulServer {
|
|||||||
}
|
}
|
||||||
|
|
||||||
setFhirContext(fhirSystemDao.getContext());
|
setFhirContext(fhirSystemDao.getContext());
|
||||||
|
|
||||||
|
FhirVersionEnum fhirVersion = fhirSystemDao.getContext().getVersion().getVersion();
|
||||||
|
if (fhirVersion == FhirVersionEnum.DSTU3 || fhirVersion == FhirVersionEnum.R4) {
|
||||||
|
if (appProperties.getCql_enabled()) {
|
||||||
|
cqlProviderLoader = myApplicationContext.getBean(CqlProviderLoader.class);
|
||||||
|
cqlProviderLoader.loadProvider();
|
||||||
|
}
|
||||||
|
if (appProperties.getEmpi_enabled()) {
|
||||||
|
empiProviderLoader = myApplicationContext.getBean(EmpiProviderLoader.class);
|
||||||
|
empiProviderLoader.loadProvider();
|
||||||
|
}
|
||||||
|
}
|
||||||
registerProviders(resourceProviders.createProviders());
|
registerProviders(resourceProviders.createProviders());
|
||||||
registerProvider(jpaSystemProvider);
|
registerProvider(jpaSystemProvider);
|
||||||
|
|
||||||
FhirVersionEnum fhirVersion = fhirSystemDao.getContext().getVersion().getVersion();
|
|
||||||
/*
|
/*
|
||||||
* The conformance provider exports the supported resources, search parameters, etc for
|
* The conformance provider exports the supported resources, search parameters, etc for
|
||||||
* this server. The JPA version adds resourceProviders counts to the exported statement, so it
|
* this server. The JPA version adds resourceProviders counts to the exported statement, so it
|
||||||
|
|||||||
@@ -4,11 +4,9 @@ import ca.uhn.fhir.context.ConfigurationException;
|
|||||||
import ca.uhn.fhir.jpa.config.BaseJavaConfigR4;
|
import ca.uhn.fhir.jpa.config.BaseJavaConfigR4;
|
||||||
import ca.uhn.fhir.jpa.search.DatabaseBackedPagingProvider;
|
import ca.uhn.fhir.jpa.search.DatabaseBackedPagingProvider;
|
||||||
import ca.uhn.fhir.jpa.starter.annotations.OnR4Condition;
|
import ca.uhn.fhir.jpa.starter.annotations.OnR4Condition;
|
||||||
|
import ca.uhn.fhir.jpa.starter.cql.CqlConfigR4;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.context.annotation.Bean;
|
import org.springframework.context.annotation.*;
|
||||||
import org.springframework.context.annotation.Conditional;
|
|
||||||
import org.springframework.context.annotation.Configuration;
|
|
||||||
import org.springframework.context.annotation.Primary;
|
|
||||||
import org.springframework.core.env.ConfigurableEnvironment;
|
import org.springframework.core.env.ConfigurableEnvironment;
|
||||||
import org.springframework.orm.jpa.JpaTransactionManager;
|
import org.springframework.orm.jpa.JpaTransactionManager;
|
||||||
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
|
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
|
||||||
@@ -18,6 +16,7 @@ import javax.sql.DataSource;
|
|||||||
|
|
||||||
@Configuration
|
@Configuration
|
||||||
@Conditional(OnR4Condition.class)
|
@Conditional(OnR4Condition.class)
|
||||||
|
@Import(CqlConfigR4.class)
|
||||||
public class FhirServerConfigR4 extends BaseJavaConfigR4 {
|
public class FhirServerConfigR4 extends BaseJavaConfigR4 {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
|
|||||||
@@ -7,8 +7,8 @@ import org.springframework.core.type.AnnotatedTypeMetadata;
|
|||||||
public class CqlConfigCondition implements Condition {
|
public class CqlConfigCondition implements Condition {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean matches(ConditionContext conditionContext, AnnotatedTypeMetadata annotatedTypeMetadata) {
|
public boolean matches(ConditionContext theConditionContext, AnnotatedTypeMetadata theAnnotatedTypeMetadata) {
|
||||||
String property = conditionContext.getEnvironment().getProperty("hapi.fhir.cql_enabled");
|
String property = theConditionContext.getEnvironment().getProperty("hapi.fhir.cql_enabled");
|
||||||
boolean enabled = Boolean.parseBoolean(property);
|
boolean enabled = Boolean.parseBoolean(property);
|
||||||
return enabled;
|
return enabled;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,13 +1,10 @@
|
|||||||
package ca.uhn.fhir.jpa.starter.cql;
|
package ca.uhn.fhir.jpa.starter.cql;
|
||||||
|
|
||||||
import ca.uhn.fhir.cql.config.CqlR4Config;
|
import ca.uhn.fhir.cql.config.CqlR4Config;
|
||||||
import ca.uhn.fhir.jpa.starter.annotations.OnR4Condition;
|
|
||||||
import org.springframework.context.annotation.Conditional;
|
import org.springframework.context.annotation.Conditional;
|
||||||
import org.springframework.context.annotation.Configuration;
|
|
||||||
import org.springframework.context.annotation.Import;
|
import org.springframework.context.annotation.Import;
|
||||||
|
|
||||||
@Configuration
|
@Conditional({CqlConfigCondition.class})
|
||||||
@Conditional({OnR4Condition.class, CqlConfigCondition.class})
|
|
||||||
@Import({CqlR4Config.class})
|
@Import({CqlR4Config.class})
|
||||||
public class CqlConfigR4 {
|
public class CqlConfigR4 {
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -29,7 +29,6 @@ hapi:
|
|||||||
fhir:
|
fhir:
|
||||||
### This is the FHIR version. Choose between, DSTU2, DSTU3, R4 or R5
|
### This is the FHIR version. Choose between, DSTU2, DSTU3, R4 or R5
|
||||||
fhir_version: R4
|
fhir_version: R4
|
||||||
cql_enabled: true
|
|
||||||
# defer_indexing_for_codesystems_of_size: 101
|
# defer_indexing_for_codesystems_of_size: 101
|
||||||
# implementationguides:
|
# implementationguides:
|
||||||
# -
|
# -
|
||||||
@@ -50,6 +49,8 @@ hapi:
|
|||||||
# allow_override_default_search_params: true
|
# allow_override_default_search_params: true
|
||||||
# allow_placeholder_references: true
|
# allow_placeholder_references: true
|
||||||
# auto_create_placeholder_reference_targets: false
|
# auto_create_placeholder_reference_targets: false
|
||||||
|
# cql_enabled: true
|
||||||
|
# empi_enabled: true
|
||||||
# default_encoding: JSON
|
# default_encoding: JSON
|
||||||
# default_pretty_print: true
|
# default_pretty_print: true
|
||||||
# default_page_size: 20
|
# default_page_size: 20
|
||||||
|
|||||||
@@ -1,7 +1,7 @@
|
|||||||
package ca.uhn.fhir.jpa.starter;
|
package ca.uhn.fhir.jpa.starter;
|
||||||
|
|
||||||
import ca.uhn.fhir.context.FhirContext;
|
import ca.uhn.fhir.context.FhirContext;
|
||||||
import ca.uhn.fhir.cql.provider.CqlProviderLoader;
|
import ca.uhn.fhir.jpa.api.dao.DaoRegistry;
|
||||||
import ca.uhn.fhir.model.primitive.IdDt;
|
import ca.uhn.fhir.model.primitive.IdDt;
|
||||||
import ca.uhn.fhir.rest.api.CacheControlDirective;
|
import ca.uhn.fhir.rest.api.CacheControlDirective;
|
||||||
import ca.uhn.fhir.rest.api.EncodingEnum;
|
import ca.uhn.fhir.rest.api.EncodingEnum;
|
||||||
@@ -9,6 +9,7 @@ import ca.uhn.fhir.rest.api.MethodOutcome;
|
|||||||
import ca.uhn.fhir.rest.client.api.IGenericClient;
|
import ca.uhn.fhir.rest.client.api.IGenericClient;
|
||||||
import ca.uhn.fhir.rest.client.api.ServerValidationModeEnum;
|
import ca.uhn.fhir.rest.client.api.ServerValidationModeEnum;
|
||||||
import ca.uhn.fhir.rest.client.interceptor.LoggingInterceptor;
|
import ca.uhn.fhir.rest.client.interceptor.LoggingInterceptor;
|
||||||
|
import org.apache.commons.io.FileUtils;
|
||||||
import org.eclipse.jetty.websocket.api.Session;
|
import org.eclipse.jetty.websocket.api.Session;
|
||||||
import org.eclipse.jetty.websocket.client.ClientUpgradeRequest;
|
import org.eclipse.jetty.websocket.client.ClientUpgradeRequest;
|
||||||
import org.eclipse.jetty.websocket.client.WebSocketClient;
|
import org.eclipse.jetty.websocket.client.WebSocketClient;
|
||||||
@@ -18,12 +19,16 @@ import org.junit.Assert;
|
|||||||
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 org.junit.jupiter.api.extension.ExtendWith;
|
import org.junit.jupiter.api.extension.ExtendWith;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.boot.test.context.SpringBootTest;
|
import org.springframework.boot.test.context.SpringBootTest;
|
||||||
import org.springframework.boot.web.server.LocalServerPort;
|
import org.springframework.boot.web.server.LocalServerPort;
|
||||||
|
import org.springframework.core.io.ClassPathResource;
|
||||||
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
import org.springframework.test.context.junit.jupiter.SpringExtension;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
|
import java.util.Collection;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.Future;
|
import java.util.concurrent.Future;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
@@ -50,6 +55,9 @@ public class ExampleServerDstu3IT implements IServerSupport {
|
|||||||
private IGenericClient ourClient;
|
private IGenericClient ourClient;
|
||||||
private FhirContext ourCtx;
|
private FhirContext ourCtx;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
DaoRegistry myDaoRegistry;
|
||||||
|
|
||||||
@LocalServerPort
|
@LocalServerPort
|
||||||
private int port;
|
private int port;
|
||||||
|
|
||||||
@@ -76,50 +84,66 @@ public class ExampleServerDstu3IT implements IServerSupport {
|
|||||||
assertEquals(methodName, pt2.getName().get(0).getFamily());
|
assertEquals(methodName, pt2.getName().get(0).getFamily());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
// Currently fails with:
|
||||||
public void testCQLEvaluateMeasure() throws IOException {
|
// ca.uhn.fhir.rest.server.exceptions.InternalErrorException: HTTP 500 : Failed to call access method: java.lang.IllegalArgumentException: Could not load library source for libraries referenced in Measure/Measure/measure-EXM104-FHIR3-8.1.000/_history/1.
|
||||||
CqlProviderLoader cqlProviderLoader = null;
|
//@Test
|
||||||
|
public void testCQLEvaluateMeasureEXM104() throws IOException {
|
||||||
|
String measureId = "measure-EXM104-FHIR3-8.1.000";
|
||||||
|
|
||||||
// FIXME KBD Remove this and put some Unit Test code here
|
int numFilesLoaded = loadDataFromDirectory("dstu3/EXM104/EXM104_FHIR3-8.1.000-files");
|
||||||
loadBundle("dstu3/EXM104/EXM104_FHIR3-8.1.000-bundle.json", ourCtx, ourClient);
|
//assertEquals(numFilesLoaded, 3);
|
||||||
|
ourLog.info("{} files imported successfully!", numFilesLoaded);
|
||||||
|
//loadBundle("dstu3/EXM104/EXM104_FHIR3-8.1.000-bundle.json", ourCtx, ourClient);
|
||||||
|
|
||||||
|
// http://localhost:8080/fhir/Measure/measure-EXM104-FHIR3-8.1.000/$evaluate-measure?periodStart=2019-01-01&periodEnd=2019-12-31
|
||||||
Parameters inParams = new Parameters();
|
Parameters inParams = new Parameters();
|
||||||
// inParams.addParameter().setName("measure").setValue(new StringType("Measure/measure-EXM104-8.2.000"));
|
// inParams.addParameter().setName("measure").setValue(new StringType("Measure/measure-EXM104-8.2.000"));
|
||||||
// inParams.addParameter().setName("patient").setValue(new StringType("Patient/numer-EXM104-FHIR3"));
|
// inParams.addParameter().setName("patient").setValue(new StringType("Patient/numer-EXM104-FHIR3"));
|
||||||
inParams.addParameter().setName("periodStart").setValue(new DateType("2019-01-01"));
|
// inParams.addParameter().setName("periodStart").setValue(new StringType("2019-01-01"));
|
||||||
inParams.addParameter().setName("periodEnd").setValue(new DateType("2019-12-31"));
|
// inParams.addParameter().setName("periodEnd").setValue(new StringType("2019-12-31"));
|
||||||
|
|
||||||
Parameters outParams = ourClient
|
Parameters outParams = ourClient
|
||||||
.operation()
|
.operation()
|
||||||
.onInstance(new IdDt("Measure", "measure-EXM104-FHIR3-8.1.000"))
|
.onInstance(new IdDt("Measure", measureId))
|
||||||
.named("$evaluate-measure")
|
.named("$evaluate-measure")
|
||||||
.withParameters(inParams)
|
.withParameters(inParams)
|
||||||
|
.cacheControl(new CacheControlDirective().setNoCache(true))
|
||||||
|
.withAdditionalHeader("Content-Type", "application/json")
|
||||||
.useHttpGet()
|
.useHttpGet()
|
||||||
.execute();
|
.execute();
|
||||||
|
|
||||||
// Parameters outParams = ourClient
|
|
||||||
// .operation()
|
|
||||||
// .onType(Measure.class)
|
|
||||||
// .named("$evaluate-measure")
|
|
||||||
// .withParameters(inParams)
|
|
||||||
// .useHttpGet()
|
|
||||||
// .execute();
|
|
||||||
|
|
||||||
List<Parameters.ParametersParameterComponent> response = outParams.getParameter();
|
List<Parameters.ParametersParameterComponent> response = outParams.getParameter();
|
||||||
|
|
||||||
Assert.assertTrue(!response.isEmpty());
|
Assert.assertTrue(!response.isEmpty());
|
||||||
|
|
||||||
Parameters.ParametersParameterComponent component = response.get(0);
|
Parameters.ParametersParameterComponent component = response.get(0);
|
||||||
|
|
||||||
Assert.assertTrue(component.getResource() instanceof MeasureReport);
|
Assert.assertTrue(component.getResource() instanceof MeasureReport);
|
||||||
|
|
||||||
MeasureReport report = (MeasureReport) component.getResource();
|
MeasureReport report = (MeasureReport) component.getResource();
|
||||||
|
Assert.assertEquals("Measure/"+measureId, report.getMeasure());
|
||||||
|
}
|
||||||
|
|
||||||
for (MeasureReport.MeasureReportGroupComponent group : report.getGroup()) {
|
private int loadDataFromDirectory(String theDirectoryName) throws IOException {
|
||||||
for (MeasureReport.MeasureReportGroupPopulationComponent population : group.getPopulation()) {
|
int count = 0;
|
||||||
Assert.assertTrue(population.getCount() > 0);
|
ourLog.info("Reading files in directory: {}", theDirectoryName);
|
||||||
|
ClassPathResource dir = new ClassPathResource(theDirectoryName);
|
||||||
|
Collection<File> files = FileUtils.listFiles(dir.getFile(), null, false);
|
||||||
|
ourLog.info("{} files found.", files.size());
|
||||||
|
for (File file : files) {
|
||||||
|
String filename = file.getAbsolutePath();
|
||||||
|
ourLog.info("Processing filename '{}'", filename);
|
||||||
|
if (filename.endsWith(".cql") || filename.contains("expectedresults")) {
|
||||||
|
// Ignore .cql and expectedresults files
|
||||||
|
ourLog.info("Ignoring file: '{}'", filename);
|
||||||
|
} else if (filename.endsWith(".json")) {
|
||||||
|
if (filename.contains("bundle")) {
|
||||||
|
loadBundle(filename, ourCtx, ourClient);
|
||||||
|
} else {
|
||||||
|
loadResource(filename, ourCtx, myDaoRegistry);
|
||||||
|
}
|
||||||
|
count++;
|
||||||
|
} else {
|
||||||
|
ourLog.info("Ignoring file: '{}'", filename);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return count;
|
||||||
}
|
}
|
||||||
|
|
||||||
private Bundle loadBundle(String theLocation, FhirContext theCtx, IGenericClient theClient) throws IOException {
|
private Bundle loadBundle(String theLocation, FhirContext theCtx, IGenericClient theClient) throws IOException {
|
||||||
|
|||||||
@@ -1,7 +1,6 @@
|
|||||||
package ca.uhn.fhir.jpa.starter;
|
package ca.uhn.fhir.jpa.starter;
|
||||||
|
|
||||||
import ca.uhn.fhir.context.FhirContext;
|
import ca.uhn.fhir.context.FhirContext;
|
||||||
import ca.uhn.fhir.cql.provider.CqlProviderLoader;
|
|
||||||
import ca.uhn.fhir.model.primitive.IdDt;
|
import ca.uhn.fhir.model.primitive.IdDt;
|
||||||
import ca.uhn.fhir.rest.api.CacheControlDirective;
|
import ca.uhn.fhir.rest.api.CacheControlDirective;
|
||||||
import ca.uhn.fhir.rest.api.EncodingEnum;
|
import ca.uhn.fhir.rest.api.EncodingEnum;
|
||||||
@@ -42,10 +41,10 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
|
|||||||
{
|
{
|
||||||
"spring.batch.job.enabled=false",
|
"spring.batch.job.enabled=false",
|
||||||
"spring.datasource.url=jdbc:h2:mem:dbr4",
|
"spring.datasource.url=jdbc:h2:mem:dbr4",
|
||||||
|
"hapi.fhir.fhir_version=R4",
|
||||||
"hapi.fhir.cql_enabled=true",
|
"hapi.fhir.cql_enabled=true",
|
||||||
"hapi.fhir.fhir_version=r4",
|
|
||||||
"hapi.fhir.subscription.websocket_enabled=true",
|
|
||||||
"hapi.fhir.empi_enabled=true",
|
"hapi.fhir.empi_enabled=true",
|
||||||
|
"hapi.fhir.subscription.websocket_enabled=true",
|
||||||
//Override is currently required when using Empi as the construction of the Empi beans are ambiguous as they are constructed multiple places. This is evident when running in a spring boot environment
|
//Override is currently required when using Empi as the construction of the Empi beans are ambiguous as they are constructed multiple places. This is evident when running in a spring boot environment
|
||||||
"spring.main.allow-bean-definition-overriding=true"
|
"spring.main.allow-bean-definition-overriding=true"
|
||||||
})
|
})
|
||||||
@@ -54,6 +53,7 @@ public class ExampleServerR4IT implements IServerSupport {
|
|||||||
private static final org.slf4j.Logger ourLog = org.slf4j.LoggerFactory.getLogger(ExampleServerDstu2IT.class);
|
private static final org.slf4j.Logger ourLog = org.slf4j.LoggerFactory.getLogger(ExampleServerDstu2IT.class);
|
||||||
private IGenericClient ourClient;
|
private IGenericClient ourClient;
|
||||||
private FhirContext ourCtx;
|
private FhirContext ourCtx;
|
||||||
|
private String ourServerBaseURL;
|
||||||
|
|
||||||
@LocalServerPort
|
@LocalServerPort
|
||||||
private int port;
|
private int port;
|
||||||
@@ -63,8 +63,8 @@ public class ExampleServerR4IT implements IServerSupport {
|
|||||||
ourCtx = FhirContext.forR4();
|
ourCtx = FhirContext.forR4();
|
||||||
ourCtx.getRestfulClientFactory().setServerValidationMode(ServerValidationModeEnum.NEVER);
|
ourCtx.getRestfulClientFactory().setServerValidationMode(ServerValidationModeEnum.NEVER);
|
||||||
ourCtx.getRestfulClientFactory().setSocketTimeout(1200 * 1000);
|
ourCtx.getRestfulClientFactory().setSocketTimeout(1200 * 1000);
|
||||||
String ourServerBase = "http://localhost:" + port + "/fhir/";
|
ourServerBaseURL = "http://localhost:" + port + "/fhir/";
|
||||||
ourClient = ourCtx.newRestfulGenericClient(ourServerBase);
|
ourClient = ourCtx.newRestfulGenericClient(ourServerBaseURL);
|
||||||
ourClient.registerInterceptor(new LoggingInterceptor(true));
|
ourClient.registerInterceptor(new LoggingInterceptor(true));
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -111,21 +111,21 @@ public class ExampleServerR4IT implements IServerSupport {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Test
|
@Test
|
||||||
public void testCQLEvaluateMeasure() throws IOException {
|
public void testCQLEvaluateMeasureEXM104() throws IOException {
|
||||||
CqlProviderLoader cqlProviderLoader = null;
|
String measureId = "measure-EXM104-8.2.000";
|
||||||
|
|
||||||
// FIXME KBD Remove this and put some Unit Test code here
|
|
||||||
loadBundle("r4/EXM104/EXM104-8.2.000-bundle.json", ourCtx, ourClient);
|
loadBundle("r4/EXM104/EXM104-8.2.000-bundle.json", ourCtx, ourClient);
|
||||||
|
|
||||||
|
// http://localhost:8080/fhir/Measure/measure-EXM104-8.2.000/$evaluate-measure?periodStart=2019-01-01&periodEnd=2019-12-31
|
||||||
Parameters inParams = new Parameters();
|
Parameters inParams = new Parameters();
|
||||||
// inParams.addParameter().setName("measure").setValue(new StringType("Measure/measure-EXM104-8.2.000"));
|
// inParams.addParameter().setName("measure").setValue(new StringType("Measure/measure-EXM104-8.2.000"));
|
||||||
// inParams.addParameter().setName("patient").setValue(new StringType("Patient/numer-EXM104-FHIR3"));
|
// inParams.addParameter().setName("patient").setValue(new StringType("Patient/numer-EXM104-FHIR3"));
|
||||||
inParams.addParameter().setName("periodStart").setValue(new DateType("2019-01-01"));
|
inParams.addParameter().setName("periodStart").setValue(new StringType("2019-01-01"));
|
||||||
inParams.addParameter().setName("periodEnd").setValue(new DateType("2019-12-31"));
|
inParams.addParameter().setName("periodEnd").setValue(new StringType("2019-12-31"));
|
||||||
|
|
||||||
Parameters outParams = ourClient
|
Parameters outParams = ourClient
|
||||||
.operation()
|
.operation()
|
||||||
.onInstance(new IdDt("Measure", "measure-EXM104-8.2.000"))
|
.onInstance(new IdDt("Measure", measureId))
|
||||||
.named("$evaluate-measure")
|
.named("$evaluate-measure")
|
||||||
.withParameters(inParams)
|
.withParameters(inParams)
|
||||||
.cacheControl(new CacheControlDirective().setNoCache(true))
|
.cacheControl(new CacheControlDirective().setNoCache(true))
|
||||||
@@ -133,29 +133,12 @@ public class ExampleServerR4IT implements IServerSupport {
|
|||||||
.useHttpGet()
|
.useHttpGet()
|
||||||
.execute();
|
.execute();
|
||||||
|
|
||||||
// Parameters outParams = ourClient
|
|
||||||
// .operation()
|
|
||||||
// .onType(Measure.class)
|
|
||||||
// .named("$evaluate-measure")
|
|
||||||
// .withParameters(inParams)
|
|
||||||
// .useHttpGet()
|
|
||||||
// .execute();
|
|
||||||
|
|
||||||
List<Parameters.ParametersParameterComponent> response = outParams.getParameter();
|
List<Parameters.ParametersParameterComponent> response = outParams.getParameter();
|
||||||
|
|
||||||
Assert.assertTrue(!response.isEmpty());
|
Assert.assertTrue(!response.isEmpty());
|
||||||
|
|
||||||
Parameters.ParametersParameterComponent component = response.get(0);
|
Parameters.ParametersParameterComponent component = response.get(0);
|
||||||
|
|
||||||
Assert.assertTrue(component.getResource() instanceof MeasureReport);
|
Assert.assertTrue(component.getResource() instanceof MeasureReport);
|
||||||
|
|
||||||
MeasureReport report = (MeasureReport) component.getResource();
|
MeasureReport report = (MeasureReport) component.getResource();
|
||||||
|
Assert.assertEquals("Measure/"+measureId, report.getMeasure());
|
||||||
for (MeasureReport.MeasureReportGroupComponent group : report.getGroup()) {
|
|
||||||
for (MeasureReport.MeasureReportGroupPopulationComponent population : group.getPopulation()) {
|
|
||||||
Assert.assertTrue(population.getCount() > 0);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private Bundle loadBundle(String theLocation, FhirContext theCtx, IGenericClient theClient) throws IOException {
|
private Bundle loadBundle(String theLocation, FhirContext theCtx, IGenericClient theClient) throws IOException {
|
||||||
|
|||||||
@@ -1,7 +1,8 @@
|
|||||||
package ca.uhn.fhir.jpa.starter;
|
package ca.uhn.fhir.jpa.starter;
|
||||||
|
|
||||||
import ca.uhn.fhir.context.FhirContext;
|
import ca.uhn.fhir.context.FhirContext;
|
||||||
import ca.uhn.fhir.rest.client.api.IGenericClient;
|
import ca.uhn.fhir.jpa.api.dao.DaoRegistry;
|
||||||
|
import ca.uhn.fhir.jpa.api.dao.IFhirResourceDao;
|
||||||
import com.google.common.base.Charsets;
|
import com.google.common.base.Charsets;
|
||||||
import org.apache.commons.io.IOUtils;
|
import org.apache.commons.io.IOUtils;
|
||||||
import org.hl7.fhir.instance.model.api.IBaseResource;
|
import org.hl7.fhir.instance.model.api.IBaseResource;
|
||||||
@@ -12,26 +13,20 @@ import java.io.File;
|
|||||||
import java.io.FileInputStream;
|
import java.io.FileInputStream;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.util.Scanner;
|
|
||||||
|
|
||||||
public interface IServerSupport {
|
public interface IServerSupport {
|
||||||
|
|
||||||
// default void putResourceDstu3(String resourceFileName, String id, FhirContext theCtx, IGenericClient theClient) {
|
default IBaseResource loadResource(String theLocation, FhirContext theFhirContext, DaoRegistry theDaoRegistry) throws IOException {
|
||||||
// InputStream is = ExampleServerDstu3IT.class.getResourceAsStream(resourceFileName);
|
String json = stringFromResource(theLocation);
|
||||||
// Scanner scanner = new Scanner(is).useDelimiter("\\A");
|
IBaseResource resource = theFhirContext.newJsonParser().parseResource(json);
|
||||||
// String json = scanner.hasNext() ? scanner.next() : "";
|
IFhirResourceDao<IBaseResource> dao = theDaoRegistry.getResourceDao(resource.getIdElement().getResourceType());
|
||||||
//
|
if (dao == null) {
|
||||||
// boolean isJson = resourceFileName.endsWith("json");
|
return null;
|
||||||
//
|
} else {
|
||||||
// IBaseResource resource = isJson ? theCtx.newJsonParser().parseResource(json) : theCtx.newXmlParser().parseResource(json);
|
dao.update(resource);
|
||||||
//
|
return resource;
|
||||||
// if (resource instanceof Bundle) {
|
}
|
||||||
// theClient.transaction().withBundle((Bundle) resource).execute();
|
}
|
||||||
// }
|
|
||||||
// else {
|
|
||||||
// theClient.update().resource(resource).withId(id).execute();
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
|
|
||||||
default String stringFromResource(String theLocation) throws IOException {
|
default String stringFromResource(String theLocation) throws IOException {
|
||||||
InputStream is = null;
|
InputStream is = null;
|
||||||
|
|||||||
@@ -22,6 +22,7 @@ hapi:
|
|||||||
# allow_placeholder_references: true
|
# allow_placeholder_references: true
|
||||||
# auto_create_placeholder_reference_targets: false
|
# auto_create_placeholder_reference_targets: false
|
||||||
# cql_enabled: false
|
# cql_enabled: false
|
||||||
|
# empi_enabled: false
|
||||||
# default_encoding: JSON
|
# default_encoding: JSON
|
||||||
# default_pretty_print: true
|
# default_pretty_print: true
|
||||||
# default_page_size: 20
|
# default_page_size: 20
|
||||||
|
|||||||
@@ -183,7 +183,7 @@
|
|||||||
"type": {
|
"type": {
|
||||||
"coding": [
|
"coding": [
|
||||||
{
|
{
|
||||||
"system": "http://hl7.org/fhir/codesystem-library-type.html",
|
"system": "http://hl7.org/fhir/library-type",
|
||||||
"code": "logic-library"
|
"code": "logic-library"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -338,7 +338,7 @@
|
|||||||
"type": {
|
"type": {
|
||||||
"coding": [
|
"coding": [
|
||||||
{
|
{
|
||||||
"system": "http://hl7.org/fhir/codesystem-library-type.html",
|
"system": "http://hl7.org/fhir/library-type",
|
||||||
"code": "logic-library"
|
"code": "logic-library"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -1610,7 +1610,7 @@
|
|||||||
"type": {
|
"type": {
|
||||||
"coding": [
|
"coding": [
|
||||||
{
|
{
|
||||||
"system": "http://hl7.org/fhir/codesystem-library-type.html",
|
"system": "http://hl7.org/fhir/library-type",
|
||||||
"code": "logic-library"
|
"code": "logic-library"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -2177,7 +2177,7 @@
|
|||||||
"type": {
|
"type": {
|
||||||
"coding": [
|
"coding": [
|
||||||
{
|
{
|
||||||
"system": "http://hl7.org/fhir/codesystem-library-type.html",
|
"system": "http://hl7.org/fhir/library-type",
|
||||||
"code": "logic-library"
|
"code": "logic-library"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
@@ -2265,7 +2265,7 @@
|
|||||||
"type": {
|
"type": {
|
||||||
"coding": [
|
"coding": [
|
||||||
{
|
{
|
||||||
"system": "http://hl7.org/fhir/codesystem-library-type.html",
|
"system": "http://hl7.org/fhir/library-type",
|
||||||
"code": "logic-library"
|
"code": "logic-library"
|
||||||
}
|
}
|
||||||
]
|
]
|
||||||
|
|||||||
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
@@ -0,0 +1,303 @@
|
|||||||
|
{
|
||||||
|
"resourceType": "MeasureReport",
|
||||||
|
"id": "measurereport-denom-EXM104-FHIR3-8.1.000-expectedresults",
|
||||||
|
"contained": [
|
||||||
|
{
|
||||||
|
"resourceType": "Bundle",
|
||||||
|
"id": "b20ba55e-a72e-493d-868d-e9f6c007d11a",
|
||||||
|
"type": "collection",
|
||||||
|
"entry": [
|
||||||
|
{
|
||||||
|
"fullUrl": "Condition/denom-EXM104-FHIR3-1",
|
||||||
|
"resource": {
|
||||||
|
"resourceType": "Condition",
|
||||||
|
"id": "denom-EXM104-FHIR3-1",
|
||||||
|
"meta": {
|
||||||
|
"versionId": "1",
|
||||||
|
"lastUpdated": "2019-12-18T22:42:17.748-07:00",
|
||||||
|
"profile": [
|
||||||
|
"http://hl7.org/fhir/us/core/StructureDefinition/us-core-condition"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"verificationStatus": "confirmed",
|
||||||
|
"category": [
|
||||||
|
{
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://terminology.hl7.org/CodeSystem/condition-category",
|
||||||
|
"code": "encounter-diagnosis",
|
||||||
|
"display": "Encounter Diagnosis"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"code": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"code": "116288000",
|
||||||
|
"display": "Paralytic stroke (disorder)"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"subject": {
|
||||||
|
"reference": "Patient/denom-EXM104-FHIR3"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fullUrl": "Encounter/denom-EXM104-FHIR3-2",
|
||||||
|
"resource": {
|
||||||
|
"resourceType": "Encounter",
|
||||||
|
"id": "denom-EXM104-FHIR3-2",
|
||||||
|
"meta": {
|
||||||
|
"versionId": "1",
|
||||||
|
"lastUpdated": "2019-12-18T22:42:17.748-07:00",
|
||||||
|
"profile": [
|
||||||
|
"http://hl7.org/fhir/us/core/StructureDefinition/us-core-encounter"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"status": "finished",
|
||||||
|
"class": {
|
||||||
|
"system": "http://terminology.hl7.org/CodeSystem/v3-ActCode",
|
||||||
|
"code": "IMP",
|
||||||
|
"display": "inpatient encounter"
|
||||||
|
},
|
||||||
|
"type": [
|
||||||
|
{
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"code": "32485007",
|
||||||
|
"display": "Hospital admission (procedure)"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"subject": {
|
||||||
|
"reference": "Patient/denom-EXM104-FHIR3"
|
||||||
|
},
|
||||||
|
"period": {
|
||||||
|
"start": "2019-08-21T00:00:00-06:00",
|
||||||
|
"end": "2019-12-19T08:15:00-07:00"
|
||||||
|
},
|
||||||
|
"diagnosis": [
|
||||||
|
{
|
||||||
|
"condition": {
|
||||||
|
"reference": "Condition/denom-EXM104-FHIR3-1"
|
||||||
|
},
|
||||||
|
"role": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://hl7.org/fhir/diagnosis-role",
|
||||||
|
"code": "billing",
|
||||||
|
"display": "Billing"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"rank": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fullUrl": "Patient/denom-EXM104-FHIR3",
|
||||||
|
"resource": {
|
||||||
|
"resourceType": "Patient",
|
||||||
|
"id": "denom-EXM104-FHIR3",
|
||||||
|
"meta": {
|
||||||
|
"versionId": "1",
|
||||||
|
"lastUpdated": "2019-12-18T22:42:17.748-07:00",
|
||||||
|
"profile": [
|
||||||
|
"http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"text": {
|
||||||
|
"status": "generated",
|
||||||
|
"div": "<div xmlns=\"http://www.w3.org/1999/xhtml\"><div class=\"hapiHeaderText\">Rick <b>JONES </b></div><table class=\"hapiPropertyTable\"><tbody><tr><td>Identifier</td><td>9999999910</td></tr><tr><td>Date of birth</td><td><span>05 November 1955</span></td></tr></tbody></table></div>"
|
||||||
|
},
|
||||||
|
"extension": [
|
||||||
|
{
|
||||||
|
"url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-race",
|
||||||
|
"extension": [
|
||||||
|
{
|
||||||
|
"url": "ombCategory",
|
||||||
|
"valueCoding": {
|
||||||
|
"system": "urn:oid:2.16.840.1.113883.6.238",
|
||||||
|
"code": "2054-5",
|
||||||
|
"display": "Black or African American"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity",
|
||||||
|
"extension": [
|
||||||
|
{
|
||||||
|
"url": "ombCategory",
|
||||||
|
"valueCoding": {
|
||||||
|
"system": "urn:oid:2.16.840.1.113883.6.238",
|
||||||
|
"code": "2135-2",
|
||||||
|
"display": "Hispanic or Latino"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"identifier": [
|
||||||
|
{
|
||||||
|
"use": "usual",
|
||||||
|
"type": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://terminology.hl7.org/CodeSystem/v2-0203",
|
||||||
|
"code": "MR",
|
||||||
|
"display": "Medical Record Number"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"system": "http://hospital.smarthealthit.org",
|
||||||
|
"value": "9999999910"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"name": [
|
||||||
|
{
|
||||||
|
"family": "Jones",
|
||||||
|
"given": [
|
||||||
|
"Rick"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gender": "male",
|
||||||
|
"birthDate": "1955-11-05"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fullUrl": "a6811e61-b875-43ac-960d-de15dab68184",
|
||||||
|
"resource": {
|
||||||
|
"resourceType": "List",
|
||||||
|
"id": "a6811e61-b875-43ac-960d-de15dab68184",
|
||||||
|
"title": "initial-population",
|
||||||
|
"entry": [
|
||||||
|
{
|
||||||
|
"item": {
|
||||||
|
"reference": "denom-EXM104-FHIR3-1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"item": {
|
||||||
|
"reference": "denom-EXM104-FHIR3-2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"item": {
|
||||||
|
"reference": "denom-EXM104-FHIR3"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fullUrl": "f8cb86c0-faf5-433d-bb60-d1bbbaf67abc",
|
||||||
|
"resource": {
|
||||||
|
"resourceType": "List",
|
||||||
|
"id": "f8cb86c0-faf5-433d-bb60-d1bbbaf67abc",
|
||||||
|
"title": "denominator",
|
||||||
|
"entry": [
|
||||||
|
{
|
||||||
|
"item": {
|
||||||
|
"reference": "denom-EXM104-FHIR3-1"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"status": "complete",
|
||||||
|
"type": "individual",
|
||||||
|
"measure": {
|
||||||
|
"reference": "Measure/measure-EXM104-FHIR3-8.1.000"
|
||||||
|
},
|
||||||
|
"patient": {
|
||||||
|
"reference": "Patient/denom-EXM104-FHIR3"
|
||||||
|
},
|
||||||
|
"period": {
|
||||||
|
"start": "2019-01-01T00:00:00-07:00",
|
||||||
|
"end": "2019-12-31T00:00:00-07:00"
|
||||||
|
},
|
||||||
|
"group": [
|
||||||
|
{
|
||||||
|
"identifier": {
|
||||||
|
"value": "group-1"
|
||||||
|
},
|
||||||
|
"population": [
|
||||||
|
{
|
||||||
|
"identifier": {
|
||||||
|
"value": "initial-population-identifier"
|
||||||
|
},
|
||||||
|
"code": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://terminology.hl7.org/CodeSystem/measure-population",
|
||||||
|
"code": "initial-population",
|
||||||
|
"display": "Initial Population"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"count": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": {
|
||||||
|
"value": "numerator-identifier"
|
||||||
|
},
|
||||||
|
"code": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://terminology.hl7.org/CodeSystem/measure-population",
|
||||||
|
"code": "numerator",
|
||||||
|
"display": "Numerator"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"count": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": {
|
||||||
|
"value": "denominator-identifier"
|
||||||
|
},
|
||||||
|
"code": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://terminology.hl7.org/CodeSystem/measure-population",
|
||||||
|
"code": "denominator",
|
||||||
|
"display": "Denominator"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"count": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": {
|
||||||
|
"value": "denominator-exclusions-identifier"
|
||||||
|
},
|
||||||
|
"code": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://terminology.hl7.org/CodeSystem/measure-population",
|
||||||
|
"code": "denominator-exclusion",
|
||||||
|
"display": "Denominator Exclusion"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"count": 0
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"measureScore": 0.0
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"evaluatedResources": {
|
||||||
|
"reference": "#b20ba55e-a72e-493d-868d-e9f6c007d11a"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,353 @@
|
|||||||
|
{
|
||||||
|
"resourceType": "MeasureReport",
|
||||||
|
"id": "measurereport-numer-EXM104-FHIR3-8.1.000-expectedresults",
|
||||||
|
"contained": [
|
||||||
|
{
|
||||||
|
"resourceType": "Bundle",
|
||||||
|
"id": "edc87d47-5804-4d85-8874-ee2d50e51c51",
|
||||||
|
"type": "collection",
|
||||||
|
"entry": [
|
||||||
|
{
|
||||||
|
"fullUrl": "MedicationRequest/numer-EXM104-FHIR3-5",
|
||||||
|
"resource": {
|
||||||
|
"resourceType": "MedicationRequest",
|
||||||
|
"id": "numer-EXM104-FHIR3-5",
|
||||||
|
"meta": {
|
||||||
|
"versionId": "1",
|
||||||
|
"lastUpdated": "2019-12-18T22:42:17.748-07:00"
|
||||||
|
},
|
||||||
|
"status": "completed",
|
||||||
|
"intent": "order",
|
||||||
|
"category": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category",
|
||||||
|
"code": "discharge",
|
||||||
|
"display": "Discharge"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"medicationCodeableConcept": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://www.nlm.nih.gov/research/umls/rxnorm",
|
||||||
|
"code": "1037045",
|
||||||
|
"display": "dabigatran etexilate 150 MG Oral Capsule"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"subject": {
|
||||||
|
"reference": "Patient/numer-EXM104-FHIR3"
|
||||||
|
},
|
||||||
|
"authoredOn": "2019-12-19T08:00:00-07:00"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fullUrl": "Patient/numer-EXM104-FHIR3",
|
||||||
|
"resource": {
|
||||||
|
"resourceType": "Patient",
|
||||||
|
"id": "numer-EXM104-FHIR3",
|
||||||
|
"meta": {
|
||||||
|
"versionId": "1",
|
||||||
|
"lastUpdated": "2019-12-18T22:42:17.748-07:00",
|
||||||
|
"profile": [
|
||||||
|
"http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"text": {
|
||||||
|
"status": "generated",
|
||||||
|
"div": "<div xmlns=\"http://www.w3.org/1999/xhtml\"><div class=\"hapiHeaderText\">Louise <b>JONES </b></div><table class=\"hapiPropertyTable\"><tbody><tr><td>Identifier</td><td>9999999911</td></tr><tr><td>Date of birth</td><td><span>21 November 1971</span></td></tr></tbody></table></div>"
|
||||||
|
},
|
||||||
|
"extension": [
|
||||||
|
{
|
||||||
|
"url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-race",
|
||||||
|
"extension": [
|
||||||
|
{
|
||||||
|
"url": "ombCategory",
|
||||||
|
"valueCoding": {
|
||||||
|
"system": "urn:oid:2.16.840.1.113883.6.238",
|
||||||
|
"code": "2106-3",
|
||||||
|
"display": "White"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity",
|
||||||
|
"extension": [
|
||||||
|
{
|
||||||
|
"url": "ombCategory",
|
||||||
|
"valueCoding": {
|
||||||
|
"system": "urn:oid:2.16.840.1.113883.6.238",
|
||||||
|
"code": "2186-5",
|
||||||
|
"display": "Not Hispanic or Latino"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"identifier": [
|
||||||
|
{
|
||||||
|
"use": "usual",
|
||||||
|
"type": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://terminology.hl7.org/CodeSystem/v2-0203",
|
||||||
|
"code": "MR",
|
||||||
|
"display": "Medical Record Number"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"system": "http://hospital.smarthealthit.org",
|
||||||
|
"value": "9999999911"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"name": [
|
||||||
|
{
|
||||||
|
"family": "Jones",
|
||||||
|
"given": [
|
||||||
|
"Louise"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gender": "female",
|
||||||
|
"birthDate": "1971-11-21"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fullUrl": "475b43c7-73fd-4400-a23b-b0accf116c79",
|
||||||
|
"resource": {
|
||||||
|
"resourceType": "List",
|
||||||
|
"id": "475b43c7-73fd-4400-a23b-b0accf116c79",
|
||||||
|
"title": "initial-population",
|
||||||
|
"entry": [
|
||||||
|
{
|
||||||
|
"item": {
|
||||||
|
"reference": "numer-EXM104-FHIR3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"item": {
|
||||||
|
"reference": "numer-EXM104-FHIR3-2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"item": {
|
||||||
|
"reference": "numer-EXM104-FHIR3-1"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fullUrl": "94606d36-6bd7-48b5-a519-7af88afa0b68",
|
||||||
|
"resource": {
|
||||||
|
"resourceType": "List",
|
||||||
|
"id": "94606d36-6bd7-48b5-a519-7af88afa0b68",
|
||||||
|
"title": "denominator",
|
||||||
|
"entry": [
|
||||||
|
{
|
||||||
|
"item": {
|
||||||
|
"reference": "numer-EXM104-FHIR3-1"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fullUrl": "7720275f-18c4-435c-8eeb-b154ac3b882a",
|
||||||
|
"resource": {
|
||||||
|
"resourceType": "List",
|
||||||
|
"id": "7720275f-18c4-435c-8eeb-b154ac3b882a",
|
||||||
|
"title": "numerator",
|
||||||
|
"entry": [
|
||||||
|
{
|
||||||
|
"item": {
|
||||||
|
"reference": "numer-EXM104-FHIR3-5"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fullUrl": "Encounter/numer-EXM104-FHIR3-2",
|
||||||
|
"resource": {
|
||||||
|
"resourceType": "Encounter",
|
||||||
|
"id": "numer-EXM104-FHIR3-2",
|
||||||
|
"meta": {
|
||||||
|
"versionId": "1",
|
||||||
|
"lastUpdated": "2019-12-18T22:42:17.748-07:00",
|
||||||
|
"profile": [
|
||||||
|
"http://hl7.org/fhir/us/core/StructureDefinition/us-core-encounter"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"status": "finished",
|
||||||
|
"class": {
|
||||||
|
"system": "http://terminology.hl7.org/CodeSystem/v3-ActCode",
|
||||||
|
"code": "IMP",
|
||||||
|
"display": "inpatient encounter"
|
||||||
|
},
|
||||||
|
"type": [
|
||||||
|
{
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"code": "32485007",
|
||||||
|
"display": "Hospital admission (procedure)"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"subject": {
|
||||||
|
"reference": "Patient/numer-EXM104-FHIR3"
|
||||||
|
},
|
||||||
|
"period": {
|
||||||
|
"start": "2019-08-21T00:00:00-06:00",
|
||||||
|
"end": "2019-12-19T08:15:00-07:00"
|
||||||
|
},
|
||||||
|
"diagnosis": [
|
||||||
|
{
|
||||||
|
"condition": {
|
||||||
|
"reference": "Condition/numer-EXM104-FHIR3-1"
|
||||||
|
},
|
||||||
|
"role": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://hl7.org/fhir/diagnosis-role",
|
||||||
|
"code": "billing",
|
||||||
|
"display": "Billing"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"rank": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fullUrl": "Condition/numer-EXM104-FHIR3-1",
|
||||||
|
"resource": {
|
||||||
|
"resourceType": "Condition",
|
||||||
|
"id": "numer-EXM104-FHIR3-1",
|
||||||
|
"meta": {
|
||||||
|
"versionId": "1",
|
||||||
|
"lastUpdated": "2019-12-18T22:42:17.748-07:00",
|
||||||
|
"profile": [
|
||||||
|
"http://hl7.org/fhir/us/core/StructureDefinition/us-core-condition"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"verificationStatus": "confirmed",
|
||||||
|
"category": [
|
||||||
|
{
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://terminology.hl7.org/CodeSystem/condition-category",
|
||||||
|
"code": "encounter-diagnosis",
|
||||||
|
"display": "Encounter Diagnosis"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"code": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"code": "116288000",
|
||||||
|
"display": "Paralytic stroke (disorder)"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"subject": {
|
||||||
|
"reference": "Patient/numer-EXM104-FHIR3"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"status": "complete",
|
||||||
|
"type": "individual",
|
||||||
|
"measure": {
|
||||||
|
"reference": "Measure/measure-EXM104-FHIR3-8.1.000"
|
||||||
|
},
|
||||||
|
"patient": {
|
||||||
|
"reference": "Patient/numer-EXM104-FHIR3"
|
||||||
|
},
|
||||||
|
"period": {
|
||||||
|
"start": "2019-01-01T00:00:00-07:00",
|
||||||
|
"end": "2019-12-31T00:00:00-07:00"
|
||||||
|
},
|
||||||
|
"group": [
|
||||||
|
{
|
||||||
|
"identifier": {
|
||||||
|
"value": "group-1"
|
||||||
|
},
|
||||||
|
"population": [
|
||||||
|
{
|
||||||
|
"identifier": {
|
||||||
|
"value": "initial-population-identifier"
|
||||||
|
},
|
||||||
|
"code": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://terminology.hl7.org/CodeSystem/measure-population",
|
||||||
|
"code": "initial-population",
|
||||||
|
"display": "Initial Population"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"count": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": {
|
||||||
|
"value": "numerator-identifier"
|
||||||
|
},
|
||||||
|
"code": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://terminology.hl7.org/CodeSystem/measure-population",
|
||||||
|
"code": "numerator",
|
||||||
|
"display": "Numerator"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"count": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": {
|
||||||
|
"value": "denominator-identifier"
|
||||||
|
},
|
||||||
|
"code": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://terminology.hl7.org/CodeSystem/measure-population",
|
||||||
|
"code": "denominator",
|
||||||
|
"display": "Denominator"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"count": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": {
|
||||||
|
"value": "denominator-exclusions-identifier"
|
||||||
|
},
|
||||||
|
"code": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://terminology.hl7.org/CodeSystem/measure-population",
|
||||||
|
"code": "denominator-exclusion",
|
||||||
|
"display": "Denominator Exclusion"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"count": 0
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"measureScore": 1.0
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"evaluatedResources": {
|
||||||
|
"reference": "#edc87d47-5804-4d85-8874-ee2d50e51c51"
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,480 @@
|
|||||||
|
{
|
||||||
|
"resourceType": "Bundle",
|
||||||
|
"id": "tests-denom-EXM104-FHIR3-bundle",
|
||||||
|
"type": "transaction",
|
||||||
|
"entry": [
|
||||||
|
{
|
||||||
|
"resource": {
|
||||||
|
"resourceType": "Condition",
|
||||||
|
"id": "denom-EXM104-FHIR3-1",
|
||||||
|
"meta": {
|
||||||
|
"profile": [
|
||||||
|
"http://hl7.org/fhir/us/core/StructureDefinition/us-core-condition"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"verificationStatus": "confirmed",
|
||||||
|
"category": [
|
||||||
|
{
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://terminology.hl7.org/CodeSystem/condition-category",
|
||||||
|
"code": "encounter-diagnosis",
|
||||||
|
"display": "Encounter Diagnosis"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"code": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"code": "116288000",
|
||||||
|
"display": "Paralytic stroke (disorder)"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"subject": {
|
||||||
|
"reference": "Patient/denom-EXM104-FHIR3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"request": {
|
||||||
|
"method": "PUT",
|
||||||
|
"url": "Condition/denom-EXM104-FHIR3-1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"resource": {
|
||||||
|
"resourceType": "Encounter",
|
||||||
|
"id": "denom-EXM104-FHIR3-2",
|
||||||
|
"meta": {
|
||||||
|
"profile": [
|
||||||
|
"http://hl7.org/fhir/us/core/StructureDefinition/us-core-encounter"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"status": "finished",
|
||||||
|
"class": {
|
||||||
|
"system": "http://terminology.hl7.org/CodeSystem/v3-ActCode",
|
||||||
|
"code": "IMP",
|
||||||
|
"display": "inpatient encounter"
|
||||||
|
},
|
||||||
|
"type": [
|
||||||
|
{
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"code": "32485007",
|
||||||
|
"display": "Hospital admission (procedure)"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"subject": {
|
||||||
|
"reference": "Patient/denom-EXM104-FHIR3"
|
||||||
|
},
|
||||||
|
"period": {
|
||||||
|
"start": "2019-08-21T00:00:00-06:00",
|
||||||
|
"end": "2019-12-19T08:15:00-07:00"
|
||||||
|
},
|
||||||
|
"diagnosis": [
|
||||||
|
{
|
||||||
|
"condition": {
|
||||||
|
"reference": "Condition/denom-EXM104-FHIR3-1"
|
||||||
|
},
|
||||||
|
"role": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://hl7.org/fhir/diagnosis-role",
|
||||||
|
"code": "billing",
|
||||||
|
"display": "Billing"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"rank": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"request": {
|
||||||
|
"method": "PUT",
|
||||||
|
"url": "Encounter/denom-EXM104-FHIR3-2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"resource": {
|
||||||
|
"resourceType": "MeasureReport",
|
||||||
|
"id": "measurereport-denom-EXM104-FHIR3",
|
||||||
|
"contained": [
|
||||||
|
{
|
||||||
|
"resourceType": "Bundle",
|
||||||
|
"id": "b20ba55e-a72e-493d-868d-e9f6c007d11a",
|
||||||
|
"type": "collection",
|
||||||
|
"entry": [
|
||||||
|
{
|
||||||
|
"fullUrl": "Condition/denom-EXM104-FHIR3-1",
|
||||||
|
"resource": {
|
||||||
|
"resourceType": "Condition",
|
||||||
|
"id": "denom-EXM104-FHIR3-1",
|
||||||
|
"meta": {
|
||||||
|
"versionId": "1",
|
||||||
|
"lastUpdated": "2019-12-18T22:42:17.748-07:00",
|
||||||
|
"profile": [
|
||||||
|
"http://hl7.org/fhir/us/core/StructureDefinition/us-core-condition"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"verificationStatus": "confirmed",
|
||||||
|
"category": [
|
||||||
|
{
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://terminology.hl7.org/CodeSystem/condition-category",
|
||||||
|
"code": "encounter-diagnosis",
|
||||||
|
"display": "Encounter Diagnosis"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"code": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"code": "116288000",
|
||||||
|
"display": "Paralytic stroke (disorder)"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"subject": {
|
||||||
|
"reference": "Patient/denom-EXM104-FHIR3"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fullUrl": "Encounter/denom-EXM104-FHIR3-2",
|
||||||
|
"resource": {
|
||||||
|
"resourceType": "Encounter",
|
||||||
|
"id": "denom-EXM104-FHIR3-2",
|
||||||
|
"meta": {
|
||||||
|
"versionId": "1",
|
||||||
|
"lastUpdated": "2019-12-18T22:42:17.748-07:00",
|
||||||
|
"profile": [
|
||||||
|
"http://hl7.org/fhir/us/core/StructureDefinition/us-core-encounter"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"status": "finished",
|
||||||
|
"class": {
|
||||||
|
"system": "http://terminology.hl7.org/CodeSystem/v3-ActCode",
|
||||||
|
"code": "IMP",
|
||||||
|
"display": "inpatient encounter"
|
||||||
|
},
|
||||||
|
"type": [
|
||||||
|
{
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"code": "32485007",
|
||||||
|
"display": "Hospital admission (procedure)"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"subject": {
|
||||||
|
"reference": "Patient/denom-EXM104-FHIR3"
|
||||||
|
},
|
||||||
|
"period": {
|
||||||
|
"start": "2019-08-21T00:00:00-06:00",
|
||||||
|
"end": "2019-12-19T08:15:00-07:00"
|
||||||
|
},
|
||||||
|
"diagnosis": [
|
||||||
|
{
|
||||||
|
"condition": {
|
||||||
|
"reference": "Condition/denom-EXM104-FHIR3-1"
|
||||||
|
},
|
||||||
|
"role": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://hl7.org/fhir/diagnosis-role",
|
||||||
|
"code": "billing",
|
||||||
|
"display": "Billing"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"rank": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fullUrl": "Patient/denom-EXM104-FHIR3",
|
||||||
|
"resource": {
|
||||||
|
"resourceType": "Patient",
|
||||||
|
"id": "denom-EXM104-FHIR3",
|
||||||
|
"meta": {
|
||||||
|
"versionId": "1",
|
||||||
|
"lastUpdated": "2019-12-18T22:42:17.748-07:00",
|
||||||
|
"profile": [
|
||||||
|
"http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"text": {
|
||||||
|
"status": "generated",
|
||||||
|
"div": "<div xmlns=\"http://www.w3.org/1999/xhtml\"><div class=\"hapiHeaderText\">Rick <b>JONES </b></div><table class=\"hapiPropertyTable\"><tbody><tr><td>Identifier</td><td>9999999910</td></tr><tr><td>Date of birth</td><td><span>05 November 1955</span></td></tr></tbody></table></div>"
|
||||||
|
},
|
||||||
|
"extension": [
|
||||||
|
{
|
||||||
|
"url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-race",
|
||||||
|
"extension": [
|
||||||
|
{
|
||||||
|
"url": "ombCategory",
|
||||||
|
"valueCoding": {
|
||||||
|
"system": "urn:oid:2.16.840.1.113883.6.238",
|
||||||
|
"code": "2054-5",
|
||||||
|
"display": "Black or African American"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity",
|
||||||
|
"extension": [
|
||||||
|
{
|
||||||
|
"url": "ombCategory",
|
||||||
|
"valueCoding": {
|
||||||
|
"system": "urn:oid:2.16.840.1.113883.6.238",
|
||||||
|
"code": "2135-2",
|
||||||
|
"display": "Hispanic or Latino"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"identifier": [
|
||||||
|
{
|
||||||
|
"use": "usual",
|
||||||
|
"type": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://terminology.hl7.org/CodeSystem/v2-0203",
|
||||||
|
"code": "MR",
|
||||||
|
"display": "Medical Record Number"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"system": "http://hospital.smarthealthit.org",
|
||||||
|
"value": "9999999910"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"name": [
|
||||||
|
{
|
||||||
|
"family": "Jones",
|
||||||
|
"given": [
|
||||||
|
"Rick"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gender": "male",
|
||||||
|
"birthDate": "1955-11-05"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fullUrl": "a6811e61-b875-43ac-960d-de15dab68184",
|
||||||
|
"resource": {
|
||||||
|
"resourceType": "List",
|
||||||
|
"id": "a6811e61-b875-43ac-960d-de15dab68184",
|
||||||
|
"title": "initial-population",
|
||||||
|
"entry": [
|
||||||
|
{
|
||||||
|
"item": {
|
||||||
|
"reference": "denom-EXM104-FHIR3-1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"item": {
|
||||||
|
"reference": "denom-EXM104-FHIR3-2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"item": {
|
||||||
|
"reference": "denom-EXM104-FHIR3"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fullUrl": "f8cb86c0-faf5-433d-bb60-d1bbbaf67abc",
|
||||||
|
"resource": {
|
||||||
|
"resourceType": "List",
|
||||||
|
"id": "f8cb86c0-faf5-433d-bb60-d1bbbaf67abc",
|
||||||
|
"title": "denominator",
|
||||||
|
"entry": [
|
||||||
|
{
|
||||||
|
"item": {
|
||||||
|
"reference": "denom-EXM104-FHIR3-1"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"status": "complete",
|
||||||
|
"type": "individual",
|
||||||
|
"measure": {
|
||||||
|
"reference": "Measure/measure-EXM104-FHIR3-8.1.000"
|
||||||
|
},
|
||||||
|
"patient": {
|
||||||
|
"reference": "Patient/denom-EXM104-FHIR3"
|
||||||
|
},
|
||||||
|
"period": {
|
||||||
|
"start": "2019-01-01T00:00:00-07:00",
|
||||||
|
"end": "2019-12-31T00:00:00-07:00"
|
||||||
|
},
|
||||||
|
"group": [
|
||||||
|
{
|
||||||
|
"identifier": {
|
||||||
|
"value": "group-1"
|
||||||
|
},
|
||||||
|
"population": [
|
||||||
|
{
|
||||||
|
"identifier": {
|
||||||
|
"value": "initial-population-identifier"
|
||||||
|
},
|
||||||
|
"code": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://terminology.hl7.org/CodeSystem/measure-population",
|
||||||
|
"code": "initial-population",
|
||||||
|
"display": "Initial Population"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"count": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": {
|
||||||
|
"value": "numerator-identifier"
|
||||||
|
},
|
||||||
|
"code": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://terminology.hl7.org/CodeSystem/measure-population",
|
||||||
|
"code": "numerator",
|
||||||
|
"display": "Numerator"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"count": 0
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": {
|
||||||
|
"value": "denominator-identifier"
|
||||||
|
},
|
||||||
|
"code": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://terminology.hl7.org/CodeSystem/measure-population",
|
||||||
|
"code": "denominator",
|
||||||
|
"display": "Denominator"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"count": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": {
|
||||||
|
"value": "denominator-exclusions-identifier"
|
||||||
|
},
|
||||||
|
"code": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://terminology.hl7.org/CodeSystem/measure-population",
|
||||||
|
"code": "denominator-exclusion",
|
||||||
|
"display": "Denominator Exclusion"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"count": 0
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"measureScore": 0.0
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"evaluatedResources": {
|
||||||
|
"reference": "#b20ba55e-a72e-493d-868d-e9f6c007d11a"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"request": {
|
||||||
|
"method": "PUT",
|
||||||
|
"url": "MeasureReport/measurereport-denom-EXM104-FHIR3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"resource": {
|
||||||
|
"resourceType": "Patient",
|
||||||
|
"id": "denom-EXM104-FHIR3",
|
||||||
|
"meta": {
|
||||||
|
"profile": [
|
||||||
|
"http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"extension": [
|
||||||
|
{
|
||||||
|
"url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-race",
|
||||||
|
"extension": [
|
||||||
|
{
|
||||||
|
"url": "ombCategory",
|
||||||
|
"valueCoding": {
|
||||||
|
"system": "urn:oid:2.16.840.1.113883.6.238",
|
||||||
|
"code": "2054-5",
|
||||||
|
"display": "Black or African American"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity",
|
||||||
|
"extension": [
|
||||||
|
{
|
||||||
|
"url": "ombCategory",
|
||||||
|
"valueCoding": {
|
||||||
|
"system": "urn:oid:2.16.840.1.113883.6.238",
|
||||||
|
"code": "2135-2",
|
||||||
|
"display": "Hispanic or Latino"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"identifier": [
|
||||||
|
{
|
||||||
|
"use": "usual",
|
||||||
|
"type": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://terminology.hl7.org/CodeSystem/v2-0203",
|
||||||
|
"code": "MR",
|
||||||
|
"display": "Medical Record Number"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"system": "http://hospital.smarthealthit.org",
|
||||||
|
"value": "9999999910"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"name": [
|
||||||
|
{
|
||||||
|
"family": "Jones",
|
||||||
|
"given": [
|
||||||
|
"Rick"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gender": "male",
|
||||||
|
"birthDate": "1955-11-05"
|
||||||
|
},
|
||||||
|
"request": {
|
||||||
|
"method": "PUT",
|
||||||
|
"url": "Patient/denom-EXM104-FHIR3"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
@@ -0,0 +1,564 @@
|
|||||||
|
{
|
||||||
|
"resourceType": "Bundle",
|
||||||
|
"id": "tests-numer-EXM104-FHIR3-bundle",
|
||||||
|
"type": "transaction",
|
||||||
|
"entry": [
|
||||||
|
{
|
||||||
|
"resource": {
|
||||||
|
"resourceType": "Condition",
|
||||||
|
"id": "numer-EXM104-FHIR3-1",
|
||||||
|
"meta": {
|
||||||
|
"profile": [
|
||||||
|
"http://hl7.org/fhir/us/core/StructureDefinition/us-core-condition"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"verificationStatus": "confirmed",
|
||||||
|
"category": [
|
||||||
|
{
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://terminology.hl7.org/CodeSystem/condition-category",
|
||||||
|
"code": "encounter-diagnosis",
|
||||||
|
"display": "Encounter Diagnosis"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"code": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"code": "116288000",
|
||||||
|
"display": "Paralytic stroke (disorder)"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"subject": {
|
||||||
|
"reference": "Patient/numer-EXM104-FHIR3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"request": {
|
||||||
|
"method": "PUT",
|
||||||
|
"url": "Condition/numer-EXM104-FHIR3-1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"resource": {
|
||||||
|
"resourceType": "Encounter",
|
||||||
|
"id": "numer-EXM104-FHIR3-2",
|
||||||
|
"meta": {
|
||||||
|
"profile": [
|
||||||
|
"http://hl7.org/fhir/us/core/StructureDefinition/us-core-encounter"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"status": "finished",
|
||||||
|
"class": {
|
||||||
|
"system": "http://terminology.hl7.org/CodeSystem/v3-ActCode",
|
||||||
|
"code": "IMP",
|
||||||
|
"display": "inpatient encounter"
|
||||||
|
},
|
||||||
|
"type": [
|
||||||
|
{
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"code": "32485007",
|
||||||
|
"display": "Hospital admission (procedure)"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"subject": {
|
||||||
|
"reference": "Patient/numer-EXM104-FHIR3"
|
||||||
|
},
|
||||||
|
"period": {
|
||||||
|
"start": "2019-08-21T00:00:00-06:00",
|
||||||
|
"end": "2019-12-19T08:15:00-07:00"
|
||||||
|
},
|
||||||
|
"diagnosis": [
|
||||||
|
{
|
||||||
|
"condition": {
|
||||||
|
"reference": "Condition/numer-EXM104-FHIR3-1"
|
||||||
|
},
|
||||||
|
"role": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://hl7.org/fhir/diagnosis-role",
|
||||||
|
"code": "billing",
|
||||||
|
"display": "Billing"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"rank": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"request": {
|
||||||
|
"method": "PUT",
|
||||||
|
"url": "Encounter/numer-EXM104-FHIR3-2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"resource": {
|
||||||
|
"resourceType": "MeasureReport",
|
||||||
|
"id": "measurereport-numer-EXM104-FHIR3",
|
||||||
|
"contained": [
|
||||||
|
{
|
||||||
|
"resourceType": "Bundle",
|
||||||
|
"id": "edc87d47-5804-4d85-8874-ee2d50e51c51",
|
||||||
|
"type": "collection",
|
||||||
|
"entry": [
|
||||||
|
{
|
||||||
|
"fullUrl": "MedicationRequest/numer-EXM104-FHIR3-5",
|
||||||
|
"resource": {
|
||||||
|
"resourceType": "MedicationRequest",
|
||||||
|
"id": "numer-EXM104-FHIR3-5",
|
||||||
|
"meta": {
|
||||||
|
"versionId": "1",
|
||||||
|
"lastUpdated": "2019-12-18T22:42:17.748-07:00"
|
||||||
|
},
|
||||||
|
"status": "completed",
|
||||||
|
"intent": "order",
|
||||||
|
"category": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category",
|
||||||
|
"code": "discharge",
|
||||||
|
"display": "Discharge"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"medicationCodeableConcept": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://www.nlm.nih.gov/research/umls/rxnorm",
|
||||||
|
"code": "1037045",
|
||||||
|
"display": "dabigatran etexilate 150 MG Oral Capsule"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"subject": {
|
||||||
|
"reference": "Patient/numer-EXM104-FHIR3"
|
||||||
|
},
|
||||||
|
"authoredOn": "2019-12-19T08:00:00-07:00"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fullUrl": "Patient/numer-EXM104-FHIR3",
|
||||||
|
"resource": {
|
||||||
|
"resourceType": "Patient",
|
||||||
|
"id": "numer-EXM104-FHIR3",
|
||||||
|
"meta": {
|
||||||
|
"versionId": "1",
|
||||||
|
"lastUpdated": "2019-12-18T22:42:17.748-07:00",
|
||||||
|
"profile": [
|
||||||
|
"http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"text": {
|
||||||
|
"status": "generated",
|
||||||
|
"div": "<div xmlns=\"http://www.w3.org/1999/xhtml\"><div class=\"hapiHeaderText\">Louise <b>JONES </b></div><table class=\"hapiPropertyTable\"><tbody><tr><td>Identifier</td><td>9999999911</td></tr><tr><td>Date of birth</td><td><span>21 November 1971</span></td></tr></tbody></table></div>"
|
||||||
|
},
|
||||||
|
"extension": [
|
||||||
|
{
|
||||||
|
"url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-race",
|
||||||
|
"extension": [
|
||||||
|
{
|
||||||
|
"url": "ombCategory",
|
||||||
|
"valueCoding": {
|
||||||
|
"system": "urn:oid:2.16.840.1.113883.6.238",
|
||||||
|
"code": "2106-3",
|
||||||
|
"display": "White"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity",
|
||||||
|
"extension": [
|
||||||
|
{
|
||||||
|
"url": "ombCategory",
|
||||||
|
"valueCoding": {
|
||||||
|
"system": "urn:oid:2.16.840.1.113883.6.238",
|
||||||
|
"code": "2186-5",
|
||||||
|
"display": "Not Hispanic or Latino"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"identifier": [
|
||||||
|
{
|
||||||
|
"use": "usual",
|
||||||
|
"type": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://terminology.hl7.org/CodeSystem/v2-0203",
|
||||||
|
"code": "MR",
|
||||||
|
"display": "Medical Record Number"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"system": "http://hospital.smarthealthit.org",
|
||||||
|
"value": "9999999911"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"name": [
|
||||||
|
{
|
||||||
|
"family": "Jones",
|
||||||
|
"given": [
|
||||||
|
"Louise"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gender": "female",
|
||||||
|
"birthDate": "1971-11-21"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fullUrl": "475b43c7-73fd-4400-a23b-b0accf116c79",
|
||||||
|
"resource": {
|
||||||
|
"resourceType": "List",
|
||||||
|
"id": "475b43c7-73fd-4400-a23b-b0accf116c79",
|
||||||
|
"title": "initial-population",
|
||||||
|
"entry": [
|
||||||
|
{
|
||||||
|
"item": {
|
||||||
|
"reference": "numer-EXM104-FHIR3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"item": {
|
||||||
|
"reference": "numer-EXM104-FHIR3-2"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"item": {
|
||||||
|
"reference": "numer-EXM104-FHIR3-1"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fullUrl": "94606d36-6bd7-48b5-a519-7af88afa0b68",
|
||||||
|
"resource": {
|
||||||
|
"resourceType": "List",
|
||||||
|
"id": "94606d36-6bd7-48b5-a519-7af88afa0b68",
|
||||||
|
"title": "denominator",
|
||||||
|
"entry": [
|
||||||
|
{
|
||||||
|
"item": {
|
||||||
|
"reference": "numer-EXM104-FHIR3-1"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fullUrl": "7720275f-18c4-435c-8eeb-b154ac3b882a",
|
||||||
|
"resource": {
|
||||||
|
"resourceType": "List",
|
||||||
|
"id": "7720275f-18c4-435c-8eeb-b154ac3b882a",
|
||||||
|
"title": "numerator",
|
||||||
|
"entry": [
|
||||||
|
{
|
||||||
|
"item": {
|
||||||
|
"reference": "numer-EXM104-FHIR3-5"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fullUrl": "Encounter/numer-EXM104-FHIR3-2",
|
||||||
|
"resource": {
|
||||||
|
"resourceType": "Encounter",
|
||||||
|
"id": "numer-EXM104-FHIR3-2",
|
||||||
|
"meta": {
|
||||||
|
"versionId": "1",
|
||||||
|
"lastUpdated": "2019-12-18T22:42:17.748-07:00",
|
||||||
|
"profile": [
|
||||||
|
"http://hl7.org/fhir/us/core/StructureDefinition/us-core-encounter"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"status": "finished",
|
||||||
|
"class": {
|
||||||
|
"system": "http://terminology.hl7.org/CodeSystem/v3-ActCode",
|
||||||
|
"code": "IMP",
|
||||||
|
"display": "inpatient encounter"
|
||||||
|
},
|
||||||
|
"type": [
|
||||||
|
{
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"code": "32485007",
|
||||||
|
"display": "Hospital admission (procedure)"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"subject": {
|
||||||
|
"reference": "Patient/numer-EXM104-FHIR3"
|
||||||
|
},
|
||||||
|
"period": {
|
||||||
|
"start": "2019-08-21T00:00:00-06:00",
|
||||||
|
"end": "2019-12-19T08:15:00-07:00"
|
||||||
|
},
|
||||||
|
"diagnosis": [
|
||||||
|
{
|
||||||
|
"condition": {
|
||||||
|
"reference": "Condition/numer-EXM104-FHIR3-1"
|
||||||
|
},
|
||||||
|
"role": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://hl7.org/fhir/diagnosis-role",
|
||||||
|
"code": "billing",
|
||||||
|
"display": "Billing"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"rank": 1
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"fullUrl": "Condition/numer-EXM104-FHIR3-1",
|
||||||
|
"resource": {
|
||||||
|
"resourceType": "Condition",
|
||||||
|
"id": "numer-EXM104-FHIR3-1",
|
||||||
|
"meta": {
|
||||||
|
"versionId": "1",
|
||||||
|
"lastUpdated": "2019-12-18T22:42:17.748-07:00",
|
||||||
|
"profile": [
|
||||||
|
"http://hl7.org/fhir/us/core/StructureDefinition/us-core-condition"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"verificationStatus": "confirmed",
|
||||||
|
"category": [
|
||||||
|
{
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://terminology.hl7.org/CodeSystem/condition-category",
|
||||||
|
"code": "encounter-diagnosis",
|
||||||
|
"display": "Encounter Diagnosis"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"code": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"code": "116288000",
|
||||||
|
"display": "Paralytic stroke (disorder)"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"subject": {
|
||||||
|
"reference": "Patient/numer-EXM104-FHIR3"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"status": "complete",
|
||||||
|
"type": "individual",
|
||||||
|
"measure": {
|
||||||
|
"reference": "Measure/measure-EXM104-FHIR3-8.1.000"
|
||||||
|
},
|
||||||
|
"patient": {
|
||||||
|
"reference": "Patient/numer-EXM104-FHIR3"
|
||||||
|
},
|
||||||
|
"period": {
|
||||||
|
"start": "2019-01-01T00:00:00-07:00",
|
||||||
|
"end": "2019-12-31T00:00:00-07:00"
|
||||||
|
},
|
||||||
|
"group": [
|
||||||
|
{
|
||||||
|
"identifier": {
|
||||||
|
"value": "group-1"
|
||||||
|
},
|
||||||
|
"population": [
|
||||||
|
{
|
||||||
|
"identifier": {
|
||||||
|
"value": "initial-population-identifier"
|
||||||
|
},
|
||||||
|
"code": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://terminology.hl7.org/CodeSystem/measure-population",
|
||||||
|
"code": "initial-population",
|
||||||
|
"display": "Initial Population"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"count": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": {
|
||||||
|
"value": "numerator-identifier"
|
||||||
|
},
|
||||||
|
"code": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://terminology.hl7.org/CodeSystem/measure-population",
|
||||||
|
"code": "numerator",
|
||||||
|
"display": "Numerator"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"count": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": {
|
||||||
|
"value": "denominator-identifier"
|
||||||
|
},
|
||||||
|
"code": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://terminology.hl7.org/CodeSystem/measure-population",
|
||||||
|
"code": "denominator",
|
||||||
|
"display": "Denominator"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"count": 1
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": {
|
||||||
|
"value": "denominator-exclusions-identifier"
|
||||||
|
},
|
||||||
|
"code": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://terminology.hl7.org/CodeSystem/measure-population",
|
||||||
|
"code": "denominator-exclusion",
|
||||||
|
"display": "Denominator Exclusion"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"count": 0
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"measureScore": 1.0
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"evaluatedResources": {
|
||||||
|
"reference": "#edc87d47-5804-4d85-8874-ee2d50e51c51"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"request": {
|
||||||
|
"method": "PUT",
|
||||||
|
"url": "MeasureReport/measurereport-numer-EXM104-FHIR3"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"resource": {
|
||||||
|
"resourceType": "MedicationRequest",
|
||||||
|
"id": "numer-EXM104-FHIR3-5",
|
||||||
|
"status": "completed",
|
||||||
|
"intent": "order",
|
||||||
|
"category": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://terminology.hl7.org/CodeSystem/medicationrequest-category",
|
||||||
|
"code": "discharge",
|
||||||
|
"display": "Discharge"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"medicationCodeableConcept": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://www.nlm.nih.gov/research/umls/rxnorm",
|
||||||
|
"code": "1037045",
|
||||||
|
"display": "dabigatran etexilate 150 MG Oral Capsule"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"subject": {
|
||||||
|
"reference": "Patient/numer-EXM104-FHIR3"
|
||||||
|
},
|
||||||
|
"authoredOn": "2019-12-19T08:00:00-07:00"
|
||||||
|
},
|
||||||
|
"request": {
|
||||||
|
"method": "PUT",
|
||||||
|
"url": "MedicationRequest/numer-EXM104-FHIR3-5"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"resource": {
|
||||||
|
"resourceType": "Patient",
|
||||||
|
"id": "numer-EXM104-FHIR3",
|
||||||
|
"meta": {
|
||||||
|
"profile": [
|
||||||
|
"http://hl7.org/fhir/us/core/StructureDefinition/us-core-patient"
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"extension": [
|
||||||
|
{
|
||||||
|
"url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-race",
|
||||||
|
"extension": [
|
||||||
|
{
|
||||||
|
"url": "ombCategory",
|
||||||
|
"valueCoding": {
|
||||||
|
"system": "urn:oid:2.16.840.1.113883.6.238",
|
||||||
|
"code": "2106-3",
|
||||||
|
"display": "White"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity",
|
||||||
|
"extension": [
|
||||||
|
{
|
||||||
|
"url": "ombCategory",
|
||||||
|
"valueCoding": {
|
||||||
|
"system": "urn:oid:2.16.840.1.113883.6.238",
|
||||||
|
"code": "2186-5",
|
||||||
|
"display": "Not Hispanic or Latino"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"identifier": [
|
||||||
|
{
|
||||||
|
"use": "usual",
|
||||||
|
"type": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://terminology.hl7.org/CodeSystem/v2-0203",
|
||||||
|
"code": "MR",
|
||||||
|
"display": "Medical Record Number"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"system": "http://hospital.smarthealthit.org",
|
||||||
|
"value": "9999999911"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"name": [
|
||||||
|
{
|
||||||
|
"family": "Jones",
|
||||||
|
"given": [
|
||||||
|
"Louise"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gender": "female",
|
||||||
|
"birthDate": "1971-11-21"
|
||||||
|
},
|
||||||
|
"request": {
|
||||||
|
"method": "PUT",
|
||||||
|
"url": "Patient/numer-EXM104-FHIR3"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user