Protocol Management Development
From CaisisWiki
Contents |
Developer
Schema Info
Schema Items
Timeline
Relevant Tables
- ProtocolMgr_SchemaItems: represents a particular set of items to be collected (collect LabDate and LabResult for Lab Tests)
- ProtocolMgr_Timeline: represents visit
- ProtocolMgr_ItemTimeline: represents a particular set of items on a visit
- ProtocolMgr_PatientItems: a patient's specific particular set of items for a particular date.
- RelatedRecords: used to relate one record to another
Advanced Scheduling
Visits which have advanced scheduling are marked in the visit's ItemIntervalType field to signify the scheduling. A pipe is used to delimit multiple advanced scheduling features.
ProtocolMgr_Timeline
- ItemIntervalType: "Recurring", "Dependent Off Treatment", "Recurring|Dependent Off Treatment"
Recurring Visits
A recurring visit is a visit that will occur at a set frequency for a set time period. For instance, a visit may occur every 4 Weeks for 16 Weeks, creating 4 visits.
Dependent Visits
A dependent visit is one which will not be scheduled until a specified actions happens in the system, such as a patient status changing or upon completion of a visit.
In both scenarios, a Patient Item record will be created, but NOT scheduled when then are initially placed "On Study", since these dates are computed after an event in the system.
ProtocolMgr_PatientItems
- FirstAnticipatedDate: date is calculated after trigger event
- LastAnticipatedDate: date is calculated after trigger event
- ScheduledAnticipatedDate: date is calculated after trigger event
Depending on a previous Visit's item
In this scenario, when a previous is marked as performed, the dependent visits are then scheduled based upon the performed date of the previous visit, such as Week 3's visit is based on completion of a Pre-Study lab test.
A Related Record entry is used to mark a visit's dependency on another visit's item, as well as marking the ItemIntervalType column as Dependent.
RelatedRecord
- DestTableName: "ProtocolMgr_ItemTimeline" - the visit item on which the visit is dependent
- DestPrimaryKey: pri key of visit item
- SrcTableName: "ProtocolMgr_Timeline" - the dependent visit
- SrcPrimaryKey: pri key of the visit
- SrcSystem: "Caisis" - mark that this an internal Caisis relation
ProtocolMgr_Timeline
- ItemIntervalType: "Recurring"
SQL: get source visit's item based on dependent item
RelatedRecords.SrcTableName = 'ProtocolMgr_Timeline' AND RelatedRecords.SrcPrimaryKey = [DEPENDENT ItemTimelineId] AND RelatedRecords.DestTableName = 'ProtocolMgr_ItemTimeline' AND RelatedRecords.SrcSystem = 'Caisis'
Depending on a Patient's status
In this scenario, when a specified patient's status is entered, these visits will be scheduled based on that new status. i.e., A patient is placed "Off Treatment", and will require a final visit.
No related record is created in this instance. The mapping to signal this visit as dependent on a status is stored in the ItemIntervalType' field.
ProtocolMgr_Timeline
- ItemIntervalType: "Dependent Off Treatment"
PatientProtocolStatus
- PtProtocolStatus: "Off Treatment" - a status of a patient on a protocol
SQL: visit is matched to patient's status
ProtocolMgr_Timeline.ItemIntervalType LIKE '%Dependent ' + PatientProtocolStatus.PtProtocolStatus + '%'
Multiple Advanced Scheduling Options
Both the recurring and dependent scheduling options can be combined for more complex scenarios, such as a patient will be scheduled for 3 weekly follow up visits 1 week after they go "Off Treatment".