Documentation ¶
Index ¶
- Variables
- func ApplyNoWindowScaling(intensity int) uint16
- func ApplyOfficialWindowScaling(storedValue int, ...) uint16
- func ApplyPythonicWindowScaling(intensity, maxIntensity int) uint16
- func CardiacMRIZipIterator(zipPath string, processOne func(DicomOutput) error) (err error)
- func DecodeImageFromReader(f io.Reader) (image.Image, error)
- func DicomToOverlayImage(dicomReader io.Reader, opts DicomOverlayOpts) ([]image.Image, error)
- func DicomToTagMap(dicomReader io.Reader) (map[dicomtag.Tag][]interface{}, error)
- func ExtractDicomFromGoogleStorage(zipPath, dicomName string, includeOverlay bool, storageClient *storage.Client) (image.Image, error)
- func ExtractDicomFromLocalFile(zipPath, dicomName string, includeOverlay bool) (image.Image, error)
- func ExtractDicomFromReader(dicomReader io.Reader, nReaderBytes int64, includeOverlay bool) (image.Image, error)
- func ExtractDicomFromReaderFuncOp(dicomReader io.Reader, nReaderBytes int64, ...) (image.Image, error)
- func ExtractDicomFromZipReader(rc *zip.Reader, dicomName string, includeOverlay bool) (image.Image, error)
- func ExtractImageFromGoogleStorage(dicomName, suffix, folderPath string, storageClient *storage.Client) (image.Image, error)
- func ExtractImageFromLocalFile(dicomName, suffix, folderPath string) (image.Image, error)
- func ExtractImageFromTarGzMaybeFromGoogleStorage(tarGz, imageFilename string, client *storage.Client) (image.Image, error)
- func ExtractImageFromTarReader(tarReader *tar.Reader, imageFilename string) (image.Image, error)
- func ExtractImagesFromTarGzMaybeFromGoogleStorage(tarGz string, imageFilenames map[string]struct{}, client *storage.Client) (map[string]image.Image, error)
- func ExtractImagesFromTarReader(tarReader *tar.Reader, imageFilenames map[string]struct{}) (map[string]image.Image, error)
- func FetchGIFComponents(pngs []string, storageClient *storage.Client) ([]image.Image, error)
- func FetchImagesFromZIP(zipPath string, includeOverlay bool, storageClient *storage.Client) (map[string]image.Image, error)
- func FetchNamedImagesFromZIP(zipPath string, includeOverlay bool, storageClient *storage.Client, ...) (map[string]image.Image, error)
- func ImageGrid(dicomNames []string, imageMap map[string]image.Image, series string, ...) ([]string, map[string]image.Image, error)
- func ListFromGoogleStorage(path string, client *storage.Client) ([]string, error)
- func MakeOneGIF(sortedImages []image.Image, delay int, withTransparency bool) (*gif.GIF, error)
- func MakeOneGIFFromMap(dicomNames []string, imgMap map[string]image.Image, delay int, ...) (*gif.GIF, error)
- func MakeOneGIFFromPaths(pngs []string, delay int, withTransparency bool, storageClient *storage.Client) (*gif.GIF, error)
- func MaybeExtractImageFromGoogleStorage(imagePath string, storageClient *storage.Client) (image.Image, error)
- func OptIncludeOverlay() func(o *ExtractDicomOptions)
- func OptWindowScalingOfficial() func(o *ExtractDicomOptions)
- func OptWindowScalingPythonic() func(o *ExtractDicomOptions)
- func OptWindowScalingRaw() func(o *ExtractDicomOptions)
- func SafelyDicomParse(p dicom.Parser, opts dicom.ParseOptions) (parsedData *element.DataSet, err error)
- type DicomMeta
- type DicomOutput
- type DicomOverlayOpts
- type EKG12Lead
- type EKGExercise
- type ExtractDicomOptions
- type FieldID
- type GSReaderAtCloserdeprecated
- type ReaderAtCloserdeprecated
- type SiemensChunk
- type SiemensHeader
- type VENC
- type ZipMetadata
Constants ¶
This section is empty.
Variables ¶
var SiemensDelimiter = []byte{0x4d, 00, 00, 00}
SiemensDelimiter is defined and used, but we don't actually need to be aware of it to parse correctly
var SiemensDelimiter2 = []byte{0xcd, 00, 00, 00}
SiemensDelimiter2 is defined and used, but we don't actually need to be aware of it to parse correctly
Functions ¶
func ApplyNoWindowScaling ¶
func ApplyOfficialWindowScaling ¶
func ApplyOfficialWindowScaling(storedValue int, rescaleSlope, rescaleIntercept, windowWidth, windowCenter float64, bitsAllocated uint16) uint16
See 'Grayscale Image Display' under https://dgobbi.github.io/vtk-dicom/doc/api/image_display.html . In addition, we also scale the output so that it is appropriate for producing a 16-bit grayscale image. E.g., if the native dicom is 8-bit, we still rescale the output here for a 16-bit format. In the future, could produce 8-bit files where possible, in which case this function would need to be changed.
func CardiacMRIZipIterator ¶
func CardiacMRIZipIterator(zipPath string, processOne func(DicomOutput) error) (err error)
func DecodeImageFromReader ¶
DecodeImageFromReader decodes a reader containing PNG, GIF, BMP, or JPEG-formatted data and returns a single-frame image.
func DicomToOverlayImage ¶
DicomToOverlayImage takes in a dicom file (as a reader), a blank image, and options, and updates the image according to those options.
func DicomToTagMap ¶
DicomToTagMap takes in a dicom file (in bytes), emits a map of tags
func ExtractDicomFromGoogleStorage ¶
func ExtractDicomFromGoogleStorage(zipPath, dicomName string, includeOverlay bool, storageClient *storage.Client) (image.Image, error)
ExtractDicomFromGoogleStorage fetches a dicom from within a zipped file in Google Storage and returns it as a native go image.Image, optionally with the overlay displayed on top.
func ExtractDicomFromLocalFile ¶
ExtractDicomFromLocalFile constructs a native go Image type from the dicom image with the given name in the given zip file. Now just wraps the GoogleStorage variant, since it has the capability of loading local files as well as remote ones.
func ExtractDicomFromReader ¶
func ExtractDicomFromReader(dicomReader io.Reader, nReaderBytes int64, includeOverlay bool) (image.Image, error)
ExtractDicomFromReader operates on a reader that contains one DICOM.
func ExtractDicomFromZipReader ¶
func ExtractDicomFromZipReader(rc *zip.Reader, dicomName string, includeOverlay bool) (image.Image, error)
ExtractDicomFromZipReader consumes a zip reader of the UK Biobank format, finds the dicom of the desired name, and returns that image, with or without the overlay (if any is present) based on includeOverlay.
func ExtractImageFromGoogleStorage ¶
func ExtractImageFromGoogleStorage(dicomName, suffix, folderPath string, storageClient *storage.Client) (image.Image, error)
ExtractImageFromGoogleStorage is now just a deprecated wrapper around MaybeExtractImageFromGoogleStorage and may be removed in the future.
func ExtractImageFromLocalFile ¶
ExtractImageFromLocalFile pulls an image with the specified suffix (derived from the DICOM name) from a local folder. Now just a wrapper.
func ExtractImageFromTarGzMaybeFromGoogleStorage ¶
func ExtractImageFromTarGzMaybeFromGoogleStorage(tarGz, imageFilename string, client *storage.Client) (image.Image, error)
ExtractImageFromTarGzMaybeFromGoogleStorage is now a thin wrapper over ExtractImagesFromTarGzMaybeFromGoogleStorage.
func ExtractImageFromTarReader ¶
ExtractImageFromTarReader consumes a .tar reader, loops over all files until it finds the image with the specified name, and returns that image. This is now a thin wrapper over ExtractImagesFromTarReader.
func ExtractImagesFromTarGzMaybeFromGoogleStorage ¶
func ExtractImagesFromTarGzMaybeFromGoogleStorage(tarGz string, imageFilenames map[string]struct{}, client *storage.Client) (map[string]image.Image, error)
ExtractImagesFromTarGzMaybeFromGoogleStorage looks for tarGz (a fully qualified path to a .tar.gz file, which may optionally be a Google Storage path). If that succeeds, it then looks for imageFilenames within the ungzipped untarred file and processes them into image.Image files, which it returns in a map with the same names as the input map.
func ExtractImagesFromTarReader ¶
func ExtractImagesFromTarReader(tarReader *tar.Reader, imageFilenames map[string]struct{}) (map[string]image.Image, error)
ExtractImagesFromTarReader consumes a .tar reader, loops over all files until it finds all images with the specified names, and returns those images in a named map. If it fails to find all requested files, it still returns the files it found, but also returns an error.
func FetchGIFComponents ¶
func FetchImagesFromZIP ¶
func FetchImagesFromZIP(zipPath string, includeOverlay bool, storageClient *storage.Client) (map[string]image.Image, error)
FetchImagesFromZIP is a deprecated shortcut to FetchNamedImagesFromZIP with an empty list of images, which will return all images from a zip file.
func FetchNamedImagesFromZIP ¶
func FetchNamedImagesFromZIP(zipPath string, includeOverlay bool, storageClient *storage.Client, acceptedFiles []string) (map[string]image.Image, error)
FetchNamedImagesFromZIP fetches images from DICOM files within a Zip file. The Zip file may be local or on Google Storage (if path begins with gs://). The images are returned in a map, keyed to the DICOM name: map[dicom_name]image. If a non-nil slice of filenames is passed, then only filenames that appear in this slice will be processed and returned.
func ImageGrid ¶
func ImageGrid(dicomNames []string, imageMap map[string]image.Image, series string, seriesAlignment []string, imagesInCardiacCycle, Ncols int) ([]string, map[string]image.Image, error)
ImageGrid is a hack that converts a SAX stack (structured as all 50 timepoints for series 1, all 50 timepoints for series 2, etc) into a grid that simultaneously shows each series side-by-side. It highlights the active series based on a seriesAlignment slice that is paired 1:1 with the dicomNames slice. A more elegant approach would look at the series names instead of making assumptions.
func ListFromGoogleStorage ¶
func MakeOneGIF ¶
MakeOneGIF creates an animated gif from an ordered slice of images. The delay between frames is in hundredths of a second. The color quantizer is built from *all* input images, and the quantized palette is shared across all of the output frames.
func MakeOneGIFFromMap ¶
func MakeOneGIFFromMap(dicomNames []string, imgMap map[string]image.Image, delay int, withTransparency bool) (*gif.GIF, error)
MakeOneGIFFromMap creates an animated gif from an ordered list of image names along with a map of the respective images.
func MakeOneGIFFromPaths ¶
func MakeOneGIFFromPaths(pngs []string, delay int, withTransparency bool, storageClient *storage.Client) (*gif.GIF, error)
MakeOneGIFFromPaths creates an animated gif from an ordered slice of paths to image files - which may be local or hosted in an accessible Google Storage location. (The string for each png should be a fully specified path.)
func MaybeExtractImageFromGoogleStorage ¶
func MaybeExtractImageFromGoogleStorage(imagePath string, storageClient *storage.Client) (image.Image, error)
MaybeExtractImageFromGoogleStorage pulls an image from a (possibly remote) folder
func OptIncludeOverlay ¶
func OptIncludeOverlay() func(o *ExtractDicomOptions)
func OptWindowScalingOfficial ¶
func OptWindowScalingOfficial() func(o *ExtractDicomOptions)
func OptWindowScalingPythonic ¶
func OptWindowScalingPythonic() func(o *ExtractDicomOptions)
func OptWindowScalingRaw ¶
func OptWindowScalingRaw() func(o *ExtractDicomOptions)
func SafelyDicomParse ¶
func SafelyDicomParse(p dicom.Parser, opts dicom.ParseOptions) (parsedData *element.DataSet, err error)
SafelyDicomParse consumes panics emitted by the dicom library, which are inappropriate and must be captured in order to turn them into recoverable errors.
Types ¶
type DicomMeta ¶
type DicomMeta struct { Date string AcquisitionTime string HasOverlay bool OverlayFraction float64 OverlayRows int OverlayCols int Rows int Cols int InstanceNumber string PatientX float64 PatientY float64 PatientZ float64 PixelHeightMM float64 PixelWidthMM float64 SliceThicknessMM float64 SeriesDescription string SeriesNumber string AcquisitionNumber string DeviceSerialNumber string SoftwareVersions string StationName string EchoTime string NominalInterval string SliceLocation string TriggerTime string ProtocolName string }
DicomMeta holds a small subset of the available metadata which we consider to be useful from dicom images.
type DicomOutput ¶
type DicomOutput struct { SampleID string ZipFile string FieldID string Instance string Index string Filename string DicomMeta DicomMeta }
func (DicomOutput) ParsedDate ¶
func (d DicomOutput) ParsedDate() (time.Time, error)
type DicomOverlayOpts ¶
DicomMeta holds a small subset of the available metadata which we consider to be useful from dicom images.
func (DicomOverlayOpts) Subset ¶
func (d DicomOverlayOpts) Subset() bool
type EKG12Lead ¶
type EKG12Lead struct { XMLName xml.Name `xml:"CardiologyXML"` Text string `xml:",chardata"` ObservationType string `xml:"ObservationType"` ObservationDateTime struct { Text string `xml:",chardata"` Hour string `xml:"Hour"` Minute string `xml:"Minute"` Second string `xml:"Second"` Day string `xml:"Day"` Month string `xml:"Month"` Year string `xml:"Year"` } `xml:"ObservationDateTime"` UID struct { Text string `xml:",chardata"` DICOMStudyUID string `xml:"DICOMStudyUID"` } `xml:"UID"` ClinicalInfo struct { Text string `xml:",chardata"` ReasonForStudy string `xml:"ReasonForStudy"` Technician struct { Text string `xml:",chardata"` FamilyName string `xml:"FamilyName"` GivenName string `xml:"GivenName"` PersonID string `xml:"PersonID"` } `xml:"Technician"` ObservationComment string `xml:"ObservationComment"` DeviceInfo struct { Text string `xml:",chardata"` Desc string `xml:"Desc"` SoftwareVer string `xml:"SoftwareVer"` AnalysisVer string `xml:"AnalysisVer"` } `xml:"DeviceInfo"` } `xml:"ClinicalInfo"` PatientVisit struct { Text string `xml:",chardata"` PatientClass string `xml:"PatientClass"` AssignedPatientLocation struct { Text string `xml:",chardata"` Facility string `xml:"Facility"` LocationNumber string `xml:"LocationNumber"` LocationName string `xml:"LocationName"` } `xml:"AssignedPatientLocation"` PatientRoom string `xml:"PatientRoom"` AdmissionType string `xml:"AdmissionType"` OrderingProvider struct { Text string `xml:",chardata"` FamilyName string `xml:"FamilyName"` GivenName string `xml:"GivenName"` PersonID string `xml:"PersonID"` } `xml:"OrderingProvider"` AttendingDoctor struct { Text string `xml:",chardata"` FamilyName string `xml:"FamilyName"` GivenName string `xml:"GivenName"` PersonID string `xml:"PersonID"` } `xml:"AttendingDoctor"` ReferringDoctor struct { Text string `xml:",chardata"` FamilyName string `xml:"FamilyName"` GivenName string `xml:"GivenName"` PersonID string `xml:"PersonID"` } `xml:"ReferringDoctor"` ServicingFacility struct { Text string `xml:",chardata"` Name string `xml:"Name"` Address struct { Text string `xml:",chardata"` Street1 string `xml:"Street1"` City string `xml:"City"` } `xml:"Address"` } `xml:"ServicingFacility"` SysBP struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"SysBP"` DiaBP struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"DiaBP"` MedicalHistory struct { Text string `xml:",chardata"` MedicalHistoryText string `xml:"MedicalHistoryText"` } `xml:"MedicalHistory"` OrderNumber string `xml:"OrderNumber"` Medications struct { Text string `xml:",chardata"` Drug string `xml:"Drug"` Dosage string `xml:"Dosage"` } `xml:"Medications"` ExtraQuestions struct { Text string `xml:",chardata"` Label []struct { Text string `xml:",chardata"` Type string `xml:"Type,attr"` } `xml:"Label"` Content []string `xml:"Content"` } `xml:"ExtraQuestions"` } `xml:"PatientVisit"` PatientInfo struct { Text string `xml:",chardata"` PID string `xml:"PID"` Name struct { Text string `xml:",chardata"` FamilyName string `xml:"FamilyName"` GivenName string `xml:"GivenName"` } `xml:"Name"` Age struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"Age"` BirthDateTime struct { Text string `xml:",chardata"` Day string `xml:"Day"` Month string `xml:"Month"` Year string `xml:"Year"` } `xml:"BirthDateTime"` Gender string `xml:"Gender"` Race string `xml:"Race"` Height struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"Height"` Weight struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"Weight"` PaceMaker string `xml:"PaceMaker"` } `xml:"PatientInfo"` FilterSetting struct { Text string `xml:",chardata"` CubicSpline string `xml:"CubicSpline"` Filter50Hz string `xml:"Filter50Hz"` Filter60Hz string `xml:"Filter60Hz"` LowPass struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"LowPass"` HighPass struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"HighPass"` } `xml:"FilterSetting"` DeviceType string `xml:"Device-Type"` Interpretation struct { Text string `xml:",chardata"` Diagnosis struct { Text string `xml:",chardata"` DiagnosisText []string `xml:"DiagnosisText"` } `xml:"Diagnosis"` Conclusion struct { Text string `xml:",chardata"` ConclusionText []string `xml:"ConclusionText"` } `xml:"Conclusion"` } `xml:"Interpretation"` RestingECGMeasurements struct { Text string `xml:",chardata"` DiagnosisVersion string `xml:"DiagnosisVersion"` VentricularRate struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"VentricularRate"` PQInterval struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"PQInterval"` PDuration struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"PDuration"` QRSDuration struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"QRSDuration"` QTInterval struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"QTInterval"` QTCInterval struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"QTCInterval"` RRInterval struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"RRInterval"` PPInterval struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"PPInterval"` SokolovLVHIndex struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"SokolovLVHIndex"` PAxis struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"PAxis"` RAxis struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"RAxis"` TAxis struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"TAxis"` QTDispersion struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"QTDispersion"` QTDispersionBazett struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"QTDispersionBazett"` QRSNum string `xml:"QRSNum"` MeasurementTable struct { Text string `xml:",chardata"` Creation string `xml:"Creation,attr"` LeadOrder string `xml:"LeadOrder"` QDuration struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"QDuration"` RDuration struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"RDuration"` SDuration struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"SDuration"` RpDuration struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"RpDuration"` PAmplitude struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"PAmplitude"` QAmplitude struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"QAmplitude"` RAmplitude struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"RAmplitude"` SAmplitude struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"SAmplitude"` R1Amplitude struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"R1Amplitude"` S1Amplitude struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"S1Amplitude"` JAmplitude struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"JAmplitude"` JXAmplitude struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"JXAmplitude"` TAmplitude struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"TAmplitude"` JXSlope struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"JXSlope"` R1Duration struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"R1Duration"` P1Amplitude struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"P1Amplitude"` JXEAmplitude struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"JXEAmplitude"` T1Amplitude struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"T1Amplitude"` } `xml:"MeasurementTable"` POnset struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"POnset"` POffset struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"POffset"` QOnset struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"QOnset"` QOffset struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"QOffset"` TOffset struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"TOffset"` MedianSamples struct { Text string `xml:",chardata"` NumberOfLeads string `xml:"NumberOfLeads"` SampleRate struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"SampleRate"` ChannelSampleCountTotal string `xml:"ChannelSampleCountTotal"` Resolution struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"Resolution"` FirstValid struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"FirstValid"` LastValid struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"LastValid"` WaveformData []struct { Text string `xml:",chardata"` Lead string `xml:"lead,attr"` } `xml:"WaveformData"` } `xml:"MedianSamples"` } `xml:"RestingECGMeasurements"` VectorLoops struct { Text string `xml:",chardata"` Creation string `xml:"Creation,attr"` Resolution struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"Resolution"` ChannelSampleCountTotal string `xml:"ChannelSampleCountTotal"` POnset struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"POnset"` POffset struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"POffset"` QOnset struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"QOnset"` QOffset struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"QOffset"` TOffset struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"TOffset"` Frontal []struct { Text string `xml:",chardata"` Lead string `xml:"Lead,attr"` } `xml:"Frontal"` Horizontal []struct { Text string `xml:",chardata"` Lead string `xml:"Lead,attr"` } `xml:"Horizontal"` Sagittal []struct { Text string `xml:",chardata"` Lead string `xml:"Lead,attr"` } `xml:"Sagittal"` } `xml:"VectorLoops"` StripData struct { Text string `xml:",chardata"` NumberOfLeads string `xml:"NumberOfLeads"` SampleRate struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"SampleRate"` ChannelSampleCountTotal string `xml:"ChannelSampleCountTotal"` Resolution struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"Resolution"` WaveformData []struct { Text string `xml:",chardata"` Lead string `xml:"lead,attr"` } `xml:"WaveformData"` ArrhythmiaResults struct { Text string `xml:",chardata"` Time []struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"Time"` BeatClass []string `xml:"BeatClass"` } `xml:"ArrhythmiaResults"` } `xml:"StripData"` FullDisclosure struct { Text string `xml:",chardata"` NumberOfChannels string `xml:"NumberOfChannels"` SampleRate struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"SampleRate"` Resolution struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"Resolution"` LeadOrder string `xml:"LeadOrder"` FullDisclosureData struct { Text string `xml:",chardata"` SampleCountTotal string `xml:"SampleCountTotal"` } `xml:"FullDisclosureData"` EventList struct { Text string `xml:",chardata"` Event []string `xml:"Event"` Time []struct { Text string `xml:",chardata"` Minute string `xml:"Minute"` Second string `xml:"Second"` } `xml:"Time"` } `xml:"EventList"` ArrhythmiaResults struct { Text string `xml:",chardata"` QRS string `xml:"QRS"` } `xml:"ArrhythmiaResults"` } `xml:"FullDisclosure"` Export string `xml:"Export"` CSWeb struct { Text string `xml:",chardata"` A struct { Text string `xml:",chardata"` Href string `xml:"href,attr"` } `xml:"a"` } `xml:"CSWeb"` }
EKG12Lead was generated 2019-10-19 15:07:45 by james on Skylake.
type EKGExercise ¶
type EKGExercise struct { XMLName xml.Name `xml:"CardiologyXML"` Text string `xml:",chardata"` ObservationType string `xml:"ObservationType"` ObservationDateTime struct { Text string `xml:",chardata"` Hour string `xml:"Hour"` Minute string `xml:"Minute"` Second string `xml:"Second"` Day string `xml:"Day"` Month string `xml:"Month"` Year string `xml:"Year"` } `xml:"ObservationDateTime"` ObservationEndDateTime struct { Text string `xml:",chardata"` Hour string `xml:"Hour"` Minute string `xml:"Minute"` Second string `xml:"Second"` Day string `xml:"Day"` Month string `xml:"Month"` Year string `xml:"Year"` } `xml:"ObservationEndDateTime"` ClinicalInfo struct { Text string `xml:",chardata"` DeviceInfo struct { Text string `xml:",chardata"` Desc string `xml:"Desc"` SoftwareVer string `xml:"SoftwareVer"` AnalysisVer string `xml:"AnalysisVer"` } `xml:"DeviceInfo"` } `xml:"ClinicalInfo"` PatientVisit struct { Text string `xml:",chardata"` PatientClass string `xml:"PatientClass"` AssignedPatientLocation struct { Text string `xml:",chardata"` Facility string `xml:"Facility"` LocationNumber string `xml:"LocationNumber"` } `xml:"AssignedPatientLocation"` AdmissionType string `xml:"AdmissionType"` ServicingFacility string `xml:"ServicingFacility"` } `xml:"PatientVisit"` PatientInfo struct { Text string `xml:",chardata"` PID string `xml:"PID"` Name struct { Text string `xml:",chardata"` FamilyName string `xml:"FamilyName"` GivenName string `xml:"GivenName"` } `xml:"Name"` Age struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"Age"` BirthDateTime struct { Text string `xml:",chardata"` Day string `xml:"Day"` Month string `xml:"Month"` Year string `xml:"Year"` } `xml:"BirthDateTime"` Gender string `xml:"Gender"` Race string `xml:"Race"` Height struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"Height"` Weight struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"Weight"` PaceMaker string `xml:"PaceMaker"` } `xml:"PatientInfo"` Medications string `xml:"Medications"` ExerciseMeasurements struct { Text string `xml:",chardata"` MaxWorkload struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"MaxWorkload"` ExercisePhaseTime struct { Text string `xml:",chardata"` Minute string `xml:"Minute"` Second string `xml:"Second"` } `xml:"ExercisePhaseTime"` MaxHeartRate string `xml:"MaxHeartRate"` MaxPredictedHR string `xml:"MaxPredictedHR"` TargetHeartRate struct { Text string `xml:",chardata"` Achieved string `xml:"achieved,attr"` } `xml:"TargetHeartRate"` PercentAchievedMaxPredicted string `xml:"PercentAchievedMaxPredicted"` PeakPercentMaxPredicted string `xml:"PeakPercentMaxPredicted"` TargetHRFormula string `xml:"TargetHRFormula"` TargetLoad struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"TargetLoad"` STHRSlope struct { Text string `xml:",chardata"` STHRSlopeLead []struct { Text string `xml:",chardata"` Lead string `xml:"lead,attr"` Maxslope string `xml:"maxslope,attr"` Slope string `xml:"Slope"` Intercept string `xml:"Intercept"` Correlation string `xml:"Correlation"` NumPoints string `xml:"NumPoints"` } `xml:"STHRSlopeLead"` } `xml:"STHRSlope"` RestingStats struct { Text string `xml:",chardata"` RestHR string `xml:"RestHR"` RestVES string `xml:"RestVES"` RestST struct { Text string `xml:",chardata"` Measurements []struct { Text string `xml:",chardata"` Lead string `xml:"lead,attr"` STAmplitude struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"STAmplitude"` STSlope struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"STSlope"` } `xml:"Measurements"` } `xml:"RestST"` } `xml:"RestingStats"` PeakExStats struct { Text string `xml:",chardata"` PeakExHR string `xml:"PeakExHR"` PeakExMets string `xml:"PeakExMets"` PeakExVES string `xml:"PeakExVES"` PeakExST struct { Text string `xml:",chardata"` Measurements []struct { Text string `xml:",chardata"` Lead string `xml:"lead,attr"` STAmplitude struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"STAmplitude"` STSlope struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"STSlope"` } `xml:"Measurements"` } `xml:"PeakExST"` } `xml:"PeakExStats"` MaxSTStats struct { Text string `xml:",chardata"` MaxSTAmplitude struct { Text string `xml:",chardata"` Lead string `xml:"lead,attr"` Units string `xml:"units,attr"` } `xml:"MaxSTAmplitude"` MaxSTTime struct { Text string `xml:",chardata"` Minute string `xml:"Minute"` Second string `xml:"Second"` } `xml:"MaxSTTime"` MaxSTHR string `xml:"MaxSTHR"` MaxSTMets string `xml:"MaxSTMets"` MaxSTVES string `xml:"MaxSTVES"` MaxST struct { Text string `xml:",chardata"` Measurements []struct { Text string `xml:",chardata"` Lead string `xml:"lead,attr"` STAmplitude struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"STAmplitude"` STSlope struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"STSlope"` } `xml:"Measurements"` } `xml:"MaxST"` } `xml:"MaxSTStats"` } `xml:"ExerciseMeasurements"` Interpretation string `xml:"Interpretation"` Protocol struct { Text string `xml:",chardata"` Device string `xml:"Device"` Phase []struct { Text string `xml:",chardata"` Ramping string `xml:"ramping,attr"` ProtocolName string `xml:"ProtocolName"` PhaseName string `xml:"PhaseName"` PhaseDuration struct { Text string `xml:",chardata"` Minute string `xml:"Minute"` Second string `xml:"Second"` } `xml:"PhaseDuration"` Stage []struct { Text string `xml:",chardata"` Idx string `xml:"idx,attr"` StageName string `xml:"StageName"` StageDuration struct { Text string `xml:",chardata"` Minute string `xml:"Minute"` Second string `xml:"Second"` } `xml:"StageDuration"` } `xml:"Stage"` } `xml:"Phase"` } `xml:"Protocol"` TrendData struct { Text string `xml:",chardata"` NumberOfEntries string `xml:"NumberOfEntries"` TrendEntry []struct { Text string `xml:",chardata"` Idx string `xml:"Idx,attr"` EntryTime struct { Text string `xml:",chardata"` Minute string `xml:"Minute"` Second string `xml:"Second"` } `xml:"EntryTime"` HeartRate string `xml:"HeartRate"` Mets string `xml:"Mets"` VECount string `xml:"VECount"` PaceCount string `xml:"PaceCount"` Artifact string `xml:"Artifact"` LeadMeasurements []struct { Text string `xml:",chardata"` Lead string `xml:"lead,attr"` JPointAmplitude struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"JPointAmplitude"` STAmplitude20ms struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"STAmplitude20ms"` STAmplitude struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"STAmplitude"` RAmplitude struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"RAmplitude"` R1Amplitude struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"R1Amplitude"` STSlope struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"STSlope"` STIntegral string `xml:"STIntegral"` STIndex string `xml:"STIndex"` } `xml:"LeadMeasurements"` Load struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"Load"` Grade struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"Grade"` PhaseTime struct { Text string `xml:",chardata"` Minute string `xml:"Minute"` Second string `xml:"Second"` } `xml:"PhaseTime"` PhaseName string `xml:"PhaseName"` StageTime struct { Text string `xml:",chardata"` Minute string `xml:"Minute"` Second string `xml:"Second"` } `xml:"StageTime"` StageNumber string `xml:"StageNumber"` StageName string `xml:"StageName"` } `xml:"TrendEntry"` } `xml:"TrendData"` MedianData struct { Text string `xml:",chardata"` SampleRate struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"SampleRate"` Resolution struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"Resolution"` Median []struct { Text string `xml:",chardata"` Idx string `xml:"Idx,attr"` Time struct { Text string `xml:",chardata"` Minute string `xml:"Minute"` Second string `xml:"Second"` } `xml:"Time"` IPoint string `xml:"I-Point"` JPoint string `xml:"J-Point"` JXPoint string `xml:"JX-Point"` PPoint string `xml:"P-Point"` PEPoint string `xml:"PE-Point"` QPoint string `xml:"Q-Point"` TPoint string `xml:"T-Point"` WaveformData []struct { Text string `xml:",chardata"` Lead string `xml:"lead,attr"` StartIdx string `xml:"startIdx,attr"` } `xml:"WaveformData"` } `xml:"Median"` } `xml:"MedianData"` TWACycleData struct { Text string `xml:",chardata"` SampleRate struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"SampleRate"` Resolution struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"Resolution"` } `xml:"TWACycleData"` StripData struct { Text string `xml:",chardata"` SampleRate struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"SampleRate"` Resolution struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"Resolution"` Strip struct { Text string `xml:",chardata"` Idx string `xml:"idx,attr"` Time struct { Text string `xml:",chardata"` Minute string `xml:"Minute"` Second string `xml:"Second"` } `xml:"Time"` WaveformData []struct { Text string `xml:",chardata"` Lead string `xml:"lead,attr"` } `xml:"WaveformData"` } `xml:"Strip"` } `xml:"StripData"` ArrhythmiaData struct { Text string `xml:",chardata"` SampleRate struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"SampleRate"` Resolution struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"Resolution"` } `xml:"ArrhythmiaData"` FullDisclosure struct { Text string `xml:",chardata"` StartTime struct { Text string `xml:",chardata"` Minute string `xml:"Minute"` Second string `xml:"Second"` } `xml:"StartTime"` NumberOfChannels string `xml:"NumberOfChannels"` SampleRate struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"SampleRate"` Resolution struct { Text string `xml:",chardata"` Units string `xml:"units,attr"` } `xml:"Resolution"` LeadOrder string `xml:"LeadOrder"` FullDisclosureData string `xml:"FullDisclosureData"` } `xml:"FullDisclosure"` }
EKGExercise was generated 2019-10-19 15:07:26 by james on Skylake.
type ExtractDicomOptions ¶
type GSReaderAtCloser
deprecated
type GSReaderAtCloser = genomisc.GSReaderAtCloser
Deprecated: Use github.com/carbocation/genomisc.GSReaderAtCloser instead
type ReaderAtCloser
deprecated
type ReaderAtCloser = genomisc.ReaderAtCloser
Deprecated: Use github.com/carbocation/genomisc.ReaderAtCloser instead
type SiemensChunk ¶
type SiemensHeader ¶
type SiemensHeader struct { NElements int Elements map[string]SiemensChunk }
func ParseSiemensHeader ¶
func ParseSiemensHeader(v interface{}) (SiemensHeader, error)
ParseSiemensHeader consumes the element corresponding to the Siemens header and parses it fully.
func (SiemensHeader) Slice ¶
func (s SiemensHeader) Slice() []SiemensChunk
func (SiemensHeader) String ¶
func (s SiemensHeader) String() string
type VENC ¶
VENC is a struct containing the values necessary for converting a pixel intensity to a velocity for that pixel
func NewVENC ¶
NewVENC consumes the raw string values for FlowVenc and BitsStored, returning a VENC object that is ready to be used for calculating pixel velocities
func (VENC) PixelIntensityToVelocity ¶
PixelIntensityToVelocity converts a pixel intensity (from DICOM format) into a value that ranges from -flowvenc to +flowvenc.