Skip to contents

NPIs, PACs, ENIDs, CCNs, CLIAs and Many More

Individual Provider

pac <- affiliations(pac = 7810891009)
#>  Query returned 5 results.
list(
  individual = as.data.frame(t(unique(pac[1:6]))),
  organization = pac[7:9])
#> $individual
#>                V1
#> first        MARK
#> last         FUNG
#> middle          K
#> suffix       <NA>
#> npi    1043245657
#> pac    7810891009
#> 
#> $organization
#> # A tibble: 5 × 3
#>   facility_type facility_ccn parent_ccn
#>   <chr>         <chr>        <chr>     
#> 1 Hospital      470003       NA        
#> 2 Hospital      330250       NA        
#> 3 Hospital      331321       NA        
#> 4 Hospital      470001       NA        
#> 5 Hospital      471307       NA
ccn <- hospitals(ccn = pac$facility_ccn)
#>  Query returned 5 results.
ccn |> str()
#> tibble [5 × 39] (S3: tbl_df/tbl/data.frame)
#>  $ org_name      : chr [1:5] "CHAMPLAIN VALLEY PHYSICIANS HOSPITAL MEDICAL CENTER" "ALICE HYDE MEDICAL CENTER" "CENTRAL VERMONT MEDICAL CENTER INC" "UNIVERSITY OF VERMONT MEDICAL CENTER INC" ...
#>  $ dba_name      : chr [1:5] "THE UNIVERSITY OF VT HEALTH NETWORK - CHAMPLAIN VALLEY PHYSICIANS HOSP" "THE UNIVERSITY OF VERMONT HEALTH NETWORK-ALICE HYDE MEDICAL CENTER" NA "UNIVERSITY OF VERMONT MEDICAL CENTER" ...
#>  $ enid          : chr [1:5] "O20120110000201" "O20230512000344" "O20050809000650" "O20021111000009" ...
#>  $ enid_state    : chr [1:5] "NY" "NY" "VT" "VT" ...
#>  $ spec          : chr [1:5] "00-09" "00-85" "00-09" "00-09" ...
#>  $ specialty     : chr [1:5] "PART A PROVIDER - HOSPITAL" "PART A PROVIDER - CRITICAL ACCESS HOSPITAL" "PART A PROVIDER - HOSPITAL" "PART A PROVIDER - HOSPITAL" ...
#>  $ npi           : chr [1:5] "1033270699" "1114954682" "1508845637" "1568419976" ...
#>  $ multi         : chr [1:5] "N" "N" "N" "N" ...
#>  $ ccn           : chr [1:5] "330250" "331321" "470001" "470003" ...
#>  $ ccn_2         : chr [1:5] NA NA NA NA ...
#>  $ pac           : chr [1:5] "2769396878" "4082525837" "9335138817" "3779491071" ...
#>  $ inc_date      : chr [1:5] "1926-01-01" "1905-04-13" "1984-03-01" "1995-01-01" ...
#>  $ inc_state     : chr [1:5] "NY" "NY" "VT" "VT" ...
#>  $ org_type      : chr [1:5] "CORPORATION" "CORPORATION" "CORPORATION" "CORPORATION" ...
#>  $ org_text      : chr [1:5] NA NA NA NA ...
#>  $ designation   : chr [1:5] "N" "N" "N" "N" ...
#>  $ add_1         : chr [1:5] "75 BEEKMAN ST" "133 PARK ST" "130 FISHER RD" "111 COLCHESTER AVE" ...
#>  $ add_2         : chr [1:5] NA NA NA NA ...
#>  $ city          : chr [1:5] "PLATTSBURGH" "MALONE" "BERLIN" "BURLINGTON" ...
#>  $ state         : chr [1:5] "NY" "NY" "VT" "VT" ...
#>  $ zip           : chr [1:5] "129011438" "129531244" "56029516" "54011473" ...
#>  $ location_type : chr [1:5] "MAIN/PRIMARY HOSPITAL LOCATION" "MAIN/PRIMARY HOSPITAL LOCATION" "MAIN/PRIMARY HOSPITAL LOCATION" "OTHER HOSPITAL PRACTICE LOCATION" ...
#>  $ location_text : chr [1:5] NA NA NA "HOSPITAL - GENERAL PRACTICE AND CLINICS" ...
#>  $ reh_ind       : chr [1:5] "N" "N" "N" "N" ...
#>  $ reh_date      : chr [1:5] NA NA NA NA ...
#>  $ sub_general   : chr [1:5] "N" "N" "N" "N" ...
#>  $ sub_acute     : chr [1:5] "Y" "N" "Y" "Y" ...
#>  $ sub_drug      : chr [1:5] "N" "N" "N" "N" ...
#>  $ sub_child     : chr [1:5] "N" "N" "N" "N" ...
#>  $ sub_long      : chr [1:5] "N" "N" "N" "N" ...
#>  $ sub_psych     : chr [1:5] "N" "N" "N" "N" ...
#>  $ sub_rehab     : chr [1:5] "N" "N" "N" "N" ...
#>  $ sub_short     : chr [1:5] "N" "N" "N" "N" ...
#>  $ sub_swing     : chr [1:5] "N" "N" "N" "N" ...
#>  $ sub_psych_unit: chr [1:5] "N" "N" "N" "N" ...
#>  $ sub_rehab_unit: chr [1:5] "N" "N" "N" "N" ...
#>  $ sub_specialty : chr [1:5] "N" "N" "N" "N" ...
#>  $ sub_other     : chr [1:5] "N" "N" "N" "Y" ...
#>  $ sub_otext     : chr [1:5] NA NA NA "ORGAN TRANSPLANT PROGRAM" ...


