his_emr_api_radiology 0.0.2 → 0.0.7
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/MIT-LICENSE +0 -0
- data/README.md +0 -0
- data/Rakefile +0 -0
- data/app/controllers/radiology/application_controller.rb +0 -0
- data/app/controllers/radiology/radiology_controller.rb +12 -1
- data/app/helpers/radiology/application_helper.rb +0 -0
- data/app/jobs/radiology/application_job.rb +0 -0
- data/app/mailers/radiology/application_mailer.rb +0 -0
- data/app/models/radiology/application_record.rb +0 -0
- data/app/services/radiology/radiology_service.rb +34 -2
- data/config/routes.rb +3 -4
- data/lib/his_emr_api_radiology.rb +0 -0
- data/lib/radiology/engine.rb +0 -0
- data/lib/radiology/version.rb +1 -1
- data/lib/tasks/radiology_tasks.rake +0 -0
- metadata +3 -25
- data/app/controllers/radiology/labels_controller.rb +0 -15
- data/app/controllers/radiology/radiology_properties_controller.rb +0 -20
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: b46ef467aa94dd97facd3b730fee3c7b4529f66d99e2feb3d60f0a07e2a6688e
|
4
|
+
data.tar.gz: '08f811c68013cdc6510ebe239f4bdb957d5aa2a3067fdb89c5c2f63e641137e7'
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2a09feb5e35ac53d77b5b83ef54cb507d8198276d9bb42dcb36ed95d4c075c58f1300b02f73dddc88e0f26d42bc0008748f18a3b0cd0435db4035b2ad1a09d40
|
7
|
+
data.tar.gz: eb2a73512bfafd03e9c8bf04cb327c435d28b34a66abdbfa7e58b35f356f6bf58eb1c592ae7cb387ec81fc6824e8c071550e4e4abc0cb27618634889da57bc8e
|
data/MIT-LICENSE
CHANGED
File without changes
|
data/README.md
CHANGED
File without changes
|
data/Rakefile
CHANGED
File without changes
|
File without changes
|
@@ -1,11 +1,22 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
|
+
require 'zebra_printer/init'
|
2
3
|
class Radiology::RadiologyController < ::ApplicationController
|
4
|
+
before_action :authenticate, except: %i[print_order_label ]
|
3
5
|
def create
|
4
6
|
patient_details, physician_details, radiology_orders = params.require %i[patient_details physician_details radiology_orders]
|
5
7
|
radiology_orders = service.generate_msi(patient_details,physician_details, radiology_orders)
|
6
8
|
render json: radiology_orders, status: :created
|
7
9
|
end
|
8
|
-
|
10
|
+
def show
|
11
|
+
render json: service.get_radiology_orders(params[:id])
|
12
|
+
end
|
13
|
+
def print_order_label
|
14
|
+
label = service.print_radiology_barcode(params[:accession_number],params[:patient_national_id], params[:patient_name], params[:radio_order], params[:date_created])
|
15
|
+
send_data(label, type: 'application/label; charset=utf-8',
|
16
|
+
stream: false,
|
17
|
+
filename: "#{SecureRandom.hex(24)}.lbl",
|
18
|
+
disposition: 'inline')
|
19
|
+
end
|
9
20
|
def service
|
10
21
|
Radiology::RadiologyService
|
11
22
|
end
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -15,7 +15,7 @@ module Radiology
|
|
15
15
|
end
|
16
16
|
|
17
17
|
|
18
|
-
sample_file_path = "/
|
18
|
+
sample_file_path = "#{Rails.root}/config/sample.msi"
|
19
19
|
save_file_path = "/tmp/#{patient_details[:accession_number] }_#{patient_details[:patient_name].gsub(' ', '_')}_scheduled_radiology.msi"
|
20
20
|
|
21
21
|
# using eval() might decrease performance, not sure if there's a better way to do this.
|
@@ -29,7 +29,7 @@ module Radiology
|
|
29
29
|
|
30
30
|
# send created msi file to ftp server
|
31
31
|
def send_scheduled_msi(file_path)
|
32
|
-
main_config = YAML.load_file(
|
32
|
+
main_config = YAML.load_file("#{Rails.root}/config/application.yml")
|
33
33
|
# connect with FTP server
|
34
34
|
# NOTE: main_config[:ftp_host], main_config[:ftp_user_name], main_config[:ftp_pw] is in application.yml file.
|
35
35
|
Net::FTP.open(main_config['ftp_host']) do |ftp|
|
@@ -53,6 +53,38 @@ module Radiology
|
|
53
53
|
|
54
54
|
label.print(1)
|
55
55
|
end
|
56
|
+
|
57
|
+
def get_radiology_orders(group_concept_id)
|
58
|
+
stats = []
|
59
|
+
i = 0
|
60
|
+
|
61
|
+
groupData = get_concept_names(group_concept_id)
|
62
|
+
(groupData || []).each do |groupRecord|
|
63
|
+
stats << {
|
64
|
+
concept_id: groupRecord['concept_id'],
|
65
|
+
group: groupRecord['name'],
|
66
|
+
complaints: [],
|
67
|
+
}
|
68
|
+
|
69
|
+
data = get_concept_names(groupRecord['concept_id'])
|
70
|
+
(data || []).each do |record|
|
71
|
+
stats[i][:complaints] << {
|
72
|
+
concept_id: record['concept_id'],
|
73
|
+
name: record['name'],
|
74
|
+
}
|
75
|
+
end
|
76
|
+
|
77
|
+
i += 1
|
78
|
+
end
|
79
|
+
|
80
|
+
stats
|
81
|
+
end
|
82
|
+
|
83
|
+
def get_concept_names(concept_id)
|
84
|
+
ConceptName.where("s.concept_set = ?
|
85
|
+
", concept_id).joins("INNER JOIN concept_set s ON
|
86
|
+
s.concept_id = concept_name.concept_id").group("concept_name.concept_id").order(:name)
|
87
|
+
end
|
56
88
|
end
|
57
89
|
end
|
58
90
|
end
|
data/config/routes.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
Radiology::Engine.routes.draw do
|
2
|
-
resources :radiology, path: 'api/v1/radiology'
|
3
|
-
|
4
|
-
|
5
|
-
get '/api/v1/radiology/barcode', to: 'labels#print_order_label'
|
2
|
+
resources :radiology, path: 'api/v1/radiology/radiology_orders'
|
3
|
+
get '/api/v1/radiology/barcode', to: 'radiology#print_order_label'
|
4
|
+
get '/api/v1/list_radiology_orders', to: 'radiology#show'
|
6
5
|
|
7
6
|
end
|
File without changes
|
data/lib/radiology/engine.rb
CHANGED
File without changes
|
data/lib/radiology/version.rb
CHANGED
File without changes
|
metadata
CHANGED
@@ -1,35 +1,15 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: his_emr_api_radiology
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- petros
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2021-
|
11
|
+
date: 2021-08-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
-
- !ruby/object:Gem::Dependency
|
14
|
-
name: json
|
15
|
-
requirement: !ruby/object:Gem::Requirement
|
16
|
-
requirements:
|
17
|
-
- - "~>"
|
18
|
-
- !ruby/object:Gem::Version
|
19
|
-
version: '1.8'
|
20
|
-
- - ">="
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: 1.8.3
|
23
|
-
type: :runtime
|
24
|
-
prerelease: false
|
25
|
-
version_requirements: !ruby/object:Gem::Requirement
|
26
|
-
requirements:
|
27
|
-
- - "~>"
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
version: '1.8'
|
30
|
-
- - ">="
|
31
|
-
- !ruby/object:Gem::Version
|
32
|
-
version: 1.8.3
|
33
13
|
- !ruby/object:Gem::Dependency
|
34
14
|
name: rails
|
35
15
|
requirement: !ruby/object:Gem::Requirement
|
@@ -217,9 +197,7 @@ files:
|
|
217
197
|
- README.md
|
218
198
|
- Rakefile
|
219
199
|
- app/controllers/radiology/application_controller.rb
|
220
|
-
- app/controllers/radiology/labels_controller.rb
|
221
200
|
- app/controllers/radiology/radiology_controller.rb
|
222
|
-
- app/controllers/radiology/radiology_properties_controller.rb
|
223
201
|
- app/helpers/radiology/application_helper.rb
|
224
202
|
- app/jobs/radiology/application_job.rb
|
225
203
|
- app/mailers/radiology/application_mailer.rb
|
@@ -250,7 +228,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
250
228
|
- !ruby/object:Gem::Version
|
251
229
|
version: '0'
|
252
230
|
requirements: []
|
253
|
-
rubygems_version: 3.
|
231
|
+
rubygems_version: 3.0.8
|
254
232
|
signing_key:
|
255
233
|
specification_version: 4
|
256
234
|
summary: Radiology extension for the HIS-EMR-API
|
@@ -1,15 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Radiology
|
4
|
-
class LabelsController < ApplicationController
|
5
|
-
skip_before_action :authenticate
|
6
|
-
|
7
|
-
def print_order_label
|
8
|
-
label = service.print_radiology_barcode(params[:accession_number],params[:patient_national_id], params[:patient_name], params[:radio_order], params[:date_created])
|
9
|
-
send_data(label.print, type: 'application/label; charset=utf-8',
|
10
|
-
stream: false,
|
11
|
-
filename: "#{SecureRandom.hex(24)}.lbl",
|
12
|
-
disposition: 'inline')
|
13
|
-
end
|
14
|
-
end
|
15
|
-
end
|
@@ -1,20 +0,0 @@
|
|
1
|
-
require 'json'
|
2
|
-
class Radiology::RadiologyPropertiesController < ::ApplicationController
|
3
|
-
def create(success_response_status: :created)
|
4
|
-
path, value = params.require %i[path property_value]
|
5
|
-
|
6
|
-
file = File.read path
|
7
|
-
hash = JSON.parse file
|
8
|
-
if value == 'true'
|
9
|
-
hash['encounters']['radiology orders']['available'] = true
|
10
|
-
hash['encounters']['view radiology results']['available'] = true
|
11
|
-
else
|
12
|
-
hash['encounters']['radiology orders']['available'] = false
|
13
|
-
hash['encounters']['view radiology results']['available'] = false
|
14
|
-
end
|
15
|
-
File.open path , "w" do |f|
|
16
|
-
f.puts JSON.pretty_generate hash
|
17
|
-
end
|
18
|
-
render json: value, status: success_response_status
|
19
|
-
end
|
20
|
-
end
|