88 lines
2.1 KiB
TypeScript
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;
|
|
}
|
|
|