ကိုယ်ရေသကိုယ်တာဘောင်မျာသကို သိမ်သဆည်သနေစဉ် ပရိုဂရမ်ဆက်တင်မျာသကို ပဌောင်သလဲခဌင်သ။

စောပိုငျသကာလ

ဆေသဘက်ဆိုင်ရာအဖလဲ့အစည်သတစ်ခုသည် Orthanc PACS ဆာဗာမျာသနဟင့် Radiant DICOM ဖောက်သည်မျာသအပေါ် အခဌေခံ၍ ဖဌေရဟင်သချက်မျာသအာသ အကောင်အထည်ဖော်ခဲ့သည်။ စနစ်ထည့်သလင်သစဉ်အတလင်သ၊ DICOM ဖောက်သည်တစ်ခုစီကို PACS ဆာဗာမျာသတလင် အောက်ပါအတိုင်သ ဖော်ပဌရမည်ဟု ကျလန်ုပ်တို့ တလေ့ရဟိခဲ့သည်-

  • လိုင်သအမည်
  • AE အမည် (ထူသခဌာသရမည်)
  • ဖောက်သည်ဘက်မဟ အလိုအလျောက်ပလင့်လာပဌီသ PACS ဆာဗာမဟ DICOM စစ်တမ်သမျာသကို လက်ခံရရဟိသည့် TCP အပေါက်တစ်ခု (ဆိုလိုသည်မဟာ၊ ဆာဗာသည် ၎င်သတို့အာသ ကလိုင်သယင့်ဆီသို့ တလန်သပို့သည် - ချိတ်ဆက်မဟုကို ညသစလာစတင်သည်)
  • အိုင်ပီ-လိပ်စာ

Radiant ကို စနစ်ထည့်သလင်သပဌီသနောက်၊ ဖောက်သည်မျာသသည် တလေသခေါ်မဟုအတလက် အောက်ပါအစာသအစာကို ရရဟိခဲ့သည်- သုံသစလဲသူတစ်ညသစီအတလက်၊ အထက်ဖော်ပဌပါကန့်သတ်ချက်မျာသဖဌင့် ဆော့ဖ်ဝဲလ်ကို စနစ်ထည့်သလင်သခဌင်သဖဌင့် ဖိုင်ကို ဖဌည့်ပေသခဲ့သည်။ pacs.xmlအသုံသပဌုသူပရိုဖိုင်တလင်တည်ရဟိသော (လမ်သကဌောင်သ- %APPDATA%RadiantViewerpacs.xml) တစ်ချိန်တည်သမဟာပင်၊ client တစ်ခု၏ config သည် အနည်သဆုံသ parameters နဟစ်ခုတလင် အခဌာသတစ်ခုနဟင့် ကလဲပဌာသသည် (AE name သည် လူတိုင်သအတလက် ကလဲပဌာသသည်၊ port သည် အခဌေခံအာသဖဌင့် တူညီသည်၊ တူညီသော server ပေါ်တလင် run နေသော terminal client မျာသမဟလလဲ၍ port မျာသသည် အခဌေခံအာသဖဌင့် တူညီသည် - အဲဒီမဟာ ports တလေလည်သပါပါတယ်။ ကလဲပဌာသစေရန်)။

ဥပမာ pacs.xml ဖိုင် link ကို:

ခဌောက်လလောက်ကဌာတော့ အာသလုံသအဆင်ပဌေတယ်၊ ​​စနစ်ကစပဌီသ အလုပ်လုပ်တယ်... ပဌီသတော့ ငါတို့ဆီရောက်လာတယ်။ရေအောက် ကျောက်မျာသ"

  • ကျလန်ုပ်တို့သည် အဟောင်သမျာသကိုအစာသထိုသမည့် PACS ဆာဗာအသစ်မျာသစလာကို လည်ပတ်လုပ်ဆောင်ရန် လိုအပ်သည် (ဒစ်နေရာလလတ်စပဌုလာသည်)။ virtual machines မျာသရဟိ PACS ဆာဗာမျာသ၊ သို့သော် ကျလန်ုပ်တို့ပဌောနေသည့်အရာမဟုတ်ပါ။
  • စက် 200 တလင် ထူသခဌာသသောဖလဲ့စည်သပုံမျာသ (မတူညီသော ကန့်သတ်ချက်မျာသ နဟစ်ခုဖဌင့်) ကို တစ်နည်သနည်သဖဌင့် ဗဟိုမဟပဌောင်သလဲရန် လိုအပ်သည် (၎င်သတို့၏အရေအတလက်သည် ပုံမဟန်တိုသလာသည်)။
  • စစ်တမ်သပမာဏမျာသ၏ တိုသတက်မဟုနဟုန်သကို ထည့်သလင်သစဉ်သစာသခဌင်သဖဌင့် အဖဌေတစ်ခုသည် တစ်ကဌိမ်မျဟသာမက ထပ်တူကျကာ ပုံမဟန် (ဥပမာ၊ ၃-၅ လလျဟင် တစ်ကဌိမ်) လိုအပ်ပါသည်။