Organizational Provider

Exploring links between providers can lead to many interesting insights. For example, there is a hospital in New York named Elizabethtown Community Hospital.

providers(org_name = "Elizabethtown Community Hospital")
#>  Query returned 9 results.
#> # A tibble: 9 × 11
#>   first middle last  org_name      state spec  specialty npi   multi pac   enid 
#>   <chr> <chr>  <chr> <chr>         <chr> <chr> <chr>     <chr> <chr> <chr> <chr>
#> 1 NA    NA     NA    ELIZABETHTOW… NY    12-70 PART B S… 1053… Y     3577… O200…
#> 2 NA    NA     NA    ELIZABETHTOW… NY    00-85 PART A P… 1891… Y     3577… O201…
#> 3 NA    NA     NA    ELIZABETHTOW… NY    12-59 PART B S… 1487… N     3577… O201…
#> 4 NA    NA     NA    ELIZABETHTOW… NY    00-85 PART A P… 1407… N     3577… O202…
#> 5 NA    NA     NA    ELIZABETHTOW… CT    12-70 PART B S… 1053… N     3577… O202…
#> 6 NA    NA     NA    ELIZABETHTOW… FL    12-70 PART B S… 1053… N     3577… O202…
#> 7 NA    NA     NA    ELIZABETHTOW… VT    12-70 PART B S… 1053… N     3577… O202…
#> 8 NA    NA     NA    ELIZABETHTOW… NH    12-70 PART B S… 1053… N     3577… O202…
#> 9 NA    NA     NA    ELIZABETHTOW… CO    12-70 PART B S… 1053… N     3577… O202…
hospitals(org_name = "Elizabethtown Community Hospital")
#>  Query returned 2 results.
#> # A tibble: 2 × 39
#>   org_name     dba_name enid  enid_state spec  specialty npi   multi ccn   ccn_2
#>   <chr>        <chr>    <chr> <chr>      <chr> <chr>     <chr> <chr> <chr> <chr>
#> 1 ELIZABETHTO… NA       O201… NY         00-85 PART A P… 1891… Y     3313… NA   
#> 2 ELIZABETHTO… NA       O202… NY         00-85 PART A P… 1407… N     33Z3… NA   
#> # ℹ 29 more variables: pac <chr>, inc_date <chr>, inc_state <chr>,
#> #   org_type <chr>, org_text <chr>, designation <chr>, add_1 <chr>,
#> #   add_2 <chr>, city <chr>, state <chr>, zip <chr>, location_type <chr>,
#> #   location_text <chr>, reh_ind <chr>, reh_date <chr>, sub_general <chr>,
#> #   sub_acute <chr>, sub_drug <chr>, sub_child <chr>, sub_long <chr>,
#> #   sub_psych <chr>, sub_rehab <chr>, sub_short <chr>, sub_swing <chr>,
#> #   sub_psych_unit <chr>, sub_rehab_unit <chr>, sub_specialty <chr>, …
clinicians(facility_name = "Elizabethtown Community Hospital")
#>  Query returned 60 results.
#> # A tibble: 60 × 25
#>    first    middle last    suffix gender cred  school year  specialty spec_other
#>    <chr>    <chr>  <chr>   <chr>  <chr>  <chr> <chr>  <chr> <chr>     <chr>     
#>  1 JEFFREY  NA     KLOTZ   NA     M      MD    OTHER  2022  FAMILY P… NA        
#>  2 RYAN     NA     WALSH   NA     M      MD    OTHER  2007  DIAGNOST… NA        
#>  3 RYAN     NA     WALSH   NA     M      MD    OTHER  2007  DIAGNOST… NA        
#>  4 RUSSELL  NA     MEYER   NA     M      MD    UNIVE… 2009  DIAGNOST… NA        
#>  5 RUSSELL  NA     MEYER   NA     M      MD    UNIVE… 2009  DIAGNOST… NA        
#>  6 JAMES    NA     KENNEY  NA     M      MD    UNIVE… 1992  DIAGNOST… NA        
#>  7 BENJAMIN NA     BAMFORD NA     M      MD    UNIVE… 1992  DIAGNOST… NA        
#>  8 BENJAMIN NA     BAMFORD NA     M      MD    UNIVE… 1992  DIAGNOST… NA        
#>  9 STEVEN   E      DESO    NA     M      MD    BOSTO… 2010  DIAGNOST… INTERVENT…
#> 10 LAURENT  NA     GILLOT… NA     M      MD    OTHER  1998  DIAGNOST… NA        
#> # ℹ 50 more rows
#> # ℹ 15 more variables: facility_name <chr>, npi <chr>, pac <chr>, enid <chr>,
#> #   org_pac <chr>, org_mems <chr>, add_1 <chr>, add_2 <chr>, city <chr>,
#> #   state <chr>, zip <chr>, phone <chr>, ind <chr>, grp <chr>, tele <chr>
reassignments(org_name = "Elizabethtown Community Hospital")
#>  Query returned 356 results.
#> # A tibble: 356 × 14
#>    first   last  state specialty ind_assoc npi   pac   enid  org_name org_assign
#>    <chr>   <chr> <chr> <chr>     <chr>     <chr> <chr> <chr> <chr>    <chr>     
#>  1 Nathal… Abis… NY    Family P… 1         1336… 5294… I202… Elizabe… 186       
#>  2 Jose    Acos… NY    Medical … 5         1013… 5890… I201… Elizabe… 186       
#>  3 Jose    Acos… NY    Medical … 5         1013… 5890… I201… Elizabe… 114       
#>  4 Aderon… Aden… NY    Cardiova… 3         1407… 8820… I201… Elizabe… 186       
#>  5 Dmitriy Akse… NY    Diagnost… 4         1629… 4385… I202… Elizabe… 186       
#>  6 Dmitriy Akse… VT    Diagnost… 6         1629… 4385… I201… Elizabe… 33        
#>  7 Vlada   Alex… NY    Pathology 3         1952… 5092… I201… Elizabe… 186       
#>  8 Anel    Alex… NY    Emergenc… 6         1720… 3678… I201… Elizabe… 186       
#>  9 Anel    Alex… NY    Emergenc… 6         1720… 3678… I201… Elizabe… 114       
#> 10 Loren   Allen NY    Nurse Pr… 2         1770… 1658… I201… Elizabe… 186       
#> # ℹ 346 more rows
#> # ℹ 4 more variables: org_pac <chr>, org_enid <chr>, org_state <chr>,
#> #   type <chr>


