'use strict';
AIA.controller("TileViewListController", ["$scope", "$rootScope", "$compile", "$http", "$log", "$location", "BodyRegions", "BodySystems", "ViewOrientations", "ImageTypes", "$timeout", "Modules", "$routeParams", "DataService",
function ($scope, $rootScope, $compile, $http, $log, $location, BodyRegions, BodySystems, ViewOrientations, ImageTypes, $timeout, Modules, $routeParam, DataService)
{
var ATLAS_ANATOMY = 'Atlas Anatomy';
var CLINICAL_ILLUSTRATION ='Clinical Illustrations';
var CLINICAL_ANIMATION='Clinical Animations';
$scope.AllBodyRegion = [];
$scope.AllBodySystem = [];
$scope.AllOrientation = [];
$scope.AllImageType = [];
$scope.loadForModuleById = function (moduleId) {
console.log('loadForModuleById is called')
var moduleName = Modules[moduleId].Name;
$scope.loadDataForModule(moduleName);
}
$scope.loadDataForModule = function (moduleName)
{
//0. load filter static data
$scope.AllBodyRegion = BodyRegions;
$scope.AllBodySystem = BodySystems;
$scope.AllOrientation = ViewOrientations;
$scope.AllImageType = ImageTypes;
//1. load dynamic data for module specific images
var jsonPath;
if(moduleName==ATLAS_ANATOMY)
{
jsonPath ='~/../content/data/json/aa/aa_dat_contentlist.json';
}
else if(moduleName == CLINICAL_ANIMATION)
{
//to do, in next phase of project
jsonPath ='~/../content/data/json/ca/ca_dat_contentlist.json';
}
else if(moduleName == CLINICAL_ILLUSTRATION)
{
//to do, in next phase of project
jsonPath ='~/../content/data/json/ci/ci_dat_contentlist.json';
}
var promise = DataService.getJson(jsonPath)
promise.then(
function (result) {
$scope.AtlasAnatomyData = result;
$scope.data = new jinqJs()
.from($scope.AtlasAnatomyData.root.Item)
.orderBy([{ field: '_Title', sort: 'asc' }])
.select();
//console.log($scope.selectedCIListViewData);
//$('#grid-view').empty();
angular.forEach($scope.data, function (value, key) {
$scope.imagePath = "~/../content/images/aa/thumbnails/" + value._TinyImageName;
var $el = $('
'
+ '
'
+ '
![]()
'
+ '
').appendTo('#grid-view');
$compile($el)($scope);
//$(".sidebar").mCustomScrollbar({
// autoHideScrollbar: true,
// //theme:"rounded"
//});
});
$scope.scroll();
},
function (error) {
// handle errors here
console.log(' $scope.IllustrationData = ' + error.statusText);
}
);
}
$scope.scroll = function () {
$("html,body").scrollTop(0);
}
$scope.openModule = function (moduleId) {
}
$scope.ApplySearch = function (query) {
$scope.filterstring = true;
while ($scope.searchCIListViewData.length) {
$scope.searchCIListViewData.pop();
}
//$('#grid-view').empty();
filtercount = 0;
if (typeof (query.selectedbodyregion) !== "undefined" && (query.selectedbodyregion !== null && query.selectedbodyregion !== "")) {
filtercount = filtercount + 1;
localStorage.setItem("CICurBodyRegion", query.selectedbodyregion);
}
else {
localStorage.setItem("CICurBodyRegion", '');
}
if (typeof (query.selectedbodysystem) !== "undefined" && (query.selectedbodysystem !== null && query.selectedbodysystem !== "")) {
filtercount = filtercount + 1;
localStorage.setItem("CICurBodySystem", query.selectedbodysystem);
}
else {
localStorage.setItem("CICurBodySystem", '');
}
if (typeof (query.selectedorientation) !== "undefined" && (query.selectedorientation !== null && query.selectedorientation !== '')) {
filtercount = filtercount + 1;
localStorage.setItem("CICurOrientation", query.selectedorientation);
}
else {
localStorage.setItem("CICurOrientation", '');
}
if (typeof (query.selectedimagetype) !== "undefined" && (query.selectedimagetype !== null && query.selectedimagetype !== '')) {
filtercount = filtercount + 1;
localStorage.setItem("CICurImageType", query.selectedimagetype);
}
else {
localStorage.setItem("CICurImageType", '');
}
if (typeof (query.selectedspecialty) !== "undefined" && (query.selectedspecialty !== null && query.selectedspecialty !== '')) {
filtercount = filtercount + 1;
localStorage.setItem("CICurSpeciality", query.selectedspecialty);
}
else {
localStorage.setItem("CICurSpeciality", '');
}
var promise = DataService.getJson('~/../content/data/json/ci/ci_dat_contentlist.json')
promise.then(
function (result) {
$scope.IllustrationData = result;
//$scope.selectedCIListViewData = $scope.IllustrationData.root.CIData;
$scope.selectedCIListViewData = new jinqJs()
.from($scope.IllustrationData.root.CIData)
.orderBy([{ field: '_Title', sort: 'asc' }])
.select();
$('#grid-view').empty();
angular.forEach($scope.selectedCIListViewData, function (value, key) {
var selectimg = true;
var count = 0;
if (typeof (query.selectedbodyregion) !== "undefined" && (query.selectedbodyregion !== null && query.selectedbodyregion !== "")) {
var posbodyregion = value._BodyRegion.indexOf((query.selectedbodyregion.trim()));
if (posbodyregion > -1) {
selectimg = true;
count = count + 1;
}
else {
selectimg = false;
count = count - 1;
}
}
if (typeof (query.selectedbodysystem) !== "undefined" && (query.selectedbodysystem !== null && query.selectedbodysystem !== "")) {
var posbodysystem = value._BodySystem.indexOf(query.selectedbodysystem);
if (posbodysystem > -1) {
count = count + 1;
selectimg = true;
} else {
selectimg = false;
count = count - 1;
}
}
if (typeof (query.selectedorientation) !== "undefined" && (query.selectedorientation !== null && query.selectedorientation !== "")) {
var posorientation = value._ViewOrientation.indexOf(query.selectedorientation);
if (posorientation > -1) {
count = count + 1;
selectimg = true;
} else {
selectimg = false;
count = count - 1;
}
}
if (typeof (query.selectedimagetype) !== "undefined" && (query.selectedimagetype !== null && query.selectedimagetype !== "")) {
var posimagetype = value._ImageType.indexOf(query.selectedimagetype);
if (posimagetype > -1) {
count = count + 1;
selectimg = true;
} else {
selectimg = false;
count = count - 1;
}
}
if (typeof (query.selectedspecialty) !== "undefined" && (query.selectedspecialty !== null && query.selectedspecialty !== "")) {
var posspeciality = value._MedicalSpecialty.indexOf(query.selectedspecialty);
if (posspeciality > -1) {
count = count + 1;
selectimg = true;
} else {
selectimg = false;
count = count - 1;
}
}
if (selectimg === true && count >= filtercount) {
$scope.imagePath = "~/../content/images/ci/thumbnails/" + value._ThumbnailImage;
var $el = $(''
+ '
'
+ '
![]()
'
+ '
').appendTo('#grid-view');
$compile($el)($scope);
$(".sidebar").mCustomScrollbar({
autoHideScrollbar: true,
//theme:"rounded"
});
$scope.searchCIListViewData.push(
{
"_id": value._id,
"_ImageId": value._ImageId,
"_Title": value._Title,
"_contentImage": value._contentImage,
"_ThumbnailImage": value._ThumbnailImage,
"_BodySystem": value._BodySystem,
"_BodyRegion": value._BodyRegion,
"_ViewOrientation": value._ViewOrientation,
"_MedicalSpecialty": value._MedicalSpecialty,
"_ImageType": value._ImageType,
"_Summary": value._Summary
});
}
});
//Show Error Message in case of gridview if no data is found
if ($scope.searchCIListViewData.length == 0) {
var $el = $('No illustration found for the selected search criteria!
').appendTo('#grid-view');
$compile($el)($scope);
}
},
function (error) {
// handle errors here
console.log(' $scope.IllustrationData = ' + error.statusText);
}
);
}
}]);