Major Changes: - Add StreamingService with OpenAI Compatible format - Upgrade Chat component V2 with Ant Design X integration - Implement AIA module with 12 intelligent agents - Update API routes to unified /api/v1 prefix - Update system documentation Backend (~1300 lines): - common/streaming: OpenAI Compatible adapter - modules/aia: 12 agents, conversation service, streaming integration - Update route versions (RVW, PKB to v1) Frontend (~3500 lines): - modules/aia: AgentHub + ChatWorkspace (100% prototype restoration) - shared/Chat: AIStreamChat, ThinkingBlock, useAIStream Hook - Update API endpoints to v1 Documentation: - AIA module status guide - Universal capabilities catalog - System overview updates - All module documentation sync Tested: Stream response verified, authentication working Status: AIA V2.0 core completed (85%)
485 lines
37 KiB
Markdown
485 lines
37 KiB
Markdown
# **REDCap鈭峕活撘<E6B4BB><E69298>烐楛摨衣<E691A8>蝛嗆𥁒<E59786>𠺪<EFBFBD><F0A0BAAA>嗆<EFBFBD>雿梶頂<E6A2B6><E9A082>宏<EFBFBD>函垢鈭支<E988AD>銝擧<E98A9D>雿喳<E99BBF>頝萄<E9A09D><E89084>航圾<E888AA>?*
|
||
|
||
## **1\. <20>扯<EFBFBD><E689AF>䁅<EFBFBD>銝擧沲<E693A7><E6B2B2><EFBFBD><EFBFBD>?*
|
||
|
||
Research Electronic Data Capture (REDCap) 撌脩<E6928C>隞𦒘<E99A9E>銝芸<E98A9D>銝<EFBFBD><E98A9D><EFBFBD>㺭<EFBFBD>格𤣰<E6A0BC><F0A4A3B0>極<EFBFBD>瑟<EFBFBD><E7919F>䀝蛹銝<E89BB9>銝芾<E98A9D>憭<EFBFBD>𣈲<EFBFBD><F0A388B2><EFBFBD><EFBFBD><EFBFBD>葩摨𡃏<E691A8>撉䎚<E69289><E48E9A><EFBFBD><EFBFBD>亙極雿𨀣<E99BBF><F0A880A3>𣬚熊<F0A3AC9A>𤑳<EFBFBD>蝛嗥<E89D9B>撘箏之<E7AE8F><E4B98B><EFBFBD><EFBFBD>頂蝏麄<E89D8F><E9BA84>蒾<EFBFBD>嗉<EFBFBD>敺瑕嵗憭批郎嚗Āanderbilt University嚗匧<E59A97><E58CA7>𤑳<EFBFBD><F0A491B3>詨<EFBFBD>摨𠉛鍂蝔见<E89D94><E8A781>𣂷<EFBFBD>鈭<EFBFBD><E988AD>憟堒<E6869F><E5A092><EFBFBD><EFBFBD>靚<EFBFBD>䰻蝞∠<E89D9E><E288A0>峕㺭<E5B395>桀<EFBFBD><E6A180>亙極<E4BA99>瘀<EFBFBD>雿<EFBFBD>笆鈭𦒘<E988AD>銝𡁶漣<F0A181B6>𠉛弦<F0A0899B><E5BCA6><EFBFBD><EFBFBD><EFBFBD>葩摨𦠜㺭<F0A6A09C>桃恣<E6A183><E681A3><EFBFBD>諹<EFBFBD>嚗朙EDCap<61><70>迤<EFBFBD><E8BFA4><EFBFBD><EFBFBD>𥕦銁鈭𤾸<E988AD><F0A4BEB8>靝<EFBFBD>甈∪<E79488><E288AA>爗<EFBFBD>肽<EFBFBD><E882BD>䜘<EFBFBD><E49C98><EFBFBD>銝<EFBFBD><E98A9D>航祗瘨萇<E798A8>鈭<EFBFBD><E988AD>朞<EFBFBD>憭㚚<E686AD>璅∪<E79285>嚗𠄌xternal Module, EM嚗㗇<E59A97><E39787>嗚<EFBFBD><E5979A><EFBFBD><EFBFBD>函<EFBFBD>摨讐<E691A8>蝔𧢲𦻖<F0A7A2B2><F0A6BB96><EFBFBD>API嚗剹<E59A97><E589B9>㺭<EFBFBD>桀<EFBFBD><E6A180>亥圻<E4BAA5>穃膥嚗㇄ET嚗劐誑<E58A90>𦠜<EFBFBD><F0A6A09C>䟕EDCap蝘餃𢆡摨𠉛鍂蝔见<E89D94><E8A781>愢yCap<61><70>宏<EFBFBD>券<EFBFBD><E588B8>鞟<EFBFBD><E99E9F>亙笆REDCap餈𥡝<E9A488><F0A5A19D><EFBFBD><EFBFBD>摨誩<E691A8><E8AAA9>拙<EFBFBD>1<EFBFBD>?
|
||
<EFBFBD>祆𥁒<EFBFBD>𦠜秄<EFBFBD>冽<EFBFBD>靘𥕦<EFBFBD>鈭竃EDCap鈭峕活撘<EFBFBD><EFBFBD>𤑳<EFBFBD>霂血偷<EFBFBD><EFBFBD><EFBFBD>臬<EFBFBD><EFBFBD>僐<EFBFBD><EFBFBD><EFBFBD>銝滢<EFBFBD><EFBFBD>Z悄鈭<EFBFBD>沲<EFBFBD><EFBFBD><EFBFBD><EFBFBD>單辺隞嗚<EFBFBD><EFBFBD><EFBFBD><EFBFBD>抒<EFBFBD><EFBFBD>雴辣嚗㇊lugin嚗匧<EFBFBD><EFBFBD>唬誨憭㚚<EFBFBD>璅∪<EFBFBD>獢<EFBFBD>沲<EFBFBD><EFBFBD><EFBFBD>皜~<EFBFBD><EFBFBD><EFBFBD><EFBFBD>函<EFBFBD><EFBFBD><EFBFBD><EFBFBD>頝蛛<EFBFBD>餈䀹楛<EFBFBD>亙<EFBFBD><EFBFBD>𣂷<EFBFBD>蝘餃𢆡蝡臬<EFBFBD>甇亦<EFBFBD>憭齿<EFBFBD><EFBFBD>箏<EFBFBD><EFBFBD><EFBFBD>迨憭吔<EFBFBD><EFBFBD>亙<EFBFBD>霂衣<EFBFBD><EFBFBD>堒枂鈭<EFBFBD>鸌摰𡁶<EFBFBD>皞𣂷誨<EFBFBD><EFBFBD>芋撘𧶏<EFBFBD><EFBFBD><EFBFBD><EFBFBD>鈭<EFBFBD>虜閫<EFBFBD><EFBFBD><EFBFBD>琿𩐠嚗<EFBFBD>朖撘<EFBFBD><EFBFBD>睲葉<EFBFBD><EFBFBD><EFBFBD>𨅯<EFBFBD><EFBFBD>嘅<EFBFBD>嚗<EFBFBD>僎<EFBFBD>𣂷<EFBFBD>鈭<EFBFBD>銁摰𡁜<EFBFBD><EFBFBD>蠘<EFBFBD><EFBFBD>嗥輕<EFBFBD>斤頂蝏笔<EFBFBD><EFBFBD>湔<EFBFBD>抒<EFBFBD><EFBFBD><EFBFBD>雿喳<EFBFBD>頝萸<EFBFBD>?
|
||
### **1.1 <20>𠉛<EFBFBD>璅∪<E79285>銝擧<E98A9D><E693A7><EFBFBD>挪<EFBFBD>格<EFBFBD><E6A0BC>鞟<EFBFBD><E99E9F>寞<EFBFBD><E5AF9E>?*
|
||
|
||
銝𦒘<EFBFBD>蝏毺<EFBFBD>撘<EFBFBD>皞鞱蔓隞嗡<EFBFBD><EFBFBD>䕘<EFBFBD>REDCap<EFBFBD>其<EFBFBD>蝘滨𡠺<EFBFBD>寧<EFBFBD>蝞∠<EFBFBD>璅∪<EFBFBD>銝贝<EFBFBD>銵䎚<EFBFBD><EFBFBD><EFBFBD>撖寥<EFBFBD><EFBFBD>亙⏚蝏<EFBFBD><EFBFBD><EFBFBD>滩晶<EFBFBD>𣂷<EFBFBD>嚗䔶<EFBFBD>撟園<EFBFBD><EFBFBD>砍<EFBFBD>憸<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>皞鞱蔓隞嗚<EFBFBD><EFBFBD>蛹鈭<EFBFBD>繮敺𦯀<EFBFBD>甈∪<EFBFBD><EFBFBD>烐<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>隞<EFBFBD><EFBFBD>嚗𣬚<EFBFBD>蝏<EFBFBD><EFBFBD>憿駁<EFBFBD>朞<EFBFBD>銝舘<EFBFBD>敺瑕嵗憭批郎蝑曄蔡<EFBFBD><EFBFBD>蝏<EFBFBD>鍂<EFBFBD>瑁捂<EFBFBD>臬<EFBFBD>霈殷<EFBFBD>EULA嚗匧<EFBFBD><EFBFBD>充EDCap<EFBFBD>𠉛<EFBFBD>3<EFBFBD>?
|
||
餈嗵<EFBFBD><EFBFBD>箏<EFBFBD>撖孵<EFBFBD><EFBFBD>𤏸<EFBFBD><EFBFBD>秐<EFBFBD>喲<EFBFBD>閬<EFBFBD><EFBFBD><EFBFBD><EFBFBD>隞<EFBFBD><EFBFBD><EFBFBD>䭾<EFBFBD><EFBFBD>沁itHub蝑匧<EFBFBD><EFBFBD>勗<EFBFBD><EFBFBD>典<EFBFBD>銝凋誑<EFBFBD>航<EFBFBD>銵𣬚<EFBFBD><EFBFBD>澆<EFBFBD><EFBFBD>瑕<EFBFBD>嚗𥕢艇<EFBFBD>潭䔉霂湛<EFBFBD><EFBFBD>詨<EFBFBD>隞<EFBFBD><EFBFBD>摨𤘪糓<EFBFBD>𠉛<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>㕑揣鈭扼<EFBFBD><EFBFBD><EFBFBD><EFBFBD>䕘<EFBFBD><EFBFBD>拙<EFBFBD><EFBFBD>箏<EFBFBD><EFBFBD>婙<EFBFBD>𠉛鸌<EFBFBD>急糓憭㚚<EFBFBD>璅∪<EFBFBD>獢<EFBFBD>沲<EFBFBD>婙<EFBFBD>娍糓<EFBFBD>砍<EFBFBD><EFBFBD><EFBFBD>﹝<EFBFBD>𣇉<EFBFBD>嚗䔶<EFBFBD>蝷曉躹<EFBFBD>朞<EFBFBD>REDCap Repo<70><6F>澈鈭<E6BE88>㺭<EFBFBD>曆葵璅∪<E79285>1<EFBFBD><31>蛹鈭<E89BB9><E988AD>銵峕楛摨衣<E691A8>鈭峕活撘<E6B4BB><E69298>𡢅<EFBFBD>撘<EFBFBD><E69298>𤏸<EFBFBD><F0A48FB8><EFBFBD>𡁜虜<F0A1819C><E8999C>閬<EFBFBD><E996AC><EFBFBD><EFBFBD><EFBFBD>冽㦤<E586BD><E3A6A4><EFBFBD>REDCap蝞∠<E89D9E><E288A0>䀹<EFBFBD>鈭<EFBFBD>𧋦<EFBFBD>唳<EFBFBD><E594B3>∪膥霈輸䔮<E8BCB8><E494AE><EFBFBD>嚗䔶誑靘踵<E99D98><E8B8B5>交瓲敹<E793B2>HP<48><50>辣<EFBFBD>諹<EFBFBD>銵諹<E98AB5>霂?<3F>?
|
||
### **1.2 <20><><EFBFBD>舀沲<E88880><E6B2B2><EFBFBD>LAMP<4D><50><EFBFBD>EAV璅∪<E79285>**
|
||
|
||
鈭峕活撘<EFBFBD><EFBFBD>𤏸<EFBFBD>瘙<EFBFBD>笆REDCap<EFBFBD><EFBFBD><EFBFBD>撅<EFBFBD>抅蝖<EFBFBD>霈暹鴌<EFBFBD>㗇楛<EFBFBD>餌<EFBFBD><EFBFBD><EFBFBD>圾<EFBFBD><EFBFBD>EDCap<EFBFBD><EFBFBD>遣<EFBFBD>汪AMP<EFBFBD><EFBFBD><EFBFBD>銝𠺪<EFBFBD>
|
||
|
||
* **Linux/Windows嚗?* <20>条恣摨𠉛鍂蝔见<E89D94><E8A781><EFBFBD><EFBFBD>雿𦦵頂蝏麄<E89D8F>?
|
||
* **Apache/IIS/Nginx嚗?* 憭<><E686AD>HTTP霂瑟<E99C82><E7919F><EFBFBD>eb<65>滚𦛚<E6BB9A>具<EFBFBD>?
|
||
* **MySQL/MariaDB嚗?* <20>喟頂<E5969F>𧢲㺭<F0A7A2B2>桀<EFBFBD>蝞∠<E89D9E>蝟餌<E89D9F><E9A48C>?
|
||
* **PHP嚗?* <20>其<EFBFBD><E585B6>詨<EFBFBD><E8A9A8>餉<EFBFBD><E9A489>峕<EFBFBD>撅閧<E69285><E996A7>滚𦛚<E6BB9A>函垢<E587BD>𡁏𧋦霂剛<E99C82><E5899B>?
|
||
REDCap鋡急<EFBFBD>餈唬蛹<EFBFBD>𡏭蝠<EFBFBD>讐漣<EFBFBD>嘅<EFBFBD><EFBFBD>𡁜虜<EFBFBD><EFBFBD>閬<EFBFBD>eb<EFBFBD>滚𦛚<EFBFBD>典<EFBFBD><EFBFBD>祉<EFBFBD><EFBFBD><EFBFBD>㺭<EFBFBD>桀<EFBFBD><EFBFBD>滚𦛚<EFBFBD>具<EFBFBD><EFBFBD>笆鈭擧<EFBFBD><EFBFBD><EFBFBD>蝙<EFBFBD>剁<EFBFBD>Web<EFBFBD>滚𦛚<EFBFBD>典<EFBFBD><EFBFBD>唳旿摨枏<EFBFBD><EFBFBD><EFBFBD><EFBFBD>10GB<EFBFBD><EFBFBD><EFBFBD><EFBFBD>函征<EFBFBD>湧<EFBFBD>𡁜虜頞喃誑<EFBFBD>舀<EFBFBD>蝚砌<EFBFBD>撟渡<EFBFBD>擃睃撩摨虫蝙<EFBFBD>?<3F><><EFBFBD><EFBFBD>䕘<EFBFBD>鈭峕活撘<E6B4BB><E69298>穃<EFBFBD>敺<EFBFBD>隡𡁜蒂<F0A1819C>交凒擃条<E69383>韏<EFBFBD><E99F8F><EFBFBD><EFBFBD>瘙<EFBFBD><E79899><EFBFBD><EFBFBD>銵<EFBFBD><E98AB5><EFBFBD><EFBFBD>䰻霂X<E99C82><EFBCB8>朞<EFBFBD>API憭<49><E686AD>憭扳㺭<E689B3>桃<EFBFBD><E6A183>芸<EFBFBD>銋㗇芋<E39787>堒<EFBFBD><E5A092>𨀣𧊋蝏讛<E89D8F>隡睃<E99AA1>嚗<EFBFBD>虾<EFBFBD>賭<EFBFBD>蝏蹱㺭<E8B9B1>桀<EFBFBD>撣行䔉撌典之<E585B8>见<EFBFBD><E8A781>?
|
||
<EFBFBD>唳旿摨𤘪芋撘譍蜓閬<EFBFBD><EFBFBD><EFBFBD>典<EFBFBD>雿?撅墧<E69285>?<3F>潘<EFBFBD>Entity-Attribute-Value, EAV嚗㗇芋<E39787>页<EFBFBD><E9A1B5>孵<EFBFBD><E5ADB5>盍edcap\_data銵剁<E98AB5>摰<EFBFBD>誑<EFBFBD>剔<EFBFBD><E58994><EFBFBD>熊<EFBFBD>烐聢撘𧶏<E69298>record\_id, project\_id, field\_name, value嚗匧<E59A97><E58CA7>函<EFBFBD>憭折<E686AD><E68A98><EFBFBD>★<EFBFBD>格㺭<E6A0BC>柴<EFBFBD><E69FB4><EFBFBD>銝<EFBFBD><E98A9D>嗆<EFBFBD><E59786>喟<EFBFBD><E5969F><EFBFBD>捂<EFBFBD>其<EFBFBD><E585B6>湔㺿<E6B994>唳旿摨𤘪芋撘讐<E69298><E8AE90><EFBFBD><EFBFBD>銝𧢲<E98A9D><F0A7A2B2><EFBFBD>𧑐<EFBFBD>𥕦遣<F0A595A6><E981A3>㺭<EFBFBD>桅店<E6A185>函<EFBFBD>銵典<E98AB5>嚗䔶<E59A97>餈蹱遬<E8B9B1>堒<EFBFBD><E5A092>牐<EFBFBD>鈭峕活撘<E6B4BB><E69298>睲葉<E79DB2>湔𦻖SQL<51>亥砭<E4BAA5><E7A0AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?<3F><><EFBFBD><EFBFBD>𤏸<EFBFBD><F0A48FB8><EFBFBD>憿餃<E686BF>敹<EFBFBD>𧑐瘚讛<E7989A>甇斗芋撘譍誑<E8AD8D>踹<EFBFBD><E8B8B9>扯<EFBFBD>銝钅<E98A9D><E99285>?
|
||
## ---
|
||
|
||
**2\. 憭㚚<E686AD>璅∪<E79285>獢<EFBFBD>沲嚗𠄌xternal Module Framework嚗㚁<E59A97>摰𡁜<E691B0><F0A1819C>𣇉<EFBFBD><F0A38789>唬誨<E594AC><E8AAA8><EFBFBD>**
|
||
|
||
<EFBFBD><EFBFBD>蟮銝𠺪<EFBFBD>REDCap<EFBFBD><EFBFBD><EFBFBD><EFBFBD>嗆糓<EFBFBD>朞<EFBFBD><EFBFBD>𣿯ooks嚗<EFBFBD>偬摮琜<EFBFBD><EFBFBD>嘥<EFBFBD><EFBFBD>憕lugins嚗<EFBFBD><EFBFBD>隞塚<EFBFBD><EFBFBD>嘥<EFBFBD><EFBFBD>啁<EFBFBD><EFBFBD>婙<EFBFBD>𥪜朖<EFBFBD>湔𦻖瘜典<EFBFBD>Web<EFBFBD>滚𦛚<EFBFBD>冽<EFBFBD>隞嗉楝敺<EFBFBD><EFBFBD><EFBFBD>𡁏𧋦<EFBFBD><EFBFBD>蒾<EFBFBD>嗉<EFBFBD>蝘齿䲮瘜閙<EFBFBD><EFBFBD><EFBFBD><EFBFBD>雿<EFBFBD><EFBFBD><EFBFBD>𧼮虜<EFBFBD><EFBFBD>摹嚗𢡱EDCap<EFBFBD>詨<EFBFBD><EFBFBD><EFBFBD><EFBFBD>蝥抒<EFBFBD>撣詨紡<EFBFBD>游<EFBFBD><EFBFBD>嗅<EFBFBD><EFBFBD>賢仃<EFBFBD><EFBFBD><EFBFBD>銝磰楊憭帋葵憿寧𤌍蝞∠<EFBFBD><EFBFBD><EFBFBD>𧋦<EFBFBD>刻<EFBFBD><EFBFBD>蹂<EFBFBD><EFBFBD>舐<EFBFBD><EFBFBD>鞟<EFBFBD>9<EFBFBD>?
|
||
**憭㚚<E686AD>璅∪<E79285>嚗𠄌xternal Module, EM嚗㗇<E59A97><E39787>?*<2A><><EFBFBD><EFBFBD>亙蝠摨閙㺿<E99699>䀝<EFBFBD>鈭峕活撘<E6B4BB><E69298>𤑳<EFBFBD><F0A491B3>澆<EFBFBD><E6BE86><EFBFBD><EFBFBD>撠<EFBFBD>䌊摰帋<E691B0>隞<EFBFBD><E99A9E>撠<EFBFBD><E692A0><EFBFBD>典蒂<E585B8><E89282>𧋦<EFBFBD><F0A78BA6><EFBFBD>銝哨<E98A9D><E593A8>臭誑<E887AD>典<EFBFBD><E585B8>舐鍂<E88890>𡝗<EFBFBD>憿寧𤌍<E5AFA7>舐鍂嚗<E98D82>僎<EFBFBD>朞<EFBFBD><E69C9E>曉耦<E69B89>冽<EFBFBD><E586BD>屸𢒰嚗𠃑UI嚗㕑<E59A97>銵𣬚恣<F0A3AC9A><E681A3><EFBFBD>銝磰<E98A9D><E7A3B0>刻<EFBFBD><E588BB>笔<EFBFBD><E7AC94>曹澈1<E6BE88>?
|
||
### **2.1 憭㚚<E686AD>璅∪<E79285><E288AA><EFBFBD>圾<EFBFBD>硋郎蝏𤘪<E89D8F>**
|
||
|
||
銝<EFBFBD>銝芸<EFBFBD><EFBFBD>冽芋<EFBFBD>埈糓雿滢<EFBFBD>\<redcap-root\>/modules/<2F>桀<EFBFBD>銝讠<E98A9D><E8AEA0><EFBFBD>辣<EFBFBD><E8BEA3><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>賢<EFBFBD>蝥血<E89DA5><E8A180>𧼮虜銝交聢嚗䨵<prefix\>\_v\<version\_number\><3E><><EFBFBD>憒<EFBFBD><E68692>銝<EFBFBD>銝芰眏<E88AB0>滨<EFBFBD>銝算<E98A9D>𦣇ompany<6E>萘<EFBFBD>撘<EFBFBD><E69298>𤏸<EFBFBD><F0A48FB8><EFBFBD><EFBFBD>𤑳<EFBFBD><F0A491B3>滢蛹<E6BBA2>𣿯ello World<6C>萘<EFBFBD>璅∪<E79285><E288AA>航<EFBFBD>雿滢<E99BBF>modules/company\_hello\_world\_v1.0.010<EFBFBD>?
|
||
憭㚚<EFBFBD>璅∪<EFBFBD><EFBFBD><EFBFBD>瓲敹<EFBFBD><EFBFBD>隞嗅<EFBFBD>銝贝”<EFBFBD><EFBFBD>蝷綽<EFBFBD>
|
||
|
||
| 蝏<>辣<EFBFBD>滨妍 | <20><>辣<EFBFBD>?| <20>蠘<EFBFBD><E8A098>讛膩 |
|
||
| :---- | :---- | :---- |
|
||
| **<EFBFBD>滨蔭皜<EFBFBD><EFBFBD>** | config.json | 摰帋<E691B0><E5B88B><EFBFBD>㺭<EFBFBD>柴<EFBFBD><E69FB4><EFBFBD><EFBFBD>僐<EFBFBD><E58390>曎<EFBFBD>乓<EFBFBD><E4B993>頂蝏?憿寧𤌍霈曄蔭隞亙<E99A9E>Cron雿靝<E99BBF><E99D9D><EFBFBD><EFBFBD><EFBFBD>舀芋<E88880>㛖<EFBFBD><E39B96>亙藁<E4BA99>嫘<EFBFBD>?|
|
||
| **<EFBFBD>餉<EFBFBD>蝐?* | Module.php | 蝏扳㗁<E689B3>服bstractExternalModule<6C><65>HP蝐颯<E89D90><E9A2AF><EFBFBD><EFBFBD>思<EFBFBD><E6809D>⊿<EFBFBD>餉<EFBFBD><E9A489>屸偬摮𣂼<E691AE><F0A382BC>啜<EFBFBD>?|
|
||
| **<EFBFBD><EFBFBD>﹝** | README.md | 雿輻鍂霂湔<E99C82>嚗<EFBFBD>笆鈭擧<E988AD>鈭文<E988AD>Repo<70>喳<EFBFBD><E596B3>滩<EFBFBD>嚗剹<E59A97>?|
|
||
| **霈詨虾霂?* | LICENSE | 霈詨虾<E8A9A8>⊥狡嚗<E78BA1><E59A97>𡁜虜銝撤IT<49>𣇉掩隡潭辺甈曆誑靘蹂<E99D98><E8B982>𠉛<EFBFBD><F0A0899B>曹澈嚗剹<E59A97>?|
|
||
| **颲<>𨭌<EFBFBD><F0A8AD8C>辣** | /pages, /js | <20>其<EFBFBD>摮䀹𦆮<E480B9>芸<EFBFBD>銋厰△<E58EB0>U<EFBFBD><EFBCB5>avaScript<70>𥟟SS韏<53><E99F8F><EFBFBD><EFBFBD><EFBFBD><EFBFBD>桀<EFBFBD><E6A180>?|
|
||
|
||
#### **2.1.1 <20>滨蔭<E6BBA8><E894AD>辣 (config.json) <20><>楛摨西圾<E8A5BF>?*
|
||
|
||
config.json<6F><6E>辣銝滢<E98A9D><E6BBA2>舫<EFBFBD>蝵殷<E89DB5>摰<EFBFBD>糓璅∪<E79285><E288AA><EFBFBD>ㄟ<EFBFBD>𦒘髡<F0A69298><E9ABA1><EFBFBD><EFBFBD>𡃏<EFBFBD>REDCap霂交芋<E4BAA4>𡑒<EFBFBD><F0A19192>帋<EFBFBD>銋<EFBFBD>誑<EFBFBD>𠰴<EFBFBD><F0A0B0B4><EFBFBD>閬<EFBFBD><E996AC>銋<EFBFBD><E98A8B><EFBFBD>僐<EFBFBD><E58390><EFBFBD><EFBFBD>䯀SON<4F><4E>辣<EFBFBD>滨蔭<E6BBA8>躰秤嚗峕芋<E5B395>堒<EFBFBD><E5A092>䭾<EFBFBD><E4ADBE>㰘蝸<E3B098>?
|
||
**皞𣂷誨<F0A382B7><E8AAA8>內<EFBFBD><E585A7><EFBFBD>config.json蝏𤘪<E89D8F>**
|
||
|
||
JSON
|
||
|
||
{
|
||
"name": "Advanced Data Processor",
|
||
"description": "<22>其<EFBFBD>摮䀹𧒄憭<F0A79284><E686AD><EFBFBD>唳旿撟嗡<E6929F>憭㚚<E686AD>API<50><49><EFBFBD><EFBFBD>?,
|
||
"permissions": \[
|
||
"redcap\_save\_record",
|
||
"redcap\_every\_page\_top"
|
||
\],
|
||
"links": {
|
||
"project": \[
|
||
{
|
||
"name": "<22>唳旿憭<E697BF><E686AD>隞芾”<E88ABE>?,
|
||
"icon": "fas fa-chart-line",
|
||
"url": "pages/dashboard.php"
|
||
}
|
||
\],
|
||
"control-center": \[
|
||
{
|
||
"name": "憭<><E686AD><EFBFBD>冽𠯫敹?,
|
||
"icon": "fas fa-server",
|
||
"url": "pages/admin\_logs.php"
|
||
}
|
||
\]
|
||
},
|
||
"project-settings":,
|
||
"authors":
|
||
}
|
||
|
||
*獢<><E78DA2><EFBFBD><EFBFBD><EFBFBD>嚗? permissions<6E>啁<EFBFBD><E59581>曉<EFBFBD>霂瑟<E99C82>撖寧鸌摰𡁻偬摮鞟<E691AE>霈輸䔮<E8BCB8><E494AE><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>𨀣迨憭<E8BFA8>𧊋<EFBFBD>堒枂<E5A092>𣂷葵<F0A382B7>拙<EFBFBD>嚗<EFBFBD>朖雿踹銁PHP蝐颱葉摰帋<E691B0>鈭<EFBFBD>砲<EFBFBD>賣㺭嚗<E3BAAD><E59A97>銋<EFBFBD>偶餈靝<E9A488>隡𡁏<E99AA1>銵䎚<E98AB5><E48E9A>roject-settings<67>啁<EFBFBD><E59581>券★<E588B8>株挽蝵桅△<E6A185>V葉<EFBCB6>𥕦遣鈭<E981A3><E988AD>銝果UI嚗<49><E59A97>霈貊鍂<E8B28A>瑕銁銝齿𦻖閫虫誨<E899AB><E8AAA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>銝钅<E98A9D>蝵格芋<E6A0BC>?1<>?
|
||
#### **2.1.2 璅∪<E79285>蝐?(ExternalModule.php) <20><><EFBFBD><EFBFBD>圈<EFBFBD>餉<EFBFBD>**
|
||
|
||
餈嗘葵<EFBFBD><EFBFBD>辣<EFBFBD><EFBFBD>鉄<EFBFBD>拙<EFBFBD>AbstractExternalModule<EFBFBD><EFBFBD>HP蝐颯<EFBFBD><EFBFBD><EFBFBD>蝘滨誧<EFBFBD>踵<EFBFBD>靘𥕢<EFBFBD>撖寞<EFBFBD><EFBFBD>嗉<EFBFBD><EFBFBD>拇䲮瘜閧<EFBFBD>霈輸䔮嚗<EFBFBD><EFBFBD>getProjectSetting<EFBFBD><EFBFBD>uery<EFBFBD>峕𠯫敹𡑒扇敶訫<EFBFBD><EFBFBD>賬<EFBFBD>?
|
||
**皞𣂷誨<F0A382B7><E8AAA8>內<EFBFBD><E585A7><EFBFBD>蝐餌<E89D90><E9A48C><EFBFBD><EFBFBD><EFBFBD>餉<EFBFBD>撠<EFBFBD><E692A0>**
|
||
|
||
PHP
|
||
|
||
\<?php
|
||
namespace Institution\\AdvancedDataProcessor;
|
||
|
||
use ExternalModules\\AbstractExternalModule;
|
||
use REDCap;
|
||
|
||
class AdvancedDataProcessor extends AbstractExternalModule {
|
||
|
||
// 敶栞扇敶蓥<E695B6>摮䀹𧒄<E480B9>芸𢆡閫血<E996AB><E8A180><EFBFBD>䲮瘜?
|
||
public function redcap\_save\_record($project\_id, $record, $instrument, $event\_id, $group\_id, $survey\_hash, $response\_id, $repeat\_instance) {
|
||
|
||
// 1\. 璉<><E79289>亥砲憿寧𤌍<E5AFA7>臬炏<E887AC>舐鍂鈭<E98D82>芋<EFBFBD>烾<EFBFBD>餉<EFBFBD>
|
||
if ($this\-\>getProjectSetting('enable\_processing')\!== true) {
|
||
return;
|
||
}
|
||
|
||
// 2\. <20>脫迫<E884AB>𣳇<EFBFBD>敺芰㴓嚗?Infinite Loop Trap)
|
||
// 憒<><E68692>甇文遆<E69687>唬<EFBFBD>摮䀹㺭<E480B9>殷<EFBFBD>摰<EFBFBD>虾<EFBFBD>賭<EFBFBD><E8B3AD>齿活閫血<E996AB>redcap\_save\_record<72>?
|
||
// 雿輻鍂<E8BCBB>蹱<EFBFBD><E8B9B1><EFBFBD>敹埈<E695B9>璉<EFBFBD><E79289>乩<EFBFBD>摮䀹糓<E480B9>衣眏<E8A1A3>祆芋<E7A586>𡑒圻<F0A19192>烐糓敹<E7B393>◆<EFBFBD><E29786><EFBFBD>?
|
||
static $is\_processing \= false;
|
||
if ($is\_processing) return;
|
||
$is\_processing \= true;
|
||
|
||
try {
|
||
// 3\. <20>扯<EFBFBD><E689AF>詨<EFBFBD><E8A9A8>餉<EFBFBD>
|
||
$this\-\>processData($project\_id, $record, $instrument);
|
||
} catch (\\Exception $e) {
|
||
$this\-\>emError("憭<><E686AD>霈啣<E99C88> $record <20>嗅枂<E59785>? ". $e\-\>getMessage());
|
||
}
|
||
|
||
$is\_processing \= false;
|
||
}
|
||
|
||
private function processData($pid, $record, $form) {
|
||
// 摰䂿緵蝏<E7B7B5><E89D8F>
|
||
$endpoint \= $this\-\>getProjectSetting('api\_endpoint');
|
||
//... API 靚<>鍂<EFBFBD>餉<EFBFBD>...
|
||
}
|
||
}
|
||
|
||
餈嗵<EFBFBD>蝏𤘪<EFBFBD>蝖桐<EFBFBD>鈭<EFBFBD><EFBFBD>鋆<EFBFBD><EFBFBD>扼<EFBFBD><EFBFBD><EFBFBD>朞<EFBFBD>雿輻鍂namespace嚗峕芋<EFBFBD>烾<EFBFBD><EFBFBD>滢<EFBFBD>銝𤾸<EFBFBD>隞硋虾<EFBFBD>賭蝙<EFBFBD>函㮾隡潛掩<EFBFBD>滨<EFBFBD>璅∪<EFBFBD><EFBFBD>𤑳<EFBFBD><EFBFBD>脩<EFBFBD>13<EFBFBD>?
|
||
### **2.2 <20>喲睸<E596B2>拙<EFBFBD>嚗𠃍ooks嚗劐<E59A97>鈭衤辣憭<E8BEA3><E686AD><EFBFBD>箏<EFBFBD>**
|
||
|
||
<EFBFBD>拙<EFBFBD><EFBFBD>臬僕憸<EFBFBD>EDCap撌乩<EFBFBD>瘚<EFBFBD><EFBFBD>銝餉<EFBFBD><EFBFBD>箏<EFBFBD><EFBFBD><EFBFBD><EFBFBD>隞砍<EFBFBD>霈詨<EFBFBD><EFBFBD>𤏸<EFBFBD><EFBFBD>銁摨𠉛鍂蝔见<EFBFBD><EFBFBD>笔𦶢<EFBFBD>冽<EFBFBD><EFBFBD><EFBFBD>鸌摰𡁶<EFBFBD><EFBFBD>扯<EFBFBD>隞<EFBFBD><EFBFBD>9<EFBFBD>?
|
||
#### **2.2.1 redcap\_save\_record嚗𡁏瓲敹<E793B2>㺭<EFBFBD>桀<EFBFBD><E6A180>?*
|
||
|
||
餈蹱糓鈭峕活撘<EFBFBD><EFBFBD>睲葉<EFBFBD><EFBFBD><EFBFBD>滩<EFBFBD><EFBFBD><EFBFBD>偬摮僐<EFBFBD><EFBFBD><EFBFBD><EFBFBD>冽㺭<EFBFBD>桀歇<EFBFBD>𣂷漱<EFBFBD>唳㺭<EFBFBD>桀<EFBFBD>*銋见<E98A8B>*嚗䔶<E59A97><E494B6>函鍂<E587BD>瑞<EFBFBD><E7919E>啁&霈斗<E99C88><E69697>臭<EFBFBD><E887AD>㵪<EFBFBD><E3B5AA>冽<EFBFBD>鈭𥕢<E988AD>銝𧢲<E98A9D>銝哨<E98A9D><E593A8>硋銁<E7A18B>𤾸蝱靽嘥<E99DBD><E598A5>𡒊<EFBFBD><F0A1928A>唾圻<E594BE>㻫<EFBFBD>?
|
||
* **<2A><>㺭霂西圾嚗?* $project\_id嚗<64>★<EFBFBD>埋D嚗? $record嚗<64>扇敶訫<E695B6>嚗? $instrument嚗<74>”<EFBFBD>訫<EFBFBD>嚗? $event\_id嚗<64><E59A97>隞貂D嚗? $group\_id嚗<64>㺭<EFBFBD>株挪<E6A0AA>桃<EFBFBD>ID嚗? $survey\_hash嚗<68><E59A97><EFBFBD>亙<EFBFBD>撣䕘<E692A3>, $response\_id嚗<64><E59A97>摨㶏D嚗? $repeat\_instance嚗<65><E59A97>憭滚<E686AD>靘页<E99D98>14<31>?
|
||
* **<2A><>雿喳<E99BBF><E596B3>典㦤<E585B8>荔<EFBFBD>**
|
||
* **<2A>芸𢆡霂<F0A286A1><E99C82>銝舘恣蝞梹<E89D9E>** 憭<><E686AD>REDCap<61><70>蔭霈∠<E99C88>摮埈挾<E59F88>䭾<EFBFBD>憭<EFBFBD><E686AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>靘见<E99D98>嚗諹楊鈭衤辣霈∠<E99C88><E288A0>𡝗<EFBFBD><F0A19D97>𦠜辺隞園<E99A9E>餉<EFBFBD><E9A489><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>?
|
||
* **<2A>唳旿敶訫<E695B6>閫血<E996AB><E8A180>剁<EFBFBD>DET嚗㗇芋<E39787><E88A8B><EFBFBD>** 靽嘥<E99DBD><E598A5>嗥<EFBFBD><E597A5>喳<EFBFBD><E596B3>唳旿<E594B3>券<EFBFBD><E588B8><EFBFBD>憭㚚<E686AD>瘜典<E7989C>銵冽<E98AB5><E586BD>萄<EFBFBD><E89084><EFBFBD><EFBFBD>蝟餌<E89D9F>嚗𠄌MR嚗剹<E59A97>?
|
||
* **<2A>唳旿<E594B3>峕郊嚗?* <20>芸𢆡撠<F0A286A1><E692A0>𦦵<EFBFBD><F0A6A6B5>争<EFBFBD>嗪★<E597AA>桐葉<E6A190><E89189>㺭<EFBFBD>桀<EFBFBD><E6A180>嗅<EFBFBD><E59785>靝蜓<E99D9D>𠉛弦<F0A0899B>嗪★<E597AA>桐葉17<31>?
|
||
* **<2A>游𦶢<E6B8B8>琿𩐠嚗㇍he Infinite Loop嚗㚁<E59A97>** 銝<>銝芸虜閫<E8999C><E996AB><EFBFBD>躰秤<E8BAB0>盍edcap\_save\_record<72><64><EFBFBD>靚<EFBFBD>鍂REDCap::saveData<74><61>眏鈭粃aveData隡𡁜<E99AA1>甈∟圻<E2889F>𩹨edcap\_save\_record嚗諹<E59A97>隡𡁜紡<F0A1819C>湔<EFBFBD><E6B994>鞾<EFBFBD>鍦<EFBFBD>嚗峕<E59A97>蝏<EFBFBD>紡<EFBFBD>湔<EFBFBD><E6B994>∪膥撏拇<E6928F>嚗<EFBFBD>挾<EFBFBD>躰秤<E8BAB0>硋<EFBFBD>摮䁅<E691AE>堒偷嚗剹<E59A97>?
|
||
* *閫<><E996AB><EFBFBD>寞<EFBFBD>嚗? 撘<><E69298>𤏸<EFBFBD><F0A48FB8><EFBFBD>憿餃<E686BF><E9A483>恍<EFBFBD>餉<EFBFBD><E9A489>交<EFBFBD><E4BAA4>乩<EFBFBD>摮䀹糓<E480B9>血歇<E8A180>刻<EFBFBD>銵䔶葉嚗峕<E59A97>雿輻鍂<E8BCBB><E98D82><EFBFBD><EFBFBD>典遆<E585B8>啁眏璅∪<E79285><E288AA>祈澈閫血<E996AB><E8A180>嗆<EFBFBD><E59786>漤<EFBFBD><E6BCA4><EFBFBD>箝<EFBFBD>?
|
||
#### **2.2.2 redcap\_every\_page\_top嚗䦧I瘜典<E7989C>銝𤾸<E98A9D>撅<EFBFBD><E69285>批<EFBFBD>**
|
||
|
||
甇日偬摮𣂼銁瘥譍葵憿寧𤌍銝𠹺<EFBFBD><EFBFBD><EFBFBD><EFBFBD>憿菟𢒰<EFBFBD>㰘蝸<EFBFBD>嗆<EFBFBD>銵䎚<EFBFBD>?
|
||
* **<2A><>雿喳<E99BBF><E596B3>典㦤<E585B8>荔<EFBFBD>**
|
||
* **UI/DOM<4F>滢<EFBFBD>嚗?* 瘜典<E7989C>JavaScript嚗<74>掩隡嘯hazam璅∪<E79285><E288AA><EFBFBD>䲮瘜𤏪<E7989C><F0A48FAA>乩耨<E4B9A9>道OM嚗<4D>抅鈭𤾸<E988AD><F0A4BEB8><EFBFBD><EFBFBD>餉<EFBFBD><E9A489>鞱<EFBFBD>摮埈挾嚗峕<E59A97><E5B395>湔㺿隞芸膥<E88AB8><E886A5><EFBFBD>閫?3<>?
|
||
* **CSS瘜典<E7989C>嚗?* <20>㰘蝸<E3B098>芸<EFBFBD>銋㗇甅撘讛”隞亙笆憿寧𤌍餈𥡝<E9A488><F0A5A19D><EFBFBD><EFBFBD><EFBFBD>硔<EFBFBD>?
|
||
* **<2A>扯<EFBFBD>霅血<E99C85>嚗?* <20>曹<EFBFBD>甇日偬摮𣂼銁*瘥譍<E798A5>憿?餈鞱<E9A488>嚗<EFBFBD>銁甇日偬摮𣂼<E691AE>餈𥡝<E9A488>蝜<EFBFBD><E89D9C><EFBFBD><EFBFBD>㺭<EFBFBD>桀<EFBFBD><E6A180>亥砭撠<E7A0AD>艇<EFBFBD>漤<EFBFBD>雿𡒊鍂<F0A1928A>瑚<EFBFBD>撉䎚<E69289><E48E9A>迨憭<E8BFA8><E686AD>隞<EFBFBD><E99A9E>敹<EFBFBD>◆<EFBFBD><E29786>漲頧駁<E9A0A7><E9A781>?
|
||
#### **2.2.3 redcap\_survey\_complete嚗𡁜<E59A97>銝舘<E98A9D><E88898><EFBFBD>蝔𧢲綉<F0A7A2B2>?*
|
||
|
||
蝐颱撮鈭粃ave\_record嚗䔶<E59A97>銝梶鍂鈭舘<E988AD><E88898>亙<EFBFBD><E4BA99>鞉𧒄<E99E89><F0A79284><EFBFBD><EFBFBD>舀覔<E88880>桀<EFBFBD>銝舘<E98A9D><E88898><EFBFBD><EFBFBD>䂿<EFBFBD>撠<EFBFBD><E692A0>隞祇<E99A9E>摰𡁜<E691B0><F0A1819C>唬<EFBFBD><E594AC>𪄇RL嚗峕<E59A97><E5B395>煾<EFBFBD><E785BE><EFBFBD><EFBFBD>箸<EFBFBD><E7AEB8><EFBFBD><EFBFBD>𡏭郎<F0A18FAD>亙<EFBFBD><E4BA99>𡁶䰻<F0A181B6>脲芋<E884B2>堒<EFBFBD><E5A092>賜<EFBFBD><E8B39C>芸<EFBFBD>銋厩㩞摮鞾<E691AE>隞園<E99A9E>𡁶䰻<F0A181B6><E4B0BB><EFBFBD><EFBFBD>喲偬摮?8<>?
|
||
## ---
|
||
|
||
**3\. <20>唳旿摨㮖漱鈭雴<E988AD>摰匧<E691B0>撌亦<E6928C>**
|
||
|
||
鈭峕活撘<EFBFBD><EFBFBD>睲葉<EFBFBD><EFBFBD>憭抒<EFBFBD>憌𡡞埯銋衤<EFBFBD><EFBFBD>臭<EFBFBD>敶梶<EFBFBD><EFBFBD>唳旿摨㮖漱鈭𡜐<EFBFBD>餈坔虾<EFBFBD>賢紡<EFBFBD>巽QL瘜典<EFBFBD>嚗𠄎QLi嚗㗇<EFBFBD>瘣𠺶<EFBFBD><EFBFBD><EFBFBD>鈭竃EDCap摮睃<EFBFBD><EFBFBD>𤩺<EFBFBD><EFBFBD><EFBFBD><EFBFBD>靽脲擪<EFBFBD>亙熒靽⊥<EFBFBD>嚗㇊HI嚗㚁<EFBFBD>摰匧<EFBFBD><EFBFBD>扯秐<EFBFBD>喲<EFBFBD>閬<EFBFBD><EFBFBD>?
|
||
### **3.1 <20>質情<E8B3AA>亥砭<E4BAA5>寞<EFBFBD>銝燑QL瘜典<E7989C><E585B8>脣鴃**
|
||
|
||
<EFBFBD>冽唂<EFBFBD><EFBFBD><EFBFBD>隞嗡葉嚗<EFBFBD><EFBFBD><EFBFBD>𤏸<EFBFBD><EFBFBD><EFBFBD>撣訾蝙<EFBFBD>牡b\_query("SELECT \* FROM table WHERE id \= $id")<29>?*餈蹱糓銝仿<E98A9D><E4BBBF><EFBFBD><EFBFBD><EFBFBD>刻<EFBFBD>閫?*嚗<><E59A97>銝箏<E98A9D><E7AE8F>?id<69>舐鍂<E88890>瑁<EFBFBD><E79181>伐<EFBFBD>摰<EFBFBD><E691B0>霈祿QL瘜典<E7989C>19<31>?
|
||
憭㚚<EFBFBD>璅∪<EFBFBD>獢<EFBFBD>沲撘訫<EFBFBD>鈭<EFBFBD><EFBFBD><EFBFBD>函<EFBFBD><EFBFBD>亥砭蝐颯<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𤏸<EFBFBD><EFBFBD><EFBFBD>雿輻鍂$this-\>query()嚗<><E59A97>ExternalModules::query嚗㚁<E59A97>霂交䲮瘜閙𣈲<E99699><F0A388B2><EFBFBD><EFBFBD>啣<EFBFBD><E595A3>亥砭<E4BAA5>?
|
||
**<EFBFBD><EFBFBD>摹隞<EFBFBD><EFBFBD>嚗<EFBFBD>艇蝳<EFBFBD>蝙<EFBFBD>剁<EFBFBD>嚗?*
|
||
|
||
PHP
|
||
|
||
// <20>詨<EFBFBD><E8A9A8><EFBFBD>QL瘜典<E7989C>瞍𤩺<E79E8D>
|
||
$sql \= "SELECT value FROM redcap\_data WHERE project\_id \= ". $\_GET\['pid'\]. " AND field\_name \= '". $\_GET\['field'\]. "'";
|
||
$q \= db\_query($sql);
|
||
|
||
**摰匧<E691B0>隞<EFBFBD><E99A9E>嚗<EFBFBD><E59A97>雿喳<E99BBF>頝蛛<E9A09D>嚗?*
|
||
|
||
PHP
|
||
|
||
// <20><>㺭<EFBFBD>𡝗䰻霂?
|
||
$sql \= "SELECT value FROM redcap\_data WHERE project\_id \=? AND field\_name \=?";
|
||
$q \= $this\-\>query($sql, \[$project\_id, $field\_name\]);
|
||
|
||
while ($row \= $q\-\>fetch\_assoc()) {
|
||
// 摰匧<E691B0>憭<EFBFBD><E686AD><EFBFBD>唳旿
|
||
}
|
||
|
||
雿輻鍂?<3F>牐<EFBFBD>蝚衣&靽脲㺭<E884B2>桀<EFBFBD>撽勗𢆡蝔见<E89D94>撖寡<E69296><E5AFA1>亥<EFBFBD>銵諹蓮銋㚁<E98A8B>隞舘<E99A9E>䔶葉<E494B6>峕𤫇<E5B395>餉<EFBFBD><E9A489>釣<EFBFBD>亦<EFBFBD>隞颱<E99A9E><E9A2B1>嗆<EFBFBD>SQL<51>賭誘11<31>?
|
||
### **3.2 頝函<E9A09D><E587BD>𡁏𧋦<F0A1818F>餃稬嚗ǍSS嚗厩<E59A97><E58EA9>脣鴃**
|
||
|
||
敶𤘪芋<EFBFBD>堒<EFBFBD>瘚讛<EFBFBD><EFBFBD>刻<EFBFBD><EFBFBD>箸㺭<EFBFBD>格𧒄<EFBFBD>婙<EFBFBD>𥪜陘<EFBFBD>嗆糓<EFBFBD>冽<EFBFBD>颲枏<EFBFBD><EFBFBD><EFBFBD>㺭<EFBFBD>栽<EFBFBD>婙<EFBFBD>𥪜<EFBFBD>憿駁俈甇°SS<EFBFBD><EFBFBD><EFBFBD><EFBFBD>𦦵鍂<EFBFBD>瑕銁<EFBFBD><EFBFBD>𧋦摮埈挾銝剛<EFBFBD><EFBFBD>功<script\>alert('Hack');\</script\>嚗諹<E59A97>峕芋<E5B395>堒銁隞芾”<E88ABE>蹂<EFBFBD><E8B982>曄內霂亙<E99C82>畾萎<E795BE><E8908E>芾<EFBFBD>銵諹蓮銋㚁<E98A8B><E39A81>𡁏𧋦撠<F0A78BA6>銁<EFBFBD>亦<EFBFBD><E4BAA6><EFBFBD><EFBFBD>瘚讛<E7989A><E8AE9B>其葉<E585B6>扯<EFBFBD><E689AF>?
|
||
<EFBFBD><EFBFBD>雿喳<EFBFBD>頝蛛<EFBFBD>
|
||
憪讠<EFBFBD>撠<EFBFBD><EFBFBD><EFBFBD>箏<EFBFBD>鋆孵銁REDCap::escapeHtml()銝哨<E98A9D><E593A8>碶蝙<E7A2B6>冽<EFBFBD><E586BD>嗥<EFBFBD>撘箏<E69298><E7AE8F>寞<EFBFBD><E5AF9E>?
|
||
PHP
|
||
|
||
echo "<22>冽<EFBFBD>憭<EFBFBD>釣: ". REDCap::escapeHtml($user\_note);
|
||
|
||
<EFBFBD>芾<EFBFBD><EFBFBD>扯<EFBFBD>甇斗<EFBFBD>雿𨀣糓璅∪<EFBFBD><EFBFBD>刻<EFBFBD><EFBFBD>笔恣<EFBFBD>亥<EFBFBD>蝔衤葉鋡急<EFBFBD>蝏萘<EFBFBD>銝餉<EFBFBD><EFBFBD>笔<EFBFBD>22<EFBFBD>?
|
||
### **3.3 <20>唳旿霈輸䔮蝏<E494AE><E89D8F>DAGs嚗劐<E59A97><E58A90><EFBFBD><EFBFBD><EFBFBD>𠉛氖**
|
||
|
||
敶梶凒<EFBFBD>仿<EFBFBD>撖雹edcap\_data蝻硋<E89DBB>SQL<51>亥砭<E4BAA5>塚<EFBFBD>璅∪<E79285>隡𡁶<E99AA1>餈𧍒EDCap<61><70><EFBFBD><EFBFBD>函<EFBFBD>摨讐漣摰匧<E691B0><E58CA7>改<EFBFBD><E694B9><EFBFBD>𡠺<EFBFBD>唳旿霈輸䔮蝏<E494AE><E89D8F>DAGs嚗剹<E59A97><E589B9>䰻霂W虾<EFBCB7>賭<EFBFBD><E8B3AD>䭾<EFBFBD>銝剛<E98A9D><E5899B>鮋★<E9AE8B>桐葉<E6A190><E89189><EFBFBD><EFBFBD>㕑扇敶𤏪<E695B6>隞舘<E99A9E><E88898><EFBFBD>霈貊<E99C88><E8B28A>農<EFBFBD><E8BEB2>鍂<EFBFBD>瑞<EFBFBD><E7919E>啁<EFBFBD><E59581>運<EFBFBD><E9818B>㺭<EFBFBD>柴<EFBFBD>?
|
||
<EFBFBD><EFBFBD>雿喳<EFBFBD>頝蛛<EFBFBD>
|
||
<EFBFBD>芾<EFBFBD><EFBFBD>航<EFBFBD>嚗諹窈雿輻鍂REDCap::getData()<29>寞<EFBFBD>隞<EFBFBD>𤜯<EFBFBD>笔<EFBFBD>SQL<51><4C>EDCap::getData()隡朞䌊<E69C9E>典<EFBFBD><E585B8>䄂AG<41>𣬚鍂<F0A3AC9A>瑟<EFBFBD><E7919F>僐<EFBFBD>?
|
||
PHP
|
||
|
||
$data \= REDCap::getData($project\_id, 'array', $record\_id);
|
||
|
||
憒<EFBFBD><EFBFBD><EFBFBD>箔<EFBFBD><EFBFBD>扯<EFBFBD><EFBFBD>笔<EFBFBD>敹<EFBFBD>◆雿輻鍂<EFBFBD>笔<EFBFBD>SQL嚗<EFBFBD><EFBFBD><EFBFBD>𤏸<EFBFBD>?敹<>◆*<2A>见𢆡餈墧𦻖redcap\_data\_access\_groups銵剁<E98AB5>撟嗆覔<E59786>桀<EFBFBD><E6A180>滨鍂<E6BBA8>瑞<EFBFBD>group\_id餈𥡝<E9A488>餈<EFBFBD>誘24<32>?
|
||
## ---
|
||
|
||
**4\. 蝘餃𢆡蝡臭漱鈭𡜐<E988AD>REDCap Mobile App瘛勗漲閫<E6BCB2><E996AB>**
|
||
|
||
REDCap<EFBFBD>滚𦛚<EFBFBD>其<EFBFBD>蝘餃𢆡霈曉<EFBFBD>銋钅𡢿<EFBFBD><EFBFBD>漱鈭埝糓鈭峕活撘<EFBFBD><EFBFBD>𤑳<EFBFBD><EFBFBD>喲睸憸<EFBFBD><EFBFBD>嚗𣬚鸌<EFBFBD>急糓<EFBFBD>其<EFBFBD><EFBFBD>𠉛<EFBFBD>餈墧𦻖颲<EFBFBD>榆<EFBFBD><EFBFBD>𧑐<EFBFBD>箄<EFBFBD>銵<EFBFBD><EFBFBD><EFBFBD>啁<EFBFBD>蝛嗆𧒄<EFBFBD>?
|
||
### **4.1 REDCap Mobile App<70><70>沲<EFBFBD><E6B2B2><EFBFBD>撌乩<E6928C>瘚?*
|
||
|
||
REDCap Mobile App<70>臭<EFBFBD>銝芬<E98A9D>𡏭<EFBFBD>摰X<E691B0>蝡胼<E89DA1>嘅<EFBFBD>摰<EFBFBD><E691B0>憿寧𤌍蝏𤘪<E89D8F>嚗<EFBFBD><E59A97><EFBFBD>唳旿嚗匧<E59A97><E58CA7>唳旿嚗<E697BF>虾<EFBFBD>㚁<EFBFBD>銝贝蝸<E8B49D>唳𧋦<E594B3>啗挽憭<E68CBD><E686AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>砍𧑐Web<65>滚𦛚<E6BB9A>剁<EFBFBD><E58981><EFBFBD>捂蝳餌瑪<E9A48C>唳旿<E594B3>園<EFBFBD><E59C92><EFBFBD><EFBFBD><EFBFBD>W<EFBFBD>餈墧𦻖<E5A2A7>塚<EFBFBD>摰<EFBFBD><E691B0>朞<EFBFBD>REDCap API撠<49>㺭<EFBFBD>桀<EFBFBD>甇亙<E79487>銝剖亢<E58996>滚𦛚<E6BB9A>?5<>?
|
||
### **4.2 API<50>峕郊<E5B395>箏<EFBFBD>銝𥣡SON Payload**
|
||
|
||
<EFBFBD>峕郊餈<EFBFBD><EFBFBD>擃睃漲靘肽<EFBFBD>鈭垾PI隞斤<EFBFBD>嚗㇍oken嚗剹<EFBFBD>?
|
||
1. **隞斤<E99A9E><E696A4><EFBFBD><EFBFBD>嚗?* <20>冽<EFBFBD><E586BD>冽<EFBFBD><E586BD>∪膥蝡舐<E89DA1><E88890>𣂷誘<F0A382B7>䎚<EFBFBD>?
|
||
2. **<EFBFBD>嘥<EFBFBD><EFBFBD>吔<EFBFBD>** 摨𠉛鍂蝔见<E89D94><E8A781>急<EFBFBD><E680A5><EFBFBD>鉄<EFBFBD>嘥<EFBFBD><E598A5>碶誨<E7A2B6><E8AAA8><EFBFBD>鈭𣬚輕<F0A3AC9A><E8BC95><EFBFBD>霂乩誨<E4B9A9><E8AAA8><EFBFBD>霂<EFBFBD>挽憭<E68CBD>僎銝贝蝸憿寧𤌍XML嚗<4C><E59A97><EFBFBD>唳旿嚗?5<>?
|
||
3. **<EFBFBD>唳旿隡㰘<EFBFBD>嚗?* 霈曉<E99C88>銝𦠜𤣰<F0A6A09C><F0A4A3B0><EFBFBD><EFBFBD>唳旿摮睃<E691AE><E79D83>典<EFBFBD>撖<EFBFBD><E69296>SQLCipher<65>唳旿摨㮖葉嚗ǎOS/Android嚗剹<E59A97><E589B9><EFBFBD>甇交𧒄嚗淾pp<70>魀mportRecords API蝡舐<E89DA1><E88890>煾<EFBFBD><E785BE>SON<4F>㗇<EFBFBD>韐蠘蝸<E8A098>?
|
||
JSON Payload蝏𤘪<E89D8F>嚗<EFBFBD><E59A97>甇伐<E79487>嚗?
|
||
API<EFBFBD><EFBFBD><EFBFBD><EFBFBD>唳旿<EFBFBD><EFBFBD>鍂<EFBFBD>孵<EFBFBD><EFBFBD><EFBFBD>SON蝏𤘪<EFBFBD><EFBFBD><EFBFBD>笆鈭擧<EFBFBD>撱箄䌊撌梁<EFBFBD>蝘餃𢆡<EFBFBD>亙藁嚗<EFBFBD>𤜯隞<EFBFBD><EFBFBD><EFBFBD>農pp嚗厩<EFBFBD>鈭峕活撘<EFBFBD><EFBFBD>𤏸<EFBFBD><EFBFBD>䔉霂湛<EFBFBD><EFBFBD>萄<EFBFBD>甇斗芋撘𤩺糓撘箏<EFBFBD><EFBFBD>抒<EFBFBD><EFBFBD>?
|
||
JSON
|
||
|
||
\[
|
||
{
|
||
"record\_id": "101",
|
||
"redcap\_event\_name": "baseline\_arm\_1",
|
||
"first\_name": "John",
|
||
"age": "30",
|
||
"demographics\_complete": "2"
|
||
}
|
||
\]
|
||
|
||
28<EFBFBD>?
|
||
### **4.3 <20>脩<EFBFBD>閫<EFBFBD><E996AB>銝𡡞<E98A9D><F0A1A19E>拍恣<E68B8D>?*
|
||
|
||
蝘餃𢆡<EFBFBD><EFBFBD><EFBFBD>銝剔<EFBFBD>銝<EFBFBD>銝芯蜓閬<EFBFBD><EFBFBD>𣈯萅<EFBFBD>晦<EFBFBD>脲糓**<2A>峕郊<E5B395>脩<EFBFBD>**<2A><><EFBFBD><EFBFBD>𦦵鍂<F0A6A6B5>嫂<EFBFBD>冽<EFBFBD><E586BD>∪膥銝羓<E98A9D>颲𤏸扇敶?01嚗諹<E59A97>𣬚鍂<F0A3AC9A>媲<EFBFBD>函氖蝥輻宏<E8BCBB>典<EFBFBD><E585B8>函<EFBFBD>摨譍<E691A8>蝻𤥁<E89DBB>霈啣<E99C88>101嚗<31><E59A97><EFBFBD>峕郊<E5B395>罸𡢿隡𡁜<E99AA1><F0A1819C>笔<EFBFBD>蝒<EFBFBD><E89D92><EFBFBD>EDCap Mobile App<70>瑟<EFBFBD><E7919F>箸𧋦<E7AEB8><F0A78BA6><EFBFBD>蝒<EFBFBD>圾<EFBFBD>喟<EFBFBD><E5969F>g<EFBFBD>閬<EFBFBD><E996AC><EFBFBD>冽<EFBFBD><E586BD>㗇𥋘<E39787>𨀣<EFBFBD><F0A880A3>∪膥<E288AA><E886A5>𧋦<EFBFBD>脲<EFBFBD><E884B2>𡏭挽憭<E68CBD><E686AD><EFBFBD>砂<EFBFBD>腈<EFBFBD>?
|
||
**鈭峕活撘<E6B4BB><E69298>穃鍳蝷綽<E89DB7>** 憒<><E68692><EFBFBD>冽迤<E586BD>冽<EFBFBD>撱箄䌊<E7AE84>刻<EFBFBD><E588BB>穿<EFBFBD>靘见<E99D98>DET嚗㗇䔉靽格㺿甇<E3BABF>銁鋡怎宏<E6808E>冽㺭<E586BD>格𤣰<E6A0BC><F0A4A3B0><EFBFBD><EFBFBD>蝙<EFBFBD>函<EFBFBD>霈啣<E99C88>嚗<EFBFBD><E59A97>隡𡁜<E99AA1><F0A1819C>惩<EFBFBD>蝒<EFBFBD><E89D92>憌𡡞埯<F0A1A19E>?
|
||
* *<EFBFBD><EFBFBD>雿喳<EFBFBD>頝蛛<EFBFBD>* 蝘餃𢆡<E9A483>冽<EFBFBD>摨𥪜<E691A8><F0A5AA9C>齿鰵<E9BDBF><E9B0B5><EFBFBD><EFBFBD>𣈲銝<F0A388B2><E98A9D><EFBFBD>扇敶閙<E695B6><E99699>孵<EFBFBD><E5ADB5><EFBFBD>AG嚗䔶誑<E494B6>脫迫銝擧<E98A9D><E693A7>∪膥蝡航<E89DA1>蝔见<E89D94><E8A781>罸<EFBFBD><E7BDB8>删<EFBFBD>颲?0<>?
|
||
## ---
|
||
|
||
**5\. MyCap嚗𡁜<E59A97>銝舘<E98A9D><E88898>垢<EFBFBD><E59EA2><EFBFBD><EFBFBD>嗡<EFBFBD>鈭支<E988AD>**
|
||
|
||
<EFBFBD>賜<EFBFBD>REDCap Mobile App<70>舫𢒰<E888AB>𤑳<EFBFBD>蝛嗡犖<E597A1>条<EFBFBD>嚗䔶<E59A97>**MyCap**<2A>舫𢒰<E888AB>穃<EFBFBD>銝舘<E98A9D><E88898><EFBFBD><EFBFBD><EFBFBD>yCap<61><70><EFBFBD>脲糓銝<E7B393>銝芸<E98A9D><E88AB8>冽芋<E586BD>梹<EFBFBD><E6A2B9>𤾸銁13.0<EFBFBD><EFBFBD>𧋦銝剛◤<EFBFBD><EFBFBD><EFBFBD><EFBFBD>訌EDCap<EFBFBD>詨<EFBFBD>銝哨<EFBFBD>蝒<EFBFBD>遬鈭<EFBFBD><EFBFBD><EFBFBD>滩<EFBFBD><EFBFBD>?2<>?
|
||
### **5.1 <20>嗆<EFBFBD>嚗鑹esearchKit銝竃esearchStack**
|
||
|
||
MyCap<EFBFBD>拍鍂鈭<EFBFBD>pple<EFBFBD>?*ResearchKit**嚗ǎOS嚗匧<E59A97>**ResearchStack**嚗㇁ndroid嚗剹<E59A97><E589B9><EFBFBD>鈭𥟇糓銝㮖蛹<E3AE96>餃郎<E9A483>𠉛弦摨𠉛鍂蝔见<E89D94>霈曇恣<E69B87><E681A3><EFBFBD>皞鞉<E79A9E><E99E89>嗚<EFBFBD><E5979A>yCap<61><70><EFBFBD>獢交<E78DA2>嚗?
|
||
1. **<EFBFBD>滨蔭嚗?* <20>𠉛弦鈭箏<E988AD><E7AE8F>沖EDCap銝剝<E98A9D>蝵桐遙<E6A190>~<EFBFBD>?
|
||
2. **頧祆揢嚗?* MyCap撠<70>EDCap<61><70>㺭<EFBFBD>株蓮<E6A0AA>V蛹ResearchKit撖寡情摰帋<E691B0><E5B88B>?
|
||
3. **<EFBFBD>扯<EFBFBD>嚗?* 摨𠉛鍂蝔见<E89D94>撠<EFBFBD><E692A0>鈭𥕦笆鞊⊥葡<E28AA5>㮖蛹<E3AE96>毺<EFBFBD>蝘餃𢆡閫<F0A286A1>㦛嚗<E3A69B><E59A97>屸<EFBFBD>Web閫<62>㦛嚗㚁<E59A97><E39A81>𣂷<EFBFBD>瘚<EFBFBD><E7989A><EFBFBD><EFBFBD>pp雿㯄<E99BBF>34<33>?
|
||
### **5.2 銝餃𢆡隞餃𦛚嚗㇁ctive Tasks嚗厩<E59A97>摰𡁜<E691B0>**
|
||
|
||
MyCap<EFBFBD><EFBFBD><EFBFBD>祉鸌<EFBFBD><EFBFBD><EFBFBD><EFBFBD>賣糓<EFBFBD>靝蜓<EFBFBD>其遙<EFBFBD>﹦<EFBFBD>吲<EFBFBD>婙<EFBFBD>𥪜⏚<EFBFBD>冽<EFBFBD><EFBFBD>箔<EFBFBD><EFBFBD>笔膥嚗<EFBFBD><EFBFBD><EFBFBD>笔漲霈~<EFBFBD><EFBFBD>漲<EFBFBD>钅<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>箔貌嚗㗇<EFBFBD><EFBFBD>讛恕<EFBFBD>交<EFBFBD>頨思<EFBFBD><EFBFBD>蠘<EFBFBD><EFBFBD><EFBFBD>暑<EFBFBD>剁<EFBFBD>靘见<EFBFBD>嚗峕䛵<EFBFBD>駁<EFBFBD>笔漲<EFBFBD><EFBFBD>郊<EFBFBD><EFBFBD><EFBFBD>撟唾﹛<EFBFBD><EFBFBD>征<EFBFBD>渲扇敹<EFBFBD><EFBFBD>37<EFBFBD>?
|
||
鈭峕活撘<EFBFBD><EFBFBD>烐㦤隡𡄯<EFBFBD>
|
||
撘<EFBFBD><EFBFBD>𤏸<EFBFBD><EFBFBD>虾隞亙<EFBFBD>撱箄䌊摰帋<EFBFBD><EFBFBD><EFBFBD>蜓<EFBFBD>其遙<EFBFBD>∴<EFBFBD>雿<EFBFBD><EFBFBD><EFBFBD><EFBFBD>閬<EFBFBD>wift嚗ǎOS嚗㗇<EFBFBD>Kotlin/Java嚗㇁ndroid嚗厩<E59A97>擃条漣<E69DA1>亥<EFBFBD>嚗<EFBFBD>僎靽格㺿MyCap皞𣂷誨<F0A382B7><E8AAA8><EFBFBD>餈䠷<E9A488>閬<EFBFBD><E996AC><EFBFBD>䔶<EFBFBD>REDCap<61>詨<EFBFBD>霈詨虾<E8A9A8><E899BE>鸌摰朞<E691B0><E69C9E>鬹pp皞𣂷誨<F0A382B7><E8AAA8>捂<EFBFBD>荔<EFBFBD><E88D94><EFBFBD><EFBFBD><EFBFBD>䕘<EFBFBD><E49598><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>甈∪<E79488><E288AA>煾<EFBFBD>𡁜虜靘折<E99D98>鈭舘圻<E88898>餹yCap<61>滢<EFBFBD><E6BBA2>硋<EFBFBD><E7A18B><EFBFBD>yCap<61>唳旿<E594B3>?
|
||
* *獢<><E78DA2>嚗? 銝<>銝芸<E98A9D><E88AB8>冽芋<E586BD>梹<EFBFBD><E6A2B9>朞<EFBFBD>redcap\_save\_record<72>烐綉隡惩<E99AA1><E683A9><EFBFBD>yCap銝餃𢆡隞餃𦛚<E9A483>唳旿嚗<E697BF><E59A97><EFBFBD>𨅯<EFBFBD>銝舘<E98A9D><E88898><EFBFBD><EFBFBD>𨀣郊<F0A880A3><E9838A><EFBFBD>笔漲<E7AC94>苷<EFBFBD>鈭𡒊鸌摰𡁻<E691B0><F0A181BB>潘<EFBFBD>銵冽<E98AB5>頝<EFBFBD><E9A09D>㘾<EFBFBD><E398BE>抬<EFBFBD>嚗<EFBFBD><E59A97>閫血<E996AB>霅行𥁒38<33>?
|
||
### **5.3 <20>朞<EFBFBD>憭㚚<E686AD>璅∪<E79285>摰𡁜<E691B0>MyCap**
|
||
|
||
撠賜恣MyCap<EFBFBD>舀瓲敹<EFBFBD><EFBFBD><EFBFBD>踝<EFBFBD>EM隞滨<EFBFBD><EFBFBD>臭誑憓𧼮撩摰<EFBFBD><EFBFBD><EFBFBD><EFBFBD>憒<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>其<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>𣬚<EFBFBD><EFBFBD>芸<EFBFBD>銋劐<EFBFBD>蝏渡<EFBFBD>撟嗉䌊<EFBFBD>券<EFBFBD>朞<EFBFBD><EFBFBD>萄<EFBFBD><EFBFBD>桐辣<EFBFBD>煾<EFBFBD><EFBFBD><EFBFBD><EFBFBD>pp Links<6B>蠘<EFBFBD><E8A098><EFBFBD>捂隞𤾸<E99A9E><F0A4BEB8>冽<EFBFBD>瘛勗漲<E58B97>暹𦻖<E69AB9>衽yCap摨𠉛鍂蝔见<E89D94>39<33>?
|
||
## ---
|
||
|
||
**6\. REDCap API嚗𡁶<E59A97><F0A181B6><EFBFBD>頂蝏毺<E89D8F><E6AFBA>芸𢆡<E88AB8>𡝗‘璇?*
|
||
|
||
API<EFBFBD>臭<EFBFBD><EFBFBD>滢<EFBFBD><EFBFBD>抒<EFBFBD><EFBFBD>舀<EFBFBD><EFBFBD><EFBFBD>笆鈭𦒘<EFBFBD>甈∪<EFBFBD><EFBFBD>𤏸<EFBFBD>諹<EFBFBD>嚗<EFBFBD><EFBFBD><EFBFBD>𡁜虜<EFBFBD>舐<EFBFBD><EFBFBD>坔<EFBFBD><EFBFBD>冽芋<EFBFBD>㛖<EFBFBD><EFBFBD>蹂誨<EFBFBD>寞<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>𣈯<EFBFBD>餉<EFBFBD><EFBFBD>臭誑<EFBFBD>朞<EFBFBD><EFBFBD>每ron雿靝<EFBFBD>銝𡃏<EFBFBD>銵𣬚<EFBFBD>憭㚚<EFBFBD><EFBFBD>𡁏𧋦嚗㇊ython/R嚗㗇䔉憭<E49489><E686AD>嚗屸<E59A97>銋<EFBFBD><E98A8B><EFBFBD>𡁜虜瘥𥪜銁<F0A5AA9C>滚𦛚<E6BB9A>其<EFBFBD>摰㕑<E691B0>PHP璅∪<E79285><E288AA>游<EFBFBD><E6B8B8>具<EFBFBD>?
|
||
### **6.1 撖澆枂銝𤾸紡<F0A4BEB8>亦<EFBFBD><E4BAA6><EFBFBD>雿喳<E99BBF>頝?*
|
||
|
||
* **<2A><>鸌憭<E9B88C><E686AD>嚗㇂atching嚗㚁<E59A97>** 撖澆枂憭批<E686AD><E689B9>唳旿<E594B3><E697BF>𧒄嚗䔶<E59A97>甈∟窈瘙<E7AA88><E79899><EFBFBD>㕑扇敶蓥<E695B6>撖潸稲頞<E7A8B2>𧒄<EFBFBD>?
|
||
* *閫<><E996AB><EFBFBD>寞<EFBFBD>嚗? 雿輻鍂batch\_size<7A><65>㺭<EFBFBD>硋<EFBFBD><E7A18B>堒儐<E5A092>舫<EFBFBD><E888AB><EFBFBD>扇敶𨰻<E695B6>?
|
||
* **蝐餃<E89D90>憭<EFBFBD><E686AD>嚗?* 暺䁅恕<E48185><E68195><EFBFBD>銝页<E98A9D>API<50>沅SON銝剖<E98A9D><E58996><EFBFBD><EFBFBD>㗇㺭<E39787>桐<EFBFBD>銝箏<E98A9D>蝚虫葡餈𥪜<E9A488><F0A5AA9C>?
|
||
* *<2A>琿𩐠嚗? <20>沌HP/Python撣<6E><E692A3>璉<EFBFBD><E79289>乩葉嚗<E89189><E59A97>畾萄<E795BE>潑<EFBFBD>?<3F>嘅<EFBFBD>摮㛖泵銝莎<E98A9D><E88E8E>冽<EFBFBD>鈭𥕢<E988AD>銝𧢲<E98A9D>銝凋蛹<E5878B><E89BB9><EFBFBD>雿<EFBFBD><E99BBF>?<3F>嘅<EFBFBD><E59885>湔㺭嚗劐蛹<E58A90><E89BB9><EFBFBD><EFBFBD><EFBFBD><EFBFBD>𤏸<EFBFBD><F0A48FB8><EFBFBD>憿颱艇<E9A2B1>澆笆API<50>滚<EFBFBD>餈𥡝<E9A488>蝐餃<E89D90>頧祆揢40<34>?
|
||
* **<2A>𨀣<EFBFBD>撟喇<E6929F>苷<EFBFBD><E88BB7>諪AV<41>嘥紡<E598A5>綽<EFBFBD>** API<50>𥕦遣銝<E981A3>銝芬<E98A9D>𨀣<EFBFBD>撟喇<E6929F>脲<EFBFBD>隞塚<E99A9E>瘥譍葵霈啣<E99C88>/鈭衤辣銝<E8BEA3>銵䕘<E98AB5><E49598><EFBFBD><EFBFBD>銝𤾸<E98A9D>蝡舐<E89DA1>EAV蝏𤘪<E89D8F>銝滚<E98A9D><E6BB9A><EFBFBD><EFBFBD>甈∪<E79488><E288AA>𤏸<EFBFBD><F0A48FB8><EFBFBD>𡁜虜<F0A1819C><E8999C>遣<EFBFBD>𨀣㺭<F0A880A3>桀<EFBFBD><E6A180>亥圻<E4BAA5>穃膥<E7A983>嘅<EFBFBD>DET嚗㚁<E59A97>瘥誩<E798A5>靽嘥<E99DBD>霈啣<E99C88><E595A3>塚<EFBFBD>霂亥圻<E4BAA5>穃膥<E7A983>賭<EFBFBD><E8B3AD>嗅<EFBFBD><E59785>亥䌊REDCap<61><70>OST霂瑟<E99C82>嚗𣬚<E59A97><F0A3AC9A>舘<EFBFBD><E88898>杗PI撖澆枂霂亦鸌摰朞扇敶閗<E695B6>銵<EFBFBD><E98AB5><EFBFBD>?2<>?
|
||
**隞<><E99A9E>蝷箄<E89DB7>嚗䥪ython API撖澆枂<E6BE86>𡁏𧋦**
|
||
|
||
Python
|
||
|
||
import requests
|
||
import pandas as pd
|
||
|
||
api\_url \= 'https://redcap.institution.edu/api/'
|
||
\# payload<61><64><EFBFBD>?
|
||
payload \= {
|
||
'token': 'YOUR\_32\_CHAR\_TOKEN',
|
||
'content': 'record',
|
||
'format': 'json',
|
||
'type': 'flat',
|
||
\# 隞<>繮<EFBFBD>𣇉鸌摰朞扇敶蓥誑<E893A5><E8AA91><EFBFBD>撣血捐
|
||
'records': '101'
|
||
}
|
||
|
||
try:
|
||
response \= requests.post(api\_url, data=payload)
|
||
response.raise\_for\_status() \# 璉<><E79289>以TTP<54>躰秤
|
||
data \= response.json()
|
||
|
||
\# 頧祆揢銝慣ataFrame餈𥡝<E9A488>憭<EFBFBD><E686AD>
|
||
df \= pd.DataFrame(data)
|
||
print(df.head())
|
||
|
||
except requests.exceptions.RequestException as e:
|
||
print(f"API霂瑟<E99C82>憭梯揖: {e}")
|
||
except ValueError:
|
||
print("JSON閫<4E><E996AB>憭梯揖 \- <20>滚<EFBFBD><E6BB9A>航<EFBFBD><E888AA>酶SON<4F>澆<EFBFBD>")
|
||
|
||
44<EFBFBD>?
|
||
## ---
|
||
|
||
**7\. <20><>雿單<E99BBF>靘讠<E99D98>蝛塚<E89D9B>Case Studies嚗?*
|
||
|
||
銝箔<EFBFBD>霂湔<EFBFBD><EFBFBD>𨀣<EFBFBD>雿喳<EFBFBD><EFBFBD>兩<EFBFBD>嘅<EFBFBD><EFBFBD>睲賑<EFBFBD><EFBFBD><EFBFBD>銝厩<EFBFBD>蝒<EFBFBD>枂<EFBFBD><EFBFBD><EFBFBD>甈∪<EFBFBD><EFBFBD>烐䲮瘜𨰻<EFBFBD>?
|
||
### **7.1 獢<><E78DA2>銝<EFBFBD>嚗锭hazam嚗㇎I銝𤾸<E98A9D>蝡舀㺿<E88880>𩤃<EFBFBD>**
|
||
|
||
* **<2A>格<EFBFBD>嚗?* 銝箄<E98A9D><E7AE84>亙<EFBFBD>撱箄䌊摰帋<E691B0>撣<EFBFBD><E692A3>嚗<EFBFBD><E59A97>摮埈挾<E59F88><E68CBE><EFBFBD>銝箇畆<E7AE87>菜<EFBFBD><E88F9C>墧<EFBFBD><E5A2A7><EFBFBD><EFBFBD>閫㗇聢撘譌<E69298>?
|
||
* **<2A>箏<EFBFBD>嚗?* Shazam<61>臭<EFBFBD>銝芸<E98A9D><E88AB8>冽芋<E586BD>梹<EFBFBD>摰<EFBFBD>釣<EFBFBD>仔avaScript/CSS<53><53><EFBFBD>閫<EFBFBD><E996AB><EFBFBD>讛膩<E8AE9B>扳<EFBFBD><E689B3>砍<EFBFBD>畾萎葉<E8908E><E89189>鸌摰尠<E691B0>侻hazam<61>脲<EFBFBD>蝑橘<E89D91><E6A998>嗅<EFBFBD><E59785>齿鰵<E9BDBF>鍦<EFBFBD><E98DA6>唳旿敶訫<E695B6>銵典<E98AB5><E585B8><EFBFBD>TML DOM<4F>?
|
||
* **瘣𧼮<E798A3>嚗?* 餈坔<E9A488>蝷箔<E89DB7>EM憒<4D><E68692><EFBFBD>其<EFBFBD><E585B6>湔㺿<E6B994>滚𦛚<E6BB9A>函垢<E587BD>唳旿蝏𤘪<E89D8F><F0A498AA><EFBFBD><EFBFBD><EFBFBD>萎<EFBFBD>嚗䔶<E59A97>*摰X<E691B0>蝡?敶餃<E695B6><E9A483>孵<EFBFBD><E5ADB5>冽<EFBFBD>雿㯄<E99BBF>1<EFBFBD>?
|
||
### **7.2 獢<><E78DA2>鈭䕘<E988AD>Auto-Schedule嚗<65>極雿𨀣<E99BBF><F0A880A3>芸𢆡<E88AB8>吔<EFBFBD>**
|
||
|
||
* **<2A>格<EFBFBD>嚗?* <20>箔<EFBFBD><E7AE94>箇瑪<E7AE87>交<EFBFBD>嚗<EFBFBD><E59A97>憒<EFBFBD><E68692><EFBFBD>舀𠯫<E88880><F0A0AFAB><EFBFBD><EFBFBD>芸𢆡<E88AB8><F0A286A1><EFBFBD>蝥萄<E89DA5>鈭衤辣<E8A1A4><E8BEA3>𧒄<EFBFBD>渲”<E6B8B2>?
|
||
* **<2A>箏<EFBFBD>嚗?* 雿輻鍂redcap\_save\_record<72>拙<EFBFBD><E68B99><EFBFBD><EFBFBD>靽嘥<E99DBD><E598A5>𦨴urgery\_date<74>嘥<EFBFBD>畾菜𧒄嚗峕芋<E5B395>𡑒恣蝞埈𧊋<E59F88>交𠯫<E4BAA4><F0A0AFAB><EFBFBD>+30憭抬<E686AD>+60憭抬<E686AD>撟嗅‵<E59785><E280B5>★<EFBFBD>格𠯫<E6A0BC><F0A0AFAB><EFBFBD>?
|
||
* **瘣𧼮<E798A3>嚗?* 餈蹱𤜯隞<F0A49CAF><E99A9E>鈭箏極霈∠<E99C88>嚗<EFBFBD><E59A97>撠睲<E692A0><E79DB2>讛<EFBFBD><E8AE9B>条<EFBFBD><E69DA1>躰秤嚗<E7A7A4><E59A97>蝷箔<E89DB7><E7AE94>𡒊垢<F0A1928A>拙<EFBFBD><E68B99>刻<EFBFBD><E588BB>交<EFBFBD><E4BAA4><EFBFBD>葉<EFBFBD><E89189><EFBFBD><EFBFBD>?5<>?
|
||
### **7.3 獢<><E78DA2>銝㚁<E98A9D>Cross-Project Piping嚗<67>楊憿寧𤌍<E5AFA7>唳旿鈭㘾<E988AD>𡄯<EFBFBD>**
|
||
|
||
* **<2A>格<EFBFBD>嚗?* 撠<>犖<EFBFBD><E78A96><EFBFBD>霈⊥㺭<E28AA5>桐<EFBFBD>銝剖亢<E58996>𨀣釣<F0A880A3>𢞖<EFBFBD>嗪★<E597AA>格<EFBFBD><E6A0BC>硋<EFBFBD><E7A18B>孵<EFBFBD><E5ADB5><EFBFBD><EFBFBD>𦦵<EFBFBD>蝛嗯<E89D9B>嗪★<E597AA>桐葉<E6A190>?
|
||
* **<2A>箏<EFBFBD>嚗?* 銝<>銝枕M嚗<4D><E59A97><EFBFBD>亥砭皞鞾★<E99EBE>桃<EFBFBD><E6A183>唳旿摨橒<E691A8>雿輻鍂REDCap::getData嚗匧僎撠<E5838E>㺭<EFBFBD>格<EFBFBD><E6A0BC>亙<EFBFBD><E4BA99>漤★<E6BCA4>株”<E6A0AA>𨰻<EFBFBD>?
|
||
* **<2A>𣂼<EFBFBD><F0A382BC>喲睸嚗?* 摰<>蝙<EFBFBD>兩<EFBFBD>𡏭圻<F0A18FAD>穃<EFBFBD>畾菊<E795BE>腈<EFBFBD><E88588>蘨<EFBFBD>匧銁靽格㺿<E6A0BC>孵<EFBFBD>摮埈挾<E59F88>嗆<EFBFBD>隡朞<E99AA1>銵<EFBFBD><E98AB5><EFBFBD>塚<EFBFBD><E5A19A>脫迫銝齿鱏閬<E9B18F><E996AC>47<34>?
|
||
## ---
|
||
|
||
**8\. <20>踹<EFBFBD><E8B8B9><EFBFBD><EFBFBD>嚗𡁜虜閫<E8999C>䔮憸䀝<E686B8>閫<EFBFBD><E996AB><EFBFBD>寞<EFBFBD>**
|
||
|
||
鈭峕活撘<EFBFBD><EFBFBD>穃<EFBFBD>皛⊿<EFBFBD><EFBFBD>押<EFBFBD><EFBFBD>誑銝𧢲糓<EFBFBD>𠉛<EFBFBD>銝剜𥁒<EFBFBD>羓<EFBFBD><EFBFBD><EFBFBD>撣貉<EFBFBD><EFBFBD>桅<EFBFBD>嚗?
|
||
### **8.1 <20>𨅯<EFBFBD>蝥扯稲甇領<E79487>嘅<EFBFBD>The Upgrade Death嚗?*
|
||
|
||
* **<2A>箸艶嚗?* 撘<><E69298>𤏸<EFBFBD><F0A48FB8>蝙<EFBFBD>券<EFBFBD><E588B8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>辣頝臬<E9A09D>蝻硋<E89DBB><E7A18B>雴辣嚗峕<E59A97>靘肽<E99D98>鈭竃EDCap<61><70><EFBFBD>嚗<EFBFBD><E59A97><EFBFBD>㚁<EFBFBD><E39A81>詨<EFBFBD><E8A9A8>賣㺭<E8B3A3>?
|
||
* **<2A>擧<EFBFBD>嚗?* 敶𣫮EDCap<61>湔鰵<E6B994>塚<EFBFBD><E5A19A>賣㺭<E8B3A3>滨妍<E6BBA8>湔㺿<E6B994>𤥁楝敺<E6A59D>宏<EFBFBD>剁<EFBFBD>撖潸稲<E6BDB8>雴辣撏拇<E6928F><E68B87>?
|
||
* **<2A>踹<EFBFBD><E8B8B9><EFBFBD><EFBFBD>嚗?* 銝交聢<E4BAA4>𡁏<EFBFBD>雿輻鍂憭㚚<E686AD>璅∪<E79285>獢<EFBFBD>沲嚗<E6B2B2>僎隞<E5838E><E99A9E><EFBFBD>沖EDCap::蝐餅䲮瘜𤏪<E7989C>餈嗘<E9A488><E59798>寞<EFBFBD>銝箔<E98A9D><E7AE94>穃<EFBFBD><E7A983>澆捆<E6BE86>扯<EFBFBD><E689AF><EFBFBD><EFBFBD>啁輕<E59581>扎<EFBFBD>?
|
||
### **8.2 redcap\_data<74><61><EFBFBD>扯<EFBFBD><E689AF>園<EFBFBD>**
|
||
|
||
* **<2A>箸艶嚗?* 璅∪<E79285><E288AA>𦦵揣<F0A6A6B5>𨀣<EFBFBD><F0A880A3>匧僑樴?\> 50<35><30>扇敶𨰝<E695B6>腈<EFBFBD>?
|
||
* **<2A>琿𩐠嚗?* <20>其<EFBFBD>銝芣𥅾<E88AA3>?0銝<30>辺霈啣<E99C88><E595A3><EFBFBD>★<EFBFBD>桐葉嚗屸<E59A97>朞<EFBFBD>SELECT \* FROM redcap\_data WHERE value \> 50<35>扯<EFBFBD>甇斗<E79487>雿靝<E99BBF>撘箏<E69298>撖寡”餈𥡝<E9A488><F0A5A19D>刻”<E588BB>急<EFBFBD>嚗<EFBFBD><E59A97>銝箄砲銵典<E98AB5><E585B8>?<3F><><EFBFBD>?憿寧𤌍<E5AFA7><F0A48C8D>㺭<EFBFBD>殷<EFBFBD><E6AEB7>?
|
||
* **閫<><E996AB><EFBFBD>寞<EFBFBD>嚗?* 憪讠<E686AA><E8AEA0>沒QL<51>亥砭銝剖<E98A9D><E58996>厚roject\_id雿靝蛹擐𤥁<E69390>餈<EFBFBD>誘<EFBFBD>∩辣<E288A9><E8BEA3>⏚<EFBFBD>沖EDCap::getData()<29><><EFBFBD>皛日<E79A9B>餉<EFBFBD>嚗峕<E59A97><E5B395><EFBFBD><EFBFBD><EFBFBD>𣈯<EFBFBD>閬<EFBFBD><E996AC>憪喹QL嚗𣬚&靽脲<E99DBD><E884B2><EFBFBD>𧑐<EFBFBD>拍鍂鈭<E98D82>roject\_id<69>靕ield\_name銝羓<E98A9D>蝝W<E89D9D><EFBCB7>?
|
||
### **8.3 靚<>䰻憿菟𢒰甇餃儐<E9A483>荔<EFBFBD>Survey Loop嚗?*
|
||
|
||
* **<2A>箸艶嚗?* 雿輻鍂redcap\_survey\_page\_top<6F>拙<EFBFBD><E68B99>冽說頞單辺隞嗆𧒄<E59786>滚<EFBFBD><E6BB9A>𤑳鍂<F0A491B3>瑯<EFBFBD>?
|
||
* **<2A>琿𩐠嚗?* 憒<><E68692><EFBFBD>滚<EFBFBD><E6BB9A>煾<EFBFBD>餉<EFBFBD><E9A489>厩撩<E58EA9>瘀<EFBFBD>靘见<E99D98>嚗屸<E59A97>摰𡁜<E691B0><F0A1819C>∩辣<E288A9>函𤌍<E587BD><F0A48C8D>△<EFBFBD>V<EFBFBD>銋煺蛹<E785BA><E89BB9><EFBFBD>嚗𣬚鍂<F0A3AC9A>瑕<EFBFBD>鋡怠撕<E680A0>𧼮<EFBFBD>銝<EFBFBD>憿菟𢒰嚗<F0A292B0>紡<EFBFBD>湔<EFBFBD>閫<EFBFBD>膥<EFBFBD><E886A5>絲<EFBFBD>硋援皞<E68FB4><E79A9E>?
|
||
* **閫<><E996AB><EFBFBD>寞<EFBFBD>嚗?* <20>冽<EFBFBD>銵屸<E98AB5>摰𡁜<E691B0>銋见<E98A8B>嚗峕<E59A97><E5B395>亙<EFBFBD><E4BA99>䔛RL<52>臬炏撌脩<E6928C><E884A9>舐𤌍<E88890>䱗RL<52>?
|
||
### **8.4 蝘餃𢆡<E9A483>峕郊銝剔<E98A9D><E58994>𨅯迨<F0A885AF>踵㺭<E8B8B5>栽<EFBFBD>?*
|
||
|
||
* **<2A>箸艶嚗?* 敶梶宏<E6A2B6>刻挽憭<E68CBD><E686AD><EFBFBD>粹★<E7B2B9>格𧒄嚗𣬚恣<F0A3AC9A><E681A3><EFBFBD><EFBFBD>湔㺿鈭<E3BABF>★<EFBFBD>桃<EFBFBD><E6A183><EFBFBD><EFBFBD>靘见<E99D98>嚗<EFBFBD><E59A97><EFBFBD>支<EFBFBD>銝<EFBFBD>銝芸<E98A9D>畾蛛<E795BE><E89B9B>?
|
||
* **<2A>擧<EFBFBD>嚗?* 蝘餃𢆡<E9A483>冽<EFBFBD><E586BD>䭾<EFBFBD>撠<EFBFBD>㺭<EFBFBD>桀<EFBFBD>甇亙<E79487><E4BA99>伐<EFBFBD><E4BC90>牐蛹<E78990>滚𦛚<E6BB9A>其<EFBFBD>銝滚<E98A9D>摮睃銁霂亙<E99C82>畾萸<E795BE><E890B8>㺭<EFBFBD>株◤<E6A0AA>啣銁霈曉<E99C88>銝𨳍<E98A9D>?
|
||
* **閫<><E996AB>嚗?* **蝏嘥笆銝滩<E98A9D>**<EFBFBD>券★<EFBFBD>桀<EFBFBD>鈭𢛶<EFBFBD>𦦵<EFBFBD>鈭把<EFBFBD>萘𠶖<EFBFBD><EFBFBD><EFBFBD><EFBFBD>㗇暑頝<EFBFBD>宏<EFBFBD>函鍂<EFBFBD>瑟𧒄靽格㺿憿寧𤌍霈曇恣30<EFBFBD>?
|
||
## ---
|
||
|
||
**9\. 蝏栞捏**
|
||
|
||
REDCap<EFBFBD><EFBFBD><EFBFBD>甈∪<EFBFBD><EFBFBD>穃<EFBFBD>銝<EFBFBD>銝芾◤<EFBFBD>函<EFBFBD><EFBFBD>唳旿摮睃<EFBFBD>摨栞蓮<EFBFBD>䀝蛹銝<EFBFBD>銝芯蜓<EFBFBD>函<EFBFBD><EFBFBD>𠉛弦<EFBFBD>滢<EFBFBD>蝟餌<EFBFBD><EFBFBD><EFBFBD><EFBFBD>銝湔𧒄<EFBFBD>雴辣<EFBFBD>𤑳<EFBFBD><EFBFBD><EFBFBD><EFBFBD>憭㚚<EFBFBD>璅∪<EFBFBD>獢<EFBFBD>沲<EFBFBD><EFBFBD><EFBFBD>蝘颱誨銵其<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>頂蝏毺<EFBFBD><EFBFBD>鞟<EFBFBD>嚗䔶<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>鈭<EFBFBD><EFBFBD><EFBFBD>冽<EFBFBD>扼<EFBFBD><EFBFBD>虾蝏湔擪<EFBFBD>批<EFBFBD><EFBFBD>曹澈<EFBFBD>賢<EFBFBD><EFBFBD>?
|
||
撖嫣<EFBFBD>撘<EFBFBD><EFBFBD>𤏸<EFBFBD><EFBFBD><EFBFBD>諹<EFBFBD>嚗峕<EFBFBD><EFBFBD>毺<EFBFBD>頝臬<EFBFBD><EFBFBD>其<EFBFBD>銝交聢<EFBFBD>萄<EFBFBD>獢<EFBFBD>沲閫<EFBFBD><EFBFBD>嚗帋蝙<EFBFBD>冽𡂝鞊⊥䰻霂X䲮瘜閖俈甇㏎QL瘜典<EFBFBD>嚗峕<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>箔誑<EFBFBD>脫迫XSS嚗<EFBFBD>僎<EFBFBD>拍鍂撣行<EFBFBD><EFBFBD>𣳇<EFBFBD>敺芰㴓靽脲擪<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>偬摮𣂼<EFBFBD>redcap\_save\_record<72>?
|
||
<EFBFBD>函宏<EFBFBD>券<EFBFBD><EFBFBD><EFBFBD><EFBFBD>MyCap<EFBFBD>愢obile App<70><70><EFBFBD><EFBFBD>𣂼<EFBFBD>REDCap<61><70>圻閫鍦辣隡詨<E99AA1>鈭<EFBFBD><E988AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>餈𦦵<E9A488>摰𧼮𧑐<F0A7BCAE>啣㦤<E595A3><E3A6A4><EFBFBD><EFBFBD>䕘<EFBFBD>餈嗵<E9A488>餈墧𦻖<E5A2A7>扯<EFBFBD>瘙<EFBFBD>銁API隞斤<E99A9E>蝞∠<E89D9E><E288A0>屸★<E5B1B8>桃<EFBFBD><E6A183>祆綉<E7A586>嗆䲮<E59786>X<EFBFBD>銝交聢<E4BAA4><E881A2><EFBFBD>雿𦦵漯敺页<E695BA>隞仿俈甇X㺭<EFBCB8>桐腺憭晞<E686AD>?
|
||
<EFBFBD>朞<EFBFBD><EFBFBD>拍鍂餈嗘<EFBFBD>擃条漣<EFBFBD>蠘<EFBFBD><EFBFBD>婙<EFBFBD>𥪜<EFBFBD><EFBFBD>嗅<EFBFBD><EFBFBD>滩<EFBFBD><EFBFBD><EFBFBD><EFBFBD>隞<EFBFBD><EFBFBD><EFBFBD><EFBFBD>沲<EFBFBD><EFBFBD>器<EFBFBD>𢞖<EFBFBD>婙<EFBFBD>娍㦤<EFBFBD><EFBFBD>虾隞仿<EFBFBD>蝵脫𠳿摰匧<EFBFBD><EFBFBD><EFBFBD>虾<EFBFBD>拙<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>䌊<EFBFBD>典<EFBFBD><EFBFBD>𣬚鍂<EFBFBD>瑕<EFBFBD>憟賜<EFBFBD><EFBFBD>𠉛弦<EFBFBD>臬<EFBFBD><EFBFBD>?
|
||
## ---
|
||
|
||
**10\. <20><><EFBFBD>舫<EFBFBD>敶𤏪<E695B6><F0A48FAA>詨<EFBFBD>皞𣂷誨<F0A382B7><E8AAA8><EFBFBD><EFBFBD><EFBFBD><EFBFBD>**
|
||
|
||
### **A.1 <20>箇<EFBFBD> redcap\_save\_record 摰䂿緵璅⊥踎**
|
||
|
||
PHP
|
||
|
||
public function redcap\_save\_record($project\_id, $record, $instrument, $event\_id, $group\_id, $survey\_hash, $response\_id, $repeat\_instance)
|
||
{
|
||
// 蝖桐<E89D96><E6A190>睲賑<E79DB2>冽迤蝖桃<E89D96>憿寧𤌍銝𠹺<E98A9D><F0A0B9BA><EFBFBD>葉
|
||
if ($project\_id\!= $this\-\>getProjectSetting('target\_project')) return;
|
||
|
||
// <20>㰘蝸<E3B098>唳旿隞交<E99A9E><E4BAA4>交辺隞?
|
||
$data \= \\REDCap::getData($project\_id, 'array', $record);
|
||
|
||
// 璉<><E79289>?status'摮埈挾<E59F88>臬炏銝?complete' (2)
|
||
// 瘜冽<E7989C>嚗帋<E59A97>隞嗥<E99A9E><E597A5><EFBFBD><EFBFBD><EFBFBD>?
|
||
if ($data\[$record\]\[$event\_id\]\['status'\] \== '2') {
|
||
// 霈啣<E99C88><E595A3>亙<EFBFBD>
|
||
$this\-\>log("霈啣<E99C88> $record 摰峕<E691B0><E5B395>嗆<EFBFBD><E59786><EFBFBD><EFBFBD>乓<EFBFBD>?, \[
|
||
'record' \=\> $record,
|
||
'status' \=\> 'complete'
|
||
\]);
|
||
|
||
// <20>扯<EFBFBD><E689AF>芸<EFBFBD>銋厰<E98A8B>餉<EFBFBD>嚗<EFBFBD><E59A97>憒<EFBFBD><E68692>靚<EFBFBD>鍂憭㚚<E686AD>API嚗?
|
||
$this\-\>sendToExternalRegistry($record, $data);
|
||
}
|
||
}
|
||
|
||
### **A.2 摰匧<E691B0><E58CA7>唳旿摨𤘪䰻霂g<E99C82><EFBD87><EFBFBD>㺭<EFBFBD>吔<EFBFBD>**
|
||
|
||
PHP
|
||
|
||
// <20>躰秤<E8BAB0><E7A7A4><EFBFBD>瘜𤏪<E7989C>SQL瘜典<E7989C>憌𡡞埯嚗?
|
||
// $sql \= "select value from redcap\_data where record \= '$record\_id'";
|
||
|
||
// 甇<>&<EFBFBD><EFBC86><EFBFBD>瘜?
|
||
$sql \= "select value from redcap\_data where project\_id \=? and record \=? and field\_name \=?";
|
||
$result \= $this\-\>query($sql, \[$project\_id, $record\_id, 'target\_field'\]);
|
||
|
||
while($row \= $result\-\>fetch\_assoc()){
|
||
// 摰匧<E691B0>雿輻鍂 $row\['value'\]
|
||
$value \= $row\['value'\];
|
||
//...憭<><E686AD><EFBFBD>餉<EFBFBD>
|
||
}
|
||
|
||
### **A.3 API Python 鈭支<E988AD>嚗<EFBFBD><E59A97><EFBFBD><EFBFBD>之<EFBFBD>寥<EFBFBD><E5AFA5>唳旿嚗?*
|
||
|
||
Python
|
||
|
||
def export\_large\_project(api\_url, token):
|
||
"""
|
||
<20><>鸌撖澆枂憭批<E686AD>憿寧𤌍<E5AFA7>唳旿隞仿<E99A9E><E4BBBF>滩<EFBFBD><E6BBA9>?
|
||
"""
|
||
\# 1\. 擐硋<E69390><E7A18B>瑕<EFBFBD><E79195><EFBFBD><EFBFBD>㕑扇敶𣗏D
|
||
payload \= {
|
||
'token': token,
|
||
'content': 'record',
|
||
'format': 'json',
|
||
'fields': 'record\_id'
|
||
}
|
||
r \= requests.post(api\_url, data=payload)
|
||
records \= \[x\['record\_id'\] for x in r.json()\]
|
||
|
||
\# 2\. <20><><EFBFBD>憭<EFBFBD><E686AD> (靘见<E99D98>瘥誩<E798A5>100<30>?
|
||
chunk\_size \= 100
|
||
all\_data \=
|
||
|
||
for i in range(0, len(records), chunk\_size):
|
||
chunk \= records\[i:i \+ chunk\_size\]
|
||
\# <20><>遣霂瑟<E99C82><E7919F>孵<EFBFBD><E5ADB5><EFBFBD>扇敶?
|
||
batch\_payload \= {
|
||
'token': token,
|
||
'content': 'record',
|
||
'format': 'json',
|
||
'type': 'flat'
|
||
}
|
||
\# <20>冽<EFBFBD><E586BD>溶<EFBFBD>㰘扇敶𣗏D<F0A3978F>郡ayload
|
||
for idx, rec\_id in enumerate(chunk):
|
||
batch\_payload\[f'records\[{idx}\]'\] \= rec\_id
|
||
|
||
r\_batch \= requests.post(api\_url, data=batch\_payload)
|
||
all\_data.extend(r\_batch.json())
|
||
print(f"撌脣紡<E884A3>?{len(all\_data)} <20>∟扇敶?..")
|
||
|
||
return pd.DataFrame(all\_data)
|
||
|
||
#### **撘閧鍂<E996A7><E98D82><EFBFBD>雿?*
|
||
|
||
1. Supporting rapid innovation in research data capture and management: the REDCap external module framework \- PubMed Central, 霈輸䔮<E8BCB8>園𡢿銝?<3F><><EFBFBD><EFBFBD>?29, 2025嚗?[https://pmc.ncbi.nlm.nih.gov/articles/PMC12202089/](https://pmc.ncbi.nlm.nih.gov/articles/PMC12202089/)
|
||
2. The Process of Installing REDCap, a Web Based Database Supporting Biomedical Research: The First Year \- PubMed Central, 霈輸䔮<E8BCB8>園𡢿銝?<3F><><EFBFBD><EFBFBD>?29, 2025嚗?[https://pmc.ncbi.nlm.nih.gov/articles/PMC4287671/](https://pmc.ncbi.nlm.nih.gov/articles/PMC4287671/)
|
||
3. Join & Get REDCap, 霈輸䔮<E8BCB8>園𡢿銝?<3F><><EFBFBD><EFBFBD>?29, 2025嚗?[https://projectredcap.org/join/](https://projectredcap.org/join/)
|
||
4. How to Acquire a REDCap License \- NACC Docs, 霈輸䔮<E8BCB8>園𡢿銝?<3F><><EFBFBD><EFBFBD>?29, 2025嚗?[https://docs.naccdata.org/edc/data-capture-development/how-to-acquire-a-redcap-license](https://docs.naccdata.org/edc/data-capture-development/how-to-acquire-a-redcap-license)
|
||
5. 霈輸䔮<E8BCB8>園𡢿銝?<3F><><EFBFBD><EFBFBD>?29, 2025嚗?[https://projectredcap.org/join/\#:\~:text=Although%20REDCap%20is%20available%20at,your%20organization%20must%20be%20executed.](https://projectredcap.org/join/#:~:text=Although%20REDCap%20is%20available%20at,your%20organization%20must%20be%20executed.)
|
||
6. FAQ \- REDCap, 霈輸䔮<E8BCB8>園𡢿銝?<3F><><EFBFBD><EFBFBD>?29, 2025嚗?[https://projectredcap.org/about/faq/](https://projectredcap.org/about/faq/)
|
||
7. Installation & Technical Requirements \- REDCap, 霈輸䔮<E8BCB8>園𡢿銝?<3F><><EFBFBD><EFBFBD>?29, 2025嚗?[https://projectredcap.org/software/requirements/](https://projectredcap.org/software/requirements/)
|
||
8. REDCap Technical Overview Introduction REDCap Infrastructure: Best Practices and Dependencies, 霈輸䔮<E8BCB8>園𡢿銝?<3F><><EFBFBD><EFBFBD>?29, 2025嚗?[https://projectredcap.org/wp-content/resources/REDCapTechnicalOverview.pdf](https://projectredcap.org/wp-content/resources/REDCapTechnicalOverview.pdf)
|
||
9. REDCap External Module Development for REDCap Admins and Developers, 霈輸䔮<E8BCB8>園𡢿銝?<3F><><EFBFBD><EFBFBD>?29, 2025嚗?[https://ctsit.github.io/redcap\_external\_module\_development\_guide/guide\_for\_admins\_and\_devs.html](https://ctsit.github.io/redcap_external_module_development_guide/guide_for_admins_and_devs.html)
|
||
10. REDCap 'Hello World' external module development guide \- Ayesh Alshukri, 霈輸䔮<E8BCB8>園𡢿銝?<3F><><EFBFBD><EFBFBD>?29, 2025嚗?[https://ayeshalshukri.co.uk/category/guides/redcap-external-module-development-guide-hello-world/](https://ayeshalshukri.co.uk/category/guides/redcap-external-module-development-guide-hello-world/)
|
||
11. REDCap External Module Development for Developers \- GitHub Pages, 霈輸䔮<E8BCB8>園𡢿銝?<3F><><EFBFBD><EFBFBD>?29, 2025嚗?[https://ctsit.github.io/redcap\_external\_module\_development\_guide/guide\_for\_devs.html](https://ctsit.github.io/redcap_external_module_development_guide/guide_for_devs.html)
|
||
12. REDCap External Module Development Beginner's Guide \- GitHub, 霈輸䔮<E8BCB8>園𡢿銝?<3F><><EFBFBD><EFBFBD>?29, 2025嚗?[https://github.com/vanderbilt-redcap/external-module-framework-docs/blob/main/guide.md](https://github.com/vanderbilt-redcap/external-module-framework-docs/blob/main/guide.md)
|
||
13. Shazam.php \- GitHub, 霈輸䔮<E8BCB8>園𡢿銝?<3F><><EFBFBD><EFBFBD>?29, 2025嚗?[https://github.com/susom/redcap-em-shazam/blob/master/Shazam.php](https://github.com/susom/redcap-em-shazam/blob/master/Shazam.php)
|
||
14. redcap-copy-data-on-save/CopyDataOnSave.php at main 繚 lsgs ..., 霈輸䔮<E8BCB8>園𡢿銝?<3F><><EFBFBD><EFBFBD>?29, 2025嚗?[https://github.com/lsgs/redcap-copy-data-on-save/blob/main/CopyDataOnSave.php](https://github.com/lsgs/redcap-copy-data-on-save/blob/main/CopyDataOnSave.php)
|
||
15. README.md 繚 main 繚 BRIC / Epic Hl7 Integration 繚 GitLab, 霈輸䔮<E8BCB8>園𡢿銝?<3F><><EFBFBD><EFBFBD>?29, 2025嚗?[https://gitlab.msu.edu/bric/epic-hl7-integration/-/blob/main/README.md](https://gitlab.msu.edu/bric/epic-hl7-integration/-/blob/main/README.md)
|
||
16. REDCap-Changelog\_8.1.0.docx, 霈輸䔮<E8BCB8>園𡢿銝?<3F><><EFBFBD><EFBFBD>?29, 2025嚗?[https://www.bu.edu/ctsi/files/2016/02/REDCap-Changelog\_8.1.0.docx](https://www.bu.edu/ctsi/files/2016/02/REDCap-Changelog_8.1.0.docx)
|
||
17. vanderbilt-redcap/auto-record-generation: Module that allows for a new record to be generated in another project (or the same project) on a flagging field being saved. Allows for data fields to be transferred to the new record as well. \- GitHub, 霈輸䔮<E8BCB8>園𡢿銝?<3F><><EFBFBD><EFBFBD>?29, 2025嚗?[https://github.com/vanderbilt-redcap/auto-record-generation](https://github.com/vanderbilt-redcap/auto-record-generation)
|
||
18. 2018 REDCapCon Poster Competition, 霈輸䔮<E8BCB8>園𡢿銝?<3F><><EFBFBD><EFBFBD>?29, 2025嚗?[https://projectredcap.org/wp-content/uploads/2018/08/2018-REDCapCon-Posters.pdf](https://projectredcap.org/wp-content/uploads/2018/08/2018-REDCapCon-Posters.pdf)
|
||
19. vanderbilt-redcap/external-module-framework-docs \- GitHub, 霈輸䔮<E8BCB8>園𡢿銝?<3F><><EFBFBD><EFBFBD>?29, 2025嚗?[https://github.com/vanderbilt-redcap/external-module-framework-docs](https://github.com/vanderbilt-redcap/external-module-framework-docs)
|
||
20. CVE-2017-7351: REDCap 7.0.0 \- 7.0.10 SQL Injection \- LRQA, 霈輸䔮<E8BCB8>園𡢿銝?<3F><><EFBFBD><EFBFBD>?29, 2025嚗?[https://www.lrqa.com/en/cyber-labs/cve-2017-7351-redcap-7-0-0-7-0-10-sql-injection/](https://www.lrqa.com/en/cyber-labs/cve-2017-7351-redcap-7-0-0-7-0-10-sql-injection/)
|
||
21. ctsit/redcap\_webservices: REDCap external module that provides a way to expose SQL query results to the external world. \- GitHub, 霈輸䔮<E8BCB8>園𡢿銝?<3F><><EFBFBD><EFBFBD>?29, 2025嚗?[https://github.com/ctsit/redcap\_webservices](https://github.com/ctsit/redcap_webservices)
|
||
22. REDCap: Multiple Cross-Site Scripting (XSS) Vulnerabilities \- LevelBlue, 霈輸䔮<E8BCB8>園𡢿銝?<3F><><EFBFBD><EFBFBD>?29, 2025嚗?[https://levelblue.com/blogs/spiderlabs-blog/redcap-multiple-cross-site-scripting-xss-vulnerabilities](https://levelblue.com/blogs/spiderlabs-blog/redcap-multiple-cross-site-scripting-xss-vulnerabilities)
|
||
23. Yale External Module (EM): Checklist for EM Development \- REDCap@Yale, 霈輸䔮<E8BCB8>園𡢿銝?<3F><><EFBFBD><EFBFBD>?29, 2025嚗?[https://portal.redcap.yale.edu/media/91/download?inline](https://portal.redcap.yale.edu/media/91/download?inline)
|
||
24. Article \- REDCap Security Information \- TeamDynamix, 霈輸䔮<E8BCB8>園𡢿銝?<3F><><EFBFBD><EFBFBD>?29, 2025嚗?[https://ecu.teamdynamix.com/TDClient/1409/Portal/KB/ArticleDet?ID=67288](https://ecu.teamdynamix.com/TDClient/1409/Portal/KB/ArticleDet?ID=67288)
|
||
25. Mobile App Guide \- CENTER FOR RESEARCH INFORMATICS, 霈輸䔮<E8BCB8>園𡢿銝?<3F><><EFBFBD><EFBFBD>?29, 2025嚗?[https://cri.uchicago.edu/wp-content/uploads/2015/12/REDCap-Mobile-App-Guide.pdf](https://cri.uchicago.edu/wp-content/uploads/2015/12/REDCap-Mobile-App-Guide.pdf)
|
||
26. Mobile App User's Guide, 霈輸䔮<E8BCB8>園𡢿銝?<3F><><EFBFBD><EFBFBD>?29, 2025嚗?[https://www.ctsi.ufl.edu/wordpress/files/2023/12/new-REDCap-Mobile-App-Guide-1.pdf](https://www.ctsi.ufl.edu/wordpress/files/2023/12/new-REDCap-Mobile-App-Guide-1.pdf)
|
||
27. CFRI DM REDCap Mobile App Manual, 霈輸䔮<E8BCB8>園𡢿銝?<3F><><EFBFBD><EFBFBD>?29, 2025嚗?[https://projectredcap.org/wp-content/uploads/2016/08/CFRI-DM-REDCap-Mobile-App-Manual.pdf](https://projectredcap.org/wp-content/uploads/2016/08/CFRI-DM-REDCap-Mobile-App-Manual.pdf)
|
||
28. Records \- PyCap \- REDCap-Tools, 霈輸䔮<E8BCB8>園𡢿銝?<3F><><EFBFBD><EFBFBD>?29, 2025嚗?[http://redcap-tools.github.io/PyCap/api\_reference/records/](http://redcap-tools.github.io/PyCap/api_reference/records/)
|
||
29. API-Best-Practices-and-Guide-1.docx \- UConn Health, 霈輸䔮<E8BCB8>園𡢿銝?<3F><><EFBFBD><EFBFBD>?29, 2025嚗?[https://health.uconn.edu/clinical-research-center/wp-content/uploads/sites/50/2024/02/API-Best-Practices-and-Guide-1.docx](https://health.uconn.edu/clinical-research-center/wp-content/uploads/sites/50/2024/02/API-Best-Practices-and-Guide-1.docx)
|
||
30. REDCap: Updating Mobile App Projects \- SMPH Enterprise Applications \- Research KB, 霈輸䔮<E8BCB8>園𡢿銝?<3F><><EFBFBD><EFBFBD>?29, 2025嚗?[https://kb.wisc.edu/smph/informatics/page.php?id=152765](https://kb.wisc.edu/smph/informatics/page.php?id=152765)
|
||
31. In-Depth Guide | REDCap, 霈輸䔮<E8BCB8>園𡢿銝?<3F><><EFBFBD><EFBFBD>?29, 2025嚗?[https://projectredcap.org/wp-content/uploads/2019/07/In-Depth-Guide2019.pdf](https://projectredcap.org/wp-content/uploads/2019/07/In-Depth-Guide2019.pdf)
|
||
32. Services | REDCap \- The George Washington University, 霈輸䔮<E8BCB8>園𡢿銝?<3F><><EFBFBD><EFBFBD>?29, 2025嚗?[https://redcap.smhs.gwu.edu/services](https://redcap.smhs.gwu.edu/services)
|
||
33. MyCap Resources, 霈輸䔮<E8BCB8>園𡢿銝?<3F><><EFBFBD><EFBFBD>?29, 2025嚗?[https://projectmycap.org/mycap-resources/](https://projectmycap.org/mycap-resources/)
|
||
34. MyCap <20>?Mobilizing the participant voice, 霈輸䔮<E8BCB8>園𡢿銝?<3F><><EFBFBD><EFBFBD>?29, 2025嚗?[https://projectmycap.org/](https://projectmycap.org/)
|
||
35. MyCap: a flexible and configurable platform for mobilizing the participant voice \- PMC, 霈輸䔮<E8BCB8>園𡢿銝?<3F><><EFBFBD><EFBFBD>?29, 2025嚗?[https://pmc.ncbi.nlm.nih.gov/articles/PMC9165428/](https://pmc.ncbi.nlm.nih.gov/articles/PMC9165428/)
|
||
36. MyCap \- REDCap Support \- University of Alberta, 霈輸䔮<E8BCB8>園𡢿銝?<3F><><EFBFBD><EFBFBD>?29, 2025嚗?[https://help.redcap.ualberta.ca/help-and-faq/mycap](https://help.redcap.ualberta.ca/help-and-faq/mycap)
|
||
37. REDCap: MyCap \- Active Task List \- SMPH Enterprise Applications \- Research KB, 霈輸䔮<E8BCB8>園𡢿銝?<3F><><EFBFBD><EFBFBD>?29, 2025嚗?[https://kb.wisc.edu/smph/informatics/133154](https://kb.wisc.edu/smph/informatics/133154)
|
||
38. REDCap External Module <20>?MyCap, 霈輸䔮<E8BCB8>園𡢿銝?<3F><><EFBFBD><EFBFBD>?29, 2025嚗?[https://projectmycap.org/tag/redcap-external-module/](https://projectmycap.org/tag/redcap-external-module/)
|
||
39. MYCAP HELP Table of Contents \- REDCap, 霈輸䔮<E8BCB8>園𡢿銝?<3F><><EFBFBD><EFBFBD>?29, 2025嚗?[https://redcap.med.upenn.edu/redcap\_v14.3.13/Resources/misc/mycap\_help.pdf](https://redcap.med.upenn.edu/redcap_v14.3.13/Resources/misc/mycap_help.pdf)
|
||
40. How to use exportRecordsTyped function from the redcapAPI package to import the data without factors? \- Stack Overflow, 霈輸䔮<E8BCB8>園𡢿銝?<3F><><EFBFBD><EFBFBD>?29, 2025嚗?[https://stackoverflow.com/questions/76815004/how-to-use-exportrecordstyped-function-from-the-redcapapi-package-to-import-the](https://stackoverflow.com/questions/76815004/how-to-use-exportrecordstyped-function-from-the-redcapapi-package-to-import-the)
|
||
41. JSONDecodeError 繚 Issue \#265 繚 redcap-tools/PyCap \- GitHub, 霈輸䔮<E8BCB8>園𡢿銝?<3F><><EFBFBD><EFBFBD>?29, 2025嚗?[https://github.com/redcap-tools/PyCap/issues/265](https://github.com/redcap-tools/PyCap/issues/265)
|
||
42. Importing data into REDCap <20>?Backup options <20>?API Basics \- ITHS, 霈輸䔮<E8BCB8>園𡢿銝?<3F><><EFBFBD><EFBFBD>?29, 2025嚗?[https://www.iths.org/wp-content/uploads/REDCap-Importing-Exporting-302.pdf](https://www.iths.org/wp-content/uploads/REDCap-Importing-Exporting-302.pdf)
|
||
43. BCCHR-IT/data-entry-trigger-builder: An External Module that provides an interface to create a DET between a source and destination project. \- GitHub, 霈輸䔮<E8BCB8>園𡢿銝?<3F><><EFBFBD><EFBFBD>?29, 2025嚗?[https://github.com/BCCHR-IT/data-entry-trigger-builder](https://github.com/BCCHR-IT/data-entry-trigger-builder)
|
||
44. RedCap API export \- Python Discussions, 霈輸䔮<E8BCB8>園𡢿銝?<3F><><EFBFBD><EFBFBD>?29, 2025嚗?[https://discuss.python.org/t/redcap-api-export/32252](https://discuss.python.org/t/redcap-api-export/32252)
|
||
45. REDCap External Module for automated generation of record event schedules. \- GitHub, 霈輸䔮<E8BCB8>園𡢿銝?<3F><><EFBFBD><EFBFBD>?29, 2025嚗?[https://github.com/lsgs/redcap-autoschedule](https://github.com/lsgs/redcap-autoschedule)
|
||
46. redcap-autoschedule/README.md at master \- GitHub, 霈輸䔮<E8BCB8>園𡢿銝?<3F><><EFBFBD><EFBFBD>?29, 2025嚗?[https://github.com/lsgs/redcap-autoschedule/blob/master/README.md](https://github.com/lsgs/redcap-autoschedule/blob/master/README.md)
|
||
47. redcap-repo 繚 GitHub Topics, 霈輸䔮<E8BCB8>園𡢿銝?<3F><><EFBFBD><EFBFBD>?29, 2025嚗?[https://github.com/topics/redcap-repo](https://github.com/topics/redcap-repo)
|
||
48. A Comprehensive Guide to REDCap | UNMC, 霈輸䔮<E8BCB8>園𡢿銝?<3F><><EFBFBD><EFBFBD>?29, 2025嚗?[https://www.unmc.edu/vcr/\_documents/unmc\_redcap\_usage.pdf](https://www.unmc.edu/vcr/_documents/unmc_redcap_usage.pdf) |