shao 9 小時之前
父節點
當前提交
e346cc82b3
共有 6 個文件被更改,包括 41 次插入4 次删除
  1. 22 0
      api/v1/study.go
  2. 2 1
      cmd/httpserver/server.go
  3. 4 0
      router/router.go
  4. 1 1
      rpc_idl
  5. 2 2
      service/pb_dcmtk.go
  6. 10 0
      service/pb_study.go

+ 22 - 0
api/v1/study.go

@@ -0,0 +1,22 @@
+package v1
+
+import (
+	"auth-server/common"
+	pb "auth-server/rpc_idl/dr_study_pb"
+	"auth-server/service"
+	"github.com/gin-gonic/gin"
+)
+
+func CreateStudy(c *gin.Context) {
+	request := pb.StudyRequest{}
+	if err := c.ShouldBindJSON(&request); err != nil {
+		common.HttpErr(c, err)
+		return
+	}
+	res, err := service.StudyService.CreateStudy(common.GC2GM(c), &request)
+	if err != nil {
+		common.HttpErr(c, err)
+		return
+	}
+	common.HttpSuccess(c, res)
+}

+ 2 - 1
cmd/httpserver/server.go

@@ -3,6 +3,7 @@ package httpserver
 import (
 	"auth-server/service"
 	"context"
+	"errors"
 	"fmt"
 	"log/slog"
 	"net/http"
@@ -85,7 +86,7 @@ func run() error {
 
 	go func() {
 		// 服务连接
-		if err := srv.ListenAndServe(); err != nil && err != http.ErrServerClosed {
+		if err := srv.ListenAndServe(); err != nil && !errors.Is(err, http.ErrServerClosed) {
 			slog.Error("listen: ", err)
 			panic("http server closed")
 		}

+ 4 - 0
router/router.go

@@ -38,6 +38,10 @@ func InitRouter() *gin.Engine {
 			protocolV1.GET("procedure", apiv1.GetProcedure)
 			protocolV1.GET("view", apiv1.GetView)
 		}
+		studyV1 := authV1.Group("/study")
+		{
+			studyV1.POST("", apiv1.CreateStudy)
+		}
 		dicomV1 := authV1.Group("/dicom")
 		{
 			dicomV1.GET("generate/instance_uid", apiv1.GenerateUniqueIdentifier)

+ 1 - 1
rpc_idl

@@ -1 +1 @@
-Subproject commit c7adaf6cbec4584dc9793b9ef81b8982ca12f8ce
+Subproject commit b247d632b2cae8508da0642e7843868df389980a

+ 2 - 2
service/pb_dcmtk.go

@@ -69,8 +69,8 @@ func (s *Dcmtk) GenerateUniqueIdentifier(ctx context.Context, flag string, numbe
 	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")
+	if number < 1 || number > 100 {
+		return nil, common.InvalidParam.Desc("number must be between 1 and 100")
 	}
 	r, err := s.dcmClient.GenerateUniqueIdentifier(ctx, &pb.UidRootRequest{
 		UidRoot: uidRoot,

+ 10 - 0
service/pb_study.go

@@ -23,6 +23,7 @@ func init() {
 
 type Study struct {
 	basicClient pb.BasicClient
+	studyClient pb.StudyClient
 }
 
 func (s *Study) Setup() {
@@ -52,3 +53,12 @@ func (s *Study) GetSoftwareInfo() *pb.SoftwareInfoReply {
 	}
 	return r
 }
+
+func (s *Study) CreateStudy(ctx context.Context, in *pb.StudyRequest) (*pb.StudyReply, error) {
+	r, err := s.studyClient.CreateStudy(context.Background(), in)
+	if err != nil {
+		slog.Error("[rpc]CreateStudy failed", "err", err)
+		return r, err
+	}
+	return r, nil
+}