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 - TTL Representation

Active as of 2026-06-14

Raw ttl | Download

    @prefix fhir: <http://hl7.org/fhir/> .
    @prefix owl: <http://www.w3.org/2002/07/owl#> .
    @prefix rdf: <http://www.w3.org/1999/02/22-rdf-syntax-ns#> .
    @prefix rdfs: <http://www.w3.org/2000/01/rdf-schema#> .
    @prefix xsd: <http://www.w3.org/2001/XMLSchema#> .

    # - resource -------------------------------------------------------------------

     a fhir:TestPlan ;
      fhir:nodeRole fhir:treeRoot ;
      fhir:id [ fhir:v "TestPlan-VHLReceiver"] ; #
      fhir:url [ fhir:v "https://profiles.ihe.net/ITI/VHL/TestPlan/TestPlan-VHLReceiver"^^xsd:anyURI] ; #
      fhir:version [ fhir:v "1.0.0-comment"] ; #
      fhir:name [ fhir:v "TestPlan_VHLReceiver"] ; #
      fhir:title [ fhir:v "Test Plan – VHL Receiver"] ; #
      fhir:status [ fhir:v "active"] ; #
      fhir:date [ fhir:v "2026-06-14T15:37:09-05:00"^^xsd:dateTime] ; #
      fhir:publisher [ fhir:v "IHE IT Infrastructure Technical Committee"] ; #
      fhir:contact ( [
        ( fhir:telecom [
    fhir:system [ fhir:v "url" ] ;
    fhir:value [ fhir:v "https://www.ihe.net/ihe_domains/it_infrastructure/" ]     ] )
      ] [
        ( fhir:telecom [
    fhir:system [ fhir:v "email" ] ;
    fhir:value [ fhir:v "iti@ihe.net" ]     ] )
      ] [
    fhir:name [ fhir:v "IHE IT Infrastructure Technical Committee" ] ;
        ( fhir:telecom [
    fhir:system [ fhir:v "email" ] ;
    fhir:value [ fhir:v "iti@ihe.net" ]     ] )
      ] ) ; #
      fhir:description [ fhir:v "Unit test plan for the **VHL Receiver** actor of the IHE ITI Verifiable Health Links (VHL) profile.\n\nScope: validates all behaviour expected of a VHL Receiver across its four transactions:\nsubmitting its own PKI material (ITI-YY1 initiator), retrieving the trust list (ITI-YY2\ninitiator), decoding and validating a VHL QR code (ITI-YY4 responder), and requesting the\ndocument manifest (ITI-YY5 initiator). Each test suite exercises three atomic feature files."] ; #
      fhir:jurisdiction ( [
        ( fhir:coding [
    fhir:system [ fhir:v "http://unstats.un.org/unsd/methods/m49/m49.htm"^^xsd:anyURI ] ;
    fhir:code [ fhir:v "001" ]     ] )
      ] ) ; #
      fhir:scope ( [
    fhir:reference [ fhir:v "ActorDefinition/VHLReceiver" ]
      ] ) ; #
      fhir:testCase ( [
    fhir:sequence [ fhir:v 1 ] ;
        ( fhir:testRun [
    fhir:narrative [ fhir:v "**ITI-YY1 Message Semantics** – Shared message format file." ] ;
    fhir:script [
    fhir:language [
              ( fhir:coding [
    fhir:system [ fhir:v "urn:ietf:bcp:13"^^xsd:anyURI ] ;
    fhir:code [ fhir:v "text/x-gherkin" ]           ] ) ;
    fhir:text [ fhir:v "Gherkin" ]         ] ;
    fhir:source [
    a fhir:string ;
    fhir:v "ITI-YY1-submit-pki-material-message.feature"         ]       ]     ] [
    fhir:narrative [ fhir:v "**ITI-YY1 VHL Receiver Initiator Expected Actions** – The VHL Receiver shares the same\ninitiator requirements as the VHL Sharer: key pair generation, submission pathway, provenance\nmetadata, response handling, and private key retention." ] ;
    fhir:script [
    fhir:language [
              ( fhir:coding [
    fhir:system [ fhir:v "urn:ietf:bcp:13"^^xsd:anyURI ] ;
    fhir:code [ fhir:v "text/x-gherkin" ]           ] ) ;
    fhir:text [ fhir:v "Gherkin" ]         ] ;
    fhir:source [
    a fhir:string ;
    fhir:v "ITI-YY1-submit-pki-material-initiator.feature"         ]       ]     ] [
    fhir:narrative [ fhir:v "**ITI-YY1 Security Considerations** – Shared security file." ] ;
    fhir:script [
    fhir:language [
              ( fhir:coding [
    fhir:system [ fhir:v "urn:ietf:bcp:13"^^xsd:anyURI ] ;
    fhir:code [ fhir:v "text/x-gherkin" ]           ] ) ;
    fhir:text [ fhir:v "Gherkin" ]         ] ;
    fhir:source [
    a fhir:string ;
    fhir:v "ITI-YY1-submit-pki-material-security.feature"         ]       ]     ] )
      ] [
    fhir:sequence [ fhir:v 2 ] ;
        ( fhir:testRun [
    fhir:narrative [ fhir:v "**ITI-YY2 Message Semantics** – Shared message format file." ] ;
    fhir:script [
    fhir:language [
              ( fhir:coding [
    fhir:system [ fhir:v "urn:ietf:bcp:13"^^xsd:anyURI ] ;
    fhir:code [ fhir:v "text/x-gherkin" ]           ] ) ;
    fhir:text [ fhir:v "Gherkin" ]         ] ;
    fhir:source [
    a fhir:string ;
    fhir:v "ITI-YY2-retrieve-trust-list-message.feature"         ]       ]     ] [
    fhir:narrative [ fhir:v "**ITI-YY2 VHL Receiver Initiator Expected Actions** – Verifies that the VHL Receiver correctly\nconstructs retrieval requests, validates and caches returned DID Documents, maps public keys to\nintended uses, tracks expiry, handles revocation notifications, and processes error responses.\nSource: sections 2:3.YY2.4.1, 2:3.YY2.4.2.3, and 2:3.YY2.5." ] ;
    fhir:script [
    fhir:language [
              ( fhir:coding [
    fhir:system [ fhir:v "urn:ietf:bcp:13"^^xsd:anyURI ] ;
    fhir:code [ fhir:v "text/x-gherkin" ]           ] ) ;
    fhir:text [ fhir:v "Gherkin" ]         ] ;
    fhir:source [
    a fhir:string ;
    fhir:v "ITI-YY2-retrieve-trust-list-initiator.feature"         ]       ]     ] [
    fhir:narrative [ fhir:v "**ITI-YY2 Security Considerations** – Shared security file." ] ;
    fhir:script [
    fhir:language [
              ( fhir:coding [
    fhir:system [ fhir:v "urn:ietf:bcp:13"^^xsd:anyURI ] ;
    fhir:code [ fhir:v "text/x-gherkin" ]           ] ) ;
    fhir:text [ fhir:v "Gherkin" ]         ] ;
    fhir:source [
    a fhir:string ;
    fhir:v "ITI-YY2-retrieve-trust-list-security.feature"         ]       ]     ] )
      ] [
    fhir:sequence [ fhir:v 3 ] ;
        ( fhir:testRun [
    fhir:narrative [ fhir:v "**ITI-YY4 Message Semantics** – Verifies the VHL QR code message format: ISO/IEC 18004:2015\nAlphanumeric mode, HC1: prefix, Base45 encoding, ZLIB/DEFLATE compression, CWT structure\n(protected header: alg/kid, claims: exp/iat/hcert), and VHL payload fields (url/key/flag/exp)." ] ;
    fhir:script [
    fhir:language [
              ( fhir:coding [
    fhir:system [ fhir:v "urn:ietf:bcp:13"^^xsd:anyURI ] ;
    fhir:code [ fhir:v "text/x-gherkin" ]           ] ) ;
    fhir:text [ fhir:v "Gherkin" ]         ] ;
    fhir:source [
    a fhir:string ;
    fhir:v "ITI-YY4-provide-vhl-message.feature"         ]       ]     ] [
    fhir:narrative [ fhir:v "**ITI-YY4 VHL Receiver Responder Expected Actions** – Verifies the complete nine-step decode\npipeline: QR scanning (ISO/IEC 18004:2015), HC1: verification, Base45 decoding, ZLIB\ndecompression, CWT parsing (RFC 8392), COSE signature verification (RFC 8152) using the\ntrust list, CWT claims validation (exp/iat), hcert extraction (claim key -260 / 5), and VHL\npayload validation (url/key/flag/exp). Also covers post-decoding actions, all decode failure\nrejections, and optional acknowledgment.\nSource: sections 2:3.YY4.4.1.4 (Receiver Expected Actions) and 2:3.YY4.5 (Security)." ] ;
    fhir:script [
    fhir:language [
              ( fhir:coding [
    fhir:system [ fhir:v "urn:ietf:bcp:13"^^xsd:anyURI ] ;
    fhir:code [ fhir:v "text/x-gherkin" ]           ] ) ;
    fhir:text [ fhir:v "Gherkin" ]         ] ;
    fhir:source [
    a fhir:string ;
    fhir:v "ITI-YY4-provide-vhl-responder.feature"         ]       ]     ] [
    fhir:narrative [ fhir:v "**ITI-YY4 Security Considerations** – Verifies signature verification requirements, trust list\nenforcement, expiry enforcement, PHI exclusion from the QR payload, and acknowledgment safety." ] ;
    fhir:script [
    fhir:language [
              ( fhir:coding [
    fhir:system [ fhir:v "urn:ietf:bcp:13"^^xsd:anyURI ] ;
    fhir:code [ fhir:v "text/x-gherkin" ]           ] ) ;
    fhir:text [ fhir:v "Gherkin" ]         ] ;
    fhir:source [
    a fhir:string ;
    fhir:v "ITI-YY4-provide-vhl-security.feature"         ]       ]     ] )
      ] [
    fhir:sequence [ fhir:v 4 ] ;
        ( fhir:testRun [
    fhir:narrative [ fhir:v "**ITI-YY5 Message Semantics** – Shared message format file." ] ;
    fhir:script [
    fhir:language [
              ( fhir:coding [
    fhir:system [ fhir:v "urn:ietf:bcp:13"^^xsd:anyURI ] ;
    fhir:code [ fhir:v "text/x-gherkin" ]           ] ) ;
    fhir:text [ fhir:v "Gherkin" ]         ] ;
    fhir:source [
    a fhir:string ;
    fhir:v "ITI-YY5-retrieve-manifest-message.feature"         ]       ]     ] [
    fhir:narrative [ fhir:v "**ITI-YY5 VHL Receiver Initiator Expected Actions** – Verifies request construction (HTTP POST\n/List/_search), HTTP Message Signature creation (Content-Digest, Signature-Input with keyid/alg/created,\nSignature), OAuth with FAST Option (client_credentials, private_key_jwt, required scopes, Bearer\nheader, token caching), TLS requirements, and Bundle response processing (match/include search.mode,\nindividual DocumentReference retrieval fallback).\nSource: sections 2:3.YY5.4.1 (Request Message) and 2:3.YY5.5.2 (HTTP Message Signatures)." ] ;
    fhir:script [
    fhir:language [
              ( fhir:coding [
    fhir:system [ fhir:v "urn:ietf:bcp:13"^^xsd:anyURI ] ;
    fhir:code [ fhir:v "text/x-gherkin" ]           ] ) ;
    fhir:text [ fhir:v "Gherkin" ]         ] ;
    fhir:source [
    a fhir:string ;
    fhir:v "ITI-YY5-retrieve-manifest-initiator.feature"         ]       ]     ] [
    fhir:narrative [ fhir:v "**ITI-YY5 Security Considerations** – Shared security file." ] ;
    fhir:script [
    fhir:language [
              ( fhir:coding [
    fhir:system [ fhir:v "urn:ietf:bcp:13"^^xsd:anyURI ] ;
    fhir:code [ fhir:v "text/x-gherkin" ]           ] ) ;
    fhir:text [ fhir:v "Gherkin" ]         ] ;
    fhir:source [
    a fhir:string ;
    fhir:v "ITI-YY5-retrieve-manifest-security.feature"         ]       ]     ] )
      ] ) . #