medicalinfo: Read height + weight from myprofile

pull/3192/head
Erik Andresen 2024-02-11 09:32:52 +01:00
parent 9271c2e6ca
commit 2c6bc3eb40
6 changed files with 14 additions and 13 deletions

View File

@ -1 +1,2 @@
0.01: Initial Medical Information application! 0.01: Initial Medical Information application!
0.02. Read height and weight from myprofile

View File

@ -10,12 +10,12 @@ The file has the following contents:
``` ```
{ {
"bloodType": "", "bloodType": "",
"height": "",
"weight": "",
"medicalAlert": [ "" ] "medicalAlert": [ "" ]
} }
``` ```
Weight and height are read from myprofile.
## Medical information editor ## Medical information editor
Clicking on the download icon of `Medical Information` in the app loader invokes the editor. Clicking on the download icon of `Medical Information` in the app loader invokes the editor.

View File

@ -1,8 +1,7 @@
const medicalinfo = require('medicalinfo').load(); const medicalinfo = require('medicalinfo').load();
const myprofile = require("Storage").readJSON("myprofile.json",1)||{};
// const medicalinfo = { // const medicalinfo = {
// bloodType: "O+", // bloodType: "O+",
// height: "166cm",
// weight: "73kg"
// }; // };
function hasAlert(info) { function hasAlert(info) {
@ -12,7 +11,7 @@ function hasAlert(info) {
// No space for widgets! // No space for widgets!
// TODO: no padlock widget visible so prevent screen locking? // TODO: no padlock widget visible so prevent screen locking?
g.clear(); g.reset().clear();
const bodyFont = g.getFonts().includes("12x20") ? "12x20" : "6x8:2"; const bodyFont = g.getFonts().includes("12x20") ? "12x20" : "6x8:2";
g.setFont(bodyFont); g.setFont(bodyFont);
@ -33,10 +32,14 @@ if (hasAlert(medicalinfo)) {
if (medicalinfo.bloodType) { if (medicalinfo.bloodType) {
lines = lines.concat(g.wrapString("Blood group: " + medicalinfo.bloodType, g.getWidth() - 10)); lines = lines.concat(g.wrapString("Blood group: " + medicalinfo.bloodType, g.getWidth() - 10));
} }
if (medicalinfo.height) { if (myprofile.height) { // Prefer height from myprofile if set
lines = lines.concat(g.wrapString("Height: " + require("locale").distance(myprofile.height, 2), g.getWidth() - 10));
} else if (medicalinfo.height) { // read height from own settings if previously stored here
lines = lines.concat(g.wrapString("Height: " + medicalinfo.height, g.getWidth() - 10)); lines = lines.concat(g.wrapString("Height: " + medicalinfo.height, g.getWidth() - 10));
} }
if (medicalinfo.weight) { if (myprofile.weight) { // Prefer weight from myprofile if set
lines = lines.concat(g.wrapString("Weight: " + myprofile.weight + "kg", g.getWidth() - 10));
} else if (medicalinfo.weight) { // read weight from own settings if previously stored here
lines = lines.concat(g.wrapString("Weight: " + medicalinfo.weight, g.getWidth() - 10)); lines = lines.concat(g.wrapString("Weight: " + medicalinfo.weight, g.getWidth() - 10));
} }

View File

@ -3,8 +3,6 @@ const storage = require('Storage');
exports.load = function () { exports.load = function () {
const medicalinfo = storage.readJSON('medicalinfo.json') || { const medicalinfo = storage.readJSON('medicalinfo.json') || {
bloodType: "", bloodType: "",
height: "",
weight: "",
medicalAlert: [""] medicalAlert: [""]
}; };

View File

@ -1,6 +1,4 @@
{ {
"bloodType": "", "bloodType": "",
"height": "",
"weight": "",
"medicalAlert": [ "" ] "medicalAlert": [ "" ]
} }

View File

@ -1,6 +1,6 @@
{ "id": "medicalinfo", { "id": "medicalinfo",
"name": "Medical Information", "name": "Medical Information",
"version":"0.01", "version":"0.02",
"description": "Provides 'medicalinfo.json' used by various health apps, as well as a way to edit it from the App Loader", "description": "Provides 'medicalinfo.json' used by various health apps, as well as a way to edit it from the App Loader",
"icon": "app.png", "icon": "app.png",
"tags": "health,medical", "tags": "health,medical",
@ -16,5 +16,6 @@
], ],
"data": [ "data": [
{"name":"medicalinfo.json","url":"medicalinfo.json"} {"name":"medicalinfo.json","url":"medicalinfo.json"}
] ],
"dependencies": {"myprofile":"app"}
} }