diff --git a/create_report.html b/create_report.html index 4042b76..ac3c7ca 100644 --- a/create_report.html +++ b/create_report.html @@ -226,6 +226,7 @@ write_sample_description(sample); get_result_main(sample_chooser.value); get_result_nema(sample_chooser.value); + get_result_bact(sample_chooser.value); } } @@ -251,6 +252,7 @@ write_sample_description(sample); get_result_main(this.value); get_result_nema(this.value); + get_result_bact(this.value); }; @@ -390,7 +392,7 @@ Math.pow((item.width*Number(microscope_setup.FoV_Width)),2.0)*Math.PI/4.0; break case "Actinobacteria": - total.Actinobacteria += item.length*Number(microscope_setup.FoV_Width); + total.Actinobacteria += item.length*Number(microscope_setup.FoV_Width)*Math.PI/4.0; break case "Flagelate": total.Flagelate +=1; @@ -571,5 +573,189 @@ newRow.insertCell(2).innerHTML = count * multiplication_factor_nema_scan; } +// bacteria +function get_result_bact(sampleID){ + const transaction = db.transaction('bacterial_scan'); + const objStore = transaction.objectStore('bacterial_scan') + const index = objStore.index("sampleID"); + const get_request = index.get(sampleID); + get_request.onsuccess = () => { + bact_scan_result = get_request.result; + + get_prep_protocol_bact(get_request.result); + get_microscope_setup_bact(get_request.result); + } + + get_request.onerror = (err)=> { + console.error(`Error to get all setups: ${err}`) + } +} +function get_prep_protocol_bact(result_obj){ + const request = db.transaction('prep_protocol') + .objectStore('prep_protocol') + .get(Number(result_obj.prepID)); + + request.onsuccess = () => { + prep_protocol_bact = request.result; + if (microscope_setup_bact && prep_protocol_bact && bact_scan_result){ + write_bact_scan_description(bact_scan_result, prep_protocol_bact, microscope_setup_bact); + render_bact_scan_table(bact_scan_result); + + } + + } + + request.onerror = (err)=> { + console.error(`Error to get all setups: ${err}`) + } +} + +function get_microscope_setup_bact(result_obj){ + const request = db.transaction('microscope_setup') + .objectStore('microscope_setup') + .get(Number(result_obj.setupID)); + + request.onsuccess = () => { + microscope_setup_bact = request.result; + if (microscope_setup_bact && prep_protocol_bact && bact_scan_result){ + write_bact_scan_description(bact_scan_result, prep_protocol_bact, microscope_setup_bact); + render_bact_scan_table(bact_scan_result.result); + } + + } + + request.onerror = (err)=> { + console.error(`Error to get all setups: ${err}`) + } +} +function write_bact_scan_description(result, protocol, setup){ + console.log('hi from writer') + // observed height in um -> sample size [uL] * 10^9 / coverslip Area [mm²] * 10^6 + // -> yields 1000 * samplesize[uL] / coverslipArea[mm²] + let observed_height_bact = 1000 * Number(protocol.Sample_Size) / + (Number(setup.Slip_Height) * Number(setup.Slip_Width)); + // observed Volume in uL -> height [um] * FoV [um²] = um³ -- 1 um³ = 1* 10^-9 uL + let observed_volume_bact = observed_height_bact * + Number(setup.FoV_Width)*Number(setup.FoV_Height)*Math.pow(10, -9); + + multiplication_factor_bact_scan = result.dilution / observed_volume_bact; + + document.querySelector("#bact_scan_datetime").textContent = result.datetime; + document.querySelector("#prep_protocol_name_bact").textContent = protocol.name; + document.querySelector("#cam_setup_name_bact").textContent = setup.name; + document.querySelector("#coverslip_height_bact").textContent = setup.Slip_Height; + document.querySelector("#coverslip_width_bact").textContent = setup.Slip_Width; + document.querySelector("#sample_volume_bact").textContent = prep_protocol.Sample_Size; + document.querySelector("#observed_height_bact").textContent = observed_height_bact.toFixed(2); + document.querySelector("#FoV_height_bact").textContent = microscope_setup.FoV_Height; + document.querySelector("#FoV_width_bact").textContent = microscope_setup.FoV_Width; + + document.querySelector("#observed_volume_bact").textContent = observed_volume_bact.toExponential(2); + document.querySelector("#dilution_factor_bact").textContent = result.dilution; + + document.querySelector("#factor_bact").textContent = multiplication_factor_bact_scan; + + + +} +var bact_table = document.querySelector("#bact_scan_table"); + +function render_bact_scan_table(result){ + let counts = []; + if (result[0][0].length == 0){ + for (let i=0; i