Skip to content

Commit fbfe5cb

Browse files
committed
feat(raw-data): Add Measurement Name column to raw data view
Add Measurement Name column to the raw data grid for both genomics (NGS) and proteomics (PxP) measurement types. This allows users to correlate measurement names with raw data without switching between measurement view and raw data views. Changes: - Add measurementName to v_ngs_measurement_sample_json and v_pxp_measurement_sample_json SQL views - Add measurementName field to LocalRawDatasetNgsEntry and LocalRawDatasetPxpEntry JPA entities - Add measurementName to RawDatasetInformationNgs and RawDatasetInformationPxP API records - Update convert methods in LocalRawDatasetRepositoryImpl - Add Measurement Name column to both NGS and PxP grids in RawDataDetailsComponent Refs: #1403
1 parent 72e5798 commit fbfe5cb

6 files changed

Lines changed: 41 additions & 8 deletions

File tree

datamanager-app/src/main/java/life/qbic/datamanager/views/projects/project/rawdata/RawDataDetailsComponent.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -343,6 +343,10 @@ private Grid<RawDatasetInformationNgs> createNgsRawDataGrid() {
343343
.setSortProperty(UiSortKey.MEASUREMENT_ID.value())
344344
.setHeader("Measurement Id");
345345

346+
grid.addColumn(RawDatasetInformationNgs::measurementName)
347+
.setHeader("Measurement Name")
348+
.setSortable(false);
349+
346350
grid.addColumn(
347351
rawData -> rawData.linkedSampleInformation().stream().map(
348352
BasicSampleInformation::sampleName).collect(Collectors.joining(",")))
@@ -371,6 +375,11 @@ private Grid<RawDatasetInformationPxP> createPxpRawDataGrid() {
371375
.setKey(UiSortKey.MEASUREMENT_ID.value())
372376
.setSortProperty(UiSortKey.MEASUREMENT_ID.value())
373377
.setHeader("Measurement Id");
378+
379+
grid.addColumn(RawDatasetInformationPxP::measurementName)
380+
.setHeader("Measurement Name")
381+
.setSortable(false);
382+
374383
grid.addColumn(
375384
rawData -> rawData.linkedSampleInformation().stream().map(
376385
BasicSampleInformation::sampleName).collect(Collectors.joining(",")))

project-management-infrastructure/src/main/java/life/qbic/projectmanagement/infrastructure/dataset/LocalRawDatasetNgsEntry.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,9 @@ public LocalRawDatasetNgsEntry() {
3434
@Column(name = "measurementCode")
3535
private String measurementCode;
3636

37+
@Column(name = "measurementName")
38+
private String measurementName;
39+
3740
@Column(name = "registration_at")
3841
private Instant registrationDate;
3942

@@ -67,6 +70,10 @@ public String getMeasurementCode() {
6770
return measurementCode;
6871
}
6972

73+
public String getMeasurementName() {
74+
return measurementName;
75+
}
76+
7077
public Instant getRegistrationDate() {
7178
return registrationDate;
7279
}
@@ -87,13 +94,14 @@ public boolean equals(Object o) {
8794
LocalRawDatasetNgsEntry that = (LocalRawDatasetNgsEntry) o;
8895
return totalFileSizeBytes == that.totalFileSizeBytes && numberOfFiles == that.numberOfFiles
8996
&& Objects.equals(id, that.id) && Objects.equals(measurementCode,
90-
that.measurementCode) && Objects.equals(registrationDate, that.registrationDate)
97+
that.measurementCode) && Objects.equals(measurementName,
98+
that.measurementName) && Objects.equals(registrationDate, that.registrationDate)
9199
&& Objects.equals(fileTypes, that.fileTypes);
92100
}
93101

94102
@Override
95103
public int hashCode() {
96-
return Objects.hash(id, totalFileSizeBytes, measurementCode, registrationDate, numberOfFiles,
104+
return Objects.hash(id, totalFileSizeBytes, measurementCode, measurementName, registrationDate, numberOfFiles,
97105
fileTypes);
98106
}
99107
}

project-management-infrastructure/src/main/java/life/qbic/projectmanagement/infrastructure/dataset/LocalRawDatasetPxpEntry.java

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,9 @@ public class LocalRawDatasetPxpEntry {
3131
@Column(name = "measurementCode")
3232
private String measurementCode;
3333

34+
@Column(name = "measurementName")
35+
private String measurementName;
36+
3437
@Column(name = "registration_at")
3538
private Date registrationDate;
3639

@@ -60,6 +63,10 @@ public String getMeasurementCode() {
6063
return measurementCode;
6164
}
6265

66+
public String getMeasurementName() {
67+
return measurementName;
68+
}
69+
6370
public Date getRegistrationDate() {
6471
return registrationDate;
6572
}
@@ -84,13 +91,14 @@ public boolean equals(Object o) {
8491
LocalRawDatasetPxpEntry that = (LocalRawDatasetPxpEntry) o;
8592
return totalFileSizeBytes == that.totalFileSizeBytes && numberOfFiles == that.numberOfFiles
8693
&& Objects.equals(id, that.id) && Objects.equals(measurementCode,
87-
that.measurementCode) && Objects.equals(registrationDate, that.registrationDate)
94+
that.measurementCode) && Objects.equals(measurementName,
95+
that.measurementName) && Objects.equals(registrationDate, that.registrationDate)
8896
&& Objects.equals(fileTypes, that.fileTypes);
8997
}
9098

9199
@Override
92100
public int hashCode() {
93-
return Objects.hash(id, totalFileSizeBytes, measurementCode, registrationDate, numberOfFiles,
101+
return Objects.hash(id, totalFileSizeBytes, measurementCode, measurementName, registrationDate, numberOfFiles,
94102
fileTypes);
95103
}
96104
}

project-management-infrastructure/src/main/java/life/qbic/projectmanagement/infrastructure/dataset/LocalRawDatasetRepositoryImpl.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,8 @@ private static RawDatasetInformationNgs convert(LocalRawDatasetNgsEntry entry) {
248248
entry.getNumberOfFiles(),
249249
entry.getFileTypes(),
250250
entry.getRegistrationDate()),
251-
entry.getMeasuredSamples().stream().map(LocalRawDatasetRepositoryImpl::convert).toList());
251+
entry.getMeasuredSamples().stream().map(LocalRawDatasetRepositoryImpl::convert).toList(),
252+
entry.getMeasurementName());
252253
}
253254

