[Stable]

A continuous inpatient (CIP) spell is a continuous period of care within the NHS, which does allow specific types of transfers to take place. It can therefore be made up of one or more provider spells. A CIP spell starts when a decision has been made to admit the patient, and a consultant has taken responsibility for their care. The spell ends when the patient dies or is discharged from hospital. This follows the NHS Digital Provider Spells Methodology: http://content.digital.nhs.uk/media/11859/Provider-Spells-Methodology/pdf/Spells_Methodology.pdf

cip_spells(
  x,
  group_vars,
  spell_start_date,
  admission_method,
  admission_source,
  spell_end_date,
  discharge_destination,
  patient_classification,
  .forceCopy = FALSE
)

Arguments

x

a data frame; will be converted to a data.table

group_vars

a vector containing any variables to be used for record grouping, minimum is a patient identifier

spell_start_date

Inpatient provider spell or episode admission date

admission_method

CDS admission method code

admission_source

CDS admission source code

spell_end_date

Inpatient provider spell or episode discharge date

discharge_destination

CDS discharge destination code

patient_classification

CDS patient classification code

.forceCopy

default FALSE; TRUE will force data.table to take a copy instead of editing the data without reference

Value

the original data.frame as a data.table with the following new fields:

cip_indx

an id field for the CIP spell

cip_spell_start

the start date for the CIP spell

cip_spell_end

the end date for the CIP spell

Examples


cip_test <- data.frame(
  id = c('465','465','465','465','8418','8418','8418',
         '8418','8418','8418','8418','8418','26443',
         '26443','26443','33299','33299','33299','33299',
         '33299','33299','33299','33299','33299','33299',
         '52635','52635','52635','52635','52635','52635',
         '52635','52635','52635','52635','52635','52635',
         '52635','52635','52635','52635','52635','52635',
         '52635','52635','52635','52635','52635','52635',
         '52635','52635','52635','78915','78915','78915'),
  provider = c('X1T','X1T','X1T','X1T','KHA','KHA','KHA',
               'KHA','KHA','KHA','KHA','KHA','BX2','BX2',
               'BX2','PXH','PXH','PXH','PXH','PXH','PXH',
               'PXH','PXH','PXH','PXH','9HA','9HA','9HA',
               '9HA','9HA','9HA','9HA','9HA','9HA','9HA',
               '9HA','9HA','9HA','9HA','9HA','9HA','YYT',
               'YYT','YYT','YYT','YYT','YYT','YYT','YYT',
               'YYT','YYT','YYT','ABX','ABX','ABX'),
  spell_start = as.Date(c(
    '2020-03-07','2020-03-07','2020-03-25','2020-04-03','2020-01-25',
    '2020-01-26','2020-07-14','2020-08-02','2020-08-12','2020-08-19',
    '2020-08-19','2020-11-19','2019-11-12','2020-04-17','2020-04-23',
    '2020-07-03','2020-01-17','2020-02-07','2020-03-20','2020-04-27',
    '2020-06-21','2020-07-02','2020-10-17','2020-11-27','2021-01-02',
    '2019-12-31','2020-01-02','2020-01-14','2020-01-16','2020-02-07',
    '2020-02-11','2020-02-14','2020-02-18','2020-02-21','2020-02-25',
    '2020-02-28','2020-03-09','2020-03-11','2020-03-12','2020-03-13',
    '2020-03-14','2020-02-04','2020-02-07','2020-02-11','2020-02-14',
    '2020-02-18','2020-02-21','2020-02-25','2020-02-28','2020-03-09',
    '2020-03-11','2020-03-12','2020-04-16','2020-04-24','2020-05-13')),
  spell_end = as.Date(c(
    '2020-03-07','2020-03-25','2020-04-02','2020-04-27','2020-01-25',
    '2020-01-27','2020-07-17','2020-08-07','2020-08-14','2020-08-19',
    '2020-08-22','2020-12-16','2020-04-17','2020-04-23','2020-05-20',
    '2020-07-24','2020-01-28','2020-02-07','2020-03-23','2020-04-29',
    '2020-06-21','2020-07-03','2020-11-27','2021-01-02','2021-01-10',
    '2019-12-31','2020-01-11','2020-01-14','2020-02-04','2020-02-07',
    '2020-02-11','2020-02-14','2020-02-18','2020-02-21','2020-02-25',
    '2020-02-28','2020-03-09','2020-03-11','2020-03-12','2020-03-13',
    '2020-03-30','2020-02-07','2020-02-11','2020-02-14','2020-02-18',
    '2020-02-21','2020-02-25','2020-02-28','2020-03-09','2020-03-11',
    '2020-03-12','2020-03-13','2020-04-24','2020-05-13','2020-06-11')),
  adm_meth = c('21','81','21','81','21','21','11','21','21','21','21',
               '21','21','81','21','81','21','21','21','21','21','21',
               '21','13','13','12','22','12','2D','13','13','13','13',
               '13','13','13','13','13','13','13','21','81','81','81',
               '81','81','13','81','81','13','13','13','21','11','81'),
  adm_src = c('19','51','19','51','19','51','19','51','19','19','19',
              '51','19','51','19','51','19','19','19','19','19','19',
              '19','51','19','19','19','19','19','19','19','19','19',
              '19','19','19','51','51','51','51','19','51','51','51',
              '51','51','51','51','51','51','51','51','19','51','51'),
  dis_meth = c('1','1','1','1','1','1','1','1','1','1','1','4','1','1',
               '4','1','1','1','1','1','1','1','8','1','4','1','1','1',
               '1','1','1','1','1','1','1','1','1','1','1','1','1','1',
               '1','1','1','1','1','1','1','1','1','1','1','1','2'),
  dis_dest = c('51','51','51','54','51','19','19','19','19','51','19',
               '79','51','51','79','65','19','19','19','19','19','29',
               '98','51','79','19','19','19','51','19','19','19','51',
               '51','51','19','19','51','51','19','51','51','51','51',
               '51','51','51','51','51','51','51','51','29','54','19'),
  patclass = c('1','1','1','1','1','1','1','1','1','1','1','1','1','1',
               '1','1','1','1','1','1','1','1','1','1','1','2','1','2',
               '1','2','2','2','2','2','2','2','2','2','2','2','1','1',
               '1','1','1','1','1','1','1','1','1','1','1','1','1')
)