The Hospital Enrollment API includes only Medicare Part A (hospital) providers, so we only get two rows back, but those include a new data point: two facility CCNs. Plugging those into the Facility Affiliations API, we can retrieve information on the individual providers practicing at this hospital. First, the all-numeric CCN (331302):


ccn <- affiliations(facility_ccn = 331302)
#>  Query returned 206 results.
list(
  organization = as.data.frame(t(unique(ccn[7:9]))),
  individual = unique(ccn[1:6])
  )
#> $organization
#>                     V1
#> facility_type Hospital
#> facility_ccn    331302
#> parent_ccn        <NA>
#> 
#> $individual
#> # A tibble: 206 × 6
#>    first   last            middle suffix npi        pac       
#>    <chr>   <chr>           <chr>  <chr>  <chr>      <chr>     
#>  1 LAURA   GREENE          A      NA     1003845272 1759384035
#>  2 DEBORAH KAMPSCHROR      M      NA     1013141860 8022069558
#>  3 NAROD   VASSILIAN       NA     NA     1013539584 9133544109
#>  4 EMILY   TRIPLETT        NA     NA     1013595560 3375947401
#>  5 JOSE    ACOSTAMADIEDO   M      NA     1013910256 5890719371
#>  6 LINDSEY WILHELM         B      NA     1023377843 6901115278
#>  7 VANESSA FIORINI FURTADO NA     NA     1043672140 7214229350
#>  8 JOHN    YOUNG           NA     NA     1063420891 9436051687
#>  9 DELANEY OSBORN          NA     NA     1073073177 0547593097
#> 10 ANGAD   GILL            NA     NA     1073133435 6800318452
#> # ℹ 196 more rows


That returns individual providers affiliated with the hospital. Now to search the alphanumeric CCN (33Z302):

ccn2 <- affiliations(facility_ccn = "33Z302")
#>  Query returned 4 results.
list(
  organization = as.data.frame(t(unique(ccn2[7:9]))),
  individual = unique(ccn2[1:6])
  )
#> $organization
#>                         V1
#> facility_type Nursing home
#> facility_ccn        33Z302
#> parent_ccn          331302
#> 
#> $individual
#> # A tibble: 4 × 6
#>   first   last     middle suffix npi        pac       
#>   <chr>   <chr>    <chr>  <chr>  <chr>      <chr>     
#> 1 JEFFREY KLOTZ    NA     NA     1073258398 3870095805
#> 2 MARY    HALLORAN K      NA     1396989059 8921259557
#> 3 IL      CHON     JUN    NA     1538173869 0547299091
#> 4 DRAGOS  BANU     NA     NA     1558659367 6709004682


That returns more affiliated individual providers that practice in the Hospital’s nursing home..


An alphanumeric CCN represents a sub-unit of the hospital, here a nursing home. We would get the same result if we’d set the parent_ccn argument to the numeric CCN, i.e. affiliations(parent_ccn = 331302)