Skip to content

Commit

Permalink
Use latest data-formats, generated dummy file for job list (this will…
Browse files Browse the repository at this point in the history
… cause a merge conflict with quant

 tracker work). Also initial version of importer tool and added ImageBeamLocationVersionReq query which returns what versions are available. Also includes fix for importer so it doesn't overwrite beam versions for other scans.
  • Loading branch information
Peter Nemere committed Jun 20, 2024
1 parent f53f792 commit bd89b59
Show file tree
Hide file tree
Showing 91 changed files with 2,465 additions and 1,617 deletions.
43 changes: 43 additions & 0 deletions api/ws/handlers/image-beam-location.go
Original file line number Diff line number Diff line change
Expand Up @@ -141,3 +141,46 @@ func generateIJs(imageName string, scanId string, instrument protos.ScanInstrume

return &locs, nil
}

func HandleImageBeamLocationVersionsReq(req *protos.ImageBeamLocationVersionsReq, hctx wsHelpers.HandlerContext) (*protos.ImageBeamLocationVersionsResp, error) {
ctx := context.TODO()

if err := wsHelpers.CheckStringField(&req.ImageName, "ImageName", 1, 255); err != nil {
return nil, err
}

coll := hctx.Svcs.MongoDB.Collection(dbCollections.ImageBeamLocationsName)
vers := map[string]*protos.ImageBeamLocationVersionsResp_AvailableVersions{}

// Read the image and check that the user has access to all scans associated with it
result := coll.FindOne(ctx, bson.M{"_id": req.ImageName})
if result.Err() != nil {
if result.Err() == mongo.ErrNoDocuments {
// If there are no beam locations, don't return an error, just return a message with no items in it
return &protos.ImageBeamLocationVersionsResp{
BeamVersionPerScan: vers,
}, nil
}
return nil, result.Err()
}

var locs *protos.ImageLocations
err := result.Decode(&locs)
if err != nil {
return nil, err
}

for _, locPerScan := range locs.LocationPerScan {
var availVersions *protos.ImageBeamLocationVersionsResp_AvailableVersions = vers[locPerScan.ScanId]
if availVersions == nil {
availVersions = &protos.ImageBeamLocationVersionsResp_AvailableVersions{Versions: []uint32{}}
vers[locPerScan.ScanId] = availVersions
}

availVersions.Versions = append(availVersions.Versions, locPerScan.BeamVersion)
}

return &protos.ImageBeamLocationVersionsResp{
BeamVersionPerScan: vers,
}, nil
}
11 changes: 11 additions & 0 deletions api/ws/handlers/job.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
package wsHandler

import (
"errors"
protos "github.com/pixlise/core/v4/generated-protos"
"github.com/pixlise/core/v4/api/ws/wsHelpers"
)

func HandleJobListReq(req *protos.JobListReq, hctx wsHelpers.HandlerContext) (*protos.JobListResp, error) {
return nil, errors.New("HandleJobListReq not implemented yet")
}
6 changes: 3 additions & 3 deletions core/beamLocation/experimentFileToDB.go
Original file line number Diff line number Diff line change
Expand Up @@ -41,11 +41,11 @@ func ImportBeamLocationToDB(imgName string, instrument protos.ScanInstrument, fo
// We've read what's already there, ensure that the version we're writing doesn't exist!
locs := []*protos.ImageLocationsForScan{}
for _, beamItem := range beams.LocationPerScan {
if beamItem.BeamVersion != beamVersion {
if beamItem.ScanId != forScanId || beamItem.BeamVersion != beamVersion {
locs = append(locs, beamItem)
logger.Infof("Existing beam version %v for image %v will be preserved", beamVersion, imgName)
logger.Infof("Existing beam version %v for image %v/scan id %v will be preserved", beamVersion, imgName, beamItem.ScanId)
} else {
logger.Infof("Detected existing beam version %v for image %v. This will be replaced by the newly imported one", beamVersion, imgName)
logger.Infof("Detected existing beam version %v for image %v/scan id %v. This will be replaced by the newly imported one", beamVersion, beamItem.ScanId, imgName)
}
}

Expand Down
4 changes: 2 additions & 2 deletions generated-protos/detector-config-msgs.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions generated-protos/detector-config.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions generated-protos/diffraction-data.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions generated-protos/diffraction-detected-peak-msgs.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions generated-protos/diffraction-manual-msgs.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions generated-protos/diffraction-status-msgs.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions generated-protos/diffraction.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions generated-protos/doi-msgs.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions generated-protos/doi.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions generated-protos/element-set-msgs.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions generated-protos/element-set.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions generated-protos/experiment.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions generated-protos/export-msgs.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions generated-protos/export.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions generated-protos/expression-group-msgs.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions generated-protos/expression-group.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions generated-protos/expression-msgs.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions generated-protos/expressions.pb.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Loading

0 comments on commit bd89b59

Please sign in to comment.