檢查與處置前處理與整合方法

cat(utils::packageDescription("dxpr")$Description)
## "dxpr" is a health data analysis tool for ICD diagnosis and procedure codes in electronic medical record. It is used for data integration, data wrangling and visualization.

安裝套件

install.packages("remotes")
# Install development version from GitHub
remotes::install_github("DHLab-TSENG/dxpr")
library(dxpr)

ICD-PCS-CODE 格式對照

本套件使用的處置編碼依照CMS (Centers for Medicare & Medicaid Services)所提供的處置編碼做為標準依據,並依照WHO訂定的處置編碼規則,產生 ICD-9-PCS 兩種格式的表格: ICD9PrwithTwoFormat

供後續處置編碼格式轉換的功能使用

ICD-9-PCS

# ICD-9-PCS_Short
head(ICD9PrwithTwoFormat$Short)
#> [1] "0001" "0002" "0003" "0009" "0010" "0011"

# ICD-9-PCS_Decimal
head(ICD9PrwithTwoFormat$Decimal)
#> [1] "00.01" "00.02" "00.03" "00.09" "00.10" "00.11"

ICD-10-PCS只有short的格式

# ICD-10-PCS_Short
head(prICD10$ICD)
#> [1] "0016071" "0016072" "0016073" "0016074" "0016075" "0016076"

範例資料

以下功能介紹皆以samplePrFile做為範例,共有3位病患,170筆診斷紀錄

head(samplePrFile)
#>    ID   ICD       Date
#> 1:  B  5681 2008-01-14
#> 2:  A  9774 2009-01-11
#> 3:  B 44.99 2009-05-10
#> 4:  C 07.59 2009-01-21
#> 5:  B  0205 2008-07-06
#> 6:  B  8812 2007-06-27

I. Code standardization

ICD-9-PCS 兩種格式的轉換: Short <-> Decimal

將醫療大數據中的處置編碼進行編碼一致格式的轉換,以便後續處置編碼的標準化分群。依據CCS(Clinical Classifications Software)及Procedure class分組表中處置編碼格式如表一

表一 標準化分組之處置編碼格式

ICD format
Clinical Classifications Software short format
Procedure class short format

舉例來說,當使用者欲進行CCS的標準化分組,在分組前必須先將資料的處置編碼統一轉換為short的格式

疾病分組時,為能區別疾病分類編碼版本ICD-9/ICD-10,本套件依據紀錄日期區分疾病分類編碼的版本,其時間切割點可依使用者需求設定。
如使用者分析台灣的醫療資料,ICD-10使用日期設定為2016年1月1日;
如使用者分析美國的醫療資料,ICD-10使用日期設定為2015年10月1日。

如範例,區分處置編碼版本的日期為:2015年10月1日

將 ICD-PCS code 的格式統一轉成 Decimal

decimal <- icdPrShortToDecimal(prDataFile = samplePrFile,
                               icdColName = ICD, 
                               dateColName = Date,
                               icd10usingDate = "2015/10/01")
head(decimal$ICD)
#>      ICD
#> 1: 56.81
#> 2: 97.74
#> 3: 44.99
#> 4: 07.59
#> 5: 02.05
#> 6: 88.12

將 ICD-PCS code 的格式統一轉成 Short

short <- icdPrDecimalToShort(prDataFile = samplePrFile,
                             icdColName = ICD, 
                             dateColName = Date,
                             icd10usingDate = "2015/10/01")
head(short$ICD)
#>     ICD
#> 1: 5681
#> 2: 9774
#> 3: 4499
#> 4: 0759
#> 5: 0205
#> 6: 8812

warning message (詳細流程請參考: 診斷前處理與整合方法)

醫療數據的處置編碼有可能誤植導致處置編碼錯誤,而錯誤的處置編碼將影響後續臨床疾病分組錯誤或是無法分組的情形。
為方便使用者修改錯誤的處置編碼,dxpr套件會提供warning message提醒使用者些錯誤的處置編碼。

II. Data integration

