diff --git a/Packages/ohif-measurements/client/components/measurementTable/measurementTableView/measurementTableView.html b/Packages/ohif-measurements/client/components/measurementTable/measurementTableView/measurementTableView.html
index b5e990d5b..3061c85d0 100644
--- a/Packages/ohif-measurements/client/components/measurementTable/measurementTableView/measurementTableView.html
+++ b/Packages/ohif-measurements/client/components/measurementTable/measurementTableView/measurementTableView.html
@@ -1,7 +1,7 @@
diff --git a/Packages/ohif-measurements/client/components/measurementTable/measurementTableView/measurementTableView.js b/Packages/ohif-measurements/client/components/measurementTable/measurementTableView/measurementTableView.js
index e06235aa8..3f48ba984 100644
--- a/Packages/ohif-measurements/client/components/measurementTable/measurementTableView/measurementTableView.js
+++ b/Packages/ohif-measurements/client/components/measurementTable/measurementTableView/measurementTableView.js
@@ -1,7 +1,27 @@
import { Template } from 'meteor/templating';
+import { Tracker } from 'meteor/tracker';
import { _ } from 'meteor/underscore';
import { OHIF } from 'meteor/ohif:core';
+Template.measurementTableView.onCreated(() => {
+ const instance = Template.instance();
+ const { measurementApi, timepointApi } = instance.data;
+
+ instance.data.measurementGroups = new ReactiveVar();
+
+ Tracker.autorun(() => {
+ measurementApi.changeObserver.depend();
+ const data = OHIF.measurements.getMeasurementsGroupedByNumber(measurementApi, timepointApi);
+ instance.data.measurementGroups.set(data);
+ });
+});
+
+Template.measurementTableView.events({
+ 'click .js-pdf'(event, instance) {
+ OHIF.measurements.exportPdf(instance.data.measurementGroups.get());
+ }
+});
+
Template.measurementTableView.helpers({
getNewMeasurementType(tool) {
// TODO: Check Conformance criteria here.
@@ -14,11 +34,6 @@ Template.measurementTableView.helpers({
};
},
- getMeasurementsGroupedByNumber() {
- const { measurementApi, timepointApi } = Template.instance().data;
- return OHIF.measurements.getMeasurementsGroupedByNumber(measurementApi, timepointApi);
- },
-
newMeasurements(measurementType) {
const instance = Template.instance();
const measurementApi = instance.data.measurementApi;
diff --git a/Packages/ohif-measurements/client/lib/exportPdf.js b/Packages/ohif-measurements/client/lib/exportPdf.js
index 26bc7ad2e..ca6ce626e 100644
--- a/Packages/ohif-measurements/client/lib/exportPdf.js
+++ b/Packages/ohif-measurements/client/lib/exportPdf.js
@@ -6,6 +6,49 @@ import html2canvas from 'html2canvas';
window.jsPDF = jsPDF;
window.html2canvas = html2canvas;
+OHIF.measurements.exportPdf = measurementGroups => {
+ console.warn('>>>>Adding canvas to body', measurementGroups);
+
+ const $element = $('
').css({
+ border: '1px solid red',
+ height: 1000,
+ left: 0,
+ position: 'fixed',
+ top: 0,
+ width: 1000,
+ 'z-index': 100000
+ });
+
+ $element.appendTo(document.body);
+
+ const element = $element[0];
+
+ cornerstone.enable(element, { renderer: 'webgl' });
+
+ const measurements = {
+ targets: [],
+ nonTargets: []
+ };
+ measurementGroups.forEach(measurementGroup => {
+ const { toolGroup, measurementRows } = measurementGroup;
+ measurementRows.forEach(rowItem => {
+ rowItem.entries.forEach(entry => measurements[toolGroup.id].push(entry));
+ });
+ });
+
+ let i = 0;
+ measurements.targets.forEach(target => {
+ setTimeout(() => {
+ cornerstone.loadImage(target.imageId).then(image => {
+ cornerstone.displayImage(element, image);
+ });
+ }, i * 1000);
+ i++;
+ });
+
+ setTimeout(() => $element.remove(), i * 1000);
+};
+
// window.exportCanvasToPdf = canvas => {
// // only jpeg is supported by jsPDF
// const imgData = canvas.toDataURL('image/jpeg', 1.0);
diff --git a/Packages/ohif-measurements/package.js b/Packages/ohif-measurements/package.js
index 122152451..7df485665 100644
--- a/Packages/ohif-measurements/package.js
+++ b/Packages/ohif-measurements/package.js
@@ -1,7 +1,8 @@
Npm.depends({
ajv: '4.10.4',
jspdf: '1.3.2',
- html2canvas: '0.5.0-beta4'
+ html2canvas: '0.5.0-beta4',
+ pdfmake: '0.1.24'
});
Package.describe({