renalware-core 2.0.0.pre.beta8 → 2.0.0.pre.beta9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (118) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +19 -1
  3. data/app/assets/stylesheets/renalware/lib/_select2-foundation5-overrides.scss +2 -2
  4. data/app/controllers/renalware/directory/people_controller.rb +1 -1
  5. data/app/controllers/renalware/letters/contacts_controller.rb +1 -1
  6. data/app/controllers/renalware/letters/letters_controller.rb +1 -1
  7. data/app/controllers/renalware/patients/patients_controller.rb +3 -5
  8. data/app/controllers/renalware/patients/primary_care_physicians_controller.rb +1 -1
  9. data/app/controllers/renalware/renal/aki_alerts_controller.rb +44 -0
  10. data/app/controllers/renalware/renal/profiles_controller.rb +1 -1
  11. data/app/controllers/renalware/reporting/audits_controller.rb +9 -3
  12. data/app/documents/renalware/patient_document.rb +0 -13
  13. data/app/jobs/hl7_message_example.yml +1 -1
  14. data/app/jobs/renalware/reporting/refresh_audit_data_job.rb +7 -3
  15. data/app/models/renalware/clinical/create_allergy.rb +4 -2
  16. data/app/models/renalware/clinics/create_clinic_visit.rb +6 -2
  17. data/app/models/renalware/hd/session.rb +12 -0
  18. data/app/models/renalware/hospitals/unit.rb +4 -0
  19. data/app/models/renalware/hospitals/ward.rb +22 -0
  20. data/app/models/renalware/modalities/change_patient_modality.rb +4 -2
  21. data/app/models/renalware/patient.rb +1 -0
  22. data/app/models/renalware/patients/language.rb +1 -0
  23. data/app/models/renalware/pd/create_regime.rb +4 -2
  24. data/app/models/renalware/pd/revise_regime.rb +5 -3
  25. data/app/models/renalware/renal/aki_alert.rb +15 -0
  26. data/app/models/renalware/renal/aki_alert_action.rb +10 -0
  27. data/app/models/renalware/reporting/audit.rb +2 -3
  28. data/app/models/renalware/reporting/generate_audit_json.rb +21 -5
  29. data/app/models/renalware/system/country.rb +21 -0
  30. data/app/models/renalware/transplants/create_donor_stage.rb +4 -2
  31. data/app/policies/renalware/base_policy.rb +4 -0
  32. data/app/policies/renalware/renal/aki_alert_policy.rb +9 -0
  33. data/app/presenters/renalware/hd/patient_presenter.rb +5 -0
  34. data/app/presenters/renalware/reporting/audit_presenter.rb +1 -0
  35. data/app/presenters/renalware/transplants/patient_presenter.rb +2 -1
  36. data/app/presenters/renalware/ukrdc/patient_presenter.rb +27 -0
  37. data/app/values/renalware/address.rb +2 -13
  38. data/app/views/renalware/addresses/_form.html.slim +4 -2
  39. data/app/views/renalware/api/ukrdc/patients/_address.xml.builder +2 -2
  40. data/app/views/renalware/api/ukrdc/patients/_diagnoses.xml.builder +5 -2
  41. data/app/views/renalware/api/ukrdc/patients/_encounters.xml.builder +8 -1
  42. data/app/views/renalware/api/ukrdc/patients/_medications.xml.builder +30 -0
  43. data/app/views/renalware/api/ukrdc/patients/_patient.xml.builder +36 -4
  44. data/app/views/renalware/api/ukrdc/patients/_sending_facility.xml.builder +1 -0
  45. data/app/views/renalware/api/ukrdc/patients/diagnoses/_cause_of_death.xml.builder +10 -0
  46. data/app/views/renalware/api/ukrdc/patients/encounters/_hd_session.xml.builder +40 -0
  47. data/app/views/renalware/api/ukrdc/patients/show.xml.builder +1 -0
  48. data/app/views/renalware/directory/people/_address_form.html.slim +1 -1
  49. data/app/views/renalware/hd/sessions/_form.html.slim +43 -33
  50. data/app/views/renalware/letters/contacts/_person_form.html.slim +1 -1
  51. data/app/views/renalware/navigation/_renal.html.slim +1 -0
  52. data/app/views/renalware/patients/patients/_form.html.slim +5 -2
  53. data/app/views/renalware/patients/patients/show.html.slim +0 -5
  54. data/app/views/renalware/patients/patients/show/_patient_demographics.html.slim +3 -3
  55. data/app/views/renalware/patients/side_menu/_actions.html.slim +3 -0
  56. data/app/views/renalware/renal/aki_alerts/_filters.html.slim +0 -0
  57. data/app/views/renalware/renal/aki_alerts/edit.html.slim +17 -0
  58. data/app/views/renalware/renal/aki_alerts/index.html.slim +28 -0
  59. data/app/views/renalware/reporting/audits/edit.html.slim +1 -1
  60. data/app/views/renalware/reporting/audits/index.html.slim +11 -7
  61. data/app/views/renalware/reporting/audits/show.html.slim +2 -17
  62. data/app/views/renalware/shared/documents/_blood_pressure_input.html.slim +6 -7
  63. data/config/initializers/inflections.rb +3 -2
  64. data/config/locales/renalware/navigation/renal.en.yml +1 -0
  65. data/config/locales/renalware/renal/aki_alerts.en.yml +5 -0
  66. data/config/locales/renalware/renal/{profile.yml → profile.en.yml} +0 -0
  67. data/config/locales/renalware/reporting/audit.en.yml +1 -1
  68. data/config/routes.rb +1 -0
  69. data/db/migrate/20150312113937_create_drug_types_drugs.rb +2 -2
  70. data/db/migrate/20170925161033_add_code_to_patient_langauges.rb +6 -0
  71. data/db/migrate/20170925182738_add_rr_code_to_medication_routes.rb +5 -0
  72. data/db/migrate/20170926081426_create_countries.rb +14 -0
  73. data/db/migrate/20170926132845_add_country_of_birth_to_patients.rb +6 -0
  74. data/db/migrate/20171002175804_add_rr_columns_to_transplant_registration_status_descriptions.rb +12 -0
  75. data/db/migrate/20171003093347_create_hospital_wards.rb +17 -0
  76. data/db/migrate/20171003111228_create_aki_alert_actions.rb +10 -0
  77. data/db/migrate/20171003122425_create_renal_aki_alerts.rb +22 -0
  78. data/db/migrate/20171005081224_create_reporting_bone_audit.rb +5 -0
  79. data/db/migrate/20171005091202_reporting_audit_changes.rb +7 -0
  80. data/db/migrate/20171005130109_create_medication_current_prescriptions.rb +5 -0
  81. data/db/migrate/20171005144505_create_reporting_anaemia_audit.rb +5 -0
  82. data/db/migrate/20171009104106_add_legacy_patient_id_to_patients.rb +6 -0
  83. data/db/seeds/default/events/{event_types_required.csv → event_types.csv} +0 -0
  84. data/db/seeds/default/events/{event_types_required.rb → event_types.rb} +2 -2
  85. data/db/seeds/default/events/seeds.rb +1 -2
  86. data/db/seeds/default/medications/medication_routes.rb +23 -13
  87. data/db/seeds/default/patients/patients_languages.csv +192 -102
  88. data/db/seeds/default/patients/patients_languages.rb +1 -1
  89. data/db/seeds/default/patients/patients_religions.csv +2 -0
  90. data/db/seeds/default/reporting/audits.rb +4 -3
  91. data/db/seeds/default/reporting/audits.yml +47 -4
  92. data/db/seeds/default/system/countries.csv +250 -0
  93. data/db/seeds/default/system/countries.rb +12 -0
  94. data/db/seeds/default/system/seeds.rb +1 -0
  95. data/db/seeds/default/transplants/transplant_registration_statuses.rb +30 -19
  96. data/db/views/medication_current_prescriptions_v01.sql +28 -0
  97. data/db/views/reporting_anaemia_audit_v01.sql +41 -0
  98. data/db/views/reporting_bone_audit_v01.sql +32 -0
  99. data/lib/renalware/version.rb +1 -1
  100. data/spec/factories/deaths/cause.rb +1 -1
  101. data/spec/factories/drugs/drug.rb +6 -0
  102. data/spec/factories/drugs/drug_types.rb +5 -0
  103. data/spec/factories/hospitals/wards.rb +9 -0
  104. data/spec/factories/modalities/modality_descriptions.rb +10 -8
  105. data/spec/factories/patients/ethnicities.rb +3 -0
  106. data/spec/factories/patients/languages.rb +12 -1
  107. data/spec/factories/renal/aki_alert_actions.rb +5 -0
  108. data/spec/factories/renal/aki_alerts.rb +9 -0
  109. data/spec/factories/reporting/audits.rb +1 -1
  110. data/spec/factories/system/addresses.rb +1 -1
  111. data/spec/factories/system/countries.rb +15 -0
  112. metadata +42 -13
  113. data/app/values/renalware/country.rb +0 -19
  114. data/config/countries.csv +0 -250
  115. data/db/migrate/20170706120643_create_reporting_data_sources.rb +0 -5
  116. data/db/seeds/default/events/event_types_blt.csv +0 -109
  117. data/db/seeds/default/events/event_types_local.rb +0 -10
  118. data/db/views/reporting_data_sources_v01.sql +0 -17
