855 lines
18 KiB
Plaintext
855 lines
18 KiB
Plaintext
|
|
// CLQMS Database Schema
|
||
|
|
// Generated from ERD_EXTRACT.md
|
||
|
|
// Database Markup Language (DBML) for dbdiagram.io and other tools
|
||
|
|
|
||
|
|
// ============================================
|
||
|
|
// TABLE 1: Organization Structure
|
||
|
|
// ============================================
|
||
|
|
|
||
|
|
Table account {
|
||
|
|
AccountID int [pk]
|
||
|
|
AccountName varchar(255)
|
||
|
|
ParentAccountID int
|
||
|
|
CreateDate datetime
|
||
|
|
EndDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table site {
|
||
|
|
SiteID int [pk]
|
||
|
|
AccountID int
|
||
|
|
SiteName varchar(255)
|
||
|
|
Location varchar(255)
|
||
|
|
CreateDate datetime
|
||
|
|
EndDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table discipline {
|
||
|
|
DisciplineID int [pk]
|
||
|
|
DisciplineName varchar(255)
|
||
|
|
CreateDate datetime
|
||
|
|
EndDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table department {
|
||
|
|
DepartmentID int [pk]
|
||
|
|
DepartmentName varchar(255)
|
||
|
|
DisciplineID int
|
||
|
|
CreateDate datetime
|
||
|
|
EndDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table workstation {
|
||
|
|
WorkstationID int [pk]
|
||
|
|
SiteID int
|
||
|
|
DepartmentID int
|
||
|
|
WorkstationName varchar(255)
|
||
|
|
LocalDB boolean
|
||
|
|
CreateDate datetime
|
||
|
|
EndDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table instrument {
|
||
|
|
InstrumentID int [pk]
|
||
|
|
SiteID int
|
||
|
|
WorkstationID int
|
||
|
|
InstrumentAlias varchar(255)
|
||
|
|
InstrumentName varchar(255)
|
||
|
|
InstrumentType varchar(255)
|
||
|
|
CreateDate datetime
|
||
|
|
EndDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table personnel {
|
||
|
|
PersonnelID int [pk]
|
||
|
|
SiteID int
|
||
|
|
PersonnelName varchar(255)
|
||
|
|
Position varchar(255)
|
||
|
|
CreateDate datetime
|
||
|
|
EndDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table personneldocument {
|
||
|
|
DocID int [pk]
|
||
|
|
PersonnelID int
|
||
|
|
DocType varchar(255)
|
||
|
|
DocFile blob
|
||
|
|
ExpiryDate datetime
|
||
|
|
CreateDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table personnelaccess {
|
||
|
|
AccessID int [pk]
|
||
|
|
PersonnelID int
|
||
|
|
Role varchar(255)
|
||
|
|
Permissions text
|
||
|
|
CreateDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table location {
|
||
|
|
LocationID int [pk]
|
||
|
|
SiteID int
|
||
|
|
ParentLocationID int
|
||
|
|
LocationTypeID int
|
||
|
|
LocationName varchar(255)
|
||
|
|
CreateDate datetime
|
||
|
|
EndDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table locationaddress {
|
||
|
|
AddressID int [pk]
|
||
|
|
LocationID int
|
||
|
|
AddressLine1 varchar(255)
|
||
|
|
AddressLine2 varchar(255)
|
||
|
|
City varchar(100)
|
||
|
|
PostalCode varchar(20)
|
||
|
|
CreateDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table patient {
|
||
|
|
PatientID int [pk]
|
||
|
|
SiteID int
|
||
|
|
InternalPID int
|
||
|
|
FirstName varchar(255)
|
||
|
|
LastName varchar(255)
|
||
|
|
DateOfBirth datetime
|
||
|
|
Sex varchar(10)
|
||
|
|
Race varchar(50)
|
||
|
|
Ethnicity varchar(50)
|
||
|
|
Religion varchar(50)
|
||
|
|
CreateDate datetime
|
||
|
|
DelDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table patientcontact {
|
||
|
|
ContactID int [pk]
|
||
|
|
InternalPID int
|
||
|
|
ContactType varchar(50)
|
||
|
|
ContactValue varchar(255)
|
||
|
|
CreateDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table patientinsurance {
|
||
|
|
InsuranceID int [pk]
|
||
|
|
InternalPID int
|
||
|
|
InsuranceProvider varchar(255)
|
||
|
|
PolicyNumber varchar(100)
|
||
|
|
GroupNumber varchar(100)
|
||
|
|
EffectiveDate datetime
|
||
|
|
ExpiryDate datetime
|
||
|
|
CreateDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table patientvisit {
|
||
|
|
VisitID int [pk]
|
||
|
|
InternalPID int
|
||
|
|
SiteID int
|
||
|
|
VisitClass varchar(50)
|
||
|
|
VisitType varchar(50)
|
||
|
|
VisitDate datetime
|
||
|
|
DischargeDate datetime
|
||
|
|
CreateDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table admission {
|
||
|
|
AdmissionID int [pk]
|
||
|
|
VisitID int
|
||
|
|
PatientID int
|
||
|
|
SiteID int
|
||
|
|
AdmissionDate datetime
|
||
|
|
DischargeDate datetime
|
||
|
|
ADTCode varchar(50)
|
||
|
|
ReferringParty varchar(255)
|
||
|
|
BillingAccount varchar(255)
|
||
|
|
AttendingDoctor varchar(255)
|
||
|
|
ReferringDoctor varchar(255)
|
||
|
|
VitalSigns text
|
||
|
|
CreateDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table admissionlocation {
|
||
|
|
ID int [pk]
|
||
|
|
AdmissionID int
|
||
|
|
LocationID int
|
||
|
|
TransferDate datetime
|
||
|
|
CreateDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table testorder {
|
||
|
|
OrderID varchar(13) [pk]
|
||
|
|
SiteID int
|
||
|
|
PatientID int
|
||
|
|
VisitID int
|
||
|
|
OrderDate datetime
|
||
|
|
Urgency varchar(50)
|
||
|
|
Status varchar(50)
|
||
|
|
OrderingProvider varchar(255)
|
||
|
|
ProductionSiteID int
|
||
|
|
CreateDate datetime
|
||
|
|
EndDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table testorderdetail {
|
||
|
|
OrderDetailID int [pk]
|
||
|
|
OrderID varchar(13)
|
||
|
|
TestID int
|
||
|
|
Priority int
|
||
|
|
Status varchar(50)
|
||
|
|
CreateDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table specimen {
|
||
|
|
SID varchar(17) [pk]
|
||
|
|
OrderID varchar(13)
|
||
|
|
SpecimenDefID int
|
||
|
|
ParentSID varchar(17)
|
||
|
|
SpecimenType varchar(50)
|
||
|
|
SpecimenRole varchar(50)
|
||
|
|
CollectionDate datetime
|
||
|
|
CollectionSite int
|
||
|
|
CollectedBy int
|
||
|
|
ContainerType varchar(50)
|
||
|
|
Additive varchar(50)
|
||
|
|
CollectionMethod varchar(50)
|
||
|
|
BodySite varchar(50)
|
||
|
|
SpecimenCondition varchar(50)
|
||
|
|
Status varchar(50)
|
||
|
|
CreateDate datetime
|
||
|
|
EndDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table specimencollection {
|
||
|
|
ID int [pk]
|
||
|
|
SID varchar(17)
|
||
|
|
Activity varchar(50)
|
||
|
|
ActivityName varchar(100)
|
||
|
|
ActRes varchar(50)
|
||
|
|
LocationID int
|
||
|
|
EquipmentID int
|
||
|
|
PersonnelID int
|
||
|
|
ActivityDate datetime
|
||
|
|
Notes text
|
||
|
|
CreateDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table specimentransport {
|
||
|
|
TransportID int [pk]
|
||
|
|
SID varchar(17)
|
||
|
|
SenderID int
|
||
|
|
ReceiverID int
|
||
|
|
TransportDate datetime
|
||
|
|
Condition text
|
||
|
|
PackagingID varchar(50)
|
||
|
|
FromLocation int
|
||
|
|
ToLocation int
|
||
|
|
CreateDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table specimenstorage {
|
||
|
|
StorageID int [pk]
|
||
|
|
SID varchar(17)
|
||
|
|
LocationID int
|
||
|
|
StorageTemperature decimal(10,2)
|
||
|
|
StorageDate datetime
|
||
|
|
ThawCount int
|
||
|
|
ExpiryDate datetime
|
||
|
|
CreateDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table testdef {
|
||
|
|
TestID int [pk]
|
||
|
|
TestName varchar(255)
|
||
|
|
TestCode varchar(50)
|
||
|
|
LOINCCode varchar(50)
|
||
|
|
TestType varchar(50)
|
||
|
|
DisciplineID int
|
||
|
|
SpecimenTypeID int
|
||
|
|
ContainerTypeID int
|
||
|
|
ResultType varchar(50)
|
||
|
|
ResultUnit varchar(50)
|
||
|
|
Methodology varchar(255)
|
||
|
|
CreateDate datetime
|
||
|
|
EndDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table testdefsite {
|
||
|
|
ID int [pk]
|
||
|
|
TestID int
|
||
|
|
SiteID int
|
||
|
|
TestNameLocal varchar(255)
|
||
|
|
TestCodeLocal varchar(50)
|
||
|
|
WorkstationID int
|
||
|
|
InstrumentID int
|
||
|
|
Active boolean
|
||
|
|
CreateDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table testdeftech {
|
||
|
|
ID int [pk]
|
||
|
|
TestID int
|
||
|
|
InstrumentID int
|
||
|
|
InstrumentTestCode varchar(50)
|
||
|
|
TestMapping varchar(255)
|
||
|
|
Active boolean
|
||
|
|
CreateDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table calculatedtest {
|
||
|
|
CalculatedTestID int [pk]
|
||
|
|
TestID int
|
||
|
|
Formula text
|
||
|
|
ParamTestID1 int
|
||
|
|
ParamTestID2 int
|
||
|
|
ParamTestID3 int
|
||
|
|
ParamTestID4 int
|
||
|
|
CreateDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table grouptest {
|
||
|
|
GroupTestID int [pk]
|
||
|
|
GroupTestName varchar(255)
|
||
|
|
GroupTestType varchar(50)
|
||
|
|
CreateDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table grouptestmember {
|
||
|
|
ID int [pk]
|
||
|
|
GroupTestID int
|
||
|
|
TestID int
|
||
|
|
Sequence int
|
||
|
|
CreateDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table panel {
|
||
|
|
PanelID int [pk]
|
||
|
|
PanelName varchar(255)
|
||
|
|
PanelType varchar(50)
|
||
|
|
ParentPanelID int
|
||
|
|
DisciplineID int
|
||
|
|
CreateDate datetime
|
||
|
|
EndDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table panelmember {
|
||
|
|
ID int [pk]
|
||
|
|
PanelID int
|
||
|
|
TestID int
|
||
|
|
Sequence int
|
||
|
|
CreateDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table referencerangenumeric {
|
||
|
|
RefRangeID int [pk]
|
||
|
|
TestID int
|
||
|
|
AgeFrom int
|
||
|
|
AgeTo int
|
||
|
|
Sex varchar(10)
|
||
|
|
LowValue decimal(10,2)
|
||
|
|
HighValue decimal(10,2)
|
||
|
|
Unit varchar(20)
|
||
|
|
SpecimenTypeID int
|
||
|
|
SiteID int
|
||
|
|
EffectiveDate datetime
|
||
|
|
ExpiryDate datetime
|
||
|
|
CreateDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table referencerangethreshold {
|
||
|
|
RefRangeID int [pk]
|
||
|
|
TestID int
|
||
|
|
AgeFrom int
|
||
|
|
AgeTo int
|
||
|
|
Sex varchar(10)
|
||
|
|
CutOffLow decimal(10,2)
|
||
|
|
CutOffHigh decimal(10,2)
|
||
|
|
GrayZoneLow decimal(10,2)
|
||
|
|
GrayZoneHigh decimal(10,2)
|
||
|
|
SpecimenTypeID int
|
||
|
|
SiteID int
|
||
|
|
EffectiveDate datetime
|
||
|
|
ExpiryDate datetime
|
||
|
|
CreateDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table referencerangetext {
|
||
|
|
RefRangeID int [pk]
|
||
|
|
TestID int
|
||
|
|
AgeFrom int
|
||
|
|
AgeTo int
|
||
|
|
Sex varchar(10)
|
||
|
|
TextValue text
|
||
|
|
SpecimenTypeID int
|
||
|
|
SiteID int
|
||
|
|
EffectiveDate datetime
|
||
|
|
ExpiryDate datetime
|
||
|
|
CreateDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table calibrator {
|
||
|
|
CalibratorID int [pk]
|
||
|
|
CalibratorName varchar(255)
|
||
|
|
Manufacturer varchar(255)
|
||
|
|
LotNumber varchar(50)
|
||
|
|
ExpiryDate datetime
|
||
|
|
TestID int
|
||
|
|
CreateDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table calibration {
|
||
|
|
CalibrationID int [pk]
|
||
|
|
InstrumentID int
|
||
|
|
TestID int
|
||
|
|
CalibratorID int
|
||
|
|
Level int
|
||
|
|
CalibrationDate datetime
|
||
|
|
Factor decimal(10,4)
|
||
|
|
Absorbance decimal(10,4)
|
||
|
|
TargetValue decimal(10,4)
|
||
|
|
TargetUnit varchar(20)
|
||
|
|
PersonnelID int
|
||
|
|
Status varchar(50)
|
||
|
|
CreateDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table calparinst {
|
||
|
|
CalParInstID int [pk]
|
||
|
|
EquipmentID int
|
||
|
|
Calibrator varchar(255)
|
||
|
|
LotNo varchar(50)
|
||
|
|
ExpiryDate datetime
|
||
|
|
TestInstID1 int
|
||
|
|
SampleType varchar(50)
|
||
|
|
Level int
|
||
|
|
Concentration decimal(10,4)
|
||
|
|
CalUnit varchar(20)
|
||
|
|
CreateDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table qcmaterial {
|
||
|
|
QCMaterialID int [pk]
|
||
|
|
MaterialName varchar(255)
|
||
|
|
Manufacturer varchar(255)
|
||
|
|
LotNumber varchar(50)
|
||
|
|
ExpiryDate datetime
|
||
|
|
Level int
|
||
|
|
TestID int
|
||
|
|
TargetMean decimal(10,4)
|
||
|
|
TargetSD decimal(10,4)
|
||
|
|
TargetCV decimal(10,4)
|
||
|
|
CreateDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table qcresult {
|
||
|
|
QCResultID int [pk]
|
||
|
|
InstrumentID int
|
||
|
|
TestID int
|
||
|
|
QCMaterialID int
|
||
|
|
Level int
|
||
|
|
QCDate datetime
|
||
|
|
ResultValue decimal(10,4)
|
||
|
|
Mean decimal(10,4)
|
||
|
|
SD decimal(10,4)
|
||
|
|
CV decimal(10,4)
|
||
|
|
Sigma decimal(10,4)
|
||
|
|
ZScore decimal(10,4)
|
||
|
|
Flag varchar(10)
|
||
|
|
PersonnelID int
|
||
|
|
Status varchar(50)
|
||
|
|
CreateDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table qcstatistic {
|
||
|
|
StatisticID int [pk]
|
||
|
|
InstrumentID int
|
||
|
|
TestID int
|
||
|
|
QCMaterialID int
|
||
|
|
Level int
|
||
|
|
StatisticDate datetime
|
||
|
|
Mean decimal(10,4)
|
||
|
|
SD decimal(10,4)
|
||
|
|
CV decimal(10,4)
|
||
|
|
SampleSize int
|
||
|
|
CreateDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table patres {
|
||
|
|
ResultID int [pk]
|
||
|
|
SID varchar(17)
|
||
|
|
TestID int
|
||
|
|
OrderID varchar(13)
|
||
|
|
ResultValue varchar(100)
|
||
|
|
ResultNumeric decimal(15,5)
|
||
|
|
ResultText text
|
||
|
|
ResultUnit varchar(20)
|
||
|
|
ResultStatus varchar(50)
|
||
|
|
PersonnelID int
|
||
|
|
VerificationDate datetime
|
||
|
|
VerificationPersonnel int
|
||
|
|
CreateDate datetime
|
||
|
|
EndDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table patrestech {
|
||
|
|
TechResultID int [pk]
|
||
|
|
ResultID int
|
||
|
|
InstrumentID int
|
||
|
|
RawResult text
|
||
|
|
ResultDate datetime
|
||
|
|
RerunCount int
|
||
|
|
Dilution decimal(10,4)
|
||
|
|
CreateDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table patresflag {
|
||
|
|
FlagID int [pk]
|
||
|
|
ResultID int
|
||
|
|
FlagType varchar(10)
|
||
|
|
FlagDescription varchar(255)
|
||
|
|
CreateDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table resultdistribution {
|
||
|
|
DistributionID int [pk]
|
||
|
|
ResultID int
|
||
|
|
RecipientType varchar(50)
|
||
|
|
RecipientID int
|
||
|
|
DistributionDate datetime
|
||
|
|
DistributionMethod varchar(50)
|
||
|
|
Status varchar(50)
|
||
|
|
CreateDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table valuesetmember {
|
||
|
|
MemberID int [pk]
|
||
|
|
ValueSetID int
|
||
|
|
MemberCode varchar(50)
|
||
|
|
MemberValue varchar(255)
|
||
|
|
DisplayOrder int
|
||
|
|
Active boolean
|
||
|
|
CreateDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table reagent {
|
||
|
|
ReagentID int [pk]
|
||
|
|
ReagentName varchar(255)
|
||
|
|
Manufacturer varchar(255)
|
||
|
|
CatalogNumber varchar(100)
|
||
|
|
LotNumber varchar(50)
|
||
|
|
ExpiryDate datetime
|
||
|
|
TestID int
|
||
|
|
InstrumentID int
|
||
|
|
CreateDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table reagentusage {
|
||
|
|
UsageID int [pk]
|
||
|
|
ReagentID int
|
||
|
|
TestID int
|
||
|
|
UsageDate datetime
|
||
|
|
QuantityUsed decimal(10,2)
|
||
|
|
PersonnelID int
|
||
|
|
OrderID varchar(13)
|
||
|
|
SID varchar(17)
|
||
|
|
CreateDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table product {
|
||
|
|
ProductID int [pk]
|
||
|
|
CatalogID int
|
||
|
|
SiteID int
|
||
|
|
LotNumber varchar(50)
|
||
|
|
ExpiryDate datetime
|
||
|
|
Quantity int
|
||
|
|
ReorderLevel int
|
||
|
|
LocationID int
|
||
|
|
CreateDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table inventorytransaction {
|
||
|
|
TransactionID int [pk]
|
||
|
|
ProductID int
|
||
|
|
TransactionType varchar(50)
|
||
|
|
Quantity int
|
||
|
|
TransactionDate datetime
|
||
|
|
PersonnelID int
|
||
|
|
ReferenceID varchar(100)
|
||
|
|
Notes text
|
||
|
|
CreateDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table equipment {
|
||
|
|
EquipmentID int [pk]
|
||
|
|
EquipmentName varchar(255)
|
||
|
|
EquipmentType varchar(50)
|
||
|
|
Manufacturer varchar(255)
|
||
|
|
Model varchar(100)
|
||
|
|
SerialNumber varchar(100)
|
||
|
|
SiteID int
|
||
|
|
LocationID int
|
||
|
|
Status varchar(50)
|
||
|
|
InstallDate datetime
|
||
|
|
DecommissionDate datetime
|
||
|
|
CreateDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table equipmentmaintenance {
|
||
|
|
MaintenanceID int [pk]
|
||
|
|
EquipmentID int
|
||
|
|
MaintenanceType varchar(100)
|
||
|
|
MaintenanceDate datetime
|
||
|
|
Description text
|
||
|
|
PerformedBy varchar(255)
|
||
|
|
NextMaintenanceDate datetime
|
||
|
|
CreateDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table equipmentactivity {
|
||
|
|
ActivityID int [pk]
|
||
|
|
EquipmentID int
|
||
|
|
ActivityType varchar(100)
|
||
|
|
ActivityDate datetime
|
||
|
|
ActivityResult varchar(50)
|
||
|
|
PersonnelID int
|
||
|
|
Notes text
|
||
|
|
CreateDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table equipmenttestcount {
|
||
|
|
ID int [pk]
|
||
|
|
EquipmentID int
|
||
|
|
TestDate datetime
|
||
|
|
TestType varchar(50)
|
||
|
|
TestCount int
|
||
|
|
CreateDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table doctor {
|
||
|
|
DoctorID int [pk]
|
||
|
|
DoctorName varchar(255)
|
||
|
|
DoctorCode varchar(50)
|
||
|
|
Specialty varchar(100)
|
||
|
|
SIP varchar(50)
|
||
|
|
PracticeLocation varchar(255)
|
||
|
|
ContactID int
|
||
|
|
CreateDate datetime
|
||
|
|
EndDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table contactdetail {
|
||
|
|
DetailID int [pk]
|
||
|
|
ContactID int
|
||
|
|
DetailType varchar(50)
|
||
|
|
DetailValue varchar(255)
|
||
|
|
CreateDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table auditarchive {
|
||
|
|
ArchiveID int [pk]
|
||
|
|
AuditID int
|
||
|
|
ArchiveDate datetime
|
||
|
|
ArchiveLocation varchar(255)
|
||
|
|
CreateDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table user {
|
||
|
|
UserID int [pk]
|
||
|
|
Username varchar(100)
|
||
|
|
PasswordHash varchar(255)
|
||
|
|
PersonnelID int
|
||
|
|
Role varchar(50)
|
||
|
|
Status varchar(20)
|
||
|
|
LastLogin datetime
|
||
|
|
CreateDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table usersession {
|
||
|
|
SessionID int [pk]
|
||
|
|
UserID int
|
||
|
|
SessionToken varchar(255)
|
||
|
|
ExpiryDate datetime
|
||
|
|
IPAddress varchar(50)
|
||
|
|
CreateDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table reporttemplate {
|
||
|
|
TemplateID int [pk]
|
||
|
|
TemplateName varchar(255)
|
||
|
|
TemplateType varchar(50)
|
||
|
|
DisciplineID int
|
||
|
|
TemplateConfig text
|
||
|
|
CreateDate datetime
|
||
|
|
EndDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table reportoutput {
|
||
|
|
OutputID int [pk]
|
||
|
|
TemplateID int
|
||
|
|
OrderID varchar(13)
|
||
|
|
OutputFormat varchar(50)
|
||
|
|
OutputData blob
|
||
|
|
GeneratedDate datetime
|
||
|
|
PersonnelID int
|
||
|
|
CreateDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table hosttestmapping {
|
||
|
|
MappingID int [pk]
|
||
|
|
HostID int
|
||
|
|
HostTestCode varchar(50)
|
||
|
|
LocalTestID int
|
||
|
|
CreateDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
Table hostsynclog {
|
||
|
|
LogID int [pk]
|
||
|
|
HostID int
|
||
|
|
SyncDate datetime
|
||
|
|
RecordsProcessed int
|
||
|
|
Errors int
|
||
|
|
Status varchar(20)
|
||
|
|
Details text
|
||
|
|
CreateDate datetime
|
||
|
|
}
|
||
|
|
|
||
|
|
// ============================================
|
||
|
|
// RELATIONSHIPS
|
||
|
|
// ============================================
|
||
|
|
|
||
|
|
// Organization Structure
|
||
|
|
Ref: account.ParentAccountID > account.AccountID [delete: cascade]
|
||
|
|
Ref: site.AccountID > account.AccountID
|
||
|
|
Ref: department.DisciplineID > discipline.DisciplineID
|
||
|
|
Ref: workstation.SiteID > site.SiteID
|
||
|
|
Ref: workstation.DepartmentID > department.DepartmentID
|
||
|
|
Ref: instrument.SiteID > site.SiteID
|
||
|
|
Ref: instrument.WorkstationID > workstation.WorkstationID
|
||
|
|
|
||
|
|
// Personnel
|
||
|
|
Ref: personnel.SiteID > site.SiteID
|
||
|
|
Ref: personneldocument.PersonnelID > personnel.PersonnelID
|
||
|
|
Ref: personnelaccess.PersonnelID > personnel.PersonnelID
|
||
|
|
|
||
|
|
// Location Management
|
||
|
|
Ref: location.SiteID > site.SiteID
|
||
|
|
Ref: location.ParentLocationID > location.LocationID
|
||
|
|
Ref: locationaddress.LocationID > location.LocationID
|
||
|
|
|
||
|
|
// Patient Registration
|
||
|
|
Ref: patient.SiteID > site.SiteID
|
||
|
|
Ref: patientcontact.InternalPID > patient.InternalPID
|
||
|
|
Ref: patientinsurance.InternalPID > patient.InternalPID
|
||
|
|
Ref: patientvisit.InternalPID > patient.InternalPID
|
||
|
|
Ref: patientvisit.SiteID > site.SiteID
|
||
|
|
|
||
|
|
// Patient Admission
|
||
|
|
Ref: admission.VisitID > patientvisit.VisitID
|
||
|
|
Ref: admission.PatientID > patient.PatientID
|
||
|
|
Ref: admission.SiteID > site.SiteID
|
||
|
|
Ref: admissionlocation.AdmissionID > admission.AdmissionID
|
||
|
|
Ref: admissionlocation.LocationID > location.LocationID
|
||
|
|
|
||
|
|
// Test Ordering
|
||
|
|
Ref: testorder.SiteID > site.SiteID
|
||
|
|
Ref: testorder.PatientID > patient.PatientID
|
||
|
|
Ref: testorder.VisitID > patientvisit.VisitID
|
||
|
|
Ref: testorder.ProductionSiteID > site.SiteID
|
||
|
|
Ref: testorderdetail.OrderID > testorder.OrderID
|
||
|
|
|
||
|
|
// Specimen Management
|
||
|
|
Ref: specimen.OrderID > testorder.OrderID
|
||
|
|
Ref: specimencollection.SID > specimen.SID
|
||
|
|
Ref: specimencollection.LocationID > location.LocationID
|
||
|
|
Ref: specimencollection.EquipmentID > instrument.InstrumentID
|
||
|
|
Ref: specimencollection.PersonnelID > personnel.PersonnelID
|
||
|
|
Ref: specimentransport.SID > specimen.SID
|
||
|
|
Ref: specimentransport.SenderID > personnel.PersonnelID
|
||
|
|
Ref: specimentransport.ReceiverID > personnel.PersonnelID
|
||
|
|
Ref: specimenstorage.SID > specimen.SID
|
||
|
|
Ref: specimenstorage.LocationID > location.LocationID
|
||
|
|
|
||
|
|
// Test Management
|
||
|
|
Ref: testdef.DisciplineID > discipline.DisciplineID
|
||
|
|
Ref: testdefsite.TestID > testdef.TestID
|
||
|
|
Ref: testdefsite.SiteID > site.SiteID
|
||
|
|
Ref: testdefsite.WorkstationID > workstation.WorkstationID
|
||
|
|
Ref: testdefsite.InstrumentID > instrument.InstrumentID
|
||
|
|
Ref: testdeftech.TestID > testdef.TestID
|
||
|
|
Ref: testdeftech.InstrumentID > instrument.InstrumentID
|
||
|
|
Ref: calculatedtest.TestID > testdef.TestID
|
||
|
|
Ref: grouptestmember.GroupTestID > grouptest.GroupTestID
|
||
|
|
Ref: grouptestmember.TestID > testdef.TestID
|
||
|
|
Ref: panel.ParentPanelID > panel.PanelID
|
||
|
|
Ref: panel.DisciplineID > discipline.DisciplineID
|
||
|
|
Ref: panelmember.PanelID > panel.PanelID
|
||
|
|
Ref: panelmember.TestID > testdef.TestID
|
||
|
|
|
||
|
|
// Reference Range
|
||
|
|
Ref: referencerangenumeric.TestID > testdef.TestID
|
||
|
|
Ref: referencerangenumeric.SiteID > site.SiteID
|
||
|
|
Ref: referencerangethreshold.TestID > testdef.TestID
|
||
|
|
Ref: referencerangethreshold.SiteID > site.SiteID
|
||
|
|
Ref: referencerangetext.TestID > testdef.TestID
|
||
|
|
Ref: referencerangetext.SiteID > site.SiteID
|
||
|
|
|
||
|
|
// Calibration
|
||
|
|
Ref: calibrator.TestID > testdef.TestID
|
||
|
|
Ref: calibration.InstrumentID > instrument.InstrumentID
|
||
|
|
Ref: calibration.TestID > testdef.TestID
|
||
|
|
Ref: calibration.CalibratorID > calibrator.CalibratorID
|
||
|
|
Ref: calibration.PersonnelID > personnel.PersonnelID
|
||
|
|
Ref: calparinst.EquipmentID > instrument.InstrumentID
|
||
|
|
|
||
|
|
// Quality Control
|
||
|
|
Ref: qcmaterial.TestID > testdef.TestID
|
||
|
|
Ref: qcresult.InstrumentID > instrument.InstrumentID
|
||
|
|
Ref: qcresult.TestID > testdef.TestID
|
||
|
|
Ref: qcresult.QCMaterialID > qcmaterial.QCMaterialID
|
||
|
|
Ref: qcresult.PersonnelID > personnel.PersonnelID
|
||
|
|
Ref: qcstatistic.InstrumentID > instrument.InstrumentID
|
||
|
|
Ref: qcstatistic.TestID > testdef.TestID
|
||
|
|
Ref: qcstatistic.QCMaterialID > qcmaterial.QCMaterialID
|
||
|
|
|
||
|
|
// Test Results
|
||
|
|
Ref: patres.SID > specimen.SID
|
||
|
|
Ref: patres.TestID > testdef.TestID
|
||
|
|
Ref: patres.OrderID > testorder.OrderID
|
||
|
|
Ref: patres.PersonnelID > personnel.PersonnelID
|
||
|
|
Ref: patrestech.ResultID > patres.ResultID
|
||
|
|
Ref: patrestech.InstrumentID > instrument.InstrumentID
|
||
|
|
Ref: patresflag.ResultID > patres.ResultID
|
||
|
|
Ref: resultdistribution.ResultID > patres.ResultID
|
||
|
|
|
||
|
|
// Reagent & Inventory
|
||
|
|
Ref: reagent.TestID > testdef.TestID
|
||
|
|
Ref: reagent.InstrumentID > instrument.InstrumentID
|
||
|
|
Ref: reagentusage.ReagentID > reagent.ReagentID
|
||
|
|
Ref: reagentusage.TestID > testdef.TestID
|
||
|
|
Ref: reagentusage.PersonnelID > personnel.PersonnelID
|
||
|
|
|
||
|
|
Ref: product.SiteID > site.SiteID
|
||
|
|
Ref: product.LocationID > location.LocationID
|
||
|
|
Ref: inventorytransaction.ProductID > product.ProductID
|
||
|
|
Ref: inventorytransaction.PersonnelID > personnel.PersonnelID
|
||
|
|
|
||
|
|
// Equipment Management
|
||
|
|
Ref: equipment.SiteID > site.SiteID
|
||
|
|
Ref: equipment.LocationID > location.LocationID
|
||
|
|
Ref: equipmentmaintenance.EquipmentID > equipment.EquipmentID
|
||
|
|
Ref: equipmentactivity.EquipmentID > equipment.EquipmentID
|
||
|
|
Ref: equipmentactivity.PersonnelID > personnel.PersonnelID
|
||
|
|
Ref: equipmenttestcount.EquipmentID > equipment.EquipmentID
|
||
|
|
|
||
|
|
|
||
|
|
// User & Authentication
|
||
|
|
Ref: user.PersonnelID > personnel.PersonnelID
|
||
|
|
Ref: usersession.UserID > user.UserID
|
||
|
|
|
||
|
|
// Visualization & Reporting
|
||
|
|
Ref: reporttemplate.DisciplineID > discipline.DisciplineID
|
||
|
|
Ref: reportoutput.TemplateID > reporttemplate.TemplateID
|
||
|
|
Ref: reportoutput.OrderID > testorder.OrderID
|
||
|
|
Ref: reportoutput.PersonnelID > personnel.PersonnelID
|
||
|
|
|
||
|
|
// Host System Integration
|
||
|
|
Ref: hosttestmapping.LocalTestID > testdef.TestID
|
||
|
|
|