@oimlsmart/primmel-packages 0.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +60 -0
- package/LICENSE +21 -0
- package/README.md +68 -0
- package/acme-cgm-200/model/cgm200.prl +284 -0
- package/acme-cgm-200/model/r144-map.prl +337 -0
- package/acme-cgm-200/package.primmel +39 -0
- package/acme-cgm-system/model/cgm-system.prl +125 -0
- package/acme-cgm-system/model/r144-map.prl +75 -0
- package/acme-cgm-system/model/sample-line.prl +42 -0
- package/acme-cgm-system/package.primmel +23 -0
- package/acme-lc500/model/lc500.prl +218 -0
- package/acme-lc500/model/passport.prl +43 -0
- package/acme-lc500/model/r60-map.prl +161 -0
- package/acme-lc500/model/twin-cert-map.prl +114 -0
- package/acme-lc500/package.primmel +35 -0
- package/acme-md3xx/model/md350.prl +317 -0
- package/acme-md3xx/model/r129-map.prl +346 -0
- package/acme-md3xx/package.primmel +49 -0
- package/acme-rs180/model/r91-map.prl +234 -0
- package/acme-rs180/model/rs180.prl +236 -0
- package/acme-rs180/package.primmel +47 -0
- package/ims-demo/model/ims.prl +23 -0
- package/ims-demo/model/isms-map.prl +60 -0
- package/ims-demo/model/qms-map.prl +73 -0
- package/ims-demo/package.primmel +42 -0
- package/isms-ref/model/isms.prl +34 -0
- package/isms-ref/package.primmel +35 -0
- package/iso-iec-17000/package.primmel +8 -0
- package/iso-iec-17000/terminology.prl +268 -0
- package/iso-iec-17025/package.primmel +10 -0
- package/iso-iec-17025/specification/requirements/lab.prl +474 -0
- package/iso-iec-17025/terminology.prl +72 -0
- package/iso-iec-17065/package.primmel +10 -0
- package/iso-iec-17065/specification/requirements/body.prl +446 -0
- package/iso-iec-17065/terminology.prl +103 -0
- package/iso-iec-17067/package.primmel +10 -0
- package/iso-iec-17067/specification/requirements/scheme-content.prl +300 -0
- package/iso-iec-17067/terminology.prl +24 -0
- package/oiml-cs/package.primmel +10 -0
- package/oiml-cs/specification/discrepancies.prl +26 -0
- package/oiml-cs/specification/requirements/cs.prl +515 -0
- package/oiml-cs-dataspace/.primmel-allowlist.prl +25 -0
- package/oiml-cs-dataspace/package.primmel +9 -0
- package/oiml-cs-dataspace/specification/dataspace.prl +73 -0
- package/oiml-cs-dataspace/specification/policies.prl +68 -0
- package/oiml-integrated-ref/model/probe-pairing.prl +71 -0
- package/oiml-integrated-ref/package.primmel +10 -0
- package/oiml-r129/.primmel-allowlist.prl +2 -0
- package/oiml-r129/evaluation/processes.prl +152 -0
- package/oiml-r129/evaluation/workflow.prl +48 -0
- package/oiml-r129/execution/forms/admin/adjustments-modifications.prl +30 -0
- package/oiml-r129/execution/forms/admin/checklist.prl +70 -0
- package/oiml-r129/execution/forms/admin/configuration.prl +31 -0
- package/oiml-r129/execution/forms/admin/equipment-info.prl +27 -0
- package/oiml-r129/execution/forms/admin/general-info.prl +63 -0
- package/oiml-r129/execution/forms/admin/identification.prl +49 -0
- package/oiml-r129/execution/forms/admin/sample-selection.prl +30 -0
- package/oiml-r129/execution/forms/admin/summary-results.prl +50 -0
- package/oiml-r129/execution/forms/emc/bursts.prl +88 -0
- package/oiml-r129/execution/forms/emc/esd.prl +66 -0
- package/oiml-r129/execution/forms/emc/low-voltage-battery.prl +58 -0
- package/oiml-r129/execution/forms/emc/rf-immunity-conducted.prl +59 -0
- package/oiml-r129/execution/forms/emc/rf-immunity-radiated.prl +59 -0
- package/oiml-r129/execution/forms/emc/surge.prl +61 -0
- package/oiml-r129/execution/forms/emc/voltage-dips.prl +62 -0
- package/oiml-r129/execution/forms/emc/voltage-variation.prl +58 -0
- package/oiml-r129/execution/forms/env/damp-heat-cyclic.prl +43 -0
- package/oiml-r129/execution/forms/env/damp-heat-steady.prl +50 -0
- package/oiml-r129/execution/forms/env/static-temperatures.prl +61 -0
- package/oiml-r129/execution/forms/shared/headers.prl +86 -0
- package/oiml-r129/execution/forms/tests/acoustics.prl +44 -0
- package/oiml-r129/execution/forms/tests/ambient-light.prl +46 -0
- package/oiml-r129/execution/forms/tests/construction-examination.prl +46 -0
- package/oiml-r129/execution/forms/tests/examination-checklist.prl +51 -0
- package/oiml-r129/execution/forms/tests/object-shape.prl +43 -0
- package/oiml-r129/execution/forms/tests/orientation-position.prl +31 -0
- package/oiml-r129/execution/forms/tests/repeatability.prl +65 -0
- package/oiml-r129/execution/forms/tests/speed-movement.prl +59 -0
- package/oiml-r129/execution/forms/tests/surface-characteristics.prl +44 -0
- package/oiml-r129/execution/forms/tests/warm-up-time.prl +35 -0
- package/oiml-r129/execution/subforms/dimension-measurement.prl +93 -0
- package/oiml-r129/layers.prl +50 -0
- package/oiml-r129/model/attributes.prl +243 -0
- package/oiml-r129/model/behaviors.prl +79 -0
- package/oiml-r129/model/capabilities.prl +29 -0
- package/oiml-r129/model/characteristics.prl +8 -0
- package/oiml-r129/model/conditions.prl +23 -0
- package/oiml-r129/model/instrument.prl +67 -0
- package/oiml-r129/model/state.prl +22 -0
- package/oiml-r129/model/twin.prl +23 -0
- package/oiml-r129/package.primmel +15 -0
- package/oiml-r129/payload/application.yaml +40 -0
- package/oiml-r129/payload/conditions-common-test.yaml +8 -0
- package/oiml-r129/payload/formulas-variants.yaml +33 -0
- package/oiml-r129/payload/promises.yaml +102 -0
- package/oiml-r129/payload/sample-data.yaml +300 -0
- package/oiml-r129/references.prl +306 -0
- package/oiml-r129/sources-prd/coverage.json +59 -0
- package/oiml-r129/sources-prd/r129-1.sentences.json +4238 -0
- package/oiml-r129/sources-prd/r129-2.sentences.json +1139 -0
- package/oiml-r129/sources-prd/r129-3.sentences.json +3809 -0
- package/oiml-r129/sources-prd/r129-4.sentences.json +1227 -0
- package/oiml-r129/specification/calculations.prl +83 -0
- package/oiml-r129/specification/conformance/disturbance-tests.prl +212 -0
- package/oiml-r129/specification/conformance/effect-tests.prl +70 -0
- package/oiml-r129/specification/conformance/examinations.prl +83 -0
- package/oiml-r129/specification/conformance/metrological-tests.prl +178 -0
- package/oiml-r129/specification/formulas.prl +9 -0
- package/oiml-r129/specification/requirements/electronic.prl +46 -0
- package/oiml-r129/specification/requirements/metrological.prl +83 -0
- package/oiml-r129/specification/requirements/object-limitations.prl +99 -0
- package/oiml-r129/specification/requirements/software.prl +57 -0
- package/oiml-r129/specification/requirements/technical.prl +134 -0
- package/oiml-r129/specification/symbols.prl +187 -0
- package/oiml-r129/specification/tables.prl +74 -0
- package/oiml-r129/terminology.prl +415 -0
- package/oiml-r129/value-types.prl +40 -0
- package/oiml-r144/.primmel-allowlist.prl +2 -0
- package/oiml-r144/entities/instrument.prl +360 -0
- package/oiml-r144/entities/test-execution.prl +228 -0
- package/oiml-r144/entities/workflow.prl +2075 -0
- package/oiml-r144/evaluation/processes.prl +152 -0
- package/oiml-r144/evaluation/workflow.prl +48 -0
- package/oiml-r144/execution/forms/sec-3-report/03-01-laboratory-info.prl +19 -0
- package/oiml-r144/execution/forms/sec-3-report/03-02-test-location.prl +14 -0
- package/oiml-r144/execution/forms/sec-3-report/03-03-manufacturer-info.prl +18 -0
- package/oiml-r144/execution/forms/sec-3-report/03-04-applicant-info.prl +19 -0
- package/oiml-r144/execution/forms/sec-3-report/03-05-type-identification.prl +80 -0
- package/oiml-r144/execution/forms/sec-3-report/03-06-type-composition.prl +31 -0
- package/oiml-r144/execution/forms/sec-3-report/03-07-visual-examination.prl +46 -0
- package/oiml-r144/execution/forms/sec-3-report/03-08-test-conclusions.prl +46 -0
- package/oiml-r144/execution/forms/sec-3-report/03-09-general-conclusion.prl +19 -0
- package/oiml-r144/execution/forms/sec-3-report/03-10-responsible-persons.prl +27 -0
- package/oiml-r144/execution/forms/sec-tests/ambient-pressure-test.prl +59 -0
- package/oiml-r144/execution/forms/sec-tests/bursts-mains-test.prl +52 -0
- package/oiml-r144/execution/forms/sec-tests/bursts-signal-test.prl +55 -0
- package/oiml-r144/execution/forms/sec-tests/cold-test.prl +48 -0
- package/oiml-r144/execution/forms/sec-tests/cross-sensitivity-test.prl +92 -0
- package/oiml-r144/execution/forms/sec-tests/damp-heat-test.prl +50 -0
- package/oiml-r144/execution/forms/sec-tests/documentation-examination.prl +52 -0
- package/oiml-r144/execution/forms/sec-tests/drift-test.prl +83 -0
- package/oiml-r144/execution/forms/sec-tests/dry-heat-test.prl +53 -0
- package/oiml-r144/execution/forms/sec-tests/error-determination.prl +37 -0
- package/oiml-r144/execution/forms/sec-tests/esd-test.prl +53 -0
- package/oiml-r144/execution/forms/sec-tests/flow-spillover-test.prl +83 -0
- package/oiml-r144/execution/forms/sec-tests/leakproofness-test.prl +41 -0
- package/oiml-r144/execution/forms/sec-tests/low-battery-test.prl +48 -0
- package/oiml-r144/execution/forms/sec-tests/power-reduction-test.prl +49 -0
- package/oiml-r144/execution/forms/sec-tests/power-supply-test.prl +57 -0
- package/oiml-r144/execution/forms/sec-tests/repeatability-test.prl +60 -0
- package/oiml-r144/execution/forms/sec-tests/response-time-test.prl +43 -0
- package/oiml-r144/execution/forms/sec-tests/rf-emf-test.prl +47 -0
- package/oiml-r144/execution/forms/sec-tests/shock-test.prl +50 -0
- package/oiml-r144/execution/forms/sec-tests/surge-test.prl +52 -0
- package/oiml-r144/execution/forms/sec-tests/vibration-test.prl +58 -0
- package/oiml-r144/execution/forms/sec-tests/warm-up-time-test.prl +69 -0
- package/oiml-r144/execution/forms/shared/headers.prl +132 -0
- package/oiml-r144/execution/subforms/cgm-point.prl +99 -0
- package/oiml-r144/layers.prl +44 -0
- package/oiml-r144/model/attributes.prl +679 -0
- package/oiml-r144/model/behaviors.prl +117 -0
- package/oiml-r144/model/capabilities.prl +99 -0
- package/oiml-r144/model/characteristics.prl +27 -0
- package/oiml-r144/model/conditions.prl +46 -0
- package/oiml-r144/model/instrument.prl +85 -0
- package/oiml-r144/model/state.prl +18 -0
- package/oiml-r144/model/twin.prl +25 -0
- package/oiml-r144/package.primmel +15 -0
- package/oiml-r144/payload/application.yaml +80 -0
- package/oiml-r144/payload/attributes-pair-list.yaml +18 -0
- package/oiml-r144/payload/conditions-common-test.yaml +74 -0
- package/oiml-r144/payload/formulas-variants.yaml +32 -0
- package/oiml-r144/payload/promises.yaml +118 -0
- package/oiml-r144/payload/sample-data.yaml +643 -0
- package/oiml-r144/references.prl +594 -0
- package/oiml-r144/sources-prd/coverage.json +114 -0
- package/oiml-r144/sources-prd/r144-1.sentences.json +2797 -0
- package/oiml-r144/sources-prd/r144-2.sentences.json +1627 -0
- package/oiml-r144/sources-prd/r144-3.sentences.json +838 -0
- package/oiml-r144/specification/calculations.prl +123 -0
- package/oiml-r144/specification/conformance/examination.prl +87 -0
- package/oiml-r144/specification/conformance/performance-tests.prl +755 -0
- package/oiml-r144/specification/formulas.prl +37 -0
- package/oiml-r144/specification/reference-materials.prl +87 -0
- package/oiml-r144/specification/requirements/controls.prl +51 -0
- package/oiml-r144/specification/requirements/metrological.prl +299 -0
- package/oiml-r144/specification/requirements/report.prl +35 -0
- package/oiml-r144/specification/requirements/technical.prl +455 -0
- package/oiml-r144/specification/symbols.prl +357 -0
- package/oiml-r144/specification/tables.prl +95 -0
- package/oiml-r144/specification/test-point-sets.prl +15 -0
- package/oiml-r144/terminology.prl +308 -0
- package/oiml-r144/value-types.prl +49 -0
- package/oiml-r60/.primmel-allowlist.prl +2 -0
- package/oiml-r60/entities/workflow.prl +2079 -0
- package/oiml-r60/evaluation/processes.prl +152 -0
- package/oiml-r60/evaluation/workflow.prl +48 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-01-authority-info.prl +76 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-02-synopsis.prl +20 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-03-01-examinations.prl +27 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-03-02-a-performance-general.prl +81 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-03-02-b-performance-digital.prl +104 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-04-01-manufacturer.prl +21 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-04-02-applicant.prl +44 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-04-03-testing-laboratories.prl +69 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-05-load-cell-type-info.prl +83 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-06-accessories.prl +41 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-07-sample-selection.prl +71 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-01-general-info.prl +103 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-02-performance-info.prl +66 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-03-digital-info.prl +35 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-04-photographs.prl +12 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-05-documentation.prl +27 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-06-inscriptions.prl +126 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-07-model-range.prl +143 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-12-previous-tests.prl +26 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-01-force-generating-system.prl +89 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-02-weights.prl +61 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-03-temperature-chamber.prl +96 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-04-climate-chamber.prl +96 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-05-indicator.prl +92 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-06-terminal.prl +86 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-07-barometric-pressure-meter.prl +62 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-08-thermometer.prl +62 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-09-moisture-analyser.prl +62 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-10-additional-test-equipment.prl +69 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-11-remarks.prl +11 -0
- package/oiml-r60/execution/forms/sec-4-evaluation-report/test-usage-matrix.prl +85 -0
- package/oiml-r60/execution/forms/sec-5-examination/documentation-examination.prl +53 -0
- package/oiml-r60/execution/forms/sec-5-examination/marking-examination.prl +104 -0
- package/oiml-r60/execution/forms/sec-5-examination/software-examination.prl +86 -0
- package/oiml-r60/execution/forms/sec-5-examination/suitability-examination.prl +56 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/barometric-pressure.prl +176 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/bursts.prl +129 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/conducted-emc.prl +170 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/creep-dr.prl +327 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/emc-susceptibility.prl +115 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/esd.prl +224 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/humidity-ch.prl +300 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/humidity-sh.prl +235 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/initial-tests.prl +129 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/load-cell-errors.prl +280 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/load-test.prl +29 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/performance-test-summary.prl +82 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/power-voltage.prl +166 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/repeatability.prl +189 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/short-time-power.prl +98 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/span-stability.prl +242 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/surge.prl +142 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/temperature-mdlo.prl +180 -0
- package/oiml-r60/execution/forms/sec-6-performance-tests/warm-up-time.prl +207 -0
- package/oiml-r60/execution/forms/shared/headers.prl +255 -0
- package/oiml-r60/execution/subforms/load-test-row.prl +55 -0
- package/oiml-r60/execution/subforms/test-procedures.prl +33 -0
- package/oiml-r60/layers.prl +46 -0
- package/oiml-r60/model/attributes.prl +642 -0
- package/oiml-r60/model/behaviors.prl +165 -0
- package/oiml-r60/model/capabilities.prl +57 -0
- package/oiml-r60/model/characteristics.prl +27 -0
- package/oiml-r60/model/conditions.prl +50 -0
- package/oiml-r60/model/instrument.prl +96 -0
- package/oiml-r60/model/processes.prl +54 -0
- package/oiml-r60/model/state.prl +22 -0
- package/oiml-r60/model/twin.prl +16 -0
- package/oiml-r60/package.primmel +16 -0
- package/oiml-r60/payload/annexes-part4.yaml +122 -0
- package/oiml-r60/payload/application.yaml +83 -0
- package/oiml-r60/payload/conditions-common-test.yaml +121 -0
- package/oiml-r60/payload/formulas-variants.yaml +55 -0
- package/oiml-r60/payload/promises.yaml +224 -0
- package/oiml-r60/payload/sample-data.yaml +5025 -0
- package/oiml-r60/payload/symbols-formula-notes.yaml +21 -0
- package/oiml-r60/references.prl +549 -0
- package/oiml-r60/sources-prd/coverage.json +740 -0
- package/oiml-r60/sources-prd/r60-1.sentences.json +2173 -0
- package/oiml-r60/sources-prd/r60-2.sentences.json +2961 -0
- package/oiml-r60/sources-prd/r60-3.sentences.json +4212 -0
- package/oiml-r60/sources-prd/r60-a.sentences.json +3361 -0
- package/oiml-r60/specification/calculations.prl +318 -0
- package/oiml-r60/specification/conformance/class-specific.prl +1120 -0
- package/oiml-r60/specification/conformance/electronic.prl +483 -0
- package/oiml-r60/specification/conformance/examination.prl +183 -0
- package/oiml-r60/specification/conformance/metrological.prl +478 -0
- package/oiml-r60/specification/constraints.prl +58 -0
- package/oiml-r60/specification/formulas-used.prl +43 -0
- package/oiml-r60/specification/formulas.prl +20 -0
- package/oiml-r60/specification/requirements/class-specific.prl +655 -0
- package/oiml-r60/specification/requirements/classification.prl +114 -0
- package/oiml-r60/specification/requirements/electronic.prl +222 -0
- package/oiml-r60/specification/requirements/metrological.prl +381 -0
- package/oiml-r60/specification/requirements/technical.prl +146 -0
- package/oiml-r60/specification/symbols.prl +599 -0
- package/oiml-r60/specification/tables.prl +182 -0
- package/oiml-r60/specification/test-sequences.prl +72 -0
- package/oiml-r60/terminology.prl +920 -0
- package/oiml-r60/value-types.prl +46 -0
- package/oiml-r91/.primmel-allowlist.prl +3 -0
- package/oiml-r91/entities/instrument.prl +359 -0
- package/oiml-r91/entities/workflow.prl +2075 -0
- package/oiml-r91/evaluation/processes.prl +152 -0
- package/oiml-r91/evaluation/workflow.prl +48 -0
- package/oiml-r91/execution/forms/evidence-file.prl +41 -0
- package/oiml-r91/execution/forms/report-evaluation/appraisal.prl +30 -0
- package/oiml-r91/execution/forms/report-evaluation/checklist-summary.prl +43 -0
- package/oiml-r91/execution/forms/report-evaluation/checklist.prl +76 -0
- package/oiml-r91/execution/forms/report-evaluation/configuration-samples.prl +22 -0
- package/oiml-r91/execution/forms/report-evaluation/corrective-actions.prl +24 -0
- package/oiml-r91/execution/forms/report-evaluation/descriptions.prl +47 -0
- package/oiml-r91/execution/forms/report-evaluation/evaluation-identification.prl +219 -0
- package/oiml-r91/execution/forms/report-evaluation/test-report-summary.prl +33 -0
- package/oiml-r91/execution/forms/report-general/adjustments.prl +12 -0
- package/oiml-r91/execution/forms/report-general/alignment-aiming.prl +17 -0
- package/oiml-r91/execution/forms/report-general/checking-facility.prl +17 -0
- package/oiml-r91/execution/forms/report-general/configuration.prl +12 -0
- package/oiml-r91/execution/forms/report-general/identification.prl +216 -0
- package/oiml-r91/execution/forms/report-general/indications-controls.prl +17 -0
- package/oiml-r91/execution/forms/report-general/sealing.prl +21 -0
- package/oiml-r91/execution/forms/report-general/software-description.prl +26 -0
- package/oiml-r91/execution/forms/report-general/summary-environmental.prl +35 -0
- package/oiml-r91/execution/forms/report-general/summary-tests.prl +35 -0
- package/oiml-r91/execution/forms/report-general/test-equipment.prl +36 -0
- package/oiml-r91/execution/forms/report-general/test-interface.prl +16 -0
- package/oiml-r91/execution/forms/report-tests/01-01-field-test.prl +84 -0
- package/oiml-r91/execution/forms/report-tests/01-02-statistical-analysis.prl +76 -0
- package/oiml-r91/execution/forms/report-tests/01-03-image-evidence.prl +30 -0
- package/oiml-r91/execution/forms/report-tests/02-01-dynamic-performance.prl +92 -0
- package/oiml-r91/execution/forms/report-tests/02-02-speed-linearity.prl +23 -0
- package/oiml-r91/execution/forms/report-tests/02-03-distance-linearity.prl +67 -0
- package/oiml-r91/execution/forms/report-tests/02-04-angle-linearity.prl +59 -0
- package/oiml-r91/execution/forms/report-tests/03-01-dry-heat-operating.prl +38 -0
- package/oiml-r91/execution/forms/report-tests/03-02-dry-heat-storage.prl +48 -0
- package/oiml-r91/execution/forms/report-tests/03-03-cold-operating.prl +40 -0
- package/oiml-r91/execution/forms/report-tests/03-04-cold-storage.prl +48 -0
- package/oiml-r91/execution/forms/report-tests/03-05-damp-heat-cyclic.prl +40 -0
- package/oiml-r91/execution/forms/report-tests/03-06-water.prl +48 -0
- package/oiml-r91/execution/forms/report-tests/03-07-sand-and-dust.prl +48 -0
- package/oiml-r91/execution/forms/report-tests/03-08-salt-mist.prl +48 -0
- package/oiml-r91/execution/forms/report-tests/03-09-vibration-random.prl +40 -0
- package/oiml-r91/execution/forms/report-tests/03-10-mechanical-shock.prl +48 -0
- package/oiml-r91/execution/forms/report-tests/03-11-dc-mains-voltage-variation.prl +40 -0
- package/oiml-r91/execution/forms/report-tests/03-12-ripple-on-dc-mains.prl +47 -0
- package/oiml-r91/execution/forms/report-tests/03-13-ac-mains-voltage-variation.prl +40 -0
- package/oiml-r91/execution/forms/report-tests/03-14-ac-mains-frequency-variation.prl +40 -0
- package/oiml-r91/execution/forms/report-tests/03-15-dc-mains-voltage-dips.prl +46 -0
- package/oiml-r91/execution/forms/report-tests/03-16-ac-mains-voltage-dips.prl +46 -0
- package/oiml-r91/execution/forms/report-tests/03-17-ac-mains-frequency-harmonics.prl +47 -0
- package/oiml-r91/execution/forms/report-tests/03-18-vlf-lf-disturbances.prl +46 -0
- package/oiml-r91/execution/forms/report-tests/03-19-bursts-ac-dc-mains.prl +44 -0
- package/oiml-r91/execution/forms/report-tests/03-20-surges-ac-dc-mains.prl +45 -0
- package/oiml-r91/execution/forms/report-tests/03-21-bursts-signal-lines.prl +45 -0
- package/oiml-r91/execution/forms/report-tests/03-22-surges-signal-lines.prl +46 -0
- package/oiml-r91/execution/forms/report-tests/03-23-ac-mains-magnetic-field.prl +45 -0
- package/oiml-r91/execution/forms/report-tests/03-24-conducted-rf-common-mode.prl +46 -0
- package/oiml-r91/execution/forms/report-tests/03-25-rf-electromagnetic-fields.prl +49 -0
- package/oiml-r91/execution/forms/report-tests/03-26-electrostatic-discharges.prl +47 -0
- package/oiml-r91/execution/forms/report-tests/03-27-internal-battery-low-voltage.prl +40 -0
- package/oiml-r91/execution/forms/report-tests/03-28-road-vehicle-battery.prl +40 -0
- package/oiml-r91/execution/forms/report-tests/03-29-transient-supply-lines.prl +47 -0
- package/oiml-r91/execution/forms/report-tests/03-30-transient-other-lines.prl +45 -0
- package/oiml-r91/execution/forms/report-tests/03-31-battery-cranking.prl +45 -0
- package/oiml-r91/execution/forms/report-tests/03-32-load-dump.prl +47 -0
- package/oiml-r91/execution/forms/report-tests/03-33-acceleration.prl +66 -0
- package/oiml-r91/execution/forms/report-tests/03-34-further-influence.prl +60 -0
- package/oiml-r91/execution/forms/report-tests/03-35-installation-alignment.prl +29 -0
- package/oiml-r91/execution/forms/report-tests/04-01-doppler-radar.prl +43 -0
- package/oiml-r91/execution/forms/report-tests/04-02-range-finding.prl +42 -0
- package/oiml-r91/execution/forms/report-tests/04-03-average-speed.prl +41 -0
- package/oiml-r91/execution/forms/report-tests/04-04-fixed-distance.prl +40 -0
- package/oiml-r91/execution/forms/report-tests/04-05-image-based.prl +41 -0
- package/oiml-r91/execution/forms/report-tests/04-06-across-road.prl +42 -0
- package/oiml-r91/execution/forms/report-tests/05-01-moving-field-test.prl +29 -0
- package/oiml-r91/execution/forms/report-tests/05-02-ego-field-test.prl +57 -0
- package/oiml-r91/execution/forms/report-tests/05-03-moving-traffic-simulation.prl +31 -0
- package/oiml-r91/execution/forms/report-tests/06-01-software-general.prl +25 -0
- package/oiml-r91/execution/forms/report-tests/06-02-software-protection.prl +25 -0
- package/oiml-r91/execution/forms/report-tests/06-03-software-hardware-support.prl +24 -0
- package/oiml-r91/execution/forms/report-tests/06-04-software-separation.prl +25 -0
- package/oiml-r91/execution/forms/report-tests/06-05-software-maintenance.prl +24 -0
- package/oiml-r91/execution/forms/report-tests/07-general-remarks.prl +11 -0
- package/oiml-r91/execution/forms/shared/header-a.prl +63 -0
- package/oiml-r91/execution/subforms/software-matrix-row.prl +30 -0
- package/oiml-r91/execution/subforms/speed-measurement-row.prl +38 -0
- package/oiml-r91/layers.prl +46 -0
- package/oiml-r91/model/artifacts.prl +29 -0
- package/oiml-r91/model/attributes.prl +698 -0
- package/oiml-r91/model/behaviors.prl +142 -0
- package/oiml-r91/model/capabilities.prl +88 -0
- package/oiml-r91/model/characteristics.prl +27 -0
- package/oiml-r91/model/conditions.prl +37 -0
- package/oiml-r91/model/instrument.prl +147 -0
- package/oiml-r91/model/state.prl +22 -0
- package/oiml-r91/model/twin.prl +17 -0
- package/oiml-r91/package.primmel +14 -0
- package/oiml-r91/payload/application.yaml +201 -0
- package/oiml-r91/payload/conditions-common-test.yaml +19 -0
- package/oiml-r91/payload/promises.yaml +142 -0
- package/oiml-r91/payload/sample-data.yaml +464 -0
- package/oiml-r91/references.prl +72 -0
- package/oiml-r91/sources-prd/coverage.json +106 -0
- package/oiml-r91/sources-prd/r91-1.sentences.json +4696 -0
- package/oiml-r91/sources-prd/r91-2.sentences.json +2067 -0
- package/oiml-r91/sources-prd/r91-3.sentences.json +5210 -0
- package/oiml-r91/sources-prd/r91-4.sentences.json +474 -0
- package/oiml-r91/specification/calculations.prl +26 -0
- package/oiml-r91/specification/conformance/influence-disturbance.prl +1792 -0
- package/oiml-r91/specification/conformance/metrological.prl +906 -0
- package/oiml-r91/specification/formulas.prl +10 -0
- package/oiml-r91/specification/requirements/class-specific.prl +308 -0
- package/oiml-r91/specification/requirements/metrological.prl +176 -0
- package/oiml-r91/specification/requirements/technical.prl +173 -0
- package/oiml-r91/specification/symbols.prl +323 -0
- package/oiml-r91/specification/tables.prl +136 -0
- package/oiml-r91/terminology.prl +535 -0
- package/oiml-r91/value-types.prl +26 -0
- package/oiml-smart-core/entities/comments.prl +101 -0
- package/oiml-smart-core/entities/cs-operations.prl +492 -0
- package/oiml-smart-core/entities/cs-participants.prl +470 -0
- package/oiml-smart-core/entities/engagement.prl +323 -0
- package/oiml-smart-core/entities/instrument.prl +359 -0
- package/oiml-smart-core/entities/module-b.prl +214 -0
- package/oiml-smart-core/entities/operated-schemes.prl +141 -0
- package/oiml-smart-core/entities/parties.prl +429 -0
- package/oiml-smart-core/entities/payment-records.prl +92 -0
- package/oiml-smart-core/entities/verification.prl +187 -0
- package/oiml-smart-core/entities/workflow.prl +2075 -0
- package/oiml-smart-core/evaluation/roles.prl +65 -0
- package/oiml-smart-core/evaluation/state-machines.prl +1157 -0
- package/oiml-smart-core/package.primmel +10 -0
- package/oiml-smart-core/specification/competence-kinds.prl +64 -0
- package/oiml-smart-core/specification/constraints.prl +40 -0
- package/oiml-smart-core/specification/invariants.prl +90 -0
- package/oiml-smart-core/specification/predicates.prl +116 -0
- package/oiml-smart-module-emc-disturbances/package.primmel +10 -0
- package/oiml-smart-module-env-iec60068/package.primmel +10 -0
- package/oiml-smart-module-examination-docs/package.primmel +10 -0
- package/oiml-smart-module-reference-materials/package.primmel +10 -0
- package/oiml-smart-module-report-headers/package.primmel +10 -0
- package/oiml-smart-module-software-d31/package.primmel +10 -0
- package/oiml-smart-module-specimen-governance/entities/test-execution.prl +228 -0
- package/oiml-smart-module-specimen-governance/package.primmel +10 -0
- package/oiml-twin-cert/documents/tw-1/document.yaml +454 -0
- package/oiml-twin-cert/evaluation/roles.prl +15 -0
- package/oiml-twin-cert/execution/forms/probe-creep.prl +179 -0
- package/oiml-twin-cert/execution/forms/probe.prl +99 -0
- package/oiml-twin-cert/execution/forms/static-conformance.prl +50 -0
- package/oiml-twin-cert/model/attributes.prl +243 -0
- package/oiml-twin-cert/model/behaviors.prl +8 -0
- package/oiml-twin-cert/model/characteristics.prl +18 -0
- package/oiml-twin-cert/model/monitors.prl +16 -0
- package/oiml-twin-cert/package.primmel +16 -0
- package/oiml-twin-cert/specification/conformance/twin-fidelity.prl +176 -0
- package/oiml-twin-cert/specification/requirements/twin-fidelity.prl +137 -0
- package/oiml-twin-cert/specification/symbols.prl +36 -0
- package/oiml-twin-cert/terminology.prl +8 -0
- package/oimlsmart-primmel-packages-0.1.0.tgz +0 -0
- package/package.json +17 -0
- package/qms-ref/model/qms.prl +31 -0
- package/qms-ref/package.primmel +38 -0
- package/quarry-belt-scale/model/ops.prl +115 -0
- package/quarry-belt-scale/package.primmel +36 -0
|
@@ -0,0 +1,323 @@
|
|
|
1
|
+
class Engagement#data {
|
|
2
|
+
store { engagements }
|
|
3
|
+
description { "The commercial negotiation between two parties around work (TODO.federation/02 introduced the IA/applicant pair; TODO.adoption/07 generalized it): a requester approaches a provider with an inquiry, receives a financial quotation, signs an agreement, and only then does the technical record exist. The kind fixes the pair: ia_applicant (a manufacturer approaches an Issuing Authority; provenance ISO/IEC 17065:2012, 7.2 (the application information the body obtains) for the inquiry, 7.3.1 (application review) for the quotation review, 4.1.2 (the legally enforceable agreement) for the agreement leg, 7.3.4 (declining without competence) for the provider_declines leg; the fee content of the quotation per PD-05 §4.2.8/§4.2.9), ia_tl (an Issuing Authority negotiates test work with a Test Laboratory), tl_applicant (a manufacturer negotiates development testing with a Test Laboratory directly, outside any certification flow). Pure record-keeping: the module records quotations and agreements, it never moves money (TODO.adoption/09 carries the payment evidence). The funnel is the `engagement` state machine (INQUIRY → QUOTED → AGREED → CONVERTED, with DECLINED and WITHDRAWN legs and the PENDING_EXTERNAL park for the acts that genuinely happen off-platform); once CONVERTED (or DECLINED/WITHDRAWN) the record is read-only and, for ia_applicant, the linked Application carries the subject data forward. Only ia_applicant negotiations convert: the conversion_offered guard on the machine holds the kind." }
|
|
4
|
+
indexes { manufacturer_id issuing_authority_id test_laboratory_id status standard_id kind }
|
|
5
|
+
id: string {
|
|
6
|
+
modality SHALL
|
|
7
|
+
}
|
|
8
|
+
standard_id: string {
|
|
9
|
+
modality SHALL
|
|
10
|
+
}
|
|
11
|
+
engagement_number: string {
|
|
12
|
+
modality SHALL
|
|
13
|
+
definition "The provider's reference (ENG-<provider>-<year>-<seq>), minted like the application number"
|
|
14
|
+
}
|
|
15
|
+
kind: enum {
|
|
16
|
+
modality SHALL
|
|
17
|
+
definition "The negotiation pair (TODO.adoption/07): ia_applicant (requester = the applicant manufacturer, provider = the Issuing Authority), ia_tl (requester = the Issuing Authority, provider = the Test Laboratory), tl_applicant (requester = the applicant manufacturer, provider = the Test Laboratory). Fixed at recording; the kind drives the party refs, the console views, and the defaults."
|
|
18
|
+
enum_values { ia_applicant ia_tl tl_applicant }
|
|
19
|
+
}
|
|
20
|
+
manufacturer_id: reference(Manufacturer) [0..1] {
|
|
21
|
+
modality MAY
|
|
22
|
+
definition "The applicant organization (ISO/IEC 17065:2012, 7.2: the client's identity). The requester on ia_applicant and tl_applicant negotiations; absent on ia_tl. The applicant-side org visibility keys on it, as with Application.manufacturer_id"
|
|
23
|
+
on_delete restrict
|
|
24
|
+
required false
|
|
25
|
+
}
|
|
26
|
+
issuing_authority_id: reference(IssuingAuthority) [0..1] {
|
|
27
|
+
modality MAY
|
|
28
|
+
definition "The Issuing Authority party: the provider on ia_applicant (the inquiry is addressed to it), the requester on ia_tl; absent on tl_applicant. The IA-side org visibility keys on it, as with Application.issuing_authority_id"
|
|
29
|
+
on_delete restrict
|
|
30
|
+
required false
|
|
31
|
+
}
|
|
32
|
+
test_laboratory_id: reference(TestLaboratory) [0..1] {
|
|
33
|
+
modality MAY
|
|
34
|
+
definition "The Test Laboratory party: the provider on ia_tl and tl_applicant negotiations; absent on ia_applicant. The laboratory-side org visibility keys on it, as with TestRequest.assigned_laboratory_id"
|
|
35
|
+
on_delete restrict
|
|
36
|
+
required false
|
|
37
|
+
}
|
|
38
|
+
subject_designation: string {
|
|
39
|
+
modality SHALL
|
|
40
|
+
definition "The subject's designation as the requester states it: the instrument's spec-sheet summary on ia_applicant, the scope of work on ia_tl and tl_applicant. The technical record proper starts at the Application"
|
|
41
|
+
}
|
|
42
|
+
subject_description: text [0..1] {
|
|
43
|
+
modality MAY
|
|
44
|
+
definition "What the subject is and the work asked for, as enquired (intended use, measuring range, the spec sheet's prose, the scope of the test work)"
|
|
45
|
+
}
|
|
46
|
+
inquirer_name: string [0..1] {
|
|
47
|
+
modality MAY
|
|
48
|
+
definition "The person who made the inquiry (the requester's contact)"
|
|
49
|
+
}
|
|
50
|
+
inquirer_email: string [0..1] {
|
|
51
|
+
modality MAY
|
|
52
|
+
}
|
|
53
|
+
inquirer_phone: string [0..1] {
|
|
54
|
+
modality MAY
|
|
55
|
+
}
|
|
56
|
+
owner: string [0..1] {
|
|
57
|
+
modality MAY
|
|
58
|
+
definition "The provider-side officer owning the negotiation (audit provenance)"
|
|
59
|
+
}
|
|
60
|
+
status: enum {
|
|
61
|
+
modality SHALL
|
|
62
|
+
definition "The negotiation funnel (the `engagement` state machine): INQUIRY → QUOTED → AGREED → CONVERTED, DECLINED from INQUIRY (provider_declines, ISO/IEC 17065:2012, 7.3.4) or QUOTED (requester_declines), WITHDRAWN from the open states (requester_withdraws), and the PENDING_EXTERNAL park (TODO.adoption/07: the negotiation continues off-platform; either party records the claimed outcome with its document and provenance). CONVERTED/DECLINED/WITHDRAWN are terminal: the record is then read-only."
|
|
63
|
+
enum_values { INQUIRY QUOTED AGREED CONVERTED DECLINED WITHDRAWN PENDING_EXTERNAL }
|
|
64
|
+
}
|
|
65
|
+
quotation_id: reference(Quotation) [0..1] {
|
|
66
|
+
modality MAY
|
|
67
|
+
definition "The current quotation; a re-issue supersedes the previous one (its status goes SUPERSEDED), never edits it in place"
|
|
68
|
+
on_delete nullify
|
|
69
|
+
required false
|
|
70
|
+
}
|
|
71
|
+
agreement_id: reference(ConsultingAgreement) [0..1] {
|
|
72
|
+
modality MAY
|
|
73
|
+
definition "The agreement record (ISO/IEC 17065:2012, 4.1.2 on ia_applicant; the same record-keeping doctrine on the other kinds)"
|
|
74
|
+
on_delete nullify
|
|
75
|
+
required false
|
|
76
|
+
}
|
|
77
|
+
converted_application_id: reference(Application) [0..1] {
|
|
78
|
+
modality MAY
|
|
79
|
+
definition "The Application an ia_applicant negotiation converted into (the only kind that converts): set by the conversion, then the negotiation is read-only"
|
|
80
|
+
on_delete nullify
|
|
81
|
+
required false
|
|
82
|
+
}
|
|
83
|
+
decline_reason: text [0..1] {
|
|
84
|
+
modality MAY
|
|
85
|
+
definition "Recorded on the DECLINED leg (provider_declines / requester_declines / external_decline_recorded): the reason is never silently dropped"
|
|
86
|
+
}
|
|
87
|
+
withdrawal_reason: text [0..1] {
|
|
88
|
+
modality MAY
|
|
89
|
+
definition "Recorded on the requester_withdraws leg"
|
|
90
|
+
}
|
|
91
|
+
external_note: text [0..1] {
|
|
92
|
+
modality MAY
|
|
93
|
+
definition "What the parties are settling off-platform while the negotiation parks (the PENDING_EXTERNAL leg's recorded reason: a phone negotiation, a legal review, shipping terms)"
|
|
94
|
+
}
|
|
95
|
+
external_recorded_by: string [0..1] {
|
|
96
|
+
modality MAY
|
|
97
|
+
definition "Who recorded the off-platform outcome (the claimant's name). The platform records the claimed outcome with the claimant's provenance; it never pretends to have witnessed the act itself"
|
|
98
|
+
}
|
|
99
|
+
external_outcome_date: date [0..1] {
|
|
100
|
+
modality MAY
|
|
101
|
+
definition "The date the parties state they settled off-platform, in the claimant's wording (e.g. agreed on 2026-08-20)"
|
|
102
|
+
}
|
|
103
|
+
quoted_date: datetime [0..1] {
|
|
104
|
+
modality MAY
|
|
105
|
+
}
|
|
106
|
+
agreed_date: datetime [0..1] {
|
|
107
|
+
modality MAY
|
|
108
|
+
definition "Both signatures on the agreement (ISO/IEC 17065:2012, 4.1.2), or the recording of a claimed off-platform agreement"
|
|
109
|
+
}
|
|
110
|
+
converted_date: datetime [0..1] {
|
|
111
|
+
modality MAY
|
|
112
|
+
}
|
|
113
|
+
declined_date: datetime [0..1] {
|
|
114
|
+
modality MAY
|
|
115
|
+
}
|
|
116
|
+
withdrawn_date: datetime [0..1] {
|
|
117
|
+
modality MAY
|
|
118
|
+
}
|
|
119
|
+
created: datetime {
|
|
120
|
+
modality SHALL
|
|
121
|
+
}
|
|
122
|
+
modified: datetime {
|
|
123
|
+
modality SHALL
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
|
|
127
|
+
class Quotation#data {
|
|
128
|
+
store { quotations }
|
|
129
|
+
description { "The provider's financial quotation (TODO.federation/02 for the engagement parent; TODO.adoption/07 for the test-request quote leg; the fee content per PD-05 §4.2.8/§4.2.9): priced line items with computed amounts and a computed total, a currency, a validity date, and the stated timeline and conditions. Exactly one parent: an Engagement (the negotiation primitive) or a TestRequest (the dispatched request the laboratory quotes against). Record-keeping only: issuance walks the parent INQUIRY → QUOTED (the engagement) or ISSUED → QUOTED (the test request); acceptance rides the agreement signature (the engagement) or the requester's accept act (the test request). A re-quotation supersedes, never edits an issued quotation." }
|
|
130
|
+
indexes { engagement_id test_request_id test_laboratory_id status }
|
|
131
|
+
id: string {
|
|
132
|
+
modality SHALL
|
|
133
|
+
}
|
|
134
|
+
standard_id: string {
|
|
135
|
+
modality SHALL
|
|
136
|
+
}
|
|
137
|
+
engagement_id: reference(Engagement) [0..1] {
|
|
138
|
+
modality MAY
|
|
139
|
+
definition "The engagement this quotation prices (set when the parent is a negotiation)"
|
|
140
|
+
on_delete cascade
|
|
141
|
+
required false
|
|
142
|
+
}
|
|
143
|
+
test_request_id: reference(TestRequest) [0..1] {
|
|
144
|
+
modality MAY
|
|
145
|
+
definition "The dispatched test request this quotation prices (set when the parent is the TODO.adoption/07 quote leg). Exactly one of engagement_id / test_request_id is set."
|
|
146
|
+
on_delete cascade
|
|
147
|
+
required false
|
|
148
|
+
}
|
|
149
|
+
quotation_number: string {
|
|
150
|
+
modality SHALL
|
|
151
|
+
definition "The provider's reference (QUO-<provider>-<year>-<seq>)"
|
|
152
|
+
}
|
|
153
|
+
line_items: reference(QuotationLineItem) [1..*] {
|
|
154
|
+
modality SHALL
|
|
155
|
+
definition "The priced lines (application fee, evaluation days, per-test charges, …); every amount is computed by the quotation service, never keyed by hand"
|
|
156
|
+
}
|
|
157
|
+
currency: string {
|
|
158
|
+
modality SHALL
|
|
159
|
+
definition "The ISO 4217 currency code every line amount and the total are expressed in"
|
|
160
|
+
}
|
|
161
|
+
total_amount: number {
|
|
162
|
+
modality SHALL
|
|
163
|
+
definition "The sum of the line items' computed amounts: computed by the quotation service, stored for the record (the requester sees the same number the provider composed)"
|
|
164
|
+
}
|
|
165
|
+
valid_until: date [0..1] {
|
|
166
|
+
modality MAY
|
|
167
|
+
definition "The quotation's validity date; past it the quotation has lapsed (displayed, never silently enforced)"
|
|
168
|
+
}
|
|
169
|
+
timeline: string [0..1] {
|
|
170
|
+
modality MAY
|
|
171
|
+
definition "The provider's stated delivery timeline (the quote leg's content, TODO.adoption/07: price, currency, timeline, conditions, validity)"
|
|
172
|
+
}
|
|
173
|
+
conditions: text [0..1] {
|
|
174
|
+
modality MAY
|
|
175
|
+
definition "The commercial conditions the provider attaches to the quotation (payment terms, validity conditions, scope caveats), in the provider's wording"
|
|
176
|
+
}
|
|
177
|
+
status: enum {
|
|
178
|
+
modality SHALL
|
|
179
|
+
definition "DRAFT (being composed) → ISSUED (sent to the requester with the parent's hop into QUOTED) → ACCEPTED (the requester's acceptance act) | DECLINED (the requester declines) — or SUPERSEDED when a re-quotation replaces it. Field writes with audit, not a machine: the parent's funnel is the lifecycle that matters."
|
|
180
|
+
enum_values { DRAFT ISSUED ACCEPTED DECLINED SUPERSEDED }
|
|
181
|
+
}
|
|
182
|
+
notes: text [0..1] {
|
|
183
|
+
modality MAY
|
|
184
|
+
}
|
|
185
|
+
manufacturer_id: reference(Manufacturer) [0..1] {
|
|
186
|
+
modality MAY
|
|
187
|
+
definition "Denormalized from the parent (the applicant party, when the pair carries one): the org-visibility index fields are the entities' REAL fields (the requester reads their quotation directly)"
|
|
188
|
+
on_delete restrict
|
|
189
|
+
required false
|
|
190
|
+
}
|
|
191
|
+
issuing_authority_id: reference(IssuingAuthority) [0..1] {
|
|
192
|
+
modality MAY
|
|
193
|
+
definition "Denormalized from the parent (the Issuing Authority party, when the pair carries one)"
|
|
194
|
+
on_delete restrict
|
|
195
|
+
required false
|
|
196
|
+
}
|
|
197
|
+
test_laboratory_id: reference(TestLaboratory) [0..1] {
|
|
198
|
+
modality MAY
|
|
199
|
+
definition "Denormalized from the parent (the Test Laboratory party, when the pair carries one: the provider on ia_tl and tl_applicant, the quoting laboratory on the test-request leg)"
|
|
200
|
+
on_delete restrict
|
|
201
|
+
required false
|
|
202
|
+
}
|
|
203
|
+
issued_date: datetime [0..1] {
|
|
204
|
+
modality MAY
|
|
205
|
+
}
|
|
206
|
+
accepted_date: datetime [0..1] {
|
|
207
|
+
modality MAY
|
|
208
|
+
}
|
|
209
|
+
declined_date: datetime [0..1] {
|
|
210
|
+
modality MAY
|
|
211
|
+
}
|
|
212
|
+
decline_reason: text [0..1] {
|
|
213
|
+
modality MAY
|
|
214
|
+
definition "Recorded when the requester declines the quotation"
|
|
215
|
+
}
|
|
216
|
+
created: datetime {
|
|
217
|
+
modality SHALL
|
|
218
|
+
}
|
|
219
|
+
modified: datetime {
|
|
220
|
+
modality SHALL
|
|
221
|
+
}
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
class QuotationLineItem#data {
|
|
225
|
+
description { "One priced line of a Quotation (TODO.federation/02): what is charged, how many units, the unit price, and the computed amount. Embedded on Quotation.line_items; the amount is quantity × unit_price computed by the quotation service (round-half-up to two decimals), never keyed by hand." }
|
|
226
|
+
helper { true }
|
|
227
|
+
item: text {
|
|
228
|
+
modality SHALL
|
|
229
|
+
definition "What the line charges for (application fee, evaluation day, test charge, …)"
|
|
230
|
+
}
|
|
231
|
+
quantity: number {
|
|
232
|
+
modality SHALL
|
|
233
|
+
}
|
|
234
|
+
unit_price: number {
|
|
235
|
+
modality SHALL
|
|
236
|
+
definition "The per-unit price in the quotation's currency"
|
|
237
|
+
}
|
|
238
|
+
amount: number {
|
|
239
|
+
modality SHALL
|
|
240
|
+
definition "quantity × unit_price, computed by the quotation service and stored for the record"
|
|
241
|
+
}
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
class ConsultingAgreement#data {
|
|
245
|
+
store { consultingAgreements }
|
|
246
|
+
description { "The agreement record against a negotiation (TODO.federation/02; ISO/IEC 17065:2012, 4.1.2 on ia_applicant: certification activities are under a legally enforceable agreement): the agreement date, the signed document references, and the two signature legs (requester and provider). Both signatures complete the negotiation's QUOTED → AGREED hop; either party may sign first (the requester's portal acceptance is one leg; the provider's desk records the other, white-gloves deployments record both at the provider desk). When the act genuinely happened off-platform (TODO.adoption/07's pending-external pattern), the record instead carries the claimed outcome: the external_recorded_* provenance names the claimant and the signature legs stay empty, because the platform never witnessed them. The agreement DOCUMENTS ride as references: the platform records what was supplied, the signed bytes stay with the parties' records (or in the TODO.adoption/03 blob store when bound)." }
|
|
247
|
+
indexes { engagement_id test_laboratory_id status }
|
|
248
|
+
id: string {
|
|
249
|
+
modality SHALL
|
|
250
|
+
}
|
|
251
|
+
standard_id: string {
|
|
252
|
+
modality SHALL
|
|
253
|
+
}
|
|
254
|
+
engagement_id: reference(Engagement) {
|
|
255
|
+
modality SHALL
|
|
256
|
+
definition "The negotiation this agreement governs"
|
|
257
|
+
on_delete cascade
|
|
258
|
+
required true
|
|
259
|
+
}
|
|
260
|
+
agreement_date: date [0..1] {
|
|
261
|
+
modality MAY
|
|
262
|
+
definition "The date on the agreement document"
|
|
263
|
+
}
|
|
264
|
+
documents: reference(DocumentRef) [0..*] {
|
|
265
|
+
modality MAY
|
|
266
|
+
definition "The signed agreement document(s) as references (document_type + reference): the record carries what was supplied, never a copy"
|
|
267
|
+
}
|
|
268
|
+
status: enum {
|
|
269
|
+
modality SHALL
|
|
270
|
+
definition "DRAFT (recorded, signatures outstanding) → SIGNED (both parties signed and the negotiation walks QUOTED → AGREED on the completing signature, or the off-platform outcome was recorded with its claimant provenance from PENDING_EXTERNAL)"
|
|
271
|
+
enum_values { DRAFT SIGNED }
|
|
272
|
+
}
|
|
273
|
+
signed_by_requester: string [0..1] {
|
|
274
|
+
modality MAY
|
|
275
|
+
definition "Who signed for the requester organization"
|
|
276
|
+
}
|
|
277
|
+
requester_signed_date: datetime [0..1] {
|
|
278
|
+
modality MAY
|
|
279
|
+
}
|
|
280
|
+
signed_by_provider: string [0..1] {
|
|
281
|
+
modality MAY
|
|
282
|
+
definition "Who signed for the provider organization"
|
|
283
|
+
}
|
|
284
|
+
provider_signed_date: datetime [0..1] {
|
|
285
|
+
modality MAY
|
|
286
|
+
}
|
|
287
|
+
external_recorded_by: string [0..1] {
|
|
288
|
+
modality MAY
|
|
289
|
+
definition "Set when the agreement is the recorded outcome of an off-platform act (TODO.adoption/07): the claimant's name. The signature legs stay empty on such a record; the platform records the claimed outcome, never a witnessed signature."
|
|
290
|
+
}
|
|
291
|
+
external_recorded_date: datetime [0..1] {
|
|
292
|
+
modality MAY
|
|
293
|
+
definition "When the off-platform outcome was recorded"
|
|
294
|
+
}
|
|
295
|
+
notes: text [0..1] {
|
|
296
|
+
modality MAY
|
|
297
|
+
}
|
|
298
|
+
manufacturer_id: reference(Manufacturer) [0..1] {
|
|
299
|
+
modality MAY
|
|
300
|
+
definition "Denormalized from the parent negotiation (the applicant party, when the pair carries one): the org-visibility index fields are the entities' REAL fields"
|
|
301
|
+
on_delete restrict
|
|
302
|
+
required false
|
|
303
|
+
}
|
|
304
|
+
issuing_authority_id: reference(IssuingAuthority) [0..1] {
|
|
305
|
+
modality MAY
|
|
306
|
+
definition "Denormalized from the parent negotiation (the Issuing Authority party, when the pair carries one)"
|
|
307
|
+
on_delete restrict
|
|
308
|
+
required false
|
|
309
|
+
}
|
|
310
|
+
test_laboratory_id: reference(TestLaboratory) [0..1] {
|
|
311
|
+
modality MAY
|
|
312
|
+
definition "Denormalized from the parent negotiation (the Test Laboratory party, when the pair carries one)"
|
|
313
|
+
on_delete restrict
|
|
314
|
+
required false
|
|
315
|
+
}
|
|
316
|
+
created: datetime {
|
|
317
|
+
modality SHALL
|
|
318
|
+
}
|
|
319
|
+
modified: datetime {
|
|
320
|
+
modality SHALL
|
|
321
|
+
}
|
|
322
|
+
}
|
|
323
|
+
|
|
@@ -0,0 +1,359 @@
|
|
|
1
|
+
class QuantityValue#data {
|
|
2
|
+
description { "Number + optional unit — the INV-1 workhorse (\"no bare numbers\"). Instantiation of metamodel Module A QuantityValue, reduced to the two fields the R 60 parameter layer needs." }
|
|
3
|
+
helper { true }
|
|
4
|
+
value: any {
|
|
5
|
+
modality SHALL
|
|
6
|
+
definition "Decimal or string value (string for enum-like parameter values)"
|
|
7
|
+
}
|
|
8
|
+
unit: string [0..1] {
|
|
9
|
+
modality MAY
|
|
10
|
+
definition "Unit id from value-types.yaml units (kg, g, t, degC, V, mV/V, %, v, counts/v, ...); absent only for dimensionless/string values"
|
|
11
|
+
}
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
class CustodyEvent#data {
|
|
15
|
+
description { "Append-only chain-of-custody record, embedded in MeasuringInstrumentSample.custody_events" }
|
|
16
|
+
helper { true }
|
|
17
|
+
sample_id: reference(MeasuringInstrumentSample) {
|
|
18
|
+
modality SHALL
|
|
19
|
+
on_delete cascade
|
|
20
|
+
required true
|
|
21
|
+
}
|
|
22
|
+
event_type: enum {
|
|
23
|
+
modality SHALL
|
|
24
|
+
enum_values { REQUESTED SHIPPED RECEIVED ASSIGNED_TO_TEST RETURNED DISPOSED }
|
|
25
|
+
}
|
|
26
|
+
from_party_id: string [0..1] {
|
|
27
|
+
modality MAY
|
|
28
|
+
definition "Party that held the sample before this event"
|
|
29
|
+
}
|
|
30
|
+
to_party_id: string {
|
|
31
|
+
modality SHALL
|
|
32
|
+
definition "Party that holds the sample after this event"
|
|
33
|
+
}
|
|
34
|
+
timestamp: datetime {
|
|
35
|
+
modality SHALL
|
|
36
|
+
}
|
|
37
|
+
notes: text [0..1] {
|
|
38
|
+
modality MAY
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
class OperationalStateEntry#data {
|
|
43
|
+
description { "One entry of a sample's operational-state trajectory (TODO.roadmap/07 + task 29, primmel StateTrajectoryEntry): the machine ENTERED `state` at `at` because `fired_by` recorded the transition fire. Append-only evidence — lands in the run's trace next to the conditions log." }
|
|
44
|
+
helper { true }
|
|
45
|
+
state: string {
|
|
46
|
+
modality SHALL
|
|
47
|
+
definition "Node of the operational machine entered (e.g. warming_up, ready)"
|
|
48
|
+
}
|
|
49
|
+
at: datetime {
|
|
50
|
+
modality SHALL
|
|
51
|
+
definition "ISO-8601 timestamp of the entry"
|
|
52
|
+
}
|
|
53
|
+
fired_by: string {
|
|
54
|
+
modality SHALL
|
|
55
|
+
definition "Who/what fired the transition (operator name, process step id; '' = genesis)"
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
class OperationalState#data {
|
|
60
|
+
description { "A sample's current node in one OPERATIONAL state machine (TODO.roadmap/07 + task 29) — instance-level data of the machine declared in data/<rec>/model/state.yaml. Strictly separate from `status` (the measuring_instrument_sample LIFECYCLE machine): the families never mix (primmel C38)." }
|
|
61
|
+
helper { true }
|
|
62
|
+
machine: string {
|
|
63
|
+
modality SHALL
|
|
64
|
+
definition "Id of the operational state machine (model/state.yaml state_machines[].id)"
|
|
65
|
+
}
|
|
66
|
+
current: string {
|
|
67
|
+
modality SHALL
|
|
68
|
+
definition "The machine's current node (e.g. off, warming_up, ready, measuring)"
|
|
69
|
+
}
|
|
70
|
+
trajectory: reference(OperationalStateEntry) [0..*] {
|
|
71
|
+
modality MAY
|
|
72
|
+
definition "Append-only state-entry log (embedded)"
|
|
73
|
+
on_delete cascade
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
|
|
77
|
+
class PhysicalDimensions#data {
|
|
78
|
+
description { "The sample's physical dimensions as registered on receipt (R 60-3, 4.9.10 — the report form's load-cell-dimensions entry, whose table carries the pictures/drawings of the dimensions). Every facet is an optional quantity-with-unit in mm; only the dimensions relevant to the instrument's shape are recorded (a cylindrical load cell records height + diameter, never length/width)." }
|
|
79
|
+
helper { true }
|
|
80
|
+
length: reference(QuantityValue) [0..1] {
|
|
81
|
+
modality MAY
|
|
82
|
+
definition "Overall length (QuantityValue { value, unit: mm })"
|
|
83
|
+
}
|
|
84
|
+
width: reference(QuantityValue) [0..1] {
|
|
85
|
+
modality MAY
|
|
86
|
+
definition "Overall width (QuantityValue { value, unit: mm })"
|
|
87
|
+
}
|
|
88
|
+
height: reference(QuantityValue) [0..1] {
|
|
89
|
+
modality MAY
|
|
90
|
+
definition "Overall height (QuantityValue { value, unit: mm })"
|
|
91
|
+
}
|
|
92
|
+
diameter: reference(QuantityValue) [0..1] {
|
|
93
|
+
modality MAY
|
|
94
|
+
definition "Body diameter (QuantityValue { value, unit: mm })"
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
class MeasuringInstrumentModelFamily#data {
|
|
99
|
+
store { measuringInstrumentModelFamilies }
|
|
100
|
+
description { "Family of measuring instruments (OIML V 1:2022, 4.02; R 60-1, 3.4.2). HAS MANY Models (optionally via Groups). Its classification and parameters act as defaults inherited by its groups/models (INV-10)." }
|
|
101
|
+
indexes { manufacturer_id standard_id }
|
|
102
|
+
id: string {
|
|
103
|
+
modality SHALL
|
|
104
|
+
}
|
|
105
|
+
standard_id: string {
|
|
106
|
+
modality SHALL
|
|
107
|
+
}
|
|
108
|
+
family_designation: string {
|
|
109
|
+
modality SHALL
|
|
110
|
+
definition "Human-readable family designation (e.g. 'ACME LC-500 Series')"
|
|
111
|
+
}
|
|
112
|
+
family_code: string [0..1] {
|
|
113
|
+
modality MAY
|
|
114
|
+
definition "Short code used in certificate numbers and URIs"
|
|
115
|
+
}
|
|
116
|
+
manufacturer_id: reference(Manufacturer) {
|
|
117
|
+
modality SHALL
|
|
118
|
+
on_delete restrict
|
|
119
|
+
required true
|
|
120
|
+
}
|
|
121
|
+
classification: map<dimension_id, string> [0..1] {
|
|
122
|
+
modality MAY
|
|
123
|
+
definition "Family-level dimension defaults (family-scope axes: technology, humidity_class, construction)"
|
|
124
|
+
}
|
|
125
|
+
parameters: map<attribute_id, QuantityValue> [0..1] {
|
|
126
|
+
modality MAY
|
|
127
|
+
definition "Family-scope attribute defaults (attributes.yaml scope: family — e_min, e_lim, p_lc, t_min, t_max, rated_output, input_impedance, output_impedance, recommended_excitation, excitation_maximum, safe_overload, transducer_material, atmospheric_protection)"
|
|
128
|
+
}
|
|
129
|
+
created: datetime {
|
|
130
|
+
modality SHALL
|
|
131
|
+
}
|
|
132
|
+
modified: datetime {
|
|
133
|
+
modality SHALL
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
class MeasuringInstrumentModelGroup#data {
|
|
138
|
+
store { measuringInstrumentModelGroups }
|
|
139
|
+
description { "Sub-grouping within a MeasuringInstrumentModelFamily. A group carries the metrological characteristics its member Models share (accuracy class, n_lc, y, z, dr, ...); Models resolve them by delegation (INV-10). Within a group, Models differ only by e_max (R 60-2, Annex D)." }
|
|
140
|
+
indexes { family_id manufacturer_id standard_id }
|
|
141
|
+
id: string {
|
|
142
|
+
modality SHALL
|
|
143
|
+
}
|
|
144
|
+
standard_id: string {
|
|
145
|
+
modality SHALL
|
|
146
|
+
}
|
|
147
|
+
family_id: reference(MeasuringInstrumentModelFamily) {
|
|
148
|
+
modality SHALL
|
|
149
|
+
on_delete cascade
|
|
150
|
+
required true
|
|
151
|
+
}
|
|
152
|
+
manufacturer_id: reference(Manufacturer) {
|
|
153
|
+
modality SHALL
|
|
154
|
+
definition "Denormalized from family_id.manufacturer_id"
|
|
155
|
+
on_delete restrict
|
|
156
|
+
required true
|
|
157
|
+
}
|
|
158
|
+
group_label: string {
|
|
159
|
+
modality SHALL
|
|
160
|
+
definition "Compact label combining class + n_lc (e.g. 'C6', 'B10', 'C3')"
|
|
161
|
+
}
|
|
162
|
+
classification: map<dimension_id, string> [0..1] {
|
|
163
|
+
modality MAY
|
|
164
|
+
definition "Group-scope dimensions (accuracy_class, load_type; humidity_class override of the family default)"
|
|
165
|
+
}
|
|
166
|
+
parameters: map<attribute_id, QuantityValue> [0..1] {
|
|
167
|
+
modality MAY
|
|
168
|
+
definition "Group-identical characteristics (attributes.yaml scope: group — n_lc, v_min, y, z, dr, mpe, mpe_lc, construction_type)"
|
|
169
|
+
}
|
|
170
|
+
created: datetime {
|
|
171
|
+
modality SHALL
|
|
172
|
+
}
|
|
173
|
+
modified: datetime {
|
|
174
|
+
modality SHALL
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
class MeasuringInstrumentModel#data {
|
|
179
|
+
store { measuringInstrumentModels }
|
|
180
|
+
description { "A model of measuring instrument — the subject of type evaluation and approval. Attribute values not set here resolve through group -> family delegation (INV-10)." }
|
|
181
|
+
indexes { family_id group_id manufacturer_id standard_id }
|
|
182
|
+
id: string {
|
|
183
|
+
modality SHALL
|
|
184
|
+
}
|
|
185
|
+
standard_id: string {
|
|
186
|
+
modality SHALL
|
|
187
|
+
}
|
|
188
|
+
model_designation: string {
|
|
189
|
+
modality SHALL
|
|
190
|
+
definition "Specific model designation (e.g. 'ACME-LC-500-C-5kg')"
|
|
191
|
+
}
|
|
192
|
+
manufacturer_id: reference(Manufacturer) {
|
|
193
|
+
modality SHALL
|
|
194
|
+
on_delete restrict
|
|
195
|
+
required true
|
|
196
|
+
}
|
|
197
|
+
family_id: reference(MeasuringInstrumentModelFamily) {
|
|
198
|
+
modality SHALL
|
|
199
|
+
on_delete restrict
|
|
200
|
+
required true
|
|
201
|
+
}
|
|
202
|
+
group_id: reference(MeasuringInstrumentModelGroup) [0..1] {
|
|
203
|
+
modality MAY
|
|
204
|
+
on_delete restrict
|
|
205
|
+
required false
|
|
206
|
+
}
|
|
207
|
+
hardware_revision: string [0..1] {
|
|
208
|
+
modality MAY
|
|
209
|
+
}
|
|
210
|
+
type_approval_ref: reference(Certificate) [0..1] {
|
|
211
|
+
modality MAY
|
|
212
|
+
definition "Certificate issued for this model — filled after D3 approval"
|
|
213
|
+
on_delete nullify
|
|
214
|
+
required false
|
|
215
|
+
}
|
|
216
|
+
description: text [0..1] {
|
|
217
|
+
modality MAY
|
|
218
|
+
}
|
|
219
|
+
classification: map<dimension_id, string> [0..1] {
|
|
220
|
+
modality MAY
|
|
221
|
+
definition "Model dimension values/overrides (technology, accuracy_class, humidity_class, load_type)"
|
|
222
|
+
}
|
|
223
|
+
parameters: map<attribute_id, QuantityValue> [0..1] {
|
|
224
|
+
modality MAY
|
|
225
|
+
definition "Model-scope attributes (e_max, mr_max, warm_up_time, power_voltage, interfaces, output_signal, software_identification; overrides of inherited group/family values)"
|
|
226
|
+
}
|
|
227
|
+
capabilities: string[] [0..*] {
|
|
228
|
+
modality MAY
|
|
229
|
+
definition "Capability ids from data/r60/model/capabilities.yaml"
|
|
230
|
+
}
|
|
231
|
+
created: datetime {
|
|
232
|
+
modality SHALL
|
|
233
|
+
}
|
|
234
|
+
modified: datetime {
|
|
235
|
+
modality SHALL
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
class MeasuringInstrumentSample#data {
|
|
240
|
+
store { measuringInstrumentSamples }
|
|
241
|
+
description { "A physical instance of a MeasuringInstrumentModel submitted for type evaluation. Tracks receipt, dispatch to test labs, and return/disposal through the embedded custody_events log (PD-05 §4.3)." }
|
|
242
|
+
indexes { model_id application_id manufacturer_id serial_number status standard_id }
|
|
243
|
+
id: string {
|
|
244
|
+
modality SHALL
|
|
245
|
+
}
|
|
246
|
+
standard_id: string {
|
|
247
|
+
modality SHALL
|
|
248
|
+
}
|
|
249
|
+
sample_number: string [0..1] {
|
|
250
|
+
modality MAY
|
|
251
|
+
definition "IA-assigned sample number (e.g. 'S-2024-001')"
|
|
252
|
+
}
|
|
253
|
+
serial_number: string {
|
|
254
|
+
modality SHALL
|
|
255
|
+
definition "Manufacturer's serial number on the physical instrument"
|
|
256
|
+
}
|
|
257
|
+
model_id: reference(MeasuringInstrumentModel) {
|
|
258
|
+
modality SHALL
|
|
259
|
+
definition "Catalog model this sample is an instance of"
|
|
260
|
+
on_delete restrict
|
|
261
|
+
required true
|
|
262
|
+
}
|
|
263
|
+
manufacturer_id: reference(Manufacturer) {
|
|
264
|
+
modality SHALL
|
|
265
|
+
on_delete restrict
|
|
266
|
+
required true
|
|
267
|
+
}
|
|
268
|
+
application_id: reference(Application) [0..1] {
|
|
269
|
+
modality MAY
|
|
270
|
+
definition "Application this sample was logged against"
|
|
271
|
+
on_delete restrict
|
|
272
|
+
required false
|
|
273
|
+
}
|
|
274
|
+
manufacturing_date: date [0..1] {
|
|
275
|
+
modality MAY
|
|
276
|
+
}
|
|
277
|
+
received_date: date [0..1] {
|
|
278
|
+
modality MAY
|
|
279
|
+
}
|
|
280
|
+
condition: enum {
|
|
281
|
+
modality SHALL
|
|
282
|
+
definition "The condition the sample arrived in, recorded at receipt registration (the physical instrument's received state)"
|
|
283
|
+
enum_values { NEW USED REFURBISHED DAMAGED }
|
|
284
|
+
}
|
|
285
|
+
condition_notes: text [0..1] {
|
|
286
|
+
modality MAY
|
|
287
|
+
}
|
|
288
|
+
photographs: reference(DocumentRef) [0..*] {
|
|
289
|
+
modality MAY
|
|
290
|
+
definition "Receipt photograph(s) of the physical instrument (R 60-3, 4.9.4 — the report form carries the sample's photographs); the document-store blob slots carry the bytes when the store is bound, the file-name reference otherwise"
|
|
291
|
+
}
|
|
292
|
+
status: enum {
|
|
293
|
+
modality SHALL
|
|
294
|
+
definition "Lifecycle per evaluation/state-machines.yaml measuring_instrument_sample machine"
|
|
295
|
+
enum_values { REQUESTED IN_TRANSIT RECEIVED IN_TESTING TESTING_COMPLETE RETURNED RETAINED DESTROYED DISPOSED }
|
|
296
|
+
}
|
|
297
|
+
current_location: string [0..1] {
|
|
298
|
+
modality MAY
|
|
299
|
+
}
|
|
300
|
+
current_custodian_id: string [0..1] {
|
|
301
|
+
modality MAY
|
|
302
|
+
definition "Reference to the org currently holding the sample (IA, lab, manufacturer)"
|
|
303
|
+
}
|
|
304
|
+
custody_events: reference(CustodyEvent) [0..*] {
|
|
305
|
+
modality SHALL
|
|
306
|
+
definition "Append-only chain-of-custody log (embedded)"
|
|
307
|
+
on_delete cascade
|
|
308
|
+
}
|
|
309
|
+
disposal_method: enum [0..1] {
|
|
310
|
+
modality MAY
|
|
311
|
+
enum_values { RETURNED RECYCLED DESTROYED RETAINED }
|
|
312
|
+
}
|
|
313
|
+
disposal_date: date [0..1] {
|
|
314
|
+
modality MAY
|
|
315
|
+
}
|
|
316
|
+
disposal_certificate: reference(DocumentRef) [0..1] {
|
|
317
|
+
modality MAY
|
|
318
|
+
}
|
|
319
|
+
test_context: map<attribute_id, QuantityValue> [0..1] {
|
|
320
|
+
modality MAY
|
|
321
|
+
definition "Sample-scope test-dependent attributes (attributes.yaml origin: test-dependent — d_min, d_max, v, n, mr, conversion_factor_f); values under test, never inherited downward"
|
|
322
|
+
}
|
|
323
|
+
physical_dimensions: reference(PhysicalDimensions) [0..1] {
|
|
324
|
+
modality MAY
|
|
325
|
+
definition "Physical dimensions registered on receipt (R 60-3, 4.9.10 — the report form's load-cell-dimensions entry); embedded, each facet a QuantityValue in mm"
|
|
326
|
+
}
|
|
327
|
+
selected_for_evaluation: boolean [0..1] {
|
|
328
|
+
modality MAY
|
|
329
|
+
definition "The IA's selection of this sample for the type evaluation (R 60-3, 4.7 — selection of the sample(s) tested): the evaluation tests a subset of the received samples; absent/false = not selected. Only a registered (received) sample is selectable."
|
|
330
|
+
}
|
|
331
|
+
selection_justification: text [0..1] {
|
|
332
|
+
modality MAY
|
|
333
|
+
definition "The recorded justification of the selection decision (R 60-3, 4.7.2 — justification of the selection of the test sample(s), referring to R 60-2, 2.3/2.4 and Annex D)"
|
|
334
|
+
}
|
|
335
|
+
verification_state: enum [0..1] {
|
|
336
|
+
modality MAY
|
|
337
|
+
definition "Verification lifecycle state (TODO.roadmap/21, metamodel v0.6.1) — the sample_verification state machine of evaluation/state-machines.yaml: NOT_VERIFIED → VERIFIED (a verification passes) → REVERIFICATION_DUE (timer: validity window elapsed) | INVALIDATED (signal: an out-of-cycle trigger such as a tyre change) → VERIFIED (re-verification passes). Absent = never verified."
|
|
338
|
+
enum_values { NOT_VERIFIED VERIFIED REVERIFICATION_DUE INVALIDATED }
|
|
339
|
+
}
|
|
340
|
+
seals: reference(SealStatus) [0..*] {
|
|
341
|
+
modality MAY
|
|
342
|
+
definition "Current seal status on the sample (embedded) — set/renewed by passed verifications (marking and securing, e.g. R 91-1, 7.13/8.2.4)"
|
|
343
|
+
}
|
|
344
|
+
verification_signals: reference(VerificationSignal) [0..*] {
|
|
345
|
+
modality MAY
|
|
346
|
+
definition "Posted out-of-cycle verification signals (embedded) — the signal-event channel of the re-verification triggers (e.g. tyre-change on an ego speed meter, R 91-1, 6.15.3 Note 2); consumed by the trigger engine"
|
|
347
|
+
}
|
|
348
|
+
operational_state: reference(OperationalState) [0..1] {
|
|
349
|
+
modality MAY
|
|
350
|
+
definition "The sample's current node in the rec's OPERATIONAL state machine (data/<rec>/model/state.yaml, TODO.roadmap/07 + task 29 — e.g. the R 144 warm-up machine off → warming_up → ready → measuring). Instance-level HAS state with an append-only trajectory; tests gate on it via the precondition `state:` facet (violation ⇒ run invalid, never fail). Absent = no operational state tracked (the gate reads the machine's initial node). Strictly separate from `status` (lifecycle family)."
|
|
351
|
+
}
|
|
352
|
+
created: datetime {
|
|
353
|
+
modality SHALL
|
|
354
|
+
}
|
|
355
|
+
modified: datetime {
|
|
356
|
+
modality SHALL
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
|