feature: Reconciliation Jobs

This commit is contained in:
voltsrage
2026-06-17 14:36:10 +08:00
parent 56d052aa4f
commit 101040f9d9
40 changed files with 2845 additions and 32 deletions
@@ -0,0 +1,102 @@
using Microsoft.EntityFrameworkCore.Migrations;
#nullable disable
namespace VigilCareClinicalAPI.Migrations
{
/// <inheritdoc />
public partial class AddOrderStatusAndDepartmentEnums : Migration
{
/// <inheritdoc />
protected override void Up(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropIndex(
name: "IX_orders_status_ordered_at",
table: "orders");
migrationBuilder.Sql("""
UPDATE orders SET status = 'PENDING' WHERE status = 'pending';
UPDATE orders SET status = 'IN_PROGRESS' WHERE status = 'in_progress';
UPDATE orders SET status = 'RESULTED' WHERE status = 'resulted';
UPDATE orders SET status = 'CANCELLED' WHERE status = 'cancelled';
""");
migrationBuilder.Sql("""
UPDATE encounters SET department = 'GENERAL_MEDICINE' WHERE department = 'General Medicine';
""");
migrationBuilder.AlterColumn<string>(
name: "status",
table: "orders",
type: "character varying(20)",
maxLength: 20,
nullable: false,
defaultValueSql: "'PENDING'",
oldClrType: typeof(string),
oldType: "character varying(20)",
oldMaxLength: 20,
oldDefaultValue: "pending");
migrationBuilder.CreateIndex(
name: "IX_orders_status_ordered_at",
table: "orders",
columns: new[] { "status", "ordered_at" },
filter: "status IN ('PENDING', 'IN_PROGRESS')");
migrationBuilder.AddCheckConstraint(
name: "chk_orders_status",
table: "orders",
sql: "status IN ('PENDING', 'IN_PROGRESS', 'RESULTED', 'CANCELLED')");
migrationBuilder.AddCheckConstraint(
name: "chk_encounters_department",
table: "encounters",
sql: "department IN ('ICU', 'GENERAL_MEDICINE', 'EMERGENCY', 'CARDIOLOGY', 'SURGERY', 'PEDIATRICS')");
}
/// <inheritdoc />
protected override void Down(MigrationBuilder migrationBuilder)
{
migrationBuilder.DropIndex(
name: "IX_orders_status_ordered_at",
table: "orders");
migrationBuilder.DropCheckConstraint(
name: "chk_orders_status",
table: "orders");
migrationBuilder.DropCheckConstraint(
name: "chk_encounters_department",
table: "encounters");
migrationBuilder.Sql("""
UPDATE orders SET status = 'pending' WHERE status = 'PENDING';
UPDATE orders SET status = 'in_progress' WHERE status = 'IN_PROGRESS';
UPDATE orders SET status = 'resulted' WHERE status = 'RESULTED';
UPDATE orders SET status = 'cancelled' WHERE status = 'CANCELLED';
""");
migrationBuilder.Sql("""
UPDATE encounters SET department = 'General Medicine' WHERE department = 'GENERAL_MEDICINE';
""");
migrationBuilder.AlterColumn<string>(
name: "status",
table: "orders",
type: "character varying(20)",
maxLength: 20,
nullable: false,
defaultValue: "pending",
oldClrType: typeof(string),
oldType: "character varying(20)",
oldMaxLength: 20,
oldDefaultValueSql: "'PENDING'");
migrationBuilder.CreateIndex(
name: "IX_orders_status_ordered_at",
table: "orders",
columns: new[] { "status", "ordered_at" },
filter: "status IN ('pending', 'in_progress')");
}
}
}