1/*
2
3 ASN.1 specification of the File Exchange Format for Vital Signs
4 The info was manually extracted from CEN/TC251/PT-40/4002N005
5 A number of bugs and typos were fixed.
6
7    $Id$
8    Copyright (C) 2009 Alois Schloegl <a.schloegl@ieee.org>
9    This file is part of BioSig http://biosig.sf.net/
10
11    BioSig is free software; you can redistribute it and/or
12    modify it under the terms of the GNU General Public License
13    as published by the Free Software Foundation; either version 3
14    of the License, or (at your option) any later version.
15
16*/
17
18
19ModuleTest DEFINITIONS ::=
20BEGIN
21
22/*
23B.1.1	ASN.1 built-in types used
24INTEGER
25ISO/IEC 8824-1:1998 Ch. 18
26REAL
27ISO/IEC 8824-1:1998 Ch. 20
28BIT-STRING
29ISO/IEC 8824-1:1998 Ch. 21
30OCTET-STRING
31ISO/IEC 8824-1:1998 Ch. 22
32SEQUENCE
33ISO/IEC 8824-1:1998 Ch. 24
34SEQUENCE-OF
35ISO/IEC 8824-1:1998 Ch. 25
36CHOICE
37ISO/IEC 8824-1:1998 Ch. 28
38Tagged types
39ISO/IEC 8824-1:1998 Ch. 30
40UTF8String
41ISO/IEC 8824-1:1998 Ch. 36.13; ISO/IEC 10646-1
42Generalized time
43ISO/IEC 8824-1:1998 Ch. 41; ISO 8601
44Constrained types
45ISO/IEC 8824-1:1998 Ch. 44
46*/
47
48INT-U64 ::=              INTEGER -- (0 .. 18446744073709551615)	/* make asn1c v0.9.22 happy */
49INT-I64 ::=              INTEGER -- (-9223372036854775808 .. 9223372036854775807) /* reduced to make asn1c v0.9.22 happy */
50
51INT-U32 ::=              INTEGER (0 .. 4294967295)
52INT-I32 ::=              INTEGER (-2147483648 .. 2147483647)
53INT-U16 ::=              INTEGER (0 .. 65535)
54INT-I16 ::=              INTEGER (-32768 .. 32767)
55INT-U8  ::=              INTEGER (0 .. 255)
56INT-I8  ::=              INTEGER (-128 .. 127)
57
58BITS-32 ::=              BIT STRING SIZE (32)
59BITS-16 ::=              BIT STRING SIZE (16)
60BITS-8  ::=              BIT STRING SIZE (8)
61
62FEFString ::=               UTF8String
63FEFFloat ::=                REAL
64
65
66Fraction ::= SEQUENCE {
67    numerator               [1] INT-I32,	-- INT-32 is not defined
68    denominator             [2] INT-I32
69}
70
71AbsoluteRange ::= SEQUENCE {
72    lowervalue              [1] FEFFloat,
73    uppervalue              [2] FEFFloat
74}
75
76Handle ::=                  [APPLICATION 2337] INT-U16
77HandleRef ::=               INT-U16
78DeviceCode ::=              INT-U16
79                            -- block A: Device Nomenclature
80UnitsOfMeasurementCode ::=  INT-U16
81                            -- block B: Units of Measurement
82MetricsCode ::=             INT-U16
83                            -- block C: Metrics
84BodySiteCode ::=            INT-U16
85                            -- block D: Body Sites
86AlertCode ::=               INT-U16
87                            -- block E: Alert Codes
88ExtNomenclatureCode ::=     INT-U16
89                            -- block F: External Nomenclatures
90ParameterGroupCode ::=      INT-U16
91                            -- unassigned block: Parameter Groups
92PrivateCode ::=             INT-U16
93                            -- code specified by the user or manufacturer
94                            -- ENV 13734 uses the term “PrivateOID” here
95
96Placeholder ::= [APPLICATION 6499] OCTET STRING
97
98
99--    missing definitions
100HealthCareProviderId ::= FEFString
101Address ::= FEFString
102UnitCode ::= FEFString
103
104ManufacturerID ::= CHOICE {
105    oid                     [1] OBJECT IDENTIFIER,
106                            -- ISO 8824 object identifier
107
108    uuid                    [2] OCTET STRING SIZE (16)
109                            -- ISO 11578 universal unique identifier
110}
111
112AbsoluteTime ::= GeneralizedTime
113RelativeTime ::= INT-U32
114HighResRelativeTime ::= INT-U64
115
116ObservationTime ::= SEQUENCE {
117    absolutetimestamp       [APPLICATION 2448] AbsoluteTime, --OPTIONAL,
118    relativetimestamp       [APPLICATION 2449] RelativeTime, --OPTIONAL,
119    hirestimerelativestamp  [APPLICATION 2537] HighResRelativeTime --OPTIONAL
120}
121
122SimpleColour ::= INTEGER {
123    colblack                (0), -- RGB=000
124    colred                  (1), -- RGB=100
125    colgreen                (2), -- RGB=010
126    colyellow               (3), -- RGB=110
127    colblue                 (4), -- RGB=001
128    colmagenta              (5), -- RGB=101
129    colcyan                 (6), -- RGB=011
130    colwhite                (7)  -- RGB=111
131} (0..65535)
132
133ExtNomenRef ::= SEQUENCE {
134    nomenclatureid          ExtNomenclatureCode,
135    nomenclaturecode        ANY DEFINED BY nomenclatureid
136}
137
138MetricMeasure ::= SEQUENCE {
139    metricmeasurevalue      [1] FEFFloat,
140    metricmeasuremnit       [2] UnitsOfMeasurementCode
141}
142
143PersonNameGroup ::= SEQUENCE {
144    familyname              [1] FEFString,
145    givenname               [2] FEFString,
146    middlename              [3] FEFString,
147    prefix                  [4] FEFString,
148    suffix                  [5] FEFString,
149    degree                  [6] FEFString
150}
151
152PersonName ::= SEQUENCE {
153    ungroupedname           [APPLICATION 6001] FEFString OPTIONAL,
154    characternamegroup      [APPLICATION 6002] PersonNameGroup OPTIONAL,
155    ideographicnamegroup    [APPLICATION 6003] PersonNameGroup OPTIONAL,
156    phoneticnamegroup       [APPLICATION 6004] PersonNameGroup OPTIONAL
157    -- at least one of the groups must be present
158    -- this will be the characternamegroup for European names
159}
160--
161-- Object Identifier Type as defined in nomenclature
162-- (do not confuse with ASN.1 OBJECT IDENTIFIER)
163--
164OID-Type ::= INT-U16		-- 16 bit integer type
165
166
167SessionArchiveSection ::= [APPLICATION 7001] SEQUENCE {
168    handle                  Handle,
169                            -- unique (within a file) handle
170    s-archive-id            [APPLICATION 2507] FEFString,
171    s-archive-name          [APPLICATION 2513] FEFString,
172    s-archive-comments      [APPLICATION 2530] FEFString OPTIONAL,
173    starttime               [APPLICATION 2538] AbsoluteTime,
174    stoptime                [APPLICATION 2539] AbsoluteTime,
175    protection              [APPLICATION 2519] ArchiveProtection OPTIONAL,
176    placeholder             Placeholder OPTIONAL,
177    manufacturerspecific    [APPLICATION 7002] ManufacturerSpecificSection OPTIONAL,
178    healthcareprovider      [APPLICATION 7003] HealthCareProviderSection OPTIONAL,
179    demographics            [APPLICATION 7004] PatientDemographicsSection,
180    sessions                [APPLICATION 7015] SEQUENCE SIZE (1..MAX) OF
181    				SessionTestSection, /* SIZE (1..*), -- to make asn1c v0.9.22 happy */
182    notes                   [APPLICATION 7016] SEQUENCE OF
183    				SessionNotesSection DEFAULT {}
184}
185
186ArchiveProtection ::= SEQUENCE {
187    protectiontype         [1] PrivateCode,
188    protectionkey          [2] ANY DEFINED BY protection-type
189}
190ManufacturerSpecificSection ::= SEQUENCE {
191    manufacturerid          [APPLICATION 6005] ManufacturerID,
192                            --
193    encodedentries          [APPLICATION 6006] SEQUENCE OF
194                            ManufacturerSpecificEncoded
195                            DEFAULT {},
196    binaryentries           [APPLICATION 6007] SEQUENCE OF
197                            ManufacturerSpecificBinary
198                            DEFAULT {}
199}
200
201ManufacturerSpecificEncoded ::= SEQUENCE {
202    code                    [1] PrivateCode,
203    data                    [2] ANY DEFINED BY code
204}
205
206ManufacturerSpecificBinary ::= SEQUENCE {
207    code                    [1] PrivateCode,
208    data                    [2] OCTET STRING
209}
210
211HealthCareProviderSection ::= SEQUENCE {
212    identification          [APPLICATION 6008] HealthCareProviderId,
213                            --
214    name                    [APPLICATION 6009] FEFString,
215                            --
216    address                 [APPLICATION 6010] Address OPTIONAL,
217                            --
218    placeholder             Placeholder OPTIONAL,
219    healthcareprofessionals [APPLICATION 7008] SEQUENCE OF
220                            HealthCareProfessionalSection
221                            DEFAULT {}
222}
223
224HealthCareProfessionalSection ::= SEQUENCE {
225    handle                  Handle,
226                            -- unique (within a file) handle
227    COMPONENTS OF           PersonName,
228                            -- use common person name attributes
229    identification          [APPLICATION 6011] FEFString OPTIONAL,
230                            -- optional textual unique identification
231    identificationcode      [APPLICATION 6012] ExtNomenRef OPTIONAL,
232                            -- optional coded unique identification
233    authorization-level     [APPLICATION 2481] Authorization OPTIONAL,
234                            -- optional organisation specific code
235    function                [APPLICATION 6048] FEFString OPTIONAL,
236                            -- optional textual function specification
237    functioncode            [APPLICATION 6049] ExtNomenRef OPTIONAL,
238                            -- optional coded function specification
239    placeholder             Placeholder OPTIONAL
240}
241
242Authorization ::= SEQUENCE {
243    authorization-type    [1] PrivateCode,
244    authorization-key     [2] ANY DEFINED BY authorization-type
245}
246
247PatientDemographicsSection ::= SEQUENCE {
248    handle                  Handle,
249                            -- unique (within file) handle
250    patientid               [APPLICATION 2394] FEFString OPTIONAL,
251    COMPONENTS OF           PersonName,
252                            -- use common person name attributes
253    birthname               [APPLICATION 2398] FEFString OPTIONAL,
254                            -- maiden name
255    sex                     [APPLICATION 2401] PatientSex OPTIONAL,
256    race                    [APPLICATION 2526] PatientRace OPTIONAL,
257    patienttype             [APPLICATION 2402] PatientType OPTIONAL,
258    dateofbirth             [APPLICATION 2392] AbsoluteTime OPTIONAL,
259    patientgeninfo          [APPLICATION 2393] FEFString OPTIONAL,
260                            -- textual Patient related Information
261    patientage              [APPLICATION 2520] PatMeasure OPTIONAL,
262                            -- for neonatal, e.g. in hours or in weeks
263    gestationalage          [APPLICATION 2521] PatMeasure OPTIONAL,
264                            -- for neonatal
265    patientheight           [APPLICATION 2524] PatMeasure OPTIONAL,
266    patientweight           [APPLICATION 2527] PatMeasure OPTIONAL,
267    patientbirthlength      [APPLICATION 2522] PatMeasure OPTIONAL,
268    patientbirthweight      [APPLICATION 2523] PatMeasure OPTIONAL,
269    motherpatientid         [APPLICATION 2504] FEFString OPTIONAL,
270    mothername              [APPLICATION 2525] PersonName OPTIONAL,
271                            -- for neonatal
272    patientheadcircumference[APPLICATION 2490] PatMeasure OPTIONAL,
273    patientbsa              [APPLICATION 2390] PatMeasure OPTIONAL,
274                            -- Body Surface Area, can be calculated
275    bedid                   [APPLICATION 2501] FEFString OPTIONAL,
276    diagnosticinfo          [APPLICATION 2496] FEFString OPTIONAL,
277    diagnosticcodes         [APPLICATION 2492] SEQUENCE OF
278                            ExtNomenRef
279                            DEFAULT {},
280    admittingphysician      [APPLICATION 2515] HandleRef OPTIONAL,
281                            -- for ICU; references HealthCareProfessionalSection
282    attendingphysician      [APPLICATION 2516] HandleRef OPTIONAL,
283                            -- for ICU; references HealthCareProfessionalSection
284    dateofprocedure         [APPLICATION 2518] AbsoluteTime OPTIONAL,
285                            -- for OR
286    proceduredescription    [APPLICATION 2495] FEFString OPTIONAL,
287                            -- for OR
288    procedurecodes          [APPLICATION 2493] SEQUENCE OF
289                            ExtNomenRef
290                            DEFAULT {},
291                            -- for OR - procedure codes are specified in a
292                            -- nomenclature scheme not defined in this standard
293    anaesthetist            [APPLICATION 2479] HandleRef OPTIONAL,
294                            -- for OR; references HealthCareProfessionalSection
295    surgeon                 [APPLICATION 2532] HandleRef OPTIONAL
296                            -- for OR; references HealthCareProfessionalSection
297}
298
299PatMeasure ::= SEQUENCE {
300    value                   [1] FEFFloat,
301    m-unit                  [2] UnitsOfMeasurementCode
302                            -- code for units of measure
303}
304
305-- Patient Sex according to ISO 5218
306PatientSex ::= INTEGER {
307    sex-unknown             (0),
308    male                    (1),
309    female                  (2),
310    sex-unspecified         (9)
311} (0..65535)
312
313PatientType ::= INTEGER {
314    pt-unspecified          (0),
315    adult                   (1),
316    pediatric               (2),
317    neonatal                (3)
318} (0..65535)
319
320-- Patient Race according to SCP ECG
321PatientRace ::= INTEGER {
322    race-unspecified        (0),
323    race-caucasian          (1),
324    race-black              (2),
325    race-oriental           (3)
326} (0..65535)
327
328SessionTestSection ::= SEQUENCE {
329    handle                  Handle,
330                            -- unique (within a file) handle
331    st-archive-id           [APPLICATION 2506] FEFString,
332    st-archive-name         [APPLICATION 2512] FEFString,
333    st-archive-comments     [APPLICATION 2529] FEFString OPTIONAL,
334    starttime               [APPLICATION 2538] AbsoluteTime,
335    stoptime                [APPLICATION 2539] AbsoluteTime,
336    protection              [APPLICATION 2519] ArchiveProtection OPTIONAL,
337    placeholder             Placeholder OPTIONAL,
338    medicaldevicesystem     [APPLICATION 7005] MedicalDeviceSystemSection,
339    multimedia              [APPLICATION 7006] SEQUENCE OF
340    				MultimediaSection DEFAULT {},
341    phases                  [APPLICATION 7017] SEQUENCE SIZE (1..MAX) OF
342    				SessionPhaseSection /* SIZE (1..*) -- to make asn1c v0.9.22 happy */
343}
344
345MedicalDeviceSystemSection ::= SEQUENCE {
346    handle                  Handle,
347                            -- unique (within file) handle
348    systemtype              [APPLICATION 2438] DeviceCode,
349                            -- e.g. ventilator, monitor as
350                            -- defined in nomenclature
351    systemmodel             [APPLICATION 2344] SystemModel,
352                            -- model describes manufacturer and
353                            -- model no
354    systemid                [APPLICATION 2436] FEFString,
355                            -- manufacturer specified system ID
356                            -- e.g. serial number
357    compatibilityid         [APPLICATION 2336] INT-U32 OPTIONAL,
358                            -- for manufacturer use
359    nomenclatureversion     [APPLICATION 2376] INT-U32,
360                            -- version of nomenclature used by
361                            -- the system
362    requirednomenclatureversion [APPLICATION 6013] AbsoluteTime,
363                            -- required revision of nomenclature to
364                            -- interpret any information from
365                            -- this medical device system
366    usednomenclatureversion [APPLICATION 6014] AbsoluteTime,
367                            -- revision of nomenclature to
368                            -- interpret all information from
369                            -- this medical device system
370    systemspecification     [APPLICATION 2437]
371                            SEQUENCE OF SystemSpecEntry
372                            DEFAULT {},
373                            -- defines functional components
374    productionspecification [APPLICATION 2349]
375                            SEQUENCE OF ProdSpecEntry
376                            DEFAULT {},
377                            -- component revisions, serial
378                            -- numbers etc.
379    bedlabel                [APPLICATION 2334] FEFString OPTIONAL,
380                            -- printable string identifying
381                            -- system location
382    softid                  [APPLICATION 2350] FEFString OPTIONAL,
383                            -- settable, e.g. hospital
384                            -- inventory number
385    operatingmode           [APPLICATION 2374] PrivateCode OPTIONAL,
386    applicationarea         [APPLICATION 2317] ApplicationArea OPTIONAL,
387    powerstatus             [APPLICATION 2389] PowerStatus OPTIONAL,
388                            -- onBatteryoronMains
389    altitude                [APPLICATION 2316] INT-I16 OPTIONAL,
390                            -- above or below sea level in metres
391    linefrequency           [APPLICATION 2357] LineFrequency OPTIONAL,
392                            -- frequency of mains
393    placeholder             Placeholder OPTIONAL,
394
395    components              MedicalDeviceComponents
396}
397
398SystemModel ::= SEQUENCE {
399    manufacturer            [1] FEFString,
400    model-number            [2] FEFString
401}
402
403SystemSpecEntry ::= SEQUENCE {
404    component-capab-id      [1] PrivateCode,
405    component-spec          [2] ANY DEFINED BY component-capab-id
406}
407
408ProdSpecEntryType ::= INTEGER {
409    unspecified             (0),
410    serial-number           (1),
411    part-number             (2),
412    hw-revision             (3),
413    sw-revision             (4),
414    fw-revision             (5),
415    protocol-revision       (6)
416} (0..65535)
417
418ProdSpecEntry ::= SEQUENCE {
419    spec-type               [1] ProdSpecEntryType,
420    component-id            [2] PrivateCode,
421    prod-spec               [3] FEFString
422}
423
424
425ApplicationArea ::= INTEGER {
426    area-unspec             (0),
427    area-operating-room     (1),
428    area-intensive-care     (2)
429} (0..65535)
430
431PowerStatus ::= BIT STRING {
432    onMains                 (0),
433    onBattery               (1),
434    chargingFull            (8),
435    chargingTrickle         (9),
436    chargingOff             (10)
437} SIZE(16)
438
439LineFrequency ::= INTEGER {
440    line-f-unspec           (0),
441    line-f-50hz             (1),
442    line-f-60hz             (2)
443} (0..65535)
444
445MedicalDeviceComponents ::= CHOICE {
446    medicaldevice           [APPLICATION 7009] VirtualMedicalDeviceSection,
447                            -- Simple MDS
448    medicaldevices          [APPLICATION 7010] SEQUENCE SIZE (2..MAX) OF
449                            VirtualMedicalDeviceSection, /* SIZE (2..*), -- to make asn1c v0.9.22 happy */
450                            -- Hydra MDS
451    subsystems              [APPLICATION 7011] SEQUENCE SIZE (1..MAX) OF
452                            MedicalDeviceSystemSection /* SIZE (1..*), -- to make asn1c v0.9.22 happy */
453                            -- Composite Single Bed MDS
454}
455
456VirtualMedicalDeviceSection ::= SEQUENCE {
457    handle                  Handle,
458                            -- unique (within file) handle
459    devicetype              [APPLICATION 2351] DeviceCode,
460                            -- static, mandatory type specification
461    labelstring             [APPLICATION 2343] FEFString OPTIONAL,
462                            -- textual representation of devicetype
463    vmdmodel                [APPLICATION 2344] SystemModel OPTIONAL,
464                            -- manufacturer and model number
465    productionspecification [APPLICATION 2349]
466                            SEQUENCE OF ProdSpecEntry
467                            DEFAULT {},
468                            -- serial numbers and revisions,
469                            -- only present if VMD represents an
470                            -- independent subsystem
471    compatibilityid         [APPLICATION 2336] INT-U32 OPTIONAL,
472                            -- static for manufacturer use
473    parametergroup          [APPLICATION 2346] ParameterGroupCode OPTIONAL,
474                            -- e.g. cardiovascular
475    position                [APPLICATION 2348] INT-U16 OPTIONAL,
476                            -- e.g. slot number, 0xffff marks
477                            -- an invalid or unknown position
478    measurementprinciple    [APPLICATION 2560] MsmtPrinciple OPTIONAL
479                            -- describes the physical principle
480                            -- of the measurement
481}
482
483
484MsmtPrinciple ::= BIT STRING {
485    msp-chemical            (1),
486    msp-electrical          (2),
487    msp-impedance           (3),
488    msp-nuclear             (4),
489    msp-optical             (5),
490    msp-thermal             (6),
491    msp-biological          (7),
492    msp-mechanical          (8),
493    msp-manual              (15)
494} SIZE(16)
495
496ChannelDescriptionSection ::= SEQUENCE {
497    handle                Handle,
498                          -- unique (within a file) handle
499    metrictype            [APPLICATION 2351] MetricsCode,
500                          -- static, mandatory type specification
501    labelstring           [APPLICATION 2343] FEFString OPTIONAL,
502                          -- textual representation of metrictype
503    channelid             [APPLICATION 2318] MetricsCode OPTIONAL,
504                          -- contains dynamic identification (e.g. a specific
505                          -- blood pressure label) compared to the
506                          -- static identification is in metrictype
507    channelstatus         [APPLICATION 2320] MetricStatus DEFAULT {},
508                          -- usually part of an dynamic attribute change section
509    parametergroup        [APPLICATION 2346] ParameterGroupCode OPTIONAL,
510                          -- e.g. cardiovascular
511    physicalchannelnr     [APPLICATION 2319] INT-U16 DEFAULT 65535,
512                          -- e.g. ADC channel, 65535 (0xffff) marks
513                          -- an invalid or unknown channel
514    measurementprinciple  [APPLICATION 2560] MsmtPrinciple OPTIONAL
515                          -- describes the physical principle
516                          -- of the measurement
517}
518
519
520ChannelStatus ::= BIT STRING {
521    chn-off                 (0),
522    chn-not-ready           (1),
523    chn-standby             (2),
524    chn-transduc-discon     (8),
525    chn-hw-discon           (9)
526} SIZE(16)
527
528MultimediaSection ::= SEQUENCE {
529    starttime              [APPLICATION 2538] AbsoluteTime,
530    stoptime               [APPLICATION 2539] AbsoluteTime,
531    mimetype               [APPLICATION 6017] FEFString,
532    comments               [APPLICATION 6018] Comments OPTIONAL,
533    originallocation       [APPLICATION 6019] FEFString OPTIONAL,
534    placeholder            [APPLICATION 6499] Placeholder OPTIONAL,
535    contentorreference     [APPLICATION 6020] ContentOrReference
536}
537
538Comments ::= SEQUENCE {
539    commenttext             [1] FEFString,
540    commentator             [2] HandleRef
541                            -- references HealthCareProfessionalSection
542}
543
544ContentOrReference ::= CHOICE {
545    content                 [1] OCTET STRING,
546    reference               [2] FEFString
547}
548
549SessionPhaseSection ::= SEQUENCE {
550    handle                  Handle,
551                            -- unique (within a file) handle
552    starttime               [APPLICATION 2538] AbsoluteTime,
553    stoptime                [APPLICATION 2539] AbsoluteTime,
554    placeholder             Placeholder OPTIONAL,
555    descriptivedata         [APPLICATION 7018] DescriptiveDataSection,
556    measureddata            [APPLICATION 7019] SEQUENCE SIZE (1..MAX) OF
557    				MeasuredDataSection /* SIZE (1..*) -- to make asn1c v0.9.22 happy */
558                            -- size = 1 except for streaming mode profile
559}
560
561DescriptiveDataSection ::= SEQUENCE {
562    handle                  Handle,
563                            -- unique (within a file) handle
564    placeholder             Placeholder OPTIONAL,
565    realtimesadescs         [APPLICATION 7020] SEQUENCE OF
566                            RealTimeSampleArrayDescriptiveDataSection
567                            DEFAULT {},
568    timesadescs             [APPLICATION 7021] SEQUENCE OF
569                            TimeSampleArrayDescriptiveDataSection
570                            DEFAULT {},
571    distributionsadescs     [APPLICATION 7022] SEQUENCE OF
572                            RealTimeSampleArrayDescriptiveDataSection
573                            DEFAULT {},
574    numericdescs            [APPLICATION 7023] SEQUENCE OF
575                            NumericDescriptiveDataSection
576                            DEFAULT {},
577    enumerationdescs        [APPLICATION 7024] SEQUENCE OF
578                            EnumerationDescriptiveDataSection
579                            DEFAULT {}
580}
581
582MetricDescriptiveDataSection ::= SEQUENCE {
583    handle                Handle,
584                          -- unique (within a file) handle
585    devicehandle          [APPLICATION 6034] HandleRef,
586                          -- references the Virtual Medical Device Section or
587                          -- Channel Description Section this metric
588                          -- originates from
589    metrictype            [APPLICATION 2351] MetricsCode,
590                          -- static, mandatory type specification
591    labelstring           [APPLICATION 2343] FEFString OPTIONAL,
592                          -- textual representation of metrictype
593    metriccategory        [APPLICATION 2367] MetricCategory DEFAULT mcat-unspec,
594                          -- the other COMPONENTS-OF MetricSpecification
595                          -- are not applicable for storage
596    metricstatus          [APPLICATION 2368] MetricStatus DEFAULT {},
597                          -- usually part of an dynamic attribute change section
598    measurementstatus     [APPLICATION 2375] MeasurementStatus DEFAULT {},
599                          -- usually part of an dynamic attribute change section
600    metricid              [APPLICATION 2347] MetricsCode OPTIONAL,
601                          -- contains dynamic identification (e.g. a specific
602                          -- blood pressure label) compared to the
603                          -- static identification is in metrictype
604    metricidext           [APPLICATION 2502] ExtNomenRef OPTIONAL,
605                          -- dynamic identification of the metric in a
606                          -- different nomenclature or dictionary. Use of
607                          -- this attribute severely limits interoperability
608                          -- of applications.
609    unitcode              [APPLICATION 2454] UnitsOfMeasurementCode OPTIONAL,
610                          -- dimension, e.g. 'mV'
611    unitlabelstring       [APPLICATION 2457] FEFString OPTIONAL,
612                          -- textual representation of dimension
613    vmosourcelist         [APPLICATION 2467] SEQUENCE OF
614                          MetricsCode
615                          DEFAULT {},
616                          -- indicates sources of this metric in
617                          -- the form of references to other metrics
618    metricsourcelist      [APPLICATION 2366] SEQUENCE OF
619                          HandleRef
620                          DEFAULT {},
621                          -- indicates sources of this metric in
622                          -- the form of a list of metric IDs
623    msmtsitelist          [APPLICATION 2430] SEQUENCE OF
624                          BodySiteCode
625                          DEFAULT {},
626                          -- Measurement Sites, specified in
627                          -- internal nomenclature
628    msmtsitelistext       [APPLICATION 2551] SEQUENCE OF
629                          ExtNomenRef
630                          DEFAULT {},
631                          -- Measurement Sites, specified in
632                          -- external nomenclature
633    bodysitelist          [APPLICATION 2429] SEQUENCE OF
634                          BodySiteCode
635                          DEFAULT {},
636                          -- Body Sites, specified in internal  nomenclature
637    bodysitelistext       [APPLICATION 2550] SEQUENCE OF
638                          ExtNomenRef
639                          DEFAULT {},
640                          -- Body Sites, specified in external nomenclature
641    metriccalibration     [APPLICATION 2362] SEQUENCE OF
642                          MetricCalEntry
643                          DEFAULT {},
644                          -- list time and state of calibrations
645    colour                [APPLICATION 2321] SimpleColour OPTIONAL,
646                          -- colour for representation
647    measuremode           [APPLICATION 2373] PrivateCode OPTIONAL,
648                          -- manufacturer measurement specific info
649    measureperiod         [APPLICATION 2443] MetricMeasure OPTIONAL,
650                          -- measurement repetition time, not necessarily
651                          -- the same as update period
652    averagingperiod       [APPLICATION 2535] MetricMeasure OPTIONAL,
653                          -- Time period used to average values, e.g. for
654                          -- an average flow of last hour metric
655    starttime             [APPLICATION 2538] AbsoluteTime OPTIONAL,
656                          -- time when measurement activity was started
657                          -- (e.g. when infusion was started)
658    stoptime              [APPLICATION 2539] AbsoluteTime OPTIONAL,
659                          -- Time when measurement activity was stopped
660    metricinfolabelstring [APPLICATION 2365] FEFString OPTIONAL,
661                          -- textual attribute, allows e.g. to specify
662                          -- electrode displacements or other specific
663                          -- information about the measurement
664    substance             [APPLICATION 2542] ExtNomenRef OPTIONAL,
665                          -- substance that Metric pertains to, expressed
666                          -- in nomenclature that is defined outside of
667                          -- this standard
668    substancelabelstring  [APPLICATION 2508] FEFString OPTIONAL
669                          -- textual attribute that identifies the substance
670}
671
672/* already earlier defined
673PatMeasure ::= SEQUENCE {
674    value                   [1] FEFFloat,
675    m-unit                  [2] UnitsOfMeasurementCode
676                            -- code for units of measure
677}
678*/
679
680MetricStatus ::= BIT STRING {
681    metric-off              (0),
682    metric-not-ready        (1),
683    metric-standby          (2),
684    metric-transduc-discon  (8),
685    metric-hw-discon        (9)
686} SIZE(16)
687
688MetricCategory ::= INTEGER {
689    mcat-unspec             (0),
690    auto-measurement        (1),
691    manual-measurement      (2),
692    auto-setting            (3),
693    manual-setting          (4),
694    auto-calculation        (5),
695    manual-calculation      (6)
696} (0..65535)
697
698MetricCalEntry ::= SEQUENCE  {
699    cal-type                [1] MetricCalType,
700    cal-state               [2] MetricCalState,
701    cal-time                [3] AbsoluteTime
702}
703
704MetricCalType ::= INTEGER {
705    cal-unspec              (0),
706    cal-offset              (1),
707    cal-gain                (2),
708    cal-two-point           (3)
709} (0..65535)
710
711MetricCalState ::= INTEGER {
712    not-calibrated          (0),
713    cal-required            (1),
714    calibrated              (2)
715} (0..65535)
716
717MeasurementStatus ::= BIT STRING {
718    invalid                 (0),
719    questionable            (1),
720    not-available           (2),
721    calibration-ongoing     (3),
722    test-data               (4),
723    demo-data               (5),
724    validated-data          (8),
725                            -- relevant e.g. in an archive
726    early-indication        (9),
727                            -- early estimate of value
728    msmt-ongoing            (10)
729                            -- indicates that a new msmt is just
730                            -- being taken (episodic)
731} SIZE(16)
732
733SampleArrayDescriptiveDataSection ::= SEQUENCE {
734    COMPONENTS OF       MetricDescriptiveDataSection,
735                        -- include COMPONENTS-OF super class
736    saspecification     [APPLICATION 2413] SaSpec,
737                        -- static description of sample array and sample types
738    compression         [APPLICATION 2322] PrivateCode OPTIONAL,
739                        -- defines potential compression algorithm
740    scaleandrangespec   [APPLICATION 2416] ScaleRangeSpec,
741                        -- defines mapping between samples and actual
742                        -- values as well as measurement range,
743    saphysiologicalrange[APPLICATION 2411] AbsoluteRange OPTIONAL,
744                        -- for optimum display scaling the physiological
745                        -- meaningful range is specified
746    visualgrid          [APPLICATION 2331] SEQUENCE OF SaGridEntry DEFAULT {},
747                        -- defines gridline positions on displays
748                        -- and recorders
749                        -- (Note: tag NOM_ATTR_GRID_VIS_I32 used)
750    sacalibrationdata   [APPLICATION 2405] SEQUENCE OF SaCalData DEFAULT {},
751                        -- defines positions of calibration markers on
752                        -- display and recorders
753                        -- (Note: tag NOM_ATTR_SA_CALIB_I32 used)
754    filterspecification [APPLICATION 2329] SEQUENCE OF SaFilterEntry DEFAULT {},
755                        -- ...
756    sasignalfrequency   [APPLICATION 2408] SaSignalFrequency OPTIONAL,
757                        -- max. signal frequency
758    sameasureresolution [APPLICATION 2409] FEFFloat OPTIONAL
759                        -- ...
760}
761
762SaSpec ::= SEQUENCE {
763    storagesize           [1] INT-U8,
764                          -- e.g. 8 for 8bit samples, 16 for 16bit samples,
765    significantbits       [2] INT-U8 OPTIONAL,
766                          -- defines significant bits in one sample
767                          -- when not identical to storagesize
768    storagedatatype       [3] StorageDataType,
769    flags                 [4] SaFlags DEFAULT {},
770    arraysize             [5] INT-U16  -- defines the number of samples per
771                                       -- signal in a subblock of a SAMDB
772}
773
774StorageDataType ::= INTEGER {
775    unsigned                (0),
776    signed                  (1),
777    ieee754float            (2)
778} (0..255)
779
780--  allowed combinations of storagedatatype and storagedatasize are:
781--  storagedatatype storagesize
782--     unsigned            8
783--     unsigned           16
784--     unsigned           32
785--     signed              8
786--     signed             16
787--     signed             32
788--     ieee754float       32
789--     ieee754float       64
790
791SaFlags ::= BIT STRING {
792    smoothcurve           (0),
793                          -- for optimum display, use a smoothing algorithm
794    delayedcurve          (1),
795                          -- curve is delayed (not real time)
796    saextvalrange         (3)
797                          -- The non-significant bits in a sample are
798                          -- not 0 (or sign extended in the signed case)
799} SIZE(16)
800
801-- The scale and range definition attribute describes a relation between
802-- scaled values and absolute values.
803-- Note: If a wave does not represent absolute values, the absolute value
804-- fields should be equal to the scaled value fields.
805-- lowerabsolutevalue shall be smaller than upperabsolutevalue
806-- lowervaluescaled is the scaled value representing the absolute value
807-- lowerabsolutevalue
808-- uppervaluescaled is the scaled value representing the absolute value
809-- upperabsolutevalue
810ScaleRangeSpec ::= SEQUENCE {
811    lowerabsolutevalue      [1] FEFFloat,
812    upperabsolutevalue      [2] FEFFloat,
813    lowervaluescaled        [3] FEFFloat,
814    uppervaluescaled        [4] FEFFloat
815}
816
817SaFilterEntry ::= SEQUENCE {
818    filtertype              [1] FilterType,
819    frequency               [2] FEFFloat,
820    filterorder             [3] INT-I16     -- e.g. -1: 6 dB/oct
821}
822
823FilterType ::= INTEGER {
824    other                   (0),
825    lowpass                 (1),
826    highpass                (2),
827    notch                   (3)
828} (0..65535)
829
830-- The visual grid definition attribute defines grid lines at different levels
831-- of grid lines.
832SaGridEntry ::= SEQUENCE {
833    absolute-value          [1] FEFFloat,
834    level                   [3] INT-I16
835}
836
837-- The calibration data definition attribute defines calibration markers
838-- on a display or on a recording strip.
839SaCalData ::= SEQUENCE {
840    lowerabsolutevalue      [1] FEFFloat,
841    upperabsolutevalue      [2] FEFFloat,
842    increment               [5] FEFFloat,
843                          -- value for each step of the stair
844    cal-type                [6] SaCalDataType
845}
846
847SaCalDataType ::= INTEGER {
848    bar                   (0),
849                          -- display a calibration bar
850    stair                 (1)
851                          -- display a calibration stair
852} (0..65535)
853
854-- Specification of signal frequency
855SaSignalFrequency ::= SEQUENCE {
856    lowedgefreq            [1] FEFFloat,     -- in Hz
857    highedgefreq           [2] FEFFloat      -- in Hz
858}
859
860RealTimeSampleArrayDescriptiveDataSection ::= SEQUENCE {
861    COMPONENTS OF         SampleArrayDescriptiveDataSection,
862                          -- include COMPONENTS OF super class
863    sampleperiod          [APPLICATION 2445] Fraction,
864                          -- in seconds, expressed as fraction
865    sweepspeed            [APPLICATION 2431] MetricMeasure OPTIONAL
866                          -- e.g. mm/s
867}
868
869
870TimeSampleArrayDescriptiveDataSection ::= SEQUENCE {
871    COMPONENTS OF         SampleArrayDescriptiveDataSection,
872                          -- include COMPONENTS-OF super class
873    sampleperiod          [APPLICATION 2445] Fraction,
874                          -- in seconds, expressed as fraction
875    sweepspeed            [APPLICATION 2431] MetricMeasure OPTIONAL
876                          -- e.g. mm/s
877}
878
879DistributionSampleArrayDescriptiveDataSection ::= SEQUENCE {
880    COMPONENTS OF         SampleArrayDescriptiveDataSection,
881                          -- include COMPONENTS-OF super class
882    distributionrangespec [APPLICATION 2403] DsaRangeSpec,
883                          -- maps array index to absolute value
884    xunitcode             [APPLICATION 2455] UnitsOfMeasurementCode OPTIONAL,
885                          -- applies to x-axis
886    xunitlabelstring      [APPLICATION 2458] FEFString OPTIONAL
887                          -- applies to x-axis
888}
889
890DsaRangeSpec ::= SEQUENCE {
891    first-element-value     [1] FEFFloat,
892    last-element-value      [2] FEFFloat
893}
894
895NumericDescriptiveDataSection ::= SEQUENCE {
896    COMPONENTS OF         MetricDescriptiveDataSection,
897                          -- include COMPONENTS-OF super class
898    numeasurerange        [APPLICATION 2382] AbsoluteRange OPTIONAL,
899                          -- potential measurement range
900    nuphysiologicalrange  [APPLICATION 2383] AbsoluteRange OPTIONAL,
901                          -- physiological reasonable range (note that
902                          -- this is not an alarming range)
903    numeasureresolution   [APPLICATION 2381] FEFFloat OPTIONAL,
904                          -- resolution of measurement, minimum
905                          -- difference between two observed values
906    displayresolution     [APPLICATION 2327] DispResolution OPTIONAL,
907                          -- if different resolution is needed when
908                          -- value is displayed
909    accuracy              [APPLICATION 2378] FEFFloat OPTIONAL
910                          -- max. deviation of actual value from reported
911                          -- observed value (if it can be specified)
912}
913
914EnumerationDescriptiveDataSection ::= SEQUENCE {
915    COMPONENTS OF         MetricDescriptiveDataSection,
916                          -- include COMPONENTS OF super class
917    enummeasurerange      [APPLICATION 2561] SEQUENCE OF MetricsCode
918                          DEFAULT {},
919                          -- list of possible observed value object OIDs,
920                          -- optional if the OID type is present in the
921                          -- observed value, out of scope otherwise
922    enummeasurerangebits  [APPLICATION 2568] BITS-32 OPTIONAL
923                          -- list of possible observed value bits in the
924                          -- bit string data type, optional if the BITS-32
925                          -- type is used in the observed value, out of
926                          -- scope otherwise
927}
928
929MeasuredDataSection ::= SEQUENCE {
930    realtimesas           [APPLICATION 7025] SEQUENCE OF
931                          RealTimeSampleArrayMeasuredDataSection
932                          DEFAULT {},
933    timesas               [APPLICATION 7026] SEQUENCE OF
934                          TimeSampleArrayMeasuredDataSection
935                          DEFAULT {},
936    distributionsas       [APPLICATION 7027] SEQUENCE OF
937                          RealTimeSampleArrayMeasuredDataSection
938                          DEFAULT {},
939    numerics              [APPLICATION 7028] SEQUENCE OF
940                          NumericMeasuredDataSection
941                          DEFAULT {},
942    enumerations          [APPLICATION 7029] SEQUENCE OF
943                          EnumerationMeasuredDataSection
944                          DEFAULT {},
945    alerts                [APPLICATION 7007] SEQUENCE OF
946                          AlertSection
947                          DEFAULT {},
948    attributechanges      [APPLICATION 7030] SEQUENCE OF
949                          DynamicAttributeChangeSection
950                          DEFAULT {}
951}
952
953
954SampleArrayMeasuredDataSection ::= SEQUENCE {
955    numberofsubblocks     [APPLICATION 6035] INT-U32,
956    subblocklength        [APPLICATION 6036] Fraction,
957                          -- in seconds
958    subblocksize          [APPLICATION 6037] INT-U32,
959                          -- in octets
960    metriclist            [APPLICATION 6038] SEQUENCE SIZE (1..MAX) OF
961    				HandleRef /* SIZE (1..*) -- to make asn1c v0.9.22 happy */
962                          -- references to SampleArrayDescriptiveDataSection
963}
964
965SampleArrayMeasuredDataBlock ::= [APPLICATION 6039] OCTET STRING
966
967RealTimeSampleArrayMeasuredDataSection ::= SEQUENCE {
968    COMPONENTS OF           SampleArrayMeasuredDataSection,
969    data                    SampleArrayMeasuredDataBlock
970                            -- measured data as SampleArrayMeasuredDataBlock
971}
972
973TimeSampleArrayMeasuredDataSection ::= SEQUENCE {
974    COMPONENTS OF         SampleArrayMeasuredDataSection,
975                          -- include COMPONENTS OF super class
976    tsamarkerlist         [APPLICATION 2452] SEQUENCE OF MarkerEntryRelTim
977                          DEFAULT {},
978                          -- marks positions in wave snippets
979    data                  SampleArrayMeasuredDataBlock
980                          -- measured data as SampleArrayMeasuredDataBlock
981}
982
983MarkerEntryRelTim ::= SEQUENCE {
984    markerid                [1] MetricsCode,
985    marktime                [2] RelativeTime
986}
987
988DistributionSampleArrayMeasuredDataSection ::= SEQUENCE {
989    COMPONENTS OF         SampleArrayMeasuredDataSection,
990                          -- include COMPONENTS OF super class
991    data                  SampleArrayMeasuredDataBlock
992                          -- measured data as SampleArrayMeasuredDataBlock
993}
994
995NumericMeasuredDataSection ::= SEQUENCE {
996    metricref [APPLICATION 6050] HandleRef, -- reference to
997                                            -- NumericDescriptiveDataSection
998    nuobservedvalue       ChoiceOfNuObsValue,
999                          -- simple or compound
1000    timestamp             ObservationTime
1001}
1002
1003ChoiceOfNuObsValue ::= CHOICE {
1004    nuobservedvalue         [APPLICATION 2384] NuObsValue,
1005                             -- e.g. measurement value, should also contain
1006                             -- validity information to be useful!
1007    compoundnuobservedvalue  [APPLICATION 2379] SEQUENCE SIZE (2..MAX) OF
1008    				NuObsValue /* SIZE (2..*) -- to make asn1 v0.9.22 happy */
1009                             -- used when multiple values are represented
1010                             -- in a single NU object (Structure is compound)
1011}
1012
1013
1014NuObsValue ::= SEQUENCE {
1015    metricid                [1] MetricsCode OPTIONAL,
1016    state                   [2] MeasurementStatus DEFAULT {},
1017    unitcode                [3] UnitsOfMeasurementCode OPTIONAL,
1018    value                   [4] FEFFloat
1019}
1020-- value representation on a display (may be lower resolution)
1021DispResolution ::= SEQUENCE {
1022    prepoint                [1] INT-U8,     -- digits before decimal point
1023    postpoint               [2] INT-U8      -- digits after decimal point
1024}
1025
1026--	ASN.1 source defining EnumerationMeasuredDataSection
1027
1028EnumerationMeasuredDataSection ::= SEQUENCE {
1029    metricref [APPLICATION 6050] HandleRef, -- reference to
1030                                            -- EnumerationDescriptiveDataSection
1031    enumobservedvalue     ChoiceOfEnumObsValue,
1032                          -- simple or compound
1033    enumadditionaldata    [APPLICATION 2498] ANY DEFINED BY enumobservedvalue
1034                          OPTIONAL,
1035                          -- additional non normative event specific
1036                          -- information can be provided (e.g. pacer
1037                          -- parameters of pace pulse detect). Requires
1038                          -- use of enum-obj-id in observed value!
1039    enumtimestamp         ChoiceOfEnumTimeStamp
1040                          -- one or more timestamps
1041}
1042
1043
1044EnumObsValue ::= SEQUENCE {
1045    metric-id               [1] MetricsCode OPTIONAL,
1046    state                   [2] MeasurementStatus DEFAULT {},
1047    value                   [3] EnumVal
1048}
1049
1050ChoiceOfEnumObsValue ::= CHOICE {
1051    enumobservedvalue           [APPLICATION 2462] EnumObsValue,
1052    compoundenumobservedvalue   [APPLICATION 2463] SEQUENCE SIZE (1..MAX) OF
1053    				EnumObsValue /* SIZE (1..*) -- to make asn1c v0.9.22 happy */
1054}
1055
1056EnumVal ::= CHOICE {
1057  enum-obj-id           [1] MetricsCode,  -- id of the metric
1058  enum-text-string      [2] FEFString,    -- free text
1059  enum-external-code    [8] ExtNomenRef,  -- code defined in other coding system
1060  enum-bit-str          [16] BITS-32,         -- bit string
1061  enum-record           [33] EnumRecordMetric, -- record type defined Metric ID
1062  enum-record-oo        [34] EnumRecordOO     -- record type defined OO ID
1063}
1064
1065EnumRecordMetric ::= SEQUENCE {
1066  record-type-code MetricsCode,
1067  record-data ANY DEFINED BY record-type-code
1068}
1069
1070EnumRecordOO ::= SEQUENCE {
1071  record-type-code OID-Type, -- from OO Partition
1072  record-data ANY DEFINED BY record-type-code
1073}
1074
1075ChoiceOfEnumTimeStamp ::= CHOICE {
1076    timestamp               ObservationTime,
1077    absolutetimestamparray  [APPLICATION 6042] SEQUENCE OF AbsoluteTime,
1078    relativetimestamparray  [APPLICATION 6043] SEQUENCE OF RelativeTime,
1079    hirestimestamparray     [APPLICATION 6044] SEQUENCE OF HighResRelativeTime
1080}
1081
1082AlertSection ::= SEQUENCE {
1083    handle                Handle,
1084                          -- unique (within a file) handle
1085    alerttype             [APPLICATION 2351] AlertCode,
1086                          -- static, mandatory type specification
1087    labelstring           [APPLICATION 2343] FEFString OPTIONAL,
1088                          -- textual representation of alerttype
1089    timestamp             ObservationTime,
1090                          -- time of change
1091    alertcondition        [APPLICATION 2476] AlertCondition,
1092    limitspec             [APPLICATION 2477] LimitSpecEntry OPTIONAL,
1093                          -- specification of the supervised limit
1094    vmoreference          [APPLICATION 6045] HandleRef OPTIONAL
1095                          -- reference to MDSS, VMD or MDDS
1096}
1097
1098AlertCondition ::= SEQUENCE {
1099    objreference      [1] HandleRef,
1100    controls          [2] AlertControls,
1101    alertflags        [3] AlertFlags, -- supporting flags
1102    alertsource       [4] MetricsCode,
1103    alertcode         [5] AlertCode,
1104    alerttype         [6] AlertType,  -- defines type and severity of condition
1105    alertinfoid       [7] PrivateCode OPTIONAL,  -- specific info can be appended
1106    alertinfo         [8] ANY DEFINED BY alertinfoid OPTIONAL
1107}
1108
1109-- Alert Controls define flags to communicate status information
1110-- relevant for alarm processor
1111AlertControls ::= BIT STRING {
1112    acobjoff        (0), -- the object supervised by the alert is off
1113    acchanoff       (1), -- channel is off
1114    acallobjaloff   (3), -- all alerts supervising the reference objects are off
1115    acalertoff      (4) -- this alert supervisor process is off
1116} SIZE(16)
1117
1118-- Alert Flags give additional support information how to process the condition,
1119AlertFlags ::= BIT STRING {
1120    localaudible     (1), -- indicates that the condition is audible
1121                          -- at the local system
1122    remoteaudible    (2), -- condition can be audible at remote (not suppressed)
1123    visuallatching   (3), -- visible latching of the condition is allowed
1124    audiblelatching  (4), -- audio latching of the condition is allowed
1125    derived          (6),
1126    recordinhibit    (8) -- do not start alarm recording
1127} SIZE(16)
1128
1129-- Alert Type allows to distinguish severity of technical and
1130-- physiological alarms
1131AlertType ::=  INTEGER {
1132    noalert         (0),
1133    lowprital       (1), -- low priority technical alarm
1134    medprital       (2), -- medium priority technical alarm
1135    hiprital        (4), -- high priority technical alarm
1136    lowpripal       (256), -- awareness condition
1137    medpripal       (512), -- prompt response required (abnormal condition)
1138    hipripal        (1024) -- immediate response required (emergency condition)
1139} (0..65535)
1140
1141-- Specification of the supervised limit range
1142LimitSpecEntry ::= SEQUENCE {
1143    sectionhandle [1] HandleRef,
1144    alsourceid    [2] MetricsCode, -- typically the metric ID of the measurement
1145    unitcode      [3] UnitCode, -- from DIM partition
1146    limalstat     [4] CurLimAlStat,
1147    limalval      [5] AbsoluteRange
1148}
1149
1150-- Current Limit Alert State -
1151-- NOTE: The bits refer to the Limit Alarm only, not to the global alert
1152-- state of the metric!
1153CurLimAlStat ::= BIT STRING {
1154    limalertoff             (0), -- if this bit is set, all alerts (both
1155                                 -- high and low) are off
1156    limlowoff               (1), -- low limit violation detection is off
1157    limhighoff              (2)  -- high limit violation detection is off
1158} SIZE(16)
1159
1160DynamicAttributeChangeSection ::= SEQUENCE {
1161    timestamp            ObservationTime,
1162                         -- time of change
1163    handle               [APPLICATION 6041] HandleRef,
1164                         -- reference to section whose attribute changed
1165    attribute            [APPLICATION 6046] INT-U16,
1166                         -- attribute code
1167    value                [APPLICATION 6047] ANY DEFINED BY attribute OPTIONAL
1168                         -- new value
1169                         -- or removal of optional attribute if absent
1170}
1171
1172
1173--	ASN.1 source defining SessionNotesSection
1174
1175SessionNotesSection ::= SEQUENCE {
1176    handle                Handle,
1177                          -- unique (within a file) handle
1178    sn-id                 [APPLICATION 2505] FEFString,
1179    sn-name               [APPLICATION 2511] FEFString,
1180    sn-comments           [APPLICATION 2528] FEFString OPTIONAL,
1181    starttime             [APPLICATION 2538] AbsoluteTime,
1182    stoptime              [APPLICATION 2539] AbsoluteTime,
1183    findings              [APPLICATION 2500] FEFString OPTIONAL,
1184    diagnosticscodes      [APPLICATION 2492] SEQUENCE OF
1185                          ExtNomenRef
1186                          DEFAULT {},
1187    diagnosisdescription  [APPLICATION 2494] FEFString OPTIONAL,
1188    procedurecodes        [APPLICATION 2493] SEQUENCE OF
1189                          ExtNomenRef
1190                          DEFAULT {},
1191    proceduredescription  [APPLICATION 2495] FEFString OPTIONAL,
1192    protection            [APPLICATION 2519] ArchiveProtection OPTIONAL,
1193    placeholder           Placeholder OPTIONAL
1194}
1195
1196END
1197
1198
1199
1200