Hole Correction Mode

In order for players' score to remain accurate, there is a need for scorers to be able to correct inputs that have already been submitted into the tablets and submitted to the DDE.

Hole correction mode has been developed to support this need. It allows the wholesale correction of both completed and ongoing holes.

Hole correction mode is started and finished with a ModeChange packet.

ModeChange packet

Field Name

Type

Description

seqNum

int

The sequence number of the packet. Always starts at 1, increments in 1

timestamp

date

The timestamp of the event, in UTC

timestampReceived

date

The server time of the moment that this packet has been processed

eventElementType

string

The type of event, in this case ModeChange

teamNo

int

The team Id in the case of a team event

mode

string

The type of mode change. Hole correction mode is started by BeginHoleCorrection and ended by EndHoleCorrection

Following a ModeChange of BeginHoleCorrection, individual holes are then resent as a standard series of stroke events and RoundStatusUpdates. These are always sent from the beginning of a hole, with the seqNum continuing from previous packets. These packets continue up until the point that the correction was initiated - this can be either the entirety of a hole, up to holing or up to the present moment (if the correction has been requested when a hole is ongoing).

Only one hole at a time can be corrected within the mode.

Hole correction mode is ended by a ModeChange of EndHoleCorrection.

See below for an example of a hole being corrected in it's entirety:

{
  "eventElementType": "ModeChange",
  "mode": "BeginHoleCorrection",
  "seqNum": 175
}

{
  "courseId": "1353",
  "eventElementType": "RoundStatusUpdate",
  "groupNo": 3,
  "holeNo": 1,
  "holeOrder": 1,
  "seqNum": 176,
  "state": "HoleStarted",
  "teamNo": 56,
  "timestamp": "2019-12-19T11:39:16.186Z"
  "timestampReceived": "2022-01-13T22:44:31.702Z"
}

{
  "clubTypeCode": "CUK",
  "courseId": "1353",
  "eventElementType": "AddressingBall",
  "groupNo": 3,
  "holeNo": 1,
  "holeOrder": 1,
  "playerId": 70,
  "provisionalIndex": 0,
  "seqNum": 177,
  "strokeNo": 1,
  "teamNo": 56,
  "timestamp": "2019-12-19T11:39:16.186Z"
  "timestampReceived": "2022-01-13T22:44:31.702Z"
}

{
  "courseId": "1353",
  "eventElementType": "HitBall",
  "groupNo": 3,
  "holeNo": 1,
  "holeOrder": 1,
  "playerId": 70,
  "provisionalIndex": 0,
  "score": {
    "currentHolePar": 4,
    "currentHoleStrokes": 3,
    "currentRoundScoreToPar": "+1",
    "overallScoreToPar": "+1"
  },
  "seqNum": 178,
  "strokeNo": 1,
  "teamNo": 56,
  "timestamp": "2019-12-19T11:39:16.186Z"
  "timestampReceived": "2022-01-13T22:44:31.702Z"
}

{
  "ballLie": {
    "coordinates": {
      "x": -0.59334930412,
      "y": 51.40045197422,
      "z": null
    },
    "distanceToPin": 201.339309265967,
    "shotDistance": 217.76617747351,
    "surfaceType": "Fairway",
    "surfaceTypeCode": "OFW"
  },
  "courseId": "1353",
  "eventElementType": "ApproximateLie",
  "groupNo": 3,
  "holeNo": 1,
  "holeOrder": 1,
  "playerId": 70,
  "provisionalIndex": 0,
  "seqNum": 179,
  "strokeNo": 1,
  "teamNo": 56,
  "timestamp": "2019-12-19T11:39:16.186Z"
  "timestampReceived": "2022-01-13T22:44:31.702Z"
}

{
  "ballLie": {
    "blindShot": false,
    "coordinates": {
      "x": -0.5932763693,
      "y": 51.40038261786,
      "z": null
    },
    "distanceToPin": 206.998463759717,
    "obstructions": false,
    "shotDistance": 210.917347936489,
    "surfaceType": "Fairway",
    "surfaceTypeCode": "OFW"
  },
  "courseId": "1353",
  "eventElementType": "DetailedLie",
  "groupNo": 3,
  "holeNo": 1,
  "holeOrder": 1,
  "playerId": 70,
  "provisionalIndex": 0,
  "seqNum": 180,
  "strokeNo": 1,
  "teamNo": 56,
  "timestamp": "2019-12-19T11:39:16.186Z"
  "timestampReceived": "2022-01-13T22:44:31.702Z"
}

{
  "clubTypeCode": "CUK",
  "courseId": "1353",
  "eventElementType": "AddressingBall",
  "groupNo": 3,
  "holeNo": 1,
  "holeOrder": 1,
  "playerId": 70,
  "provisionalIndex": 0,
  "seqNum": 181,
  "strokeNo": 2,
  "teamNo": 56,
  "timestamp": "2019-12-19T11:39:16.186Z"
  "timestampReceived": "2022-01-13T22:44:31.702Z"
}

