動態表單解析文件 === ## 模型 ### 題型Enum ```C# /// <summary> /// 題組類別 /// </summary> public enum QuestionType { /// <summary> /// 單選[radio] /// </summary> radio = 0, /// <summary> /// 多選[checkbox] /// </summary> checkbox = 1, /// <summary> /// 下拉選單[dropdown] /// </summary> dropdown = 2, /// <summary> /// 輸入格[literal] /// </summary> literal = 3, /// <summary> /// 日期[date] /// </summary> date = 4, /// <summary> /// 純數字[number] /// </summary> number = 5, /// <summary> /// 電子信箱[email] /// </summary> email = 6, /// <summary> /// 純英文[english] /// </summary> english = 7 } ``` ### 模型文件 ```C# /// <summary> /// 給Json序列化的Forms的物件[表單] /// </summary> public class FormsView { public string Guid { get; set; } /// <summary> /// 表單名稱 /// </summary> public string Title { get; set; } /// <summary> /// 表單說明 /// </summary> public string Description { get; set; } /// <summary> /// 題組 /// </summary> public List<FormsViewQuestion> Questions { get; set; } public FormsView() { Questions = new List<FormsViewQuestion>(); } } /// <summary> /// 給Json序列化的Question的物件[題組] /// </summary> public class FormsViewQuestion { public string Guid { get; set; } /// <summary> /// 題組名稱 /// </summary> public string Title { get; set; } /// <summary> /// 題組型態 /// </summary> public string Type { get; set; } /// <summary> /// 選項 /// </summary> public List<FormsViewOption> Options { get; set; } /// <summary> /// 是否必填 /// </summary> public bool Required { get; set; } /// <summary> /// 題組答案 /// </summary> public string[] Answer { get; set; } public FormsViewQuestion() { Options = new List<FormsViewOption>(); } } /// <summary> /// 給Json序列化的Option的物件[題組選項] /// </summary> public class FormsViewOption { public string Guid { get; set; } /// <summary> /// 選項值 /// </summary> public string Value { get; set; } /// <summary> /// 選項綁定的題組Guid陣列 /// </summary> public string[] Binding { get; set; } } ``` ## JSON 範例 ### 未填寫答案的表單結構 格式化結構:http://jsoneditoronline.org/?id=d07ea6bfb8cd4894b7819d27259fcea7 ```JSON { "Guid": "0461FCB6-7A04-F594-0A99-6A75347757A1", "Title": "07. 物質成癮評估", "Description": "", "Questions": [ { "Guid": "86D77F19-97E7-7EEC-CB8A-57E00E0AB363", "Title": "您發生性生活有多少比例使用搖頭丸、K他命、甲基安非他命(安、ICE)、G水(GHB/GBL)或其他成癮物質?答案請填入百分比(0~100)", "Type": "number", "Options": [], "Required": true, "Answer": [] }, { "Guid": "290393DC-F383-66D4-A654-91CF7069761B", "Title": "您希望您的性生活中時有多少比例使用搖頭丸、K他命、甲基安非他命(安、ICE)、G水(GHB/GBL)或其他成癮物質?答案請填入百分比(0~100)", "Type": "number", "Options": [], "Required": true, "Answer": [] }, { "Guid": "E884A5D7-9FEA-AF82-8C7A-7F5823D5FE01", "Title": "請問您上一次沒有合併使用成癮物質的性行為是什麼時候?", "Type": "radio", "Options": [ { "Guid": "0D61E04F-887B-732A-C98B-49ACE664F786", "Value": "一週內", "Binding": [ "F37A89C3-2661-A716-B482-0A3E4C4704D8", "008293E0-4929-67AD-5822-0747506A6445", "C0E3785C-FBC2-F634-EF6A-5D610BF3741B", "398CD996-2C84-333E-3D27-201D7EBD6D97" ] }, { "Guid": "7B64DC54-447C-4922-EDBF-1DAD9DBE3FE9", "Value": "一個月內", "Binding": [ "F37A89C3-2661-A716-B482-0A3E4C4704D8", "008293E0-4929-67AD-5822-0747506A6445", "C0E3785C-FBC2-F634-EF6A-5D610BF3741B", "398CD996-2C84-333E-3D27-201D7EBD6D97" ] }, { "Guid": "1DEDCFD0-4B8A-C819-D6A0-145C2B58CA61", "Value": "近半年內", "Binding": [ "F37A89C3-2661-A716-B482-0A3E4C4704D8", "008293E0-4929-67AD-5822-0747506A6445", "C0E3785C-FBC2-F634-EF6A-5D610BF3741B", "398CD996-2C84-333E-3D27-201D7EBD6D97" ] }, { "Guid": "DD5126F9-1BCD-03E4-CF3F-A97B3B04406A", "Value": "近一年內", "Binding": [ "F37A89C3-2661-A716-B482-0A3E4C4704D8", "008293E0-4929-67AD-5822-0747506A6445", "C0E3785C-FBC2-F634-EF6A-5D610BF3741B", "398CD996-2C84-333E-3D27-201D7EBD6D97" ] }, { "Guid": "DDC9178B-0EF7-1F78-F6AC-57936C42DED7", "Value": "一兩年前", "Binding": [ "F37A89C3-2661-A716-B482-0A3E4C4704D8", "008293E0-4929-67AD-5822-0747506A6445", "C0E3785C-FBC2-F634-EF6A-5D610BF3741B", "398CD996-2C84-333E-3D27-201D7EBD6D97" ] }, { "Guid": "30D1DB2F-7E8B-A67D-F9E0-139D7EB0A5CF", "Value": "不知道/不記得了", "Binding": [ "F37A89C3-2661-A716-B482-0A3E4C4704D8", "008293E0-4929-67AD-5822-0747506A6445", "C0E3785C-FBC2-F634-EF6A-5D610BF3741B", "398CD996-2C84-333E-3D27-201D7EBD6D97" ] }, { "Guid": "FEF47712-80EB-2208-85BF-0F844B3E6B28", "Value": "不記得了,單純的性對我來說不重要", "Binding": [ "F37A89C3-2661-A716-B482-0A3E4C4704D8", "008293E0-4929-67AD-5822-0747506A6445", "C0E3785C-FBC2-F634-EF6A-5D610BF3741B", "398CD996-2C84-333E-3D27-201D7EBD6D97" ] }, { "Guid": "93D06677-00AD-745C-AF4B-759B595C472A", "Value": "我沒有使用成癮物質", "Binding": [] } ], "Required": true, "Answer": [] }, { "Guid": "F37A89C3-2661-A716-B482-0A3E4C4704D8", "Title": "請問您是否曾經意外過量使用G水?(例如有下列任一情況:失去意識、胸部疼痛、癲癇、極度焦慮、恐慌、極度激動、出現幻覺、超出您平時使用藥物的譫妄或混亂的狀況,或是需要專業人員的協助)", "Type": "radio", "Options": [ { "Guid": "13EEDED7-ADAC-F17D-587C-9848D037168E", "Value": "否", "Binding": [] }, { "Guid": "AE5085F6-DCA9-6297-F4FE-2F7389C4311B", "Value": "是,有過一次", "Binding": [] }, { "Guid": "5EE62DC3-FA8B-3D5B-62F5-A6577E86C6BB", "Value": "是,超過一次", "Binding": [] } ], "Required": true, "Answer": [] }, { "Guid": "008293E0-4929-67AD-5822-0747506A6445", "Title": "請問您是否曾經意外過量使用甲基安非他命?(例如有下列任一情況:失去意識、胸部疼痛、癲癇、極度焦慮、恐慌、極度激動、出現幻覺、超出您平時使用藥物的譫妄或混亂的狀況,或是需要專業人員的協助)", "Type": "radio", "Options": [ { "Guid": "3B4D8311-6CF5-0B7B-0A88-344C649607CD", "Value": "否", "Binding": [] }, { "Guid": "FB569B20-561E-CF3E-E4AA-832E5EBEC858", "Value": "是,有過一次", "Binding": [] }, { "Guid": "9F16F25F-B0EE-6AEA-D012-39258BEED983", "Value": "是,超過一次", "Binding": [] } ], "Required": true, "Answer": [] }, { "Guid": "C0E3785C-FBC2-F634-EF6A-5D610BF3741B", "Title": "問您是否曾發生過以下的狀況,跟您的藥物使用有關?(請選出所有符合的選項)", "Type": "checkbox", "Options": [ { "Guid": "E331A3AB-D41F-B415-EAF3-E6A8F8B40474", "Value": "被警察釣魚", "Binding": [] }, { "Guid": "581583F7-17AD-27BD-E609-9753D3E64E30", "Value": "緩起訴", "Binding": [] }, { "Guid": "1EDEB8A4-4AC4-07E2-FC23-90DB590EE420", "Value": "入勒戒所觀察勒戒或戒治", "Binding": [] }, { "Guid": "D626E927-5C0C-D295-0213-3AA3AE667B32", "Value": "定罪判刑(緩刑、易科罰金或入監服刑)", "Binding": [] }, { "Guid": "1B267039-40BB-8166-59FE-51B81160DFE6", "Value": "以上皆無", "Binding": [] } ], "Required": true, "Answer": [] }, { "Guid": "398CD996-2C84-333E-3D27-201D7EBD6D97", "Title": "請問您是否想要針對自己在使用成癮物質這件事上做出改變?我們可以與你共同完成,協助你設定出一個目標,並朝著目標方向努力。", "Type": "radio", "Options": [ { "Guid": "DD781673-AC6F-4013-E51C-607DBCAE175D", "Value": "是,請聯絡我(請於其他的空格處留下你的聯絡方式,如:手機號碼、line id 或電子信箱...等)", "Binding": [ "BC1905E1-6E68-7B57-5467-6A14A1892F71" ] }, { "Guid": "D602AA57-183D-9E47-0BD5-A774E2260665", "Value": "是,之前已經留下聯絡方式", "Binding": [] }, { "Guid": "82BE3D0C-F498-5D78-1034-A2F781892BAA", "Value": "否,我沒有使用成癮物質", "Binding": [] }, { "Guid": "3730E5E3-EA95-88D7-2060-C3C2A2B548AE", "Value": "否,目前不想做出改變", "Binding": [] } ], "Required": true, "Answer": [] }, { "Guid": "BC1905E1-6E68-7B57-5467-6A14A1892F71", "Title": "其他(請註明你的聯絡方式,如:手機號碼、line id 或電子信箱)", "Type": "literal", "Options": [], "Required": true, "Answer": [] } ] } ``` ### 填寫答案後的表單結構 格式化結構:http://jsoneditoronline.org/?id=289ae706b1f8477abf390211867a7520 ```JSON { "Guid": "0461FCB6-7A04-F594-0A99-6A75347757A1", "Title": "07. 物質成癮評估", "Description": "", "Questions": [ { "Guid": "86D77F19-97E7-7EEC-CB8A-57E00E0AB363", "Title": "您發生性生活有多少比例使用搖頭丸、K他命、甲基安非他命(安、ICE)、G水(GHB/GBL)或其他成癮物質?答案請填入百分比(0~100)", "Type": "number", "Options": [], "Required": true, "Answer": [ "0" ] }, { "Guid": "290393DC-F383-66D4-A654-91CF7069761B", "Title": "您希望您的性生活中時有多少比例使用搖頭丸、K他命、甲基安非他命(安、ICE)、G水(GHB/GBL)或其他成癮物質?答案請填入百分比(0~100)", "Type": "number", "Options": [], "Required": true, "Answer": [ "90" ] }, { "Guid": "E884A5D7-9FEA-AF82-8C7A-7F5823D5FE01", "Title": "請問您上一次沒有合併使用成癮物質的性行為是什麼時候?", "Type": "radio", "Options": [ { "Guid": "0D61E04F-887B-732A-C98B-49ACE664F786", "Value": "一週內", "Binding": [ "F37A89C3-2661-A716-B482-0A3E4C4704D8", "008293E0-4929-67AD-5822-0747506A6445", "C0E3785C-FBC2-F634-EF6A-5D610BF3741B", "398CD996-2C84-333E-3D27-201D7EBD6D97" ] }, { "Guid": "7B64DC54-447C-4922-EDBF-1DAD9DBE3FE9", "Value": "一個月內", "Binding": [ "F37A89C3-2661-A716-B482-0A3E4C4704D8", "008293E0-4929-67AD-5822-0747506A6445", "C0E3785C-FBC2-F634-EF6A-5D610BF3741B", "398CD996-2C84-333E-3D27-201D7EBD6D97" ] }, { "Guid": "1DEDCFD0-4B8A-C819-D6A0-145C2B58CA61", "Value": "近半年內", "Binding": [ "F37A89C3-2661-A716-B482-0A3E4C4704D8", "008293E0-4929-67AD-5822-0747506A6445", "C0E3785C-FBC2-F634-EF6A-5D610BF3741B", "398CD996-2C84-333E-3D27-201D7EBD6D97" ] }, { "Guid": "DD5126F9-1BCD-03E4-CF3F-A97B3B04406A", "Value": "近一年內", "Binding": [ "F37A89C3-2661-A716-B482-0A3E4C4704D8", "008293E0-4929-67AD-5822-0747506A6445", "C0E3785C-FBC2-F634-EF6A-5D610BF3741B", "398CD996-2C84-333E-3D27-201D7EBD6D97" ] }, { "Guid": "DDC9178B-0EF7-1F78-F6AC-57936C42DED7", "Value": "一兩年前", "Binding": [ "F37A89C3-2661-A716-B482-0A3E4C4704D8", "008293E0-4929-67AD-5822-0747506A6445", "C0E3785C-FBC2-F634-EF6A-5D610BF3741B", "398CD996-2C84-333E-3D27-201D7EBD6D97" ] }, { "Guid": "30D1DB2F-7E8B-A67D-F9E0-139D7EB0A5CF", "Value": "不知道/不記得了", "Binding": [ "F37A89C3-2661-A716-B482-0A3E4C4704D8", "008293E0-4929-67AD-5822-0747506A6445", "C0E3785C-FBC2-F634-EF6A-5D610BF3741B", "398CD996-2C84-333E-3D27-201D7EBD6D97" ] }, { "Guid": "FEF47712-80EB-2208-85BF-0F844B3E6B28", "Value": "不記得了,單純的性對我來說不重要", "Binding": [ "F37A89C3-2661-A716-B482-0A3E4C4704D8", "008293E0-4929-67AD-5822-0747506A6445", "C0E3785C-FBC2-F634-EF6A-5D610BF3741B", "398CD996-2C84-333E-3D27-201D7EBD6D97" ] }, { "Guid": "93D06677-00AD-745C-AF4B-759B595C472A", "Value": "我沒有使用成癮物質", "Binding": [] } ], "Required": true, "Answer": [ "30D1DB2F-7E8B-A67D-F9E0-139D7EB0A5CF" ] }, { "Guid": "F37A89C3-2661-A716-B482-0A3E4C4704D8", "Title": "請問您是否曾經意外過量使用G水?(例如有下列任一情況:失去意識、胸部疼痛、癲癇、極度焦慮、恐慌、極度激動、出現幻覺、超出您平時使用藥物的譫妄或混亂的狀況,或是需要專業人員的協助)", "Type": "radio", "Options": [ { "Guid": "13EEDED7-ADAC-F17D-587C-9848D037168E", "Value": "否", "Binding": [] }, { "Guid": "AE5085F6-DCA9-6297-F4FE-2F7389C4311B", "Value": "是,有過一次", "Binding": [] }, { "Guid": "5EE62DC3-FA8B-3D5B-62F5-A6577E86C6BB", "Value": "是,超過一次", "Binding": [] } ], "Required": true, "Answer": [ "AE5085F6-DCA9-6297-F4FE-2F7389C4311B" ] }, { "Guid": "008293E0-4929-67AD-5822-0747506A6445", "Title": "請問您是否曾經意外過量使用甲基安非他命?(例如有下列任一情況:失去意識、胸部疼痛、癲癇、極度焦慮、恐慌、極度激動、出現幻覺、超出您平時使用藥物的譫妄或混亂的狀況,或是需要專業人員的協助)", "Type": "radio", "Options": [ { "Guid": "3B4D8311-6CF5-0B7B-0A88-344C649607CD", "Value": "否", "Binding": [] }, { "Guid": "FB569B20-561E-CF3E-E4AA-832E5EBEC858", "Value": "是,有過一次", "Binding": [] }, { "Guid": "9F16F25F-B0EE-6AEA-D012-39258BEED983", "Value": "是,超過一次", "Binding": [] } ], "Required": true, "Answer": [ "3B4D8311-6CF5-0B7B-0A88-344C649607CD" ] }, { "Guid": "C0E3785C-FBC2-F634-EF6A-5D610BF3741B", "Title": "問您是否曾發生過以下的狀況,跟您的藥物使用有關?(請選出所有符合的選項)", "Type": "checkbox", "Options": [ { "Guid": "E331A3AB-D41F-B415-EAF3-E6A8F8B40474", "Value": "被警察釣魚", "Binding": [] }, { "Guid": "581583F7-17AD-27BD-E609-9753D3E64E30", "Value": "緩起訴", "Binding": [] }, { "Guid": "1EDEB8A4-4AC4-07E2-FC23-90DB590EE420", "Value": "入勒戒所觀察勒戒或戒治", "Binding": [] }, { "Guid": "D626E927-5C0C-D295-0213-3AA3AE667B32", "Value": "定罪判刑(緩刑、易科罰金或入監服刑)", "Binding": [] }, { "Guid": "1B267039-40BB-8166-59FE-51B81160DFE6", "Value": "以上皆無", "Binding": [] } ], "Required": true, "Answer": [ "1EDEB8A4-4AC4-07E2-FC23-90DB590EE420", "581583F7-17AD-27BD-E609-9753D3E64E30" ] }, { "Guid": "398CD996-2C84-333E-3D27-201D7EBD6D97", "Title": "請問您是否想要針對自己在使用成癮物質這件事上做出改變?我們可以與你共同完成,協助你設定出一個目標,並朝著目標方向努力。", "Type": "radio", "Options": [ { "Guid": "DD781673-AC6F-4013-E51C-607DBCAE175D", "Value": "是,請聯絡我(請於其他的空格處留下你的聯絡方式,如:手機號碼、line id 或電子信箱...等)", "Binding": [ "BC1905E1-6E68-7B57-5467-6A14A1892F71" ] }, { "Guid": "D602AA57-183D-9E47-0BD5-A774E2260665", "Value": "是,之前已經留下聯絡方式", "Binding": [] }, { "Guid": "82BE3D0C-F498-5D78-1034-A2F781892BAA", "Value": "否,我沒有使用成癮物質", "Binding": [] }, { "Guid": "3730E5E3-EA95-88D7-2060-C3C2A2B548AE", "Value": "否,目前不想做出改變", "Binding": [] } ], "Required": true, "Answer": [ "DD781673-AC6F-4013-E51C-607DBCAE175D" ] }, { "Guid": "BC1905E1-6E68-7B57-5467-6A14A1892F71", "Title": "其他(請註明你的聯絡方式,如:手機號碼、line id 或電子信箱)", "Type": "literal", "Options": [], "Required": true, "Answer": [ "TestTestTestTestTest" ] } ] } ``` ### 較複雜的題型結構參考 格式化結構:http://jsoneditoronline.org/?id=aa4071c9976a48ed92051e9c863c8175 ```JSON { "Guid": "C89E1619-FB84-C4DD-6AAD-B5C1A03D0AC5", "Title": "06. PrEP使用", "Description": "暴露前預防性投藥PrEP是一種降低感染人類免疫不全病毒(HIV)的預防方式。尚未感染HIV的對象可以每天口服一顆來預防感染HIV,就像是每天服用避孕藥來預防懷孕。iPrEx研究結果發現,只要受試者每天服用藥物,對於HIV的保護力就高於90%。", "Questions": [ { "Guid": "179A1EFE-FB3D-949A-D788-2D07A110C208", "Title": "請問你是否有朋友在使用PrEP?", "Type": "radio", "Options": [ { "Guid": "7B060C83-9552-464A-3E9D-7AFA2E5611E8", "Value": "是,請在其他輸入你們的關係", "Binding": [ "055C8C91-B6E5-B469-CCC9-FB02A2A2AE29" ] }, { "Guid": "9759B4C6-F22D-2CF6-4BE5-453E9242452A", "Value": "否", "Binding": [] }, { "Guid": "B77F2502-3855-4818-E546-A094D0A6485B", "Value": "不清楚", "Binding": [] } ], "Required": true, "Answer": [] }, { "Guid": "055C8C91-B6E5-B469-CCC9-FB02A2A2AE29", "Title": "其他,請輸入你們的關係", "Type": "literal", "Options": [], "Required": true, "Answer": [] }, { "Guid": "7C50FCC1-B0F3-E115-0C74-9753940463B0", "Title": "請問你之前有沒有使用過PrEP?", "Type": "radio", "Options": [ { "Guid": "74CB11D6-1D65-DB7F-6E99-5DFEFC5E345A", "Value": "曾經有/目前有", "Binding": [ "587E6C33-7CD5-366E-CF39-1D9372CBB514", "2226C197-F1AF-D59C-CBC0-87E04EE848D4", "F174C670-D72F-CCBC-F750-B779CA288EC7", "89C263FC-193E-C0E0-E100-749C90973F7D" ] }, { "Guid": "645B9615-ABE7-DF7E-0D00-B45B072CBD68", "Value": "從來沒有", "Binding": [ "65A34FC7-AC74-F797-F147-0F97A667265D", "47602FAA-BD74-D2AB-F4C2-50DE87456DFD" ] } ], "Required": true, "Answer": [] }, { "Guid": "587E6C33-7CD5-366E-CF39-1D9372CBB514", "Title": "請問你什麼時候開始使用PrEP?", "Type": "date", "Options": [], "Required": true, "Answer": [] }, { "Guid": "2226C197-F1AF-D59C-CBC0-87E04EE848D4", "Title": "請問你使用PrEP的藥廠品牌?", "Type": "radio", "Options": [ { "Guid": "4AA3B5A5-5D21-7EFC-D564-40CB4FCC5618", "Value": "Truvada (美國原廠)", "Binding": [] }, { "Guid": "8BC2F4AC-D75C-EAD7-6274-2CF32452995E", "Value": "Teno-Em (泰國藥廠)", "Binding": [] }, { "Guid": "AED58246-FC1F-CD04-83AE-F992732C94EE", "Value": "Ricovir-Em (印度藥廠)", "Binding": [] } ], "Required": true, "Answer": [] }, { "Guid": "F174C670-D72F-CCBC-F750-B779CA288EC7", "Title": "請問您怎麼負擔PrEP的費用?(複選)", "Type": "checkbox", "Options": [ { "Guid": "8EF5AD3D-E1CA-613C-0AE0-30FDAAE9D3CD", "Value": "政府補助", "Binding": [] }, { "Guid": "BA51E739-7B8B-2636-3A8C-9CA4EE472C86", "Value": "我自己自費", "Binding": [] }, { "Guid": "B4A28198-AD71-B1EF-1C8C-963441034EE1", "Value": "家人", "Binding": [] }, { "Guid": "95760EC6-3F4E-2D58-467A-F809D7768E54", "Value": "男友/女友/伴侶", "Binding": [] }, { "Guid": "90F2298E-D3BA-0622-180F-077702D2C7EA", "Value": "其他(請註明)", "Binding": [ "9DC62742-EEE0-E776-563E-9DD7B6962D4C" ] } ], "Required": true, "Answer": [] }, { "Guid": "9DC62742-EEE0-E776-563E-9DD7B6962D4C", "Title": "其他(請註明)", "Type": "literal", "Options": [], "Required": true, "Answer": [] }, { "Guid": "89C263FC-193E-C0E0-E100-749C90973F7D", "Title": "請問你過去一個月還有繼續使用PrEP嗎?", "Type": "radio", "Options": [ { "Guid": "2446E2D3-81ED-23C9-DADB-356264581D37", "Value": "有", "Binding": [ "04F0A716-67DB-AB03-A61D-293540FA1CC1", "4625A2B2-8AB9-12CF-7DC8-07F446C79FF6", "4FFAFF49-553B-1FB5-12F6-61B42CA7A5D9", "AFD96A35-9148-5983-6314-D67384D37BE4", "AF8F4D69-FD6F-2921-FE16-C6E9E661BDE3", "6DD3ADC5-C71A-29BC-553A-B5978B763AA1", "4710C298-DAF0-AF92-DECC-69E46AA23D53", "B80700E9-CED7-8EFF-97C8-7554633577BE", "457D9C56-2FEE-8AB5-B02C-6788A7187E54" ] }, { "Guid": "FA3082E0-44DD-173C-079B-4AEF74FAA6D7", "Value": "沒有", "Binding": [ "45B2372E-2AB5-5526-EABD-83D4431804E3" ] } ], "Required": true, "Answer": [] }, { "Guid": "04F0A716-67DB-AB03-A61D-293540FA1CC1", "Title": "請問你過去一個月怎麼使用PrEP?", "Type": "radio", "Options": [ { "Guid": "C37A20D4-BD75-24A3-9BD7-8539CBACE2B8", "Value": "每天吃", "Binding": [] }, { "Guid": "CE95DB2A-E2A5-4967-9CEA-DC153A1BD0B3", "Value": "依需求使用 (on-demand)", "Binding": [] }, { "Guid": "428FB7F6-4D2B-BE8A-A159-6BFFF57F646E", "Value": "每天吃、依需求使用 (on-demand)都有", "Binding": [] } ], "Required": true, "Answer": [] }, { "Guid": "4625A2B2-8AB9-12CF-7DC8-07F446C79FF6", "Title": "請問你過去一個月以四周28天計算,服用了幾顆PrEP?", "Type": "number", "Options": [], "Required": true, "Answer": [] }, { "Guid": "4FFAFF49-553B-1FB5-12F6-61B42CA7A5D9", "Title": "請你回想這週以前的最後一次性行為吃藥的數量 (我們只是想知道你選擇怎麼吃藥,請依據你的真實狀況填寫,如果沒有吃,請填0)性行為前兩天吃幾顆?", "Type": "number", "Options": [], "Required": true, "Answer": [] }, { "Guid": "AFD96A35-9148-5983-6314-D67384D37BE4", "Title": "性行為前一天吃幾顆?", "Type": "number", "Options": [], "Required": true, "Answer": [] }, { "Guid": "AF8F4D69-FD6F-2921-FE16-C6E9E661BDE3", "Title": "性行為當天吃幾顆?", "Type": "number", "Options": [], "Required": true, "Answer": [] }, { "Guid": "6DD3ADC5-C71A-29BC-553A-B5978B763AA1", "Title": "性行為隔一天吃幾顆?", "Type": "number", "Options": [], "Required": true, "Answer": [] }, { "Guid": "4710C298-DAF0-AF92-DECC-69E46AA23D53", "Title": "性行為後的第二天吃幾顆?", "Type": "number", "Options": [], "Required": true, "Answer": [] }, { "Guid": "B80700E9-CED7-8EFF-97C8-7554633577BE", "Title": "請問你過去一個月服用PrEP有任何下列的狀況嗎?(可複選)", "Type": "checkbox", "Options": [ { "Guid": "6A64AC2D-CE12-DF6D-C17A-89DAF5A94AEE", "Value": "頭痛", "Binding": [] }, { "Guid": "7BC350B7-9FCC-9C26-F765-9F69FE9E489A", "Value": "噁心", "Binding": [] }, { "Guid": "5EFAFD1C-55A3-9546-24CB-D092368FD77E", "Value": "腹瀉", "Binding": [] }, { "Guid": "E575122B-2E77-389D-C2C7-6237DD354033", "Value": "全身無力", "Binding": [] }, { "Guid": "FA9C1F80-C68F-0EEE-4FBA-EC0550F78C23", "Value": "腎功能損害", "Binding": [] }, { "Guid": "805C6674-D343-80E3-F68B-3BA47207165F", "Value": "乳酸代謝性中毒", "Binding": [] }, { "Guid": "4111816F-9A61-2DB4-9061-623CC7E03FAB", "Value": "皮膚色素沉澱", "Binding": [] }, { "Guid": "2CD48C11-B3F5-7ABF-8A75-2D3FBC8F6AFF", "Value": "無", "Binding": [] }, { "Guid": "2C492CFC-D0F8-69EE-BA01-A47035303404", "Value": "其他(請註明)", "Binding": [ "2E5B261B-79D2-FC82-F43F-C8F134CEAF6E" ] } ], "Required": true, "Answer": [] }, { "Guid": "2E5B261B-79D2-FC82-F43F-C8F134CEAF6E", "Title": "其他(請註明)", "Type": "literal", "Options": [], "Required": true, "Answer": [] }, { "Guid": "457D9C56-2FEE-8AB5-B02C-6788A7187E54", "Title": "請問你過去一個月有過無套肛交/陰道交卻沒有使用PrEP的情況嗎?", "Type": "radio", "Options": [ { "Guid": "AF2ECF54-55C1-0994-AAB4-572DF2999436", "Value": "有", "Binding": [ "54BE4E02-23E9-B511-6EC2-2B04778D9A39" ] }, { "Guid": "E4650AED-165E-748B-A17D-0BDF0F209586", "Value": "沒有", "Binding": [] } ], "Required": true, "Answer": [] }, { "Guid": "54BE4E02-23E9-B511-6EC2-2B04778D9A39", "Title": "呈上題,請問你沒有使用PrEP的原因?(可複選)", "Type": "checkbox", "Options": [ { "Guid": "DBC72BBD-2979-0C4A-66A0-39235E3785AE", "Value": "手邊沒有藥", "Binding": [] }, { "Guid": "BC042FA3-D7D0-0834-D4FA-7E95AEBD1F77", "Value": "忘記服藥", "Binding": [] }, { "Guid": "E0591B74-409D-EE3F-303E-9631A377BED9", "Value": "無法自費負擔那麼多天藥物,選擇性服用", "Binding": [] }, { "Guid": "73980726-2D1D-D7ED-1DD6-4FF077D7A4F6", "Value": "無法忍受藥物副作用", "Binding": [] }, { "Guid": "2DF1C385-AE83-89CC-85A6-E419B44373B0", "Value": "藥剛好沒有了", "Binding": [] }, { "Guid": "FA98F72D-844D-678A-1D70-3E37777F2772", "Value": "服藥方式太複雜/我不懂服藥方式", "Binding": [] }, { "Guid": "1D9DCDE6-FA49-A0B6-EE27-08A2224C2F80", "Value": "擔心使用PrEP會對健康造成影響", "Binding": [] }, { "Guid": "E9A82B43-C1F7-02DC-2A4B-436F3AD70110", "Value": "擔心別人看到我在吃PrEP,會以為我感染HIV", "Binding": [] }, { "Guid": "9FCE7A82-80F9-8C6C-341C-E23989308A63", "Value": "擔心別人看到我在吃PrEP會好奇或質疑我為什麼要吃PrEP", "Binding": [] }, { "Guid": "5E4E4137-EA4A-B499-80D2-8AFF2FB994F7", "Value": "對方有使用PrEP", "Binding": [] }, { "Guid": "ECCDD496-9601-1C58-ADBD-1E381E824BD8", "Value": "我跟對方是單一性伴侶關係", "Binding": [] }, { "Guid": "28244830-756F-AB01-E1DE-4D5060921617", "Value": "對方是病毒量偵測不到的HIV感染者", "Binding": [] }, { "Guid": "C1116420-E767-8D5D-1BC7-BE90B30E3450", "Value": "偏好使用其他預防措施,請於「其他」說明", "Binding": [ "3DD8B841-06FA-6FDD-1E39-36B6F9A09156" ] }, { "Guid": "6EF7E678-54A7-6A99-FDC3-F174E4F06575", "Value": "認為自己沒有感染HIV的風險", "Binding": [] } ], "Required": true, "Answer": [] }, { "Guid": "3DD8B841-06FA-6FDD-1E39-36B6F9A09156", "Title": "其他(請註明)", "Type": "literal", "Options": [], "Required": true, "Answer": [] }, { "Guid": "45B2372E-2AB5-5526-EABD-83D4431804E3", "Title": "請問你過去一個月沒有繼續使用PrEP的原因?(可複選)", "Type": "checkbox", "Options": [ { "Guid": "C150E92F-D58B-1377-CD2B-15E30A563854", "Value": "過去一個月沒有性行為", "Binding": [] }, { "Guid": "60C724F3-27FE-FFA6-314E-EC38592317D0", "Value": "手邊沒有藥", "Binding": [] }, { "Guid": "8F6954B0-EEB0-077B-9904-D3D07D08B805", "Value": "忘記服藥", "Binding": [] }, { "Guid": "DBC36E1A-7C44-D51A-F410-A78844CDC987", "Value": "無法自費負擔那麼多天藥物,選擇性服用", "Binding": [] }, { "Guid": "FEF5408B-FFEF-FBA9-0521-A217FDFB0A96", "Value": "藥剛好沒有了", "Binding": [] }, { "Guid": "27B0DF9F-5699-74FC-4696-247CEA1908DD", "Value": "無法忍受藥物副作用", "Binding": [] }, { "Guid": "A3AF485D-2FB4-644C-055A-A24495C7C30D", "Value": "服藥方式太複雜/我不懂服藥方式", "Binding": [] }, { "Guid": "D69A41DF-5206-1924-405E-6F9C1900E63E", "Value": "擔心使用PrEP會對健康造成影響", "Binding": [] }, { "Guid": "FAC53D66-4B0E-52AC-83AF-33C24F213661", "Value": "擔心別人看到我在吃PrEP,會以為我感染HIV", "Binding": [] }, { "Guid": "47FAF9C3-8723-896E-96F7-63274CC6F4A2", "Value": "擔心別人看到我在吃PrEP會好奇或質疑我為什麼要吃PrEP", "Binding": [] }, { "Guid": "D983531E-985A-C402-0925-E3E91B7AFDAC", "Value": "對方有使用PrEP", "Binding": [] }, { "Guid": "E5ABCFEF-22DA-F427-BCED-2824D98908A1", "Value": "我跟對方是單一性伴侶關係", "Binding": [] }, { "Guid": "9D18D931-D59F-39AC-833B-2CC8E21F44A5", "Value": "對方是病毒量偵測不到的HIV感染者", "Binding": [] }, { "Guid": "C5CEEF17-C86E-534D-9134-2752212B0825", "Value": "偏好使用其他預防措施,請於其他說明", "Binding": [ "8CF6E919-FF8E-E7D9-DD05-E702AF905E25" ] }, { "Guid": "57650DA6-A74F-5F3F-AF97-022ECE2B4982", "Value": "認為自己沒有感染HIV的風險", "Binding": [] } ], "Required": true, "Answer": [] }, { "Guid": "8CF6E919-FF8E-E7D9-DD05-E702AF905E25", "Title": "其他(請註明)", "Type": "literal", "Options": [], "Required": true, "Answer": [] }, { "Guid": "65A34FC7-AC74-F797-F147-0F97A667265D", "Title": "請問你是否有興趣進一步了解PrEP?", "Type": "radio", "Options": [ { "Guid": "40CCD9AB-794A-EE5F-51EA-D019BD05E969", "Value": "是", "Binding": [] }, { "Guid": "497568A8-D580-F677-A385-01CAC22E68F2", "Value": "否", "Binding": [] } ], "Required": true, "Answer": [] }, { "Guid": "47602FAA-BD74-D2AB-F4C2-50DE87456DFD", "Title": "問您願意進一步做PrEP使用前適用性評估與諮商嗎?", "Type": "radio", "Options": [ { "Guid": "7C8F5ED4-1718-21A6-5385-F17AE72CAACE", "Value": "是", "Binding": [] }, { "Guid": "3025F39B-4BD6-24DC-51B4-A0F8E292B19E", "Value": "否", "Binding": [] } ], "Required": true, "Answer": [] } ] } ``` ## 資料庫Schema ```SQL CREATE TABLE [dbo].[Forms]( [Guid] [uniqueidentifier] NOT NULL, [Title] [nvarchar](128) NULL, [Description] [nvarchar](max) NULL, [CreatedAt] [datetime2](7) NOT NULL, [UpdatedAt] [datetime2](7) NOT NULL, [Enable] [bit] NULL, CONSTRAINT [PK_Forms] PRIMARY KEY CLUSTERED ( [Guid] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO ``` ```SQL CREATE TABLE [dbo].[FormQuestion]( [Guid] [uniqueidentifier] NOT NULL, [FormGuid] [uniqueidentifier] NOT NULL, [Title] [nvarchar](128) NULL, [Type] [int] NOT NULL, [Required] [bit] NOT NULL, [Sort] [int] NOT NULL, [CreatedAt] [datetime2](7) NOT NULL, [UpdatedAt] [datetime2](7) NOT NULL, CONSTRAINT [PK_FormQuestion] PRIMARY KEY CLUSTERED ( [Guid] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO ALTER TABLE [dbo].[FormQuestion] WITH CHECK ADD CONSTRAINT [FK_FormQuestion_Forms_FormGuid] FOREIGN KEY([FormGuid]) REFERENCES [dbo].[Forms] ([Guid]) ON DELETE CASCADE GO ALTER TABLE [dbo].[FormQuestion] CHECK CONSTRAINT [FK_FormQuestion_Forms_FormGuid] GO ``` ```SQL CREATE TABLE [dbo].[FormOption]( [Guid] [uniqueidentifier] NOT NULL, [FormGuid] [uniqueidentifier] NOT NULL, [FormQuestionGuid] [uniqueidentifier] NOT NULL, [Value] [nvarchar](max) NULL, [Binding] [nvarchar](max) NULL, [Sort] [int] NOT NULL, [CreatedAt] [datetime2](7) NOT NULL, [UpdatedAt] [datetime2](7) NOT NULL, [Score] [int] NULL, CONSTRAINT [PK_FormOption] PRIMARY KEY CLUSTERED ( [Guid] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO ALTER TABLE [dbo].[FormOption] WITH CHECK ADD CONSTRAINT [FK_FormOption_FormQuestion_FormQuestionGuid] FOREIGN KEY([FormQuestionGuid]) REFERENCES [dbo].[FormQuestion] ([Guid]) ON DELETE CASCADE GO ALTER TABLE [dbo].[FormOption] CHECK CONSTRAINT [FK_FormOption_FormQuestion_FormQuestionGuid] GO ``` ```SQL CREATE TABLE [dbo].[FormMemberAnswer]( [Guid] [uniqueidentifier] NOT NULL, [FormGuid] [uniqueidentifier] NOT NULL, [FormQuestionGuid] [uniqueidentifier] NOT NULL, [FormOptionGuid] [uniqueidentifier] NULL, [Value] [nvarchar](max) NULL, [CreatedAt] [datetime2](7) NOT NULL, [UpdatedAt] [datetime2](7) NOT NULL, [UserGuid] [uniqueidentifier] NOT NULL, CONSTRAINT [PK_FormMemberAnswer] PRIMARY KEY CLUSTERED ( [Guid] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO ALTER TABLE [dbo].[FormMemberAnswer] WITH CHECK ADD CONSTRAINT [FK_FormMemberAnswer_FormQuestion_FormQuestionGuid] FOREIGN KEY([FormQuestionGuid]) REFERENCES [dbo].[FormQuestion] ([Guid]) ON DELETE CASCADE GO ALTER TABLE [dbo].[FormMemberAnswer] CHECK CONSTRAINT [FK_FormMemberAnswer_FormQuestion_FormQuestionGuid] GO ```