<?php include('techsyn_header.php'); ?>
<!-- Main Content Container for side bar and body-->
<div class="main-container ace-save-state" id="main-container">
    <script type="text/javascript">
        try {
            ace.settings.loadState('main-container')
        } catch (e) {}
    </script>
    <?php include('techsyn_sidebar.php'); ?>

    <!--breadcrumb-->
    <div class="main-content">
        <div class="main-content-inner">
            <div class="breadcrumbs ace-save-state" id="breadcrumbs">
                <ul class="breadcrumb">

                    <li class="#">Data Setup</li>
                    <li class="#">Masters</li>
                    <li class="active">Checkup Parameter</li>
                </ul>
            </div>
            <!-- End of breadcrumb -->

            <div class="page-content">
                <div id="flexigridDiv" class="table-responsive">

                    <form name="f1" method="post" action="" id="flex_form_unit">
                        <div id="flex1" style="width:100%">
                        </div>
                        <input type="hidden" name="flex_unit_id" id="flex_unit_id" />
                    </form>
                </div>
            </div>



        </div><!-- /.page-content -->
    </div>
</div><!-- /.main-content -->




<script type="text/javascript">
    $(function() {
        var w = screen.width * .90;
        var h = 0;
        h = (window.innerHeight - ($("#navbar").height() + $(".breadcrumbs").height())) * .75;
        $("#flex1").flexigrid({
            url: 'checkup_parameter_list_script.php',
            dataType: 'json',
            colModel: [{
                    display: '',
                    name: '',
                    width: w * .08,
                    sortable: true,
                    align: 'left'
                },
                {
                    display: 'Sr',
                    name: 'count',
                    width: w * .04,
                    sortable: false,
                    align: 'left'
                },

                {
                    display: 'Checkup Parameter Name',
                    name: 'parameter_name',
                    width: w * .15,
                    sortable: true,
                    align: 'left'
                },
				 {
                    display: 'Section',
                    name: 'checkup_form_section_id',
                    width: w * .1,
                    sortable: true,
                    align: 'left'
                },
				 {
                    display: 'Checkup Type',
                    name: 'checkup_type_ids',
                    width: w * .1,
                    sortable: true,
                    align: 'left'
                },
                {
                    display: 'Mandatory?',
                    name: 'is_mandatory',
                    width: w * .06,
                    sortable: true,
                    align: 'left'
                },
                {
                    display: 'Default Value',
                    name: 'default_value',
                    width: w * .1,
                    sortable: true,
                    align: 'left'
                },
                {
                    display: 'Device Details',
                    name: '',
                    width: w * .2,
                    sortable: true,
                    align: 'left'
                },
                
                {
                    display: 'Starting Range',
                    name: 'starting_range',
                    width: w * .1,
                    sortable: true,
                    align: 'left'
                },
                {
                    display: 'Ending Range',
                    name: 'ending_range',
                    width: w * .1,
                    sortable: true,
                    align: 'left'
                },
                {
                    display: 'Less Risk',
                    name: 'less_risks',
                    width: w * .1,
                    sortable: true,
                    align: 'left'
                },
                {
                    display: 'More Risk',
                    name: 'more_risks',
                    width: w * .1,
                    sortable: true,
                    align: 'left'
                },
                {
                    display: 'Less Advice',
                    name: 'less_advices',
                    width: w * .1,
                    sortable: true,
                    align: 'left'
                },
                {
                    display: 'More Advice',
                    name: 'more_advices',
                    width: w * .1,
                    sortable: true,
                    align: 'left'
                },
                {
                    display: 'unit',
                    name: 'unit',
                    width: w * .1,
                    sortable: true,
                    align: 'left'
                },
                {
                    display: 'OPD Param',
                    name: 'opd_param',
                    width: w * .1,
                    sortable: true,
                    align: 'left'
                },
                {
                    display: 'Injury Param',
                    name: 'inj_param',
                    width: w * .1,
                    sortable: true,
                    align: 'left'
                },
                {
                    display: 'DayCare/Detention/Ipd Param',
                    name: 'ipd_param',
                    width: w * .1,
                    sortable: true,
                    align: 'left'
                },
               
                {
                    display: 'Column Order',
                    name: 'column_order',
                    width: w * .1,
                    sortable: true,
                    align: 'left'
                },
                {
                    display: 'Column Name',
                    name: 'column_name',
                    width: w * .1,
                    sortable: true,
                    align: 'left'
                },
                {
                    display: 'Group Id',
                    name: 'group_id',
                    width: w * .1,
                    sortable: true,
                    align: 'left'
                },
                {
                    display: 'Placeholder',
                    name: 'place_holder_name',
                    width: w * .1,
                    sortable: true,
                    align: 'left'
                },
                {
                    display: 'Parameter Values',
                    name: 'parameter_value',
                    width: w * .1,
                    sortable: true,
                    align: 'left'
                },
                {
                    display: 'Input Type',
                    name: 'input_type',
                    width: w * .1,
                    sortable: true,
                    align: 'left'
                },
               
                {
                    display: 'Status',
                    name: 'enabled',
                    width: w * .1,
                    sortable: true,
                    align: 'left'
                },
                {
                    display: 'Editable',
                    name: 'readonly_field',
                    width: w * .1,
                    sortable: true,
                    align: 'left'
                },
                {
                    display: 'Key Health Map Name',
                    name: 'key_health_map_name',
                    width: w * .1,
                    sortable: true,
                    align: 'left'
                },
                {
                    display: 'Parent Parameter',
                    name: 'parent_param',
                    width: w * .1,
                    sortable: true,
                    align: 'left'
                },
                {
                    display: 'Reference ranges',
                    name: 'ref_ranges',
                    width: w * .2,
                    sortable: true,
                    align: 'left'
                },
                {
                    display: 'Range Rules',
                    name: 'rules',
                    width: w * .40,
                    sortable: true,
                    align: 'left'
                },




            ],
            buttons: [

                {
                    name: 'Add',
                    bclass: 'add',
                    onpress: add
                },


                {
                    separator: true
                },
                {
                    name: 'Link Parameter Device',
                    bclass: 'add',
                    onpress: open_device_link_model
                },


                {
                    separator: true
                }
            ],
            searchitems: [

                {
                    display: 'Checkup Parameter Name',
                    name: 'parameter_name',
                    isdefault: true
                },
                {
                    display: 'Starting Range',
                    name: 'starting_range'
                },
                {
                    display: 'Ending Range',
                    name: 'ending_range'
                },
            ],
            sortname: "parameter_name",
            sortorder: "asc",
            usepager: true, //pagination

            useRp: true,
            rp: 20, //records per page
            showTableToggleBtn: false, //toggle button for the whole table
            resizable: true,
            //width: w,
            height: h,
            singleSelect: true
        });
    });



    function add() {

        $("#checkup_parameter_name").val("");
        $("#checkup_starting_range").val("");
        $("#checkup_ending_range").val("");
        $("#checkup_less_risk").val("");
        $('#checkup_less_risk').trigger('chosen:updated');
        $("#checkup_more_risk").val("");
        $('#checkup_more_risk').trigger('chosen:updated');
        $("#checkup_less_advice").val("");
        $('#checkup_less_advice').trigger('chosen:updated');
        $("#checkup_more_advice").val("");
        $('#checkup_more_advice').trigger('chosen:updated');
        $("#unit").val("");
        $("#c_order").val("");
        $("#checkup_section").val("");
        $('#checkup_section').trigger('chosen:updated');
        $("#c_name").val("");
        $("#group_id").val("");
        $("#p_holder").val("");
        $("#p_value").val("");
        $('#p_value').trigger('chosen:updated');
        $("#input_type").val("");
        $("#checkup_type").val("");
        $('#checkup_type').trigger('chosen:updated');
        $("#status").val("");
        $("#readonly_field").val("");
        $("#health_key_map_name").val("");
        $("#ref_ranges").val("");
        $("#is_mandatory").val("");
        $("#default_value").val("");
        $('#model-checkup-parameter').modal("show");
    }

    function open_checkup_parameter_form(checkup_parameter_id, access_level) {
        if (access_level == 'V') {
            $(".save_button").hide();

        } else {
            $(".save_button").show();

        }


        $.ajax({
            url: 'select_checkup_parameter.php?checkup_parameter_id=' + checkup_parameter_id + ' ',
            data: {
                id: checkup_parameter_id
            },
            success: function(data) {

                data = $.parseJSON(data);

                $("#checkup_parameter_id").val(data.checkup_parameter_id);
                $("#checkup_parameter_name").val(data.parameter_name);
                $("#checkup_starting_range").val(data.starting_range);
                $("#checkup_ending_range").val(data.ending_range);
                $("#checkup_less_risk").val('');
                if (data.less_risks != null) {
                    var less_risks = data.less_risks
                    dataarray = less_risks.split(",");
                    $("#checkup_less_risk").val(dataarray);
                    $('#checkup_less_risk').trigger('chosen:updated');
                }
                if (data.more_risks != null) {
                    var more_risks = data.more_risks
                    dataarray = more_risks.split(",");
                    $("#checkup_more_risk").val(dataarray);
                    $('#checkup_more_risk').trigger('chosen:updated');
                }
                if (data.less_advices != null) {
                    var less_advice = data.less_advices
                    dataarray = less_advice.split(",");
                    $("#checkup_less_advice").val(dataarray);
                    $('#checkup_less_advice').trigger('chosen:updated');
                }
                if (data.more_advices != null) {
                    var more_advice = data.more_advices
                    dataarray = more_advice.split(",");
                    $("#checkup_more_advice").val(dataarray);
                    $('#checkup_more_advice').trigger('chosen:updated');
                }
                $("#unit").val(data.unit);
                $("#c_order").val(data.column_order);
                $("#checkup_section").val(data.checkup_form_section_id);
                $("#checkup_section").trigger('chosen:updated');

                $("#c_name").val(data.column_name);
                $("#group_id").val(data.group_id);
                $("#p_holder").val(data.place_holder_name);

                if (data.parameter_value != null) {
                    var parameter_value = data.parameter_value
                    dataarray = parameter_value.split(",");
                    $("#p_value").val(dataarray);
                    $('#p_value').trigger('chosen:updated');
                }

                $("#input_type").val(data.input_type);

                $("#checkup_type").val(data.checkup_type_ids);
                $("#checkup_type").trigger('chosen:updated');
                $("#health_key_map_name").val(data.key_health_map_name);
                $("#health_key_map_name").trigger('chosen:updated');
                $("#ref_ranges").val(data.ref_ranges);

                if (data.enabled == 'Y') {
                    $("#status").val('Y');
                } else {
                    $("#status").val('N');
                }

                if (data.readonly_field == 'Y') {
                    $("#readonly_field").val('Y');
                } else {
                    $("#readonly_field").val('N');
                }

                $("#is_opd_param").val(data.opd_param);

                $("#is_ipd_param").val(data.ipd_param);

                $("#is_inj_param").val(data.inj_param);

                $("#parent_param").val(data.parent_param);
                $("#parent_param").select2();

                if (data.rule_ids != null) {
                    var rules = data.rule_ids
                    dataarray = rules.split(",");
                    $("#rule").val(dataarray);
                    $('#rule').trigger('chosen:updated');
                }

                $("#device").val(data.device_id);
                $("#device_param_name").val(data.device_param_name);
                $("#is_mandatory").val(data.is_mandatory);
                $("#default_value").val(data.default_value);
                $('#model-checkup-parameter').modal("show");
            },
            error: function(data) {
                BootstrapDialog.alert('Error Populating injury');
                return;
            }
        });




    }

    function open_device_link_model() {
        location.href = "device_param_link.php";
    }


    function delete_checkup_parameter_form(checkup_parameterId) {

        $("#flex_unit_id").val(checkup_parameterId);

        BootstrapDialog.confirm('Are you sure to delete the checkup parameter?', function(result) {
            if (result) {
                $.ajax({
                    url: 'checkup_parameter_delete.php',
                    type: "POST",
                    data: $("#flex_form_unit").serialize(),
                    success: function(data) {
                        if (data.indexOf("SUCCESS") != -1) {
                            BootstrapDialog.alert('Checkup Parameter Deleted Successfully.');
                            $("#flex1").flexReload();

                        } else {
                            BootstrapDialog.alert('Error Deleting Checkup Parameter');
                        }
                        return;
                    },
                    error: function(data) {
                        BootstrapDialog.alert('Error Deleting Checkup Parameter');
                        return;
                    }
                });
            }
        });
    }

    function validate_checkup_parameter() {

        let cpname = $("#checkup_parameter_name").val();
        if (cpname == '' || cpname == null) {
            BootstrapDialog.alert("Please fill parameter name.Don't repeat the same name");
            return false;
        }

        let c_name = $("#c_name").val();
        if (c_name.length < 3) {
            BootstrapDialog.alert("Please fill more than or equal to  3 characters in column name field.");
            return false;
        }
        if (c_name == '' || c_name == null) {
            BootstrapDialog.alert("Please fill column name value.Don't repeat the same name");
            return false;
        }

        for (let i = 0; i < c_name.length; i++) {
            let result = isValid(c_name[i]);
            if (!result) {
                BootstrapDialog.alert("You can not enter spaces and special characters in column name");
                return result;
            }
        }


        let checkup_type_ids = $("#checkup_type").val();
        let checkup_parameter_id = $("#checkup_parameter_id").val();
        let is_opd_param = $("#is_opd_param").val();
        let is_ipd_param = $("#is_ipd_param").val();
        let is_inj_param = $("#is_inj_param").val();
        $.ajax({
            url: 'checkDuplicateColumnName.php',
            type: "POST",
            data: {
                cname: c_name,
                checkup_type: checkup_type_ids,
                checkup_parameter_id: checkup_parameter_id,
                opd_param: is_opd_param,
                ipd_param: is_ipd_param,
                inj_param: is_inj_param
            },
            success: function(data) {
                // alert(JSON.parse(data).column_name+"   "+c_name.toLowerCase().trim());
                let obj;
                try {
                    obj = JSON.parse(data);
                } catch (err) {
                    console.log(err);
                }
                if (obj.status != 200 && obj.column_name.trim() === c_name.toLowerCase().trim()) {
                    BootstrapDialog.alert("Column Name Already In Use!!!! Please write another one");
                    return;
                }
                save_checkup_parameter();
            },
            error: function(data) {
                BootstrapDialog.alert('Error In Checking Column Name');
                return;
            }
        });
    }
    $(document).on("keypress", "#c_name", function(event) {
        var character = String.fromCharCode(event.keyCode);
        // alert(character);
        // alert(isValid(character));
        return isValid(character);
    });

    function isValid(str) {
        return !/[~`!@#$%\^&*()+=\-\\ \[\]\\';,/{}|\\":<>\?]/g.test(str);
    }

    function save_checkup_parameter() {
        $.ajax({
            url: 'save_checkup_parameters.php',
            type: "POST",
            data: $("#checkup_parameter_form").serialize(),
            success: function(data) {
                BootstrapDialog.alert('Checkup Parameter Saved Successfully.');
                $("#flex1").flexReload();
                return;
            },
            error: function(data) {
                BootstrapDialog.alert('Error Saving Unit');
                return;
            }
        });
        $('.close').click();
    }
</script>

<?php include('techsyn_footer.php'); ?>
<?php include('form/checkup_parameter_form.php'); ?>