@memoarchitect/ontology 0.6.0 → 0.6.2

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 (50) hide show
  1. package/README.md +3 -3
  2. package/examples/extensions/clinical/memo.package.yaml +1 -1
  3. package/examples/extensions/clinical/src/methodology/clinical_methodology.sysml +1 -1
  4. package/examples/gpca-pump/memo.config.yaml +1 -1
  5. package/examples/gpca-pump/model/catalog/gpca_operational.sysml +6 -6
  6. package/examples/gpca-pump/model/views/document_usability_view.sysml +1 -1
  7. package/examples/gpca-pump/model/views/operational_scenario_sequence_view.sysml +1 -1
  8. package/examples/reusable-instrument/model/catalog/reusable_instrument.sysml +1 -1
  9. package/examples/surgical-closure-workflow/model/catalog/surgical_closure_workflow.sysml +2 -2
  10. package/memo.manifest.yaml +8 -3
  11. package/methodologies/default/memo.package.yaml +1 -1
  12. package/methodologies/gpca/memo.package.yaml +1 -1
  13. package/ontology/memo.package.yaml +1 -1
  14. package/package.json +3 -5
  15. package/profile/memo.package.yaml +3 -3
  16. package/src/architecture/operational/structure/memo_operational.sysml +5 -0
  17. package/templates/connected-device/memo.package.yaml +5 -0
  18. package/templates/connected-device/package.json +8 -0
  19. package/templates/connected-device/src/architecture/system.sysml +5 -0
  20. package/templates/connected-device/src/artifacts/artifacts.sysml +5 -0
  21. package/{profile/templates/connected-device/starter.sysml → templates/connected-device/src/assurance/requirements.sysml} +1 -2
  22. package/templates/connected-device/syside.toml +13 -0
  23. package/templates/default/memo.package.yaml +5 -0
  24. package/templates/default/package.json +8 -0
  25. package/templates/default/src/architecture/system.sysml +7 -0
  26. package/templates/default/src/artifacts/artifacts.sysml +5 -0
  27. package/{template/src/catalog/starter.sysml → templates/default/src/assurance/requirements.sysml} +1 -5
  28. package/templates/default/syside.toml +13 -0
  29. package/templates/infusion-pump/memo.package.yaml +5 -0
  30. package/templates/infusion-pump/package.json +8 -0
  31. package/templates/infusion-pump/src/architecture/system.sysml +5 -0
  32. package/templates/infusion-pump/src/artifacts/artifacts.sysml +5 -0
  33. package/{profile/templates/infusion-pump/starter.sysml → templates/infusion-pump/src/assurance/requirements.sysml} +1 -2
  34. package/templates/infusion-pump/syside.toml +13 -0
  35. package/templates/monitoring-device/memo.package.yaml +5 -0
  36. package/templates/monitoring-device/package.json +8 -0
  37. package/templates/monitoring-device/src/architecture/system.sysml +5 -0
  38. package/templates/monitoring-device/src/artifacts/artifacts.sysml +5 -0
  39. package/{profile/templates/monitoring-device/starter.sysml → templates/monitoring-device/src/assurance/requirements.sysml} +1 -2
  40. package/templates/monitoring-device/syside.toml +13 -0
  41. package/templates/samd/memo.package.yaml +5 -0
  42. package/templates/samd/package.json +8 -0
  43. package/templates/samd/src/architecture/system.sysml +5 -0
  44. package/templates/samd/src/artifacts/artifacts.sysml +5 -0
  45. package/{profile/templates/samd/starter.sysml → templates/samd/src/assurance/requirements.sysml} +1 -2
  46. package/templates/samd/syside.toml +13 -0
  47. package/profile/archetypes.yaml +0 -36
  48. package/template/memo.package.yaml +0 -5
  49. package/template/src/documents/.gitkeep +0 -1
  50. package/template/src/views/.gitkeep +0 -1
package/README.md CHANGED
@@ -18,7 +18,7 @@ pin an exact release; the package has no repository or runtime dependency on Mem
18
18
  Tools or Memo Architect.
19
19
 
20
20
  ```bash
21
- pnpm add @memoarchitect/ontology@0.6.0
21
+ pnpm add @memoarchitect/ontology@0.6.2
22
22
  ```
23
23
 
24
24
  For coordinated development, the private `memo-meta` workspace checks out
