diff --git a/BackEnd/controllers/authentication.js b/BackEnd/controllers/authentication.js index 47b59681..731e3396 100644 --- a/BackEnd/controllers/authentication.js +++ b/BackEnd/controllers/authentication.js @@ -17,7 +17,7 @@ const login = async function (req, res) { let infosUser = await userObject.getUserRight() let payload = { username: body.username, - name: infosUser.name, + roleName: infosUser.name, roles: { admin: infosUser.admin, import: infosUser.import, diff --git a/BackEnd/model/Users.js b/BackEnd/model/Users.js index 8b0ea291..d8dd7d6d 100644 --- a/BackEnd/model/Users.js +++ b/BackEnd/model/Users.js @@ -199,6 +199,7 @@ class Users { if (role.modify === false) role.modify = currentRole.modify if (role.cd_burner === false) role.cd_burner = currentRole.cd_burner if (role.admin === false) role.admin = currentRole.admin + role.name = currentRole } diff --git a/Documentation/Deployment Sample/OrthancToolsJS/docker-compose.yml b/Documentation/Deployment Sample/OrthancToolsJS/docker-compose.yml index e40f43db..add8e07a 100644 --- a/Documentation/Deployment Sample/OrthancToolsJS/docker-compose.yml +++ b/Documentation/Deployment Sample/OrthancToolsJS/docker-compose.yml @@ -106,8 +106,6 @@ services: ORTHANC__REGISTERED_USERS: | {"salim": "salim"} - - volumes: orthanc: orthancpacs: diff --git a/FrontEnd/src/components/Anonymize/Anonymize/AnonymizePanel.js b/FrontEnd/src/components/Anonymize/Anonymize/AnonymizePanel.js index cc874444..eef58c84 100644 --- a/FrontEnd/src/components/Anonymize/Anonymize/AnonymizePanel.js +++ b/FrontEnd/src/components/Anonymize/Anonymize/AnonymizePanel.js @@ -42,7 +42,7 @@ export default () => { ? study.newAccessionNumber : "OrthancToolsJS", })), - [anonList.length, currentPatient] + [JSON.stringify(anonList), currentPatient] ); const testAllId = () => { diff --git a/FrontEnd/src/components/Anonymize/Anonymize/TablePatientAnonymize.js b/FrontEnd/src/components/Anonymize/Anonymize/TablePatientAnonymize.js index 083fce5a..ec5b69df 100644 --- a/FrontEnd/src/components/Anonymize/Anonymize/TablePatientAnonymize.js +++ b/FrontEnd/src/components/Anonymize/Anonymize/TablePatientAnonymize.js @@ -12,7 +12,7 @@ export default ({ rowStyle, setCurrentPatient }) => { const anonList = useSelector(state => state.AnonList.anonList) - const patients = useMemo(() => studyArrayToPatientArray(anonList), [anonList.length]) + const patients = useMemo(() => studyArrayToPatientArray(anonList), [JSON.stringify(anonList)]) const onRemovePatient = (PatientOrthancID) => { dispatch(removePatientFromAnonList(PatientOrthancID)) diff --git a/FrontEnd/src/components/AutoQuery/Query/QueryRoot.js b/FrontEnd/src/components/AutoQuery/Query/QueryRoot.js index 48aadcb6..9cf889bc 100644 --- a/FrontEnd/src/components/AutoQuery/Query/QueryRoot.js +++ b/FrontEnd/src/components/AutoQuery/Query/QueryRoot.js @@ -13,7 +13,7 @@ import { useCustomQuery } from '../../../services/ReactQuery/hooks' import apis from '../../../services/apis' import { keys } from '../../../model/Constant' import { exportCsv } from '../../../tools/CSVExport' -import { dissmissToast, errorMessage, infoMessage, successMessage, updateToast } from '../../../tools/toastify' +import { dissmissToast, errorMessage, infoMessage, successMessage, updateToastMessage } from '../../../tools/toastify' import { addStudyResult } from '../../../actions/TableResult' import EditQueries from './EditQueries' @@ -56,8 +56,8 @@ export default ({ onQueryFinished }) => { 'Patient Name': row.PatientName, 'Patient ID': row.PatientID, 'Accession Number': row.AccessionNumber, - 'DateFrom': formattedDateFrom, - 'DateTo': formattedDateTo, + 'Date From': formattedDateFrom, + 'Date To': formattedDateTo, 'Study Description': row.StudyDescription, 'Modalities': row.ModalitiesInStudy, 'AET': row.Aet @@ -120,10 +120,10 @@ export default ({ onQueryFinished }) => { const toastId = infoMessage('Starting Studies Queries') - let i = 0 + let i = 1 for (const query of data) { - i++ - updateToast(toastId, 'Query study ' + i + '/' + data.length) + i = i++ + updateToastMessage(toastId, 'Query study ' + i + '/' + data.length) //For each line make dicom query and return results try { let answeredResults = await makeDicomQuery(query) diff --git a/FrontEnd/src/components/AutoQuery/Results/ResultsSeries.js b/FrontEnd/src/components/AutoQuery/Results/ResultsSeries.js index e66eb353..1b98f941 100644 --- a/FrontEnd/src/components/AutoQuery/Results/ResultsSeries.js +++ b/FrontEnd/src/components/AutoQuery/Results/ResultsSeries.js @@ -1,12 +1,13 @@ import React, { useEffect, useMemo, useState } from "react" import { useDispatch, useSelector } from "react-redux" -import { errorMessage, infoMessage, updateToast } from "../../../tools/toastify" +import { errorMessage, infoMessage, updateToastMessage } from "../../../tools/toastify" import { addSeriesDetails, emptyResultsTable, removeSeriesResult } from "../../../actions/TableResult" import ResultsSeriesTable from "./ResultsSeriesTable" import apis from "../../../services/apis" import { Button, Container, Row } from "react-bootstrap" +import { exportCsv } from "../../../tools/CSVExport" export default () => { @@ -28,6 +29,26 @@ export default () => { const [selectedRowIds, setSelectedRowIds] = useState([]) + const onCSVDownload = () => { + + let result = Object.values(data).map(row => { + return { + 'Patient Name': row.PatientName, + 'Patient ID': row.PatientID, + 'Accession Number': row.AccessionNumber, + 'Study Date': row.StudyDate, + 'Study Description': row.StudyDescription , + 'Requested Procedure': row.RequestedProcedureDescription, + 'Series Instance UID': row.SeriesInstanceUID, + 'Series Description': row.SeriesDescription, + 'Modalities': row.Modality, + 'Number of Instances': row.NumberOfSeriesRelatedInstances, + 'AET': row.OriginAET + } + }) + exportCsv(result, 'csv', 'queries.csv') + } + const queryAndAddSeriesDetails = async (studyUID, aet) => { let queryData = { Level: 'Series', @@ -64,9 +85,9 @@ export default () => { const toastId = infoMessage('Starting Series Fetching'); for (let i = 0; i < missingSeriesDetails.length; i++) { await queryAndAddSeriesDetails(missingSeriesDetails[i].StudyInstanceUID, missingSeriesDetails[i].OriginAET) - updateToast(toastId, 'Queried series ' + (i + 1) + '/' + emptyResultArray.length); + updateToastMessage(toastId, 'Queried series ' + (i + 1) + '/' + missingSeriesDetails.length); } - updateToast(toastId, 'Queried series Finihsed'); + updateToastMessage(toastId, 'Queried series Finihsed'); } } @@ -88,6 +109,7 @@ export default () => { return ( +