рд╡реНрдпрдХреНрддрд┐рдЧрдд рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ рдмрдЪрдд рдЧрд░реНрджрд╛ рдХрд╛рд░реНрдпрдХреНрд░рдо рд╕реЗрдЯрд┐рдЩрд╣рд░реВ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрджреИ

рдкреНрд░рд╛рдЧрд┐рддрд┐рд╣рд╛рд╕

рдПрдЙрдЯрд╛ рдЪрд┐рдХрд┐рддреНрд╕рд╛ рд╕рдВрдЧрдардирд▓реЗ Orthanc PACS рд╕рд░реНрднрд░рд╣рд░реВ рд░ Radiant DICOM рдЧреНрд░рд╛рд╣рдХрдорд╛ рдЖрдзрд╛рд░рд┐рдд рд╕рдорд╛рдзрд╛рдирд╣рд░реВ рд▓рд╛рдЧреВ рдЧрд░реНтАНрдпреЛред рд╕реЗрдЯрдЕрдкрдХреЛ рдмрдЦрдд, рд╣рд╛рдореАрд▓реЗ рдкреНрд░рддреНрдпреЗрдХ DICOM рдХреНрд▓рд╛рдЗрдиреНрдЯрд▓рд╛рдИ PACS рд╕рд░реНрднрд░рд╣рд░реВрдорд╛ рдирд┐рдореНрдирд╛рдиреБрд╕рд╛рд░ рд╡рд░реНрдгрди рдЧрд░рд┐рдиреБ рдкрд░реНрдЫ рднрдиреЗрд░ рдкрддреНрддрд╛ рд▓рдЧрд╛рдпреЛ:

  • рдЧреНрд░рд╛рд╣рдХ рдирд╛рдо
  • AE рдирд╛рдо (рдЕрджреНрд╡рд┐рддреАрдп рд╣реБрдиреБрдкрд░реНрдЫ)
  • рдПрдХ TCP рдкреЛрд░реНрдЯ рдЬреБрди рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рдХреНрд▓рд╛рдЗрдиреНрдЯ рд╕рд╛рдЗрдбрдорд╛ рдЦреБрд▓реНрдЫ рд░ PACS рд╕рд░реНрднрд░рдмрд╛рдЯ DICOM рд╕рд░реНрд╡реЗрдХреНрд╖рдгрд╣рд░реВ рдкреНрд░рд╛рдкреНрдд рдЧрд░реНрджрдЫ (рдЕрд░реНрдерд╛рддреН, рд╕рд░реНрднрд░рд▓реЗ рддрд┐рдиреАрд╣рд░реВрд▓рд╛рдИ рдЧреНрд░рд╛рд╣рдХрддрд░реНрдл рдзрдХреЗрд▓реНрдЫ - рдкрд╣рд┐рд▓реЗ рдЬрдбрд╛рди рд╕реБрд░реБ рдЧрд░реНрджреИ)
  • рдЖрдИрдкреА тАЛтАЛрдареЗрдЧрд╛рдирд╛

рд░реЗрдбрд┐рдпрдиреНрдЯ рд╕реЗрдЯрдЕрдк рдЧрд░реЗрдкрдЫрд┐, рдХреНрд▓рд╛рдЗрдиреНрдЯрд╣рд░реВрд▓реЗ рд╡рд┐рдЪрд╛рд░рдХреЛ рд▓рд╛рдЧрд┐ рдирд┐рдореНрди рдЦрд╛рдирд╛ рдкреНрд░рд╛рдкреНрдд рдЧрд░реЗ: рдкреНрд░рддреНрдпреЗрдХ рдЧреНрд░рд╛рд╣рдХрдХреЛ рд▓рд╛рдЧрд┐, рдорд╛рдерд┐рдХрд╛ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВрд╕рдБрдЧ рд╕рдлреНрдЯрд╡реЗрдпрд░ рд╕реЗрдЯрдЕрдк рдЧрд░реНрджрд╛ рдлрд╛рдЗрд▓ рднрд░рд┐рдПрдХреЛ рдерд┐рдпреЛред pacs.xml, рдЬреБрди рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛ рдкреНрд░реЛрдлрд╛рдЗрд▓рдорд╛ рдЕрд╡рд╕реНрдерд┐рдд рдерд┐рдпреЛ (рдкрде: %APPDATA%RadiantViewerpacs.xml)ред рдПрдХреИ рд╕рдордпрдорд╛, рдПрдХ рдЧреНрд░рд╛рд╣рдХрдХреЛ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдХрдореНрддрд┐рдорд╛ рджреБрдИ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВрдорд╛ рдЕрд░реНрдХреЛрдмрд╛рдЯ рднрд┐рдиреНрди рдерд┐рдпреЛ (рдПрдИ рдирд╛рдо рд╕рдмреИрдХреЛ рд▓рд╛рдЧрд┐ рдлрд░рдХ рдЫ, рд░ рдкреЛрд░реНрдЯ рдореВрд▓ рд░реВрдкрдорд╛ рд╕рдорд╛рди рдЫ, рдПрдЙрдЯреИ рд╕рд░реНрднрд░рдорд╛ рдЪрд▓реНрдиреЗ рдЯрд░реНрдорд┐рдирд▓ рдХреНрд▓рд╛рдЗрдиреНрдЯрд╣рд░реВ рдмрд╛рд╣реЗрдХ - рддреНрдпрд╣рд╛рдБ рдкреЛрд░реНрдЯрд╣рд░реВ рдкрдирд┐ рдерд┐рдПред рдлрд░рдХ рддреЛрдХреНрдиреЗ)ред

