/*
 * Generated by asn1c-0.9.21 (http://lionet.info/asn1c)
 * From ASN.1 module "FEF-IntermediateDraft"
 * 	found in "../annexb-snacc-122001.asn1"
 */

#ifndef	_DistributionSampleArrayDescriptiveDataSection_H_
#define	_DistributionSampleArrayDescriptiveDataSection_H_


#include <asn_application.h>

/* Including external dependencies */
#include "Handle.h"
#include "HandleRef.h"
#include "MetricsCode.h"
#include "FEFString.h"
#include "MetricCategory.h"
#include "MetricStatus.h"
#include "MeasurementStatus.h"
#include "UnitsOfMeasurementCode.h"
#include "SimpleColour.h"
#include "PrivateCode.h"
#include "AbsoluteTime.h"
#include "SaSpec.h"
#include "ScaleRangeSpec.h"
#include "FEFFloat.h"
#include "DsaRangeSpec.h"
#include <asn_SEQUENCE_OF.h>
#include <constr_SEQUENCE_OF.h>
#include "BodySiteCode.h"
#include <constr_SEQUENCE.h>

#ifdef __cplusplus
extern "C" {
#endif

/* Forward declarations */
struct ExtNomenRef;
struct MetricMeasure;
struct AbsoluteRange;
struct SaSignalFrequency;
struct MetricCalEntry;
struct SaGridEntry;
struct SaCalData;
struct SaFilterEntry;

/* DistributionSampleArrayDescriptiveDataSection */
typedef struct DistributionSampleArrayDescriptiveDataSection {
	Handle_t	 handle;
	HandleRef_t	 devicehandle;
	MetricsCode_t	 metrictype;
	FEFString_t	*labelstring	/* OPTIONAL */;
	MetricCategory_t	*metriccategory	/* DEFAULT 0 */;
	MetricStatus_t	*metricstatus	/* DEFAULT {} */;
	MeasurementStatus_t	*measurementstatus	/* DEFAULT {} */;
	MetricsCode_t	*metricid	/* OPTIONAL */;
	struct ExtNomenRef	*metricidext	/* OPTIONAL */;
	UnitsOfMeasurementCode_t	*unitcode	/* OPTIONAL */;
	FEFString_t	*unitlabelstring	/* OPTIONAL */;
	struct DistributionSampleArrayDescriptiveDataSection__vmosourcelist {
		A_SEQUENCE_OF(MetricsCode_t) list;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} *vmosourcelist;
	struct DistributionSampleArrayDescriptiveDataSection__metricsourcelist {
		A_SEQUENCE_OF(HandleRef_t) list;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} *metricsourcelist;
	struct DistributionSampleArrayDescriptiveDataSection__msmtsitelist {
		A_SEQUENCE_OF(BodySiteCode_t) list;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} *msmtsitelist;
	struct DistributionSampleArrayDescriptiveDataSection__msmtsitelistext {
		A_SEQUENCE_OF(struct ExtNomenRef) list;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} *msmtsitelistext;
	struct DistributionSampleArrayDescriptiveDataSection__bodysitelist {
		A_SEQUENCE_OF(BodySiteCode_t) list;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} *bodysitelist;
	struct DistributionSampleArrayDescriptiveDataSection__bodysitelistext {
		A_SEQUENCE_OF(struct ExtNomenRef) list;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} *bodysitelistext;
	struct DistributionSampleArrayDescriptiveDataSection__metriccalibration {
		A_SEQUENCE_OF(struct MetricCalEntry) list;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} *metriccalibration;
	SimpleColour_t	*colour	/* OPTIONAL */;
	PrivateCode_t	*measuremode	/* OPTIONAL */;
	struct MetricMeasure	*measureperiod	/* OPTIONAL */;
	struct MetricMeasure	*averagingperiod	/* OPTIONAL */;
	AbsoluteTime_t	*starttime	/* OPTIONAL */;
	AbsoluteTime_t	*stoptime	/* OPTIONAL */;
	FEFString_t	*metricinfolabelstring	/* OPTIONAL */;
	struct ExtNomenRef	*substance	/* OPTIONAL */;
	FEFString_t	*substancelabelstring	/* OPTIONAL */;
	SaSpec_t	 saspecification;
	PrivateCode_t	*compression	/* OPTIONAL */;
	ScaleRangeSpec_t	 scaleandrangespec;
	struct AbsoluteRange	*saphysiologicalrange	/* OPTIONAL */;
	struct DistributionSampleArrayDescriptiveDataSection__visualgrid {
		A_SEQUENCE_OF(struct SaGridEntry) list;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} *visualgrid;
	struct DistributionSampleArrayDescriptiveDataSection__sacalibrationdata {
		A_SEQUENCE_OF(struct SaCalData) list;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} *sacalibrationdata;
	struct DistributionSampleArrayDescriptiveDataSection__filterspecification {
		A_SEQUENCE_OF(struct SaFilterEntry) list;
		
		/* Context for parsing across buffer boundaries */
		asn_struct_ctx_t _asn_ctx;
	} *filterspecification;
	struct SaSignalFrequency	*sasignalfrequency	/* OPTIONAL */;
	FEFFloat_t	*sameasureresolution	/* OPTIONAL */;
	DsaRangeSpec_t	 distributionrangespec;
	UnitsOfMeasurementCode_t	*xunitcode	/* OPTIONAL */;
	FEFString_t	*xunitlabelstring	/* OPTIONAL */;
	
	/* Context for parsing across buffer boundaries */
	asn_struct_ctx_t _asn_ctx;
} DistributionSampleArrayDescriptiveDataSection_t;

/* Implementation */
extern asn_TYPE_descriptor_t asn_DEF_DistributionSampleArrayDescriptiveDataSection;

#ifdef __cplusplus
}
#endif

/* Referred external types */
#include "ExtNomenRef.h"
#include "MetricMeasure.h"
#include "AbsoluteRange.h"
#include "SaSignalFrequency.h"
#include "MetricCalEntry.h"
#include "SaGridEntry.h"
#include "SaCalData.h"
#include "SaFilterEntry.h"

#endif	/* _DistributionSampleArrayDescriptiveDataSection_H_ */
