57  知情同意书列表

来源: e:/jupterlab/mrqc/智能病历质控.ipynb

58 获取病人EHRID

59 参数需要”IN_DEPT_CODE”

import requests
import json
import pandas as pd



url = 'http://200.100.101.109:8090/consultationapi/center/orgCodeDepartment/124409004564080633/Api/search/patients'

headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36',
          'Authorization' :'Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6ImF0K2p3dCJ9.eyJuYmYiOjE3MDE2NTQ2NzIsImV4cCI6MTczMjc1ODY3MiwiaXNzIjoiaHR0cDovLzIwMC4xMDAuMTAxLjEwOTo4MDkwL2NvbnN1bHRhdGlvbmFwaSIsImF1ZCI6WyJseXl5IiwiaHR0cDovLzIwMC4xMDAuMTAxLjEwOTo4MDkwL2NvbnN1bHRhdGlvbmFwaS9yZXNvdXJjZXMiXSwiY2xpZW50X2lkIjoiRnhsVXQ4WDRaaiIsInN1YiI6IjIwNjUiLCJhdXRoX3RpbWUiOjE3MDE2NTQ2NzIsImlkcCI6ImxvY2FsIiwiTG9naW5XYXkiOiIwIiwiVGhpcmRwYXJ0eUlkIjoiLTEiLCJTb3VyY2VUZXJtaW5hbCI6IjEiLCJPcGVhcnRpb25JZCI6IjM2NzAxMDMiLCJyb2xlIjoi5Li05bqK5LiT5a62IiwibmFtZSI6IjEyNDQwOTAwNDU2NDA4MDYzM18xNjk5IiwianRpIjoiOEFEOTI4QjI0NDlEMjYxRUY2QkIxMkQ1NDU5NzMxMDgiLCJpYXQiOjE3MDE2NTQ2NzIsInNjb3BlIjpbImx5eXkiXSwiYW1yIjpbInB3ZCJdfQ.kLomge8qIEUXPER88g0KGRa6fBuZws9Re8ZnGWgG8IT6eon0qC_UvshqXHuCsSeV8L6h-LfCIS6NbkiOpUXDVjqlLYvyBZXEtwEvsc2xApD2G3icspxyrR2XWwlZMPMJzDL7mzZpoalu_sGlZTFxnjXyWwexPvq9R4JiI0pWCSYqyHMLDGq5bVy9Nvl1Ygtkv-phMHJijSFIKrup0n3m97qN1GZ-ing66IhHDbkQP8I8DXxSyWxylGQvTz-bCxirKTm6hLLQG5SbuaTSOdrRY0kLqU_cvLLD0wGHd0ciB7s64i3K709ENU59aemwSAp-XBfOLzISZV6DfCfg8vxk9A'
          }

# 在payload的source查看,
## 把false和true,改为Python中的False和True
params = {"searchInput":"","ORG_CODE":"124409004564080633","IN_STATE":"I","IN_DEPT_CODE":"703","Org_Area_Code":"","NURSE_LEVEL":[],"NURSE_LEVEL1":"","CURRENTDATE":"","MASTER_DOCTOR_NAME":[],"MASTER_DOCTOR_NAME1":"","MasterDoctorCodes":[],"SEX":"","BED_NO":"","NAME_PYHEADER":"","SNO":"","NAME":"","IN_CAUSE":"","DIS_STATUS":"","AGE_MIN":0,"AGE_MAX":100,"ADMIT_DATE":"","SKIP":0,"TAKE":24,"SORTTYPE":1,"SORT":1,"PatientType":"inpatient","START_DATE":"","END_DATE":"","Ehrids":[],"IsSearchWardNo":False,"WARD_NO":[""],"SuptDec":True}



res = requests.post(url, headers=headers, data=json.dumps(params))

patientDict = {'EHRIDs':[],
            '床号':[],
            '管床医生' :[]
           }


for patient in json.loads(res.text)['data']:
    patientDict['EHRIDs'].append(patient['EHRID'])
    patientDict['床号'].append(patient['BED_NO'])
    patientDict['管床医生'].append(patient['MASTER_DOCTOR_NAME'])

# json.loads(res.text)['data']还有其他一些丰富信息


patientDF = pd.DataFrame(patientDict)

patientDF

60 查看签署知情同意书

61 > 参数需要EHRID

