Browse Source

恢复文件

Xiao_Yanpeng 7 years ago
parent
commit
e2226fbc78
2 changed files with 523 additions and 0 deletions
  1. 370 0
      js/buz/followup/drugs.js
  2. 153 0
      page/followup/drugs.html

+ 370 - 0
js/buz/followup/drugs.js

@ -0,0 +1,370 @@
var request = getRequest(), 
    fv_id = request.fv_id,
    pro_id = request.pro_id,
    title = request.title,
    fv_class = request.fv_class,
    patiCode = request.patiCode;

var docInfo = window.localStorage.getItem('docInfo');
if(docInfo){
    docInfo = JSON.parse(docInfo);
}

$(function(){
    initPage();
    bindEvents();
})

function initPage(){
    var params = {
        id: fv_id
    };
    followupAPI.getFollowupDrugs(params).then(function(res){
        if(res.status == 200){
            var data = res.data.DRUG_LIST,
                regular = res.data.DRUG_COMPLIANCE_CODE,
                hasInsulin=[],
                noInsulin=[];
            
            $("[name=DRUG_COMPLIANCE_CODE]").val(regular);
            if(data.length>0){
                for(var i=0;i<data.length;i++){
                    var unitInfo = _.findWhere(measure_unit_dict, {key: data[i].unit}),
                        frequency = _.findWhere(recipe_frequency_dict, {key: data[i].frequency});
                        
                    data[i].unitName = unitInfo.name;
                    data[i].frequencyName = frequency.name;
                    if(data[i].drugsGroup == 'insulin'){//胰岛素药品
                        hasInsulin.push(data[i])
                    }else{
                        noInsulin.push(data[i])
                    }
                }
            }
            var hasInsulinLen = hasInsulin.length,
                noInsulinLen = noInsulin.length,
                noInsulinEmptyList = new Array(6 - noInsulinLen), //非胰岛素药品最多只能增加6种
                hasInsulinEmptyList = new Array(3 - hasInsulinLen); //胰岛素药品最多只能增加3种
            var html1 = template("drug_tmp", {dataList: noInsulin, emptyList: noInsulinEmptyList, isInsulin: false}),
                html2 = template("drug_tmp", {dataList: hasInsulin, emptyList: hasInsulinEmptyList, isInsulin: true});
                
            $("#table1 tbody").append(html1);
            $("#table2 tbody").append(html2);
            
            initDrugNameSuggestInput();
            initUnitInput();
            initFreqSuggestInput();
        }else{
            showErrorMsg(res.msg);
        }
    })
}

function bindEvents(){
    $(".link-red").on("click", function(){
        layer.confirm('您确定要清空用药信息吗?', {
            btn: ['是的','取消'], //按钮
            shade: false //不显示遮罩
        }, function(){
            //清空数据
            clearDrugsInfo();
            layer.close(layer.index);
        });
    });
    
    $("#getPrescription").on("click", function(){
        //弹出层是加载在top上的,目前项目的top层是index.html页面层。所以路径需要相对index.html页面
        top.layer.open({
            type: 2,
            type: 2,
            title: '<img src="img/shezi_tankuang_icon.png" class="mr10">用药记录',
            shadeClose: true,
            area: ['700px', '500px'],
            content: '/PC-prescription/page/followup/followup-prescriptions.html'+location.search
        });
    });
    
    $("#submitBtn").on("click", function(){
        //保存
        var complianceCode = $("[name=DRUG_COMPLIANCE_CODE]").val(),
            $trs1 = $("#table1 tbody tr"),
            $trs2 = $("#table2 tbody tr"),
            drugs = [];
        for(var i=0; i<6; i++){
            var $tr = $($trs1[i]),
                $drug = $tr.find(".j-drugName"),
                $dose = $tr.find(".dose"),
                $unit = $tr.find(".unit-select"),
                $freq = $tr.find(".frequency-select");
                
            var obj = {},
                drugsGroup = 'normal',
                drugsCode = $drug.attr("data-id"),
                drugsName = $drug.val(),
                frequency = $freq.attr("data-id"),
                unit = $unit.attr("data-id"),
                dose = $dose.val();
            if(drugsCode && drugsName && dose && unit && frequency){
                obj = {
                    drugsGroup : 'normal',
                    drugsCode : drugsCode,
                    drugsName : drugsName,
                    frequency : frequency,
                    unit : unit,
                    dose : dose
                };
                drugs.push(obj);
            }else if(drugsCode || drugsName || dose || unit || frequency){
                //如果药品信息中填写了部分,则需要将未填写的内容补全
                showWarningMsg("请补全未填写完成的药品信息");
                return false;
            }
        }
        for(var j=0; j<3; j++){
            var $tr = $($trs2[j]),
                $drug = $tr.find(".j-drugName"),
                $dose = $tr.find(".dose"),
                $unit = $tr.find(".unit-select"),
                $freq = $tr.find(".frequency-select");
                
            var obj = {},
                drugsGroup = 'insulin',
                drugsCode = $drug.attr("data-id"),
                drugsName = $drug.val(),
                frequency = $freq.attr("data-id"),
                unit = $unit.attr("data-id"),
                dose = $dose.val();
            if(drugsCode && drugsName && dose && unit && frequency){
                obj = {
                    drugsGroup : 'normal',
                    drugsCode : drugsCode,
                    drugsName : drugsName,
                    frequency : frequency,
                    unit : unit,
                    dose : dose
                };
                drugs.push(obj);
            }else if(drugsCode || drugsName || dose || unit || frequency){
                //如果药品信息中填写了部分,则需要将未填写的内容补全
                showWarningMsg("请补全未填写完成的药品信息");
                return false;
            }
        }
        
        
        if(complianceCode == "undefined"){
            complianceCode = "";
        }
        var followupProjectData = {'DRUG_COMPLIANCE_CODE': complianceCode};
        console.log(followupProjectData);
        var projectData = {
            id: fv_id,
            followupProject: pro_id,
            followupProjectData: JSON.stringify(followupProjectData)
        },
        drugData = {
            id: fv_id,
            drugsData: JSON.stringify(drugs)
        };
        Promise.all([
            followupAPI.saveFollowupProjectData(projectData),
            followupAPI.saveFollowupDrugs(drugData)
        ]).then(function(ress){
            if(ress[0].status == 200 && ress[1].status == 200){
                parent.goFollowupNextQuestionaire();
            }else if(ress[0].status != 200){
                showErrorMsg(ress[0].msg);
            }else if(ress[1].status != 200){
                showErrorMsg(ress[1].msg);
            }
        })
    })
}

