Merge branches 'main' and 'main' of https://git.shiblysolution.id/SAUDE-TL/entity
This commit is contained in:
72
src/entity/card-management/card_inventory.ts
Normal file
72
src/entity/card-management/card_inventory.ts
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
import {
|
||||||
|
Entity,
|
||||||
|
PrimaryGeneratedColumn,
|
||||||
|
Column,
|
||||||
|
CreateDateColumn,
|
||||||
|
UpdateDateColumn,
|
||||||
|
DeleteDateColumn,
|
||||||
|
ManyToOne,
|
||||||
|
JoinColumn,
|
||||||
|
Index,
|
||||||
|
} from "typeorm";
|
||||||
|
import { EmrPatient } from "../emr/emr_patient";
|
||||||
|
import { CardInventoryStatus } from "../../types/card_inventory_status";
|
||||||
|
|
||||||
|
@Entity({ schema: "card_management", name: "card_inventory" })
|
||||||
|
@Index(["card_number"], { unique: true })
|
||||||
|
@Index(["running_number"], { unique: true })
|
||||||
|
export class CardInventory {
|
||||||
|
@PrimaryGeneratedColumn("uuid")
|
||||||
|
id: string;
|
||||||
|
|
||||||
|
@ManyToOne(() => EmrPatient, { onDelete: "NO ACTION", nullable: true })
|
||||||
|
@JoinColumn({ name: "patientId" })
|
||||||
|
patient: EmrPatient;
|
||||||
|
|
||||||
|
@Column({ nullable: true, length: 64 })
|
||||||
|
mrn: string;
|
||||||
|
|
||||||
|
@Column({ type: "bigint", nullable: false, unique: true })
|
||||||
|
running_number: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, length: 64, unique: true })
|
||||||
|
card_number: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, length: 128 })
|
||||||
|
tag_id: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, length: 64 })
|
||||||
|
facility_code: string;
|
||||||
|
|
||||||
|
@Column({
|
||||||
|
type: "enum",
|
||||||
|
enum: CardInventoryStatus,
|
||||||
|
nullable: false,
|
||||||
|
default: CardInventoryStatus.NOT_USED,
|
||||||
|
})
|
||||||
|
status: CardInventoryStatus;
|
||||||
|
|
||||||
|
@Column({ type: "timestamp", nullable: true })
|
||||||
|
printed_at: Date;
|
||||||
|
|
||||||
|
@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;
|
||||||
|
}
|
||||||
48
src/entity/card-management/card_stock_in.ts
Normal file
48
src/entity/card-management/card_stock_in.ts
Normal file
@ -0,0 +1,48 @@
|
|||||||
|
import {
|
||||||
|
Entity,
|
||||||
|
PrimaryGeneratedColumn,
|
||||||
|
Column,
|
||||||
|
CreateDateColumn,
|
||||||
|
UpdateDateColumn,
|
||||||
|
DeleteDateColumn,
|
||||||
|
} from "typeorm";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Placeholder for future batch card stock-in workflow.
|
||||||
|
* Entity only — no API, UI, or business logic yet.
|
||||||
|
*/
|
||||||
|
@Entity({ schema: "card_management", name: "card_stock_in" })
|
||||||
|
export class CardStockIn {
|
||||||
|
@PrimaryGeneratedColumn("uuid")
|
||||||
|
id: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, length: 64 })
|
||||||
|
batch_number: string;
|
||||||
|
|
||||||
|
@Column({ type: "int", nullable: true })
|
||||||
|
quantity: number;
|
||||||
|
|
||||||
|
@Column({ type: "text", nullable: true })
|
||||||
|
notes: string;
|
||||||
|
|
||||||
|
@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;
|
||||||
|
}
|
||||||
53
src/entity/card-management/running_number_log.ts
Normal file
53
src/entity/card-management/running_number_log.ts
Normal file
@ -0,0 +1,53 @@
|
|||||||
|
import {
|
||||||
|
Entity,
|
||||||
|
PrimaryGeneratedColumn,
|
||||||
|
Column,
|
||||||
|
CreateDateColumn,
|
||||||
|
UpdateDateColumn,
|
||||||
|
DeleteDateColumn,
|
||||||
|
Index,
|
||||||
|
} from "typeorm";
|
||||||
|
|
||||||
|
@Entity({ schema: "card_management", name: "running_number_log" })
|
||||||
|
@Index(["running_number"])
|
||||||
|
@Index(["requested_at"])
|
||||||
|
export class RunningNumberLog {
|
||||||
|
@PrimaryGeneratedColumn("uuid")
|
||||||
|
id: string;
|
||||||
|
|
||||||
|
@Column({ type: "bigint", nullable: false })
|
||||||
|
running_number: string;
|
||||||
|
|
||||||
|
@Column({ nullable: false, length: 128 })
|
||||||
|
service_name: string;
|
||||||
|
|
||||||
|
@Column({ type: "uuid", nullable: false })
|
||||||
|
requested_by: string;
|
||||||
|
|
||||||
|
@Column({ nullable: false, length: 256 })
|
||||||
|
requested_by_name: string;
|
||||||
|
|
||||||
|
@Column({ type: "timestamp", nullable: false })
|
||||||
|
requested_at: Date;
|
||||||
|
|
||||||
|
@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;
|
||||||
|
}
|
||||||
@ -54,6 +54,18 @@ export class CardPrintQueue {
|
|||||||
@Column({ type: "text", nullable: true })
|
@Column({ type: "text", nullable: true })
|
||||||
facility_code?: string;
|
facility_code?: string;
|
||||||
|
|
||||||
|
@Column({ type: "bigint", nullable: true })
|
||||||
|
running_number?: string;
|
||||||
|
|
||||||
|
@Column({ type: "text", nullable: true })
|
||||||
|
card_number?: string;
|
||||||
|
|
||||||
|
@Column({ type: "text", nullable: true })
|
||||||
|
provision_job_id?: string;
|
||||||
|
|
||||||
|
@Column({ type: "text", nullable: true })
|
||||||
|
error_message?: string;
|
||||||
|
|
||||||
@Column({
|
@Column({
|
||||||
type: "enum",
|
type: "enum",
|
||||||
enum: CardPrintQueueStatus,
|
enum: CardPrintQueueStatus,
|
||||||
|
|||||||
82
src/entity/emr/emr_observation_record.ts
Normal file
82
src/entity/emr/emr_observation_record.ts
Normal file
@ -0,0 +1,82 @@
|
|||||||
|
import {
|
||||||
|
Entity,
|
||||||
|
PrimaryGeneratedColumn,
|
||||||
|
Column,
|
||||||
|
CreateDateColumn,
|
||||||
|
UpdateDateColumn,
|
||||||
|
DeleteDateColumn,
|
||||||
|
ManyToOne,
|
||||||
|
JoinColumn,
|
||||||
|
Index,
|
||||||
|
} from "typeorm";
|
||||||
|
|
||||||
|
import { Avpu } from "../../enum/avpu";
|
||||||
|
import { User } from "../users";
|
||||||
|
import { EmrRegistration } from "./emr_registration";
|
||||||
|
|
||||||
|
@Entity("emr_observation_record", { schema: "emr" })
|
||||||
|
@Index("idx_emr_observation_record_registration", ["registration"])
|
||||||
|
export class ObservationRecord {
|
||||||
|
@PrimaryGeneratedColumn("uuid")
|
||||||
|
id: string;
|
||||||
|
|
||||||
|
@ManyToOne(() => EmrRegistration, { onDelete: "CASCADE" })
|
||||||
|
@JoinColumn({ name: "registration_id" })
|
||||||
|
registration: EmrRegistration;
|
||||||
|
|
||||||
|
@Column({ length: 5 })
|
||||||
|
oras: string;
|
||||||
|
|
||||||
|
@Column({ nullable: true, type: "int2" })
|
||||||
|
respirasi: number | null;
|
||||||
|
|
||||||
|
@Column({ nullable: true, type: "int2" })
|
||||||
|
spo2: number | null;
|
||||||
|
|
||||||
|
@Column({ nullable: true, type: "int2" })
|
||||||
|
hr: number | null;
|
||||||
|
|
||||||
|
@Column({ nullable: true, type: "int2" })
|
||||||
|
bp_systolic: number | null;
|
||||||
|
|
||||||
|
@Column({ nullable: true, type: "int2" })
|
||||||
|
bp_diastolic: number | null;
|
||||||
|
|
||||||
|
@Column({ nullable: true, type: "float" })
|
||||||
|
temperatura: number | null;
|
||||||
|
|
||||||
|
@Column({
|
||||||
|
type: "enum",
|
||||||
|
enum: Avpu,
|
||||||
|
nullable: true,
|
||||||
|
})
|
||||||
|
avpu: Avpu | null;
|
||||||
|
|
||||||
|
@Column({ nullable: true, type: "float" })
|
||||||
|
todan: number | null;
|
||||||
|
|
||||||
|
@ManyToOne(() => User, { onDelete: "NO ACTION" })
|
||||||
|
@JoinColumn({ name: "assina_uuid" })
|
||||||
|
assina: 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;
|
||||||
|
}
|
||||||
6
src/enum/avpu.ts
Normal file
6
src/enum/avpu.ts
Normal file
@ -0,0 +1,6 @@
|
|||||||
|
export enum Avpu {
|
||||||
|
A = "A",
|
||||||
|
V = "V",
|
||||||
|
P = "P",
|
||||||
|
U = "U",
|
||||||
|
}
|
||||||
@ -7,3 +7,4 @@ export * from "./schema/pharmacy";
|
|||||||
export * from "./schema/pharmacy_logistic";
|
export * from "./schema/pharmacy_logistic";
|
||||||
export * from "./schema/cashier";
|
export * from "./schema/cashier";
|
||||||
export * from "./schema/blood_bank";
|
export * from "./schema/blood_bank";
|
||||||
|
export * from "./schema/card_management";
|
||||||
4
src/schema/card_management.ts
Normal file
4
src/schema/card_management.ts
Normal file
@ -0,0 +1,4 @@
|
|||||||
|
export * from "../types/card_inventory_status";
|
||||||
|
export * from "../entity/card-management/card_inventory";
|
||||||
|
export * from "../entity/card-management/running_number_log";
|
||||||
|
export * from "../entity/card-management/card_stock_in";
|
||||||
@ -55,6 +55,7 @@ export * from "../entity/treatment/treatment_plan";
|
|||||||
export * from "../entity/treatment/treatment_plan_session";
|
export * from "../entity/treatment/treatment_plan_session";
|
||||||
export * from "../entity/emr/emr_registration_treatment";
|
export * from "../entity/emr/emr_registration_treatment";
|
||||||
export * from "../entity/emr/emr_ancillary_service_order";
|
export * from "../entity/emr/emr_ancillary_service_order";
|
||||||
|
export * from "../entity/emr/emr_observation_record";
|
||||||
|
|
||||||
export * from "../types/registration_type";
|
export * from "../types/registration_type";
|
||||||
export * from "../types/registration_status";
|
export * from "../types/registration_status";
|
||||||
@ -63,6 +64,7 @@ export * from "../types/prescription_pharmacy_status";
|
|||||||
export * from "../types/radiology_order_status";
|
export * from "../types/radiology_order_status";
|
||||||
export * from "../types/laboratory_order_status";
|
export * from "../types/laboratory_order_status";
|
||||||
export * from "../enum/consciousness";
|
export * from "../enum/consciousness";
|
||||||
|
export * from "../enum/avpu";
|
||||||
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";
|
||||||
|
|||||||
7
src/types/card_inventory_status.ts
Normal file
7
src/types/card_inventory_status.ts
Normal file
@ -0,0 +1,7 @@
|
|||||||
|
export enum CardInventoryStatus {
|
||||||
|
/** Blank card in stock — not yet assigned / injected to a patient */
|
||||||
|
NOT_USED = "NOT_USED",
|
||||||
|
ACTIVE = "ACTIVE",
|
||||||
|
LOST = "LOST",
|
||||||
|
REPLACED = "REPLACED",
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user