рдЙрджрд╛рд╣рд░рдг pacs.xml рдлрд╛рдЗрд▓ рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдЩреНрдХ:

рдХрд░рд┐рдм рдЫ рдорд╣рд┐рдирд╛рд╕рдореНрдо рд╕рдмреИ рдареАрдХрдард╛рдХ рдерд┐рдпреЛ, рдкреНрд░рдгрд╛рд▓реАрд▓реЗ рдХрд╛рдо рдЧрд░реНрди рдерд╛рд▓реНрдпреЛ... рдЕрдирд┐ рд╣рд╛рдореАрдХрд╣рд╛рдБ рдЖрдпреЛ "рдкрд╛рдиреАрдореБрдирд┐ рдвреБ stonesреНрдЧрд╛"

  • рд╣рд╛рдореАрд▓реЗ рдзреЗрд░реИ рдирдпрд╛рдБ PACS рд╕рд░реНрднрд░рд╣рд░реВ рд╕рдЮреНрдЪрд╛рд▓рди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ рдЬрд╕рд▓реЗ рдкреБрд░рд╛рдирд╛рд╣рд░реВрд▓рд╛рдИ рдкреНрд░рддрд┐рд╕реНрдерд╛рдкрди рдЧрд░реНрдиреЗрдЫ (рдЬрд╣рд╛рдБ рдбрд┐рд╕реНрдХ рд╕реНрдкреЗрд╕ рд╕рдХрд┐рди рдерд╛рд▓реЗрдХреЛ рдЫ)ред рднрд░реНрдЪреБрдЕрд▓ рдореЗрд╢рд┐рдирд╣рд░реВрдорд╛ PACS рд╕рд░реНрднрд░рд╣рд░реВ, рддрд░ рд╣рд╛рдореАрд▓реЗ рдХреЗ рдХреБрд░рд╛ рдЧрд░рд┐рд░рд╣реЗрдХрд╛ рдЫреМрдВ рддреНрдпреЛ рд╣реЛрдЗрди;
  • рд╣рд╛рдореАрд▓реЗ рдХреБрдиреИ рди рдХреБрдиреИ рд░реВрдкрдорд╛ 200 рдореЗрд╕рд┐рдирд╣рд░реВрдорд╛ (рддрд┐рдиреАрд╣рд░реВрдХреЛ рд╕рдВрдЦреНрдпрд╛ рдирд┐рдпрдорд┐рдд рд░реВрдкрдорд╛ рдмрдвреНрджреИ рдЧрдЗрд░рд╣реЗрдХреЛ) рдорд╛ рдЕрджреНрд╡рд┐рддреАрдп рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирд╣рд░реВ (рджреБрдИ рдлрд░рдХ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВрд╕рдБрдЧ) рдХреЗрдиреНрджреНрд░реАрдп рд░реВрдкрдорд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрди рдЖрд╡рд╢реНрдпрдХ рдЫ;
  • рд╕рд░реНрд╡реЗрдХреНрд╖рдг рднреЛрд▓реНрдпреБрдорд╣рд░реВрдХреЛ рд╡реГрджреНрдзрд┐ рджрд░рд▓рд╛рдИ рдзреНрдпрд╛рдирдорд╛ рд░рд╛рдЦреНрджреИ, рд╕рдорд╛рдзрд╛рди рдПрдХ рдкрдЯрдХ рдорд╛рддреНрд░ рд╣реЛрдЗрди, рддрд░ рджреЛрд╣реЛрд░рд┐рдПрдХреЛ рд░ рдирд┐рдпрдорд┐рдд рд░реВрдкрдорд╛ (рдЙрджрд╛рд╣рд░рдгрдХрд╛ рд▓рд╛рдЧрд┐, рдкреНрд░рддреНрдпреЗрдХ 1-3 рдорд╣рд┐рдирд╛рдорд╛ рдПрдХ рдкрдЯрдХ) рдЖрд╡рд╢реНрдпрдХ рдЫред

