his_emr_api_radiology 0.0.3 → 0.0.8
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 +9 -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 +38 -2
- data/config/routes.rb +2 -3
- 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 -24
- 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: ab64d31ea8b7ec7e8829c80a82e4a62840f300ee3ed9e8b385c9e6d73b9dbd94
|
4
|
+
data.tar.gz: 2189afd1dc6fb546fb709195a172ecaf2dd90087e62b5ee32264e788731eac60
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 9ff060fddcaa5f0f523e70a7b7d175813a94cbdfa00f94b284cd25a49fedf657e1f275ea9efb153f89b846036fdfbc0a8723a581f9ca280437b9c915f09d8a99
|
7
|
+
data.tar.gz: '0794b58ba818afaad4a5564b3c04f35d0cf0a82396b81f2c64cf37e7c97998f141987b6a7be373f353a3825a06de4f99767d2017a1b376da60a4431241ab1fe9'
|
data/MIT-LICENSE
CHANGED
File without changes
|
data/README.md
CHANGED
File without changes
|
data/Rakefile
CHANGED
File without changes
|
File without changes
|
@@ -1,12 +1,20 @@
|
|
1
1
|
# frozen_string_literal: true
|
2
2
|
require 'zebra_printer/init'
|
3
|
-
class Radiology::
|
3
|
+
class Radiology::RadiologyController < ::ApplicationController
|
4
4
|
before_action :authenticate, except: %i[print_order_label ]
|
5
5
|
def create
|
6
6
|
patient_details, physician_details, radiology_orders = params.require %i[patient_details physician_details radiology_orders]
|
7
7
|
radiology_orders = service.generate_msi(patient_details,physician_details, radiology_orders)
|
8
8
|
render json: radiology_orders, status: :created
|
9
9
|
end
|
10
|
+
def show
|
11
|
+
render json: service.get_radiology_orders(params[:id])
|
12
|
+
end
|
13
|
+
|
14
|
+
def index
|
15
|
+
render json: service.get_previous_orders(params[:patient_id])
|
16
|
+
end
|
17
|
+
|
10
18
|
def print_order_label
|
11
19
|
label = service.print_radiology_barcode(params[:accession_number],params[:patient_national_id], params[:patient_name], params[:radio_order], params[:date_created])
|
12
20
|
send_data(label, type: 'application/label; charset=utf-8',
|
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,42 @@ 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
|
88
|
+
|
89
|
+
def get_previous_orders(patient_id)
|
90
|
+
Observation.where("person_id = ? AND voided =0 AND concept_id = 8426",patient_id).order('obs_datetime DESC')
|
91
|
+
end
|
56
92
|
end
|
57
93
|
end
|
58
94
|
end
|
data/config/routes.rb
CHANGED
@@ -1,7 +1,6 @@
|
|
1
1
|
Radiology::Engine.routes.draw do
|
2
|
-
resources :radiology, path: 'api/v1/radiology/radiology_orders'
|
3
|
-
resources :radiology_properties, path: 'api/v1/radiology_properties'
|
4
|
-
|
2
|
+
resources :radiology, path: 'api/v1/radiology/radiology_orders'
|
5
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.8
|
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-11-20 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
|
@@ -218,7 +198,6 @@ files:
|
|
218
198
|
- Rakefile
|
219
199
|
- app/controllers/radiology/application_controller.rb
|
220
200
|
- app/controllers/radiology/radiology_controller.rb
|
221
|
-
- app/controllers/radiology/radiology_properties_controller.rb
|
222
201
|
- app/helpers/radiology/application_helper.rb
|
223
202
|
- app/jobs/radiology/application_job.rb
|
224
203
|
- app/mailers/radiology/application_mailer.rb
|
@@ -249,7 +228,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
249
228
|
- !ruby/object:Gem::Version
|
250
229
|
version: '0'
|
251
230
|
requirements: []
|
252
|
-
rubygems_version: 3.
|
231
|
+
rubygems_version: 3.0.8
|
253
232
|
signing_key:
|
254
233
|
specification_version: 4
|
255
234
|
summary: Radiology extension for the HIS-EMR-API
|
@@ -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
|