Code:
SELECT m.*
FROM
(
SELECT appoAppointmentHeader.hdrID,1 AS 'singleStepResource',
appoAppointmentHeader.formatID,
appoTypeMaster.titleBgColor AS appoHeaderBgColor,
appoTypeMaster.titleTextColor AS appoHeaderFontColor, appoTypeMaster.bodyBgColor AS procBgColour,
appoTypeMaster.bodyTextColor AS procFontColour, appoTypeMaster.appoTypeTitle AS appoTypeDesc,
appoAppointmentHeader.ptntPatientID, appoAppointmentHeader.appoDate,
appoAppointmentHeader.sec1UserLoginOUID AS loginOUID, TRIM(COALESCE(appoAppointmentHeaderLang.notes,' '))AS notes,
appoAppointmentHeader.appoTypeID, appoAppointmentHeader.isEmergency,
DATE_FORMAT(appoAppointmentProcedureSteps.appoProcExpStartTime,'%H:%i:%s') AS appoProcExpStartTime,
DATE_FORMAT(appoAppointmentProcedureSteps.appoProcExpEndTime,'%H:%i:%s') AS appoProcExpEndTime,
IF(patientNickName = '',CONCAT(COALESCE(ptntPatientDetails.patientFName,''),' ',COALESCE(ptntPatientDetails.patientMName,''),' ',COALESCE(ptntPatientDetails.patientLName,''))
,CONCAT(COALESCE(ptntPatientDetails.patientNickName,''),' ',COALESCE(ptntPatientDetails.patientLName,''))
) AS patientName,
CONCAT( COALESCE(ptntPatientDetails.patientSalutaion,''),' ',
COALESCE(ptntPatientDetails.patientFName,''),' ',
COALESCE(ptntPatientDetails.patientMName,''),' ',
COALESCE(ptntPatientDetails.patientLName,'')
) AS patientFullName,
TIMEDIFF(appoAppointmentProcedureSteps.appoProcExpEndTime, appoAppointmentProcedureSteps.appoProcExpStartTime) AS Duration,
GetPatientAge(ptntPatientDetails.patientID) AS age,
COALESCE(ptntPatientDetails.sex,'') AS sex, ptntPatientDetails.homePhone,
appoAppointmentResources.pracProviderID as providerID, appoAppointmentResources.pracResourceID AS resourceID,
pracProviderToProviderTypeMap.pracProviderTypeID AS entityTypeID,
appoAppointmentResources.dtlID, appoAppointmentHeader.currentAppoHdrStatusID,
pracStatusMasterLang.statusDesc, appoAppointmentHeader.currentAppoHdrStatusID AS pracStatusID,
CASE appoAppointmentHeader.currentAppoHdrStatusID
WHEN 800 THEN pracStatusMaster.bgColour
WHEN 760 THEN pracStatusMaster.bgColour
ELSE
IF( appoAppointmentHeader.autoUpdateStatusColor = '',pracStatusMaster.bgColour,appoAppointmentHeader.autoUpdateStatusColor)
END AS statusBGColour, pracStatusMaster.fontColour AS statusFontColour,
DATE_FORMAT(creationDate,'%Y-%m-%d %H:%i') AS creationDate,
fnc_GetAppoProviderResourceName(appoAppointmentProcedureSteps.appoHdrID,5,1) AS providerResource,
appoAppointmentResources.appoPositions,
fnc_GetAppointmentProviderResourceName(appoAppointmentProcedureSteps.appoHdrID,2,'N',1) AS providerName,
fnc_GetAppointmentProviderResourceName(appoAppointmentProcedureSteps.appoHdrID,3,'N',1) AS resourceName,
fnc_GetAppointmentProviderResourceNameByPercentage(appoAppointmentProcedureSteps.appoHdrID,2,'N',1) AS modifyproviderName,
fnc_GetAppointmentProviderResourceNameByPercentage(appoAppointmentProcedureSteps.appoHdrID,3,'N',1) AS modifyresourceName,
tpAppointmentPlan.appointmentPlanID, tpAppointmentPlan.number,pracStatusMaster.statusType,
ptntPatientDetails.workPhone , ptntPatientDetails.cellPhone, ptntPatientDetails.primaryPhone,
COALESCE(ptntPatientDetails.patientFName,'')patientFName,COALESCE(ptntPatientDetails.patientLName,'')patientLName,
COALESCE(ptntPatientDetails.patientNickName,'')patientNickName,ptntPatientDetails.patientID,
ROUND(appoTypeMaster.appoTypeUnit/5.00) AS appoTypeUnit,appoAppointmentHeader.officeID,
appoAppointmentHeader.createBy,pracOffice.practiceName AS practiceName,IF( ptntPatientDetails.patientID =5001,0,fnc_GetRecallFlag(ptntPatientDetails.patientID)) AS recallFlag,
ptntPatientDetails.officeID AS ptntofficeID,
appoAppointmentHeader.desiredDate,
appoAppointmentHeader.priority,
appoAppointmentHeader.isSCL,
pracProviderMaster.providerCode,
pracProviderMaster.shortCode,
appoAppointmentHeader.appoUnscheduledCreatedFromID,
appoAppointmentHeader.clipBoardCreationDate,
appoAppointmentHeader.SCLCreationDate,
ptntPatientDetails.patientCode
FROM
appoAppointmentHeader
INNER JOIN appoAppointmentHeaderLang ON appoAppointmentHeader.hdrID = appoAppointmentHeaderLang.appoHdrID
INNER JOIN appoAppointmentProcedureSteps ON appoAppointmentProcedureSteps.appoHdrID=appoAppointmentHeader.hdrID
INNER JOIN appoAppointmentResources ON appoAppointmentResources.appoHdrID=appoAppointmentHeader.hdrID
INNER JOIN ptntPatientDetails ON ptntPatientDetails.patientID=appoAppointmentHeader.ptntPatientID AND ptntPatientDetails.isDeleted=0 AND ptntPatientDetails.patientID<>5001
INNER JOIN pracProviderMaster ON pracProviderMaster.providerID=appoAppointmentResources.pracProviderID AND pracProviderMaster.isDeleted=0
INNER JOIN pracProviderToProviderTypeMap ON pracProviderMaster.providerID = pracProviderToProviderTypeMap.pracProviderID
INNER JOIN appoTypeMaster ON appoTypeMaster.typeID=appoAppointmentHeader.appoTypeID
INNER JOIN appoTypeMasterLang ON appoTypeMasterLang.appoTypeID=appoTypeMaster.typeID
INNER JOIN pracStatusMaster ON pracStatusMaster.statusID=appoAppointmentHeader.currentAppoHdrStatusID
INNER JOIN pracStatusMasterLang ON pracStatusMasterLang.pracStatusID=pracStatusMaster.statusID AND pracStatusMasterLang.langLangID = 1
LEFT OUTER JOIN tpAppointmentPlan ON appoAppointmentHeader.appoPlanID = tpAppointmentPlan.appointmentPlanID
LEFT OUTER JOIN pracOffice ON pracOffice.officeID=appoAppointmentHeader.officeID
LEFT OUTER JOIN appoUnscheduledCreatedFrom ON appoUnscheduledCreatedFrom.appoUnscheduledCreatedFromID = appoAppointmentHeader.appoUnscheduledCreatedFromID
WHERE
(
appoAppointmentHeader.currentAppoHdrStatusID=100
OR
(
appoAppointmentHeader.appoDate >= fnc_getOrgCurDate()
AND FIND_IN_SET(appoAppointmentHeader.currentAppoHdrStatusID,'700,710,716,711,712,713,714,715,717,5002,5004,5005,5013,5014,6004,6005')>0
AND appoAppointmentHeader.isSCL='1'
)
OR
(
appoAppointmentHeader.currentAppoHdrStatusID=200
AND appoAppointmentHeader.isSCL='1'
) ) UNION ALL
SELECT appoAppointmentHeader.hdrID,1 AS 'singleStepResource',
appoAppointmentHeader.formatID,
appoTypeMaster.titleBgColor AS appoHeaderBgColor,
appoTypeMaster.titleTextColor AS appoHeaderFontColor, appoTypeMaster.bodyBgColor AS procBgColour,
appoTypeMaster.bodyTextColor AS procFontColour, appoTypeMaster.appoTypeTitle AS appoTypeDesc,
appoAppointmentHeader.ptntPatientID, appoAppointmentHeader.appoDate,
appoAppointmentHeader.sec1UserLoginOUID AS loginOUID, TRIM(COALESCE(appoAppointmentHeaderLang.notes,' ')) AS notes,
appoAppointmentHeader.appoTypeID, appoAppointmentHeader.isEmergency,
DATE_FORMAT(appoAppointmentProcedureSteps.appoProcExpStartTime,'%H:%i:%s') AS appoProcExpStartTime,
DATE_FORMAT(appoAppointmentProcedureSteps.appoProcExpEndTime,'%H:%i:%s') AS appoProcExpEndTime,
IF(patientNickName = '',CONCAT(COALESCE(ptntPatientDetails.patientFName,''),' ',COALESCE(ptntPatientDetails.patientMName,''),' ',COALESCE(ptntPatientDetails.patientLName,''))
,CONCAT(ptntPatientDetails.patientNickName,' ', ptntPatientDetails.patientLName)
) AS patientName,
CONCAT( COALESCE(ptntPatientDetails.patientSalutaion,''),' ',
COALESCE(ptntPatientDetails.patientFName,''),' ',
COALESCE(ptntPatientDetails.patientMName,''),' ',
COALESCE(ptntPatientDetails.patientLName,'')
) AS patientFullName,
TIMEDIFF(appoAppointmentProcedureSteps.appoProcExpEndTime, appoAppointmentProcedureSteps.appoProcExpStartTime) AS Duration,
GetPatientAge(ptntPatientDetails.patientID) AS age,
COALESCE(ptntPatientDetails.sex,'') AS sex, ptntPatientDetails.homePhone,
appoAppointmentResources.pracProviderID AS providerID, appoAppointmentResources.pracResourceID AS resourceID,
pracResourceMaster.resourceTypeID AS entityTypeID,
appoAppointmentResources.dtlID,appoAppointmentHeader.currentAppoHdrStatusID,
pracStatusMasterLang.statusDesc, appoAppointmentHeader.currentAppoHdrStatusID AS pracStatusID,
CASE appoAppointmentHeader.currentAppoHdrStatusID
WHEN 800 THEN pracStatusMaster.bgColour
WHEN 760 THEN pracStatusMaster.bgColour
ELSE
IF( appoAppointmentHeader.autoUpdateStatusColor = '',pracStatusMaster.bgColour,appoAppointmentHeader.autoUpdateStatusColor)
END AS statusBGColour , pracStatusMaster.fontColour AS statusFontColour,
DATE_FORMAT(creationDate,'%Y-%m-%d %H:%i') AS creationDate,
fnc_GetAppoProviderResourceName(appoAppointmentProcedureSteps.appoHdrID,5,1) AS providerResource,
appoAppointmentResources.appoPositions,
fnc_GetAppointmentProviderResourceName(appoAppointmentProcedureSteps.appoHdrID,2,'N',1) AS providerName,
fnc_GetAppointmentProviderResourceName(appoAppointmentProcedureSteps.appoHdrID,3,'N',1) AS resourceName,
fnc_GetAppointmentProviderResourceNameByPercentage(appoAppointmentProcedureSteps.appoHdrID,2,'N',1) AS modifyproviderName,
fnc_GetAppointmentProviderResourceNameByPercentage(appoAppointmentProcedureSteps.appoHdrID,3,'N',1) AS modifyresourceName,
tpAppointmentPlan.appointmentPlanID, tpAppointmentPlan.number,pracStatusMaster.statusType,
ptntPatientDetails.workPhone,ptntPatientDetails.cellPhone,ptntPatientDetails.primaryPhone,
COALESCE(ptntPatientDetails.patientFName,'')patientFName,COALESCE(ptntPatientDetails.patientLName,'')patientLName,
COALESCE(ptntPatientDetails.patientNickName,'')patientNickName,ptntPatientDetails.patientID,
ROUND(appoTypeMaster.appoTypeUnit/5.00) AS appoTypeUnit
,appoAppointmentHeader.officeID,appoAppointmentHeader.createBy,pracOffice.practiceName AS practiceName,IF( ptntPatientDetails.patientID =5001,0,fnc_GetRecallFlag(ptntPatientDetails.patientID)) AS recallFlag,
ptntPatientDetails.officeID AS ptntofficeID,
appoAppointmentHeader.desiredDate,
appoAppointmentHeader.priority,
appoAppointmentHeader.isSCL,
'' AS providerCode,
pracResourceMaster.shortCode,
appoAppointmentHeader.appoUnscheduledCreatedFromID,
appoAppointmentHeader.clipBoardCreationDate,
appoAppointmentHeader.SCLCreationDate,
ptntPatientDetails.patientCode
FROM
appoAppointmentHeader
INNER JOIN appoAppointmentHeaderLang ON appoAppointmentHeaderLang.appoHdrID=appoAppointmentHeader.hdrID AND appoAppointmentHeaderLang.langLangID=1
INNER JOIN appoAppointmentProcedureSteps ON appoAppointmentProcedureSteps.appoHdrID=appoAppointmentHeader.hdrID
INNER JOIN appoAppointmentResources ON appoAppointmentResources.appoHdrID =appoAppointmentHeader.hdrID
INNER JOIN pracResourceMaster ON pracResourceMaster.resourceID=appoAppointmentResources.pracResourceID
INNER JOIN pracResourceTypeMaster ON pracResourceTypeMaster.resourceTypeID=pracResourceMaster.resourceTypeID
INNER JOIN pracStatusMaster ON pracStatusMaster.statusID=appoAppointmentHeader.currentAppoHdrStatusID
INNER JOIN pracStatusMasterLang ON pracStatusMasterLang.pracStatusID=pracStatusMaster.statusID AND pracStatusMasterLang.langLangID = 1
INNER JOIN ptntPatientDetails ON ptntPatientDetails.patientID=appoAppointmentHeader.ptntPatientID AND ptntPatientDetails.isDeleted=0 AND ptntPatientDetails.patientID<>5001
LEFT OUTER JOIN tpAppointmentPlan ON appoAppointmentHeader.appoPlanID = tpAppointmentPlan.appointmentPlanID
LEFT OUTER JOIN pracOffice ON pracOffice.officeID=appoAppointmentHeader.officeID
LEFT OUTER JOIN appoUnscheduledCreatedFrom ON appoUnscheduledCreatedFrom.appoUnscheduledCreatedFromID = appoAppointmentHeader.appoUnscheduledCreatedFromID
LEFT OUTER JOIN appoTypeMaster ON appoTypeMaster.typeID=appoAppointmentHeader.appoTypeID
LEFT OUTER JOIN appoTypeMasterLang ON appoTypeMasterLang.appoTypeID=appoTypeMaster.typeID
WHERE
(
appoAppointmentHeader.currentAppoHdrStatusID=100
OR
(
appoAppointmentHeader.appoDate >= fnc_getOrgCurDate()
AND FIND_IN_SET(appoAppointmentHeader.currentAppoHdrStatusID,'700,710,716,711,712,713,714,715,717,5002,5004,5005,5013,5014,6004,6005')>0
AND appoAppointmentHeader.isSCL='1'
)
OR
(
appoAppointmentHeader.currentAppoHdrStatusID=200
AND appoAppointmentHeader.isSCL='1'
) )
)m ORDER BY m.clipBoardCreationDate DESC, m.hdrID DESC;
EXPLAIN returns below results
Bookmarks