diff --git a/apps/services/dicom/src/app.module.ts b/apps/services/dicom/src/app.module.ts index 8fb4c29..28ab8e3 100644 --- a/apps/services/dicom/src/app.module.ts +++ b/apps/services/dicom/src/app.module.ts @@ -3,8 +3,8 @@ import { AppController } from './app.controller'; import { AppService } from './app.service'; import { NacosModule } from './nacos/nacos.module'; import { ConfigModule } from '@nestjs/config'; -import { TypeOrmModule } from '@nestjs/typeorm'; import { RetrievalModule } from './retrieval/retrieval.module'; +import { LabelModule } from './label/label.module'; @Module({ imports: [ @@ -14,6 +14,7 @@ import { RetrievalModule } from './retrieval/retrieval.module'; }), NacosModule, RetrievalModule, + LabelModule, ], controllers: [AppController], providers: [AppService], diff --git a/apps/services/dicom/src/label/label.controller.ts b/apps/services/dicom/src/label/label.controller.ts new file mode 100644 index 0000000..4c1d4be --- /dev/null +++ b/apps/services/dicom/src/label/label.controller.ts @@ -0,0 +1,13 @@ +import { Controller } from '@nestjs/common'; +import { EventPattern } from '@nestjs/microservices'; +import { LabelService } from './label.service'; + +@Controller() +export class LabelController { + constructor(private readonly labelService: LabelService) {} + + @EventPattern({ cmd: 'dicom.label.create' }) + async createLabel(payload) { + return await this.labelService.createLabel(); + } +} diff --git a/apps/services/dicom/src/label/label.module.ts b/apps/services/dicom/src/label/label.module.ts new file mode 100644 index 0000000..b2a4247 --- /dev/null +++ b/apps/services/dicom/src/label/label.module.ts @@ -0,0 +1,15 @@ +import { Module } from '@nestjs/common'; +import { LabelController } from './label.controller'; +import { Label, LabelSchema } from './schema/label.schema'; +import { LabelService } from './label.service'; +import { MongooseModule } from '@nestjs/mongoose'; + +@Module({ + controllers: [LabelController], + imports: [ + MongooseModule.forRoot('mongodb://test:test@localhost:27017/tavi'), + MongooseModule.forFeature([{ name: Label.name, schema: LabelSchema }]), + ], + providers: [LabelService], +}) +export class LabelModule {} diff --git a/apps/services/dicom/src/label/label.service.ts b/apps/services/dicom/src/label/label.service.ts new file mode 100644 index 0000000..55a646b --- /dev/null +++ b/apps/services/dicom/src/label/label.service.ts @@ -0,0 +1,22 @@ +import { Injectable } from '@nestjs/common'; +import { Label, LabelDocument } from './schema/label.schema'; +import { InjectModel } from '@nestjs/mongoose'; +import { Model } from 'mongoose'; + +@Injectable() +export class LabelService { + constructor( + @InjectModel(Label.name) + private readonly labelModel: Model, + ) {} + async createLabel() { + // 创建一个新的 Label 实例 + const newLabel = new this.labelModel({ + name: '钙化', + description: '钙化的关键词', + }); + + // 使用 save 方法保存实例到数据库 + return await newLabel.save(); + } +} diff --git a/apps/services/dicom/src/label/schema/label.schema.ts b/apps/services/dicom/src/label/schema/label.schema.ts new file mode 100644 index 0000000..b003aef --- /dev/null +++ b/apps/services/dicom/src/label/schema/label.schema.ts @@ -0,0 +1,13 @@ +import { Schema, Document, model } from 'mongoose'; + +export interface LabelDocument extends Document { + name: string; + description?: string; +} + +export const LabelSchema = new Schema({ + name: { type: String, required: true }, + description: String, +}); + +export const Label = model('Label', LabelSchema);