modified-dicom-pacs 1.0.1 → 1.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/bin/dicomweb-pacs CHANGED
@@ -3,16 +3,22 @@
3
3
  const config = require('config');
4
4
  var fs = require('fs');
5
5
  const fs1 = require('fs-extra');
6
+ const path = require('path');
6
7
  var spawn = require('child_process').spawn;
7
- console.log('starting dicomweb-pacs...');
8
+ console.log("startServer runs?");
8
9
 
9
- process.chdir('./node_modules/dicomweb-pacs');
10
+ // console.log("Current __dirname:", __dirname);
11
+ let baseDir = path.resolve(__dirname.split('webpacsApp')[0]);
12
+ // console.log("baseDir", baseDir);
13
+
14
+ console.log('starting modified-dicom-pacs...');
15
+
16
+ process.chdir('./node_modules/modified-dicom-pacs');
10
17
  const ls = spawn('node', ['src/app.js']);
11
18
 
12
- console.log("checkpath=-=-", `${__dirname.split('\\webpacsApp')[0]}\\webpacsApp\\node_modules\\dicomweb-pacs\\Testss.Txt`);
13
- let TestsTxtFile = `${__dirname.split('\\webpacsApp')[0]}\\webpacsApp\\node_modules\\dicomweb-pacs\\Testss.Txt`;
14
- let getTxtFile = `${__dirname.split('\\webpacsApp')[0]}\\webpacsApp\\node_modules\\dicomweb-pacs\\getText.txt`;
15
- let DataNativeFolder = `${__dirname.split('\\webpacsApp')[0]}\\data\\Native`;
19
+ let TestsTxtFile = path.join(baseDir, 'webpacsApp', 'node_modules', 'modified-dicom-pacs', 'Testss.Txt');
20
+ let getTxtFile = path.join(baseDir, 'webpacsApp', 'node_modules', 'modified-dicom-pacs', 'getText.txt');
21
+ let DataNativeFolder = path.join(baseDir, 'data', 'Native');
16
22
 
