Skip to content

Commit

Permalink
Merge pull request #873 from salimkanoun/dev
Browse files Browse the repository at this point in the history
Dev
  • Loading branch information
salimkanoun authored Jul 20, 2023
2 parents 0a3c3b3 + 9fb10ce commit b682dbd
Show file tree
Hide file tree
Showing 4 changed files with 101 additions and 12 deletions.
1 change: 1 addition & 0 deletions BackEnd/model/Orthanc.js
Original file line number Diff line number Diff line change
Expand Up @@ -450,6 +450,7 @@ class Orthanc {
KeepPrivateTags: false,
Force: true,
Synchronous: synchronous,
DicomVersion : "2021b",
Keep: [],
Replace: {}
}
Expand Down
44 changes: 33 additions & 11 deletions FrontEnd/src/components/AutoQuery/Query/QuerySeries.jsx
Original file line number Diff line number Diff line change
@@ -1,6 +1,22 @@
import React, { useState } from 'react'
import { useDispatch, useSelector } from 'react-redux'

import { Button, Container, Modal, Row } from 'react-bootstrap'
import moment from 'moment'

import Spinner from '../../CommonComponents/Spinner'
import CsvLoader from './CsvLoader'
import QueryTable from './QueryTable'

import { addRow, emptyQueryTable, removeQuery } from '../../../actions/TableQuery'
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, updateToastMessage } from '../../../tools/toastify'
import { addStudyResult } from '../../../actions/TableResult'
import EditQueries from './EditQueries'
import QueryTableSeries from './QueryTableSeries'

export default ((onQuerySeriesFinished)=> {

Expand All @@ -17,6 +33,8 @@ export default ((onQuerySeriesFinished)=> {
)
const queries = useSelector(state => state.AutoRetrieveQueryList.queries)

console.log("queries : ", queries)

const onRowClick = (rowId) => {
setCurrentRow(rowId)
}
Expand All @@ -34,19 +52,23 @@ export default ((onQuerySeriesFinished)=> {
}

const onCSVDownload = () => {
let data = queries.map(row => {
let result = Object.values(data).map(row => {
return {
/*'Patient Name': row.PatientName,
'Patient Name': row.PatientName,
'Patient ID': row.PatientID,
'Accession Number': row.AccessionNumber,
'Date From': formattedDateFrom,
'Date To': formattedDateTo,
'Study Description': row.StudyDescription,
'Modalities': row.ModalitiesInStudy,
'AET': row.Aet*/
'Study Date': row.StudyDate,
'Study Description': row.StudyDescription ,
'Requested Procedure': row.RequestedProcedureDescription,
'Study Instance UID' : row.StudyInstanceUID,
'Series Instance UID': row.SeriesInstanceUID,
'Series Description': row.SeriesDescription,
'Modalities': row.Modality,
'Number of Instances': row.NumberOfSeriesRelatedInstances,
'AET': row.OriginAET
}
})
exportCsv(data, 'csv', 'queriesSeries.csv')
exportCsv(result, 'csv', 'queriesSeries.csv')
}

const makeDicomQuery = async (queryParams) => {
Expand Down Expand Up @@ -108,15 +130,15 @@ export default ((onQuerySeriesFinished)=> {
i = i++
updateToastMessage(toastId, 'Query series ' + i + '/' + data.length)
//For each line make dicom query and return results
try {
/*try {
let answeredResults = await makeDicomQuery(query)
//For each results, fill the result table through Redux
answeredResults.forEach((answer) => {
dispatch(addStudyResult(answer))
})
} catch (err) {
console.error(err)
}
}*/

}

Expand Down Expand Up @@ -162,7 +184,7 @@ export default ((onQuerySeriesFinished)=> {
</Button>
</Row>
<Row>
<QueryTable
<QueryTableSeries
queries={queries}
aets={aets}
currentRow={currentRow}
Expand Down
2 changes: 1 addition & 1 deletion FrontEnd/src/components/AutoQuery/Query/QueryTable.jsx
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import React, { useMemo } from 'react'
import React from 'react'
import { useDispatch } from 'react-redux'

import moment from 'moment'
Expand Down
66 changes: 66 additions & 0 deletions FrontEnd/src/components/AutoQuery/Query/QueryTableSeries.jsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
import React from 'react'
import { useDispatch } from 'react-redux'

import moment from 'moment'

import SelectModalities from "../../CommonComponents/SearchForm/SelectModalities"
import CommonTableV8 from "../../CommonComponents/RessourcesDisplay/ReactTableV8/CommonTableV8"
import { editCellQuery } from '../../../actions/TableQuery'

import { filter } from '../../../model/Constant'
import { isWithinDateRange } from '../../CommonComponents/RessourcesDisplay/ReactTableV8/Tools/FilterFns'

export default ({ queries = [], aets = [], onRowClick, currentRow, onSelectRowsChange, selectedRowIds }) => {

const dispatch = useDispatch()

const selectRowHandle = (rowIds) => {
onSelectRowsChange(rowIds)
}

const cellEditHandler = (rowIndex, columnId, value) => {
dispatch(editCellQuery(rowIndex, columnId, value));
}

const rowStyle = (queryKey) => {
if (queryKey === currentRow) return { background: 'peachPuff' }
}

const columns = [{
id: 'key',
accessorKey: 'key',
enableHiding: true
}, {
accessorKey: 'StudyInstanceUID',
header: 'StudyInstanceUID',
isEditable: true
}, {
accessorKey: 'SeriesInstanceUID',
header: 'SeriesInstanceUID',
isEditable: true
}, {
accessorKey: 'Aet',
header: 'AET',
isEditable: true,
editionProperties: {
type: 'SELECT',
options: aets.map(aet => ({ value: aet, label: aet }))
}
}]

return (
<CommonTableV8
id='key'
onSelectRow={selectRowHandle}
onRowClick={onRowClick}
rowStyle={rowStyle}
columns={columns}
data={queries}
onCellEdit={cellEditHandler}
paginated
canFilter
canSelect
selectedRowsIds={selectedRowIds}
/>
)
}

0 comments on commit b682dbd

Please sign in to comment.