Generated Narrative: TestScript 02-Create-subscription-then-handshake Profile: AEGIS Touchstone Testing TestScript Profile 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: http://hl7.org/fhir/us/consent-management/StructureDefinition/FASTSubscription http://hl7.org/fhir/StructureDefinition/Subscription http://hl7.org/fhir/StructureDefinition/Bundle Variables - 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
04 Basic REST-hook Subs - All SUT | 02 Create subscription then handshake
HL7 International / Community Based Collaborative Care
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).]
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]
Consent Client creates with POST a Subscription resource at Consent Admin Service.
Confirm that the request body is a Subscription resource.
Confirm that the request body conforms to the base FHIR Subscription profile. This also checks any declared profiles within.
Confirm that the returned HTTP status is 201 Created.
Confirm that the response body is a Subscription resource.
Confirm that the response body conforms to the base FHIR Subscription profile. This also checks any declared profiles within.
Confirm that the request body is a Subscription resource that should declare the FASTSubscription profile.
Subscription.meta.profile contains 'https://hl7.org/fhir/us/consent-management/StructureDefinition/FASTSubscription'
Confirm that the resource(s) in the request body at FHIRPath 'Subscription' should conform to profile 'FASTSubscription'.
Consent Admin Service sends a Subscription notification to Consent Client's notification endpoint.
POST a Subscriptions R5 Backport REST-hook Notification Bundle.
Confirm that the returned HTTP status is 200 OK.
Confirm that the request resource type is Bundle.
Confirm that the request Bundle conforms to the base FHIR Bundle profile. This also validates the contents against any declared profiles.
Confirm that the request Bundle type is history.
Confirm that the request Bundle declares the backport-subscription-notification-r4 profile.
Bundle.where('http://hl7.org/fhir/uv/subscriptions-backport/StructureDefinition/backport-subscription-notification-r4' in meta.profile).exists()
Confirm that the Notification type is handshake.
Bundle.entry.resource.ofType(Parameters).parameter.where(name='type').value = 'handshake'
Confirm that every Consent resource in the request declares the FASTConsent profile.
Bundle.entry.resource.where(resourceType = 'Consent').all('https://hl7.org/fhir/us/consent-management/StructureDefinition/FASTConsent' in meta.profile)