diff --git a/src/entity/emr/emr_emergency_transfer_additional_attending_physicians.ts b/src/entity/emr/emr_emergency_transfer_additional_attending_physicians.ts new file mode 100644 index 0000000..0d02692 --- /dev/null +++ b/src/entity/emr/emr_emergency_transfer_additional_attending_physicians.ts @@ -0,0 +1,41 @@ +import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, DeleteDateColumn, ManyToOne, JoinColumn } from "typeorm"; +import { EmrEmergencyTransfer } from "./emr_emergency_transfers"; +import { User } from "../users"; + +@Entity("emr_emergency_transfer_additional_attending_physicians", { schema: "emr" }) +export class EmrEmergencyTransferAdditionalAttendingPhysician { + // Primary key DPJP tambahan (rawat bersama) + @PrimaryGeneratedColumn("uuid") + id: string; + + // Relasi ke data transfer antar unit + @ManyToOne(() => EmrEmergencyTransfer, { onDelete: "NO ACTION" }) + @JoinColumn() + emergency_transfer: EmrEmergencyTransfer; + + // Dokter DPJP tambahan + @ManyToOne(() => User, { onDelete: "NO ACTION" }) + @JoinColumn() + doctor: User; + + @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_emergency_transfer_secondary_diagnoses.ts b/src/entity/emr/emr_emergency_transfer_secondary_diagnoses.ts new file mode 100644 index 0000000..ab51cab --- /dev/null +++ b/src/entity/emr/emr_emergency_transfer_secondary_diagnoses.ts @@ -0,0 +1,41 @@ +import { Entity, PrimaryGeneratedColumn, Column, CreateDateColumn, UpdateDateColumn, DeleteDateColumn, ManyToOne, JoinColumn } from "typeorm"; +import { EmrEmergencyTransfer } from "./emr_emergency_transfers"; +import { EmrDiagnosis } from "./emr_diagnosis"; + +@Entity("emr_emergency_transfer_secondary_diagnoses", { schema: "emr" }) +export class EmrEmergencyTransferSecondaryDiagnosis { + // Primary key diagnosis sekunder + @PrimaryGeneratedColumn("uuid") + id: string; + + // Relasi ke data transfer antar unit + @ManyToOne(() => EmrEmergencyTransfer, { onDelete: "NO ACTION" }) + @JoinColumn() + emergency_transfer: EmrEmergencyTransfer; + + // Diagnosis sekunder + @ManyToOne(() => EmrDiagnosis, { onDelete: "NO ACTION" }) + @JoinColumn() + diagnosis: EmrDiagnosis; + + @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_emergency_transfers.ts b/src/entity/emr/emr_emergency_transfers.ts index 16aa1ec..f7f9d6b 100644 --- a/src/entity/emr/emr_emergency_transfers.ts +++ b/src/entity/emr/emr_emergency_transfers.ts @@ -9,6 +9,8 @@ import { User } from "../users"; import { EmrDiagnosis } from "./emr_diagnosis"; import { TransferMethodType, TransferRiskType } from "../../types/emr"; import { EmrEmergencyTransferAttachedDevice } from "./emr_emergency_transfer_attached_devices"; +import { EmrEmergencyTransferAdditionalAttendingPhysician } from "./emr_emergency_transfer_additional_attending_physicians"; +import { EmrEmergencyTransferSecondaryDiagnosis } from "./emr_emergency_transfer_secondary_diagnoses"; import { EmrRegistration } from "./emr_registration"; import { InpatientRoom } from "../inpatient_rooms"; import { InpatientRoomBed } from "../inpatient_room_beds"; @@ -56,20 +58,18 @@ export class EmrEmergencyTransfer { @JoinColumn() primary_attending_physician: User; - // DPJP tambahan (rawat bersama) - @ManyToOne(() => User, { onDelete: "NO ACTION" }) - @JoinColumn() - additional_attending_physicians: User; + // DPJP tambahan (rawat bersama) - bisa lebih dari satu + @OneToMany(() => EmrEmergencyTransferAdditionalAttendingPhysician, (physician: EmrEmergencyTransferAdditionalAttendingPhysician) => physician.emergency_transfer) + additional_attending_physicians: EmrEmergencyTransferAdditionalAttendingPhysician[]; // Diagnosis utama @ManyToOne(() => EmrDiagnosis, { onDelete: "NO ACTION" }) @JoinColumn() primary_diagnosis: EmrDiagnosis; - // Diagnosis sekunder - @ManyToOne(() => EmrDiagnosis, { onDelete: "NO ACTION" }) - @JoinColumn() - secondary_diagnosis: EmrDiagnosis; + // Diagnosis sekunder - bisa lebih dari satu + @OneToMany(() => EmrEmergencyTransferSecondaryDiagnosis, (diagnosis: EmrEmergencyTransferSecondaryDiagnosis) => diagnosis.emergency_transfer) + secondary_diagnoses: EmrEmergencyTransferSecondaryDiagnosis[]; // Alasan pemindahan: kondisi memburuk / tidak stabil @Column({ nullable: true, type: "boolean", default: false }) diff --git a/src/schema/emr.ts b/src/schema/emr.ts index 5f99b27..f7cedfa 100644 --- a/src/schema/emr.ts +++ b/src/schema/emr.ts @@ -40,6 +40,8 @@ export * from "../entity/emr/emr_emergency_transfer_attached_devices"; export * from "../entity/emr/emr_emergency_transfer_diagnostics"; export * from "../entity/emr/emr_emergency_transfer_clinical_interventions"; export * from "../entity/emr/emr_emergency_transfer_patient_conditions"; +export * from "../entity/emr/emr_emergency_transfer_additional_attending_physicians"; +export * from "../entity/emr/emr_emergency_transfer_secondary_diagnoses"; export * from "../entity/emr/emr_physical_examination_emergency"; export * from "../entity/emr/emr_doctor_order_emergency"; export * from "../entity/emr/emr_atenatal_care";