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
         |