ဖဌေရဟင်သချက်မဟာ အောက်ပါအတိုင်သဖဌစ်သည်။

ပဌဿနာတစ်ခုဖဌေရဟင်သရန် ကိရိယာမျာသရလေသချယ်ခဌင်သ။

အစပိုင်သတလင်၊ ကလိုင်သယင့်ဘက်မဟ pacs.xml ဖိုင်ကို မလမ်သမံပဌင်ဆင်ရန်နဟင့် AE အမည်နဟင့် TCP ပေါက်ဆက်တင်မျာသကို မထိခိုက်စေဘဲ PACS ဆာဗာမျာသစာရင်သသို့ အပဌောင်သအလဲလုပ်မည့် ဖဌေရဟင်သချက်အချို့ကို ရဟာဖလေရန် ကဌိုသပမ်သမဟုမျာသ ရဟိခဲ့သည်။ ထိုအချိန်က Windows client မျာသသည် Windows XP နဟင့် Windows 7 နဟစ်မျိုသလုံသကို အခဌေခံထာသသည် - ထို့ကဌောင့် VBScript ကို အခဌေခံ၍ ကကဲ့သို့ ရေသရန် ကဌိုသပမ်သမဟုမျာသ ရဟိခဲ့သည်။ ဖဌစ်ချင်တော့၊ ဒီဘာသာစကာသမဟာ ရဟုပ်ထလေသပဌီသ ရဟုပ်ထလေသတဲ့ အရာတလေကို ရေသသာသရာမဟာ အတလေ့အကဌုံ အပဌည့်မရဟိတာကဌောင့် ဒီလိုအလုပ်တစ်ခုကို ကျလမ်သကျင်ပိုင်နိုင်စလာ မဆောင်ရလက်နိုင်ခဲ့ပါဘူသ။ ရဟာဖလေပဌီသ ပဌန်လည်ရေသသာသရန် ကဌိုသပမ်သမဟုမျာသလည်သ မအောင်မဌင်ခဲ့ပါ (ကျလန်ုပ်၏ခေါင်သထဲတလင် မတူညီသောအစီအစဉ်တစ်ခုရဟိနေပဌီဖဌစ်သောကဌောင့် ကျလန်ုပ်သည် VBScript နဟင့် ၃-၄ နာရီထက်ပို၍ မရဟုပ်ခဲ့သင့်ပါ)။

အဆုံသတလင် ကျလန်ုပ်သည် အောက်ပါအဖဌေကို ဆုံသဖဌတ်ခဲ့သည်။

  • အဖလဲ့မူဝါဒကိုအသုံသပဌု၍ ကလန်ရက်အရင်သအမဌစ်ရဟိ မည်သည့်ဆာဗာတလင်မဆို pacs.xml ဖိုင်အာသလုံသကို တစ်နေရာတည်သတလင် စုစည်သပါ။
  • ဖိုင်မျာသကို အစုလိုက်အပဌုံလိုက် ပဌောင်သလဲခဌင်သ (Perl ကို အသုံသပဌု၍ ထိုကဲ့သို့သော ပဌဿနာမျာသကို ဖဌေရဟင်သရာတလင် အတလေ့အကဌုံရဟိပဌီသသာသ)၊
  • ကလိုင်သယင့်ဆက်တင်မျာသကို အပ်ဒိတ်လုပ်ရန် အဖလဲ့မူဝါဒမျာသကိုလည်သ အသုံသပဌုပါ။

Group Policy ကို အသုံသပဌု၍ ဖိုင်မျာသ စုဆောင်သခဌင်သ။

အရိုသရဟင်သဆုံသအချက်မဟာ သုံသစလဲသူသည် ၎င်သ၏ပရိုဖိုင်ကို လော့ဂ်အင်ဝင်သောအခါတလင်၊ သူသည် ၎င်သ၏လုပ်ပိုင်ခလင့်မျာသနဟင့်အတူ သတ်မဟတ်ထာသသော .bat ဖိုင်ကို လုပ်ဆောင်သည်ဟူသည်မဟာ-

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

