跳转至

切片质控

Graphql

BaseUrl:https://expert.medipath.com.cn/proxy_api_eq/graphql

type Mutation {  
  CreateOriginImage(
    """
    SLIDEQC,写死
    """
    algAllType: AlgAllType!
    """
    图片文件 Hash
    """
    sha256Hex: String!
    filename: String!
    """
    chunk数量(推荐5M为一个chunk
    计算 Math.ceil(filesize/5M)
    """
    chunkCount: PositiveInt!
    """
    上传时间戳,毫秒为单位
    """
    createDateTime: Long!
    """
    年份:yyyy
    """
    year: String!
    """
    病理号
    """
    pathologyNo: String!
    """
    染色类型
    """
    dyeingType: String
    """
    放大倍数
    """
    magnitude: NonNegativeInt!
    """
    每像素几微米
    """
    mpp: NonNegativeFloat!
    deviceInfo: String
    region: String
    company: String
  ): OriginImage
}

type Query {  
  OutputReport(
    mpImageId: String!
    refresh: Boolean
  ): Object

  GetOriginImage(id: String!): OriginImage
  QueryOriginImage(
    first: NonNegativeInt!
    pageSize: PositiveInt!
    algAllTypeSet: [AlgAllType]
    statuses: [OriginImageStatus]
    startCreateDateTime: Object
    endCreateDateTime: Object
    sorts: [QuerySort]
    mpImageStatuses: [MpImageStatus]
  ): QueryOriginImageResult
}

type OriginImage {
  id: ID!
  algAllType: AlgAllType
  filename: String
  year: String
  pathologyNo: String
  size: Long
  dyeingType: String
  mpp: Float
  magnitude: Int
  deviceInfo: String
  region: String
  company: String
  status: OriginImageStatus
  errMsg: String
  mpImages: [MpImage]

  uploaded: Object
  chunkInfo: Object

  creator: Operator
  createDateTime: Object
  modifier: Operator
  modifyDateTime: Object
}
enum OriginImageStatus {
  INIT
  UPLOADED
  FINISH
  ERROR
}
type MpImage {
  id: ID!
  algAllType: AlgAllType
  filename: String
  size: Long
  width: Int
  height: Int
  thumb: String
  dyeingType: String
  mpp: Float
  magnitude: Int
  note: String
  status: MpImageStatus
  errMsg: String
  duration: JSON
}
enum MpImageStatus {
  INIT
  RUN_ALG_ALL
  FINISH
  ERROR
}

type QueryOriginImageResult {
  first: NonNegativeInt!
  pageSize: PositiveInt!
  count: NonNegativeInt!
  data: [OriginImage]
}

Restful

图片分块上传:

formData: {文件Hash}.{chunkIdx(从0开始)}

BaseUrl:https://expert.medipath.com.cn/proxy_api_eq/CreateOriginImageChunk

接口调用流程

  1. CreateOriginImage,创建图片信息
  2. CreateOriginImageChunk,上传图片chunk
  3. GetOriginImage,获取算法分析状态,轮询或websocket
  4. OutputReport,分析状态为FINISH后,获取算法结果
sequenceDiagram    
participant User
participant Graphql
participant Restful
User->>Graphql: CreateOriginImage
User->>Restful: CreateOriginImageChunk
User->>Graphql: GetOriginImage
User->>Graphql: OutputReport