function initDrugNameSuggestInput() {
    $("input.noInsulin").bsSuggest({
        url: APIService.server+'doctor/prescriptionInfo/findDictByName?isinsulin=1&name=',
        getDataMethod:'url',
        idField: "drugCode",
        keyField: "drugName",
        effectiveFields: ['drugName','drugFormat'],
        effectiveFieldsAlias:{drugName: "药品名称",drugFormat:"规格"},
        ignorecase: true,
        fnProcessData: function(res) {
            return {
                value: res.data
            }
        }
    }).on('onSetSelectValue', function (e, v) {
        var rowData = v.json;
        rowData = JSON.parse(rowData);
        var $tr = $(this).closest("tr"),
            $unit = $tr.find(".unit-select");
        $unit.val(rowData.physicDoseUnitName);
        $unit.attr("data-id", rowData.physicDoseUnit);
    });
    
    $("input.isInsulin").bsSuggest({
        url: APIService.server+'doctor/prescriptionInfo/findDictByName?isinsulin=2&name=',
        getDataMethod:'url',
        idField: "drugCode",
        keyField: "drugName",
        effectiveFields: ['drugName','drugFormat'],
        effectiveFieldsAlias:{drugName: "药品名称",drugFormat:"规格"},
        ignorecase: true,
        fnProcessData: function(res) {
            return {
                value: res.data
            }
        }
    }).on('onSetSelectValue', function (e, v) {
        var rowData = v.json;
        rowData = JSON.parse(rowData);
        var $tr = $(this).closest("tr"),
            $unit = $tr.find(".unit-select");
        $unit.val(rowData.physicDoseUnitName);
        $unit.attr("data-id", rowData.physicDoseUnit);
    })
}

function initFreqSuggestInput(){
    $("input.frequency-select").bsSuggest({
        data: {value: recipe_frequency_dict},
        idField: "key",
        keyField: "name",
        getDataMethod:'data',
        effectiveFields: ['name'],
        ignorecase: true
    })
}

function initUnitInput(){
    $("input.unit-select").bsSuggest({
        data: {value: measure_unit_dict},
        idField: "key",
        keyField: "name",
        getDataMethod:'data',
        effectiveFields: ['name'],
        ignorecase: true
    })
}

//清空药品信息
function clearDrugsInfo(){
    var $trs = $(".drugs-tr");
    
    for(var i=0; i<9; i++){
        var $tr = $($trs[i]),
            $inputs = $tr.find("input"),
            len = $inputs.length;
        for(var j=0; j<len; j++){
            var $input = $($inputs[j]);
            $input.val("");
            $input.attr("data-id", "");
        }
    }
}

