-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathvalportaal-acceptance-test.js
130 lines (101 loc) · 7.26 KB
/
valportaal-acceptance-test.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
// SPDX-License-Identifier: GPL-3.0-or-later
// Copyright (C) 2021 S. K. Medlock, E. K. Herman, K. M. Shaw
// vim: set sts=4 shiftwidth=4 expandtab :
"use strict";
// let SERVER_PORT = process.argv[4];
// let BASE_URL = `http://127.0.0.1:${SERVER_PORT}`;
let BASE_URL = process.argv[4];
import {
Selector
} from 'testcafe';
fixture `ValPortaalServer`;
let patient_1168 = "00000000-0000-4000-8000-100000001168";
let fake_bsn_1168 = "888001168"; // Math.floor(Math.random() * 999999998) + 1;
// TODO: make launching of the Webserver the job of the test, and
// TODO: have each test launch a different instance on a different port
test('Check index', async t => {
let url = `${BASE_URL}/index.html`;
let window1 = await t.openWindow(url);
let selector = Selector('body');
// initial check that patient data is rendered
await t.expect(selector.withText('Val Portaal').exists).ok()
});
let patient_export_data = [{
"patient_id": patient_1168,
"medcat_name": "methocarbamol",
"ATC_code": "M03BA03",
"advice": "Stoppen via een afbouwschema. {{free text}}",
"freetext": null,
"prediction_result": 50
}, {
"patient_id": patient_1168,
"medcat_name": "methocarbamol",
"ATC_code": "M03BA03",
"advice": "Overige opmerkingen: {{free text}}",
"freetext": "My comment",
"prediction_result": 50
}, {
"patient_id": patient_1168,
"medcat_name": null,
"ATC_code": "OTHER",
"advice": "Uw arts heeft nog de volgende advies voor u over uw medicatie: {{free text}}",
"freetext": "Please continue taking all other medications.",
"prediction_result": 50
}, {
"patient_id": patient_1168,
"medcat_name": "Valpreventie advies",
"ATC_code": "NONMED",
"advice": "<span class=\"patient_nonmed_category\">Valpreventie advies:</span>\n\n**Valpreventie bij ouderen. Wat kunt u zelf doen?** In deze tekst leest u wat u zelf kunt doen om vallen zoveel mogelijk te voorkomen. Er wordt ingegaan op een aantal factoren die het risico op vallen verhogen. Deze factoren hangen onderling samen en versterken elkaar. Deze informatietekst helpt na te gaan welke factoren bij u aanwezig zijn. U krijgt een aantal adviezen om het risico op vallen te verminderen. Hoe eerder u de gevaren aanpakt, hoe sneller het risico op vallen afneemt.\n\n**Voorkomen van vallen bij ouderen** Vallen bij oudere mensen is een ernstig en veelvoorkomend probleem. Ongeveer één op de drie nog thuiswonende ouderen valt minstens éénmaal per jaar. Dit kan nare gevolgen hebben. Sommigen moeten na een val opgenomen worden in een zorgcentrum of ziekenhuis. Bij anderen ontstaat veel angst om opnieuw te vallen. Dit leidt tot onzekerheid bij gewone, dagelijkse bezigheden. Sommige ouderen gaan daarom minder het huis uit en raken sociaal geïsoleerd. Hoe eerder u de gevaren aanpakt, hoe sneller het risico op vallen afneemt.\n\n**Veilig bewegen, veilig schoeisel** Onveilig schoeisel met bijvoorbeeld gladde zolen of hoge hakken verhogen het valrisico verder. Veilig schoeisel heeft een goed profiel op de zool, een lage hak (max. 1 cm), is hoog sluitend (net onder de enkel) en heeft een goed, voorgevormd voetbed of een inlay die voetbed goed steunt. Loop (bij uit bed komen bijvoorbeeld) nooit op sokken maar gebruik altijd pantoffels die voldoen aan eerder genoemde eisen. Als u niet meer goed ter been bent, of zich onzeker voelt bij het lopen, kunt u gebruik maken van hulpmiddelen zoals een looprek (rollator) of een wandelstok. Deze kunt u aanschaffen via de thuiszorgwinkel. Een fysiotherapeut kan met u meekijken welk loophulpmiddel het meest geschikt voor u is. Risicoactiviteiten, zoals op een stoel gaan staan om iets hoog uit een kast te nemen, kunt u beter vermijden. Voor informatie over vergoedingen van deze hulpmiddelen kunt u terecht op de website "Hulpmiddelenwijzer" (https://www.hulpmiddelenwijzer.nl/) of bij uw zorgverzekering.\n\n**Pas op met alcohol** Als u ouder wordt, krijgt u meer last van bijwerkingen van alcohol. Alcohol heeft effect heeft op uw balans en uw bloedvaten. Uw bloedvaten verwijden waardoor u ook de volgende dag nog sneller last heeft van duizeligheid. Ga dus bewust om met alcohol.\n\n**Eet u sterk** Omdat uw spiermassa afneemt, is het advies om na uw 50ste extra te letten op het binnenkrijgen van voldoende eiwitten en vitamines.\n- De aanbevolen hoeveelheid eiwit voor ouderen is 1 gram/kg per dag. Eiwitten zitten met name in vlees, vis, melk(producten) en vleesvervangers.\n- Ouderen nemen minder makkelijk vitamine D op Daarom hebben ze vaak een vitamine D tekort. Vitamine D is van belang voor de kracht van uw botten en uw balans.\n- Kalk is de bouwsteen van uw botten. Eet 4 porties zuivel per dag, zeker als u last heeft van botontkalking. Voorbeeld: een plak kaas, een beker melk of yoghurt.\n\n**Ga naar de dokter** Vallen heeft vaak behandelbare oorzaken. Vallen kan ook een teken van een onderliggende ziekte zijn. Een val kan bijvoorbeeld een symptoom zijn van onderliggende problemen zoals een hartaandoening of een simpele blaasontsteking. Bij hernieuwd vallen is het dan ook altijd belangrijk om contact op te nemen met uw (huis)arts. Deze kan onderzoeken of er (nieuwe) oorzaken voor het vallen zijn ontstaan.",
"freetext": null,
"prediction_result": 50
}];
"use strict";
const fs = require('fs');
const adb = require('./adfice-db');
async function export_to_portal_db(db_env_file_path, patient_id, bsn, json_advice) {
let sqls_and_params = [];
sqls_and_params.push([
"DELETE FROM patient_advice WHERE patient_id = ?",
[patient_id]
]);
sqls_and_params.push([
"INSERT INTO patient_advice (patient_id, bsn, json_advice)" +
" VALUES (?,?,?)",
[patient_id, bsn, JSON.stringify(json_advice)]
]);
let results = null;
let db = await adb.init(null, db_env_file_path);
try {
results = await db.as_sql_transaction(sqls_and_params);
} finally {
await db.close();
}
return results;
}
async function load_patient_1168_data() {
await export_to_portal_db('./dbconfig.env',
patient_1168, fake_bsn_1168, patient_export_data);
}
test('Check advice page', async t => {
await load_patient_1168_data();
let url = `${BASE_URL}/static/advice.html?code=bogus_code`;
let window1 = await t.openWindow(url);
let selector = Selector('body');
// expect a login button
// click the login button
// return BSN for 168
// redirect back to /static/advice.html // ?id=${patient_1168}
// initial check that patient data is rendered
await t.expect(selector.withText('Methocarbamol').exists).ok();
let med_advice = Selector('#med_advice');
await t.expect(med_advice.withText('Stoppen').exists).ok();
await t.expect(med_advice.withText('My comment').exists).ok();
// TODO not sure that this test does what I want. I want to confirm that Methocarbamol does not appear > 1x.
await t.expect(med_advice.withText(/(Methocarbamol.*){2}/).exists).notOk();
let other_med_advice = Selector('#other_med_advice');
await t.expect(other_med_advice.withText('Please continue').exists).ok();
let nonmed_advice = Selector('#nonmed_advice');
await t.expect(nonmed_advice.withText('Valpreventie bij ouderen').exists).ok();
let last_changed = Selector('#last_changed');
await t.expect(last_changed.withText('op: ').exists).ok();
});