wiki:Hicdep_1.50/QaChecks

QA checks

This page lists all QA checks currently defined for HICDEP 1.50. The attached QA.csv file also serves as data source for the QA sections in the articles describing the individual tables.

Checks added in so far have been collated from 3 sources:

  • CASCADE
  • EPPICC FPV/DRV mergers
  • PENTA Eurocoord merger

Checks on a table's additional fields have not been included at this stage

Only a few checks for non-HICDEP tables, non-HICDEP fields in HICDEP tables and Study-specific checks have been included at this stage for demo/testing purposes.

Pregnancy and paediatric tables are still in draft and being discussed, therefore they have not yet been included (these are tblDELIVERY_CHILD, tblDELIVERY_MUM, tblNEWBORN and tblNEWBORN_ABNORM, tblPREG, tblPREG_OBS and tblPREG_OUT).

Error Codes

The error codes allow to unambiguously reference a certain problem with a given data set. When merging data from different cohorts, the data manager may report problems for instance as follows:

[ATC006] in tblART/ART_ID: there is no drug named 'XYZ' in the coding list

Note: the use of the error code alone is not sufficient to locate a problem since some of them are fairly generic.

Used like above, error codes can help to clearly communicate issues. This holds especially if the QA requirements are being checked by an automatic system.

QA checks listed nowhere else

These are QA checks which are either not directly applicable to a specific table or to tables which are not (yet) part of HICDEP.

Table Crosstable Error Code Description Study specific HICDEP?
AppendixCrossTableGC001New patients who were not submitted last time we did this mergerEPPICC NO
AppendixCrossTableGC002Patients left out who were submitted last time we did this mergerEPPICC NO
tblAE_NEWCrossTableANC001tblBAS says AE_FPV=1, yet records in tblAE_NEW whilst on FPVEPPICC NO
tblAE_NEWCrossTableANC002AE_DRUG not reported in tblART or tblMED EPPICC NO
AppendixCrossTableGC003Spot-check dates to ensure no Excel date-zero errorsEPPICC NO
tblAE_NADMWithinTableANDW001Duplicate records for same EVENT_IDEPPICC NO
tblAE_NADMCrossTableANDC001EVENT_ID doesn't exist in tblAE_NEWEPPICC NO
tblAE_NADMWithinTableANDW002Missing PatientEPPICC NO
tblAE_NADMWithinTableANDW003Missing EVENT_IDEPPICC NO
tblAE_NADMWithinTableANDW004Missing CANTYP_TEPPICC NO
tblAE_NADMWithinTableANDW005Missing PATREP_SEPPICC NO
tblAE_NADMWithinTableANDW006DIAOTH_Y=1 and DIA_S is missingEPPICC NO
tblAE_NADMCrossTableANDC002PATIENT doesn't exist in tblBASEPPICC NO
tblAE_NEWCrossTableANC003PATIENT has no record in BASEPPICC NO
tblAE_NEWCrossTableANC004AE happened before that drug was startedEPPICC NO
tblAE_NEWWithinTableANW001More than one record for same patient on same date with same AE_IDEPPICC NO
tblAE_NEWWithinTableANW002More than one record for same patient with same EVENT_IDEPPICC NO
tblAE_NEWWithinTableANW003Missing PATIENTEPPICC NO
tblAE_NEWWithinTableANW004Missing AE_DEPPICC NO
tblAE_NEWWithinTableANW005Missing AE_IDEPPICC NO
tblAE_NEWWithinTableANW006Missing EVENT_IDEPPICC NO
tblAE_NEWWithinTableANW007Missing AE_RESEPPICC NO
tblAE_NEWWithinTableANW008Missing AE_TEXTEPPICC NO
tblAE_NEWWithinTableANW009Missing AE_DRUGEPPICC NO
tblAE_NEWCrossTableANC005AE_ART=1 but doesn't agree with records in ART tableEPPICC NO

All QA checks

A complete list of all QA checks listed in the QA.csv file:

