コンテンツにスキップ

VisitEx

診察に、患者・保険・診療記録などの関連情報をひとまとめにした表示用のモデル。診察画面などで、1 回の診察の内容をまとめて扱うために使います。

定義: src/lib/models/visit-ex.ts

フィールド

フィールド 説明
visitId number 診察 ID
visitedAt string 診察日時 (YYYY-MM-DD HH:MM:SS)
attributes object(省略可) 来院ごとの補助情報
patient Patient 患者
hoken HokenInfo この診察で使う保険一式
texts Text[] 診療記録の文章
drugs DrugEx[]
shinryouList ShinryouEx[] 診療行為
conducts ConductEx[] 処置
chargeOption Charge(省略可・null 可) 請求額
lastPayment Payment(省略可・null 可) 直近の入金

備考

  • 保存用の基本の形は Visit です。

型定義

import { z } from "zod";
import { chargeSchema } from "@/lib/models/charge";
import { conductExSchema } from "@/lib/models/conduct-ex";
import { drugExSchema } from "@/lib/models/drug-ex";
import { hokenInfoSchema } from "@/lib/models/hoken-info";
import { paymentSchema } from "@/lib/models/payment";
import { patientSchema } from "@/lib/models/patient";
import { shinryouExSchema } from "@/lib/models/shinryou-ex";
import { textSchema } from "@/lib/models/text";

export const visitExSchema = z.object({
  visitId: z.number(),
  visitedAt: z.string(),
  attributes: z.object({}).passthrough().optional(),
  patient: patientSchema,
  hoken: hokenInfoSchema,
  texts: z.array(textSchema).optional().default([]),
  drugs: z.array(drugExSchema).optional().default([]),
  shinryouList: z.array(shinryouExSchema).optional().default([]),
  conducts: z.array(conductExSchema).optional().default([]),
  chargeOption: chargeSchema.optional().nullable(),
  lastPayment: paymentSchema.optional().nullable()
});

export type VisitEx = z.infer<typeof visitExSchema>;