[4] | 1 |
|
---|
| 2 | module OpenEHR
|
---|
| 3 | module AM
|
---|
| 4 | module Archetype
|
---|
| 5 | module Constraint_Model
|
---|
[21] | 6 | class ARCHETYPE_CONSTRAINT
|
---|
[4] | 7 |
|
---|
| 8 | end
|
---|
[21] | 9 |
|
---|
[23] | 10 | class CARDINALITY
|
---|
[35] | 11 | attr_accessor :interval, :is_ordered, :is_unique
|
---|
| 12 |
|
---|
| 13 | def initialize(args = { })
|
---|
| 14 | @interval = args[:interval]
|
---|
| 15 | @is_ordered = args[:is_ordered]
|
---|
| 16 | @is_unique = args[:is_unique]
|
---|
| 17 | end
|
---|
[21] | 18 | end
|
---|
| 19 |
|
---|
[23] | 20 | class C_OBJECT < ARCHETYPE_CONSTRAINT
|
---|
| 21 | attr_accessor :node_id, :occurrences, :rm_type_name
|
---|
| 22 |
|
---|
| 23 | def initialize(args = { })
|
---|
| 24 | @node_id = args[:node_id] if args[:node_id]
|
---|
| 25 | @occurrences = args[:occurrences] if args[:occurrences]
|
---|
| 26 | @rm_type_name = args[:rm_type_name] if args[:rm_type_name]
|
---|
| 27 | end
|
---|
[32] | 28 |
|
---|
| 29 | def self.create(args = { }, &block)
|
---|
| 30 | c_object = new(args)
|
---|
| 31 | if block_given?
|
---|
| 32 | yield c_object
|
---|
| 33 | end
|
---|
| 34 | return c_object
|
---|
| 35 | end
|
---|
[23] | 36 | end
|
---|
| 37 |
|
---|
[21] | 38 | class C_ATTRIBUTE < ARCHETYPE_CONSTRAINT
|
---|
[23] | 39 | attr_accessor :rm_attribute_name, :existence, :children
|
---|
| 40 |
|
---|
| 41 | def initialize(args = { })
|
---|
| 42 | @rm_attribute_name = args[:rm_attribute_name] if args[:rm_attribute_name]
|
---|
| 43 | @existence = args[:existence] if args[:existence]
|
---|
| 44 | @children = args[:children] ? args[:children] : []
|
---|
| 45 |
|
---|
| 46 | end
|
---|
[21] | 47 | end
|
---|
| 48 |
|
---|
| 49 | class C_DEFINED_OBJECT < C_OBJECT
|
---|
[23] | 50 | attr_accessor :assumed_value
|
---|
[21] | 51 |
|
---|
[23] | 52 | def initialize(args = { })
|
---|
| 53 | @assumed_value = args[:assumed_value] if args[:assumed_value]
|
---|
| 54 | super
|
---|
| 55 | end
|
---|
[21] | 56 | end
|
---|
| 57 |
|
---|
| 58 | class C_PRIMITIVE_OBJECT < C_DEFINED_OBJECT
|
---|
[23] | 59 | attr_accessor :item
|
---|
[32] | 60 |
|
---|
[23] | 61 | def initialize(args = { })
|
---|
| 62 | @attributes = args[:item] if args[:item]
|
---|
| 63 | super
|
---|
| 64 | end
|
---|
[21] | 65 | end
|
---|
| 66 |
|
---|
| 67 | class C_COMPLEX_OBJECT < C_DEFINED_OBJECT
|
---|
| 68 | attr_accessor :attributes, :attributes_valid
|
---|
[32] | 69 |
|
---|
[23] | 70 | def initialize(args = { })
|
---|
| 71 | @attributes = args[:attributes] ? args[:attributes] : []
|
---|
| 72 | super
|
---|
| 73 | end
|
---|
| 74 |
|
---|
| 75 | def self.create(args = { }, &block)
|
---|
| 76 | c_complex_object = new(args)
|
---|
| 77 | if block_given?
|
---|
| 78 | yield c_complex_object
|
---|
| 79 | end
|
---|
| 80 | return c_complex_object
|
---|
| 81 | end
|
---|
[21] | 82 | end
|
---|
| 83 |
|
---|
| 84 | class C_DOMAIN_TYPE < C_DEFINED_OBJECT
|
---|
| 85 |
|
---|
| 86 | end
|
---|
| 87 |
|
---|
| 88 | class C_REFERENCE_OBJECT < C_OBJECT
|
---|
| 89 | end
|
---|
| 90 |
|
---|
| 91 | class ARCHETYPE_INTERNAL_REF < C_REFERENCE_OBJECT
|
---|
[32] | 92 | attr_accessor :target_path
|
---|
[21] | 93 | end
|
---|
| 94 |
|
---|
| 95 | class ARCHETYPE_SLOT < C_REFERENCE_OBJECT
|
---|
[32] | 96 | attr_accessor :includes, :excludes
|
---|
| 97 |
|
---|
| 98 | def self.create(args = { }, &block)
|
---|
| 99 | archetype_slot = new(args)
|
---|
| 100 | archetype_slot.includes = args[:includes]
|
---|
| 101 | archetype_slot.excludes = args[:excludes]
|
---|
| 102 | if block_given?
|
---|
| 103 | yield archetype_slot
|
---|
| 104 | end
|
---|
| 105 | return archetype_slot
|
---|
| 106 | end
|
---|
[21] | 107 | end
|
---|
| 108 |
|
---|
| 109 | class CONSTRAINT_REF < C_REFERENCE_OBJECT
|
---|
[32] | 110 | attr_accessor :reference
|
---|
| 111 |
|
---|
| 112 | def self.create(args = { }, &block)
|
---|
| 113 | constraint_ref = new(args)
|
---|
| 114 | constraint_ref.reference = args[:reference]
|
---|
| 115 | if block_given?
|
---|
| 116 | yield constraint_ref
|
---|
| 117 | end
|
---|
| 118 | return constraint_ref
|
---|
| 119 | end
|
---|
[21] | 120 | end
|
---|
| 121 |
|
---|
[23] | 122 | class C_SINGLE_ATTRIBUTE < C_ATTRIBUTE
|
---|
| 123 | attr_accessor :alternatives
|
---|
| 124 |
|
---|
| 125 | def initialize(args = { })
|
---|
| 126 | @alternatives = args[:alternatives] ? args[:alternatives] : []
|
---|
| 127 | super
|
---|
| 128 | end
|
---|
| 129 | end
|
---|
| 130 |
|
---|
| 131 | class C_MULTIPLE_ATTRIBUTE < C_ATTRIBUTE
|
---|
| 132 | attr_accessor :members, :cardinality
|
---|
| 133 |
|
---|
| 134 | def initialize(args = { })
|
---|
| 135 | @members = args[:members] ? args[:members] : []
|
---|
| 136 | @cardinality = args[:cardinality] if args[:cardinality]
|
---|
| 137 | super
|
---|
| 138 | end
|
---|
| 139 | end
|
---|
[4] | 140 | end
|
---|
| 141 | end
|
---|
| 142 | end
|
---|
| 143 | end
|
---|
| 144 |
|
---|