feat(emr): add EmrBoardingRoomMedicalSummary entity and update schema export

This commit is contained in:
Sony Surahmn
2026-05-20 15:30:27 +07:00
parent 77d1dd43ab
commit 08129ec2f1
3 changed files with 54 additions and 6 deletions

View File

@ -0,0 +1,46 @@
import {
Entity,
PrimaryGeneratedColumn,
Column,
CreateDateColumn,
UpdateDateColumn,
DeleteDateColumn,
OneToOne,
JoinColumn,
} from "typeorm";
import { EmrBoardingRoom } from "./emr_boarding_rooms";
/** Resume medis pasien satu dokumen JSON per boarding room (di-upsert). */
@Entity("emr_boarding_room_medical_summary", { schema: "emr" })
export class EmrBoardingRoomMedicalSummary {
@PrimaryGeneratedColumn("uuid")
id: string;
@OneToOne(() => EmrBoardingRoom, { onDelete: "NO ACTION" })
@JoinColumn()
boarding_room: EmrBoardingRoom;
@Column({ type: "jsonb", nullable: true })
payload: Record<string, unknown>;
@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;
}

View File

@ -5,33 +5,34 @@ import {
CreateDateColumn,
UpdateDateColumn,
DeleteDateColumn,
OneToOne,
ManyToOne,
JoinColumn,
} from "typeorm";
import { EmrBoardingRoom } from "./emr_boarding_rooms";
/** Laporan tindakan (procedure report) for an inpatient boarding room — upserted as one row per boarding room. */
/** Satu baris laporan tindakan per entri; satu boarding room dapat memiliki banyak laporan. */
@Entity("emr_boarding_room_procedure_report", { schema: "emr" })
export class EmrBoardingRoomProcedureReport {
@PrimaryGeneratedColumn("uuid")
id: string;
@OneToOne(() => EmrBoardingRoom, { onDelete: "NO ACTION" })
@ManyToOne(() => EmrBoardingRoom, { onDelete: "NO ACTION" })
@JoinColumn()
boarding_room: EmrBoardingRoom;
/** Tanggal input form */
@Column({ nullable: true })
input_at: Date;
/** Nama / label tindakan (teks bebas) */
@Column({ nullable: true, type: "text" })
procedure_name: string;
/** Uraian (HTML dari rich text editor) */
@Column({ nullable: true, type: "text" })
description_html: string;
/** ICD-9-CM (opsional), dipakai di Patient Medical Summary */
@Column({ nullable: true, length: 32 })
icd9_cm_code: string;
@Column()
@CreateDateColumn()
created_at: Date;

View File

@ -15,6 +15,7 @@ export * from "../entity/emr/emr_boarding_room_deceased";
export * from "../entity/emr/emr_boarding_room_discharge";
export * from "../entity/emr/emr_boarding_room_emergency_status";
export * from "../entity/emr/emr_boarding_room_procedure_report";
export * from "../entity/emr/emr_boarding_room_medical_summary";
export * from "../entity/emr/emr_diagnosis";
export * from "../entity/emr/emr_diagnostic_procedure";
export * from "../entity/emr/emr_doctor_procedure";