dina 0.7.5.0 → 0.8.0.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.
- checksums.yaml +4 -4
- data/lib/dina/components/address.rb +22 -0
- data/lib/dina/models/agent/person.rb +5 -1
- data/lib/dina/models/base_model.rb +1 -0
- data/lib/dina/models/managed_attribute.rb +4 -4
- data/lib/dina/models/object_store/object_store_managed_attribute.rb +3 -3
- data/lib/dina/models/sequence/index_set.rb +6 -0
- data/lib/dina/models/sequence/molecular_sample.rb +22 -0
- data/lib/dina/models/sequence/pcr_batch.rb +2 -0
- data/lib/dina/models/sequence/pcr_primer.rb +47 -0
- data/lib/dina/models/sequence/product.rb +7 -0
- data/lib/dina/models/sequence/region.rb +8 -0
- data/lib/dina/models/sequence/thermocycler_profile.rb +9 -0
- data/lib/dina/version.rb +2 -2
- metadata +3 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 25a15f64f21867881cc89efca164d7753aff7916b1399bc3525f5375bb13c38f
|
4
|
+
data.tar.gz: 27e916b183b9413093544901367e3103553f9a91b4c9c5de476fe15d0bfc12e2
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a6e8b0c69ea6169539823a31d3ea10dab1b4a3f62f5358eaf2bf10d484472356610c317c1dbfb0a187957aca071daf68a142d207872fdaca71d8655fab8ed639
|
7
|
+
data.tar.gz: 15894af41ce11caa23c126e86fc31be365bae97cee056b8c7f90dee4585fde800ab05537c87a8749c2ffdd3625a693eb6533a4af4fd1c4c8371d9494693bc73c
|
@@ -0,0 +1,22 @@
|
|
1
|
+
module Dina
|
2
|
+
class Address
|
3
|
+
attr_accessor :receiverName
|
4
|
+
attr_accessor :companyName
|
5
|
+
attr_accessor :addressLine1
|
6
|
+
attr_accessor :addressLine2
|
7
|
+
attr_accessor :city
|
8
|
+
attr_accessor :provinceState
|
9
|
+
attr_accessor :zipCode
|
10
|
+
attr_accessor :country
|
11
|
+
|
12
|
+
def initialize
|
13
|
+
end
|
14
|
+
|
15
|
+
def to_hash
|
16
|
+
hash = {}
|
17
|
+
instance_variables.each { |var| hash[var.to_s.delete('@')] = instance_variable_get(var) }
|
18
|
+
hash.deep_symbolize_keys
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
@@ -35,6 +35,10 @@ module Dina
|
|
35
35
|
where("email": email).all
|
36
36
|
end
|
37
37
|
|
38
|
+
# Searches for a Person by name using the search module
|
39
|
+
#
|
40
|
+
# @param name [String] any portion of a person's name
|
41
|
+
# @return array [Array] an array of Person objects, ordered by relevance
|
38
42
|
def self.search_by_name(name)
|
39
43
|
payload = {
|
40
44
|
query: {
|
@@ -51,7 +55,7 @@ module Dina
|
|
51
55
|
}
|
52
56
|
}
|
53
57
|
}
|
54
|
-
hits =
|
58
|
+
hits = Search.execute(index: "agent", payload: payload)[:hits]
|
55
59
|
hits.map{|a| self.find(a[:_source][:data][:id]).first }
|
56
60
|
end
|
57
61
|
|
@@ -6,7 +6,7 @@ module Dina
|
|
6
6
|
property :group, type: :string
|
7
7
|
property :name, type: :string
|
8
8
|
property :key, type: :string
|
9
|
-
property :
|
9
|
+
property :vocabularyElementType, type: :string
|
10
10
|
property :managedAttributeComponent, type: :string
|
11
11
|
property :acceptedValues, type: :array
|
12
12
|
property :multilingualDescription, type: :multilingual_description
|
@@ -15,7 +15,7 @@ module Dina
|
|
15
15
|
|
16
16
|
validates_presence_of :group, message: "group is required"
|
17
17
|
validates_presence_of :name, message: "name is required"
|
18
|
-
validates_presence_of :
|
18
|
+
validates_presence_of :vocabularyElementType, message: "vocabularyElementType is required"
|
19
19
|
|
20
20
|
attr_accessor :accepted_components, :accepted_types
|
21
21
|
|
@@ -52,8 +52,8 @@ module Dina
|
|
52
52
|
if !self.managedAttributeComponent.nil? && !self.class.accepted_components.include?(self.managedAttributeComponent)
|
53
53
|
raise PropertyValueInvalid, "#{self.class} is invalid. Accepted value for managedAttributeComponent is one of #{self.class.accepted_components.join(", ")}"
|
54
54
|
end
|
55
|
-
if !self.
|
56
|
-
raise PropertyValueInvalid, "#{self.class} is invalid. Accepted value for
|
55
|
+
if !self.vocabularyElementType.nil? && !self.class.accepted_types.include?(self.vocabularyElementType)
|
56
|
+
raise PropertyValueInvalid, "#{self.class} is invalid. Accepted value for vocabularyElementType is one of #{self.class.accepted_types.join(", ")}"
|
57
57
|
end
|
58
58
|
super
|
59
59
|
end
|
@@ -5,7 +5,7 @@ module Dina
|
|
5
5
|
property :id, type: :string, default: SecureRandom.uuid
|
6
6
|
property :name, type: :string
|
7
7
|
property :key, type: :string
|
8
|
-
property :
|
8
|
+
property :vocabularyElementType, type: :string
|
9
9
|
property :acceptedValues, type: :array
|
10
10
|
property :multilingualDescription, type: :multilingual_description
|
11
11
|
property :createdBy, type: :string
|
@@ -22,8 +22,8 @@ module Dina
|
|
22
22
|
private
|
23
23
|
|
24
24
|
def on_before_save
|
25
|
-
if !self.
|
26
|
-
raise PropertyValueInvalid, "#{self.class} is invalid. Accepted value for
|
25
|
+
if !self.vocabularyElementType.nil? && !ManagedAttribute.accepted_types.include?(self.vocabularyElementType)
|
26
|
+
raise PropertyValueInvalid, "#{self.class} is invalid. Accepted value for vocabularyElementType is one of #{ManagedAttribute.accepted_types.join(", ")}"
|
27
27
|
end
|
28
28
|
super
|
29
29
|
end
|
@@ -4,8 +4,14 @@ module Dina
|
|
4
4
|
class IndexSet < BaseModel
|
5
5
|
property :id, type: :string, default: SecureRandom.uuid
|
6
6
|
property :group, type: :string
|
7
|
+
property :name, type: :string
|
8
|
+
property :forwardAdapter, type: :string
|
9
|
+
property :reverseAdapter, type: :string
|
10
|
+
property :createdBy, type: :string
|
11
|
+
property :createdOn, type: :time
|
7
12
|
|
8
13
|
validates_presence_of :group, message: "group is required"
|
14
|
+
validates_presence_of :name, message: "name is required"
|
9
15
|
|
10
16
|
def self.endpoint_path
|
11
17
|
"seqdb-api/"
|
@@ -4,8 +4,15 @@ module Dina
|
|
4
4
|
class MolecularSample < BaseModel
|
5
5
|
property :id, type: :string, default: SecureRandom.uuid
|
6
6
|
property :group, type: :string
|
7
|
+
property :name, type: :string
|
8
|
+
property :createdBy, type: :string
|
9
|
+
property :createdOn, type: :time
|
10
|
+
|
11
|
+
has_one :kit, class_name: "Product"
|
12
|
+
has_one :materialSample, class_name: "MaterialSample"
|
7
13
|
|
8
14
|
validates_presence_of :group, message: "group is required"
|
15
|
+
validates_presence_of :name, message: "name is required"
|
9
16
|
|
10
17
|
def self.endpoint_path
|
11
18
|
"seqdb-api/"
|
@@ -15,5 +22,20 @@ module Dina
|
|
15
22
|
"molecular-sample"
|
16
23
|
end
|
17
24
|
|
25
|
+
def self.sample_type
|
26
|
+
[
|
27
|
+
"DNA"
|
28
|
+
]
|
29
|
+
end
|
30
|
+
|
31
|
+
private
|
32
|
+
|
33
|
+
def on_before_save
|
34
|
+
if !self.sampleType.nil? && !self.class.sample_type.include?(self.type)
|
35
|
+
raise PropertyValueInvalid, "#{self.class} is invalid. Accepted value for sampleType is one of #{self.class.sample_type.join(", ")}"
|
36
|
+
end
|
37
|
+
super
|
38
|
+
end
|
39
|
+
|
18
40
|
end
|
19
41
|
end
|
@@ -4,8 +4,10 @@ module Dina
|
|
4
4
|
class PcrBatch < BaseModel
|
5
5
|
property :id, type: :string, default: SecureRandom.uuid
|
6
6
|
property :group, type: :string
|
7
|
+
property :name, type: :string
|
7
8
|
|
8
9
|
validates_presence_of :group, message: "group is required"
|
10
|
+
validates_presence_of :name, message: "name is required"
|
9
11
|
|
10
12
|
def self.endpoint_path
|
11
13
|
"seqdb-api/"
|
@@ -4,8 +4,36 @@ module Dina
|
|
4
4
|
class PcrPrimer < BaseModel
|
5
5
|
property :id, type: :string, default: SecureRandom.uuid
|
6
6
|
property :group, type: :string
|
7
|
+
property :type, type: :string
|
8
|
+
property :name, type: :string
|
9
|
+
property :version, type: :integer
|
10
|
+
property :seq, type: :string
|
11
|
+
property :position, type: :string
|
12
|
+
property :tmCalculated, type: :string
|
13
|
+
property :tmPe, type: :integer
|
14
|
+
property :application, type: :string
|
15
|
+
property :direction, type: :string
|
16
|
+
property :reference, type: :string
|
17
|
+
property :pooledPrimer, type: :string
|
18
|
+
property :lotNumber, type: :string
|
19
|
+
property :sequenceLength, type: :integer
|
20
|
+
property :targetSpecies, type: :string
|
21
|
+
property :supplier, type: :string
|
22
|
+
property :dateOrdered, type: :time
|
23
|
+
property :dateDestroyed, type: :time
|
24
|
+
property :purification, type: :string
|
25
|
+
property :designedBy, type: :string
|
26
|
+
property :stockConcentration, type: :string
|
27
|
+
property :lotNumber, type: :integer
|
28
|
+
property :region, type: :string
|
29
|
+
property :note, type: :string
|
30
|
+
property :createdBy, type: :string
|
31
|
+
property :createdOn, type: :time
|
7
32
|
|
8
33
|
validates_presence_of :group, message: "group is required"
|
34
|
+
validates_presence_of :name, message: "name is required"
|
35
|
+
validates_presence_of :type, message: "type is required"
|
36
|
+
validates_presence_of :lotNumber, message: "lotNumber is required"
|
9
37
|
|
10
38
|
def self.endpoint_path
|
11
39
|
"seqdb-api/"
|
@@ -15,5 +43,24 @@ module Dina
|
|
15
43
|
"pcr-primer"
|
16
44
|
end
|
17
45
|
|
46
|
+
def self.accepted_types
|
47
|
+
[
|
48
|
+
"PRIMER",
|
49
|
+
"MID",
|
50
|
+
"FUSION_PRIMER",
|
51
|
+
"ILLUMINA_INDEX",
|
52
|
+
"ITRU_PRIMER"
|
53
|
+
]
|
54
|
+
end
|
55
|
+
|
56
|
+
private
|
57
|
+
|
58
|
+
def on_before_save
|
59
|
+
if !self.type.nil? && !self.class.accepted_types.include?(self.type)
|
60
|
+
raise PropertyValueInvalid, "#{self.class} is invalid. Accepted value for type is one of #{self.class.accepted_types.join(", ")}"
|
61
|
+
end
|
62
|
+
super
|
63
|
+
end
|
64
|
+
|
18
65
|
end
|
19
66
|
end
|
@@ -4,8 +4,15 @@ module Dina
|
|
4
4
|
class Product < BaseModel
|
5
5
|
property :id, type: :string, default: SecureRandom.uuid
|
6
6
|
property :group, type: :string
|
7
|
+
property :name, type: :string
|
8
|
+
property :upc, type: :string
|
9
|
+
property :type, type: :string
|
10
|
+
property :description, type: :string
|
11
|
+
property :createdBy, type: :string
|
12
|
+
property :createdOn, type: :time
|
7
13
|
|
8
14
|
validates_presence_of :group, message: "group is required"
|
15
|
+
validates_presence_of :name, message: "name is required"
|
9
16
|
|
10
17
|
def self.endpoint_path
|
11
18
|
"seqdb-api/"
|
@@ -4,8 +4,16 @@ module Dina
|
|
4
4
|
class Region < BaseModel
|
5
5
|
property :id, type: :string, default: SecureRandom.uuid
|
6
6
|
property :group, type: :string
|
7
|
+
property :name, type: :string
|
8
|
+
property :symbol, type: :string
|
9
|
+
property :description, type: :string
|
10
|
+
property :aliases, type: :string
|
11
|
+
property :applicableOrganisms, type: :string
|
12
|
+
property :createdBy, type: :string
|
13
|
+
property :createdOn, type: :time
|
7
14
|
|
8
15
|
validates_presence_of :group, message: "group is required"
|
16
|
+
validates_presence_of :symbol, message: "symbol is required"
|
9
17
|
|
10
18
|
def self.endpoint_path
|
11
19
|
"seqdb-api/"
|
@@ -4,8 +4,17 @@ module Dina
|
|
4
4
|
class ThermocyclerProfile < BaseModel
|
5
5
|
property :id, type: :string, default: SecureRandom.uuid
|
6
6
|
property :group, type: :string
|
7
|
+
property :name, type: :string
|
8
|
+
property :application, type: :string
|
9
|
+
property :cycles, type: :string
|
10
|
+
property :steps, type: :array
|
11
|
+
property :createdBy, type: :string
|
12
|
+
property :createdOn, type: :time
|
13
|
+
|
14
|
+
has_one :region, class_name: "Region"
|
7
15
|
|
8
16
|
validates_presence_of :group, message: "group is required"
|
17
|
+
validates_presence_of :name, message: "name is required"
|
9
18
|
|
10
19
|
def self.endpoint_path
|
11
20
|
"seqdb-api/"
|
data/lib/dina/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dina
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.8.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- David P. Shorthouse
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-01-
|
11
|
+
date: 2023-01-16 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json_api_client
|
@@ -150,6 +150,7 @@ files:
|
|
150
150
|
- lib/dina/casters/multilingual_title.rb
|
151
151
|
- lib/dina/casters/multilingual_title_caster.rb
|
152
152
|
- lib/dina/casters/object_caster.rb
|
153
|
+
- lib/dina/components/address.rb
|
153
154
|
- lib/dina/components/agent_role.rb
|
154
155
|
- lib/dina/components/determination.rb
|
155
156
|
- lib/dina/components/georeference_assertion.rb
|