# 来源: e:/jupterlab/mrqc/智能病历质控.ipynb

import requests
import json
import pandas as pd

# 获取病人EHRID
# > 参数需要"IN_DEPT_CODE"

url = 'http://200.100.101.109:8090/consultationapi/center/orgCodeDepartment/124409004564080633/Api/search/patients'

headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36',
          'Authorization' :'Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6ImF0K2p3dCJ9.eyJuYmYiOjE3MDE2NTQ2NzIsImV4cCI6MTczMjc1ODY3MiwiaXNzIjoiaHR0cDovLzIwMC4xMDAuMTAxLjEwOTo4MDkwL2NvbnN1bHRhdGlvbmFwaSIsImF1ZCI6WyJseXl5IiwiaHR0cDovLzIwMC4xMDAuMTAxLjEwOTo4MDkwL2NvbnN1bHRhdGlvbmFwaS9yZXNvdXJjZXMiXSwiY2xpZW50X2lkIjoiRnhsVXQ4WDRaaiIsInN1YiI6IjIwNjUiLCJhdXRoX3RpbWUiOjE3MDE2NTQ2NzIsImlkcCI6ImxvY2FsIiwiTG9naW5XYXkiOiIwIiwiVGhpcmRwYXJ0eUlkIjoiLTEiLCJTb3VyY2VUZXJtaW5hbCI6IjEiLCJPcGVhcnRpb25JZCI6IjM2NzAxMDMiLCJyb2xlIjoi5Li05bqK5LiT5a62IiwibmFtZSI6IjEyNDQwOTAwNDU2NDA4MDYzM18xNjk5IiwianRpIjoiOEFEOTI4QjI0NDlEMjYxRUY2QkIxMkQ1NDU5NzMxMDgiLCJpYXQiOjE3MDE2NTQ2NzIsInNjb3BlIjpbImx5eXkiXSwiYW1yIjpbInB3ZCJdfQ.kLomge8qIEUXPER88g0KGRa6fBuZws9Re8ZnGWgG8IT6eon0qC_UvshqXHuCsSeV8L6h-LfCIS6NbkiOpUXDVjqlLYvyBZXEtwEvsc2xApD2G3icspxyrR2XWwlZMPMJzDL7mzZpoalu_sGlZTFxnjXyWwexPvq9R4JiI0pWCSYqyHMLDGq5bVy9Nvl1Ygtkv-phMHJijSFIKrup0n3m97qN1GZ-ing66IhHDbkQP8I8DXxSyWxylGQvTz-bCxirKTm6hLLQG5SbuaTSOdrRY0kLqU_cvLLD0wGHd0ciB7s64i3K709ENU59aemwSAp-XBfOLzISZV6DfCfg8vxk9A'
          }

# 在payload的source查看,
## 把false和true,改为Python中的False和True
params = {"searchInput":"","ORG_CODE":"124409004564080633","IN_STATE":"I","IN_DEPT_CODE":"703","Org_Area_Code":"","NURSE_LEVEL":[],"NURSE_LEVEL1":"","CURRENTDATE":"","MASTER_DOCTOR_NAME":[],"MASTER_DOCTOR_NAME1":"","MasterDoctorCodes":[],"SEX":"","BED_NO":"","NAME_PYHEADER":"","SNO":"","NAME":"","IN_CAUSE":"","DIS_STATUS":"","AGE_MIN":0,"AGE_MAX":100,"ADMIT_DATE":"","SKIP":0,"TAKE":24,"SORTTYPE":1,"SORT":1,"PatientType":"inpatient","START_DATE":"","END_DATE":"","Ehrids":[],"IsSearchWardNo":False,"WARD_NO":[""],"SuptDec":True}



res = requests.post(url, headers=headers, data=json.dumps(params))

patientDict = {'EHRIDs':[],
            '床号':[],
            '管床医生' :[]
           }


for patient in json.loads(res.text)['data']:
    patientDict['EHRIDs'].append(patient['EHRID'])
    patientDict['床号'].append(patient['BED_NO'])
    patientDict['管床医生'].append(patient['MASTER_DOCTOR_NAME'])

# json.loads(res.text)['data']还有其他一些丰富信息


patientDF = pd.DataFrame(patientDict)

patientDF


# 查看签署知情同意书

# > 参数需要EHRID

