Verifiable Health Links
1.0.0-comment - ballot

Verifiable Health Links - Downloaded Version 1.0.0-comment See the Directory of published versions

## : Test Plan – VHL Receiver - XML Representation

Active as of 2026-06-14

Raw xml | Download

    <TestPlan xmlns="http://hl7.org/fhir">
      <id value="TestPlan-VHLReceiver"/>
      <url
           value="https://profiles.ihe.net/ITI/VHL/TestPlan/TestPlan-VHLReceiver"/>
      <version value="1.0.0-comment"/>
      <name value="TestPlan_VHLReceiver"/>
      <title value="Test Plan – VHL Receiver"/>
      <status value="active"/>
      <date value="2026-06-14T15:37:09-05:00"/>
      <publisher value="IHE IT Infrastructure Technical Committee"/>
      <contact>
        <telecom>
          <system value="url"/>
          <value value="https://www.ihe.net/ihe_domains/it_infrastructure/"/>
        </telecom>
      </contact>
      <contact>
        <telecom>
          <system value="email"/>
          <value value="iti@ihe.net"/>
        </telecom>
      </contact>
      <contact>
        <name value="IHE IT Infrastructure Technical Committee"/>
        <telecom>
          <system value="email"/>
          <value value="iti@ihe.net"/>
        </telecom>
      </contact>
      <description
                   value="Unit test plan for the **VHL Receiver** actor of the IHE ITI Verifiable Health Links (VHL) profile.

    Scope: validates all behaviour expected of a VHL Receiver across its four transactions:
    submitting its own PKI material (ITI-YY1 initiator), retrieving the trust list (ITI-YY2
    initiator), decoding and validating a VHL QR code (ITI-YY4 responder), and requesting the
    document manifest (ITI-YY5 initiator). Each test suite exercises three atomic feature files."/>
      <jurisdiction>
        <coding>
          <system value="http://unstats.un.org/unsd/methods/m49/m49.htm"/>
          <code value="001"/>
        </coding>
      </jurisdiction>
      <scope>🔗
        <reference value="ActorDefinition/VHLReceiver"/>
      </scope>
      <testCase>
        <sequence value="1"/>
        <testRun>
          <narrative
                     value="**ITI-YY1 Message Semantics** – Shared message format file."/>
          <script>
            <language>
              <coding>
                <system value="urn:ietf:bcp:13"/>
                <code value="text/x-gherkin"/>
              </coding>
              <text value="Gherkin"/>
            </language>
            <sourceString value="ITI-YY1-submit-pki-material-message.feature"/>
          </script>
        </testRun>
        <testRun>
          <narrative
                     value="**ITI-YY1 VHL Receiver Initiator Expected Actions** – The VHL Receiver shares the same
    initiator requirements as the VHL Sharer: key pair generation, submission pathway, provenance
    metadata, response handling, and private key retention."/>
          <script>
            <language>
              <coding>
                <system value="urn:ietf:bcp:13"/>
                <code value="text/x-gherkin"/>
              </coding>
              <text value="Gherkin"/>
            </language>
            <sourceString value="ITI-YY1-submit-pki-material-initiator.feature"/>
          </script>
        </testRun>
        <testRun>
          <narrative
                     value="**ITI-YY1 Security Considerations** – Shared security file."/>
          <script>
            <language>
              <coding>
                <system value="urn:ietf:bcp:13"/>
                <code value="text/x-gherkin"/>
              </coding>
              <text value="Gherkin"/>
            </language>
            <sourceString value="ITI-YY1-submit-pki-material-security.feature"/>
          </script>
        </testRun>
      </testCase>
      <testCase>
        <sequence value="2"/>
        <testRun>
          <narrative
                     value="**ITI-YY2 Message Semantics** – Shared message format file."/>
          <script>
            <language>
              <coding>
                <system value="urn:ietf:bcp:13"/>
                <code value="text/x-gherkin"/>
              </coding>
              <text value="Gherkin"/>
            </language>
            <sourceString value="ITI-YY2-retrieve-trust-list-message.feature"/>
          </script>
        </testRun>
        <testRun>
          <narrative
                     value="**ITI-YY2 VHL Receiver Initiator Expected Actions** – Verifies that the VHL Receiver correctly
    constructs retrieval requests, validates and caches returned DID Documents, maps public keys to
    intended uses, tracks expiry, handles revocation notifications, and processes error responses.
    Source: sections 2:3.YY2.4.1, 2:3.YY2.4.2.3, and 2:3.YY2.5."/>
          <script>
            <language>
              <coding>
                <system value="urn:ietf:bcp:13"/>
                <code value="text/x-gherkin"/>
              </coding>
              <text value="Gherkin"/>
            </language>
            <sourceString value="ITI-YY2-retrieve-trust-list-initiator.feature"/>
          </script>
        </testRun>
        <testRun>
          <narrative
                     value="**ITI-YY2 Security Considerations** – Shared security file."/>
          <script>
            <language>
              <coding>
                <system value="urn:ietf:bcp:13"/>
                <code value="text/x-gherkin"/>
              </coding>
              <text value="Gherkin"/>
            </language>
            <sourceString value="ITI-YY2-retrieve-trust-list-security.feature"/>
          </script>
        </testRun>
      </testCase>
      <testCase>
        <sequence value="3"/>
        <testRun>
          <narrative
                     value="**ITI-YY4 Message Semantics** – Verifies the VHL QR code message format: ISO/IEC 18004:2015
    Alphanumeric mode, HC1: prefix, Base45 encoding, ZLIB/DEFLATE compression, CWT structure
    (protected header: alg/kid, claims: exp/iat/hcert), and VHL payload fields (url/key/flag/exp)."/>
          <script>
            <language>
              <coding>
                <system value="urn:ietf:bcp:13"/>
                <code value="text/x-gherkin"/>
              </coding>
              <text value="Gherkin"/>
            </language>
            <sourceString value="ITI-YY4-provide-vhl-message.feature"/>
          </script>
        </testRun>
        <testRun>
          <narrative
                     value="**ITI-YY4 VHL Receiver Responder Expected Actions** – Verifies the complete nine-step decode
    pipeline: QR scanning (ISO/IEC 18004:2015), HC1: verification, Base45 decoding, ZLIB
    decompression, CWT parsing (RFC 8392), COSE signature verification (RFC 8152) using the
    trust list, CWT claims validation (exp/iat), hcert extraction (claim key -260 / 5), and VHL
    payload validation (url/key/flag/exp). Also covers post-decoding actions, all decode failure
    rejections, and optional acknowledgment.
    Source: sections 2:3.YY4.4.1.4 (Receiver Expected Actions) and 2:3.YY4.5 (Security)."/>
          <script>
            <language>
              <coding>
                <system value="urn:ietf:bcp:13"/>
                <code value="text/x-gherkin"/>
              </coding>
              <text value="Gherkin"/>
            </language>
            <sourceString value="ITI-YY4-provide-vhl-responder.feature"/>
          </script>
        </testRun>
        <testRun>
          <narrative
                     value="**ITI-YY4 Security Considerations** – Verifies signature verification requirements, trust list
    enforcement, expiry enforcement, PHI exclusion from the QR payload, and acknowledgment safety."/>
          <script>
            <language>
              <coding>
                <system value="urn:ietf:bcp:13"/>
                <code value="text/x-gherkin"/>
              </coding>
              <text value="Gherkin"/>
            </language>
            <sourceString value="ITI-YY4-provide-vhl-security.feature"/>
          </script>
        </testRun>
      </testCase>
      <testCase>
        <sequence value="4"/>
        <testRun>
          <narrative
                     value="**ITI-YY5 Message Semantics** – Shared message format file."/>
          <script>
            <language>
              <coding>
                <system value="urn:ietf:bcp:13"/>
                <code value="text/x-gherkin"/>
              </coding>
              <text value="Gherkin"/>
            </language>
            <sourceString value="ITI-YY5-retrieve-manifest-message.feature"/>
          </script>
        </testRun>
        <testRun>
          <narrative
                     value="**ITI-YY5 VHL Receiver Initiator Expected Actions** – Verifies request construction (HTTP POST
    /List/_search), HTTP Message Signature creation (Content-Digest, Signature-Input with keyid/alg/created,
    Signature), OAuth with FAST Option (client_credentials, private_key_jwt, required scopes, Bearer
    header, token caching), TLS requirements, and Bundle response processing (match/include search.mode,
    individual DocumentReference retrieval fallback).
    Source: sections 2:3.YY5.4.1 (Request Message) and 2:3.YY5.5.2 (HTTP Message Signatures)."/>
          <script>
            <language>
              <coding>
                <system value="urn:ietf:bcp:13"/>
                <code value="text/x-gherkin"/>
              </coding>
              <text value="Gherkin"/>
            </language>
            <sourceString value="ITI-YY5-retrieve-manifest-initiator.feature"/>
          </script>
        </testRun>
        <testRun>
          <narrative
                     value="**ITI-YY5 Security Considerations** – Shared security file."/>
          <script>
            <language>
              <coding>
                <system value="urn:ietf:bcp:13"/>
                <code value="text/x-gherkin"/>
              </coding>
              <text value="Gherkin"/>
            </language>
            <sourceString value="ITI-YY5-retrieve-manifest-security.feature"/>
          </script>
        </testRun>
      </testCase>
    </TestPlan>