Add test coverage for CapabilityStatement.Conformance + fix 10_40/50

Fixes incorrect lastPath preventing ignoring of acceptUnknown extensions
This commit is contained in:
dotasek 2023-05-05 16:55:55 -04:00
parent 6b4197044f
commit 76ef9370d0
19 changed files with 1275 additions and 9 deletions

View File

@ -28,7 +28,7 @@ public class BaseAdvisor_10_40 extends BaseAdvisor40<org.hl7.fhir.dstu2.model.Ex
@Nonnull String url) {
final List<String> paths = Arrays.asList(path.split(","));
final String lastPath = paths.get(paths.size() - 1);
return (lastPath.equals("Conformance")) && (conformanceIgnoredUrls.contains(url));
return (lastPath.equals("CapabilityStatement")) && (conformanceIgnoredUrls.contains(url));
}
@Override

View File

@ -26,7 +26,7 @@ public class BaseAdvisor_10_50 extends BaseAdvisor50<org.hl7.fhir.dstu2.model.Ex
@Nonnull String url) {
final List<String> paths = Arrays.asList(path.split(","));
final String lastPath = paths.get(paths.size() - 1);
return (lastPath.equals("Conformance")) && (conformanceIgnoredUrls.contains(url));
return (lastPath.equals("CapabilityStatement")) && (conformanceIgnoredUrls.contains(url));
}
public boolean ignoreType(@Nonnull String path,

View File

@ -0,0 +1,29 @@
package org.hl7.fhir.convertors.conv10_30;
import org.hl7.fhir.convertors.factory.VersionConvertorFactory_10_30;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import java.io.IOException;
import java.io.InputStream;
import static org.junit.jupiter.api.Assertions.assertTrue;
public class CapabilityStatement10_30Test {
@Test
@DisplayName("Test dstu3 -> dstu2 CapabilityStatement conversion.")
public void testDstu3_Dstu2() throws IOException {
InputStream dstu3_input = this.getClass().getResourceAsStream("/capability_statement_30.json");
org.hl7.fhir.dstu3.model.CapabilityStatement dstu3 = (org.hl7.fhir.dstu3.model.CapabilityStatement) new org.hl7.fhir.dstu3.formats.JsonParser().parse(dstu3_input);
org.hl7.fhir.dstu2.model.Resource dstu2_conv = VersionConvertorFactory_10_30.convertResource(dstu3);
org.hl7.fhir.dstu2.formats.JsonParser dstu2_parser = new org.hl7.fhir.dstu2.formats.JsonParser();
InputStream dstu2_input = this.getClass().getResourceAsStream("/conformance_30_10.json");
org.hl7.fhir.dstu2.model.Conformance dstu2_actual = (org.hl7.fhir.dstu2.model.Conformance) dstu2_parser.parse(dstu2_input);
assertTrue(dstu2_actual.equalsDeep(dstu2_conv), "should be the same");
}
}

View File

@ -0,0 +1,29 @@
package org.hl7.fhir.convertors.conv10_40;
import org.hl7.fhir.convertors.factory.VersionConvertorFactory_10_40;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import java.io.IOException;
import java.io.InputStream;
import static org.junit.jupiter.api.Assertions.assertTrue;
public class CapabilityStatement10_40Test {
@Test
@DisplayName("Test r4 -> dstu2 CapabilityStatement conversion.")
public void testR4_Dstu2() throws IOException {
InputStream r4_input = this.getClass().getResourceAsStream("/capability_statement_50_with_30_extensions.json");
org.hl7.fhir.r4.model.CapabilityStatement r4_actual = (org.hl7.fhir.r4.model.CapabilityStatement) new org.hl7.fhir.r4.formats.JsonParser().parse(r4_input);
org.hl7.fhir.dstu2.model.Resource dstu2_conv = VersionConvertorFactory_10_40.convertResource(r4_actual);
org.hl7.fhir.dstu2.formats.JsonParser dstu2_parser = new org.hl7.fhir.dstu2.formats.JsonParser();
InputStream dstu2_input = this.getClass().getResourceAsStream("/conformance_40_10.json");
org.hl7.fhir.dstu2.model.Conformance dstu2_actual = (org.hl7.fhir.dstu2.model.Conformance) dstu2_parser.parse(dstu2_input);
assertTrue(dstu2_actual.equalsDeep(dstu2_conv), "should be the same");
}
}

View File

@ -0,0 +1,29 @@
package org.hl7.fhir.convertors.conv10_50;
import org.hl7.fhir.convertors.factory.VersionConvertorFactory_10_50;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import java.io.IOException;
import java.io.InputStream;
import static org.junit.jupiter.api.Assertions.assertTrue;
public class CapabilityStatement10_50Test {
@Test
@DisplayName("Test r5 -> dstu2 CapabilityStatement conversion.")
public void testR5_Dstu2() throws IOException {
InputStream r5_input = this.getClass().getResourceAsStream("/capability_statement_50_with_30_extensions.json");
org.hl7.fhir.r5.model.CapabilityStatement r5_actual = (org.hl7.fhir.r5.model.CapabilityStatement) new org.hl7.fhir.r5.formats.JsonParser().parse(r5_input);
org.hl7.fhir.dstu2.model.Resource dstu2_conv = VersionConvertorFactory_10_50.convertResource(r5_actual);
org.hl7.fhir.dstu2.formats.JsonParser dstu2_parser = new org.hl7.fhir.dstu2.formats.JsonParser();
InputStream dstu2_input = this.getClass().getResourceAsStream("/conformance_50_10.json");
org.hl7.fhir.dstu2.model.Conformance dstu2_actual = (org.hl7.fhir.dstu2.model.Conformance) dstu2_parser.parse(dstu2_input);
assertTrue(dstu2_actual.equalsDeep(dstu2_conv), "should be the same");
}
}

View File

@ -0,0 +1,29 @@
package org.hl7.fhir.convertors.conv14_30;
import org.hl7.fhir.convertors.factory.VersionConvertorFactory_14_30;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import java.io.IOException;
import java.io.InputStream;
import static org.junit.jupiter.api.Assertions.assertTrue;
public class CapabilityStatement14_30Test {
@Test
@DisplayName("Test r4 -> dstu2016 CapabilityStatement conversion.")
public void testDstu3_Dstu2016() throws IOException {
InputStream dstu3_input = this.getClass().getResourceAsStream("/capability_statement_30.json");
org.hl7.fhir.dstu3.model.CapabilityStatement dstu3 = (org.hl7.fhir.dstu3.model.CapabilityStatement) new org.hl7.fhir.dstu3.formats.JsonParser().parse(dstu3_input);
org.hl7.fhir.dstu2016may.model.Resource dstu2016_conv = VersionConvertorFactory_14_30.convertResource(dstu3);
org.hl7.fhir.dstu2016may.formats.JsonParser dstu2016_parser = new org.hl7.fhir.dstu2016may.formats.JsonParser();
InputStream dstu2016_input = this.getClass().getResourceAsStream("/conformance_30_14.json");
org.hl7.fhir.dstu2016may.model.Conformance dstu2016_actual = (org.hl7.fhir.dstu2016may.model.Conformance) dstu2016_parser.parse(dstu2016_input);
assertTrue(dstu2016_actual.equalsDeep(dstu2016_conv), "should be the same");
}
}

View File

@ -0,0 +1,28 @@
package org.hl7.fhir.convertors.conv14_40;
import org.hl7.fhir.convertors.factory.VersionConvertorFactory_14_40;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
import java.io.IOException;
import java.io.InputStream;
import static org.junit.jupiter.api.Assertions.assertTrue;
public class CapabilityStatement14_40Test {
@Test
@DisplayName("Test r4 -> dstu2016 CapabilityStatement conversion.")
public void testR4_Dstu3() throws IOException {
InputStream r4_input = this.getClass().getResourceAsStream("/capability_statement_40_with_30_extensions.json");
org.hl7.fhir.r4.model.CapabilityStatement r4_actual = (org.hl7.fhir.r4.model.CapabilityStatement) new org.hl7.fhir.r4.formats.JsonParser().parse(r4_input);
org.hl7.fhir.dstu2016may.model.Resource dstu2016_conv = VersionConvertorFactory_14_40.convertResource(r4_actual);
org.hl7.fhir.dstu2016may.formats.JsonParser dstu2016_parser = new org.hl7.fhir.dstu2016may.formats.JsonParser();
InputStream dstu2016_input = this.getClass().getResourceAsStream("/conformance_40_14.json");
org.hl7.fhir.dstu2016may.model.Conformance dstu2016_actual = (org.hl7.fhir.dstu2016may.model.Conformance) dstu2016_parser.parse(dstu2016_input);
assertTrue(dstu2016_actual.equalsDeep(dstu2016_conv), "should be the same");
}
}

View File

@ -1,7 +1,7 @@
package org.hl7.fhir.convertors.conv14_50;
import org.hl7.fhir.convertors.factory.VersionConvertorFactory_14_50;
import org.hl7.fhir.convertors.factory.VersionConvertorFactory_30_50;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
@ -13,15 +13,15 @@ import static org.junit.jupiter.api.Assertions.assertTrue;
public class CapabilityStatement14_50Test {
@Test
@DisplayName("Test r5 -> dstu2016 CapabilityStatement conversion.")
public void testR5_Dstu3() throws IOException {
InputStream r5_input = this.getClass().getResourceAsStream("/capability_statement_50.json");
public void testR5_Dstu2016() throws IOException {
InputStream r5_input = this.getClass().getResourceAsStream("/capability_statement_50_with_30_extensions.json");
org.hl7.fhir.r5.model.CapabilityStatement r5_actual = (org.hl7.fhir.r5.model.CapabilityStatement) new org.hl7.fhir.r5.formats.JsonParser().parse(r5_input);
org.hl7.fhir.dstu2016may.model.Resource dstu2016_conv = VersionConvertorFactory_14_50.convertResource(r5_actual);
org.hl7.fhir.dstu2016may.formats.JsonParser dstu2016_parser = new org.hl7.fhir.dstu2016may.formats.JsonParser();
InputStream dstu2016_input = this.getClass().getResourceAsStream("/capability_statement_50_14.json");
InputStream dstu2016_input = this.getClass().getResourceAsStream("/conformance_50_14.json");
org.hl7.fhir.dstu2016may.model.Conformance dstu2016_actual = (org.hl7.fhir.dstu2016may.model.Conformance) dstu2016_parser.parse(dstu2016_input);
assertTrue(dstu2016_actual.equalsDeep(dstu2016_conv), "should be the same");

View File

@ -1,7 +1,6 @@
package org.hl7.fhir.convertors.conv30_40;
import org.hl7.fhir.convertors.factory.VersionConvertorFactory_30_40;
import org.hl7.fhir.convertors.factory.VersionConvertorFactory_30_50;
import org.junit.jupiter.api.DisplayName;
import org.junit.jupiter.api.Test;
@ -14,7 +13,7 @@ public class CapabilityStatement30_40Test {
@Test
@DisplayName("Test r4 -> dstu3 CapabilityStatement conversion.")
public void testR4_Dstu3() throws IOException {
InputStream r4_input = this.getClass().getResourceAsStream("/capability_statement_40.json");
InputStream r4_input = this.getClass().getResourceAsStream("/capability_statement_40_with_30_extensions.json");
org.hl7.fhir.r4.model.CapabilityStatement r5_actual = (org.hl7.fhir.r4.model.CapabilityStatement) new org.hl7.fhir.r4.formats.JsonParser().parse(r4_input);
org.hl7.fhir.dstu3.model.Resource dstu3_conv = VersionConvertorFactory_30_40.convertResource(r5_actual);

View File

@ -13,7 +13,7 @@ public class CapabilityStatement30_50Test {
@Test
@DisplayName("Test r5 -> dstu3 CapabilityStatement conversion.")
public void testR5_Dstu3() throws IOException {
InputStream r5_input = this.getClass().getResourceAsStream("/capability_statement_50.json");
InputStream r5_input = this.getClass().getResourceAsStream("/capability_statement_50_with_30_extensions.json");
org.hl7.fhir.r5.model.CapabilityStatement r5_actual = (org.hl7.fhir.r5.model.CapabilityStatement) new org.hl7.fhir.r5.formats.JsonParser().parse(r5_input);
org.hl7.fhir.dstu3.model.Resource dstu3_conv = VersionConvertorFactory_30_50.convertResource(r5_actual);

View File

@ -0,0 +1,223 @@
{
"resourceType": "CapabilityStatement",
"id": "example",
"text": {
"status": "generated",
"div": "<div xmlns=\"http://www.w3.org/1999/xhtml\">\n\t\t\t<p>The EHR Server supports the following transactions for the resource Person: read, vread, \n update, history, search(name,gender), create and updates.</p>\n\t\t\t<p>The EHR System supports the following message: admin-notify::Person.</p>\n\t\t\t<p>The EHR Application has a \n <a href=\"http://fhir.hl7.org/base/Profilebc054d23-75e1-4dc6-aca5-838b6b1ac81d/_history/b5fdd9fc-b021-4ea1-911a-721a60663796\">general document profile</a>.\n </p>\n\t\t</div>"
},
"url": "urn:uuid:68D043B5-9ECF-4559-A57A-396E0D452311",
"version": "20130510",
"name": "ACME-EHR",
"title": "ACME EHR capability statement",
"status": "draft",
"experimental": true,
"date": "2012-01-04",
"publisher": "ACME Corporation",
"contact": [
{
"name": "System Administrator",
"telecom": [
{
"system": "email",
"value": "wile@acme.org"
}
]
}
],
"description": "This is the FHIR capability statement for the main EHR at ACME for the private interface - it does not describe the public interface",
"useContext": [
{
"code": {
"system": "http://hl7.org/fhir/usage-context-type",
"code": "focus"
},
"valueCodeableConcept": {
"coding": [
{
"system": "http://hl7.org/fhir/variant-state",
"code": "positive"
}
]
}
}
],
"jurisdiction": [
{
"coding": [
{
"system": "urn:iso:std:iso:3166",
"code": "US",
"display": "United States of America (the)"
}
]
}
],
"purpose": "Main EHR capability statement, published for contracting and operational support",
"copyright": "Copyright © Acme Healthcare and GoodCorp EHR Systems",
"kind": "instance",
"instantiates": [
"http://ihe.org/fhir/CapabilityStatement/pixm-client"
],
"software": {
"name": "EHR",
"version": "0.00.020.2134",
"releaseDate": "2012-01-04"
},
"implementation": {
"description": "main EHR at ACME",
"url": "http://10.2.3.4/fhir"
},
"fhirVersion": "1.0.0",
"acceptUnknown": "both",
"format": [
"xml",
"json"
],
"patchFormat": [
"application/xml-patch+xml",
"application/json-patch+json"
],
"implementationGuide": [
"http://hl7.org/fhir/us/lab"
],
"profile": [
{
"reference": "http://hl7.org/fhir/us/core/StructureDefinition/familymemberhistory-genetic"
}
],
"rest": [
{
"mode": "server",
"documentation": "Main FHIR endpoint for acem health",
"security": {
"cors": true,
"service": [
{
"coding": [
{
"system": "http://hl7.org/fhir/restful-security-service",
"code": "SMART-on-FHIR"
}
]
}
],
"description": "See Smart on FHIR documentation",
"certificate": [
{
"type": "application/jwt",
"blob": "IHRoaXMgYmxvYiBpcyBub3QgdmFsaWQ="
}
]
},
"resource": [
{
"type": "Patient",
"profile": {
"reference": "http://fhir.hl7.org/base/StructureDefinition/7896271d-57f6-4231-89dc-dcc91eab2416"
},
"documentation": "This server does not let the clients create identities.",
"interaction": [
{
"code": "read"
},
{
"code": "vread",
"documentation": "Only supported for patient records since 12-Dec 2012"
},
{
"code": "update"
},
{
"code": "history-instance"
},
{
"code": "create"
},
{
"code": "history-type"
}
],
"versioning": "versioned-update",
"readHistory": true,
"updateCreate": false,
"conditionalCreate": true,
"conditionalRead": "full-support",
"conditionalUpdate": false,
"conditionalDelete": "not-supported",
"searchInclude": [
"Organization"
],
"searchRevInclude": [
"Person"
],
"searchParam": [
{
"name": "identifier",
"definition": "http://hl7.org/fhir/SearchParameter/Patient-identifier",
"type": "token",
"documentation": "Only supports search by institution MRN"
},
{
"name": "general-practitioner",
"definition": "http://hl7.org/fhir/SearchParameter/Patient-general-practitioner",
"type": "reference"
}
]
}
],
"interaction": [
{
"code": "transaction"
},
{
"code": "history-system"
}
],
"compartment": [
"http://hl7.org/fhir/CompartmentDefinition/patient"
]
}
],
"messaging": [
{
"endpoint": [
{
"protocol": {
"system": "http://hl7.org/fhir/message-transport",
"code": "mllp"
},
"address": "mllp:10.1.1.10:9234"
}
],
"reliableCache": 30,
"documentation": "ADT A08 equivalent for external system notifications",
"event": [
{
"code": {
"system": "http://hl7.org/fhir/message-events",
"code": "admin-notify"
},
"category": "Consequence",
"mode": "receiver",
"focus": "Patient",
"request": {
"reference": "StructureDefinition/Patient"
},
"response": {
"reference": "StructureDefinition/MessageHeader"
},
"documentation": "Notification of an update to a patient resource. changing the links is not supported"
}
]
}
],
"document": [
{
"mode": "consumer",
"documentation": "Basic rules for all documents in the EHR system",
"profile": {
"reference": "http://fhir.hl7.org/base/Profilebc054d23-75e1-4dc6-aca5-838b6b1ac81d/_history/b5fdd9fc-b021-4ea1-911a-721a60663796"
}
}
]
}

View File

@ -0,0 +1,184 @@
{
"resourceType": "Conformance",
"id": "example",
"text": {
"status": "generated",
"div": "<div xmlns=\"http://www.w3.org/1999/xhtml\">\n\t\t\t<p>The EHR Server supports the following transactions for the resource Person: read, vread, \n update, history, search(name,gender), create and updates.</p>\n\t\t\t<p>The EHR System supports the following message: admin-notify::Person.</p>\n\t\t\t<p>The EHR Application has a \n <a href=\"http://fhir.hl7.org/base/Profilebc054d23-75e1-4dc6-aca5-838b6b1ac81d/_history/b5fdd9fc-b021-4ea1-911a-721a60663796\">general document profile</a>.\n </p>\n\t\t</div>"
},
"url": "urn:uuid:68D043B5-9ECF-4559-A57A-396E0D452311",
"version": "20130510",
"name": "ACME-EHR",
"status": "draft",
"experimental": true,
"publisher": "ACME Corporation",
"contact": [
{
"name": "System Administrator",
"telecom": [
{
"system": "email",
"value": "wile@acme.org"
}
]
}
],
"date": "2012-01-04",
"description": "This is the FHIR capability statement for the main EHR at ACME for the private interface - it does not describe the public interface",
"requirements": "Main EHR capability statement, published for contracting and operational support",
"copyright": "Copyright © Acme Healthcare and GoodCorp EHR Systems",
"kind": "instance",
"software": {
"name": "EHR",
"version": "0.00.020.2134",
"releaseDate": "2012-01-04"
},
"implementation": {
"description": "main EHR at ACME",
"url": "http://10.2.3.4/fhir"
},
"fhirVersion": "1.0.0",
"acceptUnknown": "both",
"format": [
"xml",
"json"
],
"profile": [
{
"reference": "http://hl7.org/fhir/us/core/StructureDefinition/familymemberhistory-genetic"
}
],
"rest": [
{
"mode": "server",
"documentation": "Main FHIR endpoint for acem health",
"security": {
"cors": true,
"service": [
{
"coding": [
{
"system": "http://hl7.org/fhir/restful-security-service",
"code": "SMART-on-FHIR"
}
]
}
],
"description": "See Smart on FHIR documentation",
"certificate": [
{
"type": "application/jwt",
"blob": "IHRoaXMgYmxvYiBpcyBub3QgdmFsaWQ="
}
]
},
"resource": [
{
"type": "Patient",
"profile": {
"reference": "http://fhir.hl7.org/base/StructureDefinition/7896271d-57f6-4231-89dc-dcc91eab2416"
},
"interaction": [
{
"code": "read"
},
{
"code": "vread",
"documentation": "Only supported for patient records since 12-Dec 2012"
},
{
"code": "update"
},
{
"code": "history-instance"
},
{
"code": "create"
},
{
"code": "history-type"
}
],
"versioning": "versioned-update",
"readHistory": true,
"updateCreate": false,
"conditionalCreate": true,
"conditionalUpdate": false,
"conditionalDelete": "not-supported",
"searchInclude": [
"Organization"
],
"searchRevInclude": [
"Person"
],
"searchParam": [
{
"name": "identifier",
"definition": "http://hl7.org/fhir/SearchParameter/Patient-identifier",
"type": "token",
"documentation": "Only supports search by institution MRN"
},
{
"name": "general-practitioner",
"definition": "http://hl7.org/fhir/SearchParameter/Patient-general-practitioner",
"type": "reference"
}
]
}
],
"interaction": [
{
"code": "transaction"
},
{
"code": "history-system"
}
],
"transactionMode": "transaction",
"compartment": [
"http://hl7.org/fhir/CompartmentDefinition/patient"
]
}
],
"messaging": [
{
"endpoint": [
{
"protocol": {
"system": "http://hl7.org/fhir/message-transport",
"code": "mllp"
},
"address": "mllp:10.1.1.10:9234"
}
],
"reliableCache": 30,
"documentation": "ADT A08 equivalent for external system notifications",
"event": [
{
"code": {
"system": "http://hl7.org/fhir/message-events",
"code": "admin-notify"
},
"category": "Consequence",
"mode": "receiver",
"focus": "Patient",
"request": {
"reference": "StructureDefinition/Patient"
},
"response": {
"reference": "StructureDefinition/MessageHeader"
},
"documentation": "Notification of an update to a patient resource. changing the links is not supported"
}
]
}
],
"document": [
{
"mode": "consumer",
"documentation": "Basic rules for all documents in the EHR system",
"profile": {
"reference": "http://fhir.hl7.org/base/Profilebc054d23-75e1-4dc6-aca5-838b6b1ac81d/_history/b5fdd9fc-b021-4ea1-911a-721a60663796"
}
}
]
}

View File

@ -0,0 +1,202 @@
{
"resourceType": "Conformance",
"id": "example",
"text": {
"status": "generated",
"div": "<div xmlns=\"http://www.w3.org/1999/xhtml\">\n\t\t\t<p>The EHR Server supports the following transactions for the resource Person: read, vread, \n update, history, search(name,gender), create and updates.</p>\n\t\t\t<p>The EHR System supports the following message: admin-notify::Person.</p>\n\t\t\t<p>The EHR Application has a \n <a href=\"http://fhir.hl7.org/base/Profilebc054d23-75e1-4dc6-aca5-838b6b1ac81d/_history/b5fdd9fc-b021-4ea1-911a-721a60663796\">general document profile</a>.\n </p>\n\t\t</div>"
},
"url": "urn:uuid:68D043B5-9ECF-4559-A57A-396E0D452311",
"version": "20130510",
"name": "ACME-EHR",
"status": "draft",
"experimental": true,
"date": "2012-01-04",
"publisher": "ACME Corporation",
"contact": [
{
"name": "System Administrator",
"telecom": [
{
"system": "email",
"value": "wile@acme.org"
}
]
}
],
"description": "This is the FHIR capability statement for the main EHR at ACME for the private interface - it does not describe the public interface",
"useContext": [
{
"coding": [
{
"system": "http://hl7.org/fhir/variant-state",
"code": "positive"
}
]
},
{
"coding": [
{
"system": "urn:iso:std:iso:3166",
"code": "US",
"display": "United States of America (the)"
}
]
}
],
"requirements": "Main EHR capability statement, published for contracting and operational support",
"copyright": "Copyright © Acme Healthcare and GoodCorp EHR Systems",
"kind": "instance",
"software": {
"name": "EHR",
"version": "0.00.020.2134",
"releaseDate": "2012-01-04"
},
"implementation": {
"description": "main EHR at ACME",
"url": "http://10.2.3.4/fhir"
},
"fhirVersion": "1.0.0",
"acceptUnknown": "both",
"format": [
"xml",
"json"
],
"profile": [
{
"reference": "http://hl7.org/fhir/us/core/StructureDefinition/familymemberhistory-genetic"
}
],
"rest": [
{
"mode": "server",
"documentation": "Main FHIR endpoint for acem health",
"security": {
"cors": true,
"service": [
{
"coding": [
{
"system": "http://hl7.org/fhir/restful-security-service",
"code": "SMART-on-FHIR"
}
]
}
],
"description": "See Smart on FHIR documentation",
"certificate": [
{
"type": "application/jwt",
"blob": "IHRoaXMgYmxvYiBpcyBub3QgdmFsaWQ="
}
]
},
"resource": [
{
"type": "Patient",
"profile": {
"reference": "http://fhir.hl7.org/base/StructureDefinition/7896271d-57f6-4231-89dc-dcc91eab2416"
},
"interaction": [
{
"code": "read"
},
{
"code": "vread",
"documentation": "Only supported for patient records since 12-Dec 2012"
},
{
"code": "update"
},
{
"code": "history-instance"
},
{
"code": "create"
},
{
"code": "history-type"
}
],
"versioning": "versioned-update",
"readHistory": true,
"updateCreate": false,
"conditionalCreate": true,
"conditionalUpdate": false,
"conditionalDelete": "not-supported",
"searchInclude": [
"Organization"
],
"searchRevInclude": [
"Person"
],
"searchParam": [
{
"name": "identifier",
"definition": "http://hl7.org/fhir/SearchParameter/Patient-identifier",
"type": "token",
"documentation": "Only supports search by institution MRN"
},
{
"name": "general-practitioner",
"definition": "http://hl7.org/fhir/SearchParameter/Patient-general-practitioner",
"type": "reference"
}
]
}
],
"interaction": [
{
"code": "transaction"
},
{
"code": "history-system"
}
],
"compartment": [
"http://hl7.org/fhir/CompartmentDefinition/patient"
]
}
],
"messaging": [
{
"endpoint": [
{
"protocol": {
"system": "http://hl7.org/fhir/message-transport",
"code": "mllp"
},
"address": "mllp:10.1.1.10:9234"
}
],
"reliableCache": 30,
"documentation": "ADT A08 equivalent for external system notifications",
"event": [
{
"code": {
"system": "http://hl7.org/fhir/message-events",
"code": "admin-notify"
},
"category": "Consequence",
"mode": "receiver",
"focus": "Patient",
"request": {
"reference": "StructureDefinition/Patient"
},
"response": {
"reference": "StructureDefinition/MessageHeader"
},
"documentation": "Notification of an update to a patient resource. changing the links is not supported"
}
]
}
],
"document": [
{
"mode": "consumer",
"documentation": "Basic rules for all documents in the EHR system",
"profile": {
"reference": "http://fhir.hl7.org/base/Profilebc054d23-75e1-4dc6-aca5-838b6b1ac81d/_history/b5fdd9fc-b021-4ea1-911a-721a60663796"
}
}
]
}

View File

@ -0,0 +1,168 @@
{
"resourceType": "Conformance",
"id": "example",
"text": {
"status": "generated",
"div": "<div xmlns=\"http://www.w3.org/1999/xhtml\">\n\t\t\t<p>The EHR Server supports the following transactions for the resource Person: read, vread, \n update, history, search(name,gender), create and updates.</p>\n\t\t\t\n <p>The EHR System supports the following message: admin-notify::Person.</p>\n\t\t\t\n <p>The EHR Application has a \n \n <a href=\"http://fhir.hl7.org/base/Profilebc054d23-75e1-4dc6-aca5-838b6b1ac81d/_history/b5fdd9fc-b021-4ea1-911a-721a60663796\">general document profile</a>.\n \n </p>\n\t\t\n </div>"
},
"extension": [
{
"url": "http://hl7.org/fhir/3.0/StructureDefinition/extension-CapabilityStatement.profile",
"valueReference": {
"reference": "http://hl7.org/fhir/us/core/StructureDefinition/familymemberhistory-genetic"
}
}
],
"url": "urn:uuid:68d043b5-9ecf-4559-a57a-396e0d452311",
"version": "20130510",
"name": "ACMEEHR",
"status": "draft",
"experimental": true,
"publisher": "ACME Corporation",
"contact": [
{
"name": "System Administrator",
"telecom": [
{
"system": "email",
"value": "wile@acme.org"
}
]
}
],
"date": "2012-01-04",
"description": "This is the FHIR capability statement for the main EHR at ACME for the private interface - it does not describe the public interface",
"requirements": "Main EHR capability statement, published for contracting and operational support",
"copyright": "Copyright © Acme Healthcare and GoodCorp EHR Systems",
"kind": "instance",
"software": {
"name": "EHR",
"version": "0.00.020.2134",
"releaseDate": "2012-01-04"
},
"implementation": {
"description": "main EHR at ACME",
"url": "http://10.2.3.4/fhir"
},
"fhirVersion": "5.0.0",
"acceptUnknown": "both",
"format": [
"xml",
"json"
],
"profile": [
{
"reference": "http://registry.fhir.org/r5/StructureDefinition/00ab9e7a-06c7-4f77-9234-4154ca1e3347"
}
],
"rest": [
{
"mode": "server",
"documentation": "Main FHIR endpoint for acem health",
"security": {
"cors": true,
"service": [
{
"coding": [
{
"system": "http://hl7.org/fhir/restful-security-service",
"code": "SMART-on-FHIR"
}
]
}
],
"description": "See Smart on FHIR documentation"
},
"resource": [
{
"type": "Patient",
"profile": {
"reference": "http://registry.fhir.org/r5/StructureDefinition/7896271d-57f6-4231-89dc-dcc91eab2416"
},
"interaction": [
{
"code": "read"
},
{
"code": "vread",
"documentation": "Only supported for patient records since 12-Dec 2012"
},
{
"code": "update"
},
{
"code": "history-instance"
},
{
"code": "create"
},
{
"code": "history-type"
}
],
"versioning": "versioned-update",
"readHistory": true,
"updateCreate": false,
"conditionalCreate": true,
"conditionalUpdate": false,
"conditionalDelete": "not-supported",
"searchInclude": [
"Patient:organization"
],
"searchRevInclude": [
"Person:patient"
],
"searchParam": [
{
"name": "identifier",
"definition": "http://hl7.org/fhir/SearchParameter/Patient-identifier",
"type": "token",
"documentation": "Only supports search by institution MRN"
},
{
"name": "general-practitioner",
"definition": "http://hl7.org/fhir/SearchParameter/Patient-general-practitioner",
"type": "reference"
}
]
}
],
"interaction": [
{
"code": "transaction"
},
{
"code": "history-system"
}
],
"transactionMode": "transaction",
"compartment": [
"http://hl7.org/fhir/CompartmentDefinition/patient"
]
}
],
"messaging": [
{
"endpoint": [
{
"protocol": {
"system": "http://hl7.org/fhir/message-transport",
"code": "mllp"
},
"address": "mllp:10.1.1.10:9234"
}
],
"reliableCache": 30,
"documentation": "ADT A08 equivalent for external system notifications"
}
],
"document": [
{
"mode": "consumer",
"documentation": "Basic rules for all documents in the EHR system",
"profile": {
"reference": "http://fhir.hl7.org/base/Profilebc054d23-75e1-4dc6-aca5-838b6b1ac81d/_history/b5fdd9fc-b021-4ea1-911a-721a60663796"
}
}
]
}

View File

@ -0,0 +1,178 @@
{
"resourceType": "Conformance",
"id": "example",
"text": {
"status": "generated",
"div": "<div xmlns=\"http://www.w3.org/1999/xhtml\">\n\t\t\t<p>The EHR Server supports the following transactions for the resource Person: read, vread, update, history, search(name,gender), create and updates.</p>\n\t\t\t<p>The EHR System supports the following message: admin-notify::Person.</p>\n\t\t\t<p>The EHR Application has a <a href=\"http://fhir.hl7.org/base/Profilebc054d23-75e1-4dc6-aca5-838b6b1ac81d/_history/b5fdd9fc-b021-4ea1-911a-721a60663796\">general document profile</a>.\n </p>\n\t\t</div>"
},
"url": "urn:uuid:68d043b5-9ecf-4559-a57a-396e0d452311",
"version": "20130510",
"name": "ACMEEHR",
"status": "draft",
"experimental": true,
"date": "2012-01-04",
"publisher": "ACME Corporation",
"contact": [
{
"name": "System Administrator",
"telecom": [
{
"system": "email",
"value": "wile@acme.org"
}
]
}
],
"description": "This is the FHIR capability statement for the main EHR at ACME for the private interface - it does not describe the public interface",
"useContext": [
{
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/variant-state",
"code": "positive"
}
]
},
{
"coding": [
{
"system": "urn:iso:std:iso:3166",
"code": "US",
"display": "United States of America (the)"
}
]
}
],
"requirements": "Main EHR capability statement, published for contracting and operational support",
"copyright": "Copyright © Acme Healthcare and GoodCorp EHR Systems",
"kind": "instance",
"software": {
"name": "EHR",
"version": "0.00.020.2134",
"releaseDate": "2012-01-04"
},
"implementation": {
"description": "main EHR at ACME",
"url": "http://10.2.3.4/fhir"
},
"fhirVersion": "4.0.1",
"acceptUnknown": "both",
"format": [
"xml",
"json"
],
"profile": [
{
"reference": "http://registry.fhir.org/r4/StructureDefinition/00ab9e7a-06c7-4f77-9234-4154ca1e3347"
}
],
"rest": [
{
"mode": "server",
"documentation": "Main FHIR endpoint for acem health",
"security": {
"cors": true,
"service": [
{
"coding": [
{
"system": "http://terminology.hl7.org/CodeSystem/restful-security-service",
"code": "SMART-on-FHIR"
}
]
}
],
"description": "See Smart on FHIR documentation"
},
"resource": [
{
"type": "Patient",
"profile": {
"reference": "http://registry.fhir.org/r4/StructureDefinition/7896271d-57f6-4231-89dc-dcc91eab2416"
},
"interaction": [
{
"code": "read"
},
{
"code": "vread",
"documentation": "Only supported for patient records since 12-Dec 2012"
},
{
"code": "update"
},
{
"code": "history-instance"
},
{
"code": "create"
},
{
"code": "history-type"
}
],
"versioning": "versioned-update",
"readHistory": true,
"updateCreate": false,
"conditionalCreate": true,
"conditionalUpdate": false,
"conditionalDelete": "not-supported",
"searchInclude": [
"Organization"
],
"searchRevInclude": [
"Person"
],
"searchParam": [
{
"name": "identifier",
"definition": "http://hl7.org/fhir/SearchParameter/Patient-identifier",
"type": "token",
"documentation": "Only supports search by institution MRN"
},
{
"name": "general-practitioner",
"definition": "http://hl7.org/fhir/SearchParameter/Patient-general-practitioner",
"type": "reference"
}
]
}
],
"interaction": [
{
"code": "transaction"
},
{
"code": "history-system"
}
],
"compartment": [
"http://hl7.org/fhir/CompartmentDefinition/patient"
]
}
],
"messaging": [
{
"endpoint": [
{
"protocol": {
"system": "http://terminology.hl7.org/CodeSystem/message-transport",
"code": "mllp"
},
"address": "mllp:10.1.1.10:9234"
}
],
"reliableCache": 30,
"documentation": "ADT A08 equivalent for external system notifications"
}
],
"document": [
{
"mode": "consumer",
"documentation": "Basic rules for all documents in the EHR system",
"profile": {
"reference": "http://fhir.hl7.org/base/Profilebc054d23-75e1-4dc6-aca5-838b6b1ac81d/_history/b5fdd9fc-b021-4ea1-911a-721a60663796"
}
}
]
}

View File

@ -0,0 +1,168 @@
{
"resourceType": "Conformance",
"id": "example",
"text": {
"status": "generated",
"div": "<div xmlns=\"http://www.w3.org/1999/xhtml\">\n\t\t\t<p>The EHR Server supports the following transactions for the resource Person: read, vread, \n update, history, search(name,gender), create and updates.</p>\n\t\t\t\n <p>The EHR System supports the following message: admin-notify::Person.</p>\n\t\t\t\n <p>The EHR Application has a \n \n <a href=\"http://fhir.hl7.org/base/Profilebc054d23-75e1-4dc6-aca5-838b6b1ac81d/_history/b5fdd9fc-b021-4ea1-911a-721a60663796\">general document profile</a>.\n \n </p>\n\t\t\n </div>"
},
"extension": [
{
"url": "http://hl7.org/fhir/3.0/StructureDefinition/extension-CapabilityStatement.profile",
"valueReference": {
"reference": "http://hl7.org/fhir/us/core/StructureDefinition/familymemberhistory-genetic"
}
}
],
"url": "urn:uuid:68d043b5-9ecf-4559-a57a-396e0d452311",
"version": "20130510",
"name": "ACMEEHR",
"status": "draft",
"experimental": true,
"publisher": "ACME Corporation",
"contact": [
{
"name": "System Administrator",
"telecom": [
{
"system": "email",
"value": "wile@acme.org"
}
]
}
],
"date": "2012-01-04",
"description": "This is the FHIR capability statement for the main EHR at ACME for the private interface - it does not describe the public interface",
"requirements": "Main EHR capability statement, published for contracting and operational support",
"copyright": "Copyright © Acme Healthcare and GoodCorp EHR Systems",
"kind": "instance",
"software": {
"name": "EHR",
"version": "0.00.020.2134",
"releaseDate": "2012-01-04"
},
"implementation": {
"description": "main EHR at ACME",
"url": "http://10.2.3.4/fhir"
},
"fhirVersion": "5.0.0",
"acceptUnknown": "both",
"format": [
"xml",
"json"
],
"profile": [
{
"reference": "http://registry.fhir.org/r5/StructureDefinition/00ab9e7a-06c7-4f77-9234-4154ca1e3347"
}
],
"rest": [
{
"mode": "server",
"documentation": "Main FHIR endpoint for acem health",
"security": {
"cors": true,
"service": [
{
"coding": [
{
"system": "http://hl7.org/fhir/restful-security-service",
"code": "SMART-on-FHIR"
}
]
}
],
"description": "See Smart on FHIR documentation"
},
"resource": [
{
"type": "Patient",
"profile": {
"reference": "http://registry.fhir.org/r5/StructureDefinition/7896271d-57f6-4231-89dc-dcc91eab2416"
},
"interaction": [
{
"code": "read"
},
{
"code": "vread",
"documentation": "Only supported for patient records since 12-Dec 2012"
},
{
"code": "update"
},
{
"code": "history-instance"
},
{
"code": "create"
},
{
"code": "history-type"
}
],
"versioning": "versioned-update",
"readHistory": true,
"updateCreate": false,
"conditionalCreate": true,
"conditionalUpdate": false,
"conditionalDelete": "not-supported",
"searchInclude": [
"Patient:organization"
],
"searchRevInclude": [
"Person:patient"
],
"searchParam": [
{
"name": "identifier",
"definition": "http://hl7.org/fhir/SearchParameter/Patient-identifier",
"type": "token",
"documentation": "Only supports search by institution MRN"
},
{
"name": "general-practitioner",
"definition": "http://hl7.org/fhir/SearchParameter/Patient-general-practitioner",
"type": "reference"
}
]
}
],
"interaction": [
{
"code": "transaction"
},
{
"code": "history-system"
}
],
"transactionMode": "transaction",
"compartment": [
"http://hl7.org/fhir/CompartmentDefinition/patient"
]
}
],
"messaging": [
{
"endpoint": [
{
"protocol": {
"system": "http://hl7.org/fhir/message-transport",
"code": "mllp"
},
"address": "mllp:10.1.1.10:9234"
}
],
"reliableCache": 30,
"documentation": "ADT A08 equivalent for external system notifications"
}
],
"document": [
{
"mode": "consumer",
"documentation": "Basic rules for all documents in the EHR system",
"profile": {
"reference": "http://fhir.hl7.org/base/Profilebc054d23-75e1-4dc6-aca5-838b6b1ac81d/_history/b5fdd9fc-b021-4ea1-911a-721a60663796"
}
}
]
}