InVesalius Estudo de Caso 3

Embed Size (px)

Citation preview

  • 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

    [email protected]

    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&rego&/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