diff --git a/400-SOURCECODE/AIAHTML5.Web/app/controllers/TileViewListController.js b/400-SOURCECODE/AIAHTML5.Web/app/controllers/TileViewListController.js
index 7c89245..930fa4b 100644
--- a/400-SOURCECODE/AIAHTML5.Web/app/controllers/TileViewListController.js
+++ b/400-SOURCECODE/AIAHTML5.Web/app/controllers/TileViewListController.js
@@ -1,38 +1,179 @@
-///
-///
+
'use strict';
-AIA.controller("TileViewListController", ["$scope", "$rootScope", "$compile", "$http", "$log", "$location", "BodyRegions", "BodySystems", "ViewOrientations", "ImageTypes", "$timeout", "Modules", "$routeParams", "DataService","ModuleService" ,
-function ($scope, $rootScope, $compile, $http, $log, $location, BodyRegions, BodySystems, ViewOrientations, ImageTypes, $timeout, Modules, $routeParam, DataService,ModuleService)
-{
- var ATLAS_ANATOMY = 'Atlas Anatomy';
- var CLINICAL_ILLUSTRATION ='Clinical Illustrations';
- var CLINICAL_ANIMATION='Clinical Animations';
+AIA.controller("TileViewListController", ["$scope", "$rootScope", "$compile", "$http", "$log", "$location", "$timeout", "DA", "Modules", "$routeParams", "DataService",
+function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Modules, $routeParam, DataService) {
- var moduleData = [];
- $scope.AllBodyRegion = [];
- $scope.AllBodySystem = [];
- $scope.AllOrientation = [];
- $scope.AllImageType = [];
- $scope.moduleData = [];
- $rootScope.moduleName;
- $rootScope.OpenItemImageName;
- $rootScope.OpenItemImagePath;
+ $scope.genderId = "";
+ $scope.BodyViewData;
+ $scope.selectedGenderBodyViewData;
+ $scope.imagePath = "";
+ $rootScope.BodyRegionData;
+ $rootScope.BodyRegionCordinatesData;
+ $scope.isTransparencyActivated = false;
+ $rootScope.BodyLayerData;
+ $rootScope.VocabTermData;
- $scope.test;
+ $scope.VocabTermTxt;
+ $scope.CommonData
+ $rootScope.TermNumberData;
+ $rootScope.BodySystemData
+ $scope.bodyViewId = 0;
+ $rootScope.bgartData;
+ $scope.drawnBodyRegions;
+ //view specific constants
+ $rootScope.voId;
+ $scope.layerNumber;
+ $scope.daCounter = 1;
+ $scope.bagartDetails;
+ $scope.transNumber = 50;
+
+ //for transarency scale
+ $scope.TBDrawStartX;
+ $scope.TBDrawStartY;
+ $rootScope.path = "~/../content/images/speeachBubbleClose.png";
+ $rootScope.isHighLight = false;
+ $rootScope.coloredImageCanvasList = [];
+ $rootScope.coloredImageMRCanvasList = [];
+ $rootScope.ColoredCanvasData = [];
+ $rootScope.grayImageDataList = [];
+ $rootScope.grayImageMRDataList = [];
+ $rootScope.updatedGrayDataList = [];
+ $rootScope.updatedGrayMRDataList = [];
+ $scope.isEligibleForHighlight = false;
+ $scope.doHighlightOrExtract = false;
+ $scope.isEligibleForHighlightBodyByTermList = false;
+
+ // $scope.AnteriorView = "active";
+
+ $scope.zoomInOut = 75;
+ $scope.speechBubbleCounter = 0;
+ $scope.j = 0;
+ $scope.speechbubbleList = [];
+ $scope.speachBubbleArrayAnnotation = [];
+ $rootScope.multiAnnotationIsON = false;
+ $scope.previousGrayImageDataVar;
+ $scope.previousGrayCanvas;
+ $rootScope.updatedImageDataList = [];
+ $rootScope.updatedImageMRDataList = [];
+
+ $scope.previousSelectedTermList = [];
+ $scope.runningWorkers = [];
+ $scope.runningSearchWorkers = [];
+ $scope.runningBodyViewWorkers = [];
+
+ // This variable is used for unhighlight previously highlighted body portion, if multiAnnotation is false.
+ $scope.machedIcolorInBodyRegion = [];
+
+ $rootScope.MaskCanvasData = [];
+
+ //extract
+ $rootScope.isExtract = false;
+
+
+ $rootScope.whiteImageDataList = [];
+ $rootScope.whiteImageMRDataList = [];
+ $rootScope.previousHighlightList = [];
+
+ $rootScope.isViewChange = false;
+ $rootScope.isGenderChnage = false;
+
+ // to do it is setting but not using. need to check
+ $rootScope.updatedWhiteImageDataList = [];
+ $rootScope.updatedWhiteImageMRDataList = [];
+
+ //normal mode
+ $rootScope.isNormalMode = true;
+ $rootScope.isZoomed = false;
+
+ //navigator man functionality
+ $scope.navigatorImage;
+ $scope.NavigatorData;
+ $scope.navimgsrc;
+
+ $scope.dragdivleft = 0;
+ $scope.dragdivtop = 0;
+
+ $scope.IsSearchVisible = false;
+ $scope.shapesize = 1;
+ $scope.dragdivposition = {
+ "left": $scope.dragdivleft,
+ "top": $scope.dragdivtop
+ };
+
+
+ //array for bodyviewid correspoing to male female(used for gender change)
+ $scope.correspondingBodyViewIds = {
+ '1': '5',
+ '2': '6',
+ '3': '7',
+ '4': '8',
+ '9': '11',
+ '10': '12',
+
+ '5': '1',
+ '6': '2',
+ '7': '3',
+ '8': '4',
+ '11': '9',
+ '12': '10',
+
+ }
+
+ $scope.bodyViews = {
+ 'Anterior': '1',
+ 'Lateral': '2',
+ 'Medial': '3',
+ 'Posterior': '4',
+ 'Lateral Arm': '5',
+ 'Medial Arm': '6'
+ }
+
+ $scope.isBodylayerdataLoaded = false;
+ $scope.isBodyRegionDataLoaded = false;
+ //currentTitleFromJson shows the current BodyView Title
+ $scope.currentTitleFromJson;
+ $scope.showme = false;
+ $scope.IsVisible = function () {
+ $scope.scroll();
+
+ }
+
+ $scope.scroll = function () {
+ // $window.scrollTo(0, 0);
+ $("html,body").scrollTop(0);
+ //alert("scroll");
+ }
+
+
+ $scope.switchGender = function () {
+
+ var retrievedObject = localStorage.getItem('currentViewTitle');
+
+ if (retrievedObject == "Male Anterior") {
+ $scope.male = "active";
+ $scope.female = "";
+ }
+ else if (retrievedObject == "Female Anterior") {
+ $scope.male = "";
+ $scope.female = "active";
+ }
+ }
$scope.loadForModuleById = function (moduleId) {
+ alert('hi');
+
$scope.moduleId = moduleId;
console.log('loadForModuleById is called')
$rootScope.moduleName = Modules[moduleId].Name;
var promise = ModuleService.loadModuleDataBasedOnModuleName($scope.moduleName)
-
+
.then(
function (result) {
- $scope.moduleLandingData = result;
+ $scope.moduleLandingData = result;
console.log(JSON.stringify(result, null, 4));
},
@@ -41,61 +182,306 @@ function ($scope, $rootScope, $compile, $http, $log, $location, BodyRegions, Bod
console.log(' error: ' + error.statusText);
}
)
- },
+ }
-
-
+ //get the DA body view list based on selected gender
+ //get the DA body view list based on selected gender
+ $scope.getDAViewList = function ($event) {
- $scope.scroll = function () {
- $("html,body").scrollTop(0);
- }
-
- $scope.openModuleItem11 = function (event) {
- alert('hi');
- //// debugger;
- var moduleItemDataToBeSaved = event.target.id;
-
- var OpendTileData = [];
+ if ($('#MainImage') != null) {
+ $('#MainImage').remove();
+ }
+ $rootScope.currentActiveModuleTitle = Modules[0].Name;
- OpendTileData = ModuleService.GetOpenedTileData(moduleItemDataToBeSaved, $scope.moduleLandingData);
-
-
- $location.url('/atlas-anatomy-detail');
+ alert('mod name: ' + Modules[0].Name)
+
+ $("#bodyViewList").empty();
+ //for default load
+ if ($event == null || $event == undefined) {
+ //if ((localStorage.getItem("genderId") != "")||(localStorage.getItem("genderId")!="null")) {
+ // $scope.genderId = localStorage.getItem("genderId");
+ //}
+ var selectedGender = localStorage.getItem("genderId");
+ if ((selectedGender == null)) {
+ $scope.genderId = "Male";
+ }
+ else
+ $scope.genderId = localStorage.getItem("genderId");
+
+ }
+ else {
+ $scope.genderId = $event.currentTarget.id;
+ }
+
+ localStorage.setItem("genderId", $scope.genderId);
+
+ var selectedGender = localStorage.getItem("genderId");
+
+ if (selectedGender != null) {
+ if (selectedGender == "Male") {
+ $('#Male').addClass('active');
+ $('#Female').removeClass("active");
+ }
+ else {
+ $('#Female').addClass('active');
+ $('#Male').removeClass("active");
+ }
+
+ }
+
+ $scope.selectedGenderBodyViewData = new jinqJs()
+ .from($scope.BodyViewData.BodyViews.view)
+ .where('_gender == ' + $scope.genderId)
+ .select();
+
+ if ($scope.selectedGenderBodyViewData != null || $scope.selectedGenderBodyViewData != undefined) {
+ angular.forEach($scope.selectedGenderBodyViewData, function (value, key) {
+
+
+ var userEthnicity;
+ var userModestysettings;
+ var curentEthnicity = localStorage.getItem("globalEthnicity");
+ if (typeof (curentEthnicity) !== "undefined" && curentEthnicity !== null) {
+ userEthnicity = curentEthnicity;
+ }
+ else {
+ userEthnicity = $rootScope.globalSetting.ethnicity;
+ }
+
+ var curentmodesty = localStorage.getItem("globalModesty");
+ if (typeof (curentmodesty) !== "undefined" && curentmodesty !== null) {
+ userModestysettings = curentmodesty;
+ }
+ else {
+ userModestysettings = $rootScope.globalSetting.modesty;
+ }
- }
- $scope.openModuleItemView = function(event)
- {
- //alert('openModuleItemView is called')
- var moduleItemDataToBeSaved = event.target.id;
- var OpendTileData = [];
+ //var userSelectedSkintone = 'W';
+ //$scope.userModestySetting = 'Y'
+ var thumbnailImage;
+ if ((value._id == 1) || (value._id == 3) || (value._id == 5) || (value._id == 6) || (value._id == 7) || (value._id == 11))
+ thumbnailImage = ((value._thumbnailImage).replace('.jpg', '_' + userEthnicity + userModestysettings)) + '.jpg';
+ else {
+ thumbnailImage = ((value._thumbnailImage).replace('.jpg', '_' + userEthnicity)) + '.jpg';
- OpendTileData = ModuleService.GetOpenedTileData(moduleItemDataToBeSaved, $scope.moduleLandingData);
+ }
- $rootScope.imageName = OpendTileData[3];
+ $scope.imagePath = "~/../content/images/DA/" + $scope.zoomInOut + "/body-views/" + value._id + '/skintone/' + userEthnicity + '/' + thumbnailImage;
- $rootScope.OpenItemImagePath = "../../../content/images/aa/images/" + OpendTileData[3];
- //alert('img Name: ' +$scope.OpenItemImageName);
+
+ var $el = $('
').addClass('rectangle');
+ document.getElementById("DAView")
+ $selection.css({
+ 'position': 'absolute',
+ //'background': 'transparent',
+ 'border': '1px dotted #000'
+ });
+
+ var currentMousePosition = $scope.getMousePos(e);
+
+ $scope.TBDrawStartX = currentMousePosition.x;
+ $scope.TBDrawStartY = currentMousePosition.y;
+
+
+ var actulalX = currentMousePosition.x + $scope.horizontlScrollPosition
+ var actualY = currentMousePosition.y + $scope.verticalScrollPosition
+
+ //alert('$scope.TransparencyBoxStartX in mouseDown: ' + $scope.TransparencyBoxStartX + ' & Y= ' + $scope.TransparencyBoxStartY);
+ $scope.TransparencyBoxStartX = actulalX;
+ $scope.TransparencyBoxStartY = actualY
+ $scope.startX = actulalX;
+ $scope.startY = actualY;
+ var tBox = document.getElementById('transparencyCanvas');
+
+ if (tBox == null) {
+ //// canvasDiv.style.cursor = "crosshair";
+ $selection.css({
+ 'top': actualY,
+ 'left': actulalX,
+ 'width': 0,
+ 'height': 0,
+ 'z-index': 1000
+ //'background': 'transparent',
+ });
+ $selection.appendTo($container);
+ }
+
+ document.getElementById('canvasDiv').removeEventListener("mousedown", mouseDownListener);
+ //Dated:19-07-2016 Issue#4975: Transparency box should not be clickable if it is already selected.
+ if ($("#txtlayerNumber").val() != 0) {
+ $('#layerChangeSlider').slider("option", "value", parseInt($rootScope.totalLayers) - parseInt($scope.currentLayerNumber));
+ $("#txtlayerNumber").val(parseInt($scope.currentLayerNumber));
+ }
+ }
+
+ function mouseMoveListener(e) {
+
+ var currentMousePosition = $scope.getMousePos(e);
+ var move_x = currentMousePosition.x + $scope.horizontlScrollPosition,
+ move_y = currentMousePosition.y + $scope.verticalScrollPosition,
+
+ width = move_x - $scope.TransparencyBoxStartX,
+ height = move_y - $scope.TransparencyBoxStartY,
+ new_x, new_y;
+
+ new_x = (move_x < $scope.TransparencyBoxStartX) ? ($scope.TransparencyBoxStartX - width) : $scope.TransparencyBoxStartX;
+ new_y = (move_y < $scope.TransparencyBoxStartY) ? ($scope.TransparencyBoxStartY - height) : $scope.TransparencyBoxStartY;
+
+ $('.rectangle').css({
+ 'width': width,
+ 'height': height,
+ //'background': 'transparent'
+
+ });
+
+
+
+ }
+
+
+ function mouseUpListener(e) {
+ // $selection.remove();
+ // debugger;
+
+ //alert('mouse up');
+ console.log('MOUSE UP');
+ $(".com").remove();
+ $('#dot').remove();
+ $('#bord').remove();
+ $('#sppeachBubble').remove();
+
+ $scope.currentLayerNumber = parseInt($('#txtlayerNumber').val());
+ $('.rectangle').remove();
+
+ var currentMousePosition = $scope.getMousePos(e);
+
+
+ var canvasDiv = document.getElementById('canvasDiv');
+ var verticalScrollPosition = canvasDiv.scrollTop;
+ var horizontlScrollPosition = canvasDiv.scrollLeft;
+
+ var TransparencyEndX = currentMousePosition.x + horizontlScrollPosition
+ var TransparencyBoxEndY = currentMousePosition.y + verticalScrollPosition
+
+
+ $scope.isTboxDrwan = true;
+ $scope.TbEndX = TransparencyEndX;
+ $scope.TbEndY = TransparencyBoxEndY;
+ $scope.TransparencyEndX = TransparencyEndX;
+ $scope.TransparencyBoxEndY = TransparencyBoxEndY;
+
+ $scope.layerNumberBeforeTrans = parseInt($('#txtlayerNumber').val());
+
+ //draw temp box to store the canvas data with original transparecy
+ if (document.getElementById('tempCanvas') != null) {
+ $('#tempCanvas').remove();
+ }
+ if (document.getElementById('tempCanvas') == null || document.getElementById('tempCanvas') == undefined) {
+ var tempCanvas = document.createElement('canvas');
+ tempCanvas.id = 'tempCanvas';
+ // $scope.tempCanvas = transparencyCanvas.id;
+ tempCanvas.height = TransparencyBoxEndY - $scope.startY;
+ tempCanvas.width = TransparencyEndX - $scope.startX;
+ tempCanvas.style.position = "absolute";
+ tempCanvas.style.left = 200 + 'px';
+ tempCanvas.style.top = 200 + 'px';
+ tempCanvas.style.backgroundColor = "transparent";
+ tempCanvas.style.visibility = 'hidden';
+ tempCanvas.style.border = "black 1px solid";
+ document.getElementById('canvasDiv').appendChild(tempCanvas);
+ }
+
+
+ $scope.isTransparencyActivated = true;
+
+ var BodyRegionDictionary = $rootScope.BodyRegionCordinatesData;
+
+ $scope.IncludedBodyRegions = [];
+ ////debugger;
+ $.each(BodyRegionDictionary, function (index, value) {
+ // alert(' $.each(BodyRegionDictionary1')
+ var transparencyBoxHeight = parseInt(TransparencyBoxEndY) - parseInt($scope.TransparencyBoxStartY);
+ var transparencyBoxWidth = parseInt(TransparencyEndX) - parseInt($scope.TransparencyBoxStartX);
+ var transparencyBoxBottom = parseInt($scope.TransparencyBoxStartY) + parseInt(transparencyBoxHeight);
+ var transparencyBoxRight = parseInt($scope.TransparencyBoxStartX) + parseInt(transparencyBoxWidth);
+ // alert(' $.each(BodyRegionDictionary2. transparencyBoxHeight: ' + transparencyBoxHeight + ',transparencyBoxBottom: ' + transparencyBoxBottom+', transparencyBoxRight: '+transparencyBoxRight)
+ var bodyRegionRight = parseInt(value.X) + parseInt(value.Width);
+ var bodyRegionBottom = parseInt(value.Y) + parseInt(value.Height);
+
+
+
+ var transparencyCanvas = document.createElement('canvas');
+ var tBox = document.getElementById('transparencyCanvas');
+ if (tBox == null) {
+
+ transparencyCanvas.id = 'transparencyCanvas';
+ $scope.transparencyCanvasId = transparencyCanvas.id;
+ transparencyCanvas.height = TransparencyBoxEndY - $scope.startY;
+ transparencyCanvas.width = TransparencyEndX - $scope.startX;
+ transparencyCanvas.style.position = "absolute";
+ transparencyCanvas.style.left = $scope.startX + 'px' // x + "px";
+ transparencyCanvas.style.top = $scope.startY + "px"//y + "px";
+ transparencyCanvas.style.border = "black 1px solid";
+ transparencyCanvas.style.backgroundColor = "transparent";
+ transparencyCanvas.style.zIndex = 200;
+ // transparencyCanvas.style.visibility = 'hidden';
+ document.getElementById('canvasDiv').appendChild(transparencyCanvas);
+ $scope.transparencyChangeCounter = 0;
+
+ $('#transparencyCanvas').resizable({ handles: "e,s,se,w,n,ne,nw,sw", stop: function (event, ui) { resizeCanvas(); }, start: function (event, ui) { clearTransCanvas(); } });
+
+ $scope.transparencyCanvasHeight = transparencyCanvas.height;
+ $scope.transparencyCanvasWidth = transparencyCanvas.width;
+
+ //bind click listener
+ transparencyCanvas.addEventListener('click', TransparencyCanvasClickListener);
+
+ $(".ui-wrapper").css("z-index", "600");
+
+ }
+ if ($scope.TransparencyBoxStartX <= bodyRegionRight && value.X <= transparencyBoxRight && $scope.TransparencyBoxStartY <= bodyRegionBottom && value.Y <= transparencyBoxBottom) {
+
+
+ if (($rootScope.voId == "9" || $rootScope.voId == "11")) {
+ if (value.bodyRegionId == "6") {
+ $scope.loadTransparencyImage(value.bodyRegionId, value.Height, value.Width, value.X, value.Y, value.IsMirror, $scope.TransparencyBoxStartX, TransparencyEndX, $scope.TransparencyBoxStartY, TransparencyBoxEndY, $scope, false, false);
+ }
+ else {
+
+ }
+ }
+ else {
+ $scope.loadTransparencyImage(value.bodyRegionId, value.Height, value.Width, value.X, value.Y, value.IsMirror, $scope.TransparencyBoxStartX, TransparencyEndX, $scope.TransparencyBoxStartY, TransparencyBoxEndY, $scope, false, false);
+
+ }
+ }
+ })
+
+ //for modesty
+ if ($rootScope.isModestyOn == true && $scope.modestyImageInfo.length > 0) {
+ $.each($scope.modestyImageInfo, function (index, value) {
+ // alert(' $.each(BodyRegionDictionary1')
+ var transparencyBoxHeight = parseInt(TransparencyBoxEndY) - parseInt($scope.TransparencyBoxStartY);
+ var transparencyBoxWidth = parseInt(TransparencyEndX) - parseInt($scope.TransparencyBoxStartX);
+ var transparencyBoxBottom = parseInt($scope.TransparencyBoxStartY) + parseInt(transparencyBoxHeight);
+ var transparencyBoxRight = parseInt($scope.TransparencyBoxStartX) + parseInt(transparencyBoxWidth);
+ // alert(' $.each(BodyRegionDictionary2. transparencyBoxHeight: ' + transparencyBoxHeight + ',transparencyBoxBottom: ' + transparencyBoxBottom+', transparencyBoxRight: '+transparencyBoxRight)
+ var bodyRegionRight = parseInt(value.x) + parseInt(value.Width);
+ var bodyRegionBottom = parseInt(value.y) + parseInt(value.Height);
+
+ if ($scope.TransparencyBoxStartX <= bodyRegionRight && value.x <= transparencyBoxRight && $scope.TransparencyBoxStartY <= bodyRegionBottom && value.y <= transparencyBoxBottom) {
+
+ $scope.loadTransparencyImage(value.bodyRegionId, value.Height, value.Width, value.x, value.y, value.IsMirror, $scope.TransparencyBoxStartX, TransparencyEndX, $scope.TransparencyBoxStartY, TransparencyBoxEndY, $scope, false, false);
+
+ }
+ })
+ }
+
+
+ //
+
+ // $('#transparencyScale').modal('show');
+ $('#transparencyScale').css('position', 'fixed')
+ $('#transparencyScale').css('top', $scope.TBDrawStartY - 10)
+ $('#transparencyScale').css('left', $scope.TBDrawStartX + 130)
+ $('#transparencyScale').css('visibility', 'visible')
+ $('#transparencyScale').css("z-index", "100000") //Dated:16-07-2016 Issue#4962:Transparency box should be on top.
+
+
+
+ document.getElementById('canvasDiv').removeEventListener("mousedown", mouseDownListener);
+ document.getElementById('canvasDiv').removeEventListener("mousemove", mouseMoveListener);
+
+ document.getElementById('canvasDiv').removeEventListener("mouseup", mouseUpListener);
+ // document.getElementById('canvasDiv').removeEventListener("mousemove", mouseMoveListener);
+ $('#btnTranparency').removeClass('btn-black');
+
+ $('#btnTranparency').addClass('tButtonActive');
+ //debugger;
+ // $('#txtlayerNumber').val((parseInt($scope.currentLayerNumber)) + 1);
+ //Dated:18-07-2016 Issue#4975: Transparency box should not be clickable if it is already selected.
+ $('#btnTranparency').removeClass('tButtonActive');
+ $('#btnTranparency').addClass('btn-black');
+ $('#btnIdentity').removeClass('btn-black');
+ $('#btnIdentity').addClass('btn-primary');
+ }
+
+ $scope.loadTransparencyImage = function (bodyRegionId, Height, Width, X, Y, IsMirror, TransparencyBoxStartX, TransparencyEndX, TransparencyBoxStartY, TransparencyBoxEndY, scope, isLayerChanged, isTransparencyChanged) {
+ // debugger;
+
+ // else {
+
+ var scope1 = angular.element(document.getElementById("DAView")).scope();
+ var transparencyCanvas = document.getElementById('transparencyCanvas');
+
+ TransparencyBoxStartX = parseInt((transparencyCanvas.style.left).replace('px', ''));
+ TransparencyBoxStartY = parseInt((transparencyCanvas.style.top).replace('px', ''));
+ TransparencyEndX = parseInt(transparencyCanvas.width) + parseInt(TransparencyBoxStartX);
+ TransparencyBoxEndY = parseInt(transparencyCanvas.height) + parseInt(TransparencyBoxStartY);
+
+
+ var XforCopyImage = 0;
+ var YforCopyImage = 0;
+ var WidthforCopyImage = 0;
+ var HeightforCopyImage = 0;
+ var XforTransImage = 0;
+ var WidthforTransImage = 0;
+ var HeightforTransImage = 0;
+ var YforTransImage = 0;
+ var PreviousBodyRegionHeight = 0;
+ var PreviousBodyRegionY;
+ var PreviousBodyRegionWidth;
+ var PreviousBodyRegionX;
+ var previousBodyRegionId;
+ var transparencyTempCanvas;
+
+
+
+ //X ends outside and start outside of bodyregion
+ if (TransparencyBoxStartX < X && TransparencyEndX > parseInt(X) + parseInt(Width)) {
+ XforCopyImage = 0;
+ WidthforCopyImage = Width;
+ WidthforTransImage = Width;
+ if ($rootScope.isModestyOn == true && (bodyRegionId.match('modestyImg'))) {
+ XforTransImage = 0;
+ }
+ else
+ XforTransImage = parseInt(X) - (parseInt(TransparencyBoxStartX));
+ // alert('1')
+ }
+ else if (TransparencyBoxStartX < X && TransparencyEndX < parseInt(X) + parseInt(Width)) {
+
+ XforCopyImage = 0;
+
+ WidthforCopyImage = parseInt(TransparencyEndX) - parseInt(X);
+
+ WidthforTransImage = parseInt(TransparencyEndX) - parseInt(X);
+
+ // alert(' scope.WidthforCopyImage: ' + scope.WidthforCopyImage)
+ if ($rootScope.isModestyOn == true && (bodyRegionId.match('modestyImg'))) {
+ XforTransImage = 0;
+ }
+ else
+ XforTransImage = parseInt(X) - (parseInt(TransparencyBoxStartX));
+
+ // alert('2')
+ }
+ else if (TransparencyBoxStartX > X && TransparencyEndX > parseInt(X) + parseInt(Width)) {
+ // alert('TransparencyEndX: ' + TransparencyEndX + ', X: ' + X + ', Width: ' + Width + 'scope.TransparencyBoxStartX: ' + scope.TransparencyBoxStartX)
+
+ XforCopyImage = parseInt(TransparencyBoxStartX) - parseInt(X);
+ WidthforCopyImage = parseInt(X) + parseInt(Width) - parseInt(TransparencyBoxStartX);
+ WidthforTransImage = parseInt(X) + parseInt(Width) - parseInt(TransparencyBoxStartX);
+
+ if ($rootScope.isModestyOn == true && (bodyRegionId.match('modestyImg'))) {
+
+ XforTransImage = parseInt(TransparencyBoxStartX) - parseInt(X);
+ }
+ else
+ XforTransImage = 0;
+ // alert('3')
+ }
+ else if (TransparencyBoxStartX > X && TransparencyEndX < parseInt(X) + parseInt(Width)) {
+ // alert('startX inside & endX inside')
+ XforCopyImage = parseInt(TransparencyBoxStartX) - parseInt(X);//parseInt(X) + parseInt(Width) - parseInt(scope.TransparencyBoxStartX)// scope.TransparencyBoxStartX ;
+ WidthforCopyImage = parseInt(TransparencyEndX) - parseInt(TransparencyBoxStartX);
+ WidthforTransImage = parseInt(TransparencyEndX) - parseInt(TransparencyBoxStartX);
+ if ($rootScope.isModestyOn == true && (bodyRegionId.match('modestyImg'))) {
+
+ XforTransImage = parseInt(TransparencyBoxStartX) - parseInt(X);
+ }
+ else
+ XforTransImage = 0;
+ // alert('4. TransparencyBoxStartX: ' + TransparencyBoxStartX + ',X: ' + parseInt(X) + ',TransparencyEndX: ' + TransparencyEndX + ',XforCopyImage: ' + XforCopyImage)
+ }
+
+ //calculate Y and height for tempTranparency box from where to cut the image
+
+
+ if (TransparencyBoxStartY < Y && TransparencyBoxEndY > parseInt(Y) + parseInt(Height)) {
+
+ // alert('start Y outside and end Y outside');
+
+ YforCopyImage = 0;
+ HeightforCopyImage = Height;
+
+ HeightforTransImage = Height;
+ //alert('Y ' + Y)
+ if ($rootScope.isModestyOn == true && (bodyRegionId.match('modestyImg'))) {
+ YforTransImage = 0;
+ }
+ else
+ YforTransImage = parseFloat(Y) - parseInt(TransparencyBoxStartY)//parseFloat(Y) - (24.4);
+ // alert('5')
+ }
+ else if (TransparencyBoxStartY < Y && TransparencyBoxEndY < (parseInt(Y) + parseInt(Height))) {
+
+ YforCopyImage = 0;
+ HeightforCopyImage = (parseInt(TransparencyBoxEndY)) - parseInt(Y)//(parseInt(Height) + parseInt(Y)) - (parseInt(TransparencyBoxEndY) - parseInt(scope.TransparencyBoxStartY));
+
+ HeightforTransImage = (parseInt(TransparencyBoxEndY)) - parseInt(Y)// - parseInt(scope.TransparencyBoxStartY));
+
+ if ($rootScope.isModestyOn == true && (bodyRegionId.match('modestyImg'))) {
+ YforTransImage = 0;
+ }
+ else
+ YforTransImage = parseFloat(Y) - parseInt(TransparencyBoxStartY);// - (24.4);
+
+ }
+ else if (TransparencyBoxStartY > Y && TransparencyBoxEndY > parseInt(Y) + parseInt(Height)) {
+
+ YforCopyImage = parseInt(TransparencyBoxStartY) - parseInt(Y);
+ HeightforCopyImage = parseInt(Y) + parseInt(Height) - parseInt(TransparencyBoxStartY);
+ HeightforTransImage = parseInt(Y) + parseInt(Height) - parseInt(TransparencyBoxStartY);
+ if ($rootScope.isModestyOn == true && (bodyRegionId.match('modestyImg'))) {
+ YforTransImage = parseInt(TransparencyBoxStartY) - parseInt(Y);
+
+ }
+ else
+ YforTransImage = 0;
+
+ }
+ else if (TransparencyBoxStartY > Y && TransparencyBoxEndY < parseInt(Y) + parseInt(Height)) {
+
+ YforCopyImage = parseInt(TransparencyBoxStartY) - parseInt(Y);
+ HeightforCopyImage = parseInt(TransparencyBoxEndY) - parseInt(TransparencyBoxStartY);
+ HeightforTransImage = parseInt(TransparencyBoxEndY) - parseInt(TransparencyBoxStartY);
+ if ($rootScope.isModestyOn == true && (bodyRegionId.match('modestyImg'))) {
+ YforTransImage = parseInt(TransparencyBoxStartY) - parseInt(Y);
+
+ }
+ else
+ YforTransImage = 0;
+ }
+
+
+ //0. get current layer number
+ if ($scope.isResized) {
+ //do nothing
+ }
+ else if (isLayerChanged) {
+
+
+ }
+ else {
+
+
+ var tranparencyLayer;
+
+ var currentLayer = $scope.layerNumberBeforeTrans;
+
+ if (currentLayer == $rootScope.totalLayers) {
+
+ tranparencyLayer = currentLayer;
+
+ }
+
+ else {
+
+ tranparencyLayer = currentLayer + 1;
+
+ }
+
+ $scope.layerNumber = tranparencyLayer;
+
+ }
+
+ $('#txtlayerNumber').val($scope.layerNumber);
+
+ //dedebugger;
+ var tranparencyImgSrc;
+ var tranparencyMaskImgSrc;
+ //for modesty image
+ if ($rootScope.isModestyOn == true && (bodyRegionId.match('modestyImg')))// == "2" || bodyRegionId == "3")) {
+ {
+ var modestyBodyRegionData = new jinqJs()
+ .from($scope.modestyImageInfo)
+ .where('bodyRegionId == ' + bodyRegionId)
+ .select();
+ tranparencyImgSrc = modestyBodyRegionData[0].SRC;
+ }
+
+ //modesty end
+
+ //1. get the image source
+
+ else {
+ tranparencyImgSrc = $scope.GetImageSource(bodyRegionId);
+ tranparencyMaskImgSrc = $scope.GetMaskImageSource(tranparencyImgSrc);
+ }
+ // var tranparencyMaskImgSrc = $scope.GetMaskImageSource(tranparencyImgSrc);
+ // debugger;
+ var oldCanvas;
+
+ if (IsMirror == 'Yes') {
+ oldCanvas = document.getElementById('transparencyTempCanvas_MR_' + bodyRegionId)
+ }
+ else {
+
+ oldCanvas = document.getElementById('transparencyTempCanvas_' + bodyRegionId)
+
+ }
+
+ if (oldCanvas != null) {
+ document.getElementById('canvasDiv').removeChild(oldCanvas);
+ }
+
+ //remove tempmask canvas
+ var oldtempTransCanvasMask;
+ var oldtempTransCanvasMaskMR;
+ if (IsMirror == 'Yes') {
+ oldtempTransCanvasMaskMR = document.getElementById('transparencyTempCanvasMask_MR' + bodyRegionId + '_mci');
+ oldtempTransCanvasMask = document.getElementById('transparencyTempCanvasMask_' + bodyRegionId + '_mci');
+
+ if (oldtempTransCanvasMaskMR != null) {
+ document.getElementById('canvasDiv').removeChild(oldtempTransCanvasMaskMR);
+ }
+ }
+ else {
+ oldtempTransCanvasMask = document.getElementById('transparencyTempCanvasMask_' + bodyRegionId + '_mci');
+
+ }
+ if (oldtempTransCanvasMask != null) {
+ document.getElementById('canvasDiv').removeChild(oldtempTransCanvasMask);
+ }
+
+ transparencyTempCanvas = document.createElement('canvas');
+ var transparencyTempcanavsMask = document.createElement('canvas');
+ //if mirror then draw mask image for non mirrored body region for annotation
+ if (IsMirror == 'Yes') {
+ transparencyTempCanvas.id = 'transparencyTempCanvas_MR_' + bodyRegionId;
+ transparencyTempcanavsMask.id = 'transparencyTempCanvasMask_MR' + bodyRegionId + '_mci';
+ }
+ else {
+ if ($rootScope.isModestyOn == true && (bodyRegionId.match('modestyImg'))) {
+ transparencyTempCanvas.id = 'transparencyTempCanvas_' + bodyRegionId;
+ // transparencyTempCanvas.style.visibility = 'visible';
+ //transparencyTempCanvas.style.zIndex = '1000'
+ }
+ else {
+ transparencyTempCanvas.id = 'transparencyTempCanvas_' + bodyRegionId;
+ transparencyTempcanavsMask.id = 'transparencyTempCanvasMask_' + bodyRegionId + '_mci';
+ }
+
+ }
+ transparencyTempCanvas.height = Height;
+ transparencyTempCanvas.width = Width;
+ transparencyTempCanvas.style.position = "absolute";
+ transparencyTempCanvas.style.left = X + 'px' // x + "px";
+ transparencyTempCanvas.style.top = Y + "px"//y + "px";
+ //if ($rootScope.isModestyOn == true && (bodyRegionId.match('modestyImg'))) {
+ // transparencyTempCanvas.style.visibility = 'visible';
+ //}
+ //else {
+ transparencyTempCanvas.style.visibility = 'hidden';
+ // }
+ //transparencyTempCanvas.style.visibility = 'visible';
+ // transparencyCanvas.style.zIndex = 4000;
+ document.getElementById('canvasDiv').appendChild(transparencyTempCanvas);
+
+ //create temp mask canvas
+ if ($rootScope.isModestyOn == true && (bodyRegionId.match('modestyImg'))) { }
+ else {
+ transparencyTempcanavsMask.height = Height;
+ transparencyTempcanavsMask.width = Width;
+ transparencyTempcanavsMask.style.position = "absolute";
+ transparencyTempcanavsMask.style.left = X + 'px' // x + "px";
+ transparencyTempcanavsMask.style.top = Y + "px"//y + "px";
+ transparencyTempcanavsMask.style.visibility = 'hidden';
+ //transparencyTempCanvas.style.visibility = 'visible';
+ // transparencyCanvas.style.border = "black 1px solid";
+ document.getElementById('canvasDiv').appendChild(transparencyTempcanavsMask);
+ }
+
+ //for modesty canvas
+ if ($rootScope.isModestyOn == true && (bodyRegionId.match('modestyImg'))) {
+
+ var modestyTransTempCanvasId = 'tempCanvasModesty_' + bodyRegionId;
+ var modestyTransCanvasId = 'modestyTransCanavs_' + bodyRegionId;
+ if (document.getElementById(modestyTransTempCanvasId) != null) {
+ document.getElementById(modestyTransTempCanvasId).parentNode.removeChild(document.getElementById(modestyTransTempCanvasId));
+ }
+
+ if (document.getElementById(modestyTransTempCanvasId) == null || document.getElementById(modestyTransTempCanvasId) == undefined) {
+ var tempCanvasModesty = document.createElement('canvas');
+ tempCanvasModesty.id = modestyTransTempCanvasId;
+ // $scope.tempCanvas = transparencyCanvas.id;
+ tempCanvasModesty.height = Height;
+ tempCanvasModesty.width = Width;
+ tempCanvasModesty.style.position = "absolute";
+ tempCanvasModesty.style.left = 10 + 'px';
+ tempCanvasModesty.style.top = 10 + 'px';
+ tempCanvasModesty.style.backgroundColor = "transparent";
+ tempCanvasModesty.style.visibility = 'hidden';
+ tempCanvasModesty.style.border = "black 1px solid";
+ document.getElementById('canvasDiv').appendChild(tempCanvasModesty);
+ }
+ if (document.getElementById(modestyTransCanvasId) != null) {
+ document.getElementById(modestyTransCanvasId).parentNode.removeChild(document.getElementById(modestyTransCanvasId));
+ }
+
+ if (document.getElementById(modestyTransCanvasId) == null || document.getElementById(modestyTransCanvasId) == undefined) {
+ var canvasModesty = document.createElement('canvas');
+ canvasModesty.id = modestyTransCanvasId;
+ // $scope.tempCanvas = transparencyCanvas.id;
+ canvasModesty.height = Height;
+ canvasModesty.width = Width;
+ canvasModesty.style.position = "absolute";
+ canvasModesty.style.left = X + 'px';
+ canvasModesty.style.top = Y + 'px';
+ //canvasModesty.style.backgroundColor = "transparent";
+ canvasModesty.style.visibility = 'visible';
+ canvasModesty.style.zIndex = '2000';
+ canvasModesty.addEventListener('click', OnClickModestyTransCanvas);
+
+ // tempcanvasModestyCanvasModesty.style.border = "black 1px solid";
+ document.getElementById('canvasDiv').appendChild(canvasModesty);
+ }
+ }
+
+ if (tranparencyImgSrc != undefined) {
+ var tempImg = new Image();
+
+
+ tempImg.onload = function () {
+ var tempCtx = transparencyTempCanvas.getContext('2d');
+
+ if (IsMirror == 'Yes') {
+ //debugger;
+ tempCtx.save();
+ tempCtx.translate(Width, 0);
+ tempCtx.scale(-1, 1);
+ tempCtx.drawImage(tempImg, 0, 0);
+ }
+ else {
+ tempCtx.drawImage(tempImg, 0, 0);
+
+ }
+ // debugger;
+ var tempCanvasID;
+
+ if (IsMirror == 'Yes') {
+ tempCanvasID = 'transparencyTempCanvas_MR_' + bodyRegionId;
+ }
+ else {
+ if ($rootScope.isModestyOn == true && (bodyRegionId.match('modestyImg'))) {
+ tempCanvasID = 'transparencyTempCanvas_' + bodyRegionId;//bodyRegionId;
+ }
+ else
+ tempCanvasID = 'transparencyTempCanvas_' + bodyRegionId;
+ }
+
+
+ //check if transparency is activated
+
+
+ var transNumber = $scope.transNumber;//txtTransparencyChange.value;
+ // debugger;
+ //this changes the transparency when transparency is already activated and user resizes or chage the layer
+
+ var imageD = tempCtx.getImageData(0, 0, Width, Height);
+
+
+ var tempCtx = document.getElementById(tempCanvasID).getContext('2d');
+
+ //keep the original image on temp canavs to use it in changing transparency
+
+
+
+ //if (document.getElementById(modestyTransTempCanvasId) != undefined || document.getElementById(modestyTransTempCanvasId) != null) {
+ // var contxModesty = document.getElementById(modestyTransTempCanvasId).getContext('2d');
+ // var tbTempCanvas = document.getElementById(tempCanvasID)
+ // contx.drawImage(tbTempCanvas, XforCopyImage, YforCopyImage, WidthforCopyImage, HeightforCopyImage, XforTransImage, YforTransImage, WidthforTransImage, HeightforTransImage);
+
+ //}
+ if ($rootScope.isModestyOn == true && (bodyRegionId.match('modestyImg'))) {
+ var modestyTempCanvasId = 'tempCanvasModesty_' + bodyRegionId;
+ if (document.getElementById(modestyTempCanvasId) != undefined || document.getElementById(modestyTempCanvasId) != null) {
+ var contxModesty = document.getElementById(modestyTempCanvasId).getContext('2d');
+ var tbTempCanvas = document.getElementById(tempCanvasID)
+ contxModesty.drawImage(tbTempCanvas, XforCopyImage, YforCopyImage, WidthforCopyImage, HeightforCopyImage, XforTransImage, YforTransImage, WidthforTransImage, HeightforTransImage);
+
+ }
+ }
+ else {
+
+ if (document.getElementById('tempCanvas') != null && document.getElementById('tempCanvas') != undefined) {
+ var contx = document.getElementById('tempCanvas').getContext('2d');
+ var tbTempCanvas = document.getElementById(tempCanvasID)
+ contx.drawImage(tbTempCanvas, XforCopyImage, YforCopyImage, WidthforCopyImage, HeightforCopyImage, XforTransImage, YforTransImage, WidthforTransImage, HeightforTransImage);
+
+ }
+ }
+
+ // get the image data values
+
+ var imageData = imageD.data;
+ var length = imageData.length;
+
+ //change background of image from transparent to white
+
+ // set every fourth value to 50
+ for (var i = 3; i < length; i += 4) {
+ //NIKITA
+ if ($scope.voId == "9" || $scope.voId == "11") {
+
+ if (imageData[i] == 0) {
+
+ }
+ else {
+ imageData[i] = ((255) * (parseInt(transNumber))) / 100;
+ }
+ }
+ else {
+ if (imageData[i] == 0) {
+
+ }
+ else {
+ imageData[i] = ((255) * (parseInt(transNumber))) / 100;
+ }
+ }
+ }
+
+
+ tempCtx.putImageData(imageD, 0, 0);
+
+ var ctx;
+ if ($rootScope.isModestyOn == true && (bodyRegionId.match('modestyImg'))) {
+ ctx = document.getElementById(modestyTransCanvasId).getContext('2d');
+ }
+ else
+ ctx = transparencyCanvas.getContext('2d');
+
+
+ var TrtempCanvasID
+ if (IsMirror == 'Yes') {
+ TrtempCanvasID = 'transparencyTempCanvas_MR_' + bodyRegionId;
+ }
+ else {
+ //if ($rootScope.isModestyOn == true && (bodyRegionId.match('modestyImg'))) {
+ // TrtempCanvasID = 'modestyTransparencyTempCanvas_' + bodyRegionId;
+ //}
+ //else
+ TrtempCanvasID = 'transparencyTempCanvas_' + bodyRegionId;
+ }
+
+ var tmpCanvasContext = document.getElementById(TrtempCanvasID);//.getContext('2d');
+
+ ctx.drawImage(tmpCanvasContext, XforCopyImage, YforCopyImage, WidthforCopyImage, HeightforCopyImage, XforTransImage, YforTransImage, WidthforTransImage, HeightforTransImage)
+
+
+ XforCopyImage = 0;
+ YforCopyImage = 0;
+ WidthforCopyImage = 0;
+ HeightforCopyImage = 0;
+ XforTransImage = 0;
+ WidthforTransImage = 0;
+ HeightforTransImage = 0;
+ YforTransImage = 0;
+ PreviousBodyRegionHeight = 0;
+
+ }
+ tempImg.src = tranparencyImgSrc;//"http://localhost/AIA/" + tranparencyImgSrc;
+
+ }
+
+
+ //mask image code
+ //draw mask for annotation
+ var tempMaskImg = new Image();
+ var tranparencyMaskImgSrc = $scope.GetMaskImageSource(tranparencyImgSrc);
+ tempMaskImg.src = tranparencyMaskImgSrc;//"http://localhost/AIA/" + tranparencyMaskImgSrc;
+ tempMaskImg.onload = function () {
+ // debugger;
+ var tempmaskCtx = transparencyTempcanavsMask.getContext('2d');
+
+ if (IsMirror == 'Yes') {
+ //debugger;
+ tempmaskCtx.save();
+ tempmaskCtx.translate(Width, 0);
+ tempmaskCtx.scale(-1, 1);
+ tempmaskCtx.drawImage(tempMaskImg, 0, 0);
+ }
+ else {
+ tempmaskCtx.drawImage(tempMaskImg, 0, 0);
+
+ }
+
+
+ }
+
+
+ PreviousBodyRegionHeight = HeightforTransImage;
+ PreviousBodyRegionY = YforTransImage;
+ PreviousBodyRegionWidth = WidthforTransImage;
+ PreviousBodyRegionX = XforTransImage;
+ previousBodyRegionId = bodyRegionId;
+
+ // $scope.layerNumber = parseInt($scope.layerNumber - 1);
+
+ //}
+
+ }
+
+ $scope.changeTransparency = function () {
+ //this changes the transparency when user click on transparency scale(we have already set the original
+ //data on tras canvas irrespective of the trans number, so we can chnage the transparnecy of original data not the manipulated)
+ // if (isTransparencyChanged == true) {
+
+ // var txtTransparencyChange = document.getElementById("txtTransparencyChange");
+
+ var transNumber = $scope.transNumber;
+
+ var modestyTransCanvases = $("canvas[id*='modestyTransCanavs']");
+ var modestyTemCanvas = $("canvas[id*='tempCanvasModesty_']");
+ if (modestyTransCanvases != null || modestyTransCanvases != undefined && modestyTransCanvases.length > 0) {
+
+ for (var j = 0; j < modestyTransCanvases.length; j++) {
+ var ctx = document.getElementById(modestyTransCanvases[j].id).getContext('2d');
+ var imageDa = ctx.getImageData(0, 0, modestyTransCanvases[j].width, modestyTransCanvases[j].height);
+ //modestyTransCanvases[j].parentNode.removeChild(modestyTransCanvases[j]);
+
+ var imageData = imageDa.data;
+ var length = imageData.length;
+ // set every fourth value to 50
+ for (var i = 3; i < length; i += 4) {
+ //NIKITA
+ if ($scope.voId == "9" || $scope.voId == "11") {
+
+ if (imageData[i] == 0) {
+
+ }
+ else {
+ imageData[i] = ((255) * (parseInt(transNumber))) / 100;
+ }
+ }
+ else {
+ if (imageData[i] == 0) {
+
+ }
+ else
+ imageData[i] = ((255) * (parseInt(transNumber))) / 100;
+ }
+
+ // imageData[i] = ((255) * (parseInt(transNumber))) / 100;
+ }
+ // after the manipulation, reset the data
+ // imageDa.data = imageData;
+ // and put the imagedata back to the canvas
+ //ctx.putImageData(imageDa, XforTransImage, YforTransImage);
+ ctx.putImageData(imageDa, 0, 0);
+ }
+ }
+
+
+ var ctx = document.getElementById('transparencyCanvas').getContext('2d');
+
+ // var imageDa = ctx.getImageData(XforTransImage, YforTransImage, WidthforTransImage, HeightforTransImage);
+ var imageDa = ctx.getImageData(0, 0, $scope.transparencyCanvasWidth, $scope.transparencyCanvasHeight);
+
+ // get the image data values
+ var imageData = imageDa.data;
+ var length = imageData.length;
+ // set every fourth value to 50
+ for (var i = 3; i < length; i += 4) {
+ //NIKITA
+ if ($scope.voId == "9" || $scope.voId == "11") {
+
+ if (imageData[i] == 0) {
+
+ }
+ else {
+ imageData[i] = ((255) * (parseInt(transNumber))) / 100;
+ }
+ }
+ else {
+ if (imageData[i] == 0) {
+
+ }
+ else
+ imageData[i] = ((255) * (parseInt(transNumber))) / 100;
+ }
+
+ // imageData[i] = ((255) * (parseInt(transNumber))) / 100;
+ }
+ // after the manipulation, reset the data
+ // imageDa.data = imageData;
+ // and put the imagedata back to the canvas
+ //ctx.putImageData(imageDa, XforTransImage, YforTransImage);
+ ctx.putImageData(imageDa, 0, 0);
+
+
+ //}
+ }
+
+
+
+ function resizeCanvas() {
+ //debugger;
+ // alert('reload')
+ clearTransCanvas();
+ if ($('#speechBubbleTrns').length > 0) {
+ $('#speechBubbleTrns').remove();
+ }
+ var tCanvas = document.getElementById('transparencyCanvas');
+ var tCanvasContext = tCanvas.getContext('2d');
+
+ var tCanvasHeight = parseInt((tCanvas.style.height).replace('px', ''));
+
+ var tCanvasWidth = parseInt((tCanvas.style.width).replace('px', ''));
+
+ var tBoxStartX = parseInt((tCanvas.style.left).replace('px', ''));
+ var tBoxEndX = parseInt((tCanvas.style.left).replace('px', '')) + parseInt((tCanvas.style.width.replace('px', '')));
+ var tBoxStartY = parseInt((tCanvas.style.top).replace('px', ''));
+ var tBoxEndY = parseInt((tCanvas.style.top).replace('px', '')) + parseInt((tCanvas.style.height).replace('px', ''));
+ var transparencyBoxBottom = parseInt(tBoxStartY) + parseInt(tCanvasHeight);
+ var transparencyBoxRight = parseInt(tBoxStartX) + parseInt(tCanvasWidth);
+
+ if (tCanvas != null) {
+ $('#transparencyCanvas').remove();
+ }
+
+
+ var modestyTransCanvases = $("canvas[id*='modestyTransCanavs']");
+ if (modestyTransCanvases != null || modestyTransCanvases != undefined && modestyTransCanvases.length > 0) {
+ for (var j = 0; j < modestyTransCanvases.length; j++) {
+
+ modestyTransCanvases[j].parentNode.removeChild(modestyTransCanvases[j]);
+ }
+ }
+
+ var modestyTempCanvases = $("canvas[id*='tempCanvasModesty_']");
+ if (modestyTempCanvases != null || modestyTransCanvases != undefined && modestyTransCanvases.length > 0) {
+ for (var j = 0; j < modestyTempCanvases.length; j++) {
+
+ modestyTempCanvases[j].parentNode.removeChild(modestyTempCanvases[j]);
+ }
+ }
+
+ $scope.isResized = true;
+
+
+ if (tCanvasHeight != $scope.transparencyCanvasHeight || tCanvasWidth != $scope.transparencyCanvasWidth) {
+
+
+ var transparencyCanvas = document.createElement('canvas');
+ transparencyCanvas.id = 'transparencyCanvas';
+ $scope.transparencyCanvas = tCanvas.id;
+ transparencyCanvas.height = tCanvasHeight;
+ transparencyCanvas.width = tCanvasWidth;
+ transparencyCanvas.style.position = "absolute";
+ transparencyCanvas.style.left = tCanvas.style.left; // x + "px";
+ transparencyCanvas.style.top = tCanvas.style.top//y + "px";
+ transparencyCanvas.style.border = "black 1px solid";
+ transparencyCanvas.style.zIndex = 200;
+
+
+ document.getElementById('canvasDiv').appendChild(transparencyCanvas);
+
+ $('#transparencyCanvas').resizable({ handles: "e,s,se,w,n,ne,nw,sw", stop: function (event, ui) { resizeCanvas(); }, start: function (event, ui) { clearTransCanvas(); } });
+ $(".ui-wrapper").css("z-index", "600");
+
+ //bind click listener
+ transparencyCanvas.addEventListener('click', TransparencyCanvasClickListener);
+ }
+ $scope.transparencyCanvasHeight = tCanvasHeight;
+ $scope.transparencyCanvasWidth = tCanvasWidth;
+
+ // debugger;
+ //create temp cavas to retain the original anavs data for use in transparency change as
+ //if u use original canvas data for transprency change then at 0 transparency all data will become transparent and if u increase transparency with this data then the canavs will be blank
+ if (document.getElementById('tempCanvas') != null) {
+ $('#tempCanvas').remove();
+ }
+ var tempCanvas = document.createElement('canvas');
+ tempCanvas.id = 'tempCanvas';
+ $scope.tempCanvas = tempCanvas.id;
+ tempCanvas.height = $scope.transparencyCanvasHeight;
+ tempCanvas.width = $scope.transparencyCanvasWidth;
+ tempCanvas.style.position = "absolute";
+ tempCanvas.style.left = 200 + 'px';
+ tempCanvas.style.backgroundColor = "transparent";
+ tempCanvas.style.visibility = 'hidden';
+ // tempCanvas.style.border = "black 1px solid";
+
+ document.getElementById('canvasDiv').appendChild(tempCanvas);
+
+
+ var BodyRegionDictionary = $rootScope.BodyRegionCordinatesData;
+
+ $scope.IncludedBodyRegions = [];
+ // $scope.layerNo = parseInt(document.getElementById(''))
+ var counter = 0;
+ $.each(BodyRegionDictionary, function (index, value) {
+
+ var bodyRegionRight = parseInt(value.X) + parseInt(value.Width);
+ var bodyRegionBottom = parseInt(value.Y) + parseInt(value.Height);
+ var TBRight = parseInt((document.getElementById('transparencyCanvas').style.left).replace('px', '')) + parseInt((document.getElementById('transparencyCanvas').style.width).replace('px', ''));
+ var TBBottom = parseInt((document.getElementById('transparencyCanvas').style.top).replace('px', '')) + parseInt((document.getElementById('transparencyCanvas').style.height).replace('px', ''));
+ var TBStartX = parseInt((document.getElementById('transparencyCanvas').style.left).replace('px', ''));
+ var TBStartY = parseInt((document.getElementById('transparencyCanvas').style.top).replace('px', ''));
+
+
+
+
+ if (TBStartX <= bodyRegionRight && value.X <= TBRight && TBStartY <= bodyRegionBottom && value.Y <= TBBottom) {
+
+
+ $scope.loadTransparencyImage(value.bodyRegionId, value.Height, value.Width, value.X, value.Y, value.IsMirror, $scope.TransparencyBoxStartX, $scope.TransparencyEndX, $scope.TransparencyBoxStartY, $scope.TransparencyBoxEndY, $scope, false, false);
+
+ }
+
+
+ })
+
+
+ //for modesty
+ if ($rootScope.isModestyOn == true && $scope.modestyImageInfo.length > 0) {
+ $.each($scope.modestyImageInfo, function (index, value) {
+ // alert(' $.each(BodyRegionDictionary1')
+
+
+ var bodyRegionRight = parseInt(value.x) + parseInt(value.Width);
+ var bodyRegionBottom = parseInt(value.y) + parseInt(value.Height);
+ var TBRight = parseInt((document.getElementById('transparencyCanvas').style.left).replace('px', '')) + parseInt((document.getElementById('transparencyCanvas').style.width).replace('px', ''));
+ var TBBottom = parseInt((document.getElementById('transparencyCanvas').style.top).replace('px', '')) + parseInt((document.getElementById('transparencyCanvas').style.height).replace('px', ''));
+ var TBStartX = parseInt((document.getElementById('transparencyCanvas').style.left).replace('px', ''));
+ var TBStartY = parseInt((document.getElementById('transparencyCanvas').style.top).replace('px', ''));
+
+
+
+
+ if (TBStartX <= bodyRegionRight && value.x <= TBRight && TBStartY <= bodyRegionBottom && value.y <= TBBottom) {
+
+
+ $scope.loadTransparencyImage(value.bodyRegionId, value.Height, value.Width, value.x, value.y, value.IsMirror, $scope.TransparencyBoxStartX, $scope.TransparencyEndX, $scope.TransparencyBoxStartY, $scope.TransparencyBoxEndY, $scope, false, false);
+
+ }
+ })
+ }
+
+ // });
+ //$(".ui-wrapper").css("z-index", "600");
+ $scope.isResized = false;
+ }
+
+
+ function TransparencyCanvasClickListener(evt) {
+ //alert('tb clicked')
+ // debugger;
+ var pixelData;
+ var pixelDataTrans;
+ var mousePos = $scope.getMousePos(evt);
+ // alert(mousePos.x + ',' + mousePos.y);
+
+ var canvasDiv = document.getElementById('canvasDiv');
+ var verticalScrollPosition = canvasDiv.scrollTop;
+ var horizontlScrollPosition = canvasDiv.scrollLeft;
+
+
+ //We substracted 135, as the difference between flex and html coordinates for same organ is 135
+ var actulalX = mousePos.x + horizontlScrollPosition;
+ var actualY = mousePos.y + verticalScrollPosition //- 135; //+ tomenuBarheight + titleBarheight + searchComboheight;
+ var clickedBodyRegion;
+ var x;
+ var y;
+ var isMirror;
+ var width;
+ var BodyRegionDictionary = $rootScope.BodyRegionCordinatesData;
+ if ($rootScope.viewOrientationId == 5) {
+
+ var clickedBodyRegionData = new jinqJs()
+ .from(BodyRegionDictionary)
+ .where('bodyRegionId == 6')
+ .select();
+
+
+ // clickedBodyRegion = clickedBodyRegionData[0].bodyRegionId;
+ x = clickedBodyRegionData[0].X;
+ y = clickedBodyRegionData[0].Y;
+ width = clickedBodyRegionData[0].Width;
+ var height = clickedBodyRegionData[0].Height;
+ isMirror = clickedBodyRegionData[0].IsMirror;
+ var bodyRegionRight = parseInt(x) + parseInt(width);
+ var bodyRegionBottom = parseInt(y) + parseInt(height);
+ if (actulalX <= bodyRegionRight && x <= actulalX && actualY <= bodyRegionBottom && y <= actualY) {
+
+ clickedBodyRegion = clickedBodyRegionData[0].bodyRegionId;
+ x = clickedBodyRegionData[0].X;
+ y = clickedBodyRegionData[0].Y;
+ width = clickedBodyRegionData[0].Width;
+ var height = clickedBodyRegionData[0].Height;
+ isMirror = clickedBodyRegionData[0].IsMirror;
+ }
+
+ }
+ else {
+ $.each(BodyRegionDictionary, function (index, value) {
+
+ var bodyRegionRight = parseInt(value.X) + parseInt(value.Width);
+ var bodyRegionBottom = parseInt(value.Y) + parseInt(value.Height);
+ if (actulalX <= bodyRegionRight && value.X <= actulalX && actualY <= bodyRegionBottom && value.Y <= actualY) {
+
+ clickedBodyRegion = value.bodyRegionId;
+ x = value.X;
+ y = value.Y;
+ width = value.Width;
+ isMirror = value.IsMirror;
+ return false;
+ }
+ })
+ }
+
+
+ if (isMirror == "Yes") {
+
+ var mirrorCanvasX = x;
+ var mirrorCanvasWidth = width;
+
+ var clickedCanvasMaskId = 'imageCanvas' + clickedBodyRegion + '_mci';
+ var clickedCanavs = document.getElementById(clickedCanvasMaskId);
+
+ var maskCanvasId = 'transparencyTempCanvasMask_' + clickedBodyRegion + '_mci';
+ var maskCanvas = document.getElementById(maskCanvasId);
+
+ if (maskCanvas != null) {
+ x = maskCanvas.style.left;
+ y = maskCanvas.style.top;
+
+ var maskCanvasTransId = 'transparencyTempCanvasMask_' + clickedBodyRegion + '_mci';
+ var maskCanvastrans = document.getElementById(maskCanvasTransId);
+ var maskCanvasContexttrans = maskCanvastrans.getContext("2d");
+
+
+ getAnnotationAndCraeteSpeechBubble(mirrorCanvasX, mirrorCanvasWidth, mousePos, maskCanvasContexttrans, clickedBodyRegion, x, y, evt)
+
+
+ }
+
+ //if non mirrored canvas does not exist for this irror Body region then draw non mirrored image to get annotation
+
+ else if (maskCanvas == null) {
+ var clickedBodyRegionData = new jinqJs()
+ .from(BodyRegionDictionary)
+ .where('bodyRegionId == ' + clickedBodyRegion)
+ .select();
+ if (clickedBodyRegionData != null || clickedBodyRegionData != undefined) {
+
+ var nomMirroredBodyRegion = new jinqJs()
+ .from(clickedBodyRegionData)
+ .where('IsMirror == No')
+ .select();
+
+ var transparencyTempcanavsMask = document.createElement('canvas');
+ transparencyTempcanavsMask.id = 'transparencyTempCanvasMask_' + clickedBodyRegion + '_mci';
+ transparencyTempcanavsMask.height = nomMirroredBodyRegion[0].Height;
+ transparencyTempcanavsMask.width = nomMirroredBodyRegion[0].Width;
+ transparencyTempcanavsMask.style.position = "absolute";
+ transparencyTempcanavsMask.style.left = nomMirroredBodyRegion[0].X + 'px' // x + "px";
+ transparencyTempcanavsMask.style.top = nomMirroredBodyRegion[0].Y + "px"//y + "px";
+ transparencyTempcanavsMask.style.visibility = 'hidden';
+
+ document.getElementById('canvasDiv').appendChild(transparencyTempcanavsMask);
+
+ var tranparencyImgSrc = $scope.GetImageSource(clickedBodyRegion);
+ var tranparencyMaskImgSrc = $scope.GetMaskImageSource(tranparencyImgSrc);
+
+ var tempMaskImg = new Image();
+ tempMaskImg.src = tranparencyMaskImgSrc;
+
+ tempMaskImg.onload = function () {
+ var transparencyTempcanavsMask = document.getElementById(maskCanvasId);
+ var tempmaskCtx = transparencyTempcanavsMask.getContext('2d');
+ tempmaskCtx.drawImage(tempMaskImg, 0, 0);
+
+ //get x,y of non mirrored canvas for this body region
+ x = transparencyTempcanavsMask.style.left;
+ y = transparencyTempcanavsMask.style.top;
+
+ getAnnotationAndCraeteSpeechBubble(mirrorCanvasX, mirrorCanvasWidth, mousePos, tempmaskCtx, clickedBodyRegion, x, y, evt)
+
+ }
+ }
+ }
+
+
+ }
+ else {
+
+ var clickedCanvasMaskId = 'imageCanvas' + clickedBodyRegion + '_mci';
+ var maskCanvas = document.getElementById(clickedCanvasMaskId);
+ var maskCanvasContext = maskCanvas.getContext("2d");
+
+ //transparecncy canvas
+ var maskCanvasTransId = 'transparencyTempCanvasMask_' + clickedBodyRegion + '_mci';
+ var maskCanvastrans = document.getElementById(maskCanvasTransId);
+ var maskCanvasContexttrans = maskCanvastrans.getContext("2d");
+
+ pixelData = maskCanvasContext.getImageData(Math.round(actulalX - x), Math.round(actualY - y), 1, 1);
+
+ pixelDataTrans = maskCanvasContexttrans.getImageData(Math.round(actulalX - x), Math.round(actualY - y), 1, 1);
+ var annotations = $scope.getAnnotationForTransparencyBox(pixelData, pixelDataTrans, $scope);
+ //var annotations = $scope.getAnnotationForTransparencyBox(pixelData, pixelDataTrans, $scope);
+
+ if ($('#speechBubble').length > 0)
+ $('#speechBubble').remove();
+
+ if ($('#speechBubbleTrns').length > 0) {
+ $('#speechBubbleTrns').remove();
+
+ // $scope.createSpeechBubbleOnTransparencyBox(evt, annotations.annotationT1, annotations.annotationT2, evt.pageX + horizontlScrollPosition - $('#canvasDiv').offset().left + 5, evt.pageY + verticalScrollPosition - $('#canvasDiv').offset().top - 50)
+ $scope.annotationTextArrayT1 = [];
+ $scope.annotationTextArrayT2 = [];
+ $scope.annotationTextArrayT1.push(annotations.annotationT1);
+ $scope.annotationTextArrayT2.push(annotations.annotationT2);
+
+
+ $scope.createDynamicSpeechBubble(evt, evt.pageX + horizontlScrollPosition - $('#canvasDiv').offset().left, evt.pageY + verticalScrollPosition - $('#canvasDiv').offset().top, false);
+ }
+ else
+ // $scope.createSpeechBubbleOnTransparencyBox(evt, annotations.annotationT1, annotations.annotationT2, evt.pageX + horizontlScrollPosition - $('#canvasDiv').offset().left + 5, evt.pageY + verticalScrollPosition - $('#canvasDiv').offset().top - 50)
+ {
+
+ $scope.annotationTextArrayT1 = [];
+ $scope.annotationTextArrayT2 = [];
+ $scope.annotationTextArrayT1.push(annotations.annotationT1);
+ $scope.annotationTextArrayT2.push(annotations.annotationT2);
+
+
+ $scope.createDynamicSpeechBubble(evt, evt.pageX + horizontlScrollPosition - $('#canvasDiv').offset().left, evt.pageY + verticalScrollPosition - $('#canvasDiv').offset().top, false);
+ }
+
+ }
+
+
+ }
+
+ function OnClickModestyTransCanvas(evt) {
+
+ var mousePos = $scope.getMousePos(evt);
+ var canvasDiv = document.getElementById('canvasDiv');
+ var verticalScrollPosition = canvasDiv.scrollTop;
+ var horizontlScrollPosition = canvasDiv.scrollLeft;
+
+ var actulalX = mousePos.x + horizontlScrollPosition;
+ var actualY = mousePos.y + verticalScrollPosition;
+
+ var canavsX = evt.currentTarget.offsetLeft;
+ var canvasY = evt.currentTarget.offsetTop;
+
+ var canvasId = evt.currentTarget.id;
+ var canavsContext = document.getElementById(canvasId).getContext('2d');
+ var RGBColor = $scope.GetRGBColor(canavsContext, actulalX, actualY, canavsX, canvasY);
+
+ var annotationText;
+
+ //Modesty ON
+ if (canvasId.match('modestyImg') && RGBColor != '000000') {
+ RGBColor = DA[0].figLeafTermId;
+ annotationText = $scope.GetAnnotationBasedOnActualTermNo(RGBColor);
+ $scope.annotationTextArrayT1 = [];
+ $scope.annotationTextArrayT2 = [];
+ $scope.annotationTextArrayT1.push(annotationText);
+ $scope.annotationTextArrayT2.push(annotationText);
+ }
+ //Modesty On but clicked somewhre else, we did modesty check because the modesty image covers whole body region so if user will click to
+ //see the annotation apart from leaf then the actual click will be on modesty canvas, but for annotation er
+ //
+ else if (canvasId.match('modestyImg') && RGBColor == '000000') {
+
+ var bodyRegionId = canvasId.slice(-1);
+
+ var maskCanvasId = 'imageCanvas' + bodyRegionId + '_mci';
+ var maskCanvas = document.getElementById(maskCanvasId);
+ var maskCanvasContext = maskCanvas.getContext("2d");
+ //RGBColor = $scope.GetRGBColor(maskCanvasContext, actulalX, actualY, xcanavsX, canvasY);
+ //annotationText = $scope.GetAnnotationText(parseInt(RGBColor));
+
+ //transparecncy canvas
+ var maskCanvasTransId = 'transparencyTempCanvasMask_' + bodyRegionId + '_mci';
+ var maskCanvastrans = document.getElementById(maskCanvasTransId);
+ var maskCanvasContexttrans = maskCanvastrans.getContext("2d");
+
+ var pixelData = maskCanvasContext.getImageData(Math.round(actulalX - canavsX), Math.round(actualY - canvasY), 1, 1);
+
+ var pixelDataTrans = maskCanvasContexttrans.getImageData(Math.round(actulalX - canavsX), Math.round(actualY - canvasY), 1, 1);
+
+ var annotations = $scope.getAnnotationForTransparencyBox(pixelData, pixelDataTrans, $scope);
+
+
+ // var maskCanvasId = 'imageCanvas' + bodyRegionId + '_mci';
+ // var maskCanvas = document.getElementById(maskCanvasId);
+ // var maskCanvasContext = maskCanvas.getContext("2d");
+ // RGBColor = $scope.GetRGBColor(maskCanvasContext, actulalX, actualY, xcanavsX, canvasY);
+ // annotationText = $scope.GetAnnotationText(parseInt(RGBColor));
+
+
+ // createSpeechBubbleOnTransparencyBox(evt, annotations.annotationT1, annotations.annotationT2, evt.pageX + horizontlScrollPosition - $('#canvasDiv').offset().left + 5, evt.pageY + verticalScrollPosition - $('#canvasDiv').offset().top - 50)
+
+ $scope.annotationTextArrayT1 = [];
+ $scope.annotationTextArrayT2 = [];
+ $scope.annotationTextArrayT1.push(annotations.annotationT1);
+ $scope.annotationTextArrayT2.push(annotations.annotationT2);
+
+ }
+
+ if ($('#speechBubble').length > 0)
+ $('#speechBubble').remove();
+
+
+ if ($('#speechBubbleTrns').length > 0) {
+ $('#speechBubbleTrns').remove();
+ }
+ $scope.createDynamicSpeechBubble(evt, evt.pageX + horizontlScrollPosition - $('#canvasDiv').offset().left, evt.pageY + verticalScrollPosition - $('#canvasDiv').offset().top, false);
+
+
+ }
+
+ function getAnnotationAndCraeteSpeechBubble(mirrorCanvasX, mirrorCanvasWidth, mousePos, maskCanvasContexttrans, clickedBodyRegion, x, y, evt) {
+ var canvasDiv = document.getElementById('canvasDiv');
+ var verticalScrollPosition = canvasDiv.scrollTop;
+ var horizontlScrollPosition = canvasDiv.scrollLeft;
+
+ var distanceXOnMirrorImage = (parseInt(mirrorCanvasX) + parseInt(mirrorCanvasWidth)) - (parseInt(mousePos.x) + horizontlScrollPosition);// - 135);
+
+ var mirrorXOnNormalImage = parseInt(maskCanvasContexttrans.canvas.offsetLeft) + parseInt(distanceXOnMirrorImage);
+
+ var actulalX = mirrorXOnNormalImage
+ var actualY = mousePos.y + verticalScrollPosition
+
+
+
+ var clickedCanvasMaskId = 'imageCanvas' + clickedBodyRegion + '_mci';
+ var maskCanvas = document.getElementById(clickedCanvasMaskId);
+ var maskCanvasContext = maskCanvas.getContext("2d");
+ var imgX = Math.round(actulalX - parseInt((x).replace('px', '')));
+ var imgY = Math.round(actualY - parseInt((y).replace('px', '')));
+ var pixelData = maskCanvasContext.getImageData(imgX, imgY, 1, 1);
+
+
+ //trans layer image data
+ var pixelDataTrans = maskCanvasContexttrans.getImageData(imgX, imgY, 1, 1);
+ // console.log('at the time' + pixelData.data[0])
+ // debugger;
+ var annotations = $scope.getAnnotationForTransparencyBox(pixelData, pixelDataTrans, $scope);
+ if ($('#speechBubble').length > 0)
+ $('#speechBubble').remove();
+
+
+ if ($('#speechBubbleTrns').length > 0) {
+ $('#speechBubbleTrns').remove();
+
+ // createSpeechBubbleOnTransparencyBox(evt, annotations.annotationT1, annotations.annotationT2, evt.pageX + horizontlScrollPosition - $('#canvasDiv').offset().left + 5, evt.pageY + verticalScrollPosition - $('#canvasDiv').offset().top - 50)
+
+ $scope.annotationTextArrayT1 = [];
+ $scope.annotationTextArrayT2 = [];
+ $scope.annotationTextArrayT1.push(annotations.annotationT1);
+ $scope.annotationTextArrayT2.push(annotations.annotationT2);
+
+ $scope.createDynamicSpeechBubble(evt, evt.pageX + horizontlScrollPosition - $('#canvasDiv').offset().left, evt.pageY + verticalScrollPosition - $('#canvasDiv').offset().top, false);
+ }
+ else {
+ $scope.annotationTextArrayT1 = [];
+ $scope.annotationTextArrayT2 = [];
+ $scope.annotationTextArrayT1.push(annotations.annotationT1);
+ $scope.annotationTextArrayT2.push(annotations.annotationT2);
+
+ $scope.createDynamicSpeechBubble(evt, evt.pageX + horizontlScrollPosition - $('#canvasDiv').offset().left, evt.pageY + verticalScrollPosition - $('#canvasDiv').offset().top, false);
+ }
+ }
+
+
+ function clearTransCanvas() {
+
+ var tCanvas = document.getElementById('transparencyCanvas');
+ if (tCanvas != null) {
+ var tCanvasContext = tCanvas.getContext('2d');
+ tCanvasContext.clearRect(0, 0, parseInt(tCanvas.style.width), parseInt(tCanvas.style.height));
+ }
+
+ }
+
+
+ $scope.getAnnotationForTransparencyBox = function (pixelData, pixelDataTrans, scope) {
+
+
+
+ pixelData.data[0] = pixelData.data[0] - 9;
+ pixelData.data[1] = pixelData.data[1] - 9;
+ pixelData.data[2] = pixelData.data[2] - 9;
+
+ //trans pixel data
+ pixelDataTrans.data[0] = pixelDataTrans.data[0] - 9;
+ pixelDataTrans.data[1] = pixelDataTrans.data[1] - 9;
+ pixelDataTrans.data[2] = pixelDataTrans.data[2] - 9;
+
+ var Red;
+ var Green;
+ var Blue;
+ var zero = "0";
+
+ if ((pixelData.data[0]).toString().length != 2) {
+ Red = zero.concat((pixelData.data[0]).toString())
+ }
+ else {
+ Red = (pixelData.data[0]).toString()
+ }
+ if ((pixelData.data[1]).toString().length != 2) {
+ Green = zero.concat((pixelData.data[1]).toString())
+ }
+ else {
+ Green = (pixelData.data[1]).toString()
+
+ }
+ if ((pixelData.data[2]).toString().length != 2) {
+ Blue = zero.concat((pixelData.data[2]).toString())
+ }
+ else {
+ Blue = (pixelData.data[2]).toString()
+
+ }
+ var RGBColor = (Red + Green + Blue);
+
+
+ var annotationText1 = $scope.GetAnnotationText(parseInt(RGBColor));
+
+ //get annotation for trans canavs
+ var RedTrans;
+ var GreenTrans;
+ var BlueTrans;
+ var zero = "0";
+
+ if ((pixelDataTrans.data[0]).toString().length != 2) {
+ RedTrans = zero.concat((pixelDataTrans.data[0]).toString())
+ }
+ else {
+ RedTrans = (pixelDataTrans.data[0]).toString()
+ }
+ if ((pixelDataTrans.data[1]).toString().length != 2) {
+ GreenTrans = zero.concat((pixelDataTrans.data[1]).toString())
+ }
+ else {
+ GreenTrans = (pixelDataTrans.data[1]).toString()
+
+ }
+ if ((pixelDataTrans.data[2]).toString().length != 2) {
+ BlueTrans = zero.concat((pixelDataTrans.data[2]).toString())
+ }
+ else {
+ BlueTrans = (pixelDataTrans.data[2]).toString()
+
+ }
+ var RGBColorTrans = (RedTrans + GreenTrans + BlueTrans);
+
+
+ var annotationText2 = $scope.GetAnnotationText(parseInt(RGBColorTrans));
+
+ return {
+ annotationT1: annotationText1,
+ annotationT2: annotationText2
+ }
+ }
+
+
+ $scope.onTransparencyChange = function (ev, ui) {
+ //debugger;
+ // alert('t change')
+ $scope.transNumber = ui.value;
+
+ var tCanvas = document.getElementById('transparencyCanvas');
+ var tCanvasContext = tCanvas.getContext('2d');
+
+ var tCanvasHeight = parseInt((tCanvas.style.height).replace('px', ''));
+
+ var tCanvasWidth = parseInt((tCanvas.style.width).replace('px', ''));
+
+ var tBoxStartX = parseInt((tCanvas.style.left).replace('px', ''));
+ var tBoxEndX = parseInt((tCanvas.style.left).replace('px', '')) + parseInt((tCanvas.style.width.replace('px', '')));
+ var tBoxStartY = parseInt((tCanvas.style.top).replace('px', ''));
+ var tBoxEndY = parseInt((tCanvas.style.top).replace('px', '')) + parseInt((tCanvas.style.height).replace('px', ''));
+ var transparencyBoxBottom = parseInt(tBoxStartY) + parseInt(tCanvasHeight);
+ var transparencyBoxRight = parseInt(tBoxStartX) + parseInt(tCanvasWidth);
+
+ //var scope = angular.element(document.getElementById("DAView")).scope();
+ //scope.$apply(function () {
+ var arr = [];
+ $scope.transparencyChangeCounter++;
+ //before changing the transparency of first canvas, hold the orignal canvas data on temp canvas
+
+ //put original data on transcanvas so that it can be used to change transparency properly
+ var tempCanavs = document.getElementById('tempCanvas');
+ var tempCanvasContext = tempCanavs.getContext('2d');
+
+ var originalTransparencyData = tempCanvasContext.getImageData(0, 0, $scope.transparencyCanvasWidth, $scope.transparencyCanvasHeight);
+ var ctx = document.getElementById('transparencyCanvas').getContext('2d');
+ ctx.putImageData(originalTransparencyData, 0, 0);
+
+
+ //for modesty
+
+ //for modesty
+ if ($rootScope.isModestyOn == true && $scope.modestyImageInfo.length > 0) {
+ $.each($scope.modestyImageInfo, function (index, value) {
+
+ var brId = value.bodyRegionId;
+
+ var modestyTransTempCanvasId = 'tempCanvasModesty_' + brId;
+ var modestyTransCanvasId = 'modestyTransCanavs_' + brId;
+ var tempCanvasContext = document.getElementById(modestyTransTempCanvasId).getContext('2d');
+ var originalTransparencyData = tempCanvasContext.getImageData(0, 0, value.Width, value.Height);
+ var ctx = document.getElementById(modestyTransCanvasId).getContext('2d');
+ ctx.putImageData(originalTransparencyData, 0, 0);
+ })
+ }
+
+ $scope.changeTransparency();
+
+
+ // });
+ }
+
+ $scope.CloseTransparencyBox = function () {
+
+
+ //To enable extract button
+ $scope.isTransparencyActivated = false;
+ $("#btnExtract").removeClass("disabled");
+
+ //$('.com_anno').css('display', 'none');
+
+ //$('#sppeachBubble_annotation').css('display', 'none');
+ //$('#dot_annotation').css('display', 'none');
+ //$('#bord_annotation').css('display', 'none');
+
+
+ $('.com_anno').remove();
+
+ $('#sppeachBubble_annotation').remove();
+ $('#dot_annotation').remove();
+ $('#bord_annotation').remove();
+
+ var tBox = document.getElementById('transparencyCanvas');
+
+
+ if (tBox != null) {
+ tBox.parentNode.removeChild(tBox)
+ var elements = document.getElementsByClassName('ui-icon ui-icon-gripsmall-diagonal-se');
+ while (elements.length > 0) {
+ elements[0].parentNode.removeChild(elements[0]);
+ }
+ //var txtTransparencyChange = document.getElementById("txtTransparencyChange");
+ //txtTransparencyChange.value = 0;
+ // document.getElementById('txtLayerNumber').value = 0;
+ // debugger;
+
+
+ $('#layerChangeSlider').slider("option", "value", parseInt($rootScope.totalLayers) - parseInt($scope.currentLayerNumber));
+ $("#txtlayerNumber").val(parseInt($scope.currentLayerNumber));
+
+
+ if (document.getElementById('tempCanvas') != null) {
+ $('#tempCanvas').remove();
+ }
+ if ($('#speechBubbleTrns').length > 0) {
+ $('#speechBubbleTrns').remove();
+ }
+ //var scope = angular.element(document.getElementById("DAView")).scope();
+ //scope.$apply(function () {
+ // $scope.layerNumber = 0;
+ // $scope.isTransparencyActivated = false;
+ //})
+
+
+ var tempCanvases = $("canvas[id*='transparencyTempCanvas']");
+ for (var i = 0; i < tempCanvases.length; i++) {
+ tempCanvases[i].parentNode.removeChild(tempCanvases[i]);
+ }
+
+ $('.ui-wrapper').remove();
+
+ //$("canvas[name*='transparencyTempCanvas']").nextUntil($("canvas[name*='transparencyTempCanvas']"))
+ //.remove();
+ $scope.layerNumber = $scope.currentLayerNumber;
+ $scope.transNumber = 50;
+ $(".slider").slider({ value: 50 })
+ }
+
+
+ var modestyTransCanvases = $("canvas[id*='modestyTransCanavs']");
+ if (modestyTransCanvases != null || modestyTransCanvases != undefined && modestyTransCanvases.length > 0) {
+ for (var j = 0; j < modestyTransCanvases.length; j++) {
+
+ modestyTransCanvases[j].parentNode.removeChild(modestyTransCanvases[j]);
+ }
+ }
+
+ $('#transparencyScale').css('visibility', 'hidden');
+
+ //$scope.isTransparencyActivated = false;
+ // document.getElementById('btnTranparency').className = 't-transparency'
+ $('#btnTranparency').removeClass('tButtonActive');
+ $('#btnTranparency').addClass('btn-black');
+ $('#btnIdentity').removeClass('btn-black');
+
+ $('#btnIdentity').addClass('btn-primary');
+
+ document.getElementById('btnTranparency').removeEventListener("click", $scope.createTransparencyBox);
+
+ }
+
+ $scope.createSpeechBubbleOnTransparencyBox = function (event, text1, text2, x, y) {
+
+ $('#canvasDiv').css('cursor', 'pointer');
+ $('
'
+ + '
'
+ + '
' + text1 + '
' + text2 + '
'
+ //+'
+ + '
').appendTo('#canvasDiv');
+
+ $('#speechBubbleTrns').on('click', '.BubbleCloseBtn', function (e) {
+ $('#speechBubbleTrns').css('display', 'none');
+ });
+
+ $('#canvasDiv').attr("data-bubbleid", "speechBubble")
+
+
+ };
+
+
+ function positionTooltip(event, x, y) {
+ // alert('positionTooltip')
+ x = 100,
+ y = 200,
+
+ $('div.speech-bubble').css({
+ 'position': 'absolute', 'top': x, 'left': y, 'background-color': '#f8f8f8',
+ 'border': '2px solid #c8c8c8', 'width': '150px', 'height': '50px'
+ });
+
+
+ $('.arrow').css({
+ 'border-style': 'solid',
+ 'position': 'absolute'
+ });
+
+ $('.bottom').css({
+ 'border-color': '#c8c8c8 transparent transparent transparent',
+ 'border-width': ' 8px 8px 0px 8px',
+ 'bottom': -'8px'
+ })
+ };
+
+ $scope.createSpeechBubbleOnTransparencyBox = function (event, text1, text2, x, y) {
+
+ $('#canvasDiv').css('cursor', 'pointer');
+ $('
'
+ + '
'
+ + '
' + text1 + '
' + text2 + '
'
+ //+'
+ + '
').appendTo('#canvasDiv');
+
+ $('#speechBubbleTrns').on('click', '.BubbleCloseBtn', function (e) {
+ $('#speechBubbleTrns').css('display', 'none');
+ });
+
+ $('#canvasDiv').attr("data-bubbleid", "speechBubble")
+
+
+ };
+
+
+ function positionTooltip(event, x, y) {
+ // alert('positionTooltip')
+ x = 100,
+ y = 200,
+
+ $('div.speech-bubble').css({
+ 'position': 'absolute', 'top': x, 'left': y, 'background-color': '#f8f8f8',
+ 'border': '2px solid #c8c8c8', 'width': '150px', 'height': '50px'
+ });
+
+
+ $('.arrow').css({
+ 'border-style': 'solid',
+ 'position': 'absolute'
+ });
+
+ $('.bottom').css({
+ 'border-color': '#c8c8c8 transparent transparent transparent',
+ 'border-width': ' 8px 8px 0px 8px',
+ 'bottom': -'8px'
+ })
+ };
+
+
+ $scope.IdentityClick = function () {
+
+
+ //if listanager is visisble then close it
+
+ $rootScope.isListManagerSelected = false;
+ $rootScope.CloseListManager();
+ // $('#btnIdentity').addClass('btn-primary');
+
+ if ($scope.isTransparencyBtnClicked == true) {
+
+ $scope.isTransparencyBtnClicked = false;
+
+ var canvasDiv = document.getElementById('canvasDiv');
+ canvasDiv.removeEventListener("mousedown", mouseDownListener);
+
+ canvasDiv.removeEventListener("mousemove", mouseMoveListener);
+
+ canvasDiv.removeEventListener("mouseup", mouseUpListener)
+ $('#btnTranparency').removeClass('tButtonActive');
+ $('#btnTranparency').addClass('btn-black');
+ }
+
+ }
+
+ $scope.enableZoom = function () {
+
+ $("#btnExtract").removeClass("disabled");
+ $("#btnTranparency").removeClass("disabled");
+ $rootScope.isTransparencyBoxActivated = false;
+ $rootScope.isNormalMode = false;
+
+
+ //if listanager is visisble then close it
+
+ $rootScope.CloseListManager();
+
+ $rootScope.isHighlightBodyByBodySystem = false;
+
+
+ $('#sppeachBubble').css('display', 'none');
+
+ $("#dot").css("display", "none");
+
+ $scope.terminateCurrentlyRunningWPs();
+
+ if ($scope.isTransparencyActivated) {
+
+ $scope.CloseTransparencyBox();
+
+ }
+
+ $rootScope.isZoomed = true;
+ //1.
+
+ $scope.flushCanvas();
+
+ if ($scope.zoomInOut == 25) {
+ $scope.zoomInOut = 75;
+
+ }
+ else {
+ $scope.zoomInOut = 25;
+
+
+ }
+
+ //2.
+ $scope.CalculateImageCordinates($rootScope.viewOrientationId);
+
+ //3.
+
+
+ if ($scope.zoomInOut == 25) {
+ if ($('#canvasDiv') != null)
+ $('#canvasDiv').scrollLeft(0)
+
+ }
+ else {
+ if ($('#canvasDiv') != null)
+ $('#canvasDiv').scrollLeft($('#canvasDiv').width() / 2)
+
+
+ }
+
+
+ //remove annotation speech bubble
+ if ($('#dot').length > 0) {
+ $('#dot').remove();
+ }
+
+ if ($('#sppeachBubble').length > 0) {
+ $('#sppeachBubble').remove();
+ }
+
+ //4.
+ if ($rootScope.isHighLight == true) {
+
+ $timeout(function () { $scope.highLightBody() }, 50);
+ }
+ }
+
+
+ $scope.flushCanvas = function () {
+
+
+ $rootScope.isLoading = true;
+ $('#spinner').css('visibility', 'visible');
+
+ var endIndex = 0;
+ var startIndex = 0;
+ if (($rootScope.viewOrientationId == '1') || ($rootScope.viewOrientationId == '4')) {
+ endIndex = 6;
+ startIndex = 1;
+ }
+ else if (($rootScope.viewOrientationId == '2') || ($rootScope.viewOrientationId == '3')) {
+ endIndex = 5;
+ startIndex = 1;
+ }
+ else if (($rootScope.viewOrientationId == '5')) {
+ endIndex = 6;
+ startIndex = 2;
+ }
+ else if (($rootScope.viewOrientationId == '6')) {
+ endIndex = 6;
+ startIndex = 6;
+ }
+
+ for (var i = startIndex; i <= endIndex; i++) {
+
+ var id;
+ var maskId;
+
+ id = 'imageCanvas' + i;
+ maskId = 'imageCanvas' + i + '_mci';
+
+ var canvas = document.getElementById(id);
+ if (canvas != null || canvas != undefined)
+ document.getElementById('canvasDiv').removeChild(canvas);
+
+ var maskcanvas = document.getElementById(maskId);
+ if (maskcanvas != null || maskcanvas != undefined)
+ document.getElementById('canvasDiv').removeChild(maskcanvas);
+
+ if (endIndex == 6) {
+
+ if (i == 4 || i == 5 || i == 6) {
+ id = 'imageCanvas' + i + '_MR';
+ maskId = 'imageCanvas' + i + '_MR_mci';
+
+ var canvas = document.getElementById(id);
+ if (canvas != null || canvas != undefined)
+ document.getElementById('canvasDiv').removeChild(canvas);
+
+ var maskcanvas = document.getElementById(maskId);
+ if (maskcanvas != null || maskcanvas != undefined)
+ document.getElementById('canvasDiv').removeChild(maskcanvas);
+ }
+ }
+
+ //remove modesty canavs
+ var modestyCanvases = $("canvas[id*='imageCanvasmodestyImg']");
+ if (modestyCanvases != null || modestyCanvases != undefined && modestyCanvases.length > 0) {
+ for (var j = 0; j < modestyCanvases.length; j++) {
+
+ modestyCanvases[j].parentNode.removeChild(modestyCanvases[j]);
+ }
+ }
+ }
+
+
+ }
+ $scope.terminateCurrentlyRunningWPs = function () {
+ if ($scope.runningWorkers != null || $scope.runningWorkers != undefined) {
+ var workerCount = $scope.runningWorkers.length;
+ if (workerCount > 0) {
+ for (var i = workerCount - 1; i >= 0; i--) {
+ var runningWorker = $scope.runningWorkers[i].workerName;
+ runningWorker.terminate();
+ $scope.runningWorkers.splice(i, 1);
+ // workerCount--;
+ }
+ }
+ }
+ }
+
+
+ $scope.enableHighlight = function () {
+
+
+ // $("#btnExtract").removeClass("disabled");
+ $("#btnTranparency").removeClass("disabled");
+ // $rootScope.isTransparencyBoxActivated = false;
+ // $rootScope.isNormalMode = false;
+
+ //if listanager is visisble then close it
+
+ // $rootScope.isListManagerSelected = false;
+ $rootScope.CloseListManager();
+
+ $rootScope.isHighlightBodyByBodySystem = false;
+
+ if ($rootScope.isHighLight == true) {
+
+ }
+ else {
+ $rootScope.isHighLight = true;
+ $rootScope.isNormalMode = false;
+ $rootScope.isZoomed = false;
+
+ if ($rootScope.isExtract == true) {
+ //1.
+ $rootScope.isExtract = false;
+
+ //2.
+ $scope.flushCanvas();
+
+ //3.
+ $scope.CalculateImageCordinates($rootScope.viewOrientationId);
+
+
+ }
+ else {
+ console.log('highLightBody from enableHighlight')
+ $timeout(function () { $scope.highLightBody() }, 50);
+ }
+
+ }
+
+ // unhighlight other
+
+ //$scope.Normal = "";
+ //$scope.Extract = "";
+ //$scope.Highlight = "LeftButtonsDefaultState";
+
+ $("#btnHighLight").addClass("btn-primary");
+ $("#btnHighLight").removeClass("btn-black");
+
+ if (!$("#btnNormalMode").hasClass("btn-black")) {
+ $("#btnNormalMode").addClass("btn-black");
+ }
+
+ if (!$("#btnExtract").hasClass("btn-black")) {
+ $("#btnExtract").addClass("btn-black");
+ }
+
+ if ($("#btnExtract").hasClass("btn-primary")) {
+ $("#btnExtract").removeClass("btn-primary");
+ }
+
+ if ($("#btnNormalMode").hasClass("btn-primary")) {
+ $("#btnNormalMode").removeClass("btn-primary");
+ }
+
+ //7900
+ $("#canvasDiv").scrollTop($rootScope.CanvasDivTopPosition);
+ $("#canvasDiv").scrollLeft($rootScope.CanvasDivLeftPosition);
+
+
+ }
+
+ $scope.enableNormalMode = function () {
+ $("#btnTranparency").removeClass("disabled");
+ $rootScope.isNormalMode = false;
+ console.log('enableNormalMode is called');
+
+
+ // $rootScope.isHighLight = false;
+
+ //to do should not call every time
+ $rootScope.CloseListManager();
+
+
+ $rootScope.isHighlightBodyByBodySystem = false;
+
+
+ if ($rootScope.isNormalMode == true) {
+
+
+
+
+
+ }
+ else {
+
+ //1.
+ $scope.flushCanvas();
+
+ //2.
+ $rootScope.isNormalMode = true;
+
+ //3.
+ $rootScope.isHighLight = false;
+
+ //4.
+ $rootScope.isExtract = false;
+
+ //5.
+ $rootScope.isZoomed = false;
+
+ //6.
+ // $rootScope.isListManagerSelected = false;
+ if ($rootScope.actualTermNumber != null && $rootScope.actualTermNumber != undefined && $rootScope.isListManagerSelected == true) {
+ $rootScope.isListManagerSelected = false;
+ $rootScope.isListManagerAlreadySelected = true;
+ }
+
+ //7.
+
+ $scope.layerNumber = $('#txtlayerNumber').val();
+ $scope.CalculateImageCordinates($rootScope.viewOrientationId);
+ // alert($rootScope.viewOrientationId + "gadash")
+
+
+ $("#canvasDiv").scrollTop($rootScope.CanvasDivTopPosition);
+ $("#canvasDiv").scrollLeft($rootScope.CanvasDivLeftPosition);
+
+
+ }
+
+ //$scope.Normal = "LeftButtonsDefaultState";
+ //$scope.Extract = "";
+ //$scope.Highlight = "";
+ $("#btnNormalMode").addClass("btn-primary");
+ $("#btnNormalMode").removeClass("btn-black");
+
+ if (!$("#btnExtract").hasClass("btn-black")) {
+ $("#btnExtract").addClass("btn-black");
+ }
+
+ if (!$("#btnHighLight").hasClass("btn-black")) {
+ $("#btnHighLight").addClass("btn-black");
+ }
+
+ if ($("#btnExtract").hasClass("btn-primary")) {
+ $("#btnExtract").removeClass("btn-primary");
+ }
+
+ if ($("#btnHighLight").hasClass("btn-primary")) {
+ $("#btnHighLight").removeClass("btn-primary");
+ }
+ }
+
+ // #7972 Mozilla Firefox> Incorrect navigation
+ $("#canvasDiv").scroll(function (event) {
+ $rootScope.CanvasDivTopPosition = $("#canvasDiv").scrollTop();
+ $rootScope.CanvasDivLeftPosition = $("#canvasDiv").scrollLeft();
+
+ });
+
+
+
+ $scope.enableExtract = function (isCalledFromButton) {
+
+ console.log('isCalledFromButton= ' + isCalledFromButton);
+
+ $rootScope.isHighlightBodyByBodySystem = false;
+
+
+ $rootScope.CanvasDivTopPosition = $("#canvasDiv").scrollTop();
+
+ $rootScope.CanvasDivLeftPosition = $("#canvasDiv").scrollLeft();
+
+
+ if ($scope.isTransparencyActivated == true) {
+
+ $("#btnExtract").addClass("disabled");
+
+ }
+
+
+ else {
+
+
+ $rootScope.CloseListManager();
+ //1.
+ //$rootScope.isLoading = true;
+ //$('#spinner').css('visibility', 'visible');
+
+ //2.
+ $scope.terminateCurrentlyRunningWPs();
+
+ //3.
+ //if extarct is alraedy enabled and user cliked on any body part then extract that.
+ if (isCalledFromButton == false) {
+
+ $rootScope.isExtract = true;
+ //disable transparency button
+
+ $("#btnTranparency").addClass("disabled");
+
+
+ if ($rootScope.isNormalMode == true) {
+
+ $rootScope.isHighLight = false;
+ $rootScope.isNormalMode = false;
+ }
+ else {
+
+ $rootScope.isHighLight = false;
+ }
+
+ //4.
+ console.log('highLightBody from enableExtract')
+ $scope.highLightBody();
+
+ }
+ else {
+
+ if ($rootScope.isExtract == true) {
+
+ }
+ else {
+ $rootScope.isExtract = true;
+ //disable transparency button
+
+ $("#btnTranparency").addClass("disabled");
+
+
+ if ($rootScope.isNormalMode == true) {
+
+ $rootScope.isHighLight = false;
+ $rootScope.isNormalMode = false;
+ }
+ else {
+
+ $rootScope.isHighLight = false;
+ }
+
+ //4.
+ console.log('highLightBody from enableExtract')
+ $scope.highLightBody();
+
+
+ }
+ }
+
+
+ //5. unhighlight other
+ //$scope.Normal = "";
+ //$scope.Extract = "LeftButtonsDefaultState";
+ //$scope.Highlight = "";
+
+ $("#btnExtract").addClass("btn-primary");
+ $("#btnExtract").removeClass("btn-black");
+
+ if (!$("#btnNormalMode").hasClass("btn-black")) {
+ $("#btnNormalMode").addClass("btn-black");
+ }
+
+ if (!$("#btnHighLight").hasClass("btn-black")) {
+ $("#btnHighLight").addClass("btn-black");
+ }
+
+ if ($("#btnNormalMode").hasClass("btn-primary")) {
+ $("#btnNormalMode").removeClass("btn-primary");
+ }
+
+ if ($("#btnHighLight").hasClass("btn-primary")) {
+ $("#btnHighLight").removeClass("btn-primary");
+ }
+ }
+ }
+
+ $scope.enableShowHideStructureBox = function () {
+
+
+ //if listanager is visisble then close it
+
+ $rootScope.isListManagerSelected = false;
+ $rootScope.CloseListManager();
+
+ $(".com").toggle();
+ $('#dot').toggle();
+ $('#bord').toggle();
+ $('#sppeachBubble').toggle();
+ $('#sppeachBubble_annotation').toggle();
+
+ $("#bord_annotation").toggle();
+ $("#dot_annotation").toggle();
+ $(".dynCross_anno").parent().parent().parent().toggle();
+
+ }
+
+
+
+ $scope.highLightBody = function () {
+
+
+ $scope.Normal = "";
+ $scope.Extract = "";
+ $scope.Highlight = "LeftButtonsDefaultState";
+
+ console.log('highLightBody is called and ColoredImageSRC length: ' + $scope.ColoredImageSRC.length);
+
+ $scope.terminateCurrentlyRunningWPs();
+
+ //different body views have different count of bodyegions so the length of ColoredImageSRC will be different
+ if (($scope.ColoredImageSRC != null || $scope.ColoredImageSRC != undefined)) {
+
+ if ((($rootScope.viewOrientationId == '1') || ($rootScope.viewOrientationId == '4')) && ($scope.ColoredImageSRC.length == 9)) {
+ $scope.doHighlightOrExtract = true;
+ }
+ else if ((($rootScope.viewOrientationId == '2') || ($rootScope.viewOrientationId == '3')) && ($scope.ColoredImageSRC.length == 5)) {
+ $scope.doHighlightOrExtract = true;
+ }
+ else if ((($rootScope.viewOrientationId == '5')) && ($scope.ColoredImageSRC.length == 4)) {
+ $scope.doHighlightOrExtract = true;
+ }
+ else if ((($rootScope.viewOrientationId == '6')) && ($scope.ColoredImageSRC.length == 1)) {
+ $scope.doHighlightOrExtract = true;
+ }
+ else {
+ $scope.doHighlightOrExtract = false;
+ }
+
+
+ if ($scope.doHighlightOrExtract == true) {
+ if ($rootScope.isHighLight == true) {
+
+ $scope.grayedBR = [];
+
+ angular.forEach($scope.ColoredImageSRC, function (value, key) {
+ console.log('$scope.ColoredImageSRC length before gray= ' + $scope.ColoredImageSRC.length)
+ var id;
+ if (value.haveMirror == 'true') {
+ id = 'imageCanvas' + value.bodyRegionId + '_MR';
+ }
+ else {
+ id = 'imageCanvas' + value.bodyRegionId;
+ }
+
+ var imageCanvas = document.getElementById(id);
+
+ var width = value.Width;
+ var ht = value.Height;
+
+ var coloredCanvasContext = imageCanvas.getContext("2d");
+ var coloredImageData = coloredCanvasContext.getImageData(0, 0, width, ht);
+ var coloredImageDataVar = coloredImageData;
+
+
+ //if (value.haveMirror == 'true') {
+ // $rootScope.coloredImageMRCanvasList[parseInt(value.bodyRegionId)] = coloredImageDataVar;
+ //}
+ //else {
+
+
+ // $rootScope.coloredImageCanvasList[parseInt(value.bodyRegionId - 1)] = coloredImageDataVar;
+
+ //}
+
+
+ var context_gray = imageCanvas.getContext('2d');
+
+ var dataURL = imageCanvas.toDataURL();
+
+
+ var img = new Image();
+
+ img.src = dataURL;
+
+ img.onload = function () {
+ console.log('Before BitmapData call, width: ' + Math.max(img.width) + ', height: ' + Math.max(img.height) + ' value.bodyRegionId= '
+ + value.bodyRegionId)
+
+ var DAData = new BitmapData(Math.max(img.width), Math.max(img.height));
+ DAData.draw(img);
+
+ var colorMode;
+
+ if ($scope.isExtract == true) {
+
+ if ((($rootScope.previousHighlightList != null || $rootScope.previousHighlightList != undefined) && $rootScope.previousHighlightList.length > 0) || $rootScope.isListManagerSelected == true) {
+
+ colorMode = $scope.applyWhiteMatrix(img, context_gray);
+ }
+ }
+ else {
+ colorMode = $scope.applyGrayMatrix(img, context_gray);
+ }
+
+ console.log('colorMode inside if = ' + colorMode);
+
+
+ if (colorMode != undefined || colorMode != null) {
+
+ $rootScope.isLoading = true;
+ $('#spinner').css('visibility', 'visible');
+
+
+ var zeroPoint = new Point();
+
+ DAData.applyFilter(DAData, DAData.rect, zeroPoint, colorMode);
+
+
+ context_gray.putImageData(DAData.data, 0, 0)
+
+ //NIKI- to resolve lateral arm black issue in highlight mode
+
+ if ($rootScope.viewOrientationId == 5 && (value.bodyRegionId == 6 || value.bodyRegionId == 4)) {
+
+ var imgData = context_gray.getImageData(0, 0, width, ht);
+ var data = imgData.data;
+ var c = 0;
+ for (var i = 0; i < data.length; i += 4) {
+ if (data[i] == data[i + 1] && data[i + 1] == data[i + 2] && data[i + 2] === 0) {
+ data[i + 3] = 0;
+ }
+
+ }
+ context_gray.putImageData(imgData, 0, 0);
+ }
+
+ imageCanvas.style.visibility = 'visible';
+ //push BRID into array
+ $scope.grayedBR.push({ 'BRID': value.bodyRegionId });
+
+ var grayImageData = context_gray.getImageData(0, 0, width, ht);
+ var grayImageImageDataVar = grayImageData.data;
+
+ if ($scope.isExtract == true) {
+ if (value.haveMirror == 'true') {
+ $rootScope.whiteImageMRDataList[parseInt(value.bodyRegionId)] = grayImageData;
+ }
+ else {
+
+ $rootScope.whiteImageDataList[parseInt(value.bodyRegionId - 1)] = grayImageData;
+ }
+ }
+ else {
+
+ if (value.haveMirror == 'true') {
+ $rootScope.grayImageMRDataList[parseInt(value.bodyRegionId)] = grayImageData;
+ }
+ else {
+
+ $rootScope.grayImageDataList[parseInt(value.bodyRegionId - 1)] = grayImageData;
+ }
+ }
+
+
+ if ($scope.grayedBR != null || $scope.grayedBR != undefined) {
+ if ((($rootScope.viewOrientationId == '1') || ($rootScope.viewOrientationId == '4')) && ($scope.grayedBR.length == 9)) {
+ $scope.isEligibleForHighlightBodyByTermList = true;
+ $scope.doHighlightOrExtract = false;
+ }
+ else if ((($rootScope.viewOrientationId == '2') || ($rootScope.viewOrientationId == '3')) && ($scope.grayedBR.length == 5)) {
+ $scope.isEligibleForHighlightBodyByTermList = true;
+ $scope.doHighlightOrExtract = false;
+ }
+ else if ((($rootScope.viewOrientationId == '5')) && ($scope.grayedBR.length == 4)) {
+ $scope.isEligibleForHighlightBodyByTermList = true;
+ $scope.doHighlightOrExtract = false;
+ }
+ else if ((($rootScope.viewOrientationId == '6')) && ($scope.grayedBR.length == 1)) {
+ $scope.isEligibleForHighlightBodyByTermList = true;
+ $scope.doHighlightOrExtract = false;
+ }
+ else {
+
+ $scope.isEligibleForHighlightBodyByTermList = false;
+ }
+
+ if ($scope.isEligibleForHighlightBodyByTermList == true) {
+ //DISABLE PROGERSS BAR FOR GENDER OR VIEW CHANGE
+ // if ($rootScope.isGenderChnage == true || $rootScope.isViewChange == true) {
+ //$scope.isLoading = false;
+
+ //$('#spinner').css('visibility', 'hidden');
+ //}
+
+ if (($rootScope.isHighlightBodyByBodySystem == true) && ($scope.systemMatchedTermList != null || $scope.systemMatchedTermList != undefined)) {
+
+
+ $scope.isLoading = true;
+
+ $('#spinner').css('visibility', 'visible');
+ $timeout(function () { $scope.HighlightBodyByTermList($scope.systemMatchedTermList) }, 100);
+ }
+ else if (($rootScope.isListManagerSelected == true) || ($rootScope.previousHighlightList != null && $rootScope.previousHighlightList.length > 0) && ($rootScope.isGenderChnage == true || $rootScope.isViewChange == true) || $rootScope.isListManagerAlreadySelected == true) {
+
+ // console.log('$scope.grayedBR.length is ' + $scope.grayedBR.length);
+ $timeout(function () {
+
+ $scope.isLoading = true;
+ $('#spinner').css('visibility', 'visible');
+
+ $scope.HighlightBodyByTermList($scope.AllTerms)
+ }, 800);
+
+ }
+ else if (($rootScope.previousHighlightList != null || $rootScope.previousHighlightList != undefined) && $rootScope.previousHighlightList.length > 0) {
+ $scope.createTermListByPreviousTermsAndHighlight();
+ }
+
+ }
+
+ }
+
+ }
+
+ // $timeout(function () { imageCanvas.style.visibility = 'visible' }, 50);
+
+ console.log('highlightboy. $rootScope.isExtract= ' + $rootScope.isExtract + ', $rootScope.previousHighlightList.length= ' + $rootScope.previousHighlightList.length)
+ if ($rootScope.isExtract == true) {
+ if (($rootScope.previousHighlightList != null || $rootScope.previousHighlightList != undefined) && $rootScope.previousHighlightList.length > 0) {
+ console.log('1. $rootScope.isExtract=true and $rootScope.previousHighlightList != null')
+
+ $timeout(function () { $scope.HighlightBodyOnExtract() }, 50);
+ }
+ else if ($rootScope.isListManagerSelected == true) {
+ console.log('1. $rootScope.isExtract=true and $rootScope.isListManagerSelected == true')
+
+ $timeout(function () { $scope.HighlightBodyOnExtract() }, 50);
+
+ }
+ }
+ }
+ })
+
+ }
+
+
+ else {
+ // This code will execute when user will select normal Mode but this time isHighlight will be false
+ console.log('highlightboy ELSE. $rootScope.isExtract= ' + $rootScope.isExtract + ', $rootScope.previousHighlightList.length= ' + $rootScope.previousHighlightList.length)
+
+ angular.forEach($scope.ColoredImageSRC, function (value, key) {
+ var id;
+ if (value.haveMirror == 'true') {
+ id = 'imageCanvas' + value.bodyRegionId + '_MR';
+ }
+ else {
+ id = 'imageCanvas' + value.bodyRegionId;
+ }
+
+ var imageCanvas = document.getElementById(id);
+
+ //var coloredCanvasID = 'imageCanvas' + bodyRegionId;
+ //var coloredCanvas = document.getElementById(coloredCanvasID);
+
+ var width = value.Width;
+ var ht = value.Height;
+
+ var coloredCanvasContext = imageCanvas.getContext("2d");
+ var coloredImageData = coloredCanvasContext.getImageData(0, 0, width, ht);
+ var coloredImageDataVar = coloredImageData;
+
+
+ //if (value.haveMirror == 'true') {
+ // $rootScope.coloredImageMRCanvasList[parseInt(value.bodyRegionId)] = coloredImageDataVar;
+ //}
+ //else {
+
+ // $rootScope.coloredImageCanvasList[parseInt(value.bodyRegionId - 1)] = coloredImageDataVar;
+
+ //}
+
+
+ var context = imageCanvas.getContext('2d');
+
+
+ var dataURL = imageCanvas.toDataURL();
+
+
+ var img = new Image();
+
+ img.src = dataURL;
+
+
+
+ img.onload = function () {
+ //console.log(Math.max(img.width) + ', ' + Math.max(img.height))
+
+ var DAData = new BitmapData(Math.max(img.width), Math.max(img.height));
+ DAData.draw(img);
+
+ var colorMode;
+
+ if ($scope.isExtract == true) {
+ if ((($rootScope.previousHighlightList != null || $rootScope.previousHighlightList != undefined) && $rootScope.previousHighlightList.length > 0) || $rootScope.isListManagerSelected == true) {
+
+ colorMode = $scope.applyWhiteMatrix(img, context);
+ }
+ }
+
+ console.log('colorMode inside else = ' + colorMode);
+ if (colorMode != undefined || colorMode != null) {
+
+ $rootScope.isLoading = true;
+ $('#spinner').css('visibility', 'visible');
+
+ var zeroPoint = new Point();
+
+ DAData.applyFilter(DAData, DAData.rect, zeroPoint, colorMode);
+
+ context.putImageData(DAData.data, 0, 0)
+
+
+ //NIKI- to resolve lateral arm black issue in mode
+
+ if ($rootScope.viewOrientationId == 5 && (value.bodyRegionId == 6 || value.bodyRegionId == 4)) {
+
+ var imgData = context.getImageData(0, 0, width, ht);
+ var data = imgData.data;
+ var c = 0;
+ for (var i = 0; i < data.length; i += 4) {
+ if (data[i] == data[i + 1] && data[i + 1] == data[i + 2] && data[i + 2] === 0) {
+ data[i + 3] = 0;
+ }
+
+ }
+ context.putImageData(imgData, 0, 0);
+ }
+
+ imageCanvas.style.visibility = 'visible'
+ var grayImageData = context.getImageData(0, 0, width, ht);
+ var grayImageImageDataVar = grayImageData.data;
+
+ if ($scope.isExtract == true) {
+ if (value.haveMirror == 'true') {
+ $rootScope.whiteImageMRDataList[parseInt(value.bodyRegionId)] = grayImageData;
+ }
+ else {
+
+ $rootScope.whiteImageDataList[parseInt(value.bodyRegionId - 1)] = grayImageData;
+ }
+ }
+ else {
+
+ if (value.haveMirror == 'true') {
+ $rootScope.grayImageMRDataList[parseInt(value.bodyRegionId)] = grayImageData;
+ }
+ else {
+
+ $rootScope.grayImageDataList[parseInt(value.bodyRegionId - 1)] = grayImageData;
+ }
+ }
+ }
+
+ // $timeout(function () { imageCanvas.style.visibility = 'visible' }, 50);
+ }
+ })
+
+ if ($rootScope.isExtract == true) {
+ if (($rootScope.previousHighlightList != null || $rootScope.previousHighlightList != undefined) && $rootScope.previousHighlightList.length > 0) {
+ console.log('2. $rootScope.isExtract=true and $rootScope.previousHighlightList != null, $rootScope.previousHighlightList.length= ' + $rootScope.previousHighlightList.length)
+
+
+ $timeout(function () { $scope.HighlightBodyOnExtract() }, 50);
+
+ // to do
+
+ }
+ else if ($rootScope.isListManagerSelected == true) {
+ console.log('2. $rootScope.isExtract=true and $rootScope.isListManagerSelected == true')
+ $timeout(function () { $scope.HighlightBodyOnExtract() }, 50);
+
+ }
+ }
+
+ }
+ }
+ }
+ }
+
+
+ $scope.applyGrayMatrix = function (img, context_gray) {
+ var RED = 0.3086; // luminance contrast value for red
+ var GREEN = 0.694; // luminance contrast value for green
+ var BLUE = 0.0820; // luminance contrast value for blue
+
+ var RGB = [RED, GREEN, BLUE, 0, 0];
+ var RGB2 = [RED, GREEN, BLUE, 0, 0];
+ var RGB3 = [RED, GREEN, BLUE, 0, 0];
+ var ALPHA = [0, 0, 0, 1, 0];
+
+ var rgbPx = RGB.concat(RGB2);
+ var rgbPx2 = rgbPx.concat(RGB3);
+ var matrix = rgbPx2.concat(ALPHA);
+
+
+ var grayScale = new ColorMatrixFilter(matrix);
+
+ return grayScale;
+ }
+
+ $scope.applyWhiteMatrix = function (img, context_gray) {
+ var RED = 255; // white color value for red
+ var GREEN = 255; // white color value for green
+ var BLUE = 255; // white color value for blue
+
+ var RGB = [RED, GREEN, BLUE, 0, 0];
+ var RGB2 = [RED, GREEN, BLUE, 0, 0];
+ var RGB3 = [RED, GREEN, BLUE, 0, 0];
+ var ALPHA = [0, 0, 0, 1, 0];
+
+ var rgbPx = RGB.concat(RGB2);
+ var rgbPx2 = rgbPx.concat(RGB3);
+ var matrix = rgbPx2.concat(ALPHA);
+
+
+ var grayScale = new ColorMatrixFilter(matrix);
+
+ return grayScale;
+ }
+
+ $scope.getActualTermNumber = function (iColor) {
+ $scope.actualTermNo = new jinqJs()
+ .from($rootScope.TermNumberData.TermData.Term)
+ .where('_TermNumber == ' + iColor)
+ .select('_ActualTermNumber');
+ if ($scope.actualTermNo != null || actualTermNo != undefined) {
+
+ return $scope.actualTermNo[0]._ActualTermNumber;
+ }
+ else {
+ return null;
+ }
+ }
+
+ $scope.getTermNumberList = function (actualTermNo) {
+ $scope.termList = new jinqJs()
+ .from($rootScope.TermNumberData.TermData.Term)
+ .where('_ActualTermNumber == ' + actualTermNo)
+ .select();
+ if ($scope.termList != null || $scope.termList != undefined) {
+ return $scope.termList;
+ }
+ else {
+ return null;
+ }
+
+ }
+
+
+ $scope.OnGenderChange = function (event) {
+
+ var canvasDiv = document.getElementById('canvasDiv');
+ $scope.imageVerticalScrollPosition = canvasDiv.scrollTop;
+ $scope.imageHorizontlScrollPosition = canvasDiv.scrollLeft;
+
+ $("#btnExtract").removeClass("disabled");
+ $("#btnTranparency").removeClass("disabled");
+ $rootScope.isTransparencyBoxActivated = false;
+ $rootScope.isNormalMode = false;
+
+ //close transparecny box
+ $scope.CloseTransparencyBox();
+
+ //if listanager is visisble then close it
+
+ // $rootScope.isListManagerSelected = false;
+ $rootScope.CloseListManager();
+
+ // $rootScope.isHighlightBodyByBodySystem = false;
+
+
+
+ $rootScope.isGenderChnage = true;
+
+
+ if ($rootScope.isExtract == true) {
+ $rootScope.isExtract = false;
+ $rootScope.isHighLight = true;
+ $("#btnExtract").removeClass("btn-primary");
+ $("#btnExtract").addClass("btn-black");
+ $("#btnHighLight").removeClass("btn-black");
+ $("#btnHighLight").addClass("btn-primary");
+
+
+ }
+
+
+ var viewname = localStorage.getItem("currentViewTitle")
+ var currentBodyViewId = $scope.correspondingBodyViewIds[$rootScope.voId];
+
+
+ if ((event.currentTarget.title == 'Male') && (localStorage.getItem("genderId") == 'Female')) {
+
+ //1.
+ localStorage.setItem("genderId", 'Male');
+
+ //2 first update the currentbodyviewid in local storage
+ localStorage.setItem("currentBodyViewId", currentBodyViewId);
+
+ $rootScope.isLoading = true;
+ $('#spinner').css('visibility', 'visible');
+ //3.
+
+ $scope.layerNumber = 0;
+ $scope.loadSelectedBodyView(currentBodyViewId);
+
+
+ //4.
+ $scope.loadSelectedBodyViewNavigator(currentBodyViewId);
+
+ //5. change the search terms as per the selected bodyview
+ $scope.loadSearchDataForBodyView();
+
+ //6.
+ $('#daImagePanel')[0].childNodes[0].childNodes[0].innerHTML = localStorage.getItem("currentViewTitle").replace('Female', 'Male');
+
+ localStorage.setItem("currentViewTitle", localStorage.getItem("currentViewTitle").replace('Female', 'Male'));
+
+
+ $rootScope.isLoading = true;
+
+ }
+
+ else if ((event.currentTarget.title == 'Female') && (localStorage.getItem("genderId") == 'Male')) {
+
+ //1.
+ localStorage.setItem("genderId", 'Female');
+
+ //2. first update the currentbodyviewid in local storage
+ localStorage.setItem("currentBodyViewId", currentBodyViewId);
+
+ $rootScope.isLoading = true;
+ $('#spinner').css('visibility', 'visible');
+ //3.
+
+ $scope.layerNumber = 0;
+ $scope.loadSelectedBodyView(currentBodyViewId);
+
+
+ //4.
+ $scope.loadSelectedBodyViewNavigator(currentBodyViewId);
+
+ //5. change the search terms as per the selected bodyview
+ $scope.loadSearchDataForBodyView();
+
+ //6.
+ $('#daImagePanel')[0].childNodes[0].childNodes[0].innerHTML = localStorage.getItem("currentViewTitle").replace('Male', 'Female');
+
+ localStorage.setItem("currentViewTitle", localStorage.getItem("currentViewTitle").replace('Male', 'Female'));
+
+
+ $rootScope.isLoading = true;
+
+ }
+
+ $rootScope.openViews.push(
+ {
+ "module": $rootScope.currentActiveModuleTitle, "bodyView": localStorage.getItem("currentViewTitle"), "state": 'max', "BodyViewId": currentBodyViewId,
+ "slug": $rootScope.currentSlug
+ }
+ );
+
+ var target = angular.element(event.currentTarget);
+ var title_male_female = target.attr('title');
+
+ if (title_male_female == "Male") {
+
+ $scope.male = "active";
+ $scope.female = "";
+ }
+ else {
+ $scope.male = "";
+ $scope.female = "active";
+ }
+
+ }
+
+
+ //clsoe worker process
+ $scope.$on('jsPanelCloseEvent', function (event, data) {
+
+
+
+ console.log('terminate worker process')
+ //terminate previous running workers to create space for new workers
+ $scope.terminateCurrentlyRunningWPs();
+
+ $rootScope.isLoading = false;
+ $('#spinner').css('visibility', 'hidden');
+
+ //To fix issue of gray maintained in after closing jspanel after listmanager selection
+ $rootScope.isListManagerSelected = false;
+ $rootScope.isHighLight = false;
+ //$rootScope.isNormalMode = false;
+ $rootScope.isHighlightBodyByBodySystem = false;
+ $rootScope.CloseListManager();
+ })
+
+ $scope.loadSelectedBodyView = function (currentBodyViewId) {
+
+ //remove transaprency scale
+ if ($('#transparencyScale') != null) {
+
+ $('#transparencyScale').css('visibility', 'hidden');
+ }
+
+
+ $rootScope.voId = currentBodyViewId;
+
+ var layerJsonPath = '~/../content/data/json/da/body-views/' + currentBodyViewId + '/da_dat_layer_' + currentBodyViewId + '.json';
+
+ DataService.getJson(layerJsonPath)
+ .then(
+ function (result) {
+ //debugger;
+
+ $rootScope.BodyLayerData = result;
+
+ var dataLength = $rootScope.BodyLayerData.Layers.DataLayer.length;
+
+ //set max for LayerNumber input
+ $rootScope.totalLayers = dataLength - 1;
+
+ $('#txtLayerNumber').attr('max', $rootScope.totalLayers);
+ $('#layerChangeSlider').slider("option", "max", $rootScope.totalLayers);
+
+ //set max for LayerNumber input
+ $rootScope.totalLayers = dataLength - 1;
+
+ $scope.isBodylayerdataLoaded = true;
+
+ //load json for annotations
+ // $http({ method: 'GET', url: '~/../content/data/json/da_dat_tm_sg_1.json' }).success(function (data) {
+ var termJsonPath = '~/../content/data/json/da/body-views/' + currentBodyViewId + '/da_dat_tm_sg_' + currentBodyViewId + '.json';
+ DataService.getAnotherJson(termJsonPath)
+ .then(
+ function (result) {
+ $rootScope.TermNumberData = result;
+
+ var canDiv = document.getElementById('canvasDiv');
+ var canDivChildCount = canDiv.childElementCount;
+ if (canDivChildCount > 0) {
+ canDiv.innerHTML = '';
+ }
+ //if user seelcted any term and serached before gender cnage then itshould be highlighted in chnaged gender
+
+ if ((($rootScope.isListManagerSelected == true) || ($rootScope.isHighLight == true && $rootScope.previousHighlightList != null && $rootScope.previousHighlightList.length > 0)) && (($rootScope.isGenderChnage == true) || $rootScope.isViewChange == true)) {
+
+ $scope.setLayerNumberAndHighlightByTermList();
+
+ }
+
+ else {
+
+ $scope.CalculateImageCordinates($rootScope.viewOrientationId);
+
+ }
+
+ $scope.currentTitleFromJson = localStorage.getItem("currentViewTitle");
+ },
+ function (error) {
+ // handle errors here
+ console.log(' $rootScope.TermNumberData= ' + error.statusText);
+ }
+ )
+ },
+
+ function (error) {
+ // handle errors here
+ console.log(' $rootScope.BodyLayerData= ' + error.statusText);
+ }
+ );
+ }
+
+ $scope.OnViewChange = function (event) {
+
+ var canvasDiv = document.getElementById('canvasDiv');
+ $scope.imageVerticalScrollPosition = canvasDiv.scrollTop;
+ $scope.imageHorizontlScrollPosition = canvasDiv.scrollLeft;
+
+ $("#btnExtract").removeClass("disabled");
+ $("#btnTranparency").removeClass("disabled");
+ $rootScope.isTransparencyBoxActivated = false;
+ $rootScope.isNormalMode = false;
+
+ //close transparency box
+ $scope.CloseTransparencyBox();
+
+ //if listanager is visisble then close it
+
+ //$rootScope.isListManagerSelected = false;
+ $rootScope.CloseListManager();
+
+ // $rootScope.isHighlightBodyByBodySystem = false;
+
+
+
+ if ($rootScope.openViews.length > 0) {
+ $rootScope.openViews.splice($rootScope.openViews.length - 1);
+ }
+
+ $rootScope.isViewChange = true;
+
+ if ($rootScope.isExtract == true) {
+ $rootScope.isExtract = false;
+ $rootScope.isHighLight = true;
+ $("#btnExtract").removeClass("btn-primary");
+ $("#btnExtract").addClass("btn-black");
+ $("#btnHighLight").removeClass("btn-black");
+ $("#btnHighLight").addClass("btn-primary");
+ }
+
+ $scope.layerNumber = 0;
+ // debugger;
+ //var selectedViewId = $scope.bodyViews[event.currentTarget.attributes[1].value];
+ var selectedViewId = $scope.bodyViews[event.currentTarget.title];
+
+ $rootScope.viewOrientationId = selectedViewId;
+ if (localStorage.getItem("genderId") == 'Male') {
+ if ($rootScope.voId != selectedViewId) {
+ if (selectedViewId == 5) {
+ $rootScope.voId = 9;
+ }
+ else if (selectedViewId == 6) {
+ $rootScope.voId = 10;
+ }
+ else
+ $rootScope.voId = selectedViewId;
+ $rootScope.isLoading = true;
+
+ $rootScope.isLoading = true;
+ $('#spinner').css('visibility', 'visible');
+
+ //1. first update the currentbodyviewid in local storage
+ localStorage.setItem("currentBodyViewId", $rootScope.voId);
+
+ //2. Load selected body view
+ $scope.loadSelectedBodyView($rootScope.voId);
+
+ //3. load corresponding navigator man
+ $scope.loadSelectedBodyViewNavigator($rootScope.voId);
+
+ //4. change the search terms as per the selected bodyview
+ $scope.loadSearchDataForBodyView();
+
+ //5.Change the popup title next to search
+ $scope.currentTitleFromJson = localStorage.getItem("currentViewTitle");
+
+ };
+
+
+ //set selected view name as the title of jspanel
+ // $('#daImagePanel')[0].childNodes[0].childNodes[0].innerHTML = localStorage.getItem("genderId") +" "+ event.currentTarget.attributes[1].value;
+
+ }
+ else {
+ if (selectedViewId == 5) {
+ selectedViewId = 11;
+ }
+ else if (selectedViewId == 6) {
+ selectedViewId = 12;
+ }
+ else
+ selectedViewId = $scope.correspondingBodyViewIds[selectedViewId];;
+ if ($rootScope.voId != selectedViewId) {
+ $rootScope.voId = selectedViewId;
+ $rootScope.isLoading = true;
+
+ $rootScope.isLoading = true;
+ $('#spinner').css('visibility', 'visible');
+ //1.
+ $scope.loadSelectedBodyView($rootScope.voId);
+
+ //2.
+ $scope.loadSelectedBodyViewNavigator($rootScope.voId);
+ };
+
+
+ // $('#daImagePanel')[0].childNodes[0].childNodes[0].innerHTML = localStorage.getItem("genderId") + " " + $scope.bodyViews[event.currentTarget.attributes[1].value;
+
+ }
+ $('#daImagePanel')[0].childNodes[0].childNodes[0].innerHTML = localStorage.getItem("genderId") + " " + event.currentTarget.title;
+ localStorage.setItem("currentViewTitle", localStorage.getItem("genderId") + " " + event.currentTarget.title);
+
+
+ $rootScope.openViews.push(
+ {
+ "module": $rootScope.currentActiveModuleTitle, "bodyView": localStorage.getItem("currentViewTitle"), "state": 'max', "BodyViewId": $rootScope.voId,
+ "slug": $rootScope.currentSlug
+ }
+ );
+
+ var viewtarget = angular.element(event.currentTarget);
+ var title_drop_view = viewtarget.attr('title');
+
+ if (title_drop_view == "Anterior") {
+
+ $scope.AnteriorView = "active";
+ $scope.LateralView = "";
+ $scope.MedialView = "";
+ $scope.PosteriorView = "";
+ $scope.LateralArmView = "";
+ $scope.MedialArmView = "";
+
+ }
+ else if (title_drop_view == "Lateral") {
+
+ $scope.AnteriorView = "";
+ $scope.LateralView = "active";
+ $scope.MedialView = "";
+ $scope.PosteriorView = "";
+ $scope.LateralArmView = "";
+ $scope.MedialArmView = "";
+ }
+ else if (title_drop_view == "Medial") {
+
+ $scope.AnteriorView = "";
+ $scope.LateralView = "";
+ $scope.MedialView = "active";
+ $scope.PosteriorView = "";
+ $scope.LateralArmView = "";
+ $scope.MedialArmView = "";
+ }
+ else if (title_drop_view == "Posterior") {
+
+ $scope.AnteriorView = "";
+ $scope.LateralView = "";
+ $scope.MedialView = "";
+ $scope.PosteriorView = "active";
+ $scope.LateralArmView = "";
+ $scope.MedialArmView = "";
+ }
+ else if (title_drop_view == "Lateral Arm") {
+
+ $scope.AnteriorView = "";
+ $scope.LateralView = "";
+ $scope.MedialView = "";
+ $scope.PosteriorView = "";
+ $scope.LateralArmView = "active";
+ $scope.MedialArmView = "";
+ }
+ else if (title_drop_view == "Medial Arm") {
+
+ $scope.AnteriorView = "";
+ $scope.LateralView = "";
+ $scope.MedialView = "";
+ $scope.PosteriorView = "";
+ $scope.LateralArmView = "";
+ $scope.MedialArmView = "active";
+ }
+ }
+
+ //Reload DA controller event listener after setting change
+ $scope.$on('reloadDAControllerEvent', function (event, data) {
+ console.log('reloadDAControllerEvent');
+
+ $scope.loadDissectibleAnatomyData();
+
+ })
+
+ //Reload DA controller Body View after setting Change
+ $scope.$on('reloadDABodyViewEvent', function (event, data) {
+ //console.log('reloadDABodyViewEvent');
+ $scope.layerNumber = parseInt($('#txtlayerNumber').val());
+ //alert('mouseUp');
+
+
+ if ($scope.layerNumber == 0) {
+ $scope.loadSelectedBodyView(data.reloadDABodyViewId);
+ }
+ // $scope.loadSelectedBodyView(data.reloadDABodyViewId);
+
+ $scope.loadSelectedBodyViewNavigator(data.reloadDABodyViewId);
+
+ // $scope.currentTitleFromJson = localStorage.getItem("currentViewTitle");
+
+ //$rootScope.isSettingEventAlredayDispachted = false;
+ //}
+
+ })
+
+
+
+ $scope.loadSelectedBodyViewNavigator = function (currentBodyViewId) {
+
+ //$rootScope.voId = currentBodyViewId;
+
+ //$scope.skinTone = $rootScope.globalSetting.ethnicity;
+
+ if ($scope.NavigatorData != null || $scope.NavigatorData != undefined) {
+ var navdtlOrient = new jinqJs()
+ .from($scope.NavigatorData.Navigtor.ViewOrientation)
+ .where("_ViewOrientationId == " + currentBodyViewId)
+ .select();
+
+
+ if (navdtlOrient != null || navdtlOrient != undefined) {
+
+ var navOrientationdata = new jinqJs()
+ .from(navdtlOrient[0].ImageInfo)
+ .where("_Ethnicity == " + $rootScope.globalSetting.ethnicity)
+ .select();
+
+ if (navOrientationdata != null || navOrientationdata != undefined) {
+
+ $scope.navigatorImage = navOrientationdata;
+
+
+ var navImageModesty;
+
+ angular.forEach($scope.navigatorImage, function (value, key) {
+ if (value._HaveModesty === $rootScope.globalSetting.modesty) {
+ navImageModesty = value._ImageName;
+ }
+ })
+ if (typeof (navImageModesty) === "undefined" || navImageModesty === null) {
+
+ navImageModesty = $scope.navigatorImage[0]._ImageName;
+
+ }
+
+ $scope.navimgsrc = "~/../content/images/DA/ethnicity/body-views/" + $scope.voId + '/' + $rootScope.globalSetting.ethnicity + '/navigator_images/' + navImageModesty;
+ }
+ }
+
+ }
+
+ }
+
+ //Annotation tool event lsitener
+
+ // $scope.drawing = drawing;
+ // $scope.lastX = lastX;
+ // $scope.lastY = lastY;
+ // $scope.currentX;
+ // $scope.currentY;
+ //----Annotation Toolbar: Jcanvas---
+
+ $rootScope.$on('annotationToolEvent', function (event, data) {
+ $('#editstylebackgroundcolor .minicolors >.minicolors-swatch > .minicolors-swatch-color').css("background-color", "rgb(255,255,255)")
+ $('#editstylebackgroundcolor .minicolors >.minicolors-panel > .minicolors-grid >.minicolors-picker').css({ "top": "145px", "left": "4px" });
+ $('#outlineColor .minicolors >.minicolors-swatch > .minicolors-swatch-color').css("background-color", "rgb(0,0,0)")
+ $('#outlineColor .minicolors >.minicolors-panel > .minicolors-grid >.minicolors-picker').css({ "top": "145px", "left": "4px" });
+
+ $("#canvas").css("display", "block");
+ $("#canvasPaint").css("display", "block");
+ $rootScope.BindCanvasDrawingListners();
+ $rootScope.FreeStylePaint();
+ });
+ $scope.mousePs;
+ function OnPaintCanvasClick(event) {
+
+
+
+ }
+
+
+
+
+
+ $rootScope.FreeStylePaint = function (e) {
+
+ var annotationCanvas = document.getElementById("canvas");
+ // document.getElementById("canvasPaint").addEventListener("mouseup", OnPaintBrushCanvasMouseUp);
+
+ annotationCanvas.addEventListener('mousedown', $scope.OnPaintCanvasMouseDown, false);
+
+ annotationCanvas.addEventListener('mouseup', $scope.OnPaintBrushCanvasMouseUp, false);
+ }
+ $scope.OnPaintCanvasMouseDown = function (event) {
+ $rootScope.isMousedownOnPaintCanvas = true;
+ $scope.isStartPointDeleted = false;
+ var annotationCanvas = document.getElementById("canvas");
+ $scope.startPageX = parseInt(event.clientX - ($("#canvas").offset().left));
+ $scope.startPageY = parseInt(event.clientY - ($("#canvas").offset().top));
+
+ annotationCanvas.addEventListener('mousemove', $scope.OnPaintCanvasMouseMove, false);
+
+
+
+ }
+ $scope.OnPaintCanvasMouseMove = function (event) {
+
+
+ $rootScope.xPage = parseInt(event.clientX - ($("#canvas").offset().left));
+ $rootScope.yPage = parseInt(event.clientY - ($("#canvas").offset().top));
+
+ var btneraseBrushSizeValue = $("#btnBrushSize").val();
+ $rootScope.eraseshapeSize = parseInt(btneraseBrushSizeValue);
+
+ if ($rootScope.isEraseToolSelected == true && $rootScope.isMousedownOnPaintCanvas == true) {
+
+ var sktch = $('#canvasPaint').sketch();
+ $('#canvasPaint').sketch().actions = [];
+ var paintCanvas = document.getElementById("canvasPaint");
+ var paintCanvasContext = paintCanvas.getContext('2d');
+ if ($scope.isStartPointDeleted == false) {
+
+ paintCanvasContext.clearRect($scope.startPageX, $scope.startPageY, $rootScope.eraseshapeSize, $rootScope.eraseshapeSize);
+
+ $scope.isStartPointDeleted = true;
+ }
+
+ paintCanvasContext.clearRect($rootScope.xPage, $rootScope.yPage, $rootScope.eraseshapeSize, $rootScope.eraseshapeSize);
+
+
+ }
+ }
+ $scope.OnPaintBrushCanvasMouseDown = function (event) {
+ switch ($rootScope.shapeType) {
+
+ case "FreeStylePaint":
+
+
+
+ // $('#canvasPaint').sketch();
+ // $('#canvasPaint').sketch({ defaultSize: 1 });
+ // if ($("#amount-2").val() == '') {
+ // //$('#canvasPaint').sketch({ defaultSize: $scope.shapesize });
+ // $('#canvasPaint').sketch();
+ // }
+ // else {
+
+ // // var a = $("#amount-2").val();
+ //// $scope.shapesize = parseInt(a);
+ // // $('#canvasPaint').sketch({ defaultSize: $rootScope.shapeSize });
+ // // $('#canvasPaint').sketch({ defaultSize: $scope.shapesize });
+
+ // }
+
+
+ break;
+
+ }
+ }
+ $scope.OnPaintBrushCanvasMouseUp = function (event) {
+ $rootScope.isMousedownOnPaintCanvas = false;
+ $rootScope.isEraseToolSelected = false;
+
+ // var canvasElement1 = document.getElementById("canvasPaint");
+ // var ctx1 = canvasElement1.getContext("2d");
+
+ //switch($rootScope.shapeType)
+ //{
+
+ // case "FreeStylePaint":
+
+
+ // if ($("#amount-2").val() == '')
+ // {
+ // $('#canvasPaint').sketch({ defaultSize: $scope.shapesize });
+ // }
+ // else
+ // {
+
+ // var a = $("#amount-2").val();
+ // $scope.shapesize = parseInt(a);
+ // alert(JSON.stringify({ defaultSize: $scope.shapesize }));
+ // $('#canvasPaint').sketch({ defaultSize: $scope.shapesize });
+
+ // }
+
+
+ // break;
+
+ //}
+
+ }
+
+
+
+
+
+ //body highlight options functinality
+ $scope.LoadBodySystemData = function () {
+
+ var currentBodyViewId = $rootScope.voId;
+ var systemListHtml = '';
+ $('#bodySystem').append(systemListHtml);
+
+ var bodySystemDataPath = '~/../content/data/json/da/body-views/' + currentBodyViewId + '/da_dat_body_system_term_' + currentBodyViewId + '.json';
+ DataService.getJson(bodySystemDataPath)
+ .then(
+ function (result) {
+
+ $rootScope.BodySystemData = result;
+
+ },
+ function (error) {
+ console.log(error.statusText)
+ }
+ )
+
+ }
+
+ $scope.HighlightBodyByBodySystem = function (event) {
+
+ //if listanager is visisble then close it
+
+ $rootScope.isListManagerSelected = false;
+ $rootScope.CloseListManager();
+
+
+ //NIKITA
+ $rootScope.isHighlightBodyByBodySystem = true;
+ $scope.systemMatchedTermList = new jinqJs()
+ .from($rootScope.BodySystemData.BodySystem.BodySystemTerm)
+ .where('_SystemNumber == ' + event.currentTarget.id)
+ .select();
+
+ if ($rootScope.isHighLight == false) {
+ //color the body gray
+ $rootScope.isHighLight = true
+ console.log('highLightBody from HighlightBodyByBodySystem')
+ $scope.highLightBody();
+ }
+ else {
+ //This else is when user seraced anything then change the view and clicked on highlight options
+ //in this case body is already highlihted(gray) so no need to
+ if ($scope.grayedBR != null || $scope.grayedBR != undefined) {
+ if ((($rootScope.viewOrientationId == '1') || ($rootScope.viewOrientationId == '4')) && ($scope.grayedBR.length == 9)) {
+ $scope.isAlreadyHighlighted = true;
+ }
+ else if ((($rootScope.viewOrientationId == '2') || ($rootScope.viewOrientationId == '3')) && ($scope.grayedBR.length == 5)) {
+ $scope.isAlreadyHighlighted = true;
+ }
+ else if ((($rootScope.viewOrientationId == '5')) && ($scope.grayedBR.length == 4)) {
+ $scope.isAlreadyHighlighted = true;
+ }
+ else if ((($rootScope.viewOrientationId == '6')) && ($scope.grayedBR.length == 1)) {
+ $scope.isAlreadyHighlighted = true;
+ }
+ if (($scope.isAlreadyHighlighted == true && $rootScope.isHighlightBodyByBodySystem == true) && ($scope.systemMatchedTermList != null || $scope.systemMatchedTermList != undefined && $scope.systemMatchedTermList.length > 0)) {
+
+ $scope.isLoading = true;
+
+ $('#spinner').css('visibility', 'visible');
+ $timeout(function () { $scope.HighlightBodyByTermList($scope.systemMatchedTermList) }, 100);
+ }
+ }
+ }
+
+
+ //$rootScope.isLoading = true;
+ $('#spinner').css('visibility', 'visible');
+
+ //NIKITA
+ // $rootScope.isHighlightBodyByBodySystem = true;
+
+ //if (systemMatchedTermList != null || systemMatchedTermList != undefined) {
+
+ // $timeout(function () { $scope.HighlightBodyByTermList(systemMatchedTermList) }, 100);
+ //}
+
+
+ var viewtarget_highlightbody = angular.element(event.currentTarget);
+ var title_highlightbody = viewtarget_highlightbody.attr('title');
+
+ if (title_highlightbody == "Cardiovascular") {
+ $scope.CurrentStructure = "";
+ $scope.Cardiovascular = "active";
+ $scope.Digestive = "";
+ $scope.Endocrine = "";
+ $scope.Immune = "";
+ $scope.Integumentary = "";
+ $scope.Lymphatic = "";
+ $scope.Muscular = "";
+ $scope.Nervous = "";
+ $scope.Reproductive = "";
+ $scope.Respiratory = "";
+ $scope.Skeletal = "";
+ $scope.Urinary = "";
+ }
+
+ if (title_highlightbody == "Digestive") {
+ $scope.CurrentStructure = "";
+ $scope.Cardiovascular = "";
+ $scope.Digestive = "active";
+ $scope.Endocrine = "";
+ $scope.Immune = "";
+ $scope.Integumentary = "";
+ $scope.Lymphatic = "";
+ $scope.Muscular = "";
+ $scope.Nervous = "";
+ $scope.Reproductive = "";
+ $scope.Respiratory = "";
+ $scope.Skeletal = "";
+ $scope.Urinary = "";
+ }
+
+ if (title_highlightbody == "Endocrine") {
+ $scope.CurrentStructure = "";
+ $scope.Cardiovascular = "";
+ $scope.Digestive = "";
+ $scope.Endocrine = "active";
+ $scope.Immune = "";
+ $scope.Integumentary = "";
+ $scope.Lymphatic = "";
+ $scope.Muscular = "";
+ $scope.Nervous = "";
+ $scope.Reproductive = "";
+ $scope.Respiratory = "";
+ $scope.Skeletal = "";
+ $scope.Urinary = "";
+ }
+ if (title_highlightbody == "Immune") {
+
+ $scope.CurrentStructure = "";
+ $scope.Cardiovascular = "";
+ $scope.Digestive = "";
+ $scope.Endocrine = "";
+ $scope.Immune = "active";
+ $scope.Integumentary = "";
+ $scope.Lymphatic = "";
+ $scope.Muscular = "";
+ $scope.Nervous = "";
+ $scope.Reproductive = "";
+ $scope.Respiratory = "";
+ $scope.Skeletal = "";
+ $scope.Urinary = "";
+ }
+ if (title_highlightbody == "Integumentary") {
+ $scope.CurrentStructure = "";
+ $scope.Cardiovascular = "";
+ $scope.Digestive = "";
+ $scope.Endocrine = "";
+ $scope.Immune = "";
+ $scope.Integumentary = "active";
+ $scope.Lymphatic = "";
+ $scope.Muscular = "";
+ $scope.Nervous = "";
+ $scope.Reproductive = "";
+ $scope.Respiratory = "";
+ $scope.Skeletal = "";
+ $scope.Urinary = "";
+ }
+ if (title_highlightbody == "Lymphatic") {
+ $scope.CurrentStructure = "";
+ $scope.Cardiovascular = "";
+ $scope.Digestive = "";
+ $scope.Endocrine = "";
+ $scope.Immune = "";
+ $scope.Integumentary = "";
+ $scope.Lymphatic = "active";
+ $scope.Muscular = "";
+ $scope.Nervous = "";
+ $scope.Reproductive = "";
+ $scope.Respiratory = "";
+ $scope.Skeletal = "";
+ $scope.Urinary = "";
+ }
+ if (title_highlightbody == "Muscular") {
+ $scope.CurrentStructure = "";
+ $scope.Cardiovascular = "";
+ $scope.Digestive = "";
+ $scope.Endocrine = "";
+ $scope.Immune = "";
+ $scope.Integumentary = "";
+ $scope.Lymphatic = "";
+ $scope.Muscular = "active";
+ $scope.Nervous = "";
+ $scope.Reproductive = "";
+ $scope.Respiratory = "";
+ $scope.Skeletal = "";
+ $scope.Urinary = "";
+ }
+ if (title_highlightbody == "Nervous") {
+ $scope.CurrentStructure = "";
+ $scope.Cardiovascular = "";
+ $scope.Digestive = "";
+ $scope.Endocrine = "";
+ $scope.Immune = "";
+ $scope.Integumentary = "";
+ $scope.Lymphatic = "";
+ $scope.Muscular = "";
+ $scope.Nervous = "active";
+ $scope.Reproductive = "";
+ $scope.Respiratory = "";
+ $scope.Skeletal = "";
+ $scope.Urinary = "";
+ }
+ if (title_highlightbody == "Reproductive") {
+ $scope.CurrentStructure = "";
+ $scope.Cardiovascular = "";
+ $scope.Digestive = "";
+ $scope.Endocrine = "";
+ $scope.Immune = "";
+ $scope.Integumentary = "";
+ $scope.Lymphatic = "";
+ $scope.Muscular = "";
+ $scope.Nervous = "";
+ $scope.Reproductive = "active";
+ $scope.Respiratory = "";
+ $scope.Skeletal = "";
+ $scope.Urinary = "";
+ }
+ if (title_highlightbody == "Respiratory") {
+ $scope.CurrentStructure = "";
+ $scope.Cardiovascular = "";
+ $scope.Digestive = "";
+ $scope.Endocrine = "";
+ $scope.Immune = "";
+ $scope.Integumentary = "";
+ $scope.Lymphatic = "";
+ $scope.Muscular = "";
+ $scope.Nervous = "";
+ $scope.Reproductive = "";
+ $scope.Respiratory = "active";
+ $scope.Skeletal = "";
+ $scope.Urinary = "";
+ }
+ if (title_highlightbody == "Skeletal") {
+ $scope.CurrentStructure = "";
+ $scope.Cardiovascular = "";
+ $scope.Digestive = "";
+ $scope.Endocrine = "";
+ $scope.Immune = "";
+ $scope.Integumentary = "";
+ $scope.Lymphatic = "";
+ $scope.Muscular = "";
+ $scope.Nervous = "";
+ $scope.Reproductive = "";
+ $scope.Respiratory = "";
+ $scope.Skeletal = "active";
+ $scope.Urinary = "";
+ }
+ if (title_highlightbody == "Urinary") {
+ $scope.CurrentStructure = "";
+ $scope.Cardiovascular = "";
+ $scope.Digestive = "";
+ $scope.Endocrine = "";
+ $scope.Immune = "";
+ $scope.Integumentary = "";
+ $scope.Lymphatic = "";
+ $scope.Muscular = "";
+ $scope.Nervous = "";
+ $scope.Reproductive = "";
+ $scope.Respiratory = "";
+ $scope.Skeletal = "";
+ $scope.Urinary = "active";
+ }
+
+ //Highlight button should be active
+ $("#btnHighLight").addClass("btn-primary");
+ $("#btnHighLight").removeClass("btn-black");
+
+ if (!$("#btnNormalMode").hasClass("btn-black")) {
+ $("#btnNormalMode").addClass("btn-black");
+ }
+
+ if (!$("#btnExtract").hasClass("btn-black")) {
+ $("#btnExtract").addClass("btn-black");
+ }
+
+ if ($("#btnExtract").hasClass("btn-primary")) {
+ $("#btnExtract").removeClass("btn-primary");
+ }
+
+ if ($("#btnNormalMode").hasClass("btn-primary")) {
+ $("#btnNormalMode").removeClass("btn-primary");
+ }
+
+ }
+
+ $scope.ShowSearch = function () {
+
+ console.log('ShowSearch is called');
+ //this check is for log only because we are writing length so need to check if its not null or undefined
+ if ($scope.VocabTermTxt != null || $scope.VocabTermTxt != undefined)
+ console.log('$scope.VocabTermTxt.length= ' + $scope.VocabTermTxt.length)
+
+ $timeout(function () {
+ if (($scope.VocabTermTxt != null || $scope.VocabTermTxt != undefined) && ($scope.VocabTermTxt.length > 0)) {
+ $scope.IsSearchVisible = true;
+ document.getElementById("termlistfilter").style.display = "block";
+ }
+ else {
+ $scope.loadSearchDataForBodyView();
+ if ($scope.VocabTermTxt.length > 0) {
+ $scope.ShowSearch();
+ }
+ }
+ }, 500);
+
+ //$scope.IsSearchVisible = true;
+
+ //document.getElementById("termlistfilter").style.display = "block";
+ }
+
+ $scope.HideSearch = function () {
+ if ($("#backdrop").is(":hover") || $("#termlistfilter").is(":hover") || $("#typedtermname").is(":focus")) {
+ $scope.IsSearchVisible = true;
+ document.getElementById("termlistfilter").style.display = "block";
+ }
+ else {
+ $scope.IsSearchVisible = false;
+ document.getElementById("termlistfilter").style.display = "none";
+ $scope.searchFilter = "";
+ }
+
+ }
+
+ $scope.jumpToTerm = function (event) {
+ // alert(event.currentTarget.value);
+ $rootScope.searchSelectedText = $('#' + event.currentTarget.id).text();
+ $('#termList option[selected="selected"]').prop("selected", false);
+ $('#termList option[value="' + $rootScope.searchSelectedText + '"]').prop("selected", true);
+ $("#termList").find("option").css({ "background-color": "#ffffff", "color": "#000000" });
+ $('#termList option[value="' + $rootScope.searchSelectedText + '"]').css({ "background-color": "#3399FF", "color": "#ffffff" });
+ $rootScope.isLoading = true;
+
+ $('#spinner').css('visibility', 'visible');
+ //1.
+ $scope.searchFilter = event.currentTarget.innerHTML;
+
+ //2.
+ $scope.HighlightBodyOnListManagerSelection(event.currentTarget.id);
+
+ $scope.IsSearchVisible = false;
+ $rootScope.isNormalMode = false;
+
+ //Highlight only Highlight button
+
+ $("#btnHighLight").addClass("btn-primary");
+ $("#btnHighLight").removeClass("btn-black");
+
+ if (!$("#btnNormalMode").hasClass("btn-black")) {
+ $("#btnNormalMode").addClass("btn-black");
+ }
+
+ if (!$("#btnExtract").hasClass("btn-black")) {
+ $("#btnExtract").addClass("btn-black");
+ }
+
+ if ($("#btnExtract").hasClass("btn-primary")) {
+ $("#btnExtract").removeClass("btn-primary");
+ }
+
+ if ($("#btnNormalMode").hasClass("btn-primary")) {
+ $("#btnNormalMode").removeClass("btn-primary");
+ }
+
+ }
+
+ //Function to set the vertical and horizontal scroll position of CanvasDiv as per the Navigator
+ $scope.ScrollCanvasDiv = function () {
+
+ var x = $("#draggable").position();
+ var can = $('#canvasDiv');
+ var canheight = can[0].scrollHeight;
+ var canwidth = can[0].scrollWidth;
+
+ var scrolly = (x.top / ($('#containment-wrapper').height())) * (canheight);
+
+ var scrollx = (x.left / $('#containment-wrapper').width()) * (canwidth);
+
+ $("#canvasDiv").scrollTop(scrolly);
+ $("#canvasDiv").scrollLeft(scrollx);
+
+ if (($rootScope.isHighlightBodyByBodySystem == true) && ($scope.systemMatchedTermList != null || $scope.systemMatchedTermList != undefined)) {
+ $timeout(function () { $scope.HighlightBodyByTermList(systemMatchedTermList) }, 100);
+ }
+
+ }
+
+ //list manager
+ $scope.$on('listManagerEvent', function (event, data) {
+
+
+ //if ($rootScope.MenuModuleName == "DA") {
+ // if ($rootScope.disableAnnotationtoolOnListManager == true) {
+ // $('#AnnotaionPopupDiv').find('input, textarea, button, select,img,div').attr('disabled', 'disabled');
+ // $('#slider-range-min-2').slider('disable');
+ // }
+ //}
+ if ($rootScope.setListManagerZindex == true) {
+ var canvasPaintZindex = $('#canvasPaint').css("z-index"); //x
+
+ var canvasZindex = $('#canvas').css("z-index"); //y
+ var listManagerZindex = $('#listManager').css("z-index"); //z
+ if (canvasPaintZindex > canvasZindex) {
+ //y = parseInt(canvasPaintZindex) + 1;
+ //if (listManagerZindex <= canvasPaintZindex) {
+ // listManagerZindex = parseInt(canvasPaintZindex) + 1;
+ // $('#listManager').css("z-index", z);
+ //}
+ //else {
+ $('#listManager').css("z-index", canvasPaintZindex);
+ // }
+ } else {
+ //y = parseInt(y) + 1;
+ $('#listManager').css("z-index", canvasZindex);
+ }
+
+ }
+
+
+
+
+
+ if ($rootScope.islistManagerEventAlredayDispachted == true) {
+
+ $('#spinner').css('visibility', 'visible');
+ console.log('listManagerEvent');
+ var systemList = $rootScope.CommonData.DACommonData.BodySystems.Item;
+
+ $('#bodySystems').empty();
+
+
+ var $all = $('
All ').appendTo('#bodySystems');
+ $compile($all)($scope);
+
+ angular.forEach(systemList, function (value, key) {
+
+ var $elem = $('
' + value._Name + ' ').appendTo('#bodySystems');
+ $compile($elem)($scope);
+ })
+
+
+
+ $('#viewName').empty();
+ var currentView = localStorage.getItem("currentViewTitle");
+ var viewNmeHtml = '
' + currentView + ' '
+ $('#viewName').append(viewNmeHtml);
+
+ var len = $rootScope.openModules.length;
+ var openViewLen = $rootScope.openViews.length;
+
+ var currentOpenModuleId = $rootScope.openModules[len - 1].ModuleId;
+
+ //confirm that this is DA module which is last open
+ if (currentOpenModuleId == 1) {
+
+
+ $('#termList').empty();
+ $scope.loadListManger();
+ $rootScope.islistManagerEventAlredayDispachted = false;
+ }
+
+ }
+
+
+
+ });
+
+ $scope.loadListManger = function () {
+
+
+ var vocabTermTxt = [];
+
+ angular.forEach($rootScope.TermNumberData.TermData.Term, function (value1, key1) {
+
+ angular.forEach($rootScope.VocabTermData.VocabTerms.Term, function (value2, key2) {
+
+
+ if (value1._ActualTermNumber === value2._ActualTermNumber) {
+ vocabTermTxt.push(
+
+ {
+
+ "_ActualTermNumber": value2._ActualTermNumber,
+ "_TermText": value2._TermText,
+ "_cdId": value2._cdId
+
+ }
+
+ );
+
+ }
+
+ })
+
+
+
+ })
+
+
+
+ $scope.VocabTermTxt = new jinqJs()
+ .from(vocabTermTxt)
+ .distinct('_TermText', '_ActualTermNumber')
+ .orderBy([{ field: '_TermText', sort: 'asc' }])
+ .select('_ActualTermNumber', '_TermText', '_cdId');
+
+ if ($scope.VocabTermTxt != null || $scope.VocabTermTxt != undefined) {
+
+
+ for (var j = 0; j < $scope.VocabTermTxt.length; j++) {
+ var $el = $('
' + $scope.VocabTermTxt[j]._TermText + ' ').appendTo('#termList')
+ $compile($el)($scope);
+
+ }
+
+ $rootScope.isLoading = false;
+ $('#spinner').css('visibility', 'hidden');
+
+ var termsTotal = '
' + $scope.VocabTermTxt.length + ' Structures ';
+ $("#totalTerms").empty();
+ $('#totalTerms').append(termsTotal);
+
+
+
+ }
+ }
+
+
+ $scope.HighlightBodyOnListManagerSelection = function (actualTermNumber) {
+
+ console.log('inside HighlightBodyOnListManagerSelection actualTermNumber= ' + actualTermNumber)
+ // Terms search in the Search list should be disable in the List Manager and Vice-Versa.
+ if ($rootScope.prevId == actualTermNumber) {
+
+ $rootScope.isLoading = false;
+ $('#spinner').css('visibility', 'hidden');
+ }
+ else {
+
+ $rootScope.isLoading = true;
+
+ $('#spinner').css('visibility', 'visible');
+
+
+ $rootScope.prevId = actualTermNumber;
+ // $("#termList").find("option").attr('selected', false);
+ $("#termList").find("option").css({ "background-color": "#ffffff", "color": "#000000" });
+ $("#termList").find("option[id=" + actualTermNumber + "]").css({ "background-color": "#3399FF", "color": "#ffffff" });
+ $("div#backdrop #termlistfilter li").find("a").css({ "background-color": "#ffffff", "color": "#000000" });
+ $("div#backdrop #termlistfilter li").find("a[id=" + actualTermNumber + "]").css({ "background-color": "#3399FF", "color": "#ffffff" });
+
+ $scope.terminateCurrentlyRunningWPs();
+ //debugger
+ $rootScope.isListManagerSelected = true;
+ //---
+ if ($rootScope.isListManagerSelected == true) {
+ $("#btnHighLight").addClass("btn-primary");
+ $("#btnHighLight").removeClass("btn-black");
+ if (!$("#btnNormalMode").hasClass("btn-black")) {
+ $("#btnNormalMode").addClass("btn-black");
+ }
+
+ if ($("#btnNormalMode").hasClass("btn-primary")) {
+ $("#btnNormalMode").removeClass("btn-primary");
+ }
+ }
+ //---
+
+ $rootScope.isHighlightBodyByBodySystem = false;
+
+ //1.
+ $rootScope.actualTermNumber = actualTermNumber;//attributes[0].value;
+ console.log(' $scope.actualTermNumber insde HighlightBodyOnListManagerSelection= ' + $rootScope.actualTermNumber)
+
+ //2.
+
+ $scope.setLayerNumberAndHighlightByTermList();
+
+
+ }
+
+
+ }
+
+ $scope.setLayerNumberAndHighlightByTermList = function () {
+ console.log(' $scope.actualTermNumber insde setLayerNumberAndHighlightByTermList= ' + $rootScope.actualTermNumber)
+
+ $scope.TermList = $scope.getTermNumberList($rootScope.actualTermNumber);
+
+ if (($scope.TermList != null || $scope.TermList != undefined) && $scope.TermList.length > 0) {
+
+ var internalLayerNumberList = [];
+ for (var i = 0; i < $scope.TermList.length; i++) {
+ var layerNumber = $scope.TermList[i]._InternalLayerNumber
+
+ internalLayerNumberList[i] = parseInt(layerNumber);
+ }
+
+ internalLayerNumberList.sort(function (a, b) { return a - b })
+ var internalLayerNumber = internalLayerNumberList[0]//.replace('00', '');
+
+ //3. get layer number
+ if (internalLayerNumber >= DA[0].SKIN_START_INTERNAL_LAYER && internalLayerNumber <= DA[0].SKIN_END_INTERNAL_LAYER) {
+
+ internalLayerNumber = DA[0].SKIN_DEFAULT_INTERNAL_LAYER;
+ }
+
+ var layerNumber;
+ var matchedLayerNumber = new jinqJs()
+ .from($rootScope.BodyLayerData.Layers.DataLayer)
+ .where("_lni == " + internalLayerNumber)
+ .select('_LayerNumber');
+
+ if (matchedLayerNumber == null || matchedLayerNumber.length == 0) {
+ layerNumber = 0;
+ }
+ else {
+ layerNumber = matchedLayerNumber[0]._LayerNumber
+ }
+
+ if (layerNumber == 0) {
+ layerNumber = $rootScope.totalLayers;
+ }
+ else {
+ layerNumber = parseInt(layerNumber) - 1;
+ }
+
+ $scope.layerNumber = layerNumber;
+
+ //4.get scroll position
+ if ($rootScope.actualTermNumber != DA[0].SKIN_TERM_ID) {
+
+ $scope.termCoordinate = $scope.getTermCoordinate($rootScope.actualTermNumber);
+
+ }
+
+ //5.
+ $scope.matchdedDataOnLayer = new jinqJs()
+ .from($rootScope.TermNumberData.TermData.Term)
+ .where('_InternalLayerNumber == ' + internalLayerNumber)
+ .select();
+
+ if ($scope.matchdedDataOnLayer != null || $scope.matchdedDataOnLayer != undefined) {
+
+ //6.
+ var matchedDataonActualTerm = new jinqJs()
+ .from($scope.matchdedDataOnLayer)
+ .where('_ActualTermNumber == ' + $scope.actualTermNumber)
+ .select('_TermNumber');
+
+ if (matchedDataonActualTerm != null || matchedDataonActualTerm != undefined) {
+
+ var termNo = matchedDataonActualTerm[0]._TermNumber.toString();
+
+ //7.get termList
+ $scope.fullTermlist = [];
+ $scope.AllTerms = [];
+
+ if (termNo != DA[0].figLeafTermId) {
+
+ $scope.getChildTermList(termNo);
+ // $timeout(function () { $scope.getSiblings(termNo) }, 50);
+ $scope.getSiblings(termNo)
+ }
+
+ }
+ }
+ }
+ $('#txtlayerNumber').val((parseInt($scope.layerNumber)));
+ $('#layerChangeSlider').slider("option", "value", parseInt($rootScope.totalLayers) - parseInt($scope.layerNumber));
+
+ //8.remove current layer canavses
+ $scope.flushCanvas();
+
+
+ //9.
+ $timeout(function () {
+ if (($rootScope.isGenderChnage == true && $rootScope.isHighLight == true) || ($rootScope.isViewChange == true && $rootScope.isHighLight == true)) {
+
+ }
+ else {
+ $rootScope.isHighLight = false;
+ }
+ $('#sppeachBubble').css('display', 'none');
+ $("#dot").css("display", "none");
+ //DA > Annotation's Line should not displayed.
+ $("#bord").css("display", "none");
+
+ $rootScope.isLoading = true;
+ $('#spinner').css('visibility', 'visible');
+
+ //redraw body of respective layer
+ $scope.CalculateImageCordinates($rootScope.viewOrientationId)
+ }, 500);
+
+ }
+
+ $scope.getChildTermList = function (termNo) {
+
+
+ var data = new jinqJs()
+ .from($scope.matchdedDataOnLayer)
+ .where("_ParentTermNumber == " + termNo)
+ .select();
+
+ if (data != null || data != undefined) {
+
+
+ var data2 = new jinqJs()
+ .from(data)
+ .where("_TermNumber != " + termNo)
+ .select();
+
+
+ var k;
+ if ((data2 != null || data2 != undefined) && (data2.length > 0)) {
+ for (var i = 0; i < data2.length; i++) {
+
+ var serachTerm = data2[i]._TermNumber;
+ var isFound = jQuery.inArray(serachTerm, $scope.fullTermlist)
+ if (isFound == -1) {
+ $scope.fullTermlist.push(serachTerm);
+ $scope.AllTerms.push({ '_TermNumber': serachTerm })
+ $scope.getChildTermList(serachTerm);
+ }
+ }
+ }
+ }
+ }
+
+ $scope.getSiblings = function (termNo) {
+
+ var data = new jinqJs()
+ .from($scope.matchdedDataOnLayer)
+ .where("_TermNumber == " + termNo)
+ .select();
+
+ if (data != null || data != undefined) {
+
+ var termNo = data[0]._ActualTermNumber;
+
+ var data2 = new jinqJs()
+ .from($scope.matchdedDataOnLayer)
+ .where("_ActualTermNumber == " + termNo)
+ .select();
+
+ if ((data2 != null || data2 != undefined) && (data2.length > 0)) {
+ for (var i = 0; i < data2.length; i++) {
+ $scope.fullTermlist.push(data2[i]._TermNumber);
+ $scope.AllTerms.push({ '_TermNumber': data2[i]._TermNumber })
+ $scope.getChildTermList(data2[i]._TermNumber);
+ }
+ }
+ }
+ }
+
+ $scope.getTermCoordinate = function (actualTermNumber) {
+
+ return {
+ x: $scope.TermList[0]._CenterX,
+ y: $scope.TermList[0]._CenterY
+ }
+ }
+
+
+ $scope.aligneCanvasWithTerm = function () {
+ console.log('aligneCanvasWithTerm')
+ // debugger
+
+ var newX = parseInt($scope.scaleValue($scope.termCoordinate.x, $scope.zoomInOut, DA[0].ZOOM_TERM_DATA));
+ var newY = parseInt($scope.scaleValue($scope.termCoordinate.y, $scope.zoomInOut, DA[0].ZOOM_TERM_DATA));
+
+ var canvasX = parseInt(document.getElementById('canvasDiv').offsetLeft);
+ var canvasY = parseInt(document.getElementById('canvasDiv').offsetTop);
+ var canvasHeight = $('#canvasDiv').height();
+ var canvasWidth = $('#canvasDiv').width();
+
+ var canvasBottom = canvasY + canvasHeight;
+ var canvasRight = canvasX + canvasWidth
+
+ if (newX < canvasX || newX > canvasRight || newY < canvasY || newY > canvasBottom) {
+
+ newX = newX - canvasWidth / 2;
+ newY = newY - canvasHeight / 2;
+
+ var maxVScrollPos = $('#canvasDiv')[0].scrollHeight;
+ var maxHScrollPos = $('#canvasDiv')[0].scrollWidth;
+
+ if (newY < maxVScrollPos) {
+ newY = newY;
+ }
+ else {
+ newY = maxVScrollPos;
+ }
+
+ if (newX < maxHScrollPos) {
+ newX = newX;
+ }
+ else {
+ newX = maxHScrollPos;
+ }
+ //alert('newX= ' + newX + ',newY= ' + newY)
+ $('#canvasDiv').scrollLeft(newX);
+ $('#canvasDiv').scrollTop(newY);
+ $scope.isLoading = false;
+ $('#spinner').css('visibility', 'hidden');
+ }
+
+ $rootScope.CanvasDivTopPosition = $("#canvasDiv").scrollTop();
+ $rootScope.CanvasDivLeftPosition = $("#canvasDiv").scrollLeft();
+
+ }
+
+
+ $scope.scaleValue = function (nValue, nNewZoom, nExistingZoom) {
+
+ var iReturnValue = nValue * nNewZoom;
+ return Math.round(iReturnValue / nExistingZoom);
+ }
+
+ $scope.refreshTermListOnSystemSelection = function (bodysystemId) {
+
+ $('#termList').empty();
+ // $('#termList').innerHTML = '';
+
+ if (bodysystemId == 0) {
+ $scope.loadListManger();
+ }
+ else {
+ var bodySystemDataPath = '~/../content/data/json/da/body-views/' + localStorage.getItem("currentBodyViewId") + '/da_dat_body_system_term_' + localStorage.getItem("currentBodyViewId") + '.json';
+ DataService.getJson(bodySystemDataPath)
+ .then(
+ function (result) {
+
+ $rootScope.BodySystemData = result;
+ var systemMatchedTermList = new jinqJs()
+ .from($rootScope.BodySystemData.BodySystem.BodySystemTerm)
+ .where('_SystemNumber == ' + bodysystemId)
+ .select();
+ if (systemMatchedTermList != null || systemMatchedTermList != undefined) {
+
+ $scope.refreshTerms(systemMatchedTermList);
+ }
+ },
+ function (error) {
+ console.log(error.statusText)
+ }
+ )
+
+ }
+ }
+
+ $scope.refreshTerms = function (termList) {
+
+ var path = '~/../content/data/json/da/vocab/english/cm_dat_vocabterm_1.json'
+
+ $http({ method: 'GET', url: '~/../content/data/json/da/vocab/english/cm_dat_vocabterm_1.json' }).success(function (data) {
+
+ var VocabTermData = data;
+
+ var vocabTermTxt = [];
+
+ for (var i = 0; i < termList.length; i++) {
+
+ var actulaTermNumber = new jinqJs()
+ .from($rootScope.TermNumberData.TermData.Term)
+ .where('_TermNumber == ' + termList[i]._TermNumber)
+ .select('_ActualTermNumber');
+
+ if (actulaTermNumber != null || actulaTermNumber != undefined) {
+
+
+ angular.forEach(VocabTermData.VocabTerms.Term, function (value2, key2) {
+
+
+ if (actulaTermNumber[0]._ActualTermNumber == value2._ActualTermNumber) {
+ vocabTermTxt.push(
+
+ {
+
+ "_ActualTermNumber": value2._ActualTermNumber,
+
+ "_TermText": value2._TermText,
+
+ "_cdId": value2._cdId
+
+ }
+
+ );
+
+ }
+
+ })
+
+ }
+ }
+
+ $scope.VocabTermTxt = new jinqJs()
+ .from(vocabTermTxt)
+ .distinct('_TermText', '_ActualTermNumber')
+ .orderBy([{ field: '_TermText', sort: 'asc' }])
+ .select('_ActualTermNumber', '_TermText', '_cdId');
+
+ if ($scope.VocabTermTxt != null || $scope.VocabTermTxt != undefined) {
+
+
+ for (var j = 0; j < $scope.VocabTermTxt.length; j++) {
+ var $el = $('
' + $scope.VocabTermTxt[j]._TermText + ' ').appendTo('#termList')
+ $compile($el)($scope);
+ }
+
+ var termsTotal = '
' + $scope.VocabTermTxt.length + ' Structures ';
+ $("#totalTerms").empty();
+ //$('#totalTerms').innerHTML = '';
+
+ $('#totalTerms').append(termsTotal);
+ $rootScope.isLoading = false;
+ $('#spinner').css('visibility', 'hidden');
+ }
+ })
+
+ .error(function (data, status, headers, config) {
+ console.log(data);
+
+ });
+
+ }
+
+ $scope.LayerChangeBasedOnKeyPressed = function (e) {
+ // Dissectible Anatomy > Should not display blank page if no layer is selected.
+
+
+ if (e.keyCode == 13) {
+
+ if ($("#txtlayerNumber").val() == '') {
+
+ $("#txtlayerNumber").val($rootScope.PreviouslayerNumbr);
+ }
+ else {
+ $rootScope.PreviouslayerNumbr = $("#txtlayerNumber").val();
+ $scope.LayerChange();
+ }
+
+
+ }
+
+ // 'x' button is displaying inside the input box in IE browser.
+ if (e.keyCode == 38) {
+
+
+ var layerInputVal = $("#txtlayerNumber").val();
+ if (layerInputVal != $rootScope.totalLayers) {
+ var layerInputValInc = parseInt(layerInputVal) + 1;
+ $scope.layerNumber = parseInt(layerInputValInc);
+ $("#txtlayerNumber").val($scope.layerNumber);
+ $rootScope.PreviouslayerNumbr = $scope.layerNumber;
+ }
+
+
+ }
+
+ // 'x' button is displaying inside the input box in IE browser.
+ if (e.keyCode == 40) {
+ var layerInputVal = $("#txtlayerNumber").val();
+ if (layerInputVal > 0) {
+ var layerInputValDec = parseInt(layerInputVal) - 1;
+ $scope.layerNumber = parseInt(layerInputValDec);
+ $("#txtlayerNumber").val($scope.layerNumber);
+ $rootScope.PreviouslayerNumbr = $scope.layerNumber;
+ }
+ }
+
+ }
+
+
+ $scope.LayerValueChangeBasedOnKeyUp = function (e) {
+
+ var keyUplayerNumber = parseInt($("#txtlayerNumber").val());
+
+ if (isNaN(keyUplayerNumber)) {
+
+ }
+ else {
+
+ if (keyUplayerNumber > $rootScope.totalLayers) {
+
+ $("#txtlayerNumber").val($rootScope.totalLayers);
+ $scope.layerNumber = parseInt($rootScope.totalLayers);
+
+ }
+ else {
+
+ $("#txtlayerNumber").val(keyUplayerNumber);
+ $scope.layerNumber = parseInt(keyUplayerNumber);
+
+
+ }
+
+ }
+
+
+ }
+
+
+ $rootScope.mouseMoveToolTip = function (toolTipTopPosition, toolTipLeftPosition, toolTipWidth, toolTipText) {
+
+ $("#cursor-block").addClass("custom-tooltip-annotation-toolbar");
+ $(".custom-tooltip-annotation-toolbar").css({ "display": "block", "top": toolTipTopPosition + "px", "width": toolTipWidth + "px", "left": toolTipLeftPosition + "px" });
+ $("#cursor-block").html(toolTipText);
+ }
+
+ $rootScope.mouseOutToolTip = function () {
+
+ $(".custom-tooltip-annotation-toolbar").css('display', 'none');
+ $("#cursor-block").removeClass("custom-tooltip-annotation-toolbar");
+ $("#cursor-block").html();
+
+ }
+
+
+
+}]
+
+);
+
+
+function OnGenderChange(event) {
+
+ console.log('gender chnaged is called outside ');
+ var scope = angular.element(document.getElementById("daView")).scope();
+ scope.$apply(function () {
+ scope.OnGenderChange(event);
+ });
+}
+
+function OnViewChange(event) {
+ console.log('OnViewChange chnaged is called outside ');
+ var scope = angular.element(document.getElementById("daView")).scope();
+ scope.$apply(function () {
+ scope.OnViewChange(event);
+ });
+}
+
+function OnBodySystemSelection(event) {
+ console.log('OnBodySystem chnaged is called outside ');
+ var scope = angular.element(document.getElementById("daView")).scope();
+ scope.$apply(function () {
+ scope.HighlightBodyByBodySystem(event);
+ });
+}
+
+function enableShowHideStructureBox() {
+ console.log('OnBodySystem chnaged is called outside ');
+ var scope = angular.element(document.getElementById("daView")).scope();
+ scope.$apply(function () {
+ scope.enableShowHideStructureBox();
+ });
+}
+
+function OnSearch() {
+ console.log('Show Search is called outside ');
+ var scope = angular.element(document.getElementById("daView")).scope();
+ scope.$apply(function () {
+ scope.ShowSearch();
+ });
+}
+function selectTerm(event) {
+ console.log('selectTerm is called outside ');
+ var scope = angular.element(document.getElementById("daView")).scope();
+ scope.$apply(function () {
+ scope.jumpToTerm(event);
+ });
+}
+function HighlightBodyOnListManager(event) {
+ console.log('HighlightBodyOnListManager is called outside ');
+ var scope = angular.element(document.getElementById("daView")).scope();
+ scope.$apply(function () {
+ scope.HighlightBodyOnListManagerSelection(event);
+ });
+}
+
+function refreshTermListOnSystem(bodysystemId) {
+ console.log('refreshTermListOnSystem is called outside ');
+ var scope = angular.element(document.getElementById("daView")).scope();
+ scope.$apply(function () {
+ scope.refreshTermListOnSystemSelection(bodysystemId);
+ });
+}
+
+function OnEnableExtract() {
+ console.log('OnEnableExtract is called outside ');
+ var scope = angular.element(document.getElementById("daView")).scope();
+ scope.$apply(function () {
+ scope.enableExtract('true');
+ });
+}
+
+function onTboxCreation() {
+ console.log('OnEnableExtract is called outside ');
+ var scope = angular.element(document.getElementById("daView")).scope();
+ scope.$apply(function () {
+ scope.createTransparencyBox('true');
+ });
+}
+
+function onTboxClose() {
+ console.log('onTboxClose is called outside ');
+ var scope = angular.element(document.getElementById("daView")).scope();
+ scope.$apply(function () {
+ scope.CloseTransparencyBox();
+ });
+}
+
+function OnEnableNormalMode() {
+ console.log('OnEnableNormalMode is called outside ');
+ var scope = angular.element(document.getElementById("daView")).scope();
+ scope.$apply(function () {
+ scope.enableNormalMode();
+ });
+}
+
+function OnEnableHighlight() {
+ console.log('OnEnableHighlight is called outside ');
+ var scope = angular.element(document.getElementById("daView")).scope();
+ scope.$apply(function () {
+ scope.enableHighlight();
+ });
+}
+
+function OnIdentityClick() {
+ console.log('OnIdentityClick is called outside ');
+ var scope = angular.element(document.getElementById("daView")).scope();
+ scope.$apply(function () {
+ scope.IdentityClick();
+ });
+}
+
+function OnZoom() {
+ //Dissectible Anatomy > Extract and Annotations displays apart on the page after click on Zoom-in.
+ $(".com").remove();
+ $("#bord").remove();
+ console.log('OnZoom is called outside ');
+ var scope = angular.element(document.getElementById("daView")).scope();
+ scope.$apply(function () {
+ scope.enableZoom();
+ });
+}
+
+function onListManagerTermSelection(id) {
+
+ var scope = angular.element(document.getElementById("daView")).scope();
+ scope.$apply(function () {
+ scope.HighlightBodyOnListManagerSelection(id);
+ });
+
+}
+
diff --git a/400-SOURCECODE/AIAHTML5.Web/app/views/aa/atlas-anatomy-detail.html b/400-SOURCECODE/AIAHTML5.Web/app/views/aa/atlas-anatomy-detail.html
index e5bdf04..a3b10f8 100644
--- a/400-SOURCECODE/AIAHTML5.Web/app/views/aa/atlas-anatomy-detail.html
+++ b/400-SOURCECODE/AIAHTML5.Web/app/views/aa/atlas-anatomy-detail.html
@@ -1,141 +1,564 @@
-
-