function fillDrugsInfo(){
    //从缓存中获取选中的药品信息
    var drugsData = window.sessionStorage.getItem("chooseDrugs");
    if(drugsData){
        drugsData = JSON.parse(drugsData);
        var len = drugsData.length;
        
        if(len == 0){
            return false;
        }
        //先将药品分类
        var insulinList = [],
            normalList = [];
        for(var i=0; i<len; i++){
            var obj = drugsData[i];
            if(obj.subjectClass.substr(0,2)=='010' && obj.name.indexOf('胰岛素')>0){
                //胰岛素药品
                insulinList.push(obj);
            }else{
                normalList.push(obj)
            }
        }
        //如果表格中药品名称没有填写的均可以被覆盖,如果已填写的药品与处方中的药品名称一致,设定为相同药品
        
        var $trs1 = $("#table1 tbody tr"),
            $trs2 = $("#table2 tbody tr"),
            len1 = normalList.length,
            len2 = insulinList.length;
        
        if(len1 > 0){
            //填充普通药品
            var index1 = 0;
            for(var i1=0; i1<6; i1++){
                var $tr = $($trs1[i1]),
                    $drugName = $tr.find(".j-drugName"),
                    $unit = $tr.find(".unit-select"),
                    $frequency = $tr.find(".frequency-select");
                if($drugName.val() == ''){
                    if(index1 < len1){
                        var obj1 = normalList[index1];
                        $drugName.val(obj1.drugName);
                        $drugName.attr("data-id", obj1.drugCode);
                        $tr.find(".dose").val(obj1.physicDose);
                        $unit.val(obj1.physicDoseUnitName);
                        $unit.attr("data-id", obj1.physicDoseUnit);
                        index1 ++;
                    }else{
                        break;
                    }
                }else{
                    var name = $drugName.val();
                    //如果已经填写了内容,则判断药品名称是否一样
                    for(var j1=0; j1<len1; j1++){
                        var obj1 = normalList[j1];
                        if(name == obj1.drugName){
                            //从列表中删除这个对象
                            normalList.splice(j1, 1);
                            len1 --;
                            break;
                        }
                    }
                }
            }
        }
        
        if(len2 >0){
            //填充胰岛素药品
            var index2 = 0;
            for(var i2=0; i2<6; i2++){
                var $tr = $($trs2[i2]),
                    $drugName = $tr.find(".j-drugName"),
                    $unit = $tr.find(".unit-select"),
                    $frequency = $tr.find(".frequency-select");
                if($drugName.val() == ''){
                    if(index2 < len2){
                        var obj2 = insulinList[index2];
                        $drugName.val(obj2.drugName);
                        $drugName.attr("data-id", obj2.drugCode);
                        $tr.find(".dose").val(obj2.physicDose);
                        $unit.val(obj2.physicDoseUnitName);
                        $unit.attr("data-id", obj2.physicDoseUnit);
                        index2 ++;
                    }else{
                        break;
                    }
                }else{
                    var name = $drugName.val();
                    //如果已经填写了内容,则判断药品名称是否一样
                    for(var j2=0; j2<len2; j2++){
                        var obj2 = normalList[j2];
                        if(name == obj2.drugName){
                            //从列表中删除这个对象
                            insulinList.splice(j2, 1);
                            len2 --;
                            break;
                        }
                    }
                }
            }
        }
    }
}
top.fillChooseDrugs = fillDrugsInfo;

+ 153 - 0
page/followup/drugs.html

