invesalius estudo de caso 3
TRANSCRIPT
-
7/25/2019 InVesalius Estudo de Caso 3
1/44
UNIVERSIDADE FEDERAL DE LAVRAS
Uma sugesto para o desenvolvimento de software baseado noprotoolo DI!"#$ !aso Invesalius
SAUL" ALDI%&IERI #"RAES
LAVRASMINAS GERAIS BRASIL
2008
-
7/25/2019 InVesalius Estudo de Caso 3
2/44
SAUL" ALDI%&IERI #"RAES
Uma sugesto para o desenvolvimento de software baseado noprotoolo DI!"#$ !aso Invesalius
Monografia apresentada ao Departamento de Cin!ia da Comp"ta#$oda %ni&ersidade 'edera( de La&ras) !omo parte das e*ign!ias do!"rso de +,s-Grad"a#$o Lato Sens" em +rod"#$o de Soft.are Li&re)
para a o/ten#$o do tt"(o de espe!ia(i1a#$o
3rientadora+rofessora 4nge(a Maria A(&es
LAVRASMINAS GERAIS BRASIL
2008
-
7/25/2019 InVesalius Estudo de Caso 3
3/44
SAUL" ALDI%&IERI #"RAES
Uma sugesto para o desenvolvimento de software baseado noprotoolo DI!"#$ !aso Invesalius
Monografia apresentada ao Departamento de Cin!ia da Comp"ta#$oda %ni&ersidade 'edera( de La&ras) !omo parte das e*ign!ias do!"rso de +,s-Grad"a#$o Lato Sens" em +rod"#$o de Soft.are Li&re)
para a o/ten#$o do tt"(o de espe!ia(i1a#$o
A+R3VADA em 5555 de 55555555555 de 55555
+rof 55555555555555555555555555555555
+rof 55555555555555555555555555555555
+rof 55555555555555555555555555555555555555%'LA
63rientador7
LAVRASMINAS GERAIS BRASIL
2008
-
7/25/2019 InVesalius Estudo de Caso 3
4/44
Dedico este trabalho a todos quecolaboram com o software InVesalius,
direta ou indiretamente.
-
7/25/2019 InVesalius Estudo de Caso 3
5/44
AGRADECIMENTOS
Primeiramente agradeo Deus pela oportunidade de fazer este trabalho.
A professora ngela !aria Al"es que nos direcionou corretamente para
iniciarmos todo esse trabalho.
Agradeo aos meus amigos Ant#nio, $ernando, $l%"io e &andro pela "ontade
e paci'ncia que demonstraram nesse pro(eto.
) agradeo a &imone, minha namorada, que me a(udou e incenti"ou a concluir
este trabalho.
-
7/25/2019 InVesalius Estudo de Caso 3
6/44
SU#'RI"
LISTA DE FIGURAS........................................................................................................1
LISTA DE TABELAS.......................................................................................................21. INTRODUO.............................................................................................................4
2. InVesalius...................................................................................................................... 5
3. DICOM..........................................................................................................................6
3.1 Histria.................................................................................................................... 6
3.2 Definio..................................................................................................................7
3.3 Picture Archiving and Communications Systems (PACS)....................................10
4 Modelos de Interface de Comunicao para o InVesalius.........................................11
4.1 A proposta do projeto............................................................................................ 11
4.2 Modelos de Interface de Comunicao para o InVesalius.........................................13
4.2.1.1 UCDMC...................................................................................................14
4.2.1.2 pydicomlib............................................................................................... 14
4.2.1.3 dcmtk....................................................................................................... 14
4.2.1.4 openDICOM.NET................................................................................... 15
4.2.1.5 Charrua DICOM Toolkit ........................................................................ 15
4.2.1.6 DCF (DICOM Connectivity Framework)................................................15
4.2.1.7 Imebra...................................................................................................... 16
4.2.1.8 Lista de Referncia.................................................................................. 16
4.3 Implementar a comunicao do protocolo DICOM usando socket.......................17
4.4 Implementar a comunicao do protocolo DICOM usando Twisted Framework eWADO.........................................................................................................................19
5 Arquitetura da Comunicao do InVesalius com a PACS........................................ 20
6 - Concluso...................................................................................................................24
7. REFERNCIAS BIBLIOGRAFICAS ........................................................................25
ANEXOS.........................................................................................................................26
ANEXO A Modalidades DICOM.................................................................................27
ANEXO B Documento de Estrias.............................................................................. 28
Desenvolvimento do Sistema de comunicao via Internet que possibilitar aimportao de dados para o software InVesalius.............................................................28
(Demanda de desenvolvimento do InVesalius: Software Pblico Brasileiro).................28
ANEXO C Cdigo fonte do A_Associate_RQ desenvolvido pelo CTI....................... 35
-
7/25/2019 InVesalius Estudo de Caso 3
7/44
LISTA DE FIGURAS
Figura 1. Principais bibliotecas e ferramentas usadas no InVesalius................................ 5
Figura 2. Exemplo da estrutura de um arquivo DICOM................................................... 7
Figura 3 Composio do Service-Object Pair (SOP)....................................................10
Figura 4. Arquitetura de uma PACS................................................................................11
Figura 5. Wado Interface................................................................................................. 19
Figura 6. Estabelecimento de Comunicao A-Associate............................................... 20
1
-
7/25/2019 InVesalius Estudo de Caso 3
8/44
LISTA DE TABELAS
Tabela 1 Exemplo de Classes de Servios......................................................................9
Tabela 2 Service-Object Pair UIDs.............................................................................. 10
Tabela 3 Lista de Frameworks e bibliotecas DICOM.................................................. 17
2
-
7/25/2019 InVesalius Estudo de Caso 3
9/44
Sistema de importao de dados de clnicas radiolgicas para
o projeto InVesalius: Proposta Para a Interface DeComunicao
Saulo Aldighieri Moraes
Departamento de Cincia e Computao Universidade Federal de Lavras (UFLA)Caixa Postal 3142 37.200-000 Lavras MG Brasil
Abstract. This monograph examining proposals for the development of a
communication interface to be part of the project ponto DICOM allowing the
importation of data from clinical radiology to InVesalius. In addition to the
proposals is also exemplified how the code can be built.
Resumo. Esta monografia analisa propostas para o desenvolvimento da
interface de comunicao que ser parte do projeto ponto DICOM que
permitir a importao de dados de clnicas radiolgicas no InVesalius. Alm
das propostas tambm exemplificado como o cdigo pode ser construdo.
3
-
7/25/2019 InVesalius Estudo de Caso 3
10/44
() IN*R"DU+,"
Com o o/eti&o de desen&o(&er "m proeto de soft.are (i&re) re"ni"-se "ma e9"ipe dea("nos da %'LA) atra&:s da professora orientadora 4nge(a Maria A(&es) para rea(i1ar"m !ontato !om "m dos respons;&eis pe(o porta( do Soft.are +e!no(ogia da Informa#$o RenatoAr!=er) !on=e!ido !omo C>I Dentro das propostas do InVesa(i"s) 9"e : "m soft.are"sado na &is"a(i1a#$o de imagens m:di!as) =a&iam trs demandas de desen&o(&imentoda 9"a( foi es!o(=ido desen&o(&er "m Sistema de Importa#$o de Dados de C(ni!asRadio(,gi!as
Neste !en;rio o proeto se !onsiste em !riar "m m,d"(o para o InVesa(i"s 9"eadi!ionar; a f"n!iona(idade de importar e e*portar imagens de ser&idores +ACS) 9"es$o ser&idores 9"e arma1enam imagens m:di!as
A e9"ipe foi formado por ? a("nos) onde !ada "m se en!arrego" de e(a/orar ep(anear "ma parte do desen&o(&imento) assim este tra/a(=o : parte de "m !on"nto de ?monografias 9"e &isam ser "m ponto de refern!ia para o desen&o(&imento da !amadade !om"ni!a#$o do InVesa(i"s Neste tra/a(=o : des!rito poss&eis maneiras de sedesen&o(&er o !,digo do proto!o(o de !om"ni!a#$o) "ti(i1ando /i/(iote!as e frame.or@sdispon&eis no mer!ado E nas o"tras monografias s$o dis!"tidos o pro!esso dedesen&o(&imento +) 9"e ser; "ti(i1ado para a !ria#$o deste soft.are) a !amada deinterfa!e gr;fi!a !om o "s";rio e tam/:m "ma dis!"ss$o so/re todos os soft.ares e
pro!esso de !onfig"ra#$o referente ao InVesa(i"s e os ser&idores +ACS
Em !apt"(os : a/ordada a /ase para o desen&o(&imento) fa1endo "mades!ri#$o so/re o InVesa(i"s) o proto!o(o DIC3M) estr"t"ra do ar9"i&o e tipo de ser&i#oe !om"ni!a#$o) /i/(iote!as (i&res e propriet;rias 9"e a"dam na imp(ementa#$o e a
prop,sta fina(
3 te*to a seg"ir : estr"t"rado da seg"inte forma
!ap-tulo ./ InVesalius) o o/eti&o : apresentar o InVesa(i"s fa1endo "maa/ordagem r;pida dos se"s !on!eitos e id:ias para "ma !ompreens$o me(=or dotra/a(=o
No !ap-tulo 0/ DI!"#/ o ob1etivo 2 apresentar o DI!"#) a/ordando s"a
estr"t"ra de f"n!ionamento e as f"n!iona(idades de !om"ni!a#$o em "ma redeNo !ap-tulo 3/ #odelos de Interfae de !omunia4o para o InVesalius ) o
o/eti&o : apresentar id:ias e ferramentas 9"e possam a"dar na imp(ementa#$o de "mainterfa!e de !om"ni!a#$o
No !ap-tulo 5/ Ar6uitetura da !omunia4o do InVesalius om a 7A!S) oo/eti&o : propor o mode(o de !om"ni!a#$o 9"e ser; desen&o(&ido
'ina(mente no !ap-tulo 8/ !onluso) proposi#$o fina( 9"e se !=ega ap,sdesen&o(&ermos este proeto
Proceedings of the XII SIBGRAPI (October 1999) 101-104
-
7/25/2019 InVesalius Estudo de Caso 3
11/44
.) InVesalius
3 InVesa(i"s : "ma ferramenta 9"e fa1 re!onstr"#$o D de imagens m:di!as "ti(i1andoimagens 2D) o 9"e torna a prototipagem mais r;pida) at"a(mente : mantido pe(o C>I6antigo CEN+RA7) : distri/"do so/ a (i!en#a GN% G+L &2 e est; dispon&e( paraMi!rosoft indo.s e Lin"* tanto na &ers$o F !omo na &ers$o 2
3 nome dado ao soft.are InVesa(i"s foi "ma =omenagem a Andreas Vesalius6Br"*e(as) F de De1em/ro de FF? - ;@int=os) FH?7) "m m:di!o /e(ga !onsiderado opai da anatomia modernaJ e a"tor da p"/(i!a#$oDe Humani Corporis Fbrica) "mfamoso (i&ro de anatomia p"/(i!ado em F?
Koe em dia =; &;rias ferramentas !om o mesmo o/eti&o do InVesa(i"s) !omo oAnalyzedesen&o(&ido pe(oMayo Clinice oMimicsdesen&o(&ido pe(aMaterialize Masesses soft.ares poss"em (i!en#a e man"ten#$o m"ito !aras o 9"e os tornam in&i;&eis
para os =ospitais /rasi(eiros
Assim !om o InVesa(i"s) !ir"rgies e est"dantes de medi!ina podem "sar dadosde top,grafos e apare(=os de ressonn!ia magn:ti!a) 9"e e*portem para "m formatodigita( espe!fi!o de imagem) para fa1erem pes9"isa e prototipagem r;pida em mode(ostridimensionais de !raniofa!iais por e*emp(o) fa!i(itando assim o p(aneamento edo!"menta#$o do pro!edimentos !irQ e Slicer 3D 3 V>Q 6Visualization ToolKit7
: "ma /i/(iote!a 9"e e*e!"ta f"n#es gr;fi!as : orientado a o/etos) es!rito em COO em"(ti-p(ataforma) no InVesa(i"s : "sado gerando-se "m rapperpara +t=on
3 Slicer 3D: "sado) apesar de n$o e*istir "m rapperofi!ia( para o +t=on 2)foi rea(i1ado a(tera#es no !,digo origina( e foi gerado "m rapperdo Slicer 3D"ntoao V>Q) assim o Slicer 3D: "sado em f"n#es !omo !ria#$o de m;s!aras so/re
imagens /idimensionais e para (eit"ra de ar9"i&os DIC3M
5
-
7/25/2019 InVesalius Estudo de Caso 3
12/44
+ara rea(i1ar as e9"a#es matem;ti!as) man"p"(a#$o simp(es de dados dasimagens e opera#es espe!fi!as do sistema foram "sadas a N"m+) +IL 6+t=onImaging Li/rar7 e p.in2) respe!ti&amente
3 .*+t=on s"/stit"i" o >@inter) a partir da &ers$o 2 do InVesa(i"s) e passo" aser "sado para gerar a interfa!e gr;fi!a de intera#$o !om o "s";rio) a &antagem : 9"e o.*+t=on) "m rapperdo *idget : a maior porta/i(idade e !omo o .*idgets"ti(i1a "m rapperso/re a /i/(iote!a gr;fi!a padr$o do sistema opera!iona( 6G>Q noLin"* e M'C no indo.s7 a ap(i!a#$o fi!a !om a aparn!ia nati&a 6 loo! and "eel7 doSistema 3pera!iona(
0) DI!"#
DIC3M 6Di#ital $ma#in# Communications in Medicine7 : "m padr$o 9"e define "mformato de ar9"i&o de imagem e proto!o(o de !om"ni!a#$o em "ma rede) "sado para
tratamento) arma1enamento) impress$o e transmiss$o de informa#$o m:di!a n"mformato e(etrni!o
Com este padr$o podemos tro!ar informa#es entre os e9"ipamentos dediagn,sti!o geradores de imagens) !omp"tadores e =ospitais) !riando se assim "ma(ing"agem !om"m entre os e9"ipamentos de mar!as diferentes) 9"e gera(mente n$o s$o!ompat&eis) e entre e9"ipamentos de imagem e !omp"tadores) esteam esses em=ospitais) !(ni!as o" (a/orat,rios
3 proto!o(o de !om"ni!a#$o padr$o "ti(i1ado para se !om"ni!ar !om o"trossistemas : o >C+PI+) assim ar9"i&os DIC3M podem ser tro!ados entre doisdispositi&os) at"a(mente o InVesa(i"s "ti(i1a apenas a espe!ifi!a#$o de defini#$o de
imagem do DIC3M) para a partir de &;rias imagens em d"as dimenses 2D !riarmode(os tridimensionais
0)( &ist9ria
At: meados de FT80) !ada fa/ri!ante de e9"ipamentos m:di!os tin=a 9"e !riar o se"pr,prio proto!o(o para tro!a de dados entre as m;9"inas m:di!as e os !omp"tadores)isso signifi!a 9"e a !om"ni!a#$o e*istia apenas entre prod"tos de mesmo fa/ri!ante 39"e gera&a grandes !"stos e esfor#o para integra#$o de e9"ipamentos de o"trosfa/ri!antes
+ara reso(&er este pro/(ema) em FT8 o ACR 6American Colle#e o"%adiolo#ists7 e o NEMA 6&ational 'lectrical Manu"acturers Association7 formaram "m!omit) oAC%(&'MA Di#ital $ma#in#and Communications Standards Committee) !omo o/eti&o de desen&o(&er "ma interfa!e para !om"ni!a#es entre e9"ipamentos deimagem A(:m da espe!ifi!a#$o de "m proto!o(o de !om"ni!a#$o) o no&o padr$otam/:m de&eria in!("ir "ma espe!ifi!a#$o de arma1enamento da imagem) in!("indo!ompa!ta#$o
Ap,s 2 anos de tra/a(=o) em FT8) a primeira &ers$o do padr$o foi (an#ada)!=amada de ACR-NEMA Version F0 6o" ACR-NEMA 00-FT87) e a partir desta)
&;rias me(=orias foram s"geridas Ent$o em FT88 a ACR-NEMA Version 20 6tam/:m!on=e!ida !omo ACR-NEMA 00-FT887 foi (an#ada
6
-
7/25/2019 InVesalius Estudo de Caso 3
13/44
Com a &ers$o 2 =a&ia a defini#$o de "ma interfa!e entre e9"ipamentos deimagem e a rede) mas os "s";rios 9"eriam e(ementos para "ma !om"ni!a#$o maisro/"sta +or e*emp(o) a &ers$o 2 n$o foi proetada para !one!tar e9"ipamentosdiretamente a "ma rede) por isso o !omit reso(&e" 9"e &erses f"t"ras poderiam n$o ter!ompati/i(idade !om as &erses anteriores
Em FTT o ACR-NEMA DIC3M 6o" apenas DIC3M 07 esta&a !on!("do
0). Defini4o
%m ar9"i&o DIC3M !ont:m !a/e#a(=o e defini#es de imagem 3 !a/e#a(=o poss"iinforma#es !omo nome do pa!iente) tipo de e9"ipamento "sado para gerar a imagem)dimenses da imagem) et! U; as defini#es da imagem poss"em informa#es referentes imagem em si
Ar9"i&os DIC3M tam/:m permitem 9"e as imagens seam !ompa!tadas para
red"1ir o taman=o) para me(=orar o desempen=o na transfern!ia em "ma rede 3s tiposde !ompress$o "sados podem ser as lossy6!om perda de dados7 o" lossless6sem perdade dados7 am/as &ariantes do formato U+EG
No in!io de !ada ar9"i&o) antes do !a/e#a(=o) s$o definido dois &a(ores o+rem/"(o) 9"e s$o os primeiros F28 /tes do ar9"i&o e gera(mente n$o !ont:minforma#es) pois s$o reser&adas para !oment;rios) e em seg"ida temos o +refi*o) 9"e :"m espa#o 9"e &a(ida "m ar9"i&o !omo sendo "m ar9"i&o DIC3M Este poss"i ? /tese de&e ser preen!=ido !om o &a(or DJ) IJ) CJ e MJ Conforme i("strado a imagema/ai*o
Figura .) E:emplo da estrutura de um ar6uivo DI!"#
3 +rem/"(o n$o tem nen="ma estr"t"ra o" formato definido na espe!ifi!a#$odo DIC3M E(e : apenas definido para fa!i(itar o a!esso a imagens e o"tras informa#es
7
-
7/25/2019 InVesalius Estudo de Caso 3
14/44
em ar9"i&os DIC3M pro&idos por diferentes fa/ri!antes de ferramentas 9"e geramar9"i&os DIC3M o" permitir a!esso randmi!o) de a(g"mas ap(i!a#es m"(timdia) ao!onte
-
7/25/2019 InVesalius Estudo de Caso 3
15/44
!=E!&" Ser&i#o "sado para &erifi!ar a !om"ni!a#$o entre os pontos da!one*$o
!=FIND Ser&i#o "sado para fa1er "ma pes9"isar por "ma String
!=%E* Ser&i#o "sado para /"s!ar informa#es em "ma ser&idor DIC3M
!=#"VE Ser&i#o "sado para mo&er dados dentro de "ma /ase de dados
!=S*"RE Ser&i#o "sado para re9"isitar "m arma1enamento
DI#SE=N Servies$
N=!REA*E Ser&i#o "sado para !riar "ma instn!ia de "m I3D
N=%E* Ser&i#o "sado para /"s!ar informa#es de "m o"tro ser&i#o
N=SE* Ser&i#o "sado para modifi!ar informa#es de "m o"tro ser&i#o
N=A!*I"N Ser&i#o "sado para /"s!ar stat"s de o"tro ser&i#o 9"e ; estea em"so
N=DELE*E Ser&i#o "sado para apagar "m I3D espe!fi!o
N=EVEN*=RE7"R* Ser&i#o "sado para fa1er "m a&iso 9"ando "m e&entoa!onte!er
3s DIMSE s$o separados por d"as C(asses de Ser&i#o distintas) o SC% 6Ser.iceClass )ser7 e o SC+ 6Ser.ice Class /ro.ider7) a ta/e(a a/ai*o mostrar "m e*emp(o
Nome Desri4oStorage SC% Dispositi&o 9"e "sa o ser&i#o DIC3M C-
S>3REStorage SC+ Dispositi&o 9"e pro&e o ser&i#o DIC3M
C-S>3REZ"er SC% Dispositi&o 9"e "sa o ser&i#o DIC3M C-
'IND
*abela ( > E:emplo de !lasses de Servi4os
3 SC% e SC+ se referem a "m mode(o !(iente ser&idor) onde o !(iente 6SC%7 :9"em re9"isita o ser&i#o) podendo este ser at: mesmo "m ser&idor de imagemre9"isitando a(go
No DIC3M) esses ser&i#os DIMSE s$o !om/inados !om os I3Ds para gerar osSer.ice(,b-ect /air6S3+7 Isso signifi!a 9"e para se fa1er o arma1enamento de "maimagem) por e*emp(o) : ne!ess;rio 9"e se ten=a o I3D 9"e ser; o o/eto a serarma1enado e o ser&i#o a ser "ti(i1ado para o arma1enamento A fig"ra a/ai*o
representa !omo o S3+ : formado
9
-
7/25/2019 InVesalius Estudo de Caso 3
16/44
Figura 0 > !omposi4o doService-Object Pair?S"7@
+ara !ada DIC3M S3+) tam/:m e*iste "m Identifi!ador [ni!o 6%ID7 e "m
Nome) &ea a(g"ns e*emp(os na ta/e(a a/ai*o
Armaenamento ?Storage Servie !lass@
S"7 !lass Name UID
CR Image Storage F28?0F0008F?FFF
C> Image Storage F28?0F0008F?FF2
%S Image Storage F28?0F0008F?FFH
%S M"(ti-frame Image Storage F28?0F0008F?FF
MR Image Storage F28?0F0008F?FF?
Standa(one 3&er(a Storage F28?0F0008F?FF8
BuerCRetrieve Servie !lass
+atient Root 'ind F28?0F0008F?F2FF
+atient Root Mo&e F28?0F0008F?F2F2
St"d Root 'ind F28?0F0008F?F22F
*abela . > Servie="b1et 7air UIDs
0)0Picture Archiving and Communications Systems?7A!S@
+ACS s$o !omp"tadores e redes dedi!adas a arma1enar imagens m:di!as) onde oformato mais "sado : DIC3M) o "so de ser&idores para arma1enar imagens m:di!aste&e ini!io !om a >omografia Comp"tadori1ada nos anos Y0 e !om o passar dos anoso"tras moda(idades diagn,sti!as 6&er Ane*o A para o/ter a (ista !omp(eta demoda(idades s"portadas no DIC3M7 tam/:m !ome#aram a "sar imagens!omp"tadori1adas
Como o pre#o de so("#es em arma1enamento digita( !ada &e1 menor) o +ACSofere!e menor !"sto a (ongo pra1o) me(=or forma de arma1enamento se !omparado a
imagens radiogr;fi!as e permite "m a!esso r;pido a imagens) o 9"e possi/i(itadiagn,sti!os e est"dos a distn!ia e diferentes instit"i#es !omparti(=ando e a!essandoas mesmas informa#es
3s sistemas +ACS =oe em dia s$o ofere!idos s instit"i#es de sa
-
7/25/2019 InVesalius Estudo de Caso 3
17/44
A ar9"itet"ra de "ma rede +ACS !onsiste /asi!amente de "m ser&idor !entra(9"e se !one!ta &ia LAN o" AN !om os !(ientes e : respons;&e( por arma1enar asimagens +ACS modernas "ti(i1am a internet !omo meio de !om"ni!a#$o e !adaimagem fi!a dispon&e( em "ma "r( diferente) nesses !asos a transfern!ia deinforma#es : feita por V+N 6Virtual /ri.ate &etor!7 o" SSL 6Secure Soc!ets +ayer7
As imagens m:di!as o/tidas atra&:s de e9"ipamentos de "(tra-sonografia)ressonn!ia magn:ti!a) tomografia !omp"tadori1ada) endos!opia) et! s$o en&iadas a"m ser&idor +ACS 6e* o d!m?!=ee7 "ma &e1 arma1enado na +ACS) esse !onteemasdiferentes a/ordando todas as partes ne!ess;rias para a !on!("s$o deste proeto) a/ai*oseg"e a (ista de >emas !riados
+onto DIC3M Re!eptor +onto DIC3M >ransmiss$o
11
-
7/25/2019 InVesalius Estudo de Caso 3
18/44
+onto DIC3M Importar
+onto DIC3M Log de Com"ni!a#$o
+onto DIC3M E*portar
A/ai*o est$o (istadas as Est,rias 9"e est$o diretamente re(a!ionadas ao "so doDIC3M e todas as Est,rias !omp(etas podem ser en!ontradas no Ane*o B
*E#A .$ +onto DIC3M >ransmiss$o
\0H]
Verifi!ar stat"s dos ser&idores
+rioridade
A(ta
Estimati&a
dias
Nome do teste
VerStat"sSer&
Emite "m !omando) para !ada ser&idor) para sa/er o stat"s do mesmo
*E#A 0$ +onto DIC3M Importar
\08]
Cone!tar ao ser&idor +AC
+rioridade
A(ta
Estimati&a
dias
Nome do teste
Cone!Ser&+AC
3 ser&idor 9"e o "s";rio es!o(=er no %S\0Y] de&er; fa1er a"tenti!a#$o no ser&idor
+AC
\0T]
+es9"isa no ser&idor +AC
+rioridade
A(ta
Estimati&a
dias
Nome do teste
+es9Ser&+AC
Ap,s o "s";rio esti&er !one!tado ao ser&idor +AC) e(e poder; fa1er a pes9"isa no
/an!o de dados
\F0]
Importar dados do +AC e arma1enar no !(iente
+rioridade
A(ta
Estimati&a
dias
Nome do teste
ImpArmDados+AC
Ap,s o "s";rio re!e/er a (ista da pes9"isa %S\0T] e !(i!ar no item a(meado) ser;
rea(i1ado a importa#$o dos ar9"i&os mostrados na pes9"isa e arma1enados no diret,rio
12
-
7/25/2019 InVesalius Estudo de Caso 3
19/44
padr$o 9"e foi !onfig"rado no %S\0F]
A(:m das est,rias) o gr"po do C>I) respons;&e( pe(o desen&o(&imento do
InVesa(i"s) e(a/oro" a(g"ns re9"isitos /;si!os para 9"e a imp(ementa#$o sea a!eita!omo parte ofi!ia( do InVesa(i"s) : ne!ess;rio 9"e
>odo !,digo desen&o(&ido estea dispon&e( so/ (i!en#a GN% G+L o" BSD^
Se a(g"ma /i/(iote!a for "sada e(a de&e estar dispon&e( so/ (i!en#a GN% G+Lo" BSD^
>odo !,digo de&e ser desen&o(&ido em +t=on o" de&e =a&er "m /iding para+t=on^
3 !,digo de&e se port;&e( para Mi!rosoft indo.s) GN%PLin"* eop!iona(mente para Ma!3S^
N$o se de&e "sar Ua&a o" o"tra p(ataforma 9"e dependa de "ma &irt"a( ma!=ine
N$o se de&e "sar +K+^
A !om"ni!a#$o !om a +ACS de&e ser !ompat&e( !om a +ACS d!m?!=ee^
3). #odelos de Interfae de !omunia4o para o InVesalius
A proposta de adi!ionar ser&i#os DIC3M de rede ao InVesa(i"s n$o e*ige 9"e seimp(emente todos os ser&i#os da espe!ifi!a#$o) apenas as seg"intes f"n#es s$o
ne!ess;rias A-Asso!iate-RZ
C-E!=o-RZ
C-S>3RE
C-GE>
C-'IND
A-Re(ease-RZ
Dos ser&i#os definidos !omo ne!ess;rios o mais !riti!o : o C-S>3RE) pois tratade "m ar9"i&o m"ito grande para ser en&iado pe(a rede) prin!ipa(mente em (o!ais !om/anda (imitada !omo em m"ito !asos 9"e "ti(i1am internet 3 C-S>3RE neste !aso setrata do en&io do ar9"i&o DIC3M da +ACS para o InVesa(i"s
A/ai*o foram di&ididos em t,pi!os a/ordando poss&eis a(ternati&as a serem"sadas no desen&o(&imento
3).)( Utiliar bibliotea DI!"# 1 e:istente
Nesta a(ternati&a : ana(isada as prin!ipais /i/(iote!as) frame.or@ e ferramentas at"aispara propor !amin=os para fa!i(itar o desen&o(&imento re"ti(i1ando a(g"m !,digo ;
e*istente
13
-
7/25/2019 InVesalius Estudo de Caso 3
20/44
+ois o fato de !odifi!ar "m too(@it seg"indo a espe!ifi!a#$o do DIC3M : m"itodispendiosa e ainda !omo =; &;rios proetos open so"r!e !om este mesmo o/eti&o) essa
proposta se mostra /astante interessante ; 9"e pode permitir a !o(a/ora#$o em a(g"mo"tro proeto
A/ai*o foram (istados a(g"ns too(@its 9"e poss"em o/eti&o de fa!i(itar odesen&o(&imento de ap(i!a#es 9"e en&o(&am o DIC3M A (ista n$o in!("i apenastoo(@its 9"e s"portam tro!a de informa#$o &ia rede mais in!("i todas os too(@its!onsiderados importantes) para 9"e a (ista sir&a !omo refern!ia !omp(eta paradesen&o(&edores de ap(i!a#es 9"e "ti(i1am o DIC3M
3).)()( U!D#!
Desen&o(&ido pe(a %ni&ersidade da Ca(if,rnia) essa imp(ementa#$o tin=a o/eti&o deimp(ementar toda a espe!ifi!a#$o do transporte so/re proto!o(o >C+PI+ do DIC3M)apesar dos esfor#os e(a n$o se torno" "ma /i/(iote!a m"ito "sada mas ser&i" !omorefern!ia e /ase para o desen&o(&imento de &;rias o"tras /i/(iote!as importantes) !omo
o di!om(i/ e a C=arr"a DIC3M >oo(@it 9"e ser$o referen!iados mais adiante
3 %CDMC roda em &;rias p(ataformas) !omo indo.sN>) indo.sN> A(p=aA+) So(aris) S"n3S) Iri* ? MI+S) DEC %(tri* MI+S) Ma!intos= +o.er +C
3).)(). pCdiomlib
3 pdi!om(i/ : "ma /i/(iote!a pt=on) so/ a (i!en#a GN% G+L) !om o o/eti&o defa!i(itar a !ria#$o de s!ripts para tarefas !omo a/rir ar9"i&os DIC3M para (eit"ra emodifi!a#$o o" at: mesmo para se !om"ni!ar !om ser&idores DIC3M atra&:s do C-'IND) C-M3VE) et! at"a(mente s"porta am/ientes Mi!rosoft indo.s +)GN%PLin"* e S"n So(aris
Deri&ada do di!om(i/) "m tool!it rees!rito do %CDMC) o pdi!om(i/ n$oposs"i "ma /oa do!"menta#$o ainda) pois se" desen&o(&imento n$o : !ontn"o e !omoo di!om(i/ : es!rito em COO 6e depende do Boost+t=on7 : ne!ess;rio "m rapperdodi!om(i/ para 9"e o pdi!om(i/ f"n!ione
Assim) "sar o pdi!om(i/ n$o seria "ma a(ternati&a m"ito e(egante) &isto 9"edi!om(i/ e Boost+t=on s$o dependn!ias m"ito grandes para serem "sados noInVesa(i"s) adi!ionariam m"itas f"n!iona(idades 9"e n$o seriam "sadas) e todas asdependn!ias para rodar o pdi!om(i/ ; seriam maior do 9"e o pr,prio InVesa(i"s
3).)()0 dmt3 DCM>Q !ont:m &;rias /i/(iote!as e ap(i!a#es 9"e imp(ementam a espe!ifi!a#$oDIC3M) : distri/"do so/ a (i!en#a BSD) assim os desen&o(&edores podem re"ti(i1ar o!,digo ; e*istente para imp(ementar ap(i!a#es DIC3M de maneira mais r;pida 3DCM>Q fo!a prin!ipa(mente nos ser&i#os de rede do DIC3M
Desen&o(&ido em ANSI C e COO) o DCM>Q ainda n$o poss"i "ma maneiraofi!ia( de ser "sado !om o"tras (ing"agens) !omo pt=on) apesar de ser poss&e( gera "mrapperpara pt=on e !ompi(ar em am/iente Mi!rosoft indo.s +) GN%PLin"*)S"n So(aris) ZN) IRI) 'reePNetP3penBSD e Ma!3S
%m e*emp(o de soft.are (i&re "ti(i1ando o DCM>Q : o Aes@"(ap) "m DIC3MVie.er /astante "ti(i1ado e 9"e ; est; mad"ro o s"fi!iente para ser "ti(i1ado !omo
14
-
7/25/2019 InVesalius Estudo de Caso 3
21/44
refern!ias para o"tros proetos Assim) a id:ia de re"ti(i1ar parte do !,digo doAes@"(ap) 9"e : distri/"do so/ a (i!en#a G+L) no desen&o(&imento do proetoInVesa(i"s : /em a!eita) pois !omo ; =; "ma ap(i!a#$o Li&re !om todas asf"n!iona(idades 9"e pre!isamos imp(ementar) seria mais interessante re"ti(i1ar e aomesmo tempo !ontri/"ir e&o("indo o" apenas &erifi!ando se =; /"gs no !,digo
re"ti(i1adoNa &ers$o mais at"a( do Aes@"(ap) as !=amadas para ser&i#os A-Asso!iate) C-
E!=o) C-S>3RE) C-GE>) C-'IND e A-Re(ease est$o !on!("das e testadas o 9"esignifi!a 9"e todo o !,digo ne!ess;rio para ser adi!ionado no InVesa(i"s s, depende de"m rapperpara pt=on
3).)()3 openDI!"#)NE*
Dispon&e( so/ a (i!en#a LG+L) o openDIC3MNE> imp(ementa "ma A+I) em C_) 9"epode ser "sada tanto pe(o frame.or@ Mi!rosoft NE> o" Mono) as &antagens desta A+I: poder tratar ar9"i&os DIC3M !omo ML) o 9"e fa!i(ita a manip"(a#$o dos dados e
simp(ifi!a o !,digo
Dispon&e( so/ a (i!en#a LG+L o openDIC3MNE> imp(ementa "ma A+I) emC_) 9"e pode ser "sada tanto pe(o frame.or@ Mi!rosoft NE> o" Mono) as &antagensdesta A+I : poder tratar ar9"i&os DIC3M !omo ML) o 9"e fa!i(ita a manip"(a#$o dosdados e simp(ifi!a o !,digo
A "ti(i1a#$o do openDIC3MNE> no InVesa(i"s traria &antagens mais tornaria aap(i!a#$o dependente de "ma m;9"ina &irt"a( para rodar) o 9"e &ai !ontra os re9"isitosespe!ifi!ados
3).)()5 !Garrua DI!"# *oolit
Distri/"do so/ a (i!en#a G+L 6apesar de poss"ir "ma &ers$o !omer!ia(7 o C=arr"a :"m >oo(@it /em /;si!o !om a inten#$o de ser o mais !ompa!to poss&e() /aseado na
/i/(iote!a %CDMC) apresenta apenas ser&i#os /;si!o de rede Infe(i1mente) ado!"menta#$o : /em es!assa e nem mesmo o !,digo : s"fi!ientemente !omentado
3).)()8 D!F ?DI!"# !onnetivitC Framewor@
Desen&o(&ido pe(o La"re( Bridge Soft.are) o DC' fo!a apenas em pro&er os ser&i#osde rede do DIC3M mas apesar disto : "m dos mais modernos e efi!ientes 'rame.or@sDi!om 9"e e*iste) foi desen&o(&ido para ser port;&e() ro/"sto e !om a(ta performan!e
Dispon&e( apenas !omer!ia(mente) poss"i &erses em (ing"agem COO) Ua&a o"Mi!rosoft C3MPNE> e s"porta am/ientes indo.s) Lin"*) So(aris e o"tros am/ientes%ni*-(i@e
A ar9"itet"ra do DC' : /aseada em eb ser.ices) em multi(t0readede tam/:mposs"i "ma &asta do!"menta#$o gr;tis) in!("indo e*emp(os de ap(i!a#es e ferramentaspara a"toma#$o e &a(ida#$o de teste e "m monitorador e gerador de estatsti!as emtempo rea(
Infe(i1mente) o D'C n$o poss"i "ma &ers$o (i&re para ser "sada !om oInVesa(i"s e s"a efi!iente) por:m) !omp(e*a ar9"itet"ra poss"i m"ito maisf"n!iona(idade do 9"e : ne!ess;rio para se imp(ementar o InVesa(i"s
15
-
7/25/2019 InVesalius Estudo de Caso 3
22/44
3).)()H Imebra
3 Ime/ra : "ma /i/(iote!a COO para DIC3M) desen&o(&ida pe(a empresa +"ntoe*e) 9"e: distri/"da so/ a (i!en#a G+L &2 e poss"i o"tra &ers$o !omer!ia( 3 9"e !=ama aaten#$o no Ime/ra : 9"e e(e foi desen&o(&ido /"s!ando "m a(to n&e( de porta/i(idade)at"a(mente a &ers$o (i&re s"porta am/ientes indo.s) Lin"*) Ma* 3S e +o!@et +C
Essa /i/(iote!a s"porta os ser&i#os padr$o de rede n$o tra1endo grandes&antagens nesse ponto) tam/:m s"porta o padr$o )nicode) mas o grande diferen!ia( nosser&i#os est; para o tratamento de imagem) pois o Ime/ra s"porta imagens Upeg)DIC3M e NEMA) s"porta &;rias op#es pra !ompress$o e des!ompress$o e permite a!on&ers$o da imagem de maneira simp(es
A "ti(i1a#$o do Ime/ra no InVesa(i"s pare!e ser "ma /oa a(ternati&a) masinfe(i1mente n$o =; "m rapperpara pt=on e !omo "ti(i1a es9"ema de d"as (i!en#as)sendo "ma (i&re e "ma !omer!ia() o InVesa(i"s estaria sempre "sando "ma &ers$oinferior) o 9"e in&ia/i(i1a o "so de(a) pois =; &;rias a(ternati&as (i&res 9"e apresentam as
mesmas f"n!iona(idades
3).)(); Lista de Refernia
A9"i s$o (istados a(g"ns tool!its9"e n$o foram ana(isados !om prof"ndidade por seremprod"tos !omer!iais o" po"!o "sados A (ista ser&e apenas !omo refern!ia e poss"iapenas informa#es /;si!as
Empresa
Autor
*oolit Lien4a 7rinipais !arater-stias
ANPA+I DeUarnette
Resear!=
Sstems
Comer!ia( En&iar e Re!e/er mensagens DIC3M) seg"e a
espe!ifi!a#$o DIC3M
+(ataforma S"portadas S"nP3S) So(aris) IRI) K+-
%) Digita( %NI) AI) o indo.s F) indo.s
T) indo.s N>) indo.s 2000) D3S) 3SP2)
Ma!intos= Sstem Y e em/edded sstemsMa((in!@rodt
Instit"te of
Radio(og
Centra( >est
Node 6C>N7
+roprietar
3SS
In!("i &;rias /i/(iote!as de /ai*o n&e( para
manip"(a#$o de estr"t"ras de dados DIC3M e de
m:todos de a!esso a ser&idores DIC3M) "ma s"te
para testes) n$o fa1 manip"(a#$o de imagem) in!("iser&idor de imagem) gestor de ser&idor de impress$o
e !,pia +(ataformas S"portadas So(aris) Lin"* e
indo.s) IRI) AIMar!e( &an
Ker@ and
Lam/ert ip
ConZ"est
DIC3M
Li/rar
+roprietar
3SS
A!ompan=a Ser&idor DIC3M) /aseado na
/i/(iote!a %CDMC mas tem po"!a do!"menta#$o
dispon&e( gr;tisLa"re( Bridge
Soft.are) In!
DIC3M
Conne!ti&it
'rame.or@6DC'7
Comer!ia( N$o fa1 manip"(a#$o de imagem) imp(ementa toda a
espe!ifi!a#$o de rede do DIC3M) a!ompan=a &;rias
ferramentas de (in=a de !omando+(ataforma S"portada S"porta 2 p(ataformas NE>
16
-
7/25/2019 InVesalius Estudo de Caso 3
23/44
o" UAVA e ofi!ia(mente f"n!iona em indo.s)
Lin"*) So(aris 6S+ARC7E>IAM DIC3M S"ite Comer!ia( +oss"i f"n#es de rede do DIC3M) manip"(a#$o de
imagem e impress$o
+(ataformas S"portada apenas indo.sCoreare DIC3M
>oo(@it 6D>Q7
Comer!ia(
6gr;tis para
entidades de
ensino7
Manip"(a#$o de imagem
+(ataformas S"portada apenas indo.s
Medi!a(
Conne!tions
Di!om3/e!ts Comer!ia(
6poss"i
&ers$o tria(
por H0 dias7
>ransmiss$o de imagem) f"n#es de 9"er em
ser&idores DIC3M) &erifi!a#$o de ar9"i&os)
!ompress$o U+EG) a!ompan=a "m &is"a(i1ador de
imagem
+(ataformas S"portada apenas indo.s roda em
p(ataforma NE> o" C3MPA!ti&eA!!"Soft ImageGear
MD
Comer!ia( +oss"i f"n#es para manip"(a#$o de imagens)
!ompress$o U+EG) RLE e U+EG 2000 e n$o tem
s"porte a f"n#es de rede
+(ataformas S"portada Lin"* e indo.sA!!"Soft Image>ranspo
rt MD
Comer!ia( S"porte para f"n#es de rede) impress$o de imagens
e manip"(a#$o de informa#es em ar9"i&os DIC3M
+(ataformas S"portada apenas indo.sLEAD
>e!=no(ogies)
In!
LEAD>33LS
Medi!a(
Imaging SDQ
Comer!ia( S"porte a !om"ni!a#$o !om ser&idores DIC3M
+(ataformas S"portada apenas indo.s
Merge
Kea(t=!are
MergeC3M-
Ad&an!ed
IntegratorXs
>oo(@it
Comer!ia( S"porte a !om"ni!a#$o !om ser&idores DIC3M
+(ataformas S"portada Lin"*) indo.s) Ma! 3S)
AI) IRI e em/edded sstems
M"(ti>e!= msiC3M Comer!ia( Manip"(a#$o de imagem e s"porte a !om"ni!a#$o
!om ser&idores DIC3M
*abela 0 > Lista de Frameworkse biblioteas DI!"#
3)0 Implementar a omunia4o do protoolo DI!"# usando soet
A proposta desta a(ternati&a : de desen&o(&er a espe!ifi!a#$o do DIC3M inteiramente
em pt=on) o" sea) "ti(i1ar apenas /i/(iote!as 9"e dem s"porte a so!@et
Seg"indo esta id:ia o desen&o(&imento seria m"ito mais tra/a(=oso e a
9"antidade de !,digo gerado seria maior) pois todo !,digo referente a espe!ifi!a#$o
DIC3M teria 9"e ser !odifi!ado) o 9"e signifi!a 9"e os desen&o(&edores teriam 9"e
17
-
7/25/2019 InVesalius Estudo de Caso 3
24/44
est"dar e !on=e!er a f"ndo a espe!ifi!a#$o Mas essa a(ternati&a ; foi ana(isada
anteriormente pe(o gr"po do C>I e !omo !onse9`n!ia "m pe9"eno !,digo de e*emp(o
foi desen&o(&ido e est; dispon&e( no Ane*o C
Como parte do !,digo) "sando s, a /i/(iote!a so!@et do pt=on) ; foi
imp(ementada e apenas H Ser&i#os DIC3M ser$o imp(ementados essa a(ternati&a pare!e
ser /em &i;&e() a/ai*o seg"e "m e*emp(o de !omo pode ser "sado so!@et para se
!om"ni!ar !om "ma +ACS
"""
Importa a biblioteca socket
"""
import soc*et
"""
Cria um socket , defiido A!INET pois ser# usado um dom$io da Iteret, defii o
tipo de protocolo a ser usado SOC%STREAM por ser o TC& 'poderia ser
SOC%DGRAM caso optassemos pelo (D&)*
"""
s + soc*et.soc*etsoc*et.A$-I)/, soc*et.&012-&/3)A!, 45
"""
Coecta com o +ost, o eemplo ser# defiido o I& -#lido de uma &ACS p.blica
oferecida para teste pelo fabricate da &ACS DicomOb/ects*
"""
s.connect6789.8:4.784.8;94?445.get!essage5
=print @)n"iando uma mensagem A-Associate-3>@, menssage.--repr--5
=s.sendmenssage5
"""
Termia a itera13o*
"""s.close5
18
-
7/25/2019 InVesalius Estudo de Caso 3
25/44
3)3 Implementar a omunia4o do protoolo DI!"# usando *wisted Framewore JAD"A !om"ni!a#$o do InVesa(i"s !om a +ACS de&e ser imp(ementada &isando
!ompati/i(idade !om a +ACS DCM?CKEE) sendo assim "ma a(ternati&a ao "so de
so!@et o" "ma /i/(iote!a de ter!eiros seria "ti(i1ar o >.isted 'rame.or@ e se !om"ni!ar
atra&:s do AD3 !om o DCM?CKEE
3 >.isted : "m en#inepara rede) so/ a (i!en#aM$T Free So"taree tota(mente
es!rito em pt=on) s"porta &;rios proto!o(os !omo >C+) %D+) SSLP>LS) multicast)
%ni* so!@ets) K>>+) NN>+) IMA+) SSK) IRC) '>+ e o"tros E tam/:m in!("i "m eb
ser.er) &;rios !(ientes de !=ats) ser&idores c0at) ser&idor de emai() et!
A &antagem de fa1er o a!esso ao DCM?CKEE "ti(i1ando AD3 : a fa!i(idade
e simp(i!idade do pro!esso) o AD3 : "ma padr$o 9"e espe!ifi!a "ma interfa!e e/
para a!essar ser&i#os DIC3M em "ma +ACS e o"tros reposit,rios de o/etos DIC3M
A fig"ra mostra !omo o AD3 : ap(i!ado
Figura 5) Jado Interfae
A grande &antagem de "ti(i1ar esta a/ordagem : a /oa do!"menta#$o dispon&e(no site do DCM?CKEE) onde =; tam/:m !,digo em Ua&a 9"e pode ser rees!rito em
pt=on) o 9"e tornaria a imp(ementa#$o m"ito mais r;pida
As des&antagens desta forma de imp(ementa#$o : 9"e o InVesa(i"s apenasf"n!ionaria !om +ACS 9"e imp(ementam a interfa!e AD3) apesar do re9"isito dedesen&o(&er &isando !ompati/i(idade apenas !om o DCK?CKEE) "ma imp(ementa#$ogen:ri!a do DIC3M tornaria o InVesa(i"s f(e*&e( o /astante para rodar !om 9"a(9"erser&idor +ACS
3"tro pro/(ema do AD3 : n$o s"portar *ueryin#por DIC3M imagens) o 9"e
torna a imp(ementa#$o (imitada
19
-
7/25/2019 InVesalius Estudo de Caso 3
26/44
5 > Ar6uitetura da !omunia4o do InVesalius om a 7A!S
Dentre os poss&eis mode(os de !om"ni!a#$o propostos) os mais efi!ientes s$o "ti(i1ar oDCM>Q o" imp(ementar as espe!ifi!a#es "ti(i1ando S3CQE>S sem nen="ma
/i/(iote!a DIC3M
+ara e*emp(ifi!ar o desen&o(&imento) ser; a/ordado a imp(ementa#$o do ser&i#oA-Asso!iate-RZ) esse ser&i#o define "m mode(o /;si!o de !om"ni!a#$o para oesta/e(e!imento da !om"ni!a#$o) entre o +ACS e o re9"isitante) &er fig"ra a/ai*o
Figura 8) Estabeleimento de !omunia4o A=Assoiate
Este pro!esso de asso!ia#$o tem 9"atro etapas) !omo podemos &er na imagem)
primeiro a ap(i!a#$o re9"isitante en&ia "ma re9"isi#$o de asso!ia#$o para a +ACS)nessa mensagem =; informa#es de 9"e tipo de ser&i#o 9"e o re9"isitante est;so(i!itando e 9"ais as sinta*es de transfern!ia s"portadas
Z"ando a +ACS re!e/e a re9"isi#$o de asso!ia#$o e(a &erifi!a 9"ais dos ser&i#ospresentes na mensagem s$o s"portados e define 9"a( sinta*e de transfern!ia ser;"ti(i1ada) !aso a(g"ma sinta*e o" o a(g"m ser&i#o n$o sea s"portado) o ser&i#o :mar!ado !omo reeitado
Assim 9"ando a +ACS termina de &erifi!ar os ser&i#os e sinta*es re9"isitadas)e(a responde !om "ma (ista !om todos os ser&i#os e sinta*es 9"e foram a!eitos ereeitados) o re9"isitante &erifi!a a resposta e ini!ia a se9`n!ia de so(i!ita#$o deser&i#os
A/ai*o seg"e o e*emp(o de "m !,digo de !omo seria imp(ementado oA5Asso!iate5REZ) esse !,digo foi desen&o(&ido pe(o pr,prio C>I e foi "m po"!oa(terado para se ade9"ar a este e*emp(o
import randomimport soc*etimport struct
class A-Associate-3>ob(ect5self.Presentation1onte?tID + id
20
-
7/25/2019 InVesalius Estudo de Caso 3
27/44
def getApplication1onte?tself5=&ee P& B.9C744 page B A.7.8 for this magic "alueapplication1onte?tame + @8.7.;4.8444.B.8.8.8@
return struct.pac*@EFFG@, 4?84, 4?44, lenapplication1onte?tame55 Happlication1onte?tame
def getAbstract&nta?self5abstract&nta?ame + @8.7.;4.8444.8.8@return struct.pac*@EFFG@, 4?B4, 4?44, lenabstract&nta?ame55 H abstract&nta?ame
def get/ransfer&nta?self5transfer&nta?ame + @8.7.;4.8444.8.7@return struct.pac*@EFFG@, 4?;4, 4?44, lentransfer&nta?ame55 H transfer&nta?ame
def getPresentation1onte?tself5sub1onte?t + struct.pac*@EFFFF@, self.Presentation1onte?tID, 4?44,
4?44, 4?445 HJself.getAbstract&nta?5 H self.get/ransfer&nta?5
return struct.pac*@EFFG@, 4?74, 4?44, lensub1onte?t55 H sub1onte?t
def getKserInformationself5userData + self.get!a?imumLength5 HJ
self.getImplementation1lassKID5 HJself.getAsnc0perationsMindow5 HJself.getImplementationVersioname5
return struct.pac*@EFFG@, 4?N4, 4?44, lenuserData55 H userData
def get!a?imumLengthself5return struct.pac*@EFFGI@, 4?N8, 4?44, 4?;, 847;O8:5
def getImplementation1lassKIDself5
implementation1lassKID + @8.7.;4.4.8B.8.8@return struct.pac*@EFFG@, 4?N7, 4?44, lenimplementation1lassKID55 HJimplementation1lassKID
def getAsnc0perationsMindowself5return struct.pac*@EFFGGG@, 4?NB, 4?44, 4?4;, 4?48, 4?485
def getImplementationVersionameself5"ersion + @dcm;cheC7.4@return struct.pac*@EFFG@, 4?NN, 4?44, len"ersion55 H "ersion
def getPDKself5subPDK + struct.pac*@EGG8:s8:sB7s@,
4?48, 4?44, @D1!;1G))@.l(ust8:5,
@D1!)[email protected](ust8:5, @@5self.getApplication1onte?t5 H J
self.getPresentation1onte?t5 H J self.getKserInformation5 return struct.pac*@EFFI@, 4?48, 4?44, lensubPDK55 H subPDK
def get!essageself5"""
Retura a mesa5em A6Associate6R2
"""
return self.getPDK5
21
-
7/25/2019 InVesalius Estudo de Caso 3
28/44
def Associate3>5"""
Importa a biblioteca socket
"""import soc*et
""" Cria um socket , defiido A!INET pois ser# usado um dom$io da Iteret, defii otipo de protocolo a ser usado SOC%STREAM por ser o TC& 'poderia ser SOC%DGRAM caso optassemos pelo (D&)* """
s + soc*et.soc*etsoc*et.A$-I)/, soc*et.&012-&/3)A!, 45
"""Coecta com o +ost, o eemplo ser# defiido o I& -#lido de uma &ACS p.blica
oferecida para teste pelo fabricate da &ACS DicomOb/ects* """
s.connect6789.8:4.784.8;94?445.get!essage5print @)n"iando uma mensagem A-Associate-3>@, menssage.--repr--5s.sendmenssage5
"""
Termia a itera13o* """
s.close5
if --name-- ++ @--main--@Associate3>5
Como forma de !ompara#$o tam/:m foi imp(ementado "m e*emp(o pararefern!ia do desen&o(&imento do A-Asso!iate-RZ "ti(i1ando a /i/(iote!a DCM>QA/ai*o seg"e o !,digo em (ing"agem C
=include dimse.h=include assoc.h
"oid main"oid5Q/-A&1-etwor* OnetR/-A&1-Parameters OparamsR/-A&1-Association OassocR
77 Defie a &ACS dicomser-er*medicalcoectios*co*uk para se coectarA&1-setPresentationAddressesparams, 789.8:4.784.8;9, dicomser"er.medicalconnections.co.u*888875R
77 Iiciali8a a Rede 0$1ondition cond + A&1-initializeetwor*)/-3)>K)&/03, 4, 8444, Snet5R
22
-
7/25/2019 InVesalius Estudo de Caso 3
29/44
77 Teta estabelecer a coe3oprintf3equesting AssociationJn5R cond + A&1-requestAssociationnet, params, Sassoc5R if cond.bad55 Q if cond ++ DKL-A&&01IA/I03)T)1/)D5
Q /-A&1-3e(ectParameters re(ecR A&1-get3e(ectParametersparams, Sre(ec5R errmsgAssociaUo 3e(eitada5R A&1-print3e(ectParametersstderr, Sre(ec5R e?it85R else Q errmsgAssociaUo $alhou5R Dimse1onditiondumpcond5R e?it85R
e&idente a diferen#a da !omp(e*idade e taman=o do !,digo gerado) en9"antodesen&o(&er em pt=on "ti(i1ando so!@ets !ria "m !,digo independente de dependn!ias
para o InVesa(i"s e(e gera "m !,digo e*tenso e !omp(e*o 9"e re9"er grande!on=e!imento da espe!ifi!a#$o do DIC3M
+or o"tro (ado "ti(i1ar a /i/(iote!a DCM>Q iria gerar "ma dependn!ia a maispara o InVesa(i"s) o 9"e poderia ser "m pro/(ema ao tentar portar o InVesa(i"s o"
apenas fa1er a man"ten#$o para manter a !ompati/i(idade !om f"t"ras &ers$o doDCM>Q
23
-
7/25/2019 InVesalius Estudo de Caso 3
30/44
8 = !onluso
3 DIC3M : "m padr$o !omp(e*o) por:m ne!ess;rio e m"ito /em do!"mentado Na
internet : poss&e( a!=ar &;rias /i/(iote!as e frame.or@s (i&res o" pagos para todo tipo
de (ing"agem e p(ataforma
U; o InVesa(i"s sem "ma !one*$o !om "m +ACS se torna "ma ferramenta
iso(ada e menos a!eita pe(os "s";rios) "ma &e1 9"e depende do "s";rio ter as imagens
no dis!o (o!a() por isso o proeto ponto DIC3M : m"ito importante para a e&o("#$o do
proeto InVesa(i"s
Dentre as a(ternati&as apresentadas neste tra/a(=o) fi!o" e&idente 9"e a
/i/(iote!a DIC3M (i&re mais "sada nos dias de =oe : o DCM>Q >anto a
do!"menta#$o dispon&e( 9"anto a grande 9"antidade de !,digo de e*emp(o a/rem "m
!amin=o r;pido para desen&o(&edores 9"e n$o poss"em m"ito !on=e!imento do
f"n!ionamento do DIC3M em "ma rede
A id:ia de se desen&o(&er todo o !,digo em pt=on "ti(i1ando so!@ets tam/:m
se mostro" ser m"ito efi!iente) e&itando a ne!essidade de "m rapper para "sar
/i/(iote!as em o"tras (ing"agens e n$o a"mentando o n
-
7/25/2019 InVesalius Estudo de Caso 3
31/44
H) REFERKN!IAS ILI"%RAFI!AS
#edial Imaging M *eGnologC Alliane) Dispon&e( em =ttpPPmedi!a(nemaorgA!esso em Setem/roP2008
DI!"# introdution and free software) Dispon&e( em=ttpPP...sp=s!ed"P!omdPrordenPdi!om=tm( A!esso em Setem/roP2008
7ortal Software Livre) Dispon&e( em =ttpPP...soft.are(i®o&/r A!esso em
3"t"/ro) 2008
7CtGon 7rogramming Language - 3ffi!ia( e/site) Dispon&e( em=ttpPP...pt=onorg A!esso em 3"t"/ro) 2008
DI!"# Software made bC "FFIS DCM>Q DIC3M >oo(@it) Dispon&e( em=ttpPPdi!omoffisdePd!mt@p=pen A!esso em 3"t"/ro 2008
7A!S Developer !ommunitC) Dispon&e( em =ttpPPpa!spe@rPte!=do!Pdi!omp=p)A!esso em 3"t"/roP2008
!Gristian Sone = Diom Introdution) Dispon&e( em =ttpPP...!=ristian-sone@dePdi!omPdi!om5introd"!tion=tm( A!esso em No&em/roP2008
Jeb Aess to DI!"# "b1ets ?JAD"@ Servie) Dispon&e( em=ttpPP...=aifai/m!omPproe!tsPsoft.areP.adoPinde*=tm( A!esso em No&em/ro P2008
25
http://dicom.offis.de/dcmtk.php.en/http://dicom.offis.de/dcmtk.php.en/ -
7/25/2019 InVesalius Estudo de Caso 3
32/44
ANE"S
26
-
7/25/2019 InVesalius Estudo de Caso 3
33/44
ANE" A > #odalidades DI!"#
E*emp(os de Moda(idades S"portadasAS b Angios!opBI b Biomagneti! ImagingCD b Co(or '(o. Dopp(erC' b Cinef("orograp= 6retired7C+ b Co(pos!opCR b Comp"ted Radiograp=CS b Cstos!opC> b Comp"ted >omograp=DD b D"p(e* Dopp(erD' b Digita( '("oros!op 6retired7DG b Diap=anograp=
DM b Digita( Mi!ros!opDS b Digita( S"/tra!tion Angiograp=D b Digita( Radiograp=EC b E!=o!ardiograp=ES b Endos!op'A b '("ores!ein Angiograp='S b '"ndos!opKC b Kard CopL+ b Laparos!opLS b Laser S"rfa!e S!anMA b Magneti! resonan!e angiograp=MG b Mammograp=MR b Magneti! Resonan!eMS b Magneti! Resonan!e Spe!tros!op
NM b N"!(ear Medi!ine3> b 3t=er+> b +ositron Emission >omograp= 6+E>7R' b Radio '("oros!opRG b Radiograp=i! Imaging 6!on&entiona( fi(m s!reen7R>D3SE b Radiot=erap DoseR>IMAGE b Radiot=erap Image
R>+LAN b Radiot=erap +(anR>S>R%C> b Radiot=erap Str"!t"re SetS> b Sing(e-p=oton Emission Comp"ted >omograp=>G b >=ermograp=%S b %(traso"ndV' b Videof("orograp= 6retired7A b -Ra Angiograp=C b eterna( CameraECG b E(e!tro!ardiogramsBMD b Bone Minera( Densitometr
BD%S b %(traso"nd Bone Densitometr
27
-
7/25/2019 InVesalius Estudo de Caso 3
34/44
ANE" > Doumento de Est9rias
UFLA = UNIVERSIDADE FEDERAL DE LAVRAS
USER S*"RIESVERSc3 F2
Desen&o(&imento do Sistema de !om"ni!a#$o &ia Internet 9"e possi/i(itar; aimporta#$o de dados para o soft.are InVesa(i"s
6Demanda de desen&o(&imento do InVesa(i"s Soft.are +
-
7/25/2019 InVesalius Estudo de Caso 3
35/44
( = &IS*ORI!" DE AL*ERA+PES
Vers$o Data A(tera#$o Respons;&e( Des!ri#$o
F0 0P0TP2008 E9"ipe %'LA Vers$o Ini!ia(
FF F8P0TP2008 'ernando Defini#$o de
prioridade
F2 F8P0TP2008 'ernando Defini#$o de
estimati&a
2 - IN*R"DU+,"
Este do!"mento des!re&e os %ser StoriesJ ne!ess;rios aos desen&o(&edores as
para a e*e!"#$o e imp(ementa#$o do proeto o m,d"(o de !om"ni!a#$o do InVesa(i"s
!om ser&idores +ACS) 9"e adi!ionar; a f"n!iona(idade de importa#$o de dados para o
InVesa(i"s
3s %ser StoriesJ foram di&ididos em temas sendo e(es
+onto DIC3M Re!eptor
+onto DIC3M >ransmiss$o
+onto DIC3M Importar
+onto DIC3M Log de Com"ni!a#$o
+onto DIC3M E*portar
USER S*"RIES
*E#A ($ +onto DIC3M Re!eptor
\0F]
Cria#$o da ane(a do +onto DIC3M Re!eptor
+rioridade
M:dia
Estimati&a
F dia
Nome do teste
an+DRCria#$o de "ma ane(a mostrando para o "s";rio os seg"intes !ampos
AE>it(e
>C+PI+
NC+PI+
Nome Comp"tador O Domnio
Verifi!a#$o de at"a(i1a#$o
>ime-o"t de !om"ni!a#$o >empo de arma1enamento de (og
29
-
7/25/2019 InVesalius Estudo de Caso 3
36/44
Diret,rio
Essa ane(a estar; dispon&e( a partir do MEN%
7REFERKN!IASQ*RANS#ISS," VIA REDEQRE!E7*"R
Estes dados tam/:m poder$o ser modifi!ados pe(o "s";rio e de&er; =a&er a"da paratodos os !ampos
As !onfig"ra#es fi!ar$o sa(&as em "m ar9"i&o
\02]
Identifi!a#$o de informa#es do !omp"tador (o!a(
+rioridade
A(ta
Estimati&a
2 dias
Nome do teste
InfoCompLo!a(
Identifi!a a !onfig"ra#$o do !omp"tador (o!a( e informa ao "s";rio na ane(a do%S\0F]) sendo 9"e a prefern!ia de !ertos !ampos s$o dada pe(o ar9"i&o sa(&o !om as
modifi!a#es feita pe(o "s";rio anteriormente A/ai*o : mostrado os dados 9"e s$o
pegos no !omp"tador (o!a() os dados !om "m na frente) s$o os 9"e tem !omo o
ar9"i&o sa(&o no !omp"tador !omo priorit;rio
>C+PI+
NC+PI+
Nome Comp"tador O Domnio Verifi!a#$o de at"a(i1a#$o
>ime-o"t de !om"ni!a#$o
>empo de arma1enamento de (og
Diret,rio 63nde o in&esa(i"s setar; !orretamente o endere#o do diret,rio 9"e
arma1enar; os ar9"i&os) +adr$o no Lin"* P=omePnome-"s"arioPin&esa(i"sJ e
+adr$o no indo.s CDo!"ments and Settings"s"arioin&esa(i"sJ7
3/s Na primeira e*e!"#$o do InVesa(i"s) de&er; ser !riado "m ar9"i&o !om estesdados
Limpe1a do ar9"i&o de (og
+rioridade
Bai*a
Estimati&a
F dia
Nome do teste
LimpAr9Log
3 ar9"i&o de (og de&er; ser &erifi!ado e (impo !onforme o n
-
7/25/2019 InVesalius Estudo de Caso 3
37/44
\0?]
Sa(&ar Config"ra#$o
+rioridade
A(ta
Estimati&a
2 dias
Nome do teste
Sa(ConfAo !(i!ar em 3Q na ane(a do ponto DIC3M re!eptor no %S\0F] =a&er; "ma
&erifi!a#$o se =o"&e a(tera#$o das !onfig"ra#es e se =o"&er) arma1ena as no&as
!onfig"ra#es para 9"e o InVesa(i"s possa "ti(i1;-(as
*E#A .$ +onto DIC3M >ransmiss$o
\0]
Cria#$o de ane(a do +onto DIC3M >ransmiss$o
+rioridadeM:dia
Estimati&aF dia
Nome do testean+D>
Cria#$o de "ma ane(a 9"e permita adi!ionar) remo&er e a(terar informa#es "sadas
para a!esso aos ser&idores +ACS) os seg"intes !ampos s$o ne!ess;rios
AE>it(e
Endere#o >C+PI+
+orta >C+PI+
Des!ri#$o Lista de Ser&idores
Campos de a"tenti!a#$o 6%s";rio e Sen=a7
Essa ane(a estar; dispon&e( a partir do MEN%
7REFERKN!IASQ*RANS#ISS," VIA REDEQ*RANS#ISS,"
3 "s";rio poder; a!res!entar no&os ser&idores) sendo 9"e os !ampos Endere#o e +orta
>C+PI+ s$o !ampos o/rigat,rios
Caso a(g"m ser&idor ne!essite de a"tenti!a#$o o "s";rio ; poder; forne!er 9"ando
a!res!entar ser&idor
3 "s";rio poder; se(e!ionar "m ser&idor da Lista de Ser&idores e "ti(i1ar as op#es
REM3VE o" AL>ER para remo&er o" a(terar a(g"m ser&idor
3 "s";rio poder; !(i!ar em C-ECK3 para &erifi!ar se os ser&idores est$o dispon&eis
3s !onfig"ra#es fi!ar$o sa(&as em "m ar9"i&o
o/s 3 /ot$o ADD m"dar; para AL>ER !aso o "s";rio !(i9"e em "m dos ser&idores da
(ista
31
-
7/25/2019 InVesalius Estudo de Caso 3
38/44
\0H]
Verifi!ar stat"s dos ser&idores
+rioridade
A(ta
Estimati&a
dias
Nome do teste
VerStat"sSer&Emite "m !omando) para !ada ser&idor) para sa/er o stat"s do mesmo
*E#A 0$ +onto DIC3M Importar
\0Y]
Cria#$o da ane(a do ponto DIC3M Importar /"s!a
+rioridade
M:dia
Estimati&a
F dia
Nome do teste
an+DI/"s!a
Cria#$o de "ma ane(a 9"e permitir; ao "s";rio fa1er "ma /"s!a nos ser&idor +ACS) a/"s!a pode ser feita "ti(i1ando "m dos !ampos pr: definidos
AE>it(e
Nome do +a!iente
Moda(idade
Idade
Se*o
Data de A9"isi#$oEssa ane(a estar; dispon&e( a partir do MEN%
N"V"Q US!A N" SERVID"R
3 "s";rio pode es!o(=er 9"e tipo de /"s!a desea fa1er no ser&idor +ACS) es!o(=endo
entre informa#es do +a!iente) Est"do) Series) E9"ipamento) Referen!ia do 'rame e da
Imagem 3s dados retornados s$o (istados na ta/e(a de RES%L>AD3 onde o "s";rio
poder; se(e!ionar 9"a( Imagem desea a/rir no InVesa(i"s
+ara importar a imagem no InVesa(i"s o "s";rio de&e !(i!ar so/re a informa#$o no
ta/e(a res"(tado e !(i!ar na op#$o 3Q
\08]
Cone!tar ao ser&idor +AC
+rioridade
A(ta
Estimati&a
dias
Nome do teste
Cone!Ser&+AC
3 ser&idor 9"e o "s";rio es!o(=er no %S\0Y] de&er; fa1er a"tenti!a#$o no ser&idor
+AC
32
-
7/25/2019 InVesalius Estudo de Caso 3
39/44
\0T]
+es9"isa no ser&idor +AC
+rioridade
A(ta
Estimati&a
dias
Nome do teste
+es9Ser&+ACAp,s o "s";rio esti&er !one!tado ao ser&idor +AC) e(e poder; fa1er a pes9"isa no
/an!o de dados
\F0]
Importar dados do +AC e arma1enar no !(iente
+rioridade
A(ta
Estimati&a
dias
Nome do teste
ImpArmDados+ACAp,s o "s";rio re!e/er a (ista da pes9"isa %S\0T] e !(i!ar no item a(meado) ser;
rea(i1ado a importa#$o dos ar9"i&os mostrados na pes9"isa e arma1enados no diret,rio
padr$o 9"e foi !onfig"rado no %S\0F]
*E#A 3$ +onto DIC3M Log de Com"ni!a#$o
\FF]
Criar ta/e(a de Erros
+rioridade
Bai*a
Estimati&a
F dia
Nome do teste
Criar "ma ta/e(a de erros para o sistema !om C,digo do ERR3 e Des!ri#$o) "sada
pe(o sistema pra definir os erros
\F2]
Vis"a(i1ar L3G de Com"ni!a#$o
+rioridade
Bai*a
Estimati&a
F dia
Nome do teste
VisLogCom
33
-
7/25/2019 InVesalius Estudo de Caso 3
40/44
+ermite a &is"a(i1a#$o dos erros o!orridos nos m,d"(o ponto DIC3M
3s !ampos arma1enados s$o
Essa ane(a estar; dispon&e( no MEN%
+RE'ERNCIASVIS%ALIAR L3G DE C3M%NICAhc3 AE>it(e
Endere#o >C+PI+
+orta >C+PI+
Des!ri#$o do E&ento
Data e Kora
Esta informa#$o estar; dispon&e( a partir no MEN%
7REFERKN!IASQVISUALIAR L"% DE !"#UNI!A+,"
34
-
7/25/2019 InVesalius Estudo de Caso 3
41/44
ANE" ! > !9digo fonte do AAssoiateRB desenvolvido pelo !*I
A/ai*o seg"e o !,digo origina( desen&o(&ido pe(o C>I) referente ao ser&i#o
A5Asso!iete5RZAAssoieteRB)pC
import randomimport soc*etimport struct
class A-Associate-3>ob(ect5 Implements the ACAssociateC3> !essage.
def --init--self, id5 id CE PresentationCconte?tCid, must be a odd number between 8 and 7NN, self.Presentation1onte?tID + id
def getApplication1onte?tself5 &ee P& B.C744 page B:, table WC87
1omposed b item tpeF5 CE 4?84 reser"edF5 CE 4?44
item lengthG5 CE the length of the application conte?t name, the ne?t field application conte?t name CE A "alid applicationCconte?tCname =&ee P& B.9C744 page B A.7.8 for this magic "alue application1onte?tame + @8.7.;4.8444.B.8.8.8@ return struct.pac*@EFFG@, 4?84, 4?44, lenapplication1onte?tame55 Happlication1onte?tame
def getAbstract&nta?self5 &ee P& B.C744 page B9, table WC8;
composed b item tpeF5 CE 4?B4 reser"edF5 CE 4?44 itemClengthG5 CE length of the abstractCsnta?Cname, the ne?t field abstractCsnta?Cname CE a "alid abstractCsnta?Cname abstract&nta?ame + @8.7.;4.8444.8.8@ return struct.pac*@EFFG@, 4?B4, 4?44, lenabstract&nta?ame55 H abstract&nta?ame
def get/ransfer&nta?self5 &ee P& B.C744 page B9, table WC8N
composed b item tpeF5 CE 4?;4 reser"edF5 CE 4?44
35
-
7/25/2019 InVesalius Estudo de Caso 3
42/44
itemClengthG5 CE length of the transferCsnta?Cname, the ne?t field abstractCsnta?Cname CE a "alid transferCsnta?Cname transfer&nta?ame + @8.7.;4.8444.8.7@ return struct.pac*@EFFG@, 4?;4, 4?44, lentransfer&nta?ame55 H transfer&nta?ame
def getPresentation1onte?tself5 &ee P& B.C744 page B:, table WC8B
1omposed b Item tpeF5 CE 4?74 3eser"edF5 CE 4?44 itemClengthG5 CE length from the ne?t field to the end of abstractXtransfer snta? subCitems presentationCconte?tCidF5 CE an odd number between 8 and 7NN reser"edF5 CE 4?44 reser"edF5 CE 4?44 reser"edF5 CE 4?44
AbstractXtransfer snta? subCitems CE composed b one abstract snta? and one or more transfer snta? sub1onte?t + struct.pac*@EFFFF@, self.Presentation1onte?tID, 4?44, 4?44, 4?445 HJ self.getAbstract&nta?5 H self.get/ransfer&nta?5 return struct.pac*@EFFG@, 4?74, 4?44, lensub1onte?t55 H sub1onte?t
def getKserInformationself5 &ee P& B.C744 page ;4, table WC74
composed b
item tpeF5 CE 4?N4 reser"edF5 CE 4?44 item lengthG5 CE the length of the userCdata field, the ne?t field KserCdata CE composed b the !a?mum length, Implementation 1lass KID and Implementation Version ame userData + self.get!a?imumLength5 HJ self.getImplementation1lassKID5 HJ self.getAsnc0perationsMindow5 HJ self.getImplementationVersioname5 return struct.pac*@EFFG@, 4?N4, 4?44, lenuserData55 H userData
def get!a?imumLengthself5
&ee P& B.C744 page ;W, table D.8C8
composed b item tpeF5 CE 4?N8 reser"edF5 CE 4?44 item lengthG5 CE /he lenght of ma?imumClengthCrecei"ed, the ne?t field ma?imumClengthCrecei"edI5 CE !a?imum length of the PCData sent b the acceptor return struct.pac*@EFFGI@, 4?N8, 4?44, 4?;, 847;O8:5
def getImplementation1lassKIDself5
&ee P& B.9C744 page 847, table D.BC8
36
-
7/25/2019 InVesalius Estudo de Caso 3
43/44
composed b item tpeF5 CE 4?N7 reser"edF5 CE 4?44 item lenghtG5 CE the length of implementationCclassCuid, the ne?t field implemententationCclassCuid CE A "alid implementationCclassCuid
implementation1lassKID + @8.7.;4.4.8B.8.8@ return struct.pac*@EFFG@, 4?N7, 4?44, lenimplementation1lassKID55 HJ implementation1lassKID
def getAsnc0perationsMindowself5 &ee P& B.9C744 page 84:, table D.BC9
composed b item tpeF5 CE 4?NB 3eser"edF5 CE 4?44 item lengthG5 CE 4?4; ma?imumCnumberCoperationsCin"o*edG5 CE &ee P& B.9C744 section D.B.B.B
!a?imumCnumberCoperationsCperformedG5 CE &ee P& B.9C744 section D.B.B.B return struct.pac*@EFFGGG@, 4?NB, 4?44, 4?4;, 4?48, 4?485
def getImplementationVersionameself5 &ee P& B.9C744 page 84B, table D.BCB
composed b item tpeF5 CE 4?NN reser"eF5 CE 4?44 item lengthG5 CE the length of the implementationC"ersionCname, the ne?t field
implementationC"ersionCname CE a "alid "alue "ersion + @dcm;cheC7.4@ return struct.pac*@EFFG@, 4?NN, 4?44, len"ersion55 H "ersion
def getPDKself5 &ee P& B.C744 page BN, table WC88
AssociateC3> PDK is composed b PDKCtpeF5 CE 4?8, means a ACAssociateC3> message 3eser"edF5 CE 4?4 PDKClengthI5 CE length of the rest of this message
ProtocolC"ersionG5 CE protocol suported b the calling sstem that is me 5 3eser"edG5 CE 4?4 1alledCA)Ctitle8:s5 CE A) title from ser"er 1allingCA)Ctitle8:s5 CE A) title from client 3eser"edB7s5 CE shall be sent filled with 4?4 "alues Variable items CE 1omposed b Aplication 1onte?t, one or more Presentation conte?t and Kser information subPDK + struct.pac*@EGG8:s8:sB7s@, 4?48, 4?44, @D1!;1G))@.l(ust8:5, @D1!)[email protected](ust8:5, @@5 H J self.getApplication1onte?t5 H self.getPresentation1onte?t5 H J self.getKserInformation5 return struct.pac*@EFFI@, 4?48, 4?44, lensubPDK55 H subPDK
def get!essageself5
37
-
7/25/2019 InVesalius Estudo de Caso 3
44/44
3eturns a ACAssociateC3> message return self.getPDK5
def testeAssociate3>5
import soc*et s + soc*et.soc*etsoc*et.A$-I)/, soc*et.&012-&/3)A!5 [email protected]@, 8888755 message + A-Associate-3>4?485.get!essage5 print @!andando a mensagem@, message.--repr--5 s.sendmessage5 print @Jn3ecebendo a mensage@, s.rec"847;5.--repr--5 s.close5
if --name-- ++ @--main--@ testeAssociate3>5