Version 3.7¶
API changes¶
Reprint → QualityControl¶
The reprint functionality was renamed/moved to quality control. The quality_control information resides on the scan endpoint, whereas reprint resided on scan_assignment. The following endpoints were replaced:
endpoint |
replacement |
|---|---|
/reprint_reason/ |
/quality_control_reason/ |
/reprint_reason_category/ |
/quality_control_reason_category/ |
Scan¶
Added the following fields:
field |
type |
description |
|---|---|---|
is_backed_up |
boolean |
Whether the scan is moved to the backup disk. |
qc_reasons |
list |
List of QualityControlReason ids.
Replaces the |
qc_comment |
string |
Quality control comment.
Replaces the |
qc_machine |
boolean |
Whether the scan passed the automated quality inspection.
Replaces the |
qc_operator |
boolean |
Whether the scan passed quality inspection by the (human) operator.
Replaces the |
qc_needs_review |
boolean |
Whether the scan needs review by a (human) operator. |
qc_pass |
boolean |
Final quality control pass/fail decision. |
Other changes¶
endpoint |
changes |
|---|---|
InspectionReport |
Removed |
Part |
Removed unused field |
Query |
Replaced |
ReportTemplate |
Added missing |
ScanAssignment |
Removed the fields |
Settings |
Added the fields |
Webhook changes¶
scan.quality_control webhook¶
Removed the scan.inspect and scan.inspect.update webhook. Instead there is now a scan.quality_control.
This is fired for any change in quality control, for instance:
The part is scanned in the AM-Quality, leading to changes in
qc_machine, and possiblyqc_needs_reviewandqc_pass.The part is approved or rejected by the operator, possibly leading to changes in
qc_operator.The part is re-evaluated with a different inspection_profile, possibly leading to changes in
qc_machine.
The scan.quality_control webhook has the same payload as the other scan.* webhooks.
Scan webhooks¶
The following changes hold for all scan-related webhooks (scan.capture, scan.assign, scan.reject, scan.reassign, scan.unassign). Two duplicate fields that were already in the root dictionary were removed from the assignment field:
assignment['scan']assignment['design_material']
Removed the reprint-related fields:
assignment[‘reprint’]assignment[‘reprint_comment’]assignment[‘reprint_reasons’]
Added several new fields (see Scan object above for explanation):
inspectionreport (uuid)
qc_machine (boolean or null)
qc_operator (boolean or null)
qc_needs_review (boolean)
qc_pass (boolean or null)
qc_comment (string or null)
qc_reasons (list of ids)
Here’s an example of a new webhook:
{
"hook":{
"id":13,
"event":"scan.assign",
"target":"https://batcher.myopps.nl/api/1.0/amflow/update"
},
"data":{
"url":"/api/scan/21fb49b0-1d60-11f1-90cb-2d9ab9fdf55d/",
"created":"2026-03-11T16:36:57.247589+01:00",
"modified":"2026-03-11T16:36:57.581719+01:00",
"uuid":"21fb49b0-1d60-11f1-90cb-2d9ab9fdf55d",
"scan_session":"cbe45ba7-da35-444d-b598-4e70587a33cc",
"design_material":"193d3830c6e41e3f3cc8114508119fedd08d04f7_SLS_PAGF_GREY",
"scan_urls":[
"/data/scans/21fb49b0-1d60-11f1-90cb-2d9ab9fdf55d/scan_cam01.png",
"/data/scans/21fb49b0-1d60-11f1-90cb-2d9ab9fdf55d/scan_cam02.png",
"/data/scans/21fb49b0-1d60-11f1-90cb-2d9ab9fdf55d/scan_cam03.png",
"/data/scans/21fb49b0-1d60-11f1-90cb-2d9ab9fdf55d/scan_cam04.png",
"/data/scans/21fb49b0-1d60-11f1-90cb-2d9ab9fdf55d/scan_cam05.png"
],
"scan_urls_full":[
"/api/scan/21fb49b0-1d60-11f1-90cb-2d9ab9fdf55d/full_image/1/",
"/api/scan/21fb49b0-1d60-11f1-90cb-2d9ab9fdf55d/full_image/2/",
"/api/scan/21fb49b0-1d60-11f1-90cb-2d9ab9fdf55d/full_image/3/",
"/api/scan/21fb49b0-1d60-11f1-90cb-2d9ab9fdf55d/full_image/4/",
"/api/scan/21fb49b0-1d60-11f1-90cb-2d9ab9fdf55d/full_image/5/"
],
"assignment":{
"assignment":"8801b334-7012-46e3-aeba-f2a2683a8f90",
"part_id":"2471584",
"part_title":"montageblok groot step",
"copies":1,
"last_added_copies":1,
"manual":false
},
"output":{
"id":2
},
"batch":{
"id":"PRTS_SRC_102_DAT_20260309_VER_A",
"title":"20260309_02A"
},
"inspectionreport": "c4266de0-c541-49d9-807d-9061139a8917",
"qc_machine": false,
"qc_needs_review": false,
"qc_operator": true,
"qc_pass": true,
"qc_comment": "The part was misaligned",
"qc_reasons": ["misalignment"],
}
}
And here is a diff of the changes:
@@ -27,14 +27,8 @@
],
"assignment":{
"assignment":"8801b334-7012-46e3-aeba-f2a2683a8f90",
- "scan":"21fb49b0-1d60-11f1-90cb-2d9ab9fdf55d",
"part_id":"2471584",
"part_title":"montageblok groot step",
- "design_material":"193d3830c6e41e3f3cc8114508119fedd08d04f7_SLS_PAGF_GREY",
- "reprint":false,
- "reprint_comment":null,
- "reprint_reasons":[
- ],
"copies":1,
"last_added_copies":1,
"manual":false
@@ -47,5 +41,12 @@
"title":"20260309_02A"
},
"archived":false,
+ "inspectionreport": "c4266de0-c541-49d9-807d-9061139a8917",
+ "qc_machine": false,
+ "qc_needs_review": false,
+ "qc_operator": true,
+ "qc_pass": true,
+ "qc_comment": "The part was misaligned",
+ "qc_reasons": ["misalignment"],
}
}