@nyrra/prismantix-oac-pharma 0.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +30 -0
- package/dist/index.d.mts +1 -0
- package/dist/index.mjs +1 -0
- package/dist/lib/prismantix/externalObjects.d.mts +3 -0
- package/dist/lib/prismantix/externalObjects.mjs +16 -0
- package/dist/lib/prismantix/index.d.mts +20 -0
- package/dist/lib/prismantix/index.mjs +29 -0
- package/dist/lib/prismantix/links.d.mts +27 -0
- package/dist/lib/prismantix/links.mjs +456 -0
- package/dist/lib/prismantix/objects/index.d.mts +2 -0
- package/dist/lib/prismantix/objects/index.mjs +2 -0
- package/dist/lib/prismantix/objects/masterData/Batch.d.mts +1 -0
- package/dist/lib/prismantix/objects/masterData/Batch.mjs +263 -0
- package/dist/lib/prismantix/objects/masterData/Equipment.d.mts +1 -0
- package/dist/lib/prismantix/objects/masterData/Equipment.mjs +126 -0
- package/dist/lib/prismantix/objects/masterData/Product.d.mts +1 -0
- package/dist/lib/prismantix/objects/masterData/Product.mjs +155 -0
- package/dist/lib/prismantix/objects/masterData/Site.d.mts +1 -0
- package/dist/lib/prismantix/objects/masterData/Site.mjs +182 -0
- package/dist/lib/prismantix/objects/masterData/Supplier.d.mts +1 -0
- package/dist/lib/prismantix/objects/masterData/Supplier.mjs +202 -0
- package/dist/lib/prismantix/objects/masterData/index.d.mts +6 -0
- package/dist/lib/prismantix/objects/masterData/index.mjs +17 -0
- package/dist/lib/prismantix/objects/quality/ActionItem.d.mts +1 -0
- package/dist/lib/prismantix/objects/quality/ActionItem.mjs +144 -0
- package/dist/lib/prismantix/objects/quality/Capa.d.mts +1 -0
- package/dist/lib/prismantix/objects/quality/Capa.mjs +286 -0
- package/dist/lib/prismantix/objects/quality/ChangeControl.d.mts +1 -0
- package/dist/lib/prismantix/objects/quality/ChangeControl.mjs +212 -0
- package/dist/lib/prismantix/objects/quality/ChangeControlApproval.d.mts +1 -0
- package/dist/lib/prismantix/objects/quality/ChangeControlApproval.mjs +122 -0
- package/dist/lib/prismantix/objects/quality/ChangeControlEffectiveness.d.mts +1 -0
- package/dist/lib/prismantix/objects/quality/ChangeControlEffectiveness.mjs +130 -0
- package/dist/lib/prismantix/objects/quality/ChangeControlImpact.d.mts +1 -0
- package/dist/lib/prismantix/objects/quality/ChangeControlImpact.mjs +150 -0
- package/dist/lib/prismantix/objects/quality/Complaint.d.mts +1 -0
- package/dist/lib/prismantix/objects/quality/Complaint.mjs +206 -0
- package/dist/lib/prismantix/objects/quality/Deviation.d.mts +1 -0
- package/dist/lib/prismantix/objects/quality/Deviation.mjs +212 -0
- package/dist/lib/prismantix/objects/quality/Investigation.d.mts +1 -0
- package/dist/lib/prismantix/objects/quality/Investigation.mjs +235 -0
- package/dist/lib/prismantix/objects/quality/RcaFactor.d.mts +1 -0
- package/dist/lib/prismantix/objects/quality/RcaFactor.mjs +89 -0
- package/dist/lib/prismantix/objects/quality/index.d.mts +11 -0
- package/dist/lib/prismantix/objects/quality/index.mjs +32 -0
- package/dist/lib/prismantix/valueTypes.d.mts +46 -0
- package/dist/lib/prismantix/valueTypes.mjs +586 -0
- package/package.json +49 -0
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
import { defineObject } from "@nyrra/maker";
|
|
2
|
+
import { Client } from "../../externalObjects.mjs";
|
|
3
|
+
import { DeviationCategoryValueType, DeviationSeverityValueType, DeviationStatusValueType, EpochMillisValueType, IsoTimestampStringValueType, } from "../../valueTypes.mjs";
|
|
4
|
+
import { Batch, Site } from "../masterData/index.mjs";
|
|
5
|
+
export const Deviation = defineObject({
|
|
6
|
+
apiName: "Deviation",
|
|
7
|
+
displayName: "Deviation",
|
|
8
|
+
pluralDisplayName: "Deviations",
|
|
9
|
+
primaryKeyPropertyApiName: "deviationCode",
|
|
10
|
+
titlePropertyApiName: "title",
|
|
11
|
+
description: "Generate realistic pharmaceutical manufacturing quality deviation records. Each deviation should represent a believable quality issue with: - Technical descriptions using proper pharmaceutical manufacturing terminology - Specific process or equipment-related root causes - Appropriate severity classifications based on potential impact - Professional GMP (Good Manufacturing Practice) language - Realistic timelines for detection, reporting, and resolution - Proper assignment and tracking through the quality system",
|
|
12
|
+
properties: {
|
|
13
|
+
assignedTo: {
|
|
14
|
+
displayName: "Assigned To",
|
|
15
|
+
description: "Name of quality professional assigned to investigate the deviation",
|
|
16
|
+
type: "string",
|
|
17
|
+
exampleValues: ["James Chen", "Sarah Wilson", "Michael Torres"],
|
|
18
|
+
},
|
|
19
|
+
batchId: {
|
|
20
|
+
displayName: "Batch ID",
|
|
21
|
+
description: "Reference to batch.",
|
|
22
|
+
type: "string",
|
|
23
|
+
optional: true,
|
|
24
|
+
reference: Batch,
|
|
25
|
+
},
|
|
26
|
+
category: {
|
|
27
|
+
displayName: "Category",
|
|
28
|
+
description: "Classification category of the deviation",
|
|
29
|
+
type: DeviationCategoryValueType,
|
|
30
|
+
exampleValues: ["Environmental", "Process", "Equipment"],
|
|
31
|
+
},
|
|
32
|
+
clientId: {
|
|
33
|
+
displayName: "Client ID",
|
|
34
|
+
description: "Reference to client.",
|
|
35
|
+
type: "string",
|
|
36
|
+
reference: Client,
|
|
37
|
+
},
|
|
38
|
+
closureDate: {
|
|
39
|
+
displayName: "Closure Date",
|
|
40
|
+
description: "Date when deviation was closed (if status is Closed), in ISO 8601 format",
|
|
41
|
+
type: IsoTimestampStringValueType,
|
|
42
|
+
optional: true,
|
|
43
|
+
exampleValues: ["2024-06-25T16:00:00Z"],
|
|
44
|
+
},
|
|
45
|
+
createdAt: {
|
|
46
|
+
displayName: "Created At",
|
|
47
|
+
description: "Created At for the deviation record.",
|
|
48
|
+
type: EpochMillisValueType,
|
|
49
|
+
optional: true,
|
|
50
|
+
},
|
|
51
|
+
description: {
|
|
52
|
+
displayName: "Description",
|
|
53
|
+
description: "Detailed technical description of the deviation using pharmaceutical manufacturing terminology, including specific circumstances and potential root causes",
|
|
54
|
+
type: "string",
|
|
55
|
+
exampleValues: [
|
|
56
|
+
"Temperature monitoring system recorded readings of 28-30°C in API storage warehouse Zone C for approximately 4 hours during night shift. Specification limit is 15-25°C. Alarm notification was delayed due to system maintenance mode. Affected batches: API-2024-045, API-2024-046.",
|
|
57
|
+
"Tablet hardness testing for Batch TBL-2024-089 showed results of 8.2-9.1 kP against specification of 10-15 kP. Five consecutive tablets tested below specification during routine in-process testing. Compression force settings verified as correct.",
|
|
58
|
+
"Viable particle count in filling isolator exceeded alert limit (>5 CFU/m³) during environmental monitoring of Line 3. Count was 8 CFU/m³ during routine monitoring. Line was immediately shut down and decontamination cycle initiated.",
|
|
59
|
+
],
|
|
60
|
+
},
|
|
61
|
+
detectedDate: {
|
|
62
|
+
displayName: "Detected Date",
|
|
63
|
+
description: "Date when deviation was first detected, in ISO 8601 format (recent dates within last 12 months)",
|
|
64
|
+
type: IsoTimestampStringValueType,
|
|
65
|
+
exampleValues: [
|
|
66
|
+
"2024-07-15T06:30:00Z",
|
|
67
|
+
"2024-07-20T14:15:00Z",
|
|
68
|
+
"2024-06-10T09:45:00Z",
|
|
69
|
+
],
|
|
70
|
+
},
|
|
71
|
+
deviationCode: {
|
|
72
|
+
displayName: "Deviation Code",
|
|
73
|
+
description: "Unique deviation tracking code with year and sequence number",
|
|
74
|
+
type: "string",
|
|
75
|
+
exampleValues: ["DEV-2024-001", "DEV-2024-002", "DEV-2024-003"],
|
|
76
|
+
},
|
|
77
|
+
impactAssessment: {
|
|
78
|
+
displayName: "Impact Assessment",
|
|
79
|
+
description: "Assessment of potential impact on product quality, batch disposition, and patient safety",
|
|
80
|
+
type: "string",
|
|
81
|
+
exampleValues: [
|
|
82
|
+
"Potential impact on API stability. Batches quarantined pending stability study results.",
|
|
83
|
+
"Potential dissolution and bioavailability impact. Batch rejected and destroyed.",
|
|
84
|
+
"No product impact - contamination detected before batch processing. Line integrity restored.",
|
|
85
|
+
],
|
|
86
|
+
},
|
|
87
|
+
immediateActions: {
|
|
88
|
+
displayName: "Immediate Actions",
|
|
89
|
+
description: "Immediate containment actions taken to prevent recurrence",
|
|
90
|
+
type: "string",
|
|
91
|
+
exampleValues: [
|
|
92
|
+
"Quarantined affected batches, initiated accelerated stability testing, verified HVAC system operation",
|
|
93
|
+
"Rejected batch, recalibrated moisture analyzer, implemented additional drying controls",
|
|
94
|
+
"Line shutdown, emergency decontamination, HEPA filter system inspection and repair",
|
|
95
|
+
],
|
|
96
|
+
},
|
|
97
|
+
reportedBy: {
|
|
98
|
+
displayName: "Reported By",
|
|
99
|
+
description: "Name of person who reported the deviation (manufacturing operator, QA inspector, etc.)",
|
|
100
|
+
type: "string",
|
|
101
|
+
exampleValues: ["Maria Rodriguez", "David Kim", "Lisa Park"],
|
|
102
|
+
},
|
|
103
|
+
rootCauseIdentified: {
|
|
104
|
+
displayName: "Root Cause Identified",
|
|
105
|
+
description: "Whether root cause has been identified",
|
|
106
|
+
type: "boolean",
|
|
107
|
+
exampleValues: [false, true],
|
|
108
|
+
},
|
|
109
|
+
rootCauseSummary: {
|
|
110
|
+
displayName: "Root Cause Summary",
|
|
111
|
+
description: "Brief summary of identified root cause using technical language (if rootCauseIdentified is true)",
|
|
112
|
+
type: "string",
|
|
113
|
+
optional: true,
|
|
114
|
+
exampleValues: [
|
|
115
|
+
"Granulation moisture content was 0.8% below target due to over-drying in fluid bed dryer",
|
|
116
|
+
"Defective HEPA filter gasket allowed unfiltered air bypass",
|
|
117
|
+
],
|
|
118
|
+
},
|
|
119
|
+
severity: {
|
|
120
|
+
displayName: "Severity",
|
|
121
|
+
description: "Severity level based on potential impact to product quality and patient safety",
|
|
122
|
+
type: DeviationSeverityValueType,
|
|
123
|
+
exampleValues: ["Major", "Critical"],
|
|
124
|
+
},
|
|
125
|
+
siteId: {
|
|
126
|
+
displayName: "Site ID",
|
|
127
|
+
description: "Reference to site.",
|
|
128
|
+
type: "string",
|
|
129
|
+
optional: true,
|
|
130
|
+
reference: Site,
|
|
131
|
+
},
|
|
132
|
+
status: {
|
|
133
|
+
displayName: "Status",
|
|
134
|
+
description: "Current status in the deviation management workflow",
|
|
135
|
+
type: DeviationStatusValueType,
|
|
136
|
+
exampleValues: ["Under Investigation", "CAPA Required", "Closed"],
|
|
137
|
+
},
|
|
138
|
+
title: {
|
|
139
|
+
displayName: "Title",
|
|
140
|
+
description: "Brief, professional title summarizing the deviation using technical language",
|
|
141
|
+
type: "string",
|
|
142
|
+
exampleValues: [
|
|
143
|
+
"Temperature Excursion in API Storage Area",
|
|
144
|
+
"Out-of-Specification Tablet Hardness Results",
|
|
145
|
+
"Sterile Filling Line Contamination Alert",
|
|
146
|
+
],
|
|
147
|
+
},
|
|
148
|
+
updatedAt: {
|
|
149
|
+
displayName: "Updated At",
|
|
150
|
+
description: "Updated At for the deviation record.",
|
|
151
|
+
type: EpochMillisValueType,
|
|
152
|
+
optional: true,
|
|
153
|
+
},
|
|
154
|
+
},
|
|
155
|
+
prismantix: {
|
|
156
|
+
category: "quality-events",
|
|
157
|
+
convex: {
|
|
158
|
+
componentName: "ontology",
|
|
159
|
+
indexes: [
|
|
160
|
+
{
|
|
161
|
+
fields: ["deviationCode"],
|
|
162
|
+
name: "by_deviation_code",
|
|
163
|
+
},
|
|
164
|
+
{
|
|
165
|
+
fields: ["severity"],
|
|
166
|
+
name: "by_severity",
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
fields: ["status"],
|
|
170
|
+
name: "by_status",
|
|
171
|
+
},
|
|
172
|
+
{
|
|
173
|
+
fields: ["category"],
|
|
174
|
+
name: "by_category",
|
|
175
|
+
},
|
|
176
|
+
{
|
|
177
|
+
fields: ["siteId"],
|
|
178
|
+
name: "by_site",
|
|
179
|
+
},
|
|
180
|
+
{
|
|
181
|
+
fields: ["batchId"],
|
|
182
|
+
name: "by_batch",
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
fields: ["clientId"],
|
|
186
|
+
name: "by_client",
|
|
187
|
+
},
|
|
188
|
+
],
|
|
189
|
+
materialized: true,
|
|
190
|
+
tableName: "datastudio_deviations",
|
|
191
|
+
},
|
|
192
|
+
defaults: {
|
|
193
|
+
fabricationCount: 20,
|
|
194
|
+
seedCount: 30,
|
|
195
|
+
},
|
|
196
|
+
domain: "pharmaQualityOps",
|
|
197
|
+
guidance: [
|
|
198
|
+
"Generate realistic pharmaceutical manufacturing deviations",
|
|
199
|
+
"Follow ICH Q7 and cGMP guidelines context",
|
|
200
|
+
"Use technical manufacturing language",
|
|
201
|
+
"Vary severity levels appropriately",
|
|
202
|
+
"Include specific root cause indicators",
|
|
203
|
+
],
|
|
204
|
+
notes: "quality deviations in pharmaceutical manufacturing",
|
|
205
|
+
requiresClient: true,
|
|
206
|
+
seeding: {
|
|
207
|
+
order: 6,
|
|
208
|
+
requires: ["datastudio_clients", "datastudio_batches"],
|
|
209
|
+
},
|
|
210
|
+
showInNavigation: true,
|
|
211
|
+
},
|
|
212
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const Investigation: import("@nyrra/maker").PrismantixObjectDefinition;
|
|
@@ -0,0 +1,235 @@
|
|
|
1
|
+
import { defineObject } from "@nyrra/maker";
|
|
2
|
+
import { Client } from "../../externalObjects.mjs";
|
|
3
|
+
import { EpochMillisValueType, InvestigationPriorityValueType, InvestigationStatusValueType, InvestigationTypeValueType, IsoTimestampStringValueType, } from "../../valueTypes.mjs";
|
|
4
|
+
export const Investigation = defineObject({
|
|
5
|
+
apiName: "Investigation",
|
|
6
|
+
displayName: "Investigation",
|
|
7
|
+
pluralDisplayName: "Investigations",
|
|
8
|
+
primaryKeyPropertyApiName: "investigationCode",
|
|
9
|
+
titlePropertyApiName: "title",
|
|
10
|
+
description: "Generate realistic pharmaceutical quality investigation records for root cause analysis. Each investigation should represent a systematic approach to problem-solving with: - Professional investigation titles that clearly describe the scope - Scientific hypotheses based on available evidence - Appropriate investigation types matching the triggering events - Realistic timelines for investigation phases - Evidence-based findings and conclusions - Proper assignment to qualified investigation teams - Clear determination of CAPA requirements based on findings",
|
|
11
|
+
properties: {
|
|
12
|
+
actualCompletionDate: {
|
|
13
|
+
displayName: "Actual Completion Date",
|
|
14
|
+
description: "Actual completion date (if status is Completed or Closed), in ISO 8601 format",
|
|
15
|
+
type: IsoTimestampStringValueType,
|
|
16
|
+
optional: true,
|
|
17
|
+
exampleValues: [
|
|
18
|
+
"2024-08-18T00:00:00Z",
|
|
19
|
+
"2024-08-20T00:00:00Z",
|
|
20
|
+
"2024-07-05T00:00:00Z",
|
|
21
|
+
],
|
|
22
|
+
},
|
|
23
|
+
approvalDate: {
|
|
24
|
+
displayName: "Approval Date",
|
|
25
|
+
description: "Date when investigation was formally approved (if status is Closed)",
|
|
26
|
+
type: IsoTimestampStringValueType,
|
|
27
|
+
optional: true,
|
|
28
|
+
exampleValues: ["2024-08-25T00:00:00Z", "2024-07-08T00:00:00Z"],
|
|
29
|
+
},
|
|
30
|
+
approvedBy: {
|
|
31
|
+
displayName: "Approved By",
|
|
32
|
+
description: "Name of quality manager or authority who approved investigation conclusions",
|
|
33
|
+
type: "string",
|
|
34
|
+
optional: true,
|
|
35
|
+
exampleValues: ["Sarah Wilson", "Dr. Michael Torres", "Michael Torres"],
|
|
36
|
+
},
|
|
37
|
+
assignedTo: {
|
|
38
|
+
displayName: "Assigned To",
|
|
39
|
+
description: "Name of lead investigator or investigation team leader",
|
|
40
|
+
type: "string",
|
|
41
|
+
exampleValues: [
|
|
42
|
+
"Dr. Jennifer Liu",
|
|
43
|
+
"Mark Stevens",
|
|
44
|
+
"Dr. Amanda Foster",
|
|
45
|
+
"Lisa Park",
|
|
46
|
+
],
|
|
47
|
+
},
|
|
48
|
+
capaRequired: {
|
|
49
|
+
displayName: "CAPA Required",
|
|
50
|
+
description: "Whether corrective and preventive actions are required based on findings",
|
|
51
|
+
type: "boolean",
|
|
52
|
+
exampleValues: [false, true],
|
|
53
|
+
},
|
|
54
|
+
clientId: {
|
|
55
|
+
displayName: "Client ID",
|
|
56
|
+
description: "Reference to client.",
|
|
57
|
+
type: "string",
|
|
58
|
+
reference: Client,
|
|
59
|
+
},
|
|
60
|
+
conclusionReached: {
|
|
61
|
+
displayName: "Conclusion Reached",
|
|
62
|
+
description: "Whether definitive conclusion about root cause was reached",
|
|
63
|
+
type: "boolean",
|
|
64
|
+
exampleValues: [false, true],
|
|
65
|
+
},
|
|
66
|
+
createdAt: {
|
|
67
|
+
displayName: "Created At",
|
|
68
|
+
description: "Created At for the investigation record.",
|
|
69
|
+
type: EpochMillisValueType,
|
|
70
|
+
optional: true,
|
|
71
|
+
},
|
|
72
|
+
findingSummary: {
|
|
73
|
+
displayName: "Finding Summary",
|
|
74
|
+
description: "Summary of investigation findings and evidence (if status is Completed or Closed)",
|
|
75
|
+
type: "string",
|
|
76
|
+
optional: true,
|
|
77
|
+
exampleValues: [
|
|
78
|
+
"Investigation confirmed moisture content was 0.8% below target specification. Fluid bed dryer temperature probe calibration drift identified as root cause. Granulation moisture directly correlates with tablet hardness per validation data.",
|
|
79
|
+
"Comprehensive batch testing showed all quality parameters within specification. Patient medical history revealed sensitivity to polysorbate excipient. No other reports from same batch lot.",
|
|
80
|
+
"Physical inspection revealed damaged HEPA filter gasket allowing air bypass. Gasket degradation likely due to repeated sterilization cycles exceeding recommended replacement schedule.",
|
|
81
|
+
],
|
|
82
|
+
},
|
|
83
|
+
hypothesis: {
|
|
84
|
+
displayName: "Hypothesis",
|
|
85
|
+
description: "Scientific root cause hypothesis based on evidence and pharmaceutical quality principles",
|
|
86
|
+
type: "string",
|
|
87
|
+
exampleValues: [
|
|
88
|
+
"HVAC system malfunction during maintenance mode caused temperature control failure. Alarm delay due to system configuration during maintenance window prevented timely response.",
|
|
89
|
+
"Granulation moisture content variation due to fluid bed dryer over-drying caused insufficient binding and reduced tablet hardness.",
|
|
90
|
+
"Individual patient sensitivity reaction unrelated to product quality. Batch testing and stability data within specifications.",
|
|
91
|
+
"HEPA filtration system integrity compromise allowed unfiltered air to bypass into sterile environment.",
|
|
92
|
+
],
|
|
93
|
+
},
|
|
94
|
+
investigationCode: {
|
|
95
|
+
displayName: "Investigation Code",
|
|
96
|
+
description: "Unique investigation tracking identifier with year and sequence",
|
|
97
|
+
type: "string",
|
|
98
|
+
exampleValues: [
|
|
99
|
+
"INV-2024-001",
|
|
100
|
+
"INV-2024-002",
|
|
101
|
+
"INV-2024-003",
|
|
102
|
+
"INV-2024-004",
|
|
103
|
+
],
|
|
104
|
+
},
|
|
105
|
+
priority: {
|
|
106
|
+
displayName: "Priority",
|
|
107
|
+
description: "Investigation priority based on potential impact and urgency",
|
|
108
|
+
type: InvestigationPriorityValueType,
|
|
109
|
+
exampleValues: ["High", "Medium"],
|
|
110
|
+
},
|
|
111
|
+
rootEventId: {
|
|
112
|
+
displayName: "Root Event ID",
|
|
113
|
+
description: "Root Event ID for the investigation record.",
|
|
114
|
+
type: "string",
|
|
115
|
+
optional: true,
|
|
116
|
+
},
|
|
117
|
+
rootEventType: {
|
|
118
|
+
displayName: "Root Event Type",
|
|
119
|
+
description: "Root Event Type for the investigation record.",
|
|
120
|
+
type: "string",
|
|
121
|
+
optional: true,
|
|
122
|
+
},
|
|
123
|
+
startDate: {
|
|
124
|
+
displayName: "Start Date",
|
|
125
|
+
description: "Date when investigation was formally initiated, in ISO 8601 format",
|
|
126
|
+
type: IsoTimestampStringValueType,
|
|
127
|
+
exampleValues: [
|
|
128
|
+
"2024-07-16T00:00:00Z",
|
|
129
|
+
"2024-07-21T00:00:00Z",
|
|
130
|
+
"2024-07-23T00:00:00Z",
|
|
131
|
+
"2024-06-11T00:00:00Z",
|
|
132
|
+
],
|
|
133
|
+
},
|
|
134
|
+
status: {
|
|
135
|
+
displayName: "Status",
|
|
136
|
+
description: "Current status in investigation lifecycle",
|
|
137
|
+
type: InvestigationStatusValueType,
|
|
138
|
+
exampleValues: ["In Progress", "Completed", "Closed"],
|
|
139
|
+
},
|
|
140
|
+
targetCompletionDate: {
|
|
141
|
+
displayName: "Target Completion Date",
|
|
142
|
+
description: "Target date for investigation completion, typically 30-90 days from start",
|
|
143
|
+
type: IsoTimestampStringValueType,
|
|
144
|
+
exampleValues: [
|
|
145
|
+
"2024-08-15T00:00:00Z",
|
|
146
|
+
"2024-08-20T00:00:00Z",
|
|
147
|
+
"2024-08-22T00:00:00Z",
|
|
148
|
+
"2024-07-10T00:00:00Z",
|
|
149
|
+
],
|
|
150
|
+
},
|
|
151
|
+
title: {
|
|
152
|
+
displayName: "Title",
|
|
153
|
+
description: "Professional investigation title that clearly describes the scope and subject of investigation",
|
|
154
|
+
type: "string",
|
|
155
|
+
exampleValues: [
|
|
156
|
+
"Root Cause Analysis - Temperature Excursion in API Storage Area",
|
|
157
|
+
"Investigation of Tablet Hardness Out-of-Specification Results",
|
|
158
|
+
"Patient Adverse Event Investigation - Injection Site Reaction",
|
|
159
|
+
"Sterile Filling Line Contamination Root Cause Investigation",
|
|
160
|
+
],
|
|
161
|
+
},
|
|
162
|
+
type: {
|
|
163
|
+
displayName: "Type",
|
|
164
|
+
description: "Type of event or finding that triggered the investigation",
|
|
165
|
+
type: InvestigationTypeValueType,
|
|
166
|
+
exampleValues: ["Deviation", "OOS", "Complaint"],
|
|
167
|
+
},
|
|
168
|
+
updatedAt: {
|
|
169
|
+
displayName: "Updated At",
|
|
170
|
+
description: "Updated At for the investigation record.",
|
|
171
|
+
type: EpochMillisValueType,
|
|
172
|
+
optional: true,
|
|
173
|
+
},
|
|
174
|
+
},
|
|
175
|
+
prismantix: {
|
|
176
|
+
category: "quality-events",
|
|
177
|
+
convex: {
|
|
178
|
+
componentName: "ontology",
|
|
179
|
+
indexes: [
|
|
180
|
+
{
|
|
181
|
+
fields: ["investigationCode"],
|
|
182
|
+
name: "by_investigation_code",
|
|
183
|
+
},
|
|
184
|
+
{
|
|
185
|
+
fields: ["status"],
|
|
186
|
+
name: "by_status",
|
|
187
|
+
},
|
|
188
|
+
{
|
|
189
|
+
fields: ["priority"],
|
|
190
|
+
name: "by_priority",
|
|
191
|
+
},
|
|
192
|
+
{
|
|
193
|
+
fields: ["type"],
|
|
194
|
+
name: "by_type",
|
|
195
|
+
},
|
|
196
|
+
{
|
|
197
|
+
fields: ["assignedTo"],
|
|
198
|
+
name: "by_owner",
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
fields: ["rootEventId"],
|
|
202
|
+
name: "by_root_event",
|
|
203
|
+
},
|
|
204
|
+
{
|
|
205
|
+
fields: ["clientId"],
|
|
206
|
+
name: "by_client",
|
|
207
|
+
},
|
|
208
|
+
],
|
|
209
|
+
materialized: true,
|
|
210
|
+
tableName: "datastudio_investigations",
|
|
211
|
+
},
|
|
212
|
+
defaults: {
|
|
213
|
+
fabricationCount: 25,
|
|
214
|
+
},
|
|
215
|
+
domain: "pharmaQualityOps",
|
|
216
|
+
guidance: [
|
|
217
|
+
"Generate professional pharmaceutical investigation records",
|
|
218
|
+
"Follow ICH Q9 quality risk management principles",
|
|
219
|
+
"Use systematic problem-solving approaches",
|
|
220
|
+
"Apply scientific rigor to root cause analysis",
|
|
221
|
+
"Ensure investigation scope matches the triggering event severity",
|
|
222
|
+
],
|
|
223
|
+
notes: "root cause analysis investigations",
|
|
224
|
+
requiresClient: true,
|
|
225
|
+
seeding: {
|
|
226
|
+
order: 8,
|
|
227
|
+
requires: [
|
|
228
|
+
"datastudio_clients",
|
|
229
|
+
"datastudio_deviations",
|
|
230
|
+
"datastudio_complaints",
|
|
231
|
+
],
|
|
232
|
+
},
|
|
233
|
+
showInNavigation: true,
|
|
234
|
+
},
|
|
235
|
+
});
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export declare const RcaFactor: import("@nyrra/maker").PrismantixObjectDefinition;
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
import { defineObject } from "@nyrra/maker";
|
|
2
|
+
import { Client } from "../../externalObjects.mjs";
|
|
3
|
+
import { Investigation } from "./Investigation.mjs";
|
|
4
|
+
export const RcaFactor = defineObject({
|
|
5
|
+
apiName: "RcaFactor",
|
|
6
|
+
displayName: "RCA Factor",
|
|
7
|
+
pluralDisplayName: "RCA Factors",
|
|
8
|
+
primaryKeyPropertyApiName: "rcaFactorId",
|
|
9
|
+
titlePropertyApiName: "factor",
|
|
10
|
+
description: "Generate an RCA factor record describing a plausible contributing factor for a given investigation.",
|
|
11
|
+
properties: {
|
|
12
|
+
clientId: {
|
|
13
|
+
displayName: "Client ID",
|
|
14
|
+
description: "Reference to client.",
|
|
15
|
+
type: "string",
|
|
16
|
+
reference: Client,
|
|
17
|
+
},
|
|
18
|
+
contributionPct: {
|
|
19
|
+
displayName: "Contribution Pct",
|
|
20
|
+
description: "Estimated contribution percentage (0-100)",
|
|
21
|
+
type: "integer",
|
|
22
|
+
exampleValues: [25, 35],
|
|
23
|
+
},
|
|
24
|
+
evidence: {
|
|
25
|
+
displayName: "Evidence",
|
|
26
|
+
description: "Supporting evidence summary",
|
|
27
|
+
type: "string",
|
|
28
|
+
exampleValues: [
|
|
29
|
+
"Training records incomplete for role",
|
|
30
|
+
"Maintenance ticket unresolved past due date",
|
|
31
|
+
],
|
|
32
|
+
},
|
|
33
|
+
factor: {
|
|
34
|
+
displayName: "Factor",
|
|
35
|
+
description: "Primary contributing factor category",
|
|
36
|
+
type: "string",
|
|
37
|
+
exampleValues: ["Training deficiency", "Equipment malfunction"],
|
|
38
|
+
},
|
|
39
|
+
investigationId: {
|
|
40
|
+
displayName: "Investigation ID",
|
|
41
|
+
description: "Reference to investigation.",
|
|
42
|
+
type: "string",
|
|
43
|
+
reference: Investigation,
|
|
44
|
+
},
|
|
45
|
+
rcaFactorId: {
|
|
46
|
+
displayName: "RCA Factor ID",
|
|
47
|
+
description: "Unique RCA factor identifier",
|
|
48
|
+
type: "string",
|
|
49
|
+
exampleValues: ["RCA-2024-001", "RCA-2024-002"],
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
prismantix: {
|
|
53
|
+
category: "quality-events",
|
|
54
|
+
convex: {
|
|
55
|
+
componentName: "ontology",
|
|
56
|
+
indexes: [
|
|
57
|
+
{
|
|
58
|
+
fields: ["rcaFactorId"],
|
|
59
|
+
name: "by_rca_factor_id",
|
|
60
|
+
},
|
|
61
|
+
{
|
|
62
|
+
fields: ["investigationId"],
|
|
63
|
+
name: "by_investigation",
|
|
64
|
+
},
|
|
65
|
+
{
|
|
66
|
+
fields: ["clientId"],
|
|
67
|
+
name: "by_client",
|
|
68
|
+
},
|
|
69
|
+
],
|
|
70
|
+
materialized: true,
|
|
71
|
+
tableName: "datastudio_rcaFactors",
|
|
72
|
+
},
|
|
73
|
+
defaults: {
|
|
74
|
+
fabricationCount: 50,
|
|
75
|
+
},
|
|
76
|
+
domain: "pharmaQualityOps",
|
|
77
|
+
guidance: [
|
|
78
|
+
"Each factor belongs to a single investigation (investigationId)",
|
|
79
|
+
"Contribution percentage should reasonably sum to ~100% across factors for an investigation",
|
|
80
|
+
],
|
|
81
|
+
notes: "Root Cause Analysis contributing factor for a quality investigation",
|
|
82
|
+
requiresClient: true,
|
|
83
|
+
seeding: {
|
|
84
|
+
requires: ["datastudio_clients", "datastudio_investigations"],
|
|
85
|
+
skipReason: "ai-generator-pending",
|
|
86
|
+
},
|
|
87
|
+
showInNavigation: true,
|
|
88
|
+
},
|
|
89
|
+
});
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
export { ActionItem } from "./ActionItem.mjs";
|
|
2
|
+
export { Capa } from "./Capa.mjs";
|
|
3
|
+
export { ChangeControl } from "./ChangeControl.mjs";
|
|
4
|
+
export { ChangeControlApproval } from "./ChangeControlApproval.mjs";
|
|
5
|
+
export { ChangeControlEffectiveness } from "./ChangeControlEffectiveness.mjs";
|
|
6
|
+
export { ChangeControlImpact } from "./ChangeControlImpact.mjs";
|
|
7
|
+
export { Complaint } from "./Complaint.mjs";
|
|
8
|
+
export { Deviation } from "./Deviation.mjs";
|
|
9
|
+
export { Investigation } from "./Investigation.mjs";
|
|
10
|
+
export { RcaFactor } from "./RcaFactor.mjs";
|
|
11
|
+
export declare const PHARMA_QUALITY_OAC_OBJECTS: readonly [import("@nyrra/maker").PrismantixObjectDefinition, import("@nyrra/maker").PrismantixObjectDefinition, import("@nyrra/maker").PrismantixObjectDefinition, import("@nyrra/maker").PrismantixObjectDefinition, import("@nyrra/maker").PrismantixObjectDefinition, import("@nyrra/maker").PrismantixObjectDefinition, import("@nyrra/maker").PrismantixObjectDefinition, import("@nyrra/maker").PrismantixObjectDefinition, import("@nyrra/maker").PrismantixObjectDefinition, import("@nyrra/maker").PrismantixObjectDefinition];
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
import { ActionItem } from "./ActionItem.mjs";
|
|
2
|
+
import { Capa } from "./Capa.mjs";
|
|
3
|
+
import { ChangeControl } from "./ChangeControl.mjs";
|
|
4
|
+
import { ChangeControlApproval } from "./ChangeControlApproval.mjs";
|
|
5
|
+
import { ChangeControlEffectiveness } from "./ChangeControlEffectiveness.mjs";
|
|
6
|
+
import { ChangeControlImpact } from "./ChangeControlImpact.mjs";
|
|
7
|
+
import { Complaint } from "./Complaint.mjs";
|
|
8
|
+
import { Deviation } from "./Deviation.mjs";
|
|
9
|
+
import { Investigation } from "./Investigation.mjs";
|
|
10
|
+
import { RcaFactor } from "./RcaFactor.mjs";
|
|
11
|
+
export { ActionItem } from "./ActionItem.mjs";
|
|
12
|
+
export { Capa } from "./Capa.mjs";
|
|
13
|
+
export { ChangeControl } from "./ChangeControl.mjs";
|
|
14
|
+
export { ChangeControlApproval } from "./ChangeControlApproval.mjs";
|
|
15
|
+
export { ChangeControlEffectiveness } from "./ChangeControlEffectiveness.mjs";
|
|
16
|
+
export { ChangeControlImpact } from "./ChangeControlImpact.mjs";
|
|
17
|
+
export { Complaint } from "./Complaint.mjs";
|
|
18
|
+
export { Deviation } from "./Deviation.mjs";
|
|
19
|
+
export { Investigation } from "./Investigation.mjs";
|
|
20
|
+
export { RcaFactor } from "./RcaFactor.mjs";
|
|
21
|
+
export const PHARMA_QUALITY_OAC_OBJECTS = [
|
|
22
|
+
Deviation,
|
|
23
|
+
Complaint,
|
|
24
|
+
Investigation,
|
|
25
|
+
RcaFactor,
|
|
26
|
+
Capa,
|
|
27
|
+
ActionItem,
|
|
28
|
+
ChangeControl,
|
|
29
|
+
ChangeControlImpact,
|
|
30
|
+
ChangeControlApproval,
|
|
31
|
+
ChangeControlEffectiveness,
|
|
32
|
+
];
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
export declare const EpochMillisValueType: import("@nyrra/maker").PrismantixValueTypeDefinition;
|
|
2
|
+
export declare const IsoTimestampStringValueType: import("@nyrra/maker").PrismantixValueTypeDefinition;
|
|
3
|
+
export declare const SiteRegionValueType: import("@nyrra/maker").PrismantixValueTypeDefinition;
|
|
4
|
+
export declare const SiteSiteTypeValueType: import("@nyrra/maker").PrismantixValueTypeDefinition;
|
|
5
|
+
export declare const SiteStatusValueType: import("@nyrra/maker").PrismantixValueTypeDefinition;
|
|
6
|
+
export declare const SiteValidationStatusValueType: import("@nyrra/maker").PrismantixValueTypeDefinition;
|
|
7
|
+
export declare const ProductDevelopmentStageValueType: import("@nyrra/maker").PrismantixValueTypeDefinition;
|
|
8
|
+
export declare const ProductDosageFormValueType: import("@nyrra/maker").PrismantixValueTypeDefinition;
|
|
9
|
+
export declare const ProductProductTypeValueType: import("@nyrra/maker").PrismantixValueTypeDefinition;
|
|
10
|
+
export declare const ProductRegulatoryStatusValueType: import("@nyrra/maker").PrismantixValueTypeDefinition;
|
|
11
|
+
export declare const ProductTherapeuticAreaValueType: import("@nyrra/maker").PrismantixValueTypeDefinition;
|
|
12
|
+
export declare const EquipmentStatusValueType: import("@nyrra/maker").PrismantixValueTypeDefinition;
|
|
13
|
+
export declare const SupplierCategoryValueType: import("@nyrra/maker").PrismantixValueTypeDefinition;
|
|
14
|
+
export declare const SupplierCertificationStatusValueType: import("@nyrra/maker").PrismantixValueTypeDefinition;
|
|
15
|
+
export declare const SupplierStatusValueType: import("@nyrra/maker").PrismantixValueTypeDefinition;
|
|
16
|
+
export declare const SupplierSupplierTypeValueType: import("@nyrra/maker").PrismantixValueTypeDefinition;
|
|
17
|
+
export declare const BatchBatchSizeUnitValueType: import("@nyrra/maker").PrismantixValueTypeDefinition;
|
|
18
|
+
export declare const BatchReleaseStatusValueType: import("@nyrra/maker").PrismantixValueTypeDefinition;
|
|
19
|
+
export declare const BatchStatusValueType: import("@nyrra/maker").PrismantixValueTypeDefinition;
|
|
20
|
+
export declare const DeviationCategoryValueType: import("@nyrra/maker").PrismantixValueTypeDefinition;
|
|
21
|
+
export declare const DeviationSeverityValueType: import("@nyrra/maker").PrismantixValueTypeDefinition;
|
|
22
|
+
export declare const DeviationStatusValueType: import("@nyrra/maker").PrismantixValueTypeDefinition;
|
|
23
|
+
export declare const ComplaintComplaintTypeValueType: import("@nyrra/maker").PrismantixValueTypeDefinition;
|
|
24
|
+
export declare const ComplaintReporterTypeValueType: import("@nyrra/maker").PrismantixValueTypeDefinition;
|
|
25
|
+
export declare const ComplaintSeverityValueType: import("@nyrra/maker").PrismantixValueTypeDefinition;
|
|
26
|
+
export declare const ComplaintStatusValueType: import("@nyrra/maker").PrismantixValueTypeDefinition;
|
|
27
|
+
export declare const InvestigationPriorityValueType: import("@nyrra/maker").PrismantixValueTypeDefinition;
|
|
28
|
+
export declare const InvestigationStatusValueType: import("@nyrra/maker").PrismantixValueTypeDefinition;
|
|
29
|
+
export declare const InvestigationTypeValueType: import("@nyrra/maker").PrismantixValueTypeDefinition;
|
|
30
|
+
export declare const CapaCategoryValueType: import("@nyrra/maker").PrismantixValueTypeDefinition;
|
|
31
|
+
export declare const CapaPriorityValueType: import("@nyrra/maker").PrismantixValueTypeDefinition;
|
|
32
|
+
export declare const CapaSourceTypeValueType: import("@nyrra/maker").PrismantixValueTypeDefinition;
|
|
33
|
+
export declare const CapaStatusValueType: import("@nyrra/maker").PrismantixValueTypeDefinition;
|
|
34
|
+
export declare const CapaTypeValueType: import("@nyrra/maker").PrismantixValueTypeDefinition;
|
|
35
|
+
export declare const ActionItemStatusValueType: import("@nyrra/maker").PrismantixValueTypeDefinition;
|
|
36
|
+
export declare const ChangeControlChangeCategoryValueType: import("@nyrra/maker").PrismantixValueTypeDefinition;
|
|
37
|
+
export declare const ChangeControlGxPImpactValueType: import("@nyrra/maker").PrismantixValueTypeDefinition;
|
|
38
|
+
export declare const ChangeControlRiskAfterValueType: import("@nyrra/maker").PrismantixValueTypeDefinition;
|
|
39
|
+
export declare const ChangeControlRiskBeforeValueType: import("@nyrra/maker").PrismantixValueTypeDefinition;
|
|
40
|
+
export declare const ChangeControlStatusValueType: import("@nyrra/maker").PrismantixValueTypeDefinition;
|
|
41
|
+
export declare const ChangeControlImpactImpactAreaValueType: import("@nyrra/maker").PrismantixValueTypeDefinition;
|
|
42
|
+
export declare const ChangeControlImpactImpactSeverityValueType: import("@nyrra/maker").PrismantixValueTypeDefinition;
|
|
43
|
+
export declare const ChangeControlApprovalDecisionValueType: import("@nyrra/maker").PrismantixValueTypeDefinition;
|
|
44
|
+
export declare const ChangeControlApprovalRoleValueType: import("@nyrra/maker").PrismantixValueTypeDefinition;
|
|
45
|
+
export declare const ChangeControlEffectivenessStatusValueType: import("@nyrra/maker").PrismantixValueTypeDefinition;
|
|
46
|
+
export declare const PRISMANTIX_OAC_VALUE_TYPES: readonly [import("@nyrra/maker").PrismantixValueTypeDefinition, import("@nyrra/maker").PrismantixValueTypeDefinition, import("@nyrra/maker").PrismantixValueTypeDefinition, import("@nyrra/maker").PrismantixValueTypeDefinition, import("@nyrra/maker").PrismantixValueTypeDefinition, import("@nyrra/maker").PrismantixValueTypeDefinition, import("@nyrra/maker").PrismantixValueTypeDefinition, import("@nyrra/maker").PrismantixValueTypeDefinition, import("@nyrra/maker").PrismantixValueTypeDefinition, import("@nyrra/maker").PrismantixValueTypeDefinition, import("@nyrra/maker").PrismantixValueTypeDefinition, import("@nyrra/maker").PrismantixValueTypeDefinition, import("@nyrra/maker").PrismantixValueTypeDefinition, import("@nyrra/maker").PrismantixValueTypeDefinition, import("@nyrra/maker").PrismantixValueTypeDefinition, import("@nyrra/maker").PrismantixValueTypeDefinition, import("@nyrra/maker").PrismantixValueTypeDefinition, import("@nyrra/maker").PrismantixValueTypeDefinition, import("@nyrra/maker").PrismantixValueTypeDefinition, import("@nyrra/maker").PrismantixValueTypeDefinition, import("@nyrra/maker").PrismantixValueTypeDefinition, import("@nyrra/maker").PrismantixValueTypeDefinition, import("@nyrra/maker").PrismantixValueTypeDefinition, import("@nyrra/maker").PrismantixValueTypeDefinition, import("@nyrra/maker").PrismantixValueTypeDefinition, import("@nyrra/maker").PrismantixValueTypeDefinition, import("@nyrra/maker").PrismantixValueTypeDefinition, import("@nyrra/maker").PrismantixValueTypeDefinition, import("@nyrra/maker").PrismantixValueTypeDefinition, import("@nyrra/maker").PrismantixValueTypeDefinition, import("@nyrra/maker").PrismantixValueTypeDefinition, import("@nyrra/maker").PrismantixValueTypeDefinition, import("@nyrra/maker").PrismantixValueTypeDefinition, import("@nyrra/maker").PrismantixValueTypeDefinition, import("@nyrra/maker").PrismantixValueTypeDefinition, import("@nyrra/maker").PrismantixValueTypeDefinition, import("@nyrra/maker").PrismantixValueTypeDefinition, import("@nyrra/maker").PrismantixValueTypeDefinition, import("@nyrra/maker").PrismantixValueTypeDefinition, import("@nyrra/maker").PrismantixValueTypeDefinition, import("@nyrra/maker").PrismantixValueTypeDefinition, import("@nyrra/maker").PrismantixValueTypeDefinition, import("@nyrra/maker").PrismantixValueTypeDefinition, import("@nyrra/maker").PrismantixValueTypeDefinition, import("@nyrra/maker").PrismantixValueTypeDefinition];
|