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:
Kevin Dougan
2020-12-02 16:25:09 -05:00
parent 106a41e5b8
commit 771d0a4f7f
21 changed files with 5191 additions and 92 deletions

View File

@@ -21,6 +21,7 @@ import org.springframework.context.annotation.Configuration;
@EnableConfigurationProperties
public class AppProperties {
private Boolean cql_enabled = false;
private Boolean empi_enabled = false;
private Boolean allow_cascading_deletes = false;
private Boolean allow_contains_searches = true;
@@ -85,6 +86,14 @@ public class AppProperties {
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() {
return empi_enabled;
}
@@ -93,7 +102,6 @@ public class AppProperties {
this.empi_enabled = empi_enabled;
}
public Cors getCors() {
return cors;
}

View File

@@ -32,8 +32,8 @@ public class Application extends SpringBootServletInitializer {
System.setProperty("spring.batch.job.enabled", "false");
SpringApplication.run(Application.class, args);
//Server is now accessible at eg. http://localhost:8080/hapi-fhir-jpaserver/fhir/metadata
//UI is now accessible at http://localhost:8080/hapi-fhir-jpaserver/
//Server is now accessible at eg. http://localhost:8080/fhir/metadata
//UI is now accessible at http://localhost:8080/
}
@Override

View File

@@ -2,6 +2,8 @@ package ca.uhn.fhir.jpa.starter;
import ca.uhn.fhir.context.FhirContext;
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.IInterceptorService;
import ca.uhn.fhir.jpa.api.config.DaoConfig;
@@ -97,6 +99,10 @@ public class BaseJpaRestfulServer extends RestfulServer {
@Autowired
ApplicationContext myApplicationContext;
// These are set only if the features are enabled
private CqlProviderLoader cqlProviderLoader;
private EmpiProviderLoader empiProviderLoader;
public BaseJpaRestfulServer() {
}
@@ -121,10 +127,21 @@ public class BaseJpaRestfulServer extends RestfulServer {
}
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());
registerProvider(jpaSystemProvider);
FhirVersionEnum fhirVersion = fhirSystemDao.getContext().getVersion().getVersion();
/*
* 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

View File

@@ -4,11 +4,9 @@ import ca.uhn.fhir.context.ConfigurationException;
import ca.uhn.fhir.jpa.config.BaseJavaConfigR4;
import ca.uhn.fhir.jpa.search.DatabaseBackedPagingProvider;
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.context.annotation.Bean;
import org.springframework.context.annotation.Conditional;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import org.springframework.context.annotation.*;
import org.springframework.core.env.ConfigurableEnvironment;
import org.springframework.orm.jpa.JpaTransactionManager;
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
@@ -18,6 +16,7 @@ import javax.sql.DataSource;
@Configuration
@Conditional(OnR4Condition.class)
@Import(CqlConfigR4.class)
public class FhirServerConfigR4 extends BaseJavaConfigR4 {
@Autowired

View File

@@ -7,8 +7,8 @@ import org.springframework.core.type.AnnotatedTypeMetadata;
public class CqlConfigCondition implements Condition {
@Override
public boolean matches(ConditionContext conditionContext, AnnotatedTypeMetadata annotatedTypeMetadata) {
String property = conditionContext.getEnvironment().getProperty("hapi.fhir.cql_enabled");
public boolean matches(ConditionContext theConditionContext, AnnotatedTypeMetadata theAnnotatedTypeMetadata) {
String property = theConditionContext.getEnvironment().getProperty("hapi.fhir.cql_enabled");
boolean enabled = Boolean.parseBoolean(property);
return enabled;
}

View File

@@ -1,13 +1,10 @@
package ca.uhn.fhir.jpa.starter.cql;
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.Configuration;
import org.springframework.context.annotation.Import;
@Configuration
@Conditional({OnR4Condition.class, CqlConfigCondition.class})
@Conditional({CqlConfigCondition.class})
@Import({CqlR4Config.class})
public class CqlConfigR4 {
}

View File

@@ -29,7 +29,6 @@ hapi:
fhir:
### This is the FHIR version. Choose between, DSTU2, DSTU3, R4 or R5
fhir_version: R4
cql_enabled: true
# defer_indexing_for_codesystems_of_size: 101
# implementationguides:
# -
@@ -50,6 +49,8 @@ hapi:
# allow_override_default_search_params: true
# allow_placeholder_references: true
# auto_create_placeholder_reference_targets: false
# cql_enabled: true
# empi_enabled: true
# default_encoding: JSON
# default_pretty_print: true
# default_page_size: 20

View File

@@ -1,7 +1,7 @@
package ca.uhn.fhir.jpa.starter;
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.rest.api.CacheControlDirective;
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.ServerValidationModeEnum;
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.client.ClientUpgradeRequest;
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.Test;
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.web.server.LocalServerPort;
import org.springframework.core.io.ClassPathResource;
import org.springframework.test.context.junit.jupiter.SpringExtension;
import java.io.File;
import java.io.IOException;
import java.net.URI;
import java.util.Collection;
import java.util.List;
import java.util.concurrent.Future;
import java.util.concurrent.TimeUnit;
@@ -50,6 +55,9 @@ public class ExampleServerDstu3IT implements IServerSupport {
private IGenericClient ourClient;
private FhirContext ourCtx;
@Autowired
DaoRegistry myDaoRegistry;
@LocalServerPort
private int port;
@@ -76,50 +84,66 @@ public class ExampleServerDstu3IT implements IServerSupport {
assertEquals(methodName, pt2.getName().get(0).getFamily());
}
@Test
public void testCQLEvaluateMeasure() throws IOException {
CqlProviderLoader cqlProviderLoader = null;
// Currently fails with:
// 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.
//@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
loadBundle("dstu3/EXM104/EXM104_FHIR3-8.1.000-bundle.json", ourCtx, ourClient);
int numFilesLoaded = loadDataFromDirectory("dstu3/EXM104/EXM104_FHIR3-8.1.000-files");
//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();
// 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("periodStart").setValue(new DateType("2019-01-01"));
inParams.addParameter().setName("periodEnd").setValue(new DateType("2019-12-31"));
// inParams.addParameter().setName("periodStart").setValue(new StringType("2019-01-01"));
// inParams.addParameter().setName("periodEnd").setValue(new StringType("2019-12-31"));
Parameters outParams = ourClient
.operation()
.onInstance(new IdDt("Measure", "measure-EXM104-FHIR3-8.1.000"))
.onInstance(new IdDt("Measure", measureId))
.named("$evaluate-measure")
.withParameters(inParams)
.cacheControl(new CacheControlDirective().setNoCache(true))
.withAdditionalHeader("Content-Type", "application/json")
.useHttpGet()
.execute();
// Parameters outParams = ourClient
// .operation()
// .onType(Measure.class)
// .named("$evaluate-measure")
// .withParameters(inParams)
// .useHttpGet()
// .execute();
List<Parameters.ParametersParameterComponent> response = outParams.getParameter();
Assert.assertTrue(!response.isEmpty());
Parameters.ParametersParameterComponent component = response.get(0);
Assert.assertTrue(component.getResource() instanceof MeasureReport);
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 int loadDataFromDirectory(String theDirectoryName) throws IOException {
int count = 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 {

View File

@@ -1,7 +1,6 @@
package ca.uhn.fhir.jpa.starter;
import ca.uhn.fhir.context.FhirContext;
import ca.uhn.fhir.cql.provider.CqlProviderLoader;
import ca.uhn.fhir.model.primitive.IdDt;
import ca.uhn.fhir.rest.api.CacheControlDirective;
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.datasource.url=jdbc:h2:mem:dbr4",
"hapi.fhir.fhir_version=R4",
"hapi.fhir.cql_enabled=true",
"hapi.fhir.fhir_version=r4",
"hapi.fhir.subscription.websocket_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
"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 IGenericClient ourClient;
private FhirContext ourCtx;
private String ourServerBaseURL;
@LocalServerPort
private int port;
@@ -63,8 +63,8 @@ public class ExampleServerR4IT implements IServerSupport {
ourCtx = FhirContext.forR4();
ourCtx.getRestfulClientFactory().setServerValidationMode(ServerValidationModeEnum.NEVER);
ourCtx.getRestfulClientFactory().setSocketTimeout(1200 * 1000);
String ourServerBase = "http://localhost:" + port + "/fhir/";
ourClient = ourCtx.newRestfulGenericClient(ourServerBase);
ourServerBaseURL = "http://localhost:" + port + "/fhir/";
ourClient = ourCtx.newRestfulGenericClient(ourServerBaseURL);
ourClient.registerInterceptor(new LoggingInterceptor(true));
}
@@ -111,21 +111,21 @@ public class ExampleServerR4IT implements IServerSupport {
}
@Test
public void testCQLEvaluateMeasure() throws IOException {
CqlProviderLoader cqlProviderLoader = null;
public void testCQLEvaluateMeasureEXM104() throws IOException {
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);
// http://localhost:8080/fhir/Measure/measure-EXM104-8.2.000/$evaluate-measure?periodStart=2019-01-01&periodEnd=2019-12-31
Parameters inParams = new Parameters();
// 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("periodStart").setValue(new DateType("2019-01-01"));
inParams.addParameter().setName("periodEnd").setValue(new DateType("2019-12-31"));
inParams.addParameter().setName("periodStart").setValue(new StringType("2019-01-01"));
inParams.addParameter().setName("periodEnd").setValue(new StringType("2019-12-31"));
Parameters outParams = ourClient
.operation()
.onInstance(new IdDt("Measure", "measure-EXM104-8.2.000"))
.onInstance(new IdDt("Measure", measureId))
.named("$evaluate-measure")
.withParameters(inParams)
.cacheControl(new CacheControlDirective().setNoCache(true))
@@ -133,29 +133,12 @@ public class ExampleServerR4IT implements IServerSupport {
.useHttpGet()
.execute();
// Parameters outParams = ourClient
// .operation()
// .onType(Measure.class)
// .named("$evaluate-measure")
// .withParameters(inParams)
// .useHttpGet()
// .execute();
List<Parameters.ParametersParameterComponent> response = outParams.getParameter();
Assert.assertTrue(!response.isEmpty());
Parameters.ParametersParameterComponent component = response.get(0);
Assert.assertTrue(component.getResource() instanceof MeasureReport);
MeasureReport report = (MeasureReport) component.getResource();
for (MeasureReport.MeasureReportGroupComponent group : report.getGroup()) {
for (MeasureReport.MeasureReportGroupPopulationComponent population : group.getPopulation()) {
Assert.assertTrue(population.getCount() > 0);
}
}
Assert.assertEquals("Measure/"+measureId, report.getMeasure());
}
private Bundle loadBundle(String theLocation, FhirContext theCtx, IGenericClient theClient) throws IOException {

View File

@@ -1,7 +1,8 @@
package ca.uhn.fhir.jpa.starter;
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 org.apache.commons.io.IOUtils;
import org.hl7.fhir.instance.model.api.IBaseResource;
@@ -12,26 +13,20 @@ import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.util.Scanner;
public interface IServerSupport {
// default void putResourceDstu3(String resourceFileName, String id, FhirContext theCtx, IGenericClient theClient) {
// InputStream is = ExampleServerDstu3IT.class.getResourceAsStream(resourceFileName);
// Scanner scanner = new Scanner(is).useDelimiter("\\A");
// String json = scanner.hasNext() ? scanner.next() : "";
//
// boolean isJson = resourceFileName.endsWith("json");
//
// IBaseResource resource = isJson ? theCtx.newJsonParser().parseResource(json) : theCtx.newXmlParser().parseResource(json);
//
// if (resource instanceof Bundle) {
// theClient.transaction().withBundle((Bundle) resource).execute();
// }
// else {
// theClient.update().resource(resource).withId(id).execute();
// }
// }
default IBaseResource loadResource(String theLocation, FhirContext theFhirContext, DaoRegistry theDaoRegistry) throws IOException {
String json = stringFromResource(theLocation);
IBaseResource resource = theFhirContext.newJsonParser().parseResource(json);
IFhirResourceDao<IBaseResource> dao = theDaoRegistry.getResourceDao(resource.getIdElement().getResourceType());
if (dao == null) {
return null;
} else {
dao.update(resource);
return resource;
}
}
default String stringFromResource(String theLocation) throws IOException {
InputStream is = null;

View File

@@ -22,6 +22,7 @@ hapi:
# allow_placeholder_references: true
# auto_create_placeholder_reference_targets: false
# cql_enabled: false
# empi_enabled: false
# default_encoding: JSON
# default_pretty_print: true
# default_page_size: 20

View File

@@ -183,7 +183,7 @@
"type": {
"coding": [
{
"system": "http://hl7.org/fhir/codesystem-library-type.html",
"system": "http://hl7.org/fhir/library-type",
"code": "logic-library"
}
]
@@ -338,7 +338,7 @@
"type": {
"coding": [
{
"system": "http://hl7.org/fhir/codesystem-library-type.html",
"system": "http://hl7.org/fhir/library-type",
"code": "logic-library"
}
]
@@ -1610,7 +1610,7 @@
"type": {
"coding": [
{
"system": "http://hl7.org/fhir/codesystem-library-type.html",
"system": "http://hl7.org/fhir/library-type",
"code": "logic-library"
}
]
@@ -2177,7 +2177,7 @@
"type": {
"coding": [
{
"system": "http://hl7.org/fhir/codesystem-library-type.html",
"system": "http://hl7.org/fhir/library-type",
"code": "logic-library"
}
]
@@ -2265,7 +2265,7 @@
"type": {
"coding": [
{
"system": "http://hl7.org/fhir/codesystem-library-type.html",
"system": "http://hl7.org/fhir/library-type",
"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

View File

@@ -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"
}
}

View File

@@ -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"
}
}

View File

@@ -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"
}
}
]
}

View File

@@ -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