首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用于提取JSON数据的PostgreSQL查询

用于提取JSON数据的PostgreSQL查询
EN

Stack Overflow用户
提问于 2021-06-24 13:53:30
回答 1查看 91关注 0票数 0

我在codemap列中有json数据,需要从其中提取来自不同编码参数类别的代码(属于需要删除、修改或添加的代码),例如cpt drg、修饰符、secondaryDiagnosis、principalDiagnosis、secondaryProcedure、观察值小时、dischargeStatus、主要过程、hcpcs

下面是我的输入和预期数据的一些图像:

下面是我的JSON数据的外观

代码语言:javascript
复制
{
  "cpt": {
    "added": [],
    "correct": [
      {
        "code": "99497",
        "description": "ADVANCE CARE PLANNING FIRST 30 MIN"
      },
      {
        "code": "96160",
        "description": "ADMINISTRATION OF PATIENT-FOCUSED HEALTH RISK ASSESSMENT INSTRUMENT (EG, HEALTH HAZARD APPRAISAL) WITH SCORING AND DOCUMENTATION, PER STANDARDIZED INSTRUMENT"
      }
    ],
    "removed": [],
    "revised": []
  },
  "drg": {
    "correct": [],
    "revised": []
  },
  "poa": {
    "correct": [],
    "revised": []
  },
  "hcpcs": {
    "added": [
      {
        "code": "G0402",
        "description": "INITIAL PREVENTIVE EXAM"
      }
    ],
    "correct": [],
    "removed": [],
    "revised": []
  },
  "modifiers": {
    "added": [
      {
        "code": "25",
        "description": "Significant Separately Identifiable E&M Service by the Same Physician on the Same Day"
      }
    ],
    "correct": [],
    "removed": [],
    "revised": []
  },
  "dischargeStatus": {
    "correct": [],
    "revised": []
  },
  "observationHours": {
    "correct": [],
    "revised": []
  },
  "injectionInfusion": {
    "added": [],
    "correct": [],
    "removed": [],
    "revised": []
  },
  "principalDiagnosis": {
    "correct": [
      {
        "code": "Z0000",
        "description": "ENCNTR FOR GENERAL ADULT MEDICAL EXAM W/O ABNORMAL FINDINGS (ICD-10) "
      }
    ],
    "revised": []
  },
  "principalProcedure": {
    "added": [],
    "correct": [],
    "removed": [],
    "revised": []
  },
  "secondaryDiagnosis": {
    "added": [
      {
        "code": "E1165",
        "description": "TYPE 2 DIABETES MELLITUS WITH HYPERGLYCEMIA (ICD-10) "
      },
      {
        "code": "Z136",
        "description": "ENCOUNTER FOR SCREENING FOR CARDIOVASCULAR DISORDERS (ICD-10) "
      },
      {
        "code": "Z1211",
        "description": "ENCOUNTER FOR SCREENING FOR MALIGNANT NEOPLASM OF COLON (ICD-10) "
      }
    ],
    "correct": [
      {
        "code": "M25512",
        "description": "PAIN IN LEFT SHOULDER (ICD-10) "
      },
      {
        "code": "Z7984",
        "description": "LONG TERM (CURRENT) USE OF ORAL HYPOGLYCEMIC DRUGS (ICD-10) "
      },
      {
        "code": "Z791",
        "description": "LONG TERM (CURRENT) USE OF NON-STEROIDAL NON-INFLAM (NSAID) (ICD-10) "
      },
      {
        "code": "Z0000",
        "description": "ENCNTR FOR GENERAL ADULT MEDICAL EXAM W/O ABNORMAL FINDINGS (ICD-10) "
      },
      {
        "code": "M25512",
        "description": "PAIN IN LEFT SHOULDER (ICD-10) "
      },
      {
        "code": "Z7984",
        "description": "LONG TERM (CURRENT) USE OF ORAL HYPOGLYCEMIC DRUGS (ICD-10) "
      },
      {
        "code": "Z791",
        "description": "LONG TERM (CURRENT) USE OF NON-STEROIDAL NON-INFLAM (NSAID) (ICD-10) "
      },
      {
        "code": "Z1339",
        "description": "ENCNTR SCREEN EXAM FOR OTHER MENTAL HLTH AND BEHAVRL DISORD (ICD-10) "
      }
    ],
    "removed": [],
    "revised": [
      {
        "to": {
          "code": "M25512",
          "description": "PAIN IN LEFT SHOULDER (ICD-10) "
        },
        "from": {
          "code": "Z79899",
          "description": "OTHER LONG TERM (CURRENT) DRUG THERAPY (ICD-10) "
        }
      }
    ]
  },
  "secondaryProcedure": {
    "added": [],
    "correct": [],
    "removed": [],
    "revised": []
  },
  "facilityEvaluationManagement": {
    "added": [],
    "correct": [],
    "removed": [],
    "revised": []
  },
  "professionalEvaluationManagement": {
    "added": [],
    "correct": [],
    "removed": [],
    "revised": [
      {
        "to": {
          "code": "99213",
          "description": "OFF/OP VIS, EST PT, 2KEY COMP: EXPAND PROB HX; EXPAN"
        },
        "from": {
          "code": "99396",
          "description": "PERI COMP PREV MED E&M W/HX/EXAM, EST PT;40-64YR"
        }
      }
    ]
  }
}

下面是我的输入表和输出表的样子。

108565-input-data-1.jpg 108546-input-data-2.jpg 108547-output.jpg

输入数据:

预期输出:

我在代码上的尝试:

代码语言:javascript
复制
SELECT JSONB_ARRAY_ELEMENTS(codemap->'secondardiagnosis' ->'added' ->> 'code') 
    AS secondarydiagnosisaddedcodeadded, * 
  FROM qa_score_report

我没有得到任何输出。我可以尝试什么来解决这个问题?

EN

回答 1

Stack Overflow用户

发布于 2021-06-24 14:04:54

您为数组函数提供了一个字符串(code)。首先解析数组added,然后使用结果集解析code

代码语言:javascript
复制
SELECT jsonb_array_elements(codemap->'secondaryDiagnosis'->'added')->'code' 
FROM qa_score_report;

code聚合到一行中

代码语言:javascript
复制
SELECT array_to_string(array_agg(trim('"' FROM j::text)),',') 
FROM (SELECT jsonb_array_elements(codemap->'secondaryDiagnosis'->'added')->'code'
      FROM qa_score_report) i (j);

演示:db<>fiddle

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68110287

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档