Wednesday, December 12, 2012

C# File Browser

LUT within DICOM images

Lookup Tables

There are 4 types of lookup table (LUT) which can be found within DICOM images are part of the standard, and one further type which exists in DicomObjects.

Palette Colour LUTs

These are only used when the Photometric_Interpretation is PALETTE COLOR. They can be 8 or 16 bit, and 3 copies exist, one each for red, blue and green.

Main DICOM LUTs

Modality LUT

The Modality LUT transformation transforms the manufacturer dependent pixel values into pixel values which are meaningful for the modality and which are manufacturer independent.
In the case of a linear transformation, the Modality LUT is described by the Rescale Slope (0028, 1053) and Rescale Intercept (0028, 1052). In the case of a non-linear transformation, the Modality LUT is described by the Modality LUT Sequence (0028, 3000).
As Modality LUT is a pre-windowing transformation, Image's Window Center and Width can still be changed after Modality LUT is applied.

Values of Interest (VOI) LUT

The Value Of Interest(VOI) LUT transformation transforms the modality pixel values into pixel values which are meaningful for the user or the application.
In the case of a linear transformation, the VOI LUT is described by the Window Center (0028, 1050) and Window Width (0028, 1051). In the case of a non-linear transformation, the VOI LUT is described by the VOI LUT Sequence (0028, 3010).
In general, VOI LUT is the best supported. It serves as a Replacement for Window Center and Width therefor it is NOT technically allowed to window an image with a VOI LUT applied.

Presentation LUT

The Presentation LUT transformation transforms the pixel values into P-Values, a device indenpendent perceptually linear space. It may be an identity function if the output of the VOI LUT transformation is in P-Values.
In the case of a linear transformation, the Presentation LUT is described by teh Presentation LUT Shape (2050, 0020). In the case of a non-linear trnsformation, the Presentation LUT is described by the Presentation LUT Sequence (2050,0010).
Please note, NOT every Viewer supports all the LUTs. VOI LUT is best supported, as we mentioned above, then comes the Modality LUT and finally the Presentation LUT (This is from our experience). Even if all are individually supported, some viewer may not "chain" them correctly. For those reasons, sometimes it is better to apply any LUTs that your images need into the Pixel Data (i.e. replace the pixel data by a post-LUT equivalent).

DicomObjects ColourTable

This 2D-Array property allows a false-colour lookup table to be applied to a monochrome image. This property is used as a Final LUT when the image is being rendered for any purposes. The first dimension of the array must have lower bound of 1 and upper bound of 3. The second dimension of the array may be any size and may have any maximum value (up to 64K), as both input and output are sclaed to filt the required ranges.

From:http://www.medicalconnections.co.uk/kb/Lookup_Tables
 

ePHI and HIPPA

What is electronic protected health information (ePHI)?

According to the US Department of Health and Human Services, electronic protected health information (ePHI) is any protected health information (PHI) that is created, stored, transmitted, or received electronically. All protected health information is subject to federal Health Insurance Portability and Accountability Act (HIPAA) regulation, which refers to any information that identifies an individual (usually a patient) and relates to at least one of the following:
  • The individual's past, present, or future physical or mental health
  • The provision of health care to the individual
  • Past, present, or future payment for health care
Information that can identify an individual includes either the individual's name or any other information that could enable someone to determine the individual's identity.
Data are "individually identifiable" if they include any of the 18 types of identifiers for an individual or for the individual's employer or family member, or if the provider or researcher is aware that the information could be used, either alone or in combination with other information, to identify an individual. These identifiers are:
  • Name
  • Address (all geographic subdivisions smaller than state, including street address, city, county, or ZIP code)
  • All elements (except years) of dates related to an individual (including birth date, admission date, discharge date, date of death, and exact age if over 89)
  • Telephone numbers
  • FAX number
  • Email address
  • Social Security number
  • Medical record number
  • Health plan beneficiary number
  • Account number
  • Certificate/license number
  • Any vehicle or other device serial number
  • Device identifiers or serial numbers
  • Web URL
  • IP address
  • Finger or voice prints
  • Photographic images
  • Any other characteristic that could uniquely identify the individual
In research, it is often sufficient to make the information more general (instead of being removed altogether) for de-identification (e.g., by replacing the birth date with an age range).

The "e" in ePHI

Electronic protected health information (ePHI) includes any medium used to store, transmit, or receive PHI electronically. The following and any future technologies used for accessing, transmitting, or receiving PHI electronically are covered by the HIPAA Security Rule:
  • Media containing data at rest (storage)

    • Personal computers with their internal hard drives used at work, home, or traveling
    • External portable hard drives, including iPods and similar devices
    • Magnetic tape
    • Removable storage devices, such as USB memory sticks, CDs, DVDs, and floppy disks
    • PDAs and smartphones
  • Data in transit, via wireless, Ethernet, modem, DSL, or cable network connections

    • Email
    • File transfer