將處置編碼依照不同的分類標準分類:分散的處置編碼依照其臨床上意義相似的歸併整合為較大的群組, 標準化的分類以便於後續的整合統計分析使用

目前分類標準:CCS及 Procedure Class,以下將分別介紹之

###一、臨床分類軟體 係以美國醫療照護政策研究品質局(AHRQ)為提供健康政策研究而所發展之「臨床分類軟體」(Clinical Classifications Software, CCS)。 CCS 分為單一階層及多階層的分群,其階層是診斷分類可依使用需求調整分類標準

  • 單一階層: 較通用的分類
  • 多階層: 將診斷碼分為較精確的分組

1) 單一階層分類

icdPrToCCS 可取得處置編碼相對應的 CCS 分類(CCS Category)及分類之敘述
ICD-9-PCS 和 ICD-10-PCS 的ccs單一階層一致:共231種

## ICD to CCS category
CCS <- icdPrToCCS(prDataFile = samplePrFile,
                  idColName = ID,
                  icdColName = ICD,        
                  dateColName = Date,
                  icd10usingDate = "2015-10-01",
                  isDescription = TRUE)

head(CCS$groupedDT, 5)
#>    Short ID   ICD       Date                           CCS_CATEGORY_DESCRIPTION
#> 1:  5681  B  5681 2008-01-14   Other OR therapeutic procedures of urinary tract
#> 2:  9774  A  9774 2009-01-11 Other non-OR therapeutic procedures; female organs
#> 3:  4499  B 44.99 2009-05-10           Other OR upper GI therapeutic procedures
#> 4:  0759  C 07.59 2009-01-21                   Therapeutic endocrine procedures
#> 5:  0205  B  0205 2008-07-06     Other OR therapeutic nervous system procedures

2) 多階層分類

icdPrToCCSLvl 可取得處置編碼相對應的 CCS 多階層分類 (Multiple ccs level) 及分類之敘述

  • ICD-9-PCS 共 3個階層 (Level 1~3)
  • ICD-10-PCS 共 2個階層 (Level 1~2)
## ICD to CCS multiple level 2 description
CCSLvl <- icdPrToCCSLvl(prDataFile = samplePrFile,
                       idColName = ID,
                       icdColName = ICD,        
                       dateColName = Date,
                       icd10usingDate = "2015-10-01",
                       CCSLevel = 2,
                       isDescription = TRUE)

head(CCSLvl$groupedDT, 5)
#>    Short ID   ICD       Date                                    CCS_LVL_2_LABEL
#> 1:  5681  B  5681 2008-01-14   Other OR therapeutic procedures of urinary tract
#> 2:  9774  A  9774 2009-01-11 Other non-OR therapeutic procedures; female organs
#> 3:  4499  B 44.99 2009-05-10           Other OR upper GI therapeutic procedures
#> 4:  0759  C 07.59 2009-01-21             Other therapeutic endocrine procedures
#> 5:  0205  B  0205 2008-07-06     Other OR therapeutic nervous system procedures

二、Procedure Class

由美國醫療照護政策研究品質局(AHRQ)提供的HCUP Classes,將檢查與處置碼基於其特性分組,共ICD-PCS code分為下列四個組別:
1. Minor Diagnostic:非手術室執行之診斷類處置
2. Minor Therapeutic:非手術室執行之治療類處置
3. Major Diagnostic:需在手術室執行之診斷類處置
4. Major Therapeutic:需在手術室執行之治療類處置

ProcedureClass <- icdPrToProcedureClass(prDataFile = samplePrFile,
                                        idColName = ID,
                                        icdColName = ICD,      
                                        dateColName = Date,
                                        icd10usingDate = "2015-10-01",
                                        isDescription = FALSE)
head(ProcedureClass$groupedDT, 5)
#>    Short ID   ICD       Date PROCEDURE_CLASS_NAME
#> 1:  5681  B  5681 2008-01-14                    4
#> 2:  9774  A  9774 2009-01-11                    2
#> 3:  4499  B 44.99 2009-05-10                    4
#> 4:  0759  C 07.59 2009-01-21                    4
#> 5:  0205  B  0205 2008-07-06                    4