เจจเจฟเฉฑเจœเฉ€ เจฎเจพเจชเจฆเฉฐเจกเจพเจ‚ เจจเฉ‚เฉฐ เจธเฉเจฐเฉฑเจ–เจฟเจ…เจค เจ•เจฐเจฆเฉ‡ เจนเฉ‹เจ เจชเฉเจฐเฉ‹เจ—เจฐเจพเจฎ เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฃเจพ

prehistory

เจ‡เฉฑเจ• เจฎเฉˆเจกเฉ€เจ•เจฒ เจธเฉฐเจธเจฅเจพ เจจเฉ‡ Orthanc PACS เจธเจฐเจตเจฐเจพเจ‚ เจ…เจคเฉ‡ Radiant DICOM เจ•เจฒเจพเจ‡เฉฐเจŸ 'เจคเฉ‡ เจ†เจงเจพเจฐเจฟเจค เจนเฉฑเจฒ เจฒเจพเจ—เฉ‚ เจ•เฉ€เจคเฉ‡เฅค เจธเฉˆเฉฑเจŸเจ…เฉฑเจช เจฆเฉ‡ เจฆเฉŒเจฐเจพเจจ, เจธเจพเจจเฉ‚เฉฐ เจชเจคเจพ เจฒเฉฑเจ—เจพ เจนเฉˆ เจ•เจฟ เจนเจฐเฉ‡เจ• DICOM เจ•เจฒเจพเจ‡เฉฐเจŸ เจฆเจพ PACS เจธเจฐเจตเจฐเจพเจ‚ เจตเจฟเฉฑเจš เจตเจฐเจฃเจจ เจ•เฉ€เจคเจพ เจœเจพเจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ:

  • เจ•เจฒเจพเจ‡เฉฐเจŸ เจฆเจพ เจจเจพเจฎ
  • AE เจจเจพเจฎ (เจ…เจจเฉ‹เจ–เจพ เจนเฉ‹เจฃเจพ เจšเจพเจนเฉ€เจฆเจพ เจนเฉˆ)
  • เจ‡เฉฑเจ• TCP เจชเฉ‹เจฐเจŸ เจœเฉ‹ เจ•เจฒเจพเจ‡เฉฐเจŸ เจธเจพเจˆเจก 'เจคเฉ‡ เจ†เจชเจฃเฉ‡ เจ†เจช เจ–เฉเฉฑเจฒเฉเจนเจฆเจพ เจนเฉˆ เจ…เจคเฉ‡ PACS เจธเจฐเจตเจฐ เจคเฉ‹เจ‚ DICOM เจธเจฐเจตเฉ‡เจ–เจฃ เจชเฉเจฐเจพเจชเจค เจ•เจฐเจฆเจพ เจนเฉˆ (เจ…เจฐเจฅเจพเจค, เจธเจฐเจตเจฐ เจ‰เจนเจจเจพเจ‚ เจจเฉ‚เฉฐ เจ•เจฒเจพเจ‡เฉฐเจŸ เจตเฉฑเจฒ เจงเฉฑเจ•เจฆเจพ เจนเฉˆ - เจชเจนเจฟเจฒเจพเจ‚ เจ•เฉเจจเฉˆเจ•เจธเจผเจจ เจธเจผเฉเจฐเฉ‚ เจ•เจฐเจจเจพ)
  • IP เจเจกเจฐเฉˆเฉฑเจธ

