Merge branch 'master' of github.com:jamesagnew/hapi-fhir

This commit is contained in:
jamesagnew 2016-01-05 08:31:24 -05:00
commit b7aa4e15b9
23 changed files with 8070 additions and 12778 deletions

View File

@ -107,7 +107,11 @@ public class RuntimeResourceDefinition extends BaseRuntimeElementCompositeDefini
}
if (!UrlUtil.isValid(profile)) {
String profileWithUrl = theServerBase + "/Profile/" + profile;
String resourceName = "/StructureDefinition/";
if (myContext.getVersion().getVersion() == FhirVersionEnum.DSTU1) {
resourceName = "/Profile/";
}
String profileWithUrl = theServerBase + resourceName + profile;
if (UrlUtil.isValid(profileWithUrl)) {
return profileWithUrl;
}

View File

@ -1,49 +1,21 @@
package ca.uhn.fhir.rest.server.interceptor;
import java.nio.charset.Charset;
/*
* #%L
* HAPI FHIR - Core Library
* %%
* Copyright (C) 2014 - 2015 University Health Network
* %%
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
* #L%
*/
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.HashSet;
import java.util.Set;
import org.apache.commons.lang3.Validate;
import org.hl7.fhir.instance.model.api.IBaseResource;
import ca.uhn.fhir.model.api.Bundle;
import ca.uhn.fhir.model.api.TagList;
import ca.uhn.fhir.rest.api.RestOperationTypeEnum;
import ca.uhn.fhir.rest.method.RequestDetails;
import ca.uhn.fhir.rest.param.ResourceParameter;
import ca.uhn.fhir.rest.server.EncodingEnum;
import ca.uhn.fhir.rest.server.RestfulServerUtils;
import ca.uhn.fhir.rest.server.exceptions.AuthenticationException;
import ca.uhn.fhir.rest.server.exceptions.UnprocessableEntityException;
import ca.uhn.fhir.validation.FhirValidator;
import ca.uhn.fhir.validation.ResultSeverityEnum;
import ca.uhn.fhir.validation.ValidationResult;
/**
* This interceptor intercepts each outgoing response and if it contains a FHIR resource, validates that resource. The
* interceptor may be configured to run any validator modules, and will then add headers to the response or fail the
* request with an {@link UnprocessableEntityException HTTP 422 Unprocessable Entity}.
* This interceptor intercepts each outgoing response and if it contains a FHIR resource, validates that resource. The interceptor may be configured to run any validator modules, and will then add
* headers to the response or fail the request with an {@link UnprocessableEntityException HTTP 422 Unprocessable Entity}.
*/
public class ResponseValidatingInterceptor extends BaseValidatingInterceptor<IBaseResource> {
@ -54,12 +26,42 @@ public class ResponseValidatingInterceptor extends BaseValidatingInterceptor<IBa
private static final org.slf4j.Logger ourLog = org.slf4j.LoggerFactory.getLogger(ResponseValidatingInterceptor.class);
private Set<RestOperationTypeEnum> myExcludeOperationTypes;
/**
* Do not validate the following operations. A common use for this is to exclude {@link RestOperationTypeEnum#METADATA} so that this operation will execute as quickly as possible.
*/
public void addExcludeOperationType(RestOperationTypeEnum theOperationType) {
Validate.notNull(theOperationType, "theOperationType must not be null");
if (myExcludeOperationTypes == null) {
myExcludeOperationTypes = new HashSet<RestOperationTypeEnum>();
}
myExcludeOperationTypes.add(theOperationType);
}
@Override
ValidationResult doValidate(FhirValidator theValidator, IBaseResource theRequest) {
return theValidator.validateWithResult(theRequest);
}
@Override
public boolean outgoingResponse(RequestDetails theRequestDetails, IBaseResource theResponseObject) {
RestOperationTypeEnum operationType = theRequestDetails.getRestOperationType();
if (operationType != null && myExcludeOperationTypes != null && myExcludeOperationTypes.contains(operationType)) {
ourLog.trace("Operation type {} is excluded from validation", operationType);
return true;
}
validate(theResponseObject, theRequestDetails);
return true;
}
@Override
String provideDefaultResponseHeaderName() {
return DEFAULT_RESPONSE_HEADER_NAME;
}
/**
* Sets the name of the response header to add validation failures to
*
@ -71,14 +73,4 @@ public class ResponseValidatingInterceptor extends BaseValidatingInterceptor<IBa
super.setResponseHeaderName(theResponseHeaderName);
}
@Override
String provideDefaultResponseHeaderName() {
return DEFAULT_RESPONSE_HEADER_NAME;
}
@Override
ValidationResult doValidate(FhirValidator theValidator, IBaseResource theRequest) {
return theValidator.validateWithResult(theRequest);
}
}

View File

@ -1,3 +1,4 @@
ca.uhn.fhir.jpa.entity.ResourceTable/
target/
/bin
nohup.out

View File

@ -206,6 +206,13 @@ public class TestRestfulServer extends RestfulServer {
}
@Override
public void destroy() {
super.destroy();
ourLog.info("Server is shutting down");
myAppCtx.destroy();
}
/**
* The public server is deployed to http://fhirtest.uhn.ca and the JEE webserver
* where this FHIR server is deployed is actually fronted by an Apache HTTPd instance,

View File

@ -24,6 +24,7 @@ import org.springframework.transaction.annotation.EnableTransactionManagement;
import ca.uhn.fhir.jpa.config.BaseJavaConfigDstu21;
import ca.uhn.fhir.jpa.dao.DaoConfig;
import ca.uhn.fhir.jpa.util.SubscriptionsRequireManualActivationInterceptorDstu21;
import ca.uhn.fhir.rest.api.RestOperationTypeEnum;
import ca.uhn.fhir.rest.server.interceptor.IServerInterceptor;
import ca.uhn.fhir.rest.server.interceptor.RequestValidatingInterceptor;
import ca.uhn.fhir.rest.server.interceptor.ResponseValidatingInterceptor;
@ -120,6 +121,7 @@ public class TestDstu21Config extends BaseJavaConfigDstu21 {
responseValidator.addValidatorModule(myQuestionnaireResponseValidatorDstu21);
responseValidator.setResponseHeaderValueNoIssues("Validation did not detect any issues");
responseValidator.setFailOnSeverity(null);
responseValidator.addExcludeOperationType(RestOperationTypeEnum.METADATA);
return responseValidator;
}

View File

@ -12,14 +12,14 @@
<bean class="ca.uhn.fhir.to.TesterConfig">
<property name="servers">
<list>
<value>home_dev , DSTU2 , UHN/HAPI Server (DSTU2 FHIR) , http://fhirtest.uhn.ca/baseDstu2</value>
<value>home_21 , DSTU2 , UHN/HAPI Server (DSTU2.1 FHIR) , http://fhirtest.uhn.ca/baseDstu2.1</value>
<value>home , DSTU1 , UHN/HAPI Server (DSTU1 FHIR) , http://fhirtest.uhn.ca/baseDstu1</value>
<value>hidev , DSTU2 , Health Intersections (DSTU2 FHIR) , http://fhir-dev.healthintersections.com.au/open</value>
<value>hi , DSTU1 , Health Intersections (DSTU1 FHIR) , http://fhir.healthintersections.com.au/open</value>
<value>furored2 , DSTU2 , Spark - Furore (DSTU2 FHIR) , http://spark-dstu2.furore.com/fhir</value>
<value>furore , DSTU1 , Spark - Furore (DSTU1 FHIR) , http://spark.furore.com/fhir</value>
<value>sof , DSTU2 , SQL on FHIR - HealthConnex (DSTU2 FHIR) , http://sqlonfhir.azurewebsites.net/fhir</value>
<value>home_dev , DSTU2 , UHN/HAPI Server (DSTU2 FHIR) , http://fhirtest.uhn.ca/baseDstu2</value>
<value>home_21 , DSTU2_1 , UHN/HAPI Server (DSTU2.1 FHIR) , http://fhirtest.uhn.ca/baseDstu2.1</value>
<value>home , DSTU1 , UHN/HAPI Server (DSTU1 FHIR) , http://fhirtest.uhn.ca/baseDstu1</value>
<value>hidev , DSTU2 , Health Intersections (DSTU2 FHIR) , http://fhir-dev.healthintersections.com.au/open</value>
<value>hi , DSTU1 , Health Intersections (DSTU1 FHIR) , http://fhir.healthintersections.com.au/open</value>
<value>furored2 , DSTU2 , Spark - Furore (DSTU2 FHIR) , http://spark-dstu2.furore.com/fhir</value>
<value>furore , DSTU1 , Spark - Furore (DSTU1 FHIR) , http://spark.furore.com/fhir</value>
<value>sof , DSTU2 , SQL on FHIR - HealthConnex (DSTU2 FHIR) , http://sqlonfhir.azurewebsites.net/fhir</value>
<!--
<value>blaze , DSTU1 , Blaze (Orion Health) , https://fhir.orionhealth.com/blaze/fhir</value>
<value>oridashi , DSTU1 , Oridashi , http://demo.oridashi.com.au:8190</value>

View File

@ -2,7 +2,9 @@ package org.hl7.fhir.dstu21.hapi.validation;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
import org.hl7.fhir.dstu21.formats.IParser;
@ -33,6 +35,7 @@ import ca.uhn.fhir.rest.server.exceptions.InvalidRequestException;
public final class HapiWorkerContext implements IWorkerContext, ValueSetExpander, ValueSetExpanderFactory {
private final FhirContext myCtx;
private IValidationSupport myValidationSupport;
private Map<String, Resource> myFetchedResourceCache = new HashMap<String, Resource>();
public HapiWorkerContext(FhirContext theCtx, IValidationSupport theValidationSupport) {
myCtx = theCtx;
@ -58,7 +61,15 @@ public final class HapiWorkerContext implements IWorkerContext, ValueSetExpander
if (myValidationSupport == null) {
return null;
} else {
return myValidationSupport.fetchResource(myCtx, theClass, theUri);
@SuppressWarnings("unchecked")
T retVal = (T) myFetchedResourceCache.get(theUri);
if (retVal == null) {
retVal = myValidationSupport.fetchResource(myCtx, theClass, theUri);
if (retVal != null) {
myFetchedResourceCache.put(theUri, retVal);
}
}
return retVal;
}
}
@ -132,7 +143,7 @@ public final class HapiWorkerContext implements IWorkerContext, ValueSetExpander
}
for (ConceptSetComponent nextComposeConceptSet : theVs.getCompose().getInclude()) {
if (StringUtils.equals(theSystem, nextComposeConceptSet.getSystem())) {
if (theSystem == null || StringUtils.equals(theSystem, nextComposeConceptSet.getSystem())) {
for (ConceptReferenceComponent nextComposeCode : nextComposeConceptSet.getConcept()) {
ConceptDefinitionComponent conceptDef = new ConceptDefinitionComponent();
conceptDef.setCode(nextComposeCode.getCode());

View File

@ -93,6 +93,8 @@ public class ValueSetExpanderSimple implements ValueSetExpander {
}
return new ValueSetExpansionOutcome(focus, null);
} catch (RuntimeException e) {
// TODO: we should put something more specific instead of just Exception below, since
// it swallows bugs.. what would be expected to be caught there?
throw e;
} catch (Exception e) {
// well, we couldn't expand, so we'll return an interface to a checker that can check membership of the set

View File

@ -21,6 +21,7 @@ import org.hl7.fhir.dstu21.model.ElementDefinition.TypeRefComponent;
import org.hl7.fhir.dstu21.model.Enumerations.BindingStrength;
import org.hl7.fhir.dstu21.model.Extension;
import org.hl7.fhir.dstu21.model.HumanName;
import org.hl7.fhir.dstu21.model.IdType;
import org.hl7.fhir.dstu21.model.Identifier;
import org.hl7.fhir.dstu21.model.OperationOutcome.IssueSeverity;
import org.hl7.fhir.dstu21.model.OperationOutcome.IssueType;
@ -946,11 +947,15 @@ public class InstanceValidator extends BaseValidator implements IResourceValidat
WrapperElement we = resolve(ref, stack);
String ft;
if (we != null)
boolean hint;
if (we != null) {
ft = we.getResourceType();
else
hint = hint(errors, IssueType.STRUCTURE, element.line(), element.col(), path, ft != null, "Unable to determine type of target resource");
} else {
ft = tryParse(ref);
if (hint(errors, IssueType.STRUCTURE, element.line(), element.col(), path, ft != null, "Unable to determine type of target resource")) {
hint = hint(errors, IssueType.STRUCTURE, element.line(), element.col(), path, ft != null, "Unable to determine type of target resource in: {0}", ref);
}
if (hint) {
boolean ok = false;
CommaSeparatedStringBuilder b = new CommaSeparatedStringBuilder();
for (TypeRefComponent type : container.getType()) {
@ -1493,18 +1498,11 @@ public class InstanceValidator extends BaseValidator implements IResourceValidat
}
private String tryParse(String ref) {
String[] parts = ref.split("\\/");
switch (parts.length) {
case 1:
IdType id = new IdType(ref);
if (!id.hasResourceType()) {
return null;
case 2:
return checkResourceType(parts[0]);
default:
if (parts[parts.length - 2].equals("_history"))
return checkResourceType(parts[parts.length - 4]);
else
return checkResourceType(parts[parts.length - 2]);
}
return checkResourceType(id.getResourceType());
}
private boolean typesAreAllReference(List<TypeRefComponent> theType) {

View File

@ -30,6 +30,7 @@ import org.junit.Test;
import ca.uhn.fhir.context.FhirContext;
import ca.uhn.fhir.rest.annotation.OptionalParam;
import ca.uhn.fhir.rest.annotation.Search;
import ca.uhn.fhir.rest.api.RestOperationTypeEnum;
import ca.uhn.fhir.rest.param.StringParam;
import ca.uhn.fhir.rest.server.interceptor.ResponseValidatingInterceptor;
import ca.uhn.fhir.util.PortUtil;
@ -111,6 +112,7 @@ public class ResponseValidatingInterceptorTest {
assertThat(status.toString(), not(containsString("X-HAPI-Response-Validation")));
}
@Test
public void testSearchJsonValidNoValidatorsSpecifiedDefaultMessage() throws Exception {
myInterceptor.setResponseHeaderValueNoIssues("NO ISSUES");
@ -185,6 +187,45 @@ public class ResponseValidatingInterceptorTest {
assertThat(status.toString(), containsString("X-HAPI-Response-Validation"));
}
@Test
public void testSkipEnabled() throws Exception {
IValidatorModule module = new FhirInstanceValidator();
myInterceptor.addValidatorModule(module);
myInterceptor.addExcludeOperationType(RestOperationTypeEnum.METADATA);
myInterceptor.setResponseHeaderValueNoIssues("No issues");
HttpGet httpPost = new HttpGet("http://localhost:" + ourPort + "/metadata");
HttpResponse status = ourClient.execute(httpPost);
String responseContent = IOUtils.toString(status.getEntity().getContent());
IOUtils.closeQuietly(status.getEntity().getContent());
ourLog.info("Response was:\n{}", status);
ourLog.info("Response was:\n{}", responseContent);
assertEquals(200, status.getStatusLine().getStatusCode());
assertThat(status.toString(), not(containsString("X-HAPI-Response-Validation")));
}
@Test
public void testSkipNotEnabled() throws Exception {
IValidatorModule module = new FhirInstanceValidator();
myInterceptor.addValidatorModule(module);
myInterceptor.setResponseHeaderValueNoIssues("No issues");
HttpGet httpPost = new HttpGet("http://localhost:" + ourPort + "/metadata");
HttpResponse status = ourClient.execute(httpPost);
String responseContent = IOUtils.toString(status.getEntity().getContent());
IOUtils.closeQuietly(status.getEntity().getContent());
ourLog.info("Response was:\n{}", status);
ourLog.info("Response was:\n{}", responseContent);
assertEquals(200, status.getStatusLine().getStatusCode());
assertThat(status.toString(), (containsString("X-HAPI-Response-Validation")));
}
@Test
public void testSearchXmlValidNoValidatorsSpecified() throws Exception {
Patient patient = new Patient();

View File

@ -9,12 +9,19 @@ import static org.mockito.Matchers.any;
import static org.mockito.Mockito.mock;
import static org.mockito.Mockito.when;
import java.io.IOException;
import java.io.InputStream;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
<<<<<<< HEAD
import java.util.Set;
||||||| merged common ancestors
=======
import java.util.zip.GZIPInputStream;
>>>>>>> 7005cd52d907eb7dbbfea6d181ad3f4c8870c03f
import org.apache.commons.io.IOUtils;
import org.hl7.fhir.dstu21.hapi.validation.DefaultProfileValidationSupport;
@ -99,7 +106,8 @@ public class FhirInstanceValidatorTest {
when(myMockSupport.fetchResource(any(FhirContext.class), any(Class.class), any(String.class))).thenAnswer(new Answer<IBaseResource>() {
@Override
public IBaseResource answer(InvocationOnMock theInvocation) throws Throwable {
IBaseResource retVal = myDefaultValidationSupport.fetchResource((FhirContext) theInvocation.getArguments()[0], (Class<IBaseResource>) theInvocation.getArguments()[1], (String) theInvocation.getArguments()[2]);
IBaseResource retVal = myDefaultValidationSupport.fetchResource((FhirContext) theInvocation.getArguments()[0], (Class<IBaseResource>) theInvocation.getArguments()[1],
(String) theInvocation.getArguments()[2]);
ourLog.info("fetchResource({}, {}) : {}", new Object[] { theInvocation.getArguments()[1], theInvocation.getArguments()[2], retVal });
return retVal;
}
@ -170,9 +178,9 @@ public class FhirInstanceValidatorTest {
@Test
public void testValidateRawJsonResource() {
// @formatter:off
String input = "{" + "\"resourceType\":\"Patient\"," + "\"id\":\"123\"" + "}";
// @formatter:on
//@formatter:off
String input = "{" + "\"resourceType\":\"Patient\"," + "\"id\":\"123\"" + "}";
//@formatter:on
ValidationResult output = myVal.validateWithResult(input);
assertEquals(output.toString(), 0, output.getMessages().size());
@ -181,8 +189,8 @@ public class FhirInstanceValidatorTest {
@Test
public void testValidateRawJsonResourceBadAttributes() {
// @formatter:off
String input = "{" + "\"resourceType\":\"Patient\"," + "\"id\":\"123\"," + "\"foo\":\"123\"" + "}";
// @formatter:on
String input = "{" + "\"resourceType\":\"Patient\"," + "\"id\":\"123\"," + "\"foo\":\"123\"" + "}";
// @formatter:on
ValidationResult output = myVal.validateWithResult(input);
assertEquals(output.toString(), 1, output.getMessages().size());
@ -195,13 +203,35 @@ public class FhirInstanceValidatorTest {
@Test
public void testValidateRawXmlResource() {
// @formatter:off
String input = "<Patient xmlns=\"http://hl7.org/fhir\">" + "<id value=\"123\"/>" + "</Patient>";
// @formatter:on
String input = "<Patient xmlns=\"http://hl7.org/fhir\">" + "<id value=\"123\"/>" + "</Patient>";
// @formatter:on
ValidationResult output = myVal.validateWithResult(input);
assertEquals(output.toString(), 0, output.getMessages().size());
}
@Test
public void testValidateBigRawJsonResource() throws Exception {
InputStream stream = FhirInstanceValidatorTest.class.getResourceAsStream("/conformance.json.gz");
stream = new GZIPInputStream(stream);
String input = IOUtils.toString(stream);
long start = System.currentTimeMillis();
ValidationResult output = null;
int passes = 1;
for (int i = 0; i < passes; i++) {
ourLog.info("Pass {}", i+1);
output = myVal.validateWithResult(input);
}
long delay = System.currentTimeMillis() - start;
long per = delay / passes;
logResultsAndReturnAll(output);
ourLog.info("Took {} ms -- {}ms / pass", delay, per);
}
@Test
public void testValidateRawXmlResourceBadAttributes() {
// @formatter:off
@ -329,9 +359,12 @@ public class FhirInstanceValidatorTest {
@Test
public void testValidateResourceWithDefaultValuesetBadCode() {
String input = "<Observation xmlns=\"http://hl7.org/fhir\">\n" + " <status value=\"notvalidcode\"/>\n" + " <code>\n" + " <text value=\"No code here!\"/>\n" + " </code>\n" + "</Observation>";
String input = "<Observation xmlns=\"http://hl7.org/fhir\">\n" + " <status value=\"notvalidcode\"/>\n" + " <code>\n" + " <text value=\"No code here!\"/>\n" + " </code>\n"
+ "</Observation>";
ValidationResult output = myVal.validateWithResult(input);
assertEquals("The value provided is not in the value set http://hl7.org/fhir/ValueSet/observation-status (http://hl7.org/fhir/ValueSet/observation-status, and a code is required from this value set", output.getMessages().get(0).getMessage());
assertEquals(
"The value provided is not in the value set http://hl7.org/fhir/ValueSet/observation-status (http://hl7.org/fhir/ValueSet/observation-status, and a code is required from this value set",
output.getMessages().get(0).getMessage());
}
@Test
@ -344,7 +377,9 @@ public class FhirInstanceValidatorTest {
List<SingleValidationMessage> all = logResultsAndReturnAll(output);
assertEquals(1, all.size());
assertEquals("/f:Patient/f:identifier/f:type", all.get(0).getLocationString());
assertEquals("None of the codes provided are in the value set http://hl7.org/fhir/ValueSet/identifier-type (http://hl7.org/fhir/ValueSet/identifier-type, and a code should come from this value set unless it has no suitable code", all.get(0).getMessage());
assertEquals(
"None of the codes provided are in the value set http://hl7.org/fhir/ValueSet/identifier-type (http://hl7.org/fhir/ValueSet/identifier-type, and a code should come from this value set unless it has no suitable code",
all.get(0).getMessage());
assertEquals(ResultSeverityEnum.WARNING, all.get(0).getSeverity());
}

View File

@ -99,7 +99,7 @@ public class TesterConfig {
Validate.notBlank(nextSplit[3], "theServerBase can not be blank");
myIdToServerName.put(nextSplit[0].trim(), nextSplit[2].trim());
myIdToServerBase.put(nextSplit[0].trim(), nextSplit[3].trim());
myIdToFhirVersion.put(nextSplit[0].trim(), FhirVersionEnum.valueOf(nextSplit[1].trim().toUpperCase()));
myIdToFhirVersion.put(nextSplit[0].trim(), FhirVersionEnum.valueOf(nextSplit[1].trim().toUpperCase().replace('.', '_')));
}
}
}

View File

@ -27,7 +27,7 @@
POSSIBILITY OF SUCH DAMAGE.
Generated on Mon, Dec 21, 2015 20:18-0500 for FHIR v1.2.0
Generated on Tue, Jan 5, 2016 07:13-0500 for FHIR v1.2.0
-->
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns="http://hl7.org/fhir" xmlns:xhtml="http://www.w3.org/1999/xhtml" xmlns:xml="http://www.w3.org/XML/1998/namespace" targetNamespace="http://hl7.org/fhir" elementFormDefault="qualified" version="1.2.0">
<!-- Note: When using this schema with some tools, it may also be necessary to declare xmlns:xml="http://www.w3.org/XML/1998/namespace", however this causes performance issues with other tools and thus is not in the base schemas. -->
@ -3678,6 +3678,37 @@
</xs:annotation>
<xs:complexContent>
<xs:extension base="DomainResource">
<xs:sequence>
<xs:element name="event" type="AuditEvent.Event" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation xml:lang="en">Identifies the name, action type, time, and disposition of the audited event.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="participant" type="AuditEvent.Participant" minOccurs="1" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation xml:lang="en">A person, a hardware device or software process.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="source" type="AuditEvent.Source" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation xml:lang="en">Application systems and processes.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="object" type="AuditEvent.Object" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation xml:lang="en">Specific instances of data or objects that have been accessed.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="AuditEvent.Event">
<xs:annotation>
<xs:documentation xml:lang="en">A record of an event made for purposes of maintaining a security log. Typical uses include detection of intrusion attempts and monitoring for inappropriate usage.</xs:documentation>
</xs:annotation>
<xs:complexContent>
<xs:extension base="BackboneElement">
<xs:sequence>
<xs:element name="type" minOccurs="1" maxOccurs="1" type="Coding">
<xs:annotation>
@ -3694,7 +3725,7 @@
<xs:documentation xml:lang="en">Indicator for type of action performed during the event that generated the audit.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="recorded" minOccurs="1" maxOccurs="1" type="instant">
<xs:element name="dateTime" minOccurs="1" maxOccurs="1" type="instant">
<xs:annotation>
<xs:documentation xml:lang="en">The time when the event occurred on the source.</xs:documentation>
</xs:annotation>
@ -3714,26 +3745,11 @@
<xs:documentation xml:lang="en">The purposeOfUse (reason) that was used during the event being recorded.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="agent" type="AuditEvent.Agent" minOccurs="1" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation xml:lang="en">A person, a hardware device or software process.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="source" type="AuditEvent.Source" minOccurs="1" maxOccurs="1">
<xs:annotation>
<xs:documentation xml:lang="en">Application systems and processes.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="entity" type="AuditEvent.Entity" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation xml:lang="en">Specific instances of data or objects that have been accessed.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="AuditEvent.Agent">
<xs:complexType name="AuditEvent.Participant">
<xs:annotation>
<xs:documentation xml:lang="en">A record of an event made for purposes of maintaining a security log. Typical uses include detection of intrusion attempts and monitoring for inappropriate usage.</xs:documentation>
</xs:annotation>
@ -3747,7 +3763,7 @@
</xs:element>
<xs:element name="reference" minOccurs="0" maxOccurs="1" type="Reference">
<xs:annotation>
<xs:documentation xml:lang="en">Direct reference to a resource that identifies the agent.</xs:documentation>
<xs:documentation xml:lang="en">Direct reference to a resource that identifies the participant.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="userId" minOccurs="0" maxOccurs="1" type="Identifier">
@ -3757,7 +3773,7 @@
</xs:element>
<xs:element name="altId" minOccurs="0" maxOccurs="1" type="string">
<xs:annotation>
<xs:documentation xml:lang="en">Alternative agent Identifier. For a human, this should be a user identifier text string from authentication system. This identifier would be one known to a common authentication system (e.g. single sign-on), if available.</xs:documentation>
<xs:documentation xml:lang="en">Alternative Participant Identifier. For a human, this should be a user identifier text string from authentication system. This identifier would be one known to a common authentication system (e.g. single sign-on), if available.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="name" minOccurs="0" maxOccurs="1" type="string">
@ -3792,7 +3808,7 @@
</xs:element>
<xs:element name="purposeOfUse" minOccurs="0" maxOccurs="unbounded" type="Coding">
<xs:annotation>
<xs:documentation xml:lang="en">The reason (purpose of use), specific to this agent, that was used during the event being recorded.</xs:documentation>
<xs:documentation xml:lang="en">The reason (purpose of use), specific to this participant, that was used during the event being recorded.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
@ -3846,7 +3862,7 @@
</xs:extension>
</xs:complexContent>
</xs:complexType>
<xs:complexType name="AuditEvent.Entity">
<xs:complexType name="AuditEvent.Object">
<xs:annotation>
<xs:documentation xml:lang="en">A record of an event made for purposes of maintaining a security log. Typical uses include detection of intrusion attempts and monitoring for inappropriate usage.</xs:documentation>
</xs:annotation>
@ -3855,12 +3871,12 @@
<xs:sequence>
<xs:element name="identifier" minOccurs="0" maxOccurs="1" type="Identifier">
<xs:annotation>
<xs:documentation xml:lang="en">Identifies a specific instance of the entity. The reference should always be version specific.</xs:documentation>
<xs:documentation xml:lang="en">Identifies a specific instance of the participant object. The reference should always be version specific.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="reference" minOccurs="0" maxOccurs="1" type="Reference">
<xs:annotation>
<xs:documentation xml:lang="en">Identifies a specific instance of the entity. The reference should always be version specific.</xs:documentation>
<xs:documentation xml:lang="en">Identifies a specific instance of the participant object. The reference should always be version specific.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="type" minOccurs="0" maxOccurs="1" type="Coding">
@ -3870,37 +3886,37 @@
</xs:element>
<xs:element name="role" minOccurs="0" maxOccurs="1" type="Coding">
<xs:annotation>
<xs:documentation xml:lang="en">Code representing the role the entity played in the event being audited.</xs:documentation>
<xs:documentation xml:lang="en">Code representing the functional application role of Participant Object being audited.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="lifecycle" minOccurs="0" maxOccurs="1" type="Coding">
<xs:annotation>
<xs:documentation xml:lang="en">Identifier for the data life-cycle stage for the entity.</xs:documentation>
<xs:documentation xml:lang="en">Identifier for the data life-cycle stage for the participant object.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="securityLabel" minOccurs="0" maxOccurs="unbounded" type="Coding">
<xs:annotation>
<xs:documentation xml:lang="en">Denotes security labels for the identified entity.</xs:documentation>
<xs:documentation xml:lang="en">Denotes security labels for the identified object.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="name" minOccurs="0" maxOccurs="1" type="string">
<xs:annotation>
<xs:documentation xml:lang="en">A name of the entity in the audit event.</xs:documentation>
<xs:documentation xml:lang="en">An instance-specific descriptor of the Participant Object ID audited, such as a person's name.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="description" minOccurs="0" maxOccurs="1" type="string">
<xs:annotation>
<xs:documentation xml:lang="en">Text that describes the entity in more detail.</xs:documentation>
<xs:documentation xml:lang="en">Text that describes the object in more detail.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="query" minOccurs="0" maxOccurs="1" type="base64Binary">
<xs:annotation>
<xs:documentation xml:lang="en">The query parameters for a query-type entities.</xs:documentation>
<xs:documentation xml:lang="en">The actual query for a query-type participant object.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="detail" type="AuditEvent.Detail" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation xml:lang="en">Additional Information about the entity.</xs:documentation>
<xs:documentation xml:lang="en">Additional Information about the Object.</xs:documentation>
</xs:annotation>
</xs:element>
</xs:sequence>
@ -21596,12 +21612,12 @@ Specifically if 'boolean' datatype is selected, then the following logic applies
<xs:documentation xml:lang="en">The instant of time at which the activity was recorded.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="reason" minOccurs="0" maxOccurs="unbounded" type="Coding">
<xs:element name="reason" minOccurs="0" maxOccurs="unbounded" type="CodeableConcept">
<xs:annotation>
<xs:documentation xml:lang="en">The reason that the activity was taking place.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="activity" minOccurs="0" maxOccurs="1" type="Coding">
<xs:element name="activity" minOccurs="0" maxOccurs="1" type="CodeableConcept">
<xs:annotation>
<xs:documentation xml:lang="en">An activity is something that occurs over a period of time and acts upon or with entities; it may include consuming, processing, transforming, modifying, relocating, using, or generating entities.</xs:documentation>
</xs:annotation>
@ -21616,7 +21632,7 @@ Specifically if 'boolean' datatype is selected, then the following logic applies
<xs:documentation xml:lang="en">Policy or plan the activity was defined by. Typically, a single activity may have multiple applicable policy documents, such as patient consent, guarantor funding, etc.</xs:documentation>
</xs:annotation>
</xs:element>
<xs:element name="agent" type="Provenance.Agent" minOccurs="1" maxOccurs="unbounded">
<xs:element name="agent" type="Provenance.Agent" minOccurs="0" maxOccurs="unbounded">
<xs:annotation>
<xs:documentation xml:lang="en">An agent takes a role in an activity such that the agent can be assigned some degree of responsibility for the activity taking place. An agent can be a person, an organization, software, or other entities that may be ascribed responsibility.</xs:documentation>
</xs:annotation>

View File

@ -7,10 +7,10 @@
xmlns:html="http://www.w3.org/TR/REC-html40">
<DocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
<Author>Grahame</Author>
<LastAuthor>Moehrke, John (GE Healthcare)</LastAuthor>
<LastAuthor>Lloyd</LastAuthor>
<Created>2012-03-19T11:12:07Z</Created>
<LastSaved>2015-12-15T23:37:14Z</LastSaved>
<Version>14.00</Version>
<LastSaved>2015-09-17T19:09:15Z</LastSaved>
<Version>15.00</Version>
</DocumentProperties>
<OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office">
<AllowPNG/>
@ -20,7 +20,7 @@
<WindowWidth>28800</WindowWidth>
<WindowTopX>0</WindowTopX>
<WindowTopY>0</WindowTopY>
<ActiveSheet>3</ActiveSheet>
<ActiveSheet>2</ActiveSheet>
<RefModeR1C1/>
<ProtectStructure>False</ProtectStructure>
<ProtectWindows>False</ProtectWindows>
@ -877,7 +877,7 @@
<Table ss:ExpandedColumnCount="27" ss:ExpandedRowCount="104" x:FullColumns="1"
x:FullRows="1" ss:StyleID="s69" ss:DefaultRowHeight="15">
<Column ss:StyleID="s70" ss:Width="227.25"/>
<Column ss:StyleID="s69" ss:AutoFitWidth="0" ss:Width="90"/>
<Column ss:StyleID="s69" ss:AutoFitWidth="0" ss:Width="77.25"/>
<Column ss:StyleID="s69" ss:Width="29.25"/>
<Column ss:StyleID="s69" ss:Width="34.5"/>
<Column ss:StyleID="s69" ss:AutoFitWidth="0" ss:Width="119.25"/>
@ -1045,7 +1045,7 @@
<Cell ss:StyleID="s87"><NamedCell ss:Name="_FilterDatabase"/></Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="45">
<Cell ss:StyleID="s88"><Data ss:Type="String">!AuditEvent.event</Data><NamedCell
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.event</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">1..1</Data><NamedCell
@ -1083,7 +1083,7 @@
<Cell ss:StyleID="s94"><NamedCell ss:Name="_FilterDatabase"/></Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="105">
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.type</Data><NamedCell
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.event.type</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">1..1</Data><NamedCell
@ -1115,8 +1115,7 @@
<Cell ss:StyleID="s92"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s92"><Data ss:Type="String">EventId</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s92"><Data ss:Type="String">Activity</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s92"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s92"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s92"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s93"><NamedCell ss:Name="_FilterDatabase"/></Cell>
@ -1124,7 +1123,7 @@
<Cell ss:StyleID="s94"><NamedCell ss:Name="_FilterDatabase"/></Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="75">
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.subtype</Data><NamedCell
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.event.subtype</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">0..*</Data><NamedCell
@ -1164,7 +1163,7 @@
<Cell ss:StyleID="s94"><NamedCell ss:Name="_FilterDatabase"/></Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="60">
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.action</Data><NamedCell
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.event.action</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">0..1</Data><NamedCell
@ -1187,7 +1186,7 @@
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s90"><Data ss:Type="String">Indicator for type of action performed during the event that generated the audit</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s91"><Data ss:Type="String">This broadly indicates what kind of action was done on the AuditEvent.entity by the AuditEvent.agent</Data><NamedCell
<Cell ss:StyleID="s91"><Data ss:Type="String">This broadly indicates what kind of action was done on the Participant Object</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s90"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s91"><NamedCell ss:Name="_FilterDatabase"/></Cell>
@ -1204,7 +1203,7 @@
<Cell ss:StyleID="s94"><NamedCell ss:Name="_FilterDatabase"/></Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="150">
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.recorded</Data><NamedCell
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.event.dateTime</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">1..1</Data><NamedCell
@ -1246,7 +1245,7 @@
<Cell ss:StyleID="s94"><NamedCell ss:Name="_FilterDatabase"/></Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="135">
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.outcome</Data><NamedCell
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.event.outcome</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">0..1</Data><NamedCell
@ -1286,7 +1285,7 @@
<Cell ss:StyleID="s94"><NamedCell ss:Name="_FilterDatabase"/></Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="30">
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.outcomeDesc</Data><NamedCell
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.event.outcomeDesc</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">0..1</Data><NamedCell
@ -1324,7 +1323,7 @@
<Cell ss:StyleID="s94"><NamedCell ss:Name="_FilterDatabase"/></Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="195">
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.purposeOfEvent</Data><NamedCell
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.event.purposeOfEvent</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">0..*</Data><NamedCell
@ -1348,7 +1347,7 @@
<Cell ss:StyleID="s90"><Data ss:Type="String">The purposeOfUse (reason) that was used during the event being recorded. </Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s91"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s90"><Data ss:Type="String">Use AuditEvent.agent.purposeOfUse when you know that is specific to the agent, otherwise use AuditEvent.purposeOfEvent. For example, during a machine-to-machine transfer it might not be obvious to the audit system who caused the event, but it does know why.</Data><NamedCell
<Cell ss:StyleID="s90"><Data ss:Type="String">Use participant.purposeOfUse when you know that is specific to the participant, otherwise use event.purposeOfEvent. For example, during a machine-to-machine transfer it might not be obvious to the audit system who caused the event, but it does know why.</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s91"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s92"><Data ss:Type="String">* .reasonCode [ControlActReason when Act.class = CACT Control Act]&#10;*.outboundRelationship[typeCode=RSON].target</Data><NamedCell
@ -1366,10 +1365,9 @@
<Cell ss:StyleID="s94"><NamedCell ss:Name="_FilterDatabase"/></Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="180">
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.agent</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">ActiveParticipant</Data><NamedCell
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.participant</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">1..*</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
@ -1386,7 +1384,7 @@
<Cell ss:StyleID="s89"><Data ss:Type="String">A person, a hardware device or software process</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s90"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s91"><Data ss:Type="String">The event has one or more active agents</Data><NamedCell
<Cell ss:StyleID="s91"><Data ss:Type="String">The event has one or more active participants</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s90"><Data ss:Type="String">There may be more than one user per event, for example, in cases of actions initiated by one user for other users, or in events that involve more than one user, hardware device, or system process. However, only one user may be the initiator/requestor for the event</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
@ -1407,7 +1405,7 @@
<Cell ss:StyleID="s94"><NamedCell ss:Name="_FilterDatabase"/></Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="135">
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.agent.role</Data><NamedCell
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.participant.role</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">0..*</Data><NamedCell
@ -1448,7 +1446,7 @@
<Cell ss:StyleID="s94"><NamedCell ss:Name="_FilterDatabase"/></Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="45">
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.agent.reference</Data><NamedCell
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.participant.reference</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">0..1</Data><NamedCell
@ -1468,7 +1466,7 @@
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">Direct reference to resource</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s90"><Data ss:Type="String">Direct reference to a resource that identifies the agent</Data><NamedCell
<Cell ss:StyleID="s90"><Data ss:Type="String">Direct reference to a resource that identifies the participant</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s91"><Data ss:Type="String">This field ties an audit event to a specific resource</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
@ -1488,7 +1486,7 @@
<Cell ss:StyleID="s94"><NamedCell ss:Name="_FilterDatabase"/></Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="120">
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.agent.userId</Data><NamedCell
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.participant.userId</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">0..1</Data><NamedCell
@ -1530,7 +1528,7 @@
<Cell ss:StyleID="s94"><NamedCell ss:Name="_FilterDatabase"/></Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="270">
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.agent.altId</Data><NamedCell
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.participant.altId</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">0..1</Data><NamedCell
@ -1549,7 +1547,7 @@
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">Alternative User id e.g. authentication</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s90"><Data ss:Type="String">Alternative agent Identifier. For a human, this should be a user identifier text string from authentication system. This identifier would be one known to a common authentication system (e.g. single sign-on), if available</Data><NamedCell
<Cell ss:StyleID="s90"><Data ss:Type="String">Alternative Participant Identifier. For a human, this should be a user identifier text string from authentication system. This identifier would be one known to a common authentication system (e.g. single sign-on), if available</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s91"><Data ss:Type="String">In some situations a human user may authenticate with one identity but, to access a specific application system, may use a synonymous identify. For example, some &quot;single sign on&quot; implementations will do this. The alternative identifier would then be the original identify used for authentication, and the User ID is the one known to and used by the application</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
@ -1569,7 +1567,7 @@
<Cell ss:StyleID="s94"><NamedCell ss:Name="_FilterDatabase"/></Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="120">
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.agent.name</Data><NamedCell
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.participant.name</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">0..1</Data><NamedCell
@ -1608,7 +1606,7 @@
<Cell ss:StyleID="s94"><NamedCell ss:Name="_FilterDatabase"/></Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="120">
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.agent.requestor</Data><NamedCell
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.participant.requestor</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">1..1</Data><NamedCell
@ -1631,7 +1629,7 @@
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s91"><Data ss:Type="String">This value is used to distinguish between requestor-users and recipient-users. For example, one person may initiate a report-output to be sent to another user </Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s90"><Data ss:Type="String">There can only be one initiator. If the initiator is not clear, then do not choose any one agent as the initiator</Data><NamedCell
<Cell ss:StyleID="s90"><Data ss:Type="String">There can only be one initiator. If the initiator is not clear, then do not choose any one participant as the initiator</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s91"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s92"><Data ss:Type="String">If participation.typeCode was author, then true</Data><NamedCell
@ -1647,7 +1645,7 @@
<Cell ss:StyleID="s94"><NamedCell ss:Name="_FilterDatabase"/></Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="120">
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.agent.location</Data><NamedCell
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.participant.location</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">0..1</Data><NamedCell
@ -1685,7 +1683,7 @@
<Cell ss:StyleID="s94"><NamedCell ss:Name="_FilterDatabase"/></Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="120">
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.agent.policy</Data><NamedCell
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.participant.policy</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">0..*</Data><NamedCell
@ -1725,7 +1723,7 @@
<Cell ss:StyleID="s94"><NamedCell ss:Name="_FilterDatabase"/></Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="90">
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.agent.media</Data><NamedCell
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.participant.media</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">0..1</Data><NamedCell
@ -1765,7 +1763,7 @@
<Cell ss:StyleID="s94"><NamedCell ss:Name="_FilterDatabase"/></Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="45">
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.agent.network</Data><NamedCell
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.participant.network</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">0..1</Data><NamedCell
@ -1801,7 +1799,7 @@
<Cell ss:StyleID="s94"><NamedCell ss:Name="_FilterDatabase"/></Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="210">
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.agent.network.address</Data><NamedCell
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.participant.network.address</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">0..1</Data><NamedCell
@ -1841,7 +1839,7 @@
<Cell ss:StyleID="s94"><NamedCell ss:Name="_FilterDatabase"/></Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="180">
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.agent.network.type</Data><NamedCell
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.participant.network.type</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">0..1</Data><NamedCell
@ -1880,7 +1878,7 @@
<Cell ss:StyleID="s94"><NamedCell ss:Name="_FilterDatabase"/></Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="195">
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.agent.purposeOfUse</Data><NamedCell
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.participant.purposeOfUse</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">0..*</Data><NamedCell
@ -1900,10 +1898,10 @@
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">Reason given for this user</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s90"><Data ss:Type="String">The reason (purpose of use), specific to this agent, that was used during the event being recorded. </Data><NamedCell
<Cell ss:StyleID="s90"><Data ss:Type="String">The reason (purpose of use), specific to this participant, that was used during the event being recorded. </Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s91"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s90"><Data ss:Type="String">Use AuditEvent.agent.purposeOfUse when you know that is specific to the agent, otherwise use AuditEvent.purposeOfEvent. For example, during a machine-to-machine transfer it might not be obvious to the audit system who caused the event, but it does know why.</Data><NamedCell
<Cell ss:StyleID="s90"><Data ss:Type="String">Use participant.purposeOfUse when you know that is specific to the participant, otherwise use event.purposeOfEvent. For example, during a machine-to-machine transfer it might not be obvious to the audit system who caused the event, but it does know why.</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s91"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s92"><Data ss:Type="String">*.reasonCode [ActHealthInformationPurposeOfUseReason codes/v:PurposeOfUse&#10;(2.16.840.1.113883.1.11.20448)&#10;* .outboundRelationship[typeCode=RSON or SUBJ].target</Data><NamedCell
@ -2108,10 +2106,9 @@
<Cell ss:StyleID="s94"><NamedCell ss:Name="_FilterDatabase"/></Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="165">
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.entity</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">ParticipantObject</Data><NamedCell
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.object</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">0..*</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
@ -2129,9 +2126,9 @@
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s90"><Data ss:Type="String">Specific instances of data or objects that have been accessed</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s91"><Data ss:Type="String">The event may have other entities involved</Data><NamedCell
<Cell ss:StyleID="s91"><Data ss:Type="String">The event may have other objects involved</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s90"><Data ss:Type="String">Required unless the values for event identification, agent identification, and audit source identification are sufficient to document the entire auditable event. Because events may have more than one entity, this group can be a repeating set of values.</Data><NamedCell
<Cell ss:StyleID="s90"><Data ss:Type="String">Required unless the values for Event Identification, Active Participant Identification, and Audit Source Identification are sufficient to document the entire auditable event. Because events may have more than one participant object, this group can be a repeating set of values.</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s91"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s92"><Data ss:Type="String">.outboundRelationship[typeCode=SUBJ].target or .participation[typeCode=SBJ].role</Data><NamedCell
@ -2150,7 +2147,7 @@
<Cell ss:StyleID="s94"><NamedCell ss:Name="_FilterDatabase"/></Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="60">
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.entity.identifier</Data><NamedCell
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.object.identifier</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">0..1</Data><NamedCell
@ -2170,10 +2167,10 @@
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">Specific instance of object (e.g. versioned)</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s90"><Data ss:Type="String">Identifies a specific instance of the entity. The reference should always be version specific</Data><NamedCell
<Cell ss:StyleID="s90"><Data ss:Type="String">Identifies a specific instance of the participant object. The reference should always be version specific</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s91"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s90"><Data ss:Type="String">Identifier detail depends on entity type</Data><NamedCell
<Cell ss:StyleID="s90"><Data ss:Type="String">Identifier detail depends on object type</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s91"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s92"><Data ss:Type="String">.id.extension</Data><NamedCell
@ -2189,7 +2186,7 @@
<Cell ss:StyleID="s94"><NamedCell ss:Name="_FilterDatabase"/></Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="60">
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.entity.reference</Data><NamedCell
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.object.reference</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">0..1</Data><NamedCell
@ -2209,7 +2206,7 @@
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">Specific instance of resource (e.g. versioned)</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s90"><Data ss:Type="String">Identifies a specific instance of the entity. The reference should always be version specific</Data><NamedCell
<Cell ss:StyleID="s90"><Data ss:Type="String">Identifies a specific instance of the participant object. The reference should always be version specific</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s91"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s90"><NamedCell ss:Name="_FilterDatabase"/></Cell>
@ -2228,7 +2225,7 @@
<Cell ss:StyleID="s94"><NamedCell ss:Name="_FilterDatabase"/></Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="45">
<Cell ss:StyleID="s88"><Data ss:Type="String">!AuditEvent.entity.idType</Data><NamedCell
<Cell ss:StyleID="s88"><Data ss:Type="String">!AuditEvent.object.idType</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">1..1</Data><NamedCell
@ -2247,7 +2244,7 @@
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">Describes the identifier</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s90"><Data ss:Type="String">Describes the identifier that is contained in entity.identifier</Data><NamedCell
<Cell ss:StyleID="s90"><Data ss:Type="String">Describes the identifier that is contained in Participant Object ID</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s91"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s90"><NamedCell ss:Name="_FilterDatabase"/></Cell>
@ -2265,7 +2262,7 @@
<Cell ss:StyleID="s94"><NamedCell ss:Name="_FilterDatabase"/></Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="135">
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.entity.type</Data><NamedCell
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.object.type</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">0..1</Data><NamedCell
@ -2289,7 +2286,7 @@
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s91"><Data ss:Type="String">To describe the object being acted upon. In addition to queries on the subject of the action in an auditable event, it is also important to be able to query on the object type for the action </Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s90"><Data ss:Type="String">This value is distinct from the user's role or any user relationship to the entity</Data><NamedCell
<Cell ss:StyleID="s90"><Data ss:Type="String">This value is distinct from the user's role or any user relationship to the participant object</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s91"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s92"><Data ss:Type="String">[self::Act].code or role.player.code</Data><NamedCell
@ -2307,7 +2304,7 @@
<Cell ss:StyleID="s94"><NamedCell ss:Name="_FilterDatabase"/></Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="120">
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.entity.role</Data><NamedCell
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.object.role</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">0..1</Data><NamedCell
@ -2325,13 +2322,14 @@
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">What role the entity played </Data><NamedCell
<Cell ss:StyleID="s89"><Data ss:Type="String">What role the Object played </Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s90"><Data ss:Type="String">Code representing the role the entity played in the event being audited</Data><NamedCell
<Cell ss:StyleID="s90"><Data ss:Type="String">Code representing the functional application role of Participant Object being audited</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s91"><Data ss:Type="String">For some detailed audit analysis it may be necessary to indicate a more granular type of entity, based on the application role it serves</Data><NamedCell
<Cell ss:StyleID="s91"><Data ss:Type="String">For some detailed audit analysis it may be necessary to indicate a more granular type of participant, based on the application role it serves</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s90"><Data ss:Type="String">See RFC 3881 for rules concerning matches between role and type</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s90"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s91"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s92"><Data ss:Type="String">role.code (not sure what this would mean for an Act)</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
@ -2346,7 +2344,7 @@
<Cell ss:StyleID="s94"><NamedCell ss:Name="_FilterDatabase"/></Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="150">
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.entity.lifecycle</Data><NamedCell
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.object.lifecycle</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">0..1</Data><NamedCell
@ -2366,7 +2364,7 @@
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">Life-cycle stage for the object</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s90"><Data ss:Type="String">Identifier for the data life-cycle stage for the entity</Data><NamedCell
<Cell ss:StyleID="s90"><Data ss:Type="String">Identifier for the data life-cycle stage for the participant object</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s91"><Data ss:Type="String">Institutional policies for privacy and security may optionally fall under different accountability rules based on data life cycle. This provides a differentiating value for those cases</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
@ -2388,7 +2386,7 @@
<Cell ss:StyleID="s94"><NamedCell ss:Name="_FilterDatabase"/></Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="135">
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.entity.securityLabel</Data><NamedCell
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.object.securityLabel</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">0..*</Data><NamedCell
@ -2408,7 +2406,7 @@
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">Security labels applied to the object</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s90"><Data ss:Type="String">Denotes security labels for the identified entity. </Data><NamedCell
<Cell ss:StyleID="s90"><Data ss:Type="String">Denotes security labels for the identified object. </Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s91"><Data ss:Type="String">This field identifies the security labels for a specific instance of an object, such as a patient, to detect/track privacy and security issues</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
@ -2427,7 +2425,7 @@
<Cell ss:StyleID="s94"><NamedCell ss:Name="_FilterDatabase"/></Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="150">
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.entity.name</Data><NamedCell
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.object.name</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">0..1</Data><NamedCell
@ -2446,13 +2444,12 @@
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">Descriptor for entity</Data><NamedCell
<Cell ss:StyleID="s89"><Data ss:Type="String">Instance-specific descriptor for Object</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s90"><Data ss:Type="String">A name of the entity in the audit event.</Data><NamedCell
<Cell ss:StyleID="s90"><Data ss:Type="String">An instance-specific descriptor of the Participant Object ID audited, such as a person's name</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s91"><Data ss:Type="String">Use only where entity can't be identified with an identifier.</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s90"><Data ss:Type="String">This field may be used in a query/report to identify audit events for a specific person. For example, where multiple synonymous entity identifers (patient number, medical record number, encounter number, etc.) have been used</Data><NamedCell
<Cell ss:StyleID="s91"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s90"><Data ss:Type="String">This field may be used in a query/report to identify audit events for a specific person. For example, where multiple synonymous Participant Object IDs (patient number, medical record number, encounter number, etc.) have been used</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s91"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s92"><Data ss:Type="String">.title</Data><NamedCell
@ -2468,8 +2465,8 @@
<Cell ss:StyleID="s92"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s94"><NamedCell ss:Name="_FilterDatabase"/></Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="45">
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.entity.description</Data><NamedCell
<Row ss:AutoFitHeight="0" ss:Height="30">
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.object.description</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">0..1</Data><NamedCell
@ -2488,10 +2485,9 @@
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">Descriptive text</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s90"><Data ss:Type="String">Text that describes the entity in more detail</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s91"><Data ss:Type="String">Use only where entity can't be identified with an identifier.</Data><NamedCell
<Cell ss:StyleID="s90"><Data ss:Type="String">Text that describes the object in more detail</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s91"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s90"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s91"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s92"><Data ss:Type="String">.text</Data><NamedCell
@ -2507,7 +2503,7 @@
<Cell ss:StyleID="s94"><NamedCell ss:Name="_FilterDatabase"/></Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="270">
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.entity.query</Data><NamedCell
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.object.query</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">0..1</Data><NamedCell
@ -2526,9 +2522,9 @@
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">Query parameters</Data><NamedCell
<Cell ss:StyleID="s89"><Data ss:Type="String">Actual query for object</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s90"><Data ss:Type="String">The query parameters for a query-type entities</Data><NamedCell
<Cell ss:StyleID="s90"><Data ss:Type="String">The actual query for a query-type participant object</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s91"><Data ss:Type="String">For query events it may be necessary to capture the actual query input to the query process in order to identify the specific event. Because of differences among query implementations and data encoding for them, this is a base 64 encoded data blob. It may be subsequently decoded or interpreted by downstream audit analysis processing</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
@ -2547,7 +2543,7 @@
<Cell ss:StyleID="s94"><NamedCell ss:Name="_FilterDatabase"/></Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="45">
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.entity.detail</Data><NamedCell
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.object.detail</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">0..*</Data><NamedCell
@ -2563,7 +2559,7 @@
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">Additional Information about the entity</Data><NamedCell
<Cell ss:StyleID="s89"><Data ss:Type="String">Additional Information about the Object</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s90"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s91"><NamedCell ss:Name="_FilterDatabase"/></Cell>
@ -2583,7 +2579,7 @@
<Cell ss:StyleID="s94"><NamedCell ss:Name="_FilterDatabase"/></Cell>
</Row>
<Row ss:AutoFitHeight="0">
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.entity.detail.type</Data><NamedCell
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.object.detail.type</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">1..1</Data><NamedCell
@ -2619,7 +2615,7 @@
<Cell ss:StyleID="s94"><NamedCell ss:Name="_FilterDatabase"/></Cell>
</Row>
<Row ss:AutoFitHeight="0">
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.entity.detail.value</Data><NamedCell
<Cell ss:StyleID="s88"><Data ss:Type="String">AuditEvent.object.detail.value</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">1..1</Data><NamedCell
@ -4439,9 +4435,9 @@
<FreezePanes/>
<FrozenNoSplit/>
<SplitHorizontal>1</SplitHorizontal>
<TopRowBottomPane>37</TopRowBottomPane>
<TopRowBottomPane>34</TopRowBottomPane>
<SplitVertical>1</SplitVertical>
<LeftColumnRightPane>13</LeftColumnRightPane>
<LeftColumnRightPane>14</LeftColumnRightPane>
<ActivePane>0</ActivePane>
<Panes>
<Pane>
@ -4457,7 +4453,8 @@
</Pane>
<Pane>
<Number>0</Number>
<ActiveRow>40</ActiveRow>
<ActiveRow>38</ActiveRow>
<ActiveCol>16</ActiveCol>
</Pane>
</Panes>
<ProtectObjects>False</ProtectObjects>
@ -4516,7 +4513,7 @@
<Cell ss:StyleID="s85"><Data ss:Type="String">Object Name</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s85"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s85"><Data ss:Type="String">AuditEvent.entity</Data><NamedCell
<Cell ss:StyleID="s85"><Data ss:Type="String">AuditEvent.object</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s85"><Data ss:Type="String">Either a name or a query (NOT both)</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
@ -4530,7 +4527,7 @@
ss:Name="Invariantids"/></Cell>
<Cell ss:StyleID="s92"><Data ss:Type="String">Object Identification</Data></Cell>
<Cell ss:StyleID="s92"/>
<Cell ss:StyleID="s92"><Data ss:Type="String">AuditEvent.entity</Data></Cell>
<Cell ss:StyleID="s92"><Data ss:Type="String">AuditEvent.object</Data></Cell>
<Cell ss:StyleID="s92"><Data ss:Type="String">Either an identifier or a reference, (or both)</Data></Cell>
<Cell ss:StyleID="s92"><Data ss:Type="String">identifier or reference</Data></Cell>
<Cell ss:StyleID="s111"><Data ss:Type="String">exists(f:identifier) or exists(f:reference)</Data></Cell>
@ -4540,7 +4537,7 @@
ss:Name="Invariantids"/></Cell>
<Cell ss:StyleID="s92"><Data ss:Type="String">Participant Identification</Data></Cell>
<Cell ss:StyleID="s92"/>
<Cell ss:StyleID="s92"><Data ss:Type="String">AuditEvent.agent</Data></Cell>
<Cell ss:StyleID="s92"><Data ss:Type="String">AuditEvent.participant</Data></Cell>
<Cell ss:StyleID="s92"><Data ss:Type="String">Either a userId or a reference, (or both)</Data></Cell>
<Cell ss:StyleID="s92"><Data ss:Type="String">userId or reference</Data></Cell>
<Cell ss:StyleID="s111"><Data ss:Type="String">exists(f:userId) or exists(f:reference)</Data></Cell>
@ -4973,6 +4970,7 @@
<HorizontalResolution>600</HorizontalResolution>
<VerticalResolution>600</VerticalResolution>
</Print>
<Selected/>
<FreezePanes/>
<FrozenNoSplit/>
<SplitHorizontal>1</SplitHorizontal>
@ -4992,8 +4990,8 @@
</Pane>
<Pane>
<Number>0</Number>
<ActiveRow>3</ActiveRow>
<ActiveCol>3</ActiveCol>
<ActiveRow>4</ActiveRow>
<ActiveCol>5</ActiveCol>
</Pane>
</Panes>
<ProtectObjects>False</ProtectObjects>
@ -5012,7 +5010,7 @@
<Column ss:StyleID="s115" ss:AutoFitWidth="0" ss:Width="70.5"/>
<Column ss:StyleID="s115" ss:AutoFitWidth="0" ss:Width="57"/>
<Column ss:StyleID="s115" ss:AutoFitWidth="0" ss:Width="109.5"/>
<Column ss:StyleID="s115" ss:AutoFitWidth="0" ss:Width="364.5"/>
<Column ss:StyleID="s115" ss:AutoFitWidth="0" ss:Width="210"/>
<Column ss:StyleID="s115" ss:AutoFitWidth="0" ss:Width="382.5"/>
<Row ss:AutoFitHeight="0" ss:Height="15.75" ss:StyleID="s116">
<Cell ss:StyleID="s105"><Data ss:Type="String">Name</Data><Comment ss:Author=""><ss:Data
@ -5039,49 +5037,49 @@
<Cell ss:StyleID="s117"><Data ss:Type="String">type</Data></Cell>
<Cell ss:StyleID="s79"><Data ss:Type="String">token</Data></Cell>
<Cell ss:StyleID="s79"/>
<Cell ss:StyleID="s118"><Data ss:Type="String">AuditEvent.type</Data></Cell>
<Cell ss:StyleID="s118"><Data ss:Type="String">AuditEvent.event.type</Data></Cell>
<Cell ss:StyleID="s119"/>
</Row>
<Row ss:AutoFitHeight="0">
<Cell ss:StyleID="s120"><Data ss:Type="String">action</Data></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">token</Data></Cell>
<Cell ss:StyleID="s89"/>
<Cell ss:StyleID="s121"><Data ss:Type="String">AuditEvent.action</Data></Cell>
<Cell ss:StyleID="s121"><Data ss:Type="String">AuditEvent.event.action</Data></Cell>
<Cell ss:StyleID="s122"/>
</Row>
<Row ss:AutoFitHeight="0">
<Cell ss:StyleID="s120"><Data ss:Type="String">date</Data></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">date</Data></Cell>
<Cell ss:StyleID="s89"/>
<Cell ss:StyleID="s121"><Data ss:Type="String">AuditEvent.recorded</Data></Cell>
<Cell ss:StyleID="s121"><Data ss:Type="String">AuditEvent.event.dateTime</Data></Cell>
<Cell ss:StyleID="s122"/>
</Row>
<Row ss:AutoFitHeight="0">
<Cell ss:StyleID="s120"><Data ss:Type="String">subtype</Data></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">token</Data></Cell>
<Cell ss:StyleID="s89"/>
<Cell ss:StyleID="s121"><Data ss:Type="String">AuditEvent.subtype</Data></Cell>
<Cell ss:StyleID="s121"><Data ss:Type="String">AuditEvent.event.subtype</Data></Cell>
<Cell ss:StyleID="s122"/>
</Row>
<Row ss:AutoFitHeight="0">
<Cell ss:StyleID="s120"><Data ss:Type="String">user</Data></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">token</Data></Cell>
<Cell ss:StyleID="s89"/>
<Cell ss:StyleID="s121"><Data ss:Type="String">AuditEvent.agent.userId</Data></Cell>
<Cell ss:StyleID="s121"><Data ss:Type="String">AuditEvent.participant.userId</Data></Cell>
<Cell ss:StyleID="s122"/>
</Row>
<Row ss:AutoFitHeight="0">
<Cell ss:StyleID="s120"><Data ss:Type="String">name</Data></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">string</Data></Cell>
<Cell ss:StyleID="s89"/>
<Cell ss:StyleID="s121"><Data ss:Type="String">AuditEvent.agent.name</Data></Cell>
<Cell ss:StyleID="s121"><Data ss:Type="String">AuditEvent.participant.name</Data></Cell>
<Cell ss:StyleID="s122"/>
</Row>
<Row ss:AutoFitHeight="0">
<Cell ss:StyleID="s120"><Data ss:Type="String">address</Data></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">token</Data></Cell>
<Cell ss:StyleID="s89"/>
<Cell ss:StyleID="s121"><Data ss:Type="String">AuditEvent.agent.network.address</Data></Cell>
<Cell ss:StyleID="s121"><Data ss:Type="String">AuditEvent.participant.network.address</Data></Cell>
<Cell ss:StyleID="s122"/>
</Row>
<Row ss:AutoFitHeight="0">
@ -5102,56 +5100,56 @@
<Cell ss:StyleID="s120"><Data ss:Type="String">object-type</Data></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">token</Data></Cell>
<Cell ss:StyleID="s89"/>
<Cell ss:StyleID="s121"><Data ss:Type="String">AuditEvent.entity.type</Data></Cell>
<Cell ss:StyleID="s121"><Data ss:Type="String">AuditEvent.object.type</Data></Cell>
<Cell ss:StyleID="s122"/>
</Row>
<Row ss:AutoFitHeight="0">
<Cell ss:StyleID="s120"><Data ss:Type="String">identity</Data></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">token</Data></Cell>
<Cell ss:StyleID="s89"/>
<Cell ss:StyleID="s121"><Data ss:Type="String">AuditEvent.entity.identifier</Data></Cell>
<Cell ss:StyleID="s121"><Data ss:Type="String">AuditEvent.object.identifier</Data></Cell>
<Cell ss:StyleID="s122"/>
</Row>
<Row ss:AutoFitHeight="0">
<Cell ss:StyleID="s120"><Data ss:Type="String">reference</Data></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">reference</Data></Cell>
<Cell ss:StyleID="s89"/>
<Cell ss:StyleID="s121"><Data ss:Type="String">AuditEvent.entity.reference</Data></Cell>
<Cell ss:StyleID="s121"><Data ss:Type="String">AuditEvent.object.reference</Data></Cell>
<Cell ss:StyleID="s122"/>
</Row>
<Row ss:AutoFitHeight="0">
<Cell ss:StyleID="s120"><Data ss:Type="String">desc</Data></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">string</Data></Cell>
<Cell ss:StyleID="s89"/>
<Cell ss:StyleID="s121"><Data ss:Type="String">AuditEvent.entity.name</Data></Cell>
<Cell ss:StyleID="s121"><Data ss:Type="String">AuditEvent.object.name</Data></Cell>
<Cell ss:StyleID="s122"/>
</Row>
<Row ss:AutoFitHeight="0">
<Cell ss:StyleID="s120"><Data ss:Type="String">patient</Data></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">reference</Data></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">Patient</Data></Cell>
<Cell ss:StyleID="s123"><Data ss:Type="String">AuditEvent.agent.reference | AuditEvent.entity.reference</Data></Cell>
<Cell ss:StyleID="s123"><Data ss:Type="String">AuditEvent.participant.reference | AuditEvent.object.reference</Data></Cell>
<Cell ss:StyleID="s122"/>
</Row>
<Row ss:AutoFitHeight="0">
<Cell ss:StyleID="s120"><Data ss:Type="String">altid</Data></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">token</Data></Cell>
<Cell ss:StyleID="s89"/>
<Cell ss:StyleID="s121"><Data ss:Type="String">AuditEvent.agent.altId</Data></Cell>
<Cell ss:StyleID="s121"><Data ss:Type="String">AuditEvent.participant.altId</Data></Cell>
<Cell ss:StyleID="s122"/>
</Row>
<Row ss:AutoFitHeight="0">
<Cell ss:StyleID="s120"><Data ss:Type="String">participant</Data></Cell>
<Cell ss:StyleID="s89"><Data ss:Type="String">reference</Data></Cell>
<Cell ss:StyleID="s89"/>
<Cell ss:StyleID="s121"><Data ss:Type="String">AuditEvent.agent.reference</Data></Cell>
<Cell ss:StyleID="s121"><Data ss:Type="String">AuditEvent.participant.reference</Data></Cell>
<Cell ss:StyleID="s122"/>
</Row>
<Row ss:AutoFitHeight="0">
<Cell ss:StyleID="s120"><Data ss:Type="String">policy</Data></Cell>
<Cell><Data ss:Type="String">uri</Data></Cell>
<Cell ss:StyleID="s89"/>
<Cell ss:StyleID="s121"><Data ss:Type="String">AuditEvent.agent.policy</Data></Cell>
<Cell ss:StyleID="s121"><Data ss:Type="String">AuditEvent.participant.policy</Data></Cell>
<Cell ss:StyleID="s122"/>
</Row>
<Row ss:AutoFitHeight="0">
@ -5240,11 +5238,10 @@
<PageMargins x:Bottom="0.75" x:Left="0.7" x:Right="0.7" x:Top="0.75"/>
</PageSetup>
<Unsynced/>
<Selected/>
<FreezePanes/>
<FrozenNoSplit/>
<SplitHorizontal>1</SplitHorizontal>
<TopRowBottomPane>1</TopRowBottomPane>
<TopRowBottomPane>7</TopRowBottomPane>
<SplitVertical>1</SplitVertical>
<LeftColumnRightPane>1</LeftColumnRightPane>
<ActivePane>0</ActivePane>
@ -5257,10 +5254,11 @@
</Pane>
<Pane>
<Number>2</Number>
<ActiveRow>1</ActiveRow>
</Pane>
<Pane>
<Number>0</Number>
<ActiveRow>3</ActiveRow>
<ActiveRow>8</ActiveRow>
<ActiveCol>3</ActiveCol>
</Pane>
</Panes>
@ -6940,7 +6938,7 @@
<Column ss:StyleID="s115" ss:AutoFitWidth="0" ss:Width="395.25"/>
<Column ss:StyleID="s115" ss:Width="51"/>
<Column ss:StyleID="s115" ss:AutoFitWidth="0" ss:Width="60.75"/>
<Column ss:StyleID="s115" ss:AutoFitWidth="0" ss:Width="238.5"/>
<Column ss:StyleID="s115" ss:AutoFitWidth="0" ss:Width="184.5"/>
<Column ss:StyleID="s115" ss:Width="172.5"/>
<Column ss:StyleID="s115" ss:AutoFitWidth="0" ss:Width="97.5"/>
<Column ss:StyleID="s115" ss:AutoFitWidth="0" ss:Width="88.5"/>

View File

@ -11,7 +11,7 @@
<LastAuthor>Bryn</LastAuthor>
<Created>2012-03-19T11:12:07Z</Created>
<LastSaved>2015-12-07T23:17:55Z</LastSaved>
<Version>15.00</Version>
<Version>16.00</Version>
</DocumentProperties>
<CustomDocumentProperties xmlns="urn:schemas-microsoft-com:office:office">
<WorkbookGuid dt:dt="string">52714b8f-bb4c-43f9-add8-76ad4227964b</WorkbookGuid>
@ -20,8 +20,8 @@
<AllowPNG/>
</OfficeDocumentSettings>
<ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">
<WindowHeight>8370</WindowHeight>
<WindowWidth>21570</WindowWidth>
<WindowHeight>17400</WindowHeight>
<WindowWidth>-27136</WindowWidth>
<WindowTopX>0</WindowTopX>
<WindowTopY>0</WindowTopY>
<ActiveSheet>4</ActiveSheet>
@ -4525,7 +4525,7 @@
<Cell ss:StyleID="s117"><Data ss:Type="String">in</Data></Cell>
<Cell ss:StyleID="s130"><Data ss:Type="Number">0</Data></Cell>
<Cell ss:StyleID="s130"><Data ss:Type="Number">1</Data></Cell>
<Cell ss:StyleID="s117"><Data ss:Type="String">datetime</Data></Cell>
<Cell ss:StyleID="s117"><Data ss:Type="String">dateTime</Data></Cell>
<Cell ss:StyleID="s117"/>
<Cell ss:StyleID="s117"/>
<Cell ss:StyleID="s132"><Data ss:Type="String">An optional date and time specifying that the evaluation should be performed as thought it was the given date and time. The most direct implication of this is that references to &quot;Now&quot; within the evaluation logic of the module should result in this value. In addition, wherever possible, the data accessed by the module should appear as though it was accessed at this time. The evaluateAtDateTime value may be any time in the past or future, enabling both retrospective and prospective scenarios. If no value is provided, the date and time of the request is assumed</Data></Cell>
@ -5074,7 +5074,7 @@
<SplitHorizontal>1</SplitHorizontal>
<TopRowBottomPane>1</TopRowBottomPane>
<SplitVertical>1</SplitVertical>
<LeftColumnRightPane>7</LeftColumnRightPane>
<LeftColumnRightPane>1</LeftColumnRightPane>
<ActivePane>0</ActivePane>
<Panes>
<Pane>
@ -5082,15 +5082,14 @@
</Pane>
<Pane>
<Number>1</Number>
<ActiveCol>1</ActiveCol>
</Pane>
<Pane>
<Number>2</Number>
</Pane>
<Pane>
<Number>0</Number>
<ActiveRow>2</ActiveRow>
<ActiveCol>10</ActiveCol>
<ActiveRow>4</ActiveRow>
<ActiveCol>4</ActiveCol>
</Pane>
</Panes>
<ProtectObjects>False</ProtectObjects>

View File

@ -10,14 +10,14 @@
<LastAuthor>Richard J. Ettema (AEGIS.net)</LastAuthor>
<Created>2012-03-19T11:12:07Z</Created>
<LastSaved>2015-12-03T15:56:20Z</LastSaved>
<Version>14.00</Version>
<Version>16.00</Version>
</DocumentProperties>
<OfficeDocumentSettings xmlns="urn:schemas-microsoft-com:office:office">
<AllowPNG/>
</OfficeDocumentSettings>
<ExcelWorkbook xmlns="urn:schemas-microsoft-com:office:excel">
<WindowHeight>12975</WindowHeight>
<WindowWidth>28800</WindowWidth>
<WindowHeight>5304</WindowHeight>
<WindowWidth>20376</WindowWidth>
<WindowTopX>0</WindowTopX>
<WindowTopY>0</WindowTopY>
<TabRatio>673</TabRatio>
@ -843,7 +843,8 @@
</Names>
<Worksheet ss:Name="Instructions">
<Table ss:ExpandedColumnCount="2" ss:ExpandedRowCount="4" x:FullColumns="1"
x:FullRows="1" ss:DefaultColumnWidth="65.25" ss:DefaultRowHeight="15">
x:FullRows="1" ss:DefaultColumnWidth="65.400000000000006"
ss:DefaultRowHeight="15">
<Column ss:AutoFitWidth="0" ss:Width="411"/>
<Row ss:AutoFitHeight="0">
<Cell ss:StyleID="s64"><Data ss:Type="String">FHIR Resource-authoring Spreadsheet</Data></Cell>
@ -878,30 +879,31 @@
ss:RefersTo="='Data Elements'!R1C1:R166C24" ss:Hidden="1"/>
</Names>
<Table ss:ExpandedColumnCount="27" ss:ExpandedRowCount="166" x:FullColumns="1"
x:FullRows="1" ss:StyleID="s68" ss:DefaultColumnWidth="65.25"
x:FullRows="1" ss:StyleID="s68" ss:DefaultColumnWidth="65.400000000000006"
ss:DefaultRowHeight="15">
<Column ss:StyleID="s69" ss:AutoFitWidth="0" ss:Width="294.75"/>
<Column ss:StyleID="s68" ss:AutoFitWidth="0" ss:Width="77.25"/>
<Column ss:StyleID="s68" ss:Width="29.25"/>
<Column ss:StyleID="s68" ss:Width="35.25"/>
<Column ss:StyleID="s69" ss:AutoFitWidth="0" ss:Width="294.60000000000002"/>
<Column ss:StyleID="s68" ss:AutoFitWidth="0" ss:Width="77.399999999999991"/>
<Column ss:StyleID="s68" ss:Width="29.4"/>
<Column ss:StyleID="s68" ss:Width="35.4"/>
<Column ss:StyleID="s68" ss:AutoFitWidth="0" ss:Width="132"/>
<Column ss:StyleID="s68" ss:AutoFitWidth="0" ss:Width="29.25"/>
<Column ss:StyleID="s68" ss:AutoFitWidth="0" ss:Width="29.4"/>
<Column ss:StyleID="s68" ss:AutoFitWidth="0" ss:Width="27"/>
<Column ss:StyleID="s68" ss:Width="148.5"/>
<Column ss:StyleID="s68" ss:Width="148.80000000000001"/>
<Column ss:StyleID="s68" ss:AutoFitWidth="0" ss:Width="81"/>
<Column ss:StyleID="s68" ss:AutoFitWidth="0" ss:Width="94.5"/>
<Column ss:StyleID="s68" ss:AutoFitWidth="0" ss:Width="104.25"/>
<Column ss:StyleID="s68" ss:AutoFitWidth="0" ss:Width="80.25"/>
<Column ss:StyleID="s68" ss:AutoFitWidth="0" ss:Width="226.5"/>
<Column ss:StyleID="s68" ss:AutoFitWidth="0" ss:Width="161.25"/>
<Column ss:StyleID="s68" ss:AutoFitWidth="0" ss:Width="94.8"/>
<Column ss:StyleID="s68" ss:AutoFitWidth="0" ss:Width="104.39999999999999"/>
<Column ss:StyleID="s68" ss:AutoFitWidth="0" ss:Width="80.400000000000006"/>
<Column ss:StyleID="s68" ss:AutoFitWidth="0" ss:Width="226.79999999999998"/>
<Column ss:StyleID="s68" ss:AutoFitWidth="0" ss:Width="161.4"/>
<Column ss:StyleID="s68" ss:AutoFitWidth="0" ss:Width="114"/>
<Column ss:StyleID="s68" ss:AutoFitWidth="0" ss:Width="135"/>
<Column ss:StyleID="s68" ss:AutoFitWidth="0" ss:Width="120" ss:Span="1"/>
<Column ss:Index="19" ss:StyleID="s68" ss:AutoFitWidth="0" ss:Width="135"/>
<Column ss:Index="21" ss:StyleID="s68" ss:AutoFitWidth="0" ss:Width="104.25"/>
<Column ss:StyleID="s68" ss:AutoFitWidth="0" ss:Width="50.25"/>
<Column ss:Index="21" ss:StyleID="s68" ss:AutoFitWidth="0"
ss:Width="104.39999999999999"/>
<Column ss:StyleID="s68" ss:AutoFitWidth="0" ss:Width="50.4"/>
<Column ss:StyleID="s68" ss:AutoFitWidth="0" ss:Width="66"/>
<Column ss:StyleID="s68" ss:AutoFitWidth="0" ss:Width="119.25"/>
<Column ss:StyleID="s68" ss:AutoFitWidth="0" ss:Width="119.4"/>
<Row ss:AutoFitHeight="0" ss:Height="45" ss:StyleID="s70">
<Cell ss:StyleID="s71"><Data ss:Type="String">Element</Data><Comment
ss:Author=""><ss:Data xmlns="http://www.w3.org/TR/REC-html40"> <Font
@ -2549,7 +2551,8 @@
<Cell ss:StyleID="s87"><Data ss:Type="String">1..*</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s87"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s87"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s87"><Data ss:Type="String" x:Ticked="1">=SetupAction</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s87"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s87"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s87"><NamedCell ss:Name="_FilterDatabase"/></Cell>
@ -3897,7 +3900,8 @@
<Cell ss:StyleID="s87"><Data ss:Type="String">1..*</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s87"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s87"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s87"><Data ss:Type="String" x:Ticked="1">=TestAction</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s87"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s87"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s87"><NamedCell ss:Name="_FilterDatabase"/></Cell>
@ -4023,7 +4027,8 @@
<Cell ss:StyleID="s87"><Data ss:Type="String">1..*</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s87"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s87"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s87"><Data ss:Type="String" x:Ticked="1">=TeardownAction</Data><NamedCell
ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s87"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s87"><NamedCell ss:Name="_FilterDatabase"/></Cell>
<Cell ss:StyleID="s87"><NamedCell ss:Name="_FilterDatabase"/></Cell>
@ -5890,7 +5895,7 @@
<FreezePanes/>
<FrozenNoSplit/>
<SplitHorizontal>1</SplitHorizontal>
<TopRowBottomPane>1</TopRowBottomPane>
<TopRowBottomPane>81</TopRowBottomPane>
<SplitVertical>1</SplitVertical>
<LeftColumnRightPane>1</LeftColumnRightPane>
<ActivePane>0</ActivePane>
@ -5903,10 +5908,12 @@
</Pane>
<Pane>
<Number>2</Number>
<ActiveRow>1</ActiveRow>
</Pane>
<Pane>
<Number>0</Number>
<ActiveCol>0</ActiveCol>
<ActiveRow>92</ActiveRow>
<ActiveCol>4</ActiveCol>
</Pane>
</Panes>
<ProtectObjects>False</ProtectObjects>
@ -5920,14 +5927,14 @@
ss:Hidden="1"/>
</Names>
<Table ss:ExpandedColumnCount="7" ss:ExpandedRowCount="31" x:FullColumns="1"
x:FullRows="1" ss:StyleID="s111" ss:DefaultColumnWidth="65.25"
x:FullRows="1" ss:StyleID="s111" ss:DefaultColumnWidth="65.400000000000006"
ss:DefaultRowHeight="15">
<Column ss:Index="2" ss:StyleID="s111" ss:AutoFitWidth="0" ss:Width="205.5"/>
<Column ss:StyleID="s111" ss:Width="56.25"/>
<Column ss:StyleID="s111" ss:Width="183.75"/>
<Column ss:StyleID="s111" ss:AutoFitWidth="0" ss:Width="204.75"/>
<Column ss:StyleID="s111" ss:AutoFitWidth="0" ss:Width="198.75"/>
<Column ss:StyleID="s111" ss:AutoFitWidth="0" ss:Width="450.75"/>
<Column ss:Index="2" ss:StyleID="s111" ss:AutoFitWidth="0" ss:Width="205.8"/>
<Column ss:StyleID="s111" ss:Width="56.4"/>
<Column ss:StyleID="s111" ss:Width="183.6"/>
<Column ss:StyleID="s111" ss:AutoFitWidth="0" ss:Width="204.60000000000002"/>
<Column ss:StyleID="s111" ss:AutoFitWidth="0" ss:Width="198.6"/>
<Column ss:StyleID="s111" ss:AutoFitWidth="0" ss:Width="450.6"/>
<Row ss:AutoFitHeight="0" ss:Height="30" ss:StyleID="s70">
<Cell ss:StyleID="s112"><Data ss:Type="String">Id</Data><Comment ss:Author=""><ss:Data
xmlns="http://www.w3.org/TR/REC-html40"> <Font html:Face="Tahoma"
@ -6282,14 +6289,14 @@
ss:Hidden="1"/>
</Names>
<Table ss:ExpandedColumnCount="5" ss:ExpandedRowCount="32" x:FullColumns="1"
x:FullRows="1" ss:StyleID="s120" ss:DefaultColumnWidth="65.25"
x:FullRows="1" ss:StyleID="s120" ss:DefaultColumnWidth="65.400000000000006"
ss:DefaultRowHeight="15">
<Column ss:StyleID="s120" ss:AutoFitWidth="0" ss:Width="169.5"/>
<Column ss:StyleID="s120" ss:AutoFitWidth="0" ss:Width="169.8"/>
<Column ss:StyleID="s120" ss:AutoFitWidth="0" ss:Width="57"/>
<Column ss:StyleID="s120" ss:AutoFitWidth="0" ss:Width="110.25"/>
<Column ss:StyleID="s120" ss:AutoFitWidth="0" ss:Width="282.75"/>
<Column ss:StyleID="s120" ss:AutoFitWidth="0" ss:Width="383.25"/>
<Row ss:AutoFitHeight="0" ss:Height="30.9375" ss:StyleID="s121">
<Column ss:StyleID="s120" ss:AutoFitWidth="0" ss:Width="110.4"/>
<Column ss:StyleID="s120" ss:AutoFitWidth="0" ss:Width="282.59999999999997"/>
<Column ss:StyleID="s120" ss:AutoFitWidth="0" ss:Width="383.40000000000003"/>
<Row ss:AutoFitHeight="0" ss:Height="31.05" ss:StyleID="s121">
<Cell ss:StyleID="s112"><Data ss:Type="String">Name</Data><Comment ss:Author=""><ss:Data
xmlns="http://www.w3.org/TR/REC-html40">Unique name for search parameter - required, lower-case, dash-delimited string </ss:Data></Comment><NamedCell
ss:Name="_FilterDatabase"/></Cell>
@ -6569,15 +6576,17 @@
ss:Hidden="1"/>
</Names>
<Table ss:ExpandedColumnCount="9" ss:ExpandedRowCount="51" x:FullColumns="1"
x:FullRows="1" ss:StyleID="s120" ss:DefaultColumnWidth="65.25"
x:FullRows="1" ss:StyleID="s120" ss:DefaultColumnWidth="65.400000000000006"
ss:DefaultRowHeight="15">
<Column ss:StyleID="s120" ss:AutoFitWidth="0" ss:Width="131.25"/>
<Column ss:StyleID="s120" ss:AutoFitWidth="0" ss:Width="125.25"/>
<Column ss:StyleID="s120" ss:AutoFitWidth="0" ss:Width="131.4"/>
<Column ss:StyleID="s120" ss:AutoFitWidth="0" ss:Width="125.4"/>
<Column ss:StyleID="s120" ss:Width="24"/>
<Column ss:StyleID="s120" ss:Width="26.25"/>
<Column ss:StyleID="s120" ss:AutoFitWidth="0" ss:Width="107.25" ss:Span="1"/>
<Column ss:Index="7" ss:StyleID="s120" ss:AutoFitWidth="0" ss:Width="222.75"/>
<Column ss:StyleID="s120" ss:AutoFitWidth="0" ss:Width="254.25" ss:Span="1"/>
<Column ss:StyleID="s120" ss:Width="26.4"/>
<Column ss:StyleID="s120" ss:AutoFitWidth="0" ss:Width="107.4" ss:Span="1"/>
<Column ss:Index="7" ss:StyleID="s120" ss:AutoFitWidth="0"
ss:Width="222.60000000000002"/>
<Column ss:StyleID="s120" ss:AutoFitWidth="0" ss:Width="254.39999999999998"
ss:Span="1"/>
<Row ss:AutoFitHeight="0" ss:Height="30">
<Cell ss:StyleID="s133"><Data ss:Type="String">Name</Data><Comment ss:Author=""><ss:Data
xmlns="http://www.w3.org/TR/REC-html40"> <Font html:Face="Tahoma"
@ -7200,16 +7209,16 @@
ss:Hidden="1"/>
</Names>
<Table ss:ExpandedColumnCount="9" ss:ExpandedRowCount="21" x:FullColumns="1"
x:FullRows="1" ss:StyleID="s120" ss:DefaultColumnWidth="65.25"
x:FullRows="1" ss:StyleID="s120" ss:DefaultColumnWidth="65.400000000000006"
ss:DefaultRowHeight="15">
<Column ss:StyleID="s120" ss:AutoFitWidth="0" ss:Width="83.25" ss:Span="1"/>
<Column ss:Index="3" ss:StyleID="s120" ss:AutoFitWidth="0" ss:Width="198.75"/>
<Column ss:StyleID="s120" ss:AutoFitWidth="0" ss:Width="158.25"/>
<Column ss:StyleID="s120" ss:Width="107.25"/>
<Column ss:StyleID="s120" ss:Width="113.25"/>
<Column ss:StyleID="s120" ss:AutoFitWidth="0" ss:Width="83.4" ss:Span="1"/>
<Column ss:Index="3" ss:StyleID="s120" ss:AutoFitWidth="0" ss:Width="198.6"/>
<Column ss:StyleID="s120" ss:AutoFitWidth="0" ss:Width="158.4"/>
<Column ss:StyleID="s120" ss:Width="107.4"/>
<Column ss:StyleID="s120" ss:Width="113.39999999999999"/>
<Column ss:StyleID="s120" ss:Width="120"/>
<Column ss:StyleID="s120" ss:Width="128.25"/>
<Column ss:StyleID="s120" ss:AutoFitWidth="0" ss:Width="74.25"/>
<Column ss:StyleID="s120" ss:Width="128.4"/>
<Column ss:StyleID="s120" ss:AutoFitWidth="0" ss:Width="74.400000000000006"/>
<Row ss:AutoFitHeight="0" ss:Height="30">
<Cell ss:StyleID="s112"><Data ss:Type="String">Event Code</Data><Comment
ss:Author=""><ss:Data xmlns="http://www.w3.org/TR/REC-html40"> <Font
@ -7500,10 +7509,10 @@
<NamedRange ss:Name="_FilterDatabase" ss:RefersTo="=Packages!R1C1:R2C4"/>
</Names>
<Table ss:ExpandedColumnCount="4" ss:ExpandedRowCount="41" x:FullColumns="1"
x:FullRows="1" ss:StyleID="s120" ss:DefaultColumnWidth="65.25"
x:FullRows="1" ss:StyleID="s120" ss:DefaultColumnWidth="65.400000000000006"
ss:DefaultRowHeight="15">
<Column ss:StyleID="s120" ss:AutoFitWidth="0" ss:Width="114"/>
<Column ss:StyleID="s120" ss:AutoFitWidth="0" ss:Width="281.25"/>
<Column ss:StyleID="s120" ss:AutoFitWidth="0" ss:Width="281.39999999999998"/>
<Column ss:StyleID="s120" ss:AutoFitWidth="0" ss:Width="252"/>
<Column ss:StyleID="s120" ss:Width="63"/>
<Row ss:AutoFitHeight="0" ss:Height="30">
@ -7802,14 +7811,14 @@
ss:Hidden="1"/>
</Names>
<Table ss:ExpandedColumnCount="7" ss:ExpandedRowCount="36" x:FullColumns="1"
x:FullRows="1" ss:StyleID="s147" ss:DefaultColumnWidth="260.25"
x:FullRows="1" ss:StyleID="s147" ss:DefaultColumnWidth="260.39999999999998"
ss:DefaultRowHeight="15">
<Column ss:StyleID="s147" ss:Width="89.25"/>
<Column ss:StyleID="s147" ss:Width="27.75"/>
<Column ss:StyleID="s147" ss:Width="327.75"/>
<Column ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="84.75"/>
<Column ss:StyleID="s147" ss:Width="206.25" ss:Span="1"/>
<Column ss:Index="7" ss:StyleID="s147" ss:Width="39.75"/>
<Column ss:StyleID="s147" ss:Width="89.4"/>
<Column ss:StyleID="s147" ss:Width="27.6"/>
<Column ss:StyleID="s147" ss:Width="327.59999999999997"/>
<Column ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="84.600000000000009"/>
<Column ss:StyleID="s147" ss:Width="206.4" ss:Span="1"/>
<Column ss:Index="7" ss:StyleID="s147" ss:Width="39.6"/>
<Row ss:AutoFitHeight="0" ss:Height="30">
<Cell ss:StyleID="s112"><Data ss:Type="String">Name</Data><Comment ss:Author=""><ss:Data
xmlns="http://www.w3.org/TR/REC-html40"> <Font html:Face="Tahoma"
@ -8190,20 +8199,20 @@
ss:Hidden="1"/>
</Names>
<Table ss:ExpandedColumnCount="13" ss:ExpandedRowCount="30" x:FullColumns="1"
x:FullRows="1" ss:StyleID="s120" ss:DefaultColumnWidth="65.25"
x:FullRows="1" ss:StyleID="s120" ss:DefaultColumnWidth="65.400000000000006"
ss:DefaultRowHeight="15">
<Column ss:StyleID="s120" ss:Width="148.5"/>
<Column ss:StyleID="s120" ss:AutoFitWidth="0" ss:Width="275.25"/>
<Column ss:StyleID="s120" ss:Width="148.80000000000001"/>
<Column ss:StyleID="s120" ss:AutoFitWidth="0" ss:Width="275.40000000000003"/>
<Column ss:StyleID="s120" ss:Width="51"/>
<Column ss:StyleID="s120" ss:AutoFitWidth="0" ss:Width="83.25"/>
<Column ss:StyleID="s120" ss:AutoFitWidth="0" ss:Width="83.4"/>
<Column ss:StyleID="s120" ss:AutoFitWidth="0" ss:Width="183"/>
<Column ss:StyleID="s120" ss:Width="173.25"/>
<Column ss:StyleID="s120" ss:AutoFitWidth="0" ss:Width="98.25"/>
<Column ss:StyleID="s120" ss:AutoFitWidth="0" ss:Width="89.25"/>
<Column ss:StyleID="s120" ss:Width="173.39999999999998"/>
<Column ss:StyleID="s120" ss:AutoFitWidth="0" ss:Width="98.4"/>
<Column ss:StyleID="s120" ss:AutoFitWidth="0" ss:Width="89.4"/>
<Column ss:StyleID="s120" ss:AutoFitWidth="0" ss:Width="114"/>
<Column ss:StyleID="s120" ss:AutoFitWidth="0" ss:Width="173.25"/>
<Column ss:StyleID="s120" ss:AutoFitWidth="0" ss:Width="165.75" ss:Span="1"/>
<Column ss:Index="13" ss:StyleID="s120" ss:AutoFitWidth="0" ss:Width="107.25"/>
<Column ss:StyleID="s120" ss:AutoFitWidth="0" ss:Width="173.39999999999998"/>
<Column ss:StyleID="s120" ss:AutoFitWidth="0" ss:Width="165.6" ss:Span="1"/>
<Column ss:Index="13" ss:StyleID="s120" ss:AutoFitWidth="0" ss:Width="107.4"/>
<Row ss:AutoFitHeight="0" ss:Height="30">
<Cell ss:StyleID="s112"><Data ss:Type="String">Binding Name</Data><Comment
ss:Author=""><ss:Data xmlns="http://www.w3.org/TR/REC-html40"> <Font
@ -8728,15 +8737,16 @@
ss:RefersTo="='assert-direction-codes'!R1C1:R1C9" ss:Hidden="1"/>
</Names>
<Table ss:ExpandedColumnCount="9" ss:ExpandedRowCount="37" x:FullColumns="1"
x:FullRows="1" ss:StyleID="s147" ss:DefaultColumnWidth="65.25"
x:FullRows="1" ss:StyleID="s147" ss:DefaultColumnWidth="65.400000000000006"
ss:DefaultRowHeight="15">
<Column ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="120.75"/>
<Column ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="35.25"/>
<Column ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="155.25"/>
<Column ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="80.25" ss:Span="1"/>
<Column ss:Index="6" ss:StyleID="s147" ss:Width="261.75"/>
<Column ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="120.60000000000001"/>
<Column ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="35.4"/>
<Column ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="155.39999999999998"/>
<Column ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="80.400000000000006"
ss:Span="1"/>
<Column ss:Index="6" ss:StyleID="s147" ss:Width="261.60000000000002"/>
<Column ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="84" ss:Span="1"/>
<Column ss:Index="9" ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="242.25"/>
<Column ss:Index="9" ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="242.4"/>
<Row ss:AutoFitHeight="0" ss:Height="30">
<Cell ss:StyleID="s112"><Data ss:Type="String">Code</Data><Comment ss:Author=""><ss:Data
xmlns="http://www.w3.org/TR/REC-html40"> <Font html:Face="Tahoma"
@ -9208,15 +9218,16 @@
ss:RefersTo="='assert-operator-codes'!R1C1:R1C9" ss:Hidden="1"/>
</Names>
<Table ss:ExpandedColumnCount="9" ss:ExpandedRowCount="45" x:FullColumns="1"
x:FullRows="1" ss:StyleID="s147" ss:DefaultColumnWidth="65.25"
x:FullRows="1" ss:StyleID="s147" ss:DefaultColumnWidth="65.400000000000006"
ss:DefaultRowHeight="15">
<Column ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="120.75"/>
<Column ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="35.25"/>
<Column ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="155.25"/>
<Column ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="80.25" ss:Span="1"/>
<Column ss:Index="6" ss:StyleID="s147" ss:Width="261.75"/>
<Column ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="120.60000000000001"/>
<Column ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="35.4"/>
<Column ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="155.39999999999998"/>
<Column ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="80.400000000000006"
ss:Span="1"/>
<Column ss:Index="6" ss:StyleID="s147" ss:Width="261.60000000000002"/>
<Column ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="84" ss:Span="1"/>
<Column ss:Index="9" ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="242.25"/>
<Column ss:Index="9" ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="242.4"/>
<Row ss:AutoFitHeight="0" ss:Height="30">
<Cell ss:StyleID="s112"><Data ss:Type="String">Code</Data><Comment ss:Author=""><ss:Data
xmlns="http://www.w3.org/TR/REC-html40"> <Font html:Face="Tahoma"
@ -9776,16 +9787,16 @@
ss:RefersTo="='assert-response-code-types'!R1C1:R1C9" ss:Hidden="1"/>
</Names>
<Table ss:ExpandedColumnCount="9" ss:ExpandedRowCount="47" x:FullColumns="1"
x:FullRows="1" ss:StyleID="s147" ss:DefaultColumnWidth="65.25"
x:FullRows="1" ss:StyleID="s147" ss:DefaultColumnWidth="65.400000000000006"
ss:DefaultRowHeight="15">
<Column ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="120.75"/>
<Column ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="35.25"/>
<Column ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="155.25"/>
<Column ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="80.25"/>
<Column ss:StyleID="s147" ss:Width="99.75"/>
<Column ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="245.25"/>
<Column ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="120.60000000000001"/>
<Column ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="35.4"/>
<Column ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="155.39999999999998"/>
<Column ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="80.400000000000006"/>
<Column ss:StyleID="s147" ss:Width="99.6"/>
<Column ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="245.39999999999998"/>
<Column ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="84" ss:Span="1"/>
<Column ss:Index="9" ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="242.25"/>
<Column ss:Index="9" ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="242.4"/>
<Row ss:AutoFitHeight="0" ss:Height="30">
<Cell ss:StyleID="s112"><Data ss:Type="String">Code</Data><Comment ss:Author=""><ss:Data
xmlns="http://www.w3.org/TR/REC-html40"> <Font html:Face="Tahoma"
@ -10363,9 +10374,10 @@
</Worksheet>
<Worksheet ss:Name="content-type">
<Table ss:ExpandedColumnCount="9" ss:ExpandedRowCount="3" x:FullColumns="1"
x:FullRows="1" ss:DefaultColumnWidth="65.25" ss:DefaultRowHeight="14.0625">
x:FullRows="1" ss:DefaultColumnWidth="65.400000000000006"
ss:DefaultRowHeight="13.950000000000001">
<Column ss:Index="6" ss:AutoFitWidth="0" ss:Width="207"/>
<Row ss:AutoFitHeight="0" ss:Height="29.0625">
<Row ss:AutoFitHeight="0" ss:Height="28.950000000000003">
<Cell ss:StyleID="s112"><Data ss:Type="String">Code</Data><Comment ss:Author=""><ss:Data
xmlns="http://www.w3.org/TR/REC-html40"> <Font html:Face="Tahoma"
x:Family="Swiss" html:Size="8" html:Color="#000000">The code to be sent over the wire</Font> </ss:Data></Comment></Cell>
@ -10394,7 +10406,7 @@
ss:Author=""><ss:Data xmlns="http://www.w3.org/TR/REC-html40"> <Font
html:Face="Tahoma" x:Family="Swiss" html:Size="8" html:Color="#000000">Additional notes about the code. Not published</Font> </ss:Data></Comment></Cell>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="27.9375">
<Row ss:AutoFitHeight="0" ss:Height="28.05">
<Cell ss:StyleID="s149"><Data ss:Type="String">xml</Data></Cell>
<Cell ss:StyleID="s138"><Data ss:Type="Number">1</Data></Cell>
<Cell ss:StyleID="s137"/>
@ -10405,7 +10417,7 @@
<Cell ss:StyleID="s138"/>
<Cell ss:StyleID="s159"/>
</Row>
<Row ss:AutoFitHeight="0" ss:Height="27.9375">
<Row ss:AutoFitHeight="0" ss:Height="28.05">
<Cell ss:StyleID="s151"><Data ss:Type="String">json</Data></Cell>
<Cell ss:StyleID="s141"><Data ss:Type="Number">2</Data></Cell>
<Cell ss:StyleID="s128"/>
@ -10441,16 +10453,16 @@
ss:RefersTo="='profile-origin-types'!R1C1:R1C9" ss:Hidden="1"/>
</Names>
<Table ss:ExpandedColumnCount="9" ss:ExpandedRowCount="37" x:FullColumns="1"
x:FullRows="1" ss:StyleID="s147" ss:DefaultColumnWidth="65.25"
x:FullRows="1" ss:StyleID="s147" ss:DefaultColumnWidth="65.400000000000006"
ss:DefaultRowHeight="15">
<Column ss:StyleID="s147" ss:Width="157.5"/>
<Column ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="35.25"/>
<Column ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="155.25"/>
<Column ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="80.25"/>
<Column ss:StyleID="s147" ss:Width="157.5"/>
<Column ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="258.75"/>
<Column ss:StyleID="s147" ss:Width="157.80000000000001"/>
<Column ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="35.4"/>
<Column ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="155.39999999999998"/>
<Column ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="80.400000000000006"/>
<Column ss:StyleID="s147" ss:Width="157.80000000000001"/>
<Column ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="258.60000000000002"/>
<Column ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="84" ss:Span="1"/>
<Column ss:Index="9" ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="242.25"/>
<Column ss:Index="9" ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="242.4"/>
<Row ss:AutoFitHeight="0" ss:Height="30">
<Cell ss:StyleID="s112"><Data ss:Type="String">Code</Data><Comment ss:Author=""><ss:Data
xmlns="http://www.w3.org/TR/REC-html40"> <Font html:Face="Tahoma"
@ -10922,16 +10934,16 @@
ss:RefersTo="='profile-destination-types'!R1C1:R1C9" ss:Hidden="1"/>
</Names>
<Table ss:ExpandedColumnCount="9" ss:ExpandedRowCount="39" x:FullColumns="1"
x:FullRows="1" ss:StyleID="s147" ss:DefaultColumnWidth="65.25"
x:FullRows="1" ss:StyleID="s147" ss:DefaultColumnWidth="65.400000000000006"
ss:DefaultRowHeight="15">
<Column ss:StyleID="s147" ss:Width="157.5"/>
<Column ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="35.25"/>
<Column ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="155.25"/>
<Column ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="80.25"/>
<Column ss:StyleID="s147" ss:Width="157.5"/>
<Column ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="258.75"/>
<Column ss:StyleID="s147" ss:Width="157.80000000000001"/>
<Column ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="35.4"/>
<Column ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="155.39999999999998"/>
<Column ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="80.400000000000006"/>
<Column ss:StyleID="s147" ss:Width="157.80000000000001"/>
<Column ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="258.60000000000002"/>
<Column ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="84" ss:Span="1"/>
<Column ss:Index="9" ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="242.25"/>
<Column ss:Index="9" ss:StyleID="s147" ss:AutoFitWidth="0" ss:Width="242.4"/>
<Row ss:AutoFitHeight="0" ss:Height="30">
<Cell ss:StyleID="s112"><Data ss:Type="String">Code</Data><Comment ss:Author=""><ss:Data
xmlns="http://www.w3.org/TR/REC-html40"> <Font html:Face="Tahoma"

View File

@ -106,6 +106,10 @@
Introduce custom @CoverageIgnore annotation to hapi-fhir-base in order to
remove dependency on cobertura during build and in runtime.
</action>
<action type="fix">
Server-generated conformance statements incorrectly used /Profile/ instead
of /StructureDefinition/ in URL links to structures.
</action>
</release>
<release version="1.3" date="2015-11-14">
<action type="add">

View File

@ -20,7 +20,7 @@
<tbody>
<tr>
<td rowspan="1">hapi-fhir-structures-dstu</td>
<td>1.1 - 1.3</td>
<td>1.1 - 1.4</td>
<td><a href="http://www.hl7.org/fhir/DSTU1/index.html">DSTU1 0.0.82</a></td>
</tr>
<tr>
@ -33,7 +33,7 @@
<td><a href="http://hl7.org/fhir/2015Sep/index.html">DSTU2 1.0.0</a></td>
</tr>
<tr>
<td>1.3</td>
<td>1.3, 1.4</td>
<td><a href="http://hl7.org/fhir/2015Sep/index.html">DSTU2 1.0.2</a></td>
</tr>
<tr>
@ -46,9 +46,14 @@
<td><a href="http://hl7.org/fhir/2015Sep/index.html">DSTU2 1.0.0</a></td>
</tr>
<tr>
<td>1.3</td>
<td>1.3, 1.4</td>
<td><a href="http://hl7.org/fhir/2015Sep/index.html">DSTU2 1.0.2</a></td>
</tr>
<tr>
<td rowspan="1">hapi-fhir-structures-dstu2.1</td>
<td>1.4</td>
<td><a href="http://hl7-fhir.github.io/">DSTU2 1.2.0 Snapshot</a> (SVN 7507)</td>
</tr>
</tbody>
</table>