Identifying Providers in VA Administrative Data
VA administrative data are incredibly rich and provide detailed information on patient visits, including the provider or provider teams who care for the patient. Below are some commonly asked questions about identifying providers in VA administrative data.
- The best dataset to identify a patient's primary care provider is the Primary Care Management Module (PCMM) or Reengineered Primary Care Management Module (RPCMM). RPCMM is the current system used at most, but not all, sites. PCMM is the legacy system that is still in use. In general, if you are interested in years prior to fiscal year 2016 (FY16), use the PCMM file; if you are interested in FY16 or later, use both the PCMM and RPCMM.
- PCMM/RPCMM list an assignment between the primary care provider (PCP) and the patient. Each record in the PCMM/RPCMM lists the date the assignment started (RelationshipStartDate) and the date the assignment ended (RelationshipEndDate), if applicable.
- In general, patients can have only 1 assigned primary care provider at a time, unless they have multiple residences (e.g., snow birds). In the case of snow birds, for example, these patients can have concurrent primary care provider assignments for two providers.
- Relationship end dates may be missing for two reasons: because the relationship has not ended or because the ending date was never posted to the dataset.
- To identify a list of PCPs in the PCMM table PatientProviders, try the following logic: (ProviderRole="PC ASSIGNMENT" OR "PC ATTENDING") AND (TeamPurpose="Primary CARE" OR "PRIMARY CARE _ HBPC"). The resulting list allows you to identify a provider using the variable PrimaryProviderSID.
- To identify current PCP assignments in the CDW PCMM domain table, only use records where: [(CurrentProviderFlag=YES) AND (RelationshipEndDate=(.))].
- When you have identified a list of providers in the PCMM, you can use the variables PrimaryProviderSID and sta3n to identify these providers in other files. The combination of PrimaryProviderSID+sta3n from the CDW PCMM.PatientProviders table can be crosswalked to the CDW Staff table as StaffSID+sta3n. (Essentially, PrimaryProviderSID is the same as StaffSID for a given sta3n).
- CDW utilization data can be linked to the Staff or SStaff tables. The following is example SSMS code to display how tables are linked in a tabular format:
WHERE ([RKViewFieldName] like '%StaffSID' OR [PKViewFieldName] like '%StaffSID' ) AND ([FKViewName] in ('Inpatient','Visit') OR [FKViewName] like '%Provider%')
- The National Provider Identifier (NPI) is a unique 10-digit identification number issued by the Centers for Medicare and Medicaid Services to all health care providers in the United States. NPI is available within the VA CDW SStaff table.
- NPI and Medicare IDs have an M to M relationship. You can use NPI to link providers in VA and Medicare. The Centers for Medicare and Medicaid Services has more information on NPI at https://www.cms.gov/Regulations-and-Guidance/Administrative-Simplification/NationalProvIdentStand/DataDissemination.html.
- If you have access to Medicaid data but only have access to the provider identifier and CPT codes, use the CPT codes associated with the provider identifier to categorize the provider based on the type of care they provided.
- To link Patient Aligned Care Team (PACT) data to the VA CDW Vital Signs data, link the variable LocationSID from the CDW Vital.VitalSigns table to Dim.Location. Within the Dim file, there are several useful columns including LocationName, LocationAbbreviation, and PatientFriendlyLocationName. At least one of these fields often contains the name of the provider responsible for the PACT.
- In the Fee Basis data (MED/INPT/INPT_ANCIL), the variable VEN13N can be used as a proxy for the provider. Not too long ago, TPTB added a VEN13N format to the SAS formats. In order to attach a description to VEN13N, you can use the SAS function PUT as follows: VEN13N_STRING=PUT(VEN13N, $ven13n.);
- The "$" sign is to indicate that the format is character. Now, you have to decide whether this is truly the provider of the health care service, or is it just the billing entity.
- You can look into the VEN13N mapping by converting the SAS format into a SAS table with the following code:
proc format library=library cntlout=a;
data a; set a; where fmtname="VEN13N"; run;
- There is no easy way to identify a surgeon in the inpatient VA administrative data. There is no provider listed in the MedSAS inpatient (PS or PP files) or in the VA Surgical Quality Improvement Program (VASQIP).
- In the VistA Surgery Package, you can use the Surgeon_14 field. This is a mandatory field for staff in the operating room to complete.
- Within CDW, identifying the surgeon is much more unreliable. Looking to the SurgeryINTRA domain, SurgeonSID may track the actual surgeon, but it could also be a resident or attending. Oftentimes this field may be empty.
- One consideration is that the actual surgeon has to dictate a note and that note should be recorded for workload capture and for care compliance in the TIU notes.
- Each record in the SE file lists up to 10 providers in the PROV1 to PROV10 field. Providers can include physicians (MD, DO), advanced practitioners (PA, NP), nurses (RN, LPN, CNS), technicians (i.e., phlebotomists), and others. You can identify the provider type by using the PROVID1 to PROVID10 fields. Each code in the PROVID field includes a numerical value that corresponds to a provider type category. For more information on the provider categories, see the VIReC Research User Guide Fiscal Year 2014 VHA Medical SAS Outpatient Datasets and Inpatient Encounters Dataset (Intranet-only: https://vaww.virec.research.va.gov/RUGs/MedSAS/RUG-MedSAS-OP-FY14.pdf; page 80).
- The fields PROVID1 to PROVID10 are 18-digit identifiers where the first 3 digits are the provider's 3-digit parent station identifier (sta3n), followed by a series of zeroes (0), and then their provider Internal Entry Number (StaffIEN). For example, if the sta3n=640 and the StaffIEN=123456789, then the PROVID=640000000123456789.You can use the following code to generate PROVID from a list of sta3n's and StaffIEN's:
ProviderID = put(sta3n, 3.)||put(StaffIEN*1, Z15.)
We would like to thank the following staff for providing insight toward the creation of this page: Sesh Mudumbai, Paul Barnett, Jo Jacobs, Lakshmi Ananth, Adam Chow, Howard Jiang, Vilija Joyce, Jeanie Lo, Winifred Scott, and Elizabeth Gehlert.
Last updated: 2019-03-28