Present On Arrival (POA) is not a simple flag, since many codes are exempt, unspecified, or unknown. Therefore, two options are given: get all the comorbidities where the POA flag was definitely negative, coded as 'N' or definitely positive and coded as 'Y'. Negating one set won't give the other set unless all codes were either Y or N.

filter_poa(x, poa_name = "poa", poa = poa_choices)

filter_poa_yes(x, poa_name = "poa")

filter_poa_no(x, poa_name = "poa")

filter_poa_not_no(x, poa_name = "poa")

filter_poa_not_yes(x, poa_name = "poa")

Arguments

x

input vector of ICD codes

poa_name

The name of column in the data frame which contains the Present On Arrival (POA) flag. The flag itself is a single character, typically one of ‘Y’, ‘N’, ‘E’, ‘X’, ‘U’, or empty.

poa

single character value, being one of Yes, No, NotYes, and NotNo, indicating whether to account for comorbidities flagged as present-on-arrival. This is not a simple flag, because many codes are exempt, unspecified, or unknown. The intermediate codes, such as ‘exempt’, ‘unknown’ and NA mean that ‘yes’ is not the same as ‘not no’.

Functions

  • filter_poa_yes: Select rows where Present-on-Arrival flag is explicitly 'Yes.'

  • filter_poa_no: Select rows where Present-on-Arrival flag is explicitly 'No.'

  • filter_poa_not_no: Select rows where Present-on-Arrival flag is anything but 'No.' This includes unknown, exempt, other codes, and of course all those marked 'Yes.'

  • filter_poa_not_yes: Select rows where Present-on-Arrival flag is anything but 'Yes.' This would group exempt, unknown and other codes under 'Not POA' which is unlikely to be a good choice, since exempt codes, of which there are a quite large number, tend to describe chronic or out-of-hospital characteristics.

Examples

if (FALSE) { library(icd) # magrittr not required for icd to work, just for this example library(magrittr, warn.conflicts = FALSE, quietly = TRUE) myData <- data.frame( visit_id = c("v1", "v2", "v3", "v4"), diag = c("39891", "39790", "41791", "4401"), poa = c("Y", "N", NA, "Y"), stringsAsFactors = FALSE ) myData %>% filter_poa_not_no() %>% comorbid_ahrq() # can fill out named fields also: myData %>% filter_poa_yes(poa_name = "poa") %>% comorbid_ahrq( icd_name = "diag", visit_name = "visit_id", short_code = TRUE ) my_map <- head(icd9_map_elix) # can call the core comorbid() function with an arbitrary mapping myData %>% filter_poa_yes() %>% comorbid( icd_name = "diag", visit_name = "visit_id", map = my_map, short_map = TRUE ) }