More Related Content Similar to SCA CPM Advanced Configuration Similar to SCA CPM Advanced Configuration (20) SCA CPM Advanced Configuration1. 1Copyright © 2013 Allscripts Healthcare Solutions, Inc.
Super Analytics
Power of Indicators and
more…
8/28/2013
Sunrise Clinical Analytics (SCA) Clinical Performance
Management(CPM)
2. 2Copyright © 2013 Allscripts Healthcare Solutions, Inc.
Kintu Shah, Solutions
Architect
Presenter
3. Copyright © 2013 Allscripts Healthcare Solutions, Inc. 3
3
Introductions & Background
•Kintu Shah
•Solutions Architect, Allscripts
4. Copyright © 2013 Allscripts Healthcare Solutions, Inc. 4
4
Learning Objectives
1. Gain Advance configuration knowledge of SCA / CPM
2. Learn Tips and Tricks for SCA / CPM configuration
3. Utilize SCA / CPM beyond ARRA
5. 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
7. Copyright © 2013 Allscripts Healthcare Solutions, Inc. 7
Population sets & Indicators
8. Copyright © 2013 Allscripts Healthcare Solutions, Inc. 8
Population sets & Indicators
9. Copyright © 2013 Allscripts Healthcare Solutions, Inc. 9
Enterprise Defined Indicators
10. 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
11. 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.
12. 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
13. 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)
16. Copyright © 2013 Allscripts Healthcare Solutions, Inc. 16
Transfusions with Hemoglobin over 7
17. Copyright © 2013 Allscripts Healthcare Solutions, Inc. 17
Transfusions with Hemoglobin over 7
18. 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 Requirement
1. Visits with Transfusion Orders
2. Visits with Transfusion Orders and HGB Results
3. 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
19. Copyright © 2013 Allscripts Healthcare Solutions, Inc. 19
HadHGBGT7BeforeTransfusion1
20. 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
21. 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 SCAVisit
INNER JOIN [SCA_Acutecare].[dbo].[SCAPatientDim] AS SCAPatientDim ON SCAPatientDim.PatientDimID = SCAVisit.PatientDimID
INNER 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.OrderTypeDimID
INNER JOIN [SCA_Acutecare].[dbo].[SCAOrderCatalogDim] AS SCAOrderCatalogDim ON SCAOrder.OrderCatalogDimID = SCAOrderCatalogDim.OrderCatalogDimID
INNER JOIN [SCA_Acutecare].[dbo].[SCAOrderStatusDim] SCAOrderStatusDim ON SCAOrder.OrderStatusDimID = SCAOrderStatusDim.OrderStatusDimID
INNER 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] SCAPopulation
ON SCAPopulation.VisitID = SCAVisit.VisitID AND SCAPopulation.PopulationsetID = 158
HadHGBGT7BeforeTransfusion1
22. 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 SCAVisit
INNER JOIN [SCA_Acutecare].[dbo].[SCAPatientDim] AS SCAPatientDim ON SCAPatientDim.PatientDimID = SCAVisit.PatientDimID
INNER 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.OrderTypeDimID
INNER JOIN [SCA_Acutecare].[dbo].[SCAOrderCatalogDim] AS SCAOrderCatalogDim ON SCAOrder.OrderCatalogDimID = SCAOrderCatalogDim.OrderCatalogDimID
INNER JOIN [SCA_Acutecare].[dbo].[SCAOrderStatusDim] SCAOrderStatusDim ON SCAOrder.OrderStatusDimID = SCAOrderStatusDim.OrderStatusDimID
INNER 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] SCAPopulation
ON SCAPopulation.VisitID = SCAVisit.VisitID AND SCAPopulation.PopulationsetID = 158
HadHGBGT7BeforeTransfusion1
Select (Set of Columns)
Bunch of Columns – not important for Where
Clause writing
23. 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 SCAVisit
INNER JOIN [SCA_Acutecare].[dbo].[SCAPatientDim] AS SCAPatientDim ON SCAPatientDim.PatientDimID = SCAVisit.PatientDimID
INNER 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.OrderTypeDimID
INNER JOIN [SCA_Acutecare].[dbo].[SCAOrderCatalogDim] AS SCAOrderCatalogDim ON SCAOrder.OrderCatalogDimID = SCAOrderCatalogDim.OrderCatalogDimID
INNER JOIN [SCA_Acutecare].[dbo].[SCAOrderStatusDim] SCAOrderStatusDim ON SCAOrder.OrderStatusDimID = SCAOrderStatusDim.OrderStatusDimID
INNER 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] SCAPopulation
ON SCAPopulation.VisitID = SCAVisit.VisitID AND SCAPopulation.PopulationSetID = 158
HadHGBGT7BeforeTransfusion
Select (Set of
Columns)
1
FROM (General Visit Related Tables)
SCAVisit SCAPatientDim
SCADemographicDim SCAProviderDim
SCAVisitStatus SCAVisitLocation
SCAServicedim SCAAdmitReasonDim
24. 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 SCAVisit
INNER JOIN [SCA_Acutecare].[dbo].[SCAPatientDim] AS SCAPatientDim ON SCAPatientDim.PatientDimID = SCAVisit.PatientDimID
INNER 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.OrderTypeDimID
INNER JOIN [SCA_Acutecare].[dbo].[SCAOrderCatalogDim] AS SCAOrderCatalogDim ON SCAOrder.OrderCatalogDimID = SCAOrderCatalogDim.OrderCatalogDimID
INNER JOIN [SCA_Acutecare].[dbo].[SCAOrderStatusDim] SCAOrderStatusDim ON SCAOrder.OrderStatusDimID = SCAOrderStatusDim.OrderStatusDimID
INNER 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] SCAPopulation
ON SCAPopulation.VisitID = SCAVisit.VisitID AND SCAPopulation.PopulationSetID = 158
HadHGBGT7BeforeTransfusion
Select (Set of
Columns)
FROM (General Visit
Related Tables)
Search type related
tables
1
Search type related tables
SCAOrder Orders
SCAOrderTypeDim Order Types
SCAOrderCatalogDim Order Catalog
SCAOrderStatusDim Order Status
SCADateDim Order Create Date
25. 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 SCAVisit
INNER JOIN [SCA_Acutecare].[dbo].[SCAPatientDim] AS SCAPatientDim ON SCAPatientDim.PatientDimID = SCAVisit.PatientDimID
INNER 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.OrderTypeDimID
INNER JOIN [SCA_Acutecare].[dbo].[SCAOrderCatalogDim] AS SCAOrderCatalogDim ON SCAOrder.OrderCatalogDimID = SCAOrderCatalogDim.OrderCatalogDimID
INNER JOIN [SCA_Acutecare].[dbo].[SCAOrderStatusDim] SCAOrderStatusDim ON SCAOrder.OrderStatusDimID = SCAOrderStatusDim.OrderStatusDimID
INNER 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] SCAPopulation
ON SCAPopulation.VisitID = SCAVisit.VisitID AND SCAPopulation.PopulationSetID = 158
HadHGBGT7BeforeTransfusion
Select (Set of
Columns)
FROM (General Visit
Related Tables)
Search type related
tables
1
Rule Criteria
AND Order Item Name IN Reference set “PRBC Orders”
AND Order Status IN Reference set “Completed Order Statuses”
26. 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 SCAVisit
INNER JOIN [SCA_Acutecare].[dbo].[SCAPatientDim] AS SCAPatientDim ON SCAPatientDim.PatientDimID = SCAVisit.PatientDimID
INNER 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.OrderTypeDimID
INNER JOIN [SCA_Acutecare].[dbo].[SCAOrderCatalogDim] AS SCAOrderCatalogDim ON SCAOrder.OrderCatalogDimID = SCAOrderCatalogDim.OrderCatalogDimID
INNER JOIN [SCA_Acutecare].[dbo].[SCAOrderStatusDim] SCAOrderStatusDim ON SCAOrder.OrderStatusDimID = SCAOrderStatusDim.OrderStatusDimID
INNER 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] SCAPopulation
ON SCAPopulation.VisitID = SCAVisit.VisitID AND SCAPopulation.PopulationSetID = 158
HadHGBGT7BeforeTransfusion
Select (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!!!
27. 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 SCAVisit
INNER JOIN [SCA_Acutecare].[dbo].[SCAPatientDim] AS SCAPatientDim ON SCAPatientDim.PatientDimID = SCAVisit.PatientDimID
INNER 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.OrderTypeDimID
INNER JOIN [SCA_Acutecare].[dbo].[SCAOrderCatalogDim] AS SCAOrderCatalogDim ON SCAOrder.OrderCatalogDimID = SCAOrderCatalogDim.OrderCatalogDimID
INNER JOIN [SCA_Acutecare].[dbo].[SCAOrderStatusDim] SCAOrderStatusDim ON SCAOrder.OrderStatusDimID = SCAOrderStatusDim.OrderStatusDimID
INNER 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] SCAPopulation
ON SCAPopulation.VisitID = SCAVisit.VisitID AND SCAPopulation.PopulationSetID = 158
HadHGBGT7BeforeTransfusion
Select (Set of
Columns)
FROM (General Visit
Related Tables)
Search type related
tables
Rule Criteria
Population Test
Criteria
Where clause goes here
1
28. Copyright © 2013 Allscripts Healthcare Solutions, Inc. 28
HadHGBGT7BeforeTransfusion
INNER 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
29. Copyright © 2013 Allscripts Healthcare Solutions, Inc. 29
HadHGBGT7BeforeTransfusion2
30. 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 SCAVisit
INNER JOIN [SCA_Acutecare].[dbo].[SCAPatientDim] AS SCAPatientDim ON SCAPatientDim.PatientDimID = SCAVisit.PatientDimID
INNER 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] SCAPopulation
ON SCAPopulation.VisitID = SCAVisit.VisitID AND SCAPopulation.PopulationSetID = 26
HadHGBGT7BeforeTransfusion
Select (Set of
Columns)
FROM (General Visit
Related Tables)
Search type related
tables
Population Test
Criteria
Where clause
SQL
2
31. Copyright © 2013 Allscripts Healthcare Solutions, Inc. 31
HadHGBGT7BeforeTransfusion
INNER JOIN (
SELECT DISTINCT v.VisitID, o.RequestedDtm, MAX(r.ResultDtm) AS Resdtm
FROM [SCA_Acutecare].[dbo].SCAVisit v
INNER JOIN [SCA_Acutecare].[dbo].SCAOrder o on o.VisitID = v.VisitID
INNER 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.VisitID
INNER JOIN [SCA_Acutecare].[dbo].[SCAResult] As r2
ON r2.[VisitID] = ScaVisit.[VisitID]
AND r2.ResultDtm = res.Resdtm
AND r2.NumericValue > 7
INNER JOIN [SCA_Acutecare].[dbo].[SCAResultCatalogDim] rcd2
ON rcd2.[ResultCatalogDimID] = r2.[ResultCatalogDimID]
AND rcd2.ResultCatalogName IN (SELECT * FROM dbo.SANReplacementStringTableFn('Hemoglobin
Result Items'))
2
32. 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
33. Copyright © 2013 Allscripts Healthcare Solutions, Inc. 33
Transfusions with Hemoglobin over 7
34. 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?
35. Copyright © 2013 Allscripts Healthcare Solutions, Inc. 35
Create Population Set
36. Copyright © 2013 Allscripts Healthcare Solutions, Inc. 36
Transfusions with Hemoglobin over 7
37. Copyright © 2013 Allscripts Healthcare Solutions, Inc. 37
Transfusions with Hemoglobin over 7
38. Copyright © 2013 Allscripts Healthcare Solutions, Inc. 38
Transfusions with Hemoglobin over 7
39. Copyright © 2013 Allscripts Healthcare Solutions, Inc. 39
How to create Sub Report
40. Copyright © 2013 Allscripts Healthcare Solutions, Inc. 40
Insert Sub report in Main Report
1
2
3
4
41. Copyright © 2013 Allscripts Healthcare Solutions, Inc. 41
Insert Sub report in Main Report
1
2
3
4
5
42. Copyright © 2013 Allscripts Healthcare Solutions, Inc. 42
Insert Sub report in Main Report
1
2
3
4
5
6
43. Copyright © 2013 Allscripts Healthcare Solutions, Inc. 43
Insert Sub report in Main Report
1
2
3
4
5
6
7
8
44. Copyright © 2013 Allscripts Healthcare Solutions, Inc. 44
Insert Sub report in Main Report
9 10
11 12
13
45. Copyright © 2013 Allscripts Healthcare Solutions, Inc. 45
Transfusions with Hemoglobin over 7
46. Copyright © 2013 Allscripts Healthcare Solutions, Inc. 46
Re-admission report
47. Copyright © 2013 Allscripts Healthcare Solutions, Inc. 47
Readmission Report
48. 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
49. Copyright © 2013 Allscripts Healthcare Solutions, Inc. 49
Is7DayReadmissionVisit
50. 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 SCAVisit
INNER JOIN [SCA_Acutecare].[dbo].[SCAPatientDim] AS SCAPatientDim ON SCAPatientDim.PatientDimID = SCAVisit.PatientDimID
INNER 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] SCAPopulation
ON SCAPopulation.VisitID = SCAVisit.VisitID AND SCAPopulation.PopulationSetID = 26
Is7DayReadmissionVisit
Select (Set of
Columns)
FROM (General Visit
Related Tables)
Search type related
tables
Population Test
Criteria
Where clause
SQL
51. Copyright © 2013 Allscripts Healthcare Solutions, Inc. 51
Is7DayReadmissionVisit
INNER 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
52. Copyright © 2013 Allscripts Healthcare Solutions, Inc. 52
Readmission Report
Current In-house Patient
Previous Visits
1
2
1
2
53. Copyright © 2013 Allscripts Healthcare Solutions, Inc. 53
Create Population set
54. Copyright © 2013 Allscripts Healthcare Solutions, Inc. 54
Sub Report (Previous Visits)
55. Copyright © 2013 Allscripts Healthcare Solutions, Inc. 55
Sub Report (Previous Visits)
1
2
56. Copyright © 2013 Allscripts Healthcare Solutions, Inc. 56
Sub Report (Previous Visits)
2
1
3 4
2
1 3
4
5
Show visits in reverse
chronological order
Latest Visit first
Do not show Current
Visit
57. Copyright © 2013 Allscripts Healthcare Solutions, Inc. 57
Main Report (Shows currently readmit
Visits)
Add Row inside Group for sub-report
58. 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
59. Copyright © 2013 Allscripts Healthcare Solutions, Inc. 59
Main Report (Shows currently readmit
Visits)
Pass [Patient_MRN] and [Visit_ID] as parameter to sub-report
60. Copyright © 2013 Allscripts Healthcare Solutions, Inc. 60
Readmission Report
61. Copyright © 2013 Allscripts Healthcare Solutions, Inc. 61
Indicators from an external data source
62. 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
63. Copyright © 2013 Allscripts Healthcare Solutions, Inc. 63
Create
an
Indicator
Indicators from External data source
Build the
Indicator
Load Data
From
External
System
64. Copyright © 2013 Allscripts Healthcare Solutions, Inc. 64
Creating an Indicator from an external
data
65. Copyright © 2013 Allscripts Healthcare Solutions, Inc. 65
Load Data From External System
66. Copyright © 2013 Allscripts Healthcare Solutions, Inc. 66
Load Data From External System
67. Copyright © 2013 Allscripts Healthcare Solutions, Inc. 67
Build the Indicator
68. Copyright © 2013 Allscripts Healthcare Solutions, Inc. 68
Build Score Card Style report with Enterprise
defined indicators
69. Copyright © 2013 Allscripts Healthcare Solutions, Inc. 69
Fall Risk Card
• Create Population set
• Create Indicators
– HadFallRiskAssessed
– IsAtFallrisk
– HadFallEvent
Question: How to create this report?
70. 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.
71. 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
72. Copyright © 2013 Allscripts Healthcare Solutions, Inc. 72
Create Pivot View of all indicators
• Compile this procedure against SCA_Metadata
• Execute this procedure
• Creates SCAPivotClinicalIndicatorVW
73. Copyright © 2013 Allscripts Healthcare Solutions, Inc. 73
New Report > Table or Matrix Wizard
75. Copyright © 2013 Allscripts Healthcare Solutions, Inc. 75
Choose a connection
76. Copyright © 2013 Allscripts Healthcare Solutions, Inc. 76
Report Data source
Default Path: http://<ReportServer>/SCA/DataSources
77. Copyright © 2013 Allscripts Healthcare Solutions, Inc. 77
Choose a connection
80. Copyright © 2013 Allscripts Healthcare Solutions, Inc. 80
Non-model based reporting
SELECT 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.
Editor's Notes 179 / 225 tables A subreport is a report item that displays another report inside the body of a main report. Conceptually, a subreport in a report is similar to a frame in a Web page. It is used to embed a report within a report. Any report can be used as a subreport. The report that is displayed as the subreport is stored on a report server, usually in the same folder as the parent report. You can design the parent report to pass parameters to the subreport. A subreport can be repeated within data regions, using a parameter to filter data in each instance of the subreport. Indicators can also be run/re-run manually. This creates SCAPivoteClinicalIndicatorPr
When run it creates SCAPivotClinicalIndicatorVW