Commit cdb74fb642bf667ab5f514d37fa48341056f444c
1 parent
fcaafcc9
Refs: #4464
Feature Implemented: Maintained previous highlight without annotation.
Showing
2 changed files
with
134 additions
and
97 deletions
150-DOCUMENTATION/TestCasesForHighlight.xlsx
0 → 100644
No preview for this file type
400-SOURCECODE/AIAHTML5.Web/app/controllers/DAController.js
... | ... | @@ -39,7 +39,9 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo |
39 | 39 | $scope.multiAnnotationIsON = true; |
40 | 40 | $scope.previousGrayImageDataVar; |
41 | 41 | $scope.previousGrayCanvas; |
42 | - | |
42 | + $scope.previousIcolor =0; | |
43 | + $scope.previousX =0; | |
44 | + $scope.previousY=0; | |
43 | 45 | $scope.machedBodyRegion = []; |
44 | 46 | |
45 | 47 | //array for bodyviewid correspoing to male female(used for gender change) |
... | ... | @@ -1074,7 +1076,8 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo |
1074 | 1076 | var actulalX = mousePos.x + horizontlScrollPosition; |
1075 | 1077 | var actualY = mousePos.y + verticalScrollPosition; |
1076 | 1078 | |
1077 | - //debugger; | |
1079 | + | |
1080 | + | |
1078 | 1081 | var RGBColor = $scope.GetRGBColor(maskCanvasContext, actulalX, actualY, x, y); |
1079 | 1082 | |
1080 | 1083 | if ($rootScope.isHighLight) |
... | ... | @@ -1095,52 +1098,62 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo |
1095 | 1098 | |
1096 | 1099 | grayCanvasContext.putImageData(grayImageData, 0, 0) |
1097 | 1100 | |
1098 | - } | |
1101 | + } | |
1099 | 1102 | } |
1103 | + } | |
1100 | 1104 | |
1101 | - var ActualTermNo = $scope.getActualTermNumber(RGBColor); | |
1102 | - //alert('actual term no: ' + ActualTermNo); | |
1105 | + | |
1103 | 1106 | |
1104 | - //3. Find Term No List Based on ActualTermNo | |
1105 | - var TermList = $scope.getTermNumberList(ActualTermNo); | |
1106 | - // alert('termList.count: ' + TermList.length); | |
1107 | + $scope.previousIcolor= RGBColor; | |
1108 | + $scope.previousX = x; | |
1109 | + $scope.previousY = y; | |
1107 | 1110 | |
1108 | - //4. | |
1111 | + $scope.highLightBodyBasedOnIcolor(RGBColor, x, y); | |
1109 | 1112 | |
1110 | - $scope.machedTermNoLocation = []; | |
1111 | - for (var i = 0; i < TermList.length; i++) { | |
1113 | + //var ActualTermNo = $scope.getActualTermNumber(RGBColor); | |
1114 | + ////3. Find Term No List Based on ActualTermNo | |
1115 | + //var TermList = $scope.getTermNumberList(ActualTermNo); | |
1116 | + //// alert('termList.count: ' + TermList.length); | |
1112 | 1117 | |
1113 | - var termNumber = parseInt(TermList[i]._TermNumber); | |
1118 | + ////4. | |
1114 | 1119 | |
1115 | - //Match Term No List in each bodyRegion | |
1116 | - $scope.getLocationsForMatchedTermsInWholeBody(termNumber, x, y); | |
1117 | - } | |
1120 | + //$scope.machedTermNoLocation = []; | |
1121 | + //for (var i = 0; i < TermList.length; i++) { | |
1122 | + | |
1123 | + // var termNumber = parseInt(TermList[i]._TermNumber); | |
1124 | + | |
1125 | + // //Match Term No List in each bodyRegion | |
1126 | + // $scope.getLocationsForMatchedTermsInWholeBody(termNumber, x, y); | |
1127 | + //} | |
1118 | 1128 | |
1119 | 1129 | } |
1120 | 1130 | |
1121 | 1131 | else |
1122 | 1132 | { |
1133 | + $scope.previousIcolor = RGBColor; | |
1134 | + $scope.previousX = x; | |
1135 | + $scope.previousY = y; | |
1136 | + $scope.highLightBodyBasedOnIcolor(RGBColor,x,y); | |
1123 | 1137 | |
1124 | - //2. Find Actul Term No Based on Icolor. | |
1125 | - var ActualTermNo = $scope.getActualTermNumber(RGBColor); | |
1126 | - //alert('actual term no: ' + ActualTermNo); | |
1127 | - | |
1128 | - //3. Find Term No List Based on ActualTermNo | |
1129 | - var TermList = $scope.getTermNumberList(ActualTermNo); | |
1130 | - // alert('termList.count: ' + TermList.length); | |
1138 | + ////2. Find Actul Term No Based on Icolor. | |
1139 | + //var ActualTermNo = $scope.getActualTermNumber(RGBColor); | |
1140 | + | |
1141 | + ////3. Find Term No List Based on ActualTermNo | |
1142 | + //var TermList = $scope.getTermNumberList(ActualTermNo); | |
1143 | + | |
1131 | 1144 | |
1132 | - //4. | |
1145 | + ////4. | |
1133 | 1146 | |
1134 | - $scope.machedTermNoLocation = []; | |
1135 | - for (var i = 0; i < TermList.length; i++) { | |
1147 | + //$scope.machedTermNoLocation = []; | |
1148 | + //for (var i = 0; i < TermList.length; i++) { | |
1136 | 1149 | |
1137 | - var termNumber = parseInt(TermList[i]._TermNumber); | |
1150 | + // var termNumber = parseInt(TermList[i]._TermNumber); | |
1138 | 1151 | |
1139 | - //Match Term No List in each bodyRegion | |
1140 | - $scope.getLocationsForMatchedTermsInWholeBody(termNumber, x, y); | |
1141 | - } | |
1152 | + // //Match Term No List in each bodyRegion | |
1153 | + // $scope.getLocationsForMatchedTermsInWholeBody(termNumber, x, y); | |
1154 | + //} | |
1142 | 1155 | } |
1143 | - } | |
1156 | + | |
1144 | 1157 | |
1145 | 1158 | |
1146 | 1159 | |
... | ... | @@ -1218,6 +1231,28 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo |
1218 | 1231 | |
1219 | 1232 | } |
1220 | 1233 | |
1234 | + $scope.highLightBodyBasedOnIcolor = function (RGBColor,x,y) | |
1235 | + { | |
1236 | + | |
1237 | + //2. Find Actul Term No Based on Icolor. | |
1238 | + var ActualTermNo = $scope.getActualTermNumber(RGBColor); | |
1239 | + | |
1240 | + //3. Find Term No List Based on ActualTermNo | |
1241 | + var TermList = $scope.getTermNumberList(ActualTermNo); | |
1242 | + | |
1243 | + | |
1244 | + //4. | |
1245 | + | |
1246 | + $scope.machedTermNoLocation = []; | |
1247 | + for (var i = 0; i < TermList.length; i++) { | |
1248 | + | |
1249 | + var termNumber = parseInt(TermList[i]._TermNumber); | |
1250 | + | |
1251 | + //Match Term No List in each bodyRegion | |
1252 | + $scope.getLocationsForMatchedTermsInWholeBody(termNumber, x, y); | |
1253 | + } | |
1254 | + } | |
1255 | + | |
1221 | 1256 | $scope.getLocationsForMatchedTermsInWholeBody = function (termNo, x, y) |
1222 | 1257 | { |
1223 | 1258 | |
... | ... | @@ -1484,13 +1519,9 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo |
1484 | 1519 | $scope.imageVerticalScrollPosition = canvasDiv.scrollTop; |
1485 | 1520 | $scope.imageHorizontlScrollPosition = canvasDiv.scrollLeft; |
1486 | 1521 | |
1487 | - // debugger; | |
1488 | - // $('#daLoaderLabel').css('visibility', 'visible'); | |
1489 | - | |
1490 | - | |
1491 | - | |
1522 | + | |
1492 | 1523 | if ($scope.isTransparencyActivated) { |
1493 | - //crete temp canavs to store the original data which will be used to chnange the transparency | |
1524 | + | |
1494 | 1525 | if (document.getElementById('tempCanvas') != null) { |
1495 | 1526 | $('#tempCanvas').remove(); |
1496 | 1527 | } |
... | ... | @@ -1579,6 +1610,11 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo |
1579 | 1610 | |
1580 | 1611 | $timeout(function () { $scope.highLightBody() }, 350); |
1581 | 1612 | |
1613 | + if ($scope.previousIcolor != 0 && $scope.previousX != 0 && $scope.previousY != 0) { | |
1614 | + | |
1615 | + $timeout(function () { $scope.highLightBodyBasedOnIcolor($scope.previousIcolor, $scope.previousX, $scope.previousY) }, 350); | |
1616 | + } | |
1617 | + | |
1582 | 1618 | } |
1583 | 1619 | |
1584 | 1620 | } |
... | ... | @@ -3063,93 +3099,94 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo |
3063 | 3099 | |
3064 | 3100 | $scope.highLightBody = function () { |
3065 | 3101 | |
3066 | - angular.forEach($scope.ColoredImageSRC, function (value, key) { | |
3102 | + | |
3103 | + if ($rootScope.isHighLight == true) { | |
3067 | 3104 | |
3105 | + angular.forEach($scope.ColoredImageSRC, function (value, key) { | |
3106 | + var id; | |
3107 | + if (value.haveMirror == 'true') { | |
3108 | + id = 'imageCanvas' + value.bodyRegionId + '_MR'; | |
3109 | + } | |
3110 | + else { | |
3111 | + id = 'imageCanvas' + value.bodyRegionId; | |
3112 | + } | |
3068 | 3113 | |
3069 | - var id; | |
3070 | - if (value.haveMirror == 'true') { | |
3071 | - id = 'imageCanvas' + value.bodyRegionId + '_MR'; | |
3072 | - } | |
3073 | - else { | |
3074 | - id = 'imageCanvas' + value.bodyRegionId; | |
3075 | - } | |
3114 | + var imageCanvas = document.getElementById(id); | |
3076 | 3115 | |
3077 | - var imageCanvas = document.getElementById(id); | |
3116 | + //var coloredCanvasID = 'imageCanvas' + bodyRegionId; | |
3117 | + //var coloredCanvas = document.getElementById(coloredCanvasID); | |
3078 | 3118 | |
3079 | - //var coloredCanvasID = 'imageCanvas' + bodyRegionId; | |
3080 | - //var coloredCanvas = document.getElementById(coloredCanvasID); | |
3119 | + var width = value.Width; | |
3120 | + var ht = value.Height; | |
3081 | 3121 | |
3082 | - var width = value.Width; | |
3083 | - var ht = value.Height; | |
3122 | + var coloredCanvasContext = imageCanvas.getContext("2d"); | |
3123 | + var coloredImageData = coloredCanvasContext.getImageData(0, 0, width, ht); | |
3124 | + var coloredImageDataVar = coloredImageData.data; | |
3084 | 3125 | |
3085 | - var coloredCanvasContext = imageCanvas.getContext("2d"); | |
3086 | - var coloredImageData = coloredCanvasContext.getImageData(0, 0, width, ht); | |
3087 | - var coloredImageDataVar = coloredImageData.data; | |
3088 | - | |
3089 | - | |
3090 | - if (value.haveMirror == 'true') { | |
3091 | - $rootScope.coloredImageMRCanvasList[parseInt(value.bodyRegionId)] = coloredImageDataVar; | |
3092 | - } | |
3093 | - else | |
3094 | - { | |
3095 | - //$rootScope.coloredImageMRCanvasList[parseInt(value.bodyRegionId - 1)] = 1; | |
3096 | 3126 | |
3097 | - $rootScope.coloredImageCanvasList[parseInt(value.bodyRegionId - 1)] = coloredImageDataVar; | |
3098 | - } | |
3127 | + if (value.haveMirror == 'true') { | |
3128 | + $rootScope.coloredImageMRCanvasList[parseInt(value.bodyRegionId)] = coloredImageDataVar; | |
3129 | + } | |
3130 | + else { | |
3131 | + //$rootScope.coloredImageMRCanvasList[parseInt(value.bodyRegionId - 1)] = 1; | |
3099 | 3132 | |
3133 | + $rootScope.coloredImageCanvasList[parseInt(value.bodyRegionId - 1)] = coloredImageDataVar; | |
3134 | + } | |
3100 | 3135 | |
3101 | - //$rootScope.coloredImageCanvasList.push(parts); | |
3102 | - | |
3103 | - | |
3104 | 3136 | |
3105 | - var context_gray = imageCanvas.getContext('2d'); | |
3137 | + //$rootScope.coloredImageCanvasList.push(parts); | |
3106 | 3138 | |
3107 | 3139 | |
3108 | - var dataURL = imageCanvas.toDataURL(); | |
3109 | 3140 | |
3141 | + var context_gray = imageCanvas.getContext('2d'); | |
3110 | 3142 | |
3111 | - var img = new Image(); | |
3112 | 3143 | |
3113 | - img.src = dataURL; | |
3144 | + var dataURL = imageCanvas.toDataURL(); | |
3114 | 3145 | |
3115 | - var DAData = new BitmapData(img.width, img.height); | |
3116 | - DAData.draw(img); | |
3117 | - var RED = 0.3086; // luminance contrast value for red | |
3118 | - var GREEN = 0.694; // luminance contrast value for green | |
3119 | - var BLUE = 0.0820; // luminance contrast value for blue | |
3120 | 3146 | |
3121 | - var RGB = [RED, GREEN, BLUE, 0, 0]; | |
3122 | - var RGB2 = [RED, GREEN, BLUE, 0, 0]; | |
3123 | - var RGB3 = [RED, GREEN, BLUE, 0, 0]; | |
3124 | - var ALPHA = [0, 0, 0, 1, 0]; | |
3147 | + var img = new Image(); | |
3125 | 3148 | |
3126 | - var rgbPx = RGB.concat(RGB2); | |
3127 | - var rgbPx2 = rgbPx.concat(RGB3); | |
3128 | - var matrix = rgbPx2.concat(ALPHA); | |
3149 | + img.src = dataURL; | |
3129 | 3150 | |
3130 | - var zeroPoint = new Point(); | |
3131 | - var grayScale = new ColorMatrixFilter(matrix); | |
3132 | - DAData.applyFilter(DAData, DAData.rect, zeroPoint, grayScale); | |
3151 | + var DAData = new BitmapData(img.width, img.height); | |
3152 | + DAData.draw(img); | |
3153 | + var RED = 0.3086; // luminance contrast value for red | |
3154 | + var GREEN = 0.694; // luminance contrast value for green | |
3155 | + var BLUE = 0.0820; // luminance contrast value for blue | |
3133 | 3156 | |
3134 | - context_gray.putImageData(DAData.data, 0, 0) | |
3157 | + var RGB = [RED, GREEN, BLUE, 0, 0]; | |
3158 | + var RGB2 = [RED, GREEN, BLUE, 0, 0]; | |
3159 | + var RGB3 = [RED, GREEN, BLUE, 0, 0]; | |
3160 | + var ALPHA = [0, 0, 0, 1, 0]; | |
3135 | 3161 | |
3136 | - var grayImageData = context_gray.getImageData(0, 0, width, ht); | |
3137 | - var grayImageImageDataVar = grayImageData.data; | |
3162 | + var rgbPx = RGB.concat(RGB2); | |
3163 | + var rgbPx2 = rgbPx.concat(RGB3); | |
3164 | + var matrix = rgbPx2.concat(ALPHA); | |
3138 | 3165 | |
3139 | - if (value.haveMirror == 'true') { | |
3140 | - $rootScope.grayImageMRDataList[parseInt(value.bodyRegionId)] = grayImageData; | |
3141 | - } | |
3142 | - else { | |
3143 | - //$rootScope.coloredImageMRCanvasList[parseInt(value.bodyRegionId - 1)] = 1; | |
3166 | + var zeroPoint = new Point(); | |
3167 | + var grayScale = new ColorMatrixFilter(matrix); | |
3168 | + DAData.applyFilter(DAData, DAData.rect, zeroPoint, grayScale); | |
3144 | 3169 | |
3145 | - $rootScope.grayImageDataList[parseInt(value.bodyRegionId - 1)] = grayImageData; | |
3146 | - } | |
3147 | - | |
3170 | + context_gray.putImageData(DAData.data, 0, 0) | |
3148 | 3171 | |
3149 | - }); | |
3172 | + var grayImageData = context_gray.getImageData(0, 0, width, ht); | |
3173 | + var grayImageImageDataVar = grayImageData.data; | |
3174 | + | |
3175 | + if (value.haveMirror == 'true') { | |
3176 | + $rootScope.grayImageMRDataList[parseInt(value.bodyRegionId)] = grayImageData; | |
3177 | + } | |
3178 | + else { | |
3179 | + //$rootScope.coloredImageMRCanvasList[parseInt(value.bodyRegionId - 1)] = 1; | |
3180 | + | |
3181 | + $rootScope.grayImageDataList[parseInt(value.bodyRegionId - 1)] = grayImageData; | |
3182 | + } | |
3150 | 3183 | |
3151 | - // alert('length: '+ $scope.coloredImageCanvasList.length); | |
3152 | 3184 | |
3185 | + }); | |
3186 | + | |
3187 | + // alert('length: '+ $scope.coloredImageCanvasList.length); | |
3188 | + | |
3189 | + } | |
3153 | 3190 | } |
3154 | 3191 | |
3155 | 3192 | $scope.applyGrayMatrix = function (img, context_gray) | ... | ... |