@@ -0,0 +1,6 @@
1
+ class AddCodeToPatientLangauges < ActiveRecord::Migration[5.1]
2
+ def change
3
+ add_column :patient_languages, :code, :string
4
+ add_index :patient_languages, :code, unique: true
5
+ end
6
+ end
@@ -0,0 +1,5 @@
1
+ class AddRrCodeToMedicationRoutes < ActiveRecord::Migration[5.1]
2
+ def change
3
+ add_column :medication_routes, :rr_code, :string
4
+ end
5
+ end
@@ -0,0 +1,14 @@
1
+ class CreateCountries < ActiveRecord::Migration[5.1]
2
+ def change
3
+ create_table :system_countries do |t|
4
+ t.string :name, null: false, index: :unique
5
+ t.string :alpha2, null: false, index: :unique
6
+ t.string :alpha3, null: false, index: :unique
7
+ t.integer :position, index: :true
8
+ end
9
+
10
+ remove_column :addresses, :country, :string
11
+ add_column :addresses, :country_id, :integer, index: true
12
+ add_foreign_key :addresses, :system_countries, column: :country_id
13
+ end
14
+ end
@@ -0,0 +1,6 @@
1
+ class AddCountryOfBirthToPatients < ActiveRecord::Migration[5.1]
2
+ def change
3
+ add_column :patients, :country_of_birth_id, :integer, index: true
4
+ add_foreign_key :patients, :system_countries, column: :country_of_birth_id
5
+ end
6
+ end
@@ -0,0 +1,12 @@
1
+ class AddRrColumnsToTransplantRegistrationStatusDescriptions < ActiveRecord::Migration[5.1]
2
+ def change
3
+ add_column :transplant_registration_status_descriptions,
4
+ :rr_code,
5
+ :integer,
6
+ index: true
7
+
8
+ add_column :transplant_registration_status_descriptions,
9
+ :rr_comment,
10
+ :text
11
+ end
12
+ end
@@ -0,0 +1,17 @@
1
+ class CreateHospitalWards < ActiveRecord::Migration[5.1]
2
+ def change
3
+ create_table :hospital_wards do |t|
4
+ t.string :name, null: false
5
+ t.references :hospital_unit, index: true, foreign_key: true, null: false
6
+ t.datetime :deleted_at
7
+ t.timestamps null: false
8
+ end
9
+
10
+ # This create a postgres partial index
11
+ # Name must be unique in for any unit, but only amongst un-deleted wards.
12
+ add_index :hospital_wards,
13
+ [:name, :hospital_unit_id],
14
+ unique: true,
15
+ where: "deleted_at IS NOT NULL"
16
+ end
17
+ end
@@ -0,0 +1,10 @@
1
+ class CreateAKIAlertActions < ActiveRecord::Migration[5.1]
2
+ def change
3
+ create_table :renal_aki_alert_actions do |t|
4
+ t.string :name, null: false, index: :unique
5
+ t.integer :position, null: false, default: 0
6
+
7
+ t.timestamps null: false
8
+ end
9
+ end
10
+ end
@@ -0,0 +1,22 @@
1
+ class CreateRenalAKIAlerts < ActiveRecord::Migration[5.1]
2
+ def change
3
+ create_table :renal_aki_alerts do |t|
4
+ t.references :patient, null: false, foreign_key: true, index: true
5
+ t.references :action,
6
+ foreign_key: { to_table: :renal_aki_alert_actions },
7
+ index: true,
8
+ null: true
9
+ t.references :hospital_ward,
10
+ foreign_key: { to_table: :hospital_wards },
11
+ index: true,
12
+ null: true
13
+ t.boolean :hotlist, null: false, default: false, index: true
14
+ t.string :renal_aki_alerts, :action, :string, index: true
15
+ t.text :notes
16
+ t.references :updated_by, foreign_key: { to_table: :users }, index: true
17
+ t.references :created_by, foreign_key: { to_table: :users }, index: true
18
+
19
+ t.timestamps null: false
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,5 @@
1
+ class CreateReportingBoneAudit < ActiveRecord::Migration[5.0]
2
+ def change
3
+ create_view :reporting_bone_audit
4
+ end
5
+ end
@@ -0,0 +1,7 @@
1
+ class ReportingAuditChanges < ActiveRecord::Migration[5.1]
2
+ def change
3
+ rename_column :reporting_audits, :materialized_view_name, :view_name
4
+ add_column :reporting_audits, :materialized, :boolean, null: false, default: true
5
+ change_column_null :reporting_audits, :refresh_schedule, true
6
+ end
7
+ end
@@ -0,0 +1,5 @@
1
+ class CreateMedicationCurrentPrescriptions < ActiveRecord::Migration[5.0]
2
+ def change
3
+ create_view :medication_current_prescriptions
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ class CreateReportingAnaemiaAudit < ActiveRecord::Migration[5.0]
2
+ def change
3
+ create_view :reporting_anaemia_audit
4
+ end
5
+ end
@@ -0,0 +1,6 @@
1
+ class AddLegacyPatientIdToPatients < ActiveRecord::Migration[5.1]
2
+ def change
3
+ add_column :patients, :legacy_patient_id, :integer, null: true
4
+ add_index :patients, :legacy_patient_id, unique: true
5
+ end
6
+ end
@@ -1,7 +1,7 @@
1
1
  module Renalware