What is HIPAA?

The Health Insurance Portability and Accountability Act (HIPAA) of 1996 is set of statutes designed to improve the efficiency and effectiveness of the US health care system:
  • Title I: Title I of HIPAA provides rules to "improve the portability and continuity of health insurance coverage" for workers when they change employers.
  • Title II: Title II of HIPAA provides rules for controlling health care fraud and abuse, and includes an "Administrative Simplification" section that sets standards for enabling the electronic exchange of health information.
Provisions in the "Administrative Simplification" section of Title II include rules protecting the privacy and security of health data. These rules are enforced by the US Department of Health and Human Services Office for Civil Rights (OCR):
  • The Privacy Rule protects the privacy of individually identifiable health information. For more, see Privacy Rule on the OCR web site.
  • The Security Rule sets national standards for the security of electronic protected health information (ePHI). For more, see Security Rule on the OCR web site.
In 2009, HIPAA enforcement rules were strengthened by the Health Information Technology for Economic and Clinical Health (HITECH) Act. Subtitle D of the HITECH Act improved privacy and security provisions found in the original HIPAA privacy and security rules.
At Indiana University, compliance with the HIPAA privacy and security rules is coordinated through the Office for Clinical Affairs, with the interim HIPAA Privacy Officer and interim HIPAA Security Officer. For more about HIPAA compliance at IU, see the HIPAA Compliance page.
For more about HIPAA and the HITECH Act, see these US Health and Human Services pages:
from: http://kb.iu.edu/data/ayyy.html

Tuesday, December 11, 2012

Developement tools

Dll Export Viewer


This utility displays the list of all exported functions and their virtual memory addresses for the specified DLL files. You can easily copy the memory address of the desired function, paste it into your debugger, and set a breakpoint for this memory address. When this function is called, the debugger will stop in the beginning of this function.
For example: If you want to break each time that a message box is going to be displayed, simply put breakpoints on the memory addresses of message-box functions: MessageBoxA, MessageBoxExA, and MessageBoxIndirectA (or MessageBoxW, MessageBoxExW, and MessageBoxIndirectW in unicode based applications) When one of the message-box functions is called, your debugger should break in the entry point of that function, and then you can look at call stack and go backward into the code that initiated this API call.

http://www.nirsoft.net/utils/dll_export_viewer.html

 

Debug View

DebugView is an application that lets you monitor debug output on your local system, or any computer on the network that you can reach via TCP/IP. It is capable of displaying both kernel-mode and Win32 debug output, so you don't need a debugger to catch the debug output your applications or device drivers generate, nor do you need to modify your applications or drivers to use non-standard debug output APIs.

http://technet.microsoft.com/en-us/sysinternals/bb896647.aspx

GhostDoc

GhostDoc is a Visual Studio extension that automatically generates XML documentation comments for methods and properties based on their type, parameters, name, and other contextual information.

When generating documentation for class derived from a base class or for interface implementation (e.g. .NET Framework or your custom framework), GhostDoc will use the documentation that Microsoft or the framework vendor has already written for the base class or interface.
http://submain.com/products/ghostdoc.aspx

lint
Static code analyser
http://www.gimpel.com/html/index.htm

Sandcastle

The Sandcastle CodePlex project is no longer under active development by Microsoft and as such, there will be no future releases to this site.

The existing Sandcastle source code has been forked over to Eric Woodruff’s Sandcastle Help File Builder site at http://shfb.codeplex.com/. This new location is where you should go from this point forward to download the latest version. Eric will be in charge of new releases of Sandcastle from here on out.

Many thanks to Eric for the hard work that he has put into this project over the years. It is awesome to know that Sandcastle will live on under Eric's care!

Please see this discussion for details on the project status: http://sandcastle.codeplex.com/discussions/398496

Monday, December 10, 2012

C# File Browser

This project introduces a Windows Explorer clone in an early state. It contains browsing through all files and folders on your computer, including virtual folders. It uses the same ContextMenus as Windows Explorer and includes drag and drop support

http://www.codeproject.com/Articles/15059/C-File-Browser

C# File Browser

This project introduces a Windows Explorer clone in an early state. It contains browsing through all files and folders on your computer, including virtual folders. It uses the same ContextMenus as Windows Explorer and includes drag and drop support

http://www.codeproject.com/Articles/15059/C-File-Browser

Thursday, December 6, 2012

Windows deployment tools



1.Windows PE

How Windows PE Works

Windows PE version 2.0 is a minimal Win32 subsystem with limited services, based on the Windows Vista kernel running in protected mode.

Windows PE Optimal Environment

