diff --git a/400-SOURCECODE/AIAHTML5.Web/AIAHTML5.Web.csproj b/400-SOURCECODE/AIAHTML5.Web/AIAHTML5.Web.csproj index 1b5272d..daf99fb 100644 --- a/400-SOURCECODE/AIAHTML5.Web/AIAHTML5.Web.csproj +++ b/400-SOURCECODE/AIAHTML5.Web/AIAHTML5.Web.csproj @@ -74,7 +74,6 @@ - diff --git a/400-SOURCECODE/AIAHTML5.Web/app/controllers/DAController.js b/400-SOURCECODE/AIAHTML5.Web/app/controllers/DAController.js index 07720cb..6077048 100644 --- a/400-SOURCECODE/AIAHTML5.Web/app/controllers/DAController.js +++ b/400-SOURCECODE/AIAHTML5.Web/app/controllers/DAController.js @@ -49,6 +49,8 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo // This variable is used for unhighlight previously highlighted body portion, if multiAnnotation is false. $scope.machedIcolorInBodyRegion = []; + $scope.MaskCanvasData = []; + //array for bodyviewid correspoing to male female(used for gender change) $scope.correspondingBodyViewIds = { '1': '5', @@ -1058,6 +1060,19 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo document.getElementById('canvasDiv').appendChild(FlipedImgCanvas); + if (FlipedImgCanvas.id.match('_mci')) { + + var maskImgData = context.getImageData(0, 0, w, h); + + $scope.MaskCanvasData.push( + { + "bodyRegionId": bodyRegionId, + "canvasId": FlipedImgCanvas.id, + "maskData": maskImgData, + + } + ); + } } @@ -1312,124 +1327,145 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo function start() { // debugger; context.drawImage(img, 0, 0); + + if (imgCanvas.id.match('_mci')) { + var maskImgData = context.getImageData(0, 0, w, h); + $scope.MaskCanvasData.push( + { + "bodyRegionId": bodyRegionId, + "canvasId": imgCanvas.id, + "maskData": maskImgData, + + } + ); + } }; document.getElementById('canvasDiv').appendChild(imgCanvas); + } - $scope.highLightBodyBasedOnIcolor = function (RGBColor) { + + //2. Find Actul Term No Based on Icolor. + var ActualTermNo = $scope.getActualTermNumber(RGBColor); - $scope.previousSelectedTermList.length=0; - if ($scope.previousSelectedTermList.length > 0) { - - //alert('previousSelectedTermList length: ' + $scope.previousSelectedTermList.length); - - for (var i = 0; i < $scope.previousSelectedTermList.length; i++) { - var RGBColor = $scope.previousSelectedTermList[i]; + //3. Find Term No List Based on ActualTermNo + var TermList = $scope.getTermNumberList(ActualTermNo); + //4. - //2. Find Actul Term No Based on Icolor. - var ActualTermNo = $scope.getActualTermNumber(RGBColor); + $scope.machedTermNoLocation = []; + console.log(' TermList.length= ' + TermList.length) - //3. Find Term No List Based on ActualTermNo - var TermList = $scope.getTermNumberList(ActualTermNo); + var worker = new Worker('term-number-wp.js'); + for (var i = 0; i < TermList.length; i++) { - //4. + console.log('Start time taken for term: ' + TermList[i]._TermNumber + 'in posting: ' + new Date().toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/, "$1")); + worker.postMessage({ + 'termNumber': TermList[i]._TermNumber, + 'maskCanvasData': $scope.MaskCanvasData + + }); - $scope.machedTermNoLocation = []; - //for (var i = 0; i < TermList.length; i++) { + } + worker.onmessage = function (e) { + console.log('callback time taken : ' + new Date().toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/, "$1")); + $scope.fillMatchedTerm(e.data.value); - // var termNumber = parseInt(TermList[i]._TermNumber); - // //Match Term No List in each bodyRegion - // $scope.getLocationsForMatchedTermsInWholeBody(termNumber); - //} + }; + worker.onerror = function (e) { + alert('Error: Line ' + e.lineno + ' in ' + e.filename + ': ' + e.message); + }; + } - var worker = new Worker('term-number-wp.js'); + //$scope.highLightBodyBasedOnIcolor = function (RGBColor) { - + // $scope.previousSelectedTermList.length = 0; - //start the worker - worker.postMessage({ - 'cmd': 'abc', - 'value': 'send msg from DA controller' - }); + // var RGBColor = $scope.previousSelectedTermList[i]; - worker.onmessage = function (e) { - var msg = e.data.msg; - }; - worker.onerror = function (e) { - alert('Error: Line ' + e.lineno + ' in ' + e.filename + ': ' + e.message); - }; - } - } - else { - //2. Find Actul Term No Based on Icolor. - var ActualTermNo = $scope.getActualTermNumber(RGBColor); + // //2. Find Actul Term No Based on Icolor. + // var ActualTermNo = $scope.getActualTermNumber(RGBColor); - //3. Find Term No List Based on ActualTermNo - var TermList = $scope.getTermNumberList(ActualTermNo); + // //3. Find Term No List Based on ActualTermNo + // var TermList = $scope.getTermNumberList(ActualTermNo); + // if ($scope.previousSelectedTermList.length > 0) { - //4. + // var worker = new Worker('term-number-wp.js'); - $scope.machedTermNoLocation = []; - for (var i = 0; i < TermList.length; i++) { - var termNumber = parseInt(TermList[i]._TermNumber); - - var worker = new Worker('term-number-wp.js'); + // for (var i = 0; i < $scope.previousSelectedTermList.length; i++) { + // $scope.machedTermNoLocation = []; + // for (var i = 0; i < TermList.length; i++) { - + // var termNumber = parseInt(TermList[i]._TermNumber); - //start the worker - worker.postMessage({ - 'cmd': 'abc', - 'value': 'send msg from DA controller' - }); + // // //Match Term No List in each bodyRegion + // // $scope.getLocationsForMatchedTermsInWholeBody(termNumber); - worker.onmessage = function (e) { - var msg = e.data.msg; - }; - worker.onerror = function (e) { - alert('Error: Line ' + e.lineno + ' in ' + e.filename + ': ' + e.message); - }; - //Match Term No List in each bodyRegion - //$scope.getLocationsForMatchedTermsInWholeBody(termNumber); - } + // worker.postMessage({ + // 'cmd': 'abc', + // 'value': termNumber + // }); + // } + + // } - debugger; - var worker = new Worker('term-number-wp.js'); + // worker.onmessage = function (e) { + // var msg = e.data.msg1; + // }; + // worker.onerror = function (e) { + // alert('Error: Line ' + e.lineno + ' in ' + e.filename + ': ' + e.message); + // }; + // } + // else { - worker.onmessage = function (e) { - var msg = e.data.msg; - }; - worker.onerror = function (e) { - alert('Error: Line ' + e.lineno + ' in ' + e.filename + ': ' + e.message); - }; + // $scope.machedTermNoLocation = []; + // for (var i = 0; i < TermList.length; i++) { - //start the worker - worker.postMessage({ - 'cmd': 'abc', - 'value': 'send msg from DA controller' - }); - } - } + // var termNumber = parseInt(TermList[i]._TermNumber); + + // var worker = new Worker('term-number-wp.js'); + + // //start the worker + // worker.postMessage({ + // 'cmd': 'abc', + // 'value': termNumber + // }); + + // worker.onmessage = function (e) { + // var msg = e.data.msg; + // }; + // worker.onerror = function (e) { + // alert('Error: Line ' + e.lineno + ' in ' + e.filename + ': ' + e.message); + // }; + // //Match Term No List in each bodyRegion + // //$scope.getLocationsForMatchedTermsInWholeBody(termNumber); + // } + + + // } + //} - $scope.getLocationsForMatchedTermsInWholeBody = function (termNo) { + $scope.fillMatchedTerm = function (matchedLocationData) + { + console.log('Start time taken in fillMatchedTerm: ' + new Date().toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/, "$1")); for (var x = 0; x < $scope.ColoredImageSRC.length; x++) { // alert('called for bodyRegionId: ' + $scope.MaskImageSRC[x].bodyRegionId); var bodyRegionId = $scope.ColoredImageSRC[x].bodyRegionId; { + var scaledWidth = $scope.ColoredImageSRC[x].Width; var scaledHeight = $scope.ColoredImageSRC[x].Height; //var maskImg = $scope.ColoredImageSRC[x].SRC; @@ -1445,17 +1481,17 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo // 1. get mask canvas for this body region. - var maskCanvasID; - if ($scope.ColoredImageSRC[x].haveMirror == 'true') { - maskCanvasID = 'imageCanvas' + bodyRegionId + '_MR_mci'; - } - else { - maskCanvasID = 'imageCanvas' + bodyRegionId + '_mci'; + //var maskCanvasID; + //if ($scope.ColoredImageSRC[x].haveMirror == 'true') { + // maskCanvasID = 'imageCanvas' + bodyRegionId + '_MR_mci'; + //} + //else { + // maskCanvasID = 'imageCanvas' + bodyRegionId + '_mci'; - } - var maskCanvas = document.getElementById(maskCanvasID); - var maskCanvasContext = maskCanvas.getContext("2d"); - var maskImgData = maskCanvasContext.getImageData(0, 0, scaledWidth, scaledHeight); + //} + //var maskCanvas = document.getElementById(maskCanvasID); + //var maskCanvasContext = maskCanvas.getContext("2d"); + //var maskImgData = maskCanvasContext.getImageData(0, 0, scaledWidth, scaledHeight); // 2. get coloured canvas for this body region. @@ -1496,97 +1532,39 @@ function ($scope, $rootScope, $compile, $http, $log, $location, $timeout, DA, Mo var counter = 0; - var imageDataVar = maskImgData.data; - - // var previousBRID; - - var counter = 0; - - - var n = maskImgData.data.length; - - for (var i = 0; i < n; i += 4) { - - - var RED = imageDataVar[i] - 9; - var GREEN = imageDataVar[i + 1] - 9; - var BLUE = imageDataVar[i + 2] - 9; - - var Red; - var Green; - var Blue; - var zero = "0"; - - if ((RED).toString().length != 2) { - Red = zero.concat((RED).toString()) - } - else { - Red = (RED).toString() - } - if ((GREEN).toString().length != 2) { - Green = zero.concat((GREEN).toString()) - } - else { - Green = (GREEN).toString() - - } - if ((BLUE).toString().length != 2) { - Blue = zero.concat((BLUE).toString()) - } - else { - Blue = (BLUE).toString() - - } - - var Icolor = (Red + Green + Blue); - // alert('Icolor: ' + Icolor) - - if (parseInt(termNo) == parseInt(Icolor)) { - - counter++; - var have = $scope.machedIcolorInBodyRegion.indexOf(bodyRegionId); - - - if (have == -1) { - $scope.machedIcolorInBodyRegion.push(bodyRegionId); - } - else { - - } - - - //previousGrayColoredData = i; - if (coloredImageDataVar != null) { - - var RED_coloredImage = coloredImageDataVar[i]; + var dataForthisBR = new jinqJs() + .from(matchedLocationData) + .where('BRId == ' + bodyRegionId) + .select(); - grayImageDataVar[i] = RED_coloredImage; + for (var z = 0; z < dataForthisBR.length; z++) + { + var location = parseInt(dataForthisBR[z].location); + + var RED_coloredImage = coloredImageDataVar[location]; - var GREEN_coloredImage = coloredImageDataVar[i + 1]; - grayImageDataVar[i + 1] = GREEN_coloredImage; + grayImageDataVar[location] = RED_coloredImage; - var BLUE_coloredImage = coloredImageDataVar[i + 2]; - grayImageDataVar[i + 2] = BLUE_coloredImage; + var GREEN_coloredImage = coloredImageDataVar[location + 1]; + grayImageDataVar[location + 1] = GREEN_coloredImage; - var ALPHA_coloredImage = coloredImageDataVar[i + 3]; - grayImageDataVar[i + 3] = ALPHA_coloredImage; + var BLUE_coloredImage = coloredImageDataVar[location + 2]; + grayImageDataVar[location + 2] = BLUE_coloredImage; - } + var ALPHA_coloredImage = coloredImageDataVar[location + 3]; + grayImageDataVar[location + 3] = ALPHA_coloredImage; - } - - // grayCanvasContext.putImageData(grayImageData, 0, 0); } - grayCanvasContext.putImageData(grayImageData, 0, 0); } - } + } + console.log('End time taken in fillMatchedTerm: ' + new Date().toTimeString().replace(/.*(\d{2}:\d{2}:\d{2}).*/, "$1")); } $scope.GetRGBColor = function (maskCanvasContext, actulalX, actualY, x, y) { diff --git a/400-SOURCECODE/AIAHTML5.Web/app/workeroprocess/term-number-wp.js b/400-SOURCECODE/AIAHTML5.Web/app/workeroprocess/term-number-wp.js index fed79c6..e705e79 100644 --- a/400-SOURCECODE/AIAHTML5.Web/app/workeroprocess/term-number-wp.js +++ b/400-SOURCECODE/AIAHTML5.Web/app/workeroprocess/term-number-wp.js @@ -2,14 +2,19 @@ { - var msg1 = msg; - + var msg1 = msg; + alert(msg1); + worker.postMessage({ + 'cmd': 'getLocationsForMatchedTermsInWholeBody', + 'value': msg1 + }); } self.onmessage = function (e) { - abc(e.data.value); + abc(e.data.termNumber); + } function launchMatchPixelWorkerProcess() { @@ -26,9 +31,6 @@ function launchMatchPixelWorkerProcess() { }; - worker.postMessage({ - 'cmd': 'getLocationsForMatchedTermsInWholeBody', - 'value': 'msg from term-number-wp' - }); + } diff --git a/400-SOURCECODE/AIAHTML5.Web/term-number-wp.js b/400-SOURCECODE/AIAHTML5.Web/term-number-wp.js index 1d413bc..4404553 100644 --- a/400-SOURCECODE/AIAHTML5.Web/term-number-wp.js +++ b/400-SOURCECODE/AIAHTML5.Web/term-number-wp.js @@ -1,17 +1,210 @@ -function abc(msg) -{ +function abc(msg) { + + + var msg1 = msg; - var msg1 = msg; + self.postMessage({ + 'cmd': 'getLocationForMatchedTermsInWholeBody', + 'value': msg1 + }); + + +} + +getLocationForMatchedTermsInWholeBody = function (termNo, maskCanvasData) +{ + + var matchedRGBLocationInBodyRegion = []; + for (var x = 0; x < maskCanvasData.length; x++) { + // alert('called for bodyRegionId: ' + $scope.MaskImageSRC[x].bodyRegionId); + var bodyRegionId = maskCanvasData[x].bodyRegionId; + var canvasId = maskCanvasData[x].canvasId; + var maskData = maskCanvasData[x].maskData; + + // { + //var scaledWidth = $scope.ColoredImageSRC[x].Width; + //var scaledHeight = $scope.ColoredImageSRC[x].Height; + ////var maskImg = $scope.ColoredImageSRC[x].SRC; + + + //var coloredImg = $scope.ColoredImageSRC[x].SRC; + + //var maskImg = $scope.GetMaskImageSource(coloredImg); + + + //var scledX = $scope.ColoredImageSRC[x].x; + //var scledY = $scope.ColoredImageSRC[x].y; + + + //// 1. get mask canvas for this body region. + //var maskCanvasID; + //if ($scope.ColoredImageSRC[x].haveMirror == 'true') { + // maskCanvasID = 'imageCanvas' + bodyRegionId + '_MR_mci'; + //} + //else { + // maskCanvasID = 'imageCanvas' + bodyRegionId + '_mci'; + + //} + //var maskCanvas = document.getElementById(maskCanvasID); + //var maskCanvasContext = maskCanvas.getContext("2d"); + //var maskImgData = maskCanvasContext.getImageData(0, 0, scaledWidth, scaledHeight); + + //// 2. get coloured canvas for this body region. + + + //var coloredImageDataVar; + //var coloredImageDataMRVar + + //if ($scope.ColoredImageSRC[x].haveMirror == 'true') { + + // coloredImageDataVar = $rootScope.coloredImageMRCanvasList[parseInt(bodyRegionId)]; + //} + //else { + // coloredImageDataVar = $rootScope.coloredImageCanvasList[parseInt(bodyRegionId - 1)]; + //} + + //var grayImageDataVar; + //var grayCanvas; + //if ($scope.ColoredImageSRC[x].haveMirror == 'true') { + + // //// 3. get mask canvas for this body region._MR + // var grayCanvasID = 'imageCanvas' + bodyRegionId + '_MR'; + // grayCanvas = document.getElementById(grayCanvasID); + // var grayCanvasContext = grayCanvas.getContext("2d"); + // var grayImageData = grayCanvasContext.getImageData(0, 0, scaledWidth, scaledHeight); + // grayImageDataVar = grayImageData.data; + //} + + //else { + // var grayCanvasID = 'imageCanvas' + bodyRegionId; + // grayCanvas = document.getElementById(grayCanvasID); + // var grayCanvasContext = grayCanvas.getContext("2d"); + // var grayImageData = grayCanvasContext.getImageData(0, 0, scaledWidth, scaledHeight); + // grayImageDataVar = grayImageData.data; + //} + + //var coloredImageDataVarMR; + //var coloredImageDataMR + + + var counter = 0; + + var imageDataVar = maskData.data; + + // var previousBRID; + + var counter = 0; + + + var n = maskData.data.length; + + for (var i = 0; i < n; i += 4) { + + + var RED = imageDataVar[i] - 9; + var GREEN = imageDataVar[i + 1] - 9; + var BLUE = imageDataVar[i + 2] - 9; + + var Red; + var Green; + var Blue; + var zero = "0"; + + if ((RED).toString().length != 2) { + Red = zero.concat((RED).toString()) + } + else { + Red = (RED).toString() + } + if ((GREEN).toString().length != 2) { + Green = zero.concat((GREEN).toString()) + } + else { + Green = (GREEN).toString() + + } + if ((BLUE).toString().length != 2) { + Blue = zero.concat((BLUE).toString()) + } + else { + Blue = (BLUE).toString() + + } + + var Icolor = (Red + Green + Blue); + // alert('Icolor: ' + Icolor) + + if (parseInt(termNo) == parseInt(Icolor)) { + + counter++; + + //var obj = new Object(); + //obj.bodyRegionId = bodyRegionId; + //obj.location = i; + + matchedRGBLocationInBodyRegion.push({ "BRId": bodyRegionId, "location": i }); + + // var have = machedIcolorInBodyRegion.indexOf(bodyRegionId); + + + //if (have == -1) { + // // machedIcolorInBodyRegion.push(bodyRegionId); + //} + //else { + + //} + + + //previousGrayColoredData = i; + //if (coloredImageDataVar != null) { + + + // var RED_coloredImage = coloredImageDataVar[i]; + + // // grayImageDataVar[i] = RED_coloredImage; + + + // var GREEN_coloredImage = coloredImageDataVar[i + 1]; + // /// grayImageDataVar[i + 1] = GREEN_coloredImage; + + // var BLUE_coloredImage = coloredImageDataVar[i + 2]; + // //grayImageDataVar[i + 2] = BLUE_coloredImage; + + + // var ALPHA_coloredImage = coloredImageDataVar[i + 3]; + // // grayImageDataVar[i + 3] = ALPHA_coloredImage; + + + //} + + } + + + // grayCanvasContext.putImageData(grayImageData, 0, 0); + } + self.postMessage({ + 'cmd': 'getLocationsForMatchedTermsInWholeBody', + 'value': matchedRGBLocationInBodyRegion + }); + + // grayCanvasContext.putImageData(grayImageData, 0, 0); + //} + + + } + + + - } self.onmessage = function (e) { - abc(e.data.value); + getLocationForMatchedTermsInWholeBody(e.data.termNumber, e.data.maskCanvasData); + } function launchMatchPixelWorkerProcess() { - + var worker = new Worker('match-pixel-wp.js'); worker.onmessage = function (e) { @@ -23,10 +216,7 @@ function launchMatchPixelWorkerProcess() { alert('Error: Line ' + e.lineno + ' in ' + e.filename + ': ' + e.message); }; - - worker.postMessage({ - 'cmd': 'getLocationsForMatchedTermsInWholeBody', - 'value': 'msg from term-number-wp' - }); + + }