เจฐเฉ‡เจกเฉ€เจเจ‚เจŸ เจธเฉˆเจŸ เจ…เจช เจ•เจฐเจจ เจคเฉ‹เจ‚ เจฌเจพเจ…เจฆ, เจ•เจฒเจพเจ‡เฉฐเจŸเจธ เจจเฉ‚เฉฐ เจตเจฟเจšเจพเจฐ เจฒเจˆ เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเฉ‡ เจญเฉ‹เจœเจจ เจชเฉเจฐเจพเจชเจค เจนเฉ‹เจ: เจนเจฐเฉ‡เจ• เจ•เจฒเจพเจ‡เฉฐเจŸ เจฒเจˆ, เจ‰เจชเจฐเฉ‹เจ•เจค เจฎเจพเจชเจฆเฉฐเจกเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ เจธเฉŒเจซเจŸเจตเฉ‡เจ…เจฐ เจธเจฅเจพเจชเจค เจ•เจฐเจจ เจฆเฉ‡ เจจเจคเฉ€เจœเฉ‡ เจตเจœเฉ‹เจ‚ เจซเจพเจˆเจฒ เจญเจฐเฉ€ เจ—เจˆ pacs.xml, เจœเฉ‹ เจ•เจฟ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจชเฉเจฐเฉ‹เจซเจพเจˆเจฒ เจตเจฟเฉฑเจš เจธเจฅเจฟเจค เจธเฉ€ (เจชเจพเจฅ: %APPDATA%RadiantViewerpacs.xml). เจ‰เจธเฉ‡ เจธเจฎเฉ‡เจ‚, เจ‡เฉฑเจ• เจ•เจฒเจพเจ‡เฉฐเจŸ เจฆเฉ€ เจธเฉฐเจฐเจšเจจเจพ เจ˜เฉฑเจŸเฉ‹-เจ˜เฉฑเจŸ เจฆเฉ‹ เจชเฉˆเจฐเจพเจฎเฉ€เจŸเจฐเจพเจ‚ เจตเจฟเฉฑเจš เจฆเฉ‚เจœเฉ‡ เจคเฉ‹เจ‚ เจตเฉฑเจ–เจฐเฉ€ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ (AE เจจเจพเจฎ เจนเจฐ เจ•เจฟเจธเฉ‡ เจฒเจˆ เจตเฉฑเจ–เจฐเจพ เจนเฉเฉฐเจฆเจพ เจนเฉˆ, เจ…เจคเฉ‡ เจชเฉ‹เจฐเจŸ เจฎเฉ‚เจฒ เจฐเฉ‚เจช เจตเจฟเฉฑเจš เจ‡เฉฑเจ•เฉ‹ เจœเจฟเจนเฉ€ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ, เจ‡เฉฑเจ•เฉ‹ เจธเจฐเจตเจฐ 'เจคเฉ‡ เจšเฉฑเจฒ เจฐเจนเฉ‡ เจŸเจฐเจฎเฉ€เจจเจฒ เจ•เจฒเจพเจ‡เฉฐเจŸเจพเจ‚ เจจเฉ‚เฉฐ เจ›เฉฑเจก เจ•เฉ‡ - เจ‰เฉฑเจฅเฉ‡ เจชเฉ‹เจฐเจŸเจพเจ‚ เจตเฉ€ เจธเจจเฅค เจตเฉฑเจ–เจฐเจพ เจจเจฟเจฐเจงเจพเจฐเจค เจ•เฉ€เจคเจพ เจœเจพเจฃเจพ เจนเฉˆ)เฅค

เจฆเฉเจ†เจฐเจพ เจ‰เจฆเจพเจนเจฐเจจ pacs.xml เจซเจพเจˆเจฒ เจฒเจฟเฉฐเจ• เจจเฉ‚เฉฐ:

เจฒเจ—เจญเจ— เจ›เฉ‡ เจฎเจนเฉ€เจจเจฟเจ†เจ‚ เจคเฉฑเจ• เจธเจญ เจ•เฉเจ เจ เฉ€เจ• เจฐเจฟเจนเจพ, เจธเจฟเจธเจŸเจฎ เจจเฉ‡ เจ•เฉฐเจฎ เจ•เจฐเจจเจพ เจธเจผเฉเจฐเฉ‚ เจ•เจฐ เจฆเจฟเฉฑเจคเจพ ... เจ…เจคเฉ‡ เจซเจฟเจฐ เจ‡เจน เจธเจพเจกเฉ‡ เจ•เฉ‹เจฒ เจ†เจ‡เจ† "เจชเจพเจฃเฉ€ เจฆเฉ‡ เจ…เฉฐเจฆเจฐ เจชเฉฑเจฅเจฐ"

  • เจธเจพเจจเฉ‚เฉฐ เจ•เจˆ เจจเจตเฉ‡เจ‚ PACS เจธเจฐเจตเจฐเจพเจ‚ เจจเฉ‚เฉฐ เจธเฉฐเจšเจพเจฒเจฟเจค เจ•เจฐเจจ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ เจœเฉ‹ เจชเฉเจฐเจพเจฃเฉ‡ (เจœเจฟเฉฑเจฅเฉ‡ เจกเจฟเจธเจ• เจธเจชเฉ‡เจธ เจ–เจคเจฎ เจนเฉ‹เจฃ เจฒเฉฑเจ—เฉ€ เจนเฉˆ) เจจเฉ‚เฉฐ เจฌเจฆเจฒ เจฆเฉ‡เจฃเจ—เฉ‡เฅค เจตเจฐเจšเฉเจ…เจฒ เจฎเจธเจผเฉ€เจจเจพเจ‚ เจตเจฟเฉฑเจš PACS เจธเจฐเจตเจฐ, เจชเจฐ เจ‡เจน เจ‰เจน เจจเจนเฉ€เจ‚ เจนเฉˆ เจœเจฟเจธ เจฌเจพเจฐเฉ‡ เจ…เจธเฉ€เจ‚ เจ—เฉฑเจฒ เจ•เจฐ เจฐเจนเฉ‡ เจนเจพเจ‚;
  • เจธเจพเจจเฉ‚เฉฐ 200 เจฎเจธเจผเฉ€เจจเจพเจ‚ (เจ‰เจจเฉเจนเจพเจ‚ เจฆเฉ€ เจ—เจฟเจฃเจคเฉ€ เจฒเจ—เจพเจคเจพเจฐ เจตเจง เจฐเจนเฉ€ เจธเฉ€) 'เจคเฉ‡ เจ•เจฟเจธเฉ‡ เจคเจฐเฉเจนเจพเจ‚ เจ•เฉ‡เจ‚เจฆเจฐเฉ€ เจคเฉŒเจฐ 'เจคเฉ‡ เจตเจฟเจฒเฉฑเจ–เจฃ เจธเฉฐเจฐเจšเจจเจพเจตเจพเจ‚ (เจฆเฉ‹ เจตเฉฑเจ–-เจตเฉฑเจ– เจฎเจพเจชเจฆเฉฐเจกเจพเจ‚ เจฆเฉ‡ เจจเจพเจฒ) เจฌเจฆเจฒเจฃ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ;
  • เจธเจฐเจตเฉ‡เจ–เจฃ เจตเจพเจฒเฉ€เจ…เจฎเจพเจ‚ เจฆเฉ€ เจตเจฟเจ•เจพเจธ เจฆเจฐ เจจเฉ‚เฉฐ เจงเจฟเจ†เจจ เจตเจฟเฉฑเจš เจฐเฉฑเจ–เจฆเฉ‡ เจนเฉ‹เจ, เจ‡เฉฑเจ• เจนเฉฑเจฒ เจฆเฉ€ เจฒเฉ‹เฉœ เจนเฉˆ เจธเจฟเจฐเจซเจผ เจ‡เฉฑเจ• เจตเจพเจฐ เจจเจนเฉ€เจ‚, เจธเจ—เฉ‹เจ‚ เจฆเฉเจนเจฐเจพเจˆ เจ…เจคเฉ‡ เจจเจฟเจฏเจฎเจค เจคเฉŒเจฐ 'เจคเฉ‡ (เจ‰เจฆเจพเจนเจฐเจจ เจฒเจˆ, เจนเจฐ 1-3 เจฎเจนเฉ€เจจเจฟเจ†เจ‚ เจตเจฟเฉฑเจš เจ‡เฉฑเจ• เจตเจพเจฐ)เฅค

เจนเฉฑเจฒ เจนเฉ‡เจ เจพเจ‚ เจฆเจฟเฉฑเจคเจพ เจ—เจฟเจ† เจนเฉˆ.

เจ‡เฉฑเจ• เจธเจฎเฉฑเจธเจฟเจ† เจจเฉ‚เฉฐ เจนเฉฑเจฒ เจ•เจฐเจจ เจฒเจˆ เจธเฉฐเจฆ เจฆเฉ€ เจšเฉ‹เจฃ

เจชเจนเจฟเจฒเจพเจ‚, เจ•เฉเจ เจนเฉฑเจฒ เจฒเฉฑเจญเจฃ เจฆเฉ€ เจ•เฉ‹เจธเจผเจฟเจธเจผ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจธเฉ€ เจœเฉ‹ เจ•เจฒเจพเจ‡เฉฐเจŸ เจธเจพเจˆเจก 'เจคเฉ‡ pacs.xml เจซเจพเจˆเจฒ เจจเฉ‚เฉฐ เจธเฉฐเจธเจผเฉ‹เจงเจฟเจค เจ•เจฐเฉ‡เจ—เฉ€ เจ…เจคเฉ‡ AE เจจเจพเจฎ เจ…เจคเฉ‡ TCP เจชเฉ‹เจฐเจŸ เจธเฉˆเจŸเจฟเฉฐเจ—เจพเจ‚ เจจเฉ‚เฉฐ เจชเฉเจฐเจญเจพเจตเจฟเจค เจ•เฉ€เจคเฉ‡ เจฌเจฟเจจเจพเจ‚ PACS เจธเจฐเจตเจฐเจพเจ‚ เจฆเฉ€ เจธเฉ‚เจšเฉ€ เจตเจฟเฉฑเจš เจคเจฌเจฆเฉ€เจฒเฉ€เจ†เจ‚ เจ•เจฐเฉ‡เจ—เฉ€เฅค เจ‰เจธ เจธเจฎเฉ‡เจ‚ เจตเจฟเฉฐเจกเฉ‹เจœเจผ เจ•เจฒเจพเจ‡เฉฐเจŸเจธ เจตเจฟเฉฐเจกเฉ‹เจœเจผ เจเจ•เจธเจชเฉ€ เจ…เจคเฉ‡ เจตเจฟเฉฐเจกเฉ‹เจœเจผ 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 เจซเจพเจˆเจฒเจพเจ‚ เจธเจฐเจตเจฐ 'เจคเฉ‡ เจ‡เฉฑเจ• เจฒเฉเจ•เจตเฉ‡เจ‚ เจธเจฐเฉ‹เจค เจตเจฟเฉฑเจš เจ‡เจ•เฉฑเจ เฉ€เจ†เจ‚ เจนเฉ‹เจฃเจ—เฉ€เจ†เจ‚, เจœเจฟเจธ เจฆเฉ‡ เจจเจพเจฎ เจตเจฟเฉฑเจš เจ‡เจน เจœเจพเจฃเจ•เจพเจฐเฉ€ เจนเฉเฉฐเจฆเฉ€ เจนเฉˆ เจ•เจฟ เจ‡เจน เจธเฉฐเจฐเจšเจจเจพ เจ•เจฟเจธ เจ•เฉฐเจชเจฟเจŠเจŸเจฐ เจคเฉ‹เจ‚ เจ…เจคเฉ‡ เจ•เจฟเจธ เจ‰เจชเจญเฉ‹เจ—เจคเจพ เจคเฉ‹เจ‚ เจ•เจพเจชเฉ€ เจ•เฉ€เจคเฉ€ เจ—เจˆ เจธเฉ€เฅค

เจธเจญ เจคเฉ‹เจ‚ เจฎเฉเจธเจผเจ•เจฒ เจ—เฉฑเจฒ เจ‰เจฆเฉ‹เจ‚ เจคเฉฑเจ• เจ‰เจกเฉ€เจ• เจ•เจฐเจจเฉ€ เจธเฉ€ เจœเจฆเฉ‹เจ‚ เจคเฉฑเจ• เจ‡เจน เจจเฉ€เจคเฉ€ เจธเจพเจฐเฉ‡ เจ‰เจชเจญเฉ‹เจ—เจคเจพเจตเจพเจ‚ เจฒเจˆ เจ•เฉฐเจฎ เจจเจนเฉ€เจ‚ เจ•เจฐเจฆเฉ€เฅค

เจชเจฐเจฒ เจธเจ•เฉเจฐเจฟเจชเจŸ เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจธเฉฐเจฐเจšเจจเจพเจตเจพเจ‚ เจจเฉ‚เฉฐ เจฌเจฆเจฒเจฃเจพ

เจธเจพเจจเฉ‚เฉฐ เจฒเฉ‹เฉœ เจชเจตเฉ‡เจ—เฉ€ เจเจ•เจŸเจฟเจต เจชเจฐเจฒ เจเจ•เจŸเจฟเจตเจธเจŸเฉ‡เจŸ เจคเฉ‹เจ‚ เจตเจฟเฉฐเจกเฉ‹เจœเจผ เจฒเจˆ, เจจเจพเจฒ เจนเฉ€ XML::เจฐเจพเจˆเจŸเจฐ เจฎเฉ‹เจกเฉ€เจŠเจฒ, เจœเฉ‹ เจ•เจฟ เจ•เจฎเจพเจ‚เจก เจฆเฉ€ เจตเจฐเจคเฉ‹เจ‚ เจ•เจฐเจ•เฉ‡ เจธเจฅเจพเจชเจฟเจค เจ•เฉ€เจคเจพ เจœเจพ เจธเจ•เจฆเจพ เจนเฉˆ ppm XML-เจฐเจพเจˆเจŸเจฐ เจ‡เฉฐเจธเจŸเจพเจฒ เจ•เจฐเฉ‹.

เจธเจ•เฉเจฐเจฟเจชเจŸ เจ†เจชเจฃเฉ‡ เจ†เจช เจตเจฟเฉฑเจš เจ•เจพเจซเจผเฉ€ เจธเจฐเจฒ เจจเจฟเจ•เจฒเฉ€:

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

เจ‡เฉฑเจ• เจŸเจฟเฉฑเจชเจฃเฉ€ เจœเฉ‹เฉœเฉ‹