From 31af7f8f0bec3c242c7d80fcd909077dce0e91da Mon Sep 17 00:00:00 2001 From: Sony Surahmn Date: Tue, 5 May 2026 01:04:38 +0700 Subject: [PATCH] feat(emr_boarding_room_deceased): add entity to track deceased patients in boarding rooms with relevant fields and relationships --- src/entity/emr/emr_boarding_room_deceased.ts | 72 ++++++++++++++++++++ src/schema/emr.ts | 1 + 2 files changed, 73 insertions(+) create mode 100644 src/entity/emr/emr_boarding_room_deceased.ts diff --git a/src/entity/emr/emr_boarding_room_deceased.ts b/src/entity/emr/emr_boarding_room_deceased.ts new file mode 100644 index 0000000..2d93254 --- /dev/null +++ b/src/entity/emr/emr_boarding_room_deceased.ts @@ -0,0 +1,72 @@ +import { + Entity, + PrimaryGeneratedColumn, + Column, + CreateDateColumn, + UpdateDateColumn, + DeleteDateColumn, + ManyToOne, + JoinColumn, + OneToOne, +} from "typeorm"; +import { EmrBoardingRoom } from "./emr_boarding_rooms"; +import { User } from "../users"; + +@Entity("emr_boarding_room_deceased", { schema: "emr" }) +export class EmrBoardingRoomDeceased { + @PrimaryGeneratedColumn("uuid") + id: string; + + @OneToOne(() => EmrBoardingRoom, { onDelete: "NO ACTION" }) + @JoinColumn() + boarding_room: EmrBoardingRoom; + + @Column({ nullable: true }) + deceased_at: Date; + + /** meninggal-kurang-48-jam | meninggal-lebih-48-jam | iufd */ + @Column({ nullable: true, length: 64 }) + discharge_status: string; + + /** meninggal-kurang-48-jam | meninggal-lebih-48-jam */ + @Column({ nullable: true, length: 64 }) + discharge_condition: string; + + @ManyToOne(() => User, { onDelete: "NO ACTION", nullable: true }) + @JoinColumn() + declaring_doctor: User; + + /** diagnosa-akhir | diagnosa-tambahan */ + @Column({ nullable: true, length: 64 }) + diagnosis_type: string; + + @Column({ nullable: true, length: 256 }) + final_diagnosis_code: string; + + @Column({ nullable: true, type: "text" }) + final_diagnosis_name: string; + + @Column({ nullable: true, type: "text" }) + death_chronology: string; + + @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/schema/emr.ts b/src/schema/emr.ts index becbe52..420280a 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_boarding_rooms"; export * from "../entity/emr/emr_boarding_room_doctor_histories"; export * from "../entity/emr/emr_boarding_room_bed_histories"; +export * from "../entity/emr/emr_boarding_room_deceased"; export * from "../entity/emr/emr_diagnosis"; export * from "../entity/emr/emr_diagnostic_procedure"; export * from "../entity/emr/emr_doctor_procedure";