Skip to content

Commit d66721b

Browse files
committed
History working
1 parent 491bf9f commit d66721b

4 files changed

Lines changed: 38 additions & 15 deletions

File tree

common-data-defs.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -98,7 +98,7 @@ const formProfileContentX = [
9898

9999
const formHistoricalContentX = [
100100
{
101-
streamId: 'ttc-tta',
101+
streamId: 'fertility-ttc-tta',
102102
eventType: 'fertility-intention/ttc-tta',
103103
label: 'Trying to conceive / Avoiding pregnancy',
104104
type: 'select',

patient-history-controler.js

Lines changed: 27 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -21,30 +21,40 @@ window.onload = async (event) => {
2121
dateInput.onfocusout = function () {
2222
const date = dateInput.valueAsDate;
2323
console.log("## Focus Out Date", date);
24-
refreshForm(date);
24+
refreshAll(date);
2525
};
2626

27-
refreshForm(dateInput.valueAsDate);
28-
refreshDataTable();
27+
refreshAll(dateInput.valueAsDate);
2928
};
3029

31-
async function refreshForm(date) {
30+
async function refreshAll(date) {
3231
console.log("## Refresh Form Date:", date);
3332
const { questionaryId, formKey } = navData;
3433
// -- content
3534
console.log();
3635
const formData = await patientLib.getFormContent(
3736
questionaryId,
38-
formKey,
39-
date
37+
formKey
4038
);
39+
const tableRow = await refreshDataTable(date);
40+
console.log('## tableRow', tableRow);
41+
42+
// HACKY WAY TO ADD EXISTNG CONTENT SHOULD BE DONE IN LIB
43+
for (const field of formData) {
44+
if (tableRow[field.id]) {
45+
field.value = tableRow[field.id].value;
46+
field.eventId = tableRow[field.id].eventId;
47+
}
48+
}
49+
4150
updateFormContent(formData);
4251
document.getElementById("submit-button-list").onclick = function () {
4352
submitForm(formData, date);
4453
};
4554
}
4655

4756
async function refreshDataTable(date) {
57+
const currentDateStr = date.toISOString().split("T")[0]; // format YYYY-MM-DD;
4858
const { questionaryId, formKey } = navData;
4959
const tableData = await patientLib.getHistoricalContent(
5060
questionaryId,
@@ -65,15 +75,22 @@ async function refreshDataTable(date) {
6575
}
6676
for (const [dateStr, data] of Object.entries(tableData.valuesByDate)) {
6777
const row = table.insertRow(-1);
78+
if (currentDateStr === dateStr) {
79+
row.style.backgroundColor = 'grey';
80+
} else {
81+
row.onclick =
82+
}
83+
6884
const cellDate = row.insertCell(-1);
6985
cellDate.innerHTML = dateStr;
7086
for (const th of tableData.tableHeaders) {
7187
const cell = row.insertCell(-1);
72-
cell.innerHTML = data[th.fieldId] || '';
88+
cell.innerHTML = data[th.fieldId]?.value || '';
7389
}
7490
}
7591

7692
console.log("## tabledata", tableData);
93+
return tableData.valuesByDate[currentDateStr] || {};
7794
}
7895

7996
// ------- Form -------- //
@@ -89,7 +106,7 @@ async function updateFormContent(formData) {
89106
for (let i = 0; i < formData.length; i++) {
90107
const formField = formData[i];
91108
const fieldId = formField.id;
92-
const fieldValue = formField.value != null ? formField.value : "";
109+
const fieldValue = formField.value != null ? `${formField.value}` : '';
93110
const fieldType = formField.type;
94111
const fieldLabel = formField.label;
95112

@@ -101,7 +118,7 @@ async function updateFormContent(formData) {
101118
fieldHTML += `<select id="${fieldId}" class="form-control">`;
102119
fieldHTML += `<option value="">--</option>`;
103120
for (const option of formField.options) {
104-
const selected = option.value === fieldValue ? "selected" : "";
121+
const selected = `${option.value}` === fieldValue ? "selected" : "";
105122
fieldHTML += `<option value="${option.value}" ${selected}>${option.label}</option>`;
106123
}
107124
fieldHTML += `</select>`;
@@ -131,4 +148,5 @@ async function submitForm(formData, date) {
131148
}
132149
await patientLib.handleFormSubmit(formData, values, date);
133150
alert("Form submitted successfully");
151+
refreshAll(date);
134152
}

patient-history.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,8 @@ <h3 class="card-title"> Set: <span id="card-questionnary-details-question-set">H
3636
</div>
3737
<button type="button" id="submit-button-list" class="btn btn-primary mb-2">Submit</button>
3838
</form>
39+
<hr>
40+
<h3>History:</h3>
3941
<table id="historical-data" class="table"></table>
4042
</div>
4143
</div>

patient-lib.js

Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ async function getFormRecurringContent (form, date) {
100100

101101
for (let i = 0; i < formReccuringData.length; i++) {
102102
const field = formReccuringData[i];
103-
field.id = form.key + '-' + i;
103+
field.id = field.streamId + ':' + field.eventType;
104104
}
105105
return formReccuringData;
106106

@@ -129,7 +129,7 @@ async function getFormExistingContent (form, date) {
129129
for (let i = 0; i < res.length; i++) {
130130
const e = res[i];
131131
const field = formData[i];
132-
field.id = form.key + '-' + i;
132+
field.id = field.streamId + ':' + field.eventType;
133133
console.log('## getFormContent ' + i, e);
134134
if (e.events && e.events.length > 0) {
135135
const event = e.events[0];
@@ -150,11 +150,14 @@ async function getHistoricalContent(questionaryId, formKey) {
150150
}));
151151

152152
const valuesByDate = {};
153-
function addEntry (field, time, value) {
153+
function addEntry (field, time, event) {
154154
const dateStr = (new Date(time * 1000)).toISOString().split('T')[0];
155155
if (valuesByDate[dateStr] == null) valuesByDate[dateStr] = {};
156156
const fieldId = field.streamId + ':' + field.eventType;
157-
valuesByDate[dateStr][fieldId] = valueForField(value, field);
157+
valuesByDate[dateStr][fieldId] = {
158+
value: valueForField(event.content, field),
159+
eventId: event.id
160+
}
158161
}
159162

160163
// get the values from the API
@@ -172,7 +175,7 @@ async function getHistoricalContent(questionaryId, formKey) {
172175
const field = formFields[i];
173176
if (e.events) {
174177
for (const event of e.events) {
175-
addEntry(field, event.time, event.content);
178+
addEntry(field, event.time, event);
176179
}
177180
}
178181
}

0 commit comments

Comments
 (0)