@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.
Files changed (460) hide show
  1. package/AGENTS.md +60 -0
  2. package/LICENSE +21 -0
  3. package/README.md +68 -0
  4. package/acme-cgm-200/model/cgm200.prl +284 -0
  5. package/acme-cgm-200/model/r144-map.prl +337 -0
  6. package/acme-cgm-200/package.primmel +39 -0
  7. package/acme-cgm-system/model/cgm-system.prl +125 -0
  8. package/acme-cgm-system/model/r144-map.prl +75 -0
  9. package/acme-cgm-system/model/sample-line.prl +42 -0
  10. package/acme-cgm-system/package.primmel +23 -0
  11. package/acme-lc500/model/lc500.prl +218 -0
  12. package/acme-lc500/model/passport.prl +43 -0
  13. package/acme-lc500/model/r60-map.prl +161 -0
  14. package/acme-lc500/model/twin-cert-map.prl +114 -0
  15. package/acme-lc500/package.primmel +35 -0
  16. package/acme-md3xx/model/md350.prl +317 -0
  17. package/acme-md3xx/model/r129-map.prl +346 -0
  18. package/acme-md3xx/package.primmel +49 -0
  19. package/acme-rs180/model/r91-map.prl +234 -0
  20. package/acme-rs180/model/rs180.prl +236 -0
  21. package/acme-rs180/package.primmel +47 -0
  22. package/ims-demo/model/ims.prl +23 -0
  23. package/ims-demo/model/isms-map.prl +60 -0
  24. package/ims-demo/model/qms-map.prl +73 -0
  25. package/ims-demo/package.primmel +42 -0
  26. package/isms-ref/model/isms.prl +34 -0
  27. package/isms-ref/package.primmel +35 -0
  28. package/iso-iec-17000/package.primmel +8 -0
  29. package/iso-iec-17000/terminology.prl +268 -0
  30. package/iso-iec-17025/package.primmel +10 -0
  31. package/iso-iec-17025/specification/requirements/lab.prl +474 -0
  32. package/iso-iec-17025/terminology.prl +72 -0
  33. package/iso-iec-17065/package.primmel +10 -0
  34. package/iso-iec-17065/specification/requirements/body.prl +446 -0
  35. package/iso-iec-17065/terminology.prl +103 -0
  36. package/iso-iec-17067/package.primmel +10 -0
  37. package/iso-iec-17067/specification/requirements/scheme-content.prl +300 -0
  38. package/iso-iec-17067/terminology.prl +24 -0
  39. package/oiml-cs/package.primmel +10 -0
  40. package/oiml-cs/specification/discrepancies.prl +26 -0
  41. package/oiml-cs/specification/requirements/cs.prl +515 -0
  42. package/oiml-cs-dataspace/.primmel-allowlist.prl +25 -0
  43. package/oiml-cs-dataspace/package.primmel +9 -0
  44. package/oiml-cs-dataspace/specification/dataspace.prl +73 -0
  45. package/oiml-cs-dataspace/specification/policies.prl +68 -0
  46. package/oiml-integrated-ref/model/probe-pairing.prl +71 -0
  47. package/oiml-integrated-ref/package.primmel +10 -0
  48. package/oiml-r129/.primmel-allowlist.prl +2 -0
  49. package/oiml-r129/evaluation/processes.prl +152 -0
  50. package/oiml-r129/evaluation/workflow.prl +48 -0
  51. package/oiml-r129/execution/forms/admin/adjustments-modifications.prl +30 -0
  52. package/oiml-r129/execution/forms/admin/checklist.prl +70 -0
  53. package/oiml-r129/execution/forms/admin/configuration.prl +31 -0
  54. package/oiml-r129/execution/forms/admin/equipment-info.prl +27 -0
  55. package/oiml-r129/execution/forms/admin/general-info.prl +63 -0
  56. package/oiml-r129/execution/forms/admin/identification.prl +49 -0
  57. package/oiml-r129/execution/forms/admin/sample-selection.prl +30 -0
  58. package/oiml-r129/execution/forms/admin/summary-results.prl +50 -0
  59. package/oiml-r129/execution/forms/emc/bursts.prl +88 -0
  60. package/oiml-r129/execution/forms/emc/esd.prl +66 -0
  61. package/oiml-r129/execution/forms/emc/low-voltage-battery.prl +58 -0
  62. package/oiml-r129/execution/forms/emc/rf-immunity-conducted.prl +59 -0
  63. package/oiml-r129/execution/forms/emc/rf-immunity-radiated.prl +59 -0
  64. package/oiml-r129/execution/forms/emc/surge.prl +61 -0
  65. package/oiml-r129/execution/forms/emc/voltage-dips.prl +62 -0
  66. package/oiml-r129/execution/forms/emc/voltage-variation.prl +58 -0
  67. package/oiml-r129/execution/forms/env/damp-heat-cyclic.prl +43 -0
  68. package/oiml-r129/execution/forms/env/damp-heat-steady.prl +50 -0
  69. package/oiml-r129/execution/forms/env/static-temperatures.prl +61 -0
  70. package/oiml-r129/execution/forms/shared/headers.prl +86 -0
  71. package/oiml-r129/execution/forms/tests/acoustics.prl +44 -0
  72. package/oiml-r129/execution/forms/tests/ambient-light.prl +46 -0
  73. package/oiml-r129/execution/forms/tests/construction-examination.prl +46 -0
  74. package/oiml-r129/execution/forms/tests/examination-checklist.prl +51 -0
  75. package/oiml-r129/execution/forms/tests/object-shape.prl +43 -0
  76. package/oiml-r129/execution/forms/tests/orientation-position.prl +31 -0
  77. package/oiml-r129/execution/forms/tests/repeatability.prl +65 -0
  78. package/oiml-r129/execution/forms/tests/speed-movement.prl +59 -0
  79. package/oiml-r129/execution/forms/tests/surface-characteristics.prl +44 -0
  80. package/oiml-r129/execution/forms/tests/warm-up-time.prl +35 -0
  81. package/oiml-r129/execution/subforms/dimension-measurement.prl +93 -0
  82. package/oiml-r129/layers.prl +50 -0
  83. package/oiml-r129/model/attributes.prl +243 -0
  84. package/oiml-r129/model/behaviors.prl +79 -0
  85. package/oiml-r129/model/capabilities.prl +29 -0
  86. package/oiml-r129/model/characteristics.prl +8 -0
  87. package/oiml-r129/model/conditions.prl +23 -0
  88. package/oiml-r129/model/instrument.prl +67 -0
  89. package/oiml-r129/model/state.prl +22 -0
  90. package/oiml-r129/model/twin.prl +23 -0
  91. package/oiml-r129/package.primmel +15 -0
  92. package/oiml-r129/payload/application.yaml +40 -0
  93. package/oiml-r129/payload/conditions-common-test.yaml +8 -0
  94. package/oiml-r129/payload/formulas-variants.yaml +33 -0
  95. package/oiml-r129/payload/promises.yaml +102 -0
  96. package/oiml-r129/payload/sample-data.yaml +300 -0
  97. package/oiml-r129/references.prl +306 -0
  98. package/oiml-r129/sources-prd/coverage.json +59 -0
  99. package/oiml-r129/sources-prd/r129-1.sentences.json +4238 -0
  100. package/oiml-r129/sources-prd/r129-2.sentences.json +1139 -0
  101. package/oiml-r129/sources-prd/r129-3.sentences.json +3809 -0
  102. package/oiml-r129/sources-prd/r129-4.sentences.json +1227 -0
  103. package/oiml-r129/specification/calculations.prl +83 -0
  104. package/oiml-r129/specification/conformance/disturbance-tests.prl +212 -0
  105. package/oiml-r129/specification/conformance/effect-tests.prl +70 -0
  106. package/oiml-r129/specification/conformance/examinations.prl +83 -0
  107. package/oiml-r129/specification/conformance/metrological-tests.prl +178 -0
  108. package/oiml-r129/specification/formulas.prl +9 -0
  109. package/oiml-r129/specification/requirements/electronic.prl +46 -0
  110. package/oiml-r129/specification/requirements/metrological.prl +83 -0
  111. package/oiml-r129/specification/requirements/object-limitations.prl +99 -0
  112. package/oiml-r129/specification/requirements/software.prl +57 -0
  113. package/oiml-r129/specification/requirements/technical.prl +134 -0
  114. package/oiml-r129/specification/symbols.prl +187 -0
  115. package/oiml-r129/specification/tables.prl +74 -0
  116. package/oiml-r129/terminology.prl +415 -0
  117. package/oiml-r129/value-types.prl +40 -0
  118. package/oiml-r144/.primmel-allowlist.prl +2 -0
  119. package/oiml-r144/entities/instrument.prl +360 -0
  120. package/oiml-r144/entities/test-execution.prl +228 -0
  121. package/oiml-r144/entities/workflow.prl +2075 -0
  122. package/oiml-r144/evaluation/processes.prl +152 -0
  123. package/oiml-r144/evaluation/workflow.prl +48 -0
  124. package/oiml-r144/execution/forms/sec-3-report/03-01-laboratory-info.prl +19 -0
  125. package/oiml-r144/execution/forms/sec-3-report/03-02-test-location.prl +14 -0
  126. package/oiml-r144/execution/forms/sec-3-report/03-03-manufacturer-info.prl +18 -0
  127. package/oiml-r144/execution/forms/sec-3-report/03-04-applicant-info.prl +19 -0
  128. package/oiml-r144/execution/forms/sec-3-report/03-05-type-identification.prl +80 -0
  129. package/oiml-r144/execution/forms/sec-3-report/03-06-type-composition.prl +31 -0
  130. package/oiml-r144/execution/forms/sec-3-report/03-07-visual-examination.prl +46 -0
  131. package/oiml-r144/execution/forms/sec-3-report/03-08-test-conclusions.prl +46 -0
  132. package/oiml-r144/execution/forms/sec-3-report/03-09-general-conclusion.prl +19 -0
  133. package/oiml-r144/execution/forms/sec-3-report/03-10-responsible-persons.prl +27 -0
  134. package/oiml-r144/execution/forms/sec-tests/ambient-pressure-test.prl +59 -0
  135. package/oiml-r144/execution/forms/sec-tests/bursts-mains-test.prl +52 -0
  136. package/oiml-r144/execution/forms/sec-tests/bursts-signal-test.prl +55 -0
  137. package/oiml-r144/execution/forms/sec-tests/cold-test.prl +48 -0
  138. package/oiml-r144/execution/forms/sec-tests/cross-sensitivity-test.prl +92 -0
  139. package/oiml-r144/execution/forms/sec-tests/damp-heat-test.prl +50 -0
  140. package/oiml-r144/execution/forms/sec-tests/documentation-examination.prl +52 -0
  141. package/oiml-r144/execution/forms/sec-tests/drift-test.prl +83 -0
  142. package/oiml-r144/execution/forms/sec-tests/dry-heat-test.prl +53 -0
  143. package/oiml-r144/execution/forms/sec-tests/error-determination.prl +37 -0
  144. package/oiml-r144/execution/forms/sec-tests/esd-test.prl +53 -0
  145. package/oiml-r144/execution/forms/sec-tests/flow-spillover-test.prl +83 -0
  146. package/oiml-r144/execution/forms/sec-tests/leakproofness-test.prl +41 -0
  147. package/oiml-r144/execution/forms/sec-tests/low-battery-test.prl +48 -0
  148. package/oiml-r144/execution/forms/sec-tests/power-reduction-test.prl +49 -0
  149. package/oiml-r144/execution/forms/sec-tests/power-supply-test.prl +57 -0
  150. package/oiml-r144/execution/forms/sec-tests/repeatability-test.prl +60 -0
  151. package/oiml-r144/execution/forms/sec-tests/response-time-test.prl +43 -0
  152. package/oiml-r144/execution/forms/sec-tests/rf-emf-test.prl +47 -0
  153. package/oiml-r144/execution/forms/sec-tests/shock-test.prl +50 -0
  154. package/oiml-r144/execution/forms/sec-tests/surge-test.prl +52 -0
  155. package/oiml-r144/execution/forms/sec-tests/vibration-test.prl +58 -0
  156. package/oiml-r144/execution/forms/sec-tests/warm-up-time-test.prl +69 -0
  157. package/oiml-r144/execution/forms/shared/headers.prl +132 -0
  158. package/oiml-r144/execution/subforms/cgm-point.prl +99 -0
  159. package/oiml-r144/layers.prl +44 -0
  160. package/oiml-r144/model/attributes.prl +679 -0
  161. package/oiml-r144/model/behaviors.prl +117 -0
  162. package/oiml-r144/model/capabilities.prl +99 -0
  163. package/oiml-r144/model/characteristics.prl +27 -0
  164. package/oiml-r144/model/conditions.prl +46 -0
  165. package/oiml-r144/model/instrument.prl +85 -0
  166. package/oiml-r144/model/state.prl +18 -0
  167. package/oiml-r144/model/twin.prl +25 -0
  168. package/oiml-r144/package.primmel +15 -0
  169. package/oiml-r144/payload/application.yaml +80 -0
  170. package/oiml-r144/payload/attributes-pair-list.yaml +18 -0
  171. package/oiml-r144/payload/conditions-common-test.yaml +74 -0
  172. package/oiml-r144/payload/formulas-variants.yaml +32 -0
  173. package/oiml-r144/payload/promises.yaml +118 -0
  174. package/oiml-r144/payload/sample-data.yaml +643 -0
  175. package/oiml-r144/references.prl +594 -0
  176. package/oiml-r144/sources-prd/coverage.json +114 -0
  177. package/oiml-r144/sources-prd/r144-1.sentences.json +2797 -0
  178. package/oiml-r144/sources-prd/r144-2.sentences.json +1627 -0
  179. package/oiml-r144/sources-prd/r144-3.sentences.json +838 -0
  180. package/oiml-r144/specification/calculations.prl +123 -0
  181. package/oiml-r144/specification/conformance/examination.prl +87 -0
  182. package/oiml-r144/specification/conformance/performance-tests.prl +755 -0
  183. package/oiml-r144/specification/formulas.prl +37 -0
  184. package/oiml-r144/specification/reference-materials.prl +87 -0
  185. package/oiml-r144/specification/requirements/controls.prl +51 -0
  186. package/oiml-r144/specification/requirements/metrological.prl +299 -0
  187. package/oiml-r144/specification/requirements/report.prl +35 -0
  188. package/oiml-r144/specification/requirements/technical.prl +455 -0
  189. package/oiml-r144/specification/symbols.prl +357 -0
  190. package/oiml-r144/specification/tables.prl +95 -0
  191. package/oiml-r144/specification/test-point-sets.prl +15 -0
  192. package/oiml-r144/terminology.prl +308 -0
  193. package/oiml-r144/value-types.prl +49 -0
  194. package/oiml-r60/.primmel-allowlist.prl +2 -0
  195. package/oiml-r60/entities/workflow.prl +2079 -0
  196. package/oiml-r60/evaluation/processes.prl +152 -0
  197. package/oiml-r60/evaluation/workflow.prl +48 -0
  198. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-01-authority-info.prl +76 -0
  199. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-02-synopsis.prl +20 -0
  200. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-03-01-examinations.prl +27 -0
  201. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-03-02-a-performance-general.prl +81 -0
  202. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-03-02-b-performance-digital.prl +104 -0
  203. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-04-01-manufacturer.prl +21 -0
  204. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-04-02-applicant.prl +44 -0
  205. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-04-03-testing-laboratories.prl +69 -0
  206. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-05-load-cell-type-info.prl +83 -0
  207. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-06-accessories.prl +41 -0
  208. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-07-sample-selection.prl +71 -0
  209. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-01-general-info.prl +103 -0
  210. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-02-performance-info.prl +66 -0
  211. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-03-digital-info.prl +35 -0
  212. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-04-photographs.prl +12 -0
  213. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-05-documentation.prl +27 -0
  214. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-06-inscriptions.prl +126 -0
  215. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-07-model-range.prl +143 -0
  216. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-09-12-previous-tests.prl +26 -0
  217. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-01-force-generating-system.prl +89 -0
  218. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-02-weights.prl +61 -0
  219. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-03-temperature-chamber.prl +96 -0
  220. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-04-climate-chamber.prl +96 -0
  221. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-05-indicator.prl +92 -0
  222. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-06-terminal.prl +86 -0
  223. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-07-barometric-pressure-meter.prl +62 -0
  224. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-08-thermometer.prl +62 -0
  225. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-09-moisture-analyser.prl +62 -0
  226. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-10-additional-test-equipment.prl +69 -0
  227. package/oiml-r60/execution/forms/sec-4-evaluation-report/04-10-11-remarks.prl +11 -0
  228. package/oiml-r60/execution/forms/sec-4-evaluation-report/test-usage-matrix.prl +85 -0
  229. package/oiml-r60/execution/forms/sec-5-examination/documentation-examination.prl +53 -0
  230. package/oiml-r60/execution/forms/sec-5-examination/marking-examination.prl +104 -0
  231. package/oiml-r60/execution/forms/sec-5-examination/software-examination.prl +86 -0
  232. package/oiml-r60/execution/forms/sec-5-examination/suitability-examination.prl +56 -0
  233. package/oiml-r60/execution/forms/sec-6-performance-tests/barometric-pressure.prl +176 -0
  234. package/oiml-r60/execution/forms/sec-6-performance-tests/bursts.prl +129 -0
  235. package/oiml-r60/execution/forms/sec-6-performance-tests/conducted-emc.prl +170 -0
  236. package/oiml-r60/execution/forms/sec-6-performance-tests/creep-dr.prl +327 -0
  237. package/oiml-r60/execution/forms/sec-6-performance-tests/emc-susceptibility.prl +115 -0
  238. package/oiml-r60/execution/forms/sec-6-performance-tests/esd.prl +224 -0
  239. package/oiml-r60/execution/forms/sec-6-performance-tests/humidity-ch.prl +300 -0
  240. package/oiml-r60/execution/forms/sec-6-performance-tests/humidity-sh.prl +235 -0
  241. package/oiml-r60/execution/forms/sec-6-performance-tests/initial-tests.prl +129 -0
  242. package/oiml-r60/execution/forms/sec-6-performance-tests/load-cell-errors.prl +280 -0
  243. package/oiml-r60/execution/forms/sec-6-performance-tests/load-test.prl +29 -0
  244. package/oiml-r60/execution/forms/sec-6-performance-tests/performance-test-summary.prl +82 -0
  245. package/oiml-r60/execution/forms/sec-6-performance-tests/power-voltage.prl +166 -0
  246. package/oiml-r60/execution/forms/sec-6-performance-tests/repeatability.prl +189 -0
  247. package/oiml-r60/execution/forms/sec-6-performance-tests/short-time-power.prl +98 -0
  248. package/oiml-r60/execution/forms/sec-6-performance-tests/span-stability.prl +242 -0
  249. package/oiml-r60/execution/forms/sec-6-performance-tests/surge.prl +142 -0
  250. package/oiml-r60/execution/forms/sec-6-performance-tests/temperature-mdlo.prl +180 -0
  251. package/oiml-r60/execution/forms/sec-6-performance-tests/warm-up-time.prl +207 -0
  252. package/oiml-r60/execution/forms/shared/headers.prl +255 -0
  253. package/oiml-r60/execution/subforms/load-test-row.prl +55 -0
  254. package/oiml-r60/execution/subforms/test-procedures.prl +33 -0
  255. package/oiml-r60/layers.prl +46 -0
  256. package/oiml-r60/model/attributes.prl +642 -0
  257. package/oiml-r60/model/behaviors.prl +165 -0
  258. package/oiml-r60/model/capabilities.prl +57 -0
  259. package/oiml-r60/model/characteristics.prl +27 -0
  260. package/oiml-r60/model/conditions.prl +50 -0
  261. package/oiml-r60/model/instrument.prl +96 -0
  262. package/oiml-r60/model/processes.prl +54 -0
  263. package/oiml-r60/model/state.prl +22 -0
  264. package/oiml-r60/model/twin.prl +16 -0
  265. package/oiml-r60/package.primmel +16 -0
  266. package/oiml-r60/payload/annexes-part4.yaml +122 -0
  267. package/oiml-r60/payload/application.yaml +83 -0
  268. package/oiml-r60/payload/conditions-common-test.yaml +121 -0
  269. package/oiml-r60/payload/formulas-variants.yaml +55 -0
  270. package/oiml-r60/payload/promises.yaml +224 -0
  271. package/oiml-r60/payload/sample-data.yaml +5025 -0
  272. package/oiml-r60/payload/symbols-formula-notes.yaml +21 -0
  273. package/oiml-r60/references.prl +549 -0
  274. package/oiml-r60/sources-prd/coverage.json +740 -0
  275. package/oiml-r60/sources-prd/r60-1.sentences.json +2173 -0
  276. package/oiml-r60/sources-prd/r60-2.sentences.json +2961 -0
  277. package/oiml-r60/sources-prd/r60-3.sentences.json +4212 -0
  278. package/oiml-r60/sources-prd/r60-a.sentences.json +3361 -0
  279. package/oiml-r60/specification/calculations.prl +318 -0
  280. package/oiml-r60/specification/conformance/class-specific.prl +1120 -0
  281. package/oiml-r60/specification/conformance/electronic.prl +483 -0
  282. package/oiml-r60/specification/conformance/examination.prl +183 -0
  283. package/oiml-r60/specification/conformance/metrological.prl +478 -0
  284. package/oiml-r60/specification/constraints.prl +58 -0
  285. package/oiml-r60/specification/formulas-used.prl +43 -0
  286. package/oiml-r60/specification/formulas.prl +20 -0
  287. package/oiml-r60/specification/requirements/class-specific.prl +655 -0
  288. package/oiml-r60/specification/requirements/classification.prl +114 -0
  289. package/oiml-r60/specification/requirements/electronic.prl +222 -0
  290. package/oiml-r60/specification/requirements/metrological.prl +381 -0
  291. package/oiml-r60/specification/requirements/technical.prl +146 -0
  292. package/oiml-r60/specification/symbols.prl +599 -0
  293. package/oiml-r60/specification/tables.prl +182 -0
  294. package/oiml-r60/specification/test-sequences.prl +72 -0
  295. package/oiml-r60/terminology.prl +920 -0
  296. package/oiml-r60/value-types.prl +46 -0
  297. package/oiml-r91/.primmel-allowlist.prl +3 -0
  298. package/oiml-r91/entities/instrument.prl +359 -0
  299. package/oiml-r91/entities/workflow.prl +2075 -0
  300. package/oiml-r91/evaluation/processes.prl +152 -0
  301. package/oiml-r91/evaluation/workflow.prl +48 -0
  302. package/oiml-r91/execution/forms/evidence-file.prl +41 -0
  303. package/oiml-r91/execution/forms/report-evaluation/appraisal.prl +30 -0
  304. package/oiml-r91/execution/forms/report-evaluation/checklist-summary.prl +43 -0
  305. package/oiml-r91/execution/forms/report-evaluation/checklist.prl +76 -0
  306. package/oiml-r91/execution/forms/report-evaluation/configuration-samples.prl +22 -0
  307. package/oiml-r91/execution/forms/report-evaluation/corrective-actions.prl +24 -0
  308. package/oiml-r91/execution/forms/report-evaluation/descriptions.prl +47 -0
  309. package/oiml-r91/execution/forms/report-evaluation/evaluation-identification.prl +219 -0
  310. package/oiml-r91/execution/forms/report-evaluation/test-report-summary.prl +33 -0
  311. package/oiml-r91/execution/forms/report-general/adjustments.prl +12 -0
  312. package/oiml-r91/execution/forms/report-general/alignment-aiming.prl +17 -0
  313. package/oiml-r91/execution/forms/report-general/checking-facility.prl +17 -0
  314. package/oiml-r91/execution/forms/report-general/configuration.prl +12 -0
  315. package/oiml-r91/execution/forms/report-general/identification.prl +216 -0
  316. package/oiml-r91/execution/forms/report-general/indications-controls.prl +17 -0
  317. package/oiml-r91/execution/forms/report-general/sealing.prl +21 -0
  318. package/oiml-r91/execution/forms/report-general/software-description.prl +26 -0
  319. package/oiml-r91/execution/forms/report-general/summary-environmental.prl +35 -0
  320. package/oiml-r91/execution/forms/report-general/summary-tests.prl +35 -0
  321. package/oiml-r91/execution/forms/report-general/test-equipment.prl +36 -0
  322. package/oiml-r91/execution/forms/report-general/test-interface.prl +16 -0
  323. package/oiml-r91/execution/forms/report-tests/01-01-field-test.prl +84 -0
  324. package/oiml-r91/execution/forms/report-tests/01-02-statistical-analysis.prl +76 -0
  325. package/oiml-r91/execution/forms/report-tests/01-03-image-evidence.prl +30 -0
  326. package/oiml-r91/execution/forms/report-tests/02-01-dynamic-performance.prl +92 -0
  327. package/oiml-r91/execution/forms/report-tests/02-02-speed-linearity.prl +23 -0
  328. package/oiml-r91/execution/forms/report-tests/02-03-distance-linearity.prl +67 -0
  329. package/oiml-r91/execution/forms/report-tests/02-04-angle-linearity.prl +59 -0
  330. package/oiml-r91/execution/forms/report-tests/03-01-dry-heat-operating.prl +38 -0
  331. package/oiml-r91/execution/forms/report-tests/03-02-dry-heat-storage.prl +48 -0
  332. package/oiml-r91/execution/forms/report-tests/03-03-cold-operating.prl +40 -0
  333. package/oiml-r91/execution/forms/report-tests/03-04-cold-storage.prl +48 -0
  334. package/oiml-r91/execution/forms/report-tests/03-05-damp-heat-cyclic.prl +40 -0
  335. package/oiml-r91/execution/forms/report-tests/03-06-water.prl +48 -0
  336. package/oiml-r91/execution/forms/report-tests/03-07-sand-and-dust.prl +48 -0
  337. package/oiml-r91/execution/forms/report-tests/03-08-salt-mist.prl +48 -0
  338. package/oiml-r91/execution/forms/report-tests/03-09-vibration-random.prl +40 -0
  339. package/oiml-r91/execution/forms/report-tests/03-10-mechanical-shock.prl +48 -0
  340. package/oiml-r91/execution/forms/report-tests/03-11-dc-mains-voltage-variation.prl +40 -0
  341. package/oiml-r91/execution/forms/report-tests/03-12-ripple-on-dc-mains.prl +47 -0
  342. package/oiml-r91/execution/forms/report-tests/03-13-ac-mains-voltage-variation.prl +40 -0
  343. package/oiml-r91/execution/forms/report-tests/03-14-ac-mains-frequency-variation.prl +40 -0
  344. package/oiml-r91/execution/forms/report-tests/03-15-dc-mains-voltage-dips.prl +46 -0
  345. package/oiml-r91/execution/forms/report-tests/03-16-ac-mains-voltage-dips.prl +46 -0
  346. package/oiml-r91/execution/forms/report-tests/03-17-ac-mains-frequency-harmonics.prl +47 -0
  347. package/oiml-r91/execution/forms/report-tests/03-18-vlf-lf-disturbances.prl +46 -0
  348. package/oiml-r91/execution/forms/report-tests/03-19-bursts-ac-dc-mains.prl +44 -0
  349. package/oiml-r91/execution/forms/report-tests/03-20-surges-ac-dc-mains.prl +45 -0
  350. package/oiml-r91/execution/forms/report-tests/03-21-bursts-signal-lines.prl +45 -0
  351. package/oiml-r91/execution/forms/report-tests/03-22-surges-signal-lines.prl +46 -0
  352. package/oiml-r91/execution/forms/report-tests/03-23-ac-mains-magnetic-field.prl +45 -0
  353. package/oiml-r91/execution/forms/report-tests/03-24-conducted-rf-common-mode.prl +46 -0
  354. package/oiml-r91/execution/forms/report-tests/03-25-rf-electromagnetic-fields.prl +49 -0
  355. package/oiml-r91/execution/forms/report-tests/03-26-electrostatic-discharges.prl +47 -0
  356. package/oiml-r91/execution/forms/report-tests/03-27-internal-battery-low-voltage.prl +40 -0
  357. package/oiml-r91/execution/forms/report-tests/03-28-road-vehicle-battery.prl +40 -0
  358. package/oiml-r91/execution/forms/report-tests/03-29-transient-supply-lines.prl +47 -0
  359. package/oiml-r91/execution/forms/report-tests/03-30-transient-other-lines.prl +45 -0
  360. package/oiml-r91/execution/forms/report-tests/03-31-battery-cranking.prl +45 -0
  361. package/oiml-r91/execution/forms/report-tests/03-32-load-dump.prl +47 -0
  362. package/oiml-r91/execution/forms/report-tests/03-33-acceleration.prl +66 -0
  363. package/oiml-r91/execution/forms/report-tests/03-34-further-influence.prl +60 -0
  364. package/oiml-r91/execution/forms/report-tests/03-35-installation-alignment.prl +29 -0
  365. package/oiml-r91/execution/forms/report-tests/04-01-doppler-radar.prl +43 -0
  366. package/oiml-r91/execution/forms/report-tests/04-02-range-finding.prl +42 -0
  367. package/oiml-r91/execution/forms/report-tests/04-03-average-speed.prl +41 -0
  368. package/oiml-r91/execution/forms/report-tests/04-04-fixed-distance.prl +40 -0
  369. package/oiml-r91/execution/forms/report-tests/04-05-image-based.prl +41 -0
  370. package/oiml-r91/execution/forms/report-tests/04-06-across-road.prl +42 -0
  371. package/oiml-r91/execution/forms/report-tests/05-01-moving-field-test.prl +29 -0
  372. package/oiml-r91/execution/forms/report-tests/05-02-ego-field-test.prl +57 -0
  373. package/oiml-r91/execution/forms/report-tests/05-03-moving-traffic-simulation.prl +31 -0
  374. package/oiml-r91/execution/forms/report-tests/06-01-software-general.prl +25 -0
  375. package/oiml-r91/execution/forms/report-tests/06-02-software-protection.prl +25 -0
  376. package/oiml-r91/execution/forms/report-tests/06-03-software-hardware-support.prl +24 -0
  377. package/oiml-r91/execution/forms/report-tests/06-04-software-separation.prl +25 -0
  378. package/oiml-r91/execution/forms/report-tests/06-05-software-maintenance.prl +24 -0
  379. package/oiml-r91/execution/forms/report-tests/07-general-remarks.prl +11 -0
  380. package/oiml-r91/execution/forms/shared/header-a.prl +63 -0
  381. package/oiml-r91/execution/subforms/software-matrix-row.prl +30 -0
  382. package/oiml-r91/execution/subforms/speed-measurement-row.prl +38 -0
  383. package/oiml-r91/layers.prl +46 -0
  384. package/oiml-r91/model/artifacts.prl +29 -0
  385. package/oiml-r91/model/attributes.prl +698 -0
  386. package/oiml-r91/model/behaviors.prl +142 -0
  387. package/oiml-r91/model/capabilities.prl +88 -0
  388. package/oiml-r91/model/characteristics.prl +27 -0
  389. package/oiml-r91/model/conditions.prl +37 -0
  390. package/oiml-r91/model/instrument.prl +147 -0
  391. package/oiml-r91/model/state.prl +22 -0
  392. package/oiml-r91/model/twin.prl +17 -0
  393. package/oiml-r91/package.primmel +14 -0
  394. package/oiml-r91/payload/application.yaml +201 -0
  395. package/oiml-r91/payload/conditions-common-test.yaml +19 -0
  396. package/oiml-r91/payload/promises.yaml +142 -0
  397. package/oiml-r91/payload/sample-data.yaml +464 -0
  398. package/oiml-r91/references.prl +72 -0
  399. package/oiml-r91/sources-prd/coverage.json +106 -0
  400. package/oiml-r91/sources-prd/r91-1.sentences.json +4696 -0
  401. package/oiml-r91/sources-prd/r91-2.sentences.json +2067 -0
  402. package/oiml-r91/sources-prd/r91-3.sentences.json +5210 -0
  403. package/oiml-r91/sources-prd/r91-4.sentences.json +474 -0
  404. package/oiml-r91/specification/calculations.prl +26 -0
  405. package/oiml-r91/specification/conformance/influence-disturbance.prl +1792 -0
  406. package/oiml-r91/specification/conformance/metrological.prl +906 -0
  407. package/oiml-r91/specification/formulas.prl +10 -0
  408. package/oiml-r91/specification/requirements/class-specific.prl +308 -0
  409. package/oiml-r91/specification/requirements/metrological.prl +176 -0
  410. package/oiml-r91/specification/requirements/technical.prl +173 -0
  411. package/oiml-r91/specification/symbols.prl +323 -0
  412. package/oiml-r91/specification/tables.prl +136 -0
  413. package/oiml-r91/terminology.prl +535 -0
  414. package/oiml-r91/value-types.prl +26 -0
  415. package/oiml-smart-core/entities/comments.prl +101 -0
  416. package/oiml-smart-core/entities/cs-operations.prl +492 -0
  417. package/oiml-smart-core/entities/cs-participants.prl +470 -0
  418. package/oiml-smart-core/entities/engagement.prl +323 -0
  419. package/oiml-smart-core/entities/instrument.prl +359 -0
  420. package/oiml-smart-core/entities/module-b.prl +214 -0
  421. package/oiml-smart-core/entities/operated-schemes.prl +141 -0
  422. package/oiml-smart-core/entities/parties.prl +429 -0
  423. package/oiml-smart-core/entities/payment-records.prl +92 -0
  424. package/oiml-smart-core/entities/verification.prl +187 -0
  425. package/oiml-smart-core/entities/workflow.prl +2075 -0
  426. package/oiml-smart-core/evaluation/roles.prl +65 -0
  427. package/oiml-smart-core/evaluation/state-machines.prl +1157 -0
  428. package/oiml-smart-core/package.primmel +10 -0
  429. package/oiml-smart-core/specification/competence-kinds.prl +64 -0
  430. package/oiml-smart-core/specification/constraints.prl +40 -0
  431. package/oiml-smart-core/specification/invariants.prl +90 -0
  432. package/oiml-smart-core/specification/predicates.prl +116 -0
  433. package/oiml-smart-module-emc-disturbances/package.primmel +10 -0
  434. package/oiml-smart-module-env-iec60068/package.primmel +10 -0
  435. package/oiml-smart-module-examination-docs/package.primmel +10 -0
  436. package/oiml-smart-module-reference-materials/package.primmel +10 -0
  437. package/oiml-smart-module-report-headers/package.primmel +10 -0
  438. package/oiml-smart-module-software-d31/package.primmel +10 -0
  439. package/oiml-smart-module-specimen-governance/entities/test-execution.prl +228 -0
  440. package/oiml-smart-module-specimen-governance/package.primmel +10 -0
  441. package/oiml-twin-cert/documents/tw-1/document.yaml +454 -0
  442. package/oiml-twin-cert/evaluation/roles.prl +15 -0
  443. package/oiml-twin-cert/execution/forms/probe-creep.prl +179 -0
  444. package/oiml-twin-cert/execution/forms/probe.prl +99 -0
  445. package/oiml-twin-cert/execution/forms/static-conformance.prl +50 -0
  446. package/oiml-twin-cert/model/attributes.prl +243 -0
  447. package/oiml-twin-cert/model/behaviors.prl +8 -0
  448. package/oiml-twin-cert/model/characteristics.prl +18 -0
  449. package/oiml-twin-cert/model/monitors.prl +16 -0
  450. package/oiml-twin-cert/package.primmel +16 -0
  451. package/oiml-twin-cert/specification/conformance/twin-fidelity.prl +176 -0
  452. package/oiml-twin-cert/specification/requirements/twin-fidelity.prl +137 -0
  453. package/oiml-twin-cert/specification/symbols.prl +36 -0
  454. package/oiml-twin-cert/terminology.prl +8 -0
  455. package/oimlsmart-primmel-packages-0.1.0.tgz +0 -0
  456. package/package.json +17 -0
  457. package/qms-ref/model/qms.prl +31 -0
  458. package/qms-ref/package.primmel +38 -0
  459. package/quarry-belt-scale/model/ops.prl +115 -0
  460. package/quarry-belt-scale/package.primmel +36 -0
