This commit is contained in:
wayanrivan
2026-04-09 11:42:36 +07:00
6 changed files with 80 additions and 17 deletions

View File

@ -59,9 +59,11 @@ export class EmrCompoundingMedicine {
@OneToMany(() => EmrCompoundingMedicineItem, (item) => item.compounding_medicine, { cascade: true }) @OneToMany(() => EmrCompoundingMedicineItem, (item) => item.compounding_medicine, { cascade: true })
items: EmrCompoundingMedicineItem[]; items: EmrCompoundingMedicineItem[];
unit_price?: number; @Column({ nullable: true, type: "float" })
unit_price?: number | null;
total_price?: number; @Column({ nullable: true, type: "float" })
total_price?: number | null;
@Column() @Column()
@CreateDateColumn() @CreateDateColumn()

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 })
@ -56,13 +57,17 @@ export class EmrPharmacyOrder {
@JoinColumn({ name: "referring_room_id" }) @JoinColumn({ name: "referring_room_id" })
referring_room: Room | null; referring_room: Room | null;
@Column({ nullable: true, type: "text", array: true }) @Column({ nullable: true, type: "jsonb" })
prescription_screening: string[] | null; prescription_screening?: object;
@Column({ nullable: true, type: "text" }) @Column({ nullable: true, type: "text" })
status: PharmacyOrderStatus; status: PharmacyOrderStatus;
subtotal_price?: number @Column({ nullable: true, type: "float" })
subtotal_price?: number | null;
@OneToMany(() => EmrPharmacyOrderActivity, (activity) => activity.pharmacy_order, { cascade: true })
activities: EmrPharmacyOrderActivity[];
@Column() @Column()
@CreateDateColumn() @CreateDateColumn()
@ -86,7 +91,3 @@ export class EmrPharmacyOrder {
deleted_by: string; deleted_by: string;
} }
function Sequence(arg0: string): (target: EmrPharmacyOrder, propertyKey: "order_number") => void {
throw new Error("Function not implemented.");
}

View File

@ -0,0 +1,53 @@
import { Column, CreateDateColumn, Entity, JoinColumn, ManyToOne, PrimaryGeneratedColumn } from "typeorm";
import { EmrPharmacyOrder } from "./emr_pharmacy_order";
import { PharmacyOrderStatus } from "../../types/pharmacy_order_status";
@Entity("emr_pharmacy_order_activity", { schema: "emr" })
export class EmrPharmacyOrderActivity {
@PrimaryGeneratedColumn("uuid")
id: string;
@ManyToOne(() => EmrPharmacyOrder, (order) => order.activities, { onDelete: "CASCADE" })
@JoinColumn({ name: "pharmacy_order_id" })
pharmacy_order: EmrPharmacyOrder;
@Column({ type: "varchar", unique: true })
code: string;
@Column({ nullable: true, type: "varchar", length: 256, unique: true })
queue_number?: string | null;
@Column({ nullable: true, type: "text" })
doctor: string | null;
@Column({ nullable: true, type: "text" })
patient: string | null;
@Column({ nullable: true, type: "jsonb" })
compounding_medicines: object | null;
@Column({ nullable: true, type: "jsonb" })
prescriptions: object | null;
@Column({ nullable: true, type: "text" })
room: string | null;
@Column({ nullable: true, type: "text" })
referring_room: string | null;
@Column({ nullable: true, type: "jsonb" })
prescription_screening?: object | null;
@Column({ type: "enum", enum: PharmacyOrderStatus })
status: PharmacyOrderStatus;
@Column({ nullable: true, type: "float" })
subtotal_price?: number | null;
@Column()
@CreateDateColumn()
created_at: Date;
@Column({ nullable: true, length: 256 })
created_by: string;
}

View File

@ -57,9 +57,11 @@ export class EmrPrescription {
@JoinColumn({ name: "room_stock_id" }) @JoinColumn({ name: "room_stock_id" })
room_stock: RoomStock; room_stock: RoomStock;
unit_price?: number; @Column({ nullable: true, type: "float" })
unit_price?: number | null;
total_price?: number; @Column({ nullable: true, type: "float" })
total_price?: number | null;
@Column() @Column()
@CreateDateColumn() @CreateDateColumn()

View File

@ -23,6 +23,7 @@ export * from "../entity/emr/emr_compounding_medicine_item";
export * from "../entity/emr/emr_room_medical_equipment"; export * from "../entity/emr/emr_room_medical_equipment";
export * from "../entity/emr/emr_external_consultation"; export * from "../entity/emr/emr_external_consultation";
export * from "../entity/emr/emr_pharmacy_order"; export * from "../entity/emr/emr_pharmacy_order";
export * from "../entity/emr/emr_pharmacy_order_activity";
export * from "../types/registration_type"; export * from "../types/registration_type";
export * from "../types/registration_status"; export * from "../types/registration_status";

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
* Submitted: order diserahkan 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",
SUBMITTED = "submitted",
CANCELED = "canceled", CANCELED = "canceled",
} }