рд╕рдорд╛рдзрд╛рди рддрд▓ рдЫред

рд╕рдорд╕реНрдпрд╛ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрди рдЙрдкрдХрд░рдгрд╣рд░реВ рдЫрдиреМрдЯ рдЧрд░реНрджреИ

рд╕реБрд░реБрдорд╛, рдЧреНрд░рд╛рд╣рдХ рдкрдХреНрд╖рдорд╛ pacs.xml рдлрд╛рдЗрд▓ рдкрд░рд┐рдорд╛рд░реНрдЬрди рдЧрд░реНрдиреЗ рд░ AE рдирд╛рдо рд░ TCP рдкреЛрд░реНрдЯ рд╕реЗрдЯрд┐рдЩрд╣рд░реВрд▓рд╛рдИ рдЕрд╕рд░ рдирдЧрд░реА PACS рд╕рд░реНрднрд░рд╣рд░реВрдХреЛ рд╕реВрдЪреАрдорд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиреЗ рдХреЗрд╣реА рд╕рдорд╛рдзрд╛рди рдЦреЛрдЬреНрдиреЗ рдкреНрд░рдпрд╛рд╕рд╣рд░реВ рдерд┐рдПред рддреНрдпрд╕ рд╕рдордпрдорд╛ рд╡рд┐рдиреНрдбреЛрдЬ рдХреНрд▓рд╛рдЗрдиреНрдЯрд╣рд░реВ Windows XP рд░ Windows 7 рджреБрд╡реИрдорд╛ рдЖрдзрд╛рд░рд┐рдд рдерд┐рдП - рддреНрдпрд╕реИрд▓реЗ VBScript рдорд╛ рдЖрдзрд╛рд░рд┐рдд рдпрд╕реНрддреЛ рдХреЗрд╣рд┐ рд▓реЗрдЦреНрдиреЗ рдкреНрд░рдпрд╛рд╕рд╣рд░реВ рдерд┐рдПред рддрд░ рдЕрдлрд╕реЛрд╕, рдпреЛ рднрд╛рд╖рд╛рдорд╛ рдЬрдЯрд┐рд▓ рд░ рдЬрдЯрд┐рд▓ рдХреЗрд╣рд┐ рд▓реЗрдЦреНрдиреЗ рдЕрдиреБрднрд╡рдХреЛ рдкреВрд░реНрдг рдЕрднрд╛рд╡рдХреЛ рдХрд╛рд░рдгрд▓реЗ рдпрд╕реНрддреЛ рдХрд╛рд░реНрдпрдорд╛ рдорд╛рд╕реНрдЯрд░ рдЧрд░реНрди рд╕рдореНрднрд╡ рдерд┐рдПрдиред рдлреЗрд▓рд╛ рдкрд╛рд░реНрдиреЗ рд░ рдкреБрди: рд▓реЗрдЦреНрдиреЗ рдкреНрд░рдпрд╛рд╕рд╣рд░реВ рдкрдирд┐ рдЕрд╕рдлрд▓ рднрдП (рдпреЛ рдзреНрдпрд╛рди рджрд┐рдиреБрдкрд░реНрдЫ рдХрд┐ рдореЗрд░реЛ рдЯрд╛рдЙрдХреЛрдорд╛ рдкрд╣рд┐рд▓реЗ рдиреИ рдлрд░рдХ рдпреЛрдЬрдирд╛ рдерд┐рдпреЛ, рддреНрдпрд╕реИрд▓реЗ рдореИрд▓реЗ 3-4 рдШрдгреНрдЯрд╛ рднрдиреНрджрд╛ рдмрдвреА VBScript рд╕рдБрдЧ рдлрд┐рдбрд▓ рдЧрд░реЗрди)ред