254255
private static RawDatasetInformationPxP convert(LocalRawDatasetPxpEntry entry) {
@@ -258,7 +259,8 @@ private static RawDatasetInformationPxP convert(LocalRawDatasetPxpEntry entry) {
258259
entry.getNumberOfFiles(),
259260
entry.getFileTypes(),
260261
entry.getRegistrationDate().toInstant()),
261-
entry.getMeasuredSamples().stream().map(LocalRawDatasetRepositoryImpl::convert).toList());
262+
entry.getMeasuredSamples().stream().map(LocalRawDatasetRepositoryImpl::convert).toList(),
263+
entry.getMeasurementName());
262264
}
263265

264266
private static BasicSampleInformation convert(MeasuredSample sample) {

project-management/src/main/java/life/qbic/projectmanagement/application/api/AsyncProjectService.java

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2459,10 +2459,12 @@ Mono<Integer> countRawDataPxp(String projectId, String experimentId,
24592459
* @param dataset the actual {@link RawDataset}
24602460
* @param linkedSampleInformation further information about the linked samples as
24612461
* {@link BasicSampleInformation}.
2462+
* @param measurementName the name of the measurement
24622463
* @since 1.11.0
24632464
*/
24642465
record RawDatasetInformationNgs(RawDataset dataset,
2465-
List<BasicSampleInformation> linkedSampleInformation) {
2466+
List<BasicSampleInformation> linkedSampleInformation,
2467+
String measurementName) {
24662468

24672469
public RawDatasetInformationNgs {
24682470
requireNonNull(dataset);
@@ -2493,10 +2495,12 @@ record SortRawData(SortFieldRawData sortField, SortDirection sortDirection) {
24932495
* @param dataset the actual {@link RawDataset}
24942496
* @param linkedSampleInformation further information about the linked samples as
24952497
* {@link BasicSampleInformation}.
2498+
* @param measurementName the name of the measurement
24962499
* @since 1.11.0
24972500
*/
24982501
record RawDatasetInformationPxP(RawDataset dataset,
2499-
List<BasicSampleInformation> linkedSampleInformation) {
2502+
List<BasicSampleInformation> linkedSampleInformation,
2503+
String measurementName) {
25002504

25012505
public RawDatasetInformationPxP {
25022506
requireNonNull(dataset);

sql/complete-schema.sql

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -703,6 +703,7 @@ SELECT m.measurement_id,
703703
m.instrument,
704704
m.libraryKit,
705705
m.measurementCode,
706+
m.measurementName,
706707
m.IRI,
707708
m.label AS measurement_label,
708709
m.projectId,
@@ -774,6 +775,7 @@ SELECT p.measurement_id,
774775
p.lcColumn,
775776
p.lcmsMethod,
776777
p.measurementCode,
778+
p.measurementName,
777779
p.IRI,
778780
p.label AS measurement_label,
779781
p.projectId,

0 commit comments

Comments
 (0)