Intake FR

Intkae inladen voor FR

You will need to install an extension such as Tampermonkey, Greasemonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install an extension such as Tampermonkey or Violentmonkey to install this script.

You will need to install an extension such as Tampermonkey or Userscripts to install this script.

You will need to install an extension such as Tampermonkey to install this script.

You will need to install a user script manager extension to install this script.

(I already have a user script manager, let me install it!)

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install an extension such as Stylus to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

You will need to install a user style manager extension to install this style.

(I already have a user style manager, let me install it!)

// ==UserScript==
// @name         Intake FR
// @namespace    http://tampermonkey.net/
// @version      1.1.21
// @description  Intkae inladen voor FR
// @match        *://*/*
// @grant        GM_xmlhttpRequest
// @connect      whisper.anzwerz.ai


// ==/UserScript==

(function() {
    'use strict';
    window.addEventListener('load', function() {

    function getPatientName() {

        // Pak de derde frame (index 2) uit het frameset
        const h3 = document.querySelector('h3.patient-card__name');
        const patientName = h3.textContent;

        if (patientName) {
            console.log(patientName)
            return patientName.split(",")[0]
        }

        return null
    }


    function storeConsultDate(){
        const datumEl = document.getElementById('frm_input_indication_date_datepicker');
        if (datumEl){
            console.log("element gevonden");
            const delen = datumEl.value.split(/[-/]/);
            const [dag, maand, jaar] = delen;
            const nieuweDatum = `${jaar}-${maand}-${dag}`;
            
            sessionStorage.setItem('consultDate', nieuweDatum);

        }
    }
    
    const patientName = getPatientName();
    storeConsultDate()
    const dateConsult = sessionStorage.getItem('consultDate');


    if (patientName === null){
        console.log("kan patiëntnaam niet vinden");
    } else if (dateConsult == null) {
        console.log("kan datum niet vinden");
        
    } else {
        console.log("haal data op")


       GM_xmlhttpRequest({
            method: "POST",
            url: "https://whisper.anzwerz.ai/api/v2/intake_fr/",
            headers: {
                    'Content-Type': 'application/json',
                    'X-API-Key': 'mijn-geheime-sleutel'
                },
            data: JSON.stringify({
                patient_name: patientName,
                date_of_consult: dateConsult
            }),
            onload: function (response) {

                const data = JSON.parse(response.responseText);
                console.log('Snowflake resultaat:', data);

                if (data.ok){
                    //aanmelding
                    const aanmelding = data.response.aanmelding_aanmelding;
                    const verwijsdatum = data.response.aanmelding_verwijsgegevens_verwijsdatum;
                    const verwijsdiagnose = data.response.aanmelding_verwijsgegevens_medische_verwijsdiagnose;  
                    
                    //anamnese
                    const patientbehoeften = data.response.anamnese_patientbehoeften;
                    const stoornissen = data.response.anamnese_stoornissen;
                    const historie = data.response.anamnese_historie;
                    const beperkingen = data.response.anamnese_beperkingen
                    const functioneringsproblemenSinds = data.response.anamnese_duur_functioneringsproblemen_sinds
                    const functioneringsproblemenEenheid = data.response.anamnese_duur_functioneringsproblemen_eenheid
                    const beloopTotNuToe = data.response.anamnese_beloop_tot_nu_toe;
                    const aangedaneZijde = data.response.anamnese_aangedane_zijde;
                    const klacht = data.response.anamnese_klacht;
                    
                    const medischeGezondheidsdeterminanten = data.response.anamnese_medische_gezondheidsdeterminanten_medisch
                    const persoonlijkeGezondheidsdeterminanten = data.response.anamnese_medische_gezondheidsdeterminanten_persoonlijk
                    const omgevingGezondheidsdeterminanten = data.response.anamnese_medische_gezondheidsdeterminanten_omgeving

                    const operatieOnderwerp = data.response.anamnese_medische_voorgeschiedenis_operatie_onderwerp
                    const operatieDatum = data.response.anamnese_medische_voorgeschiedenis_operatie_datum
                    const traumaOnderwerp = data.response.anamnese_medische_voorgeschiedenis_trauma_onderwerp
                    const traumaDatum = data.response.anamnese_medische_voorgeschiedenis_trauma_datum
                    const medicijnenOnderwerp = data.response.anamnese_medische_voorgeschiedenis_medicijnen_onderwerp
                    const medicijnenDatum = data.response.anamnese_medische_voorgeschiedenis_medicijnen_datum

                    //screening
                    const rodeVlaggenBesproken = data.response.screening_rode_vlaggen_besproken;
                    const conclusieScreening = data.response.screening_conclusie_screening;
                    const naOverlegHuisarts = data.response.screening_na_overleg_huisarts;
                    const inhoudBesproken = data.response.screening_inhoud_besproken;
                    const adviesContactOpnemenHA = data.response.screening_advies_contact_opnemen_ha;
                    const patientOnderzoeken = data.response.screening_patient_onderzoeken;

                    //onderzoek
                    const conclusieOnderzoek = data.response.onderzoek_conclusie_onderzoek;
                    const indicatieFysiotherapie = data.response.onderzoek_indicatie_fysiotherapie;
                    const chronisch = data.response.onderzoek_chronisch
                    const eersteAandoening = data.response.onderzoek_eerste_aandoening;
                    const verwachtHerstel = data.response.onderzoek_prognose_verwacht_herstel;
                    const verwachteDuurAantal = data.response.onderzoek_prognose_verwachte_duur_binnen;
                    const verwachteDuurEenheid = data.response.onderzoek_prognose_verwachte_duur_eenheid;
                    const aantalBehandelingen = data.response.onderzoek_prognose_aantal_behandelingen;

                    //behandelplan           
                    const hoofddoel = data.response.behandelplan_hoofddoel;
                    const toestemmingPatient = data.response.behandelplan_toestemming_patient;


                
                    //Aanmelding
                    const aanmeldingEl = document.getElementById('frm_input_treatment_origin');
                    if (aanmeldingEl) {

                        const aanmeldingEl = document.getElementById('frm_input_treatment_origin');


                            let dropdownDuurAanmelding = '0';
                            if (aanmeldingEl) {
                                
                                if (aanmelding) {
                                    const aanmeldingText = aanmelding.toLowerCase();
        
                                    if (aanmeldingText == 'verwijzing') {
                                        dropdownDuurAanmelding= 'send_by_referrer';
                                    } else if (aanmeldingText == 'dtf') {
                                        dropdownDuurAanmelding= 'direct_access_physiotherapy';
                                    }
                                }

                                aanmeldingEl.value = dropdownDuurAanmelding
                            }
                            aanmeldingEl.dispatchEvent(new Event('change', { bubbles: true }));
                        


                        const verwijsdatumEl = document.getElementById('frm_input_referral_date');
                        console.log(verwijsdatum)
                        console.log(verwijsdatumEl)
                        if (verwijsdatumEl && verwijsdatum) {
                            // const delen = verwijsdatum.value.split(/[-/]/);
                            // const [jaar, maand, dag] = delen;
                            // const nieuweDatum = `$${dag}-${maand}-{jaar}`;
                            // console.log(nieuweDatum)
                            verwijsdatumEl.value = verwijsdatum;
                        }

                        const verwijsdiagnoseEl = document.getElementById('frm_input_anamnesis[medical_referrerence_diagnosis');
                        console.log(verwijsdiagnoseEl)
                        if (verwijsdiagnoseEl && verwijsdiagnose) {
                            verwijsdiagnoseEl.innerHTML = verwijsdiagnose;
                            
                        }
                        
                        const rapport = {
                            aanmelding: checkveld(aanmeldingEl, data.response.aanmelding_aanmelding),
                            verwijsdatum: checkveld(verwijsdatumEl, data.response.aanmelding_verwijsgegevens_verwijsdatum),
                            verwijsdiagnose: checkveld(verwijsdiagnoseEl, data.response.aanmelding_verwijsgegevens_medische_verwijsdiagnose),
                        
                        };

                        console.log(rapport)
                        sendReport(rapport)

                    }

    ///////////////////////////////////////////////////////////////////////////////////
                
                    //Anamnese
                    
                    const patientbehoeftenEl = document.getElementById('frm_input_anamnesis[patient_needs]');
                    if (patientbehoeftenEl && patientbehoeftenEl.innerHTML == '') {

                        if (patientbehoeftenEl && patientbehoeften) {
                            patientbehoeftenEl.innerHTML = patientbehoeften;
                        }
                    
                        const stoornissenEl = document.getElementById('frm_input_anamnesis[disorders]');
                        if (stoornissenEl && stoornissen) {
                            stoornissenEl.innerHTML = stoornissen;
                        }

                        const historieEl = document.getElementById('frm_input_anamnesis[history]');
                        if (historieEl && historie) {
                            historieEl.innerHTML = historie;
                        }

                        const beperkingenEl = document.getElementById('frm_input_anamnesis[constraints]');
                        if (beperkingenEl && beperkingen) {
                            beperkingenEl.innerHTML = beperkingen;
                        }

                        const functioneringsproblemenSindsEl = document.getElementById('frm_input_anamnesis[functioning_problem_duration_value]');
                        if (functioneringsproblemenSindsEl && functioneringsproblemenSinds) {
                            functioneringsproblemenSindsEl.value = functioneringsproblemenSinds;
                        }


                        const functioneringsproblemenEenheidEl = document.getElementById('frm_input_anamnesis[functioning_problem_duration_unit]');

                        let dropdownDuurKlacht = '0';
                        if (functioneringsproblemenEenheidEl) {
                            
                            if (functioneringsproblemenEenheid) {
                                const functioneringsproblemenEenheidText = functioneringsproblemenEenheid.toLowerCase();
    
                                if (functioneringsproblemenEenheidText == 'dag') {
                                    dropdownDuurKlacht = '54';
                                } else if (functioneringsproblemenEenheidText == 'dagen') {
                                    dropdownDuurKlacht = '53';
                                } else if (functioneringsproblemenEenheidText == 'week') {
                                    dropdownDuurKlacht = '52';
                                } else if (functioneringsproblemenEenheidText == 'weken') {
                                    dropdownDuurKlacht = '51';
                                } else if (functioneringsproblemenEenheidText == 'maand') {
                                dropdownDuurKlacht = '50';
                                } else if (functioneringsproblemenEenheidText == 'maanden') {
                                dropdownDuurKlacht = '49';
                                } else if (functioneringsproblemenEenheidText == 'jaar') {
                                dropdownDuurKlacht = '48';
                                } else if (functioneringsproblemenEenheidText == 'jaren') {
                                dropdownDuurKlacht = '47';
                                }
                            }

                            functioneringsproblemenEenheidEl.value = dropdownDuurKlacht
                        }



                        const toegenomenEl = document.getElementById('form_input_anamnesis[course_so_far]_46');
                        if (toegenomenEl && beloopTotNuToe && beloopTotNuToe == 'Toegenomen') {
                            toegenomenEl.checked = true;
                        }

                        const afgenomenEl = document.getElementById('form_input_anamnesis[course_so_far]_45');
                        if (afgenomenEl && beloopTotNuToe && beloopTotNuToe == 'Afgenomen') {
                            afgenomenEl.checked = true;
                        }

                        const nietGewijzigdEl = document.getElementById('form_input_anamnesis[course_so_far]_44');
                        if (nietGewijzigdEl && beloopTotNuToe && beloopTotNuToe == 'Niet gewijzigd') {
                            nietGewijzigdEl.checked = true;
                        }

                        const wisselendEl = document.getElementById('form_input_anamnesis[course_so_far]_43');
                        if (wisselendEl && beloopTotNuToe && beloopTotNuToe == 'Wisselend') {
                            wisselendEl.checked = true;
                        }

                        const aangedaneZijdeEl = document.getElementById('frm_input_involved_side');

                        let dropdownAangedaneZijde = '0';
                        if (aangedaneZijdeEl ) {
                            console.log(aangedaneZijde)
                            if (aangedaneZijde) {
        
                                if (aangedaneZijde == 'Geen zijde') {
                                    dropdownAangedaneZijde = 'no_side';
                                } else if (aangedaneZijde == 'Linker zijde') {
                                    dropdownAangedaneZijde = 'left_side';
                                } else if (aangedaneZijde == 'Rechter zijde') {
                                    dropdownAangedaneZijde = 'right_side';
                                } else if (aangedaneZijde == 'Beide zijdes') {
                                    dropdownAangedaneZijde = 'both_sides';
                                }
                            
                            }
                            aangedaneZijdeEl.value = dropdownAangedaneZijde
                        }


                        const klachtEl = document.getElementById('frm_input_complaint');

                        let dropdownKlacht = '0';
                        if (klachtEl ) {
                            
                            if (klacht) {
        
                                if (klacht == 'Chronisch ZorgNet - COPD') {
                                    dropdownKlacht = '22';
                                } else if (klacht == 'Chronisch ZorgNet - Hart') {
                                    dropdownKlacht = '23';
                                } else if (klacht == 'Chronisch ZorgNet - Osteoporose, vallen en breken') {
                                    dropdownKlacht = '21';
                                } else if (klacht == 'Chronisch ZorgNet - Perifeer Arterieel Vaatlijden') {
                                    dropdownKlacht = '20';
                                } else if (klacht == 'COPD') {
                                    dropdownKlacht = '16';
                                } else if (klacht == 'Covid-19') {
                                    dropdownKlacht = '17';
                                } else if (klacht == 'CWK') {
                                    dropdownKlacht = '1';
                                } else if (klacht == 'Duizeligheid') {
                                    dropdownKlacht = '24';
                                } else if (klacht == 'Elleboog') {
                                    dropdownKlacht = '2';
                                } else if (klacht == 'Enkel/Voet') {
                                    dropdownKlacht = '3';
                                } else if (klacht == 'Heup') {
                                    dropdownKlacht = '4';
                                } else if (klacht == 'Kaak') {
                                    dropdownKlacht = '5';
                                } else if (klacht == 'Knie') {
                                    dropdownKlacht = '6';
                                } else if (klacht == 'LWK') {
                                    dropdownKlacht = '7';
                                } else if (klacht == 'Neurologie') {
                                    dropdownKlacht = '8';
                                } else if (klacht == 'Oedeem') {
                                    dropdownKlacht = '19';
                                } else if (klacht == 'Oncologie') {
                                    dropdownKlacht = '9';
                                } else if (klacht == 'Parkinson') {
                                    dropdownKlacht = '10';
                                } else if (klacht == 'Pols/Hand') {
                                    dropdownKlacht = '11';
                                } else if (klacht == 'Psychosomatiek') {
                                    dropdownKlacht = '12';
                                } else if (klacht == 'Reumatologie') {
                                    dropdownKlacht = '13';
                                } else if (klacht == 'Schouder') {
                                    dropdownKlacht = '14';
                                } else if (klacht == 'Spierletsel') {
                                    dropdownKlacht = '18';
                                } else if (klacht == 'TWK') {
                                    dropdownKlacht = '15';

                                }
                            
                            }
                            klachtEl.value = dropdownKlacht
                        }
                    const button1 = document.querySelector('button[title="Medische voorgeschiedenis"]'); //Medische voorgeschiedenis

                    
                    //operatie
                    if (button1 && operatieOnderwerp){
                        button1.click()
                        setTimeout(() => {
                            // code die NA de vertraging moet draaien
                            console.log('1 seconde later');
                            const button2 = document.querySelector('.js-btn-create');
                            button2.click()
                            const datumEl = document.getElementById('frm_input_medical_history_date_datepicker');

                            if (datumEl && operatieDatum){
                                datumEl.value = operatieDatum
                            }

                            const typeEl = document.getElementById('frm_input_medical_history_type');

                            if (typeEl) { 
                                console.log("operatie")
                                typeEl.value = "operation"
                            }

                            const onderwerpEl = document.querySelector('input[name="subject"]');
                            if (onderwerpEl){
                                onderwerpEl.value = operatieOnderwerp
                            }
                            
                        }, 1000); // 1000 ms = 1 seconde

                        
                        //send report
                    }

                        //trauma
                    if (button1 && traumaOnderwerp){
                        button1.click()
                        setTimeout(() => {
                            // code die NA de vertraging moet draaien
                            console.log('1 seconde later');
                        }, 1000); // 1000 ms = 1 seconde

                        const button2 = document.querySelector('.js-btn-create');
                        button2.click()
                        const datumEl = document.getElementById('frm_input_medical_history_date_datepicker');

                        if (datumEl && traumaDatum){
                            datumEl.value = traumaDatum
                        }

                        const typeEl = document.getElementById('frm_input_medical_history_type');

                        if (typeEl) { 
                            console.log("trauma")
                            typeEl.value = "trauma"
                        }

                        const onderwerpEl = document.querySelector('input[name="subject"]');
                        if (onderwerpEl){
                            onderwerpEl.value = traumaOnderwerp
                        }
                        //send report
                    }

                    //medicijnen
                    if (button1 && medicijnenOnderwerp){
                        button1.click()
                        setTimeout(() => {
                            // code die NA de vertraging moet draaien
                            console.log('1 seconde later');
                        }, 1000); // 1000 ms = 1 seconde

                        const button2 = document.querySelector('.js-btn-create');
                        button2.click()
                        const datumEl = document.getElementById('frm_input_medical_history_date_datepicker');

                        if (datumEl && medicijnenDatum){
                            datumEl.value = medicijnenDatum
                        }

                        const typeEl = document.getElementById('frm_input_medical_history_type');

                        if (typeEl) { 
                            console.log("medicijnen")
                            typeEl.value = "medication"
                        }

                        const onderwerpEl = document.querySelector('input[name="subject"]');
                        if (onderwerpEl){
                            onderwerpEl.value = medicijnenOnderwerp
                        }

                        //send report
                    }

                    const button3 = document.getElementById('medische_gezondheidsdeterminanten'); //Medische gezondheidsdeterminanten

                    if (button3){
                        button3.click()
                        const medischEl = document.getElementById('frm_input_rif_modal_co-morbidity');

                        if (medischEl) {
                            medischEl.innerHTML = medischeGezondheidsdeterminanten
                        }

                        const persoonlijkEl = document.getElementById('frm_input_rif_modal_personal-context');

                        if (persoonlijkEl){
                            persoonlijkEl.innerHTML = persoonlijkeGezondheidsdeterminanten
                        }

                        const omgevingEl = document.getElementById('frm_input_rif_modal_participation-context');

                        if (omgevingEl){
                            omgevingEl.innerHTML = omgevingGezondheidsdeterminanten
                        }

                        
                        console.log("determinanten")
                        //send report

                    }
                   
                        const rapport = {
                            patientbehoeften: checkveld(patientbehoeftenEl, data.response.anamnese_patientbehoeften),
                            stoornissen: checkveld(stoornissenEl,data.response.anamnese_stoornissen),
                            historie: checkveld(historieEl, data.response.anamnese_historie),
                            beperkingen: checkveld(beperkingenEl, data.response.anamnese_beperkingen),
                            functioneringsproblemen_sinds: checkveld(functioneringsproblemenSindsEl, data.response.anamnese_duur_functioneringsproblemen_sinds),
                            functioneringsproblemen_eenheid: checkveld(functioneringsproblemenEenheidEl, dropdownDuurKlacht),
                            beloop_toegenomen: checkveld(toegenomenEl, data.response.anamnese_beloop_tot_nu_toe, "Toegenomen"),
                            beloop_afgenomen: checkveld(afgenomenEl, data.response.anamnese_beloop_tot_nu_toe, "Afgenomen"),
                            beloop_niet_gewijzigd: checkveld(nietGewijzigdEl, data.response.anamnese_beloop_tot_nu_toe, "Niet gewijzigd"),
                            beloop_wisselend: checkveld(wisselendEl, data.response.anamnese_beloop_tot_nu_toe, "Wisselend"),   
                            aangedane_zijde: checkveld(aangedaneZijdeEl, dropdownAangedaneZijde),         
                            klacht: checkveld(klachtEl, dropdownKlacht), 
                        };

                        console.log(rapport)
                        sendReport(rapport)
                    }

    ///////////////////////////////////////////////////////////////////////////////////
                        
                //Screening
                const patientOnderzoekenJaEl = document.getElementById('patient_screening_ja');
                const patientOnderzoekenNeeEl = document.getElementById('patient_screening_nee');
                if (patientOnderzoekenJaEl && !patientOnderzoekenJaEl.checked && patientOnderzoekenNeeEl && !patientOnderzoekenNeeEl.checked) {

                    if (patientOnderzoeken.toLowerCase() == 'ja') {
                        console.log("patiënt onderzoeken")
                        patientOnderzoekenJaEl.checked = true
                    }

                    if (patientOnderzoeken.toLowerCase() == 'nee') {
                        patientOnderzoekenNeeEl.checked = true
                    }
                

                    const rodeVlaggenBesprokenEl = document.getElementById('frm_input_anamnesis[screening][red_flags_discussed]');
                    if (rodeVlaggenBesprokenEl && rodeVlaggenBesproken && rodeVlaggenBesproken.toLowerCase() === 'ja') {
                        rodeVlaggenBesprokenEl.checked = true;
                    }

                    const conclusieScreening1El = document.getElementById('form_input_anamnesis[screening][conclusion_of_screening]_26');
                    if (conclusieScreening1El && conclusieScreening && conclusieScreening == 'De symptomen passen in een herkenbaar profiel') {
                        conclusieScreening1El.checked = true;
                    }

                    const conclusieScreening2El = document.getElementById('form_input_anamnesis[screening][conclusion_of_screening]_25');
                    if (conclusieScreening2El && conclusieScreening && conclusieScreening == 'De symptomen passen in een herkenbaar profiel, maar er is sprake van mogelijk ernstige pathologie') {
                        conclusieScreening2El.checked = true;
                    }

                    const conclusieScreening3El = document.getElementById('form_input_anamnesis[screening][conclusion_of_screening]_24');
                    if (conclusieScreening3El && conclusieScreening && conclusieScreening == 'De symptomen passen in een herkenbaar profiel, maar kunnen beter door een andere hulpverlener behandeld worden') {
                        conclusieScreening3El.checked = true;
                    }

                    const conclusieScreening4El = document.getElementById('form_input_anamnesis[screening][conclusion_of_screening]_23');
                    if (conclusieScreening4El && conclusieScreening && conclusieScreening == 'De symptomen passen in een niet herkenbaar profiel') {
                        conclusieScreening4El.checked = true;
                    }

                    const naOverlegHuisartsEl = document.getElementById('frm_input_anamnesis[screening][decided_to_do_more_examination_after_consulting_general_practitioner]');
                    if (naOverlegHuisartsEl && naOverlegHuisarts && naOverlegHuisarts.toLowerCase() === 'ja') {
                        naOverlegHuisartsEl.checked = true;
                    }

                    const inhoudBesprokenEl = document.getElementById('frm_input_anamnesis[screening][content_of_screening_form_is_discussed_with_patient]');
                    if (inhoudBesprokenEl && inhoudBesproken && inhoudBesproken.toLowerCase() === 'ja') {
                        inhoudBesprokenEl.checked = true;
                    }

                    const adviesContactOpnemenHAEl = document.getElementById('frm_input_anamnesis[screening][patient_is_advised_to_contact_general_practitioner]');
                    if (adviesContactOpnemenHAEl && adviesContactOpnemenHA && adviesContactOpnemenHA.toLowerCase() === 'ja') {
                        adviesContactOpnemenHAEl.checked = true;
                    }

                    
                    const rapport = {
                        rode_vlaggen_besproken: checkveld(rodeVlaggenBesprokenEl,data.response.screening_rode_vlaggen_besproken,"ja"),
                        na_overleg_huisarts: checkveld(naOverlegHuisartsEl,data.response.screening_na_overleg_huisarts,"ja"),
                        conclusie_screening: checkveld(conclusieScreening1El,data.response.screening_conclusie_screening,"De symptomen passen in een herkenbaar profiel"),
                        conclusie_screening: checkveld(conclusieScreening2El,data.response.screening_conclusie_screening,"De symptomen passen in een herkenbaar profiel, maar er is sprake van mogelijk ernstige pathologie"),
                        conclusie_screening: checkveld(conclusieScreening3El,data.response.screening_conclusie_screening,"De symptomen passen in een herkenbaar profiel, maar kunnen beter door een andere hulpverlener behandeld worden"),
                        conclusie_screening: checkveld(conclusieScreening4El,data.response.screening_conclusie_screening,"De symptomen passen in een niet herkenbaar profiel"),
                        inhoud_besproken: checkveld(inhoudBesprokenEl,data.response.screening_inhoud_besproken,"ja"),
                        advies_contact_opnemen_ha: checkveld(adviesContactOpnemenHAEl,data.response.screening_advies_contact_opnemen_ha,"ja"),
                        patient_onderzoeken_ja: checkveld(patientOnderzoekenJaEl,data.response.screening_patient_onderzoeken,"ja"),
                        patient_onderzoeken_nee: checkveld(patientOnderzoekenNeeEl,data.response.screening_patient_onderzoeken,"nee"),
                        
                      
                    };

                    console.log(rapport)
                    sendReport(rapport)
                }

    ///////////////////////////////////////////////////////////////////////////////////

                //Onderzoek

                const verwachtHerstelEl = document.getElementById('frm_input_anamnesis[recovery_prognosis]');

                if (verwachtHerstelEl && verwachtHerstelEl.value == ''){

                    let dropdownHerstel = '0';
     
                    if (verwachtHerstel) {
    
                        if (verwachtHerstel == 'Volledig herstel') {
                            dropdownHerstel  = '42';
                        } else if (verwachtHerstel == 'Reductie') {
                            dropdownHerstel  = '41';
                        } else if (verwachtHerstel == 'Stabilisatie') {
                            dropdownHerstel  = '40';
                        } else if (verwachtHerstel == 'Handhaven of verminderen van progressie') {
                            dropdownHerstel  = '39';
                        }
                        
                    }
                    verwachtHerstelEl.value = dropdownHerstel 


                    const indicatieFysiotherapieJaEl = document.getElementById('form_input_anamnesis[indication_physical_therapy]_28');
                    if (indicatieFysiotherapieJaEl && indicatieFysiotherapie && indicatieFysiotherapie.toLowerCase() == 'ja') {
                        indicatieFysiotherapieJaEl.checked = true;
                    }

                    const indicatieFysiotherapieNeeEl = document.getElementById('form_input_anamnesis[indication_physical_therapy]_27');
                    if (indicatieFysiotherapieNeeEl && indicatieFysiotherapie && indicatieFysiotherapie.toLowerCase() == 'nee') {
                        indicatieFysiotherapieNeeEl.checked = true;
                    }

                    const chronischEl = document.getElementById('frm_input_is_chronic');
                    if (chronischEl && chronisch && chronisch.toLowerCase() === 'ja') {
                        chronischEl.checked = true;
                    }

                    const eersteAandoeningEl = document.getElementById('frm_input_is_first_illness');
                    if (eersteAandoeningEl && eersteAandoening && eersteAandoening.toLowerCase() === 'ja') {
                        eersteAandoeningEl.checked = true;
                    }

                    const verwachteDuurAantalEl = document.getElementById('frm_input_anamnesis[recovery_prognosis_duration_value]');
                    if (verwachteDuurAantalEl && verwachteDuurAantal) {
                        verwachteDuurAantalEl.value = verwachteDuurAantal;
                    }

                    const verwachteDuurEenheidEl = document.getElementById('frm_input_anamnesis[recovery_prognosis_duration_unit]');
                    let dropdownVerwachteDuur = '0';
                    if (verwachteDuurEenheidEl) {
                        
                        if (verwachteDuurEenheid) {
                            const verwachteDuurEenheidText = verwachteDuurEenheid.toLowerCase();
 
                            if (verwachteDuurEenheidText == 'dag') {
                                dropdownVerwachteDuur = '38';
                            } else if (verwachteDuurEenheidText == 'dagen') {
                                dropdownVerwachteDuur = '37';
                            } else if (verwachteDuurEenheidText == 'week') {
                                dropdownVerwachteDuur = '36';
                            } else if (verwachteDuurEenheidText == 'weken') {
                                dropdownVerwachteDuur = '35';
                            } else if (verwachteDuurEenheidText == 'maand') {
                               dropdownVerwachteDuur = '34';
                            } else if (verwachteDuurEenheidText == 'maanden') {
                               dropdownVerwachteDuur = '33';
                            } else if (verwachteDuurEenheidText == 'jaar') {
                               dropdownVerwachteDuur = '32';
                            } else if (verwachteDuurEenheidText == 'jaren') {
                               dropdownVerwachteDuur = '31';
                            }
                        }

                        verwachteDuurEenheidEl.value = dropdownVerwachteDuur
                    }

                    const aantalBehandelingenEl = document.getElementById('frm_input_anamnesis[prognosis_number_of_treatments]');
                    if (aantalBehandelingenEl && aantalBehandelingen) {
                        aantalBehandelingenEl.value = aantalBehandelingen;
                    }
                   

                    const rapport = {
                        indicatie_fysio_niet: checkveld(indicatieFysiotherapieNeeEl,data.response.onderzoek_indicatie_fysiotherapie,"nee"),
                        indicatie_fysio_wel: checkveld(indicatieFysiotherapieJaEl,data.response.onderzoek_indicatie_fysiotherapie,"ja"),
                        chronisch: checkveld(chronischEl,data.response.onderzoek_chronisch,"ja"),
                        eerste_aandoening: checkveld(eersteAandoeningEl,data.response.onderzoek_eerste_aandoening,"ja"),
                        verwacht_herstel: checkveld(verwachtHerstelEl,dropdownHerstel),
                        verwachte_duur_aantal: checkveld(verwachteDuurAantalEl,data.response.onderzoek_prognose_verwachte_duur_binnen),
                        verwachte_duur_eenheid: checkveld(verwachteDuurEenheidEl,dropdownVerwachteDuur),
                        aantal_behandelingen: checkveld(aantalBehandelingenEl,data.response.onderzoek_prognose_aantal_behandelingen)                       
                    };
 
                    console.log(rapport)
                    sendReport(rapport)
                }

    ///////////////////////////////////////////////////////////////////////////////////

                //Behandelplan
                const hoofddoelEl = document.getElementById('frm_input_anamnesis[intended_maingoal]');
                if (hoofddoelEl && hoofddoelEl.innerHTML == '') {

                    if (hoofddoelEl && hoofddoel) {
                        hoofddoelEl.innerHTML = hoofddoel;
                    }

                    const toestemmingPatientEl = document.getElementById('frm_input_anamnesis[patient_gives_permission_according_to_treatmentplan_and_maingoal]');
                    if (toestemmingPatientEl && toestemmingPatient && toestemmingPatient.toLowerCase() === 'ja') {
                        toestemmingPatientEl.checked = true;
                    }

                    
                    const rapport = {
                        hoofddoel: checkveld(hoofddoelEl, data.response.behandelplan_hoofddoel),
                        toestemming_patient: checkveld(toestemmingPatientEl,data.response.behandelplan_toestemming_patient, 'ja'),
                    };

                    console.log(rapport)
                    sendReport(rapport)
                }
            }
        },
        onerror: function (err) {
                sendError(err);
            }

        });

    }


    function checkveld (el, input, checkboxValue=null) {
        if (!el) return { status: 'element niet gevonden', succes: false };

        if (el.tagName === 'TEXTAREA'){
            if (el.innerHTML.trim().replace(/\s+/g, '')  !== input.trim().replace(/\s+/g, '') ) return {
                status: 'niet goed ingevuld', 
                succes: false,
                ingevuld: el.innerHTML.trim().replace(/\s+/g, ''),
                opgehaald: input.trim().replace(/\s+/g, '')
            }
        } else if (el.tagName === 'INPUT' && el.type === 'checkbox'){
            if (input) { 
                if (el.checked !== (input.toLowerCase() === checkboxValue.toLowerCase())) return {
                    status: 'niet goed ingevuld', 
                    succes: false,
                    ingevuld: el.checked,
                    opgehaald: input.toLowerCase(),
                    checkbox_waarde: checkboxValue.toLowerCase()
                }
            }
        } else if (el.tagName === 'INPUT' && el.type === 'date'){
            if (el.value && el.value !== input) return {
                status: 'niet goed ingevuld', 
                succes: false,
                ingevuld: el.value,
                opgehaald: input
            }
        } else if (el.tagName === 'INPUT' && el.type === 'text'){
            if (el.getAttribute('data-slider') === 'true') {
                if (el !== input) return {
                    status: 'niet goed ingevuld', 
                    succes: false,
                    ingevuld: el,
                    opgehaald: input
                }
            } else {
                if (el.value !== input) return {
                    status: 'niet goed ingevuld', 
                    succes: false,
                    ingevuld: el.value,
                    opgehaald: input
                }
            }
        } else if (el.tagName === 'SELECT') {
            if (el.value && el.value !== input) return { 
                status: 'niet goed ingevuld', 
                succes: false,
                ingevuld: el.value,
                opgehaald: input
            };
        } else if (el.tagName === 'INPUT' && el.type === 'radio') {

            if (input) { 
                if (el.checked !== (input.toLowerCase() === checkboxValue.toLowerCase())) return {
                    status: 'niet goed ingevuld', 
                    succes: false,
                    ingevuld: el.checked,
                    opgehaald: input.toLowerCase(),
                    checkbox_waarde: checkboxValue.toLowerCase()
                }
            }
        }

        return {status: 'ok', succes: true}
        
    }

    function sendReport(rapport){

        const allesOK = Object.values(rapport).every(v => v.status === 'ok' && v.succes === true);
        console.log(allesOK)

        console.log(new Date().toISOString())
        console.log(allesOK ? 'succes' : 'fouten')
        console.log(rapport)
        console.log(patientName)

        GM_xmlhttpRequest({
            method: "POST",
            url: 'https://whisper.anzwerz.ai/api/som-feedback',
            headers: {
                    'Content-Type': 'application/json',
                    'X-API-Key': 'mijn-geheime-sleutel'
                },
            data: JSON.stringify({
                timestamp: new Date().toISOString(),
                result: allesOK ? 'ok' : 'not ok',
                details: rapport,
                consult_type: 'behandeling',
                patient_number: patientName
            }),
            onload: function (response) {
                console.log(response)
            },
            onerror: function (err) {
                sendError(err);
            }
        });
    }

    function sendError(err){
        console.error("❌ Fout bij ophalen of verwerken van data:", err);
         GM_xmlhttpRequest({
            method: "POST",
            url: 'https://whisper.anzwerz.ai/api/som-feedback',
            headers: {
                    'Content-Type': 'application/json',
                    'X-API-Key': 'mijn-geheime-sleutel'
                },
            data: JSON.stringify({ error_description: err.message,
                                    error_log: err.stack,
                                    error_type: err.name
            }),
            onload: function (response) {
                    console.log(response)
                },
            onerror: function (err) {
                    console.error("Niet gelukt om error te loggen", err);
                }
        });
    }

}, false);
})();