81
1 Copyright © 2013 Allscripts Healthcare Solutions, Inc. Super Analytics Power of Indicators and more… 8/28/2013 Sunrise Clinical Analytics (SCA) Clinical Performance Management(CPM)

Kintu Shah+ACE13

Embed Size (px)

Citation preview

Page 1: Kintu Shah+ACE13

1Copyright © 2013 Allscripts Healthcare Solutions, Inc.

Super Analytics Power of Indicators and more…

8/28/2013

Sunrise Clinical Analytics (SCA) Clinical Performance Management(CPM)

Page 2: Kintu Shah+ACE13

2Copyright © 2013 Allscripts Healthcare Solutions, Inc.

Kintu Shah, Solutions Architect

Presenter

Page 3: Kintu Shah+ACE13

Copyright © 2013 Allscripts Healthcare Solutions, Inc. 33

Introductions & Background•Kintu Shah

•Solutions Architect, Allscripts

Page 4: Kintu Shah+ACE13

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

Page 5: Kintu Shah+ACE13

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

Page 6: Kintu Shah+ACE13

Copyright © 2013 Allscripts Healthcare Solutions, Inc. 6

It is not just ARRA

Page 7: Kintu Shah+ACE13

Copyright © 2013 Allscripts Healthcare Solutions, Inc. 7

Population sets & Indicators

Page 8: Kintu Shah+ACE13

Copyright © 2013 Allscripts Healthcare Solutions, Inc. 8

Population sets & Indicators

Page 9: Kintu Shah+ACE13

Copyright © 2013 Allscripts Healthcare Solutions, Inc. 9

Enterprise Defined Indicators

Page 10: Kintu Shah+ACE13

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

Page 11: Kintu Shah+ACE13

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.

Page 12: Kintu Shah+ACE13

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

Page 13: Kintu Shah+ACE13

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)

Page 14: Kintu Shah+ACE13

Copyright © 2013 Allscripts Healthcare Solutions, Inc. 14

Data Model

Page 15: Kintu Shah+ACE13

Copyright © 2013 Allscripts Healthcare Solutions, Inc. 15

Data Model

Page 16: Kintu Shah+ACE13

Copyright © 2013 Allscripts Healthcare Solutions, Inc. 16

Transfusions with Hemoglobin over 7

Page 17: Kintu Shah+ACE13

Copyright © 2013 Allscripts Healthcare Solutions, Inc. 17

Transfusions with Hemoglobin over 7

Page 18: Kintu Shah+ACE13

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

Page 19: Kintu Shah+ACE13

Copyright © 2013 Allscripts Healthcare Solutions, Inc. 19

HadHGBGT7BeforeTransfusion1

Page 20: Kintu Shah+ACE13

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

Page 21: Kintu Shah+ACE13

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

Page 22: Kintu Shah+ACE13

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

Page 23: Kintu Shah+ACE13

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

Page 24: Kintu Shah+ACE13

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

Page 25: Kintu Shah+ACE13

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”

Page 26: Kintu Shah+ACE13

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!!!

Page 27: Kintu Shah+ACE13

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

Page 28: Kintu Shah+ACE13

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

Page 29: Kintu Shah+ACE13

Copyright © 2013 Allscripts Healthcare Solutions, Inc. 29

HadHGBGT7BeforeTransfusion2

Page 30: Kintu Shah+ACE13

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

Page 31: Kintu Shah+ACE13

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

Page 32: Kintu Shah+ACE13

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

Page 33: Kintu Shah+ACE13

Copyright © 2013 Allscripts Healthcare Solutions, Inc. 33

Transfusions with Hemoglobin over 7

Page 34: Kintu Shah+ACE13

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?

Page 35: Kintu Shah+ACE13

Copyright © 2013 Allscripts Healthcare Solutions, Inc. 35

Create Population Set

Page 36: Kintu Shah+ACE13

Copyright © 2013 Allscripts Healthcare Solutions, Inc. 36

Transfusions with Hemoglobin over 7

Page 37: Kintu Shah+ACE13

Copyright © 2013 Allscripts Healthcare Solutions, Inc. 37

Transfusions with Hemoglobin over 7

Page 38: Kintu Shah+ACE13

Copyright © 2013 Allscripts Healthcare Solutions, Inc. 38

Transfusions with Hemoglobin over 7

Page 39: Kintu Shah+ACE13

Copyright © 2013 Allscripts Healthcare Solutions, Inc. 39

How to create Sub Report

Page 40: Kintu Shah+ACE13

Copyright © 2013 Allscripts Healthcare Solutions, Inc. 40

Insert Sub report in Main Report

1

2

3

4

Page 41: Kintu Shah+ACE13

Copyright © 2013 Allscripts Healthcare Solutions, Inc. 41

Insert Sub report in Main Report

1

2

3

4

5

Page 42: Kintu Shah+ACE13

Copyright © 2013 Allscripts Healthcare Solutions, Inc. 42

Insert Sub report in Main Report

1

2

3

4

5

6

Page 43: Kintu Shah+ACE13

Copyright © 2013 Allscripts Healthcare Solutions, Inc. 43

Insert Sub report in Main Report

1

2

3

4