@@ -0,0 +1,360 @@
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 144 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 (ppm, degC, kPa, V, Hz, s, min, L/min, mg/m3, %, ...); 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). 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 GA-100 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: measuring_principle, sampling_approach)"
124
+ }
125
+ parameters: map<attribute_id, QuantityValue> [0..1] {
126
+ modality MAY
127
+ definition "Family-scope attribute defaults (attributes.yaml scope: family — t_min, t_max, rh_max, p_atm_min, p_atm_max, wetted_materials)"
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; Models resolve them by delegation (INV-10). Unused for R 144 (no group level)." }
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 the group's identical characteristics"
161
+ }
162
+ classification: map<dimension_id, string> [0..1] {
163
+ modality MAY
164
+ definition "Group-scope dimensions"
165
+ }
166
+ parameters: map<attribute_id, QuantityValue> [0..1] {
167
+ modality MAY
168
+ definition "Group-identical characteristics"
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-GA-100-CO-NOx')"
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
+ definition "Unused for R 144 (no group level)"
205
+ on_delete restrict
206
+ required false
207
+ }
208
+ hardware_revision: string [0..1] {
209
+ modality MAY
210
+ }
211
+ type_approval_ref: reference(Certificate) [0..1] {
212
+ modality MAY
213
+ definition "Certificate issued for this model — filled after D3 approval"
214
+ on_delete nullify
215
+ required false
216
+ }
217
+ description: text [0..1] {
218
+ modality MAY
219
+ }
220
+ classification: map<dimension_id, string> [0..1] {
221
+ modality MAY
222
+ definition "Model dimension values/overrides (measurand_components, adjustment_means, power_supply; measuring_principle, sampling_approach overrides of family defaults)"
223
+ }
224
+ parameters: map<attribute_id, QuantityValue> [0..1] {
225
+ modality MAY
226
+ definition "Model-scope attributes (co_range_min/max, no_range_min/max, no2_range_min/max, response_time, warm_up_time, supply_voltage, supply_frequency, battery_voltage_min, probe/analyzer gas temp + particulate maxima, gas_flow_rate_*, vibration_severity, interfering_components, indication_unit, storage_t_min/max, software_identification)"
227
+ }
228
+ capabilities: string[] [0..*] {
229
+ modality MAY
230
+ definition "Capability ids from data/r144/model/capabilities.yaml"
231
+ }
232
+ created: datetime {
233
+ modality SHALL
234
+ }
235
+ modified: datetime {
236
+ modality SHALL
237
+ }
238
+ }
239
+
240
+ class MeasuringInstrumentSample#data {
241
+ store { measuringInstrumentSamples }
242
+ 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)." }
243
+ indexes { model_id application_id manufacturer_id serial_number status standard_id }
244
+ id: string {
245
+ modality SHALL
246
+ }
247
+ standard_id: string {
248
+ modality SHALL
249
+ }
250
+ sample_number: string [0..1] {
251
+ modality MAY
252
+ definition "IA-assigned sample number (e.g. 'S-2024-001')"
253
+ }
254
+ serial_number: string {
255
+ modality SHALL
256
+ definition "Manufacturer's serial number on the physical instrument"
257
+ }
258
+ model_id: reference(MeasuringInstrumentModel) {
259
+ modality SHALL
260
+ definition "Catalog model this sample is an instance of"
261
+ on_delete restrict
262
+ required true
263
+ }
264
+ manufacturer_id: reference(Manufacturer) {
265
+ modality SHALL
266
+ on_delete restrict
267
+ required true
268
+ }
269
+ application_id: reference(Application) [0..1] {
270
+ modality MAY
271
+ definition "Application this sample was logged against"
272
+ on_delete restrict
273
+ required false
274
+ }
275
+ manufacturing_date: date [0..1] {
276
+ modality MAY
277
+ }
278
+ received_date: date [0..1] {
279
+ modality MAY
280
+ }
281
+ condition: enum {
282
+ modality SHALL
283
+ definition "The condition the sample arrived in, recorded at receipt registration (the physical instrument's received state)"
284
+ enum_values { NEW USED REFURBISHED DAMAGED }
285
+ }
286
+ condition_notes: text [0..1] {
287
+ modality MAY
288
+ }
289
+ photographs: reference(DocumentRef) [0..*] {
290
+ modality MAY
291
+ 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"
292
+ }
293
+ status: enum {
294
+ modality SHALL
295
+ definition "Lifecycle per evaluation/state-machines.yaml measuring_instrument_sample machine"
296
+ enum_values { REQUESTED IN_TRANSIT RECEIVED IN_TESTING TESTING_COMPLETE RETURNED RETAINED DESTROYED DISPOSED }
297
+ }
298
+ current_location: string [0..1] {
299
+ modality MAY
300
+ }
301
+ current_custodian_id: string [0..1] {
302
+ modality MAY
303
+ definition "Reference to the org currently holding the sample (IA, lab, manufacturer)"
304
+ }
305
+ custody_events: reference(CustodyEvent) [0..*] {
306
+ modality SHALL
307
+ definition "Append-only chain-of-custody log (embedded)"
308
+ on_delete cascade
309
+ }
310
+ disposal_method: enum [0..1] {
311
+ modality MAY
312
+ enum_values { RETURNED RECYCLED DESTROYED RETAINED }
313
+ }
314
+ disposal_date: date [0..1] {
315
+ modality MAY
316
+ }
317
+ disposal_certificate: reference(DocumentRef) [0..1] {
318
+ modality MAY
319
+ }
320
+ test_context: map<attribute_id, QuantityValue> [0..1] {
321
+ modality MAY
322
+ definition "Sample-scope test-dependent attributes (attributes.yaml origin: test-dependent); unused for R 144 — CGM test points are run observables, not subject attributes"
323
+ }
324
+ physical_dimensions: reference(PhysicalDimensions) [0..1] {
325
+ modality MAY
326
+ 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"
327
+ }
328
+ selected_for_evaluation: boolean [0..1] {
329
+ modality MAY
330
+ 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."
331
+ }
332
+ selection_justification: text [0..1] {
333
+ modality MAY
334
+ 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)"
335
+ }
336
+ verification_state: enum [0..1] {
337
+ modality MAY
338
+ 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."
339
+ enum_values { NOT_VERIFIED VERIFIED REVERIFICATION_DUE INVALIDATED }
340
+ }
341
+ seals: reference(SealStatus) [0..*] {
342
+ modality MAY
343
+ 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)"
344
+ }
345
+ verification_signals: reference(VerificationSignal) [0..*] {
346
+ modality MAY
347
+ 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"
348
+ }
349
+ operational_state: reference(OperationalState) [0..1] {
350
+ modality MAY
351
+ 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)."
352
+ }
353
+ created: datetime {
354
+ modality SHALL
355
+ }
356
+ modified: datetime {
357
+ modality SHALL
358
+ }
359
+ }
360
+
@@ -0,0 +1,228 @@
1
+ class TestRunEquipment#data {
2
+ description { "One piece of test equipment used in a run (metamodel D2 TestRun.equipment entry { id, calCert? }). Identity only — equipment is modelled as conditions (data/r144/model/conditions.yaml), not as an entity hierarchy." }
3
+ helper { true }
4
+ id: string {
5
+ modality SHALL
6
+ definition "Lab-local equipment identifier (e.g. force machine, chamber)"
7
+ }
8
+ cal_cert: string [0..1] {
9
+ modality MAY
10
+ definition "Calibration certificate reference (traceability)"
11
+ }
12
+ }
13
+
14
+ class ConditionsLogEntry#data {
15
+ description { "One logged influence-quantity value captured alongside a measurement (metamodel D2 EvidenceRecord.conditionsLog entry { quantityKind, value, unit }); quantity kinds per data/r144/model/conditions.yaml." }
16
+ helper { true }
17
+ quantity_kind: string {
18
+ modality SHALL
19
+ definition "Influence quantity kind (temperature, relative_humidity, barometric_pressure, ...)"
20
+ }
21
+ value: any {
22
+ modality SHALL
23
+ }
24
+ unit: string [0..1] {
25
+ modality MAY
26
+ }
27
+ }
28
+
29
+ class EvidenceRecord#data {
30
+ description { "A filled data-input slot of the run — mandatory evidence, typed by the form field it satisfies (metamodel D2 EvidenceRecord, embedded on TestRun.evidence). Per-measurement sign-off lives HERE (signed_by/signed_at), not on the FormInstance." }
31
+ helper { true }
32
+ field: string {
33
+ modality SHALL
34
+ definition "Form field name (data-input slot) this record fills, e.g. 'dmax', 'test_loads'"
35
+ }
36
+ value: reference(QuantityValue) {
37
+ modality SHALL
38
+ definition "Recorded value — QuantityValue { value, unit? }, never a bare number (INV-1)"
39
+ }
40
+ repetition: integer [0..1] {
41
+ modality MAY
42
+ definition "Repetition index (1-based) when the same slot is measured repeatedly"
43
+ }
44
+ conditions_log: reference(ConditionsLogEntry) [0..*] {
45
+ modality MAY
46
+ definition "Influence-quantity values logged at capture time (embedded)"
47
+ on_delete cascade
48
+ }
49
+ timestamp: datetime {
50
+ modality SHALL
51
+ }
52
+ signed_by: string [0..1] {
53
+ modality MAY
54
+ definition "Lab evaluator/supervisor name who signed this measurement off"
55
+ }
56
+ signed_by_account: string [0..1] {
57
+ modality MAY
58
+ definition "Account id of the signing operator (per-entry attribution for multi-operator runs, TODO.deploying/05); signed_by stays the display name"
59
+ }
60
+ signed_at: datetime [0..1] {
61
+ modality MAY
62
+ }
63
+ }
64
+
65
+ class RunOperator#data {
66
+ description { "One lab operator of a multi-operator test run (TODO.deploying/05 — loads need two people: one moves masses, one reads the instrument). Embedded on TestRun.operators; every evidence entry's sign-off attributes to one of these accounts. Provenance is per-entry and per-run — never just 'the lab'." }
67
+ helper { true }
68
+ account_id: string {
69
+ modality SHALL
70
+ definition "The operator's account id (the auth account's id; provenance key)"
71
+ }
72
+ name: string {
73
+ modality SHALL
74
+ definition "Display name"
75
+ }
76
+ role_note: string [0..1] {
77
+ modality MAY
78
+ definition "What this operator did on the run (lead, load handling, readings, …)"
79
+ }
80
+ signed_off_at: datetime [0..1] {
81
+ modality MAY
82
+ definition "When this operator signed off their part of the run's evidence"
83
+ }
84
+ }
85
+
86
+ class ConstraintCheckResult#data {
87
+ description { "Execution of one instrument-description.Constraint (R 144 profile DL.5, e.g. constr:r144:fig3-2b) against the run's bound values (metamodel D2 ConstraintCheck, embedded on TestRun.constraint_checks). A violated test-setup constraint invalidates the run AS A TEST, regardless of results." }
88
+ helper { true }
89
+ constraint: string {
90
+ modality SHALL
91
+ definition "Constraint id from the Recommendation profile (e.g. 'constr:r144:fig3-2b')"
92
+ }
93
+ evaluated_values: object {
94
+ modality SHALL
95
+ definition "Input name -> numeric value the OCL invariant was evaluated with"
96
+ }
97
+ result: enum {
98
+ modality SHALL
99
+ enum_values { satisfied violated }
100
+ }
101
+ effect_on_admissibility: string {
102
+ modality SHALL
103
+ definition "'invalidates_run' when a violated test-setup constraint voids the run; 'none' otherwise"
104
+ }
105
+ }
106
+
107
+ class RunAdmissibility#data {
108
+ description { "The admissibility gate of a run (metamodel D2 TestRunResult.admissibility map). Computed by the test-run service from evidence coverage, evidence units, and constraint-check outcomes." }
109
+ helper { true }
110
+ all_required_slots_filled: boolean {
111
+ modality SHALL
112
+ }
113
+ units_valid: boolean {
114
+ modality SHALL
115
+ }
116
+ conditions_within_envelope: boolean {
117
+ modality SHALL
118
+ }
119
+ status: enum {
120
+ modality SHALL
121
+ enum_values { admissible inadmissible }
122
+ }
123
+ }
124
+
125
+ class TestRun#data {
126
+ store { testRuns }
127
+ description { "One execution of one conformance test on one MeasuringInstrumentSample (metamodel D2 TestRun). Created per TestAssignment by the test-run service (one run per assignment, idempotent); bridged 1:1 to the FormInstance that acts as the run's evidence template. FACTS ONLY — verdicts belong to evaluation (Module D3)." }
128
+ indexes { test_assignment_id test_request_id sample_id laboratory_id standard_id status form_instance_id }
129
+ id: string {
130
+ modality SHALL
131
+ }
132
+ standard_id: string {
133
+ modality SHALL
134
+ }
135
+ conformance_test: string {
136
+ modality SHALL
137
+ definition "Conformance test id this run executes (form's conformance_test URN when declared, else the R 144-3 form id)"
138
+ }
139
+ test_assignment_id: reference(TestAssignment) {
140
+ modality SHALL
141
+ definition "The assignment (form × sample tuple) this run executes — one run per assignment"
142
+ on_delete cascade
143
+ required true
144
+ }
145
+ test_request_id: reference(TestRequest) [0..1] {
146
+ modality MAY
147
+ definition "Denormalized from the assignment for query efficiency"
148
+ on_delete nullify
149
+ required false
150
+ }
151
+ sample_id: reference(MeasuringInstrumentSample) {
152
+ modality SHALL
153
+ definition "The physical sample under test"
154
+ on_delete restrict
155
+ required true
156
+ }
157
+ laboratory_id: reference(TestLaboratory) {
158
+ modality SHALL
159
+ definition "Lab performing the run (denormalized from the assignment)"
160
+ on_delete restrict
161
+ required true
162
+ }
163
+ method_version: string [0..1] {
164
+ modality MAY
165
+ definition "Version pin of the test method/form schema (metamodel D2 methodVersion)"
166
+ }
167
+ operator: string [0..1] {
168
+ modality MAY
169
+ definition "Lab evaluator performing the run — the derived LEAD (operators[0].name) for compatibility; the full team lives in operators"
170
+ }
171
+ operators: reference(RunOperator) [0..*] {
172
+ modality MAY
173
+ definition "The lab operators who ran this run (multi-operator runs, TODO.deploying/05 — e.g. load handling needs two people); each entry signs off its own part of the evidence. operators[0] is the lead (the singular `operator` mirrors its name)"
174
+ on_delete cascade
175
+ }
176
+ started: datetime {
177
+ modality SHALL
178
+ }
179
+ ended: datetime [0..1] {
180
+ modality MAY
181
+ }
182
+ status: enum {
183
+ modality SHALL
184
+ definition "Lifecycle: PLANNED (created, no evidence yet) → IN_PROGRESS (evidence being recorded) → COMPLETED (admissible, form submitted) | INVALIDATED (a test-setup constraint was violated or the evidence is inadmissible — the run is void AS A TEST)."
185
+ enum_values { PLANNED IN_PROGRESS COMPLETED INVALIDATED }
186
+ }
187
+ equipment: reference(TestRunEquipment) [0..*] {
188
+ modality SHALL
189
+ definition "Equipment used, with calibration references (embedded)"
190
+ on_delete cascade
191
+ }
192
+ evidence: reference(EvidenceRecord) [0..*] {
193
+ modality SHALL
194
+ definition "Recorded data-input values with per-measurement sign-off (embedded)"
195
+ on_delete cascade
196
+ }
197
+ superseded_evidence: reference(EvidenceRecord) [0..*] {
198
+ modality MAY
199
+ definition "Evidence archive of a redone run (embedded): when an INVALIDATED run is redone (redoRun), its current evidence moves here verbatim — history is kept but no longer participates in admissibility."
200
+ on_delete cascade
201
+ }
202
+ redo_count: integer [0..1] {
203
+ modality MAY
204
+ definition "Number of times this run was redone from INVALIDATED (redoRun)"
205
+ }
206
+ constraint_checks: reference(ConstraintCheckResult) [0..*] {
207
+ modality SHALL
208
+ definition "Executed test-setup constraint checks (embedded; fig3-1/2a/2b, interval-consistency)"
209
+ on_delete cascade
210
+ }
211
+ form_instance_id: reference(FormInstance) [0..1] {
212
+ modality MAY
213
+ definition "1:1 link to the FormInstance that is the run's evidence template"
214
+ on_delete nullify
215
+ required false
216
+ }
217
+ admissibility: reference(RunAdmissibility) [0..1] {
218
+ modality MAY
219
+ definition "Computed admissibility gate (embedded helper); refreshed by computeAdmissibility"
220
+ }
221
+ created: datetime {
222
+ modality SHALL
223
+ }
224
+ modified: datetime {
225
+ modality SHALL
226
+ }
227
+ }
228
+