OHDSI Home | Forums | Wiki | Github

DataQualityDashboard 설치 시 observation 테이블에서만 from 절이 빠져있다는 에러가 뜹니다


(Dianakim44) #1

안녕하세요?
가톨릭대학교 의료정보학교실 연구원 김동민입니다

현재 DataQualityDashboard 설치 중에 있는데요,

글 맨 밑에 작성한 에러 리포트와 같이
observation 테이블에서만 from 절이 빠져있다는 에러가 뜹니다

에러 리포트를 보니 observation 테이블 중,
총 4개의 필드 (unit_concept_id, observation_concept_id, observation_source_id, observation_type_concept_id)에서만 동일한 에러가 뜹니다

어느 구문에서 에러가 발생하는지 알아보기 위해
에러 리포트 내 쿼리 중 select 구문만 따로 따로 돌려봤더니,

SELECT ‘OBSERVATION.observation_source_concept_id’ AS violating_field, cdmTable.*
FROM somop.OBSERVATION cdmTable
WHERE cdmTable.observation_source_concept_id = 0 AND OBSERVATION.value_as_number IS NOT NULL;
위 구문에서 from 절이 빠져있다는 에러가 발생했습니다

그 중에서도 WHERE 이하의 OBSERVATION.value_as_number IS NOT NULL 구문에서 에러가 발생했습니다

이를 OBSERVATION.value_as_number IS NOT NULL 에서
‘OBSERVATION.value_as_number’ IS NOT NULL 으로,
작은 따옴표를(’ ')을 붙여서 돌렸더니 에러 없이 잘 돌아갔습니다

그러나 제가 돌린 코드는 R의 DataQualityDashboard::executeDqChecks() 로 돌린 코드이기 때문에
자동으로 sql 쿼리가 생성되는 것이어서, 제가 따로 작은 따옴표를 붙일 수가 없는 상황입니다

혹시 이럴 경우 어떻게 에러를 해결하는지 아시나요?

답변주시면 감사하겠습니다
김동민 드림


DBMS:
postgresql

Error:
org.postgresql.util.PSQLException: 오류: 테이블 "observation"에 FROM 절이 빠져 있습니다.
Position: 420

SQL:
/*********
CONCEPT_RECORD_COMPLETENESS
number of 0s / total number of records {OBSERVATION in (‘OBSERVATION’, ‘MEASUREMENT’)}{*for the OBSERVATION.unit_concept and MEASUREMENT.concept_id
the numerator and denominator are limited to records where value_as_number IS NOT NULL}

Parameters used in this template:
cdmDatabaseSchema = somop
cdmTableName = OBSERVATION
cdmFieldName = unit_concept_id
**********/

SELECT num_violated_rows, CASE WHEN denominator.num_rows = 0 THEN 0 ELSE 1.0num_violated_rows/denominator.num_rows END AS pct_violated_rows,
denominator.num_rows as num_denominator_rows
FROM
(
SELECT COUNT(violated_rows.violating_field) AS num_violated_rows
FROM
(
SELECT ‘OBSERVATION.unit_concept_id’ AS violating_field, cdmTable.

FROM somop.OBSERVATION cdmTable
WHERE cdmTable.unit_concept_id = 0 AND OBSERVATION.value_as_number IS NOT NULL
) violated_rows
) violated_row_count,
(
SELECT COUNT(*) AS num_rows
FROM somop.OBSERVATION WHERE OBSERVATION.value_as_number IS NOT NULL
) denominator
;

R version:
R version 3.6.3 (2020-02-29)

Platform:
x86_64-pc-linux-gnu

Attached base packages:

  • stats
  • graphics
  • grDevices
  • utils
  • datasets
  • methods
  • base

Other attached packages:

  • magrittr (1.5)
  • DataQualityDashboard (1.0.0)
  • DatabaseConnector (3.0.0)
  • rJava (0.9-12)


(Seng Chan You) #2

나름대로 문제를 고치기 위해 commit 을 해보았습니다.
(https://github.com/OHDSI/DataQualityDashboard/tree/chan-patch-1)

devtools::install_github("ohdsi/DataQualityDashboard", ref = "chan-patch-1")

으로 한 번 돌려보실 수 있으실까요? @dianakim44 잘 해결된다면 Pull Request를 올려, package를 update하고자 하니 결과를 알려주시면 감사하겠습니다 ^^


(Dianakim44) #3

안녕하세요, 유승찬 선생님
가톨릭대학교 연구원 김동민입니다

선생님께서 보내주신 코드로 돌려본 결과
observation 테이블 관련 에러는 더이상 나지 않습니다~!

혹시 어떤 코드를 고치신 건지 알려주실 수 있으실까요?

아 그리고 추가로 아래와 같은 에러가 떴습니다 ㅠ

분명 몇달 전까지만해도 이런 에러들이 뜬적이 없었는데,
왜 몇달 단위로 이런 에러가 발생하는 걸까요?
DQD 버전 문제인가요?

답변주시면 감사드리겠습니다 :slight_smile:


(Seng Chan You) #4

@dianakim44 보여주신 에러는 어떤 건지 잘 모르겠네요… 보면, 구동 자체가 안 되었을 것 같은데- observation table 에 대한 DQD는 잘 돌아갔을까요?

제가 수정한 부분은 커밋 에서 확인하실 수 있습니다 ^^


(Dianakim44) #5

현재 observation 테이블 관련 에러는 안나는 것으로 보아,
code operation 자체는 잘 해결된 것으로 판단됩니다~

하지만 다른 에러로 인해
DQD output으로 하나도 도출된 것이 없어서

DQD 자체가 잘 돌아갔는지 아닌지 여부는 잘 모르겠습니다 ㅠㅠ


(Seng Chan You) #6

네 알려주셔서 감사합니다~


(Dianakim44) #7

검색해보니 이 에러는 cdm_source 테이블에
데이터가 하나도 없을 때 발생한다고 하신 분이 있어서,
(https://github.com/OHDSI/DataQualityDashboard/issues/122#issue-606212348)

cdm_source테이블에 수동으로
임시 데이터를 넣었더니 DQD가 문제없이 잘 돌아갔습니다!


t