Scalable Consent Management Testing Guide - Local Development build (v0.1.0) built by the FHIR (HL7® FHIR® Standard) Build Tools. See the Directory of published versions
Page standards status: Informative |
This page displays the Requirements Traceability Matrix (RTM) from the perspective of the test cases. All test cases defined are included, whether or not they are traced. Each test case may be expanded to show its details as well as its traced requirements.
Read a Consent
Actors: Consent Client, CAS
Pre-condition: A Consent conforming to the FASTConsent profile exists at the CAS, and its ID is known.
Narrative:
Post-condition:
Search for a Consent
Actors: Consent Client, CAS
Pre-condition: At least one Consent conforming to the FASTConsent profile exists at the CAS, and details about it sufficient to search are known.
Narrative:
Post-condition:
Search for Consent by FASTConsentController - JSON
This test case extends test case "Search for a Consent".
Pre-condition: FASTConsentController details are known by which at least one Consent would match and at least one Consent would not match at the CAS.
Search for Consent by FASTConsentController - XML
This test case extends test case "Search for a Consent".
Pre-condition: FASTConsentController details are known by which at least one Consent would match and at least one Consent would not match at the CAS.
Search for Consent by date - JSON
This test case extends test case "Search for a Consent".
Pre-condition: date details are known by which at least one Consent would match and at least one Consent would not match at the CAS.
Search for Consent by date - XML
This test case extends test case "Search for a Consent".
Pre-condition: date details are known by which at least one Consent would match and at least one Consent would not match at the CAS.
Search for Consent by FASTConsentGrantee - JSON
This test case extends test case "Search for a Consent".
Pre-condition: FASTConsentGrantee details are known by which at least one Consent would match and at least one Consent would not match at the CAS.
Search for Consent by FASTConsentGrantee - XML
This test case extends test case "Search for a Consent".
Pre-condition: FASTConsentGrantee details are known by which at least one Consent would match and at least one Consent would not match at the CAS.
Search for Consent by FASTConsentManager - JSON
This test case extends test case "Search for a Consent".
Pre-condition: FASTConsentManager details are known by which at least one Consent would match and at least one Consent would not match at the CAS.
Search for Consent by FASTConsentManager - XML
This test case extends test case "Search for a Consent".
Pre-condition: FASTConsentManager details are known by which at least one Consent would match and at least one Consent would not match at the CAS.
Search for Consent by FASTConsentOrganizationId - JSON
This test case extends test case "Search for a Consent".
Pre-condition: FASTConsentOrganizationId details are known by which at least one Consent would match and at least one Consent would not match at the CAS.
Search for Consent by FASTConsentOrganizationId - XML
This test case extends test case "Search for a Consent".
Pre-condition: FASTConsentOrganizationId details are known by which at least one Consent would match and at least one Consent would not match at the CAS.
Search for Consent by patient - JSON
This test case extends test case "Search for a Consent".
Pre-condition: patient details are known by which at least one Consent would match and at least one Consent would not match at the CAS.
Search for Consent by patient - XML
This test case extends test case "Search for a Consent".
Pre-condition: patient details are known by which at least one Consent would match and at least one Consent would not match at the CAS.
Search for Consent by FASTConsentPatientId - JSON
This test case extends test case "Search for a Consent".
Pre-condition: FASTConsentPatientId details are known by which at least one Consent would match and at least one Consent would not match at the CAS.
Search for Consent by FASTConsentPatientId - XML
This test case extends test case "Search for a Consent".
Pre-condition: FASTConsentPatientId details are known by which at least one Consent would match and at least one Consent would not match at the CAS.
Search for Consent by scope - JSON
This test case extends test case "Search for a Consent".
Pre-condition: scope details are known by which at least one Consent would match and at least one Consent would not match at the CAS.
Search for Consent by scope - XML
This test case extends test case "Search for a Consent".
Pre-condition: scope details are known by which at least one Consent would match and at least one Consent would not match at the CAS.
Search for Consent by status - JSON
This test case extends test case "Search for a Consent".
Pre-condition: status details are known by which at least one Consent would match and at least one Consent would not match at the CAS.
Search for Consent by status - XML
This test case extends test case "Search for a Consent".
Pre-condition: status details are known by which at least one Consent would match and at least one Consent would not match at the CAS.
Search for Consent by FASTConsent profile - JSON
This test case extends test case "Search for a Consent".
Pre-condition: At least one Consent declaring the FASTConsent profile and at least one Consent not declaring it exist at the CAS.
Search for Consent by FASTConsent profile - XML
This test case extends test case "Search for a Consent".
Pre-condition: At least one Consent declaring the FASTConsent profile and at least one Consent not declaring it exist at the CAS.
Read an AuditEvent
Actors: Consent Client, CAS
Pre-condition: An AuditEvent conforming to the FASTConsentAuditEvent profile exists at the CAS, and its ID is known.
Narrative:
Post-condition:
Search for an AuditEvent
Actors: Consent Client, CAS
Pre-condition: At least one AuditEvent conforming to the FASTConsentAuditEvent profile exists at the CAS, and details about it sufficient to search are known.
Narrative:
Post-condition:
Search for AuditEvent by FASTAuditEventConsent - JSON
This test case extends test case "Search for an AuditEvent".
Pre-condition: FASTAuditEventConsent details are known by which at least one AuditEvent would match and at least one AuditEvent would not match at the CAS.
Search for AuditEvent by FASTAuditEventConsent - XML
This test case extends test case "Search for an AuditEvent".
Pre-condition: FASTAuditEventConsent details are known by which at least one AuditEvent would match and at least one AuditEvent would not match at the CAS.
Search for AuditEvent by patient - JSON
This test case extends test case "Search for an AuditEvent".
Pre-condition: patient details are known by which at least one AuditEvent would match and at least one AuditEvent would not match at the CAS.
Search for AuditEvent by patient - XML
This test case extends test case "Search for an AuditEvent".
Pre-condition: patient details are known by which at least one AuditEvent would match and at least one AuditEvent would not match at the CAS.
Search for AuditEvent by FASTConsentAuditEvent profile - JSON
This test case extends test case "Search for an AuditEvent".
Pre-condition: At least one AuditEvent declaring the FASTConsentAuditEvent profile and at least one AuditEvent not declaring it exist at the CAS.
Search for AuditEvent by FASTConsentAuditEvent profile - XML
This test case extends test case "Search for an AuditEvent".
Pre-condition: At least one AuditEvent declaring the FASTConsentAuditEvent profile and at least one AuditEvent not declaring it exist at the CAS.
Read a Subscription
Actors: Consent Client, CAS
Pre-condition: A Subscription [optionally conforming to the FASTSubscription profile] exists at the CAS, and its ID is known.
Narrative:
Post-condition:
Workflow: Create a subscription - rest-hook
This is a wide-open workflow that can be used as the base for many variations.
Actors: Consent Client, CAS, Notification Endpoint
Pre-condition: CAS has advertised its support for subscriptions in its CapabilityStatement. Consent Client has prepared its Notification Endpoint to receive notifications.
Narrative:
Post-condition:
Workflow: Create a subscription - rest-hook PUT
This test case extends test case "Workflow: Create a subscription - rest-hook".
Error: Create a Subscription - rest-hook - unsupported backport-channel-type
Actors: Consent Client, CAS
Pre-condition: None
Narrative:
Post-condition: The Subscription has not been created at the CAS.
Error: Create a Subscription - rest-hook - unsupported filter
Actors: Consent Client, CAS
Pre-condition: None
Narrative:
Post-condition: The Subscription has not been created at the CAS.
Error: Create a Subscription - rest-hook - unsupported content level
Actors: Consent Client, CAS
Pre-condition: None
Narrative:
Post-condition: The Subscription has not been created at the CAS.
Error: Create a Subscription - rest-hook - unsupported topic
Actors: Consent Client, CAS
Pre-condition: None
Narrative:
Post-condition: The Subscription has not been created at the CAS.
Workflow: Update a Subscription - rest-hook
This is a wide-open workflow that can be used as the base for many variations.
Actors: Consent Client, CAS, Notification Endpoint
Pre-condition: Consent Client has an existing Subscription at the CAS.
Narrative:
Post-condition:
Workflow: Update a Subscription - rest-hook PATCH
This test case extends test case "Workflow: Update a Subscription - rest-hook".
Workflow: Notify for a Subscription - rest-hook
This is a wide-open workflow that can be used as the base for many variations. Each variation needs to specify what the trigger in step 1 is.
Actors: Consent Client, CAS, Notification Endpoint
Pre-condition: Consent Client has successfully made a Subscription at the CAS, with the rest-hook channel type.
Narrative:
Post-condition:
Operation: Get Subscription Status
Actors: Consent Client, CAS
Pre-condition: None
Narrative:
Post-condition:
Operation: File a Consent
Actors: Consent Client, CAS
Pre-condition: None
Narrative:
Post-condition:
Operation: Revoke a Consent
Actors: Consent Client, CAS
Pre-condition: None
Narrative:
Post-condition:
Operation: Record a Disclosure
Actors: Consent Client, CAS
Pre-condition: None
Narrative:
Post-condition:
Obtain server CapabilityStatement
Actors: Consent client, CAS
Pre-condition: None
Narrative:
Post-condition:
Obtain server CapabilityStatement - JSON
This test case extends test case "Obtain server CapabilityStatement".
Obtain server CapabilityStatement - XML
This test case extends test case "Obtain server CapabilityStatement".
Obtain and handle conformant variations of server CapabilityStatement
This tests the ability of a client to handle legal variants of CSs.
Actors: Consent Client, Simulated CAS
Pre-condition: None
Narrative:
Post-condition:
Obtain and handle STU3 version server CapabilityStatement
This tests the ability of a client to handle an STU3 CS.
Actors: Consent Client, Simulated CAS
Pre-condition: None
Narrative:
Post-condition:
Test client CapabilityStatement
Actors: Consent client
Pre-condition: None
Narrative:
Post-condition:
Test client CapabilityStatement - JSON
This test case extends test case "Test client CapabilityStatement".
Test client CapabilityStatement - XML
This test case extends test case "Test client CapabilityStatement".
Workflow: Consent subscription and notification
This is a wide-open workflow that can be used as the base for many variations.
Actors: Consent Client, CAS, Notification Endpoint, Tester
Pre-condition: CAS has advertised its support for subscriptions in its CapabilityStatement. Consent Client has prepared its Notification Endpoint to receive notifications. There are no current subscriptions between this CAS and this Endpoint.
Narrative:
Post-condition:
Workflow: Consent subscription and notification - FASTConsentPatientId
This test case extends test case "Workflow: Consent subscription and notification".
Test data: Data for 2 conformant FASTConsents for an existing patient known at the CAS. No existing Consents for this patient at the CAS. Each Consent differs by where it identifies the patient: patient.identifier element or patient.extension additionalIdentifier.
Additional Post-condition:
Workflow: Consent subscription and notification - FASTConsentOrganizationId
This test case extends test case "Workflow: Consent subscription and notification".
Test data: Data for 4 conformant FASTConsents for an existing organization known at the CAS. No existing Consents for this organization at the CAS. Each Consent differs by where it identifies the organization: the extensions grantee, manager, controller or the provision.actor.role.reference.
Additional Post-condition:
Workflow: Consent subscription and notification - actor
This test case extends test case "Workflow: Consent subscription and notification".
Test data: Data for a conformant FASTConsent for an existing Consent actor (Consent.provision.actor.reference - see the actor search parameter) known at the CAS. No existing Consents for this actor at the CAS.
Additional Post-condition:
Workflow: Consent subscription and notification - status
This test case extends test case "Workflow: Consent subscription and notification".
Test data: Data for a conformant FASTConsent for an existing patient known at the CAS. No existing Consents for this patient at the CAS. Note that it may not be possible for there to be no existing Consents having this status at the CAS, so there may be false positives the tester will need to examine.
Additional Post-condition:
Workflow: Consent subscription and notification - scope
This test case extends test case "Workflow: Consent subscription and notification".
Test data: Data for a conformant FASTConsent for an existing patient known at the CAS. No existing Consents for this patient at the CAS. Note that it may not be possible for there to be no existing Consents having this scope at the CAS, so there may be false positives the tester will need to examine.
Additional Post-condition:
Workflow: Consent subscription and notification - no filters
This test case extends test case "Workflow: Consent subscription and notification".
Test data: Data for a conformant FASTConsent for an existing patient known at the CAS. No existing Consents for this patient at the CAS. Note that it may not be possible for there to be no existing Consents at the CAS, so there may be false positives the tester will need to examine.
Additional Post-condition:
Workflow: Consent subscription and notification - all filters
This test case extends test case "Workflow: Consent subscription and notification".
TBD - define background test data that:
Additional Post-condition:
Workflow: Utilize Consent For Disclosure
This is a wide-open workflow that can be used as the base for many variations.
Actors: Data Consumer, Data Holder with Consent Client, CAS
Pre-condition: Data holder has PHI for a patient. CAS has a valid, active Consent associated with that patient. [The rest is undefined: Data Holder may already have the Consent and know it is managed at this particular CAS, Data Holder may not know about the Consent or the CAS and discover it at the time the disclosure is requested.]
Narrative:
Post-condition:
No direct requirements for actors to support this yet, but the capability is defined.
Use Case: Sign and File Consent
Actors: Consenter, Consent Client, CAS
Pre-condition: A consent form has been reviewed and completed (see use case Review Consent).
Narrative:
Post-condition:
Validate FHIR resources
This is a base test case that will be added to all others.
Actors: Any
Pre-condition: None
Narrative:
Post-condition: