Initial commit: 体检报告批量处理脚本与配置
Made-with: Cursor
This commit is contained in:
commit
408e80f501
5
.gitignore
vendored
Normal file
5
.gitignore
vendored
Normal file
@ -0,0 +1,5 @@
|
|||||||
|
api_requests_*.log
|
||||||
|
__pycache__/
|
||||||
|
*.pyc
|
||||||
|
.venv/
|
||||||
|
venv/
|
||||||
537
headurl.json
Normal file
537
headurl.json
Normal file
@ -0,0 +1,537 @@
|
|||||||
|
[
|
||||||
|
{
|
||||||
|
"medicalSn": "17419329628830818",
|
||||||
|
"pName": "郑福",
|
||||||
|
"cardId": "152627195706161915"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "17419329628830821",
|
||||||
|
"pName": "许永",
|
||||||
|
"cardId": "152627195409121917"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "17419329628830822",
|
||||||
|
"pName": "叶换弟",
|
||||||
|
"cardId": "152627195701081924"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "17419329628830825",
|
||||||
|
"pName": "陈福云",
|
||||||
|
"cardId": "152627195808071929"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "17419329628830826",
|
||||||
|
"pName": "付有有",
|
||||||
|
"cardId": "152627195802081915"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "17419329628830828",
|
||||||
|
"pName": "陈美付",
|
||||||
|
"cardId": "152627195904221923"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "17419329628830829",
|
||||||
|
"pName": "王夫",
|
||||||
|
"cardId": "152627195307141917"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "17419329628850893",
|
||||||
|
"pName": "兰吉",
|
||||||
|
"cardId": "152627195202081911"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "17419329628850921",
|
||||||
|
"pName": "高换喜",
|
||||||
|
"cardId": "152627196311261916"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "17419329628921189",
|
||||||
|
"pName": "张军",
|
||||||
|
"cardId": "152627196303111918"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "17419329628961330",
|
||||||
|
"pName": "张三丑",
|
||||||
|
"cardId": "152627195806051916"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "17419329629443196",
|
||||||
|
"pName": "陈俊梅",
|
||||||
|
"cardId": "152627196204071922"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "17419329629533537",
|
||||||
|
"pName": "范吉云",
|
||||||
|
"cardId": "152627194407091932"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "17419329629784516",
|
||||||
|
"pName": "杨爱连",
|
||||||
|
"cardId": "152627194901271920"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "17419329629965242",
|
||||||
|
"pName": "于爱蜂",
|
||||||
|
"cardId": "152627194211131947"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "17419329630035464",
|
||||||
|
"pName": "袁天来",
|
||||||
|
"cardId": "150924194007061916"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "17419329630627734",
|
||||||
|
"pName": "曹根变",
|
||||||
|
"cardId": "150924196512111928"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "17419329630728123",
|
||||||
|
"pName": "孟桃花",
|
||||||
|
"cardId": "152627195106171941"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "17419329631551096",
|
||||||
|
"pName": "马粉鱼",
|
||||||
|
"cardId": "152627195404251923"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "17419329632183413",
|
||||||
|
"pName": "樊换连",
|
||||||
|
"cardId": "152627196508262226"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "17419329632725514",
|
||||||
|
"pName": "李贵",
|
||||||
|
"cardId": "152627195707101914"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "17419329632725517",
|
||||||
|
"pName": "赵二改",
|
||||||
|
"cardId": "152627195802141922"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "17419329632735549",
|
||||||
|
"pName": "樊换云",
|
||||||
|
"cardId": "152627195706121921"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "17419329632735559",
|
||||||
|
"pName": "王栓珍",
|
||||||
|
"cardId": "152627195308221927"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "17419329632735562",
|
||||||
|
"pName": "赵月英",
|
||||||
|
"cardId": "152627195703151922"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "17419329632956353",
|
||||||
|
"pName": "范三板",
|
||||||
|
"cardId": "152627194310291946"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "17419329633177138",
|
||||||
|
"pName": "谢月红",
|
||||||
|
"cardId": "152627194409021911"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "17419329633177141",
|
||||||
|
"pName": "刘二哑",
|
||||||
|
"cardId": "152627195107011931"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "17419329633187196",
|
||||||
|
"pName": "郑万有",
|
||||||
|
"cardId": "152627195407061914"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "17419329633187201",
|
||||||
|
"pName": "刘金连",
|
||||||
|
"cardId": "15262719550917192X"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "17419329633207260",
|
||||||
|
"pName": "刘青春",
|
||||||
|
"cardId": "152627195802161915"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "17419329633227328",
|
||||||
|
"pName": "马俊桃",
|
||||||
|
"cardId": "152627196305201941"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "17419329633227329",
|
||||||
|
"pName": "张变林",
|
||||||
|
"cardId": "152627196108251923"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "17419329633257449",
|
||||||
|
"pName": "张秀子",
|
||||||
|
"cardId": "152627195804011929"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "17419329633337694",
|
||||||
|
"pName": "高秀梅",
|
||||||
|
"cardId": "15262719580825192X"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "17419329633387892",
|
||||||
|
"pName": "卢世平",
|
||||||
|
"cardId": "15262719621002193X"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "17419329633397895",
|
||||||
|
"pName": "赵金芳",
|
||||||
|
"cardId": "15262719620919194X"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "17419329633397897",
|
||||||
|
"pName": "刘汉有",
|
||||||
|
"cardId": "152627195710151912"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "17419329633397898",
|
||||||
|
"pName": "郭润兰",
|
||||||
|
"cardId": "152627196006061926"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "17419329633458135",
|
||||||
|
"pName": "秦兰花",
|
||||||
|
"cardId": "152627193603291929"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "17419329633458137",
|
||||||
|
"pName": "卢贵荣",
|
||||||
|
"cardId": "152627195008011960"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "17419329633458139",
|
||||||
|
"pName": "王三孩",
|
||||||
|
"cardId": "152627196108211913"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "17419329633458144",
|
||||||
|
"pName": "贾满富",
|
||||||
|
"cardId": "152627193509091912"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "17419329633498269",
|
||||||
|
"pName": "王二爱",
|
||||||
|
"cardId": "152632196112202703"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250523366297",
|
||||||
|
"pName": "李志英",
|
||||||
|
"cardId": "152627196912161910"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250523740573",
|
||||||
|
"pName": "李丽",
|
||||||
|
"cardId": "152627196905271927"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250523417482",
|
||||||
|
"pName": "王团旺",
|
||||||
|
"cardId": "152627197607281910"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250523808801",
|
||||||
|
"pName": "朱占成",
|
||||||
|
"cardId": "152627195701231910"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250523844012",
|
||||||
|
"pName": "朱占义",
|
||||||
|
"cardId": "152627194511211914"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250523351078",
|
||||||
|
"pName": "郭桂林",
|
||||||
|
"cardId": "152627196602161923"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250523452896",
|
||||||
|
"pName": "张秀桃",
|
||||||
|
"cardId": "152627196412150027"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250523433348",
|
||||||
|
"pName": "张宝",
|
||||||
|
"cardId": "152627196903051912"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250523286308",
|
||||||
|
"pName": "李爱青",
|
||||||
|
"cardId": "152627197406271927"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250523830564",
|
||||||
|
"pName": "闫桂花",
|
||||||
|
"cardId": "152627196906240022"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250523289297",
|
||||||
|
"pName": "张存宝",
|
||||||
|
"cardId": "152627196810051913"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250523321780",
|
||||||
|
"pName": "陈美云",
|
||||||
|
"cardId": "152627196806041923"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250523495383",
|
||||||
|
"pName": "乔淑芳",
|
||||||
|
"cardId": "152529197512132741"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250523294957",
|
||||||
|
"pName": "陈喜云",
|
||||||
|
"cardId": "152627196611051929"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250523737789",
|
||||||
|
"pName": "温二女",
|
||||||
|
"cardId": "152627195305141921"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250523201133",
|
||||||
|
"pName": "崔美利",
|
||||||
|
"cardId": "152627195810081923"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250523871007",
|
||||||
|
"pName": "卢元娃",
|
||||||
|
"cardId": "152627195406061955"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250523216323",
|
||||||
|
"pName": "冯凤云",
|
||||||
|
"cardId": "152627196906281924"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250523184674",
|
||||||
|
"pName": "张拴成",
|
||||||
|
"cardId": "152627196905261913"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250523715097",
|
||||||
|
"pName": "张爱平",
|
||||||
|
"cardId": "15262719720821194X"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250523469896",
|
||||||
|
"pName": "安惠芬",
|
||||||
|
"cardId": "150203197405203629"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250523489825",
|
||||||
|
"pName": "陈云云",
|
||||||
|
"cardId": "152627196601061920"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250523367889",
|
||||||
|
"pName": "于三女 ",
|
||||||
|
"cardId": "152627196803211923"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250523881582",
|
||||||
|
"pName": "王利",
|
||||||
|
"cardId": "152627196702161920"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250523443855",
|
||||||
|
"pName": "李润成",
|
||||||
|
"cardId": "152627196812031916"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250523484316",
|
||||||
|
"pName": "靳青秀",
|
||||||
|
"cardId": "152627197309121927"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250523883817",
|
||||||
|
"pName": "赵福所",
|
||||||
|
"cardId": "15262719560211193X"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250524369448",
|
||||||
|
"pName": "邢连芳",
|
||||||
|
"cardId": "152627197104191921"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250524751509",
|
||||||
|
"pName": "侯登峰",
|
||||||
|
"cardId": "152627197009271923"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250524221891",
|
||||||
|
"pName": "冯香香",
|
||||||
|
"cardId": "152627196201011924"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250524176226",
|
||||||
|
"pName": "庞四格",
|
||||||
|
"cardId": "152627195907081911"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250524723950",
|
||||||
|
"pName": "范吉恒",
|
||||||
|
"cardId": "152627194110021917"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250524545834",
|
||||||
|
"pName": "庞根叶 ",
|
||||||
|
"cardId": "152627197103211927"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250524721843",
|
||||||
|
"pName": "张万全",
|
||||||
|
"cardId": "152627197301011918"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250524399909",
|
||||||
|
"pName": "范守祥",
|
||||||
|
"cardId": "152627196802171915"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250524326308",
|
||||||
|
"pName": "贺悄珍",
|
||||||
|
"cardId": "15262719620516192X"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250524547635",
|
||||||
|
"pName": "张晓燕",
|
||||||
|
"cardId": "152627199301201921"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250524387862",
|
||||||
|
"pName": "庞俊芳",
|
||||||
|
"cardId": "152627197201051920"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250524907572",
|
||||||
|
"pName": "邓金",
|
||||||
|
"cardId": "152627195407191911"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250524499920",
|
||||||
|
"pName": "秦爱桃",
|
||||||
|
"cardId": "152627196812151926"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250524813798",
|
||||||
|
"pName": "范彩云",
|
||||||
|
"cardId": "152627199504191946"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250525374107",
|
||||||
|
"pName": "刘二娃",
|
||||||
|
"cardId": "152627196005201923"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250525964394",
|
||||||
|
"pName": "张全有",
|
||||||
|
"cardId": "152627196603181934"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250525943969",
|
||||||
|
"pName": "李兰弟",
|
||||||
|
"cardId": "152627195703161928"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250525821868",
|
||||||
|
"pName": "朱占元",
|
||||||
|
"cardId": "15262719600407191X"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250525937875",
|
||||||
|
"pName": "李俊桃",
|
||||||
|
"cardId": "15262719571224192X"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250525488510",
|
||||||
|
"pName": "赵栓根",
|
||||||
|
"cardId": "152627195208151933"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250525830163",
|
||||||
|
"pName": "常之英",
|
||||||
|
"cardId": "150924195207021913"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250525585498",
|
||||||
|
"pName": "刘海琴",
|
||||||
|
"cardId": "132522196803172329"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250525993172",
|
||||||
|
"pName": "王二玲",
|
||||||
|
"cardId": "152627195308121942"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250525576767",
|
||||||
|
"pName": "巩素利",
|
||||||
|
"cardId": "15092419570102372X"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250525113626",
|
||||||
|
"pName": "王改梅",
|
||||||
|
"cardId": "152627198102261927"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250525141720",
|
||||||
|
"pName": "张宏所",
|
||||||
|
"cardId": "152627195311061928"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250525670332",
|
||||||
|
"pName": "李梅梅",
|
||||||
|
"cardId": "15262719500228196X"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250525133662",
|
||||||
|
"pName": "兰桃桃",
|
||||||
|
"cardId": "152627195307061925"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250525360045",
|
||||||
|
"pName": "张礼",
|
||||||
|
"cardId": "152627193701121915"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250525900726",
|
||||||
|
"pName": "刘锁巧",
|
||||||
|
"cardId": "152627193406111925"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250525190553",
|
||||||
|
"pName": "任英",
|
||||||
|
"cardId": "152627196702171926"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250525542177",
|
||||||
|
"pName": "许栓子",
|
||||||
|
"cardId": "152627196612201933"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250525576527",
|
||||||
|
"pName": "张兰兵",
|
||||||
|
"cardId": "152627196803061937"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250525458078",
|
||||||
|
"pName": "韩仲鱼",
|
||||||
|
"cardId": "15092419470208372X"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250525116202",
|
||||||
|
"pName": "卢端花",
|
||||||
|
"cardId": "152627194211051920"
|
||||||
|
},
|
||||||
|
{
|
||||||
|
"medicalSn": "20250525745031",
|
||||||
|
"pName": "武梅",
|
||||||
|
"cardId": "152628195911246148"
|
||||||
|
}
|
||||||
|
]
|
||||||
114
process_patients.py
Normal file
114
process_patients.py
Normal file
@ -0,0 +1,114 @@
|
|||||||
|
import json
|
||||||
|
import requests
|
||||||
|
import time
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
# 读取JSON文件
|
||||||
|
with open('headurl.json', 'r', encoding='utf-8') as f:
|
||||||
|
patients = json.load(f)
|
||||||
|
|
||||||
|
# 创建日志文件
|
||||||
|
log_filename = f'api_requests_{datetime.now().strftime("%Y%m%d_%H%M%S")}.log'
|
||||||
|
success_count = 0
|
||||||
|
fail_count = 0
|
||||||
|
|
||||||
|
def log_result(medical_sn, p_name, success, response, api_name):
|
||||||
|
global success_count, fail_count
|
||||||
|
timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
||||||
|
status = "成功" if success else "失败"
|
||||||
|
if success:
|
||||||
|
success_count += 1
|
||||||
|
else:
|
||||||
|
fail_count += 1
|
||||||
|
|
||||||
|
with open(log_filename, 'a', encoding='utf-8') as f:
|
||||||
|
f.write(f"[{timestamp}] API: {api_name}, 体检编号: {medical_sn}, 姓名: {p_name}, 状态: {status}\n")
|
||||||
|
f.write(f"响应内容: {json.dumps(response, ensure_ascii=False)}\n")
|
||||||
|
f.write("-" * 80 + "\n")
|
||||||
|
|
||||||
|
# 第一个API请求函数
|
||||||
|
def request_first_api(medical_sn, card_id, p_name):
|
||||||
|
url = "https://pacs.gw12320.com/adminInspect/admin-api/inspect/patient/updatepersonimg"
|
||||||
|
params = {
|
||||||
|
"medicalSn": medical_sn,
|
||||||
|
"cardId": card_id
|
||||||
|
}
|
||||||
|
|
||||||
|
headers = {
|
||||||
|
'Content-Type': 'application/json',
|
||||||
|
'User-Agent': 'PostmanRuntime/7.43.3',
|
||||||
|
'Accept': '*/*',
|
||||||
|
'Accept-Encoding': 'gzip, deflate, br',
|
||||||
|
'Connection': 'keep-alive',
|
||||||
|
'Host': 'pacs.gw12320.com'
|
||||||
|
}
|
||||||
|
|
||||||
|
try:
|
||||||
|
print(f"正在请求第一个API - {p_name} 的报告,请等待接口返回...")
|
||||||
|
response = requests.get(url, params=params, headers=headers, verify=False)
|
||||||
|
response.raise_for_status()
|
||||||
|
result = response.json()
|
||||||
|
success = result.get("code", -1) == 0
|
||||||
|
log_result(medical_sn, p_name, success, result, "第一个API")
|
||||||
|
return success
|
||||||
|
except Exception as e:
|
||||||
|
error_msg = str(e)
|
||||||
|
print(f"第一个API请求失败: {error_msg}")
|
||||||
|
log_result(medical_sn, p_name, False, {"error": error_msg}, "第一个API")
|
||||||
|
return False
|
||||||
|
|
||||||
|
# 第二个API请求函数
|
||||||
|
def request_second_api(medical_sn, p_name):
|
||||||
|
url = "https://pacs.gw12320.com/adminInspect/admin-api/inspect/patient/generateReport"
|
||||||
|
params = {"medicalSn": medical_sn}
|
||||||
|
|
||||||
|
headers = {
|
||||||
|
'Content-Type': 'application/json',
|
||||||
|
'User-Agent': 'PostmanRuntime/7.43.3',
|
||||||
|
'Accept': '*/*',
|
||||||
|
'Accept-Encoding': 'gzip, deflate, br',
|
||||||
|
'Connection': 'keep-alive',
|
||||||
|
'Host': 'pacs.gw12320.com'
|
||||||
|
}
|
||||||
|
|
||||||
|
try:
|
||||||
|
print(f"正在请求第二个API - {p_name} 的报告,请等待接口返回...")
|
||||||
|
response = requests.get(url, params=params, headers=headers, verify=False)
|
||||||
|
response.raise_for_status()
|
||||||
|
result = response.json()
|
||||||
|
success = result.get("code", -1) == 0
|
||||||
|
log_result(medical_sn, p_name, success, result, "第二个API")
|
||||||
|
return success
|
||||||
|
except Exception as e:
|
||||||
|
error_msg = str(e)
|
||||||
|
print(f"第二个API请求失败: {error_msg}")
|
||||||
|
log_result(medical_sn, p_name, False, {"error": error_msg}, "第二个API")
|
||||||
|
return False
|
||||||
|
|
||||||
|
# 禁用SSL警告
|
||||||
|
import urllib3
|
||||||
|
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
|
||||||
|
|
||||||
|
# 主处理循环
|
||||||
|
print("开始处理请求...")
|
||||||
|
for patient in patients:
|
||||||
|
medical_sn = patient["medicalSn"]
|
||||||
|
card_id = patient["cardId"]
|
||||||
|
p_name = patient["pName"]
|
||||||
|
print(f"\n开始处理: {p_name} (体检编号: {medical_sn})")
|
||||||
|
|
||||||
|
# 调用第一个API
|
||||||
|
first_success = request_first_api(medical_sn, card_id, p_name)
|
||||||
|
print(f"第一个API处理完成: {'成功' if first_success else '失败'}")
|
||||||
|
|
||||||
|
# 等待1秒
|
||||||
|
time.sleep(1)
|
||||||
|
|
||||||
|
# 调用第二个API
|
||||||
|
second_success = request_second_api(medical_sn, p_name)
|
||||||
|
print(f"第二个API处理完成: {'成功' if second_success else '失败'}")
|
||||||
|
|
||||||
|
print("\n所有请求处理完成!")
|
||||||
|
print(f"成功请求数: {success_count}")
|
||||||
|
print(f"失败请求数: {fail_count}")
|
||||||
|
print(f"详细日志已保存到: {log_filename}")
|
||||||
76
process_reports.py
Normal file
76
process_reports.py
Normal file
@ -0,0 +1,76 @@
|
|||||||
|
import json
|
||||||
|
import requests
|
||||||
|
import time
|
||||||
|
from datetime import datetime
|
||||||
|
|
||||||
|
# 读取JSON文件
|
||||||
|
with open('修复.json', 'r', encoding='utf-8') as f:
|
||||||
|
patients = json.load(f)
|
||||||
|
|
||||||
|
# 创建日志文件
|
||||||
|
log_filename = f'api_requests_{datetime.now().strftime("%Y%m%d_%H%M%S")}.log'
|
||||||
|
success_count = 0
|
||||||
|
fail_count = 0
|
||||||
|
|
||||||
|
def log_result(medical_sn, p_name, success, response):
|
||||||
|
global success_count, fail_count
|
||||||
|
timestamp = datetime.now().strftime("%Y-%m-%d %H:%M:%S")
|
||||||
|
status = "成功" if success else "失败"
|
||||||
|
if success:
|
||||||
|
success_count += 1
|
||||||
|
else:
|
||||||
|
fail_count += 1
|
||||||
|
|
||||||
|
with open(log_filename, 'a', encoding='utf-8') as f:
|
||||||
|
f.write(f"[{timestamp}] 体检编号: {medical_sn}, 姓名: {p_name}, 状态: {status}\n")
|
||||||
|
f.write(f"响应内容: {json.dumps(response, ensure_ascii=False)}\n")
|
||||||
|
f.write("-" * 80 + "\n")
|
||||||
|
|
||||||
|
# API请求函数
|
||||||
|
def request_report(medical_sn, p_name):
|
||||||
|
url = f"https://pacs.gw12320.com/adminInspect/admin-api/inspect/patient/generateReport"
|
||||||
|
params = {"medicalSn": medical_sn}
|
||||||
|
|
||||||
|
# 添加请求头,完全匹配Postman的设置
|
||||||
|
headers = {
|
||||||
|
'Content-Type': 'application/json',
|
||||||
|
'User-Agent': 'PostmanRuntime/7.43.3',
|
||||||
|
'Accept': '*/*',
|
||||||
|
'Accept-Encoding': 'gzip, deflate, br',
|
||||||
|
'Connection': 'keep-alive',
|
||||||
|
'Host': 'pacs.gw12320.com'
|
||||||
|
}
|
||||||
|
|
||||||
|
try:
|
||||||
|
print(f"正在请求 {p_name} 的报告,请等待接口返回...")
|
||||||
|
response = requests.get(url, params=params, headers=headers, verify=False)
|
||||||
|
response.raise_for_status() # 检查HTTP错误
|
||||||
|
result = response.json()
|
||||||
|
# 修改成功判断条件:code为0表示成功
|
||||||
|
success = result.get("code", -1) == 0
|
||||||
|
log_result(medical_sn, p_name, success, result)
|
||||||
|
return success
|
||||||
|
except Exception as e:
|
||||||
|
error_msg = str(e)
|
||||||
|
print(f"请求失败: {error_msg}")
|
||||||
|
log_result(medical_sn, p_name, False, {"error": error_msg})
|
||||||
|
return False
|
||||||
|
|
||||||
|
# 禁用SSL警告
|
||||||
|
import urllib3
|
||||||
|
urllib3.disable_warnings(urllib3.exceptions.InsecureRequestWarning)
|
||||||
|
|
||||||
|
# 主处理循环
|
||||||
|
print("开始处理请求...")
|
||||||
|
for patient in patients:
|
||||||
|
medical_sn = patient["medicalSn"]
|
||||||
|
p_name = patient["pName"]
|
||||||
|
print(f"\n开始处理: {p_name} (体检编号: {medical_sn})")
|
||||||
|
|
||||||
|
success = request_report(medical_sn, p_name)
|
||||||
|
print(f"处理完成: {'成功' if success else '失败'}")
|
||||||
|
|
||||||
|
print("\n所有请求处理完成!")
|
||||||
|
print(f"成功请求数: {success_count}")
|
||||||
|
print(f"失败请求数: {fail_count}")
|
||||||
|
print(f"详细日志已保存到: {log_filename}")
|
||||||
54
start_process.bat
Normal file
54
start_process.bat
Normal file
@ -0,0 +1,54 @@
|
|||||||
|
@echo off
|
||||||
|
chcp 65001
|
||||||
|
echo 正在启动报告生成程序...
|
||||||
|
|
||||||
|
REM 检测 Python(优先 py 启动器,避免 WindowsApps 的 python 占位符抢先失败)
|
||||||
|
set "PYTHON_CMD="
|
||||||
|
py -3 --version >nul 2>&1 && set "PYTHON_CMD=py -3" && goto :py_found
|
||||||
|
py --version >nul 2>&1 && set "PYTHON_CMD=py" && goto :py_found
|
||||||
|
python --version >nul 2>&1 && set "PYTHON_CMD=python" && goto :py_found
|
||||||
|
python3 --version >nul 2>&1 && set "PYTHON_CMD=python3" && goto :py_found
|
||||||
|
|
||||||
|
echo Python未安装或未在 PATH 中!
|
||||||
|
echo 已尝试: py -3、py、python、python3
|
||||||
|
echo 若已安装,请勾选安装程序中的「Add python.exe to PATH」,或手动把 Python 目录加入系统环境变量 Path。
|
||||||
|
echo.
|
||||||
|
echo 按任意键退出...
|
||||||
|
pause >nul
|
||||||
|
exit /b 1
|
||||||
|
|
||||||
|
:py_found
|
||||||
|
echo 使用 Python 命令: %PYTHON_CMD%
|
||||||
|
|
||||||
|
REM 检查必要的Python包
|
||||||
|
echo 检查必要的Python包...
|
||||||
|
%PYTHON_CMD% -c "import requests" >nul 2>&1
|
||||||
|
if errorlevel 1 (
|
||||||
|
echo 正在安装必要的Python包...
|
||||||
|
%PYTHON_CMD% -m pip install requests
|
||||||
|
if errorlevel 1 (
|
||||||
|
echo 安装包失败!
|
||||||
|
echo 请手动执行: pip install requests
|
||||||
|
echo.
|
||||||
|
echo 按任意键退出...
|
||||||
|
pause > nul
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
REM 检查JSON文件是否存在
|
||||||
|
if not exist "修复.json" (
|
||||||
|
echo 错误:找不到 修复.json 文件!
|
||||||
|
echo 请确保 修复.json 文件在当前目录下。
|
||||||
|
echo.
|
||||||
|
echo 按任意键退出...
|
||||||
|
pause > nul
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
|
||||||
|
echo 开始执行Python脚本...
|
||||||
|
%PYTHON_CMD% process_reports.py
|
||||||
|
|
||||||
|
echo.
|
||||||
|
echo 程序执行完毕,按任意键退出...
|
||||||
|
pause > nul
|
||||||
61
启动体检报告处理.bat
Normal file
61
启动体检报告处理.bat
Normal file
@ -0,0 +1,61 @@
|
|||||||
|
@echo off
|
||||||
|
chcp 65001
|
||||||
|
echo 正在启动体检报告处理程序...
|
||||||
|
|
||||||
|
REM 显示当前目录
|
||||||
|
echo 当前目录: %CD%
|
||||||
|
echo 正在检查文件...
|
||||||
|
|
||||||
|
REM 检测 Python(优先 py 启动器,避免 WindowsApps 的 python 占位符抢先失败)
|
||||||
|
set "PYTHON_CMD="
|
||||||
|
py -3 --version >nul 2>&1 && set "PYTHON_CMD=py -3" && goto :py_found
|
||||||
|
py --version >nul 2>&1 && set "PYTHON_CMD=py" && goto :py_found
|
||||||
|
python --version >nul 2>&1 && set "PYTHON_CMD=python" && goto :py_found
|
||||||
|
python3 --version >nul 2>&1 && set "PYTHON_CMD=python3" && goto :py_found
|
||||||
|
|
||||||
|
echo Python未安装或未在 PATH 中!
|
||||||
|
echo 已尝试: py -3、py、python、python3
|
||||||
|
echo 若已安装,请勾选安装程序中的「Add python.exe to PATH」,或手动把 Python 目录加入系统环境变量 Path。
|
||||||
|
echo.
|
||||||
|
echo 按任意键退出...
|
||||||
|
pause >nul
|
||||||
|
exit /b 1
|
||||||
|
|
||||||
|
:py_found
|
||||||
|
echo 使用 Python 命令: %PYTHON_CMD%
|
||||||
|
|
||||||
|
REM 检查必要的Python包
|
||||||
|
echo 检查必要的Python包...
|
||||||
|
%PYTHON_CMD% -c "import requests" >nul 2>&1
|
||||||
|
if errorlevel 1 (
|
||||||
|
echo 正在安装必要的Python包...
|
||||||
|
%PYTHON_CMD% -m pip install requests
|
||||||
|
if errorlevel 1 (
|
||||||
|
echo 安装包失败!
|
||||||
|
echo 请手动执行: pip install requests
|
||||||
|
echo.
|
||||||
|
echo 按任意键退出...
|
||||||
|
pause > nul
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
)
|
||||||
|
|
||||||
|
REM 检查JSON文件是否存在
|
||||||
|
dir headurl.json
|
||||||
|
if not exist "headurl.json" (
|
||||||
|
echo 错误:找不到 headurl.json 文件!
|
||||||
|
echo 请确保 headurl.json 文件在当前目录下。
|
||||||
|
echo 当前目录下的文件:
|
||||||
|
dir
|
||||||
|
echo.
|
||||||
|
echo 按任意键退出...
|
||||||
|
pause > nul
|
||||||
|
exit /b 1
|
||||||
|
)
|
||||||
|
|
||||||
|
echo 开始执行Python脚本...
|
||||||
|
%PYTHON_CMD% process_patients.py
|
||||||
|
|
||||||
|
echo.
|
||||||
|
echo 程序执行完毕,按任意键退出...
|
||||||
|
pause > nul
|
||||||
Loading…
Reference in New Issue
Block a user