// worklist web service proxy
webservices.factory('reportService', ['$http', 'apiConfig', function ($http, apiConfig) {
    'use strict';
    return {
        getReport: function (reportId) {
            var config = { isBusyRequest: true };
            return $http.get('/report/reports/' + reportId, apiConfig.create(config));
        },
        getReportByProcedureID: function (procedureId) {
            var config = { isBusyRequest: true };
            return $http.get('/report/reportbyprocedureid/' + procedureId, apiConfig.create(config));
        },
        createReport: function (newData) {
            var config = { isBusyRequest: true };
            var data =  JSON.stringify(newData);
            return $http.post('/report/reports', data, apiConfig.create(config));
        },
        updateReport: function (newData) {
            var config = { isBusyRequest: true };
            var data =  JSON.stringify(newData);
            return $http.put('/report/reports/' + newData.uniqueID, data, apiConfig.create(config));
        },
        getBaseInfo: function (procedureId) {
            var config = { isBusyRequest: true };
            return $http.get('/report/baseinfo/' + procedureId, apiConfig.create(config));
        },
        getBaseInfoDesc: function (procedureId) {
            var config = { isBusyRequest: true };
            return $http.get('/report/baseinfodesc/' + procedureId, apiConfig.create(config));
        },
        getBaseInfoDescByOrderID: function (orderId) {
            var config = { isBusyRequest: true };
            return $http.get('/report/baseinfodescbyorderid/' + orderId, apiConfig.create(config));
        },
        getBaseInfoByOrderID: function (orderId) {
            var config = { isBusyRequest: true };
            return $http.get('/report/baseinfobyorderid/' + orderId, apiConfig.create(config));
        },
        getProceduresByOrderID: function (orderId) {
            return $http.get('/report/getproceduresbyorderid/' + orderId, apiConfig.create());
        },
        getProceduresByReportID: function (reportId) {
            return $http.get('/report/getproceduresbyreportid/' + reportId, apiConfig.create());
        },
        getLock: function (reportId) {
            return $http.get('/report/getlock/' + reportId, apiConfig.create());
        },
        getLockByOrderID: function (orderId) {
            return $http.get('/report/getlockbyorderid/' + orderId, apiConfig.create());
        },
        getLockByOrderIDByAnyLockType: function (orderId) {
            return $http.get('/report/getlockbyorderidbyanylocktype/' + orderId, apiConfig.create());
        },
        addLock: function (reportId) {
            return $http.get('/report/addlockbyreportid/' + reportId, apiConfig.create());
        },
        deleteLock: function (reportId) {
            return $http.delete('/report/deletelockbyreportid/' + reportId, apiConfig.create());
        },
        addLockByOrderID: function (orderId) {
            return $http.get('/report/addlockbyorderid/' + orderId, apiConfig.create());
        },
        deleteLockByOrderID: function (orderId) {
            return $http.delete('/report/deletelockbyorderid/' + orderId, apiConfig.create());
        },

        addLockByProcedureID: function (procedureId) {
            return $http.get('/report/addlockbyprocedureid/' + procedureId, apiConfig.create());
        },
        addLockByProcedureIDs: function (ids) {
            var config = { isBusyRequest: true };
            var data = JSON.stringify(ids);
            return $http.post('/report/addlockbyprocedureids', data, apiConfig.create(config));
        },
        deleteLockByProcedureID: function (procedureId) {
            return $http.delete('/report/deletelockbyprocedureid/' + procedureId, apiConfig.create());
        },
        deleteLockByProcedureIDs: function (ids) {
            var config = { isBusyRequest: true };
            var data = JSON.stringify(ids);
            return $http.post('/report/deletelockbyprocedureids', data, apiConfig.create(config));
        },
        getAllUserByParentID: function (id) {
            var config = { isBusyRequest: true };
            return $http.get('/report/userforreportbyparentid/' + id, apiConfig.create(config));
        },
        getTemplateByParentID: function (id) {
            return $http.get('/report/gettemplatebyparentid/' + id, apiConfig.create());
        },
        getTemplateID: function (id) {
            return $http.get('/report/getreporttemplate/' + id, apiConfig.create());
        },
        getProcedureByID: function (id) {
            var config = { isBusyRequest: true };
            return $http.get('/report/getprocedurebyid/' + id, apiConfig.create(config));
        },
        getExamedProcedureByOrderID: function (id) {
            var config = { isBusyRequest: true };
            return $http.get('/report/getexamedproceduresbyorderid/' + id, apiConfig.create(config));
        },
        getReportViewerByProcedureID: function (id) {
            var config = { isBusyRequest: true };
            return $http.get('/report/getreportviewerbyprocedureid/' + id, apiConfig.create(config));
        },
        getReportPrintUrlByProcedureID: function (id) {
            var config = {isBusyRequest: true };
            return $http.get('/report/getreportprinturlbyprocedureid/' + id, apiConfig.create(config));
        },
        updateReportPrintStatusByProcedureID: function (id, printer) {
            return $http.get('/report/updatereportprintstatusbyprocedureid/' + id + '/' + printer, apiConfig.create());
        },
        getServerTime: function () {
            return $http.get('/report/getservertime' , apiConfig.create());
        },
        updateComments: function (newData) {
            var data =  JSON.stringify(newData);
            return $http.post('/report/updatecomments', data, apiConfig.create());
        },
        getReportListByID: function (id) {
            var config = { isBusyRequest: true };
            return $http.get('/report/getreportlistbyid/' + id, apiConfig.create(config));
        },
        getOtherReportListByID: function (id) {
            var config = { isBusyRequest: true };
            return $http.get('/report/getotherreportlistbyid/' + id, apiConfig.create(config));
        },
        getOtherReportListByProcedureID: function (id) {
            var config = { isBusyRequest: true };
            return $http.get('/report/getotherreportlistbyprocedureid/' + id, apiConfig.create(config));
        },
    };
}]);