diff --git a/src/entity/emr/emr_internal_consultation.ts b/src/entity/emr/emr_internal_consultation.ts new file mode 100644 index 0000000..6905145 --- /dev/null +++ b/src/entity/emr/emr_internal_consultation.ts @@ -0,0 +1,78 @@ +import { + Entity, + PrimaryGeneratedColumn, + Column, + CreateDateColumn, + UpdateDateColumn, + DeleteDateColumn, + ManyToOne, + OneToOne, + JoinColumn, +} from "typeorm"; + +import { InternalConsulStatus } from "../../enum/internalConsulStatus"; +import { EmrPatient } from "./emr_patient"; +import { User } from "../users"; +import { Room } from "../room"; +import { Diagnosis } from "../diagnosis"; + +@Entity("emr_internal_consultation", { schema: "emr" }) +export class EmrInternalConsultation { + @PrimaryGeneratedColumn("uuid") + id: string; + + @ManyToOne(() => EmrPatient, { onDelete: "CASCADE" }) + @JoinColumn() + emrpatient: EmrPatient; + + @ManyToOne(() => Room, { onDelete: "CASCADE" }) + @JoinColumn() + referring_room: Room; + + @ManyToOne(() => User, { onDelete: "CASCADE" }) + @JoinColumn() + referring_doctor: User; + + @ManyToOne(() => Room, { onDelete: "CASCADE" }) + @JoinColumn() + consulted_room: Room; + + @ManyToOne(() => Diagnosis, { onDelete: "CASCADE" }) + @JoinColumn() + diagnosis: Diagnosis; + + @Column({ type: "text", nullable: true }) + requested_consultation: string; + + @Column({ type: "date", nullable: true }) + dates: Date; + + @Column({ + type: "enum", + enum: InternalConsulStatus, + nullable: false, + }) + status: InternalConsulStatus; + + @Column() + @CreateDateColumn() + created_at: Date; + + @Column({ nullable: true, length: 256 }) + created_by: string; + + @Column({ nullable: true }) + @UpdateDateColumn() + updated_at: Date; + + @Column({ nullable: true, length: 256 }) + updated_by: string; + + @Column({ nullable: true }) + @DeleteDateColumn() + deleted_at: Date; + + @Column({ nullable: true, length: 256 }) + deleted_by: string; +} + diff --git a/src/entity/emr/emr_registration_outpatient.ts b/src/entity/emr/emr_registration_outpatient.ts index 9a1fb98..a715e5a 100644 --- a/src/entity/emr/emr_registration_outpatient.ts +++ b/src/entity/emr/emr_registration_outpatient.ts @@ -26,7 +26,7 @@ export class EmrRegistrationOutpatient { @PrimaryGeneratedColumn("uuid") id: string; - @ManyToOne(() => EmrRegistration, { onDelete: "CASCADE" }) + @OneToOne(() => EmrRegistration, { onDelete: "CASCADE" }) @JoinColumn() registration: EmrRegistration; diff --git a/src/enum/internalConsulStatus.ts b/src/enum/internalConsulStatus.ts new file mode 100644 index 0000000..5822186 --- /dev/null +++ b/src/enum/internalConsulStatus.ts @@ -0,0 +1,4 @@ +export enum InternalConsulStatus { + normal = 'normal', + cito = 'cito', +} diff --git a/src/schema/emr.ts b/src/schema/emr.ts index 3a3b6fe..b906d9f 100644 --- a/src/schema/emr.ts +++ b/src/schema/emr.ts @@ -11,6 +11,7 @@ export * from "../entity/emr/emr_diet"; export * from "../entity/emr/emr_diagnosis"; export * from "../entity/emr/emr_diagnostic_procedure"; export * from "../entity/emr/emr_doctor_procedure"; +export * from "../entity/emr/emr_internal_consultation"; export * from "../types/registration_type"; export * from "../types/registration_status";