An optimal environment for running Windows PE has the following characteristics:
  • Sufficient RAM for RAM disk boot.
  • If you choose to use a USB Flash Drive (UFD) device, it must meet all the requirements for booting Windows PE.
  • The appropriate network adapter and mass storage drivers available, either on the Windows PE CD or available to place on a customized Windows PE image.
  • Physical access to the computer, or, if using Emergency Management Services (EMS) to use Windows PE in the configuration of a remotely administered server, the computer properly supports EMS.
  • If you choose to use Windows DS, the server must run Windows Server 2003 RIS server, and the destination computers must have a network adapter that enables PXE or one that is supported by the Windows DS start disk.

Order of Operations in Windows PE

The boot process of Windows PE is as follows.
  1. The boot sector on the particular media is loaded. Control is passed to Bootmgr. Bootmgr extracts basic boot information from the Boot Configuration Data (BCD) and passes control to winload.exe that is contained in Boot.wim. Winload.exe then loads the appropriate Hardware Abstraction Layer (HAL), and loads the System registry hive and necessary boot drivers. After it finishes loading, it prepares the environment to execute the kernel, Ntoskrnl.exe.
    noteNote
    If you start Windows PE from read-only media such as a CD, Windows PE stores the registry hives in memory so that applications can write to the registry. Any changes made to the registry by the applications do not persist across different Windows PE sessions.
  2. Ntoskrnl.exe is executed and finishes the environment setup. Control is passed to the Session Manager (SMSS).
  3. SMSS loads the rest of the registry, configures the environment to run the Win32 subsystem (Win32k.sys) and its various processes. SMSS loads the Winlogon process to create the user session, and then starts the services and the rest of the non-essential device drivers and the security subsystem (LSASS).
  4. Winlogon.exe runs setup based on the registry value HKLM\SYSTEM\Setup\CmdLine. Winpeshl.exe will launch %SYSTEMDRIVE%\sources\setup.exe if it exists, otherwise it looks for an application specified in %SYSTEMROOT%\system32\winpeshl.ini. If no application is specified, Winpeshl.exe will execute cmd /k %SYSTEMROOT%\system32\startnet.cmd. By default, Windows PE contains a Startnet.cmd file which will launch Wpeinit.exe. Wpeinit.exe loads network resources and coordinates with networking components like DHCP.
  5. When Wpeinit.exe completes, the Command Prompt window is displayed. The boot process of Windows PE is complete.

From:http://technet.microsoft.com/en-us/library/cc766376(v=ws.10).aspx

How to PXE boot Windows
http://www.lockstockmods.net/2008/05/26/easy-way-to-pxe-boot-windows/

Monday, December 3, 2012

Network tools for Windows

Configure IP from command prompt:
cmd>netsh interface ip set address name="Name of system" static 192.168.67.152 255.255.255.0 192.168.80.6

Ethereal a.k.a WireShark (Network protocol analyzer)
Wireshark is a free and open-source packet analyzer. It is used for network troubleshooting, analysis, software and communications protocol development, and education.
Wireshark is cross-platform, using the GTK+ widget toolkit to implement its user interface, and using pcap to capture packets; it runs on various Unix-like operating systems including Linux, Mac OS X, BSD, and Solaris, and on Microsoft Windows. There is also a terminal-based (non-GUI) version called TShark. Wireshark, and the other programs distributed with it such as TShark, are free software, released under the terms of the GNU General Public License
For those familiar with tcpdump, think of Ethereal as a GUI form of tcpdump that shows you the whole packet and can break down the packet to show individual fields. For those who haven't used tcpdump or similar packet sniffers, it might be best to show the capabilities of Ethereal through a few examples.
Typically, you want to capture some data from the network attached to your workstation; do this by selecting Capture→Start...,  When you've captured the data you need, stop the capture and examine it. Ethereal is useful for understanding various network protocols. Ethereal also is useful for educating users and management about the dangers of using protocols that send data in clear text :-)

The tool can be obtained from : http://www.wireshark.org/download.html

PuTTY

PuTTY is a free and open source terminal emulator application which can act as a client for the SSH, Telnet, rlogin, and raw TCP computing protocols and as a serial console client. The name "PuTTY" has no definitive meaning,[1] though "tty" is the name for a terminal in the Unix tradition, usually held to be short for Teletype.

Tool can be obtained here :http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

HyperTerminal terminal

HyperTerminal  is a terminal emulation program capable of connecting to systems through TCP/IP Networks, Dial-Up Modems, and COM ports. If you need HyperTerminal for Windows 8, Vista, or Windows 7 HyperTerminal Private Edition v7.0 is the program for you.
Some uses of HyperTerminal Private Edition:
  • Use a TCP/IP network to connect to systems on the Internet or your network using Telnet or Secure Shell (SSH)
  • Use a Dial-Up modem to dial into modem based systems
  • Talk directly to many different types of devices using serial COM ports.