add entity for hemodialysis_schedule and emr_hemodialysis_visits

This commit is contained in:
Iki
2026-06-22 18:43:54 +09:00
parent 744b4b12eb
commit f0a1cf6f93
3 changed files with 141 additions and 0 deletions

View File

@ -0,0 +1,62 @@
import {
Entity,
PrimaryGeneratedColumn,
Column,
CreateDateColumn,
UpdateDateColumn,
DeleteDateColumn,
ManyToOne,
JoinColumn,
} from "typeorm";
import { EmrPatient } from "./emr_patient";
import { HemodialysisPlan } from "./emr_hemodialysis_plan";
export enum HemodialysisScheduleStatus {
SCHEDULED = "SCHEDULED",
CHECKED_IN = "CHECKED_IN",
COMPLETED = "COMPLETED",
CANCELLED = "CANCELLED",
}
@Entity("emr_hemodialysis_schedules", { schema: "emr" })
export class HemodialysisSchedule {
@PrimaryGeneratedColumn("uuid")
id: string;
@ManyToOne(() => HemodialysisPlan, { onDelete: "NO ACTION", nullable: false })
@JoinColumn({ name: "plan_id" })
plan: HemodialysisPlan;
@ManyToOne(() => EmrPatient, { onDelete: "NO ACTION", nullable: false })
@JoinColumn({ name: "patient_id" })
patient: EmrPatient;
@Column({ type: "date", nullable: false })
scheduled_date: string;
/** ISO weekday: 1 = Monday … 7 = Sunday (recurring weekly slot) */
@Column({ type: "smallint", nullable: true })
day_of_week: number | null;
@Column({
type: "enum",
enum: HemodialysisScheduleStatus,
default: HemodialysisScheduleStatus.SCHEDULED,
})
status: HemodialysisScheduleStatus;
@Column({ nullable: true, length: 256 })
assigned_by: string | null;
@Column()
@CreateDateColumn()
created_at: Date;
@Column({ nullable: true })
@UpdateDateColumn()
updated_at: Date;
@Column({ nullable: true })
@DeleteDateColumn()
deleted_at: Date;
}

View File

@ -0,0 +1,77 @@
import {
Entity,
PrimaryGeneratedColumn,
Column,
CreateDateColumn,
UpdateDateColumn,
DeleteDateColumn,
ManyToOne,
JoinColumn,
} from "typeorm";
import { EmrPatient } from "./emr_patient";
import { EmrRegistration } from "./emr_registration";
import { HemodialysisSchedule } from "./emr_hemodialysis_schedule";
export enum HemodialysisVisitStatus {
WAITING_NURSING = "WAITING_NURSING",
IN_PROGRESS = "IN_PROGRESS",
COMPLETED = "COMPLETED",
}
export enum HemodialysisCheckinMethod {
SCAN = "SCAN",
MANUAL = "MANUAL",
}
@Entity("emr_hemodialysis_visits", { schema: "emr" })
export class HemodialysisVisit {
@PrimaryGeneratedColumn("uuid")
id: string;
@ManyToOne(() => HemodialysisSchedule, { onDelete: "NO ACTION", nullable: false })
@JoinColumn({ name: "schedule_id" })
schedule: HemodialysisSchedule;
@ManyToOne(() => EmrPatient, { onDelete: "NO ACTION", nullable: false })
@JoinColumn({ name: "patient_id" })
patient: EmrPatient;
@ManyToOne(() => EmrRegistration, { onDelete: "NO ACTION", nullable: true })
@JoinColumn({ name: "registration_id" })
registration: EmrRegistration | null;
@Column({ type: "date", nullable: false })
visit_date: string;
@Column({ type: "timestamptz", nullable: true })
checkin_time: Date | null;
@Column({ type: "timestamptz", nullable: true })
checkout_time: Date | null;
@Column({
type: "enum",
enum: HemodialysisVisitStatus,
default: HemodialysisVisitStatus.WAITING_NURSING,
})
status: HemodialysisVisitStatus;
@Column({
type: "enum",
enum: HemodialysisCheckinMethod,
nullable: true,
})
checkin_method: HemodialysisCheckinMethod | null;
@Column()
@CreateDateColumn()
created_at: Date;
@Column({ nullable: true })
@UpdateDateColumn()
updated_at: Date;
@Column({ nullable: true })
@DeleteDateColumn()
deleted_at: Date;
}

View File

@ -6,6 +6,8 @@ export * from "../entity/emr/emr_registration_emergency";
export * from "../entity/emr/emr_registration_hemodialysis";
export * from "../entity/emr/emr_hemodialysis_settings";
export * from "../entity/emr/emr_hemodialysis_plan";
export * from "../entity/emr/emr_hemodialysis_schedule";
export * from "../entity/emr/emr_hemodialysis_visit";
export * from "../entity/emr/emr_anamnesis";
export * from "../entity/emr/emr_vital_signs";
export * from "../entity/emr/emr_physical_examination";