рдЕрдиреНрддрдорд╛ рдореИрд▓реЗ рдирд┐рдореНрди рд╕рдорд╛рдзрд╛рдирдорд╛ рдмрд╕реЗ:

  • рд╕рдореВрд╣ рдиреАрддрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░, рдиреЗрдЯрд╡рд░реНрдХ рд╕реНрд░реЛрддрдорд╛ рдХреБрдиреИ рдкрдирд┐ рд╕рд░реНрднрд░рдорд╛ рд╕рдмреИ pacs.xml рдлрд╛рдЗрд▓рд╣рд░реВ рдПрдХреИ рдард╛рдЙрдБрдорд╛ рд╕рдЩреНрдХрд▓рди рдЧрд░реНрдиреБрд╣реЛрд╕реН;
  • рдлрд╛рдИрд▓рд╣рд░реВ рд╕рд╛рдореВрд╣рд┐рдХ рд░реВрдкрдорд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиреБрд╣реЛрд╕реН (рдорд╕рдБрдЧ рдкрд╣рд┐рд▓реЗ рдиреИ рдкрд░реНрд▓ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рддреНрдпрд╕реНрддрд╛ рд╕рдорд╕реНрдпрд╛рд╣рд░реВ рд╕рдорд╛рдзрд╛рди рдЧрд░реНрдиреЗ рдЕрдиреБрднрд╡ рдерд┐рдпреЛ);
  • рдЧреНрд░рд╛рд╣рдХ рд╕реЗрдЯрд┐рдЩрд╣рд░реВ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░реНрди рд╕рдореВрд╣ рдиреАрддрд┐рд╣рд░реВ рдкрдирд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрдиреБрд╣реЛрд╕реНред

рд╕рдореВрд╣ рдиреАрддрд┐ рдкреНрд░рдпреЛрдЧ рдЧрд░реА рдлрд╛рдЗрд▓рд╣рд░реВ рд╕рдЩреНрдХрд▓рди рдЧрд░реНрджреИ

рд╕рдмреИрднрдиреНрджрд╛ рд╕рд░рд▓ рднрд╛рдЧ рдпреЛ рд╣реЛ рдХрд┐ рдЬрдм рдЧреНрд░рд╛рд╣рдХрд▓реЗ рдЖрдлреНрдиреЛ рдкреНрд░реЛрдлрд╛рдЗрд▓рдорд╛ рд▓рдЧ рдЗрди рдЧрд░реНрдЫ, рдЙрд╕рд▓реЗ рдЖрдлреНрдиреЛ рдЕрдзрд┐рдХрд╛рд░рдХреЛ рд╕рд╛рде, рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд .bat рдлрд╛рдЗрд▓ рдХрд╛рд░реНрдпрд╛рдиреНрд╡рдпрди рдЧрд░реНрджрдЫ, рдЬрд╕рд▓реЗ рднрдиреНрдЫ:

echo off
If exist %APPDATA%RadiantViewerpacs.xml copy %APPDATA%RadiantViewerpacs.xml srv.test.localpconfigs$pacs-%COMPUTERNAME%-%USERNAME%.xml

рдпрд╕рд░реА, pacs.xml рдлрд╛рдЗрд▓рд╣рд░реВ рд╕рд░реНрднрд░рдорд╛ рд▓реБрдХреЗрдХреЛ рд╕реНрд░реЛрддрдорд╛ рдЬрдореНрдорд╛ рд╣реБрдиреЗрдЫрдиреН, рдЬрд╕рдХреЛ рдирд╛рдорд▓реЗ рдХреБрди рдХрдореНрдкреНрдпреБрдЯрд░рдмрд╛рдЯ рд░ рдХреБрди рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рдмрд╛рдЯ рдпреЛ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рди рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдЧрд░рд┐рдПрдХреЛ рдерд┐рдпреЛ рднрдиреНрдиреЗ рдЬрд╛рдирдХрд╛рд░реА рд╕рдорд╛рд╡реЗрд╢ рдЧрд░реНрджрдЫред

рдпреЛ рдиреАрддрд┐рд▓реЗ рд╕рдмреИ рдкреНрд░рдпреЛрдЧрдХрд░реНрддрд╛рд╣рд░реВрдХреЛ рд▓рд╛рдЧрд┐ рдХрд╛рдо рдирдЧрд░реЗрд╕рдореНрдо рдкрд░реНрдЦрдиреБ рд╕рдмреИрднрдиреНрджрд╛ рдЧрд╛рд╣реНрд░реЛ рдХреБрд░рд╛ рдерд┐рдпреЛред

Perl рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирд╣рд░реВ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрджреИ

рд╣рд╛рдореАрд▓рд╛рдИ рдЪрд╛рд╣рд┐рдиреНрдЫ рд╕рдХреНрд░рд┐рдп рдкрд░реНрд▓ ActiveState рдмрд╛рдЯ Windows рдХреЛ рд▓рд╛рдЧрд┐, рд╕рд╛рдереИ XML:: рд▓реЗрдЦрдХ рдореЛрдбреНрдпреБрд▓, рдЬреБрди рдЖрджреЗрд╢ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░ рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред ppm XML-Writer рд╕реНрдерд╛рдкрдирд╛ рдЧрд░реНрдиреБрд╣реЛрд╕реН.

рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЖрдлреИрдВрдорд╛ рдПрдХрджрдо рд╕рд░рд▓ рднрдпреЛ:

use XML::Writer;
 
# ╨Ю╤В╨║╤А╤Л╨▓╨░╨╡╨╝ ╨┐╨░╨┐╨║╤Г ╤Б ╨╛╤В╤З╨╡╤В╨░╨╝╨╕, ╨╛╨▒╤А╨░╨▒╨░╤В╤Л╨▓╨░╨╡╨╝ ╤Б╤Б╨┐╨╕╤Б╨╛╨║ (╤Г╨┤╨░╨╗╤П╨╡╨╝ ╨╗╨╕╤И╨╜╨╡╨╡):
	$report_dir = "C:Perl64WORKPACS-xml3";
	opendir(DIR, "$report_dir") or die "╨Э╨╡ ╨╝╨╛╨│╤Г ╨╛╤В╨║╤А╤Л╤В╤М ╨┐╨░╨┐╨║╤Г ╤Б ╨╛╤В╤З╨╡╤В╨░╨╝╨╕!";
	@report_files = readdir DIR;
	shift (@report_files); # ╤Г╨┤╨░╨╗╤П╨╡╨╝ ╤В╨╛╤З╨║╤Г ╨╕╨╖ ╤Н╨╗╨╡╨╝╨╡╨╜╤В╨╛╨▓ ╨╝╨░╤Б╤Б╨╕╨▓╨░ (.)
	shift (@report_files); # ╤Г╨┤╨░╨╗╤П╨╡╨╝ ╨┤╨▓╨╡ ╤В╨╛╤З╨║╨╕ ╨╕╨╖ ╤Н╨╗╨╡╨╝╨╡╨╜╤В╨╛╨▓ ╨╝╨░╤Б╤Б╨╕╨▓╨░ (..)
#	print "@report_files";
	closedir(DIR);
 
