diff --git a/src/app/services/terminology.service.ts b/src/app/services/terminology.service.ts index 4bb44d0..b4b89f5 100644 --- a/src/app/services/terminology.service.ts +++ b/src/app/services/terminology.service.ts @@ -130,10 +130,20 @@ export class TerminologyService { if (this.context) { return this.context.languageDialects; } else if (this.languageRefsetConcept) { - return this.lang + '-X-' + this.languageRefsetConcept.code + return this.toLanguageCode(this.lang, this.languageRefsetConcept.code); } else return this.lang; } + toLanguageCode(lang: string, langRefset: string) { + if (langRefset.length > 16) { + return `${lang}-x-sctlang-${langRefset.substring(0, 8)}-${langRefset.substring(8, 16)}-${langRefset.substring(16)}`; + } else if (langRefset.length > 8) { + return `${lang}-x-sctlang-${langRefset.substring(0, 8)}-${langRefset.substring(8)}`; + } else { + return `${lang}-x-sctlang-${langRefset}`; + } + } + getCodeSystems() { let requestUrl = `${this.snowstormFhirBase}/CodeSystem`; if (this.snowstormFhirBase.includes('ontoserver')) {