使用javascript在木瓜dicom查看器切片中进行分页

时间:2018-04-11 04:39:55

标签: javascript jquery papaya

我正在使用来自github的木瓜API

在这个番木瓜dicom观众中,我想整合一些东西。

一个是分页。如果我尝试编辑此API,我会收到错误

我想要的是什么: -

  1. 在木瓜观察者NEXT中,PREV工作正常,但我想制作 点击“FIRST”和“LAST slice moving”。
  2. 并且分页也将是1,2,3,4 ...如果点击第一个切片 应该出现。
  3. 提前谢谢

1 个答案:

答案 0 :(得分:2)

下载木瓜医学研究图像查看器后,选择测试文件夹文件,这样就可以了解木瓜Dicom查看器的工作原理。

第1步: -

在js文件夹中打开 constants.js 文件并创建常量

var MOVE_TO_FIRST_SLICE = "move-to-first-slice",
    MOVE_TO_LAST_SLICE = "move-to-last-slice";
    PAGINATION_LIST = "pagination-list";

<强>步骤2: -

现在打开 viewer.js ,在点击功能FIRST,LAST和1,2,3 ...片段(数据值)上创建。

    $(this.container.containerHtml.find("#" + MOVE_TO_FIRST_SLICE + this.container.containerIndex)).click(function () {
        viewer.firstLastSlice(false);
    });

    $(this.container.containerHtml.find("#" + MOVE_TO_LAST_SLICE + this.container.containerIndex)).click(function () {
        viewer.firstLastSlice(true)
    });

    $(this.container.containerHtml.find("." + PAGINATION_LIST + this.container.containerIndex)).click(function () {
        var id = $(this).data('value');
        viewer.pagination(id);
    });

第3步: - 然后打开 main.js 并创建元素

papaya.Container.fillContainerHTML = function (containerHTML, isDefault, params, replaceIndex) {

containerHTML.append("<button type='button' id='"+ (MOVE_TO_FIRST_SLICE + index) + "' class='" + MOVE_TO_FIRST_SLICE + "'>First</button> ");
containerHTML.append("<button type='button' id='"+ (PAPAYA_CONTROL_MAIN_INCREMENT_BUTTON_CSS + index) + "' class='" + PAPAYA_CONTROL_MAIN_INCREMENT_BUTTON_CSS + "'><</button> ");

                var max = 23;
                var slice;
                for(slice=1; slice<=max; slice++){
containerHTML.append("<button id='"+ (PAGINATION_LIST + index) +"' class='"+ (PAGINATION_LIST + index) + "' data-value='" + slice + "'  OnClick(" + slice +") >" + slice + "</button>");
                    }

containerHTML.append("<button id='"+ (PAPAYA_CONTROL_MAIN_DECREMENT_BUTTON_CSS + index) + "' class='" + PAPAYA_CONTROL_MAIN_DECREMENT_BUTTON_CSS + "'>></button> ");              
                containerHTML.append("<button type='button' id='"+ (MOVE_TO_LAST_SLICE + index) + "' class='" + MOVE_TO_LAST_SLICE + "'>Last</button> ");
               containerHTML.append("<button type='button' id='"+ (GET_MAX_VALUE + index) + "' class='" + GET_MAX_VALUE + index + "'>TesT</button> ");
}

<强>第四步: -

以下功能对于移动切片非常重要 viewer.js

//pagination 1,2,3
papaya.viewer.Viewer.prototype.pagination = function (id, paginationList) {
    var max =  this.volume.header.imageDimensions.zDim;
    //console.log(id);
    this.currentCoord.z = id;
    this.gotoCoordinate(this.currentCoord);

   };

// firstLastSlice
papaya.viewer.Viewer.prototype.firstLastSlice = function (flSlice, degree) {
    var max = this.volume.header.imageDimensions.zDim;
    if (degree === undefined) {
        degree = 0; 
    }

    if (flSlice) {
        this.currentCoord.z = max;
    } else {
        this.currentCoord.z = 0;
    }

    this.gotoCoordinate(this.currentCoord);
};

<强>解释

  1. viewer.js 计算了总切片this.volume.header.imageDimensions.zDim;并将总计数存储在 Max 变量中。如果this.currentCoord.z = max;它会转到最后一个切片,如果this.currentCoord.z = 0;它将移动到第一个切片。
  2. 在点击以将数据值传递给viewer.js分页函数的分页中,如果this.currentCoord.z = id(id&lt; =&gt; data-value)它将移动到特定切片。
  3. 使用此功能this.gotoCoordinate(this.currentCoord);单击后,切片将移动。