Skip to content
Open
Show file tree
Hide file tree
Changes from 4 commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
323e36b
first draft - read_extract_ae refactor
OluwatobiOni Mar 2, 2026
1b82879
refactor ae
OluwatobiOni Mar 9, 2026
f30f6b7
Update documentation
OluwatobiOni Mar 9, 2026
50d4db3
Style code
OluwatobiOni Mar 9, 2026
ef1bfed
add denodo_connect as a function parameter
OluwatobiOni Mar 13, 2026
419a743
Update documentation
OluwatobiOni Mar 13, 2026
bb20511
Merge branch 'development' into refactor-ae
lizihao-anu Mar 19, 2026
bd9862e
Add log_info() and get_denodo_connection(), and move line to disconne…
LucyEmma22 Mar 20, 2026
bc7bfcf
Temporarily correct data types after data is read in from Denodo.
LucyEmma22 Mar 23, 2026
4d7c4c2
Add logger, denodo connect/disconnect and new ae_cup column names to …
LucyEmma22 Mar 23, 2026
0af724a
Add new parameters to targets for refactored A&E
LucyEmma22 Mar 23, 2026
3185a60
Add A&E to run_sdl
LucyEmma22 Mar 23, 2026
9756bcb
Style code
LucyEmma22 Mar 23, 2026
3b79705
Update documentation
LucyEmma22 Mar 23, 2026
7939364
Change manual logger messages to log_slf_event() function.
LucyEmma22 Mar 24, 2026
d4b5749
Merge branch 'refactor-ae' of github.com:Public-Health-Scotland/sourc…
LucyEmma22 Mar 24, 2026
835aa4d
Style code
LucyEmma22 Mar 24, 2026
557217a
Merge branch 'development' into refactor-ae
LucyEmma22 Mar 26, 2026
8435f54
tiny updates
lizihao-anu Mar 27, 2026
372655e
Merge branch 'development' into refactor-ae
lizihao-anu Mar 27, 2026
11ab9f4
Merge branch 'development' into refactor-ae
OluwatobiOni Apr 6, 2026
bf92715
Merge branch 'development' into refactor-ae
OluwatobiOni Jun 8, 2026
806fdc4
refactor ae
OluwatobiOni Jun 8, 2026
82ba09e
correct for acute cup file boxi filtering
OluwatobiOni Jun 9, 2026
db9b044
Merge branch 'development' into refactor-ae
lizihao-anu Jun 26, 2026
14db20e
minor changes
lizihao-anu Jun 26, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
39 changes: 37 additions & 2 deletions R/process_extract_ae.R
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,12 @@
#' @return the final data as a [tibble][tibble::tibble-package].
#' @export
#' @family process extracts
process_extract_ae <- function(data, year, write_to_disk = TRUE) {
process_extract_ae <- function(data,
year,
write_to_disk = TRUE,
BYOC_MODE = FALSE,
run_id = NA,
run_date_time = NA) {
# Only run for a single year
stopifnot(length(year) == 1L)

Expand Down Expand Up @@ -221,6 +226,29 @@ process_extract_ae <- function(data, year, write_to_disk = TRUE) {
cup_pathway = "CUP Pathway Name"
)

# ----------------------------------------------------------------------------

# denodo_connect_cup <- get_denodo_connection()
Comment thread
lizihao-anu marked this conversation as resolved.
Outdated
#
# c_year_cup <- convert_fyyear_to_year(check_year_format(year))
#
# ae_cup_file <- dplyr::tbl(
# denodo_connect_cup,
Comment thread
lizihao-anu marked this conversation as resolved.
Outdated
# dbplyr::in_schema("sdl", "sdl_ae_cup_source_placeholder") # TO-DO: Placeholder for data path in denodo
# ) %>%
# dplyr::filter(year == !!c_year_cup) %>% # TO-DO: Placeholder for the variable to filter by year
# dplyr::select( # TO-DO: Placeholder variables
# record_keydate1 = "ED Arrival Date",
# keytime1 = "ED Arrival Time",
# record_keydate2 = "ED Discharge Date",
# keytime2 = "ED Discharge Time",
# case_ref_number = "ED Case Reference Number [C]",
# cup_marker = "CUP Marker",
# cup_pathway = "CUP Pathway Name"
# ) %>%
# dplyr::collect()
# ----------------------------------------------------------------------------


# Data Cleaning---------------------------------------

Expand Down Expand Up @@ -254,7 +282,13 @@ process_extract_ae <- function(data, year, write_to_disk = TRUE) {
)

ae_processed <- matched_ae_data %>%
dplyr::mutate(
run_id = run_id,
run_date_time = run_date_time
) %>%
dplyr::select(
"run_id",
"run_date_time",
"year",
"recid",
"smrtype",
Expand Down Expand Up @@ -310,7 +344,8 @@ process_extract_ae <- function(data, year, write_to_disk = TRUE) {
if (write_to_disk) {
write_file(
ae_processed,
get_source_extract_path(year, "ae", check_mode = "write"),
get_source_extract_path(year, "ae", check_mode = "write", BYOC_MODE = BYOC_MODE),
BYOC_MODE = BYOC_MODE,
group_id = 3356 # sourcedev owner
)
}
Expand Down
142 changes: 60 additions & 82 deletions R/read_extract_ae.R
Original file line number Diff line number Diff line change
Expand Up @@ -4,89 +4,67 @@
#'
#' @export
#'
read_extract_ae <- function(
year,
file_path = get_boxi_extract_path(year = year, type = "ae")
) {
extract_ae <- read_file(file_path,
col_type = readr::cols(
"Arrival Date" = readr::col_date(format = "%Y/%m/%d %T"),
"DAT Date" = readr::col_date(format = "%Y/%m/%d %T"),
"anon_chi" = readr::col_character(),
"Pat Date Of Birth [C]" = readr::col_date(format = "%Y/%m/%d %T"),
"Pat Gender Code" = readr::col_double(),
"NHS Board of Residence Code - current" = readr::col_character(),
"Treatment NHS Board Code - current" = readr::col_character(),
"Treatment Location Code" = readr::col_character(),
"GP Practice Code" = readr::col_character(),
"Council Area Code" = readr::col_character(),
"Postcode (epi) [C]" = readr::col_character(),
"Postcode (CHI) [C]" = readr::col_character(),
"HSCP of Residence Code - current" = readr::col_character(),
"Arrival Time" = readr::col_time(""),
"DAT Time" = readr::col_time(""),
"Arrival Mode Code" = readr::col_character(),
"Referral Source Code" = readr::col_character(),
"Attendance Category Code" = readr::col_character(),
"Discharge Destination Code" = readr::col_character(),
"Patient Flow Code" = readr::col_double(),
"Place of Incident Code" = readr::col_character(),
"Reason for Wait Code" = readr::col_character(),
"Disease 1 Code" = readr::col_character(),
"Disease 2 Code" = readr::col_character(),
"Disease 3 Code" = readr::col_character(),
"Bodily Location Of Injury Code" = readr::col_character(),
"Alcohol Involved Code" = readr::col_character(),
"Alcohol Related Admission" = readr::col_character(),
"Substance Misuse Related Admission" = readr::col_character(),
"Falls Related Admission" = readr::col_character(),
"Self Harm Related Admission" = readr::col_character(),
"Total Net Costs" = readr::col_double(),
"Age at Midpoint of Financial Year" = readr::col_double(),
"Case Reference Number" = readr::col_character(),
"Significant Facility Code" = readr::col_character(),
"Community Hospital Flag" = readr::col_character(),
)
read_extract_ae <- function(year,
denodo_connect, # TO-DO: will be hardcoded to denodo_connect = get_denodo_connection()
file_path = get_boxi_extract_path(year = year, type = "ae", BYOC_MODE),
BYOC_MODE) {
year <- check_year_format(year, format = "fyyear")
c_year <- convert_fyyear_to_year(year)

# Specify years available for running
if (file_path == get_dummy_boxi_extract_path(BYOC_MODE = BYOC_MODE)) {
return(tibble::tibble())
}

# Read Extract
extract_ae <- dplyr::tbl(
denodo_connect,
dbplyr::in_schema("sdl", "sdl_ae2_episode_level_source")
) %>%
# rename variables
dplyr::rename(
record_keydate1 = "Arrival Date",
record_keydate2 = "DAT Date",
dob = "Pat Date Of Birth [C]",
postcode_epi = "Postcode (epi) [C]",
postcode_chi = "Postcode (CHI) [C]",
age = "Age at Midpoint of Financial Year",
ae_alcohol = "Alcohol Involved Code",
alcohol_adm = "Alcohol Related Admission",
ae_arrivalmode = "Arrival Mode Code",
keytime1 = "Arrival Time",
ae_attendcat = "Attendance Category Code",
ae_bodyloc = "Bodily Location Of Injury Code",
lca = "Council Area Code",
ae_disdest = "Discharge Destination Code",
keytime2 = "DAT Time",
diag1 = "Disease 1 Code",
diag2 = "Disease 2 Code",
diag3 = "Disease 3 Code",
falls_adm = "Falls Related Admission",
gpprac = "GP Practice Code",
hscp = "HSCP of Residence Code - current",
hbrescode = "NHS Board of Residence Code - current",
hbtreatcode = "Treatment NHS Board Code - current",
anon_chi = "anon_chi",
gender = "Pat Gender Code",
ae_patflow = "Patient Flow Code",
ae_placeinc = "Place of Incident Code",
ae_reasonwait = "Reason for Wait Code",
refsource = "Referral Source Code",
selfharm_adm = "Self Harm Related Admission",
submis_adm = "Substance Misuse Related Admission",
sigfac = "Significant Facility Code",
cost_total_net = "Total Net Costs",
location = "Treatment Location Code",
case_ref_number = "Case Reference Number",
commhosp = "Community Hospital Flag"
)
dplyr::filter(
financial_year == !!c_year & # TO-DO: check assumption that arrival_financial_year == financial_year
(significant_facility_code == "32" | is.na(significant_facility_code))
) %>%
dplyr::select(
record_keydate1 = "arrival_date",
record_keydate2 = "dat_date",
keytime1 = "arrival_time",
keytime2 = "dat_time",
chi = "patient_chi",
gender = "patient_sex",
dob = "patient_dob",
gpprac = "gp_practice_code",
lca = "council_area_code",
hscp = "hscp_of_residence_code_curr",
location = "treatment_location_code",
hbrescode = "nhs_board_of_residence_code_curr",
hbtreatcode = "treatment_nhs_board_code_curr",
diag1 = "disease_1_code",
diag2 = "disease_2_code",
diag3 = "disease_3_code",
ae_arrivalmode = "arrival_mode_code",
refsource = "referral_source_code",
sigfac = "significant_facility_code",
ae_attendcat = "attendance_category_code",
ae_disdest = "discharge_destination_code",
ae_patflow = "patient_flow_code",
ae_placeinc = "place_of_incident_code",
ae_reasonwait = "reason_for_wait_code",
ae_bodyloc = "bodily_location_of_injury_code",
ae_alcohol = "alcohol_involved_code",
alcohol_adm = "alcohol_related_admission",
submis_adm = "substance_misuse_related_admission",
falls_adm = "falls_related_admission",
selfharm_adm = "self_harm_related_admission",
cost_total_net = "total_net_cost",
age = "age_at_midpoint_of_financial_year",
case_ref_number = "care_reference_number", # TO-DO: needs to be renamed by NSS from care to case?
postcode_epi = "postcode_epi",
postcode_chi = "postcode_chi",
commhosp = "community_hospital_flag"
) %>%
dplyr::collect() %>%
slfhelper::get_anon_chi("chi")

return(extract_ae)
}
9 changes: 8 additions & 1 deletion man/process_extract_ae.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 3 additions & 1 deletion man/read_extract_ae.Rd

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.