2
- log "Adding Biopsy and Swab Event Types" do
2
+ log "Adding Default Event Types e.g. Biopsy, Swabs" do
3
3
 
4
- file_path = File.join(File.dirname(__FILE__), "event_types_required.csv")
4
+ file_path = File.join(File.dirname(__FILE__), "event_types.csv")
5
5
 
6
6
  CSV.foreach(file_path, headers: true) do |row|
7
7
  Events::Type.find_or_create_by!(name: row["name"],
@@ -1,2 +1 @@
1
- require_relative "./event_types_required"
2
- require_relative "./event_types_local"
1
+ require_relative "./event_types"
@@ -1,19 +1,29 @@
1
1
  module Renalware
2
2
  log "Adding Medication Routes" do
3
3
 
4
- Medications::MedicationRoute.transaction do
5
- Medications::MedicationRoute.find_or_create_by!(code: "PO", name: "Per Oral")
6
- Medications::MedicationRoute.find_or_create_by!(code: "IV", name: "Intravenous")
7
- Medications::MedicationRoute.find_or_create_by!(code: "SC", name: "Subcutaneous")
8
- Medications::MedicationRoute.find_or_create_by!(code: "IM", name: "Intramuscular")
9
- Medications::MedicationRoute.find_or_create_by!(code: "IP", name: "Intraperitoneal")
10
- Medications::MedicationRoute.find_or_create_by!(code: "INH", name: "Inhaler")
11
- Medications::MedicationRoute.find_or_create_by!(code: "SL", name: "Sublingual")
12
- Medications::MedicationRoute.find_or_create_by!(code: "NG", name: "Nasogastric")
13
- Medications::MedicationRoute.find_or_create_by!(code: "PARENT", name: "Parenteral")
14
- Medications::MedicationRoute.find_or_create_by!(code: "PERCUT", name: "Percutaneous")
15
- Medications::MedicationRoute.find_or_create_by!(code: "TOP", name: "Topical")
16
- Medications::MedicationRoute.find_or_create_by!(code: "OTHER", name: "Other")
4
+ module RR
5
+ ORAL = 1
6
+ TOPICAL = 2
7
+ INHALATION = 3
8
+ INJECTION = 4
9
+ INTRAPERITONEAL = 5
10
+ OTHER = 9
11
+ end
12
+
13
+ MRoute = Medications::MedicationRoute
14
+ MRoute.transaction do
15
+ MRoute.find_or_create_by!(code: "PO", name: "Per Oral", rr_code: RR::ORAL)
16
+ MRoute.find_or_create_by!(code: "IV", name: "Intravenous", rr_code: RR::INJECTION)
17
+ MRoute.find_or_create_by!(code: "SC", name: "Subcutaneous", rr_code: RR::INJECTION)
18
+ MRoute.find_or_create_by!(code: "IM", name: "Intramuscular", rr_code: RR::INJECTION)
19
+ MRoute.find_or_create_by!(code: "IP", name: "Intraperitoneal", rr_code: RR::INTRAPERITONEAL)
20
+ MRoute.find_or_create_by!(code: "INH", name: "Inhaler", rr_code: RR::INHALATION)
21
+ MRoute.find_or_create_by!(code: "SL", name: "Sublingual", rr_code: RR::OTHER)
22
+ MRoute.find_or_create_by!(code: "NG", name: "Nasogastric", rr_code: RR::OTHER)
23
+ MRoute.find_or_create_by!(code: "PARENT", name: "Parenteral", rr_code: RR::INJECTION)
24
+ MRoute.find_or_create_by!(code: "PERCUT", name: "Percutaneous", rr_code: RR::OTHER)
25
+ MRoute.find_or_create_by!(code: "TOP", name: "Topical", rr_code: RR::TOPICAL)
26
+ MRoute.find_or_create_by!(code: "OTHER", name: "Other", rr_code: RR::OTHER)
17
27
  end
18
28
  end
19
29
  end
@@ -1,102 +1,192 @@
1
- "name"
2
- "English"
3
- "Other"
4
- "Akan"
5
- "Amharic"
6
- "Arabic"
7
- "Assamese"
8
- "Awadhi"
9
- "Azerbaijani"
10
- "Balochi"
11
- "Belarusian"
12
- "Bengali"
13
- "Bhojpuri"
14
- "Burmese"
15
- "Cebuano (Visayan)"
16
- "Chewa"
17
- "Chhattisgarhi"
18
- "Chittagonian"
19
- "Czech"
20
- "Deccan"
21
- "Dhundhari"
22
- "Dutch"
23
- "Eastern Min"
24
- "French"
25
- "Fula"
26
- "Gan Chinese"
27
- "German"
28
- "Greek"
29
- "Gujarati"
30
- "Haitian Creole"
31
- "Hakka"
32
- "Haryanvi"
33
- "Hausa"
34
- "Hiligaynon"
35
- "Hindi"
36
- "Hmong"
37
- "Hungarian"
38
- "Igbo"
39
- "Ilocano"
40
- "Italian"
41
- "Japanese"
42
- "Javanese"
43
- "Jin"
44
- "Kannada"
45
- "Kazakh"
46
- "Khmer"
47
- "Kinyarwanda"
48
- "Kirundi"
49
- "Konkani"
50
- "Korean"
51
- "Kurdish"
52
- "Madurese"
53
- "Magahi"
54
- "Maithili"
55
- "Malagasy"
56
- "Malay/Indonesian"
57
- "Malayalam"
58
- "Mandarin"
59
- "Marathi"
60
- "Marwari"
61
- "Mossi"
62
- "Nepali"
63
- "Northern Min"
64
- "Odia (Oriya)"
65
- "Oromo"
66
- "Pashto"
67
- "Persian"
68
- "Polish"
69
- "Portuguese"
70
- "Punjabi"
71
- "Quechua"
72
- "Romanian"
73
- "Russian"
74
- "Saraiki"
75
- "Serbo-Croatian"
76
- "Shona"
77
- "Sindhi"
78
- "Sinhalese"
79
- "Somali"
80
- "Southern Min"
81
- "Spanish"
82
- "Sundanese"
83
- "Swedish"
84
- "Sylheti"
85
- "Tagalog"
86
- "Tamil"
87
- "Telugu"
88
- "Thai"
89
- "Turkish"
90
- "Turkmen"
91
- "Ukrainian"
92
- "Urdu"
93
- "Uyghur"
94
- "Uzbek"
95
- "Vietnamese"
96
- "Wu (inc. Shanghainese)"
97
- "Xhosa"
98
- "Xiang (Hunnanese)"
99
- "Yoruba"
100
- "Yue (Cantonese)"
101
- "Zhuang"
102
- "Zulu"
1
+ code,name
2
+ en,English
3
+ ot,Other
4
+ aa,Afar
5
+ ab,Abkhazian
6
+ ae,Avestan
7
+ af,Afrikaans
8
+ ak,Akan
9
+ am,Amharic
10
+ an,Aragonese
11
+ ar,Arabic
12
+ as,Assamese
13
+ av,Avaric
14
+ ay,Aymara
15
+ az,Azerbaijani
16
+ ba,Bashkir
17
+ be,Belarusian
18
+ bg,Bulgarian
19
+ bh,Bihari languages
20
+ bi,Bislama
21
+ bm,Bambara
22
+ bn,Bengali
23
+ bo,Tibetan
24
+ br,Breton
25
+ bs,Bosnian
26
+ ca,Catalan; Valencian
27
+ ce,Chechen
28
+ ch,Chamorro
29
+ co,Corsican
30
+ cr,Cree
31
+ cs,Czech
32
+ cu,Church Slavic; Old Slavonic; Church Slavonic; Old Bulgarian; Old Church Slavonic
33
+ cv,Chuvash
34
+ cy,Welsh
35
+ da,Danish
36
+ de,German
37
+ dv,Divehi; Dhivehi; Maldivian
38
+ dz,Dzongkha
39
+ ee,Ewe
40
+ el,"Greek, Modern (1453-)"
41
+ eo,Esperanto
42
+ es,Spanish; Castilian
43
+ et,Estonian
44
+ eu,Basque
45
+ fa,Persian
46
+ ff,Fulah
47
+ fi,Finnish
48
+ fj,Fijian
49
+ fo,Faroese
50
+ fr,French
51
+ fy,Western Frisian
52
+ ga,Irish
53
+ gd,Gaelic; Scottish Gaelic
54
+ gl,Galician
55
+ gn,Guarani
56
+ gu,Gujarati
57
+ gv,Manx
58
+ ha,Hausa
59
+ he,Hebrew
60
+ hi,Hindi
61
+ ho,Hiri Motu
62
+ hr,Croatian
63
+ ht,Haitian; Haitian Creole
64
+ hu,Hungarian
65
+ hy,Armenian
66
+ hz,Herero
67
+ ia,Interlingua (International Auxiliary Language Association)
68
+ id,Indonesian
69
+ ie,Interlingue; Occidental
70
+ ig,Igbo
71
+ ii,Sichuan Yi; Nuosu
72
+ ik,Inupiaq
73
+ io,Ido
74
+ is,Icelandic
75
+ it,Italian
76
+ iu,Inuktitut
77
+ ja,Japanese
78
+ jv,Javanese
79
+ ka,Georgian
80
+ kg,Kongo
81
+ ki,Kikuyu; Gikuyu
82
+ kj,Kuanyama; Kwanyama
83
+ kk,Kazakh
84
+ kl,Kalaallisut; Greenlandic
85
+ km,Central Khmer
86
+ kn,Kannada
87
+ ko,Korean
88
+ kr,Kanuri
89
+ ks,Kashmiri
90
+ ku,Kurdish
91
+ kv,Komi
92
+ kw,Cornish
93
+ ky,Kirghiz; Kyrgyz
94
+ la,Latin
95
+ lb,Luxembourgish; Letzeburgesch
96
+ lg,Ganda
97
+ li,Limburgan; Limburger; Limburgish
98
+ ln,Lingala
99
+ lo,Lao
100
+ lt,Lithuanian
101
+ lu,Luba-Katanga
102
+ lv,Latvian
103
+ mg,Malagasy
104
+ mh,Marshallese
105
+ mi,Maori
106
+ mk,Macedonian
107
+ ml,Malayalam
108
+ mn,Mongolian
109
+ mr,Marathi
110
+ ms,Malay
111
+ mt,Maltese
112
+ my,Burmese
113
+ na,Nauru
114
+ nb,"Bokmål, Norwegian; Norwegian Bokmål"
115
+ nd,"Ndebele, North; North Ndebele"
116
+ ne,Nepali
117
+ ng,Ndonga
118
+ nl,Dutch; Flemish
119
+ nn,"Norwegian Nynorsk; Nynorsk, Norwegian"
120
+ no,Norwegian
121
+ nr,"Ndebele, South; South Ndebele"
122
+ nv,Navajo; Navaho
123
+ ny,Chichewa; Chewa; Nyanja
124
+ oc,Occitan (post 1500); Provençal
125
+ oj,Ojibwa
126
+ om,Oromo
127
+ or,Oriya
128
+ os,Ossetian; Ossetic
129
+ pa,Panjabi; Punjabi
130
+ pi,Pali
131
+ pl,Polish
132
+ ps,Pushto; Pashto
133
+ pt,Portuguese
134
+ qu,Quechua
135
+ rm,Romansh
136
+ rn,Rundi
137
+ ro,Romanian; Moldavian; Moldovan
138
+ ru,Russian
139
+ rw,Kinyarwanda
140
+ sa,Sanskrit
141
+ sc,Sardinian
142
+ sd,Sindhi
143
+ se,Northern Sami
144
+ sg,Sango
145
+ si,Sinhala; Sinhalese
146
+ sk,Slovak
147
+ sl,Slovenian
148
+ sm,Samoan
149
+ sn,Shona
150
+ so,Somali
151
+ sq,Albanian
152
+ sr,Serbian
153
+ ss,Swati
154
+ st,"Sotho, Southern"
155
+ su,Sundanese
156
+ sv,Swedish
157
+ sw,Swahili
158
+ ta,Tamil
159
+ te,Telugu
160
+ tg,Tajik
161
+ th,Thai
162
+ ti,Tigrinya
163
+ tk,Turkmen
164
+ tl,Tagalog
165
+ tn,Tswana
166
+ to,Tonga (Tonga Islands)
167
+ tr,Turkish
168
+ ts,Tsonga
169
+ tt,Tatar
170
+ tw,Twi
171
+ ty,Tahitian
172
+ ug,Uighur; Uyghur
173
+ uk,Ukrainian
174
+ ur,Urdu
175
+ uz,Uzbek
176
+ ve,Venda
177
+ vi,Vietnamese
178
+ vo,Volapük
179
+ wa,Walloon
180
+ wo,Wolof
181
+ xh,Xhosa
182
+ yi,Yiddish
183
+ yo,Yoruba
184
+ za,Zhuang; Chuang
185
+ zh,Chinese
186
+ zu,Zulu
187
+ q1,Braille - for people who are unable to see
188
+ q2,American Sign Language
189
+ q3,Australian Sign Language
190
+ q4,British Sign Language
191
+ q5,Makaton - devised for children and adults with a variety of communication and Learning Disabilities
192
+ un,Unknown