UNPKG

@vidal-community/vidal-web-components

Version:

Vidal Web Components

66 lines 5.34 kB
import { assert } from '@open-wc/testing'; import { parseAtcClassification, findMostRecentOffMarketDate, parsePrescribableName, parseSearchResult, parseVidalClassification, } from './karadoc'; import { Drug, DrugType } from '../model/drug'; import { Classification } from '../model/classification'; import { Classifications } from '../model/classifications'; import { parse } from 'date-fns'; suite('Karadoc parsing', () => { suite('Parse drug search result', async () => { test('package with VMP', async () => { const response = await fetch('../components/vidal-history-ttt/karadoc/test-resources/karadoc-search-package.xml'); const data = await response.text(); const drug = parseSearchResult(data); assert.deepEqual(drug, new Drug(41929, 3400956369553, 5636955, 'DOLIPRANE 1000mg Cpr Plq/100', undefined, Number(undefined), DrugType.PACK, 'PARACETAMOL 1 g cp', 'AVAILABLE', 3170, undefined, 19649)); }); test('UCD', async () => { const response = await fetch('../components/vidal-history-ttt/karadoc/test-resources/karadoc-search-output-UCD.xml'); const data = await response.text(); const drug = parseSearchResult(data); assert.deepEqual(drug, new Drug(3198, Number(undefined), Number(undefined), 'ARKOGELULES CASSIS GELU', '9136712', 3400891367126, DrugType.UCD, '', 'DELETED', undefined, undefined, 1350)); }); }); suite('Parse ATC classifications', async () => { test('package', async () => { const response = await fetch('../components/vidal-history-ttt/karadoc/test-resources/karadoc-atc-classifications.xml'); const data = await response.text(); const classifications = parseAtcClassification(data); assert.deepEqual(classifications, new Classifications(new Classification(2164, 'SYSTEME NERVEUX', 'N', ''), new Classification(1502, 'PARACETAMOL', 'N02BE01', 'SYSTEME NERVEUX / ANALGESIQUES / AUTRES ANALGESIQUES ET ANTIPYRETIQUES / ANILIDES / PARACETAMOL'), false)); }); test('package with multiple ATC classifications having the same root', async () => { const response = await fetch('../components/vidal-history-ttt/karadoc/test-resources/karadoc-atc-classifications-multiple-leaves-with-same-root.xml'); const data = await response.text(); const classifications = parseAtcClassification(data); assert.deepEqual(classifications, new Classifications(new Classification(2168, 'DIVERS', 'V', ''), new Classification(5393, '131I-IODE SODIUM IODURE', 'V09FX03', 'DIVERS / PRODUITS RADIOPHARMACEUTIQUES A USAGE DIAGNOSTIQUE / THYROIDE / DIVERS PRODUITS RADIOPHARMACEUTIQUES A USAGE DIAGNOSTIQUE POUR LA THYROIDE / 131I-IODE SODIUM IODURE' + '\n\n' + "DIVERS / PRODUITS RADIOPHARMACEUTIQUES A USAGE THERAPEUTIQUE / AUTRES PRODUITS RADIOPHARMACEUTIQUES A USAGE THERAPEUTIQUE / DERIVES DE L'IODE 131-I / 131I-IODE SODIUM IODURE"), false)); }); test('package with multiple leaves ATC classifications', async () => { const response = await fetch('../components/vidal-history-ttt/karadoc/test-resources/karadoc-atc-classifications-multiple-leaves.xml'); const data = await response.text(); const classifications = parseAtcClassification(data); assert.deepEqual(classifications, new Classifications(new Classification(2159, 'SYSTEME GENITO URINAIRE ET HORMONES SEXUELLES', 'G', ''), new Classification(882, 'MEDROXYPROGESTERONE', 'G03AC06', 'SYSTEME GENITO URINAIRE ET HORMONES SEXUELLES / HORMONES SEXUELLES ET MODULATEURS DE LA FONCTION GENITALE / CONTRACEPTIFS HORMONAUX A USAGE SYSTEMIQUE / PROGESTATIFS / MEDROXYPROGESTERONE' + '\n\n' + 'ANTINEOPLASIQUES ET IMMUNOMODULATEURS / THERAPEUTIQUE ENDOCRINE / HORMONES ET APPARENTES / PROGESTATIFS / MEDROXYPROGESTERONE'), true)); }); }); test('should parse vidal classification', async () => { const response = await fetch('../components/vidal-history-ttt/karadoc/test-resources/karadoc-vidal-classifications.xml'); const data = await response.text(); const classifications = parseVidalClassification(data); assert.deepEqual(classifications, new Classifications(new Classification(1828, 'Neurologie', 'Neurologie', 'Neurologie / Antiépileptiques / Acide valproïque'), Classification.emptyClass)); }); test('should parse prescribable name', async () => { const response = await fetch('../components/vidal-history-ttt/karadoc/test-resources/karadoc-prescribables.xml'); const data = await response.text(); const prescribableName = parsePrescribableName(data); assert.equal(prescribableName, 'PARACÉTAMOL * 1 G ; VOIE ORALE ; CP'); }); test('should find most recent offMarket date', async () => { const response = await fetch('../components/vidal-history-ttt/karadoc/test-resources/off-market-packages.xml'); const data = await response.text(); const mostRecentDate = findMostRecentOffMarketDate(data); const expectedDate = parse('2010-01-13', 'yyyy-MM-dd', new Date()); assert.deepEqual(expectedDate, mostRecentDate); }); }); //# sourceMappingURL=karadoc_test.js.map