I am looking for a report that would show when a patient arrives, when they are brought back yo am exam room and the time of their appointment.
For CPS or EMR?
CPS uses Appointment table, while EMR uses APPT table.
For CPS or EMR?
CPS uses Appointment table, while EMR uses APPT table.
It would be from EMR
The APPT table in the EMR only differentiates between an open appointment and an arrived appointment. Thus, that table can provide two of your three items - when made (the DB_CREATE field) and the moment of status change to ARRIVED (DB_UPDATED). To determine when brought back to start the visit ... a workflow question. But, you could utilize the OBS table for checking blood pressure [probably a first step in bring the patient back] and specifically look at the DB_CREATE in that table.
Does this workflow sound like yours?
We actually created appointment types ; "in room" in hall, in lab, discharged and assigned each their own color scheme and you can track your patient movement that way via your schedule module. We have not attempted to run any reports but I would think their should be away to track each time the appointment type was changed
thaulk said:
We actually created appointment types ; "in room" in hall, in lab, discharged and assigned each their own color scheme and you can track your patient movement that way via your schedule module. We have not attempted to run any reports but I would think their should be away to track each time the appointment type was changed
We use CPS, and we have done the same with our appointment types (Checked In, Being Seen Room 1, Being Seen Room 2, etc.). We also have real-time SSRS reports setup to tell us where a patient is in the clinic and what time he/she entered that status. We do this by using the ActivityLog table. Below is a query that can show you the current appointment status, as well as what time the patient checked in and was moved to a room.
SELECT DISTINCT P.PatientId, P.First, P.Last, T.Name AS ApptType, CAST(A.ApptStart AS DATE) AS ApptStart, CAST(A.ApptStart AS TIME) AS ApptTime, STAT.Description, MD.ListName, CHECK_IN_TIME.Created AS CHECK_IN_TIME, BEING_SEEN_TIME.Created AS BEING_SEEN_TIME FROM Appointments A INNER JOIN PatientProfile P ON A.OwnerId = P.PatientProfileId INNER JOIN ApptType T ON A.ApptTypeId = T.ApptTypeId INNER JOIN DoctorFacility MD ON A.ResourceId = MD.DoctorFacilityId INNER JOIN MedLists STAT ON A.ApptStatusMId = STAT.MedListsId LEFT OUTER JOIN( SELECT l.PatientProfileId, CONVERT(VARCHAR(10), l.Created, 101) AS 'ApptDate', l.Created FROM ActivityLog l INNER JOIN PatientProfile p ON l.PatientProfileId = p.PatientProfileId WHERE l.FunctionName='Change Appointment Status' AND l.Value2='Checked In' ) CHECK_IN_TIME ON A.OwnerId = CHECK_IN_TIME.PatientProfileID AND CONVERT(VARCHAR(10), A.ApptStart, 101) = CHECK_IN_TIME.ApptDate LEFT OUTER JOIN( SELECT l.PatientProfileId, CONVERT(VARCHAR(10), l.Created, 101) AS 'ApptDate', l.Created FROM ActivityLog l INNER JOIN PatientProfile p ON l.PatientProfileId = p.PatientProfileId WHERE l.FunctionName='Change Appointment Status' AND l.Value2 LIKE 'Being Seen%' ) BEING_SEEN_TIME ON A.OwnerId = BEING_SEEN_TIME.PatientProfileID AND CONVERT(VARCHAR(10), A.ApptStart, 101) = BEING_SEEN_TIME.ApptDate WHERE A.ApptKind = 1 AND A.Canceled IS NULL AND T.Name NOT LIKE 'Phone%' AND CAST(A.ApptStart AS DATE) = CAST(GETDATE() AS DATE) AND (STAT.Description LIKE 'Being Seen%' OR STAT.Description LIKE '%Check%In%') ORDER BY T.Name