Closed simonfernandes closed 10 months ago
Here are the Trino queries I've written to send technique question data to Emma, most recently for ISIS Direct 23/2. They should still be accurate if no questions have changed since.
As mentioned above, an easy option could be to add these to the Reporting Tool (probably under a separate drop-down!)
SELECT p.proposal_id AS "Reference number",
c.call_short_code AS "Call",
json_extract_scalar(a_inst.answer, '$.value[0]') AS "Instrument requested",
json_extract_scalar(a_days_req.answer, '$.value.value') AS "Days requested",
json_extract_scalar(a_technique.answer, '$.value[0]') AS "Technique",
json_extract_scalar(a_lengthscale.answer, '$.value') AS "Lengthscale",
json_extract_scalar(a_sesans.answer, '$.value[0]') AS "SESANS?",
json_extract_scalar(a_measured.answer, '$.value[0]') AS "Already measured?",
json_extract_scalar(a_isis_measure.answer, '$.value[0]') AS "Measure at ISIS?",
json_extract_scalar(a_polarised.answer, '$.value[0]') AS "Polarised SANS?",
pi.display_name AS "PI",
p.title AS "Proposal title"
FROM duo.public.proposals p
JOIN duo.public.call c
ON c.call_id = p.call_id
JOIN duo.public.questionaries qy
ON qy.questionary_id = p.questionary_id
JOIN duo.public.questions q_days_req
ON q_days_req.natural_key = 'days_requested'
LEFT JOIN duo.public.answers a_days_req
ON a_days_req.question_id = q_days_req.question_id
AND a_days_req.questionary_id = qy.questionary_id
JOIN duo.public.questions q_technique
ON q_technique.natural_key = 'scientific_technique'
JOIN duo.public.answers a_technique
ON a_technique.question_id = q_technique.question_id
AND a_technique.questionary_id = qy.questionary_id
AND json_extract_scalar(a_technique.answer, '$.value[0]') = 'Small angle scattering '
JOIN duo.public.questions q_inst
ON q_inst.natural_key = 'isis_instrument'
LEFT JOIN duo.public.answers a_inst
ON a_inst.question_id = q_inst.question_id
AND a_inst.questionary_id = qy.questionary_id
LEFT JOIN duo.public.questions q_lengthscale
ON q_lengthscale.natural_key = 'samepl_lengthscale_text_input'
LEFT JOIN duo.public.answers a_lengthscale
ON a_lengthscale.question_id = q_lengthscale.question_id
AND a_lengthscale.questionary_id = qy.questionary_id
LEFT JOIN duo.public.questions q_sesans
ON q_sesans.natural_key = 'sesans_options'
LEFT JOIN duo.public.answers a_sesans
ON a_sesans.question_id = q_sesans.question_id
AND a_sesans.questionary_id = qy.questionary_id
LEFT JOIN duo.public.questions q_measured
ON q_measured.natural_key = 'sans_measurement_yn'
LEFT JOIN duo.public.answers a_measured
ON a_measured.question_id = q_measured.question_id
AND a_measured.questionary_id = qy.questionary_id
LEFT JOIN duo.public.questions q_isis_measure
ON q_isis_measure.natural_key = 'sans_measurement_required'
LEFT JOIN duo.public.answers a_isis_measure
ON a_isis_measure.question_id = q_isis_measure.question_id
AND a_isis_measure.questionary_id = qy.questionary_id
LEFT JOIN duo.public.questions q_polarised
ON q_polarised.natural_key = 'polarised_sans_yn'
LEFT JOIN duo.public.answers a_polarised
ON a_polarised.question_id = q_polarised.question_id
AND a_polarised.questionary_id = qy.questionary_id
JOIN duo.public.proposal_table_view ptv
ON ptv.proposal_pk = p.proposal_pk
AND LOWER(proposal_status_name) LIKE '%submitted%'
LEFT JOIN isisuserdb.isisuserdb.reporting_person pi
ON pi.user_number = CAST(p.proposer_id AS VARCHAR)
WHERE c.call_short_code = 'ISIS Direct 2023_2'
ORDER BY p.proposal_id ASC
SELECT p.proposal_id AS "Reference number",
c.call_short_code AS "Call",
json_extract_scalar(a_inst.answer, '$.value[0]') AS "Instrument requested",
json_extract_scalar(a_days_req.answer, '$.value.value') AS "Days requested",
json_extract_scalar(a_technique.answer, '$.value[0]') AS "Technique",
json_extract(a_type.answer, '$.value') AS "Type",
json_extract_scalar(a_area.answer, '$.value') AS "Surface area",
json_extract_scalar(a_sub_thick.answer, '$.value') AS "Substrate thickness",
json_extract_scalar(a_sub_mat.answer, '$.value') AS "Substrate material",
json_extract(a_interfaces.answer, '$.value') AS "Interfaces",
json_extract_scalar(a_sim_meas.answer, '$.value') AS "Simultaneous measurements",
json_extract_scalar(a_kinetic.answer, '$.value') AS "Kinetic or off-specular",
pi.display_name AS "PI",
p.title AS "Proposal title"
FROM duo.public.proposals p
JOIN duo.public.call c
ON c.call_id = p.call_id
JOIN duo.public.questionaries qy
ON qy.questionary_id = p.questionary_id
JOIN duo.public.questions q_days_req
ON q_days_req.natural_key = 'days_requested'
LEFT JOIN duo.public.answers a_days_req
ON a_days_req.question_id = q_days_req.question_id
AND a_days_req.questionary_id = qy.questionary_id
JOIN duo.public.questions q_technique
ON q_technique.natural_key = 'scientific_technique'
JOIN duo.public.answers a_technique
ON a_technique.question_id = q_technique.question_id
AND a_technique.questionary_id = qy.questionary_id
AND json_extract_scalar(a_technique.answer, '$.value[0]') = 'Reflectometry '
JOIN duo.public.questions q_inst
ON q_inst.natural_key = 'isis_instrument'
LEFT JOIN duo.public.answers a_inst
ON a_inst.question_id = q_inst.question_id
AND a_inst.questionary_id = qy.questionary_id
LEFT JOIN duo.public.questions q_type
ON q_type.natural_key = 'reflectometry_exp_type_mc'
LEFT JOIN duo.public.answers a_type
ON a_type.question_id = q_type.question_id
AND a_type.questionary_id = qy.questionary_id
LEFT JOIN duo.public.questions q_area
ON q_area.natural_key = 'reflectometry_sample_surface_area_text'
LEFT JOIN duo.public.answers a_area
ON a_area.question_id = q_area.question_id
AND a_area.questionary_id = qy.questionary_id
LEFT JOIN duo.public.questions q_sub_thick
ON q_sub_thick.natural_key = 'reflectometry_substrate_thickness_area_text'
LEFT JOIN duo.public.answers a_sub_thick
ON a_sub_thick.question_id = q_sub_thick.question_id
AND a_sub_thick.questionary_id = qy.questionary_id
LEFT JOIN duo.public.questions q_sub_mat
ON q_sub_mat.natural_key = 'reflectometry_substrate_material_area_text'
LEFT JOIN duo.public.answers a_sub_mat
ON a_sub_mat.question_id = q_sub_mat.question_id
AND a_sub_mat.questionary_id = qy.questionary_id
LEFT JOIN duo.public.questions q_interfaces
ON q_interfaces.natural_key = 'reflectometry_interface_mc'
LEFT JOIN duo.public.answers a_interfaces
ON a_interfaces.question_id = q_interfaces.question_id
AND a_interfaces.questionary_id = qy.questionary_id
LEFT JOIN duo.public.questions q_sim_meas
ON q_sim_meas.natural_key = 'reflectometry_simultaneous_measurements_text'
LEFT JOIN duo.public.answers a_sim_meas
ON a_sim_meas.question_id = q_sim_meas.question_id
AND a_sim_meas.questionary_id = qy.questionary_id
LEFT JOIN duo.public.questions q_kinetic
ON q_kinetic.natural_key = 'reflectometry_measurement_text'
LEFT JOIN duo.public.answers a_kinetic
ON a_kinetic.question_id = q_kinetic.question_id
AND a_kinetic.questionary_id = qy.questionary_id
JOIN duo.public.proposal_table_view ptv
ON ptv.proposal_pk = p.proposal_pk
AND LOWER(proposal_status_name) LIKE '%submitted%'
LEFT JOIN isisuserdb.isisuserdb.reporting_person pi
ON pi.user_number = CAST(p.proposer_id AS VARCHAR)
WHERE c.call_short_code = 'ISIS Direct 2023_2'
ORDER BY p.proposal_id ASC
SELECT p.proposal_id AS "Reference number",
c.call_short_code AS "Call",
json_extract_scalar(a_inst.answer, '$.value[0]') AS "Instrument requested",
json_extract_scalar(a_days_req.answer, '$.value.value') AS "Days requested",
json_extract_scalar(a_technique.answer, '$.value[0]') AS "Technique",
json_extract_scalar(a_a.answer, '$.value.value') AS "a(Å)",
json_extract_scalar(a_b.answer, '$.value.value') AS "b(Å)",
json_extract_scalar(a_c.answer, '$.value.value') AS "c(Å)",
json_extract_scalar(a_alpha.answer, '$.value.value') AS "alpha(o)",
json_extract_scalar(a_beta.answer, '$.value.value') AS "beta(o)",
json_extract_scalar(a_gamma.answer, '$.value.value') AS "gamma(o)",
json_extract_scalar(a_volume.answer, '$.value.value') AS "volume(Å3)",
pi.display_name AS "PI",
p.title AS "Proposal title"
FROM duo.public.proposals p
JOIN duo.public.call c
ON c.call_id = p.call_id
JOIN duo.public.questionaries qy
ON qy.questionary_id = p.questionary_id
JOIN duo.public.questions q_days_req
ON q_days_req.natural_key = 'days_requested'
LEFT JOIN duo.public.answers a_days_req
ON a_days_req.question_id = q_days_req.question_id
AND a_days_req.questionary_id = qy.questionary_id
JOIN duo.public.questions q_technique
ON q_technique.natural_key = 'scientific_technique'
JOIN duo.public.answers a_technique
ON a_technique.question_id = q_technique.question_id
AND a_technique.questionary_id = qy.questionary_id
AND json_extract_scalar(a_technique.answer, '$.value[0]') = 'Powder / single crystal diffraction'
JOIN duo.public.questions q_inst
ON q_inst.natural_key = 'isis_instrument'
LEFT JOIN duo.public.answers a_inst
ON a_inst.question_id = q_inst.question_id
AND a_inst.questionary_id = qy.questionary_id
LEFT JOIN duo.public.questions q_a
ON q_a.natural_key = 'Cell_Parameter_A'
LEFT JOIN duo.public.answers a_a
ON a_a.question_id = q_a.question_id
AND a_a.questionary_id = qy.questionary_id
LEFT JOIN duo.public.questions q_b
ON q_b.natural_key = 'Cell_Parameter_B'
LEFT JOIN duo.public.answers a_b
ON a_b.question_id = q_b.question_id
AND a_b.questionary_id = qy.questionary_id
LEFT JOIN duo.public.questions q_c
ON q_c.natural_key = 'Cell_Parameter_C'
LEFT JOIN duo.public.answers a_c
ON a_c.question_id = q_c.question_id
AND a_c.questionary_id = qy.questionary_id
LEFT JOIN duo.public.questions q_alpha
ON q_alpha.natural_key = 'Cell_Parameter_Alpha'
LEFT JOIN duo.public.answers a_alpha
ON a_alpha.question_id = q_alpha.question_id
AND a_alpha.questionary_id = qy.questionary_id
LEFT JOIN duo.public.questions q_beta
ON q_beta.natural_key = 'Cell_Parameter_Beta'
LEFT JOIN duo.public.answers a_beta
ON a_beta.question_id = q_beta.question_id
AND a_beta.questionary_id = qy.questionary_id
LEFT JOIN duo.public.questions q_gamma
ON q_gamma.natural_key = 'Cell_Parameter_Gamma_'
LEFT JOIN duo.public.answers a_gamma
ON a_gamma.question_id = q_gamma.question_id
AND a_gamma.questionary_id = qy.questionary_id
LEFT JOIN duo.public.questions q_volume
ON q_volume.natural_key = 'Cell_Parameter_Volume'
LEFT JOIN duo.public.answers a_volume
ON a_volume.question_id = q_volume.question_id
AND a_volume.questionary_id = qy.questionary_id
JOIN duo.public.proposal_table_view ptv
ON ptv.proposal_pk = p.proposal_pk
AND LOWER(proposal_status_name) LIKE '%submitted%'
LEFT JOIN isisuserdb.isisuserdb.reporting_person pi
ON pi.user_number = CAST(p.proposer_id AS VARCHAR)
WHERE c.call_short_code = 'ISIS Direct 2023_2'
ORDER BY p.proposal_id ASC
SELECT p.proposal_id AS "Reference number",
c.call_short_code AS "Call",
json_extract_scalar(a_inst.answer, '$.value[0]') AS "Instrument requested",
json_extract_scalar(a_days_req.answer, '$.value.value') AS "Days requested",
json_extract_scalar(a_technique.answer, '$.value[0]') AS "Technique",
json_extract(a_coll_imat.answer, '$.value') AS "IMAT collimator size",
json_extract(a_coll_enginx.answer, '$.value') AS "Engin-X collimator size",
pi.display_name AS "PI",
p.title AS "Proposal title"
FROM duo.public.proposals p
JOIN duo.public.call c
ON c.call_id = p.call_id
JOIN duo.public.questionaries qy
ON qy.questionary_id = p.questionary_id
JOIN duo.public.questions q_days_req
ON q_days_req.natural_key = 'days_requested'
LEFT JOIN duo.public.answers a_days_req
ON a_days_req.question_id = q_days_req.question_id
AND a_days_req.questionary_id = qy.questionary_id
JOIN duo.public.questions q_technique
ON q_technique.natural_key = 'scientific_technique'
JOIN duo.public.answers a_technique
ON a_technique.question_id = q_technique.question_id
AND a_technique.questionary_id = qy.questionary_id
AND json_extract_scalar(a_technique.answer, '$.value[0]') = 'Engineering '
JOIN duo.public.questions q_inst
ON q_inst.natural_key = 'isis_instrument'
LEFT JOIN duo.public.answers a_inst
ON a_inst.question_id = q_inst.question_id
AND a_inst.questionary_id = qy.questionary_id
LEFT JOIN duo.public.questions q_coll_imat
ON q_coll_imat.natural_key = 'engineering_imat_cillimator_size_mc'
LEFT JOIN duo.public.answers a_coll_imat
ON a_coll_imat.question_id = q_coll_imat.question_id
AND a_coll_imat.questionary_id = qy.questionary_id
LEFT JOIN duo.public.questions q_coll_enginx
ON q_coll_enginx.natural_key = 'engineering_enginx_cillimator_size_mc'
LEFT JOIN duo.public.answers a_coll_enginx
ON a_coll_enginx.question_id = q_coll_enginx.question_id
AND a_coll_enginx.questionary_id = qy.questionary_id
JOIN duo.public.proposal_table_view ptv
ON ptv.proposal_pk = p.proposal_pk
AND LOWER(proposal_status_name) LIKE '%submitted%'
LEFT JOIN isisuserdb.isisuserdb.reporting_person pi
ON pi.user_number = CAST(p.proposer_id AS VARCHAR)
WHERE c.call_short_code = 'ISIS Direct 2023_2'
ORDER BY p.proposal_id ASC
SELECT p.proposal_id AS "Reference number",
c.call_short_code AS "Call",
json_extract_scalar(a_inst.answer, '$.value[0]') AS "Instrument requested",
json_extract_scalar(a_days_req.answer, '$.value.value') AS "Days requested",
json_extract_scalar(a_technique.answer, '$.value[0]') AS "Technique",
json_extract_scalar(a_geom.answer, '$.value[0]') AS "Cell geometry",
json_extract_scalar(a_qrange.answer, '$.value') AS "Q-range",
json_extract_scalar(a_qres.answer, '$.value') AS "Q-res",
json_extract_scalar(a_points.answer, '$.value') AS "No. samples & state points",
pi.display_name AS "PI",
p.title AS "Proposal title"
FROM duo.public.proposals p
JOIN duo.public.call c
ON c.call_id = p.call_id
JOIN duo.public.questionaries qy
ON qy.questionary_id = p.questionary_id
JOIN duo.public.questions q_days_req
ON q_days_req.natural_key = 'days_requested'
LEFT JOIN duo.public.answers a_days_req
ON a_days_req.question_id = q_days_req.question_id
AND a_days_req.questionary_id = qy.questionary_id
JOIN duo.public.questions q_technique
ON q_technique.natural_key = 'scientific_technique'
JOIN duo.public.answers a_technique
ON a_technique.question_id = q_technique.question_id
AND a_technique.questionary_id = qy.questionary_id
AND json_extract_scalar(a_technique.answer, '$.value[0]') = 'Liquid / amorphous / complex materials diffraction '
JOIN duo.public.questions q_inst
ON q_inst.natural_key = 'isis_instrument'
LEFT JOIN duo.public.answers a_inst
ON a_inst.question_id = q_inst.question_id
AND a_inst.questionary_id = qy.questionary_id
LEFT JOIN duo.public.questions q_geom
ON q_geom.natural_key = 'diffraction_cell_geometry'
LEFT JOIN duo.public.answers a_geom
ON a_geom.question_id = q_geom.question_id
AND a_geom.questionary_id = qy.questionary_id
LEFT JOIN duo.public.questions q_material
ON q_material.natural_key = 'diffraction_materials_mc'
LEFT JOIN duo.public.answers a_material
ON a_material.question_id = q_material.question_id
AND a_material.questionary_id = qy.questionary_id
LEFT JOIN duo.public.questions q_qrange
ON q_qrange.natural_key = 'diffraction_q_range_text'
LEFT JOIN duo.public.answers a_qrange
ON a_qrange.question_id = q_qrange.question_id
AND a_qrange.questionary_id = qy.questionary_id
LEFT JOIN duo.public.questions q_qres
ON q_qres.natural_key = 'diffraction_q_resolution_text'
LEFT JOIN duo.public.answers a_qres
ON a_qres.question_id = q_qres.question_id
AND a_qres.questionary_id = qy.questionary_id
LEFT JOIN duo.public.questions q_points
ON q_points.natural_key = 'diffraction_samples_text'
LEFT JOIN duo.public.answers a_points
ON a_points.question_id = q_points.question_id
AND a_points.questionary_id = qy.questionary_id
JOIN duo.public.proposal_table_view ptv
ON ptv.proposal_pk = p.proposal_pk
AND LOWER(proposal_status_name) LIKE '%submitted%'
LEFT JOIN isisuserdb.isisuserdb.reporting_person pi
ON pi.user_number = CAST(p.proposer_id AS VARCHAR)
WHERE c.call_short_code = 'ISIS Direct 2023_2'
ORDER BY p.proposal_id ASC
SELECT p.proposal_id AS "Reference number",
c.call_short_code AS "Call",
json_extract_scalar(a_inst.answer, '$.value[0]') AS "Instrument requested",
json_extract_scalar(a_days_req.answer, '$.value.value') AS "Days requested",
json_extract_scalar(a_technique.answer, '$.value[0]') AS "Technique",
json_extract_scalar(a_type.answer, '$.value[0]') AS "Crystal/Powder?",
json_extract_scalar(a_crysdetails.answer, '$.value') AS "No. cystals & details",
json_extract_scalar(a_fullsamples.answer, '$.value[0]') AS "Already have full amount samples?",
json_extract_scalar(a_origin.answer, '$.value') AS "Origin of samples",
pi.display_name AS "PI",
p.title AS "Proposal title"
FROM duo.public.proposals p
JOIN duo.public.call c
ON c.call_id = p.call_id
JOIN duo.public.questionaries qy
ON qy.questionary_id = p.questionary_id
JOIN duo.public.questions q_days_req
ON q_days_req.natural_key = 'days_requested'
LEFT JOIN duo.public.answers a_days_req
ON a_days_req.question_id = q_days_req.question_id
AND a_days_req.questionary_id = qy.questionary_id
JOIN duo.public.questions q_technique
ON q_technique.natural_key = 'scientific_technique'
JOIN duo.public.answers a_technique
ON a_technique.question_id = q_technique.question_id
AND a_technique.questionary_id = qy.questionary_id
AND json_extract_scalar(a_technique.answer, '$.value[0]') = 'Excitations '
JOIN duo.public.questions q_inst
ON q_inst.natural_key = 'isis_instrument'
LEFT JOIN duo.public.answers a_inst
ON a_inst.question_id = q_inst.question_id
AND a_inst.questionary_id = qy.questionary_id
LEFT JOIN duo.public.questions q_type
ON q_type.natural_key = 'excitations_crystal_powder_mc'
LEFT JOIN duo.public.answers a_type
ON a_type.question_id = q_type.question_id
AND a_type.questionary_id = qy.questionary_id
LEFT JOIN duo.public.questions q_crysdetails
ON q_crysdetails.natural_key = 'excitations_crystal_details_text'
LEFT JOIN duo.public.answers a_crysdetails
ON a_crysdetails.question_id = q_crysdetails.question_id
AND a_crysdetails.questionary_id = qy.questionary_id
LEFT JOIN duo.public.questions q_fullsamples
ON q_fullsamples.natural_key = 'excitations_sample_quantity_text'
LEFT JOIN duo.public.answers a_fullsamples
ON a_fullsamples.question_id = q_fullsamples.question_id
AND a_fullsamples.questionary_id = qy.questionary_id
LEFT JOIN duo.public.questions q_origin
ON q_origin.natural_key = 'excitations_sample_origin_text'
LEFT JOIN duo.public.answers a_origin
ON a_origin.question_id = q_origin.question_id
AND a_origin.questionary_id = qy.questionary_id
JOIN duo.public.proposal_table_view ptv
ON ptv.proposal_pk = p.proposal_pk
AND LOWER(proposal_status_name) LIKE '%submitted%'
LEFT JOIN isisuserdb.isisuserdb.reporting_person pi
ON pi.user_number = CAST(p.proposer_id AS VARCHAR)
WHERE c.call_short_code = 'ISIS Direct 2023_2'
ORDER BY p.proposal_id ASC
SELECT p.proposal_id AS "Reference number",
c.call_short_code AS "Call",
json_extract_scalar(a_inst.answer, '$.value[0]') AS "Instrument requested",
json_extract_scalar(a_days_req.answer, '$.value.value') AS "Days requested",
json_extract_scalar(a_technique.answer, '$.value[0]') AS "Technique",
json_extract_scalar(a_erange.answer, '$.value[0]') AS "Energy range",
pi.display_name AS "PI",
p.title AS "Proposal title"
FROM duo.public.proposals p
JOIN duo.public.call c
ON c.call_id = p.call_id
JOIN duo.public.questionaries qy
ON qy.questionary_id = p.questionary_id
JOIN duo.public.questions q_days_req
ON q_days_req.natural_key = 'days_requested'
LEFT JOIN duo.public.answers a_days_req
ON a_days_req.question_id = q_days_req.question_id
AND a_days_req.questionary_id = qy.questionary_id
JOIN duo.public.questions q_technique
ON q_technique.natural_key = 'scientific_technique'
JOIN duo.public.answers a_technique
ON a_technique.question_id = q_technique.question_id
AND a_technique.questionary_id = qy.questionary_id
AND json_extract_scalar(a_technique.answer, '$.value[0]') = 'Vibrational spectroscopy'
JOIN duo.public.questions q_inst
ON q_inst.natural_key = 'isis_instrument'
LEFT JOIN duo.public.answers a_inst
ON a_inst.question_id = q_inst.question_id
AND a_inst.questionary_id = qy.questionary_id
LEFT JOIN duo.public.questions q_erange
ON q_erange.natural_key = 'spectroscopy_energy_range_mc'
LEFT JOIN duo.public.answers a_erange
ON a_erange.question_id = q_erange.question_id
AND a_erange.questionary_id = qy.questionary_id
JOIN duo.public.proposal_table_view ptv
ON ptv.proposal_pk = p.proposal_pk
AND LOWER(proposal_status_name) LIKE '%submitted%'
LEFT JOIN isisuserdb.isisuserdb.reporting_person pi
ON pi.user_number = CAST(p.proposer_id AS VARCHAR)
WHERE c.call_short_code = 'ISIS Direct 2023_2'
ORDER BY p.proposal_id ASC
SELECT p.proposal_id AS "Reference number",
c.call_short_code AS "Call",
json_extract_scalar(a_inst.answer, '$.value[0]') AS "Instrument requested",
json_extract_scalar(a_days_req.answer, '$.value.value') AS "Days requested",
json_extract_scalar(a_technique.answer, '$.value[0]') AS "Technique",
json_extract_scalar(a_weak.answer, '$.value[0]') AS "Weak scatterer?",
json_extract_scalar(a_multiple.answer, '$.value[0]') AS "Multiple energy ranges essential?",
json_extract_scalar(a_polarised.answer, '$.value[0]') AS "Polarised neutrons?",
json_extract_scalar(a_eres.answer, '$.value') AS "Energy resolution",
json_extract_scalar(a_erange.answer, '$.value') AS "Energy range",
json_extract_scalar(a_qrange.answer, '$.value') AS "Q-range",
json_extract_scalar(a_magnet.answer, '$.value[0]') AS "Magnet required",
pi.display_name AS "PI",
p.title AS "Proposal title"
FROM duo.public.proposals p
JOIN duo.public.call c
ON c.call_id = p.call_id
JOIN duo.public.questionaries qy
ON qy.questionary_id = p.questionary_id
JOIN duo.public.questions q_days_req
ON q_days_req.natural_key = 'days_requested'
LEFT JOIN duo.public.answers a_days_req
ON a_days_req.question_id = q_days_req.question_id
AND a_days_req.questionary_id = qy.questionary_id
JOIN duo.public.questions q_technique
ON q_technique.natural_key = 'scientific_technique'
JOIN duo.public.answers a_technique
ON a_technique.question_id = q_technique.question_id
AND a_technique.questionary_id = qy.questionary_id
AND json_extract_scalar(a_technique.answer, '$.value[0]') = 'Quasi-elastic scattering'
JOIN duo.public.questions q_inst
ON q_inst.natural_key = 'isis_instrument'
LEFT JOIN duo.public.answers a_inst
ON a_inst.question_id = q_inst.question_id
AND a_inst.questionary_id = qy.questionary_id
LEFT JOIN duo.public.questions q_weak
ON q_weak.natural_key = 'qe_scattering_sample_mc'
LEFT JOIN duo.public.answers a_weak
ON a_weak.question_id = q_weak.question_id
AND a_weak.questionary_id = qy.questionary_id
LEFT JOIN duo.public.questions q_multiple
ON q_multiple.natural_key = 'qe_scattering_energy_ranges_mc'
LEFT JOIN duo.public.answers a_multiple
ON a_multiple.question_id = q_multiple.question_id
AND a_multiple.questionary_id = qy.questionary_id
LEFT JOIN duo.public.questions q_polarised
ON q_polarised.natural_key = 'qe_scattering_polarised_neutrons_mc'
LEFT JOIN duo.public.answers a_polarised
ON a_polarised.question_id = q_polarised.question_id
AND a_polarised.questionary_id = qy.questionary_id
LEFT JOIN duo.public.questions q_eres
ON q_eres.natural_key = 'qe_scattering_energy_resolution_text'
LEFT JOIN duo.public.answers a_eres
ON a_eres.question_id = q_eres.question_id
AND a_eres.questionary_id = qy.questionary_id
LEFT JOIN duo.public.questions q_erange
ON q_erange.natural_key = 'qe_scattering_energy_range_text'
LEFT JOIN duo.public.answers a_erange
ON a_erange.question_id = q_erange.question_id
AND a_erange.questionary_id = qy.questionary_id
LEFT JOIN duo.public.questions q_qrange
ON q_qrange.natural_key = 'qe_scattering_q_range_text'
LEFT JOIN duo.public.answers a_qrange
ON a_qrange.question_id = q_qrange.question_id
AND a_qrange.questionary_id = qy.questionary_id
LEFT JOIN duo.public.questions q_magnet
ON q_magnet.natural_key = 'qe_scattering_magnet_mc'
LEFT JOIN duo.public.answers a_magnet
ON a_magnet.question_id = q_magnet.question_id
AND a_magnet.questionary_id = qy.questionary_id
JOIN duo.public.proposal_table_view ptv
ON ptv.proposal_pk = p.proposal_pk
AND LOWER(proposal_status_name) LIKE '%submitted%'
LEFT JOIN isisuserdb.isisuserdb.reporting_person pi
ON pi.user_number = CAST(p.proposer_id AS VARCHAR)
WHERE c.call_short_code = 'ISIS Direct 2023_2'
ORDER BY p.proposal_id ASC
SELECT p.proposal_id AS "Reference number",
c.call_short_code AS "Call",
json_extract_scalar(a_inst.answer, '$.value[0]') AS "Instrument requested",
json_extract_scalar(a_days_req.answer, '$.value.value') AS "Days requested",
json_extract_scalar(a_technique.answer, '$.value[0]') AS "Technique",
json_extract(a_res.answer, '$.value') AS "Resolution required",
pi.display_name AS "PI",
p.title AS "Proposal title"
FROM duo.public.proposals p
JOIN duo.public.call c
ON c.call_id = p.call_id
JOIN duo.public.questionaries qy
ON qy.questionary_id = p.questionary_id
JOIN duo.public.questions q_days_req
ON q_days_req.natural_key = 'days_requested'
LEFT JOIN duo.public.answers a_days_req
ON a_days_req.question_id = q_days_req.question_id
AND a_days_req.questionary_id = qy.questionary_id
JOIN duo.public.questions q_technique
ON q_technique.natural_key = 'scientific_technique'
JOIN duo.public.answers a_technique
ON a_technique.question_id = q_technique.question_id
AND a_technique.questionary_id = qy.questionary_id
AND json_extract_scalar(a_technique.answer, '$.value[0]') = 'Imaging '
JOIN duo.public.questions q_inst
ON q_inst.natural_key = 'isis_instrument'
LEFT JOIN duo.public.answers a_inst
ON a_inst.question_id = q_inst.question_id
AND a_inst.questionary_id = qy.questionary_id
LEFT JOIN duo.public.questions q_res
ON q_res.natural_key = 'imaging_resolution_text'
LEFT JOIN duo.public.answers a_res
ON a_res.question_id = q_res.question_id
AND a_res.questionary_id = qy.questionary_id
JOIN duo.public.proposal_table_view ptv
ON ptv.proposal_pk = p.proposal_pk
AND LOWER(proposal_status_name) LIKE '%submitted%'
LEFT JOIN isisuserdb.isisuserdb.reporting_person pi
ON pi.user_number = CAST(p.proposer_id AS VARCHAR)
WHERE c.call_short_code = 'ISIS Direct 2023_2'
ORDER BY p.proposal_id ASC
SELECT p.proposal_id AS "Reference number",
c.call_short_code AS "Call",
json_extract_scalar(a_inst.answer, '$.value[0]') AS "Instrument requested",
json_extract_scalar(a_days_req.answer, '$.value.value') AS "Days requested",
json_extract_scalar(a_technique.answer, '$.value[0]') AS "Technique",
json_extract(a_metals.answer, '$.value[0]') AS "Contains metals?",
json_extract(a_weak.answer, '$.value[0]') AS "Weak scatterer?",
pi.display_name AS "PI",
p.title AS "Proposal title"
FROM duo.public.proposals p
JOIN duo.public.call c
ON c.call_id = p.call_id
JOIN duo.public.questionaries qy
ON qy.questionary_id = p.questionary_id
JOIN duo.public.questions q_days_req
ON q_days_req.natural_key = 'days_requested'
LEFT JOIN duo.public.answers a_days_req
ON a_days_req.question_id = q_days_req.question_id
AND a_days_req.questionary_id = qy.questionary_id
JOIN duo.public.questions q_technique
ON q_technique.natural_key = 'scientific_technique'
JOIN duo.public.answers a_technique
ON a_technique.question_id = q_technique.question_id
AND a_technique.questionary_id = qy.questionary_id
AND json_extract_scalar(a_technique.answer, '$.value[0]') = 'Deep inelastic scattering, transmission, prompt-gamma activation analysis or neutron-resonance capture analysis'
JOIN duo.public.questions q_inst
ON q_inst.natural_key = 'isis_instrument'
LEFT JOIN duo.public.answers a_inst
ON a_inst.question_id = q_inst.question_id
AND a_inst.questionary_id = qy.questionary_id
LEFT JOIN duo.public.questions q_metals
ON q_metals.natural_key = 'deep_inelastic_metal_yn'
LEFT JOIN duo.public.answers a_metals
ON a_metals.question_id = q_metals.question_id
AND a_metals.questionary_id = qy.questionary_id
LEFT JOIN duo.public.questions q_weak
ON q_weak.natural_key = 'deep_inelastic_weak_scat'
LEFT JOIN duo.public.answers a_weak
ON a_weak.question_id = q_weak.question_id
AND a_weak.questionary_id = qy.questionary_id
JOIN duo.public.proposal_table_view ptv
ON ptv.proposal_pk = p.proposal_pk
AND LOWER(proposal_status_name) LIKE '%submitted%'
LEFT JOIN isisuserdb.isisuserdb.reporting_person pi
ON pi.user_number = CAST(p.proposer_id AS VARCHAR)
WHERE c.call_short_code = 'ISIS Direct 2023_2'
ORDER BY p.proposal_id ASC
SELECT p.proposal_id AS "Reference number",
c.call_short_code AS "Call",
json_extract_scalar(a_inst.answer, '$.value[0]') AS "Instrument requested",
json_extract_scalar(a_days_req.answer, '$.value.value') AS "Days requested",
json_extract_scalar(a_technique.answer, '$.value[0]') AS "Technique",
json_extract_scalar(a_irrad.answer, '$.value[0]') AS "Irradiation type",
json_extract_scalar(a_neutron.answer, '$.value[0]') AS "Neutron option",
pi.display_name AS "PI",
p.title AS "Proposal title"
FROM duo.public.proposals p
JOIN duo.public.call c
ON c.call_id = p.call_id
JOIN duo.public.questionaries qy
ON qy.questionary_id = p.questionary_id
JOIN duo.public.questions q_days_req
ON q_days_req.natural_key = 'days_requested'
LEFT JOIN duo.public.answers a_days_req
ON a_days_req.question_id = q_days_req.question_id
AND a_days_req.questionary_id = qy.questionary_id
JOIN duo.public.questions q_technique
ON q_technique.natural_key = 'scientific_technique'
JOIN duo.public.answers a_technique
ON a_technique.question_id = q_technique.question_id
AND a_technique.questionary_id = qy.questionary_id
AND json_extract_scalar(a_technique.answer, '$.value[0]') = 'Electronics irradiation '
JOIN duo.public.questions q_inst
ON q_inst.natural_key = 'isis_instrument'
LEFT JOIN duo.public.answers a_inst
ON a_inst.question_id = q_inst.question_id
AND a_inst.questionary_id = qy.questionary_id
LEFT JOIN duo.public.questions q_irrad
ON q_irrad.natural_key = 'electronics_irradiation_mc'
LEFT JOIN duo.public.answers a_irrad
ON a_irrad.question_id = q_irrad.question_id
AND a_irrad.questionary_id = qy.questionary_id
LEFT JOIN duo.public.questions q_neutron
ON q_neutron.natural_key = 'electronics_irradiation_neutrons_mc'
LEFT JOIN duo.public.answers a_neutron
ON a_neutron.question_id = q_neutron.question_id
AND a_neutron.questionary_id = qy.questionary_id
JOIN duo.public.proposal_table_view ptv
ON ptv.proposal_pk = p.proposal_pk
AND LOWER(proposal_status_name) LIKE '%submitted%'
LEFT JOIN isisuserdb.isisuserdb.reporting_person pi
ON pi.user_number = CAST(p.proposer_id AS VARCHAR)
WHERE c.call_short_code = 'ISIS Direct 2023_2'
ORDER BY p.proposal_id ASC
SELECT p.proposal_id AS "Reference number",
c.call_short_code AS "Call",
json_extract_scalar(a_inst.answer, '$.value[0]') AS "Instrument requested",
json_extract_scalar(a_days_req.answer, '$.value.value') AS "Days requested",
json_extract_scalar(a_technique.answer, '$.value[0]') AS "Technique",
json_extract(a_capab.answer, '$.value') AS "Capabilities required",
json_extract_scalar(a_other.answer, '$.value') AS "Other capabilities",
json_extract_scalar(a_ptype.answer, '$.value[0]') AS "Pulse beam type (RIKEN)",
pi.display_name AS "PI",
p.title AS "Proposal title"
FROM duo.public.proposals p
JOIN duo.public.call c
ON c.call_id = p.call_id
JOIN duo.public.questionaries qy
ON qy.questionary_id = p.questionary_id
JOIN duo.public.questions q_days_req
ON q_days_req.natural_key = 'days_requested'
LEFT JOIN duo.public.answers a_days_req
ON a_days_req.question_id = q_days_req.question_id
AND a_days_req.questionary_id = qy.questionary_id
JOIN duo.public.questions q_technique
ON q_technique.natural_key = 'scientific_technique'
JOIN duo.public.answers a_technique
ON a_technique.question_id = q_technique.question_id
AND a_technique.questionary_id = qy.questionary_id
AND json_extract_scalar(a_technique.answer, '$.value[0]') = 'Muon'
JOIN duo.public.questions q_inst
ON q_inst.natural_key = 'isis_instrument'
LEFT JOIN duo.public.answers a_inst
ON a_inst.question_id = q_inst.question_id
AND a_inst.questionary_id = qy.questionary_id
LEFT JOIN duo.public.questions q_capab
ON q_capab.natural_key = 'muons_capabilities_mc'
LEFT JOIN duo.public.answers a_capab
ON a_capab.question_id = q_capab.question_id
AND a_capab.questionary_id = qy.questionary_id
LEFT JOIN duo.public.questions q_other
ON q_other.natural_key = 'muons_capabilities_other_text'
LEFT JOIN duo.public.answers a_other
ON a_other.question_id = q_other.question_id
AND a_other.questionary_id = qy.questionary_id
LEFT JOIN duo.public.questions q_ptype
ON q_ptype.natural_key = 'muons_single_double_beam_mc'
LEFT JOIN duo.public.answers a_ptype
ON a_ptype.question_id = q_ptype.question_id
AND a_ptype.questionary_id = qy.questionary_id
JOIN duo.public.proposal_table_view ptv
ON ptv.proposal_pk = p.proposal_pk
AND LOWER(proposal_status_name) LIKE '%submitted%'
LEFT JOIN isisuserdb.isisuserdb.reporting_person pi
ON pi.user_number = CAST(p.proposer_id AS VARCHAR)
WHERE c.call_short_code = 'ISIS Direct 2023_2'
ORDER BY p.proposal_id ASC
@Cat-Lucifer please find our suggestion of adding the above queries to the Reporting Tool so as to extract the answers to all questions for each technique. This is the best cost-effective solution we have at the moment indeed. Love to know your thought.
@Cat-Lucifer please find our suggestion of adding the above queries to the Reporting Tool so as to extract the answers to all questions for each technique. This is the best cost-effective solution we have at the moment indeed. Love to know your thought.
@bashanlam @simonfernandes A reporting tool query sounds good to me. Thanks!
@Cat-Lucifer The attached are screen capture of the query of answers to questions for scientific technique. The input of the query is the call short code. Love to hear your thoughts.
@bashanlam This looks good, thanks! It would be good to add in some guidance and/or examples of how to enter the short code, as most instrument scientists won't know these as well as we do (or know them at all!). Ideally, if it's relatively easy, we would query on year and round.
@Cat-Lucifer The query page is updated as below. Please let me know allow user access group and your thoughts.
@bashanlam This looks perfect - thanks! Everybody who is listed in the following email distribution lists can be permitted to use this query:
isisinstsci@stfc.ac.uk isisinstrumentscientist@stfc.ac.uk
User officers and instrument scientists need to be able to retrieve answers to all questions for each scientific technique themselves via the new proposal system.
At the moment, they can only view the list of proposals that give a specific answer to a question, and export those proposals as pdfs, which do not contain this info. This means that they rely on us to provide the data.
Possible solutions:
Which role does this affect.
User officer and instrument scientist
Why it needs to change.
User officers and instrument scientists need quick and easy access to this data.
Other helpful details like screenshots or email content from.
From: Gozzard, Emma (STFC,RAL,ISIS) emma.gozzard@stfc.ac.uk Sent: 25 October 2022 13:57