Table Crosstable Error Code Description Study specific HICDEP?
AllTablesCrossTableATC001any date in database after DEATH_D in tblLTFUYES
AllTablesCrossTableATC002any date in database after DROP_D in tblLTFUYES
AllTablesCrossTableATC003any date in database before BIRTH_D in tblBASYES
AllTablesCrossTableATC004any date in database in the futureYES
AllTablesCrossTableATC005patients submitted previously who have been missed outYES
AllTablesCrossTableATC006Any fields not coded as coding lists on table definitionYES
AppendixCrossTableGC001New patients who were not submitted last time we did this mergerEPPICC NO
AppendixCrossTableGC002Patients left out who were submitted last time we did this mergerEPPICC NO
tblAE_NEWCrossTableANC001tblBAS says AE_FPV=1, yet records in tblAE_NEW whilst on FPVEPPICC NO
tblAE_NEWCrossTableANC002AE_DRUG not reported in tblART or tblMED EPPICC NO
tblARTWithinTableAW001ART_RS not 0, but end date NULLYES
tblARTWithinTableAW002ART_RS=0 but end-date non NULLYES
tblARTWithinTableAW003ART_RS=98 yet ART_OTH is nullYES
tblARTWithinTableAW004Duplicate records for same cohort, patient, art_id and art_sdYES
tblARTWithinTableAW005Dose out of range for those dose units and frequencyPaediatricOnlyYES
tblARTWithinTableAW006Missing art_fr PaediatricOnlyYES
tblARTWithinTableAW007Missing art_do PaediatricOnlyYES
tblARTWithinTableAW008Missing patient YES
tblARTWithinTableAW009Missing art_id YES
tblARTWithinTableAW010Missing art_sdYES
tblARTWithinTableAW011Overlapping periods of same drugYES
tblARTWithinTableAW012Double reporting - records reported for both combination drugs and their components YES
tblARTWithinTableAW013Periods of overlap of contra-indicated drugsYES
tblARTWithinTableAW014Restart of same drug without a stop YES
tblARTWithinTableAW015ART_SD greater than or equal to ART_EDYES
tblARTCrossTableAC001Patient has no record in table BASYES
tblARTCrossTableAC002Records exist in tblART yet RECART_Y=0 in tblBASYES
tblBASWithinTableBW001AIDS date < SEROCO_DYES
tblBASWithinTableBW002Duplicate patientsYES
tblBASWithinTableBW003First 3 chars of PATIENT don't form valid cohort codeCascadeOnlyYES
tblBASWithinTableBW004Missing patient YES
tblBASWithinTableBW005Missing CENTERYES
tblBASWithinTableBW006Missing BIRTH_DYES
tblBASWithinTableBW007Missing FRSVIS_DYES
tblBASWithinTableBW008Missing ENROL_DYES
tblBASWithinTableBW009Missing GENDERYES
tblBASWithinTableBW010Missing HEIGHYES
tblBASWithinTableBW011Missing MODEYES
tblBASWithinTableBW012Missing MODE_OTH if MODE=90YES
tblBASWithinTableBW013Missing OriginYES
tblBASWithinTableBW014Missing ETHNICYES
tblBASWithinTableBW015Missing SEROCO_DYES
tblBASWithinTableBW016Missing RECART_YYES
tblBASWithinTableBW017Missing AIDS_YYES
tblBASWithinTableBW018Missing AIDS_D if AIDS_Y=1YES
tblBASWithinTableBW019BIRTH_D out of range (15-85 yrs)CascadeOnlyYES
tblBASWithinTableBW020BIRTH_D out of range (<18)PENTAYES
tblBASCrossTableBC001AIDS_Y=1 but no records in tblART YES
tblBASCrossTableBC002AIDS_Y=0, but AIDS-defining records in tblDISYES
tblBASCrossTableBC003AIDS_Y=1 but no AIDS-defining records in tblDIS tableYES
tblDISWithinTableDW001Duplicate records for same DIS_ID and same DIS_DYES
tblDISWithinTableDW002Miscoded DIS_WD as codes on table definitionYES
tblDISWithinTableDW003Miscoded DIS_ID - as in code list attached to table definitionYES
tblDISWithinTableDW004DIS_D missingYES
tblDISWithinTableDW005DIS_ID missingYES
tblDISWithinTableDW006Same event recorded twice - 2 records, same DIS_ID, DIS_D within 6 monthsYES
tblDISCrossTableDC001Patient has no record in BASYES
tblDISCrossTableDC002AIDS-defining records, yet AIDS=0 in tblBASYES
tblDISCrossTableDC003First AIDS-defining DIS_D not equal to AIDS_D in tblBASYES
tblLABWithinTableLW001Duplicate recordsYES
tblLABWithinTableLW002Missing LAB_DYES
tblLABWithinTableLW003Missing LAB_VYES
tblLABWithinTableLW004Missing LAB_UYES
tblLABWithinTableLW005Missing LAB_IDYES
tblLABWithinTableLW006Missing LAB_LLNYES
tblLABWithinTableLW007Missing LAB_ULNYES
tblLABWithinTableLW008Missing LAB_FAYES
tblLABWithinTableLW009Missing LAB_STYES
tblLABWithinTableLW010LAB_V out of range for unit LAB_UYES
tblLABCrossTableLC001Patient has no record in BAS tableYES
tblLAB_CD4WithinTableCW001CD4 value out of rangeYES
tblLAB_CD4WithinTableCW002Duplicate records for same dateYES
tblLAB_CD4WithinTableCW003Missing CD4_DYES
tblLAB_CD4WithinTableCW004Missing CD4_VYES
tblLAB_CD4WithinTableCW005Missing CD4_UYES
tblLAB_CD4WithinTableCW006Miscoded CD4_U as coding list on table definitionYES
tblLAB_CD4WithinTableCW007CD4_U=2 (percentage) and CD4_V>100YES
tblLAB_CD4WithinTableCW008CD4_U=(1 or 3) and CD4_V>3000YES
tblLAB_CD4WithinTableCW009CD4 counts spike up or down suddenly (large change in less than a year)YES
tblLAB_CD4CrossTableCC001Patient has no record in BASYES
tblLAB_RESWithinTableLRW001Duplicate records for same patient on same dateYES
tblLAB_RESWithinTableLRW002Missing PATIENTYES
tblLAB_RESWithinTableLRW003Missing SAMP_IDYES
tblLAB_RESWithinTableLRW004Missing SAMPLE_DYES
tblLAB_RESWithinTableLRW005Missing SEQ_DTYES
tblLAB_RESWithinTableLRW006Missing LABYES
tblLAB_RESWithinTableLRW007Missing LIBRARYYES
tblLAB_RESWithinTableLRW008Missing REFSEQYES
tblLAB_RESWithinTableLRW009Missing KITYES
tblLAB_RESWithinTableLRW010Missing SOFTWAREYES
tblLAB_RESWithinTableLRW011Missing TESTTYPEYES
tblLAB_RESWithinTableLRW012Missing SUBTYPEYES
tblLAB_RESWithinTableLRW013SEQ_DT has no time partYES
tblLAB_RESCrossTableLRC001PATIENT has no record in tblBASYES
tblLAB_RESCrossTableLRC002This SAMP_ID has both LVL_1 and LVL_2 recordsYES
tblLAB_RES CrossTableLRC003TESTTYPE in (1,9) (i.e. not phenotype) yet no records in LVL_1 or LVL_2YES
tblLAB_RES_LVL_1WithinTableL1W001Duplicate records per SAMP_IDYES
tblLAB_RES_LVL_1WithinTableL1W002SEQ_START > SEQ_STOPYES
tblLAB_RES_LVL_1WithinTableL1W003SEQ_NUC contains invalid IUPAC characterYES
tblLAB_RES_LVL_1WithinTableL1W004Missing SAMP_IDYES
tblLAB_RES_LVL_1WithinTableL1W005Missing SEQ_STARTYES
tblLAB_RES_LVL_1WithinTableL1W006Missing SEQ_STOPYES
tblLAB_RES_LVL_1WithinTableL1W007Missing SEQ_NUCYES
tblLAB_RES_LVL_1CrossTableL1C001SAMP_ID not in tblLAB_RES.SAMPLE_IDYES
tblLAB_RES_LVL_2WithinTableL2W001AA_FOUND_x but nothing in AA_FOUND(x-1)YES
tblLAB_RES_LVL_2WithinTableL2W002Duplicate records per SAMP_IDYES
tblLAB_RES_LVL_2WithinTableL2W003Missing SAMP_IDYES
tblLAB_RES_LVL_2WithinTableL2W004Missing GENEYES
tblLAB_RES_LVL_2WithinTableL2W005Missing AA_POSYES
tblLAB_RES_LVL_2WithinTableL2W006Missing AA_POS_SUBYES
tblLAB_RES_LVL_2WithinTableL2W007Missing AA_FOUND_1YES
tblLAB_RES_LVL_2CrossTableL2C001SAMP_ID not in tblLAB_RES.SAMPLE_IDYES
tblLAB_RNAWithinTableRW001Duplicate records for same RNA_DYES
tblLAB_RNAWithinTableRW002RNA_V=-1 and RNA_L missingYES
tblLAB_RNAWithinTableRW003RNA_V=+1 and RNA_U missingYES
tblLAB_RNAWithinTableRW004Missing RNA_D YES
tblLAB_RNAWithinTableRW005Missing RNA_V YES
tblLAB_RNAWithinTableRW006RNA_V > 10 millionYES
tblLAB_RNAWithinTableRW007RNA_V < RNA_LYES
tblLAB_RNAWithinTableRW008RNA_V > RNA_UYES
tblLAB_RNAWithinTableRW009RNA_V < 0YES
tblLAB_RNACrossTableRC001Patient has no record in BASYES
tblLAB_VIROWithinTableLVW001Patient doesn't have a record in BASYES
tblLAB_VIROWithinTableLVW002Missing patient YES
tblLAB_VIROWithinTableLVW003Missing VS_IDYES
tblLAB_VIROWithinTableLVW004Missing VS_DYES
tblLAB_VIROWithinTableLVW005Missing VS_RYES
tblLAB_VIROWithinTableLVW006Missing VS_VYES
tblLAB_VIROWithinTableLVW007Missing VS_UYES
tblLAB_VIROWithinTableLVW008More or less than exactly 1 positive HIV test per patientYES
tblLAB_VIROWithinTableLVW009More than 1 negative HIV test for a patientYES
tblLAB_VIROWithinTableLVW010Date of negative test after date of positive testYES
tblLAB_VIROWithinTableLVW011Duplicate recordsYES
tblLTFUWithinTableLFW001DROP_Y and DEATH_Y both non-nullYES
tblLTFUWithinTableLFW002DEATH_Y and DROP_RS both non-null YES
tblLTFUWithinTableLFW003Any of DEATH_Rx or DEATH_RCx non-null but DEATH_Y=0YES
tblLTFUWithinTableLFW004R2/RC2 non-null but R1/RC1 nullYES
tblLTFUWithinTableLFW005R3/RC3 non-null but R2/RC2 nullYES
tblLTFUWithinTableLFW006Duplicate patientsYES
tblLTFUWithinTableLFW007Missing DROP_YYES
tblLTFUWithinTableLFW008Missing DROP_D if DROP_Y=1YES
tblLTFUWithinTableLFW009Missing DROP_RS if DROP_Y=1YES
tblLTFUWithinTableLFW010Missing DEATH_YYES
tblLTFUWithinTableLFW011Missing DEATH_D if DEATH_Y=1YES
tblLTFUWithinTableLFW012DEATH_D non null but DEATH_Y=0YES
tblLTFUCrossTableLFC001Patient not found in tblBASYES
tblLTFUCrossTableLFC002patient in tblBAS hasn't got a record in tblLTFUYES
tblLTFUCrossTableLFC003tblBAS has AIDS=0 but DEATHRx =8.1 YES
tblMEDWithinTableMW001Duplicate recordsYES
tblMEDWithinTableMW002MED_ONG=0 and MED_ED null YES
tblMEDWithinTableMW003MED_ONG=1 and MED_ED non-null YES
tblMEDWithinTableMW004Missing MED_IDYES
tblMEDWithinTableMW005Missing MED_SDYES
tblMEDWithinTableMW006Misisng MED_EDYES
tblMEDWithinTableMW007Overlapping periods of same drugYES
tblMEDWithinTableMW008MED_ED < MED_SDYES
tblMEDCrossTableMC001Patient has no records in tblBASYES
tblOVERLAPWithinTableOW001Invalid other cohortYES
tblOVERLAPCrossTableOC001PATIENT not found in tblBAS for that cohortYES
tblOVERLAPCrossTableOC002PAT_OTH not found in tblBAS for that overlapping cohortYES
tblVISWithinTableVW001Duplicate records, same VIS_DYES
tblVISWithinTableVW002Height decreasing over time YES
tblVISWithinTableVW003Height out of acceptable rangeYES
tblVISWithinTableVW004Weight out of acceptable rangeYES
tblVISCrossTableVC001patient has no record in BAS tableYES
tblVISCrossTableVC002No weights within 3 mths of starting FPV/DRVEPPICC YES
AppendixCrossTableGC003Spot-check dates to ensure no Excel date-zero errorsEPPICC NO
tblAE_NADMWithinTableANDW001Duplicate records for same EVENT_IDEPPICC NO
tblAE_NADMCrossTableANDC001EVENT_ID doesn't exist in tblAE_NEWEPPICC NO
tblAE_NADMWithinTableANDW002Missing PatientEPPICC NO
tblAE_NADMWithinTableANDW003Missing EVENT_IDEPPICC NO
tblAE_NADMWithinTableANDW004Missing CANTYP_TEPPICC NO
tblAE_NADMWithinTableANDW005Missing PATREP_SEPPICC NO
tblAE_NADMWithinTableANDW006DIAOTH_Y=1 and DIA_S is missingEPPICC NO
tblAE_NADMCrossTableANDC002PATIENT doesn't exist in tblBASEPPICC NO
tblAE_NEWCrossTableANC003PATIENT has no record in BASEPPICC NO
tblAE_NEWCrossTableANC004AE happened before that drug was startedEPPICC NO
tblAE_NEWWithinTableANW001More than one record for same patient on same date with same AE_IDEPPICC NO
tblAE_NEWWithinTableANW002More than one record for same patient with same EVENT_IDEPPICC NO
tblAE_NEWWithinTableANW003Missing PATIENTEPPICC NO
tblAE_NEWWithinTableANW004Missing AE_DEPPICC NO
tblAE_NEWWithinTableANW005Missing AE_IDEPPICC NO
tblAE_NEWWithinTableANW006Missing EVENT_IDEPPICC NO
tblAE_NEWWithinTableANW007Missing AE_RESEPPICC NO
tblAE_NEWWithinTableANW008Missing AE_TEXTEPPICC NO
tblAE_NEWWithinTableANW009Missing AE_DRUGEPPICC NO
tblAE_NEWCrossTableANC005AE_ART=1 but doesn't agree with records in ART tableEPPICC NO
tblDELIVERY_CHILDCrossTableDCC001MOTHER_ID doesn't exist in tblPREG
tblDELIVERY_CHILDCrossTableDCC002CHILD_ID doesn't exist in tblPREG_OUT
tblDELIVERY_CHILDWithinTableDCW001Duplicate records for same Mother_ID, CHILD_ID
tblDELIVERY_CHILDWithinTableDCW002B_SEQ >4
tblDELIVERY_CHILDWithinTableDCW003B_SEQ>1, but no record exists for same Mother, Child with B_SEQ=1
tblDELIVERY_CHILDWithinTableDCW005DELIV_D < MEMRUP_D
tblDELIVERY_CHILDWithinTableDCW004LABOUR_P >72
tblDELIVERY_CHILDWithinTableDCW0062 children, same mother, same MEMRUP_D, DELIV_D >DELIV_D , yet B_SEQ< B_SEQ
tblDELIVERY_MUMCrossTableDMC001MOTHER_ID doesn't exist in tblPREG
tblDELIVERY_MUMCrossTableDMC002MOTHER_ID doesn't exist in tblDELIVERY_CHILD with same MEMRUP_D
tblDELIVERY_MUMWithinTableDMW001PREG_SEQ invalid (PREG_SEQ>1 and PREG_SEQ=x, but PREG_SEQ=x-1 doesn't exist)
tblDELIVERY_MUMWithinTableDMW002DISCHA_D < MEMRUP_D
tblDELIVERY_MUMWithinTableDMW004INTERV=0-3 but INTERV_O non null
tblDELIVERY_MUMWithinTableDMW003INTERV=90,91, 92 or 93 but INTERV_O null
tblNEWBORNCrossTableNC001CHILD_ID doesn't exist in tblDELIVERY_CHILD
tblNEWBORNCrossTableNC002ABNORM_Y = 1, yet no records in tblNEWBORN_ABNORM
tblNEWBORNCrossTableNC003ABNORM_Y = 0 or 9, yet records in tblNEWBORN_ABNORM
tblNEWBORNWithinTableNW001BRFEED_SD>BRFEED_ED
tblNEWBORNWithinTableNW002APGARM_x's out of order (e.g APGARM_3 < APGARM_2)
tblNEWBORNWithinTableNW003ICU_Y=1, but ICU_S or ICS_D null
tblNEWBORNWithinTableNW004ICU_Y=0 or 9, but ICU_S or ICU_D non null
tblNEWBORN_ABNORMCrossTableNAC001CHILD_ID doesn't exist in NEWBORN
tblNEWBORN_ABNORMWithinTableNAW001ABNORM_T=90 but ABNORM_S null
tblPREG_OBSCrossTablePOC001MOTHER_ID+PREG_SEQ doesn't exist in tblPREG
tblPREG_OBSWithinTablePOW001PROB_T=99 but PROB_S null
tblPREG_OBSWithinTablePOW002PROB_T<>99 but PROB_S non null
tblPREG_OBSWithinTablePOW003PROB_T=2 but CERVIX_S null
tblPREG_OBSWithinTablePOW003PROB_T<>2 but CERVIX_S non null
tblPREG_OUTCrossTablePTC001MOTHER_ID+PREG_SEQ doesn't exist in tblPREG
tblPREG_OUTCrossTablePTC002OUTCOM=1,2 or 3 and CHILD_ID doesn't exisit in tblNEWBORN or tblDELIVERYCHILD
tblPREG_OUTCrossTablePTC002OUTCOM=10,11,20 or 21 and CHILD_ID exists in tblNEWBORN or tblDELIVERYCHILD
tblPREG_OUTWithinTablePTW001OUTCOME=20 or 21 and OUTCOM_R null
tblPREG_OUTWithinTablePTW001OUTCOME not 20 or 21 and OUTCOM_R non null
tblPREGWithinTablePW001ANC_D
tblPREGWithinTablePW002INPREG_Y=2,3,4 but INHIST_Y null
tblPREGWithinTablePW003INPREG_Y=1 but INHIST_Y non null
tblPREGWithinTablePW004INHIST_Y=1 but INHIST_S null
tblPREGWithinTablePW004INHIST_Y=0 or 9 but INHIST_S non null
tblPREGWithinTablePW005KARYO_T=2 but KARYO_A null
tblPREGWithinTablePW006KARYO_T<>2 but KARYO_A non null
tblPREGWithinTablePW007ULTRA_x =2, but ULTR_A_x null
tblPREGWithinTablePW008ULTRA_x <>2, but ULTR_A_x non null
tblPREGCrossTablePC001PROB_Y = 1 but no records in tblPREG_OBS
tblPREGCrossTablePC001PROB_Y = 0 or 9 but records in tblPREG_OBS

Last modified 6 years ago Last modified on 05/23/11 15:46:18

Attachments (2)

Download all attachments as: .zip