12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485 |
- package service
- import (
- "encoding/json"
- "log/slog"
- )
- import (
- "google.golang.org/protobuf/types/known/structpb"
- "gorm.io/datatypes"
- )
- import (
- "protocol-server/models"
- pb "protocol-server/rpc_idl/dr_protocol_pb"
- )
- func json2Struct(o *datatypes.JSON) *structpb.Struct {
- var tempMap map[string]interface{}
- err := json.Unmarshal(*o, &tempMap)
- if err != nil {
- slog.Error("Error unmarshalling datatypes.JSON to map", "err", err)
- return nilStruct
- }
- protoStruct, err := structpb.NewStruct(tempMap)
- if err != nil {
- slog.Error("Error creating proto struct", "err", err)
- return nilStruct
- }
- return protoStruct
- }
- func view2pb(view *models.View) *pb.View {
- return &pb.View{
- InternalId: view.InternalID,
- ViewId: view.ViewID,
- ViewName: view.ViewName,
- ViewNameLocal: view.ViewNameLocal,
- ViewOtherName: view.ViewOtherName,
- ViewDescription: view.ViewDescription,
- ViewPosition: view.ViewPosition,
- Application: view.Application,
- AnatomicRegion: view.AnatomicRegion,
- PatientType: view.PatientType,
- BodyPartId: view.BodyPartID,
- ViewIconName: view.ViewIconName,
- ViewBigIconName: view.ViewBigIconName,
- ViewCoachName: view.ViewCoachName,
- Modality: view.Modality,
- WorkStationId: int32(view.WorkStationId),
- AprId: view.AprId,
- ImgProcId: view.ImgProcId,
- ConfigObject: json2Struct(&view.ConfigObject),
- Sort: int32(view.Sort),
- IsEnabled: view.IsEnabled,
- Product: view.Product,
- IsPreInstall: view.IsPreInstall,
- }
- }
- func apr2pb(apr *models.Apr) *pb.AprReply {
- return &pb.AprReply{
- AprId: apr.AprID,
- AprName: apr.AprName,
- AprDescription: apr.AprDescription,
- PatientType: apr.PatientType,
- BodyPartId: apr.BodyPartID,
- ViewPosition: apr.ViewPosition,
- Category: apr.Category,
- Modality: apr.Modality,
- Sub: []*pb.AprSub{},
- Sort: int32(apr.Sort),
- IsEnabled: apr.IsEnabled,
- Product: apr.Product,
- IsPreInstall: apr.IsPreInstall,
- }
- }
- func aprSub2pb(apr *models.AprSub) *pb.AprSub {
- return &pb.AprSub{
- WorkStationId: int32(apr.WorkStationID),
- PatientSize: apr.PatientSize,
- ConfigObject: json2Struct(&apr.ConfigObject),
- }
- }
|