forked from howardpchen/capricorn
-
Notifications
You must be signed in to change notification settings - Fork 1
/
Copy pathINSTALL
129 lines (106 loc) · 7.54 KB
/
INSTALL
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
Capricorn Installation Instructions
Part A - Getting Data into Capricorn
Data from your RIS or data warehouse is loaded into our ExamMeta table.
Columns are as follows:
+-----------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+-------------+------+-----+---------+-------+
| InternalID | varchar(30) | NO | PRI | NULL | |
| AccessionNumber | varchar(8) | YES | | NULL | |
| LastName | varchar(25) | NO | | NULL | |
| FirstName | varchar(25) | NO | | NULL | |
| PatientID | tinyint(11) | NO | | NULL | |
| ExamCode | varchar(16) | YES | | NULL | |
| TraineeID | int(11) | YES | MUL | NULL | |
| AttendingID | int(11) | YES | | NULL | |
| OrganizationID | int(11) | YES | | NULL | |
| Organization | varchar(8) | NO | | NULL | |
| CompletedDTTM | datetime | YES | MUL | NULL | |
| InquiryDTTM | datetime | YES | | NULL | |
| DraftDTTM | datetime | YES | | NULL | |
| PrelimDTTM | datetime | YES | | NULL | |
| ResidentYear | int(11) | YES | | NULL | |
+-----------------+-------------+------+-----+---------+-------+
In our installation we use tools/updateExam.php to pull from a shadow copy of our RIS database.
You will need to find a similar mechanism to populate this information in your institution.
Codes in the ExamCodeDefinition table will also need to be loaded from your chargemaster. You will need to assign
values for Section, Type, to teach exam code.
ExamCodeDefinition
+--------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+-------+
| InternalCode | varchar(18) | NO | PRI | | |
| ORG | varchar(7) | YES | | NULL | |
| ExamCode | varchar(10) | YES | MUL | NULL | |
| Description | varchar(73) | YES | | NULL | |
| Department | varchar(10) | YES | | NULL | |
| Rotation | varchar(9) | YES | MUL | NULL | |
| Section | varchar(6) | YES | | NULL | |
| Type | varchar(6) | YES | | NULL | |
| Notes | varchar(16) | YES | | NULL | |
+--------------+-------------+------+-----+---------+-------+
With reagards to pairing exams to rotations: Capricorn only needs to know the date and time when the exam was completed. If rotations are known, then it will cross-reference.
In our system, we use Qgenda for resdient scheduling and have tools/qgendaImporter.php to parse the iCal Schedule downloaded from Qgenda.com into the ResidentRotation table.
In order for qgendaImporter to work correctly, the qGendaName must be populated in the residentiddescription table.
qgendaImporter works by adding data to the ResidentRotationRaw table and then parsing it into the ResidentRotation table.
ResidentRotation
+-------------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------------+-------------+------+-----+---------+-------+
| TraineeID | int(11) | NO | | NULL | |
| Rotation | varchar(25) | NO | | NULL | |
| RotationStartDate | date | NO | | NULL | |
| RotationEndDate | date | NO | | NULL | |
+-------------------+-------------+------+-----+---------+-------+
The Resident IDs table needs to be populated. We use the same value for TraineeID as our RIS, but you may want to map to another standard.
residentiddescription
+------------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+------------------+-------------+------+-----+---------+-------+
| TraineeID | int(11) | NO | PRI | NULL | |
| FirstName | varchar(25) | NO | | NULL | |
| MiddleName | varchar(25) | NO | | | |
| LastName | varchar(25) | NO | | NULL | |
| IsCurrentTrainee | bool | NO | | 0 | |
| StartDate | date | NO | | NULL | |
| QGendaName | varchar(25) | YES | | NULL | |
+------------------+-------------+------+-----+---------+-------+
The following table is used for display of attending names. This table will need to be updated with your update mechanism to stay current.
AttendingIDDefinition
+-------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| AttendingID | int(11) | NO | PRI | NULL | |
| LastName | varchar(45) | NO | | NULL | |
| FirstName | varchar(45) | NO | | NULL | |
+-------------+-------------+------+-----+---------+-------+
The ResidentCounts table is determined purely based on Capricorn's internal calculations.
ResidentCounts
+--------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+--------------+-------------+------+-----+---------+-------+
| UniqueID | varchar(40) | NO | PRI | NULL | |
| TraineeID | int(11) | NO | | NULL | |
| ResidentYear | int(2) | NO | | NULL | |
| CountDT | date | NO | | NULL | |
| Section | varchar(6) | NO | | NULL | |
| Type | varchar(6) | NO | | NULL | |
| Notes | varchar(16) | NO | | NULL | |
| Count | int(7) | NO | | NULL | |
+--------------+-------------+------+-----+---------+-------+
Capricorn handles logins in one of two ways. First by registration. New users can register by going through create_account.html, which will run their name in Capricorn to ensure they are a current resident, then use find_user.php and add_user.php to add an entry into LoginMember table.
Alternatively, Capricorn supports LDAP, which allows the user to simply use their email account to log into Capricorn. checklogin.php can work with both - it will first check LDAP, then if user is not found, check LoginMember.
One more caveat: TraineeID 99999999 is an administrative user. An account associated with this TraineeID logs into admin/index.php instead of login_success.php. Generally this should be a LoginMember entry. An easy way is just to define this user in ResidentIDDefinition, then go through create_account.html to create a password for it.
LoginMember
+-------------+-------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+-------------+------+-----+---------+-------+
| TraineeID | int(11) | NO | PRI | NULL | |
| Username | varchar(25) | NO | | NULL | |
| PasswordHash| text | NO | | NULL | |
+-------------+-------------+------+-----+---------+-------+
Part B - Web page display portal configuration
1. Edit capricornConfig.php.dist with settings for your site and save-as capricornConfig.php
2. Edit ldapconf.php.dist with settings for your site and save-as ldapconfig.php
Part C -
3. displayReport.php can be customized to allow for viewing reports. Report text is not stored in the capricorn database.