feat: add pharmacy order activity

This commit is contained in:
avicenan
2026-04-09 09:30:03 +07:00
parent c235b57d9e
commit 07c5a259d9
3 changed files with 43 additions and 5 deletions

View File

@ -17,6 +17,7 @@ import { Room } from "../room";
import { EmrRegistration } from "./emr_registration"; import { EmrRegistration } from "./emr_registration";
import { EmrPatient } from "./emr_patient"; import { EmrPatient } from "./emr_patient";
import { PharmacyOrderStatus } from "../../types/pharmacy_order_status"; import { PharmacyOrderStatus } from "../../types/pharmacy_order_status";
import { EmrPharmacyOrderActivity } from "./emr_pharmacy_order_activity";
@Entity("emr_pharmacy_order", { schema: "emr" }) @Entity("emr_pharmacy_order", { schema: "emr" })
@Index(["code", "queue_number"], { unique: true }) @Index(["code", "queue_number"], { unique: true })
@ -64,6 +65,9 @@ export class EmrPharmacyOrder {
subtotal_price?: number subtotal_price?: number
@OneToMany(() => EmrPharmacyOrderActivity, (activity) => activity.pharmacy_order, { cascade: true })
activities: EmrPharmacyOrderActivity[];
@Column() @Column()
@CreateDateColumn() @CreateDateColumn()
created_at: Date; created_at: Date;

View File

@ -0,0 +1,30 @@
import { Column, CreateDateColumn, JoinColumn, ManyToOne, PrimaryGeneratedColumn } from "typeorm";
import { EmrPharmacyOrder } from "./emr_pharmacy_order";
import { PharmacyOrderStatus } from "../../types/pharmacy_order_status";
import { User } from "../users";
export class EmrPharmacyOrderActivity {
@PrimaryGeneratedColumn("uuid")
id: string;
@ManyToOne(() => EmrPharmacyOrder, { onDelete: "CASCADE" })
@JoinColumn({ name: "pharmacy_order_id" })
pharmacy_order: EmrPharmacyOrder;
@ManyToOne(() => User, { onDelete: "CASCADE" })
@JoinColumn({ name: "user_id" })
user: User;
@Column({ nullable: false, type: "text" })
activity: PharmacyOrderStatus;
@Column({ nullable: true, type: "text" })
description: string;
@Column()
@CreateDateColumn()
created_at: Date;
@Column({ nullable: true, length: 256 })
created_by: string;
}

View File

@ -1,16 +1,20 @@
/** /**
* Workflow status untuk order farmasi. * Workflow status untuk order farmasi.
* Waiting: menunggu konfirmasi pasien * Waiting: menunggu konfirmasi order pasien
* Ordered: order telah dibuat * Ordered: order diterima oleh farmasi
* Verified: order telah diverifikasi * Verified: order diverifikasi oleh farmasi
* Completed: order telah diserahkan * Compounding: order diracik oleh farmasi
* Packaging: order dibungkus oleh farmasi
* Dispensed: order diberikan kepada pasien
* Canceled: order dibatalkan * Canceled: order dibatalkan
*/ */
export enum PharmacyOrderStatus { export enum PharmacyOrderStatus {
WAITING = "waiting", WAITING = "waiting",
ORDERED = "ordered", ORDERED = "ordered",
VERIFIED = "verified", VERIFIED = "verified",
COMPLETED = "completed", COMPOUNDING = "compounding",
PACKAGING = "packaging",
DISPENSED = "dispensed",
CANCELED = "canceled", CANCELED = "canceled",
} }