-
Vincent Hofman authoredVincent Hofman authored
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})$"
}
]
}
]
}