CommonData.h 72 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050
  1. //---------------------------------------------------------------------------------------
  2. //
  3. // Copyright (c) 2005,珠海友通科技有限公司——通用型DROC
  4. // All rights reserved.
  5. //
  6. // 文件名称:CommonData.h
  7. // 文件标识:见配置管理计划书
  8. // 摘 要:系统之间需要传递的数据主要有病人信息、访问信息、检查信息、图像信息、
  9. // 图像数据、硬件数据、站点数据,这里对这些数据结构进行一一定义。同时还有公
  10. // 共的消息定义,以方便模块之间传递消息
  11. //
  12. // 当前版本:0.1
  13. // 作 者:吕国政
  14. // 完成日期:2005年1月10日
  15. //
  16. // 取代版本:
  17. // 原 作 者:
  18. // 完成日期:
  19. //
  20. //---------------------------------------------------------------------------------------
  21. #pragma once
  22. //---------------------------------------------------------------------------------------
  23. //
  24. // 结构名称:ECOM_PATIENT
  25. // 结构说明:用于保存病人信息,病人信息来源于worklist或者技师手工输入。
  26. //
  27. //---------------------------------------------------------------------------------------
  28. typedef struct tagPatientInfo
  29. {
  30. CString strPatientID; // 病人标示码
  31. CString strPatientName; // 病人姓名
  32. CString strOtherPatientID; // 病人其他标示码
  33. CString strOtherPatientName; // 病人其他姓名
  34. CString strAge; // 年龄
  35. CString strOccupation; // 职业
  36. CString strSex; // 性别
  37. CString strMedicalAlert; // 药物警告
  38. CString strContrastAllergies; // 造影剂过敏
  39. CString strSmokingStatus; // 吸烟状态
  40. CString strPatientComments; // 评论
  41. CString strPatientHistory; // 病史
  42. CString strPregnancyStatus; // 怀孕状态
  43. CString strSpecialNeeds; // 特殊需要
  44. CString strPatientState; // 病人状态
  45. CString strPatientStatus; // 如果病人有任意一个未完成的检查,则病人的状态为:未完成。
  46. CString strDob; // 生日 YYYYMMDD
  47. COleDateTime dtDob; // 生日 YYYYMMDD
  48. COleDateTime dtLastMenstrualDate; // 最近一次月经时间
  49. //code begin 20150611 for IMIX
  50. CString strPatientSize; //病人体型
  51. CString strAccessionNumber; //
  52. CString strStudyID; //StudyID
  53. //code end 20150611 for IMIX
  54. CString strReserve1;
  55. CString strReserve2;
  56. CString strReserve3;
  57. CString strStudyDescription; // study 描述 20150724
  58. tagPatientInfo& operator =(const tagPatientInfo &patient)
  59. {
  60. //CString::CopyChars(strPatientID, patient.strPatientID, patient.strPatientID.GetLength());
  61. strPatientID.Format("%s", patient.strPatientID);
  62. strPatientName.Format("%s", patient.strPatientName);
  63. strOtherPatientID.Format("%s", patient.strOtherPatientID);
  64. strOtherPatientName.Format("%s", patient.strOtherPatientName);
  65. strAge.Format("%s", patient.strAge);
  66. strSex.Format("%s", patient.strSex);
  67. strOccupation.Format("%s", patient.strOccupation);
  68. strMedicalAlert.Format("%s", patient.strMedicalAlert);
  69. strContrastAllergies.Format("%s", patient.strContrastAllergies);
  70. strSmokingStatus.Format("%s", patient.strSmokingStatus);
  71. strPatientComments.Format("%s", patient.strPatientComments);
  72. strPatientHistory.Format("%s", patient.strPatientHistory);
  73. strPregnancyStatus.Format("%s", patient.strPregnancyStatus);
  74. strSpecialNeeds.Format("%s", patient.strSpecialNeeds);
  75. strPatientState.Format("%s", patient.strPatientState);
  76. strPatientStatus.Format("%s", patient.strPatientStatus);
  77. strReserve1.Format("%s", patient.strReserve1);
  78. strReserve2.Format("%s", patient.strReserve2);
  79. strReserve3.Format("%s", patient.strReserve3);
  80. strDob.Format("%s", patient.strDob);
  81. dtDob = patient.dtDob;
  82. dtLastMenstrualDate = patient.dtLastMenstrualDate;
  83. strStudyDescription.Format("%s",patient.strStudyDescription); //code 20150724
  84. //code begin 20150611 for IMIX
  85. strPatientSize.Format("%s", patient.strPatientSize);
  86. strAccessionNumber.Format("%s", patient.strAccessionNumber);
  87. strStudyID.Format("%s", patient.strStudyID);
  88. //code end 20150611 for IMIX
  89. return *this;
  90. }
  91. }ECOM_PATIENT;
  92. typedef struct tagPatientInfoEx
  93. {
  94. int nPatientIDProperty; // 病人标示码属性 0:可不添, 1:必填, -1:内容不正确
  95. int nPatientNameProperty; // 病人姓名属性 0:可不添, 1:必填
  96. int nOtherPatientIDProperty; // 病人其他标示码属性 0:可不添, 1:必填
  97. int nOtherPatientNameProperty; // 病人其他姓名属性 0:可不添, 1:必填
  98. int nAgeProperty; // 年龄属性 0:可不添, 1:必填
  99. int nOccupationProperty; // 职业属性 0:可不添, 1:必填
  100. int nSexProperty; // 性别属性 0:可不添, 1:必填
  101. int nMedicalAlertProperty; // 药物警告属性 0:可不添, 1:必填
  102. int nContrastAllergiesProperty; // 造影剂过敏属性 0:可不添, 1:必填
  103. int nSmokingStatusProperty; // 吸烟状态属性 0:可不添, 1:必填
  104. int nPatientCommentsProperty; // 评论属性 0:可不添, 1:必填
  105. int nPatientHistoryProperty; // 病史属性 0:可不添, 1:必填
  106. int nPregnancyStatusProperty; // 怀孕状态属性 0:可不添, 1:必填
  107. int nSpecialNeedsProperty; // 特殊需要属性 0:可不添, 1:必填
  108. int nPatientStateProperty; // 病人状态属性 0:可不添, 1:必填
  109. int nPatientStatusProperty; // 如果病人有任意一个未完成的检查,则病人的状态为:未完成。属性 0:可不添, 1:必填
  110. int dtDobProperty; // 生日属性 0:可不添, 1:必填
  111. int dtLastMenstrualDateProperty; // 最近一次月经时间属性 0:可不添, 1:必填
  112. ECOM_PATIENT Patient;
  113. }ECOM_PATIENTEX;
  114. //---------------------------------------------------------------------------------------
  115. //
  116. // 结构名称:ECOM_VISIT
  117. // 结构说明:用于保存访问信息,访问信息来源于worklist或者技师手工输入。
  118. //
  119. //---------------------------------------------------------------------------------------
  120. typedef struct tagVisitInfo
  121. {
  122. CString strAdmissionID; // 分配ID
  123. CString strVisitStatus; //
  124. CString strVisitComments; //
  125. CString strRefPhysician; // 下医嘱医师
  126. COleDateTime dtAdmittingTime; // 注册时间
  127. COleDateTime dtVisitDate; // 检查任务到modality的时间
  128. CString strReserve1;
  129. CString strReserve2;
  130. CString strReserve3;
  131. tagVisitInfo& operator =(const tagVisitInfo &visit)
  132. {
  133. //CString::CopyChars(strPatientID, patient.strPatientID, patient.strPatientID.GetLength());
  134. strAdmissionID.Format("%s", visit.strAdmissionID);
  135. strVisitStatus.Format("%s", visit.strVisitStatus);
  136. strVisitComments.Format("%s", visit.strVisitComments);
  137. strRefPhysician.Format("%s", visit.strRefPhysician);
  138. dtAdmittingTime = visit.dtAdmittingTime;
  139. dtVisitDate = visit.dtVisitDate;
  140. strReserve1.Format("%s", visit.strReserve1);
  141. strReserve2.Format("%s", visit.strReserve2);
  142. strReserve3.Format("%s", visit.strReserve3);
  143. return *this;
  144. }
  145. }ECOM_VISIT;
  146. typedef struct tagVisitInfoEx
  147. {
  148. int nAdmissionIDProperty; // 分配ID属性 0:可不添, 1:必填, -1:内容不正确
  149. int nVisitStatusProperty; // 属性 0:可不添, 1:必填
  150. int nVisitCommentsProperty; // 属性 0:可不添, 1:必填
  151. int nRefPhysicianProperty; // 下医嘱医师属性 0:可不添, 1:必填
  152. int nAdmittingTimeProperty; // 注册时间属性 0:可不添, 1:必填
  153. int nVisitDateProperty; // 检查任务到modality的时间属性 0:可不添, 1:必填
  154. ECOM_VISIT Visit;
  155. }ECOM_VISITEX;
  156. //---------------------------------------------------------------------------------------
  157. //
  158. // 结构名称:ECOM_STUDY
  159. // 结构说明:用于保存检查信息,检查信息来源于worklist或者技师手工输入。
  160. //
  161. //---------------------------------------------------------------------------------------
  162. typedef struct tagStudyInfo
  163. {
  164. CString strStudyID; // Study内部标示
  165. CString strPatientID; // 病人标示码
  166. CString strAdmissionID; // 分配ID
  167. CString strAccessionNum; // 访问标示码
  168. CString strStudyInstanceUID; //
  169. CString strScheduledAETitle; //
  170. CString strRegSource; //
  171. CString strStudyStatus; //
  172. CString strStudyPriority; //
  173. CString strStudyComments; //
  174. CString strRequestingPhysician; //
  175. CString strRequestedProcedureDescription; //
  176. CString strRequestedContrasAgent; //
  177. CString strScheduledProcedureStepID; //
  178. CString strScheduledProcedureStepDescription; //
  179. CString strRequestedProcedureID; //
  180. CString strPreMedication; //
  181. CString strProcedureCode; //
  182. CString strProcedureCodeValue; //
  183. CString strProcedureCodeMeaning; //
  184. CString strMPPSInstanceUID; //
  185. CString strMPPSStatus;
  186. CString strModality;
  187. CString strOperatorName; // 技师名字
  188. COleDateTime dtScheduledStartDateTime; //
  189. COleDateTime dtStudyStartDateTime; //
  190. COleDateTime dtStudyCompletionDateTime; //
  191. CString strReserve1;
  192. CString strReserve2;
  193. CString strReserve3;
  194. tagStudyInfo& operator =(const tagStudyInfo &study)
  195. {
  196. strStudyID.Format("%s", study.strStudyID);
  197. strPatientID.Format("%s", study.strPatientID);
  198. strAdmissionID.Format("%s", study.strAdmissionID);
  199. strAccessionNum.Format("%s", study.strAccessionNum);
  200. strStudyInstanceUID.Format("%s", study.strStudyInstanceUID);
  201. strScheduledAETitle.Format("%s", study.strScheduledAETitle);
  202. strRegSource.Format("%s", study.strRegSource);
  203. strStudyStatus.Format("%s", study.strStudyStatus);
  204. strStudyPriority.Format("%s", study.strStudyPriority);
  205. strStudyComments.Format("%s", study.strStudyComments);
  206. strRequestingPhysician.Format("%s", study.strRequestingPhysician);
  207. strRequestedProcedureDescription.Format("%s", study.strRequestedProcedureDescription);
  208. strRequestedContrasAgent.Format("%s", study.strRequestedContrasAgent);
  209. strScheduledProcedureStepID.Format("%s", study.strScheduledProcedureStepID);
  210. strScheduledProcedureStepDescription.Format("%s", study.strScheduledProcedureStepDescription);
  211. strRequestedProcedureID.Format("%s", study.strRequestedProcedureID);
  212. strPreMedication.Format("%s", study.strPreMedication);
  213. strProcedureCode.Format("%s", study.strProcedureCode);
  214. strProcedureCodeValue.Format("%s", study.strProcedureCodeValue);
  215. strProcedureCodeMeaning.Format("%s", study.strProcedureCodeMeaning);
  216. strMPPSInstanceUID.Format("%s", study.strMPPSInstanceUID);
  217. strMPPSStatus.Format("%s", study.strMPPSStatus);
  218. strModality.Format("%s", study.strModality);
  219. strOperatorName.Format("%s", study.strOperatorName);
  220. dtScheduledStartDateTime = study.dtScheduledStartDateTime;
  221. dtStudyStartDateTime = study.dtStudyStartDateTime;
  222. dtStudyCompletionDateTime = study.dtStudyCompletionDateTime;
  223. strReserve1.Format("%s", study.strReserve1);
  224. strReserve2.Format("%s", study.strReserve2);
  225. strReserve3.Format("%s", study.strReserve3);
  226. return *this;
  227. }
  228. }ECOM_STUDY;
  229. typedef struct tagStudyInfoEx
  230. {
  231. int nStudyIDProperty; // Study内部标示属性 0:可不添, 1:必填, -1:内容不正确
  232. int nPatientIDProperty; // 病人标示码属性 0:可不添, 1:必填, -1:内容不正确
  233. int nAdmissionIDProperty; // 分配ID属性 0:可不添, 1:必填, -1:内容不正确
  234. int nAccessionNumProperty; // 访问标示码属性 0:可不添, 1:必填, -1:内容不正确
  235. int nStudyInstanceUIDProperty; // 属性 0:可不添, 1:必填, -1:内容不正确
  236. int nScheduledAETitleProperty; // 属性 0:可不添, 1:必填, -1:内容不正确
  237. int nRegSourceProperty; // 属性 0:可不添, 1:必填, -1:内容不正确
  238. int nStudyStatusProperty; // 属性 0:可不添, 1:必填, -1:内容不正确
  239. int nStudyPriorityProperty; // 属性 0:可不添, 1:必填, -1:内容不正确
  240. int nStudyCommentsProperty; // 属性 0:可不添, 1:必填, -1:内容不正确
  241. int nRequestingPhysicianProperty; // 属性 0:可不添, 1:必填, -1:内容不正确
  242. int nRequestedProcedureDescriptionProperty; // 属性 0:可不添, 1:必填, -1:内容不正确
  243. int nRequestedContrasAgentProperty; // 属性 0:可不添, 1:必填, -1:内容不正确
  244. int nScheduledProcedureStepIDProperty; // 属性 0:可不添, 1:必填, -1:内容不正确
  245. int nScheduledProcedureStepDescriptionProperty; // 属性 0:可不添, 1:必填, -1:内容不正确
  246. int nRequestedProcedureIDProperty; // 属性 0:可不添, 1:必填, -1:内容不正确
  247. int nPreMedicationProperty; //属性 0:可不添, 1:必填, -1:内容不正确
  248. int nProcedureCodeProperty; // 属性 0:可不添, 1:必填, -1:内容不正确
  249. int nProcedureCodeValueProperty; // 属性 0:可不添, 1:必填, -1:内容不正确
  250. int nProcedureCodeMeaningProperty; // 属性 0:可不添, 1:必填, -1:内容不正确
  251. int nMPPSInstanceUIDProperty; // 属性 0:可不添, 1:必填, -1:内容不正确
  252. int nMPPSStatusProperty; // 属性 0:可不添, 1:必填, -1:内容不正确
  253. int nModalityProperty; // 属性 0:可不添, 1:必填, -1:内容不正确
  254. int nOperatorNameProperty; // 属性 0:可不添, 1:必填, -1:内容不正确 // 技师名字
  255. int nScheduledStartDateTimeProperty; // 属性 0:可不添, 1:必填, -1:内容不正确
  256. int nStudyStartDateTimeProperty; // 属性 0:可不添, 1:必填, -1:内容不正确
  257. int nStudyCompletionDateTimeProperty; //属性 0:可不添, 1:必填, -1:内容不正确
  258. ECOM_STUDY Study;
  259. }ECOM_STUDYEX;
  260. //---------------------------------------------------------------------------------------
  261. //
  262. // 结构名称:ECOM_WORK
  263. // 结构说明:用于一条检查相关的所有信息,包括病人信息,检查信息,(不包括 访问信息)
  264. // 这些信息来源于worklist或者技师手工输入。
  265. //
  266. //---------------------------------------------------------------------------------------
  267. typedef struct tagWorkInfo
  268. {
  269. CString strStudyID;
  270. CString strAccessionNum;
  271. CString strPatientID;
  272. CString strPatientName;
  273. CString strOtherPatientID;
  274. CString strOtherPatientName;
  275. CString strAge;
  276. CString strOccupation;
  277. CString strSex;
  278. CString strMedicalAlert;
  279. CString strContrastAllergies;
  280. CString strSmokingStatus;
  281. CString strPatientComments;
  282. CString strPatientHistory;
  283. CString strPregnancyStatus;
  284. CString strSpecialNeeds;
  285. CString strPatientState;
  286. CString strAdmissionID;
  287. CString strVisitStatus;
  288. CString strVisitComments;
  289. CString strRefPhysician;
  290. CString strStudyInstanceUID;
  291. CString strScheduledAETitle;
  292. CString strRegSource;
  293. CString strStudyStatus;
  294. CString strStudyPriority;
  295. CString strStudyComments;
  296. CString strRequestingPhysician;
  297. CString strRequestedProcedureDescription;
  298. CString strRequestedContrasAgent;
  299. CString strScheduledProcedureStepID;
  300. CString strScheduledProcedureStepDescription;
  301. CString strRequestedProcedureID;
  302. CString strPreMedication;
  303. CString strProcedureCode;
  304. CString strProcedureCodeValue;
  305. CString strProcedureCodeMeaning;
  306. CString strMPPSInstanceUID;
  307. CString strMPPSStatus;
  308. CString strModality;
  309. CString strOperatorName; // 技师名字
  310. COleDateTime dtDob;
  311. COleDateTime dtLastMenstrualDate;
  312. COleDateTime dtAdmittingTime;
  313. COleDateTime dtVisitDate;
  314. COleDateTime dtScheduledStartDateTime;
  315. COleDateTime dtStudyStartDateTime;
  316. COleDateTime dtStudyCompletionDateTime;
  317. CString strReserve1;
  318. CString strReserve2;
  319. CString strReserve3;
  320. tagWorkInfo& operator =(const tagWorkInfo &work)
  321. {
  322. strStudyID.Format("%s", work.strStudyID);
  323. strAccessionNum.Format("%s", work.strAccessionNum);
  324. strPatientID.Format("%s", work.strPatientID);
  325. strPatientName.Format("%s", work.strPatientName);
  326. strOtherPatientID.Format("%s", work.strOtherPatientID);
  327. strOtherPatientName.Format("%s", work.strOtherPatientName);
  328. strAge.Format("%s", work.strAge);
  329. strOccupation.Format("%s", work.strOccupation);
  330. strSex.Format("%s", work.strSex);
  331. strMedicalAlert.Format("%s", work.strMedicalAlert);
  332. strContrastAllergies.Format("%s", work.strContrastAllergies);
  333. strSmokingStatus.Format("%s", work.strSmokingStatus);
  334. strPatientComments.Format("%s", work.strPatientComments);
  335. strPatientHistory.Format("%s", work.strPatientHistory);
  336. strPregnancyStatus.Format("%s", work.strPregnancyStatus);
  337. strSpecialNeeds.Format("%s", work.strSpecialNeeds);
  338. strPatientState.Format("%s", work.strPatientState);
  339. strAdmissionID.Format("%s", work.strAdmissionID);
  340. strVisitStatus.Format("%s", work.strVisitStatus);
  341. strVisitComments.Format("%s", work.strVisitComments);
  342. strRefPhysician.Format("%s", work.strRefPhysician);
  343. strStudyInstanceUID.Format("%s", work.strStudyInstanceUID);
  344. strScheduledAETitle.Format("%s", work.strScheduledAETitle);
  345. strRegSource.Format("%s", work.strRegSource);
  346. strStudyStatus.Format("%s", work.strStudyStatus);
  347. strStudyPriority.Format("%s", work.strStudyPriority);
  348. strStudyComments.Format("%s", work.strStudyComments);
  349. strRequestingPhysician.Format("%s", work.strRequestingPhysician);
  350. strRequestedProcedureDescription.Format("%s", work.strRequestedProcedureDescription);
  351. strRequestedContrasAgent.Format("%s", work.strRequestedContrasAgent);
  352. strScheduledProcedureStepID.Format("%s", work.strScheduledProcedureStepID);
  353. strScheduledProcedureStepDescription.Format("%s", work.strScheduledProcedureStepDescription);
  354. strRequestedProcedureID.Format("%s", work.strRequestedProcedureID);
  355. strPreMedication.Format("%s", work.strPreMedication);
  356. strProcedureCode.Format("%s", work.strProcedureCode);
  357. strProcedureCodeValue.Format("%s", work.strProcedureCodeValue);
  358. strProcedureCodeMeaning.Format("%s", work.strProcedureCodeMeaning);
  359. strMPPSInstanceUID.Format("%s", work.strMPPSInstanceUID);
  360. strMPPSStatus.Format("%s", work.strMPPSStatus);
  361. strModality.Format("%s", work.strModality);
  362. strOperatorName.Format("%s", work.strOperatorName);
  363. dtDob = work.dtDob;
  364. dtLastMenstrualDate = work.dtLastMenstrualDate;
  365. dtAdmittingTime = work.dtAdmittingTime;
  366. dtVisitDate = work.dtVisitDate;
  367. dtScheduledStartDateTime = work.dtScheduledStartDateTime;
  368. dtStudyStartDateTime = work.dtStudyStartDateTime;
  369. dtStudyCompletionDateTime = work.dtStudyCompletionDateTime;
  370. strReserve1.Format("%s", work.strReserve1);
  371. strReserve2.Format("%s", work.strReserve2);
  372. strReserve3.Format("%s", work.strReserve3);
  373. return *this;
  374. }
  375. }ECOM_WORK;
  376. typedef struct tagWorkInfoEX
  377. {
  378. int nStudyIDProperty;//属性 0:可不添, 1:必填, -1:内容不正确
  379. int nAccessionNumProperty;//属性 0:可不添, 1:必填, -1:内容不正确
  380. int nPatientIDProperty;//属性 0:可不添, 1:必填, -1:内容不正确
  381. int nPatientNameProperty;//属性 0:可不添, 1:必填, -1:内容不正确
  382. int nOtherPatientIDProperty;//属性 0:可不添, 1:必填, -1:内容不正确
  383. int nOtherPatientNameProperty;//属性 0:可不添, 1:必填, -1:内容不正确
  384. int nAgeProperty;//属性 0:可不添, 1:必填, -1:内容不正确
  385. int nOccupationProperty;//属性 0:可不添, 1:必填, -1:内容不正确
  386. int nSexProperty;//属性 0:可不添, 1:必填, -1:内容不正确
  387. int nMedicalAlertProperty;//属性 0:可不添, 1:必填, -1:内容不正确
  388. int nContrastAllergiesProperty;//属性 0:可不添, 1:必填, -1:内容不正确
  389. int nSmokingStatusProperty;//属性 0:可不添, 1:必填, -1:内容不正确
  390. int nPatientCommentsProperty;//属性 0:可不添, 1:必填, -1:内容不正确
  391. int nPatientHistoryProperty;//属性 0:可不添, 1:必填, -1:内容不正确
  392. int nPregnancyStatusProperty;//属性 0:可不添, 1:必填, -1:内容不正确
  393. int nSpecialNeedsProperty;//属性 0:可不添, 1:必填, -1:内容不正确
  394. int nPatientStateProperty;//属性 0:可不添, 1:必填, -1:内容不正确
  395. int nAdmissionIDProperty;//属性 0:可不添, 1:必填, -1:内容不正确
  396. int nVisitStatusProperty;//属性 0:可不添, 1:必填, -1:内容不正确
  397. int nVisitCommentsProperty;//属性 0:可不添, 1:必填, -1:内容不正确
  398. int nRefPhysicianProperty;//属性 0:可不添, 1:必填, -1:内容不正确
  399. int nStudyInstanceUIDProperty;//属性 0:可不添, 1:必填, -1:内容不正确
  400. int nScheduledAETitleProperty;//属性 0:可不添, 1:必填, -1:内容不正确
  401. int nRegSourceProperty;//属性 0:可不添, 1:必填, -1:内容不正确
  402. int nStudyStatusProperty;//属性 0:可不添, 1:必填, -1:内容不正确
  403. int nStudyPriorityProperty;//属性 0:可不添, 1:必填, -1:内容不正确
  404. int nStudyCommentsProperty;//属性 0:可不添, 1:必填, -1:内容不正确
  405. int nRequestingPhysicianProperty;//属性 0:可不添, 1:必填, -1:内容不正确
  406. int nRequestedProcedureDescriptionProperty;//属性 0:可不添, 1:必填, -1:内容不正确
  407. int nRequestedContrasAgentProperty;//属性 0:可不添, 1:必填, -1:内容不正确
  408. int nScheduledProcedureStepIDProperty;//属性 0:可不添, 1:必填, -1:内容不正确
  409. int nScheduledProcedureStepDescriptionProperty;//属性 0:可不添, 1:必填, -1:内容不正确
  410. int nRequestedProcedureIDProperty;//属性 0:可不添, 1:必填, -1:内容不正确
  411. int nPreMedicationProperty;//属性 0:可不添, 1:必填, -1:内容不正确
  412. int nProcedureCodeProperty;//属性 0:可不添, 1:必填, -1:内容不正确
  413. int nProcedureCodeValueProperty;//属性 0:可不添, 1:必填, -1:内容不正确
  414. int nProcedureCodeMeaningProperty;//属性 0:可不添, 1:必填, -1:内容不正确
  415. int nMPPSInstanceUIDProperty; //属性 0:可不添, 1:必填, -1:内容不正确
  416. int nMPPSStatusProperty; // 属性 0:可不添, 1:必填, -1:内容不正确
  417. int nModalityProperty; // 属性 0:可不添, 1:必填, -1:内容不正确
  418. int nOperatorNameProperty; // 属性 0:可不添, 1:必填, -1:内容不正确
  419. int nDobProperty;//属性 0:可不添, 1:必填, -1:内容不正确
  420. int nLastMenstrualDateProperty;//属性 0:可不添, 1:必填, -1:内容不正确
  421. int nAdmittingTimeProperty;//属性 0:可不添, 1:必填, -1:内容不正确
  422. int nVisitDateProperty;//属性 0:可不添, 1:必填, -1:内容不正确
  423. int nScheduledStartDateTimeProperty;//属性 0:可不添, 1:必填, -1:内容不正确
  424. int nStudyStartDateTimeProperty;//属性 0:可不添, 1:必填, -1:内容不正确
  425. int nStudyCompletionDateTimeProperty;//属性 0:可不添, 1:必填, -1:内容不正确
  426. ECOM_WORK Work;
  427. }ECOM_WORKEX;
  428. //---------------------------------------------------------------------------------------
  429. //
  430. // 结构名称:ECOM_SERIESIMAGE
  431. // 结构说明:用于study对应的series和image信息,这些信息由程序根据检查生成。
  432. //
  433. //---------------------------------------------------------------------------------------
  434. typedef struct tagSeriesImageInfo
  435. {
  436. CString strStudyID; // Study内部标示
  437. CString strSeriesInstanceUID; //
  438. CString strViewID; //
  439. CString strPrimarySopUID; // 原始图文件uid
  440. CString strSecondarySopUID; // 处理后文件uid
  441. CString strImageSendStatus; //
  442. CString strImagePrintStatus; //
  443. CString strImageComments;
  444. CString strReserve1; //
  445. CString strReserve2; //
  446. CString strReserve3; //
  447. CString strReserve4; //
  448. CString strReserve5; //
  449. COleDateTime dtSeriesStartDateTime; // Series开始日期时间
  450. COleDateTime dtSeriesCompletionDateTime; // Series结束日期时间
  451. COleDateTime dtImageAcqDateTime; // 获取图像的时期时间
  452. tagSeriesImageInfo& operator =(const tagSeriesImageInfo &SeriesImage)
  453. {
  454. strStudyID.Format("%s", SeriesImage.strStudyID);
  455. strSeriesInstanceUID.Format("%s", SeriesImage.strSeriesInstanceUID);
  456. strViewID.Format("%s", SeriesImage.strViewID);
  457. strPrimarySopUID.Format("%s", SeriesImage.strPrimarySopUID);
  458. strSecondarySopUID.Format("%s", SeriesImage.strSecondarySopUID);
  459. strImageSendStatus.Format("%s", SeriesImage.strImageSendStatus);
  460. strImagePrintStatus.Format("%s", SeriesImage.strImagePrintStatus);
  461. strImageComments.Format("%s", SeriesImage.strImageComments);
  462. strReserve1.Format("%s", SeriesImage.strReserve1);
  463. strReserve2.Format("%s", SeriesImage.strReserve2);
  464. strReserve3.Format("%s", SeriesImage.strReserve3);
  465. strReserve4.Format("%s", SeriesImage.strReserve4);
  466. strReserve5.Format("%s", SeriesImage.strReserve5);
  467. dtSeriesStartDateTime = SeriesImage.dtSeriesStartDateTime;
  468. dtSeriesCompletionDateTime = SeriesImage.dtSeriesCompletionDateTime;
  469. dtImageAcqDateTime = SeriesImage.dtImageAcqDateTime;
  470. return *this;
  471. }
  472. }ECOM_SERIES_IMAGE;
  473. //---------------------------------------------------------------------------------------
  474. //
  475. // 结构名称:ECOM_USER
  476. // 结构说明:用于根据用户信息和时间统计出来的工作信息。
  477. //
  478. //---------------------------------------------------------------------------------------
  479. typedef struct tagUserInfo
  480. {
  481. CString strUserID; // 用户编号(缩写),这个编号会和标记一起加入到图像中
  482. CString strUserName; // 用户姓名
  483. CString strPassword; // 密码
  484. CString strUserLevel; // 用户权限
  485. CString strDefaultUser; // default user
  486. CString strReserve1;
  487. CString strReserve2;
  488. tagUserInfo& operator =(const tagUserInfo &UserInfo)
  489. {
  490. strUserID.Format("%s", UserInfo.strUserID);
  491. strUserName.Format("%s", UserInfo.strUserName);
  492. strPassword.Format("%s", UserInfo.strPassword);
  493. strUserLevel.Format("%s", UserInfo.strUserLevel);
  494. strDefaultUser.Format("%s", UserInfo.strDefaultUser);
  495. strReserve1.Format("%s", UserInfo.strReserve1);
  496. strReserve2.Format("%s", UserInfo.strReserve2);
  497. return *this;
  498. }
  499. }ECOM_USER;
  500. typedef struct tagUserInfoEx
  501. {
  502. int nUserIDProperty; // 用户编号(缩写),这个编号会和标记一起加入到图像中属性 0:可不添, 1:必填, -1:内容不正确
  503. int nUserNameProperty; // 用户姓名属性 0:可不添, 1:必填, -1:内容不正确
  504. int nPasswordProperty; // 密码属性 0:可不添, 1:必填, -1:内容不正确
  505. int nUserLevelProperty; // 用户权限属性 0:可不添, 1:必填, -1:内容不正确
  506. ECOM_USER User;
  507. }ECOM_USEREX;
  508. //---------------------------------------------------------------------------------------
  509. //
  510. // 结构名称:ECOM_STATISTIC
  511. // 结构说明:用来保存图像数据。
  512. //
  513. //---------------------------------------------------------------------------------------
  514. typedef struct tagStatisticInfo
  515. {
  516. CString strUserID; // 用户编号(缩写),这个编号会和标记一起加入到图像中
  517. int nPatientCount; // 完成病人的个数
  518. int nAcceptedImageCount; // 接受的图像的个数
  519. int nRejectedImageCount; // 拒绝图像的个数
  520. COleDateTime dtStatisticDate;
  521. tagStatisticInfo& operator =(const tagStatisticInfo &StatisInfo)
  522. {
  523. strUserID.Format("%s", StatisInfo.strUserID);
  524. nPatientCount = StatisInfo.nPatientCount;
  525. nAcceptedImageCount = StatisInfo.nAcceptedImageCount;
  526. dtStatisticDate = StatisInfo.dtStatisticDate;
  527. return *this;
  528. }
  529. }ECOM_STATISTIC;
  530. //---------------------------------------------------------------------------------------
  531. //
  532. // 结构名称:ECOM_STATISTIC_CRITERIA
  533. // 结构说明:用来构造查询 统计 信息的条件。
  534. //
  535. //---------------------------------------------------------------------------------------
  536. typedef struct tagStatisticCriteria
  537. {
  538. CString strUserID;
  539. COleDateTime dtStatisticStartTime;
  540. COleDateTime dtStatisticEndTime;
  541. tagStatisticCriteria& operator =(const tagStatisticCriteria &StatisticCriteria)
  542. {
  543. strUserID.Format("%s", StatisticCriteria.strUserID);
  544. dtStatisticStartTime = StatisticCriteria.dtStatisticStartTime;
  545. dtStatisticEndTime = StatisticCriteria.dtStatisticEndTime;
  546. return *this;
  547. }
  548. }ECOM_STATISTIC_CRITERIA;
  549. //---------------------------------------------------------------------------------------
  550. //
  551. // 结构名称:ECOM_REJECTIMG_INFO
  552. // 结构说明:用来保存被拒绝的图像信息。
  553. //
  554. //---------------------------------------------------------------------------------------
  555. typedef struct tagRejectImgInfo
  556. {
  557. CString strImagePrimarySopUID; // uid,唯一的标识一幅图像
  558. CString strRejectReason; // 拒绝的原因
  559. CString strProcedureCodeValue; //检查协议码
  560. CString strProcedureCodeDesc; //检查协议说明
  561. CString strViewID; //检查体位码
  562. CString strViewDesc; //检查体位说明
  563. CString strBodyPart; //检查部位说明
  564. CString strUserID; //技师ID
  565. COleDateTime dtImageDateTime; //图像生成时间
  566. tagRejectImgInfo& operator =(const tagRejectImgInfo &RejectImgInfo)
  567. {
  568. strImagePrimarySopUID.Format("%s", RejectImgInfo.strImagePrimarySopUID);
  569. strRejectReason.Format("%s", RejectImgInfo.strRejectReason);
  570. strProcedureCodeValue.Format("%s", RejectImgInfo.strProcedureCodeValue);
  571. strProcedureCodeDesc.Format("%s", RejectImgInfo.strProcedureCodeDesc);
  572. strViewID.Format("%s", RejectImgInfo.strViewID);
  573. strViewDesc.Format("%s", RejectImgInfo.strViewDesc);
  574. strBodyPart.Format("%s", RejectImgInfo.strBodyPart);
  575. strUserID.Format("%s", RejectImgInfo.strUserID);
  576. dtImageDateTime = RejectImgInfo.dtImageDateTime;
  577. return *this;
  578. }
  579. }ECOM_REJECTIMG_INFO;
  580. //---------------------------------------------------------------------------------------
  581. //
  582. // 结构名称:ECOM_IMAGE_INFO
  583. // 结构说明:用来保存图像数据。
  584. //
  585. //---------------------------------------------------------------------------------------
  586. typedef struct tagImgInfo
  587. {
  588. int nWidth; // 影像宽
  589. int nHeight; // 影像高
  590. int nBits; // 影像大小(总数据位)
  591. WORD *pwData; // 影像数据结构头指针
  592. }ECOM_IMAGE_INFO;
  593. //---------------------------------------------------------------------------------------
  594. //
  595. // 结构名称:ECOM_NEW_IMAGE_INFO
  596. // 结构说明:用来保存图像数据。
  597. //
  598. //---------------------------------------------------------------------------------------
  599. typedef struct tagNewImgInfo
  600. {
  601. int nWidth; // 影像宽
  602. int nHeight; // 影像高
  603. int nBits; // 影像大小(总数据位)
  604. CString strImageIndex; //
  605. CString strHeader; // 图像头
  606. WORD *pwData; // 影像数据结构头指针
  607. }ECOM_NEW_IMAGE_INFO;
  608. //---------------------------------------------------------------------------------------
  609. //
  610. // 结构名称:ECOM_CALIB_INFO
  611. // 结构说明:用来保存图像数据。
  612. //
  613. //---------------------------------------------------------------------------------------
  614. typedef struct tagCaliInfo
  615. {
  616. int nPanelIndex;
  617. int nCalibrationIndex;
  618. char *strDetectorType;
  619. }ECOM_CALIB_INFO;
  620. //---------------------------------------------------------------------------------------
  621. //
  622. // 结构名称:ECOM_ICON_INFO
  623. // 结构说明:用来保存图像数据。
  624. //
  625. //---------------------------------------------------------------------------------------
  626. typedef struct tagIconInfo
  627. {
  628. int nWidth; // 影像宽
  629. int nHeight; // 影像高
  630. CString strSOPUID; // UID
  631. BYTE *pData; // 影像数据结构头指针
  632. tagIconInfo& operator =(const tagIconInfo &IconInfo)
  633. {
  634. nWidth = IconInfo.nWidth;
  635. nHeight = IconInfo.nHeight;
  636. strSOPUID.Format("%s", IconInfo.strSOPUID);
  637. pData = IconInfo.pData;
  638. //if(pData) delete [] pData;
  639. //if(IconInfo.pData)
  640. //{
  641. // pData = new BYTE [nWidth*nHeight];
  642. // memcpy(pData, IconInfo.pData, nWidth*nHeight*sizeof(BYTE));
  643. //}
  644. //else
  645. //{
  646. // pData = NULL;
  647. //}
  648. return *this;
  649. }
  650. }ECOM_ICON_INFO;
  651. //---------------------------------------------------------------------------------------
  652. //
  653. // 结构名称:ECOM_PANEL_INFO
  654. // 说明说明:用来保存图像数据。
  655. //
  656. //---------------------------------------------------------------------------------------
  657. typedef struct tagPanelInfo
  658. {
  659. int nColumn; // 影像宽
  660. int nRow; // 影像高
  661. int nBits; // 影像大小(总数据位)
  662. float fDetectorTemprature;
  663. float fDetectorElementPhysicalSize;
  664. float fDetectorElementSpacing;
  665. CString strDetectorType;
  666. CString strDetectorID;
  667. CString strDetectorBinning;
  668. COleDateTime dtLastCalibrationDateTime;
  669. tagPanelInfo& operator =(const tagPanelInfo &PanelInfo)
  670. {
  671. nColumn = PanelInfo.nColumn;
  672. nRow = PanelInfo.nRow;
  673. nBits = PanelInfo.nBits;
  674. fDetectorTemprature = PanelInfo.fDetectorTemprature;
  675. fDetectorElementPhysicalSize = PanelInfo.fDetectorElementPhysicalSize;
  676. fDetectorElementSpacing = PanelInfo.fDetectorElementSpacing;
  677. strDetectorType.Format("%s", PanelInfo.strDetectorType);
  678. strDetectorID.Format("%s", PanelInfo.strDetectorID);
  679. strDetectorBinning.Format("%s", PanelInfo.strDetectorBinning);
  680. dtLastCalibrationDateTime = PanelInfo.dtLastCalibrationDateTime;
  681. return *this;
  682. }
  683. }ECOM_PANEL_INFO;
  684. //---------------------------------------------------------------------------------------
  685. //
  686. // 结构名称:ECOM_NETWORK_NODE
  687. // 结构说明:用来保存网络中各个服务器结点的基本信息:
  688. // 如:网络实体名、IP地址、端口号、设备名、描述等信息。
  689. //
  690. //---------------------------------------------------------------------------------------
  691. typedef struct tagNetworkNode
  692. {
  693. CString strHostName;
  694. CString strHostIP;
  695. CString strHostPort;
  696. CString strAETitle;
  697. CString strDescription;
  698. CString strState;
  699. tagNetworkNode& operator =(const tagNetworkNode &NetWorkNode)
  700. {
  701. strHostName.Format("%s", NetWorkNode.strHostName);
  702. strHostIP.Format("%s", NetWorkNode.strHostIP);
  703. strHostPort.Format("%s", NetWorkNode.strHostPort);
  704. strAETitle.Format("%s", NetWorkNode.strAETitle);
  705. strDescription.Format("%s", NetWorkNode.strDescription);
  706. strState.Format("%s", NetWorkNode.strState);
  707. return *this;
  708. }
  709. }ECOM_NETWORK_NODE;
  710. //---------------------------------------------------------------------------------------
  711. //
  712. // 结构名称:ECOM_NETWORK_NODE
  713. // 结构说明:用来保存网络中各个服务器结点的基本信息:
  714. // 如:网络实体名、IP地址、端口号、设备名、描述等信息。
  715. //
  716. //---------------------------------------------------------------------------------------
  717. typedef struct tagPACSEntity : public ECOM_NETWORK_NODE
  718. {
  719. CString strModality;
  720. CString strDefault;
  721. tagPACSEntity& operator =(const tagPACSEntity &PACSEntity)
  722. {
  723. strModality.Format("%s", PACSEntity.strModality);
  724. strDefault.Format("%s", PACSEntity.strDefault);
  725. return *this;
  726. }
  727. }ECOM_PACS_ENTITY;
  728. //---------------------------------------------------------------------------------------
  729. //
  730. // 结构名称:ECOM_WORKLIST_CONFIGURE
  731. // 结构说明:用来配置 worklist 中的数据信息。
  732. //
  733. //---------------------------------------------------------------------------------------
  734. typedef struct tagWorklistInfo
  735. {
  736. UINT16 unGroup;
  737. UINT16 unElement;
  738. UINT16 unPGroup;
  739. UINT16 unPElement;
  740. int nUsed;
  741. }ECOM_WORKLIST_CONFIGURE;
  742. //---------------------------------------------------------------------------------------
  743. //
  744. // 结构名称:ECOM_WORKLIST
  745. // 结构说明:用来配置 worklist 中的数据信息。, for dataflow, not for UI and worflow
  746. //
  747. //---------------------------------------------------------------------------------------
  748. typedef struct tagWorklistCriteria
  749. {
  750. CString strPatientID;
  751. CString strPatientName;
  752. CString strAccessionNum;
  753. COleDateTime dtStartTime;
  754. COleDateTime dtEndTime;
  755. }ECOM_WORKLIST_CRITERIA;
  756. //---------------------------------------------------------------------------------------
  757. //
  758. // 结构名称:ECOM_WORK_QUERY_CRITERIA
  759. // 结构说明:用来构造查询 Work 信息的条件。
  760. //
  761. //---------------------------------------------------------------------------------------
  762. typedef struct tagWorkQueryCriteria
  763. {
  764. CString strPatientID;
  765. CString strPatientName;
  766. CString strOtherPatientID;
  767. CString strOtherPatientName;
  768. CString strAccessionNum;
  769. CString strStudyID;
  770. CString strAdmissionID; // for query by AdmissionID
  771. CString strRegSource;
  772. CString strStudyState;
  773. COleDateTime dtAdmittingStartTime;
  774. COleDateTime dtAdmittingEndTime;
  775. COleDateTime dtStudyCompletionDateTime;
  776. tagWorkQueryCriteria& operator =(const tagWorkQueryCriteria &WorkQueryCriteria)
  777. {
  778. strPatientID.Format("%s", WorkQueryCriteria.strPatientID);
  779. strPatientName.Format("%s", WorkQueryCriteria.strPatientName);
  780. strOtherPatientID.Format("%s", WorkQueryCriteria.strOtherPatientID);
  781. strOtherPatientName.Format("%s", WorkQueryCriteria.strOtherPatientName);
  782. strAccessionNum.Format("%s", WorkQueryCriteria.strAccessionNum);
  783. strStudyID.Format("%s", WorkQueryCriteria.strStudyID);
  784. strAdmissionID.Format("%s", WorkQueryCriteria.strAdmissionID);
  785. strRegSource.Format("%s", WorkQueryCriteria.strRegSource);
  786. strStudyState.Format("%s", WorkQueryCriteria.strStudyState);
  787. dtAdmittingStartTime = WorkQueryCriteria.dtAdmittingStartTime;
  788. dtAdmittingEndTime = WorkQueryCriteria.dtAdmittingEndTime;
  789. dtStudyCompletionDateTime = WorkQueryCriteria.dtStudyCompletionDateTime;
  790. return *this;
  791. }
  792. }ECOM_WORK_QUERY_CRITERIA;
  793. //---------------------------------------------------------------------------------------
  794. //
  795. // 结构名称:ECOM_SENDFILEQUEUE_ITEM
  796. // 结构说明:用来保存图像发送队列
  797. //
  798. //---------------------------------------------------------------------------------------
  799. typedef struct tagSendFileQueueItem
  800. {
  801. CString strInstanceCreatorUID;
  802. CString strPatientID;
  803. CString strPatientName;
  804. CString strAccessionNumber;
  805. CString strSOPInstanceUID;
  806. COleDateTime dtImageDateTime;
  807. COleDateTime dtQueueScheduleStartDateTime;
  808. COleDateTime dtQueueIssueDateTime;
  809. COleDateTime dtQueueCompleteDateTime;
  810. CString strQueuePriority;
  811. CString strQueueStatus;
  812. CString strRemoteAETitle ;
  813. CString strRetryTimes ;
  814. tagSendFileQueueItem& operator =(const tagSendFileQueueItem &SendFileQueueItem)
  815. {
  816. strInstanceCreatorUID.Format("%s", SendFileQueueItem.strInstanceCreatorUID);
  817. strPatientID.Format("%s", SendFileQueueItem.strPatientID);
  818. strPatientName.Format("%s", SendFileQueueItem.strPatientName);
  819. strAccessionNumber.Format("%s", SendFileQueueItem.strAccessionNumber);
  820. strSOPInstanceUID.Format("%s", SendFileQueueItem.strSOPInstanceUID);
  821. strQueuePriority.Format("%s", SendFileQueueItem.strQueuePriority);
  822. strQueueStatus.Format("%s", SendFileQueueItem.strQueueStatus);
  823. strRemoteAETitle.Format("%s", SendFileQueueItem.strRemoteAETitle);
  824. strRetryTimes.Format("%s", SendFileQueueItem.strRetryTimes);
  825. dtImageDateTime = SendFileQueueItem.dtImageDateTime;
  826. dtQueueIssueDateTime = SendFileQueueItem.dtQueueIssueDateTime;
  827. dtQueueIssueDateTime = SendFileQueueItem.dtQueueIssueDateTime;
  828. dtQueueCompleteDateTime = SendFileQueueItem.dtQueueCompleteDateTime;
  829. return *this;
  830. }
  831. }ECOM_SENDFILE_QUEUE_ITEM;
  832. //---------------------------------------------------------------------------------------
  833. //
  834. // 结构名称:ECOM_PRINTQUEUE_ITEM
  835. // 结构说明:用来保存图像发送队列
  836. //
  837. //---------------------------------------------------------------------------------------
  838. typedef struct tagPrintQueueItem
  839. {
  840. CString strReferencedSOPInstanceUID;
  841. CString strPatientID;
  842. CString strPatientName;
  843. CString strAccessionNumber;
  844. CString strBodyPartExamined;
  845. COleDateTime dtQueueScheduleStartDateTime;
  846. COleDateTime dtQueueScheduleEndDateTime;
  847. COleDateTime dtQueueIssueDateTime;
  848. COleDateTime dtQueueCompleteDateTime;
  849. CString strQueuePriority;
  850. CString strQueueStatus;
  851. CString strRemoteAETitle ;
  852. CString strRetryTimes ;
  853. tagPrintQueueItem& operator =(const tagPrintQueueItem &PrintQueueItem)
  854. {
  855. strReferencedSOPInstanceUID.Format("%s", PrintQueueItem.strReferencedSOPInstanceUID);
  856. strPatientID.Format("%s", PrintQueueItem.strPatientID);
  857. strPatientName.Format("%s", PrintQueueItem.strPatientName);
  858. strAccessionNumber.Format("%s", PrintQueueItem.strAccessionNumber);
  859. strBodyPartExamined.Format("%s", PrintQueueItem.strBodyPartExamined);
  860. strQueuePriority.Format("%s", PrintQueueItem.strQueuePriority);
  861. strQueueStatus.Format("%s", PrintQueueItem.strQueueStatus);
  862. strRemoteAETitle.Format("%s", PrintQueueItem.strRemoteAETitle);
  863. strRetryTimes.Format("%s", PrintQueueItem.strRetryTimes);
  864. dtQueueScheduleStartDateTime = PrintQueueItem.dtQueueScheduleStartDateTime;
  865. dtQueueScheduleEndDateTime = PrintQueueItem.dtQueueScheduleEndDateTime;
  866. dtQueueIssueDateTime = PrintQueueItem.dtQueueIssueDateTime;
  867. dtQueueCompleteDateTime = PrintQueueItem.dtQueueCompleteDateTime;
  868. return *this;
  869. }
  870. }ECOM_PRINT_QUEUE_ITEM;
  871. //---------------------------------------------------------------------------------------
  872. //
  873. // 结构名称:ECOM_PROCEDURE
  874. // 结构说明:读取系统 Protocol 中的 Procedure 信息。
  875. //
  876. //---------------------------------------------------------------------------------------
  877. typedef struct tagProtocolProcedure
  878. {
  879. CString strProcedureCode;
  880. CString strProcedureName;
  881. CString strProcedureFastName; //new added, for fast input/search procedure
  882. CString strProcedureDescription; //for local language
  883. CString strBodyPart;
  884. CString strBodyPartDescription; //new added, for local language
  885. CString strOftenUsed;
  886. CString strTrueSize;
  887. CString strFilmOrientation;
  888. CString strFilmSize;
  889. CString strPrintFormat;
  890. //code begin 20091105
  891. CString strStitchingPID;
  892. CString strStitchingOverlap;
  893. CString strStitchingDirection;
  894. CString strStitchingType;
  895. CString strStitchingLength;
  896. CString strInitialPosition;
  897. //code end 20091105
  898. vector<CString> vectorChildView;
  899. tagProtocolProcedure& operator =(const tagProtocolProcedure &ProtocolProcedure)
  900. {
  901. strProcedureCode.Format("%s", ProtocolProcedure.strProcedureCode);
  902. strProcedureName.Format("%s", ProtocolProcedure.strProcedureName);
  903. strProcedureFastName.Format("%s", ProtocolProcedure.strProcedureFastName);
  904. strProcedureDescription.Format("%s", ProtocolProcedure.strProcedureDescription);
  905. strBodyPart.Format("%s", ProtocolProcedure.strBodyPart);
  906. strBodyPartDescription.Format("%s", ProtocolProcedure.strBodyPartDescription);
  907. strTrueSize.Format("%s", ProtocolProcedure.strTrueSize);
  908. strOftenUsed.Format("%s", ProtocolProcedure.strOftenUsed);
  909. strFilmOrientation.Format("%s", ProtocolProcedure.strFilmOrientation);
  910. strFilmSize.Format("%s", ProtocolProcedure.strFilmSize);
  911. strPrintFormat.Format("%s", ProtocolProcedure.strPrintFormat);
  912. //code begin 20091105
  913. strStitchingLength.Format("%s", ProtocolProcedure.strStitchingLength);;
  914. strStitchingPID.Format("%s", ProtocolProcedure.strStitchingPID);
  915. strStitchingOverlap.Format("%s", ProtocolProcedure.strStitchingOverlap);
  916. strStitchingDirection.Format("%s", ProtocolProcedure.strStitchingDirection);
  917. strStitchingType.Format("%s", ProtocolProcedure.strStitchingType);
  918. strInitialPosition.Format("%s", ProtocolProcedure.strInitialPosition);
  919. //code end 20091105
  920. vectorChildView = ProtocolProcedure.vectorChildView;
  921. return *this;
  922. }
  923. }ECOM_PROTOCOL_PROCEDURE;
  924. //---------------------------------------------------------------------------------------
  925. //
  926. // 结构名称:ECOM_VIEW
  927. // 结构说明:读取系统 Protocol 中的 View 信息。
  928. //
  929. //---------------------------------------------------------------------------------------
  930. typedef struct tagProtocolView
  931. {
  932. CString strViewID;
  933. CString strViewDescription;
  934. CString strAnatomicRegion;
  935. CString strBodyPartExamined;
  936. CString strOrientation;
  937. CString strViewPosition;
  938. CString strPatientOrientationRow;
  939. CString strPatientOrientationColumn;
  940. CString strImageLaterality;
  941. CString strImageRotate;
  942. CString strCollimatorSize;
  943. CString strImageProcess;
  944. CString strImageHorizontalFlip;
  945. CString strLabelStyle;
  946. CString strLabelPosition;
  947. CString strViewIconName;
  948. CString strViewBigIconName;
  949. CString strStandPos;
  950. CString strFilter;
  951. tagProtocolView& operator =(const tagProtocolView &ProtocolView)
  952. {
  953. strViewID.Format("%s", ProtocolView.strViewID);
  954. strViewDescription.Format("%s", ProtocolView.strViewDescription);
  955. strAnatomicRegion.Format("%s", ProtocolView.strAnatomicRegion);
  956. strBodyPartExamined.Format("%s", ProtocolView.strBodyPartExamined);
  957. strOrientation.Format("%s", ProtocolView.strOrientation);
  958. strViewPosition.Format("%s", ProtocolView.strViewPosition);
  959. strPatientOrientationRow.Format("%s", ProtocolView.strPatientOrientationRow);
  960. strPatientOrientationColumn.Format("%s", ProtocolView.strPatientOrientationColumn);
  961. strImageLaterality.Format("%s", ProtocolView.strImageLaterality);
  962. strImageRotate.Format("%s", ProtocolView.strImageRotate);
  963. strCollimatorSize.Format("%s", ProtocolView.strCollimatorSize);
  964. strImageProcess.Format("%s", ProtocolView.strImageProcess);
  965. strImageHorizontalFlip.Format("%s", ProtocolView.strImageHorizontalFlip);
  966. strLabelStyle.Format("%s", ProtocolView.strLabelStyle);
  967. strLabelPosition.Format("%s", ProtocolView.strLabelPosition);
  968. strViewIconName.Format("%s", ProtocolView.strViewIconName);
  969. strViewBigIconName.Format("%s", ProtocolView.strViewBigIconName);
  970. strStandPos.Format("%s", ProtocolView.strStandPos);
  971. strFilter.Format("%s", ProtocolView.strFilter);
  972. return *this;
  973. }
  974. }ECOM_PROTOCOL_VIEW;
  975. //---------------------------------------------------------------------------------------
  976. //
  977. // 结构名称:ECOM_EXPOSURE_PARAM
  978. // 结构说明:保存技术参数文档中,一条具体的 Tech 结点下的所有参数。
  979. //
  980. //---------------------------------------------------------------------------------------
  981. typedef struct tagExposureParam
  982. {
  983. int nKVP;
  984. int nFKVP;
  985. int nSID;
  986. int nGridSpeed;
  987. float fmA;
  988. float fmS;
  989. float fFMA;
  990. CString strBodySize;
  991. CString strGrid;
  992. tagExposureParam& operator =(const tagExposureParam &ExposureParam)
  993. {
  994. strBodySize.Format("%s", ExposureParam.strBodySize);
  995. strGrid.Format("%s", ExposureParam.strGrid);
  996. nKVP = ExposureParam.nKVP;
  997. nFKVP = ExposureParam.nFKVP;
  998. nSID = ExposureParam.nSID;
  999. nGridSpeed = ExposureParam.nGridSpeed;
  1000. fmA = ExposureParam.fmA;
  1001. fmS = ExposureParam.fmS;
  1002. fFMA = ExposureParam.fFMA;
  1003. return *this;
  1004. }
  1005. }ECOM_EXPOSURE_PARAM;
  1006. //---------------------------------------------------------------------------------------
  1007. //
  1008. // 结构名称:ECOM_ORIENTATION_PARAM
  1009. // 结构说明:保存技术参数文档中,一条具体的 Orientation 结点下的所有参数。
  1010. //
  1011. //---------------------------------------------------------------------------------------
  1012. typedef struct tagOrientationParam
  1013. {
  1014. int nExposureStyle;
  1015. int nAECDensity;
  1016. int nFocalSpot;
  1017. int nWorkStation;
  1018. CString strAECField;
  1019. CString strOrientation;
  1020. vector<ECOM_EXPOSURE_PARAM> ExposureParam;
  1021. public:
  1022. ECOM_EXPOSURE_PARAM operator [](const CString &strBodySize)
  1023. {
  1024. for (int i = 0; i < static_cast<int>(ExposureParam.size()); ++i)
  1025. {
  1026. if (ExposureParam[i].strBodySize == strBodySize)
  1027. {
  1028. return ExposureParam[i];
  1029. }
  1030. }
  1031. ECOM_EXPOSURE_PARAM ExposureParamTemp;
  1032. return ExposureParamTemp;
  1033. }
  1034. }ECOM_ORIENTATION_PARAM;
  1035. //---------------------------------------------------------------------------------------
  1036. //
  1037. // 结构名称:ECOM_BODYPART_EXAMINED
  1038. // 结构说明:保存技术参数文档中,一条具体的 BodyPartExamined 结点下的所有参数。
  1039. //
  1040. //---------------------------------------------------------------------------------------
  1041. typedef struct tagBodyPartExamined
  1042. {
  1043. CString strBodyPartExamined;
  1044. vector<ECOM_ORIENTATION_PARAM> OrientationParam;
  1045. public:
  1046. ECOM_ORIENTATION_PARAM operator [](const CString &strOrientation)
  1047. {
  1048. for (int i = 0; i < static_cast<int>(OrientationParam.size()); ++i)
  1049. {
  1050. if (OrientationParam[i].strOrientation == strOrientation)
  1051. {
  1052. return OrientationParam[i];
  1053. }
  1054. }
  1055. ECOM_ORIENTATION_PARAM OrientationTemp;
  1056. return OrientationTemp;
  1057. }
  1058. }ECOM_BODYPART_EXAMINED;
  1059. //---------------------------------------------------------------------------------------
  1060. //
  1061. // 结构名称:ECOM_TECHNICAL_PARAM
  1062. // 结构说明:提供一个 vector,使程序可以采用下标操作读取参数。
  1063. //
  1064. //---------------------------------------------------------------------------------------
  1065. typedef struct tagTechnical
  1066. {
  1067. vector<ECOM_BODYPART_EXAMINED> Tech;
  1068. public:
  1069. ECOM_BODYPART_EXAMINED operator [](const CString &strBodyPartExamined)
  1070. {
  1071. for (int i = 0; i < static_cast<int>(Tech.size()); ++i)
  1072. {
  1073. if (Tech[i].strBodyPartExamined == strBodyPartExamined)
  1074. {
  1075. return Tech[i];
  1076. }
  1077. }
  1078. ECOM_BODYPART_EXAMINED BodyPartTemp;
  1079. return BodyPartTemp;
  1080. }
  1081. }ECOM_TECHNICAL_PARAM;
  1082. //---------------------------------------------------------------------------------------
  1083. //
  1084. // 结构名称:ECOM_GENERATOR_TECH
  1085. // 结构说明:提供一个结构,用来保存当前高压发生器的技术参数
  1086. //
  1087. //---------------------------------------------------------------------------------------
  1088. typedef struct tagGeneratorTech
  1089. {
  1090. int nExposureStyle;
  1091. int nAECDensity;
  1092. int nFocalSpot;
  1093. int nWorkStation;
  1094. CString strAECField;
  1095. tagGeneratorTech& operator =(const tagGeneratorTech &GeneratorTech)
  1096. {
  1097. strAECField.Format("%s", GeneratorTech.strAECField);
  1098. nExposureStyle = GeneratorTech.nExposureStyle;
  1099. nAECDensity = GeneratorTech.nAECDensity;
  1100. nFocalSpot = GeneratorTech.nFocalSpot;
  1101. nWorkStation = GeneratorTech.nWorkStation;
  1102. return *this;
  1103. }
  1104. ECOM_EXPOSURE_PARAM ExposureParam;
  1105. }ECOM_GENERATOR_TECH;
  1106. //---------------------------------------------------------------------------------------
  1107. //
  1108. // 结构名称:ECOM_IMAGEPROCESSPARA_SYMPHONY
  1109. // 结构说明:用来保存一个Symphony参数的结构
  1110. //
  1111. //---------------------------------------------------------------------------------------
  1112. typedef struct tagImageProcessParamSymphony
  1113. {
  1114. int nContrast;
  1115. int nDetail;
  1116. int nLatitude;
  1117. int nNoiseMode;
  1118. }ECOM_IMAGE_PROCESS_PARAM_SYMPHONY;
  1119. //---------------------------------------------------------------------------------------
  1120. //
  1121. // 结构名称:ECOM_IMAGE_PROCESS_PARAM_ESA
  1122. // 结构说明:用来保存一个ESA参数的结构
  1123. //
  1124. //---------------------------------------------------------------------------------------
  1125. typedef struct tagImageProcessParamESA
  1126. {
  1127. int nCurveType;
  1128. int nLShift;
  1129. int nRShift;
  1130. }ECOM_IMAGE_PROCESS_PARAM_ESA;
  1131. //---------------------------------------------------------------------------------------
  1132. //
  1133. // 结构名称:ECOM_IMAGE_PROCESS_PARAM_ROTATE
  1134. // 结构说明:用来保存图像旋转,翻转参数的结构
  1135. //
  1136. //---------------------------------------------------------------------------------------
  1137. typedef struct tagImageProcessParamRotate
  1138. {
  1139. int nFlip; // 0,1
  1140. int nRotate; // 0,90,180,270
  1141. }ECOM_IMAGE_PROCESS_PARAM_ROTATE;
  1142. //---------------------------------------------------------------------------------------
  1143. //
  1144. // 结构名称:ECOM_IMAGE_PROCESS_PARAM_MASK
  1145. // 结构说明:用来保存图像加入蒙板的结构,共四个点,为四边形
  1146. //
  1147. //---------------------------------------------------------------------------------------
  1148. typedef struct tagImageProcessParamMask
  1149. {
  1150. CPoint point[4];
  1151. }ECOM_IMAGE_PROCESS_PARAM_MASK;
  1152. //---------------------------------------------------------------------------------------
  1153. //
  1154. // 结构名称:ECOM_IMAGE_PROCESS_PARAM_CLIP
  1155. // 结构说明:用来保存图像裁剪参数的结构,为矩形
  1156. //
  1157. //---------------------------------------------------------------------------------------
  1158. typedef CRect ECOM_IMAGE_PROCESS_PARAM_CLIP;
  1159. //---------------------------------------------------------------------------------------
  1160. //
  1161. // 结构名称:ECOM_IMAGE_PROCESS_PARAM_MARK
  1162. // 结构说明:用来保存图像标记,共可加入四个标记,CPoint为标记左上方点
  1163. //
  1164. //---------------------------------------------------------------------------------------
  1165. typedef struct tagImageProcessParamMark
  1166. {
  1167. CPoint point1;
  1168. CString strMark1; //L,R,PA,PA,...
  1169. CString strName1;
  1170. CPoint point2;
  1171. CString strMark2; //L,R,PA,PA,...
  1172. CString strName2;
  1173. CPoint point3;
  1174. CString strMark3; //L,R,PA,PA,...
  1175. CString strName3;
  1176. CPoint point4;
  1177. CString strMark4; //L,R,PA,PA,...
  1178. CString strName4;
  1179. tagImageProcessParamMark& operator =(const tagImageProcessParamMark &ImageProcessParamMark)
  1180. {
  1181. point1 = ImageProcessParamMark.point1;
  1182. strMark1.Format("%s", ImageProcessParamMark.strMark1);
  1183. strName1.Format("%s", ImageProcessParamMark.strName1);
  1184. point2 = ImageProcessParamMark.point2;
  1185. strMark2.Format("%s", ImageProcessParamMark.strMark2);
  1186. strName2.Format("%s", ImageProcessParamMark.strName2);
  1187. point3 = ImageProcessParamMark.point3;
  1188. strMark3.Format("%s", ImageProcessParamMark.strMark3);
  1189. strName3.Format("%s", ImageProcessParamMark.strName3);
  1190. point4 = ImageProcessParamMark.point4;
  1191. strMark4.Format("%s", ImageProcessParamMark.strMark4);
  1192. strName4.Format("%s", ImageProcessParamMark.strName4);
  1193. return *this;
  1194. }
  1195. }ECOM_IMAGE_PROCESS_PARAM_MARK;
  1196. //---------------------------------------------------------------------------------------
  1197. //
  1198. // 结构名称:ECOM_IMAGE_PROCESS_PARAM_LUT
  1199. // 结构说明:用来保存图像显示映射查找表
  1200. //
  1201. //---------------------------------------------------------------------------------------
  1202. typedef struct tagImageProcessParamLut
  1203. {
  1204. int nLutLength;
  1205. WORD *pwLutData;
  1206. }ECOM_IMAGE_PROCESS_PARAM_LUT;
  1207. //---------------------------------------------------------------------------------------
  1208. //
  1209. // 结构名称:ECOM_IMAGE_PROCESS_PARAM
  1210. // 结构说明:用来保存图像调整的参数
  1211. //
  1212. //---------------------------------------------------------------------------------------
  1213. typedef struct tagImageProcessParam
  1214. {
  1215. int nProcesstype; //new added, indicated the way to process image, 0: Esa, 1: Symphony
  1216. ECOM_IMAGE_PROCESS_PARAM_SYMPHONY Symphony; //new added
  1217. ECOM_IMAGE_PROCESS_PARAM_ESA Esa; //new added
  1218. ECOM_IMAGE_PROCESS_PARAM_ROTATE Rotate;
  1219. ECOM_IMAGE_PROCESS_PARAM_MASK Mask;
  1220. ECOM_IMAGE_PROCESS_PARAM_CLIP Clip;
  1221. ECOM_IMAGE_PROCESS_PARAM_MARK Mark;
  1222. ECOM_IMAGE_PROCESS_PARAM_LUT Lut;
  1223. }ECOM_IMAGE_PROCESS_PARAM;
  1224. //---------------------------------------------------------------------------------------
  1225. //
  1226. // 结构名称:ECOM_PRINT_FILM
  1227. // 结构说明:用来保存一个胶片内容和格式的结构
  1228. //
  1229. //---------------------------------------------------------------------------------------
  1230. typedef struct tagPrintFilm
  1231. {
  1232. CString strFilmOrientation;
  1233. CString strFilmSize;
  1234. CString strPrintFormat;
  1235. vector<ECOM_SERIES_IMAGE> seriesimages;
  1236. tagPrintFilm& operator =(const tagPrintFilm &PrintFilm)
  1237. {
  1238. strFilmOrientation.Format("%s", PrintFilm.strFilmOrientation);
  1239. strFilmSize.Format("%s", PrintFilm.strFilmSize);
  1240. strPrintFormat.Format("%s", PrintFilm.strPrintFormat);
  1241. seriesimages = PrintFilm.seriesimages;
  1242. return *this;
  1243. }
  1244. }ECOM_PRINT_FILM;
  1245. //---------------------------------------------------------------------------------------
  1246. //
  1247. // 结构名称:ECOM_FILM_TAG
  1248. // 结构说明:用来保存一个胶片打印标记信息.
  1249. //
  1250. //---------------------------------------------------------------------------------------
  1251. typedef struct tagFilmTag
  1252. {
  1253. UINT16 unGroup;
  1254. UINT16 unElement;
  1255. CString strDescription;
  1256. CString strPrefix;
  1257. CString strPostfix;
  1258. CString strFormat;
  1259. CString strPosition;
  1260. CString strLine;
  1261. tagFilmTag& operator =(const tagFilmTag &FilmTag)
  1262. {
  1263. strDescription.Format("%s", FilmTag.strDescription);
  1264. strPrefix.Format("%s", FilmTag.strPrefix);
  1265. strPostfix.Format("%s", FilmTag.strPostfix);
  1266. strFormat.Format("%s", FilmTag.strFormat);
  1267. strPosition.Format("%s", FilmTag.strPosition);
  1268. strLine.Format("%s", FilmTag.strLine);
  1269. unGroup = FilmTag.unGroup;
  1270. unElement = FilmTag.unElement;
  1271. return *this;
  1272. }
  1273. }ECOM_FILM_TAG;
  1274. //---------------------------------------------------------------------------------------
  1275. //
  1276. // 结构名称:ECOM_PROCEDURE_VIEW
  1277. // 结构说明:用来保存 界面与 WorkFlow 交互时传递的 Porcedure and View 信息.
  1278. //
  1279. //---------------------------------------------------------------------------------------
  1280. typedef struct tagProcedureView
  1281. {
  1282. //Station
  1283. CString strStationName;
  1284. CString strInstitutionName;
  1285. // Procedure
  1286. CString strProcedureCode;
  1287. CString strProcedureName;
  1288. CString strProcedureFastName; //new added, for fast input/search procedure
  1289. CString strProcedureDescription; //for local language
  1290. CString strBodyPart;
  1291. CString strBodyPartDescription; //new added, for local language
  1292. CString strOftenUsed;
  1293. CString strTrueSize;
  1294. CString strFilmOrientation;
  1295. CString strFilmSize;
  1296. CString strPrintFormat;
  1297. //code begin 20091105
  1298. CString strStitchingLength;
  1299. CString strStitchingPID;
  1300. CString strStitchingOverlap;
  1301. CString strStitchingDirection;
  1302. CString strStitchingType;
  1303. CString strInitialPosition;
  1304. //code end 20091105
  1305. // View
  1306. CString strViewID;
  1307. CString strSOPInstanceUID; //newadded, for identification
  1308. CString strImageID; //newadded, for identification
  1309. CString strViewDescription;
  1310. CString strAnatomicRegion;
  1311. CString strBodyPartExamined;
  1312. CString strOrientation;
  1313. CString strViewPosition;
  1314. CString strPatientOrientationRow;
  1315. CString strPatientOrientationColumn;
  1316. CString strImageLaterality;
  1317. CString strImageRotate;
  1318. CString strCollimatorSize;
  1319. CString strImageProcess;
  1320. CString strImageHorizontalFlip;
  1321. CString strLabelStyle;
  1322. CString strLabelPosition;
  1323. CString strViewIconName;
  1324. CString strViewBigIconName;
  1325. CString strStandPos;
  1326. CString strFilter;
  1327. //code begin 20150616
  1328. CString strViewSeriesInstanceUID; //seriesInstanceUID(对应每个view)
  1329. CString strViewStatus; //view 是新的view还是拒绝后重新copy出来的; 0:新的view;1:拒绝后重新copy出来的
  1330. CString strViewGridType; //Grid type: 0 表示没有; 其他则对应具体grid定义
  1331. CString strViewAPRStatus; //当前view的曝光状态,0 表示没有曝光; 1 表示曝光成功; 2:曝光拒绝
  1332. //code end 20150616
  1333. tagProcedureView& operator =(const tagProcedureView &procedureview)
  1334. {
  1335. //CString::CopyChars(strPatientID, patient.strPatientID, patient.strPatientID.GetLength());
  1336. strStationName.Format("%s", procedureview.strStationName);
  1337. strInstitutionName.Format("%s", procedureview.strInstitutionName);
  1338. strProcedureCode.Format("%s", procedureview.strProcedureCode);
  1339. strProcedureName.Format("%s", procedureview.strProcedureName);
  1340. strProcedureFastName.Format("%s", procedureview.strProcedureFastName);
  1341. strProcedureDescription.Format("%s", procedureview.strProcedureDescription);
  1342. strBodyPart.Format("%s", procedureview.strBodyPart);
  1343. strBodyPartDescription.Format("%s", procedureview.strBodyPartDescription);
  1344. strOftenUsed.Format("%s", procedureview.strOftenUsed);
  1345. strTrueSize.Format("%s", procedureview.strTrueSize);
  1346. strFilmOrientation.Format("%s", procedureview.strFilmOrientation);
  1347. strFilmSize.Format("%s", procedureview.strFilmSize);
  1348. strPrintFormat.Format("%s", procedureview.strPrintFormat);
  1349. strViewID.Format("%s", procedureview.strViewID);
  1350. strSOPInstanceUID.Format("%s", procedureview.strSOPInstanceUID);
  1351. strImageID.Format("%s", procedureview.strImageID);
  1352. strViewDescription.Format("%s", procedureview.strViewDescription);
  1353. strAnatomicRegion.Format("%s", procedureview.strAnatomicRegion);
  1354. strBodyPartExamined.Format("%s", procedureview.strBodyPartExamined);
  1355. strOrientation.Format("%s", procedureview.strOrientation);
  1356. strViewPosition.Format("%s", procedureview.strViewPosition);
  1357. strPatientOrientationRow.Format("%s", procedureview.strPatientOrientationRow);
  1358. strPatientOrientationColumn.Format("%s", procedureview.strPatientOrientationColumn);
  1359. strImageLaterality.Format("%s", procedureview.strImageLaterality);
  1360. strImageRotate.Format("%s", procedureview.strImageRotate);
  1361. strCollimatorSize.Format("%s", procedureview.strCollimatorSize);
  1362. strImageProcess.Format("%s", procedureview.strImageProcess);
  1363. strImageHorizontalFlip.Format("%s", procedureview.strImageHorizontalFlip);
  1364. strLabelStyle.Format("%s", procedureview.strLabelStyle);
  1365. strLabelPosition.Format("%s", procedureview.strLabelPosition);
  1366. strViewIconName.Format("%s", procedureview.strViewIconName);
  1367. strViewBigIconName.Format("%s", procedureview.strViewBigIconName);
  1368. strStandPos.Format("%s", procedureview.strStandPos);
  1369. strFilter.Format("%s", procedureview.strFilter);
  1370. //code begin 20091105
  1371. strStitchingLength.Format("%s", procedureview.strStitchingLength);
  1372. strStitchingPID.Format("%s", procedureview.strStitchingPID);
  1373. strStitchingOverlap.Format("%s", procedureview.strStitchingOverlap);
  1374. strStitchingDirection.Format("%s", procedureview.strStitchingDirection);
  1375. strStitchingType.Format("%s", procedureview.strStitchingType);
  1376. strInitialPosition.Format("%s", procedureview.strInitialPosition);
  1377. //code end 20091105
  1378. strViewSeriesInstanceUID.Format("%s", procedureview.strViewSeriesInstanceUID);
  1379. strViewStatus.Format("%s", procedureview.strViewStatus);
  1380. strViewGridType.Format("%s", procedureview.strViewGridType);
  1381. strViewAPRStatus.Format("%s", procedureview.strViewAPRStatus);
  1382. return *this;
  1383. }
  1384. }ECOM_PROCEDURE_VIEW;
  1385. //---------------------------------------------------------------------------------------
  1386. //
  1387. // 结构名称:ECOM_CURRENT_TECHNICAL
  1388. // 结构说明:用来保存 界面与 WorkFlow 交互时传递的 当前所有的技术参数 信息.
  1389. //
  1390. //---------------------------------------------------------------------------------------
  1391. typedef struct tagTechnicalParam
  1392. {
  1393. // BodyPartExamined
  1394. CString strBodyPartExamined;
  1395. // Orientation
  1396. int nExposureStyle;
  1397. int nAECDensity;
  1398. int nFocalSpot;
  1399. int nWorkStation;
  1400. CString strAECField;
  1401. CString strOrientation;
  1402. // BodySize
  1403. int nKVP;
  1404. int nFKVP;
  1405. int nSID;
  1406. int nGridSpeed;
  1407. float fmA;
  1408. float fmS;
  1409. float fFMA;
  1410. CString strBodySize;
  1411. CString strGrid;
  1412. //code begin 20091104
  1413. int nOverlap;
  1414. int nPID; //?
  1415. int nDirection;
  1416. int nStitchingType;
  1417. //code end 20091104
  1418. tagTechnicalParam& operator =(const tagTechnicalParam &TechnicalParam)
  1419. {
  1420. strBodyPartExamined.Format("%s", TechnicalParam.strBodyPartExamined);
  1421. nExposureStyle = TechnicalParam.nExposureStyle;
  1422. nAECDensity = TechnicalParam.nAECDensity;
  1423. nFocalSpot = TechnicalParam.nFocalSpot;
  1424. nWorkStation = TechnicalParam.nWorkStation;
  1425. strAECField.Format("%s", TechnicalParam.strAECField);
  1426. strOrientation.Format("%s", TechnicalParam.strOrientation);
  1427. nKVP = TechnicalParam.nKVP;
  1428. nFKVP = TechnicalParam.nFKVP;
  1429. nSID = TechnicalParam.nSID;
  1430. nGridSpeed = TechnicalParam.nGridSpeed;
  1431. fmA = TechnicalParam.fmA;
  1432. fmS = TechnicalParam.fmS;
  1433. fFMA = TechnicalParam.fFMA;
  1434. strBodySize.Format("%s", TechnicalParam.strBodySize);
  1435. strGrid.Format("%s", TechnicalParam.strGrid);
  1436. //code begin 20091104
  1437. nOverlap = TechnicalParam.nOverlap;
  1438. nPID = TechnicalParam.nPID; //?
  1439. nDirection = TechnicalParam.nDirection;
  1440. nStitchingType = TechnicalParam.nStitchingType;
  1441. //code end 20091104
  1442. return *this;
  1443. }
  1444. }ECOM_CURRENT_TECHNICAL;
  1445. //---------------------------------------------------------------------------------------
  1446. //
  1447. // 结构名称:ECOM_COLLIMATOR_INFO
  1448. // 结构说明:用来保存遮光器的参数信息.
  1449. //
  1450. //---------------------------------------------------------------------------------------
  1451. typedef struct tagCollimator
  1452. {
  1453. float fWidth; //cm
  1454. float fHeight; //cm
  1455. /*tagCollimator& operator =(const tagCollimator &Collimator)
  1456. {
  1457. fWidth = Collimator.fWidth;
  1458. fHeight = Collimator.fWidth;
  1459. return *this;
  1460. }
  1461. tagCollimator& operator =(const tagHWCollimator &Collimator)
  1462. {
  1463. fWidth = Collimator.nWidth;
  1464. fHeight = Collimator.nWidth;
  1465. return *this;
  1466. }*/
  1467. }ECOM_COLLIMATOR_INFO;
  1468. //---------------------------------------------------------------------------------------
  1469. //
  1470. // 结构名称:ECOM_COLLIMATOR_ZERO
  1471. // 结构说明:用来保存遮光器中心在以图像左上角为原点的坐标系中的位置坐标;
  1472. // 单位:cm.
  1473. //
  1474. //---------------------------------------------------------------------------------------
  1475. typedef struct tagCollimatorZero
  1476. {
  1477. float fWidth; //cm
  1478. float fHeight; //cm
  1479. }ECOM_COLLIMATOR_ZERO;
  1480. //---------------------------------------------------------------------------------------
  1481. //
  1482. // 结构名称:ECOM_COLLIMATOR_Offset
  1483. // 结构说明:用来保存遮光器中心在以图像左上角为原点的坐标系中的位置坐标;
  1484. // 单位:cm.
  1485. //
  1486. //---------------------------------------------------------------------------------------
  1487. typedef struct tagCollimatorOffset
  1488. {
  1489. float fOffsetWidthLeft; //cm
  1490. float fOffsetWidthRight; //cm
  1491. float fOffsetHeightUp; //cm
  1492. float fOffsetHeightDown; //cm
  1493. }ECOM_COLLIMATOR_OFFSET;
  1494. //---------------------------------------------------------------------------------------
  1495. // 结构名称:ECOM_SOFTWARE_INFO
  1496. // 结构说明:用来保存软件相关信息.
  1497. //
  1498. //---------------------------------------------------------------------------------------
  1499. typedef struct tagSoftWareInfo
  1500. {
  1501. CString strSoftwareVersion;
  1502. CString strManufacturerModelName;
  1503. CString strManufacturer;
  1504. tagSoftWareInfo& operator =(const tagSoftWareInfo &SoftWareInfo)
  1505. {
  1506. strSoftwareVersion.Format("%s", SoftWareInfo.strSoftwareVersion);
  1507. strManufacturerModelName.Format("%s", SoftWareInfo.strManufacturerModelName);
  1508. strManufacturer.Format("%s", SoftWareInfo.strManufacturer);
  1509. return *this;
  1510. }
  1511. }ECOM_SOFTWARE_INFO;
  1512. //---------------------------------------------------------------------------------------
  1513. //
  1514. // 结构名称:ECOM_AUTO_REGIST_SETTING
  1515. // 结构说明:用来获取自动注册时的设置。
  1516. //
  1517. //---------------------------------------------------------------------------------------
  1518. typedef struct tagAutoRegistSetting
  1519. {
  1520. CString strPrefix;
  1521. vector<CString> vectorPrefixs;
  1522. CString strDirectory;
  1523. CString strProcedureCodeValue;
  1524. int nOutPut;
  1525. int nIndex;
  1526. tagAutoRegistSetting& operator =(const tagAutoRegistSetting &AutoRegistSetting)
  1527. {
  1528. strPrefix.Format("%s", AutoRegistSetting.strPrefix);
  1529. strDirectory.Format("%s", AutoRegistSetting.strDirectory);
  1530. strProcedureCodeValue.Format("%s", AutoRegistSetting.strProcedureCodeValue);
  1531. nOutPut = AutoRegistSetting.nOutPut;
  1532. nIndex = AutoRegistSetting.nIndex;
  1533. vectorPrefixs.clear();
  1534. for(UINT i = 0; i< AutoRegistSetting.vectorPrefixs.size(); i++)
  1535. {
  1536. vectorPrefixs.push_back(AutoRegistSetting.vectorPrefixs[i]);
  1537. }
  1538. return *this;
  1539. }
  1540. }ECOM_AUTO_REGIST_SETTING;
  1541. //---------------------------------------------------------------------------------------
  1542. //
  1543. // 结构名称:ECOM_HW_COLLIMATOR
  1544. // 结构说明:用来保存遮光器的参数信息.
  1545. //
  1546. //---------------------------------------------------------------------------------------
  1547. typedef struct tagHWCollimator
  1548. {
  1549. int nWidth;
  1550. int nHeight;
  1551. }ECOM_HW_COLLIMATOR;
  1552. //---------------------------------------------------------------------------------------
  1553. //
  1554. // 结构名称:ECOM_DUAL_ENERGY_INFO
  1555. // 结构说明:用来保存双能相关信息.
  1556. //
  1557. //---------------------------------------------------------------------------------------
  1558. typedef struct tagDualEnergyInfo
  1559. {
  1560. CString strHighEnergyPath;
  1561. CString strLowEnergyPath;
  1562. tagDualEnergyInfo& operator =(const tagDualEnergyInfo &DualEnergyInfo)
  1563. {
  1564. strHighEnergyPath.Format("%s", DualEnergyInfo.strHighEnergyPath);
  1565. strLowEnergyPath.Format("%s", DualEnergyInfo.strLowEnergyPath);
  1566. return *this;
  1567. }
  1568. }ECOM_DUAL_ENERGY_INFO;
  1569. //---------------------------------------------------------------------------------------
  1570. //
  1571. // 结构名称:HW_MAMMO_THICKNESS_PARAM
  1572. // 结构说明:乳腺机架的压迫器厚度和力等信息
  1573. //
  1574. //---------------------------------------------------------------------------------------
  1575. typedef struct tagHWMammoThicknessParam
  1576. {
  1577. int nHeight;
  1578. int nForce;
  1579. tagHWMammoThicknessParam& operator =(const tagHWMammoThicknessParam &ThicknessParam)
  1580. {
  1581. nHeight = ThicknessParam.nHeight;
  1582. nForce = ThicknessParam.nForce;
  1583. }
  1584. }HW_MAMMO_THICKNESS_PARAM;
  1585. typedef enum
  1586. {
  1587. EM_ERROR = 0,
  1588. EM_NORMAL, //normal exposure mdoe
  1589. EM_AEC, //AEC exposure mode
  1590. EM_AEC_TIME =2,
  1591. EM_DE, //Dual Energy exposure mode
  1592. EM_HDR, //HDR exposure mode
  1593. EM_STITCHING, //Stitching Mode
  1594. EM_WARMUP,
  1595. EM_AEC_FILTER,
  1596. EM_AEC_KV
  1597. } HW_EXPOSURE_MDOE;
  1598. //---------------------------------------------------------------------------------------
  1599. // 作 者:宋兴亮
  1600. // 日 期:2013-09-13
  1601. // 结构名称:ECOM_PANEL_UNIQUE_INFO
  1602. // 说明说明:用来保存探测器特有的信息,目前应用于varian平板
  1603. //
  1604. //---------------------------------------------------------------------------------------
  1605. typedef struct tagPanelUniqueInfo
  1606. {
  1607. int nColumn; // 影像原始宽
  1608. int nRow; // 影像原始高
  1609. int nMxPixelValue; // 影像大小(总数据位)
  1610. int nLinesPerPixel; // 每行包含几个像素
  1611. int nColsPerPixel; //每列包含几个像素
  1612. CString strPleoraVersion; //Pleora 版本信息
  1613. CString strVirtCpVersion; //瓦里安主dll版本信息
  1614. CString strPaneloprVersion; //ECOM平板dll版本信息
  1615. CString strDetectorType; //瓦里安平板类型
  1616. int nReceptorType; // Receptor类型
  1617. CString strModeDescription; //当前模式
  1618. CString strSysDescription; //瓦里安驱动软件系统信息
  1619. tagPanelUniqueInfo& operator =(const tagPanelUniqueInfo &PanelInfo)
  1620. {
  1621. nColumn = PanelInfo.nColumn;
  1622. nRow = PanelInfo.nRow;
  1623. nMxPixelValue = PanelInfo.nMxPixelValue;
  1624. nLinesPerPixel = PanelInfo.nLinesPerPixel; // 每行包含几个像素
  1625. nColsPerPixel = PanelInfo.nColsPerPixel;
  1626. strPleoraVersion.Format("%s", PanelInfo.strPleoraVersion);
  1627. strPaneloprVersion.Format("%s", PanelInfo.strPaneloprVersion);
  1628. strVirtCpVersion.Format("%s", PanelInfo.strVirtCpVersion);
  1629. strDetectorType.Format("%s", PanelInfo.strDetectorType);
  1630. nReceptorType = PanelInfo.nReceptorType;
  1631. strModeDescription.Format("%s", PanelInfo.strModeDescription);
  1632. strSysDescription.Format("%s", PanelInfo.strSysDescription);
  1633. return *this;
  1634. }
  1635. }ECOM_PANEL_UNIQUE_INFO;
  1636. //---------------------------------------------------------------------------------------
  1637. // 作 者:郑丽华
  1638. // 日 期:2013-10-23
  1639. // 枚举名称:ECOM_DYN_CHANNEL_TYPE
  1640. // 枚举说明:DYN通道类型
  1641. //---------------------------------------------------------------------------------------
  1642. typedef enum
  1643. {
  1644. DYN_DI,
  1645. DYN_DO,
  1646. DYN_ALL
  1647. }ECOM_DYN_CHANNEL_TYPE;
  1648. //---------------------------------------------------------------------------------------
  1649. // 作 者:郑丽华
  1650. // 日 期:2013-10-23
  1651. // 结构名称:ECOM_DYN_CHANNEL_MAP
  1652. // 结构说明:DYN通道ID与名称之间的Map信息
  1653. //---------------------------------------------------------------------------------------
  1654. typedef struct tagECOMDYNChannelMap
  1655. {
  1656. CString strVer;
  1657. CString strChannelName[32];
  1658. ECOM_DYN_CHANNEL_TYPE eChanneltype[32];
  1659. UCHAR cChannelID[32];
  1660. tagECOMDYNChannelMap& operator =(const tagECOMDYNChannelMap &ChannelMap)
  1661. {
  1662. strVer = ChannelMap.strVer;
  1663. for(int i=0;i<32;i++)
  1664. {
  1665. strChannelName[i] = ChannelMap.strChannelName[i];
  1666. eChanneltype[i] = ChannelMap.eChanneltype[i];
  1667. cChannelID[i] = ChannelMap.cChannelID[i];
  1668. }
  1669. return *this;
  1670. }
  1671. } ECOM_DYN_CHANNEL_MAP;
  1672. //---------------------------------------------------------------------------------------
  1673. // 作 者:郑丽华
  1674. // 日 期:2013-10-23
  1675. // 结构名称:ECOM_DYN_IO_CONF
  1676. // 结构说明:DYN通道设置
  1677. //---------------------------------------------------------------------------------------
  1678. typedef struct tagECOMDYNIOConfigure
  1679. {
  1680. CString strVer;
  1681. UCHAR unSet1[4][32];
  1682. UCHAR unSet2[4][32];
  1683. UCHAR unSet3[4][32];
  1684. UCHAR unRelay1[4][32];
  1685. UCHAR unRelay2[4][32];
  1686. UCHAR unRelay3[4][32];
  1687. tagECOMDYNIOConfigure& operator =(const tagECOMDYNIOConfigure &IOConf)
  1688. {
  1689. strVer = IOConf.strVer;
  1690. memcpy((void *)&unSet1,(void *)&IOConf.unSet1,32*4);
  1691. memcpy((void *)&unSet2,(void *)&IOConf.unSet2,32*4);
  1692. memcpy((void *)&unSet3,(void *)&IOConf.unSet3,32*4);
  1693. memcpy((void *)&unRelay1,(void *)&IOConf.unRelay1,32*4);
  1694. memcpy((void *)&unRelay2,(void *)&IOConf.unRelay2,32*4);
  1695. memcpy((void *)&unRelay3,(void *)&IOConf.unRelay3,32*4);
  1696. return *this;
  1697. }
  1698. } ECOM_DYN_IO_CONF;
  1699. //---------------------------------------------------------------------------------------
  1700. // 作 者:宋兴亮
  1701. // 日 期:2014-03-24
  1702. // 结构名称:ECOM_PANEL_XRAY_WINDOW_INFO
  1703. // 说明说明:保存探测器当前的曝光窗口,min,mid,max曝光窗口的值,用于检查界面显示切换曝光窗口的图标的样子
  1704. //
  1705. //---------------------------------------------------------------------------------------
  1706. typedef struct tagPanelXRayWindowInfo
  1707. {
  1708. int nCurrentXRayWindow; //平板当前的曝光窗口
  1709. int nMinXRayWindow; //平板支持的最小的曝光窗口
  1710. int nMidXRayWindow; //平板支持的中间大小的曝光窗口
  1711. int nMaxXRayWindow; //平板支持的最大的曝光窗口
  1712. int nConfXWindowMode; //DROC配置的曝光窗口模式
  1713. tagPanelXRayWindowInfo& operator =(const tagPanelXRayWindowInfo &PanelXRayWindow)
  1714. {
  1715. nCurrentXRayWindow = PanelXRayWindow.nCurrentXRayWindow;
  1716. nMinXRayWindow = PanelXRayWindow.nMinXRayWindow;
  1717. nMidXRayWindow = PanelXRayWindow.nMidXRayWindow;
  1718. nMaxXRayWindow = PanelXRayWindow.nMaxXRayWindow;
  1719. nConfXWindowMode = PanelXRayWindow.nConfXWindowMode;
  1720. return *this;
  1721. }
  1722. }ECOM_PANEL_XRAY_WINDOW_INFO;
  1723. //code begin 20140808
  1724. //typedef struct tagImageEXI
  1725. //{
  1726. // int nImageStandardEXI; //图像标准EXI
  1727. // int nImageReferenceEXI; //图像参考EXI
  1728. //
  1729. //}ECOM_IMAGE_EXI;
  1730. typedef struct tagImageEXI
  1731. {
  1732. float fImageStandardEXI; //图像标准EXI
  1733. float fImageReferenceEXI; //图像参考EXI
  1734. }ECOM_IMAGE_EXI;
  1735. //code begin 20140808
  1736. //---------------------------------------------------------------------------------------
  1737. // 作 者:张锋
  1738. // 日 期:2015-06-12
  1739. // 结构名称:ECOM_DUALENERGY_PARAMENT
  1740. // 说明说明:保存探测器当前的曝光窗口,min,mid,max曝光窗口的值,用于检查界面显示切换曝光窗口的图标的样子
  1741. //
  1742. //---------------------------------------------------------------------------------------
  1743. typedef struct tagGenDualEnergyParameter
  1744. {
  1745. int nWS;
  1746. int nET;
  1747. int nFO;
  1748. int nAECFieldSel;
  1749. float fAECDensity;
  1750. float fKV;
  1751. float fMA;
  1752. float fMS;
  1753. float fMAS;
  1754. float fPostMS;
  1755. float fPostMAS; //DROC配置的曝光窗口模式
  1756. float fDAP; //DROC配置的曝光窗口模式
  1757. tagGenDualEnergyParameter()
  1758. {
  1759. nWS=0;
  1760. nET=0;
  1761. nFO=0;
  1762. nAECFieldSel=0;
  1763. fAECDensity=0.0;
  1764. fKV=0.0;
  1765. fMA=0.0;
  1766. fMS=0.0;
  1767. fMAS=0.0;
  1768. fPostMS=0.0;
  1769. fPostMAS=0.0;
  1770. fDAP=0.0;
  1771. }
  1772. tagGenDualEnergyParameter& operator =(const tagGenDualEnergyParameter &GenDualEnergyParameter)
  1773. {
  1774. nWS = GenDualEnergyParameter.nWS;
  1775. nET = GenDualEnergyParameter.nET;
  1776. nFO = GenDualEnergyParameter.nFO;
  1777. nAECFieldSel = GenDualEnergyParameter.nAECFieldSel;
  1778. fAECDensity = GenDualEnergyParameter.fAECDensity;
  1779. fKV = GenDualEnergyParameter.fKV;
  1780. fMA = GenDualEnergyParameter.fMA;
  1781. fMS = GenDualEnergyParameter.fMS;
  1782. fMAS = GenDualEnergyParameter.fMAS;
  1783. fPostMS = GenDualEnergyParameter.fPostMS;
  1784. fPostMAS = GenDualEnergyParameter.fPostMAS;
  1785. fDAP = GenDualEnergyParameter.fDAP;
  1786. return *this;
  1787. }
  1788. }ECOM_GENDUALENERGYPARAMETER;
  1789. typedef struct tagShockSensor
  1790. {
  1791. CString strSN;
  1792. CString strDate;
  1793. int nLevel;
  1794. tagShockSensor& operator =(const tagShockSensor &ShockSensor)
  1795. {
  1796. strSN.Format("%s", ShockSensor.strSN);
  1797. strDate.Format("%s", ShockSensor.strDate);
  1798. nLevel = ShockSensor.nLevel;
  1799. return *this;
  1800. }
  1801. }ECOM_SHOCK_SENSOR;
  1802. typedef struct tagECOM_FPD_INFO
  1803. {
  1804. CString strPanelType;
  1805. CString strSN;
  1806. CString strIPAddress;
  1807. CString strCalibrationDate;
  1808. CString strBatteryValue;
  1809. CString strWifiValue;
  1810. CString strTemperature;
  1811. CString strShockCounts;
  1812. CString strAvailableStorage;
  1813. CString strWorkstation;
  1814. CString strConnectFlag;
  1815. CString strAutonumous;
  1816. tagECOM_FPD_INFO()
  1817. {
  1818. strPanelType = "";
  1819. strSN = "";
  1820. strIPAddress = "";
  1821. strCalibrationDate = "";
  1822. strBatteryValue = "";
  1823. strWifiValue = "";
  1824. strTemperature = "";
  1825. strShockCounts = "";
  1826. strAvailableStorage = "";
  1827. strWorkstation = "";
  1828. strConnectFlag = "";
  1829. strAutonumous = "";
  1830. }
  1831. tagECOM_FPD_INFO& operator =(const tagECOM_FPD_INFO &tagFPDInfo)
  1832. {
  1833. strPanelType.Format("%s", tagFPDInfo.strPanelType);
  1834. strSN.Format("%s", tagFPDInfo.strSN);
  1835. strIPAddress.Format("%s", tagFPDInfo.strIPAddress);
  1836. strCalibrationDate.Format("%s", tagFPDInfo.strCalibrationDate);
  1837. strBatteryValue.Format("%s", tagFPDInfo.strBatteryValue);
  1838. strWifiValue.Format("%s", tagFPDInfo.strWifiValue);
  1839. strTemperature.Format("%s", tagFPDInfo.strTemperature);
  1840. strShockCounts.Format("%s", tagFPDInfo.strShockCounts);
  1841. strAvailableStorage.Format("%s", tagFPDInfo.strAvailableStorage);
  1842. strWorkstation.Format("%s", tagFPDInfo.strWorkstation);
  1843. strConnectFlag.Format("%s", tagFPDInfo.strConnectFlag);
  1844. strAutonumous.Format("%s", tagFPDInfo.strAutonumous);
  1845. return *this;
  1846. }
  1847. }ECOM_FPD_INFO;