Scalable Consent Management Testing Guide - Local Development build (v1.0.0-ballot) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
| Official URL: http://hl7.org/fhir/us/consent-management-tg/TestScript/02-Create-subscription-then-handshake | Version: 1.0.0-ballot | |||
| Standards status: Trial-use | Maturity Level: 1 | Computable Name: Test_02_Create_subscription_then_handshake | ||
Copyright/Legal: (c) AEGIS.net, Inc. 2026 |
||||
Alternate success: Create a Subscriptions R5 Backport REST-hook Subscription followed by a handshake. Test a client and server to verify support for POST of a REST-hook Subscription. This scenario includes the optional step of the Consent Server sending a handshake. This scenario is generic and can be used with any FHIR format and query parameters. Test case supporting the FAST Consent Management IG Version: CI. See https://wildfhir4.wildfhir.org/ig/fhir-consent-management-tg/rtm_test_cases.html#testcase-232 Test System Details (in order of appearance): [Origin 1: Consent Client's RESTful client. System Under Test: this must be an external test system (not Touchstone).] [Destination 1: Consent Admin Service's RESTful FHIR Server. System Under Test: this must be an external test system (not a mock).] [Origin 2: Consent Admin Service's Subscription REST-hook notification sender. System Under Test: this must be an external test system (not Touchstone).] [Destination 2: Consent Client's Subscription REST-hook notification endpoint. System Under Test: this must be an external test system (not a mock).]
AEGIS Touchstone Testing TestScript Rule Extension
- ruleId: AssertBodyExists
- path: /FHIRCommon/_reference/rule/AssertBodyExists.groovy
StructureDefinition Work Group: cbcc
url: TestScript 04 Basic REST-hook Subs - All SUT | 02 Create subscription then handshake
version: 1.0.0-ballot
name: Test_02_Create_subscription_then_handshake
title: 04 Basic REST-hook Subs - All SUT | 02 Create subscription then handshake
status: Active
date: 2026-03-30
publisher: HL7 International / Community Based Collaborative Care
contact: HL7 International / Community Based Collaborative Care: http://www.hl7.org/Special/committees/cbcc
description:
Alternate success: Create a Subscriptions R5 Backport REST-hook Subscription followed by a handshake. Test a client and server to verify support for POST of a REST-hook Subscription. This scenario includes the optional step of the Consent Server sending a handshake. This scenario is generic and can be used with any FHIR format and query parameters. Test case supporting the FAST Consent Management IG Version: CI. See https://wildfhir4.wildfhir.org/ig/fhir-consent-management-tg/rtm_test_cases.html#testcase-232 Test System Details (in order of appearance): [Origin 1: Consent Client's RESTful client. System Under Test: this must be an external test system (not Touchstone).] [Destination 1: Consent Admin Service's RESTful FHIR Server. System Under Test: this must be an external test system (not a mock).] [Origin 2: Consent Admin Service's Subscription REST-hook notification sender. System Under Test: this must be an external test system (not Touchstone).] [Destination 2: Consent Client's Subscription REST-hook notification endpoint. System Under Test: this must be an external test system (not a mock).]
jurisdiction: United States of America
copyright:
(c) AEGIS.net, Inc. 2026
origin
index: 1
profile: Test script profile origin type: FHIR-Client (FHIR Client)
origin
index: 2
profile: Test script profile origin type: FHIR-Client (FHIR Client)
destination
index: 1
profile: Test script profile destination type: FHIR-Server (FHIR Server)
destination
index: 2
profile: Test script profile destination type: FHIR-Server (FHIR Server)
profile:
| Name | Description | Hint |
| dest-2-FHIRR5BackportNotification-1-needed-notification-endpoint | Consent Client's 's REST Hook Subscription notification endpoint, available at Destination 2. | [Enter Consent Client's 's REST Hook Subscription notification endpoint, available at Destination 2] |
test
name: Step_001_POST_Subscription_create
description: Consent Client creates with POST a Subscription resource at Consent Admin Service.
action
Operations
Type Resource Description Destination EncodeRequestUrl Method Origin RequestId ResponseId Url Test script operation code: create (Create) Subscription Create a Subscription resource. 1 true POST 1 dest-1-FHIRCreate-1-request dest-1-FHIRCreate-1-response ${dest1SystemConfig.baseUrl}/Subscription action
Asserts
Extension Description Direction WarningOnly Confirm that the request body exists. request false action
Asserts
Extension Description Direction Resource WarningOnly Confirm that the request body is a Subscription resource. request Subscription false action
Asserts
Extension Description Direction ValidateProfileId WarningOnly Confirm that the request body conforms to the base FHIR Subscription profile. This also checks any declared profiles within. request Subscription-profile false action
Asserts
Extension Description Direction Operator ResponseCode SourceId WarningOnly Confirm that the returned HTTP status is 201 Created. response in 201 dest-1-FHIRCreate-1-response false action
Asserts
Extension Description Direction WarningOnly Confirm that the response body exists. response false action
Asserts
Extension Description Direction Resource WarningOnly Confirm that the response body is a Subscription resource. response Subscription true action
Asserts
Extension Description Direction ValidateProfileId WarningOnly Confirm that the response body conforms to the base FHIR Subscription profile. This also checks any declared profiles within. response Subscription-profile true action
Asserts
Extension Description Direction Expression Operator SourceId Value WarningOnly Confirm that the request body is a Subscription resource that should declare the FASTSubscription profile. request Subscription.meta.profile contains 'https://hl7.org/fhir/us/consent-management/StructureDefinition/FASTSubscription' equals dest-1-FHIRCreate-1-request true true action
Asserts
Extension Description Direction Expression ValidateProfileId WarningOnly Confirm that the resource(s) in the request body at FHIRPath 'Subscription' should conform to profile 'FASTSubscription'. request Subscription FASTSubscription true
test
name: Step_002_Send_Subscription_notification
description: Consent Admin Service sends a Subscription notification to Consent Client's notification endpoint.
action
operation
type: AEGIS Touchstone Testing FHIR Operation Codes: post (POST)
resource: Bundle
description: POST a Subscriptions R5 Backport REST-hook Notification Bundle.
contentType: json
destination: 2
encodeRequestUrl: true
method: POST
origin: 2
RequestHeaders
Field Value Authorization none requestId: dest-2-FHIRR5BackportNotification-1-request
responseId: dest-2-FHIRR5BackportNotification-1-response
url: ${dest-2-FHIRR5BackportNotification-1-needed-notification-endpoint}
action
Asserts
Extension Description Direction Operator ResponseCode SourceId WarningOnly Confirm that the returned HTTP status is 200 OK. response in 200 dest-2-FHIRR5BackportNotification-1-response false action
Asserts
Extension Description Direction WarningOnly Confirm that the request body exists. request false action
Asserts
Extension Description Direction Resource WarningOnly Confirm that the request resource type is Bundle. request Bundle false action
Asserts
Extension Description Direction ValidateProfileId WarningOnly Confirm that the request Bundle conforms to the base FHIR Bundle profile. This also validates the contents against any declared profiles. request Bundle-profile false action
Asserts
Extension Description Direction Expression Operator Value WarningOnly Confirm that the request Bundle type is history. request Bundle.type equals history false action
Asserts
Extension Description Direction Expression WarningOnly Confirm that the request Bundle declares the backport-subscription-notification-r4 profile. request Bundle.where('http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-subscription-notification-r4' in meta.profile).exists() false action
Asserts
Extension Description Direction Expression Operator SourceId Value WarningOnly Confirm that the Notification type is handshake. request Bundle.entry.resource.ofType(Parameters).parameter.where(name='type').value = 'handshake' equals dest-2-FHIRR5BackportNotification-1-request true false action
Asserts
Extension Description Direction Expression Operator SourceId Value WarningOnly Confirm that every Consent resource in the request declares the FASTConsent profile. request Bundle.entry.resource.where(resourceType = 'Consent').all('https://hl7.org/fhir/us/consent-management/StructureDefinition/FASTConsent' in meta.profile) equals dest-2-FHIRR5BackportNotification-1-request true false