1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980 |
- package service
- import (
- "context"
- "log/slog"
- )
- import (
- "google.golang.org/grpc"
- "google.golang.org/grpc/credentials/insecure"
- )
- import (
- "auth-server/common"
- pb "auth-server/rpc_idl/dr_dcmtk_pb"
- )
- var DcmtkService *Dcmtk
- func init() {
- DcmtkService = new(Dcmtk)
- }
- type Dcmtk struct {
- basicClient pb.BasicClient
- dcmClient pb.DcmClient
- }
- func (s *Dcmtk) Setup() {
- conn, err := grpc.NewClient(common.ServerConfig.Dcmtk, grpc.WithTransportCredentials(insecure.NewCredentials()))
- if err != nil {
- slog.Error("NewClient failed:", err)
- panic(err)
- }
- slog.Info("dcmtk conn success", "conn", conn.GetState())
- s.basicClient = pb.NewBasicClient(conn)
- s.dcmClient = pb.NewDcmClient(conn)
- }
- func (s *Dcmtk) GetSoftwareInfo() *pb.SoftwareInfoReply {
- slog.Info("[rpc]SoftwareInfo...")
- r, err := s.basicClient.SoftwareInfo(context.Background(), &pb.EmptyRequest{})
- if err != nil {
- slog.Error("[rpc]SoftwareInfo failed:", err)
- return &pb.SoftwareInfoReply{
- Module: "",
- Desc: "",
- Build: "",
- Version: "",
- }
- }
- return r
- }
- func (s *Dcmtk) GenerateUniqueIdentifier(ctx context.Context, flag string, number int32) (*pb.UidReply, error) {
- slog.Info("[rpc]GenerateUniqueIdentifier...")
- SiteUidRoot := "1.2.276.0.1000000.5"
- uidRoot := SiteUidRoot
- switch flag {
- case "study":
- uidRoot += ".1.2"
- case "series":
- uidRoot += ".1.3"
- case "sop":
- uidRoot += ".1.4"
- default:
- return nil, common.InvalidParam.Desc("invalid param 'flag'")
- }
- if number < 1 || number > 10 {
- return nil, common.InvalidParam.Desc("number must be between 1 and 10")
- }
- r, err := s.dcmClient.GenerateUniqueIdentifier(ctx, &pb.UidRootRequest{
- UidRoot: uidRoot,
- Number: number,
- })
- if err != nil {
- slog.Error("[rpc]GenerateUniqueIdentifier failed:", err)
- }
- return r, err
- }
|