pdf-trainer-ui / backend /trainer_schemas /T3_ASTURA_SALES_ORDER_FORM.schema.json
Avinash
baseline: initial monorepo snapshot
2d5e892
{
"form_id": "trainer_b931186e13eb45d2a9a1ded8ff8641bb",
"version": 3,
"page": 1,
"scalar_value_region_mode": "offset_from_anchor_v1",
"fields": [
{
"field_id": "facility_organization",
"label": "Facility / Organization",
"type": "entity",
"anchor_bbox_norm": { "x": 0.156863, "y": 0.194444, "w": 0.053922, "h": 0.012626 },
"value_bbox_norm": null,
"value_offset_norm": { "dx": 0.076797, "dy": -0.002525, "w": 0.205882, "h": 0.021465 }
},
{
"field_id": "case_location",
"label": "Case Location / Address",
"type": "text",
"anchor_bbox_norm": { "x": 0.155229, "y": 0.224747, "w": 0.05719, "h": 0.016414 },
"value_bbox_norm": null,
"value_offset_norm": { "dx": 0.075163, "dy": 0, "w": 0.212418, "h": 0.034091 }
},
{
"field_id": "vendor",
"label": "Vendor",
"type": "entity",
"anchor_bbox_norm": { "x": 0.160131, "y": 0.117424, "w": 0.098039, "h": 0.064394 },
"value_bbox_norm": null,
"value_offset_norm": null
},
{
"field_id": "physician_name",
"label": "Physician Name",
"type": "person",
"anchor_bbox_norm": { "x": 0.158497, "y": 0.289141, "w": 0.062092, "h": 0.013889 },
"value_bbox_norm": null,
"value_offset_norm": { "dx": 0.068627, "dy": -0.002525, "w": 0.212418, "h": 0.022727 }
},
{
"field_id": "date_of_surgery",
"label": "Date of Surgery",
"type": "date",
"anchor_bbox_norm": { "x": 0.160131, "y": 0.256313, "w": 0.053922, "h": 0.016414 },
"value_bbox_norm": null,
"value_offset_norm": { "dx": 0.071895, "dy": 0, "w": 0.124183, "h": 0.018939 }
},
{
"field_id": "items",
"label": "Items / Line Items",
"type": "table",
"table_bbox_norm": { "x": 0.153595, "y": 0.339646, "w": 0.620915, "h": 0.180556 },
"header_bbox_norm": { "x": 0.156863, "y": 0.339646, "w": 0.617647, "h": 0.018939 },
"row_height_hint_norm": null,
"columns": [
{ "key": "item_number", "label": "Item Number", "bbox_rel_norm": { "x": 0, "y": 0.104895, "w": 0.171053, "h": 0.895105 } },
{ "key": "lot_number", "label": "Lot Number", "bbox_rel_norm": null },
{ "key": "description", "label": "Description", "bbox_rel_norm": { "x": 0.171053, "y": 0.111888, "w": 0.323684, "h": 0.888112 } },
{ "key": "qty", "label": "Qty", "bbox_rel_norm": { "x": 0.644737, "y": 0.104895, "w": 0.047368, "h": 0.895105 } },
{ "key": "price", "label": "Price", "bbox_rel_norm": null }
],
"table_anchors": [
{ "key": "item_number", "expected_text": "Item Number", "bbox_norm": { "x": 0.153595, "y": 0.342172, "w": 0.104575, "h": 0.016414 } },
{ "key": "description", "expected_text": "Description", "bbox_norm": { "x": 0.259804, "y": 0.339646, "w": 0.202614, "h": 0.021465 } },
{ "key": "qty", "expected_text": "Qty", "bbox_norm": { "x": 0.555556, "y": 0.342172, "w": 0.034314, "h": 0.015152 } }
],
"notes": "Anchors are used at runtime to localize table/header/columns under drift."
}
],
"notes": "Trainer exports config only. Runtime should localize anchors then apply offsets/table mappings to extract values + line items."
}