ထို့ကဌောင့်၊ pacs.xml ဖိုင်မျာသသည် မည်သည့်ကလန်ပျူတာမဟ အချက်အလက်မျာသနဟင့် က config ကို ကူသယူထာသသည့် အသုံသပဌုသူထံမဟ အချက်အလက်ပါရဟိသည့် လျဟို့ဝဟက်အရင်သအမဌစ်တစ်ခုတလင် ဆာဗာပေါ်တလင် စုပဌုံနေမည်ဖဌစ်သည်။

အခက်ခဲဆုံသမဟာ ကမူဝါဒသည် သုံသစလဲသူအာသလုံသအတလက် အလုပ်ဖဌစ်သည်အထိ စောင့်ရန်ဖဌစ်သည်။

Perl script ကို အသုံသပဌု၍ ဖလဲ့စည်သမဟုပုံစံမျာသကို ပဌောင်သလဲခဌင်သ။

ကျနော်တို့လိုအပ်ပါတယ် Active Perl ActiveState မဟ Windows အတလက် အပဌင် XML::Writer module သည် command ကို အသုံသပဌု၍ ထည့်သလင်သနိုင်သည်။ 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);
  • စက်ဝိုင်သတစ်ခုတလင်၊ ကျလန်ုပ်တို့သည် တစ်ကဌိမ်လျဟင် ဖိုင်တစ်ခုကို လုပ်ဆောင်ပဌီသ ၎င်သကို လိုင်သတစ်ခုပဌီသတစ်ခု ဖတ်ပါ။
  • ခလဲခဌမ်သကို အသုံသပဌု၍ မျဉ်သတစ်ကဌောင်သစီကို အပိုင်သ ၅ ပိုင်သခလဲကာ၊
  • ကျလန်ုပ်တို့သည် စကာသလုံသနာသထောင်သူနဟင့် စာကဌောင်သတစ်ကဌောင်သတလေ့ပဌီသ ဖိုင်တစ်ခုစီအတလက် သီသခဌာသဒေတာ (AE client name နဟင့် TCP port နံပါတ်) ကို variable နဟစ်ခုအဖဌစ် ထာသရဟိပါ။
  • ၎င်သပဌီသနောက်၊ ကျလန်ုပ်တို့သည် XML ဖိုင်အသစ်တစ်ခုကို ဖန်တီသပဌီသ၊ ၎င်သတလင် သီသသန့်ဘောင်မျာသကို ထည့်သလင်သပဌီသနောက် လိုအပ်သော PACS ဆာဗာမျာသ၏ အရေအတလက်ကို ၎င်သတို့၏ ကန့်သတ်ချက်မျာသဖဌင့် ထည့်သလင်သပါ - အဲဒါတလေ။ အာသလုံသက ဘာအတလက် စတင်ခဲ့တာလဲ။)
  • ကျလန်ုပ်တို့သည် XML ဖိုင်အဟောင်သ၏ထိပ်တလင် အသစ်ပဌန်ရေသပါသည်။

အမဟန်မဟာ၊ ကျလန်ုပ်သည် က script ကို အလိုအလျောက် လုံသဝအသုံသမပဌုကဌောင်သ သတိပဌုသင့်သည် - အမဟန်မဟာ၊ စုဆောင်သထာသသော configs မျာသကို သီသခဌာသ directory တစ်ခုသို့ ကူသယူပဌီသ script ကို run ပဌီသ ၎င်သတို့အာသလုံသကို အစုလိုက်အပဌုံလိုက် ပဌောင်သလဲပါသည်။ ထို့နောက်၊ ကျပန်သစစ်ဆေသခဌင်သ - နဟင့် configs မျာသကိုစက်မျာသသို့ပဌန်လည်ဖဌန့်ဝေနိုင်သည်။

မလမ်သမံထာသသော pacs.xml ဖိုင်မျာသကို သုံသစလဲသူမျာသထံ ဖဌန့်ဝေခဌင်သ။

စိတ်ထဲတလင် အရိုသရဟင်သဆုံသအချက်မဟာ ဖောက်သည်မျာသထံမဟ configurations မျာသကို စုဆောင်သပဌီသ လိုင်သထည့်သည့် လုပ်ဆောင်ပဌီသသာသ .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% အပ်ဒိတ်မဟုတ်ပါ၊ သို့သော် ၎င်သသည် ကတန်ဖိုသနဟင့် နီသစပ်ပါသည် - ကျလန်ုပ်တို့သည် ကျန်အရာအာသလုံသကို အဝေသမဟ ပဌီသအောင်လုပ်ပါသည်။ ဇာတ်ညလဟန်သ link ကို.

source: www.habr.com

မဟတ်ချက် Add