journal/tool/journalUtils.jq
2024-11-09 15:36:49 +00:00

73 lines
2.1 KiB
Plaintext

include "dropins";
import "lib/utilsLib" as utilsLib;
import "lib/stringLib" as stringLib;
import "lib/numberLib" as numberLib;
import "lib/journalLib" as journalLib;
def formatExperienceTitle:
. as $experience |
"\"\(.title)\": \(.creationDate / 1000 | strftime("%d-%m-%Y"))";
def formatIngestionDose($customUnits):
. as $ingestion |
(. | journalLib::ingestionDose($customUnits)) as $dose |
(. | journalLib::ingestionUnit($customUnits)) as $unit |
(. | journalLib::ingestionStandardDeviation($customUnits)) as $standardDeviation |
$customUnits | map(select(.id == $ingestion.customUnitId))[0] as $customUnit |
if $ingestion.dose == null then
"Unknown"
elif $customUnit == null then
if $ingestion.isDoseAnEstimate then "~" else "" end +
"\($dose | numberLib::round(2))" +
if $standardDeviation != null then
"±\($standardDeviation)"
else "" end +
" \($unit)"
else
"\($dose) \($unit) (\($customUnit.dose) \($unit) * \($ingestion.dose) \($customUnit.unit))"
end;
def formatIngestionTime:
. as $ingestion |
$ingestion.time / 1000 | strftime("%a %I:%M %p");
def formatIngestionROA($customUnits; $substitutions):
. as $ingestion |
$ingestion.administrationRoute as $roa |
(if
$substitutions | has($roa)
then
$substitutions | .[$roa]
else
$roa | stringLib::titleCase
end) as $roaText |
$ingestion.customUnitId as $customUnitId |
if
$customUnitId == null
then
$roaText
else
$customUnits | map(select(.id == $customUnitId))[0] as $customUnit |
"\($roaText) (\($customUnit.name))"
end;
def formatIngestionROA($customUnits): formatIngestionROA($customUnits; {});
def formatIngestionInfo:
. as $ingestionInfo |
if $ingestionInfo.dose == null then
"Unknown \($ingestionInfo.unit)"
else
if $ingestionInfo.isEstimate then "~" else "" end +
"\($ingestionInfo.dose * 100 | round / 100)" +
if $ingestionInfo.standardDeviation != null then
"±\($ingestionInfo.standardDeviation)"
else "" end +
if $ingestionInfo.isUnknown then "+ Unknown" else "" end +
" \($ingestionInfo.unit)"
end;