Upload
kintu-shah
View
19
Download
0
Tags:
Embed Size (px)
Citation preview
1Copyright © 2013 Allscripts Healthcare Solutions, Inc.
Super Analytics Power of Indicators and more…
8/28/2013
Sunrise Clinical Analytics (SCA) Clinical Performance Management(CPM)
2Copyright © 2013 Allscripts Healthcare Solutions, Inc.
Kintu Shah, Solutions Architect
Presenter
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 33
Introductions & Background•Kintu Shah
•Solutions Architect, Allscripts
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 44
Learning Objectives1. Gain Advance configuration knowledge of SCA / CPM
2. Learn Tips and Tricks for SCA / CPM configuration
3. Utilize SCA / CPM beyond ARRA
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 5
This Session• Enterprise Defined Indicator
• Where Clauses
• Indicator from External Source
• Reporting Using Enterprise Defined Indicators
• Model Reporting / Sub-report
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 6
It is not just ARRA
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 7
Population sets & Indicators
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 8
Population sets & Indicators
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 9
Enterprise Defined Indicators
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 10
Enterprise Defined Indicators• Out-of-box Indicators
– SCA Version 11• 184
– CPM Version 12• 140
• Most out of Box indicators are designed to be used for ARRA meaningful use measures or Core Measure Reports
• You can create new indicators for your needs
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 11
Same but different• Enterprise defined indicators acts the same way but still they
are different
• Similarity– Calculated objects that Flags the Visits into a “yes” or “no” bullion
question– Allows data to be counted, compared and aggregated– Can be used as Numerator– Can be kept Up-to-date by the ETL process– Can have multiple Rules– Rules are based on Search Types
• Differences– Enterprise defined indicators are defined only at Visit level while
Out-of-box indicators can be Visit level or patient level.– Out of Box indicators get stored as columns in database as well
as rows in SCA Visit Indicator table while Enterprise defined indicators only get stored as rows in SCA Visit Indicator table.
– Out-of-box indicators stores “true” as well as “false” while the enterprise defined indicators stores only true values.
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 12
Challenges and Solutions• Challenge:
– Generic Search Types are not sufficient for the need
• Solution:– Where clause
• Challenge:– Data is not in Sunrise Clinical Manager but other databases
• Solution: – Indicator from External Source
• Challenge:– SCA_Acutecare Model is too restricting for reporting using
enterprise defined indicators
• Solution– Non-model based reporting– Pivot View
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 13
Where clause is not Where clause• What is Where clause?
– It helps enhance the search types– Insert SQL in Template code of Search types
• What I need to know to write Where clause?– SCA / CPM Acute care database repository architecture– How do Search type generates query– Little knowledge of SQL
• What Search Type works best to write Where clause– It Depends– Visit > Visit (My Favorite Why – it is very simple)
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 14
Data Model
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 15
Data Model
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 16
Transfusions with Hemoglobin over 7
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 17
Transfusions with Hemoglobin over 7
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 18
HadHGBGT7BeforeTransfusion• What is needed?
– When Transfusion was ordered the last HGB Result was over 7.0
• Simplify the Requirement1. Visits with Transfusion Orders2. Visits with Transfusion Orders and HGB Results3. When Transfusion was ordered the last HGB Result was over 7.0
• Steps:– Method 1
• What Search type is appropriate?– Order
• Where clause to look at Result
– Method 2• What Search type is appropriate?
– Visit
• Where clause to look at Order and Result
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 19
HadHGBGT7BeforeTransfusion1
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 20
HadHGBGT7BeforeTransfusion• Configure with what closest match search type
• Use Test function to test and have system generates SQL
• SELECT (set of Columns)
• FROM (General Visit Related Tables)
• Search type related tables
• Rule Criteria
• Population Set condition
1
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 21
SELECT DISTINCT SCAVisit.[VisitID] AS 'Visit ID',SCAVisit.[ClientVisitGUID] AS 'SCM Visit ID', SCAPatientDim.[MRN] AS 'MRN', SCAVisit.[AdmitDtm] AS 'Admit Date',SCALocationDim.[LocationName] AS 'Location', SCAVisit.[SrcUpdtDtm] AS 'Touched When', SCAServiceDim.[Service] AS 'Service',SCAProviderDim.[ProviderDisplayName] AS 'Attending Provider', SCAPatientDim.[PatientName] AS 'Patient Name',SCAPatientDim.[BirthDtm] AS 'Birth Date', SCAVisitTypeDim.[VisitType] AS 'Visit Type', SCAVisitStatusDim.[VisitStatus] AS 'Visit Status',SCADemographicDim.[Gender] AS 'Gender',SCAVisit.EncounterNumber as 'Encounter Number',SCAVisit.LOSDays as 'LOS', SCAAdmitReasonDim.AdmitReason as 'Admit Reason'
FROM [SCA_Acutecare].[dbo].[SCAVisit] AS SCAVisitINNER JOIN [SCA_Acutecare].[dbo].[SCAPatientDim] AS SCAPatientDim ON SCAPatientDim.PatientDimID = SCAVisit.PatientDimIDINNER JOIN [SCA_Acutecare].[dbo].[SCADemographicDim] AS SCADemographicDim ON SCAVisit.[DemographicDimID] = SCADemographicDim.[DemographicDimID]INNER JOIN [SCA_Acutecare].[dbo].[SCAProviderDim] AS SCAProviderDim ON SCAVisit.[ProviderDimID] = SCAProviderDim.[ProviderDimID]INNER JOIN [SCA_Acutecare].[dbo].[SCAVisitStatusDim] AS SCAVisitStatusDim ON SCAVisit.[VisitStatusDimID] = SCAVisitStatusDim.[VisitStatusDimID]INNER JOIN [SCA_Acutecare].[dbo].[SCAVisitTypeDim] AS SCAVisitTypeDim ON SCAVisit.[VisitTypeDimID] = SCAVisitTypeDim.[VisitTypeDimID]INNER JOIN [SCA_Acutecare].[dbo].[SCALocationDim] AS SCALocationDim ON SCAVisit.[DischargeLocationDimID] = SCALocationDim.[LocationDimID]INNER JOIN [SCA_Acutecare].[dbo].[SCAServiceDim] AS SCAServiceDim ON SCAVisit.[ServiceDimID] = SCAServiceDim.[ServiceDimID] INNER JOIN [SCA_Acutecare].[dbo].[SCAAdmitReasonDim] AS SCAAdmitReasonDim ON SCAVisit.[AdmitReasonDimID] = SCAAdmitReasonDim.[AdmitReasonDimID]
INNER JOIN [SCA_Acutecare].[dbo].[SCAOrder] AS SCAOrder ON SCAOrder.VisitID = SCAVisit.VisitID And SCAOrder.isactive = 1 INNER JOIN [SCA_Acutecare].[dbo].[SCAOrderTypeDim] AS SCAOrderTypeDim ON SCAOrderTypeDim.OrderTypeDimID = SCAOrder.OrderTypeDimIDINNER JOIN [SCA_Acutecare].[dbo].[SCAOrderCatalogDim] AS SCAOrderCatalogDim ON SCAOrder.OrderCatalogDimID = SCAOrderCatalogDim.OrderCatalogDimID INNER JOIN [SCA_Acutecare].[dbo].[SCAOrderStatusDim] SCAOrderStatusDim ON SCAOrder.OrderStatusDimID = SCAOrderStatusDim.OrderStatusDimIDINNER JOIN [SCA_Acutecare].[dbo].[SCADateDim] AS SCADateDim
ON YEAR(SCAOrder.[OrderCreatedDtm]) = SCADateDim.[Year] AND MONTH(SCAOrder.[OrderCreatedDtm]) = SCADateDim.[Month] AND DAY(SCAOrder.[OrderCreatedDtm]) = SCADateDim.[Day]
AND SCAOrderCatalogDim.OrderItemName IN (SELECT * FROM dbo.SANReplacementStringTableFn('PRBC Orders')) AND SCAOrderStatusDim.OrderStatus IN (SELECT * FROM dbo.SANReplacementStringTableFn('Completed Order Statuses'))
INNER JOIN [SCA_Acutecare].[dbo].[SCAPopulation] SCAPopulationON SCAPopulation.VisitID = SCAVisit.VisitID AND SCAPopulation.PopulationsetID = 158
HadHGBGT7BeforeTransfusion1
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 22
SELECT DISTINCT SCAVisit.[VisitID] AS 'Visit ID',SCAVisit.[ClientVisitGUID] AS 'SCM Visit ID', SCAPatientDim.[MRN] AS 'MRN', SCAVisit.[AdmitDtm] AS 'Admit Date',SCALocationDim.[LocationName] AS 'Location', SCAVisit.[SrcUpdtDtm] AS 'Touched When', SCAServiceDim.[Service] AS 'Service',SCAProviderDim.[ProviderDisplayName] AS 'Attending Provider', SCAPatientDim.[PatientName] AS 'Patient Name',SCAPatientDim.[BirthDtm] AS 'Birth Date', SCAVisitTypeDim.[VisitType] AS 'Visit Type', SCAVisitStatusDim.[VisitStatus] AS 'Visit Status',SCADemographicDim.[Gender] AS 'Gender',SCAVisit.EncounterNumber as 'Encounter Number',SCAVisit.LOSDays as 'LOS', SCAAdmitReasonDim.AdmitReason as 'Admit Reason'
FROM [SCA_Acutecare].[dbo].[SCAVisit] AS SCAVisitINNER JOIN [SCA_Acutecare].[dbo].[SCAPatientDim] AS SCAPatientDim ON SCAPatientDim.PatientDimID = SCAVisit.PatientDimIDINNER JOIN [SCA_Acutecare].[dbo].[SCADemographicDim] AS SCADemographicDim ON SCAVisit.[DemographicDimID] = SCADemographicDim.[DemographicDimID]INNER JOIN [SCA_Acutecare].[dbo].[SCAProviderDim] AS SCAProviderDim ON SCAVisit.[ProviderDimID] = SCAProviderDim.[ProviderDimID]INNER JOIN [SCA_Acutecare].[dbo].[SCAVisitStatusDim] AS SCAVisitStatusDim ON SCAVisit.[VisitStatusDimID] = SCAVisitStatusDim.[VisitStatusDimID]INNER JOIN [SCA_Acutecare].[dbo].[SCAVisitTypeDim] AS SCAVisitTypeDim ON SCAVisit.[VisitTypeDimID] = SCAVisitTypeDim.[VisitTypeDimID]INNER JOIN [SCA_Acutecare].[dbo].[SCALocationDim] AS SCALocationDim ON SCAVisit.[DischargeLocationDimID] = SCALocationDim.[LocationDimID]INNER JOIN [SCA_Acutecare].[dbo].[SCAServiceDim] AS SCAServiceDim ON SCAVisit.[ServiceDimID] = SCAServiceDim.[ServiceDimID] INNER JOIN [SCA_Acutecare].[dbo].[SCAAdmitReasonDim] AS SCAAdmitReasonDim ON SCAVisit.[AdmitReasonDimID] = SCAAdmitReasonDim.[AdmitReasonDimID]
INNER JOIN [SCA_Acutecare].[dbo].[SCAOrder] AS SCAOrder ON SCAOrder.VisitID = SCAVisit.VisitID And SCAOrder.isactive = 1 INNER JOIN [SCA_Acutecare].[dbo].[SCAOrderTypeDim] AS SCAOrderTypeDim ON SCAOrderTypeDim.OrderTypeDimID = SCAOrder.OrderTypeDimIDINNER JOIN [SCA_Acutecare].[dbo].[SCAOrderCatalogDim] AS SCAOrderCatalogDim ON SCAOrder.OrderCatalogDimID = SCAOrderCatalogDim.OrderCatalogDimID INNER JOIN [SCA_Acutecare].[dbo].[SCAOrderStatusDim] SCAOrderStatusDim ON SCAOrder.OrderStatusDimID = SCAOrderStatusDim.OrderStatusDimIDINNER JOIN [SCA_Acutecare].[dbo].[SCADateDim] AS SCADateDim
ON YEAR(SCAOrder.[OrderCreatedDtm]) = SCADateDim.[Year] AND MONTH(SCAOrder.[OrderCreatedDtm]) = SCADateDim.[Month] AND DAY(SCAOrder.[OrderCreatedDtm]) = SCADateDim.[Day]
AND SCAOrderCatalogDim.OrderItemName IN (SELECT * FROM dbo.SANReplacementStringTableFn('PRBC Orders')) AND SCAOrderStatusDim.OrderStatus IN (SELECT * FROM dbo.SANReplacementStringTableFn('Completed Order Statuses'))
INNER JOIN [SCA_Acutecare].[dbo].[SCAPopulation] SCAPopulationON SCAPopulation.VisitID = SCAVisit.VisitID AND SCAPopulation.PopulationsetID = 158
HadHGBGT7BeforeTransfusion1
Select (Set of Columns)
Bunch of Columns – not important for Where Clause writing
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 23
SELECT DISTINCT SCAVisit.[VisitID] AS 'Visit ID',SCAVisit.[ClientVisitGUID] AS 'SCM Visit ID', SCAPatientDim.[MRN] AS 'MRN', SCAVisit.[AdmitDtm] AS 'Admit Date',SCALocationDim.[LocationName] AS 'Location', SCAVisit.[SrcUpdtDtm] AS 'Touched When', SCAServiceDim.[Service] AS 'Service',SCAProviderDim.[ProviderDisplayName] AS 'Attending Provider', SCAPatientDim.[PatientName] AS 'Patient Name',SCAPatientDim.[BirthDtm] AS 'Birth Date', SCAVisitTypeDim.[VisitType] AS 'Visit Type', SCAVisitStatusDim.[VisitStatus] AS 'Visit Status',SCADemographicDim.[Gender] AS 'Gender',SCAVisit.EncounterNumber as 'Encounter Number',SCAVisit.LOSDays as 'LOS', SCAAdmitReasonDim.AdmitReason as 'Admit Reason'
FROM [SCA_Acutecare].[dbo].[SCAVisit] AS SCAVisitINNER JOIN [SCA_Acutecare].[dbo].[SCAPatientDim] AS SCAPatientDim ON SCAPatientDim.PatientDimID = SCAVisit.PatientDimIDINNER JOIN [SCA_Acutecare].[dbo].[SCADemographicDim] AS SCADemographicDim ON SCAVisit.[DemographicDimID] = SCADemographicDim.[DemographicDimID]INNER JOIN [SCA_Acutecare].[dbo].[SCAProviderDim] AS SCAProviderDim ON SCAVisit.[ProviderDimID] = SCAProviderDim.[ProviderDimID]INNER JOIN [SCA_Acutecare].[dbo].[SCAVisitStatusDim] AS SCAVisitStatusDim ON SCAVisit.[VisitStatusDimID] = SCAVisitStatusDim.[VisitStatusDimID]INNER JOIN [SCA_Acutecare].[dbo].[SCAVisitTypeDim] AS SCAVisitTypeDim ON SCAVisit.[VisitTypeDimID] = SCAVisitTypeDim.[VisitTypeDimID]INNER JOIN [SCA_Acutecare].[dbo].[SCALocationDim] AS SCALocationDim ON SCAVisit.[DischargeLocationDimID] = SCALocationDim.[LocationDimID]INNER JOIN [SCA_Acutecare].[dbo].[SCAServiceDim] AS SCAServiceDim ON SCAVisit.[ServiceDimID] = SCAServiceDim.[ServiceDimID] INNER JOIN [SCA_Acutecare].[dbo].[SCAAdmitReasonDim] AS SCAAdmitReasonDim ON SCAVisit.[AdmitReasonDimID] = SCAAdmitReasonDim.[AdmitReasonDimID]
INNER JOIN [SCA_Acutecare].[dbo].[SCAOrder] AS SCAOrder ON SCAOrder.VisitID = SCAVisit.VisitID And SCAOrder.isactive = 1 INNER JOIN [SCA_Acutecare].[dbo].[SCAOrderTypeDim] AS SCAOrderTypeDim ON SCAOrderTypeDim.OrderTypeDimID = SCAOrder.OrderTypeDimIDINNER JOIN [SCA_Acutecare].[dbo].[SCAOrderCatalogDim] AS SCAOrderCatalogDim ON SCAOrder.OrderCatalogDimID = SCAOrderCatalogDim.OrderCatalogDimID INNER JOIN [SCA_Acutecare].[dbo].[SCAOrderStatusDim] SCAOrderStatusDim ON SCAOrder.OrderStatusDimID = SCAOrderStatusDim.OrderStatusDimIDINNER JOIN [SCA_Acutecare].[dbo].[SCADateDim] AS SCADateDim
ON YEAR(SCAOrder.[OrderCreatedDtm]) = SCADateDim.[Year] AND MONTH(SCAOrder.[OrderCreatedDtm]) = SCADateDim.[Month] AND DAY(SCAOrder.[OrderCreatedDtm]) = SCADateDim.[Day]
AND SCAOrderCatalogDim.OrderItemName IN (SELECT * FROM dbo.SANReplacementStringTableFn('PRBC Orders')) AND SCAOrderStatusDim.OrderStatus IN (SELECT * FROM dbo.SANReplacementStringTableFn('Completed Order Statuses'))
INNER JOIN [SCA_Acutecare].[dbo].[SCAPopulation] SCAPopulationON SCAPopulation.VisitID = SCAVisit.VisitID AND SCAPopulation.PopulationSetID = 158
HadHGBGT7BeforeTransfusionSelect (Set of Columns)
1
FROM (General Visit Related Tables)
SCAVisit SCAPatientDim
SCADemographicDim SCAProviderDim
SCAVisitStatus SCAVisitLocation
SCAServicedim SCAAdmitReasonDim
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 24
SELECT DISTINCT SCAVisit.[VisitID] AS 'Visit ID',SCAVisit.[ClientVisitGUID] AS 'SCM Visit ID', SCAPatientDim.[MRN] AS 'MRN', SCAVisit.[AdmitDtm] AS 'Admit Date',SCALocationDim.[LocationName] AS 'Location', SCAVisit.[SrcUpdtDtm] AS 'Touched When', SCAServiceDim.[Service] AS 'Service',SCAProviderDim.[ProviderDisplayName] AS 'Attending Provider', SCAPatientDim.[PatientName] AS 'Patient Name',SCAPatientDim.[BirthDtm] AS 'Birth Date', SCAVisitTypeDim.[VisitType] AS 'Visit Type', SCAVisitStatusDim.[VisitStatus] AS 'Visit Status',SCADemographicDim.[Gender] AS 'Gender',SCAVisit.EncounterNumber as 'Encounter Number',SCAVisit.LOSDays as 'LOS', SCAAdmitReasonDim.AdmitReason as 'Admit Reason'
FROM [SCA_Acutecare].[dbo].[SCAVisit] AS SCAVisitINNER JOIN [SCA_Acutecare].[dbo].[SCAPatientDim] AS SCAPatientDim ON SCAPatientDim.PatientDimID = SCAVisit.PatientDimIDINNER JOIN [SCA_Acutecare].[dbo].[SCADemographicDim] AS SCADemographicDim ON SCAVisit.[DemographicDimID] = SCADemographicDim.[DemographicDimID]INNER JOIN [SCA_Acutecare].[dbo].[SCAProviderDim] AS SCAProviderDim ON SCAVisit.[ProviderDimID] = SCAProviderDim.[ProviderDimID]INNER JOIN [SCA_Acutecare].[dbo].[SCAVisitStatusDim] AS SCAVisitStatusDim ON SCAVisit.[VisitStatusDimID] = SCAVisitStatusDim.[VisitStatusDimID]INNER JOIN [SCA_Acutecare].[dbo].[SCAVisitTypeDim] AS SCAVisitTypeDim ON SCAVisit.[VisitTypeDimID] = SCAVisitTypeDim.[VisitTypeDimID]INNER JOIN [SCA_Acutecare].[dbo].[SCALocationDim] AS SCALocationDim ON SCAVisit.[DischargeLocationDimID] = SCALocationDim.[LocationDimID]INNER JOIN [SCA_Acutecare].[dbo].[SCAServiceDim] AS SCAServiceDim ON SCAVisit.[ServiceDimID] = SCAServiceDim.[ServiceDimID] INNER JOIN [SCA_Acutecare].[dbo].[SCAAdmitReasonDim] AS SCAAdmitReasonDim ON SCAVisit.[AdmitReasonDimID] = SCAAdmitReasonDim.[AdmitReasonDimID]
INNER JOIN [SCA_Acutecare].[dbo].[SCAOrder] AS SCAOrder ON SCAOrder.VisitID = SCAVisit.VisitID And SCAOrder.isactive = 1 INNER JOIN [SCA_Acutecare].[dbo].[SCAOrderTypeDim] AS SCAOrderTypeDim ON SCAOrderTypeDim.OrderTypeDimID = SCAOrder.OrderTypeDimIDINNER JOIN [SCA_Acutecare].[dbo].[SCAOrderCatalogDim] AS SCAOrderCatalogDim ON SCAOrder.OrderCatalogDimID = SCAOrderCatalogDim.OrderCatalogDimID INNER JOIN [SCA_Acutecare].[dbo].[SCAOrderStatusDim] SCAOrderStatusDim ON SCAOrder.OrderStatusDimID = SCAOrderStatusDim.OrderStatusDimIDINNER JOIN [SCA_Acutecare].[dbo].[SCADateDim] AS SCADateDim
ON YEAR(SCAOrder.[OrderCreatedDtm]) = SCADateDim.[Year] AND MONTH(SCAOrder.[OrderCreatedDtm]) = SCADateDim.[Month] AND DAY(SCAOrder.[OrderCreatedDtm]) = SCADateDim.[Day]
AND SCAOrderCatalogDim.OrderItemName IN (SELECT * FROM dbo.SANReplacementStringTableFn('PRBC Orders')) AND SCAOrderStatusDim.OrderStatus IN (SELECT * FROM dbo.SANReplacementStringTableFn('Completed Order Statuses'))
INNER JOIN [SCA_Acutecare].[dbo].[SCAPopulation] SCAPopulationON SCAPopulation.VisitID = SCAVisit.VisitID AND SCAPopulation.PopulationSetID = 158
HadHGBGT7BeforeTransfusionSelect (Set of Columns)
FROM (General Visit Related Tables)
Search type related tables
1
Search type related tablesSCAOrder Orders
SCAOrderTypeDim Order Types
SCAOrderCatalogDim Order Catalog
SCAOrderStatusDim Order Status
SCADateDim Order Create Date
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 25
SELECT DISTINCT SCAVisit.[VisitID] AS 'Visit ID',SCAVisit.[ClientVisitGUID] AS 'SCM Visit ID', SCAPatientDim.[MRN] AS 'MRN', SCAVisit.[AdmitDtm] AS 'Admit Date',SCALocationDim.[LocationName] AS 'Location', SCAVisit.[SrcUpdtDtm] AS 'Touched When', SCAServiceDim.[Service] AS 'Service',SCAProviderDim.[ProviderDisplayName] AS 'Attending Provider', SCAPatientDim.[PatientName] AS 'Patient Name',SCAPatientDim.[BirthDtm] AS 'Birth Date', SCAVisitTypeDim.[VisitType] AS 'Visit Type', SCAVisitStatusDim.[VisitStatus] AS 'Visit Status',SCADemographicDim.[Gender] AS 'Gender',SCAVisit.EncounterNumber as 'Encounter Number',SCAVisit.LOSDays as 'LOS', SCAAdmitReasonDim.AdmitReason as 'Admit Reason'
FROM [SCA_Acutecare].[dbo].[SCAVisit] AS SCAVisitINNER JOIN [SCA_Acutecare].[dbo].[SCAPatientDim] AS SCAPatientDim ON SCAPatientDim.PatientDimID = SCAVisit.PatientDimIDINNER JOIN [SCA_Acutecare].[dbo].[SCADemographicDim] AS SCADemographicDim ON SCAVisit.[DemographicDimID] = SCADemographicDim.[DemographicDimID]INNER JOIN [SCA_Acutecare].[dbo].[SCAProviderDim] AS SCAProviderDim ON SCAVisit.[ProviderDimID] = SCAProviderDim.[ProviderDimID]INNER JOIN [SCA_Acutecare].[dbo].[SCAVisitStatusDim] AS SCAVisitStatusDim ON SCAVisit.[VisitStatusDimID] = SCAVisitStatusDim.[VisitStatusDimID]INNER JOIN [SCA_Acutecare].[dbo].[SCAVisitTypeDim] AS SCAVisitTypeDim ON SCAVisit.[VisitTypeDimID] = SCAVisitTypeDim.[VisitTypeDimID]INNER JOIN [SCA_Acutecare].[dbo].[SCALocationDim] AS SCALocationDim ON SCAVisit.[DischargeLocationDimID] = SCALocationDim.[LocationDimID]INNER JOIN [SCA_Acutecare].[dbo].[SCAServiceDim] AS SCAServiceDim ON SCAVisit.[ServiceDimID] = SCAServiceDim.[ServiceDimID] INNER JOIN [SCA_Acutecare].[dbo].[SCAAdmitReasonDim] AS SCAAdmitReasonDim ON SCAVisit.[AdmitReasonDimID] = SCAAdmitReasonDim.[AdmitReasonDimID]
INNER JOIN [SCA_Acutecare].[dbo].[SCAOrder] AS SCAOrder ON SCAOrder.VisitID = SCAVisit.VisitID And SCAOrder.isactive = 1 INNER JOIN [SCA_Acutecare].[dbo].[SCAOrderTypeDim] AS SCAOrderTypeDim ON SCAOrderTypeDim.OrderTypeDimID = SCAOrder.OrderTypeDimIDINNER JOIN [SCA_Acutecare].[dbo].[SCAOrderCatalogDim] AS SCAOrderCatalogDim ON SCAOrder.OrderCatalogDimID = SCAOrderCatalogDim.OrderCatalogDimID INNER JOIN [SCA_Acutecare].[dbo].[SCAOrderStatusDim] SCAOrderStatusDim ON SCAOrder.OrderStatusDimID = SCAOrderStatusDim.OrderStatusDimIDINNER JOIN [SCA_Acutecare].[dbo].[SCADateDim] AS SCADateDim
ON YEAR(SCAOrder.[OrderCreatedDtm]) = SCADateDim.[Year] AND MONTH(SCAOrder.[OrderCreatedDtm]) = SCADateDim.[Month] AND DAY(SCAOrder.[OrderCreatedDtm]) = SCADateDim.[Day]
AND SCAOrderCatalogDim.OrderItemName IN (SELECT * FROM dbo.SANReplacementStringTableFn('PRBC Orders')) AND SCAOrderStatusDim.OrderStatus IN (SELECT * FROM dbo.SANReplacementStringTableFn('Completed Order Statuses'))
INNER JOIN [SCA_Acutecare].[dbo].[SCAPopulation] SCAPopulationON SCAPopulation.VisitID = SCAVisit.VisitID AND SCAPopulation.PopulationSetID = 158
HadHGBGT7BeforeTransfusionSelect (Set of Columns)
FROM (General Visit Related Tables)
Search type related tables
1
Rule CriteriaAND Order Item Name IN Reference set “PRBC Orders”AND Order Status IN Reference set “Completed Order Statuses”
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 26
SELECT DISTINCT SCAVisit.[VisitID] AS 'Visit ID',SCAVisit.[ClientVisitGUID] AS 'SCM Visit ID', SCAPatientDim.[MRN] AS 'MRN', SCAVisit.[AdmitDtm] AS 'Admit Date',SCALocationDim.[LocationName] AS 'Location', SCAVisit.[SrcUpdtDtm] AS 'Touched When', SCAServiceDim.[Service] AS 'Service',SCAProviderDim.[ProviderDisplayName] AS 'Attending Provider', SCAPatientDim.[PatientName] AS 'Patient Name',SCAPatientDim.[BirthDtm] AS 'Birth Date', SCAVisitTypeDim.[VisitType] AS 'Visit Type', SCAVisitStatusDim.[VisitStatus] AS 'Visit Status',SCADemographicDim.[Gender] AS 'Gender',SCAVisit.EncounterNumber as 'Encounter Number',SCAVisit.LOSDays as 'LOS', SCAAdmitReasonDim.AdmitReason as 'Admit Reason'
FROM [SCA_Acutecare].[dbo].[SCAVisit] AS SCAVisitINNER JOIN [SCA_Acutecare].[dbo].[SCAPatientDim] AS SCAPatientDim ON SCAPatientDim.PatientDimID = SCAVisit.PatientDimIDINNER JOIN [SCA_Acutecare].[dbo].[SCADemographicDim] AS SCADemographicDim ON SCAVisit.[DemographicDimID] = SCADemographicDim.[DemographicDimID]INNER JOIN [SCA_Acutecare].[dbo].[SCAProviderDim] AS SCAProviderDim ON SCAVisit.[ProviderDimID] = SCAProviderDim.[ProviderDimID]INNER JOIN [SCA_Acutecare].[dbo].[SCAVisitStatusDim] AS SCAVisitStatusDim ON SCAVisit.[VisitStatusDimID] = SCAVisitStatusDim.[VisitStatusDimID]INNER JOIN [SCA_Acutecare].[dbo].[SCAVisitTypeDim] AS SCAVisitTypeDim ON SCAVisit.[VisitTypeDimID] = SCAVisitTypeDim.[VisitTypeDimID]INNER JOIN [SCA_Acutecare].[dbo].[SCALocationDim] AS SCALocationDim ON SCAVisit.[DischargeLocationDimID] = SCALocationDim.[LocationDimID]INNER JOIN [SCA_Acutecare].[dbo].[SCAServiceDim] AS SCAServiceDim ON SCAVisit.[ServiceDimID] = SCAServiceDim.[ServiceDimID] INNER JOIN [SCA_Acutecare].[dbo].[SCAAdmitReasonDim] AS SCAAdmitReasonDim ON SCAVisit.[AdmitReasonDimID] = SCAAdmitReasonDim.[AdmitReasonDimID]
INNER JOIN [SCA_Acutecare].[dbo].[SCAOrder] AS SCAOrder ON SCAOrder.VisitID = SCAVisit.VisitID And SCAOrder.isactive = 1 INNER JOIN [SCA_Acutecare].[dbo].[SCAOrderTypeDim] AS SCAOrderTypeDim ON SCAOrderTypeDim.OrderTypeDimID = SCAOrder.OrderTypeDimIDINNER JOIN [SCA_Acutecare].[dbo].[SCAOrderCatalogDim] AS SCAOrderCatalogDim ON SCAOrder.OrderCatalogDimID = SCAOrderCatalogDim.OrderCatalogDimID INNER JOIN [SCA_Acutecare].[dbo].[SCAOrderStatusDim] SCAOrderStatusDim ON SCAOrder.OrderStatusDimID = SCAOrderStatusDim.OrderStatusDimIDINNER JOIN [SCA_Acutecare].[dbo].[SCADateDim] AS SCADateDim
ON YEAR(SCAOrder.[OrderCreatedDtm]) = SCADateDim.[Year] AND MONTH(SCAOrder.[OrderCreatedDtm]) = SCADateDim.[Month] AND DAY(SCAOrder.[OrderCreatedDtm]) = SCADateDim.[Day]
AND SCAOrderCatalogDim.OrderItemName IN (SELECT * FROM dbo.SANReplacementStringTableFn('PRBC Orders')) AND SCAOrderStatusDim.OrderStatus IN (SELECT * FROM dbo.SANReplacementStringTableFn('Completed Order Statuses'))
INNER JOIN [SCA_Acutecare].[dbo].[SCAPopulation] SCAPopulationON SCAPopulation.VisitID = SCAVisit.VisitID AND SCAPopulation.PopulationSetID = 158
HadHGBGT7BeforeTransfusionSelect (Set of Columns)
FROM (General Visit Related Tables)
Search type related tables
Rule Criteria
1
Population Test Criteria
Rule testing criteria – not important for Where Clause writing.. Ignore it!!!
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 27
SELECT DISTINCT SCAVisit.[VisitID] AS 'Visit ID',SCAVisit.[ClientVisitGUID] AS 'SCM Visit ID', SCAPatientDim.[MRN] AS 'MRN', SCAVisit.[AdmitDtm] AS 'Admit Date',SCALocationDim.[LocationName] AS 'Location', SCAVisit.[SrcUpdtDtm] AS 'Touched When', SCAServiceDim.[Service] AS 'Service',SCAProviderDim.[ProviderDisplayName] AS 'Attending Provider', SCAPatientDim.[PatientName] AS 'Patient Name',SCAPatientDim.[BirthDtm] AS 'Birth Date', SCAVisitTypeDim.[VisitType] AS 'Visit Type', SCAVisitStatusDim.[VisitStatus] AS 'Visit Status',SCADemographicDim.[Gender] AS 'Gender',SCAVisit.EncounterNumber as 'Encounter Number',SCAVisit.LOSDays as 'LOS', SCAAdmitReasonDim.AdmitReason as 'Admit Reason'
FROM [SCA_Acutecare].[dbo].[SCAVisit] AS SCAVisitINNER JOIN [SCA_Acutecare].[dbo].[SCAPatientDim] AS SCAPatientDim ON SCAPatientDim.PatientDimID = SCAVisit.PatientDimIDINNER JOIN [SCA_Acutecare].[dbo].[SCADemographicDim] AS SCADemographicDim ON SCAVisit.[DemographicDimID] = SCADemographicDim.[DemographicDimID]INNER JOIN [SCA_Acutecare].[dbo].[SCAProviderDim] AS SCAProviderDim ON SCAVisit.[ProviderDimID] = SCAProviderDim.[ProviderDimID]INNER JOIN [SCA_Acutecare].[dbo].[SCAVisitStatusDim] AS SCAVisitStatusDim ON SCAVisit.[VisitStatusDimID] = SCAVisitStatusDim.[VisitStatusDimID]INNER JOIN [SCA_Acutecare].[dbo].[SCAVisitTypeDim] AS SCAVisitTypeDim ON SCAVisit.[VisitTypeDimID] = SCAVisitTypeDim.[VisitTypeDimID]INNER JOIN [SCA_Acutecare].[dbo].[SCALocationDim] AS SCALocationDim ON SCAVisit.[DischargeLocationDimID] = SCALocationDim.[LocationDimID]INNER JOIN [SCA_Acutecare].[dbo].[SCAServiceDim] AS SCAServiceDim ON SCAVisit.[ServiceDimID] = SCAServiceDim.[ServiceDimID] INNER JOIN [SCA_Acutecare].[dbo].[SCAAdmitReasonDim] AS SCAAdmitReasonDim ON SCAVisit.[AdmitReasonDimID] = SCAAdmitReasonDim.[AdmitReasonDimID]
INNER JOIN [SCA_Acutecare].[dbo].[SCAOrder] AS SCAOrder ON SCAOrder.VisitID = SCAVisit.VisitID And SCAOrder.isactive = 1 INNER JOIN [SCA_Acutecare].[dbo].[SCAOrderTypeDim] AS SCAOrderTypeDim ON SCAOrderTypeDim.OrderTypeDimID = SCAOrder.OrderTypeDimIDINNER JOIN [SCA_Acutecare].[dbo].[SCAOrderCatalogDim] AS SCAOrderCatalogDim ON SCAOrder.OrderCatalogDimID = SCAOrderCatalogDim.OrderCatalogDimID INNER JOIN [SCA_Acutecare].[dbo].[SCAOrderStatusDim] SCAOrderStatusDim ON SCAOrder.OrderStatusDimID = SCAOrderStatusDim.OrderStatusDimIDINNER JOIN [SCA_Acutecare].[dbo].[SCADateDim] AS SCADateDim
ON YEAR(SCAOrder.[OrderCreatedDtm]) = SCADateDim.[Year] AND MONTH(SCAOrder.[OrderCreatedDtm]) = SCADateDim.[Month] AND DAY(SCAOrder.[OrderCreatedDtm]) = SCADateDim.[Day]
AND SCAOrderCatalogDim.OrderItemName IN (SELECT * FROM dbo.SANReplacementStringTableFn('PRBC Orders')) AND SCAOrderStatusDim.OrderStatus IN (SELECT * FROM dbo.SANReplacementStringTableFn('Completed Order Statuses'))
INNER JOIN [SCA_Acutecare].[dbo].[SCAPopulation] SCAPopulationON SCAPopulation.VisitID = SCAVisit.VisitID AND SCAPopulation.PopulationSetID = 158
HadHGBGT7BeforeTransfusionSelect (Set of Columns)
FROM (General Visit Related Tables)
Search type related tables
Rule Criteria
Population Test Criteria
Where clause goes here
1
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 28
HadHGBGT7BeforeTransfusionINNER JOIN [SCA_Acutecare].[dbo].[SCAResult] As SCAResult
on SCAResult.[VisitID] = ScaVisit.[VisitID]
AND SCAResult.resultdtm < SCAOrder.RequestedDtm
AND SCAResult.[IsActive] = 1
AND DATEDIFF(dd,SCAResult.resultdtm,SCAOrder.RequestedDtm) BETWEEN 0 AND 1
INNER JOIN [SCA_Acutecare].[dbo].[SCAResultCatalogDim] SCAResultCatalogDim
ON SCAResultCatalogDim.[ResultCatalogDimID] = SCAResult.[ResultCatalogDimID]
AND SCAResultCatalogDim.ResultCatalogName IN (SELECT * FROM dbo.SANReplacementStringTableFn('Hemoglobin Result Items'))
AND SCAResult.NumericValue > 7
1
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 29
HadHGBGT7BeforeTransfusion2
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 30
SELECT DISTINCT SCAVisit.[VisitID] AS 'Visit ID',SCAVisit.[ClientVisitGUID] AS 'SCM Visit ID', SCAPatientDim.[MRN] AS 'MRN', SCAVisit.[AdmitDtm] AS 'Admit Date',SCALocationDim.[LocationName] AS 'Location', SCAVisit.[SrcUpdtDtm] AS 'Touched When', SCAServiceDim.[Service] AS 'Service',SCAProviderDim.[ProviderDisplayName] AS 'Attending Provider', SCAPatientDim.[PatientName] AS 'Patient Name',SCAPatientDim.[BirthDtm] AS 'Birth Date', SCAVisitTypeDim.[VisitType] AS 'Visit Type', SCAVisitStatusDim.[VisitStatus] AS 'Visit Status',SCADemographicDim.[Gender] AS 'Gender',SCAVisit.EncounterNumber as 'Encounter Number',SCAVisit.LOSDays as 'LOS', SCAAdmitReasonDim.AdmitReason as 'Admit Reason'
FROM [SCA_Acutecare].[dbo].[SCAVisit] AS SCAVisitINNER JOIN [SCA_Acutecare].[dbo].[SCAPatientDim] AS SCAPatientDim ON SCAPatientDim.PatientDimID = SCAVisit.PatientDimIDINNER JOIN [SCA_Acutecare].[dbo].[SCADemographicDim] AS SCADemographicDim ON SCAVisit.[DemographicDimID] = SCADemographicDim.[DemographicDimID]INNER JOIN [SCA_Acutecare].[dbo].[SCAProviderDim] AS SCAProviderDim ON SCAVisit.[ProviderDimID] = SCAProviderDim.[ProviderDimID]INNER JOIN [SCA_Acutecare].[dbo].[SCAVisitStatusDim] AS SCAVisitStatusDim ON SCAVisit.[VisitStatusDimID] = SCAVisitStatusDim.[VisitStatusDimID]INNER JOIN [SCA_Acutecare].[dbo].[SCAVisitTypeDim] AS SCAVisitTypeDim ON SCAVisit.[VisitTypeDimID] = SCAVisitTypeDim.[VisitTypeDimID]INNER JOIN [SCA_Acutecare].[dbo].[SCALocationDim] AS SCALocationDim ON SCAVisit.[DischargeLocationDimID] = SCALocationDim.[LocationDimID]INNER JOIN [SCA_Acutecare].[dbo].[SCAServiceDim] AS SCAServiceDim ON SCAVisit.[ServiceDimID] = SCAServiceDim.[ServiceDimID] INNER JOIN [SCA_Acutecare].[dbo].[SCAAdmitReasonDim] AS SCAAdmitReasonDim ON SCAVisit.[AdmitReasonDimID] = SCAAdmitReasonDim.[AdmitReasonDimID]
INNER JOIN [SCA_Acutecare].[dbo].[SCAQualityMeasure] AS SCAQualityMeasure ON SCAVisit.VisitID = SCAQualityMeasure.VisitID
INNER JOIN [SCA_Acutecare].[dbo].[SCAPopulation] SCAPopulationON SCAPopulation.VisitID = SCAVisit.VisitID AND SCAPopulation.PopulationSetID = 26
HadHGBGT7BeforeTransfusionSelect (Set of Columns)
FROM (General Visit Related Tables)
Search type related tables
Population Test Criteria
Where clause SQL
2
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 31
HadHGBGT7BeforeTransfusionINNER JOIN ( SELECT DISTINCT v.VisitID, o.RequestedDtm, MAX(r.ResultDtm) AS Resdtm FROM [SCA_Acutecare].[dbo].SCAVisit vINNER JOIN [SCA_Acutecare].[dbo].SCAOrder o on o.VisitID = v.VisitIDINNER JOIN [SCA_Acutecare].[dbo].SCAOrderCatalogDim ocd on ocd.OrderCatalogDimID = o.OrderCatalogDimID AND ocd.OrderItemName in (SELECT * from dbo.SANReplacementStringTableFn('PRBC Orders'))INNER JOIN [SCA_Acutecare].[dbo].[SCAResult] As r ON r.[VisitID] = v.[VisitID] AND r.resultdtm < o.RequestedDtm AND r.[IsActive] = 1 INNER JOIN [SCA_Acutecare].[dbo].[SCAResultCatalogDim] rcd ON rcd.[ResultCatalogDimID] = r.[ResultCatalogDimID] AND rcd.ResultCatalogName IN (SELECT * FROM dbo.SANReplacementStringTableFn('Hemoglobin Result Items' )) GROUP BY v.VisitID, o.RequestedDtm ) AS Res ON Res.VisitID = ScaVisit.VisitIDINNER JOIN [SCA_Acutecare].[dbo].[SCAResult] As r2 ON r2.[VisitID] = ScaVisit.[VisitID] AND r2.ResultDtm = res.Resdtm AND r2.NumericValue > 7INNER JOIN [SCA_Acutecare].[dbo].[SCAResultCatalogDim] rcd2 ON rcd2.[ResultCatalogDimID] = r2.[ResultCatalogDimID] AND rcd2.ResultCatalogName IN (SELECT * FROM dbo.SANReplacementStringTableFn('Hemoglobin Result Items'))
2
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 32
Reporting with Model• What is Report Model?
– SCA / CPM Product Philosophy– What do Report writer need to know
• Model Power Vs. Restrictions– Model Architecture– Model Designer
• Out of Box Models– SA Clinical– SA Patient Profiler
Visit
Pop Set
Observations
Orders
Results
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 33
Transfusions with Hemoglobin over 7
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 34
Sub Reporting• Create Two reports separately
• Put multiple reports on one report
• What you need to know?
• How those different report will relate?
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 35
Create Population Set
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 36
Transfusions with Hemoglobin over 7
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 37
Transfusions with Hemoglobin over 7
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 38
Transfusions with Hemoglobin over 7
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 39
How to create Sub Report
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 40
Insert Sub report in Main Report
1
2
3
4
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 41
Insert Sub report in Main Report
1
2
3
4
5
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 42
Insert Sub report in Main Report
1
2
3
4
5
6
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 43
Insert Sub report in Main Report
1
2
3
4
5
6
7
8
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 44
Insert Sub report in Main Report
9 10
11 12
13
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 45
Transfusions with Hemoglobin over 7
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 46
Re-admission report
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 47
Readmission Report
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 48
Is7DayReadmissionVisit• Currently readmitted inpatients within 7 days of Discharge
• Definition of inpatient: Patient anytime in inpatient beds – that includes ED and Observation patients in inpatient beds.
• Create an Indicator to flag the visits– What Search type works best in this situation: Visit– Need to define inpatients– Need to find set of previous visits in last 7 days
• Create Population set using this indicator
• Write Report– Use Population set– put previous visits for these patients
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 49
Is7DayReadmissionVisit
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 50
SELECT DISTINCT SCAVisit.[VisitID] AS 'Visit ID',SCAVisit.[ClientVisitGUID] AS 'SCM Visit ID', SCAPatientDim.[MRN] AS 'MRN', SCAVisit.[AdmitDtm] AS 'Admit Date',SCALocationDim.[LocationName] AS 'Location', SCAVisit.[SrcUpdtDtm] AS 'Touched When', SCAServiceDim.[Service] AS 'Service',SCAProviderDim.[ProviderDisplayName] AS 'Attending Provider', SCAPatientDim.[PatientName] AS 'Patient Name',SCAPatientDim.[BirthDtm] AS 'Birth Date', SCAVisitTypeDim.[VisitType] AS 'Visit Type', SCAVisitStatusDim.[VisitStatus] AS 'Visit Status',SCADemographicDim.[Gender] AS 'Gender',SCAVisit.EncounterNumber as 'Encounter Number',SCAVisit.LOSDays as 'LOS', SCAAdmitReasonDim.AdmitReason as 'Admit Reason'
FROM [SCA_Acutecare].[dbo].[SCAVisit] AS SCAVisitINNER JOIN [SCA_Acutecare].[dbo].[SCAPatientDim] AS SCAPatientDim ON SCAPatientDim.PatientDimID = SCAVisit.PatientDimIDINNER JOIN [SCA_Acutecare].[dbo].[SCADemographicDim] AS SCADemographicDim ON SCAVisit.[DemographicDimID] = SCADemographicDim.[DemographicDimID]INNER JOIN [SCA_Acutecare].[dbo].[SCAProviderDim] AS SCAProviderDim ON SCAVisit.[ProviderDimID] = SCAProviderDim.[ProviderDimID]INNER JOIN [SCA_Acutecare].[dbo].[SCAVisitStatusDim] AS SCAVisitStatusDim ON SCAVisit.[VisitStatusDimID] = SCAVisitStatusDim.[VisitStatusDimID]INNER JOIN [SCA_Acutecare].[dbo].[SCAVisitTypeDim] AS SCAVisitTypeDim ON SCAVisit.[VisitTypeDimID] = SCAVisitTypeDim.[VisitTypeDimID]INNER JOIN [SCA_Acutecare].[dbo].[SCALocationDim] AS SCALocationDim ON SCAVisit.[DischargeLocationDimID] = SCALocationDim.[LocationDimID]INNER JOIN [SCA_Acutecare].[dbo].[SCAServiceDim] AS SCAServiceDim ON SCAVisit.[ServiceDimID] = SCAServiceDim.[ServiceDimID] INNER JOIN [SCA_Acutecare].[dbo].[SCAAdmitReasonDim] AS SCAAdmitReasonDim ON SCAVisit.[AdmitReasonDimID] = SCAAdmitReasonDim.[AdmitReasonDimID]
INNER JOIN [SCA_Acutecare].[dbo].[SCAQualityMeasure] AS SCAQualityMeasure ON SCAVisit.VisitID = SCAQualityMeasure.VisitID
INNER JOIN [SCA_Acutecare].[dbo].[SCAPopulation] SCAPopulationON SCAPopulation.VisitID = SCAVisit.VisitID AND SCAPopulation.PopulationSetID = 26
Is7DayReadmissionVisitSelect (Set of Columns)
FROM (General Visit Related Tables)
Search type related tables
Population Test Criteria
Where clause SQL
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 51
Is7DayReadmissionVisitINNER JOIN [SCA_Acutecare].[dbo].[SCAVisitLocation] VLC on SCAVisit.VisitID = VLC.VisitID
INNER JOIN [SCA_Acutecare].[dbo].[SCALocationDim] LDC on VLC.LocationDimID = LDC.LocationDimID
AND LDC.LocationName IN (SELECT * FROM dbo.SANReplacementStringTableFn('Inpatient Beds'))
INNER JOIN
(
SELECT DISTINCT V.PatientDimID, V.VisitID, V.DischargeDtm
FROM [SCA_Acutecare].[dbo].[SCAVisit] AS V
INNER JOIN [SCA_Acutecare].[dbo].[SCAVisitLocation] VL on V.VisitID = VL.VisitID
INNER JOIN [SCA_Acutecare].[dbo].[SCALocationDim] LD on VL.LocationDimID = LD.LocationDimID
AND LD.LocationName IN (SELECT * FROM dbo.SANReplacementStringTableFn('Inpatient Beds'))
) PrevVisit ON PrevVisit.PatientDimID = SCAVisit.PatientDimID
AND DATEDIFF(dd,PrevVisit.DischargeDtm,ScaVisit.AdmitDtm) BETWEEN 0 AND 6
AND SCAVisit.VisitID <> PrevVisit.VisitID
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 52
Readmission Report
Current In-house PatientPrevious Visits
1
2
1
2
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 53
Create Population set
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 54
Sub Report (Previous Visits)
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 55
Sub Report (Previous Visits)
1
2
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 56
Sub Report (Previous Visits)
21
3 4
2
1 3
4
5
Show visits in reverse chronological orderLatest Visit first
Do not show Current Visit
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 57
Main Report (Shows currently readmit Visits)
Add Row inside Group for sub-report
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 58
Main Report (Shows currently readmit Visits)
1
2
Make space for multi column sub-report using merge button
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 59
Main Report (Shows currently readmit Visits)
Pass [Patient_MRN] and [Visit_ID] as parameter to sub-report
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 60
Readmission Report
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 61
Indicators from an external data source
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 62
Indicators from External data source• We have created a list of Visits from our billing system for
women who had a C-section and we want to get the gestational age from SCA (Allscripts). Can this be done?
• Yes
• How?
• Creating an Indicator from external data source.
• What do I need?
• Ability to Export list of visit with SCM visit number periodically / continuous from an external system. SCA V11 or CPM V12
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 63
Create an
Indicator
Indicators from External data source
Build the
Indicator
Load Data From
External System
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 64
Creating an Indicator from an external data
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 65
Load Data From External System
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 66
Load Data From External System
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 67
Build the Indicator
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 68
Build Score Card Style report with Enterprise defined indicators
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 69
Fall Risk Card
• Create Population set
• Create Indicators– HadFallRiskAssessed– IsAtFallrisk– HadFallEvent
Question: How to create this report?
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 70
Indicators: Storage• Indicators are represented in the SCA database also as rows
in SCAVisitIndicator table. Each qualified visit gets added as a row in this table
• All use defined indicators only got stored in SCAVisitIndicator table.
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 71
Challenge• Enterprise Defined Indicators are stored as rows in a table
• Only Visits with value 1 is added to the table
• Report need it as a column
• SCA Report model does not support these indicators as columns
Solution• Create Pivot view for enterprise defined indicators
• Non-model based reporting
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 72
Create Pivot View of all indicators• Compile this procedure against SCA_Metadata
• Execute this procedure
• Creates SCAPivotClinicalIndicatorVW
SCAPivotClinicalIndicatorPr.sql
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 73
New Report > Table or Matrix Wizard
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 74
Choose a Data set
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 75
Choose a connection
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 76
Report Data source
Default Path: http://<ReportServer>/SCA/DataSources
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 77
Choose a connection
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 78
Design a query
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 79
Design a query
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 80
Non-model based reportingSELECT p.PatientName, p.MRN,v.EncounterNumber, a.AgeYear,d.Gender
FROM [SCA_AcuteCare].[dbo].RMPopulationVW pop
INNER JOIN [SCA_AcuteCare].[dbo].SCAVisit v ON pop.VisitID = v.VisitID
INNER JOIN [SCA_Metadata].[dbo]. SCAPivotClinicalIndicatorVW ci ON ci.VisitID = V.VisitID
INNER JOIN [SCA_AcuteCare].[dbo].SCAPatientDim p ON p.PatientDimID = v.PatientDimID
INNER JOIN [SCA_AcuteCare].[dbo].SCADemographicDim d ON d.DemographicDimID = v.DemographicDimID
INNER JOIN [SCA_AcuteCare].[dbo].SCAAgeDim a ON a.AgeDimID = v.AgeDimID
INNER Join [SCA_AcuteCare].[dbo].SCAQualityMeasure q on q.VisitID = v.VisitID
WHERE pop.PopulationSet = @PopulationSet
Change the query as needed for your report need. Add or remove some tables. And finish creating report.
Copyright © 2013 Allscripts Healthcare Solutions, Inc. 81
Questions