This commit is contained in:
avicenan
2026-06-01 09:35:55 +09:00
9 changed files with 113 additions and 177 deletions

View File

@ -21,6 +21,11 @@ export class EmrBoardingRoomDoctorHistory {
@JoinColumn() @JoinColumn()
doctor: User; doctor: User;
@Column({
nullable: true,
})
type: string;
@Column({ @Column({
nullable: true, nullable: true,
}) })

View File

@ -25,7 +25,11 @@ export class EmrBoardingRoom {
@ManyToOne(() => User, { onDelete: "NO ACTION", nullable: true }) @ManyToOne(() => User, { onDelete: "NO ACTION", nullable: true })
@JoinColumn() @JoinColumn()
user: User; primary_doctor: User;
@ManyToOne(() => User, { onDelete: "NO ACTION", nullable: true })
@JoinColumn()
secondary_doctor: User;
@ManyToOne(() => InpatientRoom, { onDelete: "NO ACTION", nullable: true }) @ManyToOne(() => InpatientRoom, { onDelete: "NO ACTION", nullable: true })
@JoinColumn() @JoinColumn()
@ -40,7 +44,6 @@ export class EmrBoardingRoom {
@Column({ nullable: false }) @Column({ nullable: false })
boarding_at: Date; boarding_at: Date;
/** masih-dirawat | rencana-pulang | titipan */
@Column({ nullable: true, length: 64 }) @Column({ nullable: true, length: 64 })
inpatient_care_status: string; inpatient_care_status: string;

View File

@ -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;
}

View File

@ -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;
}

View File

@ -9,6 +9,8 @@ import { User } from "../users";
import { EmrDiagnosis } from "./emr_diagnosis"; import { EmrDiagnosis } from "./emr_diagnosis";
import { TransferMethodType, TransferRiskType } from "../../types/emr"; import { TransferMethodType, TransferRiskType } from "../../types/emr";
import { EmrEmergencyTransferAttachedDevice } from "./emr_emergency_transfer_attached_devices"; 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 { EmrRegistration } from "./emr_registration";
import { InpatientRoom } from "../inpatient_rooms"; import { InpatientRoom } from "../inpatient_rooms";
import { InpatientRoomBed } from "../inpatient_room_beds"; import { InpatientRoomBed } from "../inpatient_room_beds";
@ -56,20 +58,18 @@ export class EmrEmergencyTransfer {
@JoinColumn() @JoinColumn()
primary_attending_physician: User; primary_attending_physician: User;
// DPJP tambahan (rawat bersama) // DPJP tambahan (rawat bersama) - bisa lebih dari satu
@ManyToOne(() => User, { onDelete: "NO ACTION" }) @OneToMany(() => EmrEmergencyTransferAdditionalAttendingPhysician, (physician: EmrEmergencyTransferAdditionalAttendingPhysician) => physician.emergency_transfer)
@JoinColumn() additional_attending_physicians: EmrEmergencyTransferAdditionalAttendingPhysician[];
additional_attending_physicians: User;
// Diagnosis utama // Diagnosis utama
@ManyToOne(() => EmrDiagnosis, { onDelete: "NO ACTION" }) @ManyToOne(() => EmrDiagnosis, { onDelete: "NO ACTION" })
@JoinColumn() @JoinColumn()
primary_diagnosis: EmrDiagnosis; primary_diagnosis: EmrDiagnosis;
// Diagnosis sekunder // Diagnosis sekunder - bisa lebih dari satu
@ManyToOne(() => EmrDiagnosis, { onDelete: "NO ACTION" }) @OneToMany(() => EmrEmergencyTransferSecondaryDiagnosis, (diagnosis: EmrEmergencyTransferSecondaryDiagnosis) => diagnosis.emergency_transfer)
@JoinColumn() secondary_diagnoses: EmrEmergencyTransferSecondaryDiagnosis[];
secondary_diagnosis: EmrDiagnosis;
// Alasan pemindahan: kondisi memburuk / tidak stabil // Alasan pemindahan: kondisi memburuk / tidak stabil
@Column({ nullable: true, type: "boolean", default: false }) @Column({ nullable: true, type: "boolean", default: false })

View File

@ -45,6 +45,9 @@ export class EmrSoapNotes {
@Column({ nullable: true, type: "text" }) @Column({ nullable: true, type: "text" })
plan: string | null; plan: string | null;
@Column({ nullable: false, type: "boolean", default: false })
tbak: boolean;
@CreateDateColumn() @CreateDateColumn()
created_at: Date; created_at: Date;

View File

@ -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_diagnostics";
export * from "../entity/emr/emr_emergency_transfer_clinical_interventions"; 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_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_physical_examination_emergency";
export * from "../entity/emr/emr_doctor_order_emergency"; export * from "../entity/emr/emr_doctor_order_emergency";
export * from "../entity/emr/emr_atenatal_care"; export * from "../entity/emr/emr_atenatal_care";
@ -63,3 +65,4 @@ export * from "../enum/consciousness";
export * from "../types/patient_category"; export * from "../types/patient_category";
export * from "../types/citizen"; export * from "../types/citizen";
export * from "../types/treatment_session"; export * from "../types/treatment_session";

View File

@ -5,3 +5,10 @@ export enum InpatientRoomBedStatus {
"Occupied" = "occupied", "Occupied" = "occupied",
"Transfer" = 'transfer', "Transfer" = 'transfer',
} }
export enum BoardingRoomDoctorType {
"Primary" = "primary",
"Secondary" = "secondary",
}

View File

@ -1,167 +0,0 @@
export enum TrxVerificationType {
"phone" = "phone",
"email" = "email",
}
export enum TrxVerificationPurposeType {
"register" = "register",
"transaction" = "transaction",
}
export enum TrxVerificationStatus {
"unverify" = "unverify",
"verify" = "verify",
"expire" = "expire",
}
export enum TrxTypeCost {
"fix" = "fix",
"percentage" = "percentage",
}
export enum TrxCustomerStatus {
"pending_supervisor" = "pending_supervisor",
"pending_manager" = "pending_manager",
"reject" = "reject",
"Active" = "active",
"not_active" = "not_active",
"submit" = "submit",
}
export enum TrxCustomerType {
"personal" = "personal",
"business" = "business",
}
export enum TrxCustomerPosition {
"supervisor" = "supervisor",
"manager" = "manager",
"cs" = "cs",
}
export enum TrxCostCode {
"BRI_TL_USD" = "BRI_TL_USD",
"OTHER_TL_USD" = "OTHER_TL_USD",
"BRI_ID_IDR" = "BRI_ID_IDR",
"BRI_ID_USD" = "BRI_ID_USD",
"OTHER_ID_IDR" = "OTHER_ID_IDR",
"OTHER_ID_USD" = "OTHER_ID_USD",
"OTHER_WW_USD" = "OTHER_WW_USD",
}
export enum TrxCostType {
"fix" = "fix",
"percentage" = "percentage",
}
export enum TrxCurrencyRateType {
"reguler" = "reguler",
"deal" = "deal",
}
export enum TrxTransactionType {
"domestic" = "domestic",
"overseas" = "overseas",
}
export enum TrxTransactionPosition {
"customer" = "customer",
"bri" = "bri",
}
export enum TrxTransactionStatus {
"draft" = "draft",
"create" = "create",
"pending_checker" = "pending_checker",
"pending_signer" = "pending_signer",
"process_deal_request" = "process_deal_request",
"process_deal_approve" = "process_deal_approve",
"process_teller" = "process_teller",
"process_settlement" = "process_settlement",
"success" = "success",
"reject" = "reject",
"cancel" = "cancel",
}
export enum TrxMaintenanceGroupStatus {
"active" = "active",
"inactive" = "inactive",
}
export enum TrxIdentityType {
"passport" = "passport",
"electoral" = "electoral",
"bi" = "bi",
}
export enum TrxTransactionRemark {
"draft" = "Draft",
"create" = "Create",
"pending_checker" = "Pending Approval Checker",
"pending_signer" = "Pending Approval Signer",
"process_deal_request" = "Deal Request Process",
"process_deal_approve" = "Deal Approve Process",
"process_teller" = "On Process Teller",
"process_settlement" = "On Process Settlement",
"success" = "Success",
"reject" = "Reject",
"cancel" = "Cancel",
}
export enum TrxSmsType {
"verification" = "verification",
"registration" = "registration",
"transaction" = "transaction",
}
export enum TrxSmsStatus {
"process" = "process",
"success" = "success",
"fail" = "fail",
}
export enum TrxEmailType {
"verification" = "verification",
"registration" = "registration",
"transaction" = "transaction",
}
export enum TrxEmailStatus {
"process" = "process",
"success" = "success",
"fail" = "fail",
}
export enum TrxMaintenanceType {
"operational" = "operational",
"business" = "business",
}
export enum TrxMaintenancePosition {
"cs" = "cs",
"supervisor" = "supervisor",
"manager" = "manager",
"customer" = "customer",
}
export enum TrxMaintenanceStatus {
"submit" = "submit",
"process_supervisor" = "process_supervisor",
"process_manager" = "process_manager",
"reject" = "reject",
"complete" = "complete",
}
export enum TrxMaintenanceRemark {
"submit" = "Submit",
"process_supervisor" = "On Process Supervisor",
"process_manager" = "On Process Manager",
"reject" = "Reject",
"complete" = "Complete",
}
export enum TrxMaintenanceActionType {
"create" = "create",
"update" = "update",
"delete" = "delete",
}