mml-ruby 0.0.2 → 0.0.3
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.
- data/LICENSE +199 -10
- data/lib/mml.rb +288 -5
- data/lib/mml/common.rb +26 -268
- data/lib/mml/version.rb +1 -1
- data/lib/xml/address.xml.builder +12 -0
- data/lib/xml/baseclinic.xml.builder +36 -0
- data/lib/xml/creatorinfo.xml.builder +6 -0
- data/lib/xml/creatorlicense.xml.builder +3 -0
- data/lib/xml/department.xml.builder +8 -0
- data/lib/xml/extref.xml.builder +5 -0
- data/lib/xml/facility.xml.builder +8 -0
- data/lib/xml/firstclinic.xml.builder +47 -0
- data/lib/xml/id.xml.builder +4 -0
- data/lib/xml/insurance.xml.builder +82 -0
- data/lib/xml/lifestyle.xml.builder +6 -0
- data/lib/xml/name.xml.builder +10 -0
- data/lib/xml/patientinfo.xml.builder +51 -0
- data/lib/xml/personalizedinfo.xml.builder +25 -0
- data/lib/xml/phone.xml.builder +10 -0
- data/lib/xml/progresscourse.xml.builder +89 -0
- data/lib/xml/registereddiagnosis.xml.builder +27 -0
- data/lib/xml/staffinfo.xml.builder +6 -0
- data/lib/xml/summary.xml.builder +125 -0
- data/lib/xml/surgery.xml.builder +81 -0
- data/spec/mml/admission_spec.rb +45 -0
- data/spec/mml/allergy_item_spec.rb +35 -0
- data/spec/mml/anesthesia_procedure_spec.rb +15 -0
- data/spec/mml/anesthesiologist_spec.rb +22 -0
- data/spec/mml/base_clinic_module_spec.rb +58 -0
- data/spec/mml/birth_info_spec.rb +90 -0
- data/spec/mml/blood_type_spec.rb +40 -0
- data/spec/mml/clinical_record_spec.rb +37 -0
- data/spec/mml/creator_info_spec.rb +3 -3
- data/spec/mml/creator_license_spec.rb +7 -0
- data/spec/mml/death_flag_spec.rb +11 -0
- data/spec/mml/death_info_spec.rb +19 -0
- data/spec/mml/department_spec.rb +3 -3
- data/spec/mml/diagnostic_category_spec.rb +23 -0
- data/spec/mml/discharge_spec.rb +29 -0
- data/spec/mml/dx_item_spec.rb +19 -0
- data/spec/mml/family_history_item_spec.rb +36 -0
- data/spec/mml/first_clinic_module_spec.rb +105 -0
- data/spec/mml/infection_item_spec.rb +39 -0
- data/spec/mml/inpatient_item_spec.rb +49 -0
- data/spec/mml/insurance_class_spec.rb +24 -0
- data/spec/mml/insurance_client_spec.rb +36 -0
- data/spec/mml/insurance_spec.rb +182 -0
- data/spec/mml/lifestyle_module_spec.rb +50 -0
- data/spec/mml/nationality_spec.rb +19 -0
- data/spec/mml/objective_spec.rb +51 -0
- data/spec/mml/operation_element_item_spec.rb +31 -0
- data/spec/mml/organization_info_spec.rb +35 -0
- data/spec/mml/other_blood_type_spec.rb +31 -0
- data/spec/mml/outpatient_item_spec.rb +48 -0
- data/spec/mml/past_history_item_spec.rb +23 -0
- data/spec/mml/past_history_spec.rb +17 -0
- data/spec/mml/patient_info_spec.rb +126 -0
- data/spec/mml/phone_spec.rb +5 -1
- data/spec/mml/physical_exam_item_spec.rb +40 -0
- data/spec/mml/plan_spec.rb +45 -0
- data/spec/mml/problem_item_spec.rb +35 -0
- data/spec/mml/procedure_item_spec.rb +44 -0
- data/spec/mml/progress_course_module_spec.rb +79 -0
- data/spec/mml/public_insurance_item_spec.rb +64 -0
- data/spec/mml/race_spec.rb +19 -0
- data/spec/mml/registered_diagnosis_spec.rb +124 -0
- data/spec/mml/related_doc_spec.rb +15 -0
- data/spec/mml/service_history_spec.rb +53 -0
- data/spec/mml/staff_info_spec.rb +31 -0
- data/spec/mml/subject_spec.rb +16 -0
- data/spec/mml/subjective_item_spec.rb +23 -0
- data/spec/mml/summary_module_spec.rb +239 -0
- data/spec/mml/surgery_item_spec.rb +132 -0
- data/spec/mml/surgery_module_spec.rb +90 -0
- data/spec/mml/surgical_staff_spec.rb +34 -0
- data/spec/mml/test_result_spec.rb +24 -0
- data/spec/mml/vaccination_item_spec.rb +38 -0
- data/spec/mml/value_with_link_spec.rb +15 -0
- data/spec/spec_helper.rb +1 -1
- metadata +137 -5
- checksums.yaml +0 -7
@@ -0,0 +1,81 @@
|
|
1
|
+
xml.mmlSg :SurgeryModule do
|
2
|
+
surgeryItem.each do |sitem|
|
3
|
+
xml.mmlSg :surgeryItem do
|
4
|
+
attribute = Hash.new
|
5
|
+
attribute = {'mmlSg:type' => sitem.type} if sitem.type
|
6
|
+
xml.mmlSg :surgicalInfo, attribute do
|
7
|
+
xml.mmlSg :date, sitem.date
|
8
|
+
xml.mmlSg :startTime, sitem.startTime if sitem.startTime
|
9
|
+
xml.mmlSg :duration, sitem.duration if sitem.duration
|
10
|
+
xml.mmlSg :surgicalDepartment do
|
11
|
+
xml << sitem.surgicalDepartment.to_xml
|
12
|
+
end if sitem.surgicalDepartment
|
13
|
+
xml.mmlSg :patientDepartment do
|
14
|
+
xml << sitem.patientDepartment.to_xml
|
15
|
+
end if sitem.patientDepartment
|
16
|
+
end
|
17
|
+
xml.mmlSg :surgicalDiagnosis do
|
18
|
+
sitem.surgicalDiagnosis.each do |ditem|
|
19
|
+
xml << ditem.to_xml
|
20
|
+
end
|
21
|
+
end
|
22
|
+
xml.mmlSg :surgicalProcedure do
|
23
|
+
sitem.surgicalProcedure.each do |pitem|
|
24
|
+
xml.mmlSg :procedureItem do
|
25
|
+
attributes = Hash.new
|
26
|
+
attributes = {'mmlSg:code' => pitem.code} if pitem.code
|
27
|
+
attributes['mmlSg:system'] = pitem.system if pitem.system
|
28
|
+
xml.mmlSg :operation, pitem.operation, attributes if pitem.operation
|
29
|
+
xml.mmlSg :operationElement do
|
30
|
+
pitem.operationElement.each do |oitem|
|
31
|
+
xml.mmlSg :operationElementItem do
|
32
|
+
attributes = Hash.new
|
33
|
+
attributes = {'mmlSg:code' => oitem.code}
|
34
|
+
attributes['mmlSg:system'] = oitem.system
|
35
|
+
xml.mmlSg :title, oitem.title, attributes
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end if pitem.operationElement
|
39
|
+
xml.mmlSg :procedureMemo, pitem.procedureMemo if pitem.procedureMemo
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
xml.mmlSg :surgicalStaffs do
|
44
|
+
sitem.surgicalStaffs.each do |staff|
|
45
|
+
attributes = Hash.new
|
46
|
+
attributes = {'mmlSg:staffClass' => staff.staffClass} if staff.staffClass
|
47
|
+
attributes['mmlSg:superiority'] = staff.superiority if staff.superiority
|
48
|
+
xml.mmlSg :staff, attributes do
|
49
|
+
xml << staff.staffInfo.to_xml
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end if sitem.surgicalStaffs
|
53
|
+
xml.mmlSg :anesthesiaProcedure do
|
54
|
+
sitem.anesthesiaProcedure.each do |aproc|
|
55
|
+
attributes = Hash.new
|
56
|
+
attributes['mmlSg:code'] = aproc.code if aproc.code
|
57
|
+
attributes['mmlSg:system'] = aproc.system if aproc.system
|
58
|
+
xml.mmlSg :title, aproc.title, attributes
|
59
|
+
end
|
60
|
+
end if sitem.anesthesiaProcedure
|
61
|
+
xml.mmlSg :anesthesiologists do
|
62
|
+
sitem.anesthesiologists.each do |staff|
|
63
|
+
attributes = Hash.new
|
64
|
+
attributes['mmlSg:staffClass'] = staff.staffClass if staff.staffClass
|
65
|
+
attributes['mmlSg:superiority'] = staff.superiority if staff.superiority
|
66
|
+
xml.mmlSg :staff, attributes do
|
67
|
+
xml << staff.staffInfo.to_xml
|
68
|
+
end
|
69
|
+
end
|
70
|
+
end if sitem.anesthesiologists
|
71
|
+
xml.mmlSg :anesthesiaDuration, sitem.anesthesiaDuration if sitem.anesthesiaDuration
|
72
|
+
xml.mmlSg :operativeNotes, sitem.operativeNotes if sitem.operativeNotes
|
73
|
+
xml.mmlSg :referenceInfo do
|
74
|
+
sitem.referenceInfo.each do |ref|
|
75
|
+
xml << ref.to_xml
|
76
|
+
end
|
77
|
+
end if sitem.referenceInfo
|
78
|
+
xml.mmlSg :memo, sitem.memo if sitem.memo
|
79
|
+
end
|
80
|
+
end
|
81
|
+
end
|
@@ -0,0 +1,45 @@
|
|
1
|
+
describe MML::Admission do
|
2
|
+
let(:referer_id) {MML::Id.new(type: 'facility', tableId: 'MML0024', value: '23234567')}
|
3
|
+
let(:referer_name) {MML::Name.new(repCode: 'A', tableId: 'MML0025', family: 'Ono', given: 'Yoko', degree: 'M.D.')}
|
4
|
+
let(:referer_facility_name) {MML::FacilityName.new(repCode: 'A', tableId: 'MML0025', value: 'New Millenium Medical College Hospital')}
|
5
|
+
let(:referer_facility_id) {MML::Id.new(type: 'insurance', tableId: 'MML0027', value: '801.006.3')}
|
6
|
+
let(:referer_facility) {MML::Facility.new(id: referer_facility_id, name: [referer_facility_name])}
|
7
|
+
let(:referer) {MML::PersonalizedInfo.new(id: referer_id, personName: [referer_name], facility: referer_facility)}
|
8
|
+
let(:admission) {MML::Admission.new(date: '2013-12-08', admissionCondition: 'Emergency admission by ambulance', emergency: true, referFrom: referer)}
|
9
|
+
|
10
|
+
it 'is an instance of MML::Admission' do
|
11
|
+
expect(admission).to be_an_instance_of MML::Admission
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'date should be assigned properly' do
|
15
|
+
expect(admission.date).to eq '2013-12-08'
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'date is mandatory' do
|
19
|
+
expect {admission.date = nil}.to raise_error ArgumentError
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'admissionCondition should be assigned properly' do
|
23
|
+
expect(admission.admissionCondition).to eq 'Emergency admission by ambulance'
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'admissionCondition is optional' do
|
27
|
+
expect {admission.admissionCondition = nil}.not_to raise_error
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'emergency should be assigned properly' do
|
31
|
+
expect(admission.emergency).to be_true
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'emergency is optional' do
|
35
|
+
expect {admission.emergency = nil}.not_to raise_error
|
36
|
+
end
|
37
|
+
|
38
|
+
it 'referer should be assigned properly' do
|
39
|
+
expect(admission.referFrom.facility.name[0].value).to eq 'New Millenium Medical College Hospital'
|
40
|
+
end
|
41
|
+
|
42
|
+
it 'referFrom is optional' do
|
43
|
+
expect {admission.referFrom = nil}.not_to raise_error
|
44
|
+
end
|
45
|
+
end
|
@@ -0,0 +1,35 @@
|
|
1
|
+
describe MML::AllergyItem do
|
2
|
+
let(:allergy_item) {MML::AllergyItem.new(factor: 'crab', severity: 'mild', identifiedDate: 'since almost 20 years ago', memo: 'no reaction to shrimp')}
|
3
|
+
|
4
|
+
it 'is an instance of MML::AllergyItem' do
|
5
|
+
expect(allergy_item).to be_an_instance_of MML::AllergyItem
|
6
|
+
end
|
7
|
+
|
8
|
+
it 'factor should be assigned properly' do
|
9
|
+
expect(allergy_item.factor).to eq 'crab'
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'factor is mandatory' do
|
13
|
+
expect {allergy_item.factor = nil}.to raise_error ArgumentError
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'severity should be assigned properly' do
|
17
|
+
expect(allergy_item.severity).to eq 'mild'
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'severity is optional' do
|
21
|
+
expect {allergy_item.severity = nil}.not_to raise_error
|
22
|
+
end
|
23
|
+
|
24
|
+
it 'identifiedDate should be assigned properly' do
|
25
|
+
expect(allergy_item.identifiedDate).to eq 'since almost 20 years ago'
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'identifiedDate is optional' do
|
29
|
+
expect{allergy_item.identifiedDate = nil}.not_to raise_error
|
30
|
+
end
|
31
|
+
|
32
|
+
it 'memo should be assigned properly' do
|
33
|
+
expect(allergy_item.memo).to eq 'no reaction to shrimp'
|
34
|
+
end
|
35
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
describe MML::AnesthesiaProcedure do
|
2
|
+
let(:anesthesia_procedure){MML::AnesthesiaProcedure.new(title: 'general anesthesia', code: 'L002', system: 'MHLW')}
|
3
|
+
|
4
|
+
it 'is an instance of MML::Anesthesia' do
|
5
|
+
expect(anesthesia_procedure).to be_an_instance_of MML::AnesthesiaProcedure
|
6
|
+
end
|
7
|
+
|
8
|
+
it 'title should be assigned properly' do
|
9
|
+
expect(anesthesia_procedure.title).to eq 'general anesthesia'
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'code should be assigned properly' do
|
13
|
+
expect {anesthesia_procedure.title = nil}.to raise_error ArgumentError
|
14
|
+
end
|
15
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
describe MML::Anesthesiologist do
|
2
|
+
let(:staff_id) {MML::Id.new(type: 'facility', tableId: 'MML0024', value: '00123')}
|
3
|
+
let(:staff_name) {MML::Name.new(repCode: 'A', fullname: 'Kenji ARAKI')}
|
4
|
+
let(:staff_info) {MML::PersonalizedInfo.new(id: staff_id, personName: [staff_name])}
|
5
|
+
let(:staff) {MML::Anesthesiologist.new(staffClass: 'main anesthesiologist', superiority: 1, staffInfo: staff_info)}
|
6
|
+
|
7
|
+
it 'is an instance of MML::Anesthesiologist' do
|
8
|
+
expect(staff).to be_an_instance_of MML::Anesthesiologist
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'staffClass should be assigned properly' do
|
12
|
+
expect(staff.staffClass).to eq 'main anesthesiologist'
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'superiolity should be assigned properly' do
|
16
|
+
expect(staff.superiority).to eq 1
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'staffInfo should be assigned properly' do
|
20
|
+
expect(staff.staffInfo.personName[0].fullname).to eq 'Kenji ARAKI'
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,58 @@
|
|
1
|
+
describe MML::BaseClinic do
|
2
|
+
let(:allergy_item) {MML::AllergyItem.new(factor: 'crab', severity: 'mild', identifiedDate: 'since almost 20 years ago', memo: 'no reaction to shrimp')}
|
3
|
+
let(:other_blood_type) {MML::OtherBloodType.new(typeName: 'MNS blood type', typeJudgement: 'MN', description: 'examination at 2 years ago')}
|
4
|
+
let(:bloodtype) {MML::BloodType.new(abo: 'a', rh: 'rhD+', others: [other_blood_type], memo: 'after BMT')}
|
5
|
+
let(:infection_item) {MML::InfectionItem.new(factor: 'Influenza', examValue: 'A+B-', identifiedDate: '2013-12-03', memo: 'drug resistance(-)')}
|
6
|
+
let(:base_clinic) {MML::BaseClinic.new(allergy: [allergy_item], bloodtype: bloodtype, infection: [infection_item])}
|
7
|
+
|
8
|
+
it 'is an instance of MML::BaseClinic' do
|
9
|
+
expect(base_clinic).to be_an_instance_of MML::BaseClinic
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'allergy item should be assigned properly' do
|
13
|
+
expect(base_clinic.allergy[0].factor).to eq 'crab'
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'blood type should be assigned properly' do
|
17
|
+
expect(base_clinic.bloodtype.abo).to eq 'a'
|
18
|
+
end
|
19
|
+
|
20
|
+
it 'infection should be assigned properly' do
|
21
|
+
expect(base_clinic.infection[0].factor).to eq 'Influenza'
|
22
|
+
end
|
23
|
+
|
24
|
+
describe '#to_xml' do
|
25
|
+
subject {base_clinic.to_xml}
|
26
|
+
|
27
|
+
it {should match '<mmlBc:BaseClinicModule>'}
|
28
|
+
it {should match '<mmlBc:allergy>'}
|
29
|
+
it {should match '<mmlBc:allergyItem>'}
|
30
|
+
it {should match '<mmlBc:factor>crab</mmlBc:factor>'}
|
31
|
+
it {should match '<mmlBc:severity>mild</mmlBc:severity>'}
|
32
|
+
it {should match '<mmlBc:identifiedDate>since almost 20 years ago</mmlBc:identifiedDate>'}
|
33
|
+
it {should match '<mmlBc:memo>no reaction to shrimp</mmlBc:memo>'}
|
34
|
+
it {should match '</mmlBc:allergyItem>'}
|
35
|
+
it {should match '</mmlBc:allergy>'}
|
36
|
+
it {should match '<mmlBc:bloodtype>'}
|
37
|
+
it {should match '<mmlBc:abo>a</mmlBc:abo>'}
|
38
|
+
it {should match '<mmlBc:rh>rhD\+</mmlBc:rh>'}
|
39
|
+
it {should match '<mmlBc:others>'}
|
40
|
+
it {should match '<mmlBc:other>'}
|
41
|
+
it {should match '<mmlBc:typeName>MNS blood type</mmlBc:typeName>'}
|
42
|
+
it {should match '<mmlBc:typeJudgement>MN</mmlBc:typeJudgement>'}
|
43
|
+
it {should match '<mmlBc:description>examination at 2 years ago</mmlBc:description>'}
|
44
|
+
it {should match '</mmlBc:other>'}
|
45
|
+
it {should match '</mmlBc:others>'}
|
46
|
+
it {should match '<mmlBc:memo>after BMT</mmlBc:memo>'}
|
47
|
+
it {should match '</mmlBc:bloodtype>'}
|
48
|
+
it {should match '<mmlBc:infection>'}
|
49
|
+
it {should match '<mmlBc:infectionItem>'}
|
50
|
+
it {should match '<mmlBc:factor>Influenza</mmlBc:factor>'}
|
51
|
+
it {should match '<mmlBc:examValue>A\+B-</mmlBc:examValue>'}
|
52
|
+
it {should match '<mmlBc:identifiedDate>2013-12-03</mmlBc:identifiedDate>'}
|
53
|
+
it {should match '<mmlBc:memo>drug resistance\(-\)</mmlBc:memo>'}
|
54
|
+
it {should match '</mmlBc:infectionItem>'}
|
55
|
+
it {should match '</mmlBc:infection>'}
|
56
|
+
it {should match '</mmlBc:BaseClinicModule>'}
|
57
|
+
end
|
58
|
+
end
|
@@ -0,0 +1,90 @@
|
|
1
|
+
describe MML::BirthInfo do
|
2
|
+
let(:id) { MML::Id.new(value: '12345', type: 'facility', tableId: 'MML0024', checkDigit: 5, checkDigitSchema: 'MML0001') }
|
3
|
+
let(:name) { MML::FacilityName.new(value: 'New Millenium Medical College Hospital', repCode: 'A', tableId: 'MML0025') }
|
4
|
+
let(:facility) { MML::Facility.new(name: [name], id: id) }
|
5
|
+
let(:birth_info) {MML::BirthInfo.new(facility: facility, deliveryWeeks: 'P38W', deliveryMethod: 'cesarean section', bodyWeight: 3370, bodyWeightUnit: 'g', bodyHeight: 50, bodyHeightUnit: 'cm', chestCircumference: 31.1, chestCircumferenceUnit: 'cm', headCircumference: 32.8, headCircumferenceUnit: 'cm', memo: 'intact')}
|
6
|
+
|
7
|
+
it 'is an instance of MML::BirthInfo' do
|
8
|
+
expect(birth_info).to be_an_instance_of MML::BirthInfo
|
9
|
+
end
|
10
|
+
|
11
|
+
it 'facility should be assigned properly' do
|
12
|
+
expect(birth_info.facility.id.value).to eq '12345'
|
13
|
+
end
|
14
|
+
|
15
|
+
it 'facility is optional' do
|
16
|
+
expect {birth_info.facility = nil}.not_to raise_error
|
17
|
+
end
|
18
|
+
|
19
|
+
it 'deliveryWeeks should be assigned properly' do
|
20
|
+
expect(birth_info.deliveryWeeks).to eq 'P38W'
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'deliveryWeeks is optional' do
|
24
|
+
expect {birth_info.deliveryWeeks = nil}.not_to raise_error
|
25
|
+
end
|
26
|
+
|
27
|
+
it 'deliveryMethod should be assigned properly' do
|
28
|
+
expect(birth_info.deliveryMethod).to eq 'cesarean section'
|
29
|
+
end
|
30
|
+
|
31
|
+
it 'deliveryMethod is optional' do
|
32
|
+
expect {birth_info.deliveryMethod = nil}.not_to raise_error
|
33
|
+
end
|
34
|
+
|
35
|
+
it 'bodyWeight should be assigned properly' do
|
36
|
+
expect(birth_info.bodyWeight).to eq 3370
|
37
|
+
end
|
38
|
+
|
39
|
+
it 'bodyWeight is optional' do
|
40
|
+
expect{birth_info.bodyWeight = nil}.not_to raise_error
|
41
|
+
end
|
42
|
+
|
43
|
+
it 'bodyWeight unit should be assigned properly' do
|
44
|
+
expect(birth_info.bodyWeightUnit).to eq 'g'
|
45
|
+
end
|
46
|
+
|
47
|
+
it 'bodyHeight should be assigned properly' do
|
48
|
+
expect(birth_info.bodyHeight).to eq 50
|
49
|
+
end
|
50
|
+
|
51
|
+
it 'bodyHeight is optional' do
|
52
|
+
expect {birth_info.bodyHeight = nil}.not_to raise_error
|
53
|
+
end
|
54
|
+
|
55
|
+
it 'bodyHeightUnit should be assigned properly' do
|
56
|
+
expect(birth_info.bodyHeightUnit).to eq 'cm'
|
57
|
+
end
|
58
|
+
|
59
|
+
it 'chestCircumference should be assigned properly' do
|
60
|
+
expect(birth_info.chestCircumference).to eq 31.1
|
61
|
+
end
|
62
|
+
|
63
|
+
it 'chestCircumference is optional' do
|
64
|
+
expect {birth_info.chestCircumference = nil}.not_to raise_error
|
65
|
+
end
|
66
|
+
|
67
|
+
it 'chestCircumferenceUnit should be assigned properly' do
|
68
|
+
expect(birth_info.chestCircumferenceUnit).to eq 'cm'
|
69
|
+
end
|
70
|
+
|
71
|
+
it 'headCircumference should be assigned properly' do
|
72
|
+
expect(birth_info.headCircumference).to eq 32.8
|
73
|
+
end
|
74
|
+
|
75
|
+
it 'headCircumference is optional' do
|
76
|
+
expect {birth_info.headCircumference = nil}.not_to raise_error
|
77
|
+
end
|
78
|
+
|
79
|
+
it 'headCircumferenceUnit should be assigned properly' do
|
80
|
+
expect(birth_info.headCircumferenceUnit).to eq 'cm'
|
81
|
+
end
|
82
|
+
|
83
|
+
it 'memo should be assigned properly' do
|
84
|
+
expect(birth_info.memo).to eq 'intact'
|
85
|
+
end
|
86
|
+
|
87
|
+
it 'memo is optional' do
|
88
|
+
expect {birth_info.memo = nil}.not_to raise_error
|
89
|
+
end
|
90
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
describe MML::BloodType do
|
2
|
+
let(:other_blood_type) {MML::OtherBloodType.new(typeName: 'MNS blood type', typeJudgement: 'MN')}
|
3
|
+
let(:blood_type) {MML::BloodType.new(abo: 'a', rh: 'rhD+', others: [other_blood_type], memo: 'after BMT')}
|
4
|
+
|
5
|
+
it 'is an instance of MML::BloodType' do
|
6
|
+
expect(blood_type).to be_an_instance_of MML::BloodType
|
7
|
+
end
|
8
|
+
|
9
|
+
it 'ABO type should be assigned properly' do
|
10
|
+
expect(blood_type.abo).to eq 'a'
|
11
|
+
end
|
12
|
+
|
13
|
+
it 'ABO type is mandatory' do
|
14
|
+
expect{blood_type.abo = nil}.to raise_error ArgumentError
|
15
|
+
end
|
16
|
+
|
17
|
+
it 'Rh type indicates D' do
|
18
|
+
expect(blood_type.rh).to eq 'rhD+'
|
19
|
+
end
|
20
|
+
|
21
|
+
it 'Rh type is optional' do
|
22
|
+
expect {blood_type.rh = nil}.not_to raise_error
|
23
|
+
end
|
24
|
+
|
25
|
+
it 'others should be assigned properly' do
|
26
|
+
expect(blood_type.others[0].typeJudgement).to eq 'MN'
|
27
|
+
end
|
28
|
+
|
29
|
+
it 'others is optional' do
|
30
|
+
expect {blood_type.others = nil}.not_to raise_error
|
31
|
+
end
|
32
|
+
|
33
|
+
it 'memo should be assigned properly' do
|
34
|
+
expect(blood_type.memo).to eq 'after BMT'
|
35
|
+
end
|
36
|
+
|
37
|
+
it 'memo is optional' do
|
38
|
+
expect{blood_type.memo = nil}.not_to raise_error
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
describe MML::ClinicalRecord do
|
2
|
+
let(:ext_ref) {MML::ExtRef.new(href: 'img://file/angio/')}
|
3
|
+
let(:related_doc) {MML::RelatedDoc.new(value: '11D1AC5400A0C94A814796045F768ED5', relation: 'detail')}
|
4
|
+
let(:clinical_record) {MML::ClinicalRecord.new(value: 'Emergency coronary angiography was carried out.', date: '2013-12-20', extRef: [ext_ref], relatedDoc: [related_doc])}
|
5
|
+
|
6
|
+
it 'is an instance of MML::ClinicalRecord' do
|
7
|
+
expect(clinical_record).to be_an_instance_of MML::ClinicalRecord
|
8
|
+
end
|
9
|
+
|
10
|
+
it 'value should be assigned properly' do
|
11
|
+
expect(clinical_record.value).to eq 'Emergency coronary angiography was carried out.'
|
12
|
+
end
|
13
|
+
|
14
|
+
it 'value is mandatory' do
|
15
|
+
expect {clinical_record.value = nil}.to raise_error ArgumentError
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'date should be assigned properly' do
|
19
|
+
expect(clinical_record.date).to eq '2013-12-20'
|
20
|
+
end
|
21
|
+
|
22
|
+
it 'date is optional' do
|
23
|
+
expect {clinical_record.date = nil}.not_to raise_error
|
24
|
+
end
|
25
|
+
|
26
|
+
it 'extRef should be assigned properly' do
|
27
|
+
expect(clinical_record.extRef[0].href).to eq 'img://file/angio/'
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'relatedDoc should be assigned properly' do
|
31
|
+
expect(clinical_record.relatedDoc[0].relation).to eq 'detail'
|
32
|
+
end
|
33
|
+
|
34
|
+
it 'relatedDoc is optional' do
|
35
|
+
expect {clinical_record.relatedDoc = nil}.not_to raise_error
|
36
|
+
end
|
37
|
+
end
|
@@ -29,9 +29,9 @@ describe MML::CreatorInfo do
|
|
29
29
|
expect {creator_info.creatorLicense = nil}.to raise_error ArgumentError
|
30
30
|
end
|
31
31
|
|
32
|
-
it 'should not be empty' do
|
33
|
-
|
34
|
-
end
|
32
|
+
# it 'should not be empty' do
|
33
|
+
# expect {creator_info.creatorLicense = []}.to raise_error ArgumentError
|
34
|
+
# end
|
35
35
|
end
|
36
36
|
|
37
37
|
describe '#to_xml' do
|