using System;
{
public MyWatcher(
Subject s):base(s,
"Override String"){}
protected override void StartFilter() {
System.Console.WriteLine(
"This is my start" );
}
protected override void EndFilter(){
System.Console.WriteLine(
"This is my end" );
}
protected override void ShowProgress(
Subject caller,
Event evt){
}
protected override void ShowIteration(){
System.Console.WriteLine(
"This is my iteration" );
}
protected override void ShowAnonymization(
Subject caller,
Event evt){
if( ae != null )
{
System.Console.WriteLine(
"This is my Anonymization. Processing Tag #" + t.toString() );
}
else
{
System.Console.WriteLine(
"This is my Anonymization. Unhandled Event type: " + evt.
GetEventName() );
}
}
protected override void ShowAbort(){
System.Console.WriteLine(
"This is my abort" );
}
}
public class ClinicalTrialIdentificationWorkflow
{
public static bool ProcessOneFile(
gdcm.
Anonymizer ano ,
string filename,
string outfilename )
{
bool ret = reader.
Read();
if( !ret )
{
return false;
}
if( !ano.BasicApplicationLevelConfidentialityProfile() )
{
return false;
}
ano.Replace(
new gdcm.
Tag(0x0012,0x0010),
"MySponsorName");
ano.Replace(
new gdcm.
Tag(0x0012,0x0020),
"MyProtocolID");
ano.Replace(
new gdcm.
Tag(0x0012,0x0021),
"MyProtocolName");
ano.Replace(
new gdcm.
Tag(0x0012,0x0030),
"MySiteId");
ano.Replace(
new gdcm.
Tag(0x0012,0x0031),
"MySiteName");
ano.Replace(
new gdcm.
Tag(0x0012,0x0040),
"MySponsorId");
ano.Replace(
new gdcm.
Tag(0x0012,0x0050),
"MyTPId");
ano.Replace(
new gdcm.
Tag(0x0012,0x0051),
"MyTPDescription");
if( !
gdcm.PosixEmulation.MakeDirectory( subdir ) )
{
return false;
}
if( !ret )
{
return false;
}
return true;
}
public static int Main(string[] args)
{
string THERALYS_ORG_ROOT = "1.3.6.1.4.17434";
{
System.Console.WriteLine(
"Could not LoadResourcesFiles" );
return 1;
}
if( args.Length != 2 )
{
System.Console.WriteLine(
"Usage:" );
System.Console.WriteLine(
"ClinicalTrialIdentificationWorkflow input_dir output_dir" );
return 1;
}
string dir1 = args[0];
string dir2 = args[1];
if( !
gdcm.PosixEmulation.FileIsDirectory(dir1) )
{
System.Console.WriteLine(
"Input directory: " + dir1 +
" does not exist. Sorry" );
return 1;
}
if( !
gdcm.PosixEmulation.FileIsDirectory(dir2) )
{
System.Console.WriteLine(
"Output directory: " + dir2 +
" does not exist. Sorry" );
return 1;
}
uint nfiles = d.
Load( dir1,
true );
if(nfiles == 0) return 1;
{
System.Console.WriteLine(
"PEM Certificate : " + certpath +
" could not be read. Sorry" );
return 1;
}
MyWatcher watcher = new MyWatcher(ano);
for( uint i = 0; i < nfiles; ++i )
{
string filename = filenames[ (int)i ];
string outfilename = filename.Replace( dir1, dir2 );
System.Console.WriteLine(
"Filename: " + filename );
System.Console.WriteLine(
"Out Filename: " + outfilename );
if( !ProcessOneFile( ano , filename, outfilename ) )
{
System.Console.WriteLine(
"Could not process filename: " + filename );
return 1;
}
}
return 0;
}
}
AnonymizeEvent.
Definition gdcmAnonymizeEvent.h:30
Tag const & GetTag() const
Definition gdcmAnonymizeEvent.h:46
Anonymizer.
Definition gdcmAnonymizer.h:78
void SetCryptographicMessageSyntax(CryptographicMessageSyntax *cms)
Set/Get CMS key that will be used to encrypt the dataset within BasicApplicationLevelConfidentialityP...
static SmartPointer< Anonymizer > New()
for wrapped language: instantiate a reference counted object
Definition gdcmAnonymizer.h:141
Class to do handle the crypto factory.
Definition gdcmCryptoFactory.h:36
virtual CryptographicMessageSyntax * CreateCMSProvider()=0
static CryptoFactory * GetFactoryInstance(CryptoLib id=DEFAULT)
Definition gdcmCryptographicMessageSyntax.h:23
virtual bool ParseCertificateFile(const char *filename)=0
SizeType Remove(const Tag &tag)
Completely remove a dataelement from the dataset.
Definition gdcmDataSet.h:172
Class for manipulation directories.
Definition gdcmDirectory.h:43
unsigned int Load(FilenameType const &name, bool recursive=false)
FilenamesType const & GetFilenames() const
Set/Get the file names within the directory.
Definition gdcmDirectory.h:58
superclass for callback/observer methods
Definition gdcmEvent.h:27
virtual const char * GetEventName() const =0
Class to manipulate file name's.
Definition gdcmFilename.h:28
static const char * Join(const char *path, const char *filename)
const char * GetPath()
Return only the path component of a filename.
Global.
Definition gdcmGlobal.h:50
bool LoadResourcesFiles()
static Global & GetInstance()
return the singleton instance
ProgressEvent.
Definition gdcmProgressEvent.h:30
double GetProgress() const
Definition gdcmProgressEvent.h:47
Reader ala DOM (Document Object Model)
Definition gdcmReader.h:54
const File & GetFile() const
Set/Get File.
Definition gdcmReader.h:72
virtual bool Read()
Main function to read a file.
void SetFileName(const char *filename_native)
SimpleSubjectWatcher.
Definition gdcmSimpleSubjectWatcher.h:32
Subject.
Definition gdcmSubject.h:29
Class to do system operation.
Definition gdcmSystem.h:27
Class to represent a DICOM Data Element (Attribute) Tag (Group, Element).
Definition gdcmTag.h:39
class for testing
Definition gdcmTesting.h:32
static const char * GetSourceDirectory()
Class for generating unique UID.
Definition gdcmUIDGenerator.h:28
static void SetRoot(const char *root)
static const char * GetRoot()
Writer ala DOM (Document Object Model)
Definition gdcmWriter.h:49
virtual bool Write()
Main function to tell the writer to write.
void SetFile(const File &f)
Set/Get the DICOM file (DataSet + Header)
Definition gdcmWriter.h:66
void SetFileName(const char *filename_native)
Set the filename of DICOM file to write: