diff --git a/src/entity/emr/emr_diagnosis.ts b/src/entity/emr/emr_diagnosis.ts new file mode 100644 index 0000000..0063473 --- /dev/null +++ b/src/entity/emr/emr_diagnosis.ts @@ -0,0 +1,63 @@ +import { + Entity, + PrimaryGeneratedColumn, + Column, + CreateDateColumn, + UpdateDateColumn, + DeleteDateColumn, + ManyToOne, + OneToOne, + JoinColumn, +} from "typeorm"; +import { EmrDiagnosisType } from "../../enum/emrDiagnosisType"; +import { EmrRegistrationOutpatient } from "./emr_registration_outpatient"; +import { Diagnosis } from "../diagnosis"; + +@Entity("emr_diagnosis", { schema: "emr" }) +export class EmrDiagnosis { + @PrimaryGeneratedColumn("uuid") + id: string; + + @ManyToOne(() => EmrRegistrationOutpatient, { onDelete: "CASCADE" }) + @JoinColumn() + id_emr_outpatient: EmrRegistrationOutpatient; + + @ManyToOne(() => Diagnosis, { onDelete: "CASCADE", nullable: true }) + @JoinColumn() + id_diagnosis: Diagnosis; + + @Column({ nullable: true, length: 512 }) + diagnosis_code: string; + + @Column({ nullable: true, length: 512 }) + name: string; + + @Column({ + type: "enum", + enum: EmrDiagnosisType, + nullable: false, + }) + diagnosis_type: EmrDiagnosisType; + + @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/enum/emrDiagnosisType.ts b/src/enum/emrDiagnosisType.ts new file mode 100644 index 0000000..46db48f --- /dev/null +++ b/src/enum/emrDiagnosisType.ts @@ -0,0 +1,4 @@ +export enum EmrDiagnosisType{ + PRIMARY = "PRIMARY", + SECONDARY = "SECONDARY", +} \ No newline at end of file diff --git a/src/schema/emr.ts b/src/schema/emr.ts index a9eb0ca..6e83b45 100644 --- a/src/schema/emr.ts +++ b/src/schema/emr.ts @@ -8,6 +8,7 @@ export * from "../entity/emr/emr_anamnesis"; export * from "../entity/emr/emr_vital_signs"; export * from "../entity/emr/emr_physical_examination"; export * from "../entity/emr/emr_diet"; +export * from "../entity/emr/emr_diagnosis"; export * from "../types/registration_type"; export * from "../types/registration_status";