commit
f4f0895889
|
@ -0,0 +1,128 @@
|
||||||
|
/target
|
||||||
|
/jpaserver_derby_files
|
||||||
|
*.log
|
||||||
|
ca.uhn.fhir.jpa.entity.ResourceTable/
|
||||||
|
|
||||||
|
# Created by https://www.gitignore.io
|
||||||
|
|
||||||
|
### Java ###
|
||||||
|
*.class
|
||||||
|
|
||||||
|
# Mobile Tools for Java (J2ME)
|
||||||
|
.mtj.tmp/
|
||||||
|
|
||||||
|
# Package Files #
|
||||||
|
*.jar
|
||||||
|
*.war
|
||||||
|
*.ear
|
||||||
|
|
||||||
|
# virtual machine crash logs, see http://www.java.com/en/download/help/error_hotspot.xml
|
||||||
|
hs_err_pid*
|
||||||
|
|
||||||
|
|
||||||
|
### Maven ###
|
||||||
|
target/
|
||||||
|
pom.xml.tag
|
||||||
|
pom.xml.releaseBackup
|
||||||
|
pom.xml.versionsBackup
|
||||||
|
pom.xml.next
|
||||||
|
release.properties
|
||||||
|
dependency-reduced-pom.xml
|
||||||
|
buildNumber.properties
|
||||||
|
|
||||||
|
|
||||||
|
### Vim ###
|
||||||
|
[._]*.s[a-w][a-z]
|
||||||
|
[._]s[a-w][a-z]
|
||||||
|
*.un~
|
||||||
|
Session.vim
|
||||||
|
.netrwhist
|
||||||
|
*~
|
||||||
|
|
||||||
|
|
||||||
|
### Intellij ###
|
||||||
|
# Covers JetBrains IDEs: IntelliJ, RubyMine, PhpStorm, AppCode, PyCharm
|
||||||
|
|
||||||
|
*.iml
|
||||||
|
|
||||||
|
## Directory-based project format:
|
||||||
|
.idea/
|
||||||
|
# if you remove the above rule, at least ignore the following:
|
||||||
|
|
||||||
|
# User-specific stuff:
|
||||||
|
# .idea/workspace.xml
|
||||||
|
# .idea/tasks.xml
|
||||||
|
# .idea/dictionaries
|
||||||
|
|
||||||
|
# Sensitive or high-churn files:
|
||||||
|
# .idea/dataSources.ids
|
||||||
|
# .idea/dataSources.xml
|
||||||
|
# .idea/sqlDataSources.xml
|
||||||
|
# .idea/dynamic.xml
|
||||||
|
# .idea/uiDesigner.xml
|
||||||
|
|
||||||
|
# Gradle:
|
||||||
|
# .idea/gradle.xml
|
||||||
|
# .idea/libraries
|
||||||
|
|
||||||
|
# Mongo Explorer plugin:
|
||||||
|
# .idea/mongoSettings.xml
|
||||||
|
|
||||||
|
## File-based project format:
|
||||||
|
*.ipr
|
||||||
|
*.iws
|
||||||
|
|
||||||
|
## Plugin-specific files:
|
||||||
|
|
||||||
|
# IntelliJ
|
||||||
|
/out/
|
||||||
|
|
||||||
|
# mpeltonen/sbt-idea plugin
|
||||||
|
.idea_modules/
|
||||||
|
|
||||||
|
# JIRA plugin
|
||||||
|
atlassian-ide-plugin.xml
|
||||||
|
|
||||||
|
# Crashlytics plugin (for Android Studio and IntelliJ)
|
||||||
|
com_crashlytics_export_strings.xml
|
||||||
|
crashlytics.properties
|
||||||
|
crashlytics-build.properties
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
### Eclipse ###
|
||||||
|
*.pydevproject
|
||||||
|
.metadata
|
||||||
|
.gradle
|
||||||
|
bin/
|
||||||
|
tmp/
|
||||||
|
*.tmp
|
||||||
|
*.bak
|
||||||
|
*.swp
|
||||||
|
*~.nib
|
||||||
|
local.properties
|
||||||
|
.loadpath
|
||||||
|
|
||||||
|
# Eclipse Core
|
||||||
|
.project
|
||||||
|
|
||||||
|
# External tool builders
|
||||||
|
.externalToolBuilders/
|
||||||
|
|
||||||
|
# Locally stored "Eclipse launch configurations"
|
||||||
|
*.launch
|
||||||
|
|
||||||
|
# CDT-specific
|
||||||
|
.cproject
|
||||||
|
|
||||||
|
# JDT-specific (Eclipse Java Development Tools)
|
||||||
|
|
||||||
|
# PDT-specific
|
||||||
|
.buildpath
|
||||||
|
|
||||||
|
# sbteclipse plugin
|
||||||
|
.target
|
||||||
|
|
||||||
|
# TeXlipse plugin
|
||||||
|
.texlipse
|
||||||
|
|
|
@ -0,0 +1,286 @@
|
||||||
|
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
Note: HAPI projects use the "hapi-fhir" POM as their base to provide easy management.
|
||||||
|
You do not need to use this in your own projects, so the "parent" tag and it's
|
||||||
|
contents below may be removed
|
||||||
|
if you are using this file as a basis for your own project.
|
||||||
|
-->
|
||||||
|
<parent>
|
||||||
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||||
|
<artifactId>hapi-fhir</artifactId>
|
||||||
|
<version>3.1.0-SNAPSHOT</version>
|
||||||
|
<relativePath>../pom.xml</relativePath>
|
||||||
|
</parent>
|
||||||
|
|
||||||
|
<artifactId>hapi-fhir-jpaserver-cds</artifactId>
|
||||||
|
<packaging>war</packaging>
|
||||||
|
|
||||||
|
<name>HAPI FHIR JPA Clinical Decision Support Server - Example</name>
|
||||||
|
|
||||||
|
<repositories>
|
||||||
|
<repository>
|
||||||
|
<id>oss-snapshots</id>
|
||||||
|
<snapshots>
|
||||||
|
<enabled>true</enabled>
|
||||||
|
</snapshots>
|
||||||
|
<url>https://oss.sonatype.org/content/repositories/snapshots/</url>
|
||||||
|
</repository>
|
||||||
|
</repositories>
|
||||||
|
|
||||||
|
<dependencies>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.opencds.cqf</groupId>
|
||||||
|
<artifactId>cqf-ruler</artifactId>
|
||||||
|
<version>0.1.0-SNAPSHOT</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.eclipse.jetty.websocket</groupId>
|
||||||
|
<artifactId>websocket-api</artifactId>
|
||||||
|
<version>${jetty_version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.eclipse.jetty.websocket</groupId>
|
||||||
|
<artifactId>websocket-client</artifactId>
|
||||||
|
<version>${jetty_version}</version>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>mysql</groupId>
|
||||||
|
<artifactId>mysql-connector-java</artifactId>
|
||||||
|
<version>6.0.5</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- This dependency includes the core HAPI-FHIR classes -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||||
|
<artifactId>hapi-fhir-base</artifactId>
|
||||||
|
<version>${project.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- At least one "structures" JAR must also be included -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||||
|
<artifactId>hapi-fhir-structures-dstu3</artifactId>
|
||||||
|
<version>${project.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- This dependency includes the JPA server itself, which is packaged separately from the rest of HAPI FHIR -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||||
|
<artifactId>hapi-fhir-jpaserver-base</artifactId>
|
||||||
|
<version>${project.version}</version>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- This dependency is used for the "FHIR Tester" web app overlay -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||||
|
<artifactId>hapi-fhir-testpage-overlay</artifactId>
|
||||||
|
<version>${project.version}</version>
|
||||||
|
<type>war</type>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||||
|
<artifactId>hapi-fhir-testpage-overlay</artifactId>
|
||||||
|
<version>${project.version}</version>
|
||||||
|
<classifier>classes</classifier>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- HAPI-FHIR uses Logback for logging support. The logback library is included automatically by Maven as a part of the hapi-fhir-base dependency, but you also need to include a logging library. Logback
|
||||||
|
is used here, but log4j would also be fine. -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>ch.qos.logback</groupId>
|
||||||
|
<artifactId>logback-classic</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- Needed for JEE/Servlet support -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>javax.servlet</groupId>
|
||||||
|
<artifactId>javax.servlet-api</artifactId>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- If you are using HAPI narrative generation, you will need to include Thymeleaf as well. Otherwise the following can be omitted. -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.thymeleaf</groupId>
|
||||||
|
<artifactId>thymeleaf</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- Used for CORS support -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.ebaysf.web</groupId>
|
||||||
|
<artifactId>cors-filter</artifactId>
|
||||||
|
<exclusions>
|
||||||
|
<exclusion>
|
||||||
|
<artifactId>servlet-api</artifactId>
|
||||||
|
<groupId>javax.servlet</groupId>
|
||||||
|
</exclusion>
|
||||||
|
</exclusions>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- Spring Web is used to deploy the server to a web container. -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.springframework</groupId>
|
||||||
|
<artifactId>spring-web</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- You may not need this if you are deploying to an application server which provides database connection pools itself. -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.commons</groupId>
|
||||||
|
<artifactId>commons-dbcp2</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- This example uses Derby embedded database. If you are using another database such as Mysql or Oracle, you may omit the following dependencies and replace them with an appropriate database client
|
||||||
|
dependency for your database platform. -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.derby</groupId>
|
||||||
|
<artifactId>derby</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.derby</groupId>
|
||||||
|
<artifactId>derbynet</artifactId>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.apache.derby</groupId>
|
||||||
|
<artifactId>derbyclient</artifactId>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!-- The following dependencies are only needed for automated unit tests, you do not neccesarily need them to run the example. -->
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.eclipse.jetty</groupId>
|
||||||
|
<artifactId>jetty-servlets</artifactId>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.eclipse.jetty</groupId>
|
||||||
|
<artifactId>jetty-servlet</artifactId>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.eclipse.jetty.websocket</groupId>
|
||||||
|
<artifactId>websocket-server</artifactId>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.eclipse.jetty</groupId>
|
||||||
|
<artifactId>jetty-server</artifactId>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.eclipse.jetty</groupId>
|
||||||
|
<artifactId>jetty-util</artifactId>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>org.eclipse.jetty</groupId>
|
||||||
|
<artifactId>jetty-webapp</artifactId>
|
||||||
|
<scope>test</scope>
|
||||||
|
</dependency>
|
||||||
|
<dependency>
|
||||||
|
<groupId>com.phloc</groupId>
|
||||||
|
<artifactId>phloc-schematron</artifactId>
|
||||||
|
<exclusions>
|
||||||
|
<exclusion>
|
||||||
|
<artifactId>Saxon-HE</artifactId>
|
||||||
|
<groupId>net.sf.saxon</groupId>
|
||||||
|
</exclusion>
|
||||||
|
</exclusions>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
<!--
|
||||||
|
For some reason JavaDoc crashed during site generation unless we have this dependency
|
||||||
|
-->
|
||||||
|
<dependency>
|
||||||
|
<groupId>javax.interceptor</groupId>
|
||||||
|
<artifactId>javax.interceptor-api</artifactId>
|
||||||
|
<scope>provided</scope>
|
||||||
|
</dependency>
|
||||||
|
|
||||||
|
</dependencies>
|
||||||
|
|
||||||
|
<build>
|
||||||
|
|
||||||
|
<!-- Tells Maven to name the generated WAR file as hapi-fhir-jpaserver-example.war -->
|
||||||
|
<finalName>hapi-fhir-jpaserver-cds</finalName>
|
||||||
|
|
||||||
|
<!-- The following is not required for the application to build, but allows you to test it by issuing "mvn jetty:run" from the command line. -->
|
||||||
|
<pluginManagement>
|
||||||
|
<plugins>
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.eclipse.jetty</groupId>
|
||||||
|
<artifactId>jetty-maven-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<webApp>
|
||||||
|
<contextPath>/hapi-fhir-jpaserver-cds</contextPath>
|
||||||
|
<allowDuplicateFragmentNames>true</allowDuplicateFragmentNames>
|
||||||
|
</webApp>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
</plugins>
|
||||||
|
</pluginManagement>
|
||||||
|
|
||||||
|
<plugins>
|
||||||
|
<!-- Tell Maven which Java source version you want to use -->
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-compiler-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<source>1.7</source>
|
||||||
|
<target>1.7</target>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
|
||||||
|
<!-- The configuration here tells the WAR plugin to include the FHIR Tester overlay. You can omit it if you are not using that feature. -->
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-war-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<archive>
|
||||||
|
<manifestEntries>
|
||||||
|
<Build-Time>${maven.build.timestamp}</Build-Time>
|
||||||
|
</manifestEntries>
|
||||||
|
</archive>
|
||||||
|
<overlays>
|
||||||
|
<overlay>
|
||||||
|
<groupId>ca.uhn.hapi.fhir</groupId>
|
||||||
|
<artifactId>hapi-fhir-testpage-overlay</artifactId>
|
||||||
|
</overlay>
|
||||||
|
</overlays>
|
||||||
|
<webXml>src/main/webapp/WEB-INF/web.xml</webXml>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
|
||||||
|
<!-- This plugin is just a part of the HAPI internal build process, you do not need to incude it in your own projects -->
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-deploy-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<skip>true</skip>
|
||||||
|
</configuration>
|
||||||
|
</plugin>
|
||||||
|
|
||||||
|
<!-- This is to run the integration tests -->
|
||||||
|
<plugin>
|
||||||
|
<groupId>org.apache.maven.plugins</groupId>
|
||||||
|
<artifactId>maven-failsafe-plugin</artifactId>
|
||||||
|
<configuration>
|
||||||
|
<redirectTestOutputToFile>true</redirectTestOutputToFile>
|
||||||
|
</configuration>
|
||||||
|
<executions>
|
||||||
|
<execution>
|
||||||
|
<goals>
|
||||||
|
<goal>integration-test</goal>
|
||||||
|
<goal>verify</goal>
|
||||||
|
</goals>
|
||||||
|
</execution>
|
||||||
|
</executions>
|
||||||
|
</plugin>
|
||||||
|
|
||||||
|
</plugins>
|
||||||
|
</build>
|
||||||
|
|
||||||
|
</project>
|
|
@ -0,0 +1,16 @@
|
||||||
|
package ca.uhn.fhir.jpa.cds.example;
|
||||||
|
|
||||||
|
import org.opencds.cqf.servlet.CdsServicesServlet;
|
||||||
|
|
||||||
|
public class CdsHooksServerExample extends CdsServicesServlet {
|
||||||
|
|
||||||
|
// @Override
|
||||||
|
// protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
|
||||||
|
// // Change how requests are handled
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// @Override
|
||||||
|
// protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
|
||||||
|
// // Change discovery response
|
||||||
|
// }
|
||||||
|
}
|
|
@ -0,0 +1,165 @@
|
||||||
|
|
||||||
|
package ca.uhn.fhir.jpa.cds.example;
|
||||||
|
|
||||||
|
import ca.uhn.fhir.context.FhirContext;
|
||||||
|
import ca.uhn.fhir.context.FhirVersionEnum;
|
||||||
|
import ca.uhn.fhir.jpa.dao.DaoConfig;
|
||||||
|
import ca.uhn.fhir.jpa.dao.IFhirSystemDao;
|
||||||
|
import ca.uhn.fhir.jpa.provider.dstu3.JpaConformanceProviderDstu3;
|
||||||
|
import ca.uhn.fhir.jpa.provider.dstu3.JpaSystemProviderDstu3;
|
||||||
|
import ca.uhn.fhir.jpa.provider.dstu3.TerminologyUploaderProviderDstu3;
|
||||||
|
import ca.uhn.fhir.jpa.rp.dstu3.ActivityDefinitionResourceProvider;
|
||||||
|
import ca.uhn.fhir.jpa.rp.dstu3.MeasureResourceProvider;
|
||||||
|
import ca.uhn.fhir.jpa.rp.dstu3.PlanDefinitionResourceProvider;
|
||||||
|
import ca.uhn.fhir.jpa.search.DatabaseBackedPagingProvider;
|
||||||
|
import ca.uhn.fhir.narrative.DefaultThymeleafNarrativeGenerator;
|
||||||
|
import ca.uhn.fhir.rest.api.EncodingEnum;
|
||||||
|
import ca.uhn.fhir.rest.server.ETagSupportEnum;
|
||||||
|
import ca.uhn.fhir.rest.server.IResourceProvider;
|
||||||
|
import ca.uhn.fhir.rest.server.RestfulServer;
|
||||||
|
import ca.uhn.fhir.rest.server.interceptor.IServerInterceptor;
|
||||||
|
import org.hl7.fhir.dstu3.model.Bundle;
|
||||||
|
import org.hl7.fhir.dstu3.model.Meta;
|
||||||
|
import org.opencds.cqf.providers.FHIRActivityDefinitionResourceProvider;
|
||||||
|
import org.opencds.cqf.providers.FHIRMeasureResourceProvider;
|
||||||
|
import org.opencds.cqf.providers.FHIRPlanDefinitionResourceProvider;
|
||||||
|
import org.springframework.web.context.ContextLoaderListener;
|
||||||
|
import org.springframework.web.context.WebApplicationContext;
|
||||||
|
|
||||||
|
import javax.servlet.ServletException;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
public class CdsServerExample extends RestfulServer {
|
||||||
|
|
||||||
|
@SuppressWarnings("unchecked")
|
||||||
|
@Override
|
||||||
|
protected void initialize() throws ServletException {
|
||||||
|
super.initialize();
|
||||||
|
|
||||||
|
FhirVersionEnum fhirVersion = FhirVersionEnum.DSTU3;
|
||||||
|
setFhirContext(new FhirContext(fhirVersion));
|
||||||
|
|
||||||
|
// Get the spring context from the web container (it's declared in web.xml)
|
||||||
|
WebApplicationContext myAppCtx = ContextLoaderListener.getCurrentWebApplicationContext();
|
||||||
|
|
||||||
|
if (myAppCtx == null) {
|
||||||
|
throw new ServletException("Error retrieving spring context from the web container");
|
||||||
|
}
|
||||||
|
|
||||||
|
String resourceProviderBeanName = "myResourceProvidersDstu3";
|
||||||
|
List<IResourceProvider> beans = myAppCtx.getBean(resourceProviderBeanName, List.class);
|
||||||
|
setResourceProviders(beans);
|
||||||
|
|
||||||
|
Object systemProvider = myAppCtx.getBean("mySystemProviderDstu3", JpaSystemProviderDstu3.class);
|
||||||
|
setPlainProviders(systemProvider);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* The conformance provider exports the supported resources, search parameters, etc for
|
||||||
|
* this server. The JPA version adds resource counts to the exported statement, so it
|
||||||
|
* is a nice addition.
|
||||||
|
*/
|
||||||
|
IFhirSystemDao<Bundle, Meta> systemDao = myAppCtx.getBean("mySystemDaoDstu3", IFhirSystemDao.class);
|
||||||
|
JpaConformanceProviderDstu3 confProvider =
|
||||||
|
new JpaConformanceProviderDstu3(this, systemDao, myAppCtx.getBean(DaoConfig.class));
|
||||||
|
confProvider.setImplementationDescription("Example Server");
|
||||||
|
setServerConformanceProvider(confProvider);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Enable ETag Support (this is already the default)
|
||||||
|
*/
|
||||||
|
setETagSupport(ETagSupportEnum.ENABLED);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* This server tries to dynamically generate narratives
|
||||||
|
*/
|
||||||
|
FhirContext ctx = getFhirContext();
|
||||||
|
ctx.setNarrativeGenerator(new DefaultThymeleafNarrativeGenerator());
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Default to JSON and pretty printing
|
||||||
|
*/
|
||||||
|
setDefaultPrettyPrint(true);
|
||||||
|
setDefaultResponseEncoding(EncodingEnum.JSON);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* -- New in HAPI FHIR 1.5 --
|
||||||
|
* This configures the server to page search results to and from
|
||||||
|
* the database, instead of only paging them to memory. This may mean
|
||||||
|
* a performance hit when performing searches that return lots of results,
|
||||||
|
* but makes the server much more scalable.
|
||||||
|
*/
|
||||||
|
setPagingProvider(myAppCtx.getBean(DatabaseBackedPagingProvider.class));
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Load interceptors for the server from Spring (these are defined in FhirServerConfig.java)
|
||||||
|
*/
|
||||||
|
Collection<IServerInterceptor> interceptorBeans = myAppCtx.getBeansOfType(IServerInterceptor.class).values();
|
||||||
|
for (IServerInterceptor interceptor : interceptorBeans) {
|
||||||
|
this.registerInterceptor(interceptor);
|
||||||
|
}
|
||||||
|
|
||||||
|
/*
|
||||||
|
* Adding resource providers from the cqf-ruler
|
||||||
|
*/
|
||||||
|
// Measure processing
|
||||||
|
FHIRMeasureResourceProvider measureProvider = new FHIRMeasureResourceProvider(getResourceProviders());
|
||||||
|
MeasureResourceProvider jpaMeasureProvider = (MeasureResourceProvider) getProvider("Measure");
|
||||||
|
measureProvider.setDao(jpaMeasureProvider.getDao());
|
||||||
|
measureProvider.setContext(jpaMeasureProvider.getContext());
|
||||||
|
|
||||||
|
// PlanDefinition processing
|
||||||
|
FHIRPlanDefinitionResourceProvider planDefProvider = new FHIRPlanDefinitionResourceProvider(getResourceProviders());
|
||||||
|
PlanDefinitionResourceProvider jpaPlanDefProvider =
|
||||||
|
(PlanDefinitionResourceProvider) getProvider("PlanDefinition");
|
||||||
|
planDefProvider.setDao(jpaPlanDefProvider.getDao());
|
||||||
|
planDefProvider.setContext(jpaPlanDefProvider.getContext());
|
||||||
|
|
||||||
|
// ActivityDefinition processing
|
||||||
|
FHIRActivityDefinitionResourceProvider actDefProvider = new FHIRActivityDefinitionResourceProvider(getResourceProviders());
|
||||||
|
ActivityDefinitionResourceProvider jpaActDefProvider =
|
||||||
|
(ActivityDefinitionResourceProvider) getProvider("ActivityDefinition");
|
||||||
|
actDefProvider.setDao(jpaActDefProvider.getDao());
|
||||||
|
actDefProvider.setContext(jpaActDefProvider.getContext());
|
||||||
|
|
||||||
|
try {
|
||||||
|
unregisterProvider(jpaMeasureProvider);
|
||||||
|
unregisterProvider(jpaPlanDefProvider);
|
||||||
|
unregisterProvider(jpaActDefProvider);
|
||||||
|
} catch (Exception e) {
|
||||||
|
throw new ServletException("Unable to unregister provider: " + e.getMessage());
|
||||||
|
}
|
||||||
|
|
||||||
|
registerProvider(measureProvider);
|
||||||
|
registerProvider(planDefProvider);
|
||||||
|
registerProvider(actDefProvider);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If you are hosting this server at a specific DNS name, the server will try to
|
||||||
|
* figure out the FHIR base URL based on what the web container tells it, but
|
||||||
|
* this doesn't always work. If you are setting links in your search bundles that
|
||||||
|
* just refer to "localhost", you might want to use a server address strategy:
|
||||||
|
*/
|
||||||
|
//setServerAddressStrategy(new HardcodedServerAddressStrategy("http://mydomain.com/fhir/baseDstu2"));
|
||||||
|
|
||||||
|
/*
|
||||||
|
* If you are using DSTU3+, you may want to add a terminology uploader, which allows
|
||||||
|
* uploading of external terminologies such as Snomed CT. Note that this uploader
|
||||||
|
* does not have any security attached (any anonymous user may use it by default)
|
||||||
|
* so it is a potential security vulnerability. Consider using an AuthorizationInterceptor
|
||||||
|
* with this feature.
|
||||||
|
*/
|
||||||
|
registerProvider(myAppCtx.getBean(TerminologyUploaderProviderDstu3.class));
|
||||||
|
}
|
||||||
|
|
||||||
|
public IResourceProvider getProvider(String name) {
|
||||||
|
|
||||||
|
for (IResourceProvider res : getResourceProviders()) {
|
||||||
|
if (res.getResourceType().getSimpleName().equals(name)) {
|
||||||
|
return res;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
throw new IllegalArgumentException("This should never happen!");
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,125 @@
|
||||||
|
package ca.uhn.fhir.jpa.cds.example;
|
||||||
|
|
||||||
|
import ca.uhn.fhir.jpa.config.BaseJavaConfigDstu3;
|
||||||
|
import ca.uhn.fhir.jpa.dao.DaoConfig;
|
||||||
|
import ca.uhn.fhir.jpa.search.LuceneSearchMappingFactory;
|
||||||
|
import ca.uhn.fhir.jpa.util.SubscriptionsRequireManualActivationInterceptorDstu3;
|
||||||
|
import ca.uhn.fhir.rest.server.interceptor.IServerInterceptor;
|
||||||
|
import ca.uhn.fhir.rest.server.interceptor.LoggingInterceptor;
|
||||||
|
import ca.uhn.fhir.rest.server.interceptor.ResponseHighlighterInterceptor;
|
||||||
|
import org.apache.commons.dbcp2.BasicDataSource;
|
||||||
|
import org.apache.commons.lang3.time.DateUtils;
|
||||||
|
import org.hibernate.jpa.HibernatePersistenceProvider;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowire;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.orm.jpa.JpaTransactionManager;
|
||||||
|
import org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean;
|
||||||
|
import org.springframework.transaction.annotation.EnableTransactionManagement;
|
||||||
|
|
||||||
|
import javax.persistence.EntityManagerFactory;
|
||||||
|
import javax.sql.DataSource;
|
||||||
|
import java.util.Properties;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This is the primary configuration file for the example server
|
||||||
|
*/
|
||||||
|
@Configuration
|
||||||
|
@EnableTransactionManagement()
|
||||||
|
public class FhirServerConfig extends BaseJavaConfigDstu3 {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Configure FHIR properties around the the JPA server via this bean
|
||||||
|
*/
|
||||||
|
@Bean()
|
||||||
|
public DaoConfig daoConfig() {
|
||||||
|
DaoConfig retVal = new DaoConfig();
|
||||||
|
retVal.setSubscriptionEnabled(true);
|
||||||
|
retVal.setSubscriptionPollDelay(5000);
|
||||||
|
retVal.setSubscriptionPurgeInactiveAfterMillis(DateUtils.MILLIS_PER_HOUR);
|
||||||
|
retVal.setAllowMultipleDelete(true);
|
||||||
|
return retVal;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The following bean configures the database connection. The 'url' property value of "jdbc:derby:directory:jpaserver_derby_files;create=true" indicates that the server should save resources in a
|
||||||
|
* directory called "jpaserver_derby_files".
|
||||||
|
*
|
||||||
|
* A URL to a remote database could also be placed here, along with login credentials and other properties supported by BasicDataSource.
|
||||||
|
*/
|
||||||
|
@Bean(destroyMethod = "close")
|
||||||
|
public DataSource dataSource() {
|
||||||
|
BasicDataSource retVal = new BasicDataSource();
|
||||||
|
retVal.setDriver(new org.apache.derby.jdbc.EmbeddedDriver());
|
||||||
|
retVal.setUrl("jdbc:derby:directory:target/jpaserver_derby_files;create=true");
|
||||||
|
retVal.setUsername("");
|
||||||
|
retVal.setPassword("");
|
||||||
|
return retVal;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean()
|
||||||
|
public LocalContainerEntityManagerFactoryBean entityManagerFactory() {
|
||||||
|
LocalContainerEntityManagerFactoryBean retVal = new LocalContainerEntityManagerFactoryBean();
|
||||||
|
retVal.setPersistenceUnitName("HAPI_PU");
|
||||||
|
retVal.setDataSource(dataSource());
|
||||||
|
retVal.setPackagesToScan("ca.uhn.fhir.jpa.entity");
|
||||||
|
retVal.setPersistenceProvider(new HibernatePersistenceProvider());
|
||||||
|
retVal.setJpaProperties(jpaProperties());
|
||||||
|
return retVal;
|
||||||
|
}
|
||||||
|
|
||||||
|
private Properties jpaProperties() {
|
||||||
|
Properties extraProperties = new Properties();
|
||||||
|
extraProperties.put("hibernate.dialect", org.hibernate.dialect.DerbyTenSevenDialect.class.getName());
|
||||||
|
extraProperties.put("hibernate.format_sql", "true");
|
||||||
|
extraProperties.put("hibernate.show_sql", "false");
|
||||||
|
extraProperties.put("hibernate.hbm2ddl.auto", "update");
|
||||||
|
extraProperties.put("hibernate.jdbc.batch_size", "20");
|
||||||
|
extraProperties.put("hibernate.cache.use_query_cache", "false");
|
||||||
|
extraProperties.put("hibernate.cache.use_second_level_cache", "false");
|
||||||
|
extraProperties.put("hibernate.cache.use_structured_entries", "false");
|
||||||
|
extraProperties.put("hibernate.cache.use_minimal_puts", "false");
|
||||||
|
extraProperties.put("hibernate.search.model_mapping", LuceneSearchMappingFactory.class.getName());
|
||||||
|
extraProperties.put("hibernate.search.default.directory_provider", "filesystem");
|
||||||
|
extraProperties.put("hibernate.search.default.indexBase", "target/lucenefiles");
|
||||||
|
extraProperties.put("hibernate.search.lucene_version", "LUCENE_CURRENT");
|
||||||
|
// extraProperties.put("hibernate.search.default.worker.execution", "async");
|
||||||
|
return extraProperties;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Do some fancy logging to create a nice access log that has details about each incoming request.
|
||||||
|
*/
|
||||||
|
public IServerInterceptor loggingInterceptor() {
|
||||||
|
LoggingInterceptor retVal = new LoggingInterceptor();
|
||||||
|
retVal.setLoggerName("fhirtest.access");
|
||||||
|
retVal.setMessageFormat(
|
||||||
|
"Path[${servletPath}] Source[${requestHeader.x-forwarded-for}] Operation[${operationType} ${operationName} ${idOrResourceName}] UA[${requestHeader.user-agent}] Params[${requestParameters}] ResponseEncoding[${responseEncodingNoDefault}]");
|
||||||
|
retVal.setLogExceptions(true);
|
||||||
|
retVal.setErrorMessageFormat("ERROR - ${requestVerb} ${requestUrl}");
|
||||||
|
return retVal;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This interceptor adds some pretty syntax highlighting in responses when a browser is detected
|
||||||
|
*/
|
||||||
|
@Bean(autowire = Autowire.BY_TYPE)
|
||||||
|
public IServerInterceptor responseHighlighterInterceptor() {
|
||||||
|
ResponseHighlighterInterceptor retVal = new ResponseHighlighterInterceptor();
|
||||||
|
return retVal;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean(autowire = Autowire.BY_TYPE)
|
||||||
|
public IServerInterceptor subscriptionSecurityInterceptor() {
|
||||||
|
SubscriptionsRequireManualActivationInterceptorDstu3 retVal = new SubscriptionsRequireManualActivationInterceptorDstu3();
|
||||||
|
return retVal;
|
||||||
|
}
|
||||||
|
|
||||||
|
@Bean()
|
||||||
|
public JpaTransactionManager transactionManager(EntityManagerFactory entityManagerFactory) {
|
||||||
|
JpaTransactionManager retVal = new JpaTransactionManager();
|
||||||
|
retVal.setEntityManagerFactory(entityManagerFactory);
|
||||||
|
return retVal;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,56 @@
|
||||||
|
package ca.uhn.fhir.jpa.cds.example;
|
||||||
|
|
||||||
|
import ca.uhn.fhir.context.FhirVersionEnum;
|
||||||
|
import ca.uhn.fhir.to.FhirTesterMvcConfig;
|
||||||
|
import ca.uhn.fhir.to.TesterConfig;
|
||||||
|
import org.springframework.context.annotation.Bean;
|
||||||
|
import org.springframework.context.annotation.Configuration;
|
||||||
|
import org.springframework.context.annotation.Import;
|
||||||
|
|
||||||
|
//@formatter:off
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This spring config file configures the web testing module. It serves two
|
||||||
|
* purposes:
|
||||||
|
* 1. It imports FhirTesterMvcConfig, which is the spring config for the
|
||||||
|
* tester itself
|
||||||
|
* 2. It tells the tester which server(s) to talk to, via the testerConfig()
|
||||||
|
* method below
|
||||||
|
*/
|
||||||
|
@Configuration
|
||||||
|
@Import(FhirTesterMvcConfig.class)
|
||||||
|
public class FhirTesterConfig {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* This bean tells the testing webpage which servers it should configure itself
|
||||||
|
* to communicate with. In this example we configure it to talk to the local
|
||||||
|
* server, as well as one public server. If you are creating a project to
|
||||||
|
* deploy somewhere else, you might choose to only put your own server's
|
||||||
|
* address here.
|
||||||
|
*
|
||||||
|
* Note the use of the ${serverBase} variable below. This will be replaced with
|
||||||
|
* the base URL as reported by the server itself. Often for a simple Tomcat
|
||||||
|
* (or other container) installation, this will end up being something
|
||||||
|
* like "http://localhost:8080/hapi-fhir-jpaserver-example". If you are
|
||||||
|
* deploying your server to a place with a fully qualified domain name,
|
||||||
|
* you might want to use that instead of using the variable.
|
||||||
|
*/
|
||||||
|
@Bean
|
||||||
|
public TesterConfig testerConfig() {
|
||||||
|
TesterConfig retVal = new TesterConfig();
|
||||||
|
retVal
|
||||||
|
.addServer()
|
||||||
|
.withId("home")
|
||||||
|
.withFhirVersion(FhirVersionEnum.DSTU3)
|
||||||
|
.withBaseUrl("${serverBase}/baseDstu3")
|
||||||
|
.withName("Local Tester")
|
||||||
|
.addServer()
|
||||||
|
.withId("hapi")
|
||||||
|
.withFhirVersion(FhirVersionEnum.DSTU3)
|
||||||
|
.withBaseUrl("http://fhirtest.uhn.ca/baseDstu3")
|
||||||
|
.withName("Public HAPI Test Server");
|
||||||
|
return retVal;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
//@formatter:on
|
|
@ -0,0 +1,67 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<head th:include="tmpl-head :: head">
|
||||||
|
<title>About This Server</title>
|
||||||
|
</head>
|
||||||
|
|
||||||
|
<body>
|
||||||
|
<form action="" method="get" id="outerForm">
|
||||||
|
<div th:replace="tmpl-navbar-top :: top" ></div>
|
||||||
|
|
||||||
|
<div class="container-fluid">
|
||||||
|
<div class="row">
|
||||||
|
<div th:replace="tmpl-navbar-left :: left" ></div>
|
||||||
|
|
||||||
|
<div class="col-sm-9 col-sm-offset-3 col-md-9 col-md-offset-3 main">
|
||||||
|
|
||||||
|
<div th:replace="tmpl-banner :: banner"></div>
|
||||||
|
|
||||||
|
<div class="panel panel-default">
|
||||||
|
<div class="panel-heading">
|
||||||
|
<h3 class="panel-title">About This Server</h3>
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
|
<div class="pull-right">
|
||||||
|
<object data="img/fhirtest-architecture.svg" width="383" height="369" type="image/svg+xml"></object>
|
||||||
|
</div>
|
||||||
|
<p>
|
||||||
|
This server provides a nearly complete implementation of the FHIR Specification
|
||||||
|
using a 100% open source software stack. It is hosted by University Health Network.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
The architecture in use here is shown in the image on the right. This server is built
|
||||||
|
from a number of modules of the
|
||||||
|
<a href="https://github.com/jamesagnew/hapi-fhir/">HAPI FHIR</a>
|
||||||
|
project, which is a 100% open-source (Apache 2.0 Licensed) Java based
|
||||||
|
implementation of the FHIR specification.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
<div class="panel panel-default">
|
||||||
|
<div class="panel-heading">
|
||||||
|
<h3 class="panel-title">Data On This Server</h3>
|
||||||
|
</div>
|
||||||
|
<div class="panel-body">
|
||||||
|
<p>
|
||||||
|
This server is regularly loaded with a standard set of test data sourced
|
||||||
|
from UHN's own testing environment. Do not use this server to store any data
|
||||||
|
that you will need later, as we will be regularly resetting it.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
This is not a production server and it provides no privacy. Do not store any
|
||||||
|
confidential data here.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div th:replace="tmpl-footer :: footer" ></div>
|
||||||
|
</form>
|
||||||
|
</body>
|
||||||
|
</html>
|
|
@ -0,0 +1,16 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<div th:fragment="footer">
|
||||||
|
<script>
|
||||||
|
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
|
||||||
|
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
|
||||||
|
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
|
||||||
|
})(window,document,'script','//www.google-analytics.com/analytics.js','ga');
|
||||||
|
|
||||||
|
ga('create', 'UA-1395874-6', 'auto');
|
||||||
|
ga('require', 'displayfeatures');
|
||||||
|
ga('require', 'linkid', 'linkid.js');
|
||||||
|
ga('send', 'pageview');
|
||||||
|
</script>
|
||||||
|
</div>
|
||||||
|
</html>
|
|
@ -0,0 +1,52 @@
|
||||||
|
<!DOCTYPE html>
|
||||||
|
<html lang="en">
|
||||||
|
<div th:fragment="banner" class="well">
|
||||||
|
<th:block th:if="${serverId} == 'home'">
|
||||||
|
<p>
|
||||||
|
This is the home for the FHIR test server operated by
|
||||||
|
<a href="http://uhn.ca">University Health Network</a>. This server
|
||||||
|
(and the testing application you are currently using to access it)
|
||||||
|
is entirely built using
|
||||||
|
<a href="https://github.com/jamesagnew/hapi-fhir">HAPI-FHIR</a>,
|
||||||
|
a 100% open-source Java implementation of the
|
||||||
|
<a href="http://hl7.org/implement/standards/fhir/">FHIR specification</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Here are some things you might wish to try:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li>
|
||||||
|
View a
|
||||||
|
<a href="http://fhirtest.uhn.ca/search?serverId=home&encoding=json&pretty=true&resource=Patient&param.0.type=string&param.0.name=_id&param.0.0=&resource-search-limit=">list of patients</a>
|
||||||
|
on this server.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Construct a
|
||||||
|
<a href="http://fhirtest.uhn.ca/resource?serverId=home&encoding=json&pretty=true&resource=Patient">search query</a>
|
||||||
|
on this server.
|
||||||
|
</li>
|
||||||
|
<li>
|
||||||
|
Access a
|
||||||
|
<a href="http://fhirtest.uhn.ca/home?serverId=furore">different server</a>
|
||||||
|
(use the <b>Server</b> menu at the top of the page to see a list of public FHIR servers)
|
||||||
|
</li>
|
||||||
|
</ul>
|
||||||
|
</th:block>
|
||||||
|
<th:block th:if="${serverId} != 'home'">
|
||||||
|
<p>
|
||||||
|
You are accessing the public FHIR server
|
||||||
|
<b th:text="${baseName}"/>. This server is hosted elsewhere on the internet
|
||||||
|
but is being accessed using the HAPI client implementation.
|
||||||
|
</p>
|
||||||
|
</th:block>
|
||||||
|
<p>
|
||||||
|
<b style="color: red;">
|
||||||
|
<span class="glyphicon glyphicon-warning-sign"/>
|
||||||
|
This is not a production server!
|
||||||
|
</b>
|
||||||
|
Do not store any information here that contains personal health information
|
||||||
|
or any other confidential information. This server will be regularly purged
|
||||||
|
and reloaded with fixed test data.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</html>
|
|
@ -0,0 +1,124 @@
|
||||||
|
<web-app xmlns="http://java.sun.com/xml/ns/javaee" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="3.0"
|
||||||
|
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee ./xsd/web-app_3_0.xsd">
|
||||||
|
|
||||||
|
<listener>
|
||||||
|
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
|
||||||
|
</listener>
|
||||||
|
<context-param>
|
||||||
|
<param-name>contextClass</param-name>
|
||||||
|
<param-value>
|
||||||
|
org.springframework.web.context.support.AnnotationConfigWebApplicationContext
|
||||||
|
</param-value>
|
||||||
|
</context-param>
|
||||||
|
<context-param>
|
||||||
|
<param-name>contextConfigLocation</param-name>
|
||||||
|
<param-value>
|
||||||
|
ca.uhn.fhir.jpa.cds.example.FhirServerConfig
|
||||||
|
</param-value>
|
||||||
|
</context-param>
|
||||||
|
|
||||||
|
<!-- Servlets -->
|
||||||
|
|
||||||
|
<servlet>
|
||||||
|
<servlet-name>cdsServicesServlet</servlet-name>
|
||||||
|
<servlet-class>ca.uhn.fhir.jpa.cds.example.CdsHooksServerExample</servlet-class>
|
||||||
|
<load-on-startup>3</load-on-startup>
|
||||||
|
</servlet>
|
||||||
|
|
||||||
|
<servlet>
|
||||||
|
<servlet-name>spring</servlet-name>
|
||||||
|
<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
|
||||||
|
<init-param>
|
||||||
|
<param-name>contextClass</param-name>
|
||||||
|
<param-value>org.springframework.web.context.support.AnnotationConfigWebApplicationContext</param-value>
|
||||||
|
</init-param>
|
||||||
|
<init-param>
|
||||||
|
<param-name>contextConfigLocation</param-name>
|
||||||
|
<param-value>ca.uhn.fhir.jpa.cds.example.FhirTesterConfig</param-value>
|
||||||
|
</init-param>
|
||||||
|
<load-on-startup>2</load-on-startup>
|
||||||
|
</servlet>
|
||||||
|
|
||||||
|
<servlet>
|
||||||
|
<servlet-name>fhirServlet</servlet-name>
|
||||||
|
<servlet-class>ca.uhn.fhir.jpa.cds.example.CdsServerExample</servlet-class>
|
||||||
|
<init-param>
|
||||||
|
<param-name>ImplementationDescription</param-name>
|
||||||
|
<param-value>FHIR JPA Server</param-value>
|
||||||
|
</init-param>
|
||||||
|
<init-param>
|
||||||
|
<param-name>FhirVersion</param-name>
|
||||||
|
<param-value>DSTU3</param-value>
|
||||||
|
</init-param>
|
||||||
|
<load-on-startup>1</load-on-startup>
|
||||||
|
</servlet>
|
||||||
|
|
||||||
|
<servlet-mapping>
|
||||||
|
<servlet-name>cdsServicesServlet</servlet-name>
|
||||||
|
<url-pattern>/cds-services</url-pattern>
|
||||||
|
</servlet-mapping>
|
||||||
|
|
||||||
|
<servlet-mapping>
|
||||||
|
<servlet-name>cdsServicesServlet</servlet-name>
|
||||||
|
<url-pattern>/cds-services/*</url-pattern>
|
||||||
|
</servlet-mapping>
|
||||||
|
|
||||||
|
<servlet-mapping>
|
||||||
|
<servlet-name>fhirServlet</servlet-name>
|
||||||
|
<url-pattern>/baseDstu3/*</url-pattern>
|
||||||
|
</servlet-mapping>
|
||||||
|
|
||||||
|
<servlet-mapping>
|
||||||
|
<servlet-name>spring</servlet-name>
|
||||||
|
<url-pattern>/</url-pattern>
|
||||||
|
</servlet-mapping>
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
<!-- This filters provide support for Cross Origin Resource Sharing (CORS) -->
|
||||||
|
<filter>
|
||||||
|
<filter-name>CORS Filter</filter-name>
|
||||||
|
<filter-class>org.ebaysf.web.cors.CORSFilter</filter-class>
|
||||||
|
<init-param>
|
||||||
|
<description>A comma separated list of allowed origins. Note: An '*' cannot be used for an allowed origin when using credentials.</description>
|
||||||
|
<param-name>cors.allowed.origins</param-name>
|
||||||
|
<param-value>*</param-value>
|
||||||
|
</init-param>
|
||||||
|
<init-param>
|
||||||
|
<description>A comma separated list of HTTP verbs, using which a CORS request can be made.</description>
|
||||||
|
<param-name>cors.allowed.methods</param-name>
|
||||||
|
<param-value>GET,POST,PUT,DELETE,OPTIONS</param-value>
|
||||||
|
</init-param>
|
||||||
|
<init-param>
|
||||||
|
<description>A comma separated list of allowed headers when making a non simple CORS request.</description>
|
||||||
|
<param-name>cors.allowed.headers</param-name>
|
||||||
|
<param-value>X-FHIR-Starter,Origin,Accept,X-Requested-With,Content-Type,Access-Control-Request-Method,Access-Control-Request-Headers,Prefer</param-value>
|
||||||
|
</init-param>
|
||||||
|
<init-param>
|
||||||
|
<description>A comma separated list non-standard response headers that will be exposed to XHR2 object.</description>
|
||||||
|
<param-name>cors.exposed.headers</param-name>
|
||||||
|
<param-value>Location,Content-Location</param-value>
|
||||||
|
</init-param>
|
||||||
|
<init-param>
|
||||||
|
<description>A flag that suggests if CORS is supported with cookies</description>
|
||||||
|
<param-name>cors.support.credentials</param-name>
|
||||||
|
<param-value>true</param-value>
|
||||||
|
</init-param>
|
||||||
|
<init-param>
|
||||||
|
<description>A flag to control logging</description>
|
||||||
|
<param-name>cors.logging.enabled</param-name>
|
||||||
|
<param-value>true</param-value>
|
||||||
|
</init-param>
|
||||||
|
<init-param>
|
||||||
|
<description>Indicates how long (in seconds) the results of a preflight request can be cached in a preflight result cache.</description>
|
||||||
|
<param-name>cors.preflight.maxage</param-name>
|
||||||
|
<param-value>300</param-value>
|
||||||
|
</init-param>
|
||||||
|
</filter>
|
||||||
|
<filter-mapping>
|
||||||
|
<filter-name>CORS Filter</filter-name>
|
||||||
|
<url-pattern>/*</url-pattern>
|
||||||
|
</filter-mapping>
|
||||||
|
|
||||||
|
|
||||||
|
</web-app>
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,389 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
|
||||||
|
targetNamespace="http://java.sun.com/xml/ns/javaee"
|
||||||
|
xmlns:javaee="http://java.sun.com/xml/ns/javaee"
|
||||||
|
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||||
|
elementFormDefault="qualified"
|
||||||
|
attributeFormDefault="unqualified"
|
||||||
|
version="2.2">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation>
|
||||||
|
|
||||||
|
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||||
|
|
||||||
|
Copyright 2003-2009 Sun Microsystems, Inc. All rights reserved.
|
||||||
|
|
||||||
|
The contents of this file are subject to the terms of either the
|
||||||
|
GNU General Public License Version 2 only ("GPL") or the Common
|
||||||
|
Development and Distribution License("CDDL") (collectively, the
|
||||||
|
"License"). You may not use this file except in compliance with
|
||||||
|
the License. You can obtain a copy of the License at
|
||||||
|
https://glassfish.dev.java.net/public/CDDL+GPL.html or
|
||||||
|
glassfish/bootstrap/legal/LICENSE.txt. See the License for the
|
||||||
|
specific language governing permissions and limitations under the
|
||||||
|
License.
|
||||||
|
|
||||||
|
When distributing the software, include this License Header
|
||||||
|
Notice in each file and include the License file at
|
||||||
|
glassfish/bootstrap/legal/LICENSE.txt. Sun designates this
|
||||||
|
particular file as subject to the "Classpath" exception as
|
||||||
|
provided by Sun in the GPL Version 2 section of the License file
|
||||||
|
that accompanied this code. If applicable, add the following
|
||||||
|
below the License Header, with the fields enclosed by brackets []
|
||||||
|
replaced by your own identifying information:
|
||||||
|
"Portions Copyrighted [year] [name of copyright owner]"
|
||||||
|
|
||||||
|
Contributor(s):
|
||||||
|
|
||||||
|
If you wish your version of this file to be governed by only the
|
||||||
|
CDDL or only the GPL Version 2, indicate your decision by adding
|
||||||
|
"[Contributor] elects to include this software in this
|
||||||
|
distribution under the [CDDL or GPL Version 2] license." If you
|
||||||
|
don't indicate a single choice of license, a recipient has the
|
||||||
|
option to distribute your version of this file under either the
|
||||||
|
CDDL, the GPL Version 2 or to extend the choice of license to its
|
||||||
|
licensees as provided above. However, if you add GPL Version 2
|
||||||
|
code and therefore, elected the GPL Version 2 license, then the
|
||||||
|
option applies only if the new code is made subject to such
|
||||||
|
option by the copyright holder.
|
||||||
|
|
||||||
|
</xsd:documentation>
|
||||||
|
</xsd:annotation>
|
||||||
|
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation>
|
||||||
|
|
||||||
|
This is the XML Schema for the JSP 2.2 deployment descriptor
|
||||||
|
types. The JSP 2.2 schema contains all the special
|
||||||
|
structures and datatypes that are necessary to use JSP files
|
||||||
|
from a web application.
|
||||||
|
|
||||||
|
The contents of this schema is used by the web-common_3_0.xsd
|
||||||
|
file to define JSP specific content.
|
||||||
|
|
||||||
|
</xsd:documentation>
|
||||||
|
</xsd:annotation>
|
||||||
|
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation>
|
||||||
|
|
||||||
|
The following conventions apply to all Java EE
|
||||||
|
deployment descriptor elements unless indicated otherwise.
|
||||||
|
|
||||||
|
- In elements that specify a pathname to a file within the
|
||||||
|
same JAR file, relative filenames (i.e., those not
|
||||||
|
starting with "/") are considered relative to the root of
|
||||||
|
the JAR file's namespace. Absolute filenames (i.e., those
|
||||||
|
starting with "/") also specify names in the root of the
|
||||||
|
JAR file's namespace. In general, relative names are
|
||||||
|
preferred. The exception is .war files where absolute
|
||||||
|
names are preferred for consistency with the Servlet API.
|
||||||
|
|
||||||
|
</xsd:documentation>
|
||||||
|
</xsd:annotation>
|
||||||
|
|
||||||
|
<xsd:include schemaLocation="javaee_6.xsd"/>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- **************************************************** -->
|
||||||
|
|
||||||
|
<xsd:complexType name="jsp-configType">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation>
|
||||||
|
|
||||||
|
The jsp-configType is used to provide global configuration
|
||||||
|
information for the JSP files in a web application. It has
|
||||||
|
two subelements, taglib and jsp-property-group.
|
||||||
|
|
||||||
|
</xsd:documentation>
|
||||||
|
</xsd:annotation>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="taglib"
|
||||||
|
type="javaee:taglibType"
|
||||||
|
minOccurs="0"
|
||||||
|
maxOccurs="unbounded"/>
|
||||||
|
<xsd:element name="jsp-property-group"
|
||||||
|
type="javaee:jsp-property-groupType"
|
||||||
|
minOccurs="0"
|
||||||
|
maxOccurs="unbounded"/>
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="id"
|
||||||
|
type="xsd:ID"/>
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- **************************************************** -->
|
||||||
|
|
||||||
|
<xsd:complexType name="jsp-fileType">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation>
|
||||||
|
|
||||||
|
The jsp-file element contains the full path to a JSP file
|
||||||
|
within the web application beginning with a `/'.
|
||||||
|
|
||||||
|
</xsd:documentation>
|
||||||
|
</xsd:annotation>
|
||||||
|
<xsd:simpleContent>
|
||||||
|
<xsd:restriction base="javaee:pathType"/>
|
||||||
|
</xsd:simpleContent>
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- **************************************************** -->
|
||||||
|
|
||||||
|
<xsd:complexType name="jsp-property-groupType">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation>
|
||||||
|
|
||||||
|
The jsp-property-groupType is used to group a number of
|
||||||
|
files so they can be given global property information.
|
||||||
|
All files so described are deemed to be JSP files. The
|
||||||
|
following additional properties can be described:
|
||||||
|
|
||||||
|
- Control whether EL is ignored.
|
||||||
|
- Control whether scripting elements are invalid.
|
||||||
|
- Indicate pageEncoding information.
|
||||||
|
- Indicate that a resource is a JSP document (XML).
|
||||||
|
- Prelude and Coda automatic includes.
|
||||||
|
- Control whether the character sequence #{ is allowed
|
||||||
|
when used as a String literal.
|
||||||
|
- Control whether template text containing only
|
||||||
|
whitespaces must be removed from the response output.
|
||||||
|
- Indicate the default contentType information.
|
||||||
|
- Indicate the default buffering model for JspWriter
|
||||||
|
- Control whether error should be raised for the use of
|
||||||
|
undeclared namespaces in a JSP page.
|
||||||
|
|
||||||
|
</xsd:documentation>
|
||||||
|
</xsd:annotation>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:group ref="javaee:descriptionGroup"/>
|
||||||
|
<xsd:element name="url-pattern"
|
||||||
|
type="javaee:url-patternType"
|
||||||
|
maxOccurs="unbounded"/>
|
||||||
|
<xsd:element name="el-ignored"
|
||||||
|
type="javaee:true-falseType"
|
||||||
|
minOccurs="0">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation>
|
||||||
|
|
||||||
|
Can be used to easily set the isELIgnored
|
||||||
|
property of a group of JSP pages. By default, the
|
||||||
|
EL evaluation is enabled for Web Applications using
|
||||||
|
a Servlet 2.4 or greater web.xml, and disabled
|
||||||
|
otherwise.
|
||||||
|
|
||||||
|
</xsd:documentation>
|
||||||
|
</xsd:annotation>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="page-encoding"
|
||||||
|
type="javaee:string"
|
||||||
|
minOccurs="0">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation>
|
||||||
|
|
||||||
|
The valid values of page-encoding are those of the
|
||||||
|
pageEncoding page directive. It is a
|
||||||
|
translation-time error to name different encodings
|
||||||
|
in the pageEncoding attribute of the page directive
|
||||||
|
of a JSP page and in a JSP configuration element
|
||||||
|
matching the page. It is also a translation-time
|
||||||
|
error to name different encodings in the prolog
|
||||||
|
or text declaration of a document in XML syntax and
|
||||||
|
in a JSP configuration element matching the document.
|
||||||
|
It is legal to name the same encoding through
|
||||||
|
mulitple mechanisms.
|
||||||
|
|
||||||
|
</xsd:documentation>
|
||||||
|
</xsd:annotation>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="scripting-invalid"
|
||||||
|
type="javaee:true-falseType"
|
||||||
|
minOccurs="0">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation>
|
||||||
|
|
||||||
|
Can be used to easily disable scripting in a
|
||||||
|
group of JSP pages. By default, scripting is
|
||||||
|
enabled.
|
||||||
|
|
||||||
|
</xsd:documentation>
|
||||||
|
</xsd:annotation>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="is-xml"
|
||||||
|
type="javaee:true-falseType"
|
||||||
|
minOccurs="0">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation>
|
||||||
|
|
||||||
|
If true, denotes that the group of resources
|
||||||
|
that match the URL pattern are JSP documents,
|
||||||
|
and thus must be interpreted as XML documents.
|
||||||
|
If false, the resources are assumed to not
|
||||||
|
be JSP documents, unless there is another
|
||||||
|
property group that indicates otherwise.
|
||||||
|
|
||||||
|
</xsd:documentation>
|
||||||
|
</xsd:annotation>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="include-prelude"
|
||||||
|
type="javaee:pathType"
|
||||||
|
minOccurs="0"
|
||||||
|
maxOccurs="unbounded">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation>
|
||||||
|
|
||||||
|
The include-prelude element is a context-relative
|
||||||
|
path that must correspond to an element in the
|
||||||
|
Web Application. When the element is present,
|
||||||
|
the given path will be automatically included (as
|
||||||
|
in an include directive) at the beginning of each
|
||||||
|
JSP page in this jsp-property-group.
|
||||||
|
|
||||||
|
</xsd:documentation>
|
||||||
|
</xsd:annotation>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="include-coda"
|
||||||
|
type="javaee:pathType"
|
||||||
|
minOccurs="0"
|
||||||
|
maxOccurs="unbounded">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation>
|
||||||
|
|
||||||
|
The include-coda element is a context-relative
|
||||||
|
path that must correspond to an element in the
|
||||||
|
Web Application. When the element is present,
|
||||||
|
the given path will be automatically included (as
|
||||||
|
in an include directive) at the end of each
|
||||||
|
JSP page in this jsp-property-group.
|
||||||
|
|
||||||
|
</xsd:documentation>
|
||||||
|
</xsd:annotation>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="deferred-syntax-allowed-as-literal"
|
||||||
|
type="javaee:true-falseType"
|
||||||
|
minOccurs="0">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation>
|
||||||
|
|
||||||
|
The character sequence #{ is reserved for EL expressions.
|
||||||
|
Consequently, a translation error occurs if the #{
|
||||||
|
character sequence is used as a String literal, unless
|
||||||
|
this element is enabled (true). Disabled (false) by
|
||||||
|
default.
|
||||||
|
|
||||||
|
</xsd:documentation>
|
||||||
|
</xsd:annotation>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="trim-directive-whitespaces"
|
||||||
|
type="javaee:true-falseType"
|
||||||
|
minOccurs="0">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation>
|
||||||
|
|
||||||
|
Indicates that template text containing only whitespaces
|
||||||
|
must be removed from the response output. It has no
|
||||||
|
effect on JSP documents (XML syntax). Disabled (false)
|
||||||
|
by default.
|
||||||
|
|
||||||
|
</xsd:documentation>
|
||||||
|
</xsd:annotation>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="default-content-type"
|
||||||
|
type="javaee:string"
|
||||||
|
minOccurs="0">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation>
|
||||||
|
|
||||||
|
The valid values of default-content-type are those of the
|
||||||
|
contentType page directive. It specifies the default
|
||||||
|
response contentType if the page directive does not include
|
||||||
|
a contentType attribute.
|
||||||
|
|
||||||
|
</xsd:documentation>
|
||||||
|
</xsd:annotation>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="buffer"
|
||||||
|
type="javaee:string"
|
||||||
|
minOccurs="0">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation>
|
||||||
|
|
||||||
|
The valid values of buffer are those of the
|
||||||
|
buffer page directive. It specifies if buffering should be
|
||||||
|
used for the output to response, and if so, the size of the
|
||||||
|
buffer to use.
|
||||||
|
|
||||||
|
</xsd:documentation>
|
||||||
|
</xsd:annotation>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="error-on-undeclared-namespace"
|
||||||
|
type="javaee:true-falseType"
|
||||||
|
minOccurs="0">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation>
|
||||||
|
|
||||||
|
The default behavior when a tag with unknown namespace is used
|
||||||
|
in a JSP page (regular syntax) is to silently ignore it. If
|
||||||
|
set to true, then an error must be raised during the translation
|
||||||
|
time when an undeclared tag is used in a JSP page. Disabled
|
||||||
|
(false) by default.
|
||||||
|
|
||||||
|
</xsd:documentation>
|
||||||
|
</xsd:annotation>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="id"
|
||||||
|
type="xsd:ID"/>
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- **************************************************** -->
|
||||||
|
|
||||||
|
<xsd:complexType name="taglibType">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation>
|
||||||
|
|
||||||
|
The taglibType defines the syntax for declaring in
|
||||||
|
the deployment descriptor that a tag library is
|
||||||
|
available to the application. This can be done
|
||||||
|
to override implicit map entries from TLD files and
|
||||||
|
from the container.
|
||||||
|
|
||||||
|
</xsd:documentation>
|
||||||
|
</xsd:annotation>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="taglib-uri"
|
||||||
|
type="javaee:string">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation>
|
||||||
|
|
||||||
|
A taglib-uri element describes a URI identifying a
|
||||||
|
tag library used in the web application. The body
|
||||||
|
of the taglib-uri element may be either an
|
||||||
|
absolute URI specification, or a relative URI.
|
||||||
|
There should be no entries in web.xml with the
|
||||||
|
same taglib-uri value.
|
||||||
|
|
||||||
|
</xsd:documentation>
|
||||||
|
</xsd:annotation>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="taglib-location"
|
||||||
|
type="javaee:pathType">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation>
|
||||||
|
|
||||||
|
the taglib-location element contains the location
|
||||||
|
(as a resource relative to the root of the web
|
||||||
|
application) where to find the Tag Library
|
||||||
|
Description file for the tag library.
|
||||||
|
|
||||||
|
</xsd:documentation>
|
||||||
|
</xsd:annotation>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="id"
|
||||||
|
type="xsd:ID"/>
|
||||||
|
</xsd:complexType>
|
||||||
|
|
||||||
|
</xsd:schema>
|
|
@ -0,0 +1,272 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<xsd:schema xmlns="http://www.w3.org/2001/XMLSchema"
|
||||||
|
targetNamespace="http://java.sun.com/xml/ns/javaee"
|
||||||
|
xmlns:javaee="http://java.sun.com/xml/ns/javaee"
|
||||||
|
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
|
||||||
|
elementFormDefault="qualified"
|
||||||
|
attributeFormDefault="unqualified"
|
||||||
|
version="3.0">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation>
|
||||||
|
|
||||||
|
DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
|
||||||
|
|
||||||
|
Copyright 2003-2009 Sun Microsystems, Inc. All rights reserved.
|
||||||
|
|
||||||
|
The contents of this file are subject to the terms of either the
|
||||||
|
GNU General Public License Version 2 only ("GPL") or the Common
|
||||||
|
Development and Distribution License("CDDL") (collectively, the
|
||||||
|
"License"). You may not use this file except in compliance with
|
||||||
|
the License. You can obtain a copy of the License at
|
||||||
|
https://glassfish.dev.java.net/public/CDDL+GPL.html or
|
||||||
|
glassfish/bootstrap/legal/LICENSE.txt. See the License for the
|
||||||
|
specific language governing permissions and limitations under the
|
||||||
|
License.
|
||||||
|
|
||||||
|
When distributing the software, include this License Header
|
||||||
|
Notice in each file and include the License file at
|
||||||
|
glassfish/bootstrap/legal/LICENSE.txt. Sun designates this
|
||||||
|
particular file as subject to the "Classpath" exception as
|
||||||
|
provided by Sun in the GPL Version 2 section of the License file
|
||||||
|
that accompanied this code. If applicable, add the following
|
||||||
|
below the License Header, with the fields enclosed by brackets []
|
||||||
|
replaced by your own identifying information:
|
||||||
|
"Portions Copyrighted [year] [name of copyright owner]"
|
||||||
|
|
||||||
|
Contributor(s):
|
||||||
|
|
||||||
|
If you wish your version of this file to be governed by only the
|
||||||
|
CDDL or only the GPL Version 2, indicate your decision by adding
|
||||||
|
"[Contributor] elects to include this software in this
|
||||||
|
distribution under the [CDDL or GPL Version 2] license." If you
|
||||||
|
don't indicate a single choice of license, a recipient has the
|
||||||
|
option to distribute your version of this file under either the
|
||||||
|
CDDL, the GPL Version 2 or to extend the choice of license to its
|
||||||
|
licensees as provided above. However, if you add GPL Version 2
|
||||||
|
code and therefore, elected the GPL Version 2 license, then the
|
||||||
|
option applies only if the new code is made subject to such
|
||||||
|
option by the copyright holder.
|
||||||
|
|
||||||
|
</xsd:documentation>
|
||||||
|
</xsd:annotation>
|
||||||
|
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation>
|
||||||
|
<![CDATA[[
|
||||||
|
This is the XML Schema for the Servlet 3.0 deployment descriptor.
|
||||||
|
The deployment descriptor must be named "WEB-INF/web.xml" in the
|
||||||
|
web application's war file. All Servlet deployment descriptors
|
||||||
|
must indicate the web application schema by using the Java EE
|
||||||
|
namespace:
|
||||||
|
|
||||||
|
http://java.sun.com/xml/ns/javaee
|
||||||
|
|
||||||
|
and by indicating the version of the schema by
|
||||||
|
using the version element as shown below:
|
||||||
|
|
||||||
|
<web-app xmlns="http://java.sun.com/xml/ns/javaee"
|
||||||
|
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
|
||||||
|
xsi:schemaLocation="..."
|
||||||
|
version="3.0">
|
||||||
|
...
|
||||||
|
</web-app>
|
||||||
|
|
||||||
|
The instance documents may indicate the published version of
|
||||||
|
the schema using the xsi:schemaLocation attribute for Java EE
|
||||||
|
namespace with the following location:
|
||||||
|
|
||||||
|
http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd
|
||||||
|
|
||||||
|
]]>
|
||||||
|
</xsd:documentation>
|
||||||
|
</xsd:annotation>
|
||||||
|
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation>
|
||||||
|
|
||||||
|
The following conventions apply to all Java EE
|
||||||
|
deployment descriptor elements unless indicated otherwise.
|
||||||
|
|
||||||
|
- In elements that specify a pathname to a file within the
|
||||||
|
same JAR file, relative filenames (i.e., those not
|
||||||
|
starting with "/") are considered relative to the root of
|
||||||
|
the JAR file's namespace. Absolute filenames (i.e., those
|
||||||
|
starting with "/") also specify names in the root of the
|
||||||
|
JAR file's namespace. In general, relative names are
|
||||||
|
preferred. The exception is .war files where absolute
|
||||||
|
names are preferred for consistency with the Servlet API.
|
||||||
|
|
||||||
|
</xsd:documentation>
|
||||||
|
</xsd:annotation>
|
||||||
|
|
||||||
|
<xsd:include schemaLocation="web-common_3_0.xsd"/>
|
||||||
|
|
||||||
|
|
||||||
|
<!-- **************************************************** -->
|
||||||
|
|
||||||
|
<xsd:element name="web-app"
|
||||||
|
type="javaee:web-appType">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation>
|
||||||
|
|
||||||
|
The web-app element is the root of the deployment
|
||||||
|
descriptor for a web application. Note that the sub-elements
|
||||||
|
of this element can be in the arbitrary order. Because of
|
||||||
|
that, the multiplicity of the elements of distributable,
|
||||||
|
session-config, welcome-file-list, jsp-config, login-config,
|
||||||
|
and locale-encoding-mapping-list was changed from "?" to "*"
|
||||||
|
in this schema. However, the deployment descriptor instance
|
||||||
|
file must not contain multiple elements of session-config,
|
||||||
|
jsp-config, and login-config. When there are multiple elements of
|
||||||
|
welcome-file-list or locale-encoding-mapping-list, the container
|
||||||
|
must concatenate the element contents. The multiple occurence
|
||||||
|
of the element distributable is redundant and the container
|
||||||
|
treats that case exactly in the same way when there is only
|
||||||
|
one distributable.
|
||||||
|
|
||||||
|
</xsd:documentation>
|
||||||
|
</xsd:annotation>
|
||||||
|
<xsd:unique name="web-common-servlet-name-uniqueness">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation>
|
||||||
|
|
||||||
|
The servlet element contains the name of a servlet.
|
||||||
|
The name must be unique within the web application.
|
||||||
|
|
||||||
|
</xsd:documentation>
|
||||||
|
</xsd:annotation>
|
||||||
|
<xsd:selector xpath="javaee:servlet"/>
|
||||||
|
<xsd:field xpath="javaee:servlet-name"/>
|
||||||
|
</xsd:unique>
|
||||||
|
<xsd:unique name="web-common-filter-name-uniqueness">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation>
|
||||||
|
|
||||||
|
The filter element contains the name of a filter.
|
||||||
|
The name must be unique within the web application.
|
||||||
|
|
||||||
|
</xsd:documentation>
|
||||||
|
</xsd:annotation>
|
||||||
|
<xsd:selector xpath="javaee:filter"/>
|
||||||
|
<xsd:field xpath="javaee:filter-name"/>
|
||||||
|
</xsd:unique>
|
||||||
|
<xsd:unique name="web-common-ejb-local-ref-name-uniqueness">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation>
|
||||||
|
|
||||||
|
The ejb-local-ref-name element contains the name of an EJB
|
||||||
|
reference. The EJB reference is an entry in the web
|
||||||
|
application's environment and is relative to the
|
||||||
|
java:comp/env context. The name must be unique within
|
||||||
|
the web application.
|
||||||
|
|
||||||
|
It is recommended that name is prefixed with "ejb/".
|
||||||
|
|
||||||
|
</xsd:documentation>
|
||||||
|
</xsd:annotation>
|
||||||
|
<xsd:selector xpath="javaee:ejb-local-ref"/>
|
||||||
|
<xsd:field xpath="javaee:ejb-ref-name"/>
|
||||||
|
</xsd:unique>
|
||||||
|
<xsd:unique name="web-common-ejb-ref-name-uniqueness">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation>
|
||||||
|
|
||||||
|
The ejb-ref-name element contains the name of an EJB
|
||||||
|
reference. The EJB reference is an entry in the web
|
||||||
|
application's environment and is relative to the
|
||||||
|
java:comp/env context. The name must be unique within
|
||||||
|
the web application.
|
||||||
|
|
||||||
|
It is recommended that name is prefixed with "ejb/".
|
||||||
|
|
||||||
|
</xsd:documentation>
|
||||||
|
</xsd:annotation>
|
||||||
|
<xsd:selector xpath="javaee:ejb-ref"/>
|
||||||
|
<xsd:field xpath="javaee:ejb-ref-name"/>
|
||||||
|
</xsd:unique>
|
||||||
|
<xsd:unique name="web-common-resource-env-ref-uniqueness">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation>
|
||||||
|
|
||||||
|
The resource-env-ref-name element specifies the name of
|
||||||
|
a resource environment reference; its value is the
|
||||||
|
environment entry name used in the web application code.
|
||||||
|
The name is a JNDI name relative to the java:comp/env
|
||||||
|
context and must be unique within a web application.
|
||||||
|
|
||||||
|
</xsd:documentation>
|
||||||
|
</xsd:annotation>
|
||||||
|
<xsd:selector xpath="javaee:resource-env-ref"/>
|
||||||
|
<xsd:field xpath="javaee:resource-env-ref-name"/>
|
||||||
|
</xsd:unique>
|
||||||
|
<xsd:unique name="web-common-message-destination-ref-uniqueness">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation>
|
||||||
|
|
||||||
|
The message-destination-ref-name element specifies the name of
|
||||||
|
a message destination reference; its value is the
|
||||||
|
environment entry name used in the web application code.
|
||||||
|
The name is a JNDI name relative to the java:comp/env
|
||||||
|
context and must be unique within a web application.
|
||||||
|
|
||||||
|
</xsd:documentation>
|
||||||
|
</xsd:annotation>
|
||||||
|
<xsd:selector xpath="javaee:message-destination-ref"/>
|
||||||
|
<xsd:field xpath="javaee:message-destination-ref-name"/>
|
||||||
|
</xsd:unique>
|
||||||
|
<xsd:unique name="web-common-res-ref-name-uniqueness">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation>
|
||||||
|
|
||||||
|
The res-ref-name element specifies the name of a
|
||||||
|
resource manager connection factory reference. The name
|
||||||
|
is a JNDI name relative to the java:comp/env context.
|
||||||
|
The name must be unique within a web application.
|
||||||
|
|
||||||
|
</xsd:documentation>
|
||||||
|
</xsd:annotation>
|
||||||
|
<xsd:selector xpath="javaee:resource-ref"/>
|
||||||
|
<xsd:field xpath="javaee:res-ref-name"/>
|
||||||
|
</xsd:unique>
|
||||||
|
<xsd:unique name="web-common-env-entry-name-uniqueness">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation>
|
||||||
|
|
||||||
|
The env-entry-name element contains the name of a web
|
||||||
|
application's environment entry. The name is a JNDI
|
||||||
|
name relative to the java:comp/env context. The name
|
||||||
|
must be unique within a web application.
|
||||||
|
|
||||||
|
</xsd:documentation>
|
||||||
|
</xsd:annotation>
|
||||||
|
<xsd:selector xpath="javaee:env-entry"/>
|
||||||
|
<xsd:field xpath="javaee:env-entry-name"/>
|
||||||
|
</xsd:unique>
|
||||||
|
<xsd:key name="web-common-role-name-key">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation>
|
||||||
|
|
||||||
|
A role-name-key is specified to allow the references
|
||||||
|
from the security-role-refs.
|
||||||
|
|
||||||
|
</xsd:documentation>
|
||||||
|
</xsd:annotation>
|
||||||
|
<xsd:selector xpath="javaee:security-role"/>
|
||||||
|
<xsd:field xpath="javaee:role-name"/>
|
||||||
|
</xsd:key>
|
||||||
|
<xsd:keyref name="web-common-role-name-references"
|
||||||
|
refer="javaee:web-common-role-name-key">
|
||||||
|
<xsd:annotation>
|
||||||
|
<xsd:documentation>
|
||||||
|
|
||||||
|
The keyref indicates the references from
|
||||||
|
security-role-ref to a specified role-name.
|
||||||
|
|
||||||
|
</xsd:documentation>
|
||||||
|
</xsd:annotation>
|
||||||
|
<xsd:selector xpath="javaee:servlet/javaee:security-role-ref"/>
|
||||||
|
<xsd:field xpath="javaee:role-link"/>
|
||||||
|
</xsd:keyref>
|
||||||
|
</xsd:element>
|
||||||
|
|
||||||
|
</xsd:schema>
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,287 @@
|
||||||
|
<?xml version='1.0'?>
|
||||||
|
<?xml-stylesheet href="../2008/09/xsd.xsl" type="text/xsl"?>
|
||||||
|
<xs:schema targetNamespace="http://www.w3.org/XML/1998/namespace"
|
||||||
|
xmlns:xs="http://www.w3.org/2001/XMLSchema"
|
||||||
|
xmlns ="http://www.w3.org/1999/xhtml"
|
||||||
|
xml:lang="en">
|
||||||
|
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>
|
||||||
|
<div>
|
||||||
|
<h1>About the XML namespace</h1>
|
||||||
|
|
||||||
|
<div class="bodytext">
|
||||||
|
<p>
|
||||||
|
This schema document describes the XML namespace, in a form
|
||||||
|
suitable for import by other schema documents.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
See <a href="http://www.w3.org/XML/1998/namespace.html">
|
||||||
|
http://www.w3.org/XML/1998/namespace.html</a> and
|
||||||
|
<a href="http://www.w3.org/TR/REC-xml">
|
||||||
|
http://www.w3.org/TR/REC-xml</a> for information
|
||||||
|
about this namespace.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Note that local names in this namespace are intended to be
|
||||||
|
defined only by the World Wide Web Consortium or its subgroups.
|
||||||
|
The names currently defined in this namespace are listed below.
|
||||||
|
They should not be used with conflicting semantics by any Working
|
||||||
|
Group, specification, or document instance.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
See further below in this document for more information about <a
|
||||||
|
href="#usage">how to refer to this schema document from your own
|
||||||
|
XSD schema documents</a> and about <a href="#nsversioning">the
|
||||||
|
namespace-versioning policy governing this schema document</a>.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
|
||||||
|
<xs:attribute name="lang">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>
|
||||||
|
<div>
|
||||||
|
|
||||||
|
<h3>lang (as an attribute name)</h3>
|
||||||
|
<p>
|
||||||
|
denotes an attribute whose value
|
||||||
|
is a language code for the natural language of the content of
|
||||||
|
any element; its value is inherited. This name is reserved
|
||||||
|
by virtue of its definition in the XML specification.</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
<div>
|
||||||
|
<h4>Notes</h4>
|
||||||
|
<p>
|
||||||
|
Attempting to install the relevant ISO 2- and 3-letter
|
||||||
|
codes as the enumerated possible values is probably never
|
||||||
|
going to be a realistic possibility.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
See BCP 47 at <a href="http://www.rfc-editor.org/rfc/bcp/bcp47.txt">
|
||||||
|
http://www.rfc-editor.org/rfc/bcp/bcp47.txt</a>
|
||||||
|
and the IANA language subtag registry at
|
||||||
|
<a href="http://www.iana.org/assignments/language-subtag-registry">
|
||||||
|
http://www.iana.org/assignments/language-subtag-registry</a>
|
||||||
|
for further information.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
The union allows for the 'un-declaration' of xml:lang with
|
||||||
|
the empty string.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:union memberTypes="xs:language">
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:string">
|
||||||
|
<xs:enumeration value=""/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
</xs:union>
|
||||||
|
</xs:simpleType>
|
||||||
|
</xs:attribute>
|
||||||
|
|
||||||
|
<xs:attribute name="space">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>
|
||||||
|
<div>
|
||||||
|
|
||||||
|
<h3>space (as an attribute name)</h3>
|
||||||
|
<p>
|
||||||
|
denotes an attribute whose
|
||||||
|
value is a keyword indicating what whitespace processing
|
||||||
|
discipline is intended for the content of the element; its
|
||||||
|
value is inherited. This name is reserved by virtue of its
|
||||||
|
definition in the XML specification.</p>
|
||||||
|
|
||||||
|
</div>
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
<xs:simpleType>
|
||||||
|
<xs:restriction base="xs:NCName">
|
||||||
|
<xs:enumeration value="default"/>
|
||||||
|
<xs:enumeration value="preserve"/>
|
||||||
|
</xs:restriction>
|
||||||
|
</xs:simpleType>
|
||||||
|
</xs:attribute>
|
||||||
|
|
||||||
|
<xs:attribute name="base" type="xs:anyURI"> <xs:annotation>
|
||||||
|
<xs:documentation>
|
||||||
|
<div>
|
||||||
|
|
||||||
|
<h3>base (as an attribute name)</h3>
|
||||||
|
<p>
|
||||||
|
denotes an attribute whose value
|
||||||
|
provides a URI to be used as the base for interpreting any
|
||||||
|
relative URIs in the scope of the element on which it
|
||||||
|
appears; its value is inherited. This name is reserved
|
||||||
|
by virtue of its definition in the XML Base specification.</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
See <a
|
||||||
|
href="http://www.w3.org/TR/xmlbase/">http://www.w3.org/TR/xmlbase/</a>
|
||||||
|
for information about this attribute.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
|
||||||
|
<xs:attribute name="id" type="xs:ID">
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>
|
||||||
|
<div>
|
||||||
|
|
||||||
|
<h3>id (as an attribute name)</h3>
|
||||||
|
<p>
|
||||||
|
denotes an attribute whose value
|
||||||
|
should be interpreted as if declared to be of type ID.
|
||||||
|
This name is reserved by virtue of its definition in the
|
||||||
|
xml:id specification.</p>
|
||||||
|
|
||||||
|
<p>
|
||||||
|
See <a
|
||||||
|
href="http://www.w3.org/TR/xml-id/">http://www.w3.org/TR/xml-id/</a>
|
||||||
|
for information about this attribute.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
</xs:attribute>
|
||||||
|
|
||||||
|
<xs:attributeGroup name="specialAttrs">
|
||||||
|
<xs:attribute ref="xml:base"/>
|
||||||
|
<xs:attribute ref="xml:lang"/>
|
||||||
|
<xs:attribute ref="xml:space"/>
|
||||||
|
<xs:attribute ref="xml:id"/>
|
||||||
|
</xs:attributeGroup>
|
||||||
|
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>
|
||||||
|
<div>
|
||||||
|
|
||||||
|
<h3>Father (in any context at all)</h3>
|
||||||
|
|
||||||
|
<div class="bodytext">
|
||||||
|
<p>
|
||||||
|
denotes Jon Bosak, the chair of
|
||||||
|
the original XML Working Group. This name is reserved by
|
||||||
|
the following decision of the W3C XML Plenary and
|
||||||
|
XML Coordination groups:
|
||||||
|
</p>
|
||||||
|
<blockquote>
|
||||||
|
<p>
|
||||||
|
In appreciation for his vision, leadership and
|
||||||
|
dedication the W3C XML Plenary on this 10th day of
|
||||||
|
February, 2000, reserves for Jon Bosak in perpetuity
|
||||||
|
the XML name "xml:Father".
|
||||||
|
</p>
|
||||||
|
</blockquote>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>
|
||||||
|
<div xml:id="usage" id="usage">
|
||||||
|
<h2><a name="usage">About this schema document</a></h2>
|
||||||
|
|
||||||
|
<div class="bodytext">
|
||||||
|
<p>
|
||||||
|
This schema defines attributes and an attribute group suitable
|
||||||
|
for use by schemas wishing to allow <code>xml:base</code>,
|
||||||
|
<code>xml:lang</code>, <code>xml:space</code> or
|
||||||
|
<code>xml:id</code> attributes on elements they define.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
To enable this, such a schema must import this schema for
|
||||||
|
the XML namespace, e.g. as follows:
|
||||||
|
</p>
|
||||||
|
<pre>
|
||||||
|
<schema . . .>
|
||||||
|
. . .
|
||||||
|
<import namespace="http://www.w3.org/XML/1998/namespace"
|
||||||
|
schemaLocation="http://www.w3.org/2001/xml.xsd"/>
|
||||||
|
</pre>
|
||||||
|
<p>
|
||||||
|
or
|
||||||
|
</p>
|
||||||
|
<pre>
|
||||||
|
<import namespace="http://www.w3.org/XML/1998/namespace"
|
||||||
|
schemaLocation="http://www.w3.org/2009/01/xml.xsd"/>
|
||||||
|
</pre>
|
||||||
|
<p>
|
||||||
|
Subsequently, qualified reference to any of the attributes or the
|
||||||
|
group defined below will have the desired effect, e.g.
|
||||||
|
</p>
|
||||||
|
<pre>
|
||||||
|
<type . . .>
|
||||||
|
. . .
|
||||||
|
<attributeGroup ref="xml:specialAttrs"/>
|
||||||
|
</pre>
|
||||||
|
<p>
|
||||||
|
will define a type which will schema-validate an instance element
|
||||||
|
with any of those attributes.
|
||||||
|
</p>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
|
||||||
|
<xs:annotation>
|
||||||
|
<xs:documentation>
|
||||||
|
<div id="nsversioning" xml:id="nsversioning">
|
||||||
|
<h2><a name="nsversioning">Versioning policy for this schema document</a></h2>
|
||||||
|
<div class="bodytext">
|
||||||
|
<p>
|
||||||
|
In keeping with the XML Schema WG's standard versioning
|
||||||
|
policy, this schema document will persist at
|
||||||
|
<a href="http://www.w3.org/2009/01/xml.xsd">
|
||||||
|
http://www.w3.org/2009/01/xml.xsd</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
At the date of issue it can also be found at
|
||||||
|
<a href="http://www.w3.org/2001/xml.xsd">
|
||||||
|
http://www.w3.org/2001/xml.xsd</a>.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
The schema document at that URI may however change in the future,
|
||||||
|
in order to remain compatible with the latest version of XML
|
||||||
|
Schema itself, or with the XML namespace itself. In other words,
|
||||||
|
if the XML Schema or XML namespaces change, the version of this
|
||||||
|
document at <a href="http://www.w3.org/2001/xml.xsd">
|
||||||
|
http://www.w3.org/2001/xml.xsd
|
||||||
|
</a>
|
||||||
|
will change accordingly; the version at
|
||||||
|
<a href="http://www.w3.org/2009/01/xml.xsd">
|
||||||
|
http://www.w3.org/2009/01/xml.xsd
|
||||||
|
</a>
|
||||||
|
will not change.
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
Previous dated (and unchanging) versions of this schema
|
||||||
|
document are at:
|
||||||
|
</p>
|
||||||
|
<ul>
|
||||||
|
<li><a href="http://www.w3.org/2009/01/xml.xsd">
|
||||||
|
http://www.w3.org/2009/01/xml.xsd</a></li>
|
||||||
|
<li><a href="http://www.w3.org/2007/08/xml.xsd">
|
||||||
|
http://www.w3.org/2007/08/xml.xsd</a></li>
|
||||||
|
<li><a href="http://www.w3.org/2004/10/xml.xsd">
|
||||||
|
http://www.w3.org/2004/10/xml.xsd</a></li>
|
||||||
|
<li><a href="http://www.w3.org/2001/03/xml.xsd">
|
||||||
|
http://www.w3.org/2001/03/xml.xsd</a></li>
|
||||||
|
</ul>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</xs:documentation>
|
||||||
|
</xs:annotation>
|
||||||
|
|
||||||
|
</xs:schema>
|
||||||
|
|
|
@ -0,0 +1,260 @@
|
||||||
|
package ca.uhn.fhir.jpa.cds.example;
|
||||||
|
|
||||||
|
import ca.uhn.fhir.context.FhirContext;
|
||||||
|
import ca.uhn.fhir.model.primitive.IdDt;
|
||||||
|
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 ca.uhn.fhir.rest.server.IResourceProvider;
|
||||||
|
import org.eclipse.jetty.server.Server;
|
||||||
|
import org.eclipse.jetty.webapp.WebAppContext;
|
||||||
|
import org.hl7.fhir.dstu3.model.*;
|
||||||
|
import org.hl7.fhir.instance.model.api.IBaseResource;
|
||||||
|
import org.junit.AfterClass;
|
||||||
|
import org.junit.Assert;
|
||||||
|
import org.junit.BeforeClass;
|
||||||
|
import org.junit.Test;
|
||||||
|
|
||||||
|
import java.io.*;
|
||||||
|
import java.net.HttpURLConnection;
|
||||||
|
import java.net.ServerSocket;
|
||||||
|
import java.net.URL;
|
||||||
|
import java.nio.file.Paths;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Collection;
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Scanner;
|
||||||
|
|
||||||
|
public class CdsExampleTests {
|
||||||
|
private static IGenericClient ourClient;
|
||||||
|
private static FhirContext ourCtx = FhirContext.forDstu3();
|
||||||
|
|
||||||
|
protected static int ourPort;
|
||||||
|
|
||||||
|
private static Server ourServer;
|
||||||
|
private static String ourServerBase;
|
||||||
|
|
||||||
|
private static Collection<IResourceProvider> providers;
|
||||||
|
|
||||||
|
@BeforeClass
|
||||||
|
public static void beforeClass() throws Exception {
|
||||||
|
|
||||||
|
String path = Paths.get("").toAbsolutePath().toString();
|
||||||
|
|
||||||
|
ourPort = RandomServerPortProvider.findFreePort();
|
||||||
|
ourServer = new Server(ourPort);
|
||||||
|
|
||||||
|
WebAppContext webAppContext = new WebAppContext();
|
||||||
|
webAppContext.setContextPath("/hapi-fhir-jpaserver-cds");
|
||||||
|
webAppContext.setDescriptor(path + "/src/main/webapp/WEB-INF/web.xml");
|
||||||
|
webAppContext.setResourceBase(path + "/target/hapi-fhir-jpaserver-cds");
|
||||||
|
webAppContext.setParentLoaderPriority(true);
|
||||||
|
|
||||||
|
ourServer.setHandler(webAppContext);
|
||||||
|
ourServer.start();
|
||||||
|
|
||||||
|
ourCtx.getRestfulClientFactory().setServerValidationMode(ServerValidationModeEnum.NEVER);
|
||||||
|
ourCtx.getRestfulClientFactory().setSocketTimeout(1200 * 1000);
|
||||||
|
ourServerBase = "http://localhost:" + ourPort + "/hapi-fhir-jpaserver-cds/baseDstu3";
|
||||||
|
ourClient = ourCtx.newRestfulGenericClient(ourServerBase);
|
||||||
|
ourClient.registerInterceptor(new LoggingInterceptor(true));
|
||||||
|
|
||||||
|
// Load test data
|
||||||
|
// Normally, I would use a transaction bundle, but issues with the random ports prevents that...
|
||||||
|
// So, doing it the old-fashioned way =)
|
||||||
|
|
||||||
|
// General
|
||||||
|
putResource("general-practitioner.json", "Practitioner-12208");
|
||||||
|
putResource("general-patient.json", "Patient-12214");
|
||||||
|
putResource("general-fhirhelpers-3.json", "FHIRHelpers");
|
||||||
|
}
|
||||||
|
|
||||||
|
@AfterClass
|
||||||
|
public static void afterClass() throws Exception {
|
||||||
|
ourServer.stop();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static void putResource(String resourceFileName, String id) {
|
||||||
|
InputStream is = CdsExampleTests.class.getResourceAsStream(resourceFileName);
|
||||||
|
Scanner scanner = new Scanner(is).useDelimiter("\\A");
|
||||||
|
String json = scanner.hasNext() ? scanner.next() : "";
|
||||||
|
IBaseResource resource = ourCtx.newJsonParser().parseResource(json);
|
||||||
|
ourClient.update(id, resource);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void MeasureProcessingTest() {
|
||||||
|
putResource("measure-processing-library.json", "col-logic");
|
||||||
|
putResource("measure-processing-measure.json", "col");
|
||||||
|
putResource("measure-processing-procedure.json", "Procedure-9");
|
||||||
|
putResource("measure-processing-condition.json", "Condition-13");
|
||||||
|
putResource("measure-processing-valueset-1.json", "2.16.840.1.113883.3.464.1003.108.11.1001");
|
||||||
|
putResource("measure-processing-valueset-2.json", "2.16.840.1.113883.3.464.1003.198.12.1019");
|
||||||
|
putResource("measure-processing-valueset-3.json", "2.16.840.1.113883.3.464.1003.108.12.1020");
|
||||||
|
putResource("measure-processing-valueset-4.json", "2.16.840.1.113883.3.464.1003.198.12.1010");
|
||||||
|
putResource("measure-processing-valueset-5.json", "2.16.840.1.113883.3.464.1003.198.12.1011");
|
||||||
|
|
||||||
|
Parameters inParams = new Parameters();
|
||||||
|
inParams.addParameter().setName("patient").setValue(new StringType("Patient-12214"));
|
||||||
|
inParams.addParameter().setName("startPeriod").setValue(new DateType("2001-01-01"));
|
||||||
|
inParams.addParameter().setName("endPeriod").setValue(new DateType("2015-03-01"));
|
||||||
|
|
||||||
|
Parameters outParams = ourClient
|
||||||
|
.operation()
|
||||||
|
.onInstance(new IdDt("Measure", "col"))
|
||||||
|
.named("$evaluate")
|
||||||
|
.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.assertTrue(report.getEvaluatedResources() != null);
|
||||||
|
|
||||||
|
for (MeasureReport.MeasureReportGroupComponent group : report.getGroup()) {
|
||||||
|
if (group.getIdentifier().getValue().equals("history-of-colorectal-cancer")) {
|
||||||
|
Assert.assertTrue(group.getPopulation().get(0).getCount() > 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (group.getIdentifier().getValue().equals("history-of-total-colectomy")) {
|
||||||
|
Assert.assertTrue(group.getPopulation().get(0).getCount() > 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void PlanDefinitionApplyTest() throws ClassNotFoundException {
|
||||||
|
putResource("plandefinition-apply-library.json", "plandefinitionApplyTest");
|
||||||
|
putResource("plandefinition-apply.json", "apply-example");
|
||||||
|
|
||||||
|
Parameters inParams = new Parameters();
|
||||||
|
inParams.addParameter().setName("patient").setValue(new StringType("Patient-12214"));
|
||||||
|
|
||||||
|
Parameters outParams = ourClient
|
||||||
|
.operation()
|
||||||
|
.onInstance(new IdDt("PlanDefinition", "apply-example"))
|
||||||
|
.named("$apply")
|
||||||
|
.withParameters(inParams)
|
||||||
|
.useHttpGet()
|
||||||
|
.execute();
|
||||||
|
|
||||||
|
List<Parameters.ParametersParameterComponent> response = outParams.getParameter();
|
||||||
|
|
||||||
|
Assert.assertTrue(!response.isEmpty());
|
||||||
|
|
||||||
|
Resource resource = response.get(0).getResource();
|
||||||
|
|
||||||
|
Assert.assertTrue(resource instanceof CarePlan);
|
||||||
|
|
||||||
|
CarePlan carePlan = (CarePlan) resource;
|
||||||
|
|
||||||
|
Assert.assertTrue(carePlan.getTitle().equals("This is a dynamic definition!"));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void ActivityDefinitionApplyTest() {
|
||||||
|
putResource("activitydefinition-apply-library.json", "activityDefinitionApplyTest");
|
||||||
|
putResource("activitydefinition-apply.json", "ad-apply-example");
|
||||||
|
|
||||||
|
Parameters inParams = new Parameters();
|
||||||
|
inParams.addParameter().setName("patient").setValue(new StringType("Patient-12214"));
|
||||||
|
|
||||||
|
Parameters outParams = ourClient
|
||||||
|
.operation()
|
||||||
|
.onInstance(new IdDt("ActivityDefinition", "ad-apply-example"))
|
||||||
|
.named("$apply")
|
||||||
|
.withParameters(inParams)
|
||||||
|
.useHttpGet()
|
||||||
|
.execute();
|
||||||
|
|
||||||
|
List<Parameters.ParametersParameterComponent> response = outParams.getParameter();
|
||||||
|
|
||||||
|
Assert.assertTrue(!response.isEmpty());
|
||||||
|
|
||||||
|
Resource resource = response.get(0).getResource();
|
||||||
|
|
||||||
|
Assert.assertTrue(resource instanceof ProcedureRequest);
|
||||||
|
|
||||||
|
ProcedureRequest procedureRequest = (ProcedureRequest) resource;
|
||||||
|
|
||||||
|
Assert.assertTrue(procedureRequest.getDoNotPerform());
|
||||||
|
}
|
||||||
|
|
||||||
|
//@Test
|
||||||
|
public void CdsHooksPatientViewTest() throws IOException {
|
||||||
|
putResource("cds-bcs-library.json", "patient-view");
|
||||||
|
putResource("cds-bcs-patient.json", "Patient-6532");
|
||||||
|
putResource("cds-bcs-plandefinition.json", "bcs-decision-support");
|
||||||
|
putResource("cds-bcs-activitydefinition.json", "mammogram-service-request");
|
||||||
|
|
||||||
|
// Get the CDS Hooks request
|
||||||
|
InputStream is = this.getClass().getResourceAsStream("cds-bcs-request.json");
|
||||||
|
Scanner scanner = new Scanner(is).useDelimiter("\\A");
|
||||||
|
String cdsHooksRequest = scanner.hasNext() ? scanner.next() : "";
|
||||||
|
byte[] data = cdsHooksRequest.getBytes("UTF-8");
|
||||||
|
|
||||||
|
URL url = new URL("http://localhost:" + ourPort + "/hapi-fhir-jpaserver-cds/cds-services/bcs-decision-support");
|
||||||
|
|
||||||
|
HttpURLConnection conn = (HttpURLConnection) url.openConnection();
|
||||||
|
conn.setRequestMethod("POST");
|
||||||
|
conn.setRequestProperty("Content-Type", "application/json");
|
||||||
|
conn.setRequestProperty("Content-Length", String.valueOf(data.length));
|
||||||
|
conn.setDoOutput(true);
|
||||||
|
conn.getOutputStream().write(data);
|
||||||
|
|
||||||
|
StringBuilder response = new StringBuilder();
|
||||||
|
try(Reader in = new BufferedReader(new InputStreamReader(conn.getInputStream(), "UTF-8")))
|
||||||
|
{
|
||||||
|
for (int i; (i = in.read()) >= 0;) {
|
||||||
|
response.append((char) i);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
String expected = "{\n" +
|
||||||
|
" \"cards\": [\n" +
|
||||||
|
" {\n" +
|
||||||
|
" \"summary\": \"High risk for opioid overdose - taper now\",\n" +
|
||||||
|
" \"indicator\": \"warning\",\n" +
|
||||||
|
" \"detail\": \"Total morphine milligram equivalent (MME) is 20200.700mg/d. Taper to less than 50.\"\n" +
|
||||||
|
" }\n" +
|
||||||
|
" ]\n" +
|
||||||
|
"}";
|
||||||
|
|
||||||
|
Assert.assertTrue(
|
||||||
|
response.toString().replaceAll("\\s+", "")
|
||||||
|
.equals(expected.replaceAll("\\s+", ""))
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
class RandomServerPortProvider {
|
||||||
|
|
||||||
|
private static List<Integer> ourPorts = new ArrayList<>();
|
||||||
|
|
||||||
|
static int findFreePort() {
|
||||||
|
ServerSocket server;
|
||||||
|
try {
|
||||||
|
server = new ServerSocket(0);
|
||||||
|
int port = server.getLocalPort();
|
||||||
|
ourPorts.add(port);
|
||||||
|
server.close();
|
||||||
|
Thread.sleep(500);
|
||||||
|
return port;
|
||||||
|
} catch (IOException | InterruptedException e) {
|
||||||
|
throw new Error(e);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
public static List<Integer> list() {
|
||||||
|
return ourPorts;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
|
@ -0,0 +1,19 @@
|
||||||
|
{
|
||||||
|
"resourceType": "Library",
|
||||||
|
"id": "activityDefinitionApplyTest",
|
||||||
|
"version": "1.0",
|
||||||
|
"status": "draft",
|
||||||
|
"type": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"code": "logic-library"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"content": [
|
||||||
|
{
|
||||||
|
"contentType": "text/cql",
|
||||||
|
"data": "bGlicmFyeSBhY3Rpdml0eURlZmluaXRpb25BcHBseVRlc3QgdmVyc2lvbiAnMS4wJw0KDQpkZWZpbmUgIkR5bmFtaWMgZG9Ob3RQZXJmb3JtIFNldHRpbmciOg0KICAgIHRydWU="
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,32 @@
|
||||||
|
{
|
||||||
|
"resourceType": "ActivityDefinition",
|
||||||
|
"id": "ad-apply-example",
|
||||||
|
"text": {
|
||||||
|
"status": "generated",
|
||||||
|
"div": "<div xmlns=\"http://www.w3.org/1999/xhtml\">ActivityDefinition $apply operation example.</div>"
|
||||||
|
},
|
||||||
|
"status": "draft",
|
||||||
|
"description": "This is a test.",
|
||||||
|
"library": [
|
||||||
|
{
|
||||||
|
"reference": "Library/activityDefinitionApplyTest"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"kind": "ProcedureRequest",
|
||||||
|
"code": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"code": "303653007",
|
||||||
|
"display": "Computed tomography of head"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"dynamicValue": [
|
||||||
|
{
|
||||||
|
"description": "Set ProcedureRequest doNotPerform property",
|
||||||
|
"path": "doNotPerform",
|
||||||
|
"expression": "activityDefinitionApplyTest.\"Dynamic doNotPerform Setting\""
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,37 @@
|
||||||
|
{
|
||||||
|
"resourceType": "ActivityDefinition",
|
||||||
|
"id": "mammogram-service-request",
|
||||||
|
"text": {
|
||||||
|
"status": "generated",
|
||||||
|
"div": "<div xmlns=\"http://www.w3.org/1999/xhtml\">Create ServiceRequest for Mammogrm Procedure</div>"
|
||||||
|
},
|
||||||
|
"status": "draft",
|
||||||
|
"description": "Create ServiceRequest for Mammogram Procedure",
|
||||||
|
"kind": "ProcedureRequest",
|
||||||
|
"code": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "77056",
|
||||||
|
"display": "Mammography; bilateral"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"timingTiming": {
|
||||||
|
"_event": [
|
||||||
|
{
|
||||||
|
"extension": [
|
||||||
|
{
|
||||||
|
"url": "http://hl7.org/fhir/StructureDefinition/cqif-basic-cqlExpression",
|
||||||
|
"valueString": "Now()"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"participant": [
|
||||||
|
{
|
||||||
|
"type": "practitioner"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,96 @@
|
||||||
|
{
|
||||||
|
"resourceType": "Patient",
|
||||||
|
"id": "Patient-6532",
|
||||||
|
"extension": [
|
||||||
|
{
|
||||||
|
"url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-race",
|
||||||
|
"valueCodeableConcept": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://hl7.org/fhir/v3/Race",
|
||||||
|
"code": "2106-3",
|
||||||
|
"display": "White"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-ethnicity",
|
||||||
|
"valueCodeableConcept": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://hl7.org/fhir/v3/Ethnicity",
|
||||||
|
"code": "2186-5",
|
||||||
|
"display": "Not Hispanic or Latino"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "http://hl7.org/fhir/us/core/StructureDefinition/us-core-religion",
|
||||||
|
"valueCodeableConcept": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://hl7.org/fhir/v3/ReligiousAffiliation",
|
||||||
|
"code": "1041",
|
||||||
|
"display": "Roman Catholic Church"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"identifier": [
|
||||||
|
{
|
||||||
|
"use": "official",
|
||||||
|
"type": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://hl7.org/fhir/identifier-type",
|
||||||
|
"code": "SB",
|
||||||
|
"display": "Social Beneficiary Identifier"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"text": "US Social Security Number"
|
||||||
|
},
|
||||||
|
"system": "http://hl7.org/fhir/sid/us-ssn",
|
||||||
|
"value": "000006532"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"active": true,
|
||||||
|
"name": [
|
||||||
|
{
|
||||||
|
"family": "Brandt",
|
||||||
|
"given": [
|
||||||
|
"Edith",
|
||||||
|
"Elaine"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"telecom": [
|
||||||
|
{
|
||||||
|
"system": "phone",
|
||||||
|
"value": "616-555-1082",
|
||||||
|
"use": "home"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "phone",
|
||||||
|
"value": "616-555-1211",
|
||||||
|
"use": "mobile"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gender": "female",
|
||||||
|
"birthDate": "1987-07-16",
|
||||||
|
"address": [
|
||||||
|
{
|
||||||
|
"use": "home",
|
||||||
|
"type": "postal",
|
||||||
|
"line": [
|
||||||
|
"893 N Elm Drive"
|
||||||
|
],
|
||||||
|
"city": "Grand Rapids",
|
||||||
|
"district": "Kent County",
|
||||||
|
"state": "MI",
|
||||||
|
"postalCode": "49504"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,33 @@
|
||||||
|
{
|
||||||
|
"resourceType": "PlanDefinition",
|
||||||
|
"id": "bcs-decision-support",
|
||||||
|
"status": "draft",
|
||||||
|
"library": {
|
||||||
|
"reference": "Library/patient-view"
|
||||||
|
},
|
||||||
|
"action": [
|
||||||
|
{
|
||||||
|
"condition": [
|
||||||
|
{
|
||||||
|
"kind": "applicability",
|
||||||
|
"language": "text/cql",
|
||||||
|
"expression": "Does Patient Qualify?"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"action": [
|
||||||
|
{
|
||||||
|
"condition": [
|
||||||
|
{
|
||||||
|
"kind": "applicability",
|
||||||
|
"language": "text/cql",
|
||||||
|
"expression": "Needs Mammogram"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"definition": {
|
||||||
|
"reference": "ActivityDefinition/mammogram-service-request"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,9 @@
|
||||||
|
{
|
||||||
|
"hookInstance": "d1577c69-dfbe-44ad-ba6d-3e05e953b2ea",
|
||||||
|
"fhirServer": "https://sb-fhir-dstu2.smarthealthit.org/smartdstu2/open",
|
||||||
|
"hook": "patient-view",
|
||||||
|
"user": "Practitioner/example",
|
||||||
|
"context": [],
|
||||||
|
"patient": "Patient/Patient-6535",
|
||||||
|
"prefetch": {}
|
||||||
|
}
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,114 @@
|
||||||
|
{
|
||||||
|
"resourceType": "Patient",
|
||||||
|
"id": "Patient-12214",
|
||||||
|
"meta": {
|
||||||
|
"versionId": "1",
|
||||||
|
"lastUpdated": "2017-07-17T16:34:10.814+00:00"
|
||||||
|
},
|
||||||
|
"text": {
|
||||||
|
"status": "generated",
|
||||||
|
"div": "<div xmlns=\"http://www.w3.org/1999/xhtml\"><div class=\"hapiHeaderText\">2 <b>N GERIATRIC </b>Jr</div><table class=\"hapiPropertyTable\"><tbody><tr><td>Identifier</td><td>7f3672feb3b54789953e012d8aef5246</td></tr><tr><td>Address</td><td><span>202 Burlington Rd. </span><br/><span>Bedford </span><span>MA </span></td></tr><tr><td>Date of birth</td><td><span>07 May 1946</span></td></tr></tbody></table></div>"
|
||||||
|
},
|
||||||
|
"extension": [
|
||||||
|
{
|
||||||
|
"url": "http://hl7.org/fhir/StructureDefinition/us-core-race",
|
||||||
|
"valueCodeableConcept": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://hl7.org/fhir/v3/Race",
|
||||||
|
"code": "2106-3",
|
||||||
|
"display": "White"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "http://hl7.org/fhir/StructureDefinition/us-core-ethnicity",
|
||||||
|
"valueCodeableConcept": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://hl7.org/fhir/v3/Ethnicity",
|
||||||
|
"code": "2186-5",
|
||||||
|
"display": "Not Hispanic or Latino"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "http://hl7.org/fhir/StructureDefinition/us-core-religion",
|
||||||
|
"valueCodeableConcept": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://hl7.org/fhir/v3/ReligiousAffiliation",
|
||||||
|
"code": "1007",
|
||||||
|
"display": "Atheism"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"identifier": [
|
||||||
|
{
|
||||||
|
"use": "official",
|
||||||
|
"type": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://hl7.org/fhir/identifier-type",
|
||||||
|
"code": "SB",
|
||||||
|
"display": "Social Beneficiary Identifier"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"text": "Michigan Common Key Service Identifier"
|
||||||
|
},
|
||||||
|
"system": "http://mihin.org/fhir/cks",
|
||||||
|
"value": "7f3672feb3b54789953e012d8aef5246"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"active": false,
|
||||||
|
"name": [
|
||||||
|
{
|
||||||
|
"family": "N Geriatric",
|
||||||
|
"given": [
|
||||||
|
"2"
|
||||||
|
],
|
||||||
|
"suffix": [
|
||||||
|
"Jr"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"telecom": [
|
||||||
|
{
|
||||||
|
"system": "phone",
|
||||||
|
"value": "586-555-7576",
|
||||||
|
"use": "home"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "phone",
|
||||||
|
"value": "586-555-0297",
|
||||||
|
"use": "work"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"extension": [
|
||||||
|
{
|
||||||
|
"url": "http://hl7.org/fhir/StructureDefinition/us-core-direct",
|
||||||
|
"valueBoolean": true
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"system": "email",
|
||||||
|
"value": "2.N.Geriatric@direct.mihintest.org",
|
||||||
|
"use": "home"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gender": "male",
|
||||||
|
"birthDate": "1946-05-07",
|
||||||
|
"address": [
|
||||||
|
{
|
||||||
|
"line": [
|
||||||
|
"202 Burlington Rd."
|
||||||
|
],
|
||||||
|
"city": "Bedford",
|
||||||
|
"state": "MA",
|
||||||
|
"postalCode": "01730"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,173 @@
|
||||||
|
{
|
||||||
|
"resourceType": "Practitioner",
|
||||||
|
"id": "Practitioner-12208",
|
||||||
|
"meta": {
|
||||||
|
"versionId": "1",
|
||||||
|
"lastUpdated": "2017-07-17T16:34:10.814+00:00"
|
||||||
|
},
|
||||||
|
"extension": [
|
||||||
|
{
|
||||||
|
"url": "http://hl7.org/fhir/StructureDefinition/us-core-race",
|
||||||
|
"valueCodeableConcept": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://hl7.org/fhir/v3/Race",
|
||||||
|
"code": "2056-0",
|
||||||
|
"display": "Black"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "http://hl7.org/fhir/StructureDefinition/us-core-ethnicity",
|
||||||
|
"valueCodeableConcept": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://hl7.org/fhir/v3/Ethnicity",
|
||||||
|
"code": "2186-5",
|
||||||
|
"display": "Not Hispanic or Latino"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "http://gov.onc.fhir.extension.taxonomy",
|
||||||
|
"valueCodeableConcept": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://org.nucc.taxonomy",
|
||||||
|
"code": "208D00000X",
|
||||||
|
"display": "General Practice"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "http://org.mihin.fhir.extension.electronic-service",
|
||||||
|
"valueReference": {
|
||||||
|
"reference": "ElectronicService/ElectronicService-2415",
|
||||||
|
"display": "Jay.M.Sawyer@direct.mihintest.org"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"identifier": [
|
||||||
|
{
|
||||||
|
"use": "official",
|
||||||
|
"type": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://hl7.org/fhir/identifier-type",
|
||||||
|
"code": "SB",
|
||||||
|
"display": "Social Beneficiary Identifier"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"text": "US Social Security Number"
|
||||||
|
},
|
||||||
|
"system": "http://hl7.org/fhir/sid/us-ssn",
|
||||||
|
"value": "000012208"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"use": "official",
|
||||||
|
"type": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://hl7.org/fhir/v2/0203",
|
||||||
|
"code": "PRN",
|
||||||
|
"display": "Provider number"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"text": "US National Provider Identifier"
|
||||||
|
},
|
||||||
|
"system": "http://hl7.org/fhir/sid/us-npi",
|
||||||
|
"value": "9999912208"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"use": "official",
|
||||||
|
"type": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://hl7.org/fhir/identifier-type",
|
||||||
|
"code": "SB",
|
||||||
|
"display": "Social Beneficiary Identifier"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"text": "Michigan Common Key Service Identifier"
|
||||||
|
},
|
||||||
|
"system": "http://mihin.org/fhir/cks",
|
||||||
|
"value": "c6cc1bbaf5ea41c5a0d267e3a655def1"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"name": [
|
||||||
|
{
|
||||||
|
"family": "Sawyer",
|
||||||
|
"given": [
|
||||||
|
"Jay",
|
||||||
|
"McCann"
|
||||||
|
],
|
||||||
|
"suffix": [
|
||||||
|
"MD"
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"telecom": [
|
||||||
|
{
|
||||||
|
"system": "phone",
|
||||||
|
"value": "989-555-8443",
|
||||||
|
"use": "home"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "phone",
|
||||||
|
"value": "989-555-5764",
|
||||||
|
"use": "work"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"address": [
|
||||||
|
{
|
||||||
|
"line": [
|
||||||
|
"77 S Pine Place"
|
||||||
|
],
|
||||||
|
"city": "Beaverton",
|
||||||
|
"state": "MI",
|
||||||
|
"postalCode": "48612"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"gender": "male",
|
||||||
|
"birthDate": "1970-08-07",
|
||||||
|
"qualification": [
|
||||||
|
{
|
||||||
|
"identifier": [
|
||||||
|
{
|
||||||
|
"use": "official",
|
||||||
|
"type": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://hl7.org/fhir/v2/0203",
|
||||||
|
"code": "MD",
|
||||||
|
"display": "Medical License number"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"text": "Michigan Medical License"
|
||||||
|
},
|
||||||
|
"system": "http://michigan.gov/fhir/medical-license",
|
||||||
|
"value": "LARA-12208",
|
||||||
|
"assigner": {
|
||||||
|
"display": "State of Michigan"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"code": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://michigan.gov/lara/license-type",
|
||||||
|
"code": "4305",
|
||||||
|
"display": "Medical Doctor"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"issuer": {
|
||||||
|
"reference": "Organization/Organization-2000",
|
||||||
|
"display": "Michigan Department of Licensing and Regulatory Affairs"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,319 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<library xmlns="urn:hl7-org:elm:r1" xmlns:t="urn:hl7-org:elm-types:r1" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:fhir="http://hl7.org/fhir" xmlns:a="urn:hl7-org:cql-annotations:r1">
|
||||||
|
<identifier id="COL" version="1"/>
|
||||||
|
<schemaIdentifier id="urn:hl7-org:elm" version="r1"/>
|
||||||
|
<usings>
|
||||||
|
<def localIdentifier="System" uri="urn:hl7-org:elm-types:r1"/>
|
||||||
|
<def localIdentifier="FHIR" uri="http://hl7.org/fhir" version="1.6"/>
|
||||||
|
</usings>
|
||||||
|
<parameters>
|
||||||
|
<def name="MeasurementPeriod" accessLevel="Public">
|
||||||
|
<parameterTypeSpecifier xsi:type="IntervalTypeSpecifier">
|
||||||
|
<pointType name="t:DateTime" xsi:type="NamedTypeSpecifier"/>
|
||||||
|
</parameterTypeSpecifier>
|
||||||
|
</def>
|
||||||
|
</parameters>
|
||||||
|
<codeSystems>
|
||||||
|
<def name="CPT" id="urn:oid:2.16.840.1.113883.6.12" accessLevel="Public"/>
|
||||||
|
<def name="SNOMED-CT" id="urn:oid:2.16.840.1.113883.6.96" accessLevel="Public"/>
|
||||||
|
<def name="LOINC" id="http://loinc.org" accessLevel="Public"/>
|
||||||
|
</codeSystems>
|
||||||
|
<valueSets>
|
||||||
|
<def name="Malignant Neoplasm of Colon" id="2.16.840.1.113883.3.464.1003.108.11.1001" accessLevel="Public"/>
|
||||||
|
<def name="Total Colectomy" id="2.16.840.1.113883.3.464.1003.198.12.1019" accessLevel="Public"/>
|
||||||
|
<def name="Colonoscopy" id="2.16.840.1.113883.3.464.1003.108.12.1020" accessLevel="Public"/>
|
||||||
|
<def name="Flexible Sigmoidoscopy" id="2.16.840.1.113883.3.464.1003.198.12.1010" accessLevel="Public"/>
|
||||||
|
<def name="Fecal Occult Blood Test (FOBT)" id="2.16.840.1.113883.3.464.1003.198.12.1011" accessLevel="Public"/>
|
||||||
|
</valueSets>
|
||||||
|
<statements>
|
||||||
|
<def name="Patient" context="Patient">
|
||||||
|
<expression xsi:type="SingletonFrom">
|
||||||
|
<operand dataType="fhir:Patient" xsi:type="Retrieve"/>
|
||||||
|
</expression>
|
||||||
|
</def>
|
||||||
|
<def name="Lookback Interval One Year" context="Patient" accessLevel="Public">
|
||||||
|
<expression lowClosed="true" highClosed="true" xsi:type="Interval">
|
||||||
|
<low xsi:type="Subtract">
|
||||||
|
<operand xsi:type="Start">
|
||||||
|
<operand name="MeasurementPeriod" xsi:type="ParameterRef"/>
|
||||||
|
</operand>
|
||||||
|
<operand value="1" unit="years" xsi:type="Quantity"/>
|
||||||
|
</low>
|
||||||
|
<high xsi:type="End">
|
||||||
|
<operand name="MeasurementPeriod" xsi:type="ParameterRef"/>
|
||||||
|
</high>
|
||||||
|
</expression>
|
||||||
|
</def>
|
||||||
|
<def name="Lookback Interval Five Years" context="Patient" accessLevel="Public">
|
||||||
|
<expression lowClosed="true" highClosed="true" xsi:type="Interval">
|
||||||
|
<low xsi:type="Subtract">
|
||||||
|
<operand xsi:type="Start">
|
||||||
|
<operand name="MeasurementPeriod" xsi:type="ParameterRef"/>
|
||||||
|
</operand>
|
||||||
|
<operand value="5" unit="years" xsi:type="Quantity"/>
|
||||||
|
</low>
|
||||||
|
<high xsi:type="End">
|
||||||
|
<operand name="MeasurementPeriod" xsi:type="ParameterRef"/>
|
||||||
|
</high>
|
||||||
|
</expression>
|
||||||
|
</def>
|
||||||
|
<def name="Lookback Interval Ten Years" context="Patient" accessLevel="Public">
|
||||||
|
<expression lowClosed="true" highClosed="true" xsi:type="Interval">
|
||||||
|
<low xsi:type="Subtract">
|
||||||
|
<operand xsi:type="Start">
|
||||||
|
<operand name="MeasurementPeriod" xsi:type="ParameterRef"/>
|
||||||
|
</operand>
|
||||||
|
<operand value="10" unit="years" xsi:type="Quantity"/>
|
||||||
|
</low>
|
||||||
|
<high xsi:type="End">
|
||||||
|
<operand name="MeasurementPeriod" xsi:type="ParameterRef"/>
|
||||||
|
</high>
|
||||||
|
</expression>
|
||||||
|
</def>
|
||||||
|
<def name="In Demographic" context="Patient" accessLevel="Public">
|
||||||
|
<expression xsi:type="GreaterOrEqual">
|
||||||
|
<operand precision="Year" xsi:type="CalculateAgeAt">
|
||||||
|
<operand path="birthDate.value" xsi:type="Property">
|
||||||
|
<source name="Patient" xsi:type="ExpressionRef"/>
|
||||||
|
</operand>
|
||||||
|
<operand xsi:type="Start">
|
||||||
|
<operand name="MeasurementPeriod" xsi:type="ParameterRef"/>
|
||||||
|
</operand>
|
||||||
|
</operand>
|
||||||
|
<operand valueType="t:Integer" value="50" xsi:type="Literal"/>
|
||||||
|
</expression>
|
||||||
|
</def>
|
||||||
|
<def name="Hx Colorectal Cancer" context="Patient" accessLevel="Public">
|
||||||
|
<expression xsi:type="Query">
|
||||||
|
<source alias="C">
|
||||||
|
<expression dataType="fhir:Condition" codeProperty="code" xsi:type="Retrieve">
|
||||||
|
<codes name="Malignant Neoplasm of Colon" xsi:type="ValueSetRef"/>
|
||||||
|
</expression>
|
||||||
|
</source>
|
||||||
|
<where xsi:type="And">
|
||||||
|
<operand xsi:type="Equal">
|
||||||
|
<operand path="value" xsi:type="Property">
|
||||||
|
<source path="clinicalStatus" scope="C" xsi:type="Property"/>
|
||||||
|
</operand>
|
||||||
|
<operand valueType="t:String" value="active" xsi:type="Literal"/>
|
||||||
|
</operand>
|
||||||
|
<operand xsi:type="Equal">
|
||||||
|
<operand path="value" xsi:type="Property">
|
||||||
|
<source path="verificationStatus" scope="C" xsi:type="Property"/>
|
||||||
|
</operand>
|
||||||
|
<operand valueType="t:String" value="confirmed" xsi:type="Literal"/>
|
||||||
|
</operand>
|
||||||
|
</where>
|
||||||
|
</expression>
|
||||||
|
</def>
|
||||||
|
<def name="Hx Total Colectomy" context="Patient" accessLevel="Public">
|
||||||
|
<expression xsi:type="Query">
|
||||||
|
<source alias="T">
|
||||||
|
<expression dataType="fhir:Procedure" codeProperty="code" xsi:type="Retrieve">
|
||||||
|
<codes name="Total Colectomy" xsi:type="ValueSetRef"/>
|
||||||
|
</expression>
|
||||||
|
</source>
|
||||||
|
<where xsi:type="Equal">
|
||||||
|
<operand path="value" xsi:type="Property">
|
||||||
|
<source path="status" scope="T" xsi:type="Property"/>
|
||||||
|
</operand>
|
||||||
|
<operand valueType="t:String" value="completed" xsi:type="Literal"/>
|
||||||
|
</where>
|
||||||
|
</expression>
|
||||||
|
</def>
|
||||||
|
<def name="Colonoscopy Performed" context="Patient" accessLevel="Public">
|
||||||
|
<expression xsi:type="Query">
|
||||||
|
<source alias="C">
|
||||||
|
<expression dataType="fhir:Procedure" codeProperty="code" xsi:type="Retrieve">
|
||||||
|
<codes name="Colonoscopy" xsi:type="ValueSetRef"/>
|
||||||
|
</expression>
|
||||||
|
</source>
|
||||||
|
<where xsi:type="And">
|
||||||
|
<operand xsi:type="Equal">
|
||||||
|
<operand path="value" xsi:type="Property">
|
||||||
|
<source path="status" scope="C" xsi:type="Property"/>
|
||||||
|
</operand>
|
||||||
|
<operand valueType="t:String" value="completed" xsi:type="Literal"/>
|
||||||
|
</operand>
|
||||||
|
<operand xsi:type="In">
|
||||||
|
<operand path="value" xsi:type="Property">
|
||||||
|
<source path="end" xsi:type="Property">
|
||||||
|
<source path="performedPeriod" scope="C" xsi:type="Property"/>
|
||||||
|
</source>
|
||||||
|
</operand>
|
||||||
|
<operand name="Lookback Interval Ten Years" xsi:type="ExpressionRef"/>
|
||||||
|
</operand>
|
||||||
|
</where>
|
||||||
|
</expression>
|
||||||
|
</def>
|
||||||
|
<def name="Colonoscopy Results" context="Patient" accessLevel="Public">
|
||||||
|
<expression xsi:type="Query">
|
||||||
|
<source alias="C">
|
||||||
|
<expression dataType="fhir:Observation" codeProperty="code" xsi:type="Retrieve">
|
||||||
|
<codes name="Colonoscopy" xsi:type="ValueSetRef"/>
|
||||||
|
</expression>
|
||||||
|
</source>
|
||||||
|
<where xsi:type="And">
|
||||||
|
<operand xsi:type="Equal">
|
||||||
|
<operand path="value" xsi:type="Property">
|
||||||
|
<source path="status" scope="C" xsi:type="Property"/>
|
||||||
|
</operand>
|
||||||
|
<operand valueType="t:String" value="final" xsi:type="Literal"/>
|
||||||
|
</operand>
|
||||||
|
<operand xsi:type="In">
|
||||||
|
<operand path="value" xsi:type="Property">
|
||||||
|
<source path="effectiveDateTime" scope="C" xsi:type="Property"/>
|
||||||
|
</operand>
|
||||||
|
<operand name="Lookback Interval Ten Years" xsi:type="ExpressionRef"/>
|
||||||
|
</operand>
|
||||||
|
</where>
|
||||||
|
</expression>
|
||||||
|
</def>
|
||||||
|
<def name="Sigmoidoscopy Procedure" context="Patient" accessLevel="Public">
|
||||||
|
<expression xsi:type="Query">
|
||||||
|
<source alias="S">
|
||||||
|
<expression dataType="fhir:Procedure" codeProperty="code" xsi:type="Retrieve">
|
||||||
|
<codes name="Flexible Sigmoidoscopy" xsi:type="ValueSetRef"/>
|
||||||
|
</expression>
|
||||||
|
</source>
|
||||||
|
<where xsi:type="And">
|
||||||
|
<operand xsi:type="Equal">
|
||||||
|
<operand path="value" xsi:type="Property">
|
||||||
|
<source path="status" scope="S" xsi:type="Property"/>
|
||||||
|
</operand>
|
||||||
|
<operand valueType="t:String" value="completed" xsi:type="Literal"/>
|
||||||
|
</operand>
|
||||||
|
<operand xsi:type="In">
|
||||||
|
<operand path="value" xsi:type="Property">
|
||||||
|
<source path="end" xsi:type="Property">
|
||||||
|
<source path="performedPeriod" scope="S" xsi:type="Property"/>
|
||||||
|
</source>
|
||||||
|
</operand>
|
||||||
|
<operand name="Lookback Interval Five Years" xsi:type="ExpressionRef"/>
|
||||||
|
</operand>
|
||||||
|
</where>
|
||||||
|
</expression>
|
||||||
|
</def>
|
||||||
|
<def name="Sigmoidoscopy Observation" context="Patient" accessLevel="Public">
|
||||||
|
<expression xsi:type="Query">
|
||||||
|
<source alias="O">
|
||||||
|
<expression dataType="fhir:Observation" codeProperty="code" xsi:type="Retrieve">
|
||||||
|
<codes name="Flexible Sigmoidoscopy" xsi:type="ValueSetRef"/>
|
||||||
|
</expression>
|
||||||
|
</source>
|
||||||
|
<where xsi:type="And">
|
||||||
|
<operand xsi:type="Equal">
|
||||||
|
<operand path="value" xsi:type="Property">
|
||||||
|
<source path="status" scope="O" xsi:type="Property"/>
|
||||||
|
</operand>
|
||||||
|
<operand valueType="t:String" value="final" xsi:type="Literal"/>
|
||||||
|
</operand>
|
||||||
|
<operand xsi:type="In">
|
||||||
|
<operand path="value" xsi:type="Property">
|
||||||
|
<source path="effectiveDateTime" scope="O" xsi:type="Property"/>
|
||||||
|
</operand>
|
||||||
|
<operand name="Lookback Interval Five Years" xsi:type="ExpressionRef"/>
|
||||||
|
</operand>
|
||||||
|
</where>
|
||||||
|
</expression>
|
||||||
|
</def>
|
||||||
|
<def name="FOBT Procedure" context="Patient" accessLevel="Public">
|
||||||
|
<expression xsi:type="Query">
|
||||||
|
<source alias="F">
|
||||||
|
<expression dataType="fhir:Procedure" codeProperty="code" xsi:type="Retrieve">
|
||||||
|
<codes name="Fecal Occult Blood Test (FOBT)" xsi:type="ValueSetRef"/>
|
||||||
|
</expression>
|
||||||
|
</source>
|
||||||
|
<where xsi:type="And">
|
||||||
|
<operand xsi:type="Equal">
|
||||||
|
<operand path="value" xsi:type="Property">
|
||||||
|
<source path="status" scope="F" xsi:type="Property"/>
|
||||||
|
</operand>
|
||||||
|
<operand valueType="t:String" value="completed" xsi:type="Literal"/>
|
||||||
|
</operand>
|
||||||
|
<operand xsi:type="In">
|
||||||
|
<operand path="value" xsi:type="Property">
|
||||||
|
<source path="end" xsi:type="Property">
|
||||||
|
<source path="performedPeriod" scope="F" xsi:type="Property"/>
|
||||||
|
</source>
|
||||||
|
</operand>
|
||||||
|
<operand name="Lookback Interval One Year" xsi:type="ExpressionRef"/>
|
||||||
|
</operand>
|
||||||
|
</where>
|
||||||
|
</expression>
|
||||||
|
</def>
|
||||||
|
<def name="FOBT Observation" context="Patient" accessLevel="Public">
|
||||||
|
<expression xsi:type="Query">
|
||||||
|
<source alias="O">
|
||||||
|
<expression dataType="fhir:Observation" codeProperty="code" xsi:type="Retrieve">
|
||||||
|
<codes name="Fecal Occult Blood Test (FOBT)" xsi:type="ValueSetRef"/>
|
||||||
|
</expression>
|
||||||
|
</source>
|
||||||
|
<where xsi:type="And">
|
||||||
|
<operand xsi:type="Equal">
|
||||||
|
<operand path="value" xsi:type="Property">
|
||||||
|
<source path="status" scope="O" xsi:type="Property"/>
|
||||||
|
</operand>
|
||||||
|
<operand valueType="t:String" value="final" xsi:type="Literal"/>
|
||||||
|
</operand>
|
||||||
|
<operand xsi:type="In">
|
||||||
|
<operand path="value" xsi:type="Property">
|
||||||
|
<source path="effectiveDateTime" scope="O" xsi:type="Property"/>
|
||||||
|
</operand>
|
||||||
|
<operand name="Lookback Interval One Year" xsi:type="ExpressionRef"/>
|
||||||
|
</operand>
|
||||||
|
</where>
|
||||||
|
</expression>
|
||||||
|
</def>
|
||||||
|
<def name="Colonoscopy Procedure" context="Patient" accessLevel="Public">
|
||||||
|
<expression xsi:type="Query">
|
||||||
|
<source alias="C">
|
||||||
|
<expression dataType="fhir:Procedure" codeProperty="code" xsi:type="Retrieve">
|
||||||
|
<codes name="Colonoscopy" xsi:type="ValueSetRef"/>
|
||||||
|
</expression>
|
||||||
|
</source>
|
||||||
|
<where xsi:type="And">
|
||||||
|
<operand xsi:type="Equal">
|
||||||
|
<operand path="value" xsi:type="Property">
|
||||||
|
<source path="status" scope="C" xsi:type="Property"/>
|
||||||
|
</operand>
|
||||||
|
<operand valueType="t:String" value="completed" xsi:type="Literal"/>
|
||||||
|
</operand>
|
||||||
|
<operand xsi:type="In">
|
||||||
|
<operand path="value" xsi:type="Property">
|
||||||
|
<source path="end" xsi:type="Property">
|
||||||
|
<source path="performedPeriod" scope="C" xsi:type="Property"/>
|
||||||
|
</source>
|
||||||
|
</operand>
|
||||||
|
<operand name="Lookback Interval Ten Years" xsi:type="ExpressionRef"/>
|
||||||
|
</operand>
|
||||||
|
</where>
|
||||||
|
</expression>
|
||||||
|
</def>
|
||||||
|
<def name="Colonoscopy Observation" context="Patient" accessLevel="Public">
|
||||||
|
<expression xsi:type="Query">
|
||||||
|
<source alias="O">
|
||||||
|
<expression dataType="fhir:Observation" codeProperty="code" xsi:type="Retrieve">
|
||||||
|
<codes name="Colonoscopy" xsi:type="ValueSetRef"/>
|
||||||
|
</expression>
|
||||||
|
</source>
|
||||||
|
<where xsi:type="And">
|
||||||
|
<operand xsi:type="Equal">
|
||||||
|
<operand path="value" xsi:type="Property">
|
||||||
|
<source path="status" scope="O" xsi:type="Property"/>
|
||||||
|
</operand>
|
||||||
|
<operand valueType="t:String" value="final" xsi:type="Literal"/>
|
||||||
|
</operand>
|
||||||
|
<operand xsi:type="In">
|
||||||
|
<operand path="value" xsi:type="Property">
|
||||||
|
<source path="effectiveDateTime" scope="O" xsi:type="Property"/>
|
||||||
|
</operand>
|
||||||
|
<operand name="Lookback Interval Ten Years" xsi:type="ExpressionRef"/>
|
||||||
|
</operand>
|
||||||
|
</where>
|
||||||
|
</expression>
|
||||||
|
</def>
|
||||||
|
</statements>
|
||||||
|
</library>
|
||||||
|
|
||||||
|
|
|
@ -0,0 +1,138 @@
|
||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<Measure xmlns="http://hl7.org/fhir" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://hl7.org/fhir ../../schema/measure.xsd">
|
||||||
|
<id value="col"/>
|
||||||
|
<text>
|
||||||
|
<status value="additional"/>
|
||||||
|
<div xmlns="http://www.w3.org/1999/xhtml">
|
||||||
|
Cohort definition for Colorectal Cancer Screening.
|
||||||
|
</div>
|
||||||
|
</text>
|
||||||
|
<identifier>
|
||||||
|
<use value="official"/>
|
||||||
|
<system value="http://hl7.org/fhir/cqi/ecqm/Measure/Identifier/payer-extract"/>
|
||||||
|
<value value="COL"/>
|
||||||
|
</identifier>
|
||||||
|
<version value="1.0.0"/>
|
||||||
|
<title value="Colorectal Cancer Screening. Cohort Definition"/>
|
||||||
|
<status value="active"/>
|
||||||
|
<experimental value="true"/>
|
||||||
|
<description value="Colorectal Cancer Screening. Cohort Definition"/>
|
||||||
|
<topic>
|
||||||
|
<coding>
|
||||||
|
<system value="http://hl7.org/fhir/c80-doc-typecodes"/>
|
||||||
|
<code value="57024-2"/>
|
||||||
|
</coding>
|
||||||
|
</topic>
|
||||||
|
<library>
|
||||||
|
<reference value="Library/col-logic"/>
|
||||||
|
</library>
|
||||||
|
<scoring value="cohort"/>
|
||||||
|
<group>
|
||||||
|
<identifier>
|
||||||
|
<value value="in-demographic"/>
|
||||||
|
</identifier>
|
||||||
|
<population>
|
||||||
|
<type value="initial-population"/>
|
||||||
|
<identifier>
|
||||||
|
<value value="in-demographic"/>
|
||||||
|
</identifier>
|
||||||
|
<criteria value="In Demographic"/>
|
||||||
|
</population>
|
||||||
|
</group>
|
||||||
|
<group>
|
||||||
|
<identifier>
|
||||||
|
<value value="history-of-colorectal-cancer"/>
|
||||||
|
</identifier>
|
||||||
|
<population>
|
||||||
|
<type value="initial-population"/>
|
||||||
|
<identifier>
|
||||||
|
<value value="history-of-colorectal-cancer"/>
|
||||||
|
</identifier>
|
||||||
|
<criteria value="Hx Colorectal Cancer"/>
|
||||||
|
</population>
|
||||||
|
</group>
|
||||||
|
<group>
|
||||||
|
<identifier>
|
||||||
|
<value value="history-of-total-colectomy"/>
|
||||||
|
</identifier>
|
||||||
|
<population>
|
||||||
|
<type value="initial-population"/>
|
||||||
|
<identifier>
|
||||||
|
<value value="history-of-total-colectomy"/>
|
||||||
|
</identifier>
|
||||||
|
<criteria value="Hx Total Colectomy"/>
|
||||||
|
</population>
|
||||||
|
</group>
|
||||||
|
<group>
|
||||||
|
<identifier>
|
||||||
|
<value value="colonoscopy-performed"/>
|
||||||
|
</identifier>
|
||||||
|
<population>
|
||||||
|
<type value="initial-population"/>
|
||||||
|
<identifier>
|
||||||
|
<value value="colonoscopy-performed"/>
|
||||||
|
</identifier>
|
||||||
|
<criteria value="Colonoscopy Performed"/>
|
||||||
|
</population>
|
||||||
|
</group>
|
||||||
|
<group>
|
||||||
|
<identifier>
|
||||||
|
<value value="colonoscopy-results"/>
|
||||||
|
</identifier>
|
||||||
|
<population>
|
||||||
|
<type value="initial-population"/>
|
||||||
|
<identifier>
|
||||||
|
<value value="colonoscopy-results"/>
|
||||||
|
</identifier>
|
||||||
|
<criteria value="Colonoscopy Results"/>
|
||||||
|
</population>
|
||||||
|
</group>
|
||||||
|
<group>
|
||||||
|
<identifier>
|
||||||
|
<value value="sigmoidoscopy-procedure"/>
|
||||||
|
</identifier>
|
||||||
|
<population>
|
||||||
|
<type value="initial-population"/>
|
||||||
|
<identifier>
|
||||||
|
<value value="sigmoidoscopy-procedure"/>
|
||||||
|
</identifier>
|
||||||
|
<criteria value="Sigmoidoscopy Procedure"/>
|
||||||
|
</population>
|
||||||
|
</group>
|
||||||
|
<group>
|
||||||
|
<identifier>
|
||||||
|
<value value="sigmoidoscopy-observation"/>
|
||||||
|
</identifier>
|
||||||
|
<population>
|
||||||
|
<type value="initial-population"/>
|
||||||
|
<identifier>
|
||||||
|
<value value="sigmoidoscopy-observation"/>
|
||||||
|
</identifier>
|
||||||
|
<criteria value="Sigmoidoscopy Observation"/>
|
||||||
|
</population>
|
||||||
|
</group>
|
||||||
|
<group>
|
||||||
|
<identifier>
|
||||||
|
<value value="fobt-procedure"/>
|
||||||
|
</identifier>
|
||||||
|
<population>
|
||||||
|
<type value="initial-population"/>
|
||||||
|
<identifier>
|
||||||
|
<value value="fobt-procedure"/>
|
||||||
|
</identifier>
|
||||||
|
<criteria value="FOBT Procedure"/>
|
||||||
|
</population>
|
||||||
|
</group>
|
||||||
|
<group>
|
||||||
|
<identifier>
|
||||||
|
<value value="fobt-observation"/>
|
||||||
|
</identifier>
|
||||||
|
<population>
|
||||||
|
<type value="initial-population"/>
|
||||||
|
<identifier>
|
||||||
|
<value value="fobt-observation"/>
|
||||||
|
</identifier>
|
||||||
|
<criteria value="FOBT Observation"/>
|
||||||
|
</population>
|
||||||
|
</group>
|
||||||
|
</Measure>
|
|
@ -0,0 +1,49 @@
|
||||||
|
{
|
||||||
|
"resourceType": "Condition",
|
||||||
|
"id": "Condition-13",
|
||||||
|
"meta": {
|
||||||
|
"versionId": "1",
|
||||||
|
"lastUpdated": "2017-09-09T21:52:17.035-06:00"
|
||||||
|
},
|
||||||
|
"extension": [
|
||||||
|
{
|
||||||
|
"url": "http://mihin.org/fhir/templateId",
|
||||||
|
"valueString": "2.16.840.1.113883.10.20.22.4.3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "http://mihin.org/fhir/templateId",
|
||||||
|
"valueString": "2.16.840.1.113883.10.20.24.3.137"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"clinicalStatus": "active",
|
||||||
|
"verificationStatus": "confirmed",
|
||||||
|
"category": [
|
||||||
|
{
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://hl7.org/fhir/condition-category",
|
||||||
|
"code": "diagnosis",
|
||||||
|
"display": "Diagnosis"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"text": "This is a judgment made by a healthcare provider that the patient has a particular disease or condition"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"code": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"code": "363414004"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"text": "Diagnosis: Malignant Neoplasm Of Colon"
|
||||||
|
},
|
||||||
|
"subject": {
|
||||||
|
"reference": "Patient/Patient-12214",
|
||||||
|
"display": "2 N Geriatric Jr"
|
||||||
|
},
|
||||||
|
"asserter": {
|
||||||
|
"reference": "Practitioner/Practitioner-12208",
|
||||||
|
"display": "Jay McCann Sawyer MD"
|
||||||
|
}
|
||||||
|
}
|
File diff suppressed because one or more lines are too long
|
@ -0,0 +1,158 @@
|
||||||
|
{
|
||||||
|
"resourceType": "Measure",
|
||||||
|
"id": "col",
|
||||||
|
"meta": {
|
||||||
|
"versionId": "1",
|
||||||
|
"lastUpdated": "2017-09-09T21:26:03.890-06:00"
|
||||||
|
},
|
||||||
|
"text": {
|
||||||
|
"status": "additional",
|
||||||
|
"div": "<div xmlns=\"http://www.w3.org/1999/xhtml\">\n Cohort definition for Colorectal Cancer Screening.\n </div>"
|
||||||
|
},
|
||||||
|
"identifier": [
|
||||||
|
{
|
||||||
|
"use": "official",
|
||||||
|
"system": "http://hl7.org/fhir/cqi/ecqm/Measure/Identifier/payer-extract",
|
||||||
|
"value": "COL"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"version": "1.0.0",
|
||||||
|
"title": "Colorectal Cancer Screening. Cohort Definition",
|
||||||
|
"status": "active",
|
||||||
|
"experimental": true,
|
||||||
|
"description": "Colorectal Cancer Screening. Cohort Definition",
|
||||||
|
"topic": [
|
||||||
|
{
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://hl7.org/fhir/c80-doc-typecodes",
|
||||||
|
"code": "57024-2"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"library": [
|
||||||
|
{
|
||||||
|
"reference": "Library/col-logic"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"group": [
|
||||||
|
{
|
||||||
|
"identifier": {
|
||||||
|
"value": "in-demographic"
|
||||||
|
},
|
||||||
|
"population": [
|
||||||
|
{
|
||||||
|
"identifier": {
|
||||||
|
"value": "in-demographic"
|
||||||
|
},
|
||||||
|
"criteria": "In Demographic"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": {
|
||||||
|
"value": "history-of-colorectal-cancer"
|
||||||
|
},
|
||||||
|
"population": [
|
||||||
|
{
|
||||||
|
"identifier": {
|
||||||
|
"value": "history-of-colorectal-cancer"
|
||||||
|
},
|
||||||
|
"criteria": "Hx Colorectal Cancer"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": {
|
||||||
|
"value": "history-of-total-colectomy"
|
||||||
|
},
|
||||||
|
"population": [
|
||||||
|
{
|
||||||
|
"identifier": {
|
||||||
|
"value": "history-of-total-colectomy"
|
||||||
|
},
|
||||||
|
"criteria": "Hx Total Colectomy"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": {
|
||||||
|
"value": "colonoscopy-performed"
|
||||||
|
},
|
||||||
|
"population": [
|
||||||
|
{
|
||||||
|
"identifier": {
|
||||||
|
"value": "colonoscopy-performed"
|
||||||
|
},
|
||||||
|
"criteria": "Colonoscopy Performed"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": {
|
||||||
|
"value": "colonoscopy-results"
|
||||||
|
},
|
||||||
|
"population": [
|
||||||
|
{
|
||||||
|
"identifier": {
|
||||||
|
"value": "colonoscopy-results"
|
||||||
|
},
|
||||||
|
"criteria": "Colonoscopy Results"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": {
|
||||||
|
"value": "sigmoidoscopy-procedure"
|
||||||
|
},
|
||||||
|
"population": [
|
||||||
|
{
|
||||||
|
"identifier": {
|
||||||
|
"value": "sigmoidoscopy-procedure"
|
||||||
|
},
|
||||||
|
"criteria": "Sigmoidoscopy Procedure"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": {
|
||||||
|
"value": "sigmoidoscopy-observation"
|
||||||
|
},
|
||||||
|
"population": [
|
||||||
|
{
|
||||||
|
"identifier": {
|
||||||
|
"value": "sigmoidoscopy-observation"
|
||||||
|
},
|
||||||
|
"criteria": "Sigmoidoscopy Observation"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": {
|
||||||
|
"value": "fobt-procedure"
|
||||||
|
},
|
||||||
|
"population": [
|
||||||
|
{
|
||||||
|
"identifier": {
|
||||||
|
"value": "fobt-procedure"
|
||||||
|
},
|
||||||
|
"criteria": "FOBT Procedure"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"identifier": {
|
||||||
|
"value": "fobt-observation"
|
||||||
|
},
|
||||||
|
"population": [
|
||||||
|
{
|
||||||
|
"identifier": {
|
||||||
|
"value": "fobt-observation"
|
||||||
|
},
|
||||||
|
"criteria": "FOBT Observation"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,68 @@
|
||||||
|
{
|
||||||
|
"resourceType": "Procedure",
|
||||||
|
"id": "Procedure-9",
|
||||||
|
"meta": {
|
||||||
|
"versionId": "1",
|
||||||
|
"lastUpdated": "2017-09-09T21:52:35.933-06:00"
|
||||||
|
},
|
||||||
|
"extension": [
|
||||||
|
{
|
||||||
|
"url": "http://mihin.org/fhir/templateId",
|
||||||
|
"valueString": "2.16.840.1.113883.10.20.24.3.64"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"url": "http://mihin.org/fhir/templateId",
|
||||||
|
"valueString": "2.16.840.1.113883.10.20.22.4.14"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"identifier": [
|
||||||
|
{
|
||||||
|
"system": "http://hl7.org/fhir/identifier",
|
||||||
|
"value": "1.3.6.1.4.1.115:579f4eb5aeac500a550c5c7b"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"status": "completed",
|
||||||
|
"category": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"code": "387713003",
|
||||||
|
"display": "Surgical Procedure"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"code": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"code": "36192008"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"text": "Procedure, Performed: Total Colectomy"
|
||||||
|
},
|
||||||
|
"subject": {
|
||||||
|
"reference": "Patient/Patient-12214",
|
||||||
|
"display": "2 N Geriatric Jr"
|
||||||
|
},
|
||||||
|
"performedPeriod": {
|
||||||
|
"start": "2010-10-12T06:00:00-04:00",
|
||||||
|
"end": "2010-10-12T08:15:00-04:00"
|
||||||
|
},
|
||||||
|
"performer": [
|
||||||
|
{
|
||||||
|
"role": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://hl7.org/fhir/ValueSet/performer-role",
|
||||||
|
"code": "112247003",
|
||||||
|
"display": "Medical doctor (occupation)"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"actor": {
|
||||||
|
"reference": "Practitioner/Practitioner-12208",
|
||||||
|
"display": "Jay McCann Sawyer MD"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,416 @@
|
||||||
|
{
|
||||||
|
"resourceType": "ValueSet",
|
||||||
|
"id": "2.16.840.1.113883.3.464.1003.108.11.1001",
|
||||||
|
"meta": {
|
||||||
|
"versionId": "3",
|
||||||
|
"lastUpdated": "2017-07-25T09:54:33.579+00:00"
|
||||||
|
},
|
||||||
|
"url": "http://measure.eval.kanvix.com/cqf-ruler/baseDstu3/Valueset/2.16.840.1.113883.3.464.1003.108.11.1001",
|
||||||
|
"name": "Malignant Neoplasm of Colon (SNOMED CT) eCQM",
|
||||||
|
"status": "active",
|
||||||
|
"compose": {
|
||||||
|
"include": [
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"version": "2015.03.14AB",
|
||||||
|
"concept": [
|
||||||
|
{
|
||||||
|
"code": "187758006"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "109838007"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "1701000119104"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "187757001"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "269533000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "269544008"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "285312008"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "285611007"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "301756000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "312111009"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "312112002"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "312113007"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "312114001"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "312115000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "314965007"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "315058005"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "363406005"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "363407001"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "363408006"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "363409003"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "363410008"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "363412000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "363413005"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "363414004"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "363510005"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "425178004"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "449218003"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "93683002"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "93761005"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "93771007"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "93826009"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "93980002"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "94006002"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "94072004"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "94105000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "94179005"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "94260004"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "94271003"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "94328005"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "94509004"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "94538001"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "94604000"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "94643001"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"expansion": {
|
||||||
|
"identifier": "http://open-api2.hspconsortium.org/payerextract/data/ValueSet/2.16.840.1.113883.3.464.1003.108.11.1001",
|
||||||
|
"timestamp": "2016-09-19T14:05:21.939-04:00",
|
||||||
|
"total": 43,
|
||||||
|
"offset": 0,
|
||||||
|
"contains": [
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"version": "2015.03.14AB",
|
||||||
|
"code": "425178004",
|
||||||
|
"display": "Adenocarcinoma of rectosigmoid junction"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"version": "2015.03.14AB",
|
||||||
|
"code": "301756000",
|
||||||
|
"display": "Adenocarcinoma of sigmoid colon"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"version": "2015.03.14AB",
|
||||||
|
"code": "312111009",
|
||||||
|
"display": "Carcinoma of ascending colon"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"version": "2015.03.14AB",
|
||||||
|
"code": "269533000",
|
||||||
|
"display": "Carcinoma of colon"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"version": "2015.03.14AB",
|
||||||
|
"code": "312113007",
|
||||||
|
"display": "Carcinoma of descending colon"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"version": "2015.03.14AB",
|
||||||
|
"code": "312114001",
|
||||||
|
"display": "Carcinoma of hepatic flexure"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"version": "2015.03.14AB",
|
||||||
|
"code": "285312008",
|
||||||
|
"display": "Carcinoma of sigmoid colon"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"version": "2015.03.14AB",
|
||||||
|
"code": "312115000",
|
||||||
|
"display": "Carcinoma of splenic flexure"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"version": "2015.03.14AB",
|
||||||
|
"code": "269544008",
|
||||||
|
"display": "Carcinoma of the rectosigmoid junction"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"version": "2015.03.14AB",
|
||||||
|
"code": "312112002",
|
||||||
|
"display": "Carcinoma of transverse colon"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"version": "2015.03.14AB",
|
||||||
|
"code": "315058005",
|
||||||
|
"display": "Lynch syndrome"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"version": "2015.03.14AB",
|
||||||
|
"code": "314965007",
|
||||||
|
"display": "Local recurrence of malignant tumor of colon"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"version": "2015.03.14AB",
|
||||||
|
"code": "449218003",
|
||||||
|
"display": "Lymphoma of sigmoid colon"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"version": "2015.03.14AB",
|
||||||
|
"code": "187758006",
|
||||||
|
"display": "Malignant neoplasm of other specified sites of colon"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"version": "2015.03.14AB",
|
||||||
|
"code": "187757001",
|
||||||
|
"display": "Malignant neoplasm, overlapping lesion of colon"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"version": "2015.03.14AB",
|
||||||
|
"code": "363412000",
|
||||||
|
"display": "Malignant tumor of ascending colon"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"version": "2015.03.14AB",
|
||||||
|
"code": "363406005",
|
||||||
|
"display": "Malignant tumor of colon"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"version": "2015.03.14AB",
|
||||||
|
"code": "363409003",
|
||||||
|
"display": "Malignant tumor of descending colon"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"version": "2015.03.14AB",
|
||||||
|
"code": "363407001",
|
||||||
|
"display": "Malignant tumor of hepatic flexure"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"version": "2015.03.14AB",
|
||||||
|
"code": "363510005",
|
||||||
|
"display": "Malignant tumor of large intestine"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"version": "2015.03.14AB",
|
||||||
|
"code": "363414004",
|
||||||
|
"display": "Malignant tumor of rectosigmoid junction"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"version": "2015.03.14AB",
|
||||||
|
"code": "363410008",
|
||||||
|
"display": "Malignant tumor of sigmoid colon"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"version": "2015.03.14AB",
|
||||||
|
"code": "363413005",
|
||||||
|
"display": "Malignant tumor of splenic flexure"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"version": "2015.03.14AB",
|
||||||
|
"code": "363408006",
|
||||||
|
"display": "Malignant tumor of transverse colon"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"version": "2015.03.14AB",
|
||||||
|
"code": "285611007",
|
||||||
|
"display": "Metastasis to colon of unknown primary"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"version": "2015.03.14AB",
|
||||||
|
"code": "109838007",
|
||||||
|
"display": "Overlapping malignant neoplasm of colon"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"version": "2015.03.14AB",
|
||||||
|
"code": "1701000119104",
|
||||||
|
"display": "Primary adenocarcinoma of colon"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"version": "2015.03.14AB",
|
||||||
|
"code": "93683002",
|
||||||
|
"display": "Primary malignant neoplasm of ascending colon"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"version": "2015.03.14AB",
|
||||||
|
"code": "93761005",
|
||||||
|
"display": "Primary malignant neoplasm of colon"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"version": "2015.03.14AB",
|
||||||
|
"code": "93771007",
|
||||||
|
"display": "Primary malignant neoplasm of descending colon"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"version": "2015.03.14AB",
|
||||||
|
"code": "93826009",
|
||||||
|
"display": "Primary malignant neoplasm of hepatic flexure of colon"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"version": "2015.03.14AB",
|
||||||
|
"code": "93980002",
|
||||||
|
"display": "Primary malignant neoplasm of rectosigmoid junction"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"version": "2015.03.14AB",
|
||||||
|
"code": "94006002",
|
||||||
|
"display": "Primary malignant neoplasm of sigmoid colon"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"version": "2015.03.14AB",
|
||||||
|
"code": "94072004",
|
||||||
|
"display": "Primary malignant neoplasm of splenic flexure of colon"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"version": "2015.03.14AB",
|
||||||
|
"code": "94105000",
|
||||||
|
"display": "Primary malignant neoplasm of transverse colon"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"version": "2015.03.14AB",
|
||||||
|
"code": "94179005",
|
||||||
|
"display": "Secondary malignant neoplasm of ascending colon"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"version": "2015.03.14AB",
|
||||||
|
"code": "94260004",
|
||||||
|
"display": "Secondary malignant neoplasm of colon"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"version": "2015.03.14AB",
|
||||||
|
"code": "94271003",
|
||||||
|
"display": "Secondary malignant neoplasm of descending colon"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"version": "2015.03.14AB",
|
||||||
|
"code": "94328005",
|
||||||
|
"display": "Secondary malignant neoplasm of hepatic flexure of colon"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"version": "2015.03.14AB",
|
||||||
|
"code": "94509004",
|
||||||
|
"display": "Secondary malignant neoplasm of rectosigmoid junction"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"version": "2015.03.14AB",
|
||||||
|
"code": "94538001",
|
||||||
|
"display": "Secondary malignant neoplasm of sigmoid colon"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"version": "2015.03.14AB",
|
||||||
|
"code": "94604000",
|
||||||
|
"display": "Secondary malignant neoplasm of splenic flexure of colon"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"version": "2015.03.14AB",
|
||||||
|
"code": "94643001",
|
||||||
|
"display": "Secondary malignant neoplasm of transverse colon"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,181 @@
|
||||||
|
{
|
||||||
|
"resourceType": "ValueSet",
|
||||||
|
"id": "2.16.840.1.113883.3.464.1003.198.12.1019",
|
||||||
|
"meta": {
|
||||||
|
"versionId": "3",
|
||||||
|
"lastUpdated": "2017-07-25T09:54:33.579+00:00"
|
||||||
|
},
|
||||||
|
"url": "http://measure.eval.kanvix.com/cql-measure-processor/baseDstu3/Valueset/2.16.840.1.113883.3.464.1003.198.12.1019 ",
|
||||||
|
"name": "Total Colectomy eMeasure",
|
||||||
|
"compose": {
|
||||||
|
"include": [
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"version": "2016.1.15AA",
|
||||||
|
"concept": [
|
||||||
|
{
|
||||||
|
"code": "44156"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "44158"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "44157"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "44155"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "44151"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "44150"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "44211"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "44212"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "44210"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "44153"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "44152"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"version": "2015.09.15AA",
|
||||||
|
"filter": [
|
||||||
|
{
|
||||||
|
"property": "concept",
|
||||||
|
"op": "is-a",
|
||||||
|
"value": "26390003"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"expansion": {
|
||||||
|
"timestamp": "2016-09-20T12:32:19.296-04:00",
|
||||||
|
"total": 22,
|
||||||
|
"offset": 0,
|
||||||
|
"contains": [
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "44156",
|
||||||
|
"display": "Colectomy, total, abdominal, with proctectomy; with continent ileostomy"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "44158",
|
||||||
|
"display": "Colectomy, total, abdominal, with proctectomy; with ileoanal anastomosis, creation of ileal reservoir (S or J), includes loop ileostomy, and rectal mucosectomy, when performed"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "44157",
|
||||||
|
"display": "Colectomy, total, abdominal, with proctectomy; with ileoanal anastomosis, includes loop ileostomy, and rectal mucosectomy, when performed"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "44155",
|
||||||
|
"display": "Colectomy, total, abdominal, with proctectomy; with ileostomy"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "44151",
|
||||||
|
"display": "Colectomy, total, abdominal, without proctectomy; with continent ileostomy"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "44150",
|
||||||
|
"display": "Colectomy, total, abdominal, without proctectomy; with ileostomy or ileoproctostomy"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "44153",
|
||||||
|
"display": "Colectomy, total, abdominal, without proctectomy; with rectal mucosectomy, ileoanal anastomosis, creation of ileal reservoir (S or J), with or without loop ileostomy"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "44152",
|
||||||
|
"display": "Colectomy, total, abdominal, without proctectomy; with rectal mucosectomy, ileoanal anastomosis, with or without loop ileostomy"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "44211",
|
||||||
|
"display": "Laparoscopy, surgical; colectomy, total, abdominal, with proctectomy, with ileoanal anastomosis, creation of ileal reservoir (S or J), with loop ileostomy, includes rectal mucosectomy, when performed"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "44212",
|
||||||
|
"display": "Laparoscopy, surgical; colectomy, total, abdominal, with proctectomy, with ileostomy"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "44210",
|
||||||
|
"display": "Laparoscopy, surgical; colectomy, total, abdominal, without proctectomy, with ileostomy or ileoproctostomy"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"code": "303401008",
|
||||||
|
"display": "Parks panproctocolectomy, anastomosis of ileum to anus and creation of pouch"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"code": "235331003",
|
||||||
|
"display": "Restorative proctocolectomy"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"code": "36192008",
|
||||||
|
"display": "Total abdominal colectomy with ileoproctostomy"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"code": "456004",
|
||||||
|
"display": "Total abdominal colectomy with ileostomy"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"code": "44751009",
|
||||||
|
"display": "Total abdominal colectomy with proctectomy and continent ileostomy"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"code": "31130001",
|
||||||
|
"display": "Total abdominal colectomy with proctectomy and ileostomy"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"code": "80294005",
|
||||||
|
"display": "Total abdominal colectomy with rectal mucosectomy and ileoanal anastomosis"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"code": "26390003",
|
||||||
|
"display": "Total colectomy"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"code": "307666008",
|
||||||
|
"display": "Total colectomy and ileostomy"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"code": "307669001",
|
||||||
|
"display": "Total colectomy, ileostomy and closure of rectal stump"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"code": "307667004",
|
||||||
|
"display": "Total colectomy, ileostomy and rectal mucous fistula"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,421 @@
|
||||||
|
{
|
||||||
|
"resourceType": "ValueSet",
|
||||||
|
"id": "2.16.840.1.113883.3.464.1003.108.12.1020",
|
||||||
|
"meta": {
|
||||||
|
"versionId": "3",
|
||||||
|
"lastUpdated": "2017-07-25T09:54:33.579+00:00"
|
||||||
|
},
|
||||||
|
"url": "http://measure.eval.kanvix.com/cql-measure-processor/baseDstu3/Valueset/2.16.840.1.113883.3.464.1003.108.12.1020",
|
||||||
|
"name": "Colonoscopy eMeasure",
|
||||||
|
"compose": {
|
||||||
|
"include": [
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"version": "2015.1.14AB",
|
||||||
|
"concept": [
|
||||||
|
{
|
||||||
|
"code": "44388"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "44393"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "44389"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "44391"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "44390"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "44392"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "44394"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "44397"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "45378"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "45383"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "45380"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "45382"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "45386"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "45381"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "45391"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "45379"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "45384"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "45385"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "45387"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "45392"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "45355"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "44401"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "44402"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "44403"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "44404"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "44405"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "44406"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "44407"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "44408"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "45388"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "45389"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "45390"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "45393"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "45398"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"version": "2014.07.14AA",
|
||||||
|
"filter": [
|
||||||
|
{
|
||||||
|
"property": "concept",
|
||||||
|
"op": "is-a",
|
||||||
|
"value": "73761001"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"version": "2014.07.14AA",
|
||||||
|
"filter": [
|
||||||
|
{
|
||||||
|
"property": "concept",
|
||||||
|
"op": "is-a",
|
||||||
|
"value": "174184006"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"expansion": {
|
||||||
|
"timestamp": "2016-09-20T13:07:55.271-04:00",
|
||||||
|
"total": 54,
|
||||||
|
"offset": 0,
|
||||||
|
"contains": [
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"code": "310634005",
|
||||||
|
"display": "Check colonoscopy"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"code": "73761001",
|
||||||
|
"display": "Colonoscopy"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"code": "446745002",
|
||||||
|
"display": "Colonoscopy and biopsy of colon"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"code": "446521004",
|
||||||
|
"display": "Colonoscopy and excision of mucosa of colon"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"code": "447021001",
|
||||||
|
"display": "Colonoscopy and tattooing"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"code": "443998000",
|
||||||
|
"display": "Colonoscopy through colostomy with endoscopic biopsy of colon"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "44388",
|
||||||
|
"display": "Colonoscopy through stoma; diagnostic, including collection of specimen(s) by brushing or washing, when performed (separate procedure)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "44401",
|
||||||
|
"display": "Colonoscopy through stoma; with ablation of tumor(s), polyp(s), or other lesion(s) (includes pre-and post-dilation and guide wire passage, when performed)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "44393",
|
||||||
|
"display": "Colonoscopy through stoma; with ablation of tumor(s), polyp(s), or other lesion(s) not amenable to removal by hot biopsy forceps, bipolar cautery or snare technique"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "44389",
|
||||||
|
"display": "Colonoscopy through stoma; with biopsy, single or multiple"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "44391",
|
||||||
|
"display": "Colonoscopy through stoma; with control of bleeding, any method"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "44408",
|
||||||
|
"display": "Colonoscopy through stoma; with decompression (for pathologic distention) (eg, volvulus, megacolon), including placement of decompression tube, when performed"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "44404",
|
||||||
|
"display": "Colonoscopy through stoma; with directed submucosal injection(s), any substance"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "44403",
|
||||||
|
"display": "Colonoscopy through stoma; with endoscopic mucosal resection"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "44402",
|
||||||
|
"display": "Colonoscopy through stoma; with endoscopic stent placement (including pre- and post-dilation and guide wire passage, when performed)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "44406",
|
||||||
|
"display": "Colonoscopy through stoma; with endoscopic ultrasound examination, limited to the sigmoid, descending, transverse, or ascending colon and cecum and adjacent structures"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "44390",
|
||||||
|
"display": "Colonoscopy through stoma; with removal of foreign body(s)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "44392",
|
||||||
|
"display": "Colonoscopy through stoma; with removal of tumor(s), polyp(s), or other lesion(s) by hot biopsy forceps"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "44394",
|
||||||
|
"display": "Colonoscopy through stoma; with removal of tumor(s), polyp(s), or other lesion(s) by snare technique"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "44405",
|
||||||
|
"display": "Colonoscopy through stoma; with transendoscopic balloon dilation"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "44397",
|
||||||
|
"display": "Colonoscopy through stoma; with transendoscopic stent placement (includes predilation)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "44407",
|
||||||
|
"display": "Colonoscopy through stoma; with transendoscopic ultrasound guided intramural or transmural fine needle aspiration/biopsy(s), includes endoscopic ultrasound examination limited to the sigmoid, descending, transverse, or ascending colon and cecum and adjacent structures"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"code": "12350003",
|
||||||
|
"display": "Colonoscopy with rigid sigmoidoscope through colotomy"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "45383",
|
||||||
|
"display": "Colonoscopy, flexible, proximal to splenic flexure; with ablation of tumor(s), polyp(s), or other lesion(s) not amenable to removal by hot biopsy forceps, bipolar cautery or snare technique"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "45387",
|
||||||
|
"display": "Colonoscopy, flexible, proximal to splenic flexure; with transendoscopic stent placement (includes predilation)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "45378",
|
||||||
|
"display": "Colonoscopy, flexible; diagnostic, including collection of specimen(s) by brushing or washing, when performed (separate procedure)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "45388",
|
||||||
|
"display": "Colonoscopy, flexible; with ablation of tumor(s), polyp(s), or other lesion(s) (includes pre- and post-dilation and guide wire passage, when performed)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "45398",
|
||||||
|
"display": "Colonoscopy, flexible; with band ligation(s) (eg, hemorrhoids)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "45380",
|
||||||
|
"display": "Colonoscopy, flexible; with biopsy, single or multiple"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "45382",
|
||||||
|
"display": "Colonoscopy, flexible; with control of bleeding, any method"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "45393",
|
||||||
|
"display": "Colonoscopy, flexible; with decompression (for pathologic distention) (eg, volvulus, megacolon), including placement of decompression tube, when performed"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "45381",
|
||||||
|
"display": "Colonoscopy, flexible; with directed submucosal injection(s), any substance"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "45390",
|
||||||
|
"display": "Colonoscopy, flexible; with endoscopic mucosal resection"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "45389",
|
||||||
|
"display": "Colonoscopy, flexible; with endoscopic stent placement (includes pre- and post-dilation and guide wire passage, when performed)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "45391",
|
||||||
|
"display": "Colonoscopy, flexible; with endoscopic ultrasound examination limited to the rectum, sigmoid, descending, transverse, or ascending colon and cecum, and adjacent structures"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "45379",
|
||||||
|
"display": "Colonoscopy, flexible; with removal of foreign body(s)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "45384",
|
||||||
|
"display": "Colonoscopy, flexible; with removal of tumor(s), polyp(s), or other lesion(s) by hot biopsy forceps"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "45385",
|
||||||
|
"display": "Colonoscopy, flexible; with removal of tumor(s), polyp(s), or other lesion(s) by snare technique"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "45386",
|
||||||
|
"display": "Colonoscopy, flexible; with transendoscopic balloon dilation"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "45392",
|
||||||
|
"display": "Colonoscopy, flexible; with transendoscopic ultrasound guided intramural or transmural fine needle aspiration/biopsy(s), includes endoscopic ultrasound examination limited to the rectum, sigmoid, descending, transverse, or ascending colon and cecum, and adjacent structures"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "45355",
|
||||||
|
"display": "Colonoscopy, rigid or flexible, transabdominal via colotomy, single or multiple"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "https://www.cms.gov/Medicare/Coding/MedHCPCSGenInfo/index.html",
|
||||||
|
"code": "G0105",
|
||||||
|
"display": "Colorectal cancer screening; colonoscopy on individual at high risk"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "https://www.cms.gov/Medicare/Coding/MedHCPCSGenInfo/index.html",
|
||||||
|
"code": "G0121",
|
||||||
|
"display": "Colorectal cancer screening; colonoscopy on individual not meeting criteria for high risk"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"code": "427459009",
|
||||||
|
"display": "Diagnostic endoscopic examination of colonic pouch and biopsy of colonic pouch using colonoscope"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"code": "174184006",
|
||||||
|
"display": "Diagnostic endoscopic examination on colon"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"code": "367535003",
|
||||||
|
"display": "Fiberoptic colonoscopy"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"code": "8180007",
|
||||||
|
"display": "Fiberoptic colonoscopy through colostomy"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"code": "25732003",
|
||||||
|
"display": "Fiberoptic colonoscopy with biopsy"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"code": "34264006",
|
||||||
|
"display": "Intraoperative colonoscopy"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"code": "235151005",
|
||||||
|
"display": "Limited colonoscopy"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"code": "174158000",
|
||||||
|
"display": "Open colonoscopy"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"code": "444783004",
|
||||||
|
"display": "Screening colonoscopy"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"code": "303587008",
|
||||||
|
"display": "Therapeutic colonoscopy"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"code": "235150006",
|
||||||
|
"display": "Total colonoscopy"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,208 @@
|
||||||
|
{
|
||||||
|
"resourceType": "ValueSet",
|
||||||
|
"id": "2.16.840.1.113883.3.464.1003.198.12.1010",
|
||||||
|
"meta": {
|
||||||
|
"versionId": "6",
|
||||||
|
"lastUpdated": "2017-07-25T09:54:33.579+00:00"
|
||||||
|
},
|
||||||
|
"url": "http://measure.eval.kanvix.com/cql-measure-processor/baseDstu3/Valueset/2.16.840.1.113883.3.464.1003.198.12.1010",
|
||||||
|
"name": "Flexible Sigmoidoscopy eMeasure",
|
||||||
|
"compose": {
|
||||||
|
"include": [
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"version": "2015.1.14AB",
|
||||||
|
"concept": [
|
||||||
|
{
|
||||||
|
"code": "45330"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "45339"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "45331"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "45334"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "45337"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "45340"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "45335"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "45341"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "45332"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "45333"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "45338"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "45345"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "45342"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "45346"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "45347"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "45349"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "45350"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "https://www.cms.gov/Medicare/Coding/MedHCPCSGenInfo/index.html",
|
||||||
|
"version": "2016.1.15AB",
|
||||||
|
"concept": [
|
||||||
|
{
|
||||||
|
"code": "G0104"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"version": "2014.07.14AA",
|
||||||
|
"filter": [
|
||||||
|
{
|
||||||
|
"property": "concept",
|
||||||
|
"op": "is-a",
|
||||||
|
"value": "44441009"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"expansion": {
|
||||||
|
"timestamp": "2016-09-20T13:20:03.237-04:00",
|
||||||
|
"total": 22,
|
||||||
|
"offset": 0,
|
||||||
|
"contains": [
|
||||||
|
{
|
||||||
|
"system": "https://www.cms.gov/Medicare/Coding/MedHCPCSGenInfo/index.html",
|
||||||
|
"code": "G0104",
|
||||||
|
"display": "Colorectal cancer screening; flexible sigmoidoscopy"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"code": "425634007",
|
||||||
|
"display": "Diagnostic endoscopic examination of lower bowel and sampling for bacterial overgrowth using fiberoptic sigmoidoscope"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"code": "44441009",
|
||||||
|
"display": "Flexible fiberoptic sigmoidoscopy"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"code": "112870002",
|
||||||
|
"display": "Flexible fiberoptic sigmoidoscopy for removal of foreign body"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://snomed.info/sct",
|
||||||
|
"code": "396226005",
|
||||||
|
"display": "Flexible fiberoptic sigmoidoscopy with biopsy"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "45330",
|
||||||
|
"display": "Sigmoidoscopy, flexible; diagnostic, including collection of specimen(s) by brushing or washing, when performed (separate procedure)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "45346",
|
||||||
|
"display": "Sigmoidoscopy, flexible; with ablation of tumor(s), polyp(s), or other lesion(s) (includes pre- and post-dilation and guide wire passage, when performed)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "45339",
|
||||||
|
"display": "Sigmoidoscopy, flexible; with ablation of tumor(s), polyp(s), or other lesion(s) not amenable to removal by hot biopsy forceps, bipolar cautery or snare technique"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "45350",
|
||||||
|
"display": "Sigmoidoscopy, flexible; with band ligation(s) (eg, hemorrhoids)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "45331",
|
||||||
|
"display": "Sigmoidoscopy, flexible; with biopsy, single or multiple"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "45334",
|
||||||
|
"display": "Sigmoidoscopy, flexible; with control of bleeding, any method"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "45337",
|
||||||
|
"display": "Sigmoidoscopy, flexible; with decompression (for pathologic distention) (eg, volvulus, megacolon), including placement of decompression tube, when performed"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "45335",
|
||||||
|
"display": "Sigmoidoscopy, flexible; with directed submucosal injection(s), any substance"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "45349",
|
||||||
|
"display": "Sigmoidoscopy, flexible; with endoscopic mucosal resection"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "45341",
|
||||||
|
"display": "Sigmoidoscopy, flexible; with endoscopic ultrasound examination"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "45347",
|
||||||
|
"display": "Sigmoidoscopy, flexible; with placement of endoscopic stent (includes pre- and post-dilation and guide wire passage, when performed)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "45332",
|
||||||
|
"display": "Sigmoidoscopy, flexible; with removal of foreign body(s)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "45333",
|
||||||
|
"display": "Sigmoidoscopy, flexible; with removal of tumor(s), polyp(s), or other lesion(s) by hot biopsy forceps"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "45338",
|
||||||
|
"display": "Sigmoidoscopy, flexible; with removal of tumor(s), polyp(s), or other lesion(s) by snare technique"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "45340",
|
||||||
|
"display": "Sigmoidoscopy, flexible; with transendoscopic balloon dilation"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "45345",
|
||||||
|
"display": "Sigmoidoscopy, flexible; with transendoscopic stent placement (includes predilation)"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://www.ama-assn.org/go/cpt",
|
||||||
|
"code": "45342",
|
||||||
|
"display": "Sigmoidoscopy, flexible; with transendoscopic ultrasound guided intramural or transmural fine needle aspiration/biopsy(s)"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,147 @@
|
||||||
|
{
|
||||||
|
"resourceType": "ValueSet",
|
||||||
|
"id": "2.16.840.1.113883.3.464.1003.198.12.1011",
|
||||||
|
"meta": {
|
||||||
|
"versionId": "3",
|
||||||
|
"lastUpdated": "2017-07-25T09:54:33.579+00:00"
|
||||||
|
},
|
||||||
|
"url": "http://measure.eval.kanvix.com/cql-measure-processor/baseDstu3/Valueset/2.16.840.1.113883.3.464.1003.198.12.1011",
|
||||||
|
"name": "Fecal Occult Blood Test (FOBT) eMeasure",
|
||||||
|
"compose": {
|
||||||
|
"include": [
|
||||||
|
{
|
||||||
|
"system": "http://loinc.org",
|
||||||
|
"version": "2.44.13AA",
|
||||||
|
"concept": [
|
||||||
|
{
|
||||||
|
"code": "27396-1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "58453-2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "2335-8"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "14563-1"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "14564-9"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "14565-6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "12503-9"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "12504-7"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "27401-9"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "27925-7"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "27926-5"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "29771-3"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "57905-2"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "56490-6"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"code": "56491-4"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"expansion": {
|
||||||
|
"timestamp": "2016-09-20T13:32:34.390-04:00",
|
||||||
|
"total": 15,
|
||||||
|
"offset": 0,
|
||||||
|
"contains": [
|
||||||
|
{
|
||||||
|
"system": "http://loinc.org",
|
||||||
|
"code": "27396-1",
|
||||||
|
"display": "Hemoglobin.gastrointestinal [Mass/mass] in Stool"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://loinc.org",
|
||||||
|
"code": "58453-2",
|
||||||
|
"display": "Hemoglobin.gastrointestinal [Mass/volume] in Stool by Immunologic method"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://loinc.org",
|
||||||
|
"code": "2335-8",
|
||||||
|
"display": "Hemoglobin.gastrointestinal [Presence] in Stool"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://loinc.org",
|
||||||
|
"code": "14563-1",
|
||||||
|
"display": "Hemoglobin.gastrointestinal [Presence] in Stool --1st specimen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://loinc.org",
|
||||||
|
"code": "14564-9",
|
||||||
|
"display": "Hemoglobin.gastrointestinal [Presence] in Stool --2nd specimen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://loinc.org",
|
||||||
|
"code": "14565-6",
|
||||||
|
"display": "Hemoglobin.gastrointestinal [Presence] in Stool --3rd specimen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://loinc.org",
|
||||||
|
"code": "12503-9",
|
||||||
|
"display": "Hemoglobin.gastrointestinal [Presence] in Stool --4th specimen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://loinc.org",
|
||||||
|
"code": "12504-7",
|
||||||
|
"display": "Hemoglobin.gastrointestinal [Presence] in Stool --5th specimen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://loinc.org",
|
||||||
|
"code": "27401-9",
|
||||||
|
"display": "Hemoglobin.gastrointestinal [Presence] in Stool --6th specimen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://loinc.org",
|
||||||
|
"code": "27925-7",
|
||||||
|
"display": "Hemoglobin.gastrointestinal [Presence] in Stool --7th specimen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://loinc.org",
|
||||||
|
"code": "27926-5",
|
||||||
|
"display": "Hemoglobin.gastrointestinal [Presence] in Stool --8th specimen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://loinc.org",
|
||||||
|
"code": "29771-3",
|
||||||
|
"display": "Hemoglobin.gastrointestinal [Presence] in Stool by Immunologic method"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://loinc.org",
|
||||||
|
"code": "57905-2",
|
||||||
|
"display": "Hemoglobin.gastrointestinal [Presence] in Stool by Immunologic method --1st specimen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://loinc.org",
|
||||||
|
"code": "56490-6",
|
||||||
|
"display": "Hemoglobin.gastrointestinal [Presence] in Stool by Immunologic method --2nd specimen"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"system": "http://loinc.org",
|
||||||
|
"code": "56491-4",
|
||||||
|
"display": "Hemoglobin.gastrointestinal [Presence] in Stool by Immunologic method --3rd specimen"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
}
|
|
@ -0,0 +1,19 @@
|
||||||
|
{
|
||||||
|
"resourceType": "Library",
|
||||||
|
"id": "plandefinitionApplyTest",
|
||||||
|
"version": "1.0",
|
||||||
|
"status": "draft",
|
||||||
|
"type": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"code": "logic-library"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"content": [
|
||||||
|
{
|
||||||
|
"contentType": "text/cql",
|
||||||
|
"data": "bGlicmFyeSBwbGFuZGVmaW5pdGlvbkFwcGx5VGVzdCB2ZXJzaW9uICcxLjAnDQoNCmRlZmluZSBSZXN1bHRzOg0KICAgIHRydWUNCg0KZGVmaW5lICJEeW5hbWljIERldGFpbCBEZWZpbml0aW9uIjoNCiAgICAnVGhpcyBpcyBhIGR5bmFtaWMgZGVmaW5pdGlvbiEn"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
|
@ -0,0 +1,59 @@
|
||||||
|
{
|
||||||
|
"resourceType": "PlanDefinition",
|
||||||
|
"id": "apply-example",
|
||||||
|
"text": {
|
||||||
|
"status": "generated",
|
||||||
|
"div": "<div xmlns=\"http://www.w3.org/1999/xhtml\">General PlanDefinition $apply example resource</div>"
|
||||||
|
},
|
||||||
|
"identifier": [
|
||||||
|
{
|
||||||
|
"use": "official",
|
||||||
|
"value": "apply-example"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"version": "1.0",
|
||||||
|
"name": "Example",
|
||||||
|
"title": "Example for PlanDefinition $apply operation",
|
||||||
|
"type": {
|
||||||
|
"coding": [
|
||||||
|
{
|
||||||
|
"system": "http://hl7.org/fhir/plan-definition-type",
|
||||||
|
"code": "eca-rule",
|
||||||
|
"display": "ECA Rule"
|
||||||
|
}
|
||||||
|
]
|
||||||
|
},
|
||||||
|
"status": "draft",
|
||||||
|
"date": "2017-09-18",
|
||||||
|
"purpose": "Testing",
|
||||||
|
"usage": "This resource is to be used only for testing",
|
||||||
|
"topic": [
|
||||||
|
{
|
||||||
|
"text": "Testing $apply operation"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"library": [
|
||||||
|
{
|
||||||
|
"reference": "Library/plandefinitionApplyTest"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"action": [
|
||||||
|
{
|
||||||
|
"condition": [
|
||||||
|
{
|
||||||
|
"kind": "applicability",
|
||||||
|
"description": "Simple test",
|
||||||
|
"language": "text/cql",
|
||||||
|
"expression": "plandefinitionApplyTest.Results"
|
||||||
|
}
|
||||||
|
],
|
||||||
|
"dynamicValue": [
|
||||||
|
{
|
||||||
|
"description": "Set CarePlan detail definition",
|
||||||
|
"path": "title",
|
||||||
|
"expression": "plandefinitionApplyTest.\"Dynamic Detail Definition\""
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
Loading…
Reference in New Issue