fhirsmith 0.3.0
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.
- package/CHANGELOG.md +42 -0
- package/FHIRsmith.png +0 -0
- package/README.md +277 -0
- package/config-template.json +144 -0
- package/library/folder-setup.js +58 -0
- package/library/html-server.js +166 -0
- package/library/html.js +835 -0
- package/library/i18nsupport.js +259 -0
- package/library/languages.js +779 -0
- package/library/logger-telnet.js +205 -0
- package/library/logger.js +279 -0
- package/library/package-manager.js +876 -0
- package/library/utilities.js +196 -0
- package/library/version-utilities.js +1056 -0
- package/npmprojector/config-example.json +13 -0
- package/npmprojector/indexer.js +394 -0
- package/npmprojector/npmprojector.js +395 -0
- package/npmprojector/readme.md +174 -0
- package/npmprojector/watcher.js +335 -0
- package/package.json +119 -0
- package/packages/package-crawler.js +846 -0
- package/packages/packages-template.html +126 -0
- package/packages/packages.js +2838 -0
- package/passwords.ini +2 -0
- package/publisher/publisher-template.html +208 -0
- package/publisher/publisher.js +2167 -0
- package/publisher/task-draft.js +458 -0
- package/registry/api.js +735 -0
- package/registry/crawler.js +637 -0
- package/registry/model.js +513 -0
- package/registry/readme.md +243 -0
- package/registry/registry-data.json +121015 -0
- package/registry/registry-template.html +126 -0
- package/registry/registry.js +1395 -0
- package/registry/test-runner.js +237 -0
- package/root-template.html +124 -0
- package/server.js +524 -0
- package/shl/private-key.pem +5 -0
- package/shl/public-key.pem +18 -0
- package/shl/shl.js +1125 -0
- package/shl/vhl.js +69 -0
- package/static/FHIRsmith128.png +0 -0
- package/static/FHIRsmith16.png +0 -0
- package/static/FHIRsmith32.png +0 -0
- package/static/FHIRsmith64.png +0 -0
- package/static/assets/css/bootstrap-fhir.css +5302 -0
- package/static/assets/css/bootstrap-glyphicons.css +2 -0
- package/static/assets/css/bootstrap.css +4097 -0
- package/static/assets/css/jquery-ui.css +523 -0
- package/static/assets/css/jquery-ui.structure.css +863 -0
- package/static/assets/css/jquery-ui.structure.min.css +5 -0
- package/static/assets/css/jquery-ui.theme.css +439 -0
- package/static/assets/css/jquery-ui.theme.min.css +5 -0
- package/static/assets/css/jquery.ui.all.css +7 -0
- package/static/assets/css/modules.css +18 -0
- package/static/assets/css/project.css +367 -0
- package/static/assets/css/pygments-manni.css +66 -0
- package/static/assets/css/tags.css +74 -0
- package/static/assets/css/xml.css +2 -0
- package/static/assets/fonts/glyphiconshalflings-regular.eot +0 -0
- package/static/assets/fonts/glyphiconshalflings-regular.otf +0 -0
- package/static/assets/fonts/glyphiconshalflings-regular.svg +175 -0
- package/static/assets/fonts/glyphiconshalflings-regular.ttf +0 -0
- package/static/assets/fonts/glyphiconshalflings-regular.woff +0 -0
- package/static/assets/ico/apple-touch-icon-114-precomposed.png +0 -0
- package/static/assets/ico/apple-touch-icon-144-precomposed.png +0 -0
- package/static/assets/ico/apple-touch-icon-57-precomposed.png +0 -0
- package/static/assets/ico/apple-touch-icon-72-precomposed.png +0 -0
- package/static/assets/ico/favicon.ico +0 -0
- package/static/assets/ico/favicon.png +0 -0
- package/static/assets/images/fhir-logo-www.png +0 -0
- package/static/assets/images/fhir-logo.png +0 -0
- package/static/assets/images/hl7-logo.png +0 -0
- package/static/assets/images/logo_ansinew.jpg +0 -0
- package/static/assets/images/search.png +0 -0
- package/static/assets/images/stripe.png +0 -0
- package/static/assets/images/target.png +0 -0
- package/static/assets/images/tx-registry-root.gif +0 -0
- package/static/assets/images/tx-registry.png +0 -0
- package/static/assets/images/tx-server.png +0 -0
- package/static/assets/images/tx-version.png +0 -0
- package/static/assets/js/bootstrap.min.js +6 -0
- package/static/assets/js/fhir-gw.js +259 -0
- package/static/assets/js/fhir.js +2 -0
- package/static/assets/js/html5shiv.js +8 -0
- package/static/assets/js/jcookie.js +96 -0
- package/static/assets/js/jquery-ui.min.js +6 -0
- package/static/assets/js/jquery.js +10716 -0
- package/static/assets/js/jquery.min.js +2 -0
- package/static/assets/js/jquery.ui.core.js +314 -0
- package/static/assets/js/jquery.ui.draggable.js +825 -0
- package/static/assets/js/jquery.ui.mouse.js +162 -0
- package/static/assets/js/jquery.ui.resizable.js +842 -0
- package/static/assets/js/jquery.ui.widget.js +268 -0
- package/static/assets/js/json2.js +487 -0
- package/static/assets/js/jtip.js +97 -0
- package/static/assets/js/respond.min.js +6 -0
- package/static/assets/js/statuspage.js +70 -0
- package/static/assets/js/xml.js +2 -0
- package/static/dist/js/bootstrap.js +1964 -0
- package/static/favicon.png +0 -0
- package/static/fhir.css +626 -0
- package/static/icon-fhir-16.png +0 -0
- package/static/images/ui-bg_diagonals-thick_18_b81900_40x40.png +0 -0
- package/static/images/ui-bg_diagonals-thick_20_666666_40x40.png +0 -0
- package/static/images/ui-bg_flat_10_000000_40x100.png +0 -0
- package/static/images/ui-bg_glass_100_f6f6f6_1x400.png +0 -0
- package/static/images/ui-bg_glass_100_fdf5ce_1x400.png +0 -0
- package/static/images/ui-bg_glass_65_ffffff_1x400.png +0 -0
- package/static/images/ui-bg_gloss-wave_35_f6a828_500x100.png +0 -0
- package/static/images/ui-bg_highlight-soft_100_eeeeee_1x100.png +0 -0
- package/static/images/ui-bg_highlight-soft_75_ffe45c_1x100.png +0 -0
- package/static/images/ui-icons_222222_256x240.png +0 -0
- package/static/images/ui-icons_228ef1_256x240.png +0 -0
- package/static/images/ui-icons_ef8c08_256x240.png +0 -0
- package/static/images/ui-icons_ffd27a_256x240.png +0 -0
- package/static/images/ui-icons_ffffff_256x240.png +0 -0
- package/static/js/jquery.effects.blind.js +49 -0
- package/static/js/jquery.effects.bounce.js +78 -0
- package/static/js/jquery.effects.clip.js +54 -0
- package/static/js/jquery.effects.core.js +763 -0
- package/static/js/jquery.effects.drop.js +50 -0
- package/static/js/jquery.effects.explode.js +79 -0
- package/static/js/jquery.effects.fade.js +32 -0
- package/static/js/jquery.effects.fold.js +56 -0
- package/static/js/jquery.effects.highlight.js +50 -0
- package/static/js/jquery.effects.pulsate.js +51 -0
- package/static/js/jquery.effects.scale.js +178 -0
- package/static/js/jquery.effects.shake.js +57 -0
- package/static/js/jquery.effects.slide.js +50 -0
- package/static/js/jquery.effects.transfer.js +45 -0
- package/static/js/jquery.ui.accordion.js +611 -0
- package/static/js/jquery.ui.autocomplete.js +612 -0
- package/static/js/jquery.ui.button.js +416 -0
- package/static/js/jquery.ui.datepicker.js +1823 -0
- package/static/js/jquery.ui.dialog.js +878 -0
- package/static/js/jquery.ui.droppable.js +296 -0
- package/static/js/jquery.ui.position.js +252 -0
- package/static/js/jquery.ui.progressbar.js +109 -0
- package/static/js/jquery.ui.selectable.js +266 -0
- package/static/js/jquery.ui.slider.js +666 -0
- package/static/js/jquery.ui.sortable.js +1077 -0
- package/static/js/jquery.ui.tabs.js +758 -0
- package/stats.js +80 -0
- package/test-cache/vsac/vsac-valuesets.db +0 -0
- package/token/nginx_passport_setup.md +383 -0
- package/token/security_guide.md +294 -0
- package/token/token-template.html +330 -0
- package/token/token.js +1300 -0
- package/translations/Messages.properties +1510 -0
- package/translations/Messages_ar.properties +1399 -0
- package/translations/Messages_de.properties +836 -0
- package/translations/Messages_es.properties +737 -0
- package/translations/Messages_fr.properties +1 -0
- package/translations/Messages_ja.properties +893 -0
- package/translations/Messages_nl.properties +1357 -0
- package/translations/Messages_pt.properties +1302 -0
- package/translations/Messages_ru.properties +1 -0
- package/translations/Messages_uz.properties +1 -0
- package/translations/Messages_zh.properties +1 -0
- package/translations/rendering-phrases.properties +1128 -0
- package/translations/rendering-phrases_ar.properties +1091 -0
- package/translations/rendering-phrases_de.properties +6 -0
- package/translations/rendering-phrases_es.properties +6 -0
- package/translations/rendering-phrases_fr.properties +624 -0
- package/translations/rendering-phrases_ja.properties +21 -0
- package/translations/rendering-phrases_nl.properties +970 -0
- package/translations/rendering-phrases_pt.properties +1020 -0
- package/translations/rendering-phrases_ru.properties +1094 -0
- package/translations/rendering-phrases_uz.properties +1 -0
- package/translations/rendering-phrases_zh.properties +1 -0
- package/tx/README.md +418 -0
- package/tx/cm/cm-api.js +110 -0
- package/tx/cm/cm-database.js +735 -0
- package/tx/cm/cm-package.js +325 -0
- package/tx/cs/cs-api.js +789 -0
- package/tx/cs/cs-areacode.js +615 -0
- package/tx/cs/cs-country.js +1110 -0
- package/tx/cs/cs-cpt.js +785 -0
- package/tx/cs/cs-cs.js +1579 -0
- package/tx/cs/cs-currency.js +539 -0
- package/tx/cs/cs-db.js +1321 -0
- package/tx/cs/cs-hgvs.js +329 -0
- package/tx/cs/cs-lang.js +465 -0
- package/tx/cs/cs-loinc.js +1485 -0
- package/tx/cs/cs-mimetypes.js +238 -0
- package/tx/cs/cs-ndc.js +704 -0
- package/tx/cs/cs-omop.js +1025 -0
- package/tx/cs/cs-provider-api.js +43 -0
- package/tx/cs/cs-provider-list.js +37 -0
- package/tx/cs/cs-rxnorm.js +808 -0
- package/tx/cs/cs-snomed.js +1102 -0
- package/tx/cs/cs-ucum.js +514 -0
- package/tx/cs/cs-unii.js +271 -0
- package/tx/cs/cs-uri.js +218 -0
- package/tx/cs/cs-usstates.js +305 -0
- package/tx/dev.fhir.org.yml +14 -0
- package/tx/fixtures/test-cases-setup.json +18 -0
- package/tx/fixtures/test-cases.yml +16 -0
- package/tx/html/codesystem-operations.liquid +25 -0
- package/tx/html/home-metrics.liquid +247 -0
- package/tx/html/operations-form.liquid +148 -0
- package/tx/html/search-form.liquid +62 -0
- package/tx/html/tx-template.html +133 -0
- package/tx/html/valueset-operations.liquid +54 -0
- package/tx/importers/atc-to-fhir.js +316 -0
- package/tx/importers/import-loinc.module.js +1536 -0
- package/tx/importers/import-ndc.module.js +1088 -0
- package/tx/importers/import-rxnorm.module.js +898 -0
- package/tx/importers/import-sct.module.js +2457 -0
- package/tx/importers/import-unii.module.js +601 -0
- package/tx/importers/readme.md +453 -0
- package/tx/importers/subset-loinc.module.js +1081 -0
- package/tx/importers/subset-rxnorm.module.js +938 -0
- package/tx/importers/tx-import-base.js +351 -0
- package/tx/importers/tx-import-settings.js +310 -0
- package/tx/importers/tx-import.js +357 -0
- package/tx/library/canonical-resource.js +88 -0
- package/tx/library/capabilitystatement.js +292 -0
- package/tx/library/codesystem.js +774 -0
- package/tx/library/conceptmap.js +568 -0
- package/tx/library/designations.js +932 -0
- package/tx/library/errors.js +77 -0
- package/tx/library/extensions.js +117 -0
- package/tx/library/namingsystem.js +322 -0
- package/tx/library/operation-outcome.js +127 -0
- package/tx/library/parameters.js +105 -0
- package/tx/library/renderer.js +1559 -0
- package/tx/library/terminologycapabilities.js +418 -0
- package/tx/library/ucum-parsers.js +1029 -0
- package/tx/library/ucum-service.js +370 -0
- package/tx/library/ucum-types.js +1099 -0
- package/tx/library/valueset.js +543 -0
- package/tx/library.js +676 -0
- package/tx/ocl/cm-ocl.js +106 -0
- package/tx/ocl/cs-ocl.js +39 -0
- package/tx/ocl/vs-ocl.js +105 -0
- package/tx/operation-context.js +568 -0
- package/tx/params.js +613 -0
- package/tx/provider.js +403 -0
- package/tx/sct/ecl.js +1560 -0
- package/tx/sct/expressions.js +2077 -0
- package/tx/sct/structures.js +1396 -0
- package/tx/tx-html.js +1063 -0
- package/tx/tx.fhir.org.yml +39 -0
- package/tx/tx.js +927 -0
- package/tx/vs/vs-api.js +112 -0
- package/tx/vs/vs-database.js +786 -0
- package/tx/vs/vs-package.js +358 -0
- package/tx/vs/vs-vsac.js +366 -0
- package/tx/workers/batch-validate.js +129 -0
- package/tx/workers/batch.js +361 -0
- package/tx/workers/closure.js +32 -0
- package/tx/workers/expand.js +1845 -0
- package/tx/workers/lookup.js +407 -0
- package/tx/workers/metadata.js +467 -0
- package/tx/workers/operations.js +34 -0
- package/tx/workers/read.js +164 -0
- package/tx/workers/search.js +384 -0
- package/tx/workers/subsumes.js +334 -0
- package/tx/workers/translate.js +492 -0
- package/tx/workers/validate.js +2504 -0
- package/tx/workers/worker.js +904 -0
- package/tx/xml/capabilitystatement-xml.js +63 -0
- package/tx/xml/codesystem-xml.js +62 -0
- package/tx/xml/conceptmap-xml.js +65 -0
- package/tx/xml/namingsystem-xml.js +65 -0
- package/tx/xml/operationoutcome-xml.js +127 -0
- package/tx/xml/parameters-xml.js +312 -0
- package/tx/xml/terminologycapabilities-xml.js +64 -0
- package/tx/xml/valueset-xml.js +64 -0
- package/tx/xml/xml-base.js +603 -0
- package/vcl/vcl-parser.js +1098 -0
- package/vcl/vcl.js +253 -0
- package/windows-install.js +19 -0
- package/xig/xig-template.html +124 -0
- package/xig/xig.js +3049 -0
|
@@ -0,0 +1,615 @@
|
|
|
1
|
+
const { CodeSystemProvider, FilterExecutionContext, CodeSystemFactoryProvider} = require('./cs-api');
|
|
2
|
+
const assert = require('assert');
|
|
3
|
+
const { CodeSystem } = require("../library/codesystem");
|
|
4
|
+
|
|
5
|
+
class AreaCodeConcept {
|
|
6
|
+
constructor(code, display, abbrev, class_) {
|
|
7
|
+
this.code = code;
|
|
8
|
+
this.display = abbrev ? `${display} (${abbrev})` : display;
|
|
9
|
+
this.class_ = class_;
|
|
10
|
+
}
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
class AreaCodeConceptFilter {
|
|
14
|
+
constructor() {
|
|
15
|
+
this.list = [];
|
|
16
|
+
this.cursor = -1;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
class AreaCodeServices extends CodeSystemProvider {
|
|
21
|
+
constructor(opContext, supplements, codes, codeMap) {
|
|
22
|
+
super(opContext, supplements);
|
|
23
|
+
this.codes = codes || [];
|
|
24
|
+
this.codeMap = codeMap || new Map();
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// Metadata methods
|
|
28
|
+
system() {
|
|
29
|
+
return 'http://unstats.un.org/unsd/methods/m49/m49.htm';
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
version() {
|
|
33
|
+
return null; // No version specified
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
description() {
|
|
37
|
+
return 'International area/region Codes';
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
name() {
|
|
41
|
+
return 'Region Codes';
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
totalCount() {
|
|
45
|
+
return this.codes.length;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
hasParents() {
|
|
49
|
+
return false; // No hierarchical relationships
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
hasAnyDisplays(languages) {
|
|
53
|
+
const langs = this._ensureLanguages(languages);
|
|
54
|
+
if (this._hasAnySupplementDisplays(langs)) {
|
|
55
|
+
return true;
|
|
56
|
+
}
|
|
57
|
+
return super.hasAnyDisplays(langs);
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
// Core concept methods
|
|
61
|
+
async code(code) {
|
|
62
|
+
const ctxt = await this.#ensureContext(code);
|
|
63
|
+
return ctxt ? ctxt.code : null;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
async display(code) {
|
|
67
|
+
const ctxt = await this.#ensureContext(code);
|
|
68
|
+
if (!ctxt) {
|
|
69
|
+
return null;
|
|
70
|
+
}
|
|
71
|
+
if (ctxt.display && this.opContext.langs.isEnglishOrNothing()) {
|
|
72
|
+
return ctxt ? ctxt.display : '';
|
|
73
|
+
}
|
|
74
|
+
let disp = this._displayFromSupplements(ctxt.code);
|
|
75
|
+
if (disp) {
|
|
76
|
+
return disp;
|
|
77
|
+
}
|
|
78
|
+
return ctxt.display;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
async definition(code) {
|
|
82
|
+
await this.#ensureContext(code);
|
|
83
|
+
return null; // No definitions provided in original
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
async isAbstract(code) {
|
|
87
|
+
await this.#ensureContext(code);
|
|
88
|
+
return false; // No abstract concepts
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
async isInactive(code) {
|
|
92
|
+
await this.#ensureContext(code);
|
|
93
|
+
return false; // No inactive concepts
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
async isDeprecated(code) {
|
|
97
|
+
await this.#ensureContext(code);
|
|
98
|
+
return false; // No deprecated concepts
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
|
|
102
|
+
async designations(code, displays) {
|
|
103
|
+
const ctxt = await this.#ensureContext(code);
|
|
104
|
+
if (ctxt != null) {
|
|
105
|
+
displays.addDesignation(true, 'active', 'en', CodeSystem.makeUseForDisplay(), ctxt.display);
|
|
106
|
+
this._listSupplementDesignations(ctxt.code, displays);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
|
|
110
|
+
async #ensureContext(code) {
|
|
111
|
+
if (!code) {
|
|
112
|
+
return code;
|
|
113
|
+
}
|
|
114
|
+
if (typeof code === 'string') {
|
|
115
|
+
const ctxt = await this.locate(code);
|
|
116
|
+
if (!ctxt.context) {
|
|
117
|
+
throw new Error(ctxt.message);
|
|
118
|
+
} else {
|
|
119
|
+
return ctxt.context;
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
if (code instanceof AreaCodeConcept) {
|
|
123
|
+
return code;
|
|
124
|
+
}
|
|
125
|
+
throw "Unknown Type at #ensureContext: "+ (typeof code);
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
// Lookup methods
|
|
129
|
+
async locate(code) {
|
|
130
|
+
|
|
131
|
+
assert(!code || typeof code === 'string', 'code must be string');
|
|
132
|
+
if (!code) return { context: null, message: 'Empty code' };
|
|
133
|
+
|
|
134
|
+
const concept = this.codeMap.get(code);
|
|
135
|
+
if (concept) {
|
|
136
|
+
return { context: concept, message: null };
|
|
137
|
+
}
|
|
138
|
+
return { context: null, message: undefined};
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
// Iterator methods
|
|
142
|
+
async iterator(code) {
|
|
143
|
+
|
|
144
|
+
const ctxt = await this.#ensureContext(code);
|
|
145
|
+
if (!ctxt) {
|
|
146
|
+
return { index: 0, total: this.totalCount() };
|
|
147
|
+
}
|
|
148
|
+
return null; // No child iteration
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
async nextContext(iteratorContext) {
|
|
152
|
+
|
|
153
|
+
assert(iteratorContext, 'iteratorContext must be provided');
|
|
154
|
+
if (iteratorContext && iteratorContext.index < iteratorContext.total) {
|
|
155
|
+
const concept = this.codes[iteratorContext.index];
|
|
156
|
+
iteratorContext.index++;
|
|
157
|
+
return concept;
|
|
158
|
+
}
|
|
159
|
+
return null;
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
// Filtering methods
|
|
163
|
+
async doesFilter(prop, op, value) {
|
|
164
|
+
|
|
165
|
+
assert(prop != null && typeof prop === 'string', 'prop must be a non-null string');
|
|
166
|
+
assert(op != null && typeof op === 'string', 'op must be a non-null string');
|
|
167
|
+
assert(value != null && typeof value === 'string', 'value must be a non-null string');
|
|
168
|
+
|
|
169
|
+
return (prop === 'type' || prop === 'class') && op === '=';
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
async searchFilter(filterContext, filter, sort) {
|
|
173
|
+
|
|
174
|
+
assert(filterContext && filterContext instanceof FilterExecutionContext, 'filterContext must be a FilterExecutionContext');
|
|
175
|
+
assert(filter && typeof filter === 'string', 'filter must be a non-null string');
|
|
176
|
+
assert(typeof sort === 'boolean', 'sort must be a boolean');
|
|
177
|
+
|
|
178
|
+
throw new Error('Search filter not implemented for AreaCode');
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
async filter(filterContext, prop, op, value) {
|
|
182
|
+
|
|
183
|
+
assert(filterContext && filterContext instanceof FilterExecutionContext, 'filterContext must be a FilterExecutionContext');
|
|
184
|
+
assert(prop != null && typeof prop === 'string', 'prop must be a non-null string');
|
|
185
|
+
assert(op != null && typeof op === 'string', 'op must be a non-null string');
|
|
186
|
+
assert(value != null && typeof value === 'string', 'value must be a non-null string');
|
|
187
|
+
|
|
188
|
+
if ((prop === 'type' || prop === 'class') && op === '=') {
|
|
189
|
+
const result = new AreaCodeConceptFilter();
|
|
190
|
+
|
|
191
|
+
for (const concept of this.codes) {
|
|
192
|
+
if (concept.class_ === value) {
|
|
193
|
+
result.list.push(concept);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
filterContext.filters.push(result);
|
|
197
|
+
} else {
|
|
198
|
+
throw new Error(`The filter ${prop} ${op} = ${value} is not supported for ${this.system()}`);
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
async executeFilters(filterContext) {
|
|
203
|
+
|
|
204
|
+
assert(filterContext && filterContext instanceof FilterExecutionContext, 'filterContext must be a FilterExecutionContext');
|
|
205
|
+
return filterContext.filters;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
async filterSize(filterContext, set) {
|
|
209
|
+
|
|
210
|
+
assert(filterContext && filterContext instanceof FilterExecutionContext, 'filterContext must be a FilterExecutionContext');
|
|
211
|
+
assert(set && set instanceof AreaCodeConceptFilter, 'set must be a AreaCodeConceptFilter');
|
|
212
|
+
return set.list.length;
|
|
213
|
+
}
|
|
214
|
+
|
|
215
|
+
async filtersNotClosed(filterContext) {
|
|
216
|
+
|
|
217
|
+
assert(filterContext && filterContext instanceof FilterExecutionContext, 'filterContext must be a FilterExecutionContext');
|
|
218
|
+
return false; // Finite set
|
|
219
|
+
}
|
|
220
|
+
|
|
221
|
+
async filterMore(filterContext, set) {
|
|
222
|
+
|
|
223
|
+
assert(filterContext && filterContext instanceof FilterExecutionContext, 'filterContext must be a FilterExecutionContext');
|
|
224
|
+
assert(set && set instanceof AreaCodeConceptFilter, 'set must be a AreaCodeConceptFilter');
|
|
225
|
+
set.cursor++;
|
|
226
|
+
return set.cursor < set.list.length;
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
async filterConcept(filterContext, set) {
|
|
230
|
+
|
|
231
|
+
assert(filterContext && filterContext instanceof FilterExecutionContext, 'filterContext must be a FilterExecutionContext');
|
|
232
|
+
assert(set && set instanceof AreaCodeConceptFilter, 'set must be a AreaCodeConceptFilter');
|
|
233
|
+
if (set.cursor >= 0 && set.cursor < set.list.length) {
|
|
234
|
+
return set.list[set.cursor];
|
|
235
|
+
}
|
|
236
|
+
return null;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
async filterLocate(filterContext, set, code) {
|
|
240
|
+
|
|
241
|
+
assert(filterContext && filterContext instanceof FilterExecutionContext, 'filterContext must be a FilterExecutionContext');
|
|
242
|
+
assert(set && set instanceof AreaCodeConceptFilter, 'set must be a AreaCodeConceptFilter');
|
|
243
|
+
assert(typeof code === 'string', 'code must be non-null string');
|
|
244
|
+
|
|
245
|
+
for (const concept of set.list) {
|
|
246
|
+
if (concept.code === code) {
|
|
247
|
+
return concept;
|
|
248
|
+
}
|
|
249
|
+
}
|
|
250
|
+
return `Code '${code}' not found in filter set`;
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
async filterCheck(filterContext, set, concept) {
|
|
254
|
+
|
|
255
|
+
assert(filterContext && filterContext instanceof FilterExecutionContext, 'filterContext must be a FilterExecutionContext');
|
|
256
|
+
assert(set && set instanceof AreaCodeConceptFilter, 'set must be a AreaCodeConceptFilter');
|
|
257
|
+
const ctxt = await this.#ensureContext(concept);
|
|
258
|
+
return set.list.includes(ctxt);
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
// Subsumption
|
|
262
|
+
async subsumesTest(codeA, codeB) {
|
|
263
|
+
await this.#ensureContext(codeA);
|
|
264
|
+
await this.#ensureContext(codeB);
|
|
265
|
+
return 'not-subsumed'; // No subsumption relationships
|
|
266
|
+
}
|
|
267
|
+
|
|
268
|
+
|
|
269
|
+
versionAlgorithm() {
|
|
270
|
+
return null;
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
|
|
274
|
+
class AreaCodeFactoryProvider extends CodeSystemFactoryProvider {
|
|
275
|
+
constructor(i18n) {
|
|
276
|
+
super(i18n);
|
|
277
|
+
this.uses = 0;
|
|
278
|
+
this.codes = null;
|
|
279
|
+
this.codeMap = null;
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
defaultVersion() {
|
|
283
|
+
return null; // No versioning for area codes
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
system() {
|
|
287
|
+
return 'http://unstats.un.org/unsd/methods/m49/m49.htm';
|
|
288
|
+
}
|
|
289
|
+
|
|
290
|
+
version() {
|
|
291
|
+
return null; // No version specified
|
|
292
|
+
}
|
|
293
|
+
|
|
294
|
+
build(opContext, supplements) {
|
|
295
|
+
this.uses++;
|
|
296
|
+
|
|
297
|
+
return new AreaCodeServices(opContext, supplements, this.codes, this.codeMap);
|
|
298
|
+
}
|
|
299
|
+
|
|
300
|
+
useCount() {
|
|
301
|
+
return this.uses;
|
|
302
|
+
}
|
|
303
|
+
|
|
304
|
+
recordUse() {
|
|
305
|
+
this.uses++;
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
// eslint-disable-next-line no-unused-vars
|
|
309
|
+
async buildKnownValueSet(url, version) {
|
|
310
|
+
return null;
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
async load() {
|
|
314
|
+
this.codes = [];
|
|
315
|
+
this.codeMap = new Map();
|
|
316
|
+
|
|
317
|
+
const data = [
|
|
318
|
+
// Countries
|
|
319
|
+
['004', 'Afghanistan', 'AFG', 'country'],
|
|
320
|
+
['248', 'Åland Islands', 'ALA', 'country'],
|
|
321
|
+
['008', 'Albania', 'ALB', 'country'],
|
|
322
|
+
['012', 'Algeria', 'DZA', 'country'],
|
|
323
|
+
['016', 'American Samoa', 'ASM', 'country'],
|
|
324
|
+
['020', 'Andorra', 'AND', 'country'],
|
|
325
|
+
['024', 'Angola', 'AGO', 'country'],
|
|
326
|
+
['660', 'Anguilla', 'AIA', 'country'],
|
|
327
|
+
['028', 'Antigua and Barbuda', 'ATG', 'country'],
|
|
328
|
+
['032', 'Argentina', 'ARG', 'country'],
|
|
329
|
+
['051', 'Armenia', 'ARM', 'country'],
|
|
330
|
+
['533', 'Aruba', 'ABW', 'country'],
|
|
331
|
+
['036', 'Australia', 'AUS', 'country'],
|
|
332
|
+
['040', 'Austria', 'AUT', 'country'],
|
|
333
|
+
['031', 'Azerbaijan', 'AZE', 'country'],
|
|
334
|
+
['044', 'Bahamas', 'BHS', 'country'],
|
|
335
|
+
['048', 'Bahrain', 'BHR', 'country'],
|
|
336
|
+
['050', 'Bangladesh', 'BGD', 'country'],
|
|
337
|
+
['052', 'Barbados', 'BRB', 'country'],
|
|
338
|
+
['112', 'Belarus', 'BLR', 'country'],
|
|
339
|
+
['056', 'Belgium', 'BEL', 'country'],
|
|
340
|
+
['084', 'Belize', 'BLZ', 'country'],
|
|
341
|
+
['204', 'Benin', 'BEN', 'country'],
|
|
342
|
+
['060', 'Bermuda', 'BMU', 'country'],
|
|
343
|
+
['064', 'Bhutan', 'BTN', 'country'],
|
|
344
|
+
['068', 'Bolivia (Plurinational State of)', 'BOL', 'country'],
|
|
345
|
+
['535', 'Bonaire, Sint Eustatius and Saba', 'BES', 'country'],
|
|
346
|
+
['070', 'Bosnia and Herzegovina', 'BIH', 'country'],
|
|
347
|
+
['072', 'Botswana', 'BWA', 'country'],
|
|
348
|
+
['076', 'Brazil', 'BRA', 'country'],
|
|
349
|
+
['092', 'British Virgin Islands', 'VGB', 'country'],
|
|
350
|
+
['096', 'Brunei Darussalam', 'BRN', 'country'],
|
|
351
|
+
['100', 'Bulgaria', 'BGR', 'country'],
|
|
352
|
+
['854', 'Burkina Faso', 'BFA', 'country'],
|
|
353
|
+
['108', 'Burundi', 'BDI', 'country'],
|
|
354
|
+
['132', 'Cabo Verde', 'CPV', 'country'],
|
|
355
|
+
['116', 'Cambodia', 'KHM', 'country'],
|
|
356
|
+
['120', 'Cameroon', 'CMR', 'country'],
|
|
357
|
+
['124', 'Canada', 'CAN', 'country'],
|
|
358
|
+
['136', 'Cayman Islands', 'CYM', 'country'],
|
|
359
|
+
['140', 'Central African Republic', 'CAF', 'country'],
|
|
360
|
+
['148', 'Chad', 'TCD', 'country'],
|
|
361
|
+
['830', 'Channel Islands', '', 'country'],
|
|
362
|
+
['152', 'Chile', 'CHL', 'country'],
|
|
363
|
+
['156', 'China', 'CHN', 'country'],
|
|
364
|
+
['344', 'China, Hong Kong Special Administrative Region', 'HKG', 'country'],
|
|
365
|
+
['446', 'China, Macao Special Administrative Region', 'MAC', 'country'],
|
|
366
|
+
['170', 'Colombia', 'COL', 'country'],
|
|
367
|
+
['174', 'Comoros', 'COM', 'country'],
|
|
368
|
+
['178', 'Congo', 'COG', 'country'],
|
|
369
|
+
['184', 'Cook Islands', 'COK', 'country'],
|
|
370
|
+
['188', 'Costa Rica', 'CRI', 'country'],
|
|
371
|
+
['384', 'Côte d\'Ivoire', 'CIV', 'country'],
|
|
372
|
+
['191', 'Croatia', 'HRV', 'country'],
|
|
373
|
+
['192', 'Cuba', 'CUB', 'country'],
|
|
374
|
+
['531', 'Curaçao', 'CUW', 'country'],
|
|
375
|
+
['196', 'Cyprus', 'CYP', 'country'],
|
|
376
|
+
['203', 'Czech Republic', 'CZE', 'country'],
|
|
377
|
+
['408', 'Democratic People\'s Republic of Korea', 'PRK', 'country'],
|
|
378
|
+
['180', 'Democratic Republic of the Congo', 'COD', 'country'],
|
|
379
|
+
['208', 'Denmark', 'DNK', 'country'],
|
|
380
|
+
['262', 'Djibouti', 'DJI', 'country'],
|
|
381
|
+
['212', 'Dominica', 'DMA', 'country'],
|
|
382
|
+
['214', 'Dominican Republic', 'DOM', 'country'],
|
|
383
|
+
['218', 'Ecuador', 'ECU', 'country'],
|
|
384
|
+
['818', 'Egypt', 'EGY', 'country'],
|
|
385
|
+
['222', 'El Salvador', 'SLV', 'country'],
|
|
386
|
+
['226', 'Equatorial Guinea', 'GNQ', 'country'],
|
|
387
|
+
['232', 'Eritrea', 'ERI', 'country'],
|
|
388
|
+
['233', 'Estonia', 'EST', 'country'],
|
|
389
|
+
['231', 'Ethiopia', 'ETH', 'country'],
|
|
390
|
+
['234', 'Faeroe Islands', 'FRO', 'country'],
|
|
391
|
+
['238', 'Falkland Islands (Malvinas)', 'FLK', 'country'],
|
|
392
|
+
['242', 'Fiji', 'FJI', 'country'],
|
|
393
|
+
['246', 'Finland', 'FIN', 'country'],
|
|
394
|
+
['250', 'France', 'FRA', 'country'],
|
|
395
|
+
['254', 'French Guiana', 'GUF', 'country'],
|
|
396
|
+
['258', 'French Polynesia', 'PYF', 'country'],
|
|
397
|
+
['266', 'Gabon', 'GAB', 'country'],
|
|
398
|
+
['270', 'Gambia', 'GMB', 'country'],
|
|
399
|
+
['268', 'Georgia', 'GEO', 'country'],
|
|
400
|
+
['276', 'Germany', 'DEU', 'country'],
|
|
401
|
+
['288', 'Ghana', 'GHA', 'country'],
|
|
402
|
+
['292', 'Gibraltar', 'GIB', 'country'],
|
|
403
|
+
['300', 'Greece', 'GRC', 'country'],
|
|
404
|
+
['304', 'Greenland', 'GRL', 'country'],
|
|
405
|
+
['308', 'Grenada', 'GRD', 'country'],
|
|
406
|
+
['312', 'Guadeloupe', 'GLP', 'country'],
|
|
407
|
+
['316', 'Guam', 'GUM', 'country'],
|
|
408
|
+
['320', 'Guatemala', 'GTM', 'country'],
|
|
409
|
+
['831', 'Guernsey', 'GGY', 'country'],
|
|
410
|
+
['324', 'Guinea', 'GIN', 'country'],
|
|
411
|
+
['624', 'Guinea-Bissau', 'GNB', 'country'],
|
|
412
|
+
['328', 'Guyana', 'GUY', 'country'],
|
|
413
|
+
['332', 'Haiti', 'HTI', 'country'],
|
|
414
|
+
['336', 'Holy See', 'VAT', 'country'],
|
|
415
|
+
['340', 'Honduras', 'HND', 'country'],
|
|
416
|
+
['348', 'Hungary', 'HUN', 'country'],
|
|
417
|
+
['352', 'Iceland', 'ISL', 'country'],
|
|
418
|
+
['356', 'India', 'IND', 'country'],
|
|
419
|
+
['360', 'Indonesia', 'IDN', 'country'],
|
|
420
|
+
['364', 'Iran (Islamic Republic of)', 'IRN', 'country'],
|
|
421
|
+
['368', 'Iraq', 'IRQ', 'country'],
|
|
422
|
+
['372', 'Ireland', 'IRL', 'country'],
|
|
423
|
+
['833', 'Isle of Man', 'IMN', 'country'],
|
|
424
|
+
['376', 'Israel', 'ISR', 'country'],
|
|
425
|
+
['380', 'Italy', 'ITA', 'country'],
|
|
426
|
+
['388', 'Jamaica', 'JAM', 'country'],
|
|
427
|
+
['392', 'Japan', 'JPN', 'country'],
|
|
428
|
+
['832', 'Jersey', 'JEY', 'country'],
|
|
429
|
+
['400', 'Jordan', 'JOR', 'country'],
|
|
430
|
+
['398', 'Kazakhstan', 'KAZ', 'country'],
|
|
431
|
+
['404', 'Kenya', 'KEN', 'country'],
|
|
432
|
+
['296', 'Kiribati', 'KIR', 'country'],
|
|
433
|
+
['414', 'Kuwait', 'KWT', 'country'],
|
|
434
|
+
['417', 'Kyrgyzstan', 'KGZ', 'country'],
|
|
435
|
+
['418', 'Lao People\'s Democratic Republic', 'LAO', 'country'],
|
|
436
|
+
['428', 'Latvia', 'LVA', 'country'],
|
|
437
|
+
['422', 'Lebanon', 'LBN', 'country'],
|
|
438
|
+
['426', 'Lesotho', 'LSO', 'country'],
|
|
439
|
+
['430', 'Liberia', 'LBR', 'country'],
|
|
440
|
+
['434', 'Libya', 'LBY', 'country'],
|
|
441
|
+
['438', 'Liechtenstein', 'LIE', 'country'],
|
|
442
|
+
['440', 'Lithuania', 'LTU', 'country'],
|
|
443
|
+
['442', 'Luxembourg', 'LUX', 'country'],
|
|
444
|
+
['450', 'Madagascar', 'MDG', 'country'],
|
|
445
|
+
['454', 'Malawi', 'MWI', 'country'],
|
|
446
|
+
['458', 'Malaysia', 'MYS', 'country'],
|
|
447
|
+
['462', 'Maldives', 'MDV', 'country'],
|
|
448
|
+
['466', 'Mali', 'MLI', 'country'],
|
|
449
|
+
['470', 'Malta', 'MLT', 'country'],
|
|
450
|
+
['584', 'Marshall Islands', 'MHL', 'country'],
|
|
451
|
+
['474', 'Martinique', 'MTQ', 'country'],
|
|
452
|
+
['478', 'Mauritania', 'MRT', 'country'],
|
|
453
|
+
['480', 'Mauritius', 'MUS', 'country'],
|
|
454
|
+
['175', 'Mayotte', 'MYT', 'country'],
|
|
455
|
+
['484', 'Mexico', 'MEX', 'country'],
|
|
456
|
+
['583', 'Micronesia (Federated States of)', 'FSM', 'country'],
|
|
457
|
+
['492', 'Monaco', 'MCO', 'country'],
|
|
458
|
+
['496', 'Mongolia', 'MNG', 'country'],
|
|
459
|
+
['499', 'Montenegro', 'MNE', 'country'],
|
|
460
|
+
['500', 'Montserrat', 'MSR', 'country'],
|
|
461
|
+
['504', 'Morocco', 'MAR', 'country'],
|
|
462
|
+
['508', 'Mozambique', 'MOZ', 'country'],
|
|
463
|
+
['104', 'Myanmar', 'MMR', 'country'],
|
|
464
|
+
['516', 'Namibia', 'NAM', 'country'],
|
|
465
|
+
['520', 'Nauru', 'NRU', 'country'],
|
|
466
|
+
['524', 'Nepal', 'NPL', 'country'],
|
|
467
|
+
['528', 'Netherlands', 'NLD', 'country'],
|
|
468
|
+
['540', 'New Caledonia', 'NCL', 'country'],
|
|
469
|
+
['554', 'New Zealand', 'NZL', 'country'],
|
|
470
|
+
['558', 'Nicaragua', 'NIC', 'country'],
|
|
471
|
+
['562', 'Niger', 'NER', 'country'],
|
|
472
|
+
['566', 'Nigeria', 'NGA', 'country'],
|
|
473
|
+
['570', 'Niue', 'NIU', 'country'],
|
|
474
|
+
['574', 'Norfolk Island', 'NFK', 'country'],
|
|
475
|
+
['580', 'Northern Mariana Islands', 'MNP', 'country'],
|
|
476
|
+
['578', 'Norway', 'NOR', 'country'],
|
|
477
|
+
['512', 'Oman', 'OMN', 'country'],
|
|
478
|
+
['586', 'Pakistan', 'PAK', 'country'],
|
|
479
|
+
['585', 'Palau', 'PLW', 'country'],
|
|
480
|
+
['591', 'Panama', 'PAN', 'country'],
|
|
481
|
+
['598', 'Papua New Guinea', 'PNG', 'country'],
|
|
482
|
+
['600', 'Paraguay', 'PRY', 'country'],
|
|
483
|
+
['604', 'Peru', 'PER', 'country'],
|
|
484
|
+
['608', 'Philippines', 'PHL', 'country'],
|
|
485
|
+
['612', 'Pitcairn', 'PCN', 'country'],
|
|
486
|
+
['616', 'Poland', 'POL', 'country'],
|
|
487
|
+
['620', 'Portugal', 'PRT', 'country'],
|
|
488
|
+
['630', 'Puerto Rico', 'PRI', 'country'],
|
|
489
|
+
['634', 'Qatar', 'QAT', 'country'],
|
|
490
|
+
['410', 'Republic of Korea', 'KOR', 'country'],
|
|
491
|
+
['498', 'Republic of Moldova', 'MDA', 'country'],
|
|
492
|
+
['638', 'Réunion', 'REU', 'country'],
|
|
493
|
+
['642', 'Romania', 'ROU', 'country'],
|
|
494
|
+
['643', 'Russian Federation', 'RUS', 'country'],
|
|
495
|
+
['646', 'Rwanda', 'RWA', 'country'],
|
|
496
|
+
['652', 'Saint Barthélemy', 'BLM', 'country'],
|
|
497
|
+
['654', 'Saint Helena', 'SHN', 'country'],
|
|
498
|
+
['659', 'Saint Kitts and Nevis', 'KNA', 'country'],
|
|
499
|
+
['662', 'Saint Lucia', 'LCA', 'country'],
|
|
500
|
+
['663', 'Saint Martin (French part)', 'MAF', 'country'],
|
|
501
|
+
['666', 'Saint Pierre and Miquelon', 'SPM', 'country'],
|
|
502
|
+
['670', 'Saint Vincent and the Grenadines', 'VCT', 'country'],
|
|
503
|
+
['882', 'Samoa', 'WSM', 'country'],
|
|
504
|
+
['674', 'San Marino', 'SMR', 'country'],
|
|
505
|
+
['678', 'Sao Tome and Principe', 'STP', 'country'],
|
|
506
|
+
['680', 'Sark', '', 'country'],
|
|
507
|
+
['682', 'Saudi Arabia', 'SAU', 'country'],
|
|
508
|
+
['686', 'Senegal', 'SEN', 'country'],
|
|
509
|
+
['688', 'Serbia', 'SRB', 'country'],
|
|
510
|
+
['690', 'Seychelles', 'SYC', 'country'],
|
|
511
|
+
['694', 'Sierra Leone', 'SLE', 'country'],
|
|
512
|
+
['702', 'Singapore', 'SGP', 'country'],
|
|
513
|
+
['534', 'Sint Maarten (Dutch part)', 'SXM', 'country'],
|
|
514
|
+
['703', 'Slovakia', 'SVK', 'country'],
|
|
515
|
+
['705', 'Slovenia', 'SVN', 'country'],
|
|
516
|
+
['090', 'Solomon Islands', 'SLB', 'country'],
|
|
517
|
+
['706', 'Somalia', 'SOM', 'country'],
|
|
518
|
+
['710', 'South Africa', 'ZAF', 'country'],
|
|
519
|
+
['728', 'South Sudan', 'SSD', 'country'],
|
|
520
|
+
['724', 'Spain', 'ESP', 'country'],
|
|
521
|
+
['144', 'Sri Lanka', 'LKA', 'country'],
|
|
522
|
+
['275', 'State of Palestine', 'PSE', 'country'],
|
|
523
|
+
['729', 'Sudan', 'SDN', 'country'],
|
|
524
|
+
['740', 'Suriname', 'SUR', 'country'],
|
|
525
|
+
['744', 'Svalbard and Jan Mayen Islands', 'SJM', 'country'],
|
|
526
|
+
['748', 'Swaziland', 'SWZ', 'country'],
|
|
527
|
+
['752', 'Sweden', 'SWE', 'country'],
|
|
528
|
+
['756', 'Switzerland', 'CHE', 'country'],
|
|
529
|
+
['760', 'Syrian Arab Republic', 'SYR', 'country'],
|
|
530
|
+
['762', 'Tajikistan', 'TJK', 'country'],
|
|
531
|
+
['764', 'Thailand', 'THA', 'country'],
|
|
532
|
+
['807', 'The former Yugoslav Republic of Macedonia', 'MKD', 'country'],
|
|
533
|
+
['626', 'Timor-Leste', 'TLS', 'country'],
|
|
534
|
+
['768', 'Togo', 'TGO', 'country'],
|
|
535
|
+
['772', 'Tokelau', 'TKL', 'country'],
|
|
536
|
+
['776', 'Tonga', 'TON', 'country'],
|
|
537
|
+
['780', 'Trinidad and Tobago', 'TTO', 'country'],
|
|
538
|
+
['788', 'Tunisia', 'TUN', 'country'],
|
|
539
|
+
['792', 'Turkey', 'TUR', 'country'],
|
|
540
|
+
['795', 'Turkmenistan', 'TKM', 'country'],
|
|
541
|
+
['796', 'Turks and Caicos Islands', 'TCA', 'country'],
|
|
542
|
+
['798', 'Tuvalu', 'TUV', 'country'],
|
|
543
|
+
['800', 'Uganda', 'UGA', 'country'],
|
|
544
|
+
['804', 'Ukraine', 'UKR', 'country'],
|
|
545
|
+
['784', 'United Arab Emirates', 'ARE', 'country'],
|
|
546
|
+
['826', 'United Kingdom of Great Britain and Northern Ireland', 'GBR', 'country'],
|
|
547
|
+
['834', 'United Republic of Tanzania', 'TZA', 'country'],
|
|
548
|
+
['840', 'United States of America', 'USA', 'country'],
|
|
549
|
+
['850', 'United States Virgin Islands', 'VIR', 'country'],
|
|
550
|
+
['858', 'Uruguay', 'URY', 'country'],
|
|
551
|
+
['860', 'Uzbekistan', 'UZB', 'country'],
|
|
552
|
+
['548', 'Vanuatu', 'VUT', 'country'],
|
|
553
|
+
['862', 'Venezuela (Bolivarian Republic of)', 'VEN', 'country'],
|
|
554
|
+
['704', 'Viet Nam', 'VNM', 'country'],
|
|
555
|
+
['876', 'Wallis and Futuna Islands', 'WLF', 'country'],
|
|
556
|
+
['732', 'Western Sahara', 'ESH', 'country'],
|
|
557
|
+
['887', 'Yemen', 'YEM', 'country'],
|
|
558
|
+
['894', 'Zambia', 'ZMB', 'country'],
|
|
559
|
+
['716', 'Zimbabwe', 'ZWE', 'country'],
|
|
560
|
+
|
|
561
|
+
// Regions
|
|
562
|
+
['001', 'World', '', 'region'],
|
|
563
|
+
['002', 'Africa', '', 'region'],
|
|
564
|
+
['014', 'Eastern Africa', '', 'region'],
|
|
565
|
+
['017', 'Middle Africa', '', 'region'],
|
|
566
|
+
['015', 'Northern Africa', '', 'region'],
|
|
567
|
+
['018', 'Southern Africa', '', 'region'],
|
|
568
|
+
['011', 'Western Africa', '', 'region'],
|
|
569
|
+
['019', 'Americas', '', 'region'],
|
|
570
|
+
['419', 'Latin America and the Caribbean', '', 'region'],
|
|
571
|
+
['029', 'Caribbean', '', 'region'],
|
|
572
|
+
['013', 'Central America', '', 'region'],
|
|
573
|
+
['005', 'South America', '', 'region'],
|
|
574
|
+
['021', 'Northern America', '', 'region'],
|
|
575
|
+
['142', 'Asia', '', 'region'],
|
|
576
|
+
['143', 'Central Asia', '', 'region'],
|
|
577
|
+
['030', 'Eastern Asia', '', 'region'],
|
|
578
|
+
['034', 'Southern Asia', '', 'region'],
|
|
579
|
+
['035', 'South-Eastern Asia', '', 'region'],
|
|
580
|
+
['145', 'Western Asia', '', 'region'],
|
|
581
|
+
['150', 'Europe', '', 'region'],
|
|
582
|
+
['151', 'Eastern Europe', '', 'region'],
|
|
583
|
+
['154', 'Northern Europe', '', 'region'],
|
|
584
|
+
['039', 'Southern Europe', '', 'region'],
|
|
585
|
+
['155', 'Western Europe', '', 'region'],
|
|
586
|
+
['009', 'Oceania', '', 'region'],
|
|
587
|
+
['053', 'Australia and New Zealand', '', 'region'],
|
|
588
|
+
['054', 'Melanesia', '', 'region'],
|
|
589
|
+
['057', 'Micronesia', '', 'region'],
|
|
590
|
+
['061', 'Polynesia', '', 'region']
|
|
591
|
+
];
|
|
592
|
+
|
|
593
|
+
// Load concepts into arrays and map
|
|
594
|
+
for (const [code, display, abbrev, class_] of data) {
|
|
595
|
+
const concept = new AreaCodeConcept(code, display, abbrev, class_);
|
|
596
|
+
this.codes.push(concept);
|
|
597
|
+
this.codeMap.set(code, concept);
|
|
598
|
+
}
|
|
599
|
+
}
|
|
600
|
+
|
|
601
|
+
name() {
|
|
602
|
+
return 'Region Codes';
|
|
603
|
+
}
|
|
604
|
+
|
|
605
|
+
id() {
|
|
606
|
+
return "areas";
|
|
607
|
+
}
|
|
608
|
+
}
|
|
609
|
+
|
|
610
|
+
module.exports = {
|
|
611
|
+
AreaCodeServices,
|
|
612
|
+
AreaCodeFactoryProvider,
|
|
613
|
+
AreaCodeConcept,
|
|
614
|
+
AreaCodeConceptFilter
|
|
615
|
+
};
|