@dvsa/mes-test-schema
Version:
Domain model for data associated with tests administered by the Driving Examiner Services project
560 lines (559 loc) • 16.5 kB
JSON
{
"title": "Test Result Cat AM1 Schema",
"type": "object",
"definitions": {
"singleFaultCompetencies": {
"additionalProperties": false,
"description": "Single fault competencies associated with the test",
"properties": {
"useOfStand": {
"$ref": "#/definitions/singleFaultCompetencyOutcome"
},
"useOfStandComments": {
"$ref": "#/definitions/faultComments"
},
"manualHandling": {
"$ref": "#/definitions/singleFaultCompetencyOutcome"
},
"manualHandlingComments": {
"$ref": "#/definitions/faultComments"
},
"slalom": {
"$ref": "#/definitions/singleFaultCompetencyOutcome"
},
"slalomComments": {
"$ref": "#/definitions/faultComments"
},
"slowControl": {
"$ref": "#/definitions/singleFaultCompetencyOutcome"
},
"slowControlComments": {
"$ref": "#/definitions/faultComments"
},
"uTurn": {
"$ref": "#/definitions/singleFaultCompetencyOutcome"
},
"uTurnComments": {
"$ref": "#/definitions/faultComments"
},
"controlledStop": {
"$ref": "#/definitions/singleFaultCompetencyOutcome"
},
"controlledStopComments": {
"$ref": "#/definitions/faultComments"
},
"emergencyStop": {
"$ref": "#/definitions/singleFaultCompetencyOutcome"
},
"emergencyStopComments": {
"$ref": "#/definitions/faultComments"
},
"avoidance": {
"$ref": "#/definitions/singleFaultCompetencyOutcome"
},
"avoidanceComments": {
"$ref": "#/definitions/faultComments"
}
}
},
"circuit": {
"description": "Circuit completed (left or right)",
"type": "string",
"enum": [
"Left",
"Right"
]
},
"testData": {
"additionalProperties": false,
"description": "Data associated with the test",
"properties": {
"singleFaultCompetencies": {
"$ref": "#/definitions/singleFaultCompetencies"
},
"emergencyStop": {
"$ref": "#/definitions/emergencyStop"
},
"avoidance": {
"$ref": "#/definitions/avoidance"
},
"drivingFaults": {
"$ref": "#/definitions/drivingFaults"
},
"seriousFaults": {
"$ref": "#/definitions/seriousFaults"
},
"dangerousFaults": {
"$ref": "#/definitions/dangerousFaults"
},
"ETA": {
"$ref": "#/definitions/ETA"
}
},
"type": "object"
},
"singleFaultCompetencyOutcome": {
"description": "The possible outcomes of any single fault competency",
"enum": [
"DF",
"S",
"D"
],
"type": "string"
},
"SpeedRequirementCompetencyOutcome": {
"description": "The possible outcomes of speed requirment fault competency",
"enum": [
"S"
],
"type": "string"
},
"examiner": {
"$ref": "../common/index.json#/definitions/examiner"
},
"testCentre": {
"$ref": "../common/index.json#/definitions/testCentre"
},
"name": {
"$ref": "../common/index.json#/definitions/name"
},
"address": {
"$ref": "../common/index.json#/definitions/address"
},
"candidate": {
"$ref": "../common/index.json#/definitions/candidate"
},
"applicationReference": {
"$ref": "../common/index.json#/definitions/applicationReference"
},
"initiator": {
"$ref": "../common/index.json#/definitions/initiator"
},
"testSlotAttributes": {
"$ref": "../common/index.json#/definitions/testSlotAttributes"
},
"journalData": {
"$ref": "../common/index.json#/definitions/journalData"
},
"signature": {
"$ref": "../common/index.json#/definitions/signature"
},
"communicationMethod": {
"$ref": "../common/index.json#/definitions/communicationMethod"
},
"conductedLanguage": {
"$ref": "../common/index.json#/definitions/conductedLanguage"
},
"communicationPreferences": {
"$ref": "../common/index.json#/definitions/communicationPreferences"
},
"preTestDeclarations": {
"type": "object",
"additionalProperties": false,
"properties": {
"insuranceDeclarationAccepted": {
"description": "Whether or not the candidate has declared that their test vehicle has a valid insurance policy",
"type": "boolean"
},
"residencyDeclarationAccepted": {
"description": "Whether or not the candidate has declared that they have lived in the UK for a period acceptable for taking the test",
"type": "boolean"
},
"preTestSignature": {
"$ref": "#/definitions/signature"
},
"DL196CBTCertNumber": {
"$ref": "#/definitions/DL196CBTCertNumber"
}
},
"required": [
"insuranceDeclarationAccepted",
"residencyDeclarationAccepted",
"preTestSignature"
]
},
"accompaniment": {
"$ref": "../common/index.json#/definitions/accompaniment"
},
"gearboxCategory": {
"$ref": "../common/index.json#/definitions/gearboxCategory"
},
"drivingFaultCount": {
"$ref": "../common/index.json#/definitions/drivingFaultCount"
},
"faultComments": {
"$ref": "../common/index.json#/definitions/faultComments"
},
"drivingFaults": {
"description": "The driving faults accumulated during the test",
"type": "object",
"properties": {
"precautions": {
"$ref": "#/definitions/drivingFaultCount"
},
"precautionsComments": {
"$ref": "#/definitions/faultComments"
},
"moveOffSafety": {
"$ref": "#/definitions/drivingFaultCount"
},
"moveOffSafetyComments": {
"$ref": "#/definitions/faultComments"
},
"moveOffControl": {
"$ref": "#/definitions/drivingFaultCount"
},
"moveOffControlComments": {
"$ref": "#/definitions/faultComments"
}
},
"additionalProperties": false
},
"seriousFaultIndicator": {
"$ref": "../common/index.json#/definitions/seriousFaultIndicator"
},
"seriousFaults": {
"description": "The serious faults accumulated during the test",
"type": "object",
"properties": {
"precautions": {
"$ref": "#/definitions/seriousFaultIndicator"
},
"precautionsComments": {
"$ref": "#/definitions/faultComments"
},
"moveOffSafety": {
"$ref": "#/definitions/seriousFaultIndicator"
},
"moveOffSafetyComments": {
"$ref": "#/definitions/faultComments"
},
"moveOffControl": {
"$ref": "#/definitions/seriousFaultIndicator"
},
"moveOffControlComments": {
"$ref": "#/definitions/faultComments"
}
},
"additionalProperties": false
},
"dangerousFaultIndicator": {
"$ref": "../common/index.json#/definitions/dangerousFaultIndicator"
},
"dangerousFaults": {
"description": "The dangerous faults accumulated during the test",
"type": "object",
"properties": {
"precautions": {
"$ref": "#/definitions/dangerousFaultIndicator"
},
"precautionsComments": {
"$ref": "#/definitions/faultComments"
},
"moveOffSafety": {
"$ref": "#/definitions/dangerousFaultIndicator"
},
"moveOffSafetyComments": {
"$ref": "#/definitions/faultComments"
},
"moveOffControl": {
"$ref": "#/definitions/dangerousFaultIndicator"
},
"moveOffControlComments": {
"$ref": "#/definitions/faultComments"
}
},
"additionalProperties": false
},
"postTestDeclarations": {
"$ref": "../common/index.json#/definitions/postTestDeclarations"
},
"weatherConditions": {
"$ref": "../common/index.json#/definitions/weatherConditions"
},
"identification": {
"$ref": "../common/index.json#/definitions/identification"
},
"testSummary": {
"description": "Recording of other characteristics of the test",
"type": "object",
"properties": {
"routeNumber": {
"description": "Number of the route that was taken during the test",
"type": "integer",
"const": 88
},
"trueLikenessToPhoto": {
"description": "Physical appearance resembles a true likeness to provided ID",
"type": "boolean"
},
"candidateDescription": {
"description": "Physical description of the candidate",
"type": "string",
"maxLength": 1000
},
"debriefWitnessed": {
"description": "Indicates whether anybody else (e.g. ADI) was present for the debrief",
"type": "boolean"
},
"identification": {
"$ref": "#/definitions/identification"
},
"weatherConditions": {
"description": "Description of the type of weather encountered during the test",
"type": "array",
"items": {
"$ref": "#/definitions/weatherConditions"
}
},
"D255": {
"description": "Indicates whether a D255 form needs to be completed",
"type": "boolean"
},
"additionalInformation": {
"description": "Any comments that the DE wants to record about the test",
"type": "string"
},
"circuit": {
"$ref": "#/definitions/circuit"
}
},
"additionalProperties": false
},
"categoryCode": {
"$ref": "../common/index.json#/definitions/categoryCode"
},
"activityCode": {
"$ref": "../common/index.json#/definitions/activityCode"
},
"gender": {
"$ref": "../common/index.json#/definitions/gender"
},
"rekeyReason": {
"$ref": "../common/index.json#/definitions/rekeyReason"
},
"transfer": {
"$ref": "../common/index.json#/definitions/transfer"
},
"ipadIssue": {
"$ref": "../common/index.json#/definitions/ipadIssue"
},
"other": {
"$ref": "../common/index.json#/definitions/other"
},
"vehicleDetails": {
"description": "Details about the vehicle to be used for the test",
"type": "object",
"properties": {
"registrationNumber": {
"description": "The vehicle registration number",
"type": "string",
"maxLength": 7
},
"motStatus": {
"description": "The mot status of the vehicle",
"type": "string"
},
"motEvidenceProvided": {
"description": "Marker stating if alternative MOT evidence was provided",
"type": "boolean"
},
"motEvidence": {
"description": "Alternative MOT evidence",
"type": "string"
},
"make": {
"description": "The make of the vehicle",
"type": "string"
},
"model": {
"description": "The model of the vehicle",
"type": "string"
},
"testExpiryDate": {
"description": "The test expiry date of the vehicle",
"type": "string"
},
"previouslySearchedRegNumbers": {
"description": "Previously searched for registration numbers",
"type": "array",
"items": {
"type": "string"
}
},
"gearboxCategory": {
"$ref": "#/definitions/gearboxCategory"
},
"schoolBike": {
"$ref": "#/definitions/schoolBike"
}
},
"additionalProperties": false
},
"passCompletion": {
"description": "Finalisation of a successful test outcome",
"type": "object",
"properties": {
"passCertificateNumber": {
"description": "The PCN issued to the candidate",
"type": "string",
"maxLength": 7,
"minLength": 7
}
},
"additionalProperties": false,
"required": [
"passCertificateNumber"
]
},
"DL196CBTCertNumber": {
"description": "The number of the DL196 CBT certificate presented by the candidate",
"type": "string"
},
"avoidance": {
"description": "The outcome of avoidance tests",
"type": "object",
"additionalProperties": false,
"properties": {
"firstAttempt": {
"description": "The speed of the first attempt",
"type": "integer"
},
"secondAttempt": {
"description": "The speed of the second attempt",
"type": "integer"
},
"outcome": {
"$ref": "#/definitions/SpeedRequirementCompetencyOutcome"
},
"comments": {
"$ref": "#/definitions/faultComments"
}
}
},
"emergencyStop": {
"description": "The outcome of emergency stop tests",
"type": "object",
"additionalProperties": false,
"properties": {
"firstAttempt": {
"description": "The speed of the first attempt",
"type": "integer"
},
"secondAttempt": {
"description": "The speed of the second attempt",
"type": "integer"
},
"outcome": {
"$ref": "#/definitions/SpeedRequirementCompetencyOutcome"
},
"comments": {
"$ref": "#/definitions/faultComments"
}
}
},
"ETA": {
"$ref": "../common/index.json#/definitions/ETA"
},
"schoolBike": {
"description": "Indicates whether the bike belongs to a driving school",
"type": "boolean"
},
"businessName": {
"description": "Name of the business the candidate relates to",
"type": "string",
"maxLength": 100
},
"businessTelephone": {
"description": "Telephone number of the business the candidate relates to",
"type": "string",
"maxLength": 20
}
},
"properties": {
"version": {
"description": "Version number",
"type": "string"
},
"appVersion": {
"description": "App version number",
"type": "string"
},
"category": {
"$ref": "#/definitions/categoryCode"
},
"journalData": {
"$ref": "#/definitions/journalData"
},
"activityCode": {
"$ref": "#/definitions/activityCode"
},
"communicationPreferences": {
"$ref": "#/definitions/communicationPreferences"
},
"preTestDeclarations": {
"$ref": "#/definitions/preTestDeclarations"
},
"accompaniment": {
"$ref": "#/definitions/accompaniment"
},
"postTestDeclarations": {
"$ref": "#/definitions/postTestDeclarations"
},
"testSummary": {
"$ref": "#/definitions/testSummary"
},
"rekeyReason": {
"$ref": "#/definitions/rekeyReason"
},
"rekey": {
"description": "Whether the test was rekeyed or not",
"type": "boolean"
},
"rekeyDate": {
"description": "Date the test was rekeyed",
"type": "string"
},
"changeMarker": {
"description": "Whether the test was conducted by another examiner",
"type": "boolean"
},
"examinerBooked": {
"description": "The examiner who the test was booked to",
"type": ["number", "string"]
},
"examinerConducted": {
"description": "The examiner who conducted the test",
"type": ["number", "string"]
},
"examinerKeyed": {
"description": "The examiner who keyed the test into the iPad",
"type": "number"
},
"passCompletion": {
"$ref": "#/definitions/passCompletion"
},
"vehicleDetails": {
"$ref": "#/definitions/vehicleDetails"
},
"userExitedApp": {
"$ref": "../common/index.json#/definitions/userExitedApp"
},
"testData": {
"$ref": "#/definitions/testData"
}
},
"additionalProperties": false,
"required": [
"version",
"category",
"journalData",
"activityCode",
"rekey",
"changeMarker",
"examinerBooked",
"examinerConducted",
"examinerKeyed",
"journalData"
]
}