1 | require 'set'
|
---|
2 | module OpenEhr
|
---|
3 | module RM
|
---|
4 | module Common
|
---|
5 | module Resource
|
---|
6 | class AuthoredResource
|
---|
7 | attr_reader :original_language, :translations
|
---|
8 | attr_accessor :description, :revision_history
|
---|
9 |
|
---|
10 | def initialize(args = { })
|
---|
11 | self.original_language = args[:original_language]
|
---|
12 | self.translations = args[:translations]
|
---|
13 | self.revision_history = args[:revision_history]
|
---|
14 | self.description = args[:description]
|
---|
15 | end
|
---|
16 |
|
---|
17 | def original_language=(original_language)
|
---|
18 | if original_language.nil?
|
---|
19 | raise ArgumentError, 'original language is mandatory'
|
---|
20 | end
|
---|
21 | @original_language = original_language
|
---|
22 | end
|
---|
23 |
|
---|
24 | def translations=(translations)
|
---|
25 | if !translations.nil? && translations.empty?
|
---|
26 | raise ArgumentError, 'translation is empty'
|
---|
27 | end
|
---|
28 | @translations = translations
|
---|
29 | end
|
---|
30 |
|
---|
31 | def current_version
|
---|
32 | @revision_history.most_recent_revision
|
---|
33 | end
|
---|
34 |
|
---|
35 | def languages_available
|
---|
36 | return Set.new(@translations.keys)
|
---|
37 | end
|
---|
38 |
|
---|
39 | def is_controlled?
|
---|
40 | return !@revision_history.nil?
|
---|
41 | end
|
---|
42 | end
|
---|
43 |
|
---|
44 | class TranslationDetails
|
---|
45 | attr_reader :language, :author
|
---|
46 | attr_accessor :accreditation, :other_details
|
---|
47 |
|
---|
48 | def initialize(args = {})
|
---|
49 | self.language = args[:language]
|
---|
50 | self.author = args[:author]
|
---|
51 | self.accreditation = args[:accreditation]
|
---|
52 | self.other_details = args[:other_details]
|
---|
53 | end
|
---|
54 |
|
---|
55 | def language=(language)
|
---|
56 | raise ArgumentError, 'language is mandatory' if language.nil?
|
---|
57 | @language = language
|
---|
58 | end
|
---|
59 |
|
---|
60 | def author=(author)
|
---|
61 | raise ArgumentError, 'author is mandatory' if author.nil?
|
---|
62 | @author = author
|
---|
63 | end
|
---|
64 | end
|
---|
65 |
|
---|
66 | class ResourceDescription
|
---|
67 | attr_reader :original_author, :lifecycle_state, :details
|
---|
68 | attr_accessor :other_contributors, :resource_package_uri,
|
---|
69 | :other_details, :parent_resource
|
---|
70 |
|
---|
71 | def initialize(args = {})
|
---|
72 | self.original_author = args[:original_author]
|
---|
73 | self.lifecycle_state = args[:lifecycle_state]
|
---|
74 | self.details = args[:details]
|
---|
75 | self.other_contributors = args[:other_contributors]
|
---|
76 | self.resource_package_uri = args[:resource_package_uri]
|
---|
77 | self.other_details = args[:other_details]
|
---|
78 | self.parent_resource = args[:parent_resource]
|
---|
79 | end
|
---|
80 |
|
---|
81 | def original_author=(original_author)
|
---|
82 | if original_author.nil? || original_author.empty?
|
---|
83 | raise ArgumentError, 'original_author is mandatory'
|
---|
84 | end
|
---|
85 | @original_author = original_author
|
---|
86 | end
|
---|
87 |
|
---|
88 | def lifecycle_state=(lifecycle_state)
|
---|
89 | if lifecycle_state.nil? || lifecycle_state.empty?
|
---|
90 | raise ArgumentError, 'lifecycle_state is malformatted'
|
---|
91 | end
|
---|
92 | @lifecycle_state = lifecycle_state
|
---|
93 | end
|
---|
94 |
|
---|
95 | def details=(details)
|
---|
96 | if details.nil? || details.empty?
|
---|
97 | raise ArgumentError, 'nil or empty details'
|
---|
98 | end
|
---|
99 | @details = details
|
---|
100 | end
|
---|
101 | end
|
---|
102 |
|
---|
103 | class ResourceDescriptionItem
|
---|
104 | attr_reader :language, :purpose, :use, :misuse, :copyright
|
---|
105 | attr_accessor :keywords, :original_resource_uri, :other_details
|
---|
106 |
|
---|
107 | def initialize(args = { })
|
---|
108 | self.language = args[:language]
|
---|
109 | self.purpose = args[:purpose]
|
---|
110 | self.keywords = args[:keywords]
|
---|
111 | self.use = args[:use]
|
---|
112 | self.misuse = args[:misuse]
|
---|
113 | self.copyright = args[:copyright]
|
---|
114 | self.original_resource_uri = args[:original_resource_uri]
|
---|
115 | self.other_details = args[:other_details]
|
---|
116 | end
|
---|
117 |
|
---|
118 | def language=(language)
|
---|
119 | raise ArgumentError, 'language is mandatory' if language.nil?
|
---|
120 | @language = language
|
---|
121 | end
|
---|
122 |
|
---|
123 | def purpose=(purpose)
|
---|
124 | if purpose.nil? || purpose.empty?
|
---|
125 | raise ArgumentError, 'purpose is mandatory'
|
---|
126 | end
|
---|
127 | @purpose = purpose
|
---|
128 | end
|
---|
129 |
|
---|
130 | def use=(use)
|
---|
131 | if !use.nil? && use.empty?
|
---|
132 | raise ArgumentError, 'use is invalid'
|
---|
133 | end
|
---|
134 | @use = use
|
---|
135 | end
|
---|
136 |
|
---|
137 | def misuse=(misuse)
|
---|
138 | if !misuse.nil? && misuse.empty?
|
---|
139 | raise ArgumentError, 'misuse is invalid'
|
---|
140 | end
|
---|
141 | @misuse = misuse
|
---|
142 | end
|
---|
143 |
|
---|
144 | def copyright=(copyright)
|
---|
145 | if !copyright.nil? && copyright.empty?
|
---|
146 | raise ArgumentError, 'copyright is invalid'
|
---|
147 | end
|
---|
148 | @copyright = copyright
|
---|
149 | end
|
---|
150 | end
|
---|
151 | end # end of Resouce
|
---|
152 | end # end of module Common
|
---|
153 | end # end of module RM
|
---|
154 | end # end of module OpenEHR
|
---|