cip_spells(x=cip_test,
  group_vars = c('id','provider'),
  patient_classification = 'patclass',
  spell_start_date = 'spell_start',
  admission_method = 'adm_meth',
  admission_source = 'adm_src',
  spell_end_date = 'spell_end',
  discharge_destination = 'dis_dest'
)[]
#>        id provider spell_start  spell_end adm_meth adm_src dis_meth dis_dest
#>  1: 26443      BX2  2019-11-12 2020-04-17       21      19        1       51
#>  2: 26443      BX2  2020-04-17 2020-04-23       81      51        1       51
#>  3: 26443      BX2  2020-04-23 2020-05-20       21      19        4       79
#>  4: 33299      PXH  2020-01-17 2020-01-28       21      19        1       19
#>  5: 33299      PXH  2020-02-07 2020-02-07       21      19        1       19
#>  6: 33299      PXH  2020-03-20 2020-03-23       21      19        1       19
#>  7: 33299      PXH  2020-04-27 2020-04-29       21      19        1       19
#>  8: 33299      PXH  2020-06-21 2020-06-21       21      19        1       19
#>  9: 33299      PXH  2020-07-02 2020-07-03       21      19        1       29
#> 10: 33299      PXH  2020-07-03 2020-07-24       81      51        1       65
#> 11: 33299      PXH  2020-10-17 2020-11-27       21      19        8       98
#> 12: 33299      PXH  2020-11-27 2021-01-02       13      51        1       51
#> 13: 33299      PXH  2021-01-02 2021-01-10       13      19        4       79
#> 14:   465      X1T  2020-03-07 2020-03-07       21      19        1       51
#> 15:   465      X1T  2020-03-07 2020-03-25       81      51        1       51
#> 16:   465      X1T  2020-03-25 2020-04-02       21      19        1       51
#> 17:   465      X1T  2020-04-03 2020-04-27       81      51        1       54
#> 18: 52635      9HA  2019-12-31 2019-12-31       12      19        1       19
#> 19: 52635      9HA  2020-01-02 2020-01-11       22      19        1       19
#> 20: 52635      9HA  2020-01-14 2020-01-14       12      19        1       19
#> 21: 52635      9HA  2020-01-16 2020-02-04       2D      19        1       51
#> 22: 52635      9HA  2020-02-07 2020-02-07       13      19        1       19
#> 23: 52635      9HA  2020-02-11 2020-02-11       13      19        1       19
#> 24: 52635      9HA  2020-02-14 2020-02-14       13      19        1       19
#> 25: 52635      9HA  2020-02-18 2020-02-18       13      19        1       51
#> 26: 52635      9HA  2020-02-21 2020-02-21       13      19        1       51
#> 27: 52635      9HA  2020-02-25 2020-02-25       13      19        1       51
#> 28: 52635      9HA  2020-02-28 2020-02-28       13      19        1       19
#> 29: 52635      9HA  2020-03-09 2020-03-09       13      51        1       19
#> 30: 52635      9HA  2020-03-11 2020-03-11       13      51        1       51
#> 31: 52635      9HA  2020-03-12 2020-03-12       13      51        1       51
#> 32: 52635      9HA  2020-03-13 2020-03-13       13      51        1       19
#> 33: 52635      9HA  2020-03-14 2020-03-30       21      19        1       51
#> 34: 52635      YYT  2020-02-04 2020-02-07       81      51        1       51
#> 35: 52635      YYT  2020-02-07 2020-02-11       81      51        1       51
#> 36: 52635      YYT  2020-02-11 2020-02-14       81      51        1       51
#> 37: 52635      YYT  2020-02-14 2020-02-18       81      51        1       51
#> 38: 52635      YYT  2020-02-18 2020-02-21       81      51        1       51
#> 39: 52635      YYT  2020-02-21 2020-02-25       13      51        1       51
#> 40: 52635      YYT  2020-02-25 2020-02-28       81      51        1       51
#> 41: 52635      YYT  2020-02-28 2020-03-09       81      51        1       51
#> 42: 52635      YYT  2020-03-09 2020-03-11       13      51        1       51
#> 43: 52635      YYT  2020-03-11 2020-03-12       13      51        1       51
#> 44: 52635      YYT  2020-03-12 2020-03-13       13      51        1       51
#> 45: 78915      ABX  2020-04-16 2020-04-24       21      19        1       29
#> 46: 78915      ABX  2020-04-24 2020-05-13       11      51        1       54
#> 47: 78915      ABX  2020-05-13 2020-06-11       81      51        2       19
#> 48:  8418      KHA  2020-01-25 2020-01-25       21      19        1       51
#> 49:  8418      KHA  2020-01-26 2020-01-27       21      51        1       19
#> 50:  8418      KHA  2020-07-14 2020-07-17       11      19        1       19
#> 51:  8418      KHA  2020-08-02 2020-08-07       21      51        1       19
#> 52:  8418      KHA  2020-08-12 2020-08-14       21      19        1       19
#> 53:  8418      KHA  2020-08-19 2020-08-19       21      19        1       51
#> 54:  8418      KHA  2020-08-19 2020-08-22       21      19        1       19
#> 55:  8418      KHA  2020-11-19 2020-12-16       21      51        4       79
#>        id provider spell_start  spell_end adm_meth adm_src dis_meth dis_dest
#>     patclass proxy_missing cip_indx cip_spell_start cip_spell_end
#>  1:        1             0    1.3.0      2019-11-12    2020-05-20
#>  2:        1             0    1.3.0      2019-11-12    2020-05-20
#>  3:        1             0    1.3.0      2019-11-12    2020-05-20
#>  4:        1             0   2.10.0      2020-01-17    2020-01-28
#>  5:        1             0   2.10.1      2020-02-07    2020-02-07
#>  6:        1             0   2.10.2      2020-03-20    2020-03-23
#>  7:        1             0   2.10.3      2020-04-27    2020-04-29
#>  8:        1             0   2.10.4      2020-06-21    2020-06-21
#>  9:        1             0   2.10.5      2020-07-02    2020-07-24
#> 10:        1             0   2.10.5      2020-07-02    2020-07-24
#> 11:        1             0   2.10.6      2020-10-17    2021-01-10
#> 12:        1             0   2.10.6      2020-10-17    2021-01-10
#> 13:        1             0   2.10.6      2020-10-17    2021-01-10
#> 14:        1             0    3.4.0      2020-03-07    2020-04-02
#> 15:        1             0    3.4.0      2020-03-07    2020-04-02
#> 16:        1             0    3.4.0      2020-03-07    2020-04-02
#> 17:        1             0    3.4.1      2020-04-03    2020-04-27
#> 18:        2             0   4.16.0      2019-12-31    2019-12-31
#> 19:        1             0   4.16.1      2020-01-02    2020-01-11
#> 20:        2             0   4.16.2      2020-01-14    2020-01-14
#> 21:        1             0   4.16.3      2020-01-16    2020-02-04
#> 22:        2             0   4.16.4      2020-02-07    2020-02-07
#> 23:        2             0   4.16.5      2020-02-11    2020-02-11
#> 24:        2             0   4.16.6      2020-02-14    2020-02-14
#> 25:        2             0   4.16.7      2020-02-18    2020-02-18
#> 26:        2             0   4.16.8      2020-02-21    2020-02-21
#> 27:        2             0   4.16.9      2020-02-25    2020-02-25
#> 28:        2             0  4.16.10      2020-02-28    2020-02-28
#> 29:        2             0  4.16.11      2020-03-09    2020-03-09
#> 30:        2             0  4.16.12      2020-03-11    2020-03-11
#> 31:        2             0  4.16.13      2020-03-12    2020-03-12
#> 32:        2             0  4.16.14      2020-03-13    2020-03-13
#> 33:        1             0  4.16.16      2020-03-14    2020-03-30
#> 34:        1             0   5.11.0      2020-02-04    2020-03-13
#> 35:        1             0   5.11.0      2020-02-04    2020-03-13
#> 36:        1             0   5.11.0      2020-02-04    2020-03-13
#> 37:        1             0   5.11.0      2020-02-04    2020-03-13
#> 38:        1             0   5.11.0      2020-02-04    2020-03-13
#> 39:        1             0   5.11.0      2020-02-04    2020-03-13
#> 40:        1             0   5.11.0      2020-02-04    2020-03-13
#> 41:        1             0   5.11.0      2020-02-04    2020-03-13
#> 42:        1             0   5.11.0      2020-02-04    2020-03-13
#> 43:        1             0   5.11.0      2020-02-04    2020-03-13
#> 44:        1             0   5.11.0      2020-02-04    2020-03-13
#> 45:        1             0    6.3.0      2020-04-16    2020-06-11
#> 46:        1             0    6.3.0      2020-04-16    2020-06-11
#> 47:        1             0    6.3.0      2020-04-16    2020-06-11
#> 48:        1             0    7.8.0      2020-01-25    2020-01-25
#> 49:        1             0    7.8.1      2020-01-26    2020-01-27
#> 50:        1             0    7.8.2      2020-07-14    2020-07-17
#> 51:        1             0    7.8.3      2020-08-02    2020-08-07
#> 52:        1             0    7.8.4      2020-08-12    2020-08-14
#> 53:        1             0    7.8.5      2020-08-19    2020-08-22
#> 54:        1             0    7.8.5      2020-08-19    2020-08-22
#> 55:        1             0    7.8.7      2020-11-19    2020-12-16
#>     patclass proxy_missing cip_indx cip_spell_start cip_spell_end