def fetchICFbyEHRID(EHRID):
    url = 'http://200.100.101.109:8090/consultationapi/center/orgCode/124409004564080633/Api/GetData/EmrAgreement'

    headers = {'user-agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/108.0.0.0 Safari/537.36',
              'Authorization' :'Bearer eyJhbGciOiJSUzI1NiIsInR5cCI6ImF0K2p3dCJ9.eyJuYmYiOjE3MDE2NTQ2NzIsImV4cCI6MTczMjc1ODY3MiwiaXNzIjoiaHR0cDovLzIwMC4xMDAuMTAxLjEwOTo4MDkwL2NvbnN1bHRhdGlvbmFwaSIsImF1ZCI6WyJseXl5IiwiaHR0cDovLzIwMC4xMDAuMTAxLjEwOTo4MDkwL2NvbnN1bHRhdGlvbmFwaS9yZXNvdXJjZXMiXSwiY2xpZW50X2lkIjoiRnhsVXQ4WDRaaiIsInN1YiI6IjIwNjUiLCJhdXRoX3RpbWUiOjE3MDE2NTQ2NzIsImlkcCI6ImxvY2FsIiwiTG9naW5XYXkiOiIwIiwiVGhpcmRwYXJ0eUlkIjoiLTEiLCJTb3VyY2VUZXJtaW5hbCI6IjEiLCJPcGVhcnRpb25JZCI6IjM2NzAxMDMiLCJyb2xlIjoi5Li05bqK5LiT5a62IiwibmFtZSI6IjEyNDQwOTAwNDU2NDA4MDYzM18xNjk5IiwianRpIjoiOEFEOTI4QjI0NDlEMjYxRUY2QkIxMkQ1NDU5NzMxMDgiLCJpYXQiOjE3MDE2NTQ2NzIsInNjb3BlIjpbImx5eXkiXSwiYW1yIjpbInB3ZCJdfQ.kLomge8qIEUXPER88g0KGRa6fBuZws9Re8ZnGWgG8IT6eon0qC_UvshqXHuCsSeV8L6h-LfCIS6NbkiOpUXDVjqlLYvyBZXEtwEvsc2xApD2G3icspxyrR2XWwlZMPMJzDL7mzZpoalu_sGlZTFxnjXyWwexPvq9R4JiI0pWCSYqyHMLDGq5bVy9Nvl1Ygtkv-phMHJijSFIKrup0n3m97qN1GZ-ing66IhHDbkQP8I8DXxSyWxylGQvTz-bCxirKTm6hLLQG5SbuaTSOdrRY0kLqU_cvLLD0wGHd0ciB7s64i3K709ENU59aemwSAp-XBfOLzISZV6DfCfg8vxk9A'
              }

    # 在payload的source查看
    params = {"EMR_SNO":"","ORG_CODE":["124409004564080633"],"EHRID": EHRID,"MDT_DATE":"","SKIP":0,"TAKE":100}


    res = requests.post(url, headers=headers, data=json.dumps(params))




    icfDict = {'日期':[],
            '知情同意书' :[],
              'EHRIDs':[]}

    for icf in json.loads(res.text)['data']:
        RECORD_DATE = icf['RECORD_DATE']
        RECORD_TOPIC = icf['RECORD_TOPIC']

        icfDict['日期'].append(RECORD_DATE)
        icfDict['知情同意书'].append(RECORD_TOPIC)
        icfDict['EHRIDs'].append(EHRID)

    icfDF = pd.DataFrame(icfDict)

    return icfDF






if __name__ == "__main__":

    kangfuicfDict = {'EHRIDs':[],
                '康复治疗同意书':[]
                }
    for EHRID in patientDF.EHRIDs:
        icfDF = fetchICFbyEHRID(EHRID)
        kangfuicfDict['EHRIDs'].append(EHRID)
        kangfuicfDict['康复治疗同意书'].append("有" if icfDF.知情同意书.str.contains('康复').sum() > 0 else "无")



    kangfuicfDF = pd.DataFrame(kangfuicfDict)

    kangfuicfDF


    # 拼接


    kangfuicfDF_Final = patientDF.merge(kangfuicfDF).drop('EHRIDs', axis=1)
    kangfuicfDF_Final.to_csv('康复治疗同意书签署情况.csv', index=False)