@vidal-community/vidal-web-components
Version:
Vidal Web Components
66 lines • 5.34 kB
JavaScript
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