From 85c96521af5228d5e0ceaf8d5aab7bb77cf4471c Mon Sep 17 00:00:00 2001 From: wayanrivan Date: Fri, 29 May 2026 14:01:19 +0700 Subject: [PATCH 1/4] update: add tbak column to emr_soap_notes --- src/entity/emr/emr_soap_notes.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/entity/emr/emr_soap_notes.ts b/src/entity/emr/emr_soap_notes.ts index 8b70b13..fd92bac 100644 --- a/src/entity/emr/emr_soap_notes.ts +++ b/src/entity/emr/emr_soap_notes.ts @@ -45,6 +45,9 @@ export class EmrSoapNotes { @Column({ nullable: true, type: "text" }) plan: string | null; + @Column({ nullable: false, type: "boolean", default: false }) + tbak: boolean; + @CreateDateColumn() created_at: Date; From 665dadca25eae6d04a6f07556885564872780e33 Mon Sep 17 00:00:00 2001 From: "fazri.is" Date: Fri, 29 May 2026 14:17:30 +0700 Subject: [PATCH 2/4] update --- src/entity/emr/emr_boarding_room_doctor_histories.ts | 5 +++++ src/entity/emr/emr_boarding_rooms.ts | 7 +++++-- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/entity/emr/emr_boarding_room_doctor_histories.ts b/src/entity/emr/emr_boarding_room_doctor_histories.ts index 479637e..f5b228e 100644 --- a/src/entity/emr/emr_boarding_room_doctor_histories.ts +++ b/src/entity/emr/emr_boarding_room_doctor_histories.ts @@ -21,6 +21,11 @@ export class EmrBoardingRoomDoctorHistory { @JoinColumn() doctor: User; + @Column({ + nullable: true, + }) + type: string; + @Column({ nullable: true, }) diff --git a/src/entity/emr/emr_boarding_rooms.ts b/src/entity/emr/emr_boarding_rooms.ts index 8a0dd0e..5a5db64 100644 --- a/src/entity/emr/emr_boarding_rooms.ts +++ b/src/entity/emr/emr_boarding_rooms.ts @@ -25,7 +25,11 @@ export class EmrBoardingRoom { @ManyToOne(() => User, { onDelete: "NO ACTION", nullable: true }) @JoinColumn() - user: User; + primary_doctor: User; + + @ManyToOne(() => User, { onDelete: "NO ACTION", nullable: true }) + @JoinColumn() + secondary_doctor: User; @ManyToOne(() => InpatientRoom, { onDelete: "NO ACTION", nullable: true }) @JoinColumn() @@ -40,7 +44,6 @@ export class EmrBoardingRoom { @Column({ nullable: false }) boarding_at: Date; - /** masih-dirawat | rencana-pulang | titipan */ @Column({ nullable: true, length: 64 }) inpatient_care_status: string; From d0c2411514433f94a6ce965ed0c977995a50519f Mon Sep 17 00:00:00 2001 From: "fazri.is" Date: Fri, 29 May 2026 14:26:20 +0700 Subject: [PATCH 3/4] update --- src/schema/emr.ts | 1 + src/types/public.ts | 7 ++ src/types/trx.ts | 167 -------------------------------------------- 3 files changed, 8 insertions(+), 167 deletions(-) delete mode 100644 src/types/trx.ts diff --git a/src/schema/emr.ts b/src/schema/emr.ts index de91ff6..5f99b27 100644 --- a/src/schema/emr.ts +++ b/src/schema/emr.ts @@ -63,3 +63,4 @@ export * from "../enum/consciousness"; export * from "../types/patient_category"; export * from "../types/citizen"; export * from "../types/treatment_session"; + diff --git a/src/types/public.ts b/src/types/public.ts index 5cb2994..7d42cfc 100644 --- a/src/types/public.ts +++ b/src/types/public.ts @@ -5,3 +5,10 @@ export enum InpatientRoomBedStatus { "Occupied" = "occupied", "Transfer" = 'transfer', } + +export enum BoardingRoomDoctorType { + "Primary" = "primary", + "Secondary" = "secondary", +} + + diff --git a/src/types/trx.ts b/src/types/trx.ts deleted file mode 100644 index 9a28493..0000000 --- a/src/types/trx.ts +++ /dev/null @@ -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", -} From dfa3ee24e7d1c88aa4b8f6256d549373fba37b3b Mon Sep 17 00:00:00 2001 From: "fazri.is" Date: Fri, 29 May 2026 16:00:27 +0700 Subject: [PATCH 4/4] update --- ...ransfer_additional_attending_physicians.ts | 41 +++++++++++++++++++ ..._emergency_transfer_secondary_diagnoses.ts | 41 +++++++++++++++++++ src/entity/emr/emr_emergency_transfers.ts | 16 ++++---- src/schema/emr.ts | 2 + 4 files changed, 92 insertions(+), 8 deletions(-) create mode 100644 src/entity/emr/emr_emergency_transfer_additional_attending_physicians.ts create mode 100644 src/entity/emr/emr_emergency_transfer_secondary_diagnoses.ts 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";