@@ -44,10 +44,10 @@ The manifest maps package identifiers to package subpaths.
44
44
  ```
45
45
  memo.manifest.yaml logical package, init, and example map
46
46
  ontology/ @memoarchitect/ontology descriptor
47
- profile/ @memoarchitect/medical-modeling-profile + archetypes/templates
47
+ profile/ @memoarchitect/medical-modeling-profile
48
48
  methodologies/default/ @memoarchitect/methodology-default descriptor
49
49
  methodologies/gpca/ @memoarchitect/methodology-gpca descriptor
50
- template/ complete starter project copied by memo init
50
+ templates/ complete starter projects selectable by memo init --template
51
51
  examples/gpca-pump/ reference model (not a scaffold template)
52
52
  src/ all reusable .sysml content (namespace = directory)
53
53
  memo_namespaces.sysml public memo import and nested namespace map
@@ -1,5 +1,5 @@
1
1
  name: "@memoarchitect/example-extension-clinical"
2
- version: "0.6.0"
2
+ version: "0.6.1"
3
3
  type: methodology
4
4
  extends: "@memoarchitect/methodology-default"
5
5
  sysmlDir: "./src"
@@ -5,7 +5,7 @@ package memo_extension_clinical_methodology {
5
5
  part clinicalExtensionMethod : MethodologyDefinition {
6
6
  attribute :>> id = "EXT-CLINICAL-001";
7
7
  attribute :>> name = "ClinicalProcedureExtension";
8
- attribute :>> version = "0.6.0";
8
+ attribute :>> version = "0.6.1";
9
9
  attribute :>> domain = "clinical procedures";
10
10
  attribute :>> description = "Adds optional clinical-procedure vocabulary to a MEMO project.";
11
11
  attribute :>> baseMethodName = "MedicalDeviceLightDefault";
@@ -6,4 +6,4 @@ projectType: device
6
6
  # Phase H: project pins the GPCA-specific methodology.
7
7
  # @memoarchitect/methodology-gpca extends @memoarchitect/methodology-default and subtracts
8
8
  # cybersecurity and SOUP for the non-networked prototype variant.
9
- methodology: "@memoarchitect/methodology-gpca@^0.6.0"
9
+ methodology: "@memoarchitect/methodology-gpca@^0.6.1"
@@ -234,7 +234,7 @@ package memo_examples_gpca_pump_model_catalog_gpca_operational {
234
234
  }
235
235
 
236
236
  // ── Operational scenarios ───────────────────────────────────
237
- part osNominalTherapy : OperationalScenario {
237
+ part osNominalTherapy : OperativeScenario {
238
238
  attribute :>> id = "OS-001";
239
239
  attribute :>> name = "NominalTherapySession";
240
240
  attribute :>> variantKind = ScenarioVariantKind::nominal;
@@ -247,7 +247,7 @@ package memo_examples_gpca_pump_model_catalog_gpca_operational {
247
247
  ref :>> parentUseCase = ucDeliverPcaTherapy;
248
248
  ref :>> activities = oaCompleteNominalTherapy;
249
249
  }
250
- part osLockoutBolus : OperationalScenario {
250
+ part osLockoutBolus : OperativeScenario {
251
251
  attribute :>> id = "OS-002";
252
252
  attribute :>> name = "BolusRequestDuringLockout";
253
253
  attribute :>> variantKind = ScenarioVariantKind::alternate;
@@ -260,7 +260,7 @@ package memo_examples_gpca_pump_model_catalog_gpca_operational {
260
260
  ref :>> parentUseCase = ucDeliverPcaTherapy;
261
261
  ref :>> activities = oaRejectBolusDuringLockout;
262
262
  }
263
- part osOcclusionAlarm : OperationalScenario {
263
+ part osOcclusionAlarm : OperativeScenario {
264
264
  attribute :>> id = "OS-003";
265
265
  attribute :>> name = "OcclusionDetectedDuringInfusion";
266
266
  attribute :>> variantKind = ScenarioVariantKind::exception;
@@ -273,7 +273,7 @@ package memo_examples_gpca_pump_model_catalog_gpca_operational {
273
273
  ref :>> parentUseCase = ucDeliverPcaTherapy;
274
274
  ref :>> activities = oaRespondToOcclusion;
275
275
  }
276
- part osAirInLine : OperationalScenario {
276
+ part osAirInLine : OperativeScenario {
277
277
  attribute :>> id = "OS-004";
278
278
  attribute :>> name = "AirInLineDetected";
279
279
  attribute :>> variantKind = ScenarioVariantKind::exception;
@@ -286,7 +286,7 @@ package memo_examples_gpca_pump_model_catalog_gpca_operational {
286
286
  ref :>> parentUseCase = ucDeliverPcaTherapy;
287
287
  ref :>> activities = oaRespondToAirInLine;
288
288
  }
289
- part osEmptyReservoir : OperationalScenario {
289
+ part osEmptyReservoir : OperativeScenario {
290
290
  attribute :>> id = "OS-005";
291
291
  attribute :>> name = "ReservoirEmptyDuringTherapy";
292
292
  attribute :>> variantKind = ScenarioVariantKind::exception;
@@ -299,7 +299,7 @@ package memo_examples_gpca_pump_model_catalog_gpca_operational {
299
299
  ref :>> parentUseCase = ucDeliverPcaTherapy;
300
300
  ref :>> activities = oaReplaceEmptyReservoir;
301
301
  }
302
- part osPowerLoss : OperationalScenario {
302
+ part osPowerLoss : OperativeScenario {
303
303
  attribute :>> id = "OS-006";
304
304
  attribute :>> name = "MainsPowerLossAndRecovery";
305
305
  attribute :>> variantKind = ScenarioVariantKind::recovery;
@@ -20,7 +20,7 @@ package memo_examples_gpca_pump_model_views_document_usability_view {
20
20
  part :>> selectionQuery {
21
21
  attribute :>> id = "QRY-DOC-002";
22
22
  attribute :>> name = "usabilityViewQuery";
23
- attribute :>> includeElementKinds = ("UseError", "UseContext", "Actor", "ValidationCase", "OperationalScenario", "IntendedUse", "ReasonablyForeseeableMisuse");
23
+ attribute :>> includeElementKinds = ("UseError", "UseContext", "Actor", "ValidationCase", "OperativeScenario", "IntendedUse", "ReasonablyForeseeableMisuse");
24
24
  attribute :>> includeRelationshipKinds = ("TestedByUsability", "RealizedByScenario", "InteractsWith", "IncludedIn");
25
25
  attribute :>> rationaleText = "Declares what this document-backed view renders; the web renderer is presentation-only.";
26
26
  }
@@ -31,7 +31,7 @@ package memo_examples_gpca_pump_model_views_operational_scenario_sequence_view {
31
31
  part :>> selectionQuery {
32
32
  attribute :>> id = "QRY-BHV-102";
33
33
  attribute :>> name = "GPCA_ScenarioSequenceQuery";
34
- attribute :>> includeElementKinds = ("FunctionalScenario", "OperationalScenario", "FunctionalFlow", "FunctionalFlowStep");
34
+ attribute :>> includeElementKinds = ("FunctionalScenario", "OperativeScenario", "FunctionalFlow", "FunctionalFlowStep");
35
35
  attribute :>> includeLayers = ("operational", "system");
36
36
  attribute :>> selectionExpression = "product == 'GPCA'";
37
37
  attribute :>> rationaleText = "Auto-populate scenario sequences from the system layer.";
@@ -53,7 +53,7 @@ package memo_examples_reusable_instrument {
53
53
  connection : StepPrecedes connect predecessor ::> wsInspect to successor ::> wsSterilize;
54
54
  connection : Supports { attribute :>> supportKind = SupportKind::useCase; connect supporter ::> wfReprocess to supported ::> ucSterilize; }
55
55
 
56
- part scNominalCycle : OperationalScenario {
56
+ part scNominalCycle : OperativeScenario {
57
57
  attribute :>> id = "RI-SC-001"; attribute :>> name = "NominalReprocessingCycle";
58
58
  attribute :>> variantKind = ScenarioVariantKind::nominal;
59
59
  attribute :>> operationalCondition = OperationalConditionKind::normal;
@@ -124,7 +124,7 @@ package memo_examples_surgical_closure_workflow {
124
124
  action recognizeBleeding; action controlBleeding; action reassessStapleLine; action escalateIfNeeded;
125
125
  first start then recognizeBleeding; first recognizeBleeding then controlBleeding; first controlBleeding then reassessStapleLine; first reassessStapleLine then escalateIfNeeded; first escalateIfNeeded then done;
126
126
  }
127
- part scNominalSleeveProcedure : OperationalScenario {
127
+ part scNominalSleeveProcedure : OperativeScenario {
128
128
  attribute :>> id = "LSG-SC-001"; attribute :>> name = "NominalSleeveGastrectomy";
129
129
  attribute :>> variantKind = ScenarioVariantKind::nominal;
130
130
  attribute :>> operationalCondition = OperationalConditionKind::normal;
@@ -133,7 +133,7 @@ package memo_examples_surgical_closure_workflow {
133
133
  ref :>> parentUseCase = ucPerformSleeveGastrectomy;
134
134
  ref :>> activities = oaCompleteSleeveProcedure;
135
135
  }
136
- part scStapleLineBleeding : OperationalScenario {
136
+ part scStapleLineBleeding : OperativeScenario {
137
137
  attribute :>> id = "LSG-SC-002"; attribute :>> name = "StapleLineBleedingRecovery";
138
138
  attribute :>> variantKind = ScenarioVariantKind::recovery;
139
139
  attribute :>> operationalCondition = OperationalConditionKind::degraded;
@@ -5,10 +5,15 @@ packages:
5
5
  "@memoarchitect/methodology-default": ./methodologies/default
6
6
  "@memoarchitect/methodology-gpca": ./methodologies/gpca
7
7
  init:
8
- defaultExtends: "@memoarchitect/medical-modeling-profile"
8
+ defaultExtends: "@memoarchitect/methodology-default"
9
9
  rootImport: "memo"
10
- template: ./template
11
- archetypes: ./profile/archetypes.yaml
10
+ defaultTemplate: default
11
+ templates:
12
+ default: ./templates/default
13
+ samd: ./templates/samd
14
+ connected-device: ./templates/connected-device
15
+ monitoring-device: ./templates/monitoring-device
16
+ infusion-pump: ./templates/infusion-pump
12
17
  examples:
13
18
  gpca: ./examples/gpca-pump
14
19
  standard-sysml-diagrams: ./examples/sysml-diagram-samples
@@ -1,5 +1,5 @@
1
1
  name: "@memoarchitect/methodology-default"
2
- version: "0.6.0"
2
+ version: "0.6.2"
3
3
  type: methodology
4
4
  extends: "@memoarchitect/ontology"
5
5
  sysmlDir: "../../src/methodology"
@@ -1,5 +1,5 @@
1
1
  name: "@memoarchitect/methodology-gpca"
2
- version: "0.6.0"
2
+ version: "0.6.2"
3
3
  type: methodology
4
4
  extends: "@memoarchitect/methodology-default"
5
5
  sysmlDir: "../../examples/gpca-pump/methodology"
@@ -1,5 +1,5 @@
1
1
  name: "@memoarchitect/ontology"
2
- version: "0.6.0"
2
+ version: "0.6.2"
3
3
  type: ontology
4
4
  description: "MEMO — the single canonical medical-device ontology: core semantics, the Arcadia-inspired architecture layers (context, requirements, behavior, structure, interfaces, risk, cybersecurity, assurance, …), compliance, viewpoints, views, and invariant rules. One namespace (memo::), one src/ tree."
5
5
  license: "MIT"
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@memoarchitect/ontology",
3
- "version": "0.6.0",
3
+ "version": "0.6.2",
4
4
  "packageManager": "pnpm@9.15.0",
5
5
  "description": "MEMO \u2014 Medical Engineering Modelling Ontology. Pure SysML v2 medical-device ontology with native constraints, portable to any conformant SysML v2 tool (SysIDE, SysON, sysand).",
6
6
  "scripts": {
@@ -39,7 +39,7 @@
39
39
  "./src/*": "./src/*",
40
40
  "./profile/*": "./profile/*",
41
41
  "./methodologies/*": "./methodologies/*",
42
- "./templates/*": "./template/*",
42
+ "./templates/*": "./templates/*",
43
43
  "./examples/*": "./examples/*"
44
44
  },
45
45
  "files": [
@@ -49,8 +49,6 @@
49
49
  "ontology/memo.package.yaml",
50
50
  "ontology/memo.rendering.yaml",
51
51
  "profile/memo.package.yaml",
52
- "profile/archetypes.yaml",
53
- "profile/templates/",
54
52
  "methodologies/default/memo.package.yaml",
55
53
  "methodologies/gpca/memo.package.yaml",
56
54
  "src/assurance/",
@@ -70,7 +68,7 @@
70
68
  "src/rules/",
71
69
  "src/viewpoints/",
72
70
  "src/memo_namespaces.sysml",
73
- "template/",
71
+ "templates/",
74
72
  "examples/"
75
73
  ]
76
74
  }
@@ -1,9 +1,9 @@
1
1
  name: "@memoarchitect/medical-modeling-profile"
2
- version: "0.6.0"
2
+ version: "0.6.2"
3
3
  type: profile
4
4
  extends:
5
5
  - "@memoarchitect/ontology"
6
- description: "Closure rules, viewpoints, and starter templates for medical device modeling"
6
+ description: "Closure rules and viewpoints for medical device modeling"
7
7
  license: "MIT"
8
8
  tags: ["medical-device", "iso-14971", "iec-62304", "iso-13485", "modeling-profile"]
9
- usage: ["rules", "viewpoints", "templates"]
9
+ usage: ["rules", "viewpoints"]
@@ -7,6 +7,11 @@ package memo_architecture_operational_structure {
7
7
  private import memo_architecture_operational_activities::*;
8
8
  // OperationalActivity now lives in memo_architecture_operational_activities (action def) and
9
9
  // Operational scenarios are defined in memo_architecture_operational_scenarios.
10
+ part def Mission specializes DocumentedElement {
11
+ attribute missionKind : String;
12
+ attribute successCriteria : String;
13
+ attribute operationalContext : String;
14
+ }
10
15
  part def OperationalEntity specializes ArchitectureElement {
11
16
  attribute entityKind : OperationalEntityKind;
12
17
  attribute operationalDomain : String;
@@ -0,0 +1,5 @@
1
+ name: "{{name}}"
2
+ version: "0.1.0"
3
+ type: device
4
+ extends: "@memoarchitect/methodology-default"
5
+ description: "MEMO connected device model"
@@ -0,0 +1,8 @@
1
+ {
2
+ "name": "{{npmName}}",
3
+ "version": "0.1.0",
4
+ "private": true,
5
+ "dependencies": {
6
+ "@memoarchitect/ontology": "{{ontologyVersion}}"
7
+ }
8
+ }
@@ -0,0 +1,5 @@
1
+ package connected_device_architecture {
2
+ private import memo::*;
3
+
4
+ part connectedDevice : PhysicalAssembly;
5
+ }
@@ -0,0 +1,5 @@
1
+ package connected_device_artifacts {
2
+ private import memo::*;
3
+
4
+ // Add project artifact usages here.
5
+ }
@@ -1,7 +1,6 @@
1
- package memo_connected_device_starter {
1
+ package connected_device_assurance {
2
2
  private import memo::*;
3
3
 
4
- part connectedDevice : PhysicalAssembly;
5
4
  requirement connectivityRequirement : Requirement {
6
5
  attribute redefines statement = "Define connectivity and cybersecurity boundaries";
7
6
  }
@@ -0,0 +1,13 @@
1
+ #:schema https://docs.sensmetry.com/schemas/latest/syside.schema.json
2
+
3
+ include = [
4
+ "src",
5
+ "node_modules/@memoarchitect/ontology/src",
6
+ ]
7
+
8
+ exclude = [
9
+ ".memo",
10
+ ".sysand",
11
+ "dist",
12
+ "output",
13
+ ]
@@ -0,0 +1,5 @@
1
+ name: "{{name}}"
2
+ version: "0.1.0"
3
+ type: device
4
+ extends: "@memoarchitect/methodology-default"
5
+ description: "MEMO architecture and assurance model"
@@ -0,0 +1,8 @@
1
+ {
2
+ "name": "{{npmName}}",
3
+ "version": "0.1.0",
4
+ "private": true,
5
+ "dependencies": {
6
+ "@memoarchitect/ontology": "{{ontologyVersion}}"
7
+ }
8
+ }
@@ -0,0 +1,7 @@
1
+ package project_architecture {
2
+ private import memo::*;
3
+
4
+ part system : MemoPart {
5
+ attribute redefines name = "{{name}}";
6
+ }
7
+ }
@@ -0,0 +1,5 @@
1
+ package project_artifacts {
2
+ private import memo::*;
3
+
4
+ // Add project artifact usages here.
5
+ }
@@ -1,10 +1,6 @@
1
- package memo_starter_catalog {
1
+ package project_assurance {
2
2
  private import memo::*;
3
3
 
4
- part starterSystem : MemoPart {
5
- attribute redefines name = "{{name}}";
6
- }
7
-
8
4
  requirement mainRequirement : Requirement {
9
5
  attribute redefines statement = "TODO: state the first system requirement.";
10
6
  doc /* TODO: define the first system requirement. */
@@ -0,0 +1,13 @@
1
+ #:schema https://docs.sensmetry.com/schemas/latest/syside.schema.json
2
+
3
+ include = [
4
+ "src",
5
+ "node_modules/@memoarchitect/ontology/src",
6
+ ]
7
+
8
+ exclude = [
9
+ ".memo",
10
+ ".sysand",
11
+ "dist",
12
+ "output",
13
+ ]
@@ -0,0 +1,5 @@
1
+ name: "{{name}}"
2
+ version: "0.1.0"
3
+ type: device
4
+ extends: "@memoarchitect/methodology-default"
5
+ description: "MEMO infusion pump model"
@@ -0,0 +1,8 @@
1
+ {
2
+ "name": "{{npmName}}",
3
+ "version": "0.1.0",
4
+ "private": true,
5
+ "dependencies": {
6
+ "@memoarchitect/ontology": "{{ontologyVersion}}"
7
+ }
8
+ }
@@ -0,0 +1,5 @@
1
+ package infusion_pump_architecture {
2
+ private import memo::*;
3
+
4
+ part infusionPump : PhysicalAssembly;
5
+ }
@@ -0,0 +1,5 @@
1
+ package infusion_pump_artifacts {
2
+ private import memo::*;
3
+
4
+ // Add project artifact usages here.
5
+ }
@@ -1,7 +1,6 @@
1
- package memo_infusion_pump_starter {
1
+ package infusion_pump_assurance {
2
2
  private import memo::*;
3
3
 
4
- part infusionPump : PhysicalAssembly;
5
4
  requirement deliveryRequirement : Requirement {
6
5
  attribute redefines statement = "Define safe therapy delivery behavior";
7
6
  }
@@ -0,0 +1,13 @@
1
+ #:schema https://docs.sensmetry.com/schemas/latest/syside.schema.json
2
+
3
+ include = [
4
+ "src",
5
+ "node_modules/@memoarchitect/ontology/src",
6
+ ]
7
+
8
+ exclude = [
9
+ ".memo",
10
+ ".sysand",
11
+ "dist",
12
+ "output",
13
+ ]
@@ -0,0 +1,5 @@
1
+ name: "{{name}}"
2
+ version: "0.1.0"
3
+ type: device
4
+ extends: "@memoarchitect/methodology-default"
5
+ description: "MEMO monitoring device model"
@@ -0,0 +1,8 @@
1
+ {
2
+ "name": "{{npmName}}",
3
+ "version": "0.1.0",
4
+ "private": true,
5
+ "dependencies": {
6
+ "@memoarchitect/ontology": "{{ontologyVersion}}"
7
+ }
8
+ }
@@ -0,0 +1,5 @@
1
+ package monitoring_device_architecture {
2
+ private import memo::*;
3
+
4
+ part monitoringDevice : PhysicalAssembly;
5
+ }
@@ -0,0 +1,5 @@
1
+ package monitoring_device_artifacts {
2
+ private import memo::*;
3
+
4
+ // Add project artifact usages here.
5
+ }
@@ -1,7 +1,6 @@
1
- package memo_monitoring_device_starter {
1
+ package monitoring_device_assurance {
2
2
  private import memo::*;
3
3
 
4
- part monitoringDevice : PhysicalAssembly;
5
4
  requirement monitoringRequirement : Requirement {
6
5
  attribute redefines statement = "Define the monitored physiological parameter";
7
6
  }
@@ -0,0 +1,13 @@
1
+ #:schema https://docs.sensmetry.com/schemas/latest/syside.schema.json
2
+
3
+ include = [
4
+ "src",
5
+ "node_modules/@memoarchitect/ontology/src",
6
+ ]
7
+
8
+ exclude = [
9
+ ".memo",
10
+ ".sysand",
11
+ "dist",
12
+ "output",
13
+ ]
@@ -0,0 +1,5 @@
1
+ name: "{{name}}"
2
+ version: "0.1.0"
3
+ type: device
4
+ extends: "@memoarchitect/methodology-default"
5
+ description: "MEMO software as a medical device model"
@@ -0,0 +1,8 @@
1
+ {
2
+ "name": "{{npmName}}",
3
+ "version": "0.1.0",
4
+ "private": true,
5
+ "dependencies": {
6
+ "@memoarchitect/ontology": "{{ontologyVersion}}"
7
+ }
8
+ }
@@ -0,0 +1,5 @@
1
+ package samd_architecture {
2
+ private import memo::*;
3
+
4
+ part samdDevice : SoftwareSystem;
5
+ }
@@ -0,0 +1,5 @@
1
+ package samd_artifacts {
2
+ private import memo::*;
3
+
4
+ // Add project artifact usages here.
5
+ }
@@ -1,7 +1,6 @@
1
- package memo_samd_starter {
1
+ package samd_assurance {
2
2
  private import memo::*;
3
3
 
4
- part samdDevice : SoftwareSystem;
5
4
  requirement clinicalPurpose : Requirement {
6
5
  attribute redefines statement = "Define the clinical purpose and intended user";
7
6
  }
@@ -0,0 +1,13 @@
1
+ #:schema https://docs.sensmetry.com/schemas/latest/syside.schema.json
2
+
3
+ include = [
4
+ "src",
5
+ "node_modules/@memoarchitect/ontology/src",
6
+ ]
7
+
8
+ exclude = [
9
+ ".memo",
10
+ ".sysand",
11
+ "dist",
12
+ "output",
13
+ ]
@@ -1,36 +0,0 @@
1
- archetypes:
2
- - id: samd
3
- label: Software as Medical Device (SaMD)
4
- description: Clinical decision support, diagnostic algorithm, AI/ML tool, mobile medical app
5
- category: device-class
6
- templateDir: samd
7
- includedLayers: [context, requirements, functions, logical_structure, software_structure, risk, assurance, cybersecurity]
8
- includedStandards: [ISO 14971, IEC 62304, IEC 82304-1, FDA Cybersecurity Guidance]
9
- - id: connected
10
- label: Connected / IoT Device
11
- description: Remote monitoring, wearable, smart device with cloud connectivity and cybersecurity requirements
12
- category: device-class
13
- templateDir: connected-device
14
- includedLayers: [context, requirements, functions, logical_structure, logical_interfaces, software_structure, hardware_structure, risk, assurance, cybersecurity]
15
- includedStandards: [ISO 14971, IEC 62304, 21 CFR 820, FDA Cybersecurity Guidance]
16
- - id: monitoring
17
- label: Monitoring / Diagnostic Device
18
- description: Patient monitor, ECG, SpO2, vital signs, bedside diagnostic equipment
19
- category: device-class
20
- templateDir: monitoring-device
21
- includedLayers: [context, requirements, functions, logical_structure, logical_interfaces, physical_interfaces, software_structure, hardware_structure, risk, assurance]
22
- includedStandards: [ISO 14971, IEC 62304, IEC 60601-1, 21 CFR 820]
23
- - id: infusion_pump
24
- label: Infusion / Drug Delivery Device
25
- description: Infusion pump, syringe driver, implantable drug delivery, dosing device
26
- category: device-class
27
- templateDir: infusion-pump
28
- includedLayers: [context, requirements, functions, logical_structure, logical_interfaces, physical_interfaces, software_structure, hardware_structure, behavior, risk, arch_risk, assurance, cybersecurity]
29
- includedStandards: [ISO 14971, IEC 62304, IEC 60601-1, 21 CFR 820, ISO 13485]
30
- - id: blank
31
- label: Blank Project
32
- description: Start from scratch with a minimal SysML shell
33
- category: device-class
34
- templateDir: ""
35
- includedLayers: []
36
- includedStandards: []
@@ -1,5 +0,0 @@
1
- name: "{{name}}"
2
- version: "0.1.0"
3
- type: device
4
- extends: "@memoarchitect/medical-modeling-profile"
5
- description: "MEMO medical device model project"
@@ -1 +0,0 @@
1
-
@@ -1 +0,0 @@
1
-