# ╨Э╨░╤З╨╕╨╜╨░╨╡╨╝ ╨╛╨▒╤А╨░╨▒╨░╤В╤Л╨▓╨░╤В╤М ╤Д╨░╨╣╨╗╤Л - ╨┐╨╛ ╨╛╨┤╨╜╨╛╨╝╤Г ╨╖╨░ ╤А╨░╨╖. ╨Э╤Г╨╢╨╜╨╛ ╤Б╤З╨╕╤В╨░╤В╤М ╨┐╨░╤А╨░╨╝╨╡╤В╤А AET ╨╕ ╨╜╨╛╨╝╨╡╤А ╨┐╨╛╤А╤В╨░ ╨▓ ╨┐╨╡╤А╨╡╨╝╨╡╨╜╨╜╤Л╨╡.
foreach $analiz_file (@report_files) 
{
	$full_path_to_file="C:Perl64WORKPACS-xml3".$analiz_file;
	open (INFO, $full_path_to_file);
 
	while ($line = <INFO>)
	{
		# ╨Я╨╡╤А╨╡╨╝╨╡╨╜╨╜╤Л╨╡ $aet ╨╕ $port ╤Б╨╛╨┤╨╡╤А╨╢╨░╤В ╤Г╨╜╨╕╨║╨░╨╗╤М╨╜╤Л╨╡ ╨┤╨░╨╜╨╜╤Л╨╡ ╨┤╨╗╤П ╨║╨░╨╢╨┤╨╛╨│╨╛ XML ╤Д╨░╨╣╨╗╨░:
		my ($other1, $aet, $other2, $port, $other3) = split /"/, $line, 5;
		# ╨Х╤Б╨╗╨╕ ╨▓╤Б╤В╤А╨╡╤З╨░╨╡╤В╤Б╤П ╤Б╤В╤А╨╛╨║╨░ listener - ╤В╨╛ ╨╝╤Л ╨┤╨╛╤И╨╗╨╕ ╨┤╨╛ ╨╜╤Г╨╢╨╜╨╛╨╣ ╤Б╤В╤А╨╛╤З╨║╨╕ ╨╕ ╨╝╨╛╨╢╨╜╨╛ ╤Д╨╛╤А╨╝╨╕╤А╨╛╨▓╨░╤В╤М ╨╜╨╛╨▓╤Л╨╣ XML:
		if ($other1 =~ 'listener')
			{
				# ╨д╨╛╤А╨╝╨╕╤А╤Г╨╡╨╝ ╨╜╨╛╨▓╤Л╨╣ XML c ╨╜╤Г╨╢╨╜╤Л╨╝╨╕ ╨┐╨╛╨╗╤П╨╝╨╕ ╨╕ ╨┤╨░╨╜╨╜╤Л╨╝╨╕:
				my $writer = XML::Writer->new(OUTPUT => 'self', DATA_MODE => 1, DATA_INDENT => 2, );
				$writer->xmlDecl('utf-8');
				$writer->startTag('pacs');
				$writer->startTag('listener', ae => $aet, port => $port);
				$writer->endTag();
				$writer->startTag('hosts');
				$writer->startTag('host', name => 'MRT', ae => 'ORTHANC', ip => 'XX.YY.214.17', ts => '1.2.840.10008.1.2.1', port => '4242', maxassoc => '1', allpres => '0', search => '1', protocol => '1', searchcharset => '', wildcards => '3', carets => '0');
				$writer->endTag();
				$writer->startTag('host', name => 'KT', ae => 'ORTHANC2', ip => 'XX.YY.215.253', ts => '1.2.840.10008.1.2.1', port => '4242', maxassoc => '1', allpres => '0', search => '1', protocol => '1', searchcharset => '', wildcards => '3', carets => '0');
				$writer->endTag();
				$writer->startTag('host', name => 'R', ae => 'ORTHANC3', ip => 'XX.YY.215.252', ts => '1.2.840.10008.1.2.1', port => '4242', maxassoc => '1', allpres => '0', search => '1', protocol => '1', searchcharset => '', wildcards => '3', carets => '0');
				$writer->endTag();
				$writer->startTag('host', name => 'KT-20180501-20180831', ae => 'ORTHANC4', ip => 'XX.YY.215.251', ts => '1.2.840.10008.1.2.1', port => '4242', maxassoc => '1', allpres => '0', search => '1', protocol => '1', searchcharset => '', wildcards => '3', carets => '0');
				$writer->endTag();
				$writer->startTag('host', name => 'KT-20180901-20181130', ae => 'ORTHANC5', ip => 'XX.YY.215.250', ts => '1.2.840.10008.1.2.1', port => '4242', maxassoc => '1', allpres => '0', search => '1', protocol => '1', searchcharset => '', wildcards => '3', carets => '0');
				$writer->endTag();
				$writer->endTag('hosts');
				$writer->startTag('presets');
				$writer->endTag();
				$writer->startTag('lastsearch', dt => '4', mfid => '1048592');
				$writer->endTag();
				$writer->endTag('pacs');
 
				# ╨Я╨╛╨╝╨╡╤Й╨░╨╡╨╝ ╨│╨╛╤В╨╛╨▓╤Л╨╣ XML ╨▓ ╨┐╨╡╤А╨╡╨╝╨╡╨╜╨╜╤Г╤О:
				my $xml = $writer->end();
				# ╨Я╨╛╨┤╨│╨╛╤В╨░╨▓╨╗╨╕╨▓╨░╨╡╨╝ ╤Д╨░╨╣╨╗ ╨┤╨╗╤П ╨┐╨╡╤А╨╡╨╖╨░╨┐╨╕╤Б╨╕:
				$rewritexml = $full_path_to_file;
				# ╨Я╨╡╤А╨╡╨┐╨╕╤Б╤Л╨▓╨░╨╡╨╝ XML ╤Д╨░╨╣╨╗╤Л ╨╜╨╛╨▓╤Л╨╝╨╕ ╨┤╨░╨╜╨╜╤Л╨╝╨╕:
				open (NEWXML, ">$rewritexml");
				print NEWXML $xml;
				close (NEWXML);				
			}
	}
 
}

