Jadpo is experimental and not ready for production. These docs follow the compiler's main branch as of 1 Nov 2026. What's built · Install 0.2.0
jadpo
Reference: Standard library

Standard types

DosageInstruction

On this page

How to take a medicine (FHIR's Dosage): a dose, a route, at least once in a period above nothing, and whether only when needed. Shown 500 mg, Oral use, 2 times per 1 day.

Health; not ordered; since Jadpo 0.1.0.

Make one

Build one from its fields, DosageInstruction { dose: ... route: ... times: ... }.

Fields

Field Type
dose Dose
route RouteOfAdministration
times Int
per Duration
as_needed Bool

Text, JSON and storage

It has no single text form, so text.from and text.parse don't take it. JSON sends an object of its parts.

JSON
{"dose":{"tag":"mass","amount":{"value":"0.0005","unit":"kg"}},"route":"oral","times":2,"per":"PT24H","as_needed":false}
{"dose":{"tag":"volume","amount":{"value":"0.00001","unit":"cubic_metre"}},"route":"oral","times":1,"per":"PT6H","as_needed":true}
{"dose":{"tag":"mass","amount":{"value":"0.00004","unit":"kg"}},"route":"subcutaneous","times":1,"per":"PT168H","as_needed":false}

It is stored in 6 columns, each named for the field, _ and its suffix. This is {"dose":{"tag":"volume","amount":{"value":"0.00001","unit":"cubic_metre"}},"route":"oral","times":1,"per":"PT6H","as_needed":true}:

Column Type Holds
<field>_dose_kind text 'volume'
<field>_dose_amount numeric(38, 9) 0.00001
<field>_route text 'oral'
<field>_times integer 1
<field>_per bigint 21600000
<field>_as_needed boolean TRUE

Shown to people

text.format(value, locale:) shows it to people in their locale.

With locale: Locale.en_gb:

Value Shown
{"dose":{"tag":"mass","amount":{"value":"500","unit":"mg"}},"route":"oral","times":2,"per":"PT24H","as_needed":false} 500 mg, Oral use, 2 times per 1 day
{"dose":{"tag":"volume","amount":{"value":"10","unit":"ml"}},"route":"oral","times":1,"per":"PT6H","as_needed":true} 10 ml, Oral use, 1 time per 6 hours, when needed
{"dose":{"tag":"mass","amount":{"value":"40","unit":"mg"}},"route":"subcutaneous","times":1,"per":"PT168H","as_needed":false} 40 mg, Subcutaneous use, 1 time per 7 days

Operations

It has the contract's own operations: text.format, json.read, json.write and ==. It isn't ordered, so < and sorting don't take it. Every standard type meets one contract says how they work.

Markdown for agents: /docs/types/type-dosage-instruction.md.Built from Jadpo main at e00e61f.