Mentions légales du service

Skip to content
Snippets Groups Projects
CH-ITI-90-RetrieveRequest-ValidationProfile.json 3.83 KiB
{
    "profileType": "HTTPREQUEST",
    "id": "CH_ITI-90_Retrieve-ValidationProfile",
    "name": "CH_ITI-90_Retrieve",
    "description": "Validation Profile for retrieving a mCSD resource.",
    "context": "EPR",
    "assertions": [
      {
          "selector": "request.method",
          "id": "GETMethodChecking",
          "description": "HTTP method shall be GET or POST",
          "requirementPriority": "MANDATORY",
          "checksComposition": "oneOf",
          "checks": [
            {
              "type": "CLOSEDLIST",
              "values": [
                "GET",
                "POST"
              ]
            }    
          ]
      },
      {
          "selector": "request.version",
          "id": "HTTP1VersionChecking",
          "description": "The HTTP version shall be HTTP/1.1",
          "requirementPriority": "MANDATORY",
          "checksComposition": "oneOf",
          "checks": [
            {
              "type": "FIXEDVALUE",
              "fixedValue": "HTTP/1.1"
            }
          ]
        },
        {
          "selector": "request.uri.path",
          "id": "URIRegexChecking",
          "description": "URI path of the request shall be followed by the Patient resource",
          "requirementPriority": "MANDATORY",
          "checksComposition": "oneOf",
          "checks": [
            {
              "type": "REGEX",
              "regex": "^(\\S)*\\/(Organization|Practitioner|PractitionerRole)\\/(\\S)+$"
            }
          ]
        },
        {
          "selector": "request.headers('Host').values",
          "id": "HostChecking",
          "description": "Host Shall be a server name; Regex: ^(http[s]?:\\/\\/)?[a-zA-Z0-9.\\-\\/]+(:(\\d)+)?$",
          "requirementPriority": "MANDATORY",
          "checksComposition": "oneOf",
          "checks": [
            {
              "type": "REGEX",
              "regex": "^(http[s]?:\\/\\/)?[a-zA-Z0-9.\\-\\/]+(:(\\d)+)?$"
            }
          ]
        },
        {
          "selector": "request.headers('Authorization').values",
          "id": "Authorization_parameter_presence",
          "description": "The Authorization parameter is mandatory.",
          "requirementPriority": "MANDATORY",
          "checksComposition": "oneOf",
          "checks": [
            {
              "type": "OCCURRENCE",
              "minOccurrence": 1,
              "maxOccurrence": 1
            }
          ]
        },
        {
          "selector": "request.headers('Authorization').values",
          "id": "Authorization_parameter_value",
          "description": "Authorization parameter's value SHALL be Bearer, followed by the token.",
          "requirementPriority": "MANDATORY",
          "checksComposition": "oneOf",
          "checks": [
            {
              "type": "REGEX",
              "regex": "^Bearer\\ [-a-zA-Z0-9._~+\\/]+=*$"
            }
          ]
        },{
          "selector": "request.headers('traceparent').values",
          "id": "traceparent_parameter_presence",
          "description": "The traceparent parameter is mandatory in the HTTP header.",
          "requirementPriority": "MANDATORY",
          "checksComposition": "oneOf",
          "checks": [
            {
              "type": "OCCURRENCE",
              "minOccurrence": 1,
              "maxOccurrence": 1
            }
          ]
        },
        {
          "selector": "request.headers('traceparent').values",
          "id": "traceparent_parameter_value",
          "description": "traceparent parameter's value SHALL be as defined in fhir.ch, section tracecontext.",
          "requirementPriority": "MANDATORY",
          "checksComposition": "oneOf",
          "checks": [
            {
              "type": "REGEX",
              "regex": "^(?!f{2})([\\da-f]{2})-(?!0{32})([\\da-f]{32})-(?!0{16})([\\da-f]{16})-([\\da-f]{2})$"
            }
          ]
        }
  ]
}