Action is a configurable piece of user interface usually serving a single purpose. The configuration of actions is happening in the urlmap.yaml, for example:
/hello-world: action: type: page
/do( | |
$version := @study[$study].config_version.id(), | |
$p_id := merge(participant_group { | |
study_version := $version, | |
code := if_null($participant_group, 'all-participants') | |
}), | |
$t_id := merge(time_period := { | |
study_version := $version, | |
code := if_null($time_period, 'anytime'), | |
title := if_null(title, 'Anytime') |
/do( | |
$config_version := insert(study_version := { | |
study := $study, | |
note := $new_note | |
}), | |
$study_id := $study, | |
update(study[$study_id]{id(), | |
config_version := $config_version | |
}), | |
for($pg := /study[$study_id].active_version.participant_group.id(), |
study_version.full: "({*, | |
/participant_group{*, display := code}, | |
/time_period{*, display := title}, | |
/requirement_list{*, | |
display := __title__ | |
+ ' (' + string(count(requirement)) + ' Requirement(s))', | |
/requirement | |
.define(mt_r := measure_type_revision_x_requirement){*, | |
display := '(' + asset_type.code + '): ' + title, | |
measure_type_x_requirement := |
/do( | |
$id := top(study_version?id()=$study_version).id(), | |
$mtr := /study_version[$id].requirement_list.requirement | |
.measure_type_revision_x_requirement.measure_type_revision.id(), | |
$mt := /measure_type | |
.filter(exists(measure_type_revision=$mtr)).id(), | |
/measure_type{*, | |
/measure_type_revision{*, | |
/measure_type_revision_channel{*} | |
}?id()=$mtr |
/do( | |
$mtr := /(study_version?id()=$id).requirement_list.requirement | |
.measure_type_revision_x_requirement.measure_type_revision.id(), | |
$mt := /measure_type | |
.filter(exists(measure_type_revision=$mtr)).id(), | |
{ | |
acquire_channel := /acquire_channel.id(), | |
version := top(study_version?id()=$id).export, | |
measure_type := /measure_type{*, | |
/measure_type_revision{*, |
renderSelectionForm(measureTypes) { | |
console.log(measureTypes); | |
let form = ( | |
<Form | |
insert | |
value={{measure_type: null}} | |
schema={{ | |
type: 'object', | |
properties: {measure_type: {type: 'any'}}, | |
required: ['measure_type'] |
/do( | |
$_s_e := top(visit.filter(id()=$visit)).study_enrollment.id(), | |
$_a_c := top(acquire_channel.filter(id()=$acquire_channel)).id(), | |
$_title := if_null($title, '---'), | |
$id := insert(todo := { | |
individual := $individual, | |
study_enrollment := $_s_e, | |
expected_completion_date := $ecd, | |
title := if_null($title, '---'), | |
asset_type := 'measure', |
fulfill-sample: | |
type: form | |
title: Fulfill Sample | |
entity: todo | |
input: | |
- todo: todo[sample-not-started] | |
submit_button: Add Sample | |
value: | | |
{sample := { sample_type := null() }} | |
fields: |