5

6

7

8

Page 44: Kintu Shah+ACE13

Copyright © 2013 Allscripts Healthcare Solutions, Inc. 44

Insert Sub report in Main Report

9 10

11 12

13

Page 45: Kintu Shah+ACE13

Copyright © 2013 Allscripts Healthcare Solutions, Inc. 45

Transfusions with Hemoglobin over 7

Page 46: Kintu Shah+ACE13

Copyright © 2013 Allscripts Healthcare Solutions, Inc. 46

Re-admission report

Page 47: Kintu Shah+ACE13

Copyright © 2013 Allscripts Healthcare Solutions, Inc. 47

Readmission Report

Page 48: Kintu Shah+ACE13

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

Page 49: Kintu Shah+ACE13

Copyright © 2013 Allscripts Healthcare Solutions, Inc. 49

Is7DayReadmissionVisit

Page 50: Kintu Shah+ACE13

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

Page 51: Kintu Shah+ACE13

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

Page 52: Kintu Shah+ACE13

Copyright © 2013 Allscripts Healthcare Solutions, Inc. 52

Readmission Report

Current In-house PatientPrevious Visits

1

2

1

2

Page 53: Kintu Shah+ACE13

Copyright © 2013 Allscripts Healthcare Solutions, Inc. 53

Create Population set

Page 54: Kintu Shah+ACE13

Copyright © 2013 Allscripts Healthcare Solutions, Inc. 54

Sub Report (Previous Visits)

Page 55: Kintu Shah+ACE13

Copyright © 2013 Allscripts Healthcare Solutions, Inc. 55

Sub Report (Previous Visits)

1

2

Page 56: Kintu Shah+ACE13

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

Page 57: Kintu Shah+ACE13

Copyright © 2013 Allscripts Healthcare Solutions, Inc. 57

Main Report (Shows currently readmit Visits)

Add Row inside Group for sub-report

Page 58: Kintu Shah+ACE13

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

Page 59: Kintu Shah+ACE13

Copyright © 2013 Allscripts Healthcare Solutions, Inc. 59

Main Report (Shows currently readmit Visits)

Pass [Patient_MRN] and [Visit_ID] as parameter to sub-report

Page 60: Kintu Shah+ACE13

Copyright © 2013 Allscripts Healthcare Solutions, Inc. 60

Readmission Report

Page 61: Kintu Shah+ACE13

Copyright © 2013 Allscripts Healthcare Solutions, Inc. 61

Indicators from an external data source

Page 62: Kintu Shah+ACE13

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

Page 63: Kintu Shah+ACE13

Copyright © 2013 Allscripts Healthcare Solutions, Inc. 63

Create an

Indicator

Indicators from External data source

Build the

Indicator

Load Data From

External System

Page 64: Kintu Shah+ACE13

Copyright © 2013 Allscripts Healthcare Solutions, Inc. 64

Creating an Indicator from an external data

Page 65: Kintu Shah+ACE13

Copyright © 2013 Allscripts Healthcare Solutions, Inc. 65

Load Data From External System

Page 66: Kintu Shah+ACE13

Copyright © 2013 Allscripts Healthcare Solutions, Inc. 66

Load Data From External System

Page 67: Kintu Shah+ACE13

Copyright © 2013 Allscripts Healthcare Solutions, Inc. 67

Build the Indicator

Page 68: Kintu Shah+ACE13

Copyright © 2013 Allscripts Healthcare Solutions, Inc. 68

Build Score Card Style report with Enterprise defined indicators

Page 69: Kintu Shah+ACE13

Copyright © 2013 Allscripts Healthcare Solutions, Inc. 69

Fall Risk Card

• Create Population set

• Create Indicators– HadFallRiskAssessed– IsAtFallrisk– HadFallEvent

Question: How to create this report?

Page 70: Kintu Shah+ACE13

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.

Page 71: Kintu Shah+ACE13

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

Page 72: Kintu Shah+ACE13

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

Page 73: Kintu Shah+ACE13

Copyright © 2013 Allscripts Healthcare Solutions, Inc. 73

New Report > Table or Matrix Wizard

Page 74: Kintu Shah+ACE13

Copyright © 2013 Allscripts Healthcare Solutions, Inc. 74

Choose a Data set

Page 75: Kintu Shah+ACE13

Copyright © 2013 Allscripts Healthcare Solutions, Inc. 75

Choose a connection

Page 76: Kintu Shah+ACE13

Copyright © 2013 Allscripts Healthcare Solutions, Inc. 76

Report Data source

Default Path: http://<ReportServer>/SCA/DataSources

Page 77: Kintu Shah+ACE13

Copyright © 2013 Allscripts Healthcare Solutions, Inc. 77

Choose a connection

Page 78: Kintu Shah+ACE13

Copyright © 2013 Allscripts Healthcare Solutions, Inc. 78

Design a query

Page 79: Kintu Shah+ACE13

Copyright © 2013 Allscripts Healthcare Solutions, Inc. 79

Design a query

Page 80: Kintu Shah+ACE13

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.

Page 81: Kintu Shah+ACE13

Copyright © 2013 Allscripts Healthcare Solutions, Inc. 81

Questions