@ -0,0 +1,153 @@
<!DOCTYPE html>
<html>
    <head>
        <meta charset="UTF-8">
        <meta charset="utf-8">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <meta name="renderer" content="webkit">
        <meta http-equiv="Cache-Control" content="no-siteapp" />
        <title>用药情况</title>
        <meta name="description" content="">
        <link rel="shortcut icon" href="../../favicon.ico">
        <link rel="stylesheet" type="text/css" href="../../css/font-awesome.min93e3.css"/>
        <link href="../../css/bootstrap.min.css" rel="stylesheet">
        <link rel="stylesheet" type="text/css" href="../../css/plugins/chosen/chosen.css"/>
        <link rel="stylesheet" type="text/css" href="../../css/plugins/toastr/toastr.min.css"/>
        <link rel="stylesheet" type="text/css" href="../../js/plugins/layer/skin/layer.css"/>
        <link rel="stylesheet" type="text/css" href="../../css/style.css"/>
        <link rel="stylesheet" type="text/css" href="../../css/followup.css"/>
    </head>
    <body>
        <form id="question_form" class="" onsubmit="return false;">
            <div class="clearfix form-info">
                <h1 class="text-center mb30" style="font-size: 20px;">6、用药情况</h1>
                <div class="form-group">
                    <label class="fl h34 lh34">服药依从性:</label>
                    <div class="input-group col-xs-6" style="width: 120px;">
                        <select name="DRUG_COMPLIANCE_CODE" class="my_select_box form-control" >
                            <option value="undefined">请选择</option>
                            <option value="1">规律服药</option>
                            <option value="2">间断服药</option>
                            <option value="3">不服药</option>
                        </select>
                    </div>
                </div>
            </div>
            <table class="table" id="table1">
                <thead>
                    <tr>
                        <th>药品名称</th>
                        <th>次剂量</th>
                        <th>单位</th>
                        <th>频次</th>
                    </tr>
                </thead>
                <tbody>
                    
                </tbody>
            </table>
            <table class="table" id="table2">
                <thead>
                    <tr>
                        <th>胰岛素药品名称</th>
                        <th>次剂量</th>
                        <th>单位</th>
                        <th>频次</th>
                    </tr>
                </thead>
                <tbody></tbody>
            </table>
        </form>
        <div class="mlr30 ui-grid">
            <div class="ui-col-1">
                <a class="link-blue" id="getPrescription">从居民用药记录中获取</a>
            </div>
            <div class="ui-col-1 text-right">
                <a class="link-red">清空用药信息</a>
            </div>
        </div>
        <div class="text-center mt40 mb30">
            <button type="submit" id="submitBtn" class="btn btn-blue">保存并下一步</a>
        </div>
        <script type="text/html" id="drug_tmp">
            {{each dataList as it}}
            <tr class="drugs-tr">
                <td>
                    <div class="input-group">
                        <input type="text" class="form-control j-drugName {{if isInsulin}}isInsulin{{else}}noInsulin{{/if}}" data-id="{{it.drugsCode}}" value="{{it.drugsName}}"  placeholder="请输入药品名称或拼音首码">
                        <div class="input-group-btn">
                            <ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
                        </div>
                    </div>
                </td>
                <td><input type="text" class="form-control dose" size="5" value="{{it.dose}}"></td>
                <td>
                    <div class="input-group" style="width: 110px;">
                        <input type="text" class="form-control unit-select" data-id="{{it.unit}}" value="{{it.unitName}}" placeholder="请选择">
                        <span><i class="fa fa-angle-down c-arrow"></i></span>
                        <div class="input-group-btn">
                            <ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
                        </div>
                    </div>
                </td>
                <td>
                    <div class="input-group" style="width: 110px;">
                        <input type="text" class="form-control frequency-select" data-id="{{it.frequency}}" value="{{it.frequencyName}}" placeholder="请选择">
                        <span><i class="fa fa-angle-down c-arrow"></i></span>
                        <div class="input-group-btn">
                            <ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
                        </div>
                    </div>
                </td>
            </tr>
            {{/each}}
            {{each emptyList as it}}
            <tr class="drugs-tr">
                <td>
                    <div class="input-group">
                        <input type="text" class="form-control j-drugName {{if isInsulin}}isInsulin{{else}}noInsulin{{/if}}" placeholder="请输入药品名称或拼音首码">
                        <div class="input-group-btn">
                            <ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
                        </div>
                    </div>
                </td>
                <td><input type="text" class="form-control dose" size="5" value=""></td>
                <td>
                    <div class="input-group" style="width: 110px;">
                        <input type="text" class="form-control unit-select" placeholder="请选择">
                        <span><i class="fa fa-angle-down c-arrow"></i></span>
                        <div class="input-group-btn">
                            <ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
                        </div>
                    </div>
                </td>
                <td>
                    <div class="input-group" style="width: 110px;">
                        <input type="text" class="form-control frequency-select" placeholder="请选择">
                        <span><i class="fa fa-angle-down c-arrow"></i></span>
                        <div class="input-group-btn">
                            <ul class="dropdown-menu dropdown-menu-right" role="menu"></ul>
                        </div>
                    </div>
                </td>
            </tr>
            {{/each}}
        </script>
        <script src="../../js/jquery.min.js?v=2.1.4"></script>
        <script src="../../js/bootstrap.min.js?v=3.3.6"></script>
        <script src="../../js/plugins/toastr/toastr.min.js"></script>
        <script src="../../js/plugins/pace/pace.min.js"></script>
        <script src="../../js/plugins/chosen/chosen.jquery.js " type="text/javascript" charset="utf-8"></script>
        <script src="../../js/plugins/layer/layer.min.js"></script>
        <script src="../../js/plugins/suggest/bootstrap-suggest.min.js"></script>
        <script src="../../js/template.js"></script>
        <script src="../../js/util.js"></script>
        <script src="../../js/underscore.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../js/api-service.js"></script>
        <script src="../../js/followup-api.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../js/buz/followup/template_gxy.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../js/buz/followup/measure_unit_dict.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../js/buz/followup/recipe_frequency_dict.js" type="text/javascript" charset="utf-8"></script>
        <script src="../../js/buz/followup/drugs.js" type="text/javascript" charset="utf-8"></script>
    </body>
</html>