{
  "courseId": "1353",
  "eventElementType": "HitBall",
  "groupNo": 3,
  "holeNo": 1,
  "holeOrder": 1,
  "playerId": 70,
  "provisionalIndex": 0,
  "score": {
    "currentHolePar": 4,
    "currentHoleStrokes": 3,
    "currentRoundScoreToPar": "+1",
    "overallScoreToPar": "+1"
  },
  "seqNum": 182,
  "strokeNo": 2,
  "teamNo": 56,
  "timestamp": "2019-12-19T11:39:16.186Z"
  "timestampReceived": "2022-01-13T22:44:31.702Z"
}

{
  "ballLie": {
    "coordinates": {
      "x": -0.5961983878,
      "y": 51.40062315999,
      "z": null
    },
    "distanceToPin": 7.42782163300016,
    "shotDistance": 204.638300552377,
    "surfaceType": "Fringe",
    "surfaceTypeCode": "OCO"
  },
  "courseId": "1353",
  "eventElementType": "ApproximateLie",
  "groupNo": 3,
  "holeNo": 1,
  "holeOrder": 1,
  "playerId": 70,
  "provisionalIndex": 0,
  "seqNum": 183,
  "strokeNo": 2,
  "teamNo": 56,
  "timestamp": "2019-12-19T11:39:16.186Z"
  "timestampReceived": "2022-01-13T22:44:31.702Z"
}

{
  "ballLie": {
    "blindShot": false,
    "coordinates": {
      "x": -0.59619632639,
      "y": 51.40058499437,
      "z": null
    },
    "distanceToPin": 4.1200800060462,
    "obstructions": false,
    "shotDistance": 203.983928945417,
    "surfaceType": "Green",
    "surfaceTypeCode": "OGR"
  },
  "courseId": "1353",
  "eventElementType": "DetailedLie",
  "groupNo": 3,
  "holeNo": 1,
  "holeOrder": 1,
  "playerId": 70,
  "provisionalIndex": 0,
  "seqNum": 184,
  "strokeNo": 2,
  "teamNo": 56,
  "timestamp": "2019-12-19T11:39:16.186Z"
  "timestampReceived": "2022-01-13T22:44:31.702Z"
}

{
  "clubTypeCode": "CUK",
  "courseId": "1353",
  "eventElementType": "AddressingBall",
  "groupNo": 3,
  "holeNo": 1,
  "holeOrder": 1,
  "playerId": 70,
  "provisionalIndex": 0,
  "seqNum": 185,
  "strokeNo": 3,
  "teamNo": 56,
  "timestamp": "2019-12-19T11:39:16.186Z"
  "timestampReceived": "2022-01-13T22:44:31.702Z"
}

{
  "courseId": "1353",
  "eventElementType": "HitBall",
  "groupNo": 3,
  "holeNo": 1,
  "holeOrder": 1,
  "playerId": 70,
  "provisionalIndex": 0,
  "score": {
    "currentHolePar": 4,
    "currentHoleStrokes": 3,
    "currentRoundScoreToPar": "+1",
    "overallScoreToPar": "+1"
  },
  "seqNum": 186,
  "strokeNo": 3,
  "teamNo": 56,
  "timestamp": "2019-12-19T11:39:16.186Z"
  "timestampReceived": "2022-01-13T22:44:31.702Z"
}

{
  "courseId": "1353",
  "eventElementType": "BallHoled",
  "groupNo": 3,
  "holeNo": 1,
  "holeOrder": 1,
  "playerId": 70,
  "provisionalIndex": 0,
  "score": {
    "currentHolePar": 4,
    "currentHoleStrokes": 3,
    "currentRoundScoreToPar": "+1",
    "overallScoreToPar": "+1"
  },
  "seqNum": 187,
  "strokeNo": 3,
  "teamNo": 56,
  "timestamp": "2019-12-19T11:39:16.186Z"
  "timestampReceived": "2022-01-13T22:44:31.702Z"
}

{
  "courseId": "1353",
  "eventElementType": "RoundStatusUpdate",
  "finishReason": "BallHoled",
  "groupNo": 3,
  "holeNo": 1,
  "holeOrder": 1,
  "score": {
    "currentHolePar": 4,
    "currentHoleStrokes": 3,
    "currentRoundScoreToPar": "+1",
    "overallScoreToPar": "+1"
  },
  "seqNum": 188,
  "state": "HoleFinished",
  "teamNo": 56,
  "timestamp": "2019-12-19T11:39:16.186Z"
  "timestampReceived": "2022-01-13T22:44:31.702Z"
}

{
  "eventElementType": "ModeChange",
  "mode": "EndHoleCorrection",
  "seqNum": 189
}

Last updated