17
23
  ls.stdout.on('data', (data) => {
18
24
  console.log(`stdout mao out: ${data}`)
package/config/default.js CHANGED
@@ -1,3 +1,8 @@
1
+ const path = require('path');
2
+
3
+ let baseDir = path.resolve(__dirname.split('webpacsApp')[0]);
4
+ let DataNativeFolder = path.join(baseDir, 'data', 'Native');
5
+
1
6
  const config = {
2
7
 
3
8
  //helical app
@@ -22,7 +27,7 @@ const config = {
22
27
  transferSyntax: '1.2.840.10008.1.2.4.70', // attention: compression not yet working with wado-rs
23
28
  logDir: "./logs",
24
29
  // storagePath: `${__dirname.split("\\dicomweb-pacs\\config\\")[0]}\\data\\Native`,
25
- storagePath: `${__dirname.split('\\webpacsApp')[0]}\\data\\Native`,
30
+ storagePath: DataNativeFolder,
26
31
  webserverPort: 5001,
27
32
  qidoMinChars: 0, // do not issue c-find if search contains less characters
28
33
  qidoAppendWildcard: true, // auto append * for patient name query
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "modified-dicom-pacs",
3
- "version": "1.0.1",
3
+ "version": "1.0.5",
4
4
  "description": "A modified version of DICOM PACS implementation",
5
5
  "main": "app.js",
6
6
  "scripts": {
@@ -9,7 +9,7 @@
9
9
  },
10
10
  "repository": {
11
11
  "type": "git",
12
- "url": "git+https://github.com/MuhammadHassaanMahmood5550/modified-dicom-pacs.git"
12
+ "url": "https://github.com/knopkem/dicomweb-pacs"
13
13
  },
14
14
  "keywords": [
15
15
  "DICOMWEB",
@@ -22,9 +22,9 @@
22
22
  "dicomweb-pacs": "bin/dicomweb-pacs"
23
23
  },
24
24
  "bugs": {
25
- "url": "https://github.com/MuhammadHassaanMahmood5550/modified-dicom-pacs/issues"
25
+ "url": "https://github.com/knopkem/dicomweb-pacs/issues"
26
26
  },
27
- "homepage": "https://github.com/MuhammadHassaanMahmood5550/modified-dicom-pacs#readme",
27
+ "homepage": "https://github.com/knopkem/dicomweb-pacs#readme",
28
28
  "dependencies": {
29
29
  "config": "^3.3.9",
30
30
  "dicom-data-dictionary": "^0.3.1",
package/src/app.js CHANGED
@@ -10,11 +10,12 @@ const dimse = require('dicom-dimse-native');
10
10
  const fs1 = require('fs-extra');
11
11
  // let DataNativeFolder = `${__dirname.split("\\node_modules\\dicomweb-pacs\\")[0]}\\data\\Native`;
12
12
  // let DataNativeFolder = `${__dirname.split('\\DicomPacs\\dicomweb-pacs\\src')[0]}\\data\\Native`;
13
- console.log("checkpath=-=-", `${__dirname.split('\\webpacsApp')[0]}\\data\\Native`);
14
- let DataNativeFolder = `${__dirname.split('\\webpacsApp')[0]}\\data\\Native`;
15
- console.log("checkpath after=-=-", DataNativeFolder);
16
13
 
17
- let getTxtFile = `${__dirname.split('\\webpacsApp')[0]}\\webpacsApp\\calling.txt`;
14
+ let baseDir = path.resolve(__dirname.split('webpacsApp')[0]);
15
+ let DataNativeFolder = path.join(baseDir, 'data', 'Native');
16
+ let DataTargerFolder = path.join(baseDir, 'data', 'Target');
17
+ let getTxtFile = path.join(baseDir, 'webpacsApp', 'calling.txt');
18
+ let databaseFile = path.join(baseDir, 'database.sqlite3');
18
19
 
19
20
  // console.log(`${__dirname.split("\\\Pacs2\\dicomweb-pacs\\src")[0]}\\database.sqlite3`,"*******Path DataNative********")
20
21
  console.log(DataNativeFolder, '*******Path DataNative********');
@@ -307,7 +308,7 @@ fastify.listen(port, '0.0.0.0', (err, address) => {
307
308
  var preAetLength;
308
309
 
309
310
  //connection starts
310
- let db = new sqlite3.Database(`${__dirname.split('\\webpacsApp')[0]}\\database.sqlite3`, sqlite3.OPEN_READWRITE, (err) => {
311
+ let db = new sqlite3.Database(databaseFile, sqlite3.OPEN_READWRITE, (err) => {
311
312
  if (err) {
312
313
  return console.error('line 11 database err', err.message);
313
314
  }
@@ -335,7 +336,7 @@ fastify.listen(port, '0.0.0.0', (err, address) => {
335
336
  newAetLength = await rows.length;
336
337
  });
337
338
 
338
- await console.log('preAetLength', preAetLength, 'newAetLength', newAetLength);
339
+ // await console.log('preAetLength', preAetLength, 'newAetLength', newAetLength);
339
340
 
340
341
  if (newAetLength != preAetLength && newAetLength != 'undefined' && newAetLength != '' && newAetLength != null) {
341
342
  console.log('chalaaaaa');
@@ -371,13 +372,13 @@ fastify.listen(port, '0.0.0.0', (err, address) => {
371
372
  //database target work srats
372
373
  // read data from database target starts
373
374
  setInterval(() => {
374
- console.log('MsourceMsourceMsourceMsource', Msource);
375
+ // console.log('MsourceMsourceMsourceMsource', Msource);
375
376
 
376
377
  sql = `SELECT * FROM TargetNode`;
377
378
  db.all(sql, [], (err, rows) => {
378
379
  if (err) return console.error('line 306 database error', err.message);
379
380
 
380
- console.log('db appjssssssssssssss', rows, 'length=', rows.length);
381
+ // console.log('db appjssssssssssssss', rows, 'length=', rows.length);
381
382
 
382
383
  if (rows.length > 0) {
383
384
  console.log('yes target exist');
@@ -388,7 +389,7 @@ fastify.listen(port, '0.0.0.0', (err, address) => {
388
389
  // j.target = j.source;
389
390
  j.target = rows[0];
390
391
  // j.sourcePath = path.join(__dirname, '../../../data/Target');
391
- j.sourcePath = `${__dirname.split('\\DicomPacs\\dicomweb-pacs\\src')[0]}\\data\\Target`;
392
+ j.sourcePath = DataTargerFolder;
392
393
  // j.sourcePath = path.join(__dirname, '../export');
393
394
  j.verbose = true;
394
395
  dimse.storeScu(j, (result) => {
@@ -397,12 +398,12 @@ fastify.listen(port, '0.0.0.0', (err, address) => {
397
398
  console.log(JSON.parse(result));
398
399
  if (JSON.parse(result).message == 'request succeeded' || JSON.parse(result).message == 'Failed to send DICOM files to target') {
399
400
  // fs1.emptyDirSync(path.join(__dirname, '../../../data/Target'));
400
- fs1.emptyDirSync(`${__dirname.split('\\DicomPacs\\dicomweb-pacs\\src')[0]}\\data\\Target`);
401
+ fs1.emptyDirSync(DataTargerFolder);
401
402
  }
402
403
 
403
404
  if (JSON.parse(result).message == 'Target not set') {
404
405
  // fs1.emptyDirSync(path.join(__dirname, '../../../data/Target'));
405
- fs1.emptyDirSync(`${__dirname.split('\\DicomPacs\\dicomweb-pacs\\src')[0]}\\data\\Target`);
406
+ fs1.emptyDirSync(DataTargerFolder);
406
407
  }
407
408
  } catch (e) {
408
409
  console.error(e, result);
@@ -427,6 +428,7 @@ fastify.listen(port, '0.0.0.0', (err, address) => {
427
428
 
428
429
  //----------------------------------------change froldes starts-----------------------------
429
430
  setInterval(() => {
431
+ // console.log("chnage folder setInterval running");
430
432
  fs.stat(DataNativeFolder, (err, stats) => {
431
433
  if (err) {
432
434
  console.log("check err is 432", err);
@@ -1,229 +1,221 @@
1
- 'use strict';
1
+ #!/usr/bin/env node
2
+ "use strict";
2
3
  const config = require('config');
3
4
  var fs = require('fs');
4
5
  const fs1 = require('fs-extra');
6
+ const path = require('path');
5
7
  var spawn = require('child_process').spawn;
8
+ console.log("startServer runs?");
6
9
 
7
- process.chdir('./node_modules/dicomweb-pacs');
10
+ // console.log("Current __dirname:", __dirname);
11
+ let baseDir = path.resolve(__dirname.split('webpacsApp')[0]);
12
+ // console.log("baseDir", baseDir);
8
13
 
9
- let TestsTxtFile = `${__dirname.split('\\webpacsApp')[0]}\\webpacsApp\\node_modules\\dicomweb-pacs\\Testss.Txt`;
10
- let getTxtFile = `${__dirname.split('\\webpacsApp')[0]}\\webpacsApp\\node_modules\\dicomweb-pacs\\getText.txt`;
11
- let DataNativeFolder = `${__dirname.split('\\webpacsApp')[0]}\\data\\Native`;
14
+ console.log('starting modified-dicom-pacs...');
12
15
 
13
- // This fixes dicom-pacs in Unix-like file systems (MacOS/Linux...) where backslashes are used instead of forward slashes like on Windows
14
- if (__dirname.split('dicomweb-pacs\\').length <= 1) {
15
- TestsTxtFile = `${__dirname.split('\\webpacsApp')[0]}\\webpacsApp\\node_modules\\dicomweb-pacs\\Testss.Txt`;
16
- getTxtFile = `${__dirname.split('\\webpacsApp')[0]}\\webpacsApp\\node_modules\\dicomweb-pacs\\getText.txt`;
17
- DataNativeFolder = `${__dirname.split('\\webpacsApp')[0]}\\data\\Native`;
18
- }
16
+ process.chdir('./node_modules/modified-dicom-pacs');
17
+ const ls = spawn('node', ['src/app.js']);
19
18
 
20
- function startServer() {
21
- console.log('starting dicomweb-pacs...');
22
- const ls = spawn('node', ['src/app.js']);
19
+ let TestsTxtFile = path.join(baseDir, 'webpacsApp', 'node_modules', 'modified-dicom-pacs', 'Testss.Txt');
20
+ let getTxtFile = path.join(baseDir, 'webpacsApp', 'node_modules', 'modified-dicom-pacs', 'getText.txt');
21
+ let DataNativeFolder = path.join(baseDir, 'data', 'Native');
23
22
 
24
- ls.stdout.on('data', (data) => {
25
- console.log(`stdout mao out: ${data}`);
26
- });
23
+ ls.stdout.on('data', (data) => {
24
+ console.log(`stdout mao out: ${data}`)
25
+ });
27
26
 
28
- ls.stderr.on('data', (data) => {
29
- fs.appendFileSync(TestsTxtFile, data);
30
- const contents2 = fs.readFileSync(TestsTxtFile, 'utf-8');
27
+ ls.stderr.on('data', (data) => {
28
+
29
+ fs.appendFileSync(TestsTxtFile, data);
30
+ const contents2 = fs.readFileSync(TestsTxtFile, 'utf-8');
31
31
 
32
- var newString = contents2.toString();
32
+ var newString = contents2.toString();
33
33
 
34
- let result1 = newString.replace(/\s/g, '');
34
+ let result1 = newString.replace(/\s/g, '');
35
35
 
36
- let result2 = result1.replace(/['"]+/g, '');
36
+ let result2 = result1.replace(/['"]+/g, '');
37
37
 
38
- const citrus = result2.slice(result2.indexOf('I:AssociationReceived') + 37, result2.indexOf('I:AssociationReceived') + 75);
38
+ const citrus = result2.slice(result2.indexOf("I:AssociationReceived") + 37, result2.indexOf("I:AssociationReceived") + 75);
39
39
 
40
- var mySubString = citrus.substring(citrus.indexOf(':') + 1, citrus.lastIndexOf('->'));
40
+ var mySubString = citrus.substring(
41
+ citrus.indexOf(":") + 1,
42
+ citrus.lastIndexOf("->")
43
+ );
41
44
 
42
- if (
43
- mySubString != 'DICOMWEB_PACS' &&
44
- mySubString.length > 2 &&
45
- mySubString.length < 20 &&
46
- !mySubString.includes(':') &&
47
- !mySubString.includes('.') &&
48
- !mySubString.includes('&')
49
- ) {
50
- fs.writeFileSync(getTxtFile, mySubString);
51
- }
45
+ if(mySubString != "DICOMWEB_PACS" && mySubString.length > 2 && mySubString.length < 20 && !mySubString.includes(":") && !mySubString.includes(".") && !mySubString.includes("&")){
46
+ fs.writeFileSync(getTxtFile, mySubString);
47
+ }
52
48
 
53
- //latest code
49
+
50
+ //latest code
54
51
 
55
- //1. catch edit aet and create folder.
56
- const gettext = fs.readFileSync(getTxtFile, 'utf8');
57
- console.log('gettext', gettext);
52
+ //1. catch edit aet and create folder.
53
+ const gettext = fs.readFileSync(getTxtFile, 'utf8');
54
+ console.log("gettext", gettext);
58
55
 
59
- //read folders in Native
60
- try{
61
- const getfolder = fs.readdirSync(DataNativeFolder);
62
- }catch(err){
63
- console.log("check err is 63", err);
56
+ //read folders in Native
57
+ const getfolder = fs.readdirSync(DataNativeFolder);
58
+ console.log("getfolder", getfolder);
64
59
 
60
+ const getfolder2 = getfolder.filter((cur) => cur != "image.db");
61
+
62
+ //get latest time folder then replace with desktop name
63
+ let dateaArr = [];
64
+ let nameOfLatestFolder = "";
65
+ for(var i = 0; i < getfolder2.length - 1; i++){
66
+
67
+ fs.stat(`${DataNativeFolder}/${getfolder2[i]}`, (error, stats) => {
68
+ // in case of any error
69
+ if (error) {
70
+ console.log(error);
71
+ return;
65
72
  }
66
- const getfolder = fs.readdirSync(DataNativeFolder);
67
- console.log('getfolder', getfolder);
68
-
69
- const getfolder2 = getfolder.filter((cur) => cur != 'image.db');
70
-
71
- //get latest time folder then replace with desktop name
72
- let dateaArr = [];
73
- let nameOfLatestFolder = '';
74
- for (var i = 0; i < getfolder2.length - 1; i++) {
75
- fs.stat(`${DataNativeFolder}/${getfolder2[i]}`, (error, stats) => {
76
- // in case of any error
77
- if (error) {
78
- console.log("check err is 72", error);
79
- return;
80
- }
81
- // else show creation time from stats object
82
- console.log('File created at: ', stats.birthtime);
83
- dateaArr.push(stats.birthtime);
84
- console.log('dateaArr === ', dateaArr);
85
- console.log('Folders === ', getfolder2);
86
- //find latest created folder
87
- var largest = 0;
88
- for (i = 0; i < dateaArr.length; i++) {
89
- if (dateaArr[i] > largest) {
90
- largest = dateaArr[i];
91
- }
73
+ // else show creation time from stats object
74
+ console.log("File created at: ", stats.birthtime);
75
+ dateaArr.push(stats.birthtime);
76
+ console.log("dateaArr === ", dateaArr);
77
+ console.log("Folders === ", getfolder2);
78
+ //find latest created folder
79
+ var largest= 0;
80
+ for (i=0; i<dateaArr.length; i++){
81
+ if (dateaArr[i]>largest) {
82
+ largest=dateaArr[i];
92
83
  }
93
- //find index of latest created folder and name of that folder
94
- const indexOfLatestDate = dateaArr.indexOf(largest);
95
- nameOfLatestFolder = getfolder2[indexOfLatestDate];
96
- });
97
84
  }
98
-
99
- //create folder of gettext
100
- // setTimeout(() => {
101
- // console.log("start");
102
- // fs.readFile(getTxtFile, 'utf8', function(err, data){
103
- // if(data){
104
- // if(data != "DICOMWEB_PACS"){
105
- // var dir = `${DataNativeFolder}/${data}`;
106
- // // if (!fs.existsSync(dir)){
107
- // // fs.mkdirSync(dir);
108
- // // }
109
- // }
110
- // }else{
111
- // console.log("see data", err);
112
- // }
113
- // });
114
- // }, 1000);
115
-
116
- // //now sote incoming file in date folder, date can be created wehn file sent
117
- // setTimeout(() => {
118
- // if(nameOfLatestFolder.includes(".")){
119
- // const src = `${DataNativeFolder}/${nameOfLatestFolder}`
120
- // const d = new Date();
121
- // const day = d.getDate();
122
- // const year = d.getFullYear();
123
- // const month = d.getMonth() + 1;
124
- // let finalDate = `${year}${month}${day}`
125
- // const dest = `${DataNativeFolder}/${gettext}/${finalDate}/${nameOfLatestFolder}`
126
- // if(gettext != "DICOMWEB_PACS" && gettext.length > 2 && gettext.length < 20){
127
- // fs1.move(src, dest, { overwrite: false }, function(err, data){
128
- // if(data){
129
- // console.log("files has been succcessfully moved", data);
130
- // }else{
131
- // console.log("files has not been moved", err);
132
- // }
133
- // });
134
- // }
135
- // }
136
- // }, 12000);
137
-
138
- // //----------------------------------------reading tags starts-----------------------------
139
- // setInterval(() => {
140
- // fs.stat(DataNativeFolder, (err, stats) => {
141
- // if (err) {
142
- // throw err
143
- // }
144
-
145
- // var diff = Math.abs(new Date() - stats.ctime);
146
- // function millisToMinutesAndSeconds(millis) {
147
- // var minutes = Math.floor(millis / 60000);
148
- // var seconds = ((millis % 60000) / 1000).toFixed(0);
149
- // return minutes + ":" + (seconds < 10 ? '0' : '') + seconds;
150
- // }
151
- // // console.log("differencedifferencedifference=", millisToMinutesAndSeconds(diff));
152
-
153
- // var timeSplit = millisToMinutesAndSeconds(diff).split(":");
154
- // // console.log("splitsplitsplit", timeSplit[0]);
155
- // // var delay = Math.ceil(files.length/25);
156
- // console.log("change folder interval is ", timeSplit);
157
-
158
- // if(parseInt(timeSplit[0]) >= 1 || parseInt(timeSplit[1]) >= 50){
159
-
160
- // fs.readdir(DataNativeFolder, (err, topFolders) => {
161
- // if (err)
162
- // console.log(err);
163
- // else {
164
- // if(topFolders.length > 1){
165
- // var Mfolders1 = topFolders.filter((cur) => cur !== 'image.db');
166
- // var Mfolders2 = Mfolders1.filter((cur) => cur.includes("."));
167
-
168
- // if(Mfolders2.length >= 1){
169
-
170
- // console.log("Mfolders2Mfolders2", Mfolders2);
171
-
172
- // const gettext = fs.readFileSync(getTxtFile, 'utf8');
173
- // console.log("gettext", gettext);
174
-
175
- // Mfolders2.forEach((cur) => {
176
-
177
- // const src = `${DataNativeFolder}/${cur}`
178
- // const d = new Date();
179
- // const day = d.getDate();
180
- // const year = d.getFullYear();
181
- // const month = d.getMonth() + 1;
182
- // let finalDate = `${year}${month}${day}`
183
- // const dest = `${DataNativeFolder}/${gettext}/${finalDate}/${cur}`
184
- // if(gettext != "DICOMWEB_PACS" && gettext.length > 2 && gettext.length < 20){
185
- // fs1.move(src, dest, { overwrite: false }, function(err, data){
186
- // if(data){
187
- // console.log("files has been succcessfully moved", data);
188
- // }else{
189
- // console.log("files has not been moved", err);
190
- // }
191
- // });
192
- // }
193
-
194
- // });
195
-
196
- // }
197
-
198
- // }
199
-
200
- // }
201
- // });
202
-
203
- // }
204
- // })
205
-
206
- // }, 5000);
207
-
208
- // //--------------------------------reding tags ends-----------------------------------
209
-
210
- setTimeout(() => {
211
- fs.writeFileSync(TestsTxtFile, '');
212
- console.log('set time out for test.txt clear nameOfLatestFolder', nameOfLatestFolder);
213
- console.log('gettext length', gettext.length);
214
-
215
- if (gettext.length > 2) {
216
- console.log('yes greater than 1', gettext.length);
217
- } else {
218
- console.log('no not greater than 1', gettext.length);
219
- }
220
- }, 2000);
221
- console.error(`stderr mao err: ${data}`);
222
- });
223
-
224
- ls.on('close', (code) => {
225
- console.log(`child process exited with code ${code}`);
85
+ //find index of latest created folder and name of that folder
86
+ const indexOfLatestDate = dateaArr.indexOf(largest);
87
+ nameOfLatestFolder = getfolder2[indexOfLatestDate];
226
88
  });
227
89
  }
228
90
 
229
- module.exports = startServer;
91
+ //create folder of gettext
92
+ // setTimeout(() => {
93
+ // console.log("start");
94
+ // fs.readFile(getTxtFile, 'utf8', function(err, data){
95
+ // if(data){
96
+ // if(data != "DICOMWEB_PACS"){
97
+ // var dir = `${DataNativeFolder}/${data}`;
98
+ // // if (!fs.existsSync(dir)){
99
+ // // fs.mkdirSync(dir);
100
+ // // }
101
+ // }
102
+ // }else{
103
+ // console.log("see data", err);
104
+ // }
105
+ // });
106
+ // }, 1000);
107
+
108
+ // //now sote incoming file in date folder, date can be created wehn file sent
109
+ // setTimeout(() => {
110
+ // if(nameOfLatestFolder.includes(".")){
111
+ // const src = `${DataNativeFolder}/${nameOfLatestFolder}`
112
+ // const d = new Date();
113
+ // const day = d.getDate();
114
+ // const year = d.getFullYear();
115
+ // const month = d.getMonth() + 1;
116
+ // let finalDate = `${year}${month}${day}`
117
+ // const dest = `${DataNativeFolder}/${gettext}/${finalDate}/${nameOfLatestFolder}`
118
+ // if(gettext != "DICOMWEB_PACS" && gettext.length > 2 && gettext.length < 20){
119
+ // fs1.move(src, dest, { overwrite: false }, function(err, data){
120
+ // if(data){
121
+ // console.log("files has been succcessfully moved", data);
122
+ // }else{
123
+ // console.log("files has not been moved", err);
124
+ // }
125
+ // });
126
+ // }
127
+ // }
128
+ // }, 12000);
129
+
130
+ // //----------------------------------------reading tags starts-----------------------------
131
+ // setInterval(() => {
132
+ // fs.stat(DataNativeFolder, (err, stats) => {
133
+ // if (err) {
134
+ // throw err
135
+ // }
136
+
137
+ // var diff = Math.abs(new Date() - stats.ctime);
138
+ // function millisToMinutesAndSeconds(millis) {
139
+ // var minutes = Math.floor(millis / 60000);
140
+ // var seconds = ((millis % 60000) / 1000).toFixed(0);
141
+ // return minutes + ":" + (seconds < 10 ? '0' : '') + seconds;
142
+ // }
143
+ // // console.log("differencedifferencedifference=", millisToMinutesAndSeconds(diff));
144
+
145
+ // var timeSplit = millisToMinutesAndSeconds(diff).split(":");
146
+ // // console.log("splitsplitsplit", timeSplit[0]);
147
+ // // var delay = Math.ceil(files.length/25);
148
+ // console.log("change folder interval is ", timeSplit);
149
+
150
+ // if(parseInt(timeSplit[0]) >= 1 || parseInt(timeSplit[1]) >= 50){
151
+
152
+
153
+ // fs.readdir(DataNativeFolder, (err, topFolders) => {
154
+ // if (err)
155
+ // console.log(err);
156
+ // else {
157
+ // if(topFolders.length > 1){
158
+ // var Mfolders1 = topFolders.filter((cur) => cur !== 'image.db');
159
+ // var Mfolders2 = Mfolders1.filter((cur) => cur.includes("."));
160
+
161
+ // if(Mfolders2.length >= 1){
162
+
163
+ // console.log("Mfolders2Mfolders2", Mfolders2);
164
+
165
+ // const gettext = fs.readFileSync(getTxtFile, 'utf8');
166
+ // console.log("gettext", gettext);
167
+
168
+ // Mfolders2.forEach((cur) => {
169
+
170
+ // const src = `${DataNativeFolder}/${cur}`
171
+ // const d = new Date();
172
+ // const day = d.getDate();
173
+ // const year = d.getFullYear();
174
+ // const month = d.getMonth() + 1;
175
+ // let finalDate = `${year}${month}${day}`
176
+ // const dest = `${DataNativeFolder}/${gettext}/${finalDate}/${cur}`
177
+ // if(gettext != "DICOMWEB_PACS" && gettext.length > 2 && gettext.length < 20){
178
+ // fs1.move(src, dest, { overwrite: false }, function(err, data){
179
+ // if(data){
180
+ // console.log("files has been succcessfully moved", data);
181
+ // }else{
182
+ // console.log("files has not been moved", err);
183
+ // }
184
+ // });
185
+ // }
186
+
187
+ // });
188
+
189
+
190
+ // }
191
+
192
+ // }
193
+
194
+ // }
195
+ // });
196
+
197
+ // }
198
+ // })
199
+
200
+ // }, 5000);
201
+
202
+
203
+ // //--------------------------------reding tags ends-----------------------------------
204
+
205
+ setTimeout(() => {
206
+ fs.writeFileSync(TestsTxtFile, "");
207
+ console.log("set time out for test.txt clear nameOfLatestFolder", nameOfLatestFolder);
208
+ console.log("gettext length", gettext.length);
209
+
210
+ if(gettext.length > 2){
211
+ console.log("yes greater than 1", gettext.length);
212
+ }else{
213
+ console.log("no not greater than 1", gettext.length);
214
+ }
215
+ }, 2000);
216
+ console.error(`stderr mao err: ${data}`);
217
+ });
218
+
219
+ ls.on('close', (code) => {
220
+ console.log(`child process exited with code ${code}`);
221
+ });
package/src/utils.js CHANGED
@@ -8,11 +8,12 @@ const shell = require('shelljs');
8
8
  const path = require('path');
9
9
  const sqlite3 = require('sqlite3').verbose();
10
10
  let sql;
11
+ let baseDir = path.resolve(__dirname.split('webpacsApp')[0]);
11
12
  // // open database in memory
12
13
  // console.log("path=-=", path.join(__dirname, '../../../database.sqlite3'));
13
-
14
+ let databaseFile = path.join(baseDir, 'database.sqlite3');
14
15
  //connect to db
15
- let db = new sqlite3.Database(`${__dirname.split('\\webpacsApp')[0]}\\database.sqlite3`, sqlite3.OPEN_READWRITE, (err) => {
16
+ let db = new sqlite3.Database(databaseFile, sqlite3.OPEN_READWRITE, (err) => {
16
17
  if (err) {
17
18
  return console.error('line 11 database err', err.message);
18
19
  }