Skip to content

Instantly share code, notes, and snippets.

View zindel's full-sized avatar

Oleksiy Golovko zindel

  • Prague, The Czech Republic
View GitHub Profile

Actions

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: