Files
entity/src/entity/emr/emr_radiology.ts
2026-04-16 10:52:24 +07:00

88 lines
2.1 KiB
TypeScript

import {
Entity,
PrimaryGeneratedColumn,
Column,
CreateDateColumn,
UpdateDateColumn,
DeleteDateColumn,
ManyToOne,
OneToOne,
JoinColumn,
OneToMany
} from "typeorm";
import { RadiologyOrderStatus } from "../../types/radiology_order_status";
import { EmrPatient } from "./emr_patient";
import { User } from "../users";
import { RadiologyServices } from "./emr_radiology_services";
import { Room } from "../room";
import { EmrRegistration } from "./emr_registration";
@Entity("emr_radiology", { schema: "emr" })
export class Radiology {
@PrimaryGeneratedColumn("uuid")
id: string;
@OneToMany(() => RadiologyServices, (rs) => rs.id_radiology)
radiology_services: RadiologyServices[];
@ManyToOne(() => EmrPatient, { onDelete: "CASCADE" })
@JoinColumn()
id_patient: EmrPatient;
@ManyToOne(() => User, { onDelete: "CASCADE" })
@JoinColumn()
id_doctor: User;
@ManyToOne(() => Room, { onDelete: "CASCADE" })
@JoinColumn()
id_room: Room;
@ManyToOne(() => Room, { onDelete: "CASCADE" })
@JoinColumn()
refferingroom: Room;
// Di entity Radiology, tambahkan:
@ManyToOne(() => EmrRegistration, { onDelete: "CASCADE" })
@JoinColumn()
id_registration: EmrRegistration;
@Column({
type: "enum",
enum: RadiologyOrderStatus,
nullable: false,
default: RadiologyOrderStatus.WAITING,
})
status: RadiologyOrderStatus;
@Column({ nullable: true, length: 128, unique: true })
queue_number?: string;
@Column({ type: "date", nullable: true })
schedule_date: Date;
@Column({ nullable: true, type: "text" })
order_number: 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;
}