рдпрд╕рдХреЛ рд╕рдЮреНрдЪрд╛рд▓рди рдХреЛ рд╕рд┐рджреНрдзрд╛рдиреНрдд:

  • рд╣рд╛рдореАрд▓реЗ рдХреНрд▓рд╛рдЗрдиреНрдЯрд╣рд░реВрдмрд╛рдЯ pacs.xml рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирд╣рд░реВ рд╕рдЩреНрдХрд▓рди рдЧрд░реЗрдХреЛ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реА рдЦреЛрд▓реНрдЫреМрдВ рд░ рдлрд╛рдЗрд▓рд╣рд░реВрдХреЛ рд╕реВрдЪреАрд▓рд╛рдИ рд╕реНрдХреЗрд▓рд░рд╣рд░реВрдХреЛ рдПрд░реНрд░реЗрдорд╛ рд░рд╛рдЦреНрдЫреМрдВ (@report_files);
  • рд▓реБрдкрдорд╛, рд╣рд╛рдореА рдПрдХ рдкрдЯрдХрдорд╛ рдПрдЙрдЯрд╛ рдлрд╛рдЗрд▓ рдкреНрд░рд╢реЛрдзрди рдЧрд░реНрдЫреМрдВ рд░ рдпрд╕рд▓рд╛рдИ рд▓рд╛рдЗрдирджреНрд╡рд╛рд░рд╛ рд▓рд╛рдЗрди рдкрдвреНрдЫреМрдВред
  • рд╡рд┐рднрд╛рдЬрди рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░, рд╣рд╛рдореАрд▓реЗ рдкреНрд░рддреНрдпреЗрдХ рд░реЗрдЦрд╛рд▓рд╛рдИ 5 рднрд╛рдЧрд╣рд░реВрдорд╛ рд╡рд┐рднрд╛рдЬрди рдЧрд░реНрдЫреМрдВ, рд╡рд┐рднрд╛рдЬрдХрдХреЛ рд░реВрдкрдорд╛ рдЙрджреНрдзрд░рдгрд╣рд░реВ рдкреНрд░рдпреЛрдЧ рдЧрд░реЗрд░;
  • рд╣рд╛рдореА рд╢рдмреНрдж рд╢реНрд░реЛрддрд╛рдХреЛ рд╕рд╛рде рд▓рд╛рдЗрди рдлреЗрд▓рд╛ рдкрд╛рд░реНрдЫреМрдВ рд░ рдкреНрд░рддреНрдпреЗрдХ рдлрд╛рдЗрд▓ (AE рдЧреНрд░рд╛рд╣рдХ рдирд╛рдо рд░ TCP рдкреЛрд░реНрдЯ рдирдореНрдмрд░) рдХреЛ рд▓рд╛рдЧрд┐ рджреБрдИ рдЪрд░рд╣рд░реВрдорд╛ рдбреЗрдЯрд╛ рдЕрджреНрд╡рд┐рддреАрдп рд░рд╛рдЦреНрдЫреМрдВ;
  • рдпрд╕ рдкрдЫрд┐, рд╣рд╛рдореА рдХреЗрд╡рд▓ рдирдпрд╛рдБ XML рдлрд╛рдЗрд▓ рдЙрддреНрдкрдиреНрди рдЧрд░реНрдЫреМрдВ, рдпрд╕рдорд╛ рдЕрджреНрд╡рд┐рддреАрдп рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ рдкреНрд░рд╡рд┐рд╖реНрдЯ рдЧрд░реНрдЫреМрдВ рд░ рддреНрдпрд╕рдкрдЫрд┐ рддрд┐рдиреАрд╣рд░реВрдХреЛ рдкреНрдпрд╛рд░рд╛рдорд┐рдЯрд░рд╣рд░реВ рд╕рд╣рд┐рдд PACS рд╕рд░реНрднрд░рд╣рд░реВрдХреЛ рдЖрд╡рд╢реНрдпрдХ рд╕рдВрдЦреНрдпрд╛ рд╕рдореНрдорд┐рд▓рд┐рдд рдЧрд░реНрджрдЫреМрдВ - рддреАред рдпреЛ рд╕рдмреИ рдХреЗ рдХреЛ рд▓рд╛рдЧреА рд╕реБрд░реБ рднрдпреЛ)
  • рд╣рд╛рдореА рдкреБрд░рд╛рдиреЛрдХреЛ рдорд╛рдерд┐ рдирдпрд╛рдБ XML рдлрд╛рдЗрд▓ рдкреБрди: рд▓реЗрдЦреНрдЫреМрдВред

рдпреЛ рдзреНрдпрд╛рди рджрд┐рдиреБрдкрд░реНрдЫ рдХрд┐ рд╡рд╛рд╕реНрддрд╡рдорд╛, рдо рдпреЛ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдкреВрд░реНрдг рд░реВрдкрдорд╛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдкрдорд╛ рдкреНрд░рдпреЛрдЧ рдЧрд░реНрджрд┐рди - рд╡рд╛рд╕реНрддрд╡рдорд╛, рдореИрд▓реЗ рд╕рдЩреНрдХрд▓рди рдЧрд░рд┐рдПрдХрд╛ рдХрдиреНрдлрд┐рдЧрд╣рд░реВ рдЕрд▓рдЧ рдбрд╛рдЗрд░реЗрдХреНрдЯрд░реАрдорд╛ рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдЧрд░реНрдЫреБ рд░ рддреНрдпрд╕рдкрдЫрд┐ рд╕реНрдХреНрд░рд┐рдкреНрдЯ рдЪрд▓рд╛рдЙрдБрдЫреБ рд░ рддреА рд╕рдмреИрд▓рд╛рдИ рд╕рд╛рдореВрд╣рд┐рдХ рд░реВрдкрдорд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдЫреБред рдЕрд░реНрдХреЛ, рдЕрдирд┐рдпрдорд┐рдд рдЬрд╛рдБрдЪ - рд░ рдХрдиреНрдлрд┐рдЧрд╣рд░реВ рдореЗрд╕рд┐рдирд╣рд░реВрдорд╛ рдлрд┐рд░реНрддрд╛ рд╡рд┐рддрд░рдг рдЧрд░реНрди рд╕рдХрд┐рдиреНрдЫред

рдкрд░рд┐рдорд╛рд░реНрдЬрд┐рдд pacs.xml рдлрд╛рдЗрд▓рд╣рд░реВ рдЧреНрд░рд╛рд╣рдХрд╣рд░реВрд▓рд╛рдИ рд╡рд┐рддрд░рдг рдЧрд░реНрджреИ

рджрд┐рдорд╛рдЧрдорд╛ рдЖрдПрдХреЛ рд╕рд░рд▓ рдХреБрд░рд╛ рднрдиреЗрдХреЛ рдкрд╣рд┐рд▓реЗ рдиреИ рдХрд╛рдо рдЧрд░рд┐рд░рд╣реЗрдХреЛ .bat рдлрд╛рдЗрд▓рдорд╛ рдкрд░рд┐рд╡рд░реНрддрди рдЧрд░реНрдиреБ рдерд┐рдпреЛ рдЬрд╕рд▓реЗ рдЧреНрд░рд╛рд╣рдХрд╣рд░реВрдмрд╛рдЯ рдХрдиреНрдлрд┐рдЧрд░реЗрд╕рдирд╣рд░реВ рд╕рдЩреНрдХрд▓рди рдЧрд░реНрджрдЫ рд░ рд▓рд╛рдЗрди рдердкреНрдЫ:

If exist %APPDATA%RadiantViewerpacs.xml copy /Y srv.test.localpconfigsnew$pacs-%COMPUTERNAME%-%USERNAME%.xml %APPDATA%RadiantViewerpacs.xml

рдЕрдиреНрддрд┐рдо .bat рдлрд╛рдЗрд▓ рдпрд╕реНрддреЛ рджреЗрдЦрд┐рдиреНрдЫ:

@echo off
If exist %APPDATA%RadiantViewerpacs.xml copy %APPDATA%RadiantViewerpacs.xml srv.test.localpconfigs$pacs-%COMPUTERNAME%-%USERNAME%.xml
If exist %APPDATA%RadiantViewerpacs.xml copy /Y srv.test.localpconfigsnew$pacs-%COMPUTERNAME%-%USERNAME%.xml %APPDATA%RadiantViewerpacs.xml

рдирд┐рд╖реНрдХрд░реНрд╖рдорд╛

рдпрд╕реНрддреЛ рдЫ "рдШреБрдБрдбрд╛"рд╕рдорд╛рдзрд╛рдиред рд╣рд╛рдореАрд▓реЗ рдкрд╣рд┐рд▓реЗ рдиреИ рдпрд╕рд▓рд╛рдИ рджреБрдИ рдкрдЯрдХ (рд╕реЗрдкреНрдЯреЗрдореНрдмрд░ 2018 рд░ рдлреЗрдмреНрд░реБрдЕрд░реА 2019 рдорд╛) рдкреНрд░рдпрд╛рд╕ рдЧрд░рд┐рд╕рдХреЗрдХрд╛ рдЫреМрдВ, рдЕрд╣рд┐рд▓реЗрд╕рдореНрдо рдЙрдбрд╛рди рд╕рд╛рдорд╛рдиреНрдп рдЫред рдЕрд╡рд╢реНрдп рдкрдирд┐, 100% рдХреНрд▓рд╛рдЗрдиреНрдЯрд╣рд░реВ рдЕрджреНрдпрд╛рд╡рдзрд┐рдХ рдЧрд░реНрджреИрди, рддрд░ рдпреЛ рдпреЛ рдорд╛рдирдХреЛ рдирдЬрд┐рдХ рдЫ - рд╣рд╛рдореА рдЯрд╛рдврд╛рдмрд╛рдЯ рдмрд╛рдБрдХреА рдкреВрд░рд╛ рдЧрд░реНрдЫреМрдВред рджреНрд╡рд╛рд░рд╛ рд▓рд┐рдкрд┐ рд▓рд┐рдЩреНрдХ.

рд╕реНрд░реЛрдд: www.habr.com

рдПрдХ рдЯрд┐рдкреНрдкрдгреА рдердкреНрди