CommonData.h 73 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096
  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. EM_QC,
  1598. EM_VET_QUICK,
  1599. EM_TOMO,
  1600. } HW_EXPOSURE_MDOE;
  1601. //---------------------------------------------------------------------------------------
  1602. // 作 者:宋兴亮
  1603. // 日 期:2013-09-13
  1604. // 结构名称:ECOM_PANEL_UNIQUE_INFO
  1605. // 说明说明:用来保存探测器特有的信息,目前应用于varian平板
  1606. //
  1607. //---------------------------------------------------------------------------------------
  1608. typedef struct tagPanelUniqueInfo
  1609. {
  1610. int nColumn; // 影像原始宽
  1611. int nRow; // 影像原始高
  1612. int nMxPixelValue; // 影像大小(总数据位)
  1613. int nLinesPerPixel; // 每行包含几个像素
  1614. int nColsPerPixel; //每列包含几个像素
  1615. CString strPleoraVersion; //Pleora 版本信息
  1616. CString strVirtCpVersion; //瓦里安主dll版本信息
  1617. CString strPaneloprVersion; //ECOM平板dll版本信息
  1618. CString strDetectorType; //瓦里安平板类型
  1619. int nReceptorType; // Receptor类型
  1620. CString strModeDescription; //当前模式
  1621. CString strSysDescription; //瓦里安驱动软件系统信息
  1622. tagPanelUniqueInfo& operator =(const tagPanelUniqueInfo &PanelInfo)
  1623. {
  1624. nColumn = PanelInfo.nColumn;
  1625. nRow = PanelInfo.nRow;
  1626. nMxPixelValue = PanelInfo.nMxPixelValue;
  1627. nLinesPerPixel = PanelInfo.nLinesPerPixel; // 每行包含几个像素
  1628. nColsPerPixel = PanelInfo.nColsPerPixel;
  1629. strPleoraVersion.Format("%s", PanelInfo.strPleoraVersion);
  1630. strPaneloprVersion.Format("%s", PanelInfo.strPaneloprVersion);
  1631. strVirtCpVersion.Format("%s", PanelInfo.strVirtCpVersion);
  1632. strDetectorType.Format("%s", PanelInfo.strDetectorType);
  1633. nReceptorType = PanelInfo.nReceptorType;
  1634. strModeDescription.Format("%s", PanelInfo.strModeDescription);
  1635. strSysDescription.Format("%s", PanelInfo.strSysDescription);
  1636. return *this;
  1637. }
  1638. }ECOM_PANEL_UNIQUE_INFO;
  1639. //---------------------------------------------------------------------------------------
  1640. // 作 者:郑丽华
  1641. // 日 期:2013-10-23
  1642. // 枚举名称:ECOM_DYN_CHANNEL_TYPE
  1643. // 枚举说明:DYN通道类型
  1644. //---------------------------------------------------------------------------------------
  1645. typedef enum
  1646. {
  1647. DYN_DI,
  1648. DYN_DO,
  1649. DYN_ALL
  1650. }ECOM_DYN_CHANNEL_TYPE;
  1651. //---------------------------------------------------------------------------------------
  1652. // 作 者:郑丽华
  1653. // 日 期:2013-10-23
  1654. // 结构名称:ECOM_DYN_CHANNEL_MAP
  1655. // 结构说明:DYN通道ID与名称之间的Map信息
  1656. //---------------------------------------------------------------------------------------
  1657. typedef struct tagECOMDYNChannelMap
  1658. {
  1659. CString strVer;
  1660. CString strChannelName[32];
  1661. ECOM_DYN_CHANNEL_TYPE eChanneltype[32];
  1662. UCHAR cChannelID[32];
  1663. tagECOMDYNChannelMap& operator =(const tagECOMDYNChannelMap &ChannelMap)
  1664. {
  1665. strVer = ChannelMap.strVer;
  1666. for(int i=0;i<32;i++)
  1667. {
  1668. strChannelName[i] = ChannelMap.strChannelName[i];
  1669. eChanneltype[i] = ChannelMap.eChanneltype[i];
  1670. cChannelID[i] = ChannelMap.cChannelID[i];
  1671. }
  1672. return *this;
  1673. }
  1674. } ECOM_DYN_CHANNEL_MAP;
  1675. //---------------------------------------------------------------------------------------
  1676. // 作 者:郑丽华
  1677. // 日 期:2013-10-23
  1678. // 结构名称:ECOM_DYN_IO_CONF
  1679. // 结构说明:DYN通道设置
  1680. //---------------------------------------------------------------------------------------
  1681. typedef struct tagECOMDYNIOConfigure
  1682. {
  1683. CString strVer;
  1684. UCHAR unSet1[4][32];
  1685. UCHAR unSet2[4][32];
  1686. UCHAR unSet3[4][32];
  1687. UCHAR unRelay1[4][32];
  1688. UCHAR unRelay2[4][32];
  1689. UCHAR unRelay3[4][32];
  1690. tagECOMDYNIOConfigure& operator =(const tagECOMDYNIOConfigure &IOConf)
  1691. {
  1692. strVer = IOConf.strVer;
  1693. memcpy((void *)&unSet1,(void *)&IOConf.unSet1,32*4);
  1694. memcpy((void *)&unSet2,(void *)&IOConf.unSet2,32*4);
  1695. memcpy((void *)&unSet3,(void *)&IOConf.unSet3,32*4);
  1696. memcpy((void *)&unRelay1,(void *)&IOConf.unRelay1,32*4);
  1697. memcpy((void *)&unRelay2,(void *)&IOConf.unRelay2,32*4);
  1698. memcpy((void *)&unRelay3,(void *)&IOConf.unRelay3,32*4);
  1699. return *this;
  1700. }
  1701. } ECOM_DYN_IO_CONF;
  1702. //---------------------------------------------------------------------------------------
  1703. // 作 者:宋兴亮
  1704. // 日 期:2014-03-24
  1705. // 结构名称:ECOM_PANEL_XRAY_WINDOW_INFO
  1706. // 说明说明:保存探测器当前的曝光窗口,min,mid,max曝光窗口的值,用于检查界面显示切换曝光窗口的图标的样子
  1707. //
  1708. //---------------------------------------------------------------------------------------
  1709. typedef struct tagPanelXRayWindowInfo
  1710. {
  1711. int nCurrentXRayWindow; //平板当前的曝光窗口
  1712. int nMinXRayWindow; //平板支持的最小的曝光窗口
  1713. int nMidXRayWindow; //平板支持的中间大小的曝光窗口
  1714. int nMaxXRayWindow; //平板支持的最大的曝光窗口
  1715. int nConfXWindowMode; //DROC配置的曝光窗口模式
  1716. tagPanelXRayWindowInfo& operator =(const tagPanelXRayWindowInfo &PanelXRayWindow)
  1717. {
  1718. nCurrentXRayWindow = PanelXRayWindow.nCurrentXRayWindow;
  1719. nMinXRayWindow = PanelXRayWindow.nMinXRayWindow;
  1720. nMidXRayWindow = PanelXRayWindow.nMidXRayWindow;
  1721. nMaxXRayWindow = PanelXRayWindow.nMaxXRayWindow;
  1722. nConfXWindowMode = PanelXRayWindow.nConfXWindowMode;
  1723. return *this;
  1724. }
  1725. }ECOM_PANEL_XRAY_WINDOW_INFO;
  1726. //code begin 20140808
  1727. //typedef struct tagImageEXI
  1728. //{
  1729. // int nImageStandardEXI; //图像标准EXI
  1730. // int nImageReferenceEXI; //图像参考EXI
  1731. //
  1732. //}ECOM_IMAGE_EXI;
  1733. typedef struct tagImageEXI
  1734. {
  1735. float fImageStandardEXI; //图像标准EXI
  1736. float fImageReferenceEXI; //图像参考EXI
  1737. }ECOM_IMAGE_EXI;
  1738. //code begin 20140808
  1739. //---------------------------------------------------------------------------------------
  1740. // 作 者:张锋
  1741. // 日 期:2015-06-12
  1742. // 结构名称:ECOM_DUALENERGY_PARAMENT
  1743. // 说明说明:保存探测器当前的曝光窗口,min,mid,max曝光窗口的值,用于检查界面显示切换曝光窗口的图标的样子
  1744. //
  1745. //---------------------------------------------------------------------------------------
  1746. typedef struct tagGenDualEnergyParameter
  1747. {
  1748. int nWS;
  1749. int nET;
  1750. int nFO;
  1751. int nAECFieldSel;
  1752. float fAECDensity;
  1753. float fKV;
  1754. float fMA;
  1755. float fMS;
  1756. float fMAS;
  1757. float fPostMS;
  1758. float fPostMAS; //DROC配置的曝光窗口模式
  1759. float fDAP; //DROC配置的曝光窗口模式
  1760. tagGenDualEnergyParameter()
  1761. {
  1762. nWS=0;
  1763. nET=0;
  1764. nFO=0;
  1765. nAECFieldSel=0;
  1766. fAECDensity=0.0;
  1767. fKV=0.0;
  1768. fMA=0.0;
  1769. fMS=0.0;
  1770. fMAS=0.0;
  1771. fPostMS=0.0;
  1772. fPostMAS=0.0;
  1773. fDAP=0.0;
  1774. }
  1775. tagGenDualEnergyParameter& operator =(const tagGenDualEnergyParameter &GenDualEnergyParameter)
  1776. {
  1777. nWS = GenDualEnergyParameter.nWS;
  1778. nET = GenDualEnergyParameter.nET;
  1779. nFO = GenDualEnergyParameter.nFO;
  1780. nAECFieldSel = GenDualEnergyParameter.nAECFieldSel;
  1781. fAECDensity = GenDualEnergyParameter.fAECDensity;
  1782. fKV = GenDualEnergyParameter.fKV;
  1783. fMA = GenDualEnergyParameter.fMA;
  1784. fMS = GenDualEnergyParameter.fMS;
  1785. fMAS = GenDualEnergyParameter.fMAS;
  1786. fPostMS = GenDualEnergyParameter.fPostMS;
  1787. fPostMAS = GenDualEnergyParameter.fPostMAS;
  1788. fDAP = GenDualEnergyParameter.fDAP;
  1789. return *this;
  1790. }
  1791. }ECOM_GENDUALENERGYPARAMETER;
  1792. typedef struct tagShockSensor
  1793. {
  1794. CString strSN;
  1795. CString strDate;
  1796. int nLevel;
  1797. tagShockSensor& operator =(const tagShockSensor &ShockSensor)
  1798. {
  1799. strSN.Format("%s", ShockSensor.strSN);
  1800. strDate.Format("%s", ShockSensor.strDate);
  1801. nLevel = ShockSensor.nLevel;
  1802. return *this;
  1803. }
  1804. }ECOM_SHOCK_SENSOR;
  1805. typedef struct tagECOM_FPD_INFO
  1806. {
  1807. CString strPanelType;
  1808. CString strSN;
  1809. CString strIPAddress;
  1810. CString strCalibrationDate;
  1811. CString strBatteryValue;
  1812. CString strWifiValue;
  1813. CString strTemperature;
  1814. CString strShockCounts;
  1815. CString strAvailableStorage;
  1816. CString strWorkstation;
  1817. CString strConnectFlag;
  1818. CString strAutonumous;
  1819. tagECOM_FPD_INFO()
  1820. {
  1821. strPanelType = "";
  1822. strSN = "";
  1823. strIPAddress = "";
  1824. strCalibrationDate = "";
  1825. strBatteryValue = "";
  1826. strWifiValue = "";
  1827. strTemperature = "";
  1828. strShockCounts = "";
  1829. strAvailableStorage = "";
  1830. strWorkstation = "";
  1831. strConnectFlag = "";
  1832. strAutonumous = "";
  1833. }
  1834. tagECOM_FPD_INFO& operator =(const tagECOM_FPD_INFO &tagFPDInfo)
  1835. {
  1836. strPanelType.Format("%s", tagFPDInfo.strPanelType);
  1837. strSN.Format("%s", tagFPDInfo.strSN);
  1838. strIPAddress.Format("%s", tagFPDInfo.strIPAddress);
  1839. strCalibrationDate.Format("%s", tagFPDInfo.strCalibrationDate);
  1840. strBatteryValue.Format("%s", tagFPDInfo.strBatteryValue);
  1841. strWifiValue.Format("%s", tagFPDInfo.strWifiValue);
  1842. strTemperature.Format("%s", tagFPDInfo.strTemperature);
  1843. strShockCounts.Format("%s", tagFPDInfo.strShockCounts);
  1844. strAvailableStorage.Format("%s", tagFPDInfo.strAvailableStorage);
  1845. strWorkstation.Format("%s", tagFPDInfo.strWorkstation);
  1846. strConnectFlag.Format("%s", tagFPDInfo.strConnectFlag);
  1847. strAutonumous.Format("%s", tagFPDInfo.strAutonumous);
  1848. return *this;
  1849. }
  1850. }ECOM_FPD_INFO;
  1851. //---------------------------------------------------------------------------------------
  1852. // 作 者:杨硕
  1853. // 日 期:2020-01-14
  1854. // 结构名称:HW_FPD_CONTEXT_TYPE, HW_FPD_FILTER_TYPE
  1855. // 说明说明:曝光检测类型,目前应用于Analogic乳腺平板Context和filter设置
  1856. //
  1857. //---------------------------------------------------------------------------------------
  1858. typedef enum
  1859. {
  1860. HW_FPD_CONTEXT_TYPE_CONTACT = 0,
  1861. HW_FPD_CONTEXT_TYPE_MAG,
  1862. HW_FPD_CONTEXT_TYPE_STEREO
  1863. } HW_FPD_CONTEXT_TYPE;
  1864. typedef enum
  1865. {
  1866. HW_FILTER_TYPE_MO_MO = 0, //钼靶 钼滤过
  1867. HW_FILTER_TYPE_MO_RH, //钼靶 铑滤过
  1868. HW_FILTER_TYPE_W_RH //钨靶 铑滤过
  1869. } HW_FPD_FILTER_TYPE;
  1870. //---------------------------------------------------------------------------------------
  1871. // 作 者:杨硕
  1872. // 日 期:2020-01-14
  1873. // 结构名称:ECOM_PANEL_EXPOSURE_PROPERTIES
  1874. // 说明说明:保存探测器当前的曝光环境参数,目前用于Analogic DMOC探测器
  1875. //
  1876. //---------------------------------------------------------------------------------------
  1877. typedef struct tagPanelExposureProperties
  1878. {
  1879. int nContext; //曝光模式,0:Contact;1:Mag;2:Stereo
  1880. int nFilter; //靶、滤过类型,0:Mo/Mo;1:Mo/Rh;2:W/Rh
  1881. int nIsAec; //Aec、Manual模式,0:Manual;1:Aec
  1882. tagPanelExposureProperties& operator =(const tagPanelExposureProperties &PanelExposureProperties)
  1883. {
  1884. nContext = PanelExposureProperties.nContext;
  1885. nFilter = PanelExposureProperties.nFilter;
  1886. nIsAec = PanelExposureProperties.nIsAec;
  1887. return *this;
  1888. }
  1889. }ECOM_PANEL_EXPOSURE_PROPERTIES;