参与者管理- PD模块内容补充

This commit is contained in:
Cheng Zhou
2026-02-28 14:33:57 +08:00
parent af0c1b4b7d
commit 9b36a42e6f
14 changed files with 855 additions and 35 deletions
+74
View File
@@ -135,6 +135,25 @@ CREATE TABLE IF NOT EXISTS public.subject_histories (
CONSTRAINT fk_subject_histories_created_by FOREIGN KEY (created_by) REFERENCES public.users(id) ON DELETE RESTRICT
);
CREATE TABLE IF NOT EXISTS public.subject_pds (
id uuid PRIMARY KEY,
study_id uuid NOT NULL,
subject_id uuid NOT NULL,
pd_no character varying(64) NOT NULL,
pd_type character varying(100) NOT NULL,
pd_level character varying(20) NOT NULL DEFAULT 'GENERAL',
approval_status character varying(20) NOT NULL DEFAULT 'DRAFT',
description text,
status character varying(20) NOT NULL DEFAULT 'OPEN',
created_by uuid,
created_at timestamp with time zone NOT NULL DEFAULT now(),
updated_at timestamp with time zone NOT NULL DEFAULT now(),
CONSTRAINT uq_subject_pds_study_pd_no UNIQUE (study_id, pd_no),
CONSTRAINT fk_subject_pds_study_id FOREIGN KEY (study_id) REFERENCES public.studies(id) ON DELETE RESTRICT,
CONSTRAINT fk_subject_pds_subject_id FOREIGN KEY (subject_id) REFERENCES public.subjects(id) ON DELETE RESTRICT,
CONSTRAINT fk_subject_pds_created_by FOREIGN KEY (created_by) REFERENCES public.users(id) ON DELETE RESTRICT
);
CREATE TABLE IF NOT EXISTS public.visits (
id uuid PRIMARY KEY,
study_id uuid NOT NULL,
@@ -749,6 +768,61 @@ ON CONFLICT (study_id, subject_no) DO UPDATE SET
drop_reason = EXCLUDED.drop_reason,
updated_at = EXCLUDED.updated_at;
INSERT INTO public.subject_pds (
id, study_id, subject_id, pd_no, pd_type, pd_level, approval_status, description, status, created_by, created_at, updated_at
) VALUES
(
'77777777-aaaa-bbbb-cccc-111111111111',
(SELECT id FROM public.studies WHERE code = 'DEMO-CTMS'),
'11111111-2222-3333-4444-555555555555',
'PD0001',
'知情同意',
'MAJOR',
'DRAFT',
'知情记录不完整,缺少签署时间记录。',
'OPEN',
(SELECT id FROM public.users WHERE email = 'cra@example.com'),
'2025-01-11 10:00:00+00',
'2025-01-11 10:00:00+00'
),
(
'77777777-aaaa-bbbb-cccc-222222222222',
(SELECT id FROM public.studies WHERE code = 'DEMO-CTMS'),
'11111111-2222-3333-4444-555555555555',
'PD0002',
'排除标准',
'CRITICAL',
'APPROVED',
'排除标准判定延期,已补充说明并审批通过。',
'OPEN',
(SELECT id FROM public.users WHERE email = 'cra@example.com'),
'2025-01-18 10:00:00+00',
'2025-01-19 09:00:00+00'
),
(
'77777777-aaaa-bbbb-cccc-333333333333',
(SELECT id FROM public.studies WHERE code = 'DEMO-CTMS'),
'33333333-4444-5555-6666-777777777777',
'PD0003',
'访视流程',
'GENERAL',
'SUBMITTED',
'访视窗口外补录,已提交审批。',
'CLOSED',
(SELECT id FROM public.users WHERE email = 'pm@example.com'),
'2025-02-06 10:00:00+00',
'2025-02-06 10:00:00+00'
)
ON CONFLICT (study_id, pd_no) DO UPDATE SET
subject_id = EXCLUDED.subject_id,
pd_type = EXCLUDED.pd_type,
pd_level = EXCLUDED.pd_level,
approval_status = EXCLUDED.approval_status,
description = EXCLUDED.description,
status = EXCLUDED.status,
created_by = EXCLUDED.created_by,
updated_at = EXCLUDED.updated_at;
INSERT INTO public.subject_histories (
id, study_id, subject_id, record_